From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.bugs Subject: bug#64656: 29.0.91; Doc of minibuffer histories and completing-read - automatic addition of completions to DEFAULT list Date: Thu, 20 Jul 2023 16:45:26 +0000 Message-ID: References: <83y1jga0nr.fsf@gnu.org> <83o7kb9a40.fsf@gnu.org> <834jlz3y1r.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27187"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "64656@debbugs.gnu.org" <64656@debbugs.gnu.org> To: Eli Zaretskii , Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jul 20 18:46:12 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qMWn5-0006rX-Cr for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 20 Jul 2023 18:46:11 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qMWmz-000474-Nv; Thu, 20 Jul 2023 12:46:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qMWmw-00041T-3X for bug-gnu-emacs@gnu.org; Thu, 20 Jul 2023 12:46:03 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qMWmv-0001xM-Rf for bug-gnu-emacs@gnu.org; Thu, 20 Jul 2023 12:46:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qMWmv-0007cB-Nv for bug-gnu-emacs@gnu.org; Thu, 20 Jul 2023 12:46:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 20 Jul 2023 16:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64656 X-GNU-PR-Package: emacs Original-Received: via spool by 64656-submit@debbugs.gnu.org id=B64656.168987153729236 (code B ref 64656); Thu, 20 Jul 2023 16:46:01 +0000 Original-Received: (at 64656) by debbugs.gnu.org; 20 Jul 2023 16:45:37 +0000 Original-Received: from localhost ([127.0.0.1]:59694 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qMWmX-0007bU-49 for submit@debbugs.gnu.org; Thu, 20 Jul 2023 12:45:37 -0400 Original-Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:36322) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qMWmS-0007bH-QU for 64656@debbugs.gnu.org; Thu, 20 Jul 2023 12:45:35 -0400 Original-Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36KFExxs023537; Thu, 20 Jul 2023 16:45:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2023-03-30; bh=CnH+REtiWo14ULn1maSHK+LJvgbBp8YXnhFBC6lS2fA=; b=16JypKm6W//oGqlMs4kbHNOgr+/pTIUcVCy7yxQHmHx4PVJ+oK/tQTDseVVxXtGmSPW3 K/XwsW07I+f6Dwlf0iG23M7PbrY3inqt4URWNSwNwLkjmMXBhVxdxFJ7Z7VujS8HN2t/ 4s8nAP9c+84s1Ft3xC/wvHDErT+w+QZLEddDM+WEfyfCunPl+By8bt4/LpOW9Jhni+/B QlCjrkfoHmYcTlePuxp/TNo5pmCaCohHZC85Bu2Lo7IWdTRKeRzq57/YRa+Fh9b75Ocm mKFCzHksAo+XNYQfgDo0sFCVqFhvQ9k0TMUvYA3TUXmUPrkqdSBGfuTjwP0FW6+7IEuu uA== Original-Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3run7728w2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 20 Jul 2023 16:45:30 +0000 Original-Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 36KFvtQc038207; Thu, 20 Jul 2023 16:45:29 GMT Original-Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2043.outbound.protection.outlook.com [104.47.57.43]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3ruhw8wfkj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 20 Jul 2023 16:45:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f3McUWyUAWCaI/XUVrzqGwUX30Cff6VZJXxQrh1JBv12ehLl97pSUXoJQxTu+aIaQXzh+ZQZfPyIAUOIjlJEud42ZcrU8wlYmXxDCjad9qzgIC8Dzwi/pw2U+gtvgUESYNArVB9hr90h/OH5v3EJhATT5ia2MadBzQBXa5AQLzK55uqe9Q7zmRmhyn399lZbbLEDgKqvlTQ0hKysdQqL6omNFibSMffSaUZGoXwxhvcr9UYUTZYydVPoNAanXPWncVWEQHckLTaaT+Z001YH48tpVLxcDe6oBWJUG/Z1zYg7BPlqnpBv8M9h7O0c683h8b+zq/zlbkdBdTVNGycCig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CnH+REtiWo14ULn1maSHK+LJvgbBp8YXnhFBC6lS2fA=; b=gWqZRmoQMY+BMmx2mvVlhxQFGTnx+FXTG7giUirwfJ9dzYb3lgWcNmHDb3mD0tP37Xh8FyYeLvHCSmTesX129fEYm02Jm+qofN0Wo/JRlSLZ8Sel/T+3rvTZFYoaVgoQxlgPP4aYeDg8Z/Jl3wC5L283ycAsYFhuSlMqf1b5VwbpWCfQIypSBzLiyi7J/+jufgZarOS5PDAP0/pXw6z1EKUInwWWhnCiV5pX8PlWK4SsD2GnlK77RjB8MEhjvSIugvYyfwYxjeglHrGODI0TGlQsjfbsGezwxS5/evXpSopqWlG5KpaOEqlHWy0wbgpwMYfiPgSSrkEnAUGszVjQ3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CnH+REtiWo14ULn1maSHK+LJvgbBp8YXnhFBC6lS2fA=; b=wOabE0I6OAR5XAi8SA4s16y76PL/nEbUARgRBwed9+PSRpIJUkyvSkiAoJ7RtYAJXrDwmObHY76hUsi1ZUIYYXkG51DkcpmXLV2NuvKJ/xBSiqZWAjAJkdIhidIvYVskjOcDnmOTOu1IrxGKRgqqqRvDHzCDK9uzRr4JQYkkzi0= Original-Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19) by PH8PR10MB6387.namprd10.prod.outlook.com (2603:10b6:510:1c2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.24; Thu, 20 Jul 2023 16:45:26 +0000 Original-Received: from SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::ac9a:8b33:bfbb:d0a8]) by SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::ac9a:8b33:bfbb:d0a8%5]) with mapi id 15.20.6609.025; Thu, 20 Jul 2023 16:45:26 +0000 Thread-Topic: [External] : Re: bug#64656: 29.0.91; Doc of minibuffer histories and completing-read - automatic addition of completions to DEFAULT list Thread-Index: Adm3dQO6x7fUknP/Q4+io7P97PcUXgDXQ1ALABOXgFA= In-Reply-To: <834jlz3y1r.fsf@gnu.org> Accept-Language: en-US Content-Language: en-US x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|PH8PR10MB6387:EE_ x-ms-office365-filtering-correlation-id: bc4a5005-b2b6-44a3-2d53-08db8940b847 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4TeYr8+IIE4LIemh6+hRY972af2usQVAxQ2o1Gq3uKnQLnaXLNEM7XdllwqhLZ3hf2HOPhmGUHlyHmUN5iKt+waJm2AbLDe6YMXY+d3sN8axHmB4XMGaaTIlkoINZxEe+LjnnSouK0PPw67NsKQ7yR1TUcnVumrhi7gqISNE+eGGqDgdI5QTE8JWiY9Oww8eu/7+WVbkBloW030BHoHVYxATlu0fzXSM9xygyW8kcmPxUv/y+Cp4GvZ02bNhRBYEgNbqwu3SjXISB4GDw7PSd9CI0+KFrDB8IVddoxcMxtnbOrjy8qKd5TdCW6dLy4fJMa2nNqdHzJTiqh9Lo5XS9zupN9QJfeqXAzV29ZXqBCqQBBW0+xzBhmnf13F9JeF0aYxZx2HsEajKkI80Be3z5z1XBIBYDb51+eF4yITG9Ue8ES9gLQ34jVY6QBbkGC3RIhWJ8UnKq63e8uPN6s/sgKqlB+ETWAId2KXdVjOvNF8IClI3oRiVxpb8enWWTEaiHvEpBUmt91XwAMPbOlCpFVwhKcBgGYK82dq0h+wk2rTYfcS5aJv/n/J0w5XMmtK7XoY7C3vdgLX/DH7NR6EeifrqMIal+juROBJJB518cIBbh0LODdPF4V3+vkucT5cz x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(366004)(376002)(39860400002)(346002)(136003)(451199021)(64756008)(4326008)(8936002)(8676002)(44832011)(52536014)(66446008)(66556008)(41300700001)(66476007)(316002)(76116006)(66946007)(5660300002)(38070700005)(9686003)(30864003)(2906002)(55016003)(122000001)(38100700002)(26005)(478600001)(7696005)(33656002)(110136005)(6506007)(186003)(71200400001)(86362001)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: Lg1d3cckvYfUd3QUYBQmH2BYYlgzd+Yvi00NrvkpBH5MzVY/d0AWNzLw3jKkMguiZTUINmWDFIl1LE37IybcWXUq9HnoXgf99NTGoidNHiMyylyjoKRMdM+K5C8vK/7LxD16EiiGPm9qtOj0y7JtmvZ51V9Yf8PiLCXABcVXBImH+Ep4C7QTSO0PxMZRWHU5pLhtm0lZDqpJDVzDvlgPX5t/BkPeoz6xT9lk1724evClU90E040MzuBLmQG15/vYg2eLMG3pikhcgP/KHVYiGp5TM+6+axYM29guI9bOX5HsWJEpcUOIgaFbiSxV/I8Ex9eLeEdlL/VwjTDL5XLJXwP7fytZsIoSBMY409YVfgr9IjvTLrmnQrhi4LtkPUtRcRaBrGhRJ2j00bfOumWEEBujAcCpqC94huBsueh7Mi5XYm6gkiHyamlN0lrqQ/ertHDgZFIuFKKjmSdI9F4RY4e5jrU+eVtvltX1NoYgsPT2QyXK3Cdn4pguEW0IL99BTTgqk50Q+SeGQXmDyvtYUBA52VjKw5QOu8hrxKwhDrMs8Gj200Iyxtgx1CRb3P/YYYQGmQQ7tgTrjh9XYswREb3jGCIPjUciq+MSHbPyBks1ctej8sk3o/mmhMK1rxcL2DlmywFb8276Wqwun4z27ivq0UxZBm/FzOXNBKAXVY7eWZ69G8D0xeOUQyYaIxTm6Eaux0QWBlENcW/WNDVjNp6xKDK9yFa4zxbWoXE/3sOYprIvMfht6sB77n c4PKPzdVT8l9rlGldM++aFygFTG/AtjEpzSJ8WQ+fe+z8m/E9im5HuOujOLKPTMNiIux78rxTq28RfyqLhsqlWQnHA5CFH3KVT X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: K0v6L4oEQB+x7SvGBvHCPneYHaac6av7LrVzfQhzKpneiAscfUj5ln/XGkurHCOBpATLhznNAE0zSue0g2BsShcLtaXWERnZTQ7FFjrlOVwM5+W+PprVeZM+U4YfMfBDxlVd3CADMSpDU2RvCPSQi929bjwxvNWFtyom9W6Mht2hiKmo7aYVpIfvfxEdCRKTUP5bxWSZYzKQKEpBDvWvLF/m/0muoTcX6uEbaEnM4JiEEunnFp3O6XOQ/KLLBp5P2gXPrPx1OgJkdVxyIXukgDH2ofTKvoeoxcwdIgcjl7Kd2EpbfcSoMGmJw7M8iHCwkflD6b+zMImMd6wpCFGvzL4aAmG8MN+knDzYKVuhreCKwg+B+aVI85uZcG3OZpUMxqG4c/44XbhFumYtl3EH3kvYccDsLV0iP/wJun5UxK+hqvG+BEIsXRFkWbwyedh/wJBZPOuKFKqxNa+AkN0wq1Xcx3cWobf2ceP2/ziItHo4VHoPDWS1M0V/Z0TKkyFtSu0xsvIl2gXePoNoHJsGJ32M2xxOC7kDjtX19sZiYd0K9dXtuAjlLFo6s723hJ+kxggrnzEEVM6nnAa+un6Otg3MvcJH+88legVSy3Kz1e1mkXwQ9cLDLIfXPkrqNsGWoAAVUycx6PsEfoT4jU0FnWCaRIRRaK4OcK3vKrts/QDKFaQn3fLa1u/tMPzK5JN7BFxiVl7mXbmvW2nWgAh+JmNRka+QZqfjJm9ES4l5qZwLi9 GoUWwsUF+StJOBDnKtptBPYh/7WULDgFLukxS2DlBP516Yai2lEdyLT4BMhH7+NrowALQyJnIlnYBNHO2mdOWIp4xZ87V0hgTd X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc4a5005-b2b6-44a3-2d53-08db8940b847 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jul 2023 16:45:26.5048 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: z3uKEnCufQ1HaVrq/WgMJZhA8o1A+jOJwho3nDE1Ti99s8S6clmkoTLeMWIJc51bfA79qOsjqsv+1qc1NqiYCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR10MB6387 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-20_08,2023-07-20_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 phishscore=0 adultscore=0 spamscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307200141 X-Proofpoint-GUID: _WMjNRH9tWU1giYB27ZceOT6rgSH9HIB X-Proofpoint-ORIG-GUID: _WMjNRH9tWU1giYB27ZceOT6rgSH9HIB X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:265620 Archived-At: PiA+ID4gPiBIb3BlIHRoaXMgY2xhcmlmaWVzIHRoZSByZXF1ZXN0L2J1ZyByZXBvcnQuDQo+ID4g Pg0KPiA+ID4gSXQgZG9lc24ndC4gIFNvcnJ5LCBJIGd1ZXNzIEknbSB0b28gc3R1cGlkDQo+ID4g PiB0byB1bmRlcnN0YW5kIHdoYXQgeW91IGFyZSBhc2tpbmcuDQo+ID4NCj4gPiBEb24ndCBiZSBz aWxseSBvciBzYXJjYXN0aWMsIHBsZWFzZS4NCj4gDQo+IFRoaXMgaXNuJ3Qgc2FyY2FzbSwgdGhp cyBpcyBmcnVzdHJhdGlvbi4NCj4gQW5kIHBsZWFzZSBhdm9pZCBhZC1ob21pbmVtIGlmIHlvdSBj YW4sIGVzcGVjaWFsbHkgd2hlbiB5b3UgeW91cnNlbGYNCj4gdXNlIGxhbmd1YWdlIHRoYXQgY2Fu IGVhc2lseSBiZSBpbnRlcnByZXRlZCBhcyBzYXJjYXNtOg0KPiANCj4gPiBBIHVzZXIgY2FyZXMg d2hhdCdzIGF2YWlsYWJsZSBmcm9tIGBNLW4nLg0KPiA+IChJIGRvbid0IGV4cGVjdCBhbm90aGVy ICJXaHk/IiBmb3IgdGhhdCwNCj4gPiBidXQgaXQgY29tZXMsIEknbGwgdHJ5IHRvIGFuc3dlciB0 aGF0IHRvby4pDQo+IA0KPiBJc24ndCB0aGF0IHNhcmNhc20/DQoNCk5vLCBpdCdzIG5vdC4gIEF0 IGFsbC4gIEl0J3MgbGVnaXRpbWF0ZSBmb3INCnNvbWVvbmUgdG8gYXNrICJXaHk/IiBmb3IgdGhh dCB0b28uICBJIHdhcw0KZ3Vlc3NpbmcgdGhhdCBJIHByb2JhYmx5IGRpZG4ndCBuZWVkIHRvDQpl eHBsYWluIHRoYXQsIGJ1dCBJIHdhbnRlZCB0byBtYWtlIGNsZWFyIHRoYXQNCkkgY291bGQsIGFu ZCB3b3VsZCwgaWYgeW91IHdhbnRlZCBhIHJlYXNvbg0KZm9yIHRoYXQgdG9vLg0KDQo+IFNvIGxl dCdzIHRyeSB0byBkcm9wIHRoZSBhdHRpdHVkZSBhbmQgZGlzY3VzcyB0aGUgcmVhbCBwcm9ibGVt cywgb2theT8NCg0KQWdyZWVkLg0KKEJ1dCBJJ20gbm90IHNob3dpbmcgYW55IG5lZ2F0aXZlICJh dHRpdHVkZSIuDQpQbGVhc2UgZG9uJ3QgbG9vayBmb3IgdGhhdCBhIHByaW9yaS4pDQoNCj4gKEFk ZGluZyBTdGVmYW4sIGJlY2F1c2UgSSB0aGluayBoZSBjb3VsZCBoYXZlIGluc2lnaHRzIGluIHRo aXMgYXJlYQ0KPiB0aGF0IGlzIG5vd2FkYXlzIGNvbXBsaWNhdGVkIGVub3VnaCB0byBibG93IG15 IG1pbmQuKQ0KDQpHb29kLiAgSSdtIGxpa2UgeW91IGluIHRoYXQuDQoNCj4gPiBXaHkgZG9lcyBp dCBtYXR0ZXIgdGhhdCBhbGwgaW5pdGlhbCAoaS5lLiwNCj4gPiBwcmlvciB0byBhbnkgdXNlciBp bnB1dCBpbiB0aGUgbWluaWJ1ZmZlcikNCj4gPiBjb21wbGV0aW9ucyBhcmUgcHV0IGludG8gdGhl IGBNLW4nIHF1ZXVlPw0KPiA+DQo+ID4gQmVjYXVzZSB0aGF0IHNldCBvZiBjYW5kaWRhdGVzIGlz IG9mdGVuDQo+ID4gaHVnZS4gIEFuZCBiZWNhdXNlIGl0cyBvcmRlciBpc24ndCBkZXNpZ25lZA0K PiA+IGZvciBgTS1uJyBvciAoZXNwZWNpYWxseSkgZm9yIHRoZSBwYXJ0aWN1bGFyDQo+ID4gYWN0 IG9mIGlucHV0IHJlYWRpbmcuICBPZnRlbiBpdHMgb3JkZXIgaGFzDQo+ID4gbm8gc3BlY2lhbCBy ZWFzb24uDQo+ID4NCj4gPiBBbmQgdGhlIGNhc2UgZ2l2ZW4gYXMgYW4gZXhhbXBsZSwgYEMtaCB2 JywNCj4gPiBpbGx1c3RyYXRlcyB0aGF0IHdlbGw6ICgxKSB6aWxsaW9ucyBvZiB2YXJzLA0KPiA+ ICgyKSBpbiBubyB1c2VyLWV4cGVjdGFibGUvdW5kZXJzdGFuZGFibGUvDQo+ID4gdXNlZnVsIG9y ZGVyIC0gdGhlIG9yZGVyIG9mIG9iYXJyYXkhDQo+IA0KPiBUaGlzIHBhcnQgb2YgeW91ciByZXBv cnQgc2VlbXMgdG8gYmUgYSBzZXBhcmF0ZSBpc3N1ZSAtLSB5b3Ugc2VlbSB0bw0KPiBiZSBzYXlp bmcgdGhhdCAiQy1oIHYiIGFuZCBzaW1pbGFyIGNvbW1hbmRzIHNob3VsZCBub3QgYWRkIGFsbCB0 aGUNCj4gdmFyaWFibGVzIHRvIHRoZSAiZnV0dXJlIGhpc3RvcnkiLiAgSXQncyBwb3NzaWJsZSB0 aGF0IHlvdSBhcmUgcmlnaHQsDQo+IGFsdGhvdWdoIGl0IGNvdWxkIGJlIHVzZWZ1bCBpZiBNLXMg YW5kIE0tciBpbiB0aGUgbWluaWJ1ZmZlciB3b3VsZA0KPiBhY3R1YWxseSBzZWFyY2ggdGhhdCBs aXN0IC0tIHdoaWNoIHRoZXkgZG9uJ3QgY3VycmVudGx5LCBkdWUgdG8gaG93DQo+IHRoaXMgImFk ZCB0byBmdXR1cmUgaGlzdG9yeSIgZmVhdHVyZSBpcyBpbXBsZW1lbnRlZCB0byBhZGQgZWxlbWVu dHMNCj4gbGF6aWx5IChzZWUgZ290by1oaXN0b3J5LWVsZW1lbnQpLg0KDQpJdCBtYXkgc2VlbSB0 byBiZSBhIHNlcGFyYXRlIGlzc3VlLiAgQWN0dWFsbHksDQppdCdzIGp1c3QgYW4gZXh0cmVtZSBj YXNlLCB0byBtYWtlIGNsZWFyIHdoYXQNCnRoZSBnZW5lcmFsIHByb2JsZW0gaXMuICBgQy1oIHYn IGlzIGFzIGJhZCBhcw0KaXQgY2FuIGJlLg0KDQpZZXMsIHN1Y2ggZXh0cmVtZSBjYXNlcyBjb3Vs ZCBiZSBoYW5kbGVkDQpzZXBhcmF0ZWx5LiBJdCB3b3VsZCBiZSBlYXNpZXIsIGFuZCBzYW5lciwg dG8NCmRvIHRoYXQgaWYgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGF1dG9tYXRpYw0KYWRkaXRp b24gd2VyZSBPRkYsIG5vdCBPTi4NCg0KQnV0IEkgYXJndWUgdGhhdCB0aGVyZSBpc24ndCBhbnkg Z29vZCByZWFzb24sDQpldmVuIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBzZWFyY2ggc3BhY2UgaXMN CnNtYWxsIChzbWFsbCBjb21wbGV0aW9uIGRvbWFpbikuICBPciBhdCBsZWFzdA0KSSdtIGFza2lu ZyBmb3IgYSByYXRpb25hbGUgYmVoaW5kIHN1Y2ggZGVmYXVsdA0KYmVoYXZpb3IuICBTbyBmYXIs IEkgdGhpbmsgdGhlcmUncyBubyBnb29kDQpyZWFzb24sIGJ1dCBJIG1pZ2h0IGp1c3QgYmUgbWlz c2luZyBzb21ldGhpbmcuDQogDQo+IEJ1dCB0aGF0IGlzIGEgc2VwYXJhdGUgaXNzdWUsIGFsbW9z dCB1bnJlbGF0ZWQgdG8gdGhlIFN1YmplY3Qgb2YgeW91cg0KPiByZXBvcnQsIHdoaWNoIGlzIGFi b3V0IGRvY3VtZW50YXRpb24uDQoNCkkgZG9uJ3QgdGhpbmsgc28gKHNlZSBhYm92ZSkuICBDYXNl cyBzdWNoIGFzDQpgQy1oIHYnIGp1c3QgcG9pbnQgb3V0IHRoZSBwcm9ibGVtIHN0YXJrbHkuDQoN ClllcywgbGFyZ2UgY29tcGxldGlvbiBkb21haW5zIGFyZSBlc3BlY2lhbGx5DQpwcm9ibGVtYXRp YyBmb3IgdGhpcyBkZWZhdWx0IGJlaGF2aW9yLCBiZWNhdXNlDQpvZiB0aGUgc2l6ZSBvZiB0aGUg YE0tbicgcXVldWUuICBZZXMsIG9iYXJyYXkNCmlzIGVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgZm9y IHRoaXMsIGJlY2F1c2Ugb2YNCml0cyB1c2VsZXNzIG9yZGVyIG9mIHN5bWJvbHMuDQoNCkJ1dCBJ J20gYXNraW5nIGFib3V0IHRoZSBnZW5lcmFsIGlkZWEgYmVoaW5kDQp0aGlzIGRlZmF1bHQgYmVo YXZpb3I6IFdoYXQgdXNlIGNhc2UocykgZG9lcw0KaXQgcmVhbGx5IGhlbHAgd2l0aD8gIEV2ZW4g d2l0aCBhIHNtYWxsIGxpc3QNCm9mIChlbXB0eS1pbnB1dCkgY29tcGxldGlvbnMsIGFuZCBldmVu IHdoZW4NCnRob3NlIGFyZSBpbiBzb21lIG1lYW5pbmdmdWwvdXNlZnVsIG9yZGVyLA0Kd2hhdCdz IHRoZSB1c2UgY2FzZSBmb3IgYWRkaW5nIHRoZW0gdG8gYE0tbicsDQp3aGljaCBpcyBhIGNhcmVm dWxseSBkZXNpZ25lZCBkZWZhdWx0IG9yIGxpc3QNCm9mIGRlZmF1bHRzPyAgV2h5IHVzZSB0aGUg Y29tcGxldGlvbiBkb21haW4NCmFzIGEgc2V0IG9mIGRlZmF1bHRzIC0gYXQgYWxsPw0KDQo+IFdo YXRldmVyIHByb2JsZW1zIHdlIGhhdmUgaW4gdGhpcyBhcmVhIHdpdGgNCj4gIkMtaCB2IiwgdGhl eSBjYW5ub3QgYmUgc29sdmVkIGJ5IGRvY3VtZW50YXRpb24NCj4gaW4gdGhlIEVMaXNwIG1hbnVh bC4NCg0KSSBzcG9rZSB0byB0aGlzLiAgV2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZQ0KYmVo YXZpb3Igd29uJ3QgYmUgY2hhbmdlZCwgdGhlIGRvYyBjYW4gYXQgbGVhc3QNCmhlbHAgYnkgcG9p bnRpbmcgb3V0IHRoYXQgZm9yIHN1Y2ggY2FzZXMgKGxhcmdlDQpjb21wbGV0aW9uIGRvbWFpbiwg bm8gdXNlZnVsIG9yZGVyKSwgeW91IGNhbiBhdA0KbGVhc3QgbWl0aWdhdGUgdGhlIHByb2JsZW06 DQoNCiogWW91IGNhbiBiaW5kIHRoZSB2YXJpYWJsZSB0byBuaWwgLSBubyBhZGRpdGlvbi4NCiog WW91IGNhbiBnaXZlIHRoZSB2YXJpYWJsZSBhIGN1c3RvbSBmdW5jdGlvbg0KICB2YWx1ZSB0aGF0 IGxpbWl0cyB0aGUgc2l6ZSBvciBzb3J0cyB0byBhIHVzZWZ1bA0KICBvcmRlci4NCg0KRWxpc3Ag cHJvZ3JhbW1lcnMgY2FuIGRvIHRoYXQgaW4gY29kZSB0aGV5IHdyaXRlDQp0aGF0IHJlYWRzIG1p bmlidWZmZXIgaW5wdXQgKGluIHBhcnRpY3VsYXIsIHdpdGgNCmNvbXBsZXRpb24pLiAgRW1hY3Mg dXNlcnMgY2FuIGRvIHRoYXQgd2l0aCBhDQpkZWZ2YXIgdGhhdCBkZWZpbmVzIHRoZSBkZWZhdWx0 IHZhbHVlIG9mDQpgbWluaWJ1ZmZlci1kZWZhdWx0LWFkZC1mdW5jdGlvbicgKGUuZy4gYXMgbmls KS4NCg0KQ3VycmVudGx5IHRoZSBkb2MgZG9lc24ndCBwb2ludCBvdXQgdGhlIHByb2JsZW0NCm9y IHRoZXNlIHBvc3NpYmxlIG1pdGlnYXRpb25zLiAgSWYgdGhlIHByb2JsZW0NCmlzbid0IGZpeGVk IHRoZW4gdGhlIGRvYyBjYW4gYXZlcnQgdXNlcnMgdG8gaXQuDQogDQo+IFNvIHdoYXQgaXMgdGhl IGRvY3VtZW50YXRpb24gaXNzdWU/DQoNClNlZSBhYm92ZS4gIE1ha2UgdXNlcnMgYXdhcmUgb2Yg dGhlIHByb2JsZW0NCmFuZCBob3cgdG8gbWl0aWdhdGUgaXQgYSBiaXQgLSBhcyBsb25nIGFzDQpp dCBleGlzdHMuDQoNCj4gWW91IHNheToNCj4gDQo+ID4gV2hhdCBhbiBFbGlzcCB1c2VyIChub3Qg YW4gZW5kIHVzZXIgb2YgYQ0KPiA+IGNvbW1hbmQpIHJlYWxseSBuZWVkcyB0byBjYXJlIGFib3V0 IGlzIHZhcg0KPiA+IGBtaW5pYnVmZmVyLWRlZmF1bHQtYWRkLWZ1bmN0aW9uJywgbm90IHRoZQ0K PiA+IHBhcnRpY3VsYXIgZnVuY3Rpb24gdGhhdCdzIGl0cyBkZWZhdWx0IHZhbHVlLg0KPiA+DQo+ ID4gRm9yZ2V0IGZvciBhIG1vbWVudCBhYm91dCB3aGF0IHZhcmlvdXMNCj4gPiBmdW5jdGlvbiB2 YWx1ZXMgZm9yIHRoYXQgdmFyaWFibGUgbWlnaHQgZG8uDQo+ID4gVGhlIG1vc3QgaW1wb3J0YW50 IHRoaW5nIGFib3V0IHRoYXQgdmFyIGlzDQo+ID4gdGhhdCBpZiBuaWwgdGhlbiB0aGUgZG9tYWlu IG9mIGNvbXBsZXRpb25zDQo+ID4gaXNuJ3QgYWRkZWQgdG8gdGhlIGBNLW4nIHF1ZXVlIGF0IGFs bC4gIElPVywNCj4gPiB0aGF0IF90dXJucyBvZmZfIHRoZSBhdXRvbWF0aWMgZmlsbGluZyBvZg0K PiA+IHRoZSBgTS1uJyBxdWV1ZS4NCj4gPg0KPiA+IEFuIEVsaXNwIHVzZXIgbmVlZHMgdG8ga25v dyB0aGF0IGZhY3QsIGlmDQo+ID4gcz9oZSB1c2VzIGBjb21wbGV0aW5nLXJlYWQnIGFuZCBzP2hl IHdhbnRzDQo+ID4gdG8gcHJldmVudCB0aGUga2luZCBvZiBjb25mdXNpbmcgb3ZlcmtpbGwNCj4g PiBleGhpYml0ZWQgYnkgYEMtaCB2Jy4gIChTaGUgdGhlbiBuZWVkcyB0bw0KPiA+IGJpbmQgdGhl IHZhciB0byBuaWwgYXJvdW5kIHRoZSBjYWxsIHRvDQo+ID4gYGNvbXBsZXRpbmctcmVhZCcpLg0K PiA+IFsuLi5dDQo+ID4gRWxpc3AgdXNlcnMgdGh1cyBuZWVkIHRvIGtub3cgdGhhdCB0byBkZWZp bmUNCj4gPiB0aGUgc3Vic2V0IGFuZCBpdHMgb3JkZXIgZm9yIGBNLW4nIHRoZXkgY2FuDQo+ID4g YmluZCB2YXIgYG1pbmlidWZmZXItZGVmYXVsdC1hZGQtZnVuY3Rpb24nDQo+ID4gdG8gYSBmdW5j dGlvbiB0aGF0IHJldHVybnMgc3VjaCBhIGxpc3QuDQo+ID4gVGhpcyBpc24ndCBvYnZpb3VzLiAg WW91IHdvbid0IGZpbmQgaXQgYnkNCj4gPiByZWFkaW5nIHRoZSBgY29tcGxldGluZy1yZWFkJyBk b2MsIGF0IGxlYXN0LA0KPiA+IHRob3VnaCBpdCdzIGp1c3QgYXMgaW1wb3J0YW50IHRvIGNvbnRy b2xsaW5nDQo+ID4gdGhlIGJlaGF2aW9yIGFzIHRoZSBhcmdzIHRvIHRoYXQgZnVuY3Rpb24uDQo+ IA0KPiBGaXJzdCwgTS1uIGlzIG5vdCBhYm91dCBjb21wbGV0aW9uLCBpdCBpcyBhYm91dCBtaW5p YnVmZmVyIGhpc3RvcnkuDQo+IENvbXBsZXRpb24gZnVuY3Rpb25zIHVzZSB0aGUgbWluaWJ1ZmZl ciwgc28gdGhlIG1pbmlidWZmZXIgaGlzdG9yeQ0KPiBhZmZlY3RzIHRoZW0sIGJ1dCB0aGV5IGFy ZSBub3QgdGhlIG9ubHkgb25lcyBhZmZlY3RlZC4NCg0KVGhhdCdzIHRydWUuICBNeSBjb25jZXJu IGlzIG1haW5seSB3aXRoIHRoZQ0KY29tcGxldGlvbiBjYXNlLiAgQWZ0ZXIgYWxsLCB0aGUgZGVm YXVsdCB2YWx1ZQ0Kb2YgYG1pbmlidWZmZXItZGVmYXVsdC1hZGQtZnVuY3Rpb24nIGlzIGENCmZ1 bmN0aW9uIHRoYXQgb25seSBhcHBsaWVzIHRvIG1pbmlidWZmZXINCnJlYWRpbmcgd2l0aCBjb21w bGV0aW9uLg0KDQpBbmQgSSBzcG9rZSBvZiBgY29tcGxldGluZy1yZWFkJywgYXMgYSBzaG9ydGN1 dA0KdG8gdGFsa2luZyBhYm91dCByZWFkaW5nIHdpdGggY29tcGxldGlvbiBtb3JlDQpnZW5lcmFs bHkgKGByZWFkLWV4dGVuZGVkLWNvbW1hbmQtMScsDQpgcmVhZC1zaGVsbC1jb21tYW5kJywgYHJl YWQtZmlsZS1uYW1lLWRlZmF1bHQnLA0KYG1pbmlidWZmZXItY29tcGxldGUtZGVmYXVsdHMnLC4u LikuDQoNCj4gVGhlIGRvY3VtZW50YXRpb24gb2YgY29tcGxldGluZy1yZWFkIGFuZCBvZiByZWFk LWZyb20tbWluaWJ1ZmZlciBhbHJlYWR5DQo+IHN0YXRlIHRoYXQgREVGQVVMVCBpcyBhZGRlZCB0 byB0aGUgImZ1dHVyZSBoaXN0b3J5IjoNCj4gDQo+ICAgICAgVGhlIGFyZ3VtZW50IERFRkFVTFQg c3BlY2lmaWVzIGRlZmF1bHQgdmFsdWVzIHRvIG1ha2UgYXZhaWxhYmxlDQo+ICAgICAgdGhyb3Vn aCB0aGUgaGlzdG9yeSBjb21tYW5kcy4gIEl0IHNob3VsZCBiZSBhIHN0cmluZywgYSBsaXN0IG9m DQo+ICAgICAgc3RyaW5ncywgb3Ig4oCYbmls4oCZLiAgVGhlIHN0cmluZyBvciBzdHJpbmdzIGJl Y29tZSB0aGUgbWluaWJ1ZmZlcuKAmXMNCj4gICAgICDigJxmdXR1cmUgaGlzdG9yeeKAnSwgYXZh aWxhYmxlIHRvIHRoZSB1c2VyIHdpdGgg4oCYTS1u4oCZLg0KDQoxLiBJdCBpc24ndCBqdXN0IGFk ZGVkIHRvIHRoZSAiZnV0dXJlIGhpc3RvcnkiLg0KICAgSXQncyB0aGUgYmFzZSAocHJlZml4KSBv ZiB0aGUgZnV0dXJlIGhpc3RvcnkuDQoNCjIuIFRoZSBwcm9ibGVtIGlkZW50aWZpZWQgaGFzIG5v dGhpbmcgdG8gZG8gd2l0aA0KICAgcHV0dGluZyBERUZBVUxUIChzaW5nbGUgb3IgbGlzdCkgaW50 byB0aGUNCiAgIGZ1dHVyZSBoaXN0b3J5LiAgVGhhdCdzIGJ5IGRlZmluaXRpb24gYWx3YXlzDQog ICB1c2VmdWwsIGJlY2F1c2UgaXQgYXNzdW1lcyB0aGF0IHRoZSBwcm9ncmFtbWVyDQogICBwcm92 aWRlcyBhIHJlYXNvbmFibGUgc2V0IG9mIHN1Y2ggZGVmYXVsdHMuDQogICBDb250cm9sIGJ5IGh1 bWFuIGRlc2lnbi4NCg0KPiBXaGF0IGlzIG1pc3NpbmcgaGVyZSwgaXQgc2VlbXMsIGlzIHRoZSBo aW50IHRoYXQgdGhpcyBhZGRpdGlvbiBjYW4gYmUNCj4gY29udHJvbGxlZCwgDQoNCk5vdCBpZiBi eSAidGhpcyBhZGRpdGlvbiIgeW91IG1lYW4gdGhlIGFkZGl0aW9uDQpkZXNjcmliZWQgaW4gdGhh dCBkb2MgeW91IHF1b3RlZCwgd2hpY2ggaXMganVzdA0KYWRkaXRpb24gb2YgREVGQVVMVC4NCg0K QnV0IGlmIGJ5ICJ0aGlzIGFkZGl0aW9uIiB5b3UgYWxzbyBtZWFuIHRoZQ0KYWRkaXRpb24gdGhh dCdzIG5vdCBtZW50aW9uZWQgdGhlcmUgLSBhdXRvbWF0aWMNCmFkZGl0aW9uIG9mIHRoZSBjb21w bGV0aW9uIGRvbWFpbiwgdGhlbiBPSyAtDQpUSEFUIGFkZGl0aW9uIGNhbiAob25seT8pIGJlIGNv bnRyb2xsZWQgYnkgdmFyDQpgbWluaWJ1ZmZlci1kZWZhdWx0LWFkZC1mdW5jdGlvbicuICBUaGF0 IHZhcg0KaGFzIG5vIGVmZmVjdCBvbiB0aGUgYWRkaXRpb24gb2YgREVGQVVMVC4NCg0KPiBhbW9u ZyBvdGhlciBtZWFzdXJlcywgdmlhIG1pbmlidWZmZXItZGVmYXVsdC1hZGQtZnVuY3Rpb24sDQo+ IGFuZCB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGF0IHZhcmlhYmxlIHdoZXJlIHRoZSBtaW5pYnVm ZmVyIGhpc3RvcnkgaXMNCj4gZG9jdW1lbnRlZC4gIElzIHRoYXQgd2hhdCB5b3UgYXJlIGFza2lu ZyBmb3IsIG9yIGlzIHRoZXJlIGFueXRoaW5nDQo+IGVsc2U/DQoNClNlZSBhYm92ZS4NCg0KMS4g SSdtIGFza2luZyB3aGV0aGVyIHRoaXMgZmVhdHVyZSAoYWRkaXRpb24NCiAgIG9mIGNvbXBsZXRp b24gZG9tYWluIGF1dG9tYXRpY2FsbHkpDQogICBzaG91bGRuJ3QgYmUgcmV2aXNpdGVkLCBtYXli ZSBldmVuIHJlbW92ZWQsDQogICBhbmQgYXQgbGVhc3QgZGVmYXVsdCB0byBPRkYuDQoNCjIuIElm IHRoYXQgcmV2aXNpdCBpcyBOT1QgdG8gYmUsIHRoZW4gSSdtDQogICBhc2tpbmcgdGhhdCB0aGUg ZG9jIGF0IGxlYXN0IChhKSBwb2ludCBvdXQNCiAgIHRoYXQgdGhpcyBhdXRvbWF0aWMgYmVoYXZp b3IgY2FuIGJlDQogICBwcm9ibGVtYXRpYywgYW5kIChiKSB0ZWxsIHVzZXJzIGhvdyB0bw0KICAg KGkpIHR1cm4gaXQgb2ZmIGFuZCAoaWkpIGNvbnRyb2wgaXQgYSBiaXQNCiAgIGlmIG5vdCB0dXJu ZWQgb2ZmLiAgVGhhdCBjb250cm9sIGNhbiBpbmNsdWRlDQogICBsaW1pdGluZyB0aGUgc2l6ZSBh bmQgc29ydGluZyB0aGUgZWxlbWVudHMNCiAgIHRvIGJlIGFkZGVkLg0KDQo+ID4gSSBtZW50aW9u ZWQgdGhhdCBJIHRoaW5rIGl0IHdvdWxkIGhlbHAgdG8NCj4gPiBtYWtlIHNvbWUgY2hhbmdlcyB0 byBib3RoIHRoZSBFbGlzcCBkb2MgYW5kDQo+ID4gdGhlIHVzZXIgZG9jLg0KPiANCj4gV2h5IHdv dWxkIEVtYWNzIHVzZXJzIG5lZWQgdG8ga25vdyBhYm91dCB0aGlzPyAgVGhlIG1lY2hhbmlzbSB0 bw0KPiBjb250cm9sIHdoYXQgYW5kIGhvdyBpcyBhZGRlZCB0byBtaW5pYnVmZmVyIGhpc3Rvcnkg aXMgbm90IHVzZXItbGV2ZWwNCj4gaW5mb3JtYXRpb247IHVzZXJzIGNhbm5vdCB1c2UgaXQgdG8g dGhlaXIgYmVuZWZpdC4NCg0KVXNlcnMgY2FuIGRlZnZhciB0aGUgdmFyaWFibGUgdmFsdWUgdG8g bmlsIChvcg0KYSBkaWZmZXJlbnQgZnVuY3Rpb24pLiAgVGhhdCB3b24ndCBoZWxwIHdpdGgNCnNv bWUgbWluaWJ1ZmZlciByZWFkaW5nIHRoYXQgYmluZHMgaXRzIG93bg0KZnVuY3Rpb24sIGJ1dCBp dCBjYW4gaGVscCBpbiBtYW55IGNhc2VzLg0KDQpVc2VycyBjYW4gYXQgbGVhc3QgYmUgYXdhcmUg b2Ygd2hhdCdzIGhhcHBlbmluZywNCnNvIHRoZXkgd29uJ3Qgd29uZGVyICJXVEY/IiB3aGVuIHRo ZXkgc2VlIG9kZA0KYE0tbicgaW5zZXJ0aW9ucy4gIEtub3dpbmcgdGhhdCwgdGhleSdsbCBrbm93 DQplbm91Z2ggdG8gc3RvcCByZXBlYXRpbmcgYE0tbicgd2hlbiB0aGV5IGdldCBhDQpmZXcgc3Vj aCBvZGQgaW5zZXJ0aW9ucywgaW5zdGVhZCBvZiBtYXliZQ0KdGhpbmtpbmcgdGhhdCB0aGV5IHdl cmUgb25lLW9mZnMuICBJT1csIGJ5DQpiZWluZyBhd2FyZSBvZiB3aGF0J3MgaGFwcGVuaW5nIHRo ZXkgY2FuIG1heWJlDQpnaXZlIHVwIG9uIG1lYW5pbmdsZXNzIGBNLW4nIGlucHV0IHNvb25lci4N Cg0KPiA+IEluIGVmZmVjdCwgdGhlIGhlYWRzLXVwIHRlbGxzIGEgdXNlciB0aGF0DQo+ID4gd2hl biBwcm9tcHRlZCBmb3IgaW5wdXQgd2l0aCBjb21wbGV0aW9uLA0KPiA+IGluIHNvbWUgY2FzZXMg dGhlICJmdXR1cmUgaGlzdG9yeSIgb2YNCj4gPiBkZWZhdWx0cyBpcyBlZmZlY3RpdmVseSB1c2Vs ZXNzLiAgQW5kIGl0DQo+ID4gZG9lc24ndCBodXJ0IHRvIHRlbGwgdXNlcnMgd2h5OiBfYWxsXw0K PiA+IHBvc3NpYmxlIGRvbWFpbiBjb21wbGV0aW9ucyBhcmUgaW5jbHVkZWQsDQo+ID4gcG9zc2li bHkgaW4gYSBtZWFuaW5nbGVzcyBvcmRlci4NCj4gDQo+IElmIHdlIHRoaW5rIHRoYXQgZnV0dXJl IGhpc3RvcnkgaW4gc29tZSBjYXNlIGlzIHVzZWxlc3MsIFRSVCBpcyB0bw0KPiBjaGFuZ2UgdGhl IGNvZGUgc28gdGhhdCBpdCBjZWFzZXMgdG8gYmUgdXNlbGVzcywNCg0KMTAwJSBhZ3JlZW1lbnQu ICBUaGF0J3Mgd2h5IHRoYXQgd2FzIG15IGZpcnN0DQpwcmlvcml0eSByZXF1ZXN0LiAgRml4IHRo aXMgYW5kIHRoZXJlIGxpa2VseQ0Kd2lsbCBiZSBubywgb3IgbGl0dGxlLCBuZWVkIHRvIGNoYW5n ZSB0aGUgZG9jLg0KDQpJIGRpZG4ndCBhc3N1bWUgdGhhdCBvdGhlcnMgd291bGQgYWdyZWUgdGhh dA0KdGhlIGJlaGF2aW9yIGlzIGhhcm1mdWwuDQoNCkkgdGhvdWdodCB0b28gdGhhdCBJIG1pZ2h0 IGp1c3QgYmUgbWlzc2luZw0Kc29tZXRoaW5nLiAgVGhlIGJlaGF2aW9yIHNlZW1zIHNvIGJpemFy cmUgdG8NCm1lIHRoYXQgSSBkb24ndCB1bmRlcnN0YW5kIHdoeSBpdCB3b3VsZCBoYXZlDQpiZWVu IGFkb3B0ZWQuICBCZW5lZml0IG9mIHRoZSBkb3VidCBtYWRlIG1lDQpndWVzcyBJJ20gbWF5YmUg anVzdCBtaXN1bmRlcnN0YW5kaW5nLg0KDQo+IG5vdCB0byBkb2N1bWVudCB0aGF0IGl0IGlzIHVz ZWxlc3MuICBJT1csIHdlDQo+IGRvbid0IGRvY3VtZW50IG91ciBvd24gYnVncywgd2UgcHJlZmVy IHRvIGZpeA0KPiB0aGVtLg0KDQpBZ3JlZSBmdWxseS4gIExldCdzIHNlZSB3aGF0IFN0ZWZhbiwg SnVyaSwNCmV0Yy4gdGhpbmsgYWJvdXQgdGhlIGFjdHVhbCBwcm9ibGVtLCBsZWF2aW5nDQpkb2Mg b3V0IG9mIGl0IHRpbGwgdGhlIGJlaGF2aW9yIHF1ZXN0aW9uIGlzDQpzZXR0bGVkLg0KDQo+IFNv IG5vLCB3ZSB3b24ndCBiZSB0ZWxsaW5nIHRoaXMgaW4gdXNlciBkb2N1bWVudGF0aW9uLiAgSWYg d2UgZGVjaWRlDQo+IHRoYXQgdGhpcyBiZWhhdmlvciBvZiAiQy1oIHYiIGFuZCBzaW1pbGFyIGNv bW1hbmRzIGlzIG5vdCB1c2VmdWwsIHdlDQo+IHNob3VsZCBjaGFuZ2UgaXQgdG8gYmUgbW9yZSB1 c2VmdWwuDQoNCkdyZWF0LiAgU0dUTS4NCg0K