Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1apapP-0005zy-MC for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2016 12:20:28 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1apapO-00044F-73 for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Apr 2016 12:20:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1apaLg-0000Wa-Ke for pgadmin-hackers@postgresql.org; Mon, 11 Apr 2016 11:49:44 +0000 Received: from mail-wm0-x233.google.com ([2a00:1450:400c:c09::233]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1apaLb-0003Cg-K9 for pgadmin-hackers@postgresql.org; Mon, 11 Apr 2016 11:49:44 +0000 Received: by mail-wm0-x233.google.com with SMTP id u206so100626404wme.1 for ; Mon, 11 Apr 2016 04:49:39 -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=oAuPMMi9I5gcmrW42lmSnEa310OSUXGEK31LSWmT+QY=; b=thAzUJjcKsRkY/RxFCzGP0tlz471TePQO9ELwmTcGpiQHJuTwCPvdvjAc9Gdb0r989 OdHnVQuS+kpzdkwPJCBmfdjCaIomST+o7f6ee/viGjg/RWBGyuM4R6mwIaXo5J7Zr2Qf JjvUeUrGyQTk1sqf12XipPI06yzJ6Wknd+2OAkeBZKVAecZnOc46IR1kSlSKgPdjtCha M2Y1ZApxjlH2yqUzueuX88W34lLZao6mBEF4vWEHxlcjkshNdbKXMXxpx+MWiEiOVw3B d8PCQIKi/gTb3RI8oIUzSvF8N5+y4tSY3MY8hO2EdUUnQLJ1y3Xuy4l98eibJKuZbaeX H6og== 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=oAuPMMi9I5gcmrW42lmSnEa310OSUXGEK31LSWmT+QY=; b=PFTKZGNBO8FOKNPSXgWrUoIXA/aVYun3UTzvYVJHJVSxnZRzTSIzOPwvn6mkWlXiHI LuqKLlkTGwtwftCAj+vF0Mrs69sz6xz7Xf4wGL2TfT9l0E9agDUyZTbM4WIN28DYVH0D zBHTG3r3ZCOTOZsl1RW76b1w0nIckD6l51s1aaYUs91JIjrIjVXARx9GEXF8TCAjltIN X4dleHqHckHgZ6oWMaNafkJ5ktoKnKaMQ8XewJr01LStK4TgaSKaUOzz2fD4fXP8pwNG ceTSG+sQVcXPYHw+coASXhCoOU9aThfuXJ+ZCxmE+MiQZlEH7l2ZvNI4+RlwvHCaX9rg krJA== X-Gm-Message-State: AD7BkJI873xero5YIujhlcwgwQ/Z7x92BJC2ua6x05f7PZ0vmhg4/fIkJsMyf0U35cmSof4U38kyH85Sn8RNMoTt X-Received: by 10.28.47.143 with SMTP id v137mr18456123wmv.49.1460375378839; Mon, 11 Apr 2016 04:49:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.53.133 with HTTP; Mon, 11 Apr 2016 04:49:08 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Mon, 11 Apr 2016 17:19:08 +0530 Message-ID: Subject: Re: [pgAdmin4] PATCH: View and Role Node To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11424616b205ff05303423da 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 --001a11424616b205ff05303423da Content-Type: multipart/alternative; boundary=001a11424616b205fa05303423d8 --001a11424616b205fa05303423d8 Content-Type: text/plain; charset=UTF-8 Hi, PFA patch with following changes: 1. Modified the materialized view js & py files as its common functions for table are now moved into schema.js and utils.py. 2. Removed whitespaces from code. Also, this patch is now also dependent on the patch "Disable PrivilegeControl for nodes visible under catalog" I sent earlier today. Thanks On Wed, Mar 23, 2016 at 9:14 PM, Surinder Kumar < surinder.kumar@enterprisedb.com> wrote: > > This patch contains following nodes: > 1. View Node > 2. Materialized View Node > > This patch depends on couple of patches: > 1. Control for displaying "auto vacuum" fields into grid > 2. Tables sub node patch. > > First apply these two patches then apply patch this patch. > > Please review the patch. > > On Tue, Mar 1, 2016 at 10:42 PM, Dave Page wrote: > >> Sorry - I believe this is it (I had to rescue it from the trash). >> >> On Tue, Mar 1, 2016 at 5:16 AM, Surinder Kumar >> wrote: >> > Dave you forgot to attach patch. Can you please attach it ? >> > >> > On Thu, Feb 25, 2016 at 4:33 PM, Dave Page wrote: >> >> >> >> Hi >> >> >> >> On Wed, Feb 24, 2016 at 1:31 PM, Surinder Kumar >> >> wrote: >> >>> >> >>> Hi, >> >>> >> >>> Please find the updated patch with following changes: >> >>> >> >>> 1. Integrated dependents and dependency tabs with view and rule node. >> >>> 2. Added "Create Rule" option for Table node. >> >>> 3. Added node_inode property for rule node as it has no child node. >> >>> 4. Improved javascript code commenting and added pydoc in python >> files. >> >>> 5. Name column under dependents tab showing wrong name for rule node >> >>> due to typo mistake, It is fixed. >> >>> >> >>> Please review it and Let me know for any comments. >> >> >> >> >> >> Please find an updated patch attached, in which I tweaked some comments >> >> and fixed a few minor issues as I reviewed the code. The following >> issues >> >> need to be addressed please, then I'll take another look: >> >> >> >> - Don't show the definition SQL in the main properties tab. >> > Done > >> >> >> >> - Check Options is missing from the properties tab. >> > Added > >> >> >> >> - Views were made function in PostgreSQL v6.4! Why only load the module >> >> for 9.1+? >> > Fixed > >> >> >> >> - The TRUNCATE ACL flag is not recognised, leading to ACLs being shown >> as: >> >> arwdUNKNOWNxt >> > Fixed > >> >> >> >> - 4 character indents are not applied consistently to SQL templates >> > Done > >> >> >> >> - Why do servers pre-9.3 have VACUUM options in the SQL templates? >> > Done > >> >> >> >> - There should be no special casing of Slony schemas >> (backend_support.sql) >> > Done > >> >> >> >> - Don't include \'s on line ends of multiline comments or docstrings. >> > Done > >> >> >> >> - I can't create a Materialised View >> > This patch contains materialized view now > >> >> >> >> On the dialogs: >> >> >> >> - The "Definition" input box should have a border. >> > Fixed > >> >> >> >> - The "Definition" input box fill the vertical space assigned to it, >> >> such that the border on the left runs top to bottom (see the main SQL >> tab). >> > Fixed > >> >> >> >> - The "Definition" input box should be displayed below the label at >> all >> >> times (unlike other controls), to maximise available space >> > Fixed > >> >> >> >> - The SQL tab view is broken for views (tested on PG 9.4), likely due >> to >> >> the TRUNCATE ACL issue: >> >> >> >> 2016-02-25 10:59:00,118: INFO werkzeug: 127.0.0.1 - - [25/Feb/2016 >> >> 10:59:00] "GET /browser/view/sql/1/1/24587/27424/27555 HTTP/1.1" 500 - >> >> Traceback (most recent call last): >> >> File >> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> >> line 1836, in __call__ >> >> return self.wsgi_app(environ, start_response) >> >> File >> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> >> line 1820, in wsgi_app >> >> response = self.make_response(self.handle_exception(e)) >> >> File >> >> >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", >> >> line 1403, in handle_exception >> >> reraise(exc_type, exc_value, tb) >> >> 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 >> 248, >> >> in dispatch_request >> >> return method(*args, **kwargs) >> >> File >> >> >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py", >> >> line 242, in wrap >> >> return f(*args, **kwargs) >> >> File >> >> >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py", >> >> line 646, in sql >> >> result['datacl'] = self.parse_privileges(result['datacl']) >> >> File >> >> >> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py", >> >> line 540, in parse_privileges >> >> db_privileges[privilege['privilege_type']]) >> >> KeyError: 'UNKNOWN' >> >> >> > Done > >> >> >> >> Thanks! >> >> >> >> -- >> >> Dave Page >> >> Blog: http://pgsnake.blogspot.com >> >> Twitter: @pgsnake >> >> >> >> EnterpriseDB UK: http://www.enterprisedb.com >> >> The Enterprise PostgreSQL Company >> > >> > >> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > --001a11424616b205fa05303423d8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch with following changes:
1. Modified the materialized view js & py files as its common = functions for table are now moved into schema.js and utils.py.
2.= Removed whitespaces from code.

Also, this patch i= s now also dependent on the patch
"Disable PrivilegeControl = for nodes visible under catalog" I sent earlier today.

<= /div>
Thanks

On Wed, Mar 23, 2016 at 9:14 PM, Surinder Kumar <= surinder.kumar@enterprisedb.com> wrote:

This patch contains following nodes= :
1. View Node
2. Materialized View Node

This patch depends o= n couple of patches:
1.=C2=A0Control for di= splaying "auto vacuum" fields into grid
2. Tables sub node patch.

=
First apply these two patches then apply patch t= his patch.

Please review the patch.
=C2=A0
On Tue, Mar 1, 2016 at 10:42 PM, D= ave Page <dpage@pgadmin.org> wrote:
Sor= ry - I believe this is it (I had to rescue it from the trash).

On Tue, Mar 1, 2016 at 5:16 AM, Surinder Kumar
<su= rinder.kumar@enterprisedb.com> wrote:
> Dave you forgot to attach patch. Can you please attach it ?
>
> On Thu, Feb 25, 2016 at 4:33 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi
>>
>> On Wed, Feb 24, 2016 at 1:31 PM, Surinder Kumar
>> <surinder.kumar@enterprisedb.com> wrote:
>>>
>>> Hi,
>>>
>>> Please find the updated patch with following changes:
>>>
>>> 1. Integrated dependents and dependency tabs with view and rul= e node.
>>> 2. Added "Create Rule" option for Table node.
>>> 3. Added node_inode property for rule node as it has no child = node.
>>> 4. Improved javascript code commenting and added pydoc in pyth= on files.
>>> 5. Name column under dependents tab showing wrong name=C2=A0 f= or rule node
>>> due to typo mistake, It is fixed.
>>>
>>> Please review it and Let me know for any comments.
>>
>>
>> Please find an updated patch attached, in which I tweaked some com= ments
>> and fixed a few minor issues as I reviewed the code. The following= issues
>> need to be addressed please, then I'll take another look:
>>
>> - Don't show the definition SQL in the main properties tab.
Done=C2=A0
>>
>> - Check Options is missing from the properties tab.
Added=C2=A0
>>
>> - Views were made function in PostgreSQL v6.4! Why only load the m= odule
>> for 9.1+?
Fixed=C2=A0
>>
>> - The TRUNCATE ACL flag is not recognised, leading to ACLs being s= hown as:
>> arwdUNKNOWNxt
Fixed=C2=A0<= /div>
>>
>> - 4 character indents are not applied consistently to SQL template= s
Done=C2=A0
=
>>
>> - Why do servers pre-9.3 have VACUUM options in the SQL templates?=
Done=C2=A0
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;pa= dding-left:1ex">
>>
>> - There should be no special casing of Slony schemas (backend_supp= ort.sql)
Done=C2=A0
>>
>> - Don't include \'s on line ends of multiline comments or = docstrings.
Done=C2=A0
>>
>> - I can't create a Materialised View
This patch contains materialized view now
>>
>> On the dialogs:
>>
>>=C2=A0 =C2=A0- The "Definition" input box should have a b= order.
Fixed=C2=A0
>>
>>=C2=A0 =C2=A0- The "Definition" input box fill the vertic= al space assigned to it,
>> such that the border on the left runs top to bottom (see the main = SQL tab).
Fixed=C2=A0
>>
>>=C2=A0 =C2=A0- The "Definition" input box should be displ= ayed below the label at all
>> times (unlike other controls), to maximise available space
Fixed=C2=A0
>>
>> - The SQL tab view is broken for views (tested on PG 9.4), likely = due to
>> the TRUNCATE ACL issue:
>>
>> 2016-02-25 10:59:00,118: INFO werkzeug: 127.0.0.1 - - [25/Feb/2016=
>> 10:59:00] "GET /browser/view/sql/1/1/24587/27424/27555 HTTP/1= .1" 500 -
>> Traceback (most recent call last):
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1836, in __call__
>>=C2=A0 =C2=A0 =C2=A0return self.wsgi_app(environ, start_response) >>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1820, in wsgi_app
>>=C2=A0 =C2=A0 =C2=A0response =3D self.make_response(self.handle_exc= eption(e))
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1403, in handle_exception
>>=C2=A0 =C2=A0 =C2=A0reraise(exc_type, exc_value, tb)
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1817, in wsgi_app
>>=C2=A0 =C2=A0 =C2=A0response =3D self.full_dispatch_request()
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1477, in full_dispatch_request
>>=C2=A0 =C2=A0 =C2=A0rv =3D self.handle_user_exception(e)
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1381, in handle_user_exception
>>=C2=A0 =C2=A0 =C2=A0reraise(exc_type, exc_value, tb)
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1475, in full_dispatch_request
>>=C2=A0 =C2=A0 =C2=A0rv =3D self.dispatch_request()
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/app.py",
>> line 1461, in dispatch_request
>>=C2=A0 =C2=A0 =C2=A0return self.view_functions[rule.endpoint](**req= .view_args)
>>=C2=A0 =C2=A0File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packag= es/flask/views.py",
>> line 84, in view
>>=C2=A0 =C2=A0 =C2=A0return self.dispatch_request(*args, **kwargs) >>=C2=A0 =C2=A0File "/Users/dpage/git/pgadmin4/web/pgadmin/brows= er/utils.py", line 248,
>> in dispatch_request
>>=C2=A0 =C2=A0 =C2=A0return method(*args, **kwargs)
>>=C2=A0 =C2=A0File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/= servers/databases/schemas/views/__init__.py",
>> line 242, in wrap
>>=C2=A0 =C2=A0 =C2=A0return f(*args, **kwargs)
>>=C2=A0 =C2=A0File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/= servers/databases/schemas/views/__init__.py",
>> line 646, in sql
>>=C2=A0 =C2=A0 =C2=A0result['datacl'] =3D self.parse_privile= ges(result['datacl'])
>>=C2=A0 =C2=A0File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/= servers/databases/schemas/views/__init__.py",
>> line 540, in parse_privileges
>>=C2=A0 =C2=A0 =C2=A0db_privileges[privilege['privilege_type'= ;]])
>> KeyError: 'UNKNOWN'
>>
Done=C2=A0
>>
>> Thanks!
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--001a11424616b205fa05303423d8-- --001a11424616b205ff05303423da Content-Type: application/octet-stream; name="view_material_view_node_patch_v5.patch" Content-Disposition: attachment; filename="view_material_view_node_patch_v5.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imvxqrv50 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU4MzEwMAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsMTIzNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBWaWV3IGFuZCBNYXRlcmlh bGl6ZWQgVmlldyBOb2RlIiIiCisKK2ltcG9ydCBzaW1wbGVqc29uIGFzIGpz b24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgcmVxdWVz dCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRl eHQKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25f cmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9u c2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAorICAgIGJhZF9yZXF1ZXN0 Citmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5v ZGVWaWV3CitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycyBhcyBzZXJ2ZXJzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudXRpbHMgaW1w b3J0IFwKKyAgICBTY2hlbWFDaGlsZE1vZHVsZSwgcGFyc2VfcnVsZV9kZWZp bml0aW9uLCBWYWN1dW1TZXR0aW5ncworZnJvbSBwZ2FkbWluLnV0aWxzLmFq YXggaW1wb3J0IHByZWNvbmRpdGlvbl9yZXF1aXJlZAorZnJvbSBwZ2FkbWlu LnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgorZnJvbSBjb25maWcg aW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIGZ1bmN0b29scyBpbXBv cnQgd3JhcHMKKworCisiIiIKKyAgICBUaGlzIG1vZHVsZSBpcyByZXNwb25z aWJsZSBmb3IgZ2VuZXJhdGluZyB0d28gbm9kZXMKKyAgICAxKSBWaWV3Cisg ICAgMikgTWF0ZXJpYWxpemVkIFZpZXcKKworICAgIFdlIGhhdmUgY3JlYXRl ZCBzaW5nbGUgZmlsZSBiZWNhdXNlIHZpZXcgJiBtYXRlcmlhbCB2aWV3IGhh cyBzYW1lCisgICAgZnVuY3Rpb25hbGl0eS4gSXQgYWxsb3dzIHVzIHRvIHNo YXJlIHRoZSBzYW1lIHN1Ym1vZHVsZXMgZm9yIGJvdGgKKyAgICB2aWV3LCBh bmQgbWF0ZXJpYWwgdmlldyBtb2R1bGVzLgorCisgICAgVGhpcyBtb2R1bGVz IHVzZXMgc2VwYXJhdGUgdGVtcGxhdGUgcGF0aHMgZm9yIGVhY2ggcmVzcGVj dGl2ZSBub2RlCisgICAgLSB0ZW1wbGF0ZXMvdmlldyBmb3IgVmlldyBub2Rl CisgICAgLSB0ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcgZm9yIE1hdGVy aWFsaXplZFZpZXcgbm9kZQorCisgICAgW0VhY2ggcGF0aCBjb250YWlucyBu b2RlIHNwZWNpZmljIGpzIGZpbGVzIGFzIHdlbGwgYXMgc3FsIHRlbXBsYXRl IGZpbGVzLl0KKyIiIgorCisKK2NsYXNzIFZpZXdNb2R1bGUoU2NoZW1hQ2hp bGRNb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFZpZXdNb2R1bGUoU2No ZW1hQ2hpbGRNb2R1bGUpOgorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZv ciBWaWV3IG5vZGUgZGVyaXZlZCBmcm9tIFNjaGVtYUNoaWxkTW9kdWxlLgor CisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2luaXRfXygq YXJncywgKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGlu aXRpYWxpemUgdGhlIFZpZXcgYW5kIGl0J3MgYmFzZSBtb2R1bGUuCisKKyAg ICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQorICAgICAgLSBN ZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0 aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRo b2QgaXMgb3ZlcnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2Ug dGhlIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRfbG9hZCgp CisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIFZpZXcsIHdo ZW4gYW55IG9mIHRoZSBzZXJ2ZXIgbm9kZSBpcworICAgICAgICBpbml0aWFs aXplZC4KKyAgICAiIiIKKyAgICBOT0RFX1RZUEUgPSAndmlldycKKyAgICBD T0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiVmlld3MiKQorCisgICAgZGVm IF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIi IgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBW aWV3TW9kdWxlIGFuZCBpdCdzIGJhc2UgbW9kdWxlLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICAqYXJnczoKKyAgICAgICAgICAgICoqa3dhcmdz OgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIoVmlld01vZHVsZSwgc2Vs ZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLm1p bl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKKwor ICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlv biBub2RlCisgICAgICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVy YXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBAcHJv cGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIi IgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciB2aWV3cywg d2hlbiBhbnkgZGF0YWJhc2Ugbm9kZSBpcworICAgICAgICBpbml0aWFsaXpl ZCwgYXMgdmlld3MgYXJlIHVuZGVyIHNjaGVtYXMuCisgICAgICAgICIiIgor ICAgICAgICByZXR1cm4gc2VydmVycy5TZXJ2ZXJNb2R1bGUuTk9ERV9UWVBF CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3Nzc25pcHBldHMoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgc25pcHBldCBvZiBj c3MgdG8gaW5jbHVkZSBpbiB0aGUgcGFnZQorICAgICAgICAiIiIKKyAgICAg ICAgc25pcHBldHMgPSBbCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBs YXRlKAorICAgICAgICAgICAgICAgICAgICAiYnJvd3Nlci9jc3MvY29sbGVj dGlvbi5jc3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9c2Vs Zi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAor ICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHJlbmRl cl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgInZpZXcvY3NzL3Zp ZXcuY3NzIiwKKyAgICAgICAgICAgICAgICAgICAgbm9kZV90eXBlPXNlbGYu bm9kZV90eXBlLAorICAgICAgICAgICAgICAgICAgICBfPWdldHRleHQKKyAg ICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICJtYXRlcmlhbGl6ZWRf dmlldy9jc3MvbWF0ZXJpYWxpemVkX3ZpZXcuY3NzIiwKKyAgICAgICAgICAg ICAgICAgICAgbm9kZV90eXBlPSdtYXRlcmlhbGl6ZWRfdmlldycsCisgICAg ICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgICAgICAg ICApCisgICAgICAgICAgICAgICAgXQorCisgICAgICAgIGZvciBzdWJtb2R1 bGUgaW4gc2VsZi5zdWJtb2R1bGVzOgorICAgICAgICAgICAgc25pcHBldHMu ZXh0ZW5kKHN1Ym1vZHVsZS5jc3NzbmlwcGV0cykKKworICAgICAgICByZXR1 cm4gc25pcHBldHMKKworCitjbGFzcyBNYXRlcmlhbGl6ZWRWaWV3TW9kdWxl KFZpZXdNb2R1bGUpOgorICAgICIiIgorICAgICBjbGFzcyBNYXRlcmlhbGl6 ZWRWaWV3TW9kdWxlKFZpZXdNb2R1bGUpCisgICAgICAgIEEgbW9kdWxlIGNs YXNzIGZvciB0aGUgbWF0ZXJpYWxpemVkIHZpZXcgYW5kIHZpZXcgbm9kZSBk ZXJpdmVkCisgICAgICAgIGZyb20gVmlld01vZHVsZS4KKyAgICAiIiIKKwor ICAgIE5PREVfVFlQRSA9ICdtYXRlcmlhbGl6ZWRfdmlldycKKyAgICBDT0xM RUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiTWF0ZXJpYWxpemVkIFZpZXdzIikK KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgor ICAgICAgICAiIiIKKyAgICAgICAgTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlh bGl6ZSB0aGUgTWF0ZXJpYWxpemVkVmlld01vZHVsZSBhbmQKKyAgICAgICAg aXQncyBiYXNlIG1vZHVsZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgKmFyZ3M6CisgICAgICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIi CisgICAgICAgIHN1cGVyKE1hdGVyaWFsaXplZFZpZXdNb2R1bGUsIHNlbGYp Ll9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5taW5f dmVyID0gOTAzMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCit2 aWV3X2JsdWVwcmludCA9IFZpZXdNb2R1bGUoX19uYW1lX18pCittYXRlcmlh bGl6ZWRfdmlld19ibHVlcHJpbnQgPSBNYXRlcmlhbGl6ZWRWaWV3TW9kdWxl KAorICAgICAgICBfX25hbWVfXykKKworCitkZWYgY2hlY2tfcHJlY29uZGl0 aW9uKGYpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhh dmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICBkYXRh YmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwg YWxzbyBhdHRhY2hlcworICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRlX3Bh dGggcHJvcGVydGllcyB0byBpbnN0YW5jZSBvZiB0aGUgbWV0aG9kLgorCisg ICAgQXNzdW1wdGlvbnM6CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBh bHdheXMgYmUgdXNlZCBhcyBkZWNvcmF0b3Igb2YgYSBjbGFzcyBtZXRob2Qu CisgICAgIiIiCisgICAgQHdyYXBzKGYpCisgICAgZGVmIHdyYXAoKmFyZ3Ms ICoqa3dhcmdzKToKKworICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhv bGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAg ICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0 X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2Vy KAorICAgICAgICAgICAga3dhcmdzWydzaWQnXQorICAgICAgICApCisgICAg ICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1r d2FyZ3NbJ2RpZCddKQorICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQg dGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICBpZiBub3Qg c2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgcmV0dXJuIHBy ZWNvbmRpdGlvbl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0 KCJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiKQor ICAgICAgICAgICAgKQorICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQgPSBz ZWxmLm1hbmFnZXIuZGJfaW5mb1sKKyAgICAgICAgICAgICAgICBrd2FyZ3Nb J2RpZCddXVsnZGF0bGFzdHN5c29pZCddCisKKyAgICAgICAgIyBTZXQgdGVt cGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMKKyAgICAgICAgc2VsZi50ZW1w bGF0ZV9wYXRoID0gc2VsZi50ZW1wbGF0ZV9pbml0aWFsICsgJy8nICsgKAor ICAgICAgICAgICAgc2VsZi5wcGFzX3RlbXBsYXRlX3BhdGgoc2VsZi5tYW5h Z2VyLnZlcnNpb24pCisgICAgICAgICAgICBpZiBzZWxmLm1hbmFnZXIuc2Vy dmVyX3R5cGUgPT0gJ3BwYXMnIGVsc2UKKyAgICAgICAgICAgIHNlbGYucGdf dGVtcGxhdGVfcGF0aChzZWxmLm1hbmFnZXIudmVyc2lvbikKKyAgICAgICAg ICAgICkKKworICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisK KyAgICByZXR1cm4gd3JhcAorCisKK2NsYXNzIFZpZXdOb2RlKFBHQ2hpbGRO b2RlVmlldyk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBpcyByZXNwb25z aWJsZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yIHZpZXcgbm9kZS4KKwor ICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKipr d2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUg dGhlIFZpZXdOb2RlIGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogbW9k dWxlX2pzKCkKKyAgICAgIC0gUmVxdWVzdCBoYW5kbGVyIGZvciBtb2R1bGUu anMgcm91dGVzIGZvciB0aGUgdmlldyBub2RlIG1vZHVsZQorICAgICAgamF2 YXNjcmlwdCwgd2hpY2ggcmV0dXJucyBqYXZzY3JpcHQgZm9yIHRoaXMgbW9k dWxlLgorCisgICAgKiBsaXN0KCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBp cyB1c2VkIHRvIGxpc3QgYWxsIHRoZSB2aWV3IG5vZGVzIHdpdGhpbiB0aGUK KyAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0g VGhpcyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hp bGQgbm9kZSB3aXRoaW4gdGhlCisgICAgICAgIGNvbGxlY3Rpb24sIEhlcmUg aXQgd2lsbCBjcmVhdGUgYWxsIHRoZSB2aWV3IG5vZGUuCisKKyAgICAqIHBy b3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVj dGVkIHZpZXcgbm9kZS4KKworICAgICogY3JlYXRlKGdpZCwgc2lkLCBkaWQs IHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhl IG5ldyB2aWV3IG9iamVjdC4KKworICAgICogdXBkYXRlKGdpZCwgc2lkLCBk aWQsIHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUg dGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZCB2aWV3IG5vZGUuCisKKyAgICAq IGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgc2NpZCk6CisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSB2aWV3IG9iamVjdAorCisgICAgKiBt c3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0aGUgc2Vs ZWN0ZWQgdmlldworICAgICAgICBub2RlLgorCisgICAgKiBnZXRfc3FsKGRh dGEsIHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0 ZSBzcWwgZnJvbSBtb2RlbCBkYXRhCisKKyAgICAqIHNxbChnaWQsIHNpZCwg ZGlkLCBzY2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVy YXRlIHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUgdmlldwor ICAgICAgICBub2RlLgorCisgICAgKiBkZXBlbmRlbmN5KGdpZCwgc2lkLCBk aWQsIHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJh dGUgZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4gZGVwZW5kZW5jeQorICAg ICAgICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgdmlldyBub2RlLgorCisgICAg KiBkZXBlbmRlbnQoZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAtIFRo aXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBkZXBlbmRlbnQgbGlzdCB0byBz aG93IGl0IGluIGRlcGVuZGVudAorICAgICAgICBwYW5lIGZvciB0aGUgc2Vs ZWN0ZWQgdmlldyBub2RlLgorICAgICIiIgorICAgIG5vZGVfdHlwZSA9IHZp ZXdfYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsK KyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisg ICAgICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAg ICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAg ICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgICAg ICAgICBdCisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2lu dCcsICdpZCc6ICd2aWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0 aW9ucyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAg eydnZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1 dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAn cG9zdCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRy ZW4nOiBbeworICAgICAgICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAg ICAgfV0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRl J31dLAorICAgICAgICAnbm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dl dCc6ICdub2Rlcyd9XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwn fV0sCisgICAgICAgICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQn OiAnbXNxbCd9XSwKKyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRp c3RpY3MnfV0sCisgICAgICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2Rl cGVuZGVuY2llcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6 ICdkZXBlbmRlbnRzJ31dLAorICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7 fSwgeydnZXQnOiAnbW9kdWxlX2pzJ31dLAorICAgICAgICAnY29uZmlncyc6 IFt7J2dldCc6ICdjb25maWdzJ31dLAorICAgICAgICAnZ2V0X3RibHNwYyc6 IFt7J2dldCc6ICdnZXRfdGJsc3BjJ30sIHsnZ2V0JzogJ2dldF90YmxzcGMn fV0sCisgICAgICAgICdnZXRfdGFibGVfdmFjdXVtJzogWworICAgICAgICAg IHsnZ2V0JzogJ2dldF90YWJsZV92YWN1dW0nfSwKKyAgICAgICAgICB7J2dl dCc6ICdnZXRfdGFibGVfdmFjdXVtJ31dLAorICAgICAgICAnZ2V0X3RvYXN0 X3RhYmxlX3ZhY3V1bSc6IFsKKyAgICAgICAgICB7J2dldCc6ICdnZXRfdG9h c3RfdGFibGVfdmFjdXVtJ30sCisgICAgICAgICAgeydnZXQnOiAnZ2V0X3Rv YXN0X3RhYmxlX3ZhY3V1bSd9XQorICAgIH0pCisKKyAgICBkZWYgX19pbml0 X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiCisgICAg ICAgIEluaXRpYWxpemUgdGhlIHZhcmlhYmxlcyB1c2VkIGJ5IG1ldGhvZHMg b2YgVmlld05vZGUuCisgICAgICAgICIiIgorCisgICAgICAgIHN1cGVyKFZp ZXdOb2RlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAg ICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQorICAgICAgICBzZWxmLmNvbm4g PSBOb25lCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5vbmUKKyAg ICAgICAgc2VsZi50ZW1wbGF0ZV9pbml0aWFsID0gJ3ZpZXcnCisKKyAgICBA c3RhdGljbWV0aG9kCisgICAgZGVmIHBwYXNfdGVtcGxhdGVfcGF0aCh2ZXIp OgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgdGVtcGxhdGUg cGF0aCBmb3IgUFBBUyBzZXJ2ZXJzLgorICAgICAgICAiIiIKKyAgICAgICAg cmV0dXJuICdwcGFzLzkuM19wbHVzJworCisgICAgQHN0YXRpY21ldGhvZAor ICAgIGRlZiBwZ190ZW1wbGF0ZV9wYXRoKHZlcik6CisgICAgICAgICIiIgor ICAgICAgICBSZXR1cm5zIHRoZSB0ZW1wbGF0ZSBwYXRoIGZvciBQb3N0Z3Jl U1FMIHNlcnZlcnMuCisgICAgICAgICIiIgorICAgICAgICBpZiB2ZXIgPj0g OTA0MDA6CisgICAgICAgICAgICByZXR1cm4gJ3BnLzkuNF9wbHVzJworICAg ICAgICBlbGlmIHZlciA+PSA5MDMwMDoKKyAgICAgICAgICAgIHJldHVybiAn cGcvOS4zX3BsdXMnCisgICAgICAgIGVsaWYgdmVyID49IDkwMjAwOgorICAg ICAgICAgICAgcmV0dXJuICdwZy85LjJfcGx1cycKKyAgICAgICAgZWxpZiB2 ZXIgPj0gOTAxMDA6CisgICAgICAgICAgICByZXR1cm4gJ3BnLzkuMV9wbHVz JworICAgICAgICByZXR1cm4gJ3BnLzkuMV9wbHVzJworCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBk aWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgRmV0Y2hlcyBhbGwg dmlld3MgcHJvcGVydGllcyBhbmQgcmVuZGVyIGludG8gcHJvcGVydGllcyB0 YWIKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn c3FsL3Byb3BlcnRpZXMuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXR1 cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1y ZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAg ICAgIiIiCisgICAgICAgIExpc3RzIGFsbCB2aWV3cyB1bmRlciB0aGUgVmll d3MgQ29sbGVjdGlvbiBub2RlCisgICAgICAgICIiIgorICAgICAgICByZXMg PSBbXQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0 aWVzLnNxbCddKSwgc2NpZD1zY2lkKQorICAgICAgICBzdGF0dXMsIHJzZXQg PSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Igcm93IGlu IHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAg ICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dz ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10s CisgICAgICAgICAgICAgICAgICAgICAgICBzY2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICBpY29uPSJpY29uLXZpZXciCisgICAgICAgICAgICAgICAgICAgICkp CisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgZGVmIHBhcnNlX3ZpZXdz X3ByaXZpbGVnZXMoc2VsZiwgZGJfcHJpdmlsZWdlcyk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGZvcm1zIGEgc2VwYXJhdGUgbGlz dCBvZiBncmFudGFibGUKKyAgICAgICAgYW5kIG5vbiBncmFudGFibGUgcHJp dmlsZWdlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGFjbCA9IHsnZ3JhbnRv cic6IGRiX3ByaXZpbGVnZXNbJ2dyYW50b3InXSwKKyAgICAgICAgICAgICAg ICdncmFudGVlJzogZGJfcHJpdmlsZWdlc1snZ3JhbnRlZSddLAorICAgICAg ICAgICAgICAgJ3ByaXZpbGVnZXMnOiBbXQorICAgICAgICAgICAgICAgfQor CisgICAgICAgIHByaXZpbGVnZXMgPSBbXQorICAgICAgICBmb3IgaWR4LCBw cml2IGluIGVudW1lcmF0ZShkYl9wcml2aWxlZ2VzWydwcml2aWxlZ2VzJ10p OgorICAgICAgICAgICAgaWYgZGJfcHJpdmlsZWdlc1snZ3JhbnRhYmxlJ11b aWR4XToKKyAgICAgICAgICAgICAgICBwcml2aWxlZ2VzLmFwcGVuZCh7InBy aXZpbGVnZV90eXBlIjogcHJpdiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ3aXRoX2dyYW50IjogVHJ1ZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcml2aWxlZ2VzLmFwcGVuZCh7 InByaXZpbGVnZV90eXBlIjogcHJpdiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoX2dyYW50IjogRmFsc2UK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKworICAg ICAgICBhY2xbJ3ByaXZpbGVnZXMnXSA9IHByaXZpbGVnZXMKKworICAgICAg ICByZXR1cm4gYWNsCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlk KToKKyAgICAgICAgIiIiCisgICAgICAgIEZldGNoZXMgdGhlIHByb3BlcnRp ZXMgb2YgYW4gaW5kaXZpZHVhbCB2aWV3CisgICAgICAgIGFuZCByZW5kZXIg aW4gdGhlIHByb3BlcnRpZXMgdGFiCisgICAgICAgICIiIgorICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICBb c2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL3Byb3BlcnRpZXMuc3FsJ10KKyAg ICAgICAgICApLCB2aWQ9dmlkLCBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFz dHN5c29pZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2FjbC5z cWwnXSksIHZpZD12aWQpCisgICAgICAgIHN0YXR1cywgZGF0YWNscmVzID0g c2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBmb3Igcm93IGluIGRhdGFj bHJlc1sncm93cyddOgorICAgICAgICAgICAgcHJpdiA9IHNlbGYucGFyc2Vf dmlld3NfcHJpdmlsZWdlcyhyb3cpCisgICAgICAgICAgICBpZiByb3dbJ2Rl ZnR5cGUnXSBpbiByZXNbJ3Jvd3MnXVswXToKKyAgICAgICAgICAgICAgICBy ZXNbJ3Jvd3MnXVswXVtyb3dbJ2RlZnR5cGUnXV0uYXBwZW5kKHByaXYpCisg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc1sncm93cydd WzBdW3Jvd1snZGVmdHlwZSddXSA9IFtwcml2XQorCisgICAgICAgIHJlc3Vs dCA9IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgIyBzZW5kaW5nIHJlc3Vs dCB0byBmb3JtdHRlcgorICAgICAgICBmcm10ZF9yZXNsdCA9IHNlbGYuZm9y bWF0dGVyKHJlc3VsdCkKKworICAgICAgICAjIG1lcmdpbmcgZm9ybWF0ZWQg cmVzdWx0IHdpdGggbWFpbiByZXN1bHQgYWdhaW4KKyAgICAgICAgcmVzdWx0 LnVwZGF0ZShmcm10ZF9yZXNsdCkKKworICAgICAgICByZXR1cm4gYWpheF9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXN1bHQsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZm9ybWF0dGVyKHJlc3Vs dCk6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIGZvcm1hdHMgb3V0cHV0 IGZvciBzZWN1cml0eSBsYWJlbCAmIHZhcmlhYmxlcyIiIgorICAgICAgICBm cm10ZF9yZXN1bHQgPSBkaWN0KCkKKyAgICAgICAgc2VjX2xibHMgPSBbXQor ICAgICAgICBpZiAnc2VjbGFiZWxzJyBpbiByZXN1bHQgYW5kIHJlc3VsdFsn c2VjbGFiZWxzJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmb3Igc2Vj IGluIHJlc3VsdFsnc2VjbGFiZWxzJ106CisgICAgICAgICAgICAgICAgaW1w b3J0IHJlCisgICAgICAgICAgICAgICAgc2VjID0gcmUuc2VhcmNoKHInKFte PV0rKT0oLiokKScsIHNlYykKKyAgICAgICAgICAgICAgICBzZWNfbGJscy5h cHBlbmQoeworICAgICAgICAgICAgICAgICAgICAncHJvdmlkZXInOiBzZWMu Z3JvdXAoMSksCisgICAgICAgICAgICAgICAgICAgICdzZWN1cml0eV9sYWJl bCc6IHNlYy5ncm91cCgyKQorICAgICAgICAgICAgICAgICAgICB9KQorCisg ICAgICAgIGZybXRkX3Jlc3VsdC51cGRhdGUoeyJzZWNsYWJlbHMiOiBzZWNf bGJsc30pCisgICAgICAgIHJldHVybiBmcm10ZF9yZXN1bHQKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgY3JlYXRlKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiB3aWxsIGNyZWF0ZSBhIG5ldyB2aWV3IG9iamVjdAorICAgICAg ICAiIiIKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAg ICduYW1lJywKKyAgICAgICAgICAgICdkZWZpbml0aW9uJworICAgICAgICBd CisKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZv cm0gZWxzZSBcCisgICAgICAgICAgICBqc29uLmxvYWRzKHJlcXVlc3QuZGF0 YS5kZWNvZGUoKSkKKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdz OgorICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAgICAgICAgICAgICAgIHN1 Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4 dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBmaW5kIHRo ZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4iICUgYXJnCisgICAgICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgU1FM ID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRhdGEpCisgICAgICAgIHRyeToK KyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf c2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yZXMpCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRl X3BhdGgsICdzcWwvdmlld19pZC5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAg ICAgICAgIHN0YXR1cywgdmlld19pZCA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihTUUwpCisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAg ICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dz ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgIHZpZXdfaWQsCisgICAgICAg ICAgICAgICAgICBzY2lkLAorICAgICAgICAgICAgICAgICAgZGF0YVsnbmFt ZSddLAorICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi12aWV3IgorICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGEgdmlldyBvYmplY3QKKyAgICAgICAg IiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5m b3JtIGVsc2UgXAorICAgICAgICAgICAganNvbi5sb2FkcyhyZXF1ZXN0LmRh dGEuZGVjb2RlKCkpCisgICAgICAgIFNRTCA9IHNlbGYuZ2V0U1FMKGdpZCwg c2lkLCBkYXRhLCB2aWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAg ICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvdmll d19pZC5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAgICAgICAgIHN0YXR1cywg dmlld19pZCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAg ICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAgICAgICBub2Rl PXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAg ICAgICAgICAgICAgIHZpZXdfaWQsCisgICAgICAgICAgICAgICAgICBzY2lk LAorICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAorICAgICAgICAg ICAgICAgICAgaWNvbj0iaWNvbi12aWV3IgorICAgICAgICAgICAgICAgICkK KyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZp ZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg ZHJvcCBhIHZpZXcgb2JqZWN0CisgICAgICAgICIiIgorCisgICAgICAgICMg QmVsb3cgd2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBvciBkcm9w IHdpdGggY2FzY2FkZSBjYWxsCisgICAgICAgIGNhc2NhZGUgPSBUcnVlIGlm IHNlbGYuY21kID09ICdkZWxldGUnIGVsc2UgRmFsc2UKKworICAgICAgICB0 cnk6CisKKyAgICAgICAgICAgICMgR2V0IG5hbWUgZm9yIHZpZXcgZnJvbSBk aWQKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bigKKyAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9k ZWxldGUuc3FsJ10pLCB2aWQ9dmlkKQorICAgICAgICAgICAgc3RhdHVzLCBy ZXNfZGF0YSA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc19kYXRhKQorCisg ICAgICAgICAgICAjIGRyb3AgdmlldworICAgICAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICBbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnc3FsL2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAg ICAgICAgbnNwbmFtZT1yZXNfZGF0YVsncm93cyddWzBdWyduc3BuYW1lJ10s CisgICAgICAgICAgICAgICAgbmFtZT1yZXNfZGF0YVsncm93cyddWzBdWydu YW1lJ10sIGNhc2NhZGU9Y2FzY2FkZQorICAgICAgICAgICAgICApCisgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAg ICBpbmZvPWdldHRleHQoIlZpZXcgZHJvcHBlZCIpLAorICAgICAgICAgICAg ICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAnaWQnOiB2aWQsCisg ICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAg ICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAgICdkaWQn OiBkaWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApCisKKyAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkPU5vbmUpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNRTAor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHt9CisgICAgICAgIGZvciBr LCB2IGluIHJlcXVlc3QuYXJncy5pdGVtcygpOgorICAgICAgICAgICAgdHJ5 OgorICAgICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYpCisg ICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAg ICBkYXRhW2tdID0gdgorCisgICAgICAgIFNRTCA9IHNlbGYuZ2V0U1FMKGdp ZCwgc2lkLCBkYXRhLCB2aWQpCisgICAgICAgIGlmKFNRTCk6CisgICAgICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgICAgICBkYXRhPVNRTCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVz PTIwMAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBkYXRhPWdldHRleHQoIi0tIE5vdGhpbmcgY2hhbmdl ZCIpLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgICAgICkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYg cGFyc2VfcHJpdmlsZWdlcyhzdHJfcHJpdmlsZWdlcywgb2JqZWN0X3R5cGU9 J1ZJRVcnKToKKyAgICAgICAgIiIiUGFyc2UgUHJpdmlsZWdlcy4iIiIKKyAg ICAgICAgZGJfcHJpdmlsZWdlcyA9IHsKKyAgICAgICAgICAgICdhJzogJ0lO U0VSVCcsCisgICAgICAgICAgICAncic6ICdTRUxFQ1QnLAorICAgICAgICAg ICAgJ3cnOiAnVVBEQVRFJywKKyAgICAgICAgICAgICdkJzogJ0RFTEVURScs CisgICAgICAgICAgICAnRCc6ICdUUlVOQ0FURScsCisgICAgICAgICAgICAn eCc6ICdSRUZFUkVOQ0VTJywKKyAgICAgICAgICAgICd0JzogJ1RSSUdHRVIn CisgICAgICAgICAgICB9CisgICAgICAgIHByaXZpbGVnZXMgPSBbXQorICAg ICAgICBmb3IgcHJpdiBpbiBzdHJfcHJpdmlsZWdlczoKKyAgICAgICAgICAg IHByaXZfd2l0aF9ncmFudCA9IFtdCisgICAgICAgICAgICBwcml2X3dpdGhv dXRfZ3JhbnQgPSBbXQorICAgICAgICAgICAgZm9yIHByaXZpbGVnZSBpbiBw cml2Wydwcml2aWxlZ2VzJ106CisgICAgICAgICAgICAgICAgaWYgcHJpdmls ZWdlWyd3aXRoX2dyYW50J106CisgICAgICAgICAgICAgICAgICAgIHByaXZf d2l0aF9ncmFudC5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgZGJf cHJpdmlsZWdlc1twcml2aWxlZ2VbJ3ByaXZpbGVnZV90eXBlJ11dKQorICAg ICAgICAgICAgICAgIGVsaWYgcHJpdmlsZWdlWydwcml2aWxlZ2UnXToKKyAg ICAgICAgICAgICAgICAgICAgcHJpdl93aXRob3V0X2dyYW50LmFwcGVuZCgK KyAgICAgICAgICAgICAgICAgICAgICBkYl9wcml2aWxlZ2VzW3ByaXZpbGVn ZVsncHJpdmlsZWdlX3R5cGUnXV0pCisKKyAgICAgICAgICAgICAgICAjIElm IHdlIGhhdmUgYWxsIGFjbCB0aGVuIGp1c3QgcmV0dXJuIGFsbAorICAgICAg ICAgICAgICAgIGlmIGxlbihwcml2X3dpdGhfZ3JhbnQpID09IGxlbihkYl9w cml2aWxlZ2VzKToKKyAgICAgICAgICAgICAgICAgICAgcHJpdl93aXRoX2dy YW50ID0gWydBTEwnXQorICAgICAgICAgICAgICAgIGlmIGxlbihwcml2X3dp dGhvdXRfZ3JhbnQpID09IGxlbihkYl9wcml2aWxlZ2VzKToKKyAgICAgICAg ICAgICAgICAgICAgcHJpdl93aXRob3V0X2dyYW50ID0gWydBTEwnXQorCisg ICAgICAgICAgICAjIFNlcnZlciBMZXZlbCB2YWxpZGF0aW9uCisgICAgICAg ICAgICBpZiAnZ3JhbnRlZScgaW4gcHJpdjoKKyAgICAgICAgICAgICAgICBw cml2aWxlZ2VzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgJ2dyYW50ZWUnOiBwcml2WydncmFudGVlJ10gaWYg J2dyYW50ZWUnIGluIHByaXYgZWxzZSAnJywKKyAgICAgICAgICAgICAgICAg ICAgJ3dpdGhfZ3JhbnQnOiBwcml2X3dpdGhfZ3JhbnQsCisgICAgICAgICAg ICAgICAgICAgICd3aXRob3V0X2dyYW50JzogcHJpdl93aXRob3V0X2dyYW50 CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gJycKKyAg ICAgICAgcmV0dXJuIHByaXZpbGVnZXMKKworICAgIGRlZiBnZXRTUUwoc2Vs ZiwgZ2lkLCBzaWQsIGRhdGEsIHZpZD1Ob25lKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgZnJvbSBt b2RlbCBkYXRhCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAg ICAgICBpZiB2aWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAg ICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL3Byb3BlcnRpZXMuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgdmlkPXZpZCwKKyAgICAgICAgICAg ICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkCisgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0g c2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgICAg ICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICAg ICAgICAgaWYgJ25hbWUnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAg ICAgICBkYXRhWyduYW1lJ10gPSByZXNbJ3Jvd3MnXVswXVsnbmFtZSddCisg ICAgICAgICAgICAgICAgaWYgJ3NjaGVtYScgbm90IGluIGRhdGE6CisgICAg ICAgICAgICAgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gcmVzWydyb3dzJ11b MF1bJ3NjaGVtYSddCisKKyAgICAgICAgICAgICAgICBrZXkgPSAnZGF0YWNs JworICAgICAgICAgICAgICAgIGlmIGtleSBpbiBkYXRhIGFuZCBkYXRhW2tl eV0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGlmICdhZGRl ZCcgaW4gZGF0YVtrZXldOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtrZXldWydhZGRlZCddID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKAorICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV1bJ2FkZGVkJ10pCisg ICAgICAgICAgICAgICAgICAgIGlmICdjaGFuZ2VkJyBpbiBkYXRhW2tleV06 CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV1bJ2NoYW5nZWQn XSA9IHNlbGYucGFyc2VfcHJpdmlsZWdlcygKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YVtrZXldWydjaGFuZ2VkJ10pCisgICAgICAgICAgICAg ICAgICAgIGlmICdkZWxldGVkJyBpbiBkYXRhW2tleV06CisgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhW2tleV1bJ2RlbGV0ZWQnXSA9IHNlbGYucGFy c2VfcHJpdmlsZWdlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtrZXldWydkZWxldGVkJ10pCisgICAgICAgICAgICAgICAgdHJ5OgorICAg ICAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oCisgICAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NxbC91cGRhdGUuc3FsJ10pLCBkYXRhPWRhdGEsCisgICAgICAgICAg ICAgICAgICAgICAgICBvX2RhdGE9b2xkX2RhdGEsIGNvbm49c2VsZi5jb25u KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1zdHIoZSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisgICAgICAgICAgICAgICAg ICAgICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3NjaGVtYScsCisg ICAgICAgICAgICAgICAgICAgICdkZWZpbml0aW9uJworICAgICAgICAgICAg ICAgIF0KKyAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2Fy Z3M6CisgICAgICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToK KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIC0tIGRlZmluaXRp b24gaW5jb21wbGV0ZSIKKworICAgICAgICAgICAgICAgIGlmICdkYXRhY2wn IGluIGRhdGEgYW5kIGRhdGFbJ2RhdGFjbCddIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgICAgICAgICBkYXRhWydkYXRhY2wnXSA9IHNlbGYucGFyc2Vf cHJpdmlsZWdlcyhkYXRhWydkYXRhY2wnXSkKKyAgICAgICAgICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAg ICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2NyZWF0ZS5zcWwnXSks IGRhdGE9ZGF0YSkKKyAgICAgICAgICAgICAgICBpZiBkYXRhWydkZWZpbml0 aW9uJ106CisgICAgICAgICAgICAgICAgICAgIFNRTCArPSAiXG4iCisgICAg ICAgICAgICAgICAgICAgIFNRTCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oCisgICAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NxbC9ncmFudC5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAgICAgICAg IHJldHVybiBTUUwKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXN0cihlKSkKKworICAgIGRlZiBnZXRfaW5kZXhfY29sdW1uX2Rl dGFpbHMoc2VsZiwgaWR4LCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb25hbCB3aWxsIGZldGNoIGxpc3Qgb2YgY29sdW1uIGRl dGFpbHMgZm9yIGluZGV4CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGlkeDogSW5kZXggT0lECisgICAgICAgICAgICBkYXRhOiBQcm9wZXJ0aWVz IGRhdGEKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgVXBkYXRl ZCBwcm9wZXJ0aWVzIGRhdGEgd2l0aCBjb2x1bW4gZGV0YWlscworICAgICAg ICAiIiIKKworICAgICAgICBzZWxmLmluZGV4X3RlbXBfcGF0aCA9ICdpbmRl eCcKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLmluZGV4X3RlbXBfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdzcWwvOS4xX3BsdXMvY29sdW1uX2RldGFpbHMuc3FsJ10pLCBp ZHg9aWR4KQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhl Y3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cnNldCkKKworICAgICAgICAjICdhdHRkZWYnIGNvbWVzIHdpdGggcXVv dGVzIGZyb20gcXVlcnkgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisgICAg ICAgICMgJ29wdGlvbnMnIHdlIG5lZWQgdHJ1ZS9mYWxzZSB0byByZW5kZXIg c3dpdGNoIEFTQyhmYWxzZSkvREVTQyh0cnVlKQorICAgICAgICBjb2x1bW5z ID0gW10KKyAgICAgICAgY29scyA9IFtdCisgICAgICAgIGZvciByb3cgaW4g cnNldFsncm93cyddOgorCisgICAgICAgICAgICAjIFdlIG5lZWQgYWxsIGRh dGEgYXMgY29sbGVjdGlvbiBmb3IgQ29sdW1uc01vZGVsCisgICAgICAgICAg ICBjb2xzX2RhdGEgPSB7CisgICAgICAgICAgICAgICAgJ2NvbG5hbWUnOiBy b3dbJ2F0dGRlZiddLnN0cmlwKCciJyksCisgICAgICAgICAgICAgICAgJ2Nv bGxzcGNuYW1lJzogcm93Wydjb2xsbnNwbmFtZSddLAorICAgICAgICAgICAg ICAgICdvcF9jbGFzcyc6IHJvd1snb3BjbmFtZSddLAorICAgICAgICAgICAg fQorICAgICAgICAgICAgaWYgcm93WydvcHRpb25zJ11bMF0gPT0gJ0RFU0Mn OgorICAgICAgICAgICAgICAgIGNvbHNfZGF0YVsnc29ydF9vcmRlciddID0g VHJ1ZQorICAgICAgICAgICAgY29sdW1ucy5hcHBlbmQoY29sc19kYXRhKQor CisgICAgICAgICAgICAjIFdlIG5lZWQgc2FtZSBkYXRhIGFzIHN0cmluZyB0 byBkaXNwbGF5IGluIHByb3BlcnRpZXMgd2luZG93CisgICAgICAgICAgICAj IElmIG11bHRpcGxlIGNvbHVtbiB0aGVuIHNlcGFyYXRlIGl0IGJ5IGNvbG9u CisgICAgICAgICAgICBjb2xzX3N0ciA9IHJvd1snYXR0ZGVmJ10KKyAgICAg ICAgICAgIGlmIHJvd1snY29sbG5zcG5hbWUnXToKKyAgICAgICAgICAgICAg ICBjb2xzX3N0ciArPSAnIENPTExBVEUgJyArIHJvd1snY29sbG5zcG5hbWUn XQorICAgICAgICAgICAgaWYgcm93WydvcGNuYW1lJ106CisgICAgICAgICAg ICAgICAgY29sc19zdHIgKz0gJyAnICsgcm93WydvcGNuYW1lJ10KKyAgICAg ICAgICAgIGlmIHJvd1snb3B0aW9ucyddWzBdID09ICdERVNDJzoKKyAgICAg ICAgICAgICAgICBjb2xzX3N0ciArPSAnIERFU0MnCisgICAgICAgICAgICBj b2xzLmFwcGVuZChjb2xzX3N0cikKKworICAgICAgICAjIFB1c2ggYXMgY29s bGVjdGlvbgorICAgICAgICBkYXRhWydjb2x1bW5zJ10gPSBjb2x1bW5zCisg ICAgICAgICMgUHVzaCBhcyBzdHJpbmcKKyAgICAgICAgZGF0YVsnY29scydd ID0gJywgJy5qb2luKGNvbHMpCisKKyAgICAgICAgcmV0dXJuIGRhdGEKKwor ICAgIGRlZiBnZXRfdHJpZ2dlcl9jb2x1bW5fZGV0YWlscyhzZWxmLCB0aWQs IGNsaXN0KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCBmZXRjaCBsaXN0IG9mIGNvbHVtbiBmb3IgdHJpZ2dlcgorCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICB0aWQ6IFRhYmxlIE9JRAorICAgICAg ICAgICAgY2xpc3Q6IExpc3Qgb2YgY29sdW1ucworCisgICAgICAgIFJldHVy bnM6CisgICAgICAgICAgICBVcGRhdGVkIHByb3BlcnRpZXMgZGF0YSB3aXRo IGNvbHVtbgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLnRyaWdnZXJf dGVtcF9wYXRoID0gJ3NjaGVtYS90cmlnZ2VyJworICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudHJpZ2dlcl90ZW1wX3Bh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2dldF9jb2x1bW5zLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRpZD10aWQsIGNsaXN0PWNsaXN0KQorICAgICAgICBzdGF0dXMs IHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKyAgICAgICAgIyAndGdh dHRyJyBjb250YWlucyBsaXN0IG9mIGNvbHVtbnMgZnJvbSB0YWJsZSB1c2Vk IGluIHRyaWdnZXIKKyAgICAgICAgY29sdW1ucyA9IFtdCisKKyAgICAgICAg Zm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICBjb2x1bW5z LmFwcGVuZCh7J2NvbHVtbic6IHJvd1snbmFtZSddfSkKKworICAgICAgICBy ZXR1cm4gY29sdW1ucworCisgICAgZGVmIGdldF9ydWxlX3NxbChzZWxmLCB2 aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0IGFsbCBub24gc3lzdGVt IHJ1bGVzIG9mIHZpZXcgbm9kZSwKKyAgICAgICAgZ2VuZXJhdGUgdGhlaXIg c3FsIGFuZCByZW5kZXIKKyAgICAgICAgaW50byBzcWwgdGFiCisgICAgICAg ICIiIgorCisgICAgICAgIHNlbGYucnVsZV90ZW1wX3BhdGggPSAncnVsZXMn CisgICAgICAgIFNRTF9kYXRhID0gJycKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnJ1bGVfdGVt cF9wYXRoLCAnc3FsL3Byb3BlcnRpZXMuc3FsJ10pLCB0aWQ9dmlkKQorCisg ICAgICAgIHN0YXR1cywgZGF0YSA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1kYXRhKQorCisg ICAgICAgIGZvciBydWxlIGluIGRhdGFbJ3Jvd3MnXToKKworICAgICAgICAg ICAgIyBHZW5lcmF0ZSBTUUwgb25seSBmb3Igbm9uIHN5c3RlbSBydWxlCisg ICAgICAgICAgICBpZiBydWxlWyduYW1lJ10gIT0gJ19SRVRVUk4nOgorICAg ICAgICAgICAgICAgIHJlcyA9IFtdCisgICAgICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAg W3NlbGYucnVsZV90ZW1wX3BhdGgsICdzcWwvcHJvcGVydGllcy5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgIHJpZD1ydWxlWydvaWQnXQorICAgICAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgICAg ICByZXMgPSBwYXJzZV9ydWxlX2RlZmluaXRpb24ocmVzKQorICAgICAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAg ICAgICAgICAgICAgIFtzZWxmLnJ1bGVfdGVtcF9wYXRoLCAnc3FsL2NyZWF0 ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLCBkaXNw bGF5X2NvbW1lbnRzPVRydWUpCisgICAgICAgICAgICAgICAgU1FMX2RhdGEg Kz0gJ1xuJworICAgICAgICAgICAgICAgIFNRTF9kYXRhICs9IFNRTAorICAg ICAgICByZXR1cm4gU1FMX2RhdGEKKworICAgIGRlZiBnZXRfdHJpZ2dlcl9z cWwoc2VsZiwgdmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIEdldCBhbGwg dHJpZ2dlciBub2RlcyBhc3NvY2lhdGVkIHdpdGggdmlldyBub2RlLAorICAg ICAgICBnZW5lcmF0ZSB0aGVpciBzcWwgYW5kIHJlbmRlcgorICAgICAgICBp bnRvIHNxbCB0YWIKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBEZWZpbmUg dGVtcGxhdGUgcGF0aAorICAgICAgICBzZWxmLnRyaWdnZXJfdGVtcF9wYXRo ID0gJ3RyaWdnZXInCisKKyAgICAgICAgU1FMX2RhdGEgPSAnJworICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAg ICBbc2VsZi50cmlnZ2VyX3RlbXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9wcm9w ZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHRpZD12aWQpCisKKyAgICAg ICAgc3RhdHVzLCBkYXRhID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWRhdGEpCisKKyAgICAg ICAgZm9yIHRyaWdnZXIgaW4gZGF0YVsncm93cyddOgorICAgICAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg ICBbc2VsZi50cmlnZ2VyX3RlbXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9wcm9w ZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICB0aWQ9dHJpZ2dlclsn b2lkJ10sCisgICAgICAgICAgICAgICAgdGdyZWxpZD12aWQKKyAgICAgICAg ICAgICAgICApCisKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgICAgIHJlc19yb3dz ID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKyAgICAgICAgICAgIGlmIHJlc19y b3dzWyd0Z25hcmdzJ10gPiAxOgorICAgICAgICAgICAgICAgICMgV2Uga25v dyB0aGF0IHRyaWdnZXIgaGFzIG1vcmUgdGhhbiAxCisgICAgICAgICAgICAg ICAgIyBhcmd1bWVudHMsIGxldCdzIGpvaW4gdGhlbQorICAgICAgICAgICAg ICAgIHJlc19yb3dzWyd0Z2FyZ3MnXSA9ICcsICcuam9pbigKKyAgICAgICAg ICAgICAgICAgICAgcmVzX3Jvd3NbJ3RnYXJncyddKQorCisgICAgICAgICAg ICBpZiBsZW4ocmVzX3Jvd3NbJ3RnYXR0ciddKSA+IDE6CisgICAgICAgICAg ICAgICAgY29sdW1ucyA9ICcsICcuam9pbihyZXNfcm93c1sndGdhdHRyJ10u c3BsaXQoJyAnKSkKKyAgICAgICAgICAgICAgICByZXNfcm93c1snY29sdW1u cyddID0gc2VsZi5nZXRfdHJpZ2dlcl9jb2x1bW5fZGV0YWlscygKKyAgICAg ICAgICAgICAgICAgICAgdHJpZ2dlclsnb2lkJ10sIGNvbHVtbnMpCisgICAg ICAgICAgICByZXNfcm93cyA9IHRyaWdnZXJfZGVmaW5pdGlvbihyZXNfcm93 cykKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKAorICAgICAgICAgICAgICBbc2VsZi50cmlnZ2VyX3RlbXBfcGF0aCwg J3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAg IGRhdGE9cmVzX3Jvd3MsIGRpc3BsYXlfY29tbWVudHM9VHJ1ZSkKKyAgICAg ICAgICAgIFNRTF9kYXRhICs9ICdcbicKKyAgICAgICAgICAgIFNRTF9kYXRh ICs9IFNRTAorCisgICAgICAgIHJldHVybiBTUUxfZGF0YQorCisgICAgZGVm IGdldF9pbmRleF9zcWwoc2VsZiwgdmlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIEdldCBhbGwgaW5kZXggYXNzb2NpYXRlZCB3aXRoIHZpZXcgbm9kZSwK KyAgICAgICAgZ2VuZXJhdGUgdGhlaXIgc3FsIGFuZCByZW5kZXIKKyAgICAg ICAgaW50byBzcWwgdGFiCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYu aW5kZXhfdGVtcF9wYXRoID0gJ2luZGV4JworICAgICAgICBTUUxfZGF0YSA9 ICcnCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigK KyAgICAgICAgICBbc2VsZi5pbmRleF90ZW1wX3BhdGgsICdzcWwvOS4xX3Bs dXMvcHJvcGVydGllcy5zcWwnXSksIHRpZD12aWQpCisgICAgICAgIHN0YXR1 cywgZGF0YSA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1kYXRhKQorCisgICAgICAgIGZvciBp bmRleCBpbiBkYXRhWydyb3dzJ106CisgICAgICAgICAgICByZXMgPSBbXQor ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAor ICAgICAgICAgICAgICBbc2VsZi5pbmRleF90ZW1wX3BhdGgsICdzcWwvOS4x X3BsdXMvcHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgaWR4 PWluZGV4WydvaWQnXSwKKyAgICAgICAgICAgICAgICB0aWQ9dmlkCisgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICAgICAgZGF0YSA9 IGRpY3QocmVzWydyb3dzJ11bMF0pCisgICAgICAgICAgICAjIEFkZGluZyBw YXJlbnQgaW50byBkYXRhIGRpY3QsIHdpbGwgYmUgdXNpbmcgaXQgd2hpbGUg Y3JlYXRpbmcgc3FsCisgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IGRh dGFbJ25zcG5hbWUnXQorICAgICAgICAgICAgZGF0YVsndGFibGUnXSA9IGRh dGFbJ3RhYm5hbWUnXQorCisgICAgICAgICAgICAjIEFkZCBjb2x1bW4gZGV0 YWlscyBmb3IgY3VycmVudCBpbmRleAorICAgICAgICAgICAgZGF0YSA9IHNl bGYuZ2V0X2luZGV4X2NvbHVtbl9kZXRhaWxzKGluZGV4WydvaWQnXSwgZGF0 YSkKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKAorICAgICAgICAgICAgICBbc2VsZi5pbmRleF90ZW1wX3BhdGgsICdz cWwvOS4xX3BsdXMvY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICBk YXRhPWRhdGEsIGRpc3BsYXlfY29tbWVudHM9VHJ1ZSkKKyAgICAgICAgICAg IFNRTF9kYXRhICs9ICdcbicKKyAgICAgICAgICAgIFNRTF9kYXRhICs9IFNR TAorICAgICAgICByZXR1cm4gU1FMX2RhdGEKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHJlbmRlciBpbnRvIHRoZSBzcWwgcGFu ZWwKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMX2RhdGEgPSAnJworICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAg ICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCdd KSwKKyAgICAgICAgICB2aWQ9dmlkLAorICAgICAgICAgIGRhdGxhc3RzeXNv aWQ9c2VsZi5kYXRsYXN0c3lzb2lkCisgICAgICAgICkKKworICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgIyBG ZXRjaCBhbGwgcHJpdmlsZWdlcyBmb3IgdmlldworICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3NxbC9hY2wuc3FsJ10pLCB2aWQ9dmlkKQorICAgICAg ICBzdGF0dXMsIGRhdGFjbHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgZm9yIHJvdyBpbiBkYXRhY2xyZXNbJ3Jvd3MnXToKKyAgICAgICAg ICAgIHByaXYgPSBzZWxmLnBhcnNlX3ZpZXdzX3ByaXZpbGVnZXMocm93KQor ICAgICAgICAgICAgaWYgcm93WydkZWZ0eXBlJ10gaW4gcmVzWydyb3dzJ11b MF06CisgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ2RhdGFjbCdd LmFwcGVuZChwcml2KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICByZXNbJ3Jvd3MnXVswXVsnZGF0YWNsJ10gPSBbcHJpdl0KKworICAg ICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICBpZiAnZGF0 YWNsJyBpbiByZXN1bHQ6CisgICAgICAgICAgICByZXN1bHRbJ2RhdGFjbCdd ID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKHJlc3VsdFsnZGF0YWNsJ10pCisg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAg ICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2NyZWF0ZS5z cWwnXSksCisgICAgICAgICAgICAgICAgZGF0YT1yZXN1bHQsCisgICAgICAg ICAgICAgICAgY29ubj1zZWxmLmNvbm4sCisgICAgICAgICAgICAgICAgZGlz cGxheV9jb21tZW50cz1UcnVlCisgICAgICAgICAgICAgICkKKyAgICAgICAg U1FMICs9ICJcbiIKKyAgICAgICAgU1FMICs9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3Fs L2dyYW50LnNxbCddKSwgZGF0YT1yZXN1bHQpCisKKyAgICAgICAgU1FMX2Rh dGEgKz0gU1FMCisgICAgICAgIFNRTF9kYXRhICs9IHNlbGYuZ2V0X3J1bGVf c3FsKHZpZCkKKyAgICAgICAgU1FMX2RhdGEgKz0gc2VsZi5nZXRfdHJpZ2dl cl9zcWwodmlkKQorICAgICAgICBTUUxfZGF0YSArPSBzZWxmLmdldF9pbmRl eF9zcWwodmlkKQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJl c3BvbnNlPVNRTF9kYXRhKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBnZXRfdGJsc3BjKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB0byByZXR1 cm4gbGlzdCBvZiB0YWJsZXNwYWNlcworICAgICAgICAiIiIKKyAgICAgICAg cmVzID0gW10KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsICdzcWwvZ2V0X3RibHNwYy5zcWwnXSkKKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZvciByb3cg aW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQo CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydsYWJlbCc6IHJvd1sn c3BjbmFtZSddLCAndmFsdWUnOiByb3dbJ3NwY25hbWUnXX0KKyAgICAgICAg ICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1yZXMs CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAg ICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZp ZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMg dGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25zZQor ICAgICAgICBmb3IgdGhlIHZpZXcgbm9kZS4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAg IHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElE CisgICAgICAgICAgICB2aWQ6IFZpZXcgSUQKKyAgICAgICAgIiIiCisgICAg ICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhz ZWxmLmNvbm4sIHZpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2Uo CisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVuY2llcyBhbmQg cmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgdmll dyBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAg ICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHZpZDog VmlldyBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW5jaWVzX3Jl c3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4sIHZpZCkK KyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICBy ZXNwb25zZT1kZXBlbmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAgc3Rh dHVzPTIwMAorICAgICAgICAgICAgKQorCisKK2NsYXNzIE1hdGVyaWFsaXpl ZFZpZXdOb2RlKFZpZXdOb2RlLCBWYWN1dW1TZXR0aW5ncyk6CisgICAgIiIi CisgICAgVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGlu ZyByb3V0ZXMgZm9yCisgICAgbWF0ZXJpYWxpemVkIHZpZXcgbm9kZS4KKwor ICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKipr d2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUg dGhlIE1hdGVyaWFsaXplZFZpZXcKKyAgICAgIGFuZCBpdCdzIGJhc2Ugdmll dy4KKworICAgICogbW9kdWxlX2pzKCkKKyAgICAgIC0gVGhpcyBwcm9wZXJ0 eSBkZWZpbmVzIChpZiBqYXZhc2NyaXB0KSBleGlzdHMgZm9yIHRoaXMgbm9k ZS4KKyAgICAgICAgT3ZlcnJpZGUgdGhpcyBwcm9wZXJ0eSBmb3IgeW91ciBv d24gbG9naWMKKworICAgICogY3JlYXRlKGdpZCwgc2lkLCBkaWQsIHNjaWQp CisgICAgICAtIFJhaXNlIGFuIGVycm9yIC0gd2UgY2FuIG5vdCBjcmVhdGUg YSBtYXRlcmlhbCB2aWV3LgorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRp ZCwgc2NpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0 aGUgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIG1hdGVyaWFsIG5vZGUKKworICAg ICogZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBzY2lkKToKKyAgICAgIC0gUmFp c2UgYW4gZXJyb3IgLSB3ZSBjYW4gbm90IGRlbGV0ZSBhIG1hdGVyaWFsIHZp ZXcuCisKKyAgICAqIGdldF9zcWwoZGF0YSwgc2NpZCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEK KworICAgICIiIgorCisgICAgbm9kZV90eXBlID0gbWF0ZXJpYWxpemVkX3Zp ZXdfYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgZGVmIF9faW5pdF9fKHNl bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBJ bml0aWFsaXplIHRoZSB2YXJpYWJsZXMgdXNlZCBieSBtZXRob2RzIG9mIFZp ZXdOb2RlLgorICAgICAgICAiIiIKKworICAgICAgICBzdXBlcihNYXRlcmlh bGl6ZWRWaWV3Tm9kZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdz KQorCisgICAgICAgIHNlbGYudGVtcGxhdGVfaW5pdGlhbCA9ICdtYXRlcmlh bGl6ZWRfdmlldycKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcGdf dGVtcGxhdGVfcGF0aCh2ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0 dXJucyB0aGUgdGVtcGxhdGUgcGF0aCBmb3IgUG9zdGdyZVNRTCBzZXJ2ZXJz LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgdmVyID49IDkwMzAwOgorICAg ICAgICAgICAgcmV0dXJuICdwZy85LjNfcGx1cycKKyAgICAgICAgcmV0dXJu ICdwZy85LjNfcGx1cycKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGdpZCwg c2lkLCBkYXRhLCBzY2lkLCB2aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZyb20gbW9k ZWwgZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2NpZCBpcyBOb25l OgorICAgICAgICAgICAgcmV0dXJuIGJhZF9yZXF1ZXN0KCdDYW5ub3QgY3Jl YXRlIGEgVmlldyEnKQorCisgICAgICAgIHJldHVybiBzdXBlcihNYXRlcmlh bGl6ZWRWaWV3Tm9kZSwgc2VsZikuZ2V0X3NxbCgKKyAgICAgICAgICAgICAg ICBnaWQsIHNpZCwgZGF0YSwgc2NpZCwgdmlkKQorCisgICAgZGVmIGdldFNR TChzZWxmLCBnaWQsIHNpZCwgZGF0YSwgdmlkPU5vbmUpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbnJhdGUgc3FsIGZy b20gbW9kZWwgZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgaWYgdmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAg ICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0aWVz LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgIHZpZD12aWQsCisgICAgICAg ICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZAor ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAg ICAgICAgICAgIG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAg ICAgICAgICAgIGlmICduYW1lJyBub3QgaW4gZGF0YToKKyAgICAgICAgICAg ICAgICAgICAgZGF0YVsnbmFtZSddID0gcmVzWydyb3dzJ11bMF1bJ25hbWUn XQorICAgICAgICAgICAgICAgIGlmICdzY2hlbWEnIG5vdCBpbiBkYXRhOgor ICAgICAgICAgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHJlc1sncm93 cyddWzBdWydzY2hlbWEnXQorCisgICAgICAgICAgICAgICAgIyBtZXJnZSB2 YWN1dW0gbGlzdHMgaW50byBvbmUKKyAgICAgICAgICAgICAgICBkYXRhWyd2 YWN1dW1fZGF0YSddID0ge30KKyAgICAgICAgICAgICAgICBkYXRhWyd2YWN1 dW1fZGF0YSddWydjaGFuZ2VkJ10gPSBbXQorICAgICAgICAgICAgICAgIGRh dGFbJ3ZhY3V1bV9kYXRhJ11bJ3Jlc2V0J10gPSBbXQorICAgICAgICAgICAg ICAgIGlmICgndmFjdXVtX3RhYmxlJyBpbiBkYXRhKToKKyAgICAgICAgICAg ICAgICAgICAgaWYgKCdjaGFuZ2VkJyBpbiBkYXRhWyd2YWN1dW1fdGFibGUn XSk6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRh Wyd2YWN1dW1fdGFibGUnXVsnY2hhbmdlZCddOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICd2YWx1ZScgaW4gaXRlbS5rZXlzKCk6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW1bJ3ZhbHVlJ10g aXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ3Jlc2V0J10uYXBwZW5kKGl0ZW0pCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0 YSddWydjaGFuZ2VkJ10uYXBwZW5kKGl0ZW0pCisKKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgnYXV0b3ZhY3V1bV9lbmFibGVkJyBpbiBkYXRhIGFu ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRhdGFbJ2F1dG92 YWN1dW1fZW5hYmxlZCddKS5sb3dlcigpID09ICd0cnVlJyk6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hh bmdlZCddLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeyduYW1lJzogJ2F1dG92YWN1dW1fZW5hYmxlZCcsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiBkYXRhWydhdXRvdmFj dXVtX2VuYWJsZWQnXX0pCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlm IChvbGRfZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10gPT0gJ3RydWUnKToK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0 YSddWydjaGFuZ2VkJ10uYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7J25hbWUnOiAnYXV0b3ZhY3V1bV9lbmFibGVkJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6ICd0cnVl J30pCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5n ZWQnXSA9IHt9CisKKyAgICAgICAgICAgICAgICBrZXkgPSAnZGF0YWNsJwor ICAgICAgICAgICAgICAgIGlmIGtleSBpbiBkYXRhIGFuZCBkYXRhW2tleV0g aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGlmICdhZGRlZCcg aW4gZGF0YVtrZXldOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtr ZXldWydhZGRlZCddID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKAorICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV1bJ2FkZGVkJ10pCisgICAg ICAgICAgICAgICAgICAgIGlmICdjaGFuZ2VkJyBpbiBkYXRhW2tleV06Cisg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV1bJ2NoYW5nZWQnXSA9 IHNlbGYucGFyc2VfcHJpdmlsZWdlcygKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YVtrZXldWydjaGFuZ2VkJ10pCisgICAgICAgICAgICAgICAg ICAgIGlmICdkZWxldGVkJyBpbiBkYXRhW2tleV06CisgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhW2tleV1bJ2RlbGV0ZWQnXSA9IHNlbGYucGFyc2Vf cHJpdmlsZWdlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtr ZXldWydkZWxldGVkJ10pCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg ICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwg J3NxbC91cGRhdGUuc3FsJ10pLCBkYXRhPWRhdGEsCisgICAgICAgICAgICAg ICAgICAgICAgICBvX2RhdGE9b2xkX2RhdGEsIGNvbm49c2VsZi5jb25uKQor ICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdHIoZSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisgICAgICAgICAgICAgICAgICAg ICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3NjaGVtYScsCisgICAg ICAgICAgICAgICAgICAgICdkZWZpbml0aW9uJworICAgICAgICAgICAgICAg IF0KKyAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6 CisgICAgICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIC0tIGRlZmluaXRpb24g aW5jb21wbGV0ZSIKKworICAgICAgICAgICAgICAgICMgbWVyZ2UgdmFjdXVt IGxpc3RzIGludG8gb25lCisgICAgICAgICAgICAgICAgdmFjdXVtX3RhYmxl ID0gW2l0ZW0gZm9yIGl0ZW0gaW4gZGF0YVsndmFjdXVtX3RhYmxlJ10KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ3ZhbHVlJyBpbiBp dGVtLmtleXMoKV0KKyAgICAgICAgICAgICAgICB2YWN1dW1fdG9hc3QgPSBb CisgICAgICAgICAgICAgICAgICAgIHsnbmFtZSc6ICd0b2FzdC4nK2l0ZW1b J25hbWUnXSwgJ3ZhbHVlJzppdGVtWyd2YWx1ZSddfQorICAgICAgICAgICAg ICAgICAgICBmb3IgaXRlbSBpbiBkYXRhWyd2YWN1dW1fdG9hc3QnXSBpZiAn dmFsdWUnIGluIGl0ZW0ua2V5cygpXQorCisgICAgICAgICAgICAgICAgIyBh ZGQgdmFjdXVtX3RvYXN0IGRpY3QgdG8gdmFjdXVtX2RhdGEgb25seSBpZgor ICAgICAgICAgICAgICAgICMgdG9hc3QncyBhdXRvdmFjdXVtIGlzIGVuYWJs ZWQKKyAgICAgICAgICAgICAgICBpZiAoJ3RvYXN0X2F1dG92YWN1dW1fZW5h YmxlZCcgaW4gZGF0YSBhbmQKKyAgICAgICAgICAgICAgICAgICBkYXRhWyd0 b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnXSBpcyBUcnVlKToKKyAgICAgICAg ICAgICAgICAgICAgZGF0YVsndmFjdXVtX2RhdGEnXSA9IHZhY3V1bV90YWJs ZSArIHZhY3V1bV90b2FzdAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgICAgICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ10gPSB2YWN1dW1f dGFibGUKKworICAgICAgICAgICAgICAgIGlmICdkYXRhY2wnIGluIGRhdGEg YW5kIGRhdGFbJ2RhdGFjbCddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg ICAgICAgICBkYXRhWydkYXRhY2wnXSA9IHNlbGYucGFyc2VfcHJpdmlsZWdl cyhkYXRhWydkYXRhY2wnXSkKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgICAgICBbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2NyZWF0ZS5zcWwnXSksIGRhdGE9ZGF0 YSkKKyAgICAgICAgICAgICAgICBpZiBkYXRhWydkZWZpbml0aW9uJ106Cisg ICAgICAgICAgICAgICAgICAgIFNRTCArPSAiXG4iCisgICAgICAgICAgICAg ICAgICAgIFNRTCArPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAg ICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9n cmFudC5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAgICAgICAgIHJldHVybiBT UUwKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0 X3RhYmxlX3ZhY3V1bShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAg ICAgICAgIiIiCisgICAgICAgIEZldGNoIHRoZSBkZWZhdWx0IHZhbHVlcyBm b3IgYXV0b3ZhY3V1bQorICAgICAgICBmaWVsZHMsIHJldHVybiBhbiBhcnJh eSBvZgorICAgICAgICAgIC0gbGFiZWwKKyAgICAgICAgICAtIG5hbWUKKyAg ICAgICAgICAtIHNldHRpbmcKKyAgICAgICAgdmFsdWVzCisgICAgICAgICIi IgorCisgICAgICAgIHJlcyA9IHNlbGYuZ2V0X3ZhY3V1bV90YWJsZV9zZXR0 aW5ncyhzZWxmLmNvbm4pCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAorICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdldF90b2FzdF90 YWJsZV92YWN1dW0oc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAg ICAgICIiIgorICAgICAgICBGZXRjaCB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9y IGF1dG92YWN1dW0KKyAgICAgICAgZmllbGRzLCByZXR1cm4gYW4gYXJyYXkg b2YKKyAgICAgICAgICAtIGxhYmVsCisgICAgICAgICAgLSBuYW1lCisgICAg ICAgICAgLSBzZXR0aW5nCisgICAgICAgIHZhbHVlcworICAgICAgICAiIiIK KyAgICAgICAgcmVzID0gc2VsZi5nZXRfdmFjdXVtX3RvYXN0X3NldHRpbmdz KHNlbGYuY29ubikKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgK KyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAg ICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgor ICAgICAgICBGZXRjaGVzIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIGluZGl2aWR1 YWwgdmlldworICAgICAgICBhbmQgcmVuZGVyIGluIHRoZSBwcm9wZXJ0aWVz IHRhYgorICAgICAgICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKAorICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCddCisgICAgICAgICAgKSwgdmlkPXZp ZCwgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQpCisgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBT UUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9hY2wuc3FsJ10pLCB2aWQ9dmlkKQor ICAgICAgICBzdGF0dXMsIGRhdGFjbHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisKKyAgICAgICAgZm9yIHJvdyBpbiBkYXRhY2xyZXNbJ3Jvd3MnXToKKyAg ICAgICAgICAgIHByaXYgPSBzZWxmLnBhcnNlX3ZpZXdzX3ByaXZpbGVnZXMo cm93KQorICAgICAgICAgICAgaWYgcm93WydkZWZ0eXBlJ10gaW4gcmVzWydy b3dzJ11bMF06CisgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bcm93 WydkZWZ0eXBlJ11dLmFwcGVuZChwcml2KQorICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVtyb3dbJ2RlZnR5cGUn XV0gPSBbcHJpdl0KKworICAgICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVsw XQorCisgICAgICAgICMgc2VuZGluZyByZXN1bHQgdG8gZm9ybXR0ZXIKKyAg ICAgICAgZnJtdGRfcmVzbHQgPSBzZWxmLmZvcm1hdHRlcihyZXN1bHQpCisK KyAgICAgICAgIyBtZXJnaW5nIGZvcm1hdGVkIHJlc3VsdCB3aXRoIG1haW4g cmVzdWx0IGFnYWluCisgICAgICAgIHJlc3VsdC51cGRhdGUoZnJtdGRfcmVz bHQpCisKKyAgICAgICAgcmVzdWx0Wyd2YWN1dW1fdGFibGUnXSA9IHNlbGYu cGFyc2VfdmFjdXVtX2RhdGEoCisgICAgICAgICAgICBzZWxmLmNvbm4sIHJl c3VsdCwgJ3RhYmxlJykKKyAgICAgICAgcmVzdWx0Wyd2YWN1dW1fdG9hc3Qn XSA9IHNlbGYucGFyc2VfdmFjdXVtX2RhdGEoCisgICAgICAgICAgICBzZWxm LmNvbm4sIHJlc3VsdCwgJ3RvYXN0JykKKworICAgICAgICByZXR1cm4gYWph eF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXN1bHQs CisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAg ICkKKworVmlld05vZGUucmVnaXN0ZXJfbm9kZV92aWV3KHZpZXdfYmx1ZXBy aW50KQorTWF0ZXJpYWxpemVkVmlld05vZGUucmVnaXN0ZXJfbm9kZV92aWV3 KG1hdGVyaWFsaXplZF92aWV3X2JsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL2NoaWxkcmVuL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvY2hpbGRyZW4vX19pbml0X18ucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE3NTM5ZgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL2NoaWxkcmVuL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsMTIgQEAKKyIiIgorV2Ugd2lsbCB1c2Ug dGhlIGV4aXNpdGluZyBtb2R1bGVzIGZvciBjcmVhdGluZyBjaGlsZHJlbiBt b2R1bGUgdW5kZXIKK21hdGVyaWFsaXplIHZpZXdzLgorIiIiCitmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnNjaGVtYXMudGFibGVzLmNvbHVtbnMgXAorICBpbXBvcnQgYmx1ZXByaW50 IGFzIGNvbHVtbnNfbW9kdWxlCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLmlu ZGV4ZXMgXAorICBpbXBvcnQgYmx1ZXByaW50IGFzIGluZGV4ZXNfbW9kdWxl cworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50cmlnZ2VycyBcCisgIGltcG9y dCBibHVlcHJpbnQgYXMgdHJpZ2dlcnNfbW9kdWxlcworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRhYmxlcy5ydWxlcyBcCisgIGltcG9ydCBibHVlcHJpbnQgYXMgcnVs ZXNfbW9kdWxlcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv c3RhdGljL2ltZy9jb2xsLW1hdGVyaWFsaXplZF92aWV3LnBuZyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvY29sbC1tYXRlcmlhbGl6ZWRf dmlldy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBlNjVhOTZlMTgw MDQxMDRiMDQxYjBhZTMyNTc5YjI2YWU5NzA1OApHSVQgYmluYXJ5IHBhdGNo CmxpdGVyYWwgMzc0CnpjbVYtKzBnMypKUCk8aDszS3xMazAwMGUxTkpMVHEw MDBtRzAwMG1PMV5AczZBTV5pVjAwMDA5YTdiQm0wMDBYVQp6MDAwWFUwUldu dTd5dGtQQ2BtKj9SNTs2fWxmTyNDUCF4eTErZVY2bCl5O3kqQVA3M1JoQGpR UXI0QnhZTHB6QmUKejteSCQxO3RRbE47TiY2PlBBKD5oTEFPRSQyYjxZTjVA VkN4PiExVl5uaXxQbkV7QSk1LX0hZUJsc3AyIThKd3Z7CnpfeHhZTiZaYTk4 Zk5BTSFyK0VsYjRLPHZGcGd9ZDdxYXkxRlJaQiFsZURhUk5vNERycl5eVSN1 cDNyXyVaeXJ0eQp6TVcwYG9COCtfaXdDclFNSVQkUE0rRDZMT2lhM3BmWWs4 NWpTNUJEcFQyeTJtdVhAa3olZlUjJFQpPVJtaGQxcEkKek57PilfeGgzVFNs b0V2K3N1Z2tDbnpfUVhedSpxNl5iPFE1VV9WYEVLTXJtNmVnQnozdyVaKjlO LTJhOG4za1NgCnpYaGxjWndUKUM2QkxTX0FlSWdrVSVNVCp5NlVQM30xVEkp d1VMPWZ0QXtoV35gREkkd2s2MUh+TWNIbFUzdWsrOApVdn0tPSgmO1M0YzA3 KnFvTTZOPCRmPCFAQHAjVDU/CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvaW1nL2Nv bGwtdmlldy5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvaW1n L2NvbGwtdmlldy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc4ZDUz MzY4NGI4YmQ3ZTE4NTc0OWM0ZjFjOTYyMGFmMjNkMTE0YgpHSVQgYmluYXJ5 IHBhdGNoCmxpdGVyYWwgNDE4CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBe MHdCITYzP3d5bGBHYkt9WT1CUlFFMDh8PnhPZEtSblJ6RF45e3JqMgp6X31s VkZAQWZAO2JAfVBAZChXUmdlZkkzeHFvPXA3S1ZQfSFWKVVjYC1UKGdtZC0l VjVgJUFVfHxObjEpcD8+R2gKem4oWiZ0UEphJE57PXhnZnpxVUpuPlRkb2pK XnM9QUBPeWBTWl9JWVIoKEFIV3swMytOVkBaJS1Gb1ZPaDgpK2E7CnpsREU1 eVExeloxQWUoYCt6JDNDNE5QQj4+K3NTTUBBUzIoPyNXNihVYSVne35QPWYt R3YrMjdQOVY+UUp8NDtVNgp6YmUhR0tIK2tQU01OaCUwWUQ7d1ZQcCEmcCQ9 SDJRYT40X2lDLVdzYDRvVnVga1h2REllNWxfZVZ8andXOys1K1MKellneTZ+ UFlkeSstY1M0NSl+azJaISRXQUFVY3Qrb2tea3JDK01sVnMrcHBmeWNgQEZg bkM8PmwtVk1xP3Q1cil9CnpCVDc7ZE9IIT9waSZCOVVnT1AhdXB7e3xFdTkx MCZwXjI1RHJJbzN2d3Q8PElma0ZQaGtldyhSYWBSSSUoPCpVbQpVa2JDQHc2 e3Z5MSk3OCZxb2xgOyswTFFNVzVkWilICgpsaXRlcmFsIDAKSGNtVj9kMDAw MDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMv aW1nL21hdGVyaWFsaXplZF92aWV3LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3N0YXRpYy9pbWcvbWF0ZXJpYWxpemVkX3ZpZXcucG5nCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjdiNzJiZGJiMDI0ZDIwNmE5Y2NjY2MzMDdiOTgw YWY3ZGM5Y2VhODgKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM0NAp6Y21l QVNATj8ob2xIeWB1VkJxIWlhMHZwXjB3QiE2MXw7UF98NCMlYG9DT3x7I1M5 R0chWFY3WkZsJndrMHxPKE0KenI7QjVWI3AmYihpSHJqciR2SGJFe3tCQ0B6 MWJ6eFhvX1p2IThGfnBsbXNBWDxsT2hHWnB5KjRUZT0hUVBGRmJtCnpVO1l0 flByWnd6I1EhMj1nTVpIKHZqM2RfKGZtO09hQXc9P149MWM7SzRBT3ZgK3hn R2BfSktSdkVzS3MrfHBabgp6O14+RCp4Nk9UK0NwZDA4biFJTSNeTFoxRjNN M3kpNzJjSDspMyloQkB3KDwkRU50dUkhKzM3WCYzWUtwZTcpaU8Kem83RUJf RT4wNTlXVHJRRVM5O3hYZGlkRCUhSzEwa0pScVBzJjBre0RmOUgldnU/KE0h eHROcz8mdnxVYik2KmokCnpieXErdiR5eGc1JT9qUUUhfUNjJEtFRyFfZTgy dl9xfXxffDY5KjEjPXlIczhaZnlqRGhyaSNLMUM4PERwI0Y0bwpsZkEjPFFe X1RwTWc1KVpJZnQ0S3xFNEtVcENTWHU4YylJJHp0YUQwZTBzeFMpbG0tOSoK CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvdmlldy5wbmcgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy9zdGF0aWMvaW1nL3ZpZXcucG5nCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjQ0MTE2ZGI1NjQ5NmJiNDc3YzhlY2U3ZDNmZGRhNjY2ZTFi Mzc1OGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQzNwp6Y21lQVNATj8o b2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR2JLfVhARjBORTA4fD54T2RL Um5hQlRvQU80PjcKejtPbjlYWitBVUBkR1lEPGBfRz8wZWZJM3g8RU9XN0pZ UkZ7TWVAUV5udmVjPlotMSV3fE5zQihGVnReO3A3UHx5Cnpqb1U5YlQ9fGk2 O2NNZFEmdGI8dGRTQ2dUYkt6VSFAc0hseVUjTEMmLStsYXBfayh8SmNtQ0Fm ezhmN09OQX1fTwp6NCpUQWk/UnVzNlJkclAmJnw9MXRBaXJQK2hpNW1eSyU2 OVJjTmY3JlRXeG0lSWgrTF5rO09wVDFCfjVIWDQ/VDcKelMpTU1BQXJoQzk2 QW0hK187QGc9OTV7MDMoNVlrUjR4VClFXno3bCY+X1FMUkgzU2x4STU/YWJv ZndxI1BwR2huCnozeTNgd2F1cE8xbzw2fXZhS2ZaJTZCdlV3QmB7aH1YeFB6 VzZUPmlqcCtSPHspJjwjUjNzeC1BKE5rUSFYY2Ijbgp6PDBESHFwWXpOTkp6 TG18fDUkeXgwSkslTCM1Sk5NQzl4I2NEIUN7WE5IR3swNyNpcHI4dEVEc2g4 UClHbkhYRHsKem19KG9DU3tXRzNkI0FTd01NR3xXTkBpTG1NMXo0UFNPWllD aUlzc0ZNOG0xK3A9KkV8Nyg4QTVULUdAeUd5d254CkNtOSgoewoKbGl0ZXJh bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L2Nzcy9tYXRlcmlh bGl6ZWRfdmlldy5jc3MgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvY3NzL21hdGVyaWFsaXplZF92aWV3LmNz cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGI2NGJh Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL21hdGVyaWFsaXplZF92aWV3L2Nzcy9tYXRlcmlhbGl6ZWRfdmll dy5jc3MKQEAgLTAsMCArMSwxMiBAQAorLmljb24tbWF0ZXJpYWxpemVkX3Zp ZXd7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgne3sgdXJsX2ZvcignTk9E RS1tYXRlcmlhbGl6ZWRfdmlldy5zdGF0aWMnLCBmaWxlbmFtZT0naW1nL21h dGVyaWFsaXplZF92aWV3LnBuZycpIH19JykgIWltcG9ydGFudDsKKyAgYm9y ZGVyLXJhZGl1czogMTBweDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl cGVhdDsKKyAgYWxpZ24tY29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1h bGlnbjogbWlkZGxlOworICBoZWlnaHQ6IDEuM2VtOworfQorCisuc3FsX2Zp ZWxkX2hlaWdodF8yODAgeworICBoZWlnaHQ6IDI4MHB4OworfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFs aXplZF92aWV3L2pzL21hdGVyaWFsaXplZF92aWV3LmpzIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L2pzL21h dGVyaWFsaXplZF92aWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjI1MThhN2QKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvanMv bWF0ZXJpYWxpemVkX3ZpZXcuanMKQEAgLTAsMCArMSwyNjkgQEAKK2RlZmlu ZSgKKyAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0 cmluZycsICdwZ2FkbWluJywKKyAgICAncGdhZG1pbi5icm93c2VyJywgJ2Nv ZGVtaXJyb3InLCAncGdhZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxlZ2Un XSwKKworZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBD b2RlTWlycm9yKSB7CisKKyAgLyoqCisgICAgQ3JlYXRlIGFuZCBhZGQgYSB2 aWV3IGNvbGxlY3Rpb24gaW50byBub2RlcworICAgIEBwYXJhbSB7dmFyaWFi bGV9IGxhYmVsIC0gTGFiZWwgZm9yIE5vZGUKKyAgICBAcGFyYW0ge3Zhcmlh YmxlfSB0eXBlIC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJs ZX0gY29sdW1ucyAtIExpc3Qgb2YgY29sdW1ucyB0bworICAgICAgZGlzcGxh eSB1bmRlciB1bmRlciBwcm9wZXJ0aWVzLgorICAgKi8KKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ2NvbGwtbWF0ZXJpYWxpemVkX3ZpZXcnXSkgeworICAg IHZhciBtYXRlcmlhbGl6ZWRfdmlld3M9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rl c1snY29sbC1tYXRlcmlhbGl6ZWRfdmlldyddID0KKyAgICAgIHBnQWRtaW4u QnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdt YXRlcmlhbGl6ZWRfdmlldycsCisgICAgICAgIGxhYmVsOiAne3sgXygiTWF0 ZXJpYWxpemVkIFZpZXdzIikgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC1t YXRlcmlhbGl6ZWRfdmlldycsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScs ICdvd25lciddCisgICAgICB9KTsKKyAgfQorCisgIC8qKgorICAgIENyZWF0 ZSBhbmQgQWRkIGEgVmlldyBOb2RlIGludG8gbm9kZXMKKyAgICBAcGFyYW0g e3ZhcmlhYmxlfSBwYXJlbnRfdHlwZSAtIFRoZSBsaXN0IG9mIG5vZGVzCisg ICAgdW5kZXIgd2hpY2ggdGhpcyBub2RlIHRvIGRpc3BsYXkKKyAgICBAcGFy YW0ge3ZhcmlhYmxlfSB0eXBlIC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFt IHt2YXJpYWJsZX0gaGFzU1FMIC0gVG8gc2hvdyBTUUwgdGFiCisgICAgQHBh cmFtIHt2YXJpYWJsZX0gY2FuRHJvcCAtIEFkZHMgZHJvcCB2aWV3IG9wdGlv bgorICAgIGluIHRoZSBjb250ZXh0IG1lbnUKKyAgICBAcGFyYW0ge3Zhcmlh YmxlfSBjYW5Ecm9wQ2FzY2FkZSAtIEFkZHMgZHJvcCBDYXNjYWRlCisgICAg dmlldyBvcHRpb24gaW4gdGhlIGNvbnRleHQgbWVudQorICAgKi8KKyAgaWYg KCFwZ0Jyb3dzZXIuTm9kZXNbJ21hdGVyaWFsaXplZF92aWV3J10pIHsKKyAg ICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ21hdGVyaWFsaXplZF92aWV3J10g PSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50 X3R5cGU6IFsnc2NoZW1hJywgJ2NhdGFsb2cnXSwKKyAgICAgIHR5cGU6ICdt YXRlcmlhbGl6ZWRfdmlldycsCisgICAgICBsYWJlbDogJ3t7IF8oIk1hdGVy aWFsaXplZCBWaWV3IikgfX0nLAorICAgICAgaGFzU1FMOiAgdHJ1ZSwKKyAg ICAgIGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBjb2xsZWN0aW9uX3R5cGU6 ICdjb2xsLW1hdGVyaWFsaXplZF92aWV3JywKKyAgICAgIGNhbkRyb3A6IHBn QnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2FuQ2hpbGREcm9wLAorICAgICAg Y2FuRHJvcENhc2NhZGU6IHBnQnJvd3Nlci5Ob2Rlc1snc2NoZW1hJ10uY2Fu Q2hpbGREcm9wLAorICAgICAgSW5pdDogZnVuY3Rpb24oKSB7CisKKyAgICAg ICAgLy8gQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzCisg ICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgIHJldHVy bjsKKworICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKworICAg ICAgICAvKioKKyAgICAgICAgICBBZGQgImNyZWF0ZSB2aWV3IiBtZW51IG9w dGlvbiBpbnRvIGNvbnRleHQgYW5kIG9iamVjdCBtZW51CisgICAgICAgICAg Zm9yIHRoZSBmb2xsb3dpbmcgbm9kZXM6CisgICAgICAgICAgY29sbC1tYXRl cmlhbGl6ZWRfdmlldywgdmlldyBhbmQgc2NoZW1hLgorICAgICAgICAgIEBw cm9wZXJ0eSB7ZGF0YX0gLSBBbGxvdyBjcmVhdGUgdmlldyBvcHRpb24gb24g c2NoZW1hIG5vZGUgb3IKKyAgICAgICAgICBzeXN0ZW0gdmlldyBub2Rlcy4K KyAgICAgICAgICovCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sK KyAgICAgICAgICBuYW1lOiAnY3JlYXRlX21hdGVyaWFsaXplZF92aWV3X29u X2NvbGwnLCBub2RlOiAnY29sbC1tYXRlcmlhbGl6ZWRfdmlldycsCisgICAg ICAgICAgbW9kdWxlOiB0aGlzLCBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250 ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAg ICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6 ICd7eyBfKCJNYXRlcmlhbGl6ZWQgVmlldy4uLiIpIH19JywKKyAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tbWF0ZXJpYWxpemVkX3ZpZXcnLCBk YXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAg ICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAg ICAgbmFtZTogJ2NyZWF0ZV9tYXRlcmlhbGl6ZWRfdmlldycsIG5vZGU6ICdt YXRlcmlhbGl6ZWRfdmlldycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBh cHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hv d19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVh dGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCJNYXRlcmlhbGl6ZWQg Vmlldy4uLiIpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGlj b24tbWF0ZXJpYWxpemVkX3ZpZXcnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRl JywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0 ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9tYXRl cmlhbGl6ZWRfdmlldycsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMs CisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBj YWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNh dGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygi TWF0ZXJpYWxpemVkIFZpZXcuLi4iKSB9fScsCisgICAgICAgICAgaWNvbjog J3djVGFiSWNvbiBpY29uLW1hdGVyaWFsaXplZF92aWV3JywgZGF0YToge2Fj dGlvbjogJ2NyZWF0ZScsIGNoZWNrOiBmYWxzZX0sCisgICAgICAgICAgZW5h YmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9CisgICAgICAgIF0pOworICAg ICAgfSwKKworICAgICAgLyoqCisgICAgICAgIERlZmluZSBtb2RlbCBmb3Ig dGhlIHZpZXcgbm9kZSBhbmQgc3BlY2lmeSB0aGUKKyAgICAgICAgcHJvcGVy dGllcyBvZiB0aGUgbW9kZWwgaW4gc2NoZW1hLgorICAgICAgICovCisgICAg ICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsK KyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgfSwKKyAgICAgICAgc2No ZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAne3sgXygi TmFtZSIpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTog J3RleHQnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDog J29pZCcsIGxhYmVsOid7eyBfKCJPSUQiKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRydWUsIG1v ZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg ICAgICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7IF8oIk93bmVyIikgfX0n LCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1s aXN0LWJ5LW5hbWUnLCBub2RlOiAncm9sZScKKyAgICAgICAgfSwKKyAgICAg ICAgeworICAgICAgICAgIGlkOiAnc2NoZW1hJywgbGFiZWw6J3t7IF8oIlNj aGVtYSIpIH19JywgY2VsbDogJ3N0cmluZycsIGZpcnN0X2VtcHR5OiBmYWxz ZSwKKyAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsIG5vZGU6ICdzY2hlbWEn LAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1l Q29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgcmVuZGVyOiBmdW5jdGlv bigpeworCisgICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgcGFyZW50J3Mg cmVuZGVyIG1ldGhvZAorICAgICAgICAgICAgICBCYWNrZm9ybS5Ob2RlTGlz dEJ5TmFtZUNvbnRyb2wucHJvdG90eXBlLnJlbmRlci5hcHBseSh0aGlzLCBh cmd1bWVudHMpOworCisgICAgICAgICAgICAgIC8vIFNldCBzY2hlbWEgZGVm YXVsdCB2YWx1ZSB0byBpdHMgcGFyZW50IFNjaGVtYQorICAgICAgICAgICAg ICBpZih0aGlzLm1vZGVsLmlzTmV3KCkpeworICAgICAgICAgICAgICAgIHRo aXMubW9kZWwuc2V0KHsnc2NoZW1hJzogdGhpcy5tb2RlbC5ub2RlX2luZm8u c2NoZW1hLmxhYmVsfSk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSks CisKKyAgICAgICAgICAvLyBEb24ndCBzaG93IHNjaGVtYSBzdGFydHMgd2l0 aCAicGdfIgorICAgICAgICAgIGZpbHRlcjogZnVuY3Rpb24oZCl7CisgICAg ICAgICAgICBpZihkLmxhYmVsICYmIGQubGFiZWwubWF0Y2goL15wZ18vKSl7 CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAg ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnY29tbWVudCcsIGxh YmVsOid7eyBfKCJDb21tZW50IikgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAg ICAgICAgICB0eXBlOiAnbXVsdGlsaW5lJworICAgICAgICB9LAorICAgICAg ICB7CisgICAgICAgICAgaWQ6ICdzeXN0ZW1fdmlldycsIGxhYmVsOid7eyBf KCJTeXN0ZW0gdmlldz8iKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydw cm9wZXJ0aWVzJ10sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg ICBpZDogJ2RlZmluaXRpb24nLCBsYWJlbDone3sgXygiIikgfX0nLCBjZWxs OiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsn Y3JlYXRlJywgJ2VkaXQnXSwgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAgICAg ICAgICBjb250cm9sOiBCYWNrZm9ybS5TcWxGaWVsZENvbnRyb2wsIGV4dHJh Q2xhc3NlczpbJ3NxbF9maWVsZF9oZWlnaHRfMjgwJ10KKyAgICAgICAgfSwK KyAgICAgICAgLy8gQWRkIFByaXZpbGVnZSBDb250cm9sCisgICAgICAgIHsK KyAgICAgICAgICBpZDogJ2RhdGFjbCcsIGxhYmVsOiAne3sgXygiUHJpdmls ZWdlcyIpIH19JywKKyAgICAgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuUHJpdmlsZWdlUm9sZU1vZGVsLmV4dGVuZCgKKyAgICAgICAgICAg IHtwcml2aWxlZ2VzOiBbJ2EnLCAncicsICd3JywgJ2QnLCAnRCcsICd4Jywg J3QnXX0pLCB1bmlxdWVDb2wgOiBbJ2dyYW50ZWUnXSwKKyAgICAgICAgICBl ZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6ICd7 eyBfKCJTZWN1cml0eSIpIH19JywKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQn LCAnY3JlYXRlJ10sIGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAor ICAgICAgICAgIGNvbnRyb2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rpb24nLCBw cmlvcml0eTogMworICAgICAgICB9LAorCisgICAgICAgIC8vIEFkZCBTZWN1 cml0eSBMYWJlbHMgQ29udHJvbAorICAgICAgICB7CisgICAgICAgICAgaWQ6 ICdzZWNsYWJlbHMnLCBsYWJlbDogJ3t7IF8oIlNlY3VyaXR5IExhYmVscyIp IH19JywKKyAgICAgICAgICBtb2RlbDogQmFja2Zvcm0uU2VjdXJpdHlNb2Rl bCwgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAg ICAgICAgY2FuRWRpdDogZmFsc2UsIGdyb3VwOiAne3sgXygiU2VjdXJpdHki KSB9fScsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAgICBtb2RlOiBbJ2Vk aXQnLCAnY3JlYXRlJ10sIGNhbkFkZDogdHJ1ZSwKKyAgICAgICAgICBjb250 cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywgdW5pcXVlQ29sIDogWydw cm92aWRlciddCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBp ZDogJ3dpdGhfZGF0YScsIGxhYmVsOiAne3sgXygiV2l0aCBEYXRhIikgfX0n LAorICAgICAgICAgIGdyb3VwOiAne3sgXygiU3RvcmFnZSIpIH19JywgbW9k ZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIHR5cGU6ICdzd2l0 Y2gnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdz cGNuYW1lJywgbGFiZWw6ICd7eyBfKCJUYWJsZXNwYWNlIikgfX0nLAorICAg ICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ3RleHQnLCBncm91cDog J3t7IF8oIlN0b3JhZ2UiKSB9fScsCisgICAgICAgICAgY29udHJvbDogJ25v ZGUtbGlzdC1ieS1uYW1lJywgbm9kZTogJ3RhYmxlc3BhY2UnLAorICAgICAg ICAgIGZpbHRlcjogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgaWYgKG0u bGFiZWwgPT0gInBnX2dsb2JhbCIpIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgIGVsc2UgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9 LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdmaWxsZmFjdG9yJywgbGFi ZWw6ICd7eyBfKCJGaWxsIEZhY3RvciIpIH19JywKKyAgICAgICAgICBncm91 cDogJ3t7IF8oIlN0b3JhZ2UiKSB9fScsIG1vZGU6IFsnZWRpdCcsICdjcmVh dGUnXSwKKyAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsIG1pbjogMTAsIG1h eDogMTAwCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICB0eXBl OiAnbmVzdGVkJywgY29udHJvbDogJ3RhYicsIGlkOiAnbWF0ZXJpYWxpemF0 aW9uJywKKyAgICAgICAgICBsYWJlbDogJ3t7IF8oIk1hdGVyaWFsaXphdGlv biIpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAg IGdyb3VwOiAne3sgXygiU3RvcmFnZSIpIH19JywKKyAgICAgICAgICBzY2hl bWE6IEJhY2tmb3JtLlZhY3V1bVNldHRpbmdzU2NoZW1hCisgICAgICAgIH0s CisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2FjbCcsIGxhYmVsOiAne3sg XygiQUNMIikgfX0nLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcydd LCB0eXBlOiAndGV4dCcKKyAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAg ICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworCisgICAgICAgICAgLy8gVHJp Z2dlcnMgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXMgZm9yIGZpZWxkcworICAg ICAgICAgIHZhciBlcnIgPSB7fSwKKyAgICAgICAgICAgIGVycm1zZywKKyAg ICAgICAgICAgIGZpZWxkX25hbWUgPSB0aGlzLmdldCgnbmFtZScpLAorICAg ICAgICAgICAgZmllbGRfZGVmID0gdGhpcy5nZXQoJ2RlZmluaXRpb24nKTsK KyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChmaWVsZF9uYW1lKSB8fCBf LmlzTnVsbChmaWVsZF9uYW1lKSB8fAorICAgICAgICAgICAgU3RyaW5nKGZp ZWxkX25hbWUpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsK KyAgICAgICAgICAgIGVyclsnbmFtZSddID0gJ3t7IF8oIlBsZWFzZSBzcGVj aWZ5IG5hbWUuIikgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJybXNn IHx8IGVyclsnbmFtZSddOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVs LnNldCgnbmFtZScsIGVycm1zZyk7CisgICAgICAgICAgICByZXR1cm4gZXJy bXNnOworICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgdGhpcy5lcnJv ck1vZGVsLnVuc2V0KCduYW1lJyk7CisgICAgICAgICAgfQorICAgICAgICAg IGlmKHRoaXMuaXNOZXcoKSl7CisgICAgICAgICAgICBpZiAoXy5pc1VuZGVm aW5lZChmaWVsZF9kZWYpIHx8IF8uaXNOdWxsKGZpZWxkX2RlZikgfHwKKyAg ICAgICAgICAgICAgU3RyaW5nKGZpZWxkX2RlZikucmVwbGFjZSgvXlxzK3xc cyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJbJ2RlZmlu aXRpb24nXSA9ICd7eyBfKCJQbGVhc2UgZW50ZXIgZnVuY3Rpb24gZGVmaW5p dGlvbi4iKSB9fSc7CisgICAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8 fCBlcnJbJ2RlZmluaXRpb24nXTsKKyAgICAgICAgICAgICAgdGhpcy5lcnJv ck1vZGVsLnNldCgnZGVmaW5pdGlvbicsIGVycm1zZyk7CisgICAgICAgICAg ICAgIHJldHVybiBlcnJtc2c7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdkZWZpbml0aW9uJyk7 CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVy biBudWxsOworICAgICAgICB9LAorICAgICAgICAvLyBXZSB3aWxsIGRpc2Fi bGUgZXZlcnl0aGluZyBpZiB3ZSBhcmUgdW5kZXIgY2F0YWxvZyBub2RlCisg ICAgICAgIGluU2NoZW1hOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZih0 aGlzLm5vZGVfaW5mbyAmJiAnY2F0YWxvZycgaW4gdGhpcy5ub2RlX2luZm8p CisgICAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor CisgICAgICB9KSwKKworICAgICAgLyoqCisgICAgICAgIFNob3cgb3IgaGlk ZSBjcmVhdGUgdmlldyBtZW51IG9wdGlvbiBvbiBwYXJlbnQgbm9kZQorICAg ICAgICBhbmQgaGlkZSBmb3Igc3lzdGVtIHZpZXcgaW4gY2F0YWxvZ3MuCisg ICAgICAgKi8KKyAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEs IGl0ZW0sIGRhdGEpIHsKKworICAgICAgICAvLyBJZiBjaGVjayBpcyBmYWxz ZSB0aGVuLCB3ZSB3aWxsIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgIGlm IChkYXRhICYmIGRhdGEuY2hlY2sgPT09IGZhbHNlKQorICAgICAgICAgIHJl dHVybiB0cnVlOworCisgICAgICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUs IGkgPSBpdGVtLCBkID0gaXRlbURhdGE7CisKKyAgICAgICAgLy8gVG8gaXRl cmF0ZSBvdmVyIHRyZWUgdG8gY2hlY2sgcGFyZW50IG5vZGUKKyAgICAgICAg d2hpbGUgKGkpIHsKKworICAgICAgICAgIC8vIElmIGl0IGlzIHNjaGVtYSB0 aGVuIGFsbG93IHVzZXIgdG8gY3JlYXRlIHZpZXcKKyAgICAgICAgICBpZiAo Xy5pbmRleE9mKFsnc2NoZW1hJ10sIGQuX3R5cGUpID4gLTEpCisgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgIGlmICgnY29sbC1tYXRl cmlhbGl6ZWRfdmlldycgPT0gZC5fdHlwZSkgeworCisgICAgICAgICAgICAv LyBDaGVjayBpZiB3ZSBhcmUgbm90IGNoaWxkIG9mIHZpZXcKKyAgICAgICAg ICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQoaSkgOiBu dWxsOworICAgICAgICAgICAgcHJldl9kID0gcHJldl9pID8gdC5pdGVtRGF0 YShwcmV2X2kpIDogbnVsbDsKKyAgICAgICAgICAgIGlmKCBwcmV2X2QuX3R5 cGUgPT0gJ2NhdGFsb2cnKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAg ICBpID0gdC5oYXNQYXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7Cisg ICAgICAgICAgZCA9IGkgPyB0Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAg ICAgfQorCisgICAgICAgIC8vIGJ5IGRlZmF1bHQgd2UgZG8gbm90IHdhbnQg dG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgcmV0dXJuIHRydWU7CisK KyAgICAgIH0KKyAgfSk7CisgIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5v ZGVzWydjb2xsLW1hdGVyaWFsaXplZF92aWV3J107Cit9KTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6 ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwvYWNsLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wZy85LjNf cGx1cy9zcWwvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4wYzFiZDZjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3BnLzku M19wbHVzL3NxbC9hY2wuc3FsCkBAIC0wLDAgKzEsNDEgQEAKK3sjPT09PT09 PT09PT09PT09PT09PT09PT09PT09PUdldCBBQ0xzPT09PT09PT09PT09PT09 PT09PT09PT09PSN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgICdkYXRh Y2wnIGFzIGRlZnR5cGUsCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1 YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIGdyYW50b3IsCisgICAg YXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBhcyBwcml2aWxlZ2VzLAorICAg IGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFzIGdyYW50YWJsZQorRlJPTQor ICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLAorICAgICAgICBkLmdy YW50b3IsCisgICAgICAgIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNF IGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgICBXSEVOICdERUxFVEUnIFRI RU4gJ2QnCisgICAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAg ICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAgICAg V0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICAgIFdIRU4gJ1RSSUdH RVInIFRIRU4gJ3QnCisgICAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3 JworICAgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAg ICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2Vf dHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAg cmVsYWNsCisgICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19jbGFzcyBj bAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24g ZGVzY3IgT04KKyAgICAgICAgICAgIChjbC5vaWQ9ZGVzY3Iub2Jqb2lkIEFO RCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICAg ICAgIFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7eyB2aWQgfX06Ok9J RCBBTkQgcmVsa2luZCA9ICdtJworICAgICAgICApIGFjbCwKKyAgICAgICAg YWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICApIGQKK0xFRlQgSk9JTiBwZ19j YXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorTEVG VCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9 IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1lLAorICAgIGd0LnJv bG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcGcvOS4zX3Bs dXMvc3FsL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2NyZWF0 ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMy NjBjOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwv Y3JlYXRlLnNxbApAQCAtMCwwICsxLDQ1IEBACit7IyA9PT09PT09PT09PT09 PT09PT09PT0gQ3JlYXRlIG5ldyB2aWV3ID09PT09PT09PT09PT09PT09PT09 PSAjfQoreyUgaWYgZGlzcGxheV9jb21tZW50cyAlfQorLS0gVmlldzoge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisKKy0t IERST1AgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0YS5kZWZpbml0aW9u ICV9CitDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBpZihkYXRhLmZpbGxm YWN0b3Igb3IgZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10gb3IgZGF0YVsn dG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkJ10pICV9CitXSVRIKAoreyUgaWYg ZGF0YS5maWxsZmFjdG9yICV9CisgIEZJTExGQUNUT1IgPSB7eyBkYXRhLmZp bGxmYWN0b3IgfX17JSBpZiBkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXSBv ciBkYXRhWyd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnXSBvciBkYXRhWyd2 YWN1dW1fZGF0YSddfGxlbmd0aCA+IDAgJX0seyUgZW5kaWYgJX17eyAnXHIn IH19Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YVsnYXV0b3ZhY3V1bV9lbmFi bGVkJ10gJX0KKyAgYXV0b3ZhY3V1bV9lbmFibGVkID0ge3sgZGF0YVsnYXV0 b3ZhY3V1bV9lbmFibGVkJ118bG93ZXIgfX17JSBpZiBkYXRhWyd0b2FzdF9h dXRvdmFjdXVtX2VuYWJsZWQnXSBvciBkYXRhWyd2YWN1dW1fZGF0YSddfGxl bmd0aCA+IDAgJX0seyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YVsndG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkJ10gJX0K KyAge3sgJ3RvYXN0LmF1dG92YWN1dW1fZW5hYmxlZCcgfX0gPSB7eyBkYXRh Wyd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnXXxsb3dlciB9fXslIGlmIGRh dGFbJ3ZhY3V1bV9kYXRhJ118bGVuZ3RoID4gMCAlfSx7JSBlbmRpZiAlfXt7 ICdccicgfX0KK3slIGVuZGlmICV9Cit7JSBmb3IgZmllbGQgaW4gZGF0YVsn dmFjdXVtX2RhdGEnXSAlfQoreyUgaWYgZmllbGQudmFsdWUgaXMgZGVmaW5l ZCBhbmQgZmllbGQudmFsdWUgIT0gJycgYW5kIGZpZWxkLnZhbHVlICE9IG5v bmUgJX0KK3slIGlmIGxvb3AuaW5kZXggPiAxJX0sCit7JSBlbmRpZiAlfSAg e3sgZmllbGQubmFtZSB9fSA9IHt7IGZpZWxkLnZhbHVlfGxvd2VyIH19eyUg ZW5kaWYgJX0KK3slIGVuZGZvciAlfXt7ICdccicgfX0KKykKK3slIGVuZGlm ICV9Cit7JSBpZiBkYXRhLnNwY25hbWUgJX1UQUJMRVNQQUNFIHt7IGRhdGEu c3BjbmFtZSB9fQoreyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlv bi5yc3RyaXAoJzsnKSB9fQoreyUgaWYgZGF0YS53aXRoX2RhdGEgJX0KKyBX SVRIIERBVEE7Cit7JSBlbHNlICV9CisgV0lUSCBOTyBEQVRBOworeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEub3duZXIgJX0KKworQUxURVIgVEFCTEUge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAg T1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEub3duZXIpIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBW SUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wZy85LjNf cGx1cy9zcWwvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwvZGVs ZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j ZjY2N2ZjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3BnLzkuM19wbHVzL3Nx bC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09 PT09PT09PT0gRHJvcC9DYXNjYWRlIG1hdGVyaWFsaXplZCB2aWV3IGJ5IG5h bWUgPT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitTRUxF Q1QKKyAgICBjLnJlbG5hbWUgQXMgbmFtZSwKKyAgICBuc3AubnNwbmFtZQor RlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2Ug bnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUKKyAgICBj LnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAobmFtZSBhbmQg bnNwbmFtZSkgJX0KK0RST1AgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxx dElkZW50KG5zcG5hbWUsIG5hbWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FT Q0FERSB7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmll dy9wZy85LjNfcGx1cy9zcWwvZ2V0X3RibHNwYy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcGcvOS4z X3BsdXMvc3FsL2dldF90YmxzcGMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmE4YTQ4MmMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3Zp ZXcvcGcvOS4zX3BsdXMvc3FsL2dldF90YmxzcGMuc3FsCkBAIC0wLDAgKzEs MiBAQAoreyMgPT09PT0gR2V0IGxpc3Qgb2YgdGFibGVzcGFjZXMgPT09PT0g I30KK3NlbGVjdCB0YmxzcGMuc3BjbmFtZSBmcm9tIHBnX3RhYmxlc3BhY2Ug dGJsc3BjIFdIRVJFIHRibHNwYy5zcGNuYW1lICE9ICdwZ19nbG9iYWwnCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0 ZXJpYWxpemVkX3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2dyYW50LnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmll dy9wZy85LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjZjZGM4ZTUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVk X3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDE0 IEBACit7IyA9PT09PSBHcmFudCBQZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUg b24gVmlld3MvVGFibGVzID09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3Nl Y3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFj cm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 Cit7IyBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2lu ZyBtYWNybyAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciBy IGluIGRhdGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25u LCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9s YWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRh dGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfQor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUs IGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L21hdGVyaWFsaXplZF92aWV3L3BnLzkuM19wbHVzL3NxbC9wcm9wZXJ0aWVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlh bGl6ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAyYmM1NAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy9tYXRlcmlhbGl6ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSwxMTEgQEAKK3sjID09PT09PT09PT09PT09PT09 PT09PT09PT09IEZldGNoIE1hdGVyaWFsaXplZCBWaWV3IFByb3BlcnRpZXMg PT09PT09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgKHZpZCBhbmQg ZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQs CisgICAgYy54bWluLAorICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIGMu cmVsdGFibGVzcGFjZSBBUyBzcGNvaWQsCisgICAgYy5yZWxpc3BvcHVsYXRl ZCBBUyB3aXRoX2RhdGEsCisgICAgKENBU0UgV0hFTiBsZW5ndGgoc3BjLnNw Y25hbWUpID4gMCBUSEVOIHNwYy5zcGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQn IEVORCkgYXMgc3BjbmFtZSwKKyAgICBjLnJlbGFjbCwKKyAgICBuc3AubnNw bmFtZSBhcyBzY2hlbWEsCisgICAgcGdfZ2V0X3VzZXJieWlkKGMucmVsb3du ZXIpIEFTIG93bmVyLAorICAgIGRlc2NyaXB0aW9uIEFTIGNvbW1lbnQsCisg ICAgcGdfZ2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24s CisgICAgeyM9PT09PT09PT09PT09Q2hlY2tzIGlmIGl0IGlzIHN5c3RlbSB2 aWV3PT09PT09PT09PT09PT09PSN9CisgICAgeyUgaWYgdmlkIGFuZCBkYXRs YXN0c3lzb2lkICV9CisgICAgQ0FTRSBXSEVOIHt7dmlkfX0gPD0ge3tkYXRs YXN0c3lzb2lkfX0gVEhFTiBUcnVlIEVMU0UgRmFsc2UgRU5EIEFTIHN5c3Rl bV92aWV3LAorICAgIHslIGVuZGlmICV9CisgICAgYXJyYXlfdG9fc3RyaW5n KGMucmVsYWNsOjp0ZXh0W10sICcsICcpIEFTIGFjbCwKKyAgICAoU0VMRUNU IGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpIEZST00gcGdf c2VjbGFiZWxzIHNsMSBXSEVSRSBzbDEub2Jqb2lkPWMub2lkIEFORCBzbDEu b2Jqc3ViaWQ9MCkgQVMgc2VjbGFiZWxzLAorICAgIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdm aWxsZmFjdG9yPShbMC05XSopJykgQVMgZmlsbGZhY3RvciwKKyAgICBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAg ICAgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpIEFT IGF1dG92YWN1dW1fZW5hYmxlZCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9f c3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3Zh Y3V1bV92YWN1dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMgYXV0b3ZhY3V1 bV92YWN1dW1fdGhyZXNob2xkLAorICAgIHN1YnN0cmluZyhhcnJheV90b19z dHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFj dXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBB UyBhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3IsCisgICAgc3Vic3Ry aW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAg IEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQ9KFswLTldKikn KSBBUyBhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkLAorICAgIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAg ICBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShbMC05 XSpbLl1bMC05XSopJykgQVMgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2Zh Y3RvciwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0 aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fY29z dF9kZWxheT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf ZGVsYXksCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9w dGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nv c3RfbGltaXQ9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2xpbWl0LAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxv cHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9t aW5fYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfbWluX2Fn ZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2Fn ZT0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UsCisg ICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcs JykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZT0o WzAtOV0qKScpIEFTIGF1dG92YWN1dW1fZnJlZXplX3RhYmxlX2FnZSwKKyAg ICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkLAorICAgIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAg ICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZD0oWzAtOV0q KScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCwKKyAg ICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAn LCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0 b3I9KFswLTldKlsuXVswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3Zh Y3V1bV9zY2FsZV9mYWN0b3IsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3Zh Y3V1bV9hbmFseXplX3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1 dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQsCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJP TSAnYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5d WzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9m YWN0b3IsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVs b3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9kZWxheT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1dW1fdmFj dXVtX2Nvc3RfZGVsYXksCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu Zyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1 bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQsCisgICAgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAn YXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0 X2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UsCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJP TSAnYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZT0oWzAtOV0qKScpIEFTIHRv YXN0X2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2UsCisgICAgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAg RlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykg QVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlLAorICAgIGMu cmVsb3B0aW9ucyBBUyByZWxvcHRpb25zLCB0c3QucmVsb3B0aW9ucyBBUyB0 b2FzdF9yZWxvcHRpb25zLAorICAgIChDQVNFIFdIRU4gYy5yZWx0b2FzdHJl bGlkID0gMCBUSEVOIGZhbHNlIEVMU0UgdHJ1ZSBFTkQpIEFTIGhhc3RvYXN0 dGFibGUsCisgICAgKENBU0UgV0hFTiAoc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1 dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSk6OmJvb2xlYW4gIFRIRU4gdHJ1 ZSBFTFNFIGZhbHNlIEVORCkgQVMgYXV0b3ZhY3V1bV9jdXN0b20sCisgICAg KENBU0UgV0hFTiAoc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVs b3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVk PShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiAgQU5EIGMucmVsdG9hc3RyZWxp ZCA9IDAgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyB0b2FzdF9hdXRv dmFjY3VtCitGUk9NCisgICAgcGdfY2xhc3MgYworTEVGVCBPVVRFUiBKT0lO IHBnX25hbWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNl CitMRUZUIE9VVEVSIEpPSU4gcGdfdGFibGVzcGFjZSBzcGMgb24gc3BjLm9p ZD1jLnJlbHRhYmxlc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlw dGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQgYW5kIGRlcy5vYmpzdWJp ZD0wIEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCitM RUZUIE9VVEVSIEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBjLnJl bHRvYXN0cmVsaWQKKyAgICBXSEVSRSAoKGMucmVsaGFzcnVsZXMgQU5EIChF WElTVFMgKAorICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgIHIucnVsZW5h bWUKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfcmV3cml0ZSByCisg ICAgICAgIFdIRVJFCisgICAgICAgICAgICAoKHIuZXZfY2xhc3MgPSBjLm9p ZCkKKyAgICAgICAgICAgICAgICBBTkQgKGJwY2hhcihyLmV2X3R5cGUpID0g JzEnOjpicGNoYXIpKSApKSkKKyAgICAgICAgICAgIEFORCAoYy5yZWxraW5k ID0gJ20nOjpjaGFyKQorICAgICAgICAgICkKK3slIGlmICh2aWQgYW5kIGRh dGxhc3RzeXNvaWQpICV9CisgICAgQU5EIGMub2lkID0ge3t2aWR9fTo6b2lk Cit7JSBlbGlmIHNjaWQgJX0KKyAgICBBTkQgYy5yZWxuYW1lc3BhY2UgPSB7 e3NjaWR9fTo6b2lkCitPUkRFUiBCWQorICAgIGMucmVsbmFtZQoreyUgZW5k aWYgJX0KKworeyUgZWxpZiB0eXBlID09ICdyb2xlcycgJX0KK1NFTEVDVAor ICAgIHByLnJvbG5hbWUKK0ZST00KKyAgICBwZ19yb2xlcyBwcgorV0hFUkUK KyAgICBwci5yb2xjYW5sb2dpbgorT1JERVIgQlkKKyAgICBwci5yb2xuYW1l CisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1hcycgJX0KK1NFTEVDVAorICAg IG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hF UkUKKyAgICAobnNwLm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnCisgICAg ICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJykK K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcGcvOS4zX3BsdXMvc3Fs L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv bWF0ZXJpYWxpemVkX3ZpZXcvcGcvOS4zX3BsdXMvc3FsL3VwZGF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBhOWEzNAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwvdXBkYXRl LnNxbApAQCAtMCwwICsxLDE1MiBAQAoreyMgPT09PT09PT09PT09PT09PT09 PT09IFVwZGF0ZSBWaWV3ID09PT09PT09PT09PT09PT09PT0jfQoreyUgaW1w b3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQor eyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBh cyBQUklWSUxFR0UgJX0KK3slLSBpZiBkYXRhIC0lfQoreyUgc2V0IHZpZXdf bmFtZSA9IGRhdGEubmFtZSBpZiBkYXRhLm5hbWUgZWxzZSBvX2RhdGEubmFt ZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1hID0gZGF0YS5zY2hlbWEgaWYgZGF0 YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2NoZW1hICV9Cit7JSBzZXQgZGVmID0g ZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIGlmIGRhdGEuZGVmaW5pdGlv biAlfQoreyMgPT09PT0gUmVuYW1lIG1hdCB2aWV3ID09PT09ICN9Cit7JSBp ZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQor QUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0 YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQorICBSRU5BTUUgVE8ge3sgY29u bnxxdElkZW50KGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9Cit7IyA9 PT09PSBBbHRlciBzY2hlbWEgdmlldyA9PT09PSAjfQoreyUgaWYgZGF0YS5z Y2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FM VEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEu c2NoZW1hLCB2aWV3X25hbWUgKSB9fQorICBTRVQgU0NIRU1BIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSkgfX07CisKK3slIGVuZGlmICV9Cit7IyA9 PT09PSBBbHRlciBUYWJsZSBvd25lciA9PT09PSAjfQoreyUgaWYgZGF0YS5v d25lciBhbmQgZGF0YS5vd25lciAhPSBvX2RhdGEub3duZXIgJX0KK0FMVEVS IFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1l KSB9fQorICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5vd25lcikg fX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhWyd2YWN1dW1fZGF0YSdd WydyZXNldCddfGxlbmd0aCA+IDAgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBW SUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9 fQorUkVTRVQoCit7JSBmb3IgZmllbGQgaW4gZGF0YVsndmFjdXVtX2RhdGEn XVsncmVzZXQnXSAlfQorICB7eyBmaWVsZC5uYW1lIH19eyUgaWYgbm90IGxv b3AubGFzdCAgJX0seyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRmb3Ig JX0KKykKK3slIGVuZGlmICV9Cit7IyA9PT09PSBGaXJzdCBEcm9wIGFuZCB0 aGVuIGNyZWF0ZSBtYXQgdmlldyA9PT09PSAjfQoreyUgaWYgZGVmIGFuZCBk ZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0KK3slIGlm IGRhdGEuZmlsbGZhY3RvciBvciAoIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2No YW5nZWQnXXxsZW5ndGggPiAwICkgJX0KK0RST1AgTUFURVJJQUxJWkVEIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 OworQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudCh2 aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorV0lUSCgKK3slIGlmIGRhdGEu ZmlsbGZhY3RvciAlfQorICBGSUxMRkFDVE9SID0ge3sgZGF0YS5maWxsZmFj dG9yIH19eyUgaWYgZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hhbmdlZCddfGxl bmd0aCA+IDAgJX0seyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hhbmdlZCddfGxlbmd0 aCA+IDAgJX0KK3slIGZvciBmaWVsZCBpbiBkYXRhWyd2YWN1dW1fZGF0YSdd WydjaGFuZ2VkJ10gJX0KKyAge3sgZmllbGQubmFtZSB9fSA9IHt7IGZpZWxk LnZhbHVlfGxvd2VyIH19eyUgaWYgbm90IGxvb3AubGFzdCAgJX0seyUgZW5k aWYgJX17eyAnXHInIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cisp CisgQVMKK3t7IGRlZiB9fQoreyUgaWYgZGF0YS53aXRoX2RhdGEgJX0KKyBX SVRIIERBVEE7CisKK3slIGVsc2UgJX0KKyBXSVRIIE5PIERBVEE7CisKK3sl IGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZWxzZSAlfQoreyMgPT09PT09 PSBBbHRlciBUYWJsZXNwYWNlID09PT09PT09PSAjfQoreyUtIGlmIGRhdGEu c3Bjb2lkIGFuZCBvX2RhdGEuc3Bjb2lkICE9IGRhdGEuc3Bjb2lkICAtJX0K K0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3 X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICBTRVQgVEFCTEVTUEFDRSB7eyBk YXRhLnNwY29pZCB9fTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09PT0gU0VU L1JFU0VUIEZpbGxmYWN0b3IgPT09PT09PT09ICN9Cit7JSBpZiBkYXRhLmZp bGxmYWN0b3IgYW5kIG9fZGF0YS5maWxsZmFjdG9yICE9IGRhdGEuZmlsbGZh Y3RvciAlfQorQUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElk ZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CitTRVQoRklMTEZBQ1RP UiA9IHt7IGRhdGEuZmlsbGZhY3RvciB9fSk7CisKK3slIGVsaWYgZGF0YS5m aWxsZmFjdG9yID09ICcnICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklFVyB7 eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK1JF U0VUKAorICBGSUxMRkFDVE9SCispOworCit7JSBlbmRpZiAlfQoreyMgPT09 PT0gQ2hlY2sgZm9yIHdpdGhfZGF0YSBwcm9wZXJ0eSA9PT09PSAjfQoreyUg aWYgZGF0YS53aXRoX2RhdGEgaXMgZGVmaW5lZCBhbmQgb19kYXRhLndpdGhf ZGF0YXxsb3dlciAhPSBkYXRhLndpdGhfZGF0YXxsb3dlciAgJX0KK1JFRlJF U0ggTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2No ZW1hLCB2aWV3X25hbWUpIH19IFdJVEh7eyAnIE5PJyBpZiBkYXRhLndpdGhf ZGF0YXxsb3dlciA9PSAnZmFsc2UnIGVsc2UgJycgfX0gREFUQTsKKworeyUg ZW5kaWYgJX0KK3sjID09PT09IENoZWNrIGZvciBUYWJsZSB0YWIgcHJvcGVy dGllcyA9PT09PSAjfQoreyUgaWYgZGF0YS5hdXRvdmFjdXVtX2N1c3RvbSBp cyBkZWZpbmVkIGFuZCBkYXRhLmF1dG92YWN1dW1fY3VzdG9tfGxvd2VyID09 ICdmYWxzZScgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58 cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorUkVTRVQoCisg IGF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCwKKyAgYXV0b3ZhY3V1bV9h bmFseXplX3RocmVzaG9sZCwKKyAgYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVf ZmFjdG9yLAorICBhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yLAor ICBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5LAorICBhdXRvdmFjdXVt X3ZhY3V1bV9jb3N0X2xpbWl0LAorICBhdXRvdmFjdXVtX2ZyZWV6ZV9taW5f YWdlLAorICBhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlLAorICBhdXRvdmFj dXVtX2ZyZWV6ZV90YWJsZV9hZ2UKKyk7CisKK3slIGVsaWYoZGF0YVsndmFj dXVtX2RhdGEnXVsnY2hhbmdlZCddfGxlbmd0aCA+IDApICV9CitBTFRFUiBN QVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX0gU0VUKAoreyUgZm9yIGZpZWxkIGluIGRhdGFbJ3Zh Y3V1bV9kYXRhJ11bJ2NoYW5nZWQnXSAlfQoreyUgaWYgZmllbGQudmFsdWUg IT0gTm9uZSAlfQorICB7eyBmaWVsZC5uYW1lIH19ID0ge3sgZmllbGQudmFs dWV8bG93ZXIgfX17JSBpZiBub3QgbG9vcC5sYXN0ICAlfSx7JSBlbmRpZiAl fXt7ICdccicgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KKyk7CisK K3slIGVuZGlmICV9eyMgPT09PT0gRW5kIGNoZWNrIGZvciBjdXN0b20gYXV0 b3ZhY2N1bSA9PT09PSAjfQoreyUgZW5kaWYgJX17IyA9PT09PSBFbmQgYmxv Y2sgZm9yIGNoZWNrIGRhdGEgZGVmaW5pdGlvbiA9PT09PSAjfQoreyUtIGlm IGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21t ZW50IC0lfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3 X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICBJUyB7eyBkYXRhLmNvbW1lbnR8 cXRMaXRlcmFsIH19OworCit7JSBlbmRpZiAlfQoreyMgPT09PT09PT09PT09 PSBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxl Z2VzID09PT09PT09PT09PT0gI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5SRVNF VEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg ZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuZGF0YWNsLmNoYW5nZWQgLSV9Cit7eyBQUklWSUxFR0UuVU5T RVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFC TEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dy YW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUtIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5k YXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9 Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRl ZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9n cmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm ICV9Cit7JSBlbmRpZiAlfQoreyMgPT09PT09PT09PT09PT0gVGhlIFNRTCBn ZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwgPT09 PT09PT09ICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyBpcyBub3Qgbm9uZSBh bmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IHNlY2xh YmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9 Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQore3sgU0VDTEFC TEUuRFJPUChjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlcikg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBTRUNMQUJM RS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwg ci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycs IGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3BnLzkuM19wbHVzL3NxbC92aWV3 X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRl cmlhbGl6ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwvdmlld19pZC5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE5MmE4MAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy9tYXRlcmlhbGl6ZWRfdmlldy9wZy85LjNfcGx1cy9zcWwvdmlld19pZC5z cWwKQEAgLTAsMCArMSw0IEBACit7IyA9PT09PSBCZWxvdyB3aWxsIHByb3Zp ZGUgdmlldyBpZCBmb3IgbGFzdCBjcmVhdGVkIHZpZXcgPT09PSAjfQoreyUg aWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZST00gcGdfY2xhc3MgYyBXSEVS RSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1lIH19JzsKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv bWF0ZXJpYWxpemVkX3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvYWNsLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRf dmlldy9wcGFzLzkuM19wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMWJkNmMKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxp emVkX3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvYWNsLnNxbApAQCAtMCwwICsx LDQxIEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1HZXQgQUNM cz09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitT RUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBkZWZ0eXBlLAorICAgIENPQUxFU0NF KGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVlLAorICAgIGcucm9sbmFt ZSBncmFudG9yLAorICAgIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgYXMg cHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBn cmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRl ZSwKKyAgICAgICAgZC5ncmFudG9yLAorICAgICAgICBkLmlzX2dyYW50YWJs ZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgICAg V0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICAgIFdIRU4gJ0lOU0VS VCcgVEhFTiAnYScKKyAgICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVO ICd4JworICAgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAg ICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICAgIFdIRU4g J1VQREFURScgVEhFTiAndycKKyAgICAgICAgICBXSEVOICdUUlVOQ0FURScg VEhFTiAnRCcKKyAgICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBF TkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxF Q1QKKyAgICAgICAgICAgIHJlbGFjbAorICAgICAgICAgRlJPTQorICAgICAg ICAgICAgcGdfY2xhc3MgY2wKKyAgICAgICAgIExFRlQgT1VURVIgSk9JTiBw Z19zaGRlc2NyaXB0aW9uIGRlc2NyIE9OCisgICAgICAgICAgICAoY2wub2lk PWRlc2NyLm9iam9pZCBBTkQgZGVzY3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6 cmVnY2xhc3MpCisgICAgICAgICBXSEVSRQorICAgICAgICAgICAgY2wub2lk ID0ge3sgdmlkIH19OjpPSUQgQU5EIHJlbGtpbmQgPSAnbScKKyAgICAgICAg KSBhY2wsCisgICAgICAgIGFjbGV4cGxvZGUocmVsYWNsKSBkCisgICAgKSBk CitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50 b3IgPSBnLm9pZCkKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0 IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9s bmFtZSwKKyAgICBndC5yb2xuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXpl ZF92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcHBh cy85LjNfcGx1cy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5kNWYxYTg3Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92 aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwz OSBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09IENyZWF0ZSBuZXcgdmll dyA9PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIGRpc3BsYXlfY29t bWVudHMgJX0KKy0tIFZpZXc6IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVt YSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9QIE1BVEVSSUFMSVpFRCBWSUVX IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fTsK KworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5zY2hl bWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE1BVEVSSUFMSVpF RCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1l KSB9fQoreyUgaWYoZGF0YS5maWxsZmFjdG9yIG9yIGRhdGFbJ2F1dG92YWN1 dW1fZW5hYmxlZCddIG9yIGRhdGFbJ3RvYXN0X2F1dG92YWN1dW1fZW5hYmxl ZCddKSAlfQorV0lUSCgKK3slIGlmIGRhdGEuZmlsbGZhY3RvciAlfQorICBG SUxMRkFDVE9SID0ge3sgZGF0YS5maWxsZmFjdG9yIH19eyUgaWYgZGF0YVsn dmFjdXVtX2RhdGEnXXxsZW5ndGggPiAwICV9LHslIGVuZGlmICV9e3sgJ1xy JyB9fQoreyUgZW5kaWYgJX0KK3slIGZvciBmaWVsZCBpbiBkYXRhWyd2YWN1 dW1fZGF0YSddICV9Cit7JSBpZiBmaWVsZC52YWx1ZSBpcyBkZWZpbmVkIGFu ZCBmaWVsZC52YWx1ZSAhPSAnJyBhbmQgZmllbGQudmFsdWUgIT0gbm9uZSAl fQoreyUgaWYgbG9vcC5pbmRleCA+IDElfSwKK3slIGVuZGlmICV9ICB7eyBm aWVsZC5uYW1lIH19ID0ge3sgZmllbGQudmFsdWV8bG93ZXIgfX17JSBlbmRp ZiAlfQoreyUgZW5kZm9yICV9e3sgJ1xyJyB9fQorKQoreyUgZW5kaWYgJX0K K3slIGlmIGRhdGEuc3BjbmFtZSAlfVRBQkxFU1BBQ0Uge3sgZGF0YS5zcGNu YW1lIH19Cit7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZpbml0aW9uLnJz dHJpcCgnOycpIH19Cit7JSBpZiBkYXRhLndpdGhfZGF0YSAlfQorIFdJVEgg REFUQTsKK3slIGVsc2UgJX0KKyBXSVRIIE5PIERBVEE7Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5vd25lciAlfQorCitBTFRFUiBUQUJMRSB7eyBjb25u fHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgICBPV05F UiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcg e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Cisg ICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlm ICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3BwYXMvOS4zX3Bs dXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZGVs ZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j ZjY2N2ZjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3BwYXMvOS4zX3BsdXMv c3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMyBAQAoreyMgPT09PT09PT09 PT09PT09PT09PSBEcm9wL0Nhc2NhZGUgbWF0ZXJpYWxpemVkIHZpZXcgYnkg bmFtZSA9PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQgJX0KK1NF TEVDVAorICAgIGMucmVsbmFtZSBBcyBuYW1lLAorICAgIG5zcC5uc3BuYW1l CitGUk9NCisgICAgcGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVzcGFj ZSBuc3AgT04gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAg IGMucmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFu ZCBuc3BuYW1lKSAlfQorRFJPUCBNQVRFUklBTElaRUQgVklFVyB7eyBjb25u fHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBD QVNDQURFIHslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92 aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2dldF90YmxzcGMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3Bw YXMvOS4zX3BsdXMvc3FsL2dldF90YmxzcGMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YTQ4MmMKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxp emVkX3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ2V0X3RibHNwYy5zcWwKQEAg LTAsMCArMSwyIEBACit7IyA9PT09PSBHZXQgbGlzdCBvZiB0YWJsZXNwYWNl cyA9PT09PSAjfQorc2VsZWN0IHRibHNwYy5zcGNuYW1lIGZyb20gcGdfdGFi bGVzcGFjZSB0YmxzcGMgV0hFUkUgdGJsc3BjLnNwY25hbWUgIT0gJ3BnX2ds b2JhbCcKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wcGFzLzkuM19wbHVzL3NxbC9ncmFu dC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbWF0ZXJp YWxpemVkX3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZGM4ZTUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv bWF0ZXJpYWxpemVkX3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ3JhbnQuc3Fs CkBAIC0wLDAgKzEsMTQgQEAKK3sjID09PT09IEdyYW50IFBlcm1pc3Npb25z IHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMgPT09PSAjfQoreyUgaW1w b3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQor eyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBh cyBQUklWSUxFR0UgJX0KK3sjIFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkg TGFiZWwgU1FMIHVzaW5nIG1hY3JvICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVs cyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7IFNFQ0xB QkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy LCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRh dGEuZGF0YWNsICV9Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScs IHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQs IHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcHBhcy85LjNfcGx1 cy9zcWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwv cHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZjAyYmM1NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wcGFzLzku M19wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDExMSBAQAor eyMgPT09PT09PT09PT09PT09PT09PT09PT09PT0gRmV0Y2ggTWF0ZXJpYWxp emVkIFZpZXcgUHJvcGVydGllcyA9PT09PT09PT09PT09PT09PT09PT09PT09 ICN9Cit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9 CitTRUxFQ1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAgYy5yZWxu YW1lIEFTIG5hbWUsCisgICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwK KyAgICBjLnJlbGlzcG9wdWxhdGVkIEFTIHdpdGhfZGF0YSwKKyAgICAoQ0FT RSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3BjLnNwY25h bWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAorICAgIGMu cmVsYWNsLAorICAgIG5zcC5uc3BuYW1lIGFzIHNjaGVtYSwKKyAgICBwZ19n ZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgb3duZXIsCisgICAgZGVzY3Jp cHRpb24gQVMgY29tbWVudCwKKyAgICBwZ19nZXRfdmlld2RlZihjLm9pZCwg dHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7Iz09PT09PT09PT09PT1DaGVj a3MgaWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09PT09PT09PT09I30KKyAg ICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAgICBDQVNFIFdI RU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVOIFRydWUgRUxT RSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAgeyUgZW5kaWYgJX0K KyAgICBhcnJheV90b19zdHJpbmcoYy5yZWxhY2w6OnRleHRbXSwgJywgJykg QVMgYWNsLAorICAgIChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9 JyB8fCBsYWJlbCkgRlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5v YmpvaWQ9Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNsYWJlbHMs CisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMs ICcsJykKKyAgICAgIEZST00gJ2ZpbGxmYWN0b3I9KFswLTldKiknKSBBUyBm aWxsZmFjdG9yLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5y ZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2VuYWJs ZWQ9KFthLXp8MC05XSopJykgQVMgYXV0b3ZhY3V1bV9lbmFibGVkLAorICAg IHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcp CisgICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ9KFsw LTldKiknKSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisgICAg c3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykK KyAgICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rvcj0o WzAtOV0qWy5dWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX3NjYWxl X2ZhY3RvciwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVs b3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXpl X3RocmVzaG9sZD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fYW5hbHl6ZV90 aHJlc2hvbGQsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJl bG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6 ZV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyBhdXRvdmFj dXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yLAorICAgIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdh dXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5PShbMC05XSopJykgQVMgYXV0 b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAgICBzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAn YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIGF1 dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQsCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00g J2F1dG92YWN1dW1fZnJlZXplX21pbl9hZ2U9KFswLTldKiknKSBBUyBhdXRv dmFjdXVtX2ZyZWV6ZV9taW5fYWdlLAorICAgIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRv dmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1 bV9mcmVlemVfbWF4X2FnZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1 bV9mcmVlemVfdGFibGVfYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9m cmVlemVfdGFibGVfYWdlLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1 dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVt X2VuYWJsZWQsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3Qu cmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1 dW1fdGhyZXNob2xkPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92 YWN1dW1fdGhyZXNob2xkLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1 dW1fdmFjdXVtX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFT IHRvYXN0X2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciwKKyAgICBz dWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcp CisgICAgICBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkPShb MC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9s ZCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRp b25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfc2Nh bGVfZmFjdG9yPShbMC05XSpbLl1bMC05XSopJykgQVMgdG9hc3RfYXV0b3Zh Y3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciwKKyAgICBzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9N ICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5PShbMC05XSopJykgQVMg dG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAgICBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisg ICAgICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0PShbMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCwK KyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25z LCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdl PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWluX2Fn ZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRp b25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhf YWdlPShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWF4 X2FnZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxv cHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV90 YWJsZV9hZ2U9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2ZyZWV6 ZV90YWJsZV9hZ2UsCisgICAgYy5yZWxvcHRpb25zIEFTIHJlbG9wdGlvbnMs IHRzdC5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9wdGlvbnMsCisgICAgKENB U0UgV0hFTiBjLnJlbHRvYXN0cmVsaWQgPSAwIFRIRU4gZmFsc2UgRUxTRSB0 cnVlIEVORCkgQVMgaGFzdG9hc3R0YWJsZSwKKyAgICAoQ0FTRSBXSEVOIChz dWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQor ICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScp KTo6Ym9vbGVhbiAgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBhdXRv dmFjdXVtX2N1c3RvbSwKKyAgICAoQ0FTRSBXSEVOIChzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9N ICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05XSopJykpOjpib29sZWFu ICBBTkQgYy5yZWx0b2FzdHJlbGlkID0gMCBUSEVOIHRydWUgRUxTRSBmYWxz ZSBFTkQpIEFTIHRvYXN0X2F1dG92YWNjdW0KK0ZST00KKyAgICBwZ19jbGFz cyBjCitMRUZUIE9VVEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Au b2lkID0gYy5yZWxuYW1lc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ190YWJs ZXNwYWNlIHNwYyBvbiBzcGMub2lkPWMucmVsdGFibGVzcGFjZQorTEVGVCBP VVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1j Lm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdf Y2xhc3MnOjpyZWdjbGFzcykKK0xFRlQgT1VURVIgSk9JTiBwZ19jbGFzcyB0 c3QgT04gdHN0Lm9pZCA9IGMucmVsdG9hc3RyZWxpZAorICAgIFdIRVJFICgo Yy5yZWxoYXNydWxlcyBBTkQgKEVYSVNUUyAoCisgICAgICAgIFNFTEVDVAor ICAgICAgICAgICAgci5ydWxlbmFtZQorICAgICAgICBGUk9NCisgICAgICAg ICAgICBwZ19yZXdyaXRlIHIKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAg ICgoci5ldl9jbGFzcyA9IGMub2lkKQorICAgICAgICAgICAgICAgIEFORCAo YnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKQorICAgICAg ICAgICAgQU5EIChjLnJlbGtpbmQgPSAnbSc6OmNoYXIpCisgICAgICAgICAg KQoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICBBTkQg Yy5vaWQgPSB7e3ZpZH19OjpvaWQKK3slIGVsaWYgc2NpZCAlfQorICAgIEFO RCBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKK09SREVSIEJZCisg ICAgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0g J3JvbGVzJyAlfQorU0VMRUNUCisgICAgcHIucm9sbmFtZQorRlJPTQorICAg IHBnX3JvbGVzIHByCitXSEVSRQorICAgIHByLnJvbGNhbmxvZ2luCitPUkRF UiBCWQorICAgIHByLnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hl bWFzJyAlfQorU0VMRUNUCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBw Z19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIChuc3AubnNwbmFtZSBOT1Qg TElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdp bmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRf dmlldy9wcGFzLzkuM19wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3BwYXMv OS4zX3BsdXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZGY0MjIxZAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmll dy9wcGFzLzkuM19wbHVzL3NxbC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTQ0 IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT0gVXBkYXRlIFZpZXcgPT09 PT09PT09PT09PT09PT09PSN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0 eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9z Y2hlbWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUt IGlmIGRhdGEgLSV9Cit7JSBzZXQgdmlld19uYW1lID0gZGF0YS5uYW1lIGlm IGRhdGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgdmlld19z Y2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBlbHNlIG9fZGF0 YS5zY2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRhLmRlZmluaXRpb24ucnN0 cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9Cit7IyA9PT09PSBSZW5h bWUgbWF0IHZpZXcgPT09PT0gI30KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0 YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBNQVRFUklBTElaRUQg VklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5h bWUpIH19CisgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1l KSB9fTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09IEFsdGVyIHNjaGVtYSB2 aWV3ID09PT09ICN9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hl bWEgIT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgTUFURVJJQUxJWkVEIFZJ RVcge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSAp IH19CisgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1h KSB9fTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09IEFsdGVyIFRhYmxlIG93 bmVyID09PT09ICN9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93bmVy ICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxxdElk ZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgIE9XTkVSIFRPIHt7 IGNvbm58cXRJZGVudChkYXRhLm93bmVyKSB9fTsKKworeyUgZW5kaWYgJX0K K3sjID09PT09IEZpcnN0IERyb3AgYW5kIHRoZW4gY3JlYXRlIG1hdCB2aWV3 ID09PT09ICN9Cit7JSBpZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5p dGlvbi5yc3RyaXAoJzsnKSAlfQoreyUgaWYgZGF0YS5maWxsZmFjdG9yIG9y IChkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXSBhbmQgZGF0YVsndmFjdXVt X2RhdGEnXVsnY2hhbmdlZCddfGxlbmd0aCA+IDApICV9CitEUk9QIE1BVEVS SUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fTsKK0NSRUFURSBNQVRFUklBTElaRUQgVklFVyB7eyBjb25u fHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK1dJVEgoCit7 JSBpZiBkYXRhLmZpbGxmYWN0b3IgJX0KKyAgRklMTEZBQ1RPUiA9IHt7IGRh dGEuZmlsbGZhY3RvciB9fXslIGlmIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2No YW5nZWQnXXxsZW5ndGggPiAwICV9LHslIGVuZGlmICV9e3sgJ1xyJyB9fQor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5n ZWQnXXxsZW5ndGggPiAwICV9Cit7JSBmb3IgZmllbGQgaW4gZGF0YVsndmFj dXVtX2RhdGEnXVsnY2hhbmdlZCddICV9CisgIHt7IGZpZWxkLm5hbWUgfX0g PSB7eyBmaWVsZC52YWx1ZXxsb3dlciB9fXslIGlmIG5vdCBsb29wLmxhc3Qg ICV9LHslIGVuZGlmICV9e3sgJ1xyJyB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQorKQorIEFTCit7eyBkZWYgfX0KK3slIGlmIGRhdGEud2l0aF9k YXRhICV9CisgV0lUSCBEQVRBOworCit7JSBlbHNlICV9CisgV0lUSCBOTyBE QVRBOworCit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGVsc2UgJX0K K3sjID09PT09PT0gQWx0ZXIgVGFibGVzcGFjZSA9PT09PT09PT0gI30KK3sl LSBpZiBkYXRhLnNwY29pZCBhbmQgb19kYXRhLnNwY29pZCAhPSBkYXRhLnNw Y29pZCAgLSV9CitBTFRFUiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0 SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgU0VUIFRBQkxF U1BBQ0Uge3sgZGF0YS5zcGNvaWQgfX07CisKK3slIGVuZGlmICV9Cit7IyA9 PT09PT09IFNFVC9SRVNFVCBGaWxsZmFjdG9yID09PT09PT09PSAjfQoreyUg aWYgZGF0YS5maWxsZmFjdG9yIGFuZCBvX2RhdGEuZmlsbGZhY3RvciAhPSBk YXRhLmZpbGxmYWN0b3IgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7 IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorU0VU KEZJTExGQUNUT1IgPSB7eyBkYXRhLmZpbGxmYWN0b3IgfX0pOworCit7JSBl bGlmIGRhdGEuZmlsbGZhY3RvciA9PSAnJyAlfQorQUxURVIgTUFURVJJQUxJ WkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25h bWUpIH19CitSRVNFVCgKKyAgRklMTEZBQ1RPUgorKTsKKworeyUgZW5kaWYg JX0KK3sjID09PT09IENoZWNrIGZvciB3aXRoX2RhdGEgcHJvcGVydHkgPT09 PT0gI30KK3slIGlmIGRhdGEud2l0aF9kYXRhIGlzIGRlZmluZWQgYW5kIG9f ZGF0YS53aXRoX2RhdGF8bG93ZXIgIT0gZGF0YS53aXRoX2RhdGF8bG93ZXIg ICV9CitSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVu dCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fSBXSVRIe3sgJyBOTycgaWYg ZGF0YS53aXRoX2RhdGF8bG93ZXIgPT0gJ2ZhbHNlJyBlbHNlICcnIH19IERB VEE7CisKK3slIGVuZGlmICV9Cit7IyA9PT09PSBDaGVjayBmb3IgVGFibGUg dGFiIHByb3BlcnRpZXMgPT09PT0gI30KK3slIGlmIGRhdGEuYXV0b3ZhY3V1 bV9jdXN0b20gaXMgZGVmaW5lZCBhbmQgZGF0YS5hdXRvdmFjdXVtX2N1c3Rv bXxsb3dlciA9PSAnZmFsc2UnICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklF VyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0K K1JFU0VUKAorICBhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisgIGF1 dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQsCisgIGF1dG92YWN1dW1fdmFj dXVtX3NjYWxlX2ZhY3RvciwKKyAgYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxl X2ZhY3RvciwKKyAgYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAg YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCwKKyAgYXV0b3ZhY3V1bV9m cmVlemVfbWluX2FnZSwKKyAgYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSwK KyAgYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlCispOworCit7JSBlbGlm KGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5ndGggPiAwKSAl fQorQUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KGRh dGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19IFNFVCgKK3slIGZvciBmaWVsZCBp biBkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2VkJ10gJX0KK3slIGlmIGZp ZWxkLnZhbHVlICE9IE5vbmUgJX0KKyAge3sgZmllbGQubmFtZSB9fSA9IHt7 IGZpZWxkLnZhbHVlfGxvd2VyIH19eyUgaWYgbm90IGxvb3AubGFzdCAgJX0s eyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9CispOworCit7JSBlbmRpZiAlfXsjID09PT09IEVuZCBjaGVjayBmb3Ig Y3VzdG9tIGF1dG92YWNjdW0gPT09PT0gI30KK3slIGVuZGlmICV9eyMgPT09 PT0gRW5kIGJsb2NrIGZvciBjaGVjayBkYXRhIGRlZmluaXRpb24gPT09PT0g I30KK3slLSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRhdGEuY29tbWVudCAhPSBv X2RhdGEuY29tbWVudCAtJX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0 SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgSVMge3sgZGF0 YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKKworeyUgZW5kaWYgJX0KK3sjID09 PT09PT09PT09PT0gVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFu Z2UgcHJpdmlsZWdlcyA9PT09PT09PT09PT09ICN9Cit7JSBpZiBkYXRhLmRh dGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklW SUxFR0UuUkVTRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBk YXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkIC0lfQore3sgUFJJ VklMRUdFLlVOU0VUQUxMKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwg ZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSkgfX0KK3t7IFBSSVZJTEVHRS5TRVQo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYu d2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkg fX0KK3slLSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQn IGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFj bC5hZGRlZCAlfQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBw cml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3sjID09PT09PT09PT09PT09 IFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNlY3VyaXR5 IExhYmVsID09PT09PT09PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMg bm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3sl IHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0K K3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQor e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29u biwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wcGFzLzkuM19w bHVzL3NxbC92aWV3X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy9tYXRlcmlhbGl6ZWRfdmlldy9wcGFzLzkuM19wbHVzL3NxbC92 aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5kMTkyYTgwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL21hdGVyaWFsaXplZF92aWV3L3BwYXMvOS4zX3Bs dXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyMgPT09PT0g QmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIGxhc3QgY3JlYXRlZCB2 aWV3ID09PT0gI30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9N IHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9 fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvY3NzL3ZpZXcuY3NzIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvY3NzL3ZpZXcuY3NzCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZWFlNGUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlldy9jc3Mvdmlldy5jc3MKQEAgLTAsMCArMSwxMiBAQAorLmljb24tdmll d3sKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RF LXZpZXcuc3RhdGljJywgZmlsZW5hbWU9J2ltZy92aWV3LnBuZycpIH19Jykg IWltcG9ydGFudDsKKyAgYm9yZGVyLXJhZGl1czogMTBweDsKKyAgYmFja2dy b3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgYWxpZ24tY29udGVudDogY2Vu dGVyOworICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICBoZWlnaHQ6IDEu M2VtOworfQorCisuc3FsX2ZpZWxkX2hlaWdodF8xNDAgeworICBoZWlnaHQ6 IDE0MHB4OworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvanMvdmlldy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L2pzL3ZpZXcuanMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMzY0YjZhNwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L2pzL3Zp ZXcuanMKQEAgLTAsMCArMSwyNzQgQEAKK2RlZmluZSgKKyAgWydqcXVlcnkn LCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWlu JywKKyAgICAncGdhZG1pbi5icm93c2VyJywgJ2NvZGVtaXJyb3InLCAncGdh ZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxlZ2UnXSwKKworZnVuY3Rpb24o JCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBDb2RlTWlycm9yKSB7CisK KyAgLyoqCisgICAgQ3JlYXRlIGFuZCBhZGQgYSB2aWV3IGNvbGxlY3Rpb24g aW50byBub2RlcworICAgIEBwYXJhbSB7dmFyaWFibGV9IGxhYmVsIC0gTGFi ZWwgZm9yIE5vZGUKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSB0eXBlIC0gVHlw ZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY29sdW1ucyAtIExp c3Qgb2YgY29sdW1ucyB0bworICAgICAgZGlzcGxheSB1bmRlciB1bmRlciBw cm9wZXJ0aWVzLgorICAgKi8KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2Nv bGwtdmlldyddKSB7CisgICAgdmFyIHZpZXdzPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZXNbJ2NvbGwtdmlldyddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5D b2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICd2aWV3JywKKyAg ICAgICAgbGFiZWw6ICd7eyBfKCJWaWV3cyIpIH19JywKKyAgICAgICAgdHlw ZTogJ2NvbGwtdmlldycsCisgICAgICAgIGNvbHVtbnM6IFsibmFtZSIsICJv d25lciJdCisgICAgICB9KTsKKyAgfQorCisgIC8qKgorICAgIENyZWF0ZSBh bmQgQWRkIGEgVmlldyBOb2RlIGludG8gbm9kZXMKKyAgICBAcGFyYW0ge3Zh cmlhYmxlfSBwYXJlbnRfdHlwZSAtIFRoZSBsaXN0IG9mIG5vZGVzCisgICAg dW5kZXIgd2hpY2ggdGhpcyBub2RlIHRvIGRpc3BsYXkKKyAgICBAcGFyYW0g e3ZhcmlhYmxlfSB0eXBlIC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2 YXJpYWJsZX0gaGFzU1FMIC0gVG8gc2hvdyBTUUwgdGFiCisgICAgQHBhcmFt IHt2YXJpYWJsZX0gY2FuRHJvcCAtIEFkZHMgZHJvcCB2aWV3IG9wdGlvbgor ICAgIGluIHRoZSBjb250ZXh0IG1lbnUKKyAgICBAcGFyYW0ge3ZhcmlhYmxl fSBjYW5Ecm9wQ2FzY2FkZSAtIEFkZHMgZHJvcCBDYXNjYWRlCisgICAgdmll dyBvcHRpb24gaW4gdGhlIGNvbnRleHQgbWVudQorICAgKi8KKyAgaWYgKCFw Z0Jyb3dzZXIuTm9kZXNbJ3ZpZXcnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nl ci5Ob2Rlc1sndmlldyddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5k KHsKKyAgICAgIHBhcmVudF90eXBlOiBbJ3NjaGVtYScsICdjYXRhbG9nJ10s CisgICAgICB0eXBlOiAndmlldycsCisgICAgICBsYWJlbDogJ3t7IF8oIlZp ZXciKSB9fScsCisgICAgICBoYXNTUUw6ICB0cnVlLAorICAgICAgaGFzRGVw ZW5kczogdHJ1ZSwKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTogJ2NvbGwtdmll dycsCisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSdd LmNhbkNoaWxkRHJvcCwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiBwZ0Jyb3dz ZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAgICAgIEluaXQ6 IGZ1bmN0aW9uKCkgeworCisgICAgICAgIC8vIEF2b2lkIG11bGl0cGxlIHJl Z2lzdHJhdGlvbiBvZiBtZW51cworICAgICAgICBpZiAodGhpcy5pbml0aWFs aXplZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0 aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAgQWRk ICJjcmVhdGUgdmlldyIgbWVudSBvcHRpb24gaW50byBjb250ZXh0IGFuZCBv YmplY3QgbWVudQorICAgICAgICAgIGZvciB0aGUgZm9sbG93aW5nIG5vZGVz OgorICAgICAgICAgIGNvbGwtdmlldywgdmlldyBhbmQgc2NoZW1hLgorICAg ICAgICAgIEBwcm9wZXJ0eSB7ZGF0YX0gLSBBbGxvdyBjcmVhdGUgdmlldyBv cHRpb24gb24gc2NoZW1hIG5vZGUgb3IKKyAgICAgICAgICBzeXN0ZW0gdmll dyBub2Rlcy4KKyAgICAgICAgICovCisgICAgICAgIHBnQnJvd3Nlci5hZGRf bWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3ZpZXdfb25fY29s bCcsIG5vZGU6ICdjb2xsLXZpZXcnLCBtb2R1bGU6IHRoaXMsCisgICAgICAg ICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazog J3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAn Y3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygiVmlldy4uLiIp IH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tdmlldycs IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAg ICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX3ZpZXcnLCBub2RlOiAndmlldycsIG1vZHVs ZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250 ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAg ICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6 ICd7eyBfKCJWaWV3Li4uIikgfX0nLAorICAgICAgICAgIGljb246ICd3Y1Rh Ykljb24gaWNvbi12aWV3JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNo ZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisg ICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfdmlldycsIG5v ZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGll czogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2Jq X3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywg cHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygiVmlldy4uLiIpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tdmlldycsIGRhdGE6IHth Y3Rpb246ICdjcmVhdGUnLCBjaGVjazogZmFsc2V9LAorICAgICAgICAgIGVu YWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfQorICAgICAgICBdKTsKKyAg ICAgIH0sCisKKyAgICAgIC8qKgorICAgICAgICBEZWZpbmUgbW9kZWwgZm9y IHRoZSB2aWV3IG5vZGUgYW5kIHNwZWNpZnkgdGhlCisgICAgICAgIHByb3Bl cnRpZXMgb2YgdGhlIG1vZGVsIGluIHNjaGVtYS4KKyAgICAgICAqLworICAg ICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7 CisgICAgICAgIGRlZmF1bHRzOiB7CisgICAgICAgIH0sCisgICAgICAgIHNj aGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8o Ik5hbWUiKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6 ICd0ZXh0JywgZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfSwKKyAg ICAgICAgeworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6J3t7IF8oIk9J RCIpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3Rl eHQnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAg ICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnb3duZXInLCBs YWJlbDone3sgXygiT3duZXIiKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250 cm9sOiAnbm9kZS1saXN0LWJ5LW5hbWUnLAorICAgICAgICAgIG5vZGU6ICdy b2xlJywgZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfSwKKyAgICAg ICAgeworICAgICAgICAgIGlkOiAnc2NoZW1hJywgbGFiZWw6J3t7IF8oIlNj aGVtYSIpIH19JywgY2VsbDogJ3N0cmluZycsIGZpcnN0X2VtcHR5OiBmYWxz ZSwKKyAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsIG5vZGU6ICdzY2hlbWEn LCBkaXNhYmxlZDogJ2luU2NoZW1hJywKKyAgICAgICAgICBjb250cm9sOiBC YWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wuZXh0ZW5kKHsKKyAgICAg ICAgICAgIHJlbmRlcjogZnVuY3Rpb24oKXsKKworICAgICAgICAgICAgICAv LyBJbml0aWFsaXplIHBhcmVudCdzIHJlbmRlciBtZXRob2QKKyAgICAgICAg ICAgICAgQmFja2Zvcm0uTm9kZUxpc3RCeU5hbWVDb250cm9sLnByb3RvdHlw ZS5yZW5kZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKworICAgICAgICAg ICAgICAvLyBTZXQgc2NoZW1hIGRlZmF1bHQgdmFsdWUgdG8gaXRzIHBhcmVu dCBTY2hlbWEKKyAgICAgICAgICAgICAgaWYodGhpcy5tb2RlbC5pc05ldygp KXsKKyAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnNldCh7J3NjaGVtYSc6 IHRoaXMubW9kZWwubm9kZV9pbmZvLnNjaGVtYS5sYWJlbH0pOworICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAg ICAgICAgfQorICAgICAgICAgIH0pLAorCisgICAgICAgICAgLy8gRG9uJ3Qg c2hvdyBzY2hlbWEgc3RhcnRzIHdpdGggInBnXyIKKyAgICAgICAgICBmaWx0 ZXI6IGZ1bmN0aW9uKGQpeworICAgICAgICAgICAgaWYoZC5sYWJlbCAmJiBk LmxhYmVsLm1hdGNoKC9ecGdfLykpeworICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ2NvbW1lbnQnLCBsYWJlbDone3sgXygiQ29tbWVudCIpIH19 JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211bHRpbGlu ZScsIGRpc2FibGVkOiAnaW5TY2hlbWEnCisgICAgICAgIH0sCisgICAgICAg IHsKKyAgICAgICAgICBpZDogJ3N5c3RlbV92aWV3JywgbGFiZWw6J3t7IF8o IlN5c3RlbSB2aWV3PyIpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgdHlwZTogJ3N3aXRjaCcsIGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ3By b3BlcnRpZXMnXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg aWQ6ICdzZWN1cml0eV9iYXJyaWVyJywgbGFiZWw6J3t7IF8oIlNlY3VyaXR5 IEJhcnJpZXIiKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5 cGU6ICdzd2l0Y2gnLCBtaW5fdmVyc2lvbjogJzkwMjAwJywgbW9kZTogWydj cmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgIGdyb3VwOiAnRGVmaW5pdGlv bicsIGRpc2FibGVkOiAnaW5TY2hlbWEnCisgICAgICAgIH0sCisgICAgICAg IHsKKyAgICAgICAgICBpZDogJ2NoZWNrX29wdGlvbicsIGxhYmVsOid7eyBf KCJDaGVjayBPcHRpb25zIikgfX0nLAorICAgICAgICAgIGNvbnRyb2w6ICdz ZWxlY3QyJywgZ3JvdXA6ICdEZWZpbml0aW9uJywgdHlwZTogJ3RleHQnLAor ICAgICAgICAgIG1pbl92ZXJzaW9uOiAnOTA0MDAnLCBtb2RlOlsncHJvcGVy dGllcycsICdjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgIHNlbGVjdDI6 IHsKKworICAgICAgICAgICAgLy8gc2V0IHNlbGVjdDIgb3B0aW9uIHdpZHRo IHRvIDEwMCUKKyAgICAgICAgICAgIHdpZHRoOiAnMTAwJScKKyAgICAgICAg ICB9LAorICAgICAgICAgIG9wdGlvbnM6WworICAgICAgICAgICAge2xhYmVs OiAiTm8iLCB2YWx1ZTogIm5vIn0sCisgICAgICAgICAgICB7bGFiZWw6ICJM b2NhbCIsIHZhbHVlOiAibG9jYWwifSwKKyAgICAgICAgICAgIHtsYWJlbDog IkNhc2NhZGVkIiwgdmFsdWU6ICJjYXNjYWRlZCJ9CisgICAgICAgICAgXSwg ZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfSwKKyAgICAgICAgewor ICAgICAgICAgIGlkOiAnZGVmaW5pdGlvbicsIGxhYmVsOid7eyBfKCJEZWZp bml0aW9uIikgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAndGV4dCcsIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwgZ3JvdXA6ICdE ZWZpbml0aW9uJywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5TcWxG aWVsZENvbnRyb2wsIGV4dHJhQ2xhc3NlczpbJ3NxbF9maWVsZF9oZWlnaHRf MTQwJ10sCisgICAgICAgICAgZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAg ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnYWNsJywgbGFiZWw6 ICd7eyBfKCJBQ0wiKSB9fScsCisgICAgICAgICAgbW9kZTogWydwcm9wZXJ0 aWVzJ10sIHR5cGU6ICd0ZXh0JworICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3NlY3VyaXR5JywgbGFiZWw6ICd7eyBfKCJTZWN1cml0eSIpIH19JywK KyAgICAgICAgICB0eXBlOiAnZ3JvdXAnLAorICAgICAgICAgIHZpc2libGU6 IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIGlmIChtLnRvcCAmJiAnY2F0 YWxvZycgaW4gbS50b3Aubm9kZV9pbmZvKSB7CisgICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICAv LyBBZGQgUHJpdmlsZWdlIENvbnRyb2wKKyAgICAgICAgeworICAgICAgICAg IGlkOiAnZGF0YWNsJywgbGFiZWw6ICd7eyBfKCJQcml2aWxlZ2VzIikgfX0n LAorICAgICAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Qcml2 aWxlZ2VSb2xlTW9kZWwuZXh0ZW5kKAorICAgICAgICAgICAge3ByaXZpbGVn ZXM6IFsnYScsICdyJywgJ3cnLCAnZCcsICdEJywgJ3gnLCAndCddfSksIHVu aXF1ZUNvbCA6IFsnZ3JhbnRlZSddLAorICAgICAgICAgIGVkaXRhYmxlOiBm YWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91cDogJ3NlY3VyaXR5JywK KyAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sIGNhbkFkZDog dHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAorICAgICAgICAgIGNvbnRyb2w6ICd1 bmlxdWUtY29sLWNvbGxlY3Rpb24nLCBkaXNhYmxlZDogJ2luU2NoZW1hJwor ICAgICAgICB9LAorCisgICAgICAgIC8vIEFkZCBTZWN1cml0eSBMYWJlbHMg Q29udHJvbAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzZWNsYWJlbHMn LCBsYWJlbDogJ3t7IF8oIlNlY3VyaXR5IExhYmVscyIpIH19JywKKyAgICAg ICAgICBtb2RlbDogQmFja2Zvcm0uU2VjdXJpdHlNb2RlbCwgZWRpdGFibGU6 IGZhbHNlLCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAgICAgICAgY2FuRWRp dDogZmFsc2UsIGdyb3VwOiAnc2VjdXJpdHknLCBjYW5EZWxldGU6IHRydWUs CisgICAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBjYW5BZGQ6 IHRydWUsIGRpc2FibGVkOiAnaW5TY2hlbWEnLAorICAgICAgICAgIGNvbnRy b2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rpb24nLCB1bmlxdWVDb2wgOiBbJ3By b3ZpZGVyJ10KKyAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAgICAgdmFs aWRhdGU6IGZ1bmN0aW9uKCkgeworCisgICAgICAgICAgLy8gVHJpZ2dlcnMg c3BlY2lmaWMgZXJyb3IgbWVzc2FnZXMgZm9yIGZpZWxkcworICAgICAgICAg IHZhciBlcnIgPSB7fSwKKyAgICAgICAgICAgIGVycm1zZywKKyAgICAgICAg ICAgIGZpZWxkX25hbWUgPSB0aGlzLmdldCgnbmFtZScpLAorICAgICAgICAg ICAgZmllbGRfZGVmID0gdGhpcy5nZXQoJ2RlZmluaXRpb24nKTsKKyAgICAg ICAgICBpZiAoXy5pc1VuZGVmaW5lZChmaWVsZF9uYW1lKSB8fCBfLmlzTnVs bChmaWVsZF9uYW1lKSB8fAorICAgICAgICAgICAgU3RyaW5nKGZpZWxkX25h bWUpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAg ICAgICAgIGVyclsnbmFtZSddID0gJ3t7IF8oIlBsZWFzZSBzcGVjaWZ5IG5h bWUuIikgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVy clsnbmFtZSddOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgn bmFtZScsIGVycm1zZyk7CisgICAgICAgICAgICByZXR1cm4gZXJybXNnOwor ICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVs LnVuc2V0KCduYW1lJyk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmKHRo aXMuaXNOZXcoKSl7CisgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChm aWVsZF9kZWYpIHx8IF8uaXNOdWxsKGZpZWxkX2RlZikgfHwKKyAgICAgICAg ICAgICAgU3RyaW5nKGZpZWxkX2RlZikucmVwbGFjZSgvXlxzK3xccyskL2cs ICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJbJ2RlZmluaXRpb24n XSA9ICd7eyBfKCJQbGVhc2UgZW50ZXIgZnVuY3Rpb24gZGVmaW5pdGlvbi4i KSB9fSc7CisgICAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJb J2RlZmluaXRpb24nXTsKKyAgICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVs LnNldCgnZGVmaW5pdGlvbicsIGVycm1zZyk7CisgICAgICAgICAgICAgIHJl dHVybiBlcnJtc2c7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdkZWZpbml0aW9uJyk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBudWxs OworICAgICAgICB9LAorICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgZXZl cnl0aGluZyBpZiB3ZSBhcmUgdW5kZXIgY2F0YWxvZyBub2RlCisgICAgICAg IGluU2NoZW1hOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZih0aGlzLm5v ZGVfaW5mbyAmJiAnY2F0YWxvZycgaW4gdGhpcy5ub2RlX2luZm8pCisgICAg ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAg fQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAg fSksCisKKyAgICAgIC8qKgorICAgICAgICBTaG93IG9yIGhpZGUgY3JlYXRl IHZpZXcgbWVudSBvcHRpb24gb24gcGFyZW50IG5vZGUKKyAgICAgICAgYW5k IGhpZGUgZm9yIHN5c3RlbSB2aWV3IGluIGNhdGFsb2dzLgorICAgICAgICov CisgICAgICBjYW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBk YXRhKSB7CisKKyAgICAgICAgLy8gSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiwg d2Ugd2lsbCBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICBpZiAoZGF0YSAm JiBkYXRhLmNoZWNrID09IGZhbHNlKQorICAgICAgICAgIHJldHVybiB0cnVl OworCisgICAgICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUsIGkgPSBpdGVt LCBkID0gaXRlbURhdGE7CisKKyAgICAgICAgLy8gVG8gaXRlcmF0ZSBvdmVy IHRyZWUgdG8gY2hlY2sgcGFyZW50IG5vZGUKKyAgICAgICAgd2hpbGUgKGkp IHsKKworICAgICAgICAgIC8vIElmIGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93 IHVzZXIgdG8gY3JlYXRlIHZpZXcKKyAgICAgICAgICBpZiAoXy5pbmRleE9m KFsnc2NoZW1hJ10sIGQuX3R5cGUpID4gLTEpCisgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKKworICAgICAgICAgIGlmICgnY29sbC12aWV3JyA9PSBkLl90 eXBlKSB7CisKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlIGFyZSBub3Qg Y2hpbGQgb2YgdmlldworICAgICAgICAgICAgcHJldl9pID0gdC5oYXNQYXJl bnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBwcmV2 X2QgPSBwcmV2X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBudWxsOworICAg ICAgICAgICAgaWYoIHByZXZfZC5fdHlwZSA9PSAnY2F0YWxvZycpIHsKKyAg ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9 CisgICAgICAgICAgfQorICAgICAgICAgIGkgPSB0Lmhhc1BhcmVudChpKSA/ IHQucGFyZW50KGkpIDogbnVsbDsKKyAgICAgICAgICBkID0gaSA/IHQuaXRl bURhdGEoaSkgOiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gYnkg ZGVmYXVsdCB3ZSBkbyBub3Qgd2FudCB0byBhbGxvdyBjcmVhdGUgbWVudQor ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgfQorICB9KTsKKyAgfQor CisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtdmlldyddOworfSk7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlldy9wZy85LjFfcGx1cy9zcWwvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC9hY2wuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NTA2MzkK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvYWNsLnNxbApAQCAtMCwwICsx LDUxIEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IEdldCBB Q0xzID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAl fQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBDT0FM RVNDRShndC5yb2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBnLnJv bG5hbWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUp IGFzIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkg YXMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdy YW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENB U0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdERUxFVEUnIFRI RU4gJ2QnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAg ICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAn U0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVO ICd0JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAg IFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBFTFNFICdVTktO T1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9N CisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIHJlbGFjbAorICAgICAg ICBGUk9NCisgICAgICAgICAgICBwZ19jbGFzcyBjbAorICAgICAgICBMRUZU IE9VVEVSIEpPSU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAg ICAgICAgICBjbC5vaWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29p ZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICAgICAgV0hFUkUKKyAgICAg ICAgICAgIGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0g J3YnCisgICAgICAgICkgYWNsLAorICAgICAgICAoU0VMRUNUCisgICAgICAg ICAgICAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLAorICAgICAgICAgICAgKGQp LmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19ncmFu dGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZp bGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAg ICAgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgICAgICBhY2xleHBsb2Rl KHJlbGFjbCkgQVMgZAorICAgICAgICAgICAgIEZST00KKyAgICAgICAgICAg ICAgICBwZ19jbGFzcyBjbDEKKyAgICAgICAgICAgICBXSEVSRQorICAgICAg ICAgICAgICAgIGNsMS5vaWQgPSB7eyB2aWQgfX0KKyAgICAgICAgICAgICkg YQorICAgICAgICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0 YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBM RUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVl ID0gZ3Qub2lkKQorR1JPVVAgQlkKKyAgICBnLnJvbG5hbWUsIGd0LnJvbG5h bWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvY3JlYXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku MV9wbHVzL3NxbC9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmQ1NGZmZjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9z cWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7Iz09PT09PT09PT09 PT09PT09PT09PT09PT09PT1DcmVhdGUgbmV3IHZpZXc9PT09PT09PT09PT09 PT09PT09PT09PT09I30KK3slIGlmIGRpc3BsYXlfY29tbWVudHMgJX0KKy0t IFZpZXc6IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1l KSB9fQorCistLSBEUk9QIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0YS5kZWZpbml0aW9uICV9 CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorQVMKK3t7IGRhdGEuZGVmaW5pdGlv bi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgJX0KKworQUxU RVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklF VyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0K KyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvZGVsZXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bn LzkuMV9wbHVzL3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmU1MGJlZWMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1 cy9zcWwvZGVsZXRlLnNxbApAQCAtMCwwICsxLDEzIEBACit7IyA9PT09PT09 PT09PT09PT09PT09PT09IERyb3AvQ2FzY2FkZSB2aWV3IGJ5IG5hbWUgPT09 PT09PT09PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAor ICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lCitGUk9N CisgICAgcGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3Ag T04gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIGMucmVs ZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBuc3Bu YW1lKSAlfQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNvbm58cXRJZGVu dChuYW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5kaWYg JX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvZ3JhbnQuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4x X3BsdXMvc3FsL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jZTk0ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3Fs L2dyYW50LnNxbApAQCAtMCwwICsxLDE0IEBACit7IyA9PT09PSBHcmFudCBQ ZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVzID09PT09 ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNF Q0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3ByaXZpbGVn ZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyMgPT09PT0gV2Ugd2lsbCBn ZW5lcmF0ZSBTZWN1cml0eSBMYWJlbCBTUUwgdXNpbmcgbWFjcm8gPT09PT0g I30KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRh LnNlY2xhYmVscyAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRhdGFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wgJX0KK3t7IFBSSVZJ TEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5h bWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRh LnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bn LzkuMV9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j ZTFkODAxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3FsL3Byb3BlcnRpZXMu c3FsCkBAIC0wLDAgKzEsNjkgQEAKK3slIGlmICh2aWQgYW5kIGRhdGxhc3Rz eXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVDVAorICAgIGMub2lkLAorICAgIGMu eG1pbiwKKyAgICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAw IFRIRU4gc3BjLnNwY25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBz cGNuYW1lLAorICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3Bu YW1lIEFTIHNjaGVtYSwKKyAgICBkZXNjcmlwdGlvbiBBUyBjb21tZW50LAor ICAgIGMucmVsdGFibGVzcGFjZSBBUyBzcGNvaWQsCisgICAgcGdfZ2V0X3Vz ZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyLAorICAgIHBnX2dldF92aWV3 ZGVmKGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIGFycmF5X3Rv X3N0cmluZyhjLnJlbGFjbDo6dGV4dFtdLCAnLCAnKSBBUyBhY2wsCisgICAg eyM9PT09PT09PT09PT09Q2hlY2tzIGlmIGl0IGlzIHN5c3RlbSB2aWV3PT09 PT09PT09PT09PT09PSN9CisgICAgeyUgaWYgdmlkIGFuZCBkYXRsYXN0c3lz b2lkICV9CisgICAgQ0FTRSBXSEVOIHt7dmlkfX0gPD0ge3tkYXRsYXN0c3lz b2lkfX0gVEhFTiBUcnVlIEVMU0UgRmFsc2UgRU5EIEFTIHN5c3RlbV92aWV3 LAorICAgIHslIGVuZGlmICV9CisgICAgKFNFTEVDVAorICAgICAgICBhcnJh eV9hZ2cobGFiZWwpCisgICAgIEZST00KKyAgICAgICAgcGdfc2VjbGFiZWxz IHNsMQorICAgICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPWMub2lkIEFO RCBzbDEub2Jqc3ViaWQ9MAorICAgICkgQVMgbGFiZWxzLAorICAgIChTRUxF Q1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyKQorICAgICBGUk9NCisg ICAgICAgIHBnX3NlY2xhYmVscyBzbDIKKyAgICAgV0hFUkUgc2wyLm9iam9p ZD1jLm9pZCBBTkQgc2wyLm9ianN1YmlkPTAKKyAgICApIEFTIHByb3ZpZGVy cworRlJPTSBwZ19jbGFzcyBjCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX25h bWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCisgICAg TEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9 Yy5yZWx0YWJsZXNwYWNlCisgICAgTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2Ny aXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVzLm9ianN1 YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykK K1dIRVJFICgoYy5yZWxoYXNydWxlcworICAgICAgICAgICAgQU5ECisgICAg ICAgICAgICAgICAgKEVYSVNUUygKKyAgICAgICAgICAgICAgICAgICAgU0VM RUNUCisgICAgICAgICAgICAgICAgICAgICAgICByLnJ1bGVuYW1lCisgICAg ICAgICAgICAgICAgICAgIEZST00KKyAgICAgICAgICAgICAgICAgICAgICAg IHBnX3Jld3JpdGUgcgorICAgICAgICAgICAgICAgICAgICBXSEVSRQorICAg ICAgICAgICAgICAgICAgICAgICAgKChyLmV2X2NsYXNzID0gYy5vaWQpIEFO RCAoYnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikpCisgICAgICAg ICAgICAgICAgKSkKKyAgICAgICApIEFORCAoYy5yZWxraW5kID0gJ3YnOjpj aGFyKSkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpICV9CisgICAg QU5EIGMub2lkID0ge3t2aWR9fTo6b2lkCit7JSBlbGlmIHNjaWQgJX0KKyAg ICBBTkQgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkIE9SREVSIEJZ IGMucmVsbmFtZQoreyUgZW5kaWYgJX0KKworeyUgZWxpZiB0eXBlID09ICdy b2xlcycgJX0KK1NFTEVDVAorICAgIHByLnJvbG5hbWUKK0ZST00KKyAgICBw Z19yb2xlcyBwcgorV0hFUkUKKyAgICBwci5yb2xjYW5sb2dpbgorT1JERVIg QlkKKyAgICBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1h cycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdf bmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5hbWUgTk9UIExJ S0UgRSdwZ1xcXyUnCisgICAgICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5m b3JtYXRpb25fc2NoZW1hJykKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1 cy9zcWwvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC91cGRhdGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmN2Y4MmUKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wZy85LjFfcGx1cy9zcWwvdXBkYXRlLnNxbApAQCAtMCwwICsxLDY2IEBA Cit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IFVwZGF0ZSBWaWV3 ID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGltcG9ydCAnbWFj cm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9y dCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklM RUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmlld19uYW1lID0gZGF0 YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7JSBz ZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBl bHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRhLmRlZmlu aXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9Cit7JSBp ZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQor QUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19k YXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChk YXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1h IGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBW SUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCB2aWV3X25hbWUg KSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBk YXRhLm93bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sg Y29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAg T1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEub3duZXIpIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRlZiBhbmQgZGVmICE9IG9fZGF0YS5kZWZpbml0 aW9uLnJzdHJpcCgnOycpICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7 IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAg IEFTe3sgZGVmIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVu dCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01N RU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9 fTsKK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3 aWxsIGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3Ig cHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5h bWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3Ig cHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5h bWUsIGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0 X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRh LmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQg JX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFu dGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRo X2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxv dyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5z ZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0 aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5hZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBk YXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9 Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFC TEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIs IHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm ICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVz L3NxbC92aWV3X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGZmMDRlCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcGcvOS4xX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBA QAoreyMgQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5IGNy ZWF0ZWQgdmlldyAjfQoreyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZS T00gcGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1l IH19JzsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvYWNsLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku Ml9wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjVmMmQwZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwv YWNsLnNxbApAQCAtMCwwICsxLDUyIEBACit7IyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09IEdldCBBQ0xzID09PT09PT09PT09PT09PT09PT09PT09 PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMg ZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykg Z3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3JhbnRvciwKKyAgICBhcnJheV9h Z2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsCisgICAgYXJyYXlf YWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNF TEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFu dGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAg ICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0lOU0VS VCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAn eCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBX SEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdVUERBVEUn IFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJwor ICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmls ZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAg ICAgIHJlbGFjbAorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19jbGFz cyBjbAorICAgICAgICBMRUZUIE9VVEVSIEpPSU4gcGdfc2hkZXNjcmlwdGlv biBkZXNjciBPTiAoCisgICAgICAgICAgICBjbC5vaWQ9ZGVzY3Iub2Jqb2lk IEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAg ICAgICAgV0hFUkUKKyAgICAgICAgICAgIGNsLm9pZCA9IHt7IHZpZCB9fTo6 T0lEIEFORCByZWxraW5kID0gJ3YnCisgICAgICAgICkgYWNsLAorICAgICAg ICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFudGVl LAorICAgICAgICAgICAgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAg ICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAg ICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBl CisgICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxFQ1QKKyAgICAgICAg ICAgICAgICBhY2xleHBsb2RlKHJlbGFjbCkgQVMgZAorICAgICAgICAgICAg IEZST00KKyAgICAgICAgICAgICAgICBwZ19jbGFzcyBjbDEKKyAgICAgICAg ICAgICBXSEVSRQorICAgICAgICAgICAgICAgIGNsMS5vaWQgPSB7eyB2aWQg fX0KKyAgICAgICAgICAgICkgYQorICAgICAgICApIGQKKyAgICApIGQKK0xF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9 IGcub2lkKQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04g KGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1l LAorICAgIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1 cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9jcmVhdGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3OGJhNjQKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wZy85LjJfcGx1cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDIyIEBA Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1DcmVhdGUgbmV3IHZp ZXc9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIGRpc3BsYXlf Y29tbWVudHMgJX0KKy0tIFZpZXc6IHt7IGNvbm58cXRJZGVudChkYXRhLnNj aGVtYSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9QIFZJRVcge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0 YS5kZWZpbml0aW9uICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQoreyUgaWYg KGRhdGEuc2VjdXJpdHlfYmFycmllcikgJX0KK1dJVEggKHslIGlmIGRhdGEu c2VjdXJpdHlfYmFycmllciAlfXNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5z ZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19eyUgZW5kaWYgJX0peyUgZW5kaWYg JX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3sl IGlmIGRhdGEub3duZXIgJX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgIE9XTkVSIFRPIHt7 IGRhdGEub3duZXIgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21t ZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50 fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4yX3BsdXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvZGVsZXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTBiZWVj Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3FsL2RlbGV0ZS5zcWwKQEAgLTAs MCArMSwxMyBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09PSBEcm9wL0Nh c2NhZGUgdmlldyBieSBuYW1lID09PT09PT09PT09PT09PT09PT09PSAjfQor eyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwK KyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQg Sk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNw Lm9pZAorV0hFUkUKKyAgICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19Owor eyUgZWxpZiAobmFtZSBhbmQgbnNwbmFtZSkgJX0KK0RST1AgVklFVyB7e25z cG5hbWV9fS57eyBjb25ufHF0SWRlbnQobmFtZSkgfX0geyUgaWYgY2FzY2Fk ZSAlfSBDQVNDQURFIHslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcv OS4yX3BsdXMvc3FsL2dyYW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9ncmFudC5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U5NGVjYwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BnLzkuMl9wbHVzL3NxbC9ncmFudC5zcWwKQEAgLTAsMCArMSwx NCBAQAoreyMgPT09PT0gR3JhbnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xl IG9uIFZpZXdzL1RhYmxlcyA9PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mv c2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdt YWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0Ug JX0KK3sjID09PT09IFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkgTGFiZWwg U1FMIHVzaW5nIG1hY3JvID09PT09ICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVs cyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7IFNFQ0xB QkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy LCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRh dGEuZGF0YWNsICV9Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScs IHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQs IHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w Zy85LjJfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZWViZTBmNQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku Ml9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDcwIEBACit7 JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitTRUxF Q1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAgYy5yZWxuYW1lIEFT IG5hbWUsCisgICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAgICAo Q0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3BjLnNw Y25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAorICAg IHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwKKyAgICBk ZXNjcmlwdGlvbiBBcyBjb21tZW50LAorICAgIHBnX2dldF92aWV3ZGVmKGMu b2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIG5zcC5uc3BuYW1lIEFT IHNjaGVtYSwKKyAgICBhcnJheV90b19zdHJpbmcoYy5yZWxhY2w6OnRleHRb XSwgJywgJykgQVMgYWNsLAorICAgIHsjPT09PT09PT09PT09PUNoZWNrcyBp ZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09PT0jfQorICAgIHsl IGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAgIENBU0UgV0hFTiB7 e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4gVHJ1ZSBFTFNFIEZh bHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBlbmRpZiAlfQorKFNF TEVDVAorICAgIGFycmF5X2FnZyhsYWJlbCkKK0ZST00KKyAgICBwZ19zZWNs YWJlbHMgc2wxCitXSEVSRQorICAgIHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNs MS5vYmpzdWJpZD0wKSBBUyBsYWJlbHMsCisoU0VMRUNUCisgICAgYXJyYXlf YWdnKHByb3ZpZGVyKQorRlJPTQorICAgIHBnX3NlY2xhYmVscyBzbDIKK1dI RVJFCisgICAgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wyLm9ianN1YmlkPTAp IEFTIHByb3ZpZGVycworICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu ZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAgRlJPTSAnc2VjdXJpdHlf YmFycmllcj0oW2EtenwwLTldKiknKSBBUyBzZWN1cml0eV9iYXJyaWVyCitG Uk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2Ug bnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQorTEVGVCBPVVRFUiBK T0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNw YWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChk ZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNs YXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgIFdIRVJFICgoYy5y ZWxoYXNydWxlcyBBTkQgKEVYSVNUUyAoCisgICAgICAgICAgICBTRUxFQ1QK KyAgICAgICAgICAgICAgICByLnJ1bGVuYW1lCisgICAgICAgICAgICBGUk9N CisgICAgICAgICAgICAgICAgcGdfcmV3cml0ZSByCisgICAgICAgICAgICBX SEVSRQorICAgICAgICAgICAgICAgICgoci5ldl9jbGFzcyA9IGMub2lkKQor ICAgICAgICAgICAgICAgICAgICBBTkQgKGJwY2hhcihyLmV2X3R5cGUpID0g JzEnOjpicGNoYXIpCisgICAgICAgICAgICAgICAgKSApKQorICAgICAgICAg ICApIEFORCAoYy5yZWxraW5kID0gJ3YnOjpjaGFyKQorICAgICAgICAgICkK K3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpICV9CisgICAgQU5EIGMu b2lkID0ge3t2aWR9fTo6b2lkCit7JSBlbGlmIHNjaWQgJX0KKyAgICBBTkQg Yy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkIE9SREVSIEJZIGMucmVs bmFtZQoreyUgZW5kaWYgJX0KKworeyUgZWxpZiB0eXBlID09ICdyb2xlcycg JX0KK1NFTEVDVAorICAgIHByLnJvbG5hbWUKK0ZST00KKyAgICBwZ19yb2xl cyBwcgorV0hFUkUKKyAgICBwci5yb2xjYW5sb2dpbgorT1JERVIgQlkKKyAg ICBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1hcycgJX0K K1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNw YWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5hbWUgTk9UIExJS0UgRSdw Z1xcXyUnCisgICAgICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRp b25fc2NoZW1hJykKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BnLzkuMl9wbHVzL3NxbC91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzN2Q0YmEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85 LjJfcGx1cy9zcWwvdXBkYXRlLnNxbApAQCAtMCwwICsxLDc0IEBACit7IyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09IFVwZGF0ZSBWaWV3ID09PT09 PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3Nl Y3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFj cm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmlld19uYW1lID0gZGF0YS5uYW1l IGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgdmll d19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBlbHNlIG9f ZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRhLmRlZmluaXRpb24u cnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9Cit7JSBpZiBkYXRh Lm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIg VklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5h bWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5h bWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFuZCBk YXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBWSUVXIHt7 IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCB2aWV3X25hbWUgKSB9fQor ICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hKSB9 fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93 bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxx dElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgT1dORVIg VE8ge3sgY29ubnxxdElkZW50KGRhdGEub3duZXIpIH19OworeyUgZW5kaWYg JX0KK3slIGlmIGRlZiBhbmQgZGVmICE9IG9fZGF0YS5kZWZpbml0aW9uLnJz dHJpcCgnOycpICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58 cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQoreyUgaWYgKGRh dGEuc2VjdXJpdHlfYmFycmllciBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVy ICE9IG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQorICAgIFdJVEggKHsl IGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfXNlY3VyaXR5X2JhcnJpZXI9 e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19eyUgZW5kaWYgJX0p IHslIGVuZGlmICV9CisgICAgQVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7 JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGlzIGRlZmluZWQgYW5kIGRh dGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciAhPSAgb19kYXRhLnNlY3VyaXR5 X2JhcnJpZXJ8bG93ZXIpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJp dHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX0p OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuY29t bWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitD T01NRU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2 aWV3X25hbWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJh bCB9fTsKK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxv dyB3aWxsIGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFj bCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxF R0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRh Lm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxF R0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRh Lm5hbWUsIGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25u LCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRo b3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBk YXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRk ZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5n cmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53 aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBi ZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0 YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxl bmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVs cyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFi ZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2Vj bGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAw ICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VD TEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlk ZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9w bHVzL3NxbC92aWV3X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGZmMDRlCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcGcvOS4yX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEs NCBAQAoreyMgQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5 IGNyZWF0ZWQgdmlldyAjfQoreyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lk IEZST00gcGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5u YW1lIH19JzsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvYWNs LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bn LzkuM19wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjg0MzAwY2YKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9z cWwvYWNsLnNxbApAQCAtMCwwICsxLDM4IEBACit7IyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09IEdldCBBQ0xzID09PT09PT09PT09PT09PT09PT09 PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcg YXMgZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGlj JykgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3JhbnRvciwKKyAgICBhcnJh eV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsCisgICAgYXJy YXlfYWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisgICAg KFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19n cmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAg ICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0lO U0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhF TiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAg ICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdVUERB VEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdE JworICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJp dmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAg ICAgICAgIHJlbGFjbAorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19j bGFzcyBjbAorICAgICAgICBMRUZUIE9VVEVSIEpPSU4gcGdfc2hkZXNjcmlw dGlvbiBkZXNjciBPTiAoCisgICAgICAgICAgICBjbC5vaWQ9ZGVzY3Iub2Jq b2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykK KyAgICAgICAgV0hFUkUgY2wub2lkID0ge3sgdmlkIH19OjpPSUQgQU5EIHJl bGtpbmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAgICAgIGFjbGV4cGxv ZGUocmVsYWNsKSBkCisgICAgKSBkCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKK0xFRlQgSk9JTiBw Z19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQp CitHUk9VUCBCWQorICAgIGcucm9sbmFtZSwKKyAgICBndC5yb2xuYW1lCit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1 cy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4xNzhiYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2Ny ZWF0ZS5zcWwKQEAgLTAsMCArMSwyMiBAQAoreyM9PT09PT09PT09PT09PT09 PT09PT09PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09 PT09PT09PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3 OiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0K KworLS0gRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFt ZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JF QVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX0KK3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJp ZXIpICV9CitXSVRIICh7JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX1z ZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dl ciB9fXslIGVuZGlmICV9KXslIGVuZGlmICV9IEFTCit7eyBkYXRhLmRlZmlu aXRpb24ucnN0cmlwKCc7JykgfX07Cit7JSBpZiBkYXRhLm93bmVyICV9CisK K0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lKSB9fQorICBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBW SUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4zX3BsdXMvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZTUwYmVlYwotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19w bHVzL3NxbC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09 PT09PT09PT09PT09PT09PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9 PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNU CisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZS T00KKyAgICBwZ19jbGFzcyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5z cCBPTiBjLnJlbG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5y ZWxmaWxlbm9kZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5z cG5hbWUpICV9CitEUk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElk ZW50KG5hbWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC9ncmFudC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85 LjNfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmNlOTRlY2MKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9z cWwvZ3JhbnQuc3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sjID09PT09IEdyYW50 IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMgPT09 PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmls ZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBXZSB3aWxs IGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyA9PT09 PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRh dGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklF VycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGF0 YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfQore3sgUFJJ VklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEu bmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRh dGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4zX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL3Byb3Bl cnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjVkM2QxZTQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSw3NCBAQAoreyUgaWYgKHZpZCBhbmQgZGF0bGFz dHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQsCisgICAg Yy54bWluLAorICAgIGMucmVsa2luZCwKKyAgICBkZXNjcmlwdGlvbiwKKyAg ICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3Bj LnNwY25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAor ICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lIEFTIHNj aGVtYSwKKyAgICBjLnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAorICAgIGMu cmVsaXNwb3B1bGF0ZWQgQVMgaXNwb3B1bGF0ZWQsCisgICAgcGdfZ2V0X3Vz ZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyLAorICAgIGFycmF5X3RvX3N0 cmluZyhjLnJlbGFjbDo6dGV4dFtdLCAnLCAnKSBBUyBhY2wsCisgICAgcGdf Z2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24sCisgICAg eyMgPT09PT0gQ2hlY2tzIGlmIGl0IGlzIHN5c3RlbSB2aWV3ID09PT09ICN9 CisgICAgeyUgaWYgdmlkIGFuZCBkYXRsYXN0c3lzb2lkICV9CisgICAgQ0FT RSBXSEVOIHt7dmlkfX0gPD0ge3tkYXRsYXN0c3lzb2lkfX0gVEhFTiBUcnVl IEVMU0UgRmFsc2UgRU5EIEFTIHN5c3RlbV92aWV3LAorICAgIHslIGVuZGlm ICV9CisoU0VMRUNUCisgICAgYXJyYXlfYWdnKGxhYmVsKQorRlJPTQorICAg IHBnX3NlY2xhYmVscyBzbDEKK1dIRVJFCisgICAgc2wxLm9iam9pZD1jLm9p ZCBBTkQgc2wxLm9ianN1YmlkPTApIEFTIGxhYmVscywKKyhTRUxFQ1QKKyAg ICBhcnJheV9hZ2cocHJvdmlkZXIpCitGUk9NCisgICAgcGdfc2VjbGFiZWxz IHNsMgorV0hFUkUKKyAgICBzbDIub2Jqb2lkPWMub2lkIEFORCBzbDIub2Jq c3ViaWQ9MCkgQVMgcHJvdmlkZXJzLAorICAgIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICAgIEZST00gJ3Nl Y3VyaXR5X2JhcnJpZXI9KFthLXp8MC05XSopJykgQVMgc2VjdXJpdHlfYmFy cmllcgorRlJPTSBwZ19jbGFzcyBjCitMRUZUIE9VVEVSIEpPSU4gcGdfbmFt ZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxuYW1lc3BhY2UKK0xFRlQg T1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHNwYyBvbiBzcGMub2lkPWMucmVs dGFibGVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRl cyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5E IGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKK0xFRlQgT1VU RVIgSk9JTiBwZ19jbGFzcyB0c3QgT04gdHN0Lm9pZCA9IGMucmVsdG9hc3Ry ZWxpZAorICAgIFdIRVJFICgoYy5yZWxoYXNydWxlcyBBTkQgKEVYSVNUUyAo CisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgci5ydWxlbmFtZQorICAg ICAgICBGUk9NCisgICAgICAgICAgICBwZ19yZXdyaXRlIHIKKyAgICAgICAg V0hFUkUKKyAgICAgICAgICAgICgoci5ldl9jbGFzcyA9IGMub2lkKQorICAg ICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJw Y2hhcikpICkpKQorICAgICAgICAgICAgQU5EIChjLnJlbGtpbmQgPSAndic6 OmNoYXIpCisgICAgICAgICAgKQoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5 c29pZCkgJX0KKyAgICBBTkQgYy5vaWQgPSB7e3ZpZH19OjpvaWQKK3slIGVs aWYgc2NpZCAlfQorICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19 OjpvaWQKK09SREVSIEJZCisgICAgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQor Cit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNUCisgICAgcHIu cm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVzIHByCitXSEVSRQorICAgIHBy LnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAgIHByLnJvbG5hbWUKKworeyUg ZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VMRUNUCisgICAgbnNwLm5z cG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAg IChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5E IG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3Fs L3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMDJkOGYzNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC91cGRhdGUu c3FsCkBAIC0wLDAgKzEsNzUgQEAKK3sjID09PT09PT09PT09PT09PT09PT09 PT09PT09PT0gVXBkYXRlIFZpZXcgPT09PT09PT09PT09PT09PT09PT09PT09 PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBT RUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxl Z2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3sl IHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ug b19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2No ZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUg c2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRh LmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1l ICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUg VE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0 YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0 YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19CisgICAgU0VUIFNDSEVNQSB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19OworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEub3duZXIgYW5kIGRhdGEub3duZXIgIT0gb19kYXRhLm93bmVy ICV9CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEs IHZpZXdfbmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGVmIGFuZCBk ZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0KK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1h LCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVy IGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5 X2JhcnJpZXIpICV9CisgICAgV0lUSCAoeyUgaWYgZGF0YS5zZWN1cml0eV9i YXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2Jh cnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfSkKK3slIGVuZGlmICV9CisgICAg QVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1cml0 eV9iYXJyaWVyIGlzIGRlZmluZWQgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmll cnxsb3dlciAhPSAgb19kYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIpICV9 CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlfYmFycmllcj17eyBkYXRh LnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX0pOworeyUgZW5kaWYgJX0KK3sl 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 ZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC92aWV3X2lkLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku M19wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi42ZGZmMDRlCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMv c3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyMgQmVsb3cgd2ls bCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5IGNyZWF0ZWQgdmlldyAjfQor eyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZST00gcGdfY2xhc3MgYyBX SEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1lIH19JzsKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwvYWNsLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9hY2wu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNzkx ZjUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwvYWNsLnNxbApAQCAtMCww ICsxLDM5IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IEdl dCBBQ0xzID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIHZp ZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBD T0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBn LnJvbG5hbWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5 cGUpIGFzIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJs ZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBk LmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAg IENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdERUxFVEUn IFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAg ICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hF TiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdUUklHR0VSJyBU SEVOICd0JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAg ICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBFTFNFICdV TktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBG Uk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIHJlbGFjbAorICAg ICAgICAgRlJPTQorICAgICAgICAgICAgcGdfY2xhc3MgY2wKKyAgICAgICAg IExFRlQgT1VURVIgSk9JTiBwZ19zaGRlc2NyaXB0aW9uIGRlc2NyIE9OCisg ICAgICAgICAgICAoY2wub2lkPWRlc2NyLm9iam9pZCBBTkQgZGVzY3IuY2xh c3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAgICAgICBXSEVSRQor ICAgICAgICAgICAgY2wub2lkID0ge3sgdmlkIH19OjpPSUQgQU5EIHJlbGtp bmQgPSAndicKKyAgICAgICAgKSBhY2wsCisgICAgICAgIGFjbGV4cGxvZGUo cmVsYWNsKSBkCisgICAgKSBkCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKK0xFRlQgSk9JTiBwZ19j YXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitH Uk9VUCBCWQorICAgIGcucm9sbmFtZSwKKyAgICBndC5yb2xuYW1lCit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL2NyZWF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9z cWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4xOTEwOTBkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL2NyZWF0 ZS5zcWwKQEAgLTAsMCArMSwyNSBAQAoreyM9PT09PT09PT09PT09PT09PT09 PT09PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09 PT09PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKwor LS0gRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBh bmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRF IE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEs IGRhdGEubmFtZSkgfX0KK3slIGlmICgoZGF0YS5jaGVja19vcHRpb24gYW5k IGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykgb3IgZGF0YS5z ZWN1cml0eV9iYXJyaWVyKSAlfQorV0lUSCAoeyUgaWYgZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAl fQorY2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9uIH19eyUgZW5k aWYgJX17eyAnLCAnIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZAorZGF0YS5j aGVja19vcHRpb24ubG93ZXIoKSAhPSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgfX0KK3slIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfSBz ZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dl ciB9fXslIGVuZGlmICV9KXslIGVuZGlmICV9IEFTCit7eyBkYXRhLmRlZmlu aXRpb24ucnN0cmlwKCc7JykgfX07Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBk YXRhLm1fdmlldyBpcyB1bmRlZmluZWQgJX0KKworQUxURVIgVEFCTEUge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAg T1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEub3duZXIpIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBW SUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS40X3BsdXMvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZTUwYmVlYwotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9w bHVzL3NxbC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09 PT09PT09PT09PT09PT09PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9 PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNU CisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZS T00KKyAgICBwZ19jbGFzcyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5z cCBPTiBjLnJlbG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5y ZWxmaWxlbm9kZSA9IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5z cG5hbWUpICV9CitEUk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElk ZW50KG5hbWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9ncmFudC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85 LjRfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmNlOTRlY2MKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9z cWwvZ3JhbnQuc3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sjID09PT09IEdyYW50 IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMgPT09 PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmls ZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBXZSB3aWxs IGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyA9PT09 PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRh dGEuc2VjbGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklF VycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGF0 YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfQore3sgUFJJ VklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEu bmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRh dGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS40X3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL3Byb3Bl cnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmM3MzgwZDgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSw3NyBAQAoreyMgPT09PT09PT09PT09PT09PT09 PT09PT09PT0gRmV0Y2ggVmlldyBQcm9wZXJ0aWVzID09PT09PT09PT09PT09 PT09PT09PT09PT0gI30KK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQp IG9yIHNjaWQgJX0KK1NFTEVDVAorICAgIGMub2lkLAorICAgIGMueG1pbiwK KyAgICBjLnJlbGtpbmQsCisgICAgZGVzY3JpcHRpb24sCisgICAgKENBU0Ug V0hFTiBsZW5ndGgoc3BjLnNwY25hbWUpID4gMCBUSEVOIHNwYy5zcGNuYW1l IEVMU0UgJ3BnX2RlZmF1bHQnIEVORCkgYXMgc3BjbmFtZSwKKyAgICBjLnJl bG5hbWUgQVMgbmFtZSwKKyAgICBjLnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lk LAorICAgIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICBjLnJlbGlzcG9w dWxhdGVkIEFTIGlzcG9wdWxhdGVkLAorICAgIHBnX2dldF91c2VyYnlpZChj LnJlbG93bmVyKSBBUyBvd25lciwKKyAgICBhcnJheV90b19zdHJpbmcoYy5y ZWxhY2w6OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAgIHBnX2dldF92aWV3 ZGVmKGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIHsjID09PT09 IENoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldyA9PT09PSAjfQorICAgIHsl IGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAgIENBU0UgV0hFTiB7 e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4gVHJ1ZSBFTFNFIEZh bHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBlbmRpZiAlfQorKFNF TEVDVAorICAgIGFycmF5X2FnZyhsYWJlbCkKK0ZST00KKyAgICBwZ19zZWNs YWJlbHMgc2wxCitXSEVSRQorICAgIHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNs MS5vYmpzdWJpZD0wKSBBUyBsYWJlbHMsCisoU0VMRUNUCisgICAgYXJyYXlf YWdnKHByb3ZpZGVyKQorRlJPTQorICAgIHBnX3NlY2xhYmVscyBzbDIKK1dI RVJFCisgICAgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wyLm9ianN1YmlkPTAp IEFTIHByb3ZpZGVycywKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KGMucmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9NICdjaGVja19vcHRp b249KFthLXpdKiknKSBBUyBjaGVja19vcHRpb24sCisgICAgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAg RlJPTSAnc2VjdXJpdHlfYmFycmllcj0oW2EtenwwLTldKiknKSBBUyBzZWN1 cml0eV9iYXJyaWVyCitGUk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9J TiBwZ19uYW1lc3BhY2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFj ZQorTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5v aWQ9Yy5yZWx0YWJsZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3Jp cHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3Vi aWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQor TEVGVCBPVVRFUiBKT0lOIHBnX2NsYXNzIHRzdCBPTiB0c3Qub2lkID0gYy5y ZWx0b2FzdHJlbGlkCisgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAo RVhJU1RTICgKKyAgICAgICAgU0VMRUNUCisgICAgICAgICAgICByLnJ1bGVu YW1lCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX3Jld3JpdGUgcgor ICAgICAgICBXSEVSRQorICAgICAgICAgICAgKChyLmV2X2NsYXNzID0gYy5v aWQpCisgICAgICAgICAgICAgICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9 ICcxJzo6YnBjaGFyKSkgKSkpCisgICAgICAgICAgICBBTkQgKGMucmVsa2lu ZCA9ICd2Jzo6Y2hhcikKKyAgICAgICAgICApCit7JSBpZiAodmlkIGFuZCBk YXRsYXN0c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9p ZAoreyUgZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVsbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorT1JERVIgQlkKKyAgICBjLnJlbG5hbWUKK3slIGVu ZGlmICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QK KyAgICBwci5yb2xuYW1lCitGUk9NCisgICAgcGdfcm9sZXMgcHIKK1dIRVJF CisgICAgcHIucm9sY2FubG9naW4KK09SREVSIEJZCisgICAgcHIucm9sbmFt ZQorCit7JSBlbGlmIHR5cGUgPT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QKKyAg ICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBuc3AKK1dI RVJFCisgICAgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAg ICAgICBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScp Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL3VwZGF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRf cGx1cy9zcWwvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41NjE4M2ZkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3Fs L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw4MiBAQAoreyMgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09PT09 PT09PT09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNy b3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFz L3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYgZGF0 YSAlfQoreyUgc2V0IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRhLm5h bWUgZWxzZSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1hID0g ZGF0YS5zY2hlbWEgaWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2NoZW1h ICV9Cit7JSBzZXQgZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycp IGlmIGRhdGEuZGVmaW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBk YXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sgY29u bnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQorICAg IFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3sl IGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hlbWEg IT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRl bnQob19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQgU0NI RU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2Rh dGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3 X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBk ZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAl fQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNrX29w dGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29w dGlvbikKKyAgICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIp ICV9CisgICAgV0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBk YXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17eyBk YXRhLmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRhdGEu Y2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nIGFu ZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlf YmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0KKyAg ICBBU3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgaXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1cml0eV9iYXJy aWVyfGxvd2VyICE9ICBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlcikg JX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2 aWV3X25hbWUpIH19CisgICAgU0VUIChzZWN1cml0eV9iYXJyaWVyPXt7IGRh dGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fSk7Cit7JSBlbmRpZiAlfQor eyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlv biAhPSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlv biAhPSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmll d19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKGNoZWNrX29wdGlv bj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fSk7Cit7JSBlbGlmIChkYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gPT0gJ25vJykgJX0K K0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19IFJFU0VUIChjaGVja19vcHRpb24pOworeyUgZW5kaWYgJX0K K3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5j b21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcg e3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cisg ICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlm ICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBw cml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29u biwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2No ZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2No YW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29u biwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2No ZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2 LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2 LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBSSVZJ TEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5h bWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRh LnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVu ZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5n ZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMg bm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3sl IHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0K K3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQor e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29u biwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC92aWV3X2lk LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bn LzkuNF9wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5lZjI3NTk0Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3Bs dXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyMgPT09PT0g QmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIGxhc3QgY3JlYXRlZCB2 aWV3ID09PT09ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJP TSBwZ19jbGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUg fX0nOworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2FjbC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuMV9wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjdkNzkxZjUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVz L3NxbC9hY2wuc3FsCkBAIC0wLDAgKzEsMzkgQEAKK3sjID09PT09PT09PT09 PT09PT09PT09PT09PT09PT0gR2V0IEFDTHMgPT09PT09PT09PT09PT09PT09 PT09PT09PSAjfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNs JyBhcyBkZWZ0eXBlLAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJs aWMnKSBncmFudGVlLAorICAgIGcucm9sbmFtZSBncmFudG9yLAorICAgIGFy cmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBh cnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAg ICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlz X2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisg ICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAn SU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBU SEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAg ICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQ REFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4g J0QnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBw cml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAg ICAgICAgICAgcmVsYWNsCisgICAgICAgICBGUk9NCisgICAgICAgICAgICBw Z19jbGFzcyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVz Y3JpcHRpb24gZGVzY3IgT04KKyAgICAgICAgICAgIChjbC5vaWQ9ZGVzY3Iu b2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFz cykKKyAgICAgICAgIFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7eyB2 aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICd2JworICAgICAgICApIGFjbCwK KyAgICAgICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICApIGQKK0xFRlQg Sk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcu b2lkKQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQu Z3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1lLAor ICAgIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVz L3NxbC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvY3JlYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTEwOTBkCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjFfcGx1cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDI1 IEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1DcmVhdGUgbmV3 IHZpZXc9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIGRpc3Bs YXlfY29tbWVudHMgJX0KKy0tIFZpZXc6IHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9QIFZJRVcge3sgY29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQg ZGF0YS5kZWZpbml0aW9uICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7 IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQoreyUg aWYgKChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24u bG93ZXIoKSAhPSAnbm8nKSBvciBkYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9 CitXSVRIICh7JSBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVj a19vcHRpb24ubG93ZXIoKSAhPSAnbm8nICV9CitjaGVja19vcHRpb249e3sg ZGF0YS5jaGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7ICcsICcgaWYgZGF0 YS5jaGVja19vcHRpb24gYW5kCitkYXRhLmNoZWNrX29wdGlvbi5sb3dlcigp ICE9ICdubycgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllciB9fQoreyUgaWYg ZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9IHNlY3VyaXR5X2JhcnJpZXI9e3sg ZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19eyUgZW5kaWYgJX0peyUg ZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9 fTsKK3slIGlmIGRhdGEub3duZXIgYW5kIGRhdGEubV92aWV3IGlzIHVuZGVm aW5lZCAlfQorCitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5z 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 dGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvZ3JhbnQuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9z cWwvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmNlOTRlY2MKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3NxbC9ncmFu dC5zcWwKQEAgLTAsMCArMSwxNCBAQAoreyMgPT09PT0gR3JhbnQgUGVybWlz c2lvbnMgdG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxlcyA9PT09PSAjfQor eyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFj cm9zJyBhcyBQUklWSUxFR0UgJX0KK3sjID09PT09IFdlIHdpbGwgZ2VuZXJh dGUgU2VjdXJpdHkgTGFiZWwgU1FMIHVzaW5nIG1hY3JvID09PT09ICN9Cit7 JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNs YWJlbHMgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9Cit7eyBQUklWSUxFR0Uu U0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBw cml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hl bWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzku MV9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL3Byb3BlcnRp ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJh ZjEyNTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3NxbC9wcm9wZXJ0aWVz LnNxbApAQCAtMCwwICsxLDc2IEBACit7JSBpZiAodmlkIGFuZCBkYXRsYXN0 c3lzb2lkKSBvciBzY2lkICV9CitTRUxFQ1QKKyAgICBjLm9pZCwKKyAgICBj LnhtaW4sCisgICAgYy5yZWxraW5kLAorICAgIGRlc2NyaXB0aW9uLAorICAg IChDQVNFIFdIRU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAgVEhFTiBzcGMu c3BjbmFtZSBFTFNFICdwZ19kZWZhdWx0JyBFTkQpIGFzIHNwY25hbWUsCisg ICAgYy5yZWxuYW1lIEFTIG5hbWUsCisgICAgYy5yZWx0YWJsZXNwYWNlIEFT IHNwY29pZCwKKyAgICBuc3AubnNwbmFtZSBBUyBzY2hlbWEsCisgICAgYy5y ZWxpc3BvcHVsYXRlZCBBUyBpc3BvcHVsYXRlZCwKKyAgICBwZ19nZXRfdXNl cmJ5aWQoYy5yZWxvd25lcikgQVMgb3duZXIsCisgICAgYXJyYXlfdG9fc3Ry aW5nKGMucmVsYWNsOjp0ZXh0W10sICcsICcpIEFTIGFjbCwKKyAgICBwZ19n ZXRfdmlld2RlZihjLm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7 IyA9PT09PSBDaGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXcgPT09PT0gI30K KyAgICB7JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAgICBDQVNF IFdIRU4ge3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVOIFRydWUg RUxTRSBGYWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAgeyUgZW5kaWYg JX0KKyhTRUxFQ1QKKyAgICBhcnJheV9hZ2cobGFiZWwpCitGUk9NCisgICAg cGdfc2VjbGFiZWxzIHNsMQorV0hFUkUKKyAgICBzbDEub2Jqb2lkPWMub2lk IEFORCBzbDEub2Jqc3ViaWQ9MCkgQVMgbGFiZWxzLAorKFNFTEVDVAorICAg IGFycmF5X2FnZyhwcm92aWRlcikKK0ZST00KKyAgICBwZ19zZWNsYWJlbHMg c2wyCitXSEVSRQorICAgIHNsMi5vYmpvaWQ9Yy5vaWQgQU5EIHNsMi5vYmpz dWJpZD0wKSBBUyBwcm92aWRlcnMsCisgICAgc3Vic3RyaW5nKGFycmF5X3Rv X3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAgRlJPTSAnY2hl Y2tfb3B0aW9uPShbYS16XSopJykgQVMgY2hlY2tfb3B0aW9uLAorICAgIHN1 YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisg ICAgICAgIEZST00gJ3NlY3VyaXR5X2JhcnJpZXI9KFthLXp8MC05XSopJykg QVMgc2VjdXJpdHlfYmFycmllcgorRlJPTSBwZ19jbGFzcyBjCitMRUZUIE9V VEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxu YW1lc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHNwYyBv biBzcGMub2lkPWMucmVsdGFibGVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVz Lm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKK0xFRlQgT1VURVIgSk9JTiBwZ19jbGFzcyB0c3QgT04gdHN0Lm9p ZCA9IGMucmVsdG9hc3RyZWxpZAorICAgIFdIRVJFICgoYy5yZWxoYXNydWxl cyBBTkQgKEVYSVNUUyAoCisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAg ci5ydWxlbmFtZQorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19yZXdy aXRlIHIKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgICgoci5ldl9jbGFz cyA9IGMub2lkKQorICAgICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZf dHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKQorICAgICAgICAgICAgQU5EIChj LnJlbGtpbmQgPSAndic6OmNoYXIpCisgICAgICAgICAgKQoreyUgaWYgKHZp ZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICBBTkQgYy5vaWQgPSB7e3Zp ZH19OjpvaWQKK3slIGVsaWYgc2NpZCAlfQorICAgIEFORCBjLnJlbG5hbWVz cGFjZSA9IHt7c2NpZH19OjpvaWQKK09SREVSIEJZCisgICAgYy5yZWxuYW1l Cit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQor U0VMRUNUCisgICAgcHIucm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVzIHBy CitXSEVSRQorICAgIHByLnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAgIHBy LnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VM RUNUCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2Ug bnNwCitXSEVSRQorICAgIChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxf JScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9z Y2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL3Vw ZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wcGFzLzkuMV9wbHVzL3NxbC91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2MTgzZmQKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuMV9wbHVzL3NxbC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsODIgQEAKK3sj ID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVXBkYXRlIFZpZXcgPT09 PT09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mv c2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdt YWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0Ug JX0KK3slIGlmIGRhdGEgJX0KK3slIHNldCB2aWV3X25hbWUgPSBkYXRhLm5h bWUgaWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUgJX0KK3slIHNldCB2 aWV3X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ug b19kYXRhLnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlv bi5yc3RyaXAoJzsnKSBpZiBkYXRhLmRlZmluaXRpb24gJX0KK3slIGlmIGRh dGEubmFtZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRF UiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEu bmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEu bmFtZSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5k IGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcg e3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19 CisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEp IH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEub3duZXIgYW5kIGRhdGEu b3duZXIgIT0gb19kYXRhLm93bmVyICV9CitBTFRFUiBUQUJMRSB7eyBjb25u fHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBPV05F UiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRp ZiAlfQoreyUgaWYgZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24u cnN0cmlwKCc7JykgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29u bnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAo ZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9f ZGF0YS5jaGVja19vcHRpb24pCisgICAgb3IgKGRhdGEuc2VjdXJpdHlfYmFy cmllciBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1 cml0eV9iYXJyaWVyKSAlfQorICAgIFdJVEggKHslIGlmIChkYXRhLmNoZWNr X29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX1jaGVj a19vcHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7 JywgJyBpZiBkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRp b24gIT0gJ25vJyBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyIH19eyUgaWYg ZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBk YXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfSkKK3sl IGVuZGlmICV9CisgICAgQVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBp ZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGlzIGRlZmluZWQgYW5kIGRhdGEu c2VjdXJpdHlfYmFycmllcnxsb3dlciAhPSAgb19kYXRhLnNlY3VyaXR5X2Jh cnJpZXJ8bG93ZXIpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2 aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlf YmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX0pOwor eyUgZW5kaWYgJX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0 YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0 YS5jaGVja19vcHRpb24gIT0gJ25vJykgJX0KK0FMVEVSIFZJRVcge3sgY29u bnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgU0VU IChjaGVja19vcHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX0pOworeyUg ZWxpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9u ICE9IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9u ID09ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3 X3NjaGVtYSwgdmlld19uYW1lKSB9fSBSRVNFVCAoY2hlY2tfb3B0aW9uKTsK K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLmNvbW1l bnQgYW5kIGRhdGEuY29tbWVudCAhPSBvX2RhdGEuY29tbWVudCAlfQorQ09N TUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwg fX07Cit7JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cg d2lsbCBjaGFuZ2UgcHJpdmlsZWdlcyAjfQoreyUgaWYgZGF0YS5kYXRhY2wg JX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9y IHByaXYgaW4gZGF0YS5kYXRhY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdF LlVOU0VUQUxMKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5u YW1lLCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9y IHByaXYgaW4gZGF0YS5kYXRhY2wuY2hhbmdlZCAlfQore3sgUFJJVklMRUdF LlVOU0VUQUxMKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5u YW1lLCBkYXRhLnNjaGVtYSkgfX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwg J1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91 dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0 YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVk ICV9Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0 aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVs b3cgd2lsbCBjaGFuZ2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEu c2VjbGFiZWxzIGlzIG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5n dGggPiAwICV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMg JX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuYWRkZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xB QkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy LCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9w bHVzL3NxbC92aWV3X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMjc1OTQKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3NxbC92aWV3X2lkLnNxbApAQCAtMCww ICsxLDQgQEAKK3sjID09PT09IEJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlk IGZvciBsYXN0IGNyZWF0ZWQgdmlldyA9PT09PSAjfQoreyUgaWYgZGF0YSAl fQorU0VMRUNUIGMub2lkIEZST00gcGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5h bWUgPSAne3sgZGF0YS5uYW1lIH19JzsKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuMl9wbHVzL3NxbC9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvYWNsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjJkMGZiCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvYWNsLnNxbApAQCAtMCwwICsxLDUy IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IEdldCBBQ0xz ID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQor U0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVND RShndC5yb2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5h bWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFz IHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMg Z3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50 ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0Ug ZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4g J2QnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAg V0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VM RUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0 JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdI RU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBFTFNFICdVTktOT1dO JworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisg ICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIHJlbGFjbAorICAgICAgICBG Uk9NCisgICAgICAgICAgICBwZ19jbGFzcyBjbAorICAgICAgICBMRUZUIE9V VEVSIEpPSU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAg ICAgICBjbC5vaWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0n cGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICAgICAgV0hFUkUKKyAgICAgICAg ICAgIGNsLm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ3Yn CisgICAgICAgICkgYWNsLAorICAgICAgICAoU0VMRUNUCisgICAgICAgICAg ICAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLAorICAgICAgICAgICAgKGQpLmdy YW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19ncmFudGFi bGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZpbGVn ZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAgICAg ICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgICAgICBhY2xleHBsb2RlKHJl bGFjbCkgQVMgZAorICAgICAgICAgICAgIEZST00KKyAgICAgICAgICAgICAg ICBwZ19jbGFzcyBjbDEKKyAgICAgICAgICAgICBXSEVSRQorICAgICAgICAg ICAgICAgIGNsMS5vaWQgPSB7eyB2aWQgfX0KKyAgICAgICAgICAgICkgYQor ICAgICAgICApIGQKKyAgICApIGQKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorTEVGVCBKT0lOIHBn X2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkK K0dST1VQIEJZCisgICAgZy5yb2xuYW1lLAorICAgIGd0LnJvbG5hbWUKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9jcmVhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJf cGx1cy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xNzhiYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9z cWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDIyIEBACit7Iz09PT09PT09PT09 PT09PT09PT09PT09PT09PT1DcmVhdGUgbmV3IHZpZXc9PT09PT09PT09PT09 PT09PT09PT09PT09I30KK3slIGlmIGRpc3BsYXlfY29tbWVudHMgJX0KKy0t IFZpZXc6IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1l KSB9fQorCistLSBEUk9QIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0YS5kZWZpbml0aW9uICV9 CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS5uYW1lKSB9fQoreyUgaWYgKGRhdGEuc2VjdXJpdHlf YmFycmllcikgJX0KK1dJVEggKHslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmll ciAlfXNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVy fGxvd2VyIH19eyUgZW5kaWYgJX0peyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEu ZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIg JX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUpIH19CisgIE9XTkVSIFRPIHt7IGRhdGEub3duZXIgfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5U IE9OIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsK K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9z cWwvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUwYmVlYwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 L3BwYXMvOS4yX3BsdXMvc3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwxMyBA QAoreyMgPT09PT09PT09PT09PT09PT09PT09PSBEcm9wL0Nhc2NhZGUgdmll dyBieSBuYW1lID09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgdmlk ICV9CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBuc3Au bnNwbmFtZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9JTiBwZ19u YW1lc3BhY2UgbnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hF UkUKKyAgICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAo bmFtZSBhbmQgbnNwbmFtZSkgJX0KK0RST1AgVklFVyB7e25zcG5hbWV9fS57 eyBjb25ufHF0SWRlbnQobmFtZSkgfX0geyUgaWYgY2FzY2FkZSAlfSBDQVND QURFIHslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1 cy9zcWwvZ3JhbnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlOTRlY2MKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wcGFzLzkuMl9wbHVzL3NxbC9ncmFudC5zcWwKQEAgLTAsMCArMSwxNCBA QAoreyMgPT09PT0gR3JhbnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xlIG9u IFZpZXdzL1RhYmxlcyA9PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2Vj dXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNy b3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0K K3sjID09PT09IFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkgTGFiZWwgU1FM IHVzaW5nIG1hY3JvID09PT09ICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAl fQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3t7IFNFQ0xBQkxF LkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCBy LnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu ZGF0YWNsICV9Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHBy aXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHBy aXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9wcm9wZXJ0aWVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bw YXMvOS4yX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYmUwZjUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuMl9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDcwIEBA Cit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitT RUxFQ1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAgYy5yZWxuYW1l IEFTIG5hbWUsCisgICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAg ICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3Bj LnNwY25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAor ICAgIHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwKKyAg ICBkZXNjcmlwdGlvbiBBcyBjb21tZW50LAorICAgIHBnX2dldF92aWV3ZGVm KGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIG5zcC5uc3BuYW1l IEFTIHNjaGVtYSwKKyAgICBhcnJheV90b19zdHJpbmcoYy5yZWxhY2w6OnRl eHRbXSwgJywgJykgQVMgYWNsLAorICAgIHsjPT09PT09PT09PT09PUNoZWNr cyBpZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09PT0jfQorICAg IHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAgIENBU0UgV0hF TiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4gVHJ1ZSBFTFNF IEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBlbmRpZiAlfQor KFNFTEVDVAorICAgIGFycmF5X2FnZyhsYWJlbCkKK0ZST00KKyAgICBwZ19z ZWNsYWJlbHMgc2wxCitXSEVSRQorICAgIHNsMS5vYmpvaWQ9Yy5vaWQgQU5E IHNsMS5vYmpzdWJpZD0wKSBBUyBsYWJlbHMsCisoU0VMRUNUCisgICAgYXJy YXlfYWdnKHByb3ZpZGVyKQorRlJPTQorICAgIHBnX3NlY2xhYmVscyBzbDIK K1dIRVJFCisgICAgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wyLm9ianN1Ymlk PTApIEFTIHByb3ZpZGVycworICAgICwgc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAgRlJPTSAnc2VjdXJp dHlfYmFycmllcj0oW2EtenwwLTldKiknKSBBUyBzZWN1cml0eV9iYXJyaWVy CitGUk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3Bh Y2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQorTEVGVCBPVVRF UiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJs ZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9O IChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVz LmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgIFdIRVJFICgo Yy5yZWxoYXNydWxlcyBBTkQgKEVYSVNUUyAoCisgICAgICAgICAgICBTRUxF Q1QKKyAgICAgICAgICAgICAgICByLnJ1bGVuYW1lCisgICAgICAgICAgICBG Uk9NCisgICAgICAgICAgICAgICAgcGdfcmV3cml0ZSByCisgICAgICAgICAg ICBXSEVSRQorICAgICAgICAgICAgICAgICgoci5ldl9jbGFzcyA9IGMub2lk KQorICAgICAgICAgICAgICAgICAgICBBTkQgKGJwY2hhcihyLmV2X3R5cGUp ID0gJzEnOjpicGNoYXIpCisgICAgICAgICAgICAgICAgKSApKQorICAgICAg ICAgICApIEFORCAoYy5yZWxraW5kID0gJ3YnOjpjaGFyKQorICAgICAgICAg ICkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpICV9CisgICAgQU5E IGMub2lkID0ge3t2aWR9fTo6b2lkCit7JSBlbGlmIHNjaWQgJX0KKyAgICBB TkQgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkIE9SREVSIEJZIGMu cmVsbmFtZQoreyUgZW5kaWYgJX0KKworeyUgZWxpZiB0eXBlID09ICdyb2xl cycgJX0KK1NFTEVDVAorICAgIHByLnJvbG5hbWUKK0ZST00KKyAgICBwZ19y b2xlcyBwcgorV0hFUkUKKyAgICBwci5yb2xjYW5sb2dpbgorT1JERVIgQlkK KyAgICBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAnc2NoZW1hcycg JX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisgICAgcGdfbmFt ZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5hbWUgTk9UIExJS0Ug RSdwZ1xcXyUnCisgICAgICAgIEFORCBuc3AubnNwbmFtZSAhPSAnaW5mb3Jt YXRpb25fc2NoZW1hJykKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVz L3NxbC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvdXBkYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzdkNGJhCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjJfcGx1cy9zcWwvdXBkYXRlLnNxbApAQCAtMCwwICsxLDc0 IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IFVwZGF0ZSBW aWV3ID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGltcG9ydCAn bWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGlt cG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJ VklMRUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmlld19uYW1lID0g ZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7 JSBzZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVt YSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYgPSBkYXRhLmRl ZmluaXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0aW9uICV9Cit7 JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAl fQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSwg b19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVu dChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2No ZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRF UiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hLCB2aWV3X25h bWUgKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLm93bmVyIGFu ZCBkYXRhLm93bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxURVIgVEFCTEUg e3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19Cisg ICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEub3duZXIpIH19Owor eyUgZW5kaWYgJX0KK3slIGlmIGRlZiBhbmQgZGVmICE9IG9fZGF0YS5kZWZp bml0aW9uLnJzdHJpcCgnOycpICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVX IHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQor eyUgaWYgKGRhdGEuc2VjdXJpdHlfYmFycmllciBhbmQgZGF0YS5zZWN1cml0 eV9iYXJyaWVyICE9IG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQorICAg IFdJVEggKHslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfXNlY3VyaXR5 X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19eyUg ZW5kaWYgJX0pIHslIGVuZGlmICV9CisgICAgQVN7eyBkZWYgfX07Cit7JSBl bHNlICV9Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGlzIGRlZmlu ZWQgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciAhPSAgb19kYXRh LnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIpICV9CitBTFRFUiBWSUVXIHt7IGNv bm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNF VCAoc2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8 bG93ZXIgfX0pOworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CisKK3slIGlm IGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21t ZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgSVMge3sgZGF0YS5jb21tZW50 fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVy YXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBk YXRhLmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7 eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFu dGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNs ICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7 eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFu dGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQore3sgUFJJVklMRUdF LlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2No ZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2Fk ZGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5k YXRhY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxF JywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFu dCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7IyBUaGUgU1FMIGdl bmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCAjfQor eyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90IG5vbmUgYW5kIGRhdGEuc2Vj bGFiZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRh LnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLkRST1AoY29u biwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciBy IGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29u biwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlf bGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAn Y2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAl fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 L3BwYXMvOS4yX3BsdXMvc3FsL3ZpZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvdmll d19pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NmRmZjA0ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL3ZpZXdfaWQu c3FsCkBAIC0wLDAgKzEsNCBAQAoreyMgQmVsb3cgd2lsbCBwcm92aWRlIHZp ZXcgaWQgZm9yIG5ld2x5IGNyZWF0ZWQgdmlldyAjfQoreyUgaWYgZGF0YSAl fQorU0VMRUNUIGMub2lkIEZST00gcGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5h bWUgPSAne3sgZGF0YS5uYW1lIH19JzsKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuM19wbHVzL3NxbC9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvYWNsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDMwMGNmCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvYWNsLnNxbApAQCAtMCwwICsxLDM4 IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IEdldCBBQ0xz ID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQor U0VMRUNUCisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVND RShndC5yb2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5h bWUgZ3JhbnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFz IHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMg Z3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50 ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0Ug ZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4g J2QnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAg V0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VM RUNUJyBUSEVOICdyJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0 JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdI RU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBFTFNFICdVTktOT1dO JworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisg ICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIHJlbGFjbAorICAgICAgICBG Uk9NCisgICAgICAgICAgICBwZ19jbGFzcyBjbAorICAgICAgICBMRUZUIE9V VEVSIEpPSU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAg ICAgICBjbC5vaWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0n cGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICAgICAgV0hFUkUgY2wub2lkID0g e3sgdmlkIH19OjpPSUQgQU5EIHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBh Y2wsCisgICAgICAgIGFjbGV4cGxvZGUocmVsYWNsKSBkCisgICAgKSBkCitM RUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3Ig PSBnLm9pZCkKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9O IChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9sbmFt ZSwKKyAgICBndC5yb2xuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNf cGx1cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc4YmE2NAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCAr MSwyMiBAQAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09Q3JlYXRl IG5ldyB2aWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiBk aXNwbGF5X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBWSUVXIHt7 IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fTsKKwor eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5zY2hlbWEg YW5kIGRhdGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklF VyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0K K3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9CitXSVRIICh7JSBp ZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7 IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9KXsl IGVuZGlmICV9IEFTCit7eyBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7Jykg fX07Cit7JSBpZiBkYXRhLm93bmVyICV9CisKK0FMVEVSIFRBQkxFIHt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICBPV05F UiBUTyB7eyBkYXRhLm93bmVyIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRh dGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVu dChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7IGRhdGEu Y29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3Nx bC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmU1MGJlZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9kZWxl dGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09PT09PT09 PT09PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9PT09PT09PT09PT09 PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgYy5yZWxu YW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19j bGFzcyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBjLnJlbG5h bWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9kZSA9 IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9CitE Uk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUpIH19 IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2dyYW50LnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMv c3FsL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jZTk0ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ3Jh bnQuc3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sjID09PT09IEdyYW50IFBlcm1p c3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMgPT09PT0gI30K K3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC TEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1h Y3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBXZSB3aWxsIGdlbmVy YXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyA9PT09PSAjfQor eyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2Vj bGFiZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRh dGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGF0YWNsICV9 Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfQore3sgUFJJVklMRUdF LlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2No ZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85 LjNfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 ZDNkMWU0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSw3NCBAQAoreyUgaWYgKHZpZCBhbmQgZGF0bGFz dHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQsCisgICAg Yy54bWluLAorICAgIGMucmVsa2luZCwKKyAgICBkZXNjcmlwdGlvbiwKKyAg ICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3Bj LnNwY25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAor ICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lIEFTIHNj aGVtYSwKKyAgICBjLnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAorICAgIGMu cmVsaXNwb3B1bGF0ZWQgQVMgaXNwb3B1bGF0ZWQsCisgICAgcGdfZ2V0X3Vz ZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyLAorICAgIGFycmF5X3RvX3N0 cmluZyhjLnJlbGFjbDo6dGV4dFtdLCAnLCAnKSBBUyBhY2wsCisgICAgcGdf Z2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24sCisgICAg eyMgPT09PT0gQ2hlY2tzIGlmIGl0IGlzIHN5c3RlbSB2aWV3ID09PT09ICN9 CisgICAgeyUgaWYgdmlkIGFuZCBkYXRsYXN0c3lzb2lkICV9CisgICAgQ0FT RSBXSEVOIHt7dmlkfX0gPD0ge3tkYXRsYXN0c3lzb2lkfX0gVEhFTiBUcnVl IEVMU0UgRmFsc2UgRU5EIEFTIHN5c3RlbV92aWV3LAorICAgIHslIGVuZGlm ICV9CisoU0VMRUNUCisgICAgYXJyYXlfYWdnKGxhYmVsKQorRlJPTQorICAg IHBnX3NlY2xhYmVscyBzbDEKK1dIRVJFCisgICAgc2wxLm9iam9pZD1jLm9p ZCBBTkQgc2wxLm9ianN1YmlkPTApIEFTIGxhYmVscywKKyhTRUxFQ1QKKyAg ICBhcnJheV9hZ2cocHJvdmlkZXIpCitGUk9NCisgICAgcGdfc2VjbGFiZWxz IHNsMgorV0hFUkUKKyAgICBzbDIub2Jqb2lkPWMub2lkIEFORCBzbDIub2Jq c3ViaWQ9MCkgQVMgcHJvdmlkZXJzLAorICAgIHN1YnN0cmluZyhhcnJheV90 b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICAgIEZST00gJ3Nl Y3VyaXR5X2JhcnJpZXI9KFthLXp8MC05XSopJykgQVMgc2VjdXJpdHlfYmFy cmllcgorRlJPTSBwZ19jbGFzcyBjCitMRUZUIE9VVEVSIEpPSU4gcGdfbmFt ZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxuYW1lc3BhY2UKK0xFRlQg T1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHNwYyBvbiBzcGMub2lkPWMucmVs dGFibGVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBnX2Rlc2NyaXB0aW9uIGRl cyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVzLm9ianN1YmlkPTAgQU5E IGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKK0xFRlQgT1VU RVIgSk9JTiBwZ19jbGFzcyB0c3QgT04gdHN0Lm9pZCA9IGMucmVsdG9hc3Ry ZWxpZAorICAgIFdIRVJFICgoYy5yZWxoYXNydWxlcyBBTkQgKEVYSVNUUyAo CisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgci5ydWxlbmFtZQorICAg ICAgICBGUk9NCisgICAgICAgICAgICBwZ19yZXdyaXRlIHIKKyAgICAgICAg V0hFUkUKKyAgICAgICAgICAgICgoci5ldl9jbGFzcyA9IGMub2lkKQorICAg ICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZfdHlwZSkgPSAnMSc6OmJw Y2hhcikpICkpKQorICAgICAgICAgICAgQU5EIChjLnJlbGtpbmQgPSAndic6 OmNoYXIpCisgICAgICAgICAgKQoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5 c29pZCkgJX0KKyAgICBBTkQgYy5vaWQgPSB7e3ZpZH19OjpvaWQKK3slIGVs aWYgc2NpZCAlfQorICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19 OjpvaWQKK09SREVSIEJZCisgICAgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQor Cit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQorU0VMRUNUCisgICAgcHIu cm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVzIHByCitXSEVSRQorICAgIHBy LnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAgIHByLnJvbG5hbWUKKworeyUg ZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VMRUNUCisgICAgbnNwLm5z cG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAg IChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5E IG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVz L3NxbC91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjAyZDhmMzcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC91 cGRhdGUuc3FsCkBAIC0wLDAgKzEsNzUgQEAKK3sjID09PT09PT09PT09PT09 PT09PT09PT09PT09PT0gVXBkYXRlIFZpZXcgPT09PT09PT09PT09PT09PT09 PT09PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9z JyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9w cml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGlmIGRhdGEg JX0KK3slIHNldCB2aWV3X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1l IGVsc2Ugb19kYXRhLm5hbWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRh dGEuc2NoZW1hIGlmIGRhdGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAl fQoreyUgc2V0IGRlZiA9IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBp ZiBkYXRhLmRlZmluaXRpb24gJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0 YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7IGNvbm58 cXRJZGVudChvX2RhdGEuc2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBS RU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9 IG9fZGF0YS5zY2hlbWEgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50 KG9fZGF0YS5zY2hlbWEsIHZpZXdfbmFtZSApIH19CisgICAgU0VUIFNDSEVN QSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19OworeyUgZW5kaWYg JX0KK3slIGlmIGRhdGEub3duZXIgYW5kIGRhdGEub3duZXIgIT0gb19kYXRh Lm93bmVyICV9CitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQodmlld19z Y2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBjb25ufHF0 SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGVm IGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0K K0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9i YXJyaWVyIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNl Y3VyaXR5X2JhcnJpZXIpICV9CisgICAgV0lUSCAoeyUgaWYgZGF0YS5zZWN1 cml0eV9iYXJyaWVyICV9c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3Vy aXR5X2JhcnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfSkKK3slIGVuZGlmICV9 CisgICAgQVN7eyBkZWYgfX07Cit7JSBlbHNlICV9Cit7JSBpZiAoZGF0YS5z ZWN1cml0eV9iYXJyaWVyIGlzIGRlZmluZWQgYW5kIGRhdGEuc2VjdXJpdHlf YmFycmllcnxsb3dlciAhPSAgb19kYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93 ZXIpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVt YSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoc2VjdXJpdHlfYmFycmllcj17 eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX0pOworeyUgZW5kaWYg JX0KK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0 YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5n ZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYg J2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBw cml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRh Lm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBk YXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNo YW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMg aXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0K K3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQg JX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAl fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxz IGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3Ig ciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFko Y29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3Zp ZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjNfcGx1cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRmZjA0ZQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bw YXMvOS4zX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAor eyMgQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIG5ld2x5IGNyZWF0 ZWQgdmlldyAjfQoreyUgaWYgZGF0YSAlfQorU0VMRUNUIGMub2lkIEZST00g cGdfY2xhc3MgYyBXSEVSRSBjLnJlbG5hbWUgPSAne3sgZGF0YS5uYW1lIH19 JzsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9hY2wuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85 LjRfcGx1cy9zcWwvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi43ZDc5MWY1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9z cWwvYWNsLnNxbApAQCAtMCwwICsxLDM5IEBACit7IyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09IEdldCBBQ0xzID09PT09PT09PT09PT09PT09PT09 PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgJ2RhdGFjbCcg YXMgZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGlj JykgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3JhbnRvciwKKyAgICBhcnJh eV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZpbGVnZXMsCisgICAgYXJy YXlfYWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRhYmxlCitGUk9NCisgICAg KFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19n cmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAg ICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0lO U0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhF TiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAg ICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdVUERB VEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdE JworICAgICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJp dmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAg ICAgICAgIHJlbGFjbAorICAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdf Y2xhc3MgY2wKKyAgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19zaGRlc2Ny aXB0aW9uIGRlc2NyIE9OCisgICAgICAgICAgICAoY2wub2lkPWRlc2NyLm9i am9pZCBBTkQgZGVzY3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3Mp CisgICAgICAgICBXSEVSRQorICAgICAgICAgICAgY2wub2lkID0ge3sgdmlk IH19OjpPSUQgQU5EIHJlbGtpbmQgPSAndicKKyAgICAgICAgKSBhY2wsCisg ICAgICAgIGFjbGV4cGxvZGUocmVsYWNsKSBkCisgICAgKSBkCitMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9p ZCkKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdy YW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9sbmFtZSwKKyAg ICBndC5yb2xuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9z cWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkxMDkwZAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 L3BwYXMvOS40X3BsdXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyNSBA QAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09Q3JlYXRlIG5ldyB2 aWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiBkaXNwbGF5 X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBWSUVXIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fTsKKworeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRh dGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KK3slIGlm ICgoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxv d2VyKCkgIT0gJ25vJykgb3IgZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfQor V0lUSCAoeyUgaWYgZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tf b3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAlfQorY2hlY2tfb3B0aW9uPXt7IGRh dGEuY2hlY2tfb3B0aW9uIH19eyUgZW5kaWYgJX17eyAnLCAnIGlmIGRhdGEu Y2hlY2tfb3B0aW9uIGFuZAorZGF0YS5jaGVja19vcHRpb24ubG93ZXIoKSAh PSAnbm8nIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX0KK3slIGlmIGRh dGEuc2VjdXJpdHlfYmFycmllciAlfSBzZWN1cml0eV9iYXJyaWVyPXt7IGRh dGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9KXslIGVu ZGlmICV9IEFTCit7eyBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgfX07 Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm1fdmlldyBpcyB1bmRlZmlu ZWQgJX0KKworQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLm5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgY29ubnxxdElk ZW50KGRhdGEub3duZXIpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu Y29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7IGRhdGEuY29t bWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BwYXMvOS40X3BsdXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9k ZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmU1MGJlZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9kZWxldGUu c3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09PT09PT09PT09 PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9PT09PT09PT09PT09PT09 PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgYy5yZWxuYW1l IEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19jbGFz cyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBjLnJlbG5hbWVz cGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9kZSA9IHt7 IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9CitEUk9Q IFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUpIH19IHsl IGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL2dyYW50LnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3Fs L2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5jZTk0ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvZ3JhbnQu c3FsCkBAIC0wLDAgKzEsMTQgQEAKK3sjID09PT09IEdyYW50IFBlcm1pc3Np b25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMgPT09PT0gI30KK3sl IGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUg JX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBXZSB3aWxsIGdlbmVyYXRl IFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyA9PT09PSAjfQoreyUg aWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFi ZWxzICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEu bmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfQore3sgUFJJVklMRUdFLlNF VChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1h KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRf cGx1cy9zcWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9wcm9wZXJ0aWVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzM4 MGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvcHJvcGVydGllcy5z cWwKQEAgLTAsMCArMSw3NyBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09 PT09PT0gRmV0Y2ggVmlldyBQcm9wZXJ0aWVzID09PT09PT09PT09PT09PT09 PT09PT09PT0gI30KK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpIG9y IHNjaWQgJX0KK1NFTEVDVAorICAgIGMub2lkLAorICAgIGMueG1pbiwKKyAg ICBjLnJlbGtpbmQsCisgICAgZGVzY3JpcHRpb24sCisgICAgKENBU0UgV0hF TiBsZW5ndGgoc3BjLnNwY25hbWUpID4gMCBUSEVOIHNwYy5zcGNuYW1lIEVM U0UgJ3BnX2RlZmF1bHQnIEVORCkgYXMgc3BjbmFtZSwKKyAgICBjLnJlbG5h bWUgQVMgbmFtZSwKKyAgICBjLnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAor ICAgIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICBjLnJlbGlzcG9wdWxh dGVkIEFTIGlzcG9wdWxhdGVkLAorICAgIHBnX2dldF91c2VyYnlpZChjLnJl bG93bmVyKSBBUyBvd25lciwKKyAgICBhcnJheV90b19zdHJpbmcoYy5yZWxh Y2w6OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAgIHBnX2dldF92aWV3ZGVm KGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIHsjID09PT09IENo ZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldyA9PT09PSAjfQorICAgIHslIGlm IHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAgIENBU0UgV0hFTiB7e3Zp ZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4gVHJ1ZSBFTFNFIEZhbHNl IEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBlbmRpZiAlfQorKFNFTEVD VAorICAgIGFycmF5X2FnZyhsYWJlbCkKK0ZST00KKyAgICBwZ19zZWNsYWJl bHMgc2wxCitXSEVSRQorICAgIHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNsMS5v YmpzdWJpZD0wKSBBUyBsYWJlbHMsCisoU0VMRUNUCisgICAgYXJyYXlfYWdn KHByb3ZpZGVyKQorRlJPTQorICAgIHBnX3NlY2xhYmVscyBzbDIKK1dIRVJF CisgICAgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wyLm9ianN1YmlkPTApIEFT IHByb3ZpZGVycywKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMu cmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9NICdjaGVja19vcHRpb249 KFthLXpdKiknKSBBUyBjaGVja19vcHRpb24sCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAgRlJP TSAnc2VjdXJpdHlfYmFycmllcj0oW2EtenwwLTldKiknKSBBUyBzZWN1cml0 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 dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvdXBkYXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40 X3BsdXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNTYxODNmZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMv c3FsL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw4MiBAQAoreyMgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09 PT09PT09PT09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5t YWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hl bWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYg ZGF0YSAlfQoreyUgc2V0IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRh Lm5hbWUgZWxzZSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1h ID0gZGF0YS5zY2hlbWEgaWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2No ZW1hICV9Cit7JSBzZXQgZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgn OycpIGlmIGRhdGEuZGVmaW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFu ZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sg Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQor ICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsK K3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hl bWEgIT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQg U0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBv X2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2 aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBp ZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsn KSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQo dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNr X29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNr X29wdGlvbikKKyAgICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBk YXRhLnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJp ZXIpICV9CisgICAgV0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFu ZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17 eyBkYXRhLmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRh dGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8n IGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJp dHlfYmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0K KyAgICBBU3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgaXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1cml0eV9i YXJyaWVyfGxvd2VyICE9ICBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dl cikgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1h LCB2aWV3X25hbWUpIH19CisgICAgU0VUIChzZWN1cml0eV9iYXJyaWVyPXt7 IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fSk7Cit7JSBlbmRpZiAl fQoreyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29w dGlvbiAhPSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29w dGlvbiAhPSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQo dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKGNoZWNrX29w dGlvbj17eyBkYXRhLmNoZWNrX29wdGlvbiB9fSk7Cit7JSBlbGlmIChkYXRh LmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRh LmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gPT0gJ25vJykg JX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2 aWV3X25hbWUpIH19IFJFU0VUIChjaGVja19vcHRpb24pOworeyUgZW5kaWYg JX0KK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0 YS5jb21tZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5n ZSBwcml2aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYg J2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEu c2NoZW1hKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBw cml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRh Lm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBk YXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNo YW5nZSBTZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMg aXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0K K3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQg JX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAl fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxz IGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3Ig ciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFko Y29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL3Zp ZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjRfcGx1cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWYyNzU5NAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bw YXMvOS40X3BsdXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAor eyMgPT09PT0gQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIGxhc3Qg Y3JlYXRlZCB2aWV3ID09PT09ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1Qg Yy5vaWQgRlJPTSBwZ19jbGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBk YXRhLm5hbWUgfX0nOworeyUgZW5kaWYgJX0K --001a11424616b205ff05303423da 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 --001a11424616b205ff05303423da--