From nobody Sat Jul 15 06:11:49 2023 X-Original-To: ports@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4R2yg037s5z4nSy7 for ; Sat, 15 Jul 2023 06:12:12 +0000 (UTC) (envelope-from tatsuki_makino@hotmail.com) Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01olkn2075.outbound.protection.outlook.com [40.92.53.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4R2yfy7118z3LLq for ; Sat, 15 Jul 2023 06:12:10 +0000 (UTC) (envelope-from tatsuki_makino@hotmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=hotmail.com header.s=selector1 header.b=fsY4mt4o; spf=pass (mx1.freebsd.org: domain of tatsuki_makino@hotmail.com designates 40.92.53.75 as permitted sender) smtp.mailfrom=tatsuki_makino@hotmail.com; dmarc=pass (policy=none) header.from=hotmail.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I8GN1fG50aNQgo5qxdXAmtg9t9dXsA/qtZq0W3RyOEC6WIwiRW6tA1nX+FZwUvQ3nhA3SPLm0lFr0baofHJmpCORsD9tNLsohHJenZk4kD1Gycdz6sL3ZAGDibfHdsyxoKwIYfCNsDnyr3csFyHmQniu3LFFikVBYG0Ju6klOX7ZLa1EtmPp55sHJktO4xACP31NGqZYIQ6iihKITmGBfB1uCh1zrNnXfwokhCC4WcBYCDRQX6YadoeI8q05eEIqAhy0Wvx3V0ox5+hNRIn5rR0w7sro1MrUTY3w+xDMwxWJN/EIY6B5IEzpfBPeULMmdnzvZNGcOuIP7Ze3o26mUw== 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=Pxhif9KcHvbNjX/rHRzptt06MCyvpDaKAtPIY40axmo=; b=IyixbNib+UeleM24EPgKWiQPoufDt5oAgLj/2sHLA/jirciXf84eC0A8pre0p2qlSq7IeDIqCPp/WAbcYNJHn/LADlkCKMtuQdPwZWhVi8m6WHpIzTeqAOl/aaNmfhFpCXLDB51Wax8HseeaMaLiJ1Ds7XFNdzFa1+ngJEnjcesuzXRiG3/OEFENuoopxIvAKc0UM3YX5X8Fv0zDMiw9nOx4GiHVVaaMRae6rQL/u3udXNJCHmIicUWGPJ9CQEznIf/mFQZLR3zurEYhVgdesI2qpzqMzKDn2ucsYVpxhEAFUJS2223dMlHz33qATF8d2CO3F6Aepul6XH6YtrDcPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pxhif9KcHvbNjX/rHRzptt06MCyvpDaKAtPIY40axmo=; b=fsY4mt4onQhkA005KL/R6qzPgLRlh12wjDBaSVtkZzLvBmjITNElwu+W3VaVn183l/NIMiPBZhoDg7lelF5Et1D6zURPXDAHmPy5EOZL3YotiO+Bn+RnR2NzWEhjngb19VvUOouWwH092t/e89PpjDb+wxADT32KPilSeHvhashHrhPne341mPHftSsz9PhQ/Vz+70sJHpu5737d9EA8fJqzb+8ee1ToSxuu9TCnA1bJMNoGHlYULOg6R9z9wKnun5EKNT2TLKk/WFi/2aGOmDeBJBfmrQrDW63CsHPKOiKCafzfsebfVZWAt851e53X/Bw09Bz8hTzYp9fUw9629Q== Received: from SI2PR01MB5036.apcprd01.prod.exchangelabs.com (2603:1096:4:1f8::9) by SI2PR01MB4521.apcprd01.prod.exchangelabs.com (2603:1096:4:1e0::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.28; Sat, 15 Jul 2023 06:12:04 +0000 Received: from SI2PR01MB5036.apcprd01.prod.exchangelabs.com ([fe80::da60:e0b5:573a:6259]) by SI2PR01MB5036.apcprd01.prod.exchangelabs.com ([fe80::da60:e0b5:573a:6259%2]) with mapi id 15.20.6588.028; Sat, 15 Jul 2023 06:12:04 +0000 From: Tatsuki Makino Subject: poudriere: estimated completion time To: "ports@FreeBSD.org" References: Message-ID: Date: Sat, 15 Jul 2023 15:11:49 +0900 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 In-Reply-To: Content-Type: multipart/mixed; boundary="------------0E496E63516395B51DB1BCF2" X-TMN: [KWxdn4wuQBpM4MAOnlmTKA4TeoDbAOa+] X-ClientProxiedBy: SG2PR02CA0101.apcprd02.prod.outlook.com (2603:1096:4:92::17) To SI2PR01MB5036.apcprd01.prod.exchangelabs.com (2603:1096:4:1f8::9) X-Microsoft-Original-Message-ID: List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SI2PR01MB5036:EE_|SI2PR01MB4521:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a47cbac-3979-4d22-7dd2-08db84fa68f1 X-MS-Exchange-SLBlob-MailProps: 4VtScROZs21n4G/BrrjcuhmVwM6iRXO9HAuDOZ8Ci7neZ7sV+272ZGERMu8sIGe78jkgSOWwzSbLwZ0+ZFzXMUiz2bNcffJGQ1MZMADVsv0INjhnqvv8PHVwGv18eb8TN0REwVxoyFeEoC/PL3mwWDZWWBioaXI8gLuPkv+ZdTQnimoINsRZTsgJUTHLJ2XXpBnGFBZ6PUCRqsNK9U4XJyWl5v+GyE8HVW+US9FfwdVWS9ShkOMDC8DD9wcIDx0EG0d8NRsZEyW5EhfsZkqD/oZGkgZlm679hwIf09guBEPvUPwKNhHV5IWh3fzYzclbjz1NrI6ILYP0OURAYK8ObIqkAN8QpW6ORVdhVjh/jBkGaN4W/Z3BretWgNKYyGRz5g3EkC2U/49EcLTll9zLSmpLVmbvkZIqQ9geyOvh/eRMD85tOIU8EmgFVHOUy8dz21ugTNj54TVPga+BsstvgTUCzTLKakvbL/CiT5kbMDaPi3T+5SI3BgM/2xgEG6DywxohAAxeqoQT9vOohUM5m/i1fmSWO1hWdNYl5hmj7PT0+FdtomOBP/iA1HhNhcyb4sJD+1bGFGU6dBtxqFokLzAozbwXBIhkNgpNnwq7NU8juhiFfYa/ueAVKqBb7VHcFhrCKcFRr/Xog+8d0PvfqylHdN63Da6LXaluZVlpXb1TjhrqyIXBwQ== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K3N1j4aGf0yFBGgUqWrSnlmyAXhF6i7AyJO35itN6WBA3kY019+cyqJVAVL6l1wKgQytqJ4GghjWHMb2SRIdQOH9xlD44Ly5zaZrKhwLlLfgb1+fJ3qKJVwuwBBNI6SnaIdsjyG2B0981Jv8sHS3osp/h4xQLkPYG7eeXpydFXdukWRcmtA5utDX4sQiCqV6DRbRDT8E9hffH2qkduAgWt7ZUpe+b97h3eHinJEc7+Ut0Q/1z5+pFDSbbc9RhWkJUd6Whdt4Z8mMG1iH4ROkY3zgGMk187ZL9Tco1cVClTX6gcJHhc6pwk6htp+nV1HjgpcMefEU/R5fSuUKFd9Tz7HpTnRyRudqk5MwknREJr5pLet9/TF6usN6t544ZFpMUUPc38qga4SOxpv6NkkXCYXErGN01SfW2bSfvp57LzcK3HTUWoY9wsOuXUlbDrSRJEzgAyxYbUd2VbOJdR5tSuPq3ckLRTgmqiu/qatFb51vY4p5bWOQ80KT5EI7t1noA/u47nI5tGyCc/g+x0GlVcIVZnPAvjOhDb3gJeI1u/5NDKaTYbNAO6fxiDh/z+h7PpSEyctT2qc7reMlFQ7n1qq7L0eVQNrL2hKZOSteuJlTU4Bwl+NzmX8bPPqIvNPh X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T0VvaWxYWU5jUE1sd3o4TWFvOS9uOUFZWjAveW5qaGNWVGw3RGNqV1dtaEE4?= =?utf-8?B?dzZDRnljdEIzUzdsVDkxZWhRUHdwaFV2TDlySWhYem9DbjUvYjUzckp3Ry9k?= =?utf-8?B?dy9lQ0lraS8xbnJQZW9yc3hWbmdWMHZXZTd2aHpIRHJMRmxoYTVqMTl3K09V?= =?utf-8?B?bDRDSUh5aHhtdXpvNDA1NzZHR0NINmJ0Q0dLSk1lb1NYZlZYUEh2Z0ZoQnU1?= =?utf-8?B?RVc3SjVBQWxkNGpkTExKUDNQMmgxWjh3L0xJVisvTmxDTFdpVU9qaFNLc0pv?= =?utf-8?B?TVIvRG5RUWR1dTk2cHdFTEgxV0E3bnltdTU4bXFvcEkzU2lBa3lHWndFdkVo?= =?utf-8?B?V3VsYW91a3F0V3Y3VXhtVmF2SkxzV1pGcWluNldxS0pnRjhNaGVqM05YNE44?= =?utf-8?B?aDJqbVRkQUhqMEpyelQwL3NBNTB4a3VkcUEvc1g1bUdWMHN0WUJzR3Y0cmFP?= =?utf-8?B?d3NOL01JeXE2aWwwMHByMU5ad0lhM1A5TXdEN1FvS3F5aXpSNHhTcll1b0Vq?= =?utf-8?B?LzFvYjVqOXhiMmpnRndoeW04eXBud1lDRk1Yb1FUMkJhRXFHcXFQV012SG8y?= =?utf-8?B?RkFmNEpQNnV3eWhvWGt5NFc2aFdqcXAzMVdBQXd1S0NDc014czM0dDdWLzBL?= =?utf-8?B?QndRamZYdS9MWWQrazVvQml0NWtkdm9HSkhLeHNYRi9qOE5IdnVIL3ZwelZK?= =?utf-8?B?QUxqMXNsa1NRSVhPMTJmTHVNMUJVYktBaURQSEVvN0tTTzBQS3NEMk4wbnQ4?= =?utf-8?B?ZFlmWElPbmtuWGptZGhUclVoUUJiZGFGcjA5dzVLUHJUK0N1ZUNIQndDOEg5?= =?utf-8?B?R0cvSTlNWmQwOWk4dUtlemhRZm1ZWms2VFE2em4xOHZpKzdHSzY1TkpLcmJu?= =?utf-8?B?TVhDRk9vYzBhM04xcy9oVm9NWEVZTUdzWmJVMktCV1pzejU4OS9NeEZiM2FW?= =?utf-8?B?VmNtdHlmcGdiSjg3VXRXTzZPUVBnNyszVFJUcTFaNVhHU1I2UjRSTE1VcXQw?= =?utf-8?B?bExWV1gvRUJuU0N6Ym9xejRsMGRtUEt6Wi9TV05FUERhdmx0bS85dlNzSjZt?= =?utf-8?B?VWd4emV6RkpGY0RJUWdVMmJnbHBLeGVaaGtESzY1MzRhSDFPdTZraGR0SnJT?= =?utf-8?B?Rkl2SWRmd2FjVEoxRUk3eW50YjViaVRzcHdUZFp4WDdLUDVpREtKZnFQcHpi?= =?utf-8?B?ODFKTGc2T1BxeHVkWCtudUN5ZXJEUzd5WjRxR2VVa2NlcWN3bFlobVFTa2F6?= =?utf-8?B?VFlIK3p3dFYxaVRSY0tPZWd2cjBJTkc0a21mYUs5a3FlR09mTWltenRYcHg1?= =?utf-8?B?bm8zSHFXU01BOEFuNWlzVkJPVnhKb094TGZXdnhmOERKUlBkZEoyM2ZsQVg5?= =?utf-8?B?bjR3SHBwSmZPWXNobWhFNjBqZU1ZQStVNHQ4bmtReEJ5eGlqem1jblZ2Y1RG?= =?utf-8?B?QTFSZUxjcUFUWkx4WEJoc3VvSmRrRXBkcmlQVmlPZDd3REsyMnJyaHRtVzJ3?= =?utf-8?B?QUszMTNoNXpOb000YWMzM2h4b1lVNmtLTlJUSlFZaFBTZGJWc25xL0xVOG9H?= =?utf-8?B?QTNnZmRjMDZFblRmbmc3OVEyT0NiVTlpdHd2UVRBZyttRGowVlRTWWNrL1NH?= =?utf-8?Q?rdmalxVPI8JM6V4uxZnFH91SnID2BUAKJQf9Oncukiqg=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-d8e84.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 9a47cbac-3979-4d22-7dd2-08db84fa68f1 X-MS-Exchange-CrossTenant-AuthSource: SI2PR01MB5036.apcprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2023 06:12:04.6048 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SI2PR01MB4521 X-Spamd-Result: default: False [2.10 / 15.00]; FORGED_MUA_SEAMONKEY_MSGID_UNKNOWN(2.50)[]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; MIME_BASE64_TEXT_BOGUS(1.00)[]; NEURAL_SPAM_LONG(1.00)[0.999]; NEURAL_HAM_MEDIUM(-0.90)[-0.902]; DMARC_POLICY_ALLOW(-0.50)[hotmail.com,none]; NEURAL_SPAM_SHORT(0.40)[0.403]; R_DKIM_ALLOW(-0.20)[hotmail.com:s=selector1]; R_SPF_ALLOW(-0.20)[+ip4:40.92.0.0/15]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; MIME_BASE64_TEXT(0.10)[]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_EQ_ADDR_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FREEMAIL_FROM(0.00)[hotmail.com]; FREEMAIL_ENVFROM(0.00)[hotmail.com]; MLMMJ_DEST(0.00)[ports@freebsd.org]; DKIM_TRACE(0.00)[hotmail.com:+]; RCVD_COUNT_THREE(0.00)[3]; HAS_ATTACHMENT(0.00)[]; DWL_DNSWL_NONE(0.00)[hotmail.com:dkim]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:8075, ipnet:40.80.0.0/12, country:US]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.92.53.75:from] X-Rspamd-Queue-Id: 4R2yfy7118z3LLq X-Spamd-Bar: ++ X-ThisMailContainsUnwantedMimeParts: N --------------0E496E63516395B51DB1BCF2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Tatsuki Makino wrote on 2023/07/10 11:13: > Kevin Oberman wrote on 2023/07/10 09:52: >> only completed 459 packages, a rate of 10 packages/hour and, if it >> continues at this rate, will not complete for about 40 days. Nt sure if > > The numbers in that area are meaningless :) I made this statement because I had an idea for a long time. And I was also thinking about how I was going to implement it, but it could only be something like this email attachment :) I'm exhausted here. Someone please make something better than this :) It also serves as my memorandum of understanding, so it contains some odd garbage :) I don't know how anyone but me uses poudriere, but this returns text to the terminal that ran poudriere. What I thought after making and using this, The value is rather close to the result. Values are not exact and vary considerably. It is not much different from the estimate using the Pkg/Hour values... It does not seem to have a good effect, as it can only track values close to when the queue is as follows :) Originally I wanted the progress bar to be accurate... poudriere bulk -j ... -C lang/gcc12 x11-fonts/fontconfig x11-fonts/xorg-fonts Regards. --------------0E496E63516395B51DB1BCF2 Content-Type: text/plain; charset=UTF-8; name="progress.sh.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="progress.sh.txt" IyEgL2Jpbi9zaAoKIwojIGluc3RhbGw6CiMgICBwa2cgaW5zdGFsbCB0ZXh0cHJvYy9qcQojICAg bWtkaXIgLXAgL3Vzci9sb2NhbC9ldGMvcG91ZHJpZXJlLmQvaG9va3MvcGx1Z2lucy9zb21lLWFw cHJvcHJpYXRlLW5hbWUKIyAgIG12IHRoaXNmaWxlIC91c3IvbG9jYWwvZXRjL3BvdWRyaWVyZS5k L2hvb2tzL3BsdWdpbnMvc29tZS1hcHByb3ByaWF0ZS1uYW1lL3NvbWUtYXBwcm9wcmlhdGUtbmFt ZS5zaAojICAgc2ggL3Vzci9sb2NhbC9ldGMvcG91ZHJpZXJlLmQvaG9va3MvcGx1Z2lucy9zb21l LWFwcHJvcHJpYXRlLW5hbWUvc29tZS1hcHByb3ByaWF0ZS1uYW1lLnNoCiMKIyB1bmluc3RhbGw6 CiMgICBybSAtciAvdXNyL2xvY2FsL2V0Yy9wb3VkcmllcmUuZC9ob29rcy9wbHVnaW5zL3NvbWUt YXBwcm9wcmlhdGUtbmFtZQojICAgZmluZCAvdXNyL2xvY2FsL3BvdWRyaWVyZS9kYXRhL2xvZ3Mv IC1uYW1lIC5wcm9ncmVzc1wqIC1wcmludCAtZGVsZXRlCiMKCmRhdGFfanNvbj0iLmRhdGEuanNv biIKZmlsZV9wZng9Ii5wcm9ncmVzcyIKCkNBVD0iL2Jpbi9jYXQiCkNQPSIvYmluL2NwIgpEQVRF PSIvYmluL2RhdGUiCkZJTkQ9Ii91c3IvYmluL2ZpbmQiCklOU1RBTEw9Ii91c3IvYmluL2luc3Rh bGwiCkpRPSIvdXNyL2xvY2FsL2Jpbi9qcSIKTE9DS0Y9Ii91c3IvYmluL2xvY2tmIgpMT0dHRVI9 Ii91c3IvYmluL2xvZ2dlciIKTUtURU1QPSIvdXNyL2Jpbi9ta3RlbXAiCk1WPSIvYmluL212IgpS RUFETElOSz0iL3Vzci9iaW4vcmVhZGxpbmsiClJFQUxQQVRIPSIvYmluL3JlYWxwYXRoIgpTSD0i L2Jpbi9zaCIKCkFSRzBfQkFTRT0iJHswIyMqL30iCkFSRzBfRElSPSIkezAlLyp9IgppZiBbICIk e0FSRzBfRElSfSIgPSAiJHtBUkcwX0JBU0V9IiBdIDsgdGhlbgoJQVJHMF9ESVI9LgpmaQppZiBb IC1MICIkezB9IiBdIDsgdGhlbgoJQVJHMF9SRUFETElOSz0iJCgiJHtSRUFETElOS30iIC1uIC0t ICIkezB9IikiCmZpCgpzaW5nbGVfaW5zdGFuY2VfbXV0ZXggKCkKewoJbG9jYWwgX2xvY2tmaWxl CglfbG9ja2ZpbGU9Ii90bXAvJHswIyMqL30ubG9jayIKCWNhc2UgIiR7WFhYX0xPQ0tGOi1mYWxz ZX0iIGluCSMgKAoJZmFsc2UpCgkJWFhYX0xPQ0tGPSJ0cnVlIiBMT0NLRl9QSUQ9IiR7JH0iICIk e0xPQ0tGfSIgLS0gIiR7X2xvY2tmaWxlfSIgIiR7U0h9IiAkey06KyItJHstfSJ9ICIkezB9IiAk ezErIiR7QH0ifQoJCWV4aXQgMAoJCTs7CSMgKAoJKikKCQkjIiR7TE9HR0VSfSIgLXAgdXNlci5u b3RpY2UgLXQgIiR7MH0iIC0tICR7MSsiJHtAfSJ9CgkJOzsKCWVzYWMKfQoKc2luZ2xlX2luc3Rh bmNlX211dGV4ICR7MSsiJHtAfSJ9CgppbnN0YWxsX2hvb2tzICgpCnsKCWxvY2FsIGYKCWZvciBm CglkbwoJCWlmIFsgLWUgIiR7QVJHMF9ESVJ9LyR7Zn0uc2giIF0gOyB0aGVuCgkJCXJldHVybiAw CgkJZmkKCQkiJHtJTlNUQUxMfSIgLWwgcnMgLS0gIiR7MH0iICIke0FSRzBfRElSfS8ke2Z9LnNo IgoJZG9uZQp9CgpjaGVja192YXJpYWJsZSAoKQp7Cgk6ICR7TE9HP30KCSM6ICR7UE9VRFJJRVJF X0RBVEE/fQoJIzogJHtQT1VEUklFUkVfQlVJTERfVFlQRT99CgkjOiAke01BU1RFUk5BTUU/fQoK CSNsb2dfcGF0aF9qYWlsPSIke1BPVURSSUVSRV9EQVRBfS9sb2dzLyR7UE9VRFJJRVJFX0JVSUxE X1RZUEV9LyR7TUFTVEVSTkFNRX0iCglsb2dfcGF0aF9qYWlsPSIkKCIke1JFQUxQQVRIfSIgLXEg IiR7TE9HfS8uLiIpIgp9CgpjYXNlICIke0FSRzBfQkFTRX0iIGluCSMgKApidWlsZF9xdWV1ZS5z aCkKCWNoZWNrX3ZhcmlhYmxlIHx8IHJldHVybiAwCgoJY2FzZSAiJHsxfSIgaW4JIyAoCglzdGFy dCkKCQlpZiBbICEgLWYgIiR7bG9nX3BhdGhfamFpbH0vJHtmaWxlX3BmeH0uanNvbiIgXSA7IHRo ZW4KCQkJaWYgdG1wZmlsZT0iJCgiJHtNS1RFTVB9IiAiJHtsb2dfcGF0aF9qYWlsfS8ke2ZpbGVf cGZ4fS5qc29uLlhYWFgiKSIgOyB0aGVuCgkJCQkiJHtGSU5EfSIgIiR7bG9nX3BhdGhfamFpbH0i IC1taW5kZXB0aCAyIC1uYW1lIC5kYXRhLmpzb25cCgkJCQkJLWV4ZWMgIiR7SlF9IiAtYyAtciAi LnBvcnRzLmJ1aWx0P3xbLltdP3x7KFsub3JpZ2luLGlmIC5mbGF2b3IgdGhlbiAuZmxhdm9yIGVs c2UgZW1wdHkgZW5kXXxqb2luKFwiQFwiKSk6KC5lbGFwc2VkfHRvbnVtYmVyKX1dfGFkZHwuLy9l bXB0eSIge30gKyB8CgkJCQkJIiR7SlF9IiAtYyAtciAtcyAiYWRkIiA+ICIke3RtcGZpbGV9IgoJ CQkJIiR7TVZ9IiAtLSAiJHt0bXBmaWxlfSIgIiR7bG9nX3BhdGhfamFpbH0vJHtmaWxlX3BmeH0u anNvbiIKCQkJZWxzZQoJCQkJZWNobyAie30iID4gIiR7bG9nX3BhdGhfamFpbH0vJHtmaWxlX3Bm eH0uanNvbiIKCQkJZmkKCQlmaQoJCWlmIHRtcGZpbGU9IiQoIiR7TUtURU1QfSIgIiR7TE9HfS8k e2ZpbGVfcGZ4fS5qc29uLlhYWFgiKSIgOyB0aGVuCgkJCSIke0pRfSIgLWMgLXIgIi5wb3J0cy5x dWV1ZWQ/fC5bXT98KFsub3JpZ2luLGlmIC5mbGF2b3IgdGhlbiAuZmxhdm9yIGVsc2UgZW1wdHkg ZW5kXXxqb2luKFwiQFwiKSkiXAoJCQkJIiR7TE9HfS8ke2RhdGFfanNvbn0iIHwKCQkJCXdoaWxl IHJlYWQgb3JpZ2luCgkJCQlkbwoJCQkJCSIke0pRfSIgLWMgLXIgIi5bXCIke29yaWdpbn1cIl18 KHtcIiR7b3JpZ2lufVwiOi59KSJcCgkJCQkJCSIke2xvZ19wYXRoX2phaWx9LyR7ZmlsZV9wZnh9 Lmpzb24iCgkJCQlkb25lIHwKCQkJCSIke0pRfSIgLWMgLXIgLXMgIlt7XCJcIjooLnxhZGQpfSx7 XCJsZW5ndGhcIjooLnxsZW5ndGgpfSx7XCJrbm93blwiOigufGFkZHx3aXRoX2VudHJpZXMoc2Vs ZWN0KC52YWx1ZSAhPSBudWxsKSl8bGVuZ3RoKX1dfGFkZCJcCgkJCQkJPiAiJHt0bXBmaWxlfSIK CQkJIiR7Q1B9IiAtcCAtLSAiJHt0bXBmaWxlfSIgIiR7TE9HfS8ke2ZpbGVfcGZ4fS5qc29uIgoJ CQkiJHtKUX0iIC1jIC1yICIuc3RhcnRlZHx0b251bWJlciJcCgkJCQkiJHtMT0d9LyR7ZGF0YV9q c29ufSIgfAoJCQkJd2hpbGUgcmVhZCBzdGFydGVkCgkJCQlkbwoJCQkJCSIke0pRfSIgLWMgLXIg Ii5zdGFydGVkPSR7c3RhcnRlZH0iXAoJCQkJCQkiJHtMT0d9LyR7ZmlsZV9wZnh9Lmpzb24iXAoJ CQkJCQk+ICIke3RtcGZpbGV9IgoJCQkJZG9uZQoJCQkiJHtDUH0iIC1wIC0tICIke3RtcGZpbGV9 IiAiJHtMT0d9LyR7ZmlsZV9wZnh9Lmpzb24iCgkJCSIke0pRfSIgLWMgLXIgIi50b3RhbD0oLltc IlwiXXxhZGQpfC5lbGFwc2VkcGVycGtnPShpZiAua25vd24gPT0gMCB0aGVuIDEgZWxzZSAoLnRv dGFsLy5rbm93bil8Y2VpbCBlbmQpfC5yZW1haW49KC50b3RhbCsuZWxhcHNlZHBlcnBrZyooLmxl bmd0aC0ua25vd24pKXwuZG9uZT0wIlwKCQkJCSIke0xPR30vJHtmaWxlX3BmeH0uanNvbiJcCgkJ CQk+ICIke3RtcGZpbGV9IgoJCQkiJHtNVn0iIC0tICIke3RtcGZpbGV9IiAiJHtMT0d9LyR7Zmls ZV9wZnh9Lmpzb24iCgkJCSIke0RBVEV9IiAtciAiJCgKCQkJCSIke0pRfSIgLWMgLXIgIi5zdGFy dGVkKy5yZW1haW58Y2VpbCJcCgkJCQkJIiR7TE9HfS8ke2ZpbGVfcGZ4fS5qc29uIgoJCQkpIiAi KyMgRXN0aW1hdGVkIGNvbXBsZXRpb24gdGltZTogJSsiCgkJZmkKCQk7OwkjICgKCXN0b3ApCgkJ aWYgdG1wZmlsZT0iJCgiJHtNS1RFTVB9IiAiJHtsb2dfcGF0aF9qYWlsfS8ke2ZpbGVfcGZ4fS5q c29uLlhYWFgiKSIgOyB0aGVuCgkJCSIke0pRfSIgLWMgLXIgIi5wb3J0cy5idWlsdD98Wy5bXT98 eyhbLm9yaWdpbixpZiAuZmxhdm9yIHRoZW4gLmZsYXZvciBlbHNlIGVtcHR5IGVuZF18am9pbihc IkBcIikpOiguZWxhcHNlZHx0b251bWJlcil9XXxhZGR8Li8vZW1wdHkiICIke0xPR30vJHtkYXRh X2pzb259IiB8CgkJCQkiJHtDQVR9IiAiJHtsb2dfcGF0aF9qYWlsfS8ke2ZpbGVfcGZ4fS5qc29u IiAtIHwKCQkJCSIke0pRfSIgLWMgLXIgLXMgImFkZCIgPiAiJHt0bXBmaWxlfSIKCQkJIiR7TVZ9 IiAtLSAiJHt0bXBmaWxlfSIgIiR7bG9nX3BhdGhfamFpbH0vJHtmaWxlX3BmeH0uanNvbiIKCQlm aQoJCTs7CSMgKAoJKikKCQk7OwoJZXNhYwoJOzsJIyAoCnBrZ2J1aWxkLnNoKQoJY2hlY2tfdmFy aWFibGUgfHwgcmV0dXJuIDAKCglvcmlnaW49IiR7Mn0iCSMgZmxhdm9yIG5vdCBpbmNsdWRlZAoJ cGtnbmFtZT0iJHszfSIKCWRhdGVfbm93PSIkKCIke0RBVEV9IiArJXMpIgoKCSMgbm90IHJlZmxl Y3RlZCBpbiAuZGF0YS5qc29uIGhlcmUsIGV4Y2VwdCBmb3IgcXVldWVkLgoJZmxhdm9yPSIkKAoJ CSIke0pRfSIgLWMgLXIgIi5wb3J0cy5xdWV1ZWRbXXxzZWxlY3QoLnBrZ25hbWU9PVwiJHtwa2du YW1lfVwiKXwuZmxhdm9yIlwKCQkJIiR7TE9HfS8ke2RhdGFfanNvbn0iCgkJKSIKCWlmIFsgIiR7 Zmxhdm9yfSIgIT0gIm51bGwiIF0gOyB0aGVuCgkJb3JpZ2luPSIke29yaWdpbn0ke2ZsYXZvcjor QCR7Zmxhdm9yfX0iCglmaQoKCWNhc2UgIiR7MX0iIGluCSMgKAoJc3VjY2Vzc3xmYWlsZWR8c2tp cHBlZHxpZ25vcmVkKQoJCWlmIHRtcGZpbGU9IiQoIiR7TUtURU1QfSIgIiR7TE9HfS8ke2ZpbGVf cGZ4fS5qc29uLlhYWFgiKSIgOyB0aGVuCgkJCSIke0pRfSIgLWMgLXIgIi5bXCJcIl1bXCIke29y aWdpbn1cIl0iXAoJCQkJIiR7TE9HfS8ke2ZpbGVfcGZ4fS5qc29uIiB8CgkJCQl3aGlsZSByZWFk IGVsYXBzZWQKCQkJCWRvCgkJCQkJaWYgWyAiJHtlbGFwc2VkfSIgPSAibnVsbCIgXSA7IHRoZW4K CQkJCQkJIiR7SlF9IiAtYyAtciAiLmRvbmUrPS5lbGFwc2VkcGVycGtnIlwKCQkJCQkJCSIke0xP R30vJHtmaWxlX3BmeH0uanNvbiJcCgkJCQkJCQk+ICIke3RtcGZpbGV9IgoJCQkJCWVsc2UKCQkJ CQkJIiR7SlF9IiAtYyAtciAiLmRvbmUrPSR7ZWxhcHNlZH0iXAoJCQkJCQkJIiR7TE9HfS8ke2Zp bGVfcGZ4fS5qc29uIlwKCQkJCQkJCT4gIiR7dG1wZmlsZX0iCgkJCQkJZmkKCQkJCWRvbmUKCQkJ IiR7TVZ9IiAtLSAiJHt0bXBmaWxlfSIgIiR7TE9HfS8ke2ZpbGVfcGZ4fS5qc29uIgoJCQkiJHtE QVRFfSIgLXIgIiQoCgkJCQkiJHtKUX0iIC1jIC1yICIoKC5yZW1haW4vLmRvbmUpLTEpKigke2Rh dGVfbm93fS0uc3RhcnRlZCl8Liske2RhdGVfbm93fXxjZWlsIlwKCQkJCQkiJHtMT0d9LyR7Zmls ZV9wZnh9Lmpzb24iCgkJCSkiICIrIyBFc3RpbWF0ZWQgY29tcGxldGlvbiB0aW1lOiAlKyIKCQlm aQoJCTs7CSMgKAoJKikKCQk7OwoJZXNhYwoJOzsJIyAoCiopCglpZiBbIC16ICIke0FSRzBfUkVB RExJTks6LX0iIF0gOyB0aGVuCgkJaW5zdGFsbF9ob29rcyBidWlsZF9xdWV1ZSBwa2didWlsZCB8 fAoJCQllY2hvICJpbnN0YWxsIGhvb2tzIGZhaWxlZCIKCWVsc2UKCQlyZXR1cm4gMAoJZmkKCTs7 CmVzYWMKCnJldHVybiAwCSMgcG91ZHJpZXJlIHdpbGwgYmUgZGlmZmljdWx0IHRvIHJlc3RvcmUg aWYgaXQgaXMgbm9uLXplcm8gOikK --------------0E496E63516395B51DB1BCF2--