From nobody Sat Aug 12 06:19:19 2023 X-Original-To: freebsd-hackers@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 4RN9VX6vWYz4TtxF for ; Sat, 12 Aug 2023 06:19:32 +0000 (UTC) (envelope-from joesuf4@gmail.com) Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RN9VW5nDCz3W43 for ; Sat, 12 Aug 2023 06:19:31 +0000 (UTC) (envelope-from joesuf4@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20221208 header.b=sS2LkGVN; spf=pass (mx1.freebsd.org: domain of joesuf4@gmail.com designates 2a00:1450:4864:20::42e as permitted sender) smtp.mailfrom=joesuf4@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-31751d7d96eso2243771f8f.1 for ; Fri, 11 Aug 2023 23:19:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691821170; x=1692425970; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=wP0PQ+WAuJ8Dcj4Ma6U/aTSQwGLNtYETDVHPS/K/aZg=; b=sS2LkGVNq2bIRovI2LaPNlWg6TBUtiY2N2HFdY/wAJO2oz9eSk+iyr+OvOFM3Dy3Jk TR5yI5nZ+PxubYvNB76/YuN+yfkKOvdcNOes0WhSUfeRNbb1E3Zu2CM4usIN7MjqxtGn ggMYx9Ha98iSCvEPs/ZPPW8N+UJBItetlIaE/Ctl+CaBV2FQfiPxs2Rtn38hHaim+G+Y c6Qg/b8qEhuSWVamxFjbLwB0Z8q9gIbD9LRrpRMhXIcbmkUkBLtQDekypi5cAXBOAur2 25x25huCr5VZO9SnQ1b9h32WeTcTz905oNB56/X33Ea2m1avIbPLkkMFIwFPtbMVI2el eJiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691821170; x=1692425970; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wP0PQ+WAuJ8Dcj4Ma6U/aTSQwGLNtYETDVHPS/K/aZg=; b=LbsooUmkEt+fOCux5JWeqqAKQrcyK7V/wa9jBvWnfszHsf44a2USivwQiezA8S9Yml QFKRitpej6VIifUjPDnn/OqSQnDSxVRsAw2hGs7lxqnXhIFvM4nNygOXDyztr4gz5TEQ AuUuj/YDScfKh+dNbSsJaYtPxg90GcqKN8GcCAZhx5NLdIFeWw/QhfwWeoC6nudO5WPM wKAIvQNYUzjv/fyOSIiAqe/v0uP1UHj0TIDRCTu7Fj+nhqikepWKaWMQLgHVDJqyUKfR LaFbLaS6oe3IKl1R/OYwojav2AbtDlERlBMvWvjDPJ1nWaWdto/ZL0eUhtLq9iElreql r96A== X-Gm-Message-State: AOJu0YyRfvjpjHEKhxdotahhKpIykcVBNT4ritqyVw2A0I6QIzV2p+6T iCdCmFUveJLsdh6Ol+fykD6REOqS8bfR4R2cCmDTedfC X-Google-Smtp-Source: AGHT+IHv1IUPP1NofSjovgQPki3JlAMOD+jV3fshnMhbtek4G4frA/4wlsUbGklnfZ+truMCUkq2NH0NaGL4q5MY36Y= X-Received: by 2002:adf:e28b:0:b0:314:1230:29b0 with SMTP id v11-20020adfe28b000000b00314123029b0mr2727019wri.52.1691821169936; Fri, 11 Aug 2023 23:19:29 -0700 (PDT) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 References: <202308111121.37BBLX0J064263@donotpassgo.dyslexicfish.net> In-Reply-To: From: Joe Schaefer Date: Sat, 12 Aug 2023 02:19:19 -0400 Message-ID: Subject: Re: can sftp be made multi-threaded? To: freebsd-hackers@freebsd.org Content-Type: multipart/alternative; boundary="000000000000db8d7f0602b3cf9f" X-Spamd-Result: default: False [-2.96 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-0.98)[-0.979]; NEURAL_HAM_SHORT(-0.98)[-0.977]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20221208]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; FROM_HAS_DN(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::42e:from]; DKIM_TRACE(0.00)[gmail.com:+]; MID_RHS_MATCH_FROMTLD(0.00)[]; TO_DN_NONE(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; RCVD_COUNT_ONE(0.00)[1]; RCVD_TLS_LAST(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org] X-Spamd-Bar: -- X-Rspamd-Queue-Id: 4RN9VW5nDCz3W43 --000000000000db8d7f0602b3cf9f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Just evangelizing xargs -P again. Hope it helps. On Fri, Aug 11, 2023 at 9:07 PM void wrote: > On Fri, Aug 11, 2023 at 12:51:25PM -0400, Joe Schaefer wrote: > >% split -n $(nproc) foo.pdf; ls x* | xargs -P 0 -J % scp % > > user@bar.example.com:%; rm x*; ssh user@bar.example.com sh -c =E2=80=9C= cat x* > > >foo.pdf; rm x*=E2=80=9D > > Thanks for that, I'll try it. > > -- > > --000000000000db8d7f0602b3cf9f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Just evangelizing xargs -P again. Hope it helps.

On F= ri, Aug 11, 2023 at 9:07 PM void <void@f-= m.fm> wrote:
On Fri, Aug 11, 2023 at 12:51= :25PM -0400, Joe Schaefer wrote:
>% split -n $(nproc) foo.pdf; ls x* | xargs -P 0 -J % scp %
> user@bar.example.com:%; rm x*; ssh user@bar.example.com sh -c =E2=80=9Ccat x* ><= br> >foo.pdf; rm x*=E2=80=9D

Thanks for that, I'll try it.

--

--000000000000db8d7f0602b3cf9f-- From nobody Sun Aug 13 00:05:48 2023 X-Original-To: freebsd-hackers@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 4RNd954CHSz4m6lb for ; Sun, 13 Aug 2023 00:06:01 +0000 (UTC) (envelope-from jamie@catflap.org) Received: from donotpassgo.dyslexicfish.net (donotpassgo.dyslexicfish.net [IPv6:2001:19f0:7400:8808:123::1]) by mx1.freebsd.org (Postfix) with ESMTP id 4RNd934Z77z3DFb for ; Sun, 13 Aug 2023 00:05:58 +0000 (UTC) (envelope-from jamie@catflap.org) Authentication-Results: mx1.freebsd.org; dkim=none; spf=pass (mx1.freebsd.org: domain of jamie@catflap.org designates 2001:19f0:7400:8808:123::1 as permitted sender) smtp.mailfrom=jamie@catflap.org; dmarc=pass (policy=none) header.from=catflap.org X-Catflap-Envelope-From: X-Catflap-Envelope-To: freebsd-hackers@FreeBSD.org Received: from donotpassgo.dyslexicfish.net (donotpassgo.dyslexicfish.net [209.250.224.51]) by donotpassgo.dyslexicfish.net (8.14.5/8.14.5) with ESMTP id 37D05m4c081625; Sun, 13 Aug 2023 01:05:48 +0100 (BST) (envelope-from jamie@donotpassgo.dyslexicfish.net) Received: (from jamie@localhost) by donotpassgo.dyslexicfish.net (8.14.5/8.14.5/Submit) id 37D05mGa081624; Sun, 13 Aug 2023 01:05:48 +0100 (BST) (envelope-from jamie) From: Jamie Landeg-Jones Message-Id: <202308130005.37D05mGa081624@donotpassgo.dyslexicfish.net> Date: Sun, 13 Aug 2023 01:05:48 +0100 Organization: Dyslexic Fish To: void@f-m.fm, freebsd-hackers@FreeBSD.org Subject: Re: can sftp be made multi-threaded? References: <202308111121.37BBLX0J064263@donotpassgo.dyslexicfish.net> In-Reply-To: User-Agent: Heirloom mailx 12.4 7/29/08 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.7 (donotpassgo.dyslexicfish.net [209.250.224.51]); Sun, 13 Aug 2023 01:05:48 +0100 (BST) X-Spamd-Result: default: False [-2.65 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.95)[-0.947]; DMARC_POLICY_ALLOW(-0.50)[catflap.org,none]; R_SPF_ALLOW(-0.20)[+mx:dyslexicfish.net]; RCVD_NO_TLS_LAST(0.10)[]; MIME_GOOD(-0.10)[text/plain]; FROM_EQ_ENVFROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@FreeBSD.org]; MIME_TRACE(0.00)[0:+]; FREEMAIL_TO(0.00)[f-m.fm,FreeBSD.org]; ASN(0.00)[asn:20473, ipnet:2001:19f0:7400::/38, country:US]; ARC_NA(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; BLOCKLISTDE_FAIL(0.00)[209.250.224.51:server fail,2001:19f0:7400:8808:123::1:server fail]; FROM_HAS_DN(0.00)[]; FREEFALL_USER(0.00)[jamie]; R_DKIM_NA(0.00)[]; TO_DN_NONE(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; HAS_ORG_HEADER(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-Spamd-Bar: -- X-Rspamd-Queue-Id: 4RNd934Z77z3DFb void wrote: > On Fri, Aug 11, 2023 at 12:21:33PM +0100, Jamie Landeg-Jones wrote: > > >rsync just spawns an ssh command, so would probably behave similarly. > > I'm hoping that rsync will spawn many ssh. Need to look at max sessions > on both ends of the connection. No. There are various "hacks" that use xargs or "fpart" or "parallel" to split the tree into subtrees, and run parallel, independent copies of rsync on each tree, but they are a bit hacky, and you lose efficiency if there are cross-tree hardlinks of changed files. This is also intended for multiple files, so won't help unless you split the file, and if you're going to do all that for a single file, there's no point using rsync!! > >The final result was: > > > > 100% 2000MB 43.5MB/s 00:46 (Note, that's MegaBYTES/s) > > I ran a similar test. > Sending system is on synchronous gigabit fibre on US east coast, > receiving system is near London on 110/21 fibre (so, gigabit in the sending > direction): > > 100% 2000MB 7.2MB/s 04:36 > > using rsync -azP : 2,097,152,000 100% 6.81MB/s 0:04:53 (xfr#1, to-chk=0/1) > > the speed fluctulates a lot. Both systems are quiet in a network and OS sense > for the duration of the test. I forgot something important in my original post: I *HAVE* tweaked network settings, many moons ago, and I forgot about it. I currently have both machines using the cubic congestion control rather than the default newreno. I can't remember why, or even if I tried the other methods, or even if they existed at the time, so this may be an avenue worth persuing? https://lafibre.info/images/doc/201207_TCP_Congestion_Control_Comparison.pdf man mod_cc and: SEE ALSO cc_cdg(4), cc_chd(4), cc_cubic(4), cc_dctcp(4), cc_hd(4), cc_htcp(4), cc_newreno(4), cc_vegas(4), tcp(4), mod_cc(9) Finally, have you seen "udt"? It's a reliable-data transfer method over UDP, designed to be much faster than TCP (though I don't know how it stacks up against the above mentioned alternate CC methods) /usr/ports/net/udt and https://udt.sourceforge.io/index.html The problem with udt is it isn't encrypted, so you'll need to run some encryption over that. Even if you don't use udt, it can provide a quick test to what speeds the mcahines could get under better circumstances - just install the port on both ends, and run udt-sendfile on one end and udt-recvfile on the other. > Thanks very much for your input. I'm certain it's not a freebsd problem. No worries! I hope it helps a bit. Cheers, Jamie From nobody Mon Aug 14 06:05:13 2023 X-Original-To: freebsd-hackers@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 4RPP5F11vlz4mRms; Mon, 14 Aug 2023 06:05:21 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Received: from HK2P15301CU002.outbound.protection.outlook.com (mail-eastasiaazon11020017.outbound.protection.outlook.com [52.101.128.17]) (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 4RPP5C5jsdz3TFw; Mon, 14 Aug 2023 06:05:19 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=microsoft.com header.s=selector2 header.b=FJDCVMZn; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (mx1.freebsd.org: domain of schakrabarti@microsoft.com designates 52.101.128.17 as permitted sender) smtp.mailfrom=schakrabarti@microsoft.com; dmarc=pass (policy=reject) header.from=microsoft.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HJANdxe8mRiGCPoFWQ/alueQer8vh72EUbAMlkUNMtzCkmutyedf1LU1YK24bQjbgkfdBA90Mwb8RfOG9TkT99eu4OZrLn8zqWAnV/ILVScsNipGc8R9T4OgyasVHIQunlr1vQm6bJ5NpAjmgy2uW4iM1MeC7qgoluVre4lij9fBHwMJ1I03LFKTk/tG82DKRdz17Oqs1tMGN9Lo8l7bfz+3+nN0eY5C9H6KnsgggFqjGqbaoLoayRNHZxXYRDn3Fd7ZCQeYWzfD1kBJkoyFnREpcL5B9Pl6UhPRhYSt3RAeoJJFnYRDbsOKdaRSIHltxL6Y+4JXs9NfAhHPHwEYIQ== 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=++3CPHI0CYZwfvOumGRIyaFvd9H/DlfaKk7ih8oqTEY=; b=N90sdd5IUhUOUSdI7Jo3NjFag9DhRJHdccw3itu3QuHBfIMlcZNGCSVdl7LdbUGQVveXFlgu8qB9CXxmWFmOYjOHG3hXi6/lCtkvG596wQMKO5EK7nfhVGtbYQwsRLeX0amZJ+f+wITZOiQbqoLP68RfS8fCUYbL+3hPZSaKeyqNr2H5FdSAmGNpBgOFdt0hnoOpKVK5GDo/0GQcKdc9Kj3Ib9VJQ2Y0BSIC8Oa7LcrMnOAWh8tiztTNqguKorRp4PfUftgsAkcQsrb8+uKmsbqhfJsc6nGLXVQX1dPY1eQ2ZFpRc1aflH6DUOOOJ+Cv7tzp0PJojvIh4+z7fI3XZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=++3CPHI0CYZwfvOumGRIyaFvd9H/DlfaKk7ih8oqTEY=; b=FJDCVMZnSlx8DgkL2i0X5LKJu3y7/g03b0d00mosmPYNZFeyfk9pT+laQzniPCct++iGtp85/bNfZp4cQVl64oX3S6lNL8kmT8TcYb16uoOgtL5ATfloDp95wWyB8Zk7a1KSKHWj1hPTOVulRB56GlMsZRN7IU8aQ5STgyG/Ixs= Received: from PUZP153MB0788.APCP153.PROD.OUTLOOK.COM (2603:1096:301:fc::10) by TYZP153MB0737.APCP153.PROD.OUTLOOK.COM (2603:1096:400:261::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.9; Mon, 14 Aug 2023 06:05:13 +0000 Received: from PUZP153MB0788.APCP153.PROD.OUTLOOK.COM ([fe80::abe0:95e:5348:dd5a]) by PUZP153MB0788.APCP153.PROD.OUTLOOK.COM ([fe80::abe0:95e:5348:dd5a%4]) with mapi id 15.20.6699.008; Mon, 14 Aug 2023 06:05:13 +0000 From: Souradeep Chakrabarti To: "freebsd-arm@FreeBSD.org" , "freebsd-hackers@FreeBSD.org" , "freebsd-net@FreeBSD.org" CC: Wei Hu Subject: Panic in add_route while rebooting in Azure ARM64 bug 272666 Thread-Topic: Panic in add_route while rebooting in Azure ARM64 bug 272666 Thread-Index: AdnOdUjFmvmJxBuLSVGs5MdJ4NrR9Q== Date: Mon, 14 Aug 2023 06:05:13 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=761ba4b8-aeaf-4cda-8250-2a27f1120894;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2023-08-14T05:56:59Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PUZP153MB0788:EE_|TYZP153MB0737:EE_ x-ms-office365-filtering-correlation-id: fc1d94f7-ece9-4b35-a1d9-08db9c8c6c9f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jtchdVx/5uSEySy3ceswgnS8r4kkfWQ3ctgNcwLDuwlLKmj+KAE8MVBdUiNvFtt0dBn1nAqw+8W9S2bepSvp66EjBNcn+z9RB5bP4t4CXVOy/MyNvM75FBebODAn/Fp3fxsbq5sYypZQiY0YQZqjkGCTaOwCInS0CPE7qXZNak5SaU/J20xvXcjWb/keF5HwwwMn1UQv/yOuq82WOAHVwj5LpTDiXMCnlW8Vo19Qo/bPoX1Ruu4HLPBIjTfwe2adHk5ggbZ6037WF9i50D/gi23VBR03QPSsK80vc5q48MHEKcICpn4GaCnr/OPfHRzHIZ9hmB548+t/FGiBJ6Yv4dya3Qq485tU5R80qckNGuZTYNSJ1jZkgp+QcPGOPuPdl8ll3whDI9D/RsxunW8jOLX6RX8+n2G1zJuWIbCG6nSnlmOYkgqd10Xn26hfZWew/LAghVQMy23UgNzjHAxoSKD7OK3/xMzwAH9D3DLh9p5FgLWkQZmxeze5KFRID9nZH9oqk3uwMIaAVMFgrgGUOQ8p4i+/AYiqJt2GNsHhfAPsqcDYermJpwLsewgvk6URVfwv4uG3goneWIDqkKwjJFFkgcpjgRg+st5tS4ZpMVlKP93/dBka3rwaGLQQ1Kc00xbEM3hS0qoFj3CxReBgUl8vZpOWj7Pd1wJteolJWOjUkcV8GV1ReoO7TlPyXgMH x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZP153MB0788.APCP153.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(376002)(39860400002)(366004)(136003)(186006)(451199021)(1800799006)(12101799016)(966005)(9686003)(8936002)(86362001)(55016003)(33656002)(38070700005)(122000001)(82950400001)(82960400001)(38100700002)(26005)(6506007)(2906002)(10290500003)(83380400001)(71200400001)(7696005)(478600001)(450100002)(4326008)(41300700001)(107886003)(110136005)(8676002)(316002)(66446008)(66476007)(8990500004)(5660300002)(64756008)(66946007)(66556008)(76116006)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?gNeLjKnBvnYy6zqrIZvF6CSWVPzvvZSeHMiy0Nj8noet5k6plKU86RFmMSKA?= =?us-ascii?Q?tuF9sfrqY0AgkdwvxpiOpMso28xSngeintVxY3cp1Pp83Mdh1Zf5uBO1/VxF?= =?us-ascii?Q?iKAv8Kt9wnWuSQzYXGAoJNBvF0UQ9cw+W1uHniFWWvNz13sVly/ZhhEt2SEN?= =?us-ascii?Q?AxOz5z6yw/4+I6TFsnms9FlizsGanuyxdeT3PhGN+sOqn3uHAeNIefCeAjtT?= =?us-ascii?Q?YB9U3ykRP5y1ifQmX+TrFfWDHZBkfpEoV3WlSVf56eLEYPHOVf6BHzlIsotL?= =?us-ascii?Q?rrDrItrpH/HhRO3gy3/K9VG5+r9jKMpeMiSSefctylU2eE6QTAaKxXU2qL42?= =?us-ascii?Q?qdV43lm6OPsMGKCFqa4Gb52rLeDYUHun1ySt21CsTKVGguS+DQAlEDOBCeZn?= =?us-ascii?Q?LGTvIMNn3KzneZAA6ghNesyXzestopSrNdX1zB+h3Ccnl3hEpc4lCzrTN7+S?= =?us-ascii?Q?FS2Y+dg/AIc+RYle2d904qrbS21reOmN9IStn1e95NHd3H+1tNB0ZW8+jp90?= =?us-ascii?Q?HyaysDdbPf7DDoz8VBk7siu9lCh0wYn4zGJM3cigu8KwAK5N9yFbn+HF7GQZ?= =?us-ascii?Q?xQ20nMyp9uq+4yWJ2rqMax+SX+h9ReEWXnDZlMBJbQcnZtZ39/gPaJ0vL+XD?= =?us-ascii?Q?AfotAFO+f631UIJPgk2EQwPA8haEd+Dkpppar+9btRtgnTdF+vX7LKy0Krvy?= =?us-ascii?Q?tz9sTF1tmc+5QYfFDj7WotDhPLbT6M77WK0LN4NRLzqECBm+iJ41kV0Q5IAy?= =?us-ascii?Q?vSatj4k6ObBtlnmmum8eZnKJ0Lf1tqqE9m+PDZBagwTw1NC6wlU08M2dk2+5?= =?us-ascii?Q?X0pifoNVspcH5cSPfAlo24HdSoLSBQ1iffTu9QQSkR1d/gWyE9h21k8XMdHv?= =?us-ascii?Q?uFlb85HAcq0GTUQrjpE1Xfz3HyZMHhrT69HHnbV9VOAI61HpCvfpIWqdVRgD?= =?us-ascii?Q?U7tvW6IlfEHeVyoHx1jj6u+vhNrdNrF4lUXyFfzKcvQEhRxzXv5dSrl1cUTB?= =?us-ascii?Q?5XRcza8nWCD/+BeLRonm+GAzy0TVwetzu3r58iV1kFMRBIvXdtJW6vYh9+VP?= =?us-ascii?Q?VeDFgD7BI9DcAzB1Ikx/Hfj1RvjIjxDbtgQXur9nJCzEMWvcxVFzmLuO7nfV?= =?us-ascii?Q?tbv4VGz10IaT5qU5EcPvde7401zS0Dg7bB6aJ85MqTKsGcvbw6eXQ+/C8atC?= =?us-ascii?Q?P6PGeQbIRc2laVP0AxvHIlkPJYrtKwDvBlUKTrwbckNCE5V2CUT1wFFRG9Kl?= =?us-ascii?Q?3eZEWWbySJLSguO7ZtWw0u0zy9AUIvm5ovDKFZEjjZGk/t+v2jS+KAw5Sn9W?= =?us-ascii?Q?ya4RtToXd/hD8YYRP1gGUhV6pnuI9TC7UZs+z+ZEk/naIeMLao1MWTOT8/Bc?= =?us-ascii?Q?Y18uXcE2XyIlGUFtFrg7kA8dCSAgEssjYHN1QJitU5AuLOdpgomGZWndJGHs?= =?us-ascii?Q?QSOqQdmTtklIAIZiEvA+cyIe7AwJRz2sQVzijeEXQG1ftIup/ulGnKvoXfCN?= =?us-ascii?Q?wN5Q5QlfeiftRFXO3Igs70kliyiMsznODTYC?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PUZP153MB0788.APCP153.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: fc1d94f7-ece9-4b35-a1d9-08db9c8c6c9f X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Aug 2023 06:05:13.4726 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KlJjWYIKjiGD3JQn8fUTiAgesJy0vIO6sKTdZLGKdq1iGlOnWtzLxbCv67tbSBgTHJtkJdrfccPoH2R43RWFQOBkWRqZTtoTdHy8GhitqkQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZP153MB0737 X-Spamd-Result: default: False [-9.00 / 15.00]; WHITELIST_SPF_DKIM(-3.00)[microsoft.com:d:+,microsoft.com:s:+]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; DWL_DNSWL_LOW(-1.00)[microsoft.com:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[microsoft.com,reject]; R_SPF_ALLOW(-0.20)[+ip4:52.100.0.0/14]; R_DKIM_ALLOW(-0.20)[microsoft.com:s=selector2]; MIME_GOOD(-0.10)[text/plain]; MLMMJ_DEST(0.00)[freebsd-arm@FreeBSD.org,freebsd-hackers@freebsd.org,freebsd-net@FreeBSD.org]; ASN(0.00)[asn:8075, ipnet:52.96.0.0/12, country:US]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[microsoft.com:+]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[52.101.128.17:from]; RCPT_COUNT_THREE(0.00)[4]; RCVD_COUNT_TWO(0.00)[2]; TO_DN_SOME(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[] X-Spamd-Bar: -------- X-Rspamd-Queue-Id: 4RPP5C5jsdz3TFw Hi, We are working on bringing FreeBSD on Azure ARM64. Now with recently releas= ed FreeBSD arm64 preview image in Azure, when doing reboot from serial console, FreeBSD is going into panic w= hile coming up. It is happening almost every 2nd, or=20 3rd attempt. The below is the panic. LF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib /usr/local/l= ib/compat/pkg /usr/local/lib/compat/pkg lo0: link state changed to UP Kernel page fault with the following non-sleepable locks held: exclusive rm rib head lock (rib head lock) r =3D 0 (0xffffa000012278e0) loc= ked @ /usr/src/sys/net/route/route_ctl.c:797 stack backtrace: #0 0xffff0000004d2af4 at witness_debugger+0x5c #1 0xffff0000004d3cf8 at witness_warn+0x400 #2 0xffff0000007f7310 at data_abort+0xa0 #3 0xffff0000007d3014 at handle_el1h_sync+0x14 x0: 0x0000000000000001 x1: 0x0000000000000100 x2: 0xffffa00001ae7000 x3: 0xffff00004031af40 ($d.2 + 0x3efee96f) x4: 0x0000000000000100 x5: 0x0000000000000000 x6: 0x000000000000003f x7: 0x0000000000000000 x8: 0xffff000132c76c40 x9: 0x0000000000000000 x10: 0x0000000000000008 x11: 0x0000000000000000 x12: 0x000000000000003e x13: 0xffffa00001ae70fc x14: 0x0000000000000000 x15: 0x0000000000000001 x16: 0x0000000000010000 x17: 0x0000000000000005 x18: 0xffff00012d2f7e60 x19: 0xffff00012d2f8080 x20: 0xffffa00001227800 x21: 0x0000000000000000 x22: 0xdeadc0dedeadc0de x23: 0xffffa000012278e0 x24: 0xffffa00001227800 x25: 0xffffa0000c93ba00 x26: 0xffff000000960582 (digits + 0x12fbf) x27: 0xffffa0000c9338f0 x28: 0x0000000000000000 x29: 0xffff00012d2f7e60 sp: 0xffff00012d2f7e60 lr: 0xffff0000005bf63c (rib_notify + 0x50) elr: 0xffffa0000c93bb00 spsr: 0x0000000060400045 far: 0xffffa0000c93bb00 esr: 0x000000008600000e panic: data abort in critical section or under mutex cpuid =3D 3 time =3D 1690047394 KDB: stack backtrace: db_trace_self() at db_trace_self db_trace_self_wrapper() at db_trace_self_wrapper+0x30 vpanic() at vpanic+0x13c panic() at panic+0x44 data_abort() at data_abort+0x30c handle_el1h_sync() at handle_el1h_sync+0x14 --- exception, esr 0x8600000e (null)() at 0xffffa0000c93bb00 add_route() at add_route+0xc4 add_route_flags() at add_route_flags+0x1b0 rib_add_route() at rib_add_route+0x324 ifa_maintain_loopback_route() at ifa_maintain_loopback_route+0xf4 in6_update_ifa() at in6_update_ifa+0x994 in6_ifattach() at in6_ifattach+0x1bc in6_if_up() at in6_if_up+0x90 if_up() at if_up+0xd8 ifhwioctl() at ifhwioctl+0xb7c ifioctl() at ifioctl+0x860 kern_ioctl() at kern_ioctl+0x2dc sys_ioctl() at sys_ioctl+0x118 do_el0_sync() at do_el0_sync+0x520 handle_el0_sync() at handle_el0_sync+0x44 --- exception, esr 0x56000000 It is happening for loopback interface IPv6 address.=20 A bug has been opened for the same https://bugs.freebsd.org/bugzilla/show_b= ug.cgi?id=3D272666 Can someone please help me here, to debug this issue. This is a blocker for FreeBSD on Azure ARM64. Thanks Souradeep=20 From nobody Tue Aug 15 01:24:42 2023 X-Original-To: freebsd-hackers@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 4RPtqF6x1kz4qBB6 for ; Tue, 15 Aug 2023 01:24:57 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "m5p.com", Issuer "R3" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RPtqD6Rzcz3PRc for ; Tue, 15 Aug 2023 01:24:56 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=pass (mx1.freebsd.org: domain of george+freebsd@m5p.com designates 74.104.188.4 as permitted sender) smtp.mailfrom=george+freebsd@m5p.com; dmarc=none Received: from [IPV6:2001:470:1f07:15ff::26] (court.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:26]) (authenticated bits=0) by mailhost.m5p.com (8.16.1/8.15.2) with ESMTPSA id 37F1OgKW051098 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO) for ; Mon, 14 Aug 2023 21:24:48 -0400 (EDT) (envelope-from george+freebsd@m5p.com) Message-ID: <0844b515-5a87-fcaf-0dd4-3689611fa74c@m5p.com> Date: Mon, 14 Aug 2023 21:24:42 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Content-Language: en-US To: FreeBSD Hackers From: George Mitchell Subject: Source upgrade releng/13.1 to releng/13.2 with gitup Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.0 required=10.0 tests=HELO_NO_DOMAIN autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mattapan.m5p.com X-Spamd-Result: default: False [-2.94 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-0.996]; NEURAL_HAM_SHORT(-0.64)[-0.641]; R_SPF_ALLOW(-0.20)[+a]; MIME_GOOD(-0.10)[text/plain]; TO_DN_ALL(0.00)[]; R_DKIM_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@FreeBSD.org]; ASN(0.00)[asn:701, ipnet:74.104.0.0/16, country:US]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; TAGGED_FROM(0.00)[freebsd]; FROM_HAS_DN(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DMARC_NA(0.00)[m5p.com]; RCVD_TLS_ALL(0.00)[] X-Spamd-Bar: -- X-Rspamd-Queue-Id: 4RPtqD6Rzcz3PRc So I'm going to update my /usr/src tree and make buildworld etc., etc., but as a gitup user do I just change "releng/13.1" to "releng/13.2" in my /usr/local/etc/gitup.conf and then "gitup release"? -- George From nobody Tue Aug 15 02:16:06 2023 X-Original-To: freebsd-hackers@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 4RPvyN3CXZz4qG1k for ; Tue, 15 Aug 2023 02:16:12 +0000 (UTC) (envelope-from grahamperrin@gmail.com) Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RPvyL4rxGz3VHZ for ; Tue, 15 Aug 2023 02:16:10 +0000 (UTC) (envelope-from grahamperrin@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20221208 header.b="BO/mHjw3"; spf=pass (mx1.freebsd.org: domain of grahamperrin@gmail.com designates 2a00:1450:4864:20::636 as permitted sender) smtp.mailfrom=grahamperrin@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-99bc512526cso652783166b.1 for ; Mon, 14 Aug 2023 19:16:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692065768; x=1692670568; h=in-reply-to:subject:from:content-language:references:to:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=p+HmznX9saysDrbMNUJYBHorGzBHo/7Me98LaH/vbJA=; b=BO/mHjw3Co1dIXDcNtR4WpdM0q8uDDjxoaEsXI+QgeCGMH9YqkXVdOcdH4wu3FdhBj g4fRykSf7dY/KGzYvpt5SFZbXyhm9HBi1gDK3DUheqfH8FWJ/ByvBrQg8Q/SAcjdkdAI no3vjHW13NO9ABmxy/9fOInRBdw3Nnex0lCT2Pe1HFy+upRwLjJB7NadttYc0BFZO9/i QPSLQmC3w7tj4dzqp9OBN9jB5TtPNLmn0KM6JIOTZuAzMcJKyEo/Wxe2FswoTBmWrWkq VlgmHshqrjxO6EHz9uqvf24562JYREaJuv6D0mYqlMV+tIjqW5IQm+oVvkgVIm0OXANw BQmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692065768; x=1692670568; h=in-reply-to:subject:from:content-language:references:to:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=p+HmznX9saysDrbMNUJYBHorGzBHo/7Me98LaH/vbJA=; b=bGB0ukICg9MLfaP9nHqd0BuV9dBYN9+Qfdfwbn2WSkozFD4P4Fvm48U95a623b+Z51 zExLOnaada/FGOQARE8LVubfIVIQW6ktEMduRn4aJHpMm2aZ0B5GZoU6+RNymO6bgqLF ZsKD8GGaz86yxhaY5eaQ0lsiToU73JPTN9lzzvnSR4FBQrQPDdtT6HD/GJrd2gRzpdzx mKifcHTi2oIj6k23MTMEW/RHQdC/rSi62o3zWgfFkDMmwNw76pikx+6u2zO8roPxcaYR Jmdet147hfLbmGZhUabyyjpr67p83jf8T5qyh82e1al34MFs9cOyCOGdJxGaIlpng+sy yTmA== X-Gm-Message-State: AOJu0Yxbe5YhfUQJjV+2mjr+kPHw69nIUHRaTvXJp/C42HxqAMhxpXoW QLGr70Zq51pa1mpsAXYfC9y82YH8PCI= X-Google-Smtp-Source: AGHT+IGba4LWmh+StKETrYbPmoC1ctbleZequD8x/I5QyMx03vsr9TKC7Vovq+zmhIl8b8KtjFSx3A== X-Received: by 2002:a17:907:2ceb:b0:99c:40f2:a402 with SMTP id hz11-20020a1709072ceb00b0099c40f2a402mr9119594ejc.6.1692065767676; Mon, 14 Aug 2023 19:16:07 -0700 (PDT) Received: from [192.168.1.10] (80-42-66-93.dynamic.dsl.as9105.com. [80.42.66.93]) by smtp.gmail.com with ESMTPSA id b15-20020a170906490f00b0099c971ba285sm6330605ejq.5.2023.08.14.19.16.06 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 14 Aug 2023 19:16:06 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------FJOlwsUVk409oENrZz48LlfX" Message-ID: <4da3a6ce-88ae-4f57-1d92-70cfcb0510e1@gmail.com> Date: Tue, 15 Aug 2023 03:16:06 +0100 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 To: freebsd-hackers@freebsd.org References: <0844b515-5a87-fcaf-0dd4-3689611fa74c@m5p.com> Content-Language: en-US From: Graham Perrin Subject: Re: Source upgrade releng/13.1 to releng/13.2 with gitup In-Reply-To: <0844b515-5a87-fcaf-0dd4-3689611fa74c@m5p.com> X-Spamd-Result: default: False [-3.00 / 15.00]; URI_COUNT_ODD(1.00)[3]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20221208]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; FROM_HAS_DN(0.00)[]; FREEFALL_USER(0.00)[grahamperrin]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::636:from]; ARC_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; DKIM_TRACE(0.00)[gmail.com:+]; TO_DN_NONE(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; FREEMAIL_ENVFROM(0.00)[gmail.com]; RCVD_COUNT_TWO(0.00)[2] X-Spamd-Bar: -- X-Rspamd-Queue-Id: 4RPvyL4rxGz3VHZ This is a multi-part message in MIME format. --------------FJOlwsUVk409oENrZz48LlfX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 15/08/2023 02:24, George Mitchell wrote: > So I'm going to update my /usr/src tree and make buildworld etc., etc., > but as a gitup user do I just change "releng/13.1" to "releng/13.2" in > my /usr/local/etc/gitup.conf and then "gitup release"?       -- George If your .conf file is outdated: yes, change the one line. For a fresh installation: you should find that the file is correct. --------------FJOlwsUVk409oENrZz48LlfX Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
On 15/08/2023 02:24, George Mitchell wrote:
So I'm going to update my /usr/src tree and make buildworld etc., etc.,
but as a gitup user do I just change "releng/13.1" to "releng/13.2" in
my /usr/local/etc/gitup.conf and then "gitup release"?       -- George

If your .conf file is outdated: yes, change the one line.

For a fresh installation: you should find that the file is correct.
<https://github.com/johnmehr/gitup/issues/91#issuecomment-1574899986>

--------------FJOlwsUVk409oENrZz48LlfX-- From nobody Sat Aug 19 22:03:38 2023 X-Original-To: freebsd-hackers@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 4RSt6y3sY8z4qGjr for ; Sat, 19 Aug 2023 22:03:54 +0000 (UTC) (envelope-from david@crossfamilyweb.com) Received: from mail.dcrosstech.com (rrcs-24-97-5-251.nys.biz.rr.com [24.97.5.251]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail.dcrosstech.com", Issuer "DCrossTech.com LLC CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RSt6x0zcCz3Qmn for ; Sat, 19 Aug 2023 22:03:53 +0000 (UTC) (envelope-from david@crossfamilyweb.com) Authentication-Results: mx1.freebsd.org; dkim=none; spf=pass (mx1.freebsd.org: domain of david@crossfamilyweb.com designates 24.97.5.251 as permitted sender) smtp.mailfrom=david@crossfamilyweb.com; dmarc=none X-Virus-Scanned: amavisd-new at dcrosstech.com Received: from [10.1.7.155] (d155.p9.wifi.dcrosstech.com [10.1.7.155]) (authenticated bits=0) by mail.dcrosstech.com (8.15.2/8.15.2) with ESMTPSA id 37JM3c1b044051 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO) for ; Sat, 19 Aug 2023 22:03:39 GMT (envelope-from david@crossfamilyweb.com) X-Authentication-Warning: mail.priv.dcrosstech.com: Host d155.p9.wifi.dcrosstech.com [10.1.7.155] claimed to be [10.1.7.155] Content-Type: multipart/mixed; boundary="------------7ulGrikZoqg5HlrZ0BE7ZO0t" Message-ID: <74a1eb5e-64a5-f8e7-c44e-55188539643a@crossfamilyweb.com> Date: Sat, 19 Aug 2023 18:03:38 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: FreeBSD Hackers From: "David E. Cross" Subject: crypt(3) style password support for lua-loader X-Spamd-Result: default: False [-2.05 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_BASE64_TEXT_BOGUS(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.95)[-0.953]; R_SPF_ALLOW(-0.20)[+mx]; MIME_BASE64_TEXT(0.10)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain,text/x-patch]; ONCE_RECEIVED(0.10)[]; FROM_HAS_DN(0.00)[]; FREEFALL_USER(0.00)[david]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; DMARC_NA(0.00)[crossfamilyweb.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:11351, ipnet:24.97.0.0/16, country:US]; TO_DN_ALL(0.00)[]; HAS_XAW(0.00)[]; HAS_ATTACHMENT(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; R_DKIM_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; RCVD_TLS_ALL(0.00)[] X-Spamd-Bar: -- X-Rspamd-Queue-Id: 4RSt6x0zcCz3Qmn This is a multi-part message in MIME format. --------------7ulGrikZoqg5HlrZ0BE7ZO0t Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit I sent this earlier from the wrong account and either -hackers bounced it, or -hackers is down, apologies if you get a dupe on this, but I also included a reviews.freebsd.org link this time) Something that has always bothered me is the if you enable boot passwords with loader(8) they are stored *plaintext* in the loader.conf, so you need to make sure that file is root-only access and is just poor security in general. Well, I decided to fix that.  See attached, also at: https://reviews.freebsd.org/D41509 It is lua only, I evaluated doing a forth version to maintain parity with forth-loader, but that exceeds my available time at this point and I'd rather get this out there. Includes loader.conf.5 documentation update.  This is tested and working in boot environment.  (... why doesn't lua-loader have math.*?); additionally crypt.lua has commented-out test suite and validates against all crypt-sha256.c and crypt-sha512.c test vectors. The only real gotcha with this is that crypt(3) style passwords use '$' in them and that must be escaped in loader.conf(5).  I debated switching this to ! or another character but decided to stick with $ as no matter what you will need to edit between strict crypt(3) format and what is placed in the config file, and this makes testing easier if the formats are the strictly identical.  That is even if I changed it to not need escaping, you'd still need to edit it anyway, so if you still have to edit, might as well keep the underlying format the same. This gotcha is documented in the updated loader.conf(5) Thanks. --------------7ulGrikZoqg5HlrZ0BE7ZO0t Content-Type: text/x-patch; charset=UTF-8; name="luahash.diff" Content-Disposition: attachment; filename="luahash.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3N0YW5kL2RlZmF1bHRzL2xvYWRlci5jb25mLjUgYi9zdGFuZC9kZWZh dWx0cy9sb2FkZXIuY29uZi41CmluZGV4IDIzYTY1OTM1Yzk1Li5kZGQzMjdhOTM5ZCAxMDA2 NDQKLS0tIGEvc3RhbmQvZGVmYXVsdHMvbG9hZGVyLmNvbmYuNQorKysgYi9zdGFuZC9kZWZh dWx0cy9sb2FkZXIuY29uZi41CkBAIC0xNzgsNyArMTc4LDE1IEBAIGlzIGRhbWFnZWQsIGxv c3QsIG9yIHJlYWQgZnJvbSB0aGUgd3JvbmcgcGFydGl0aW9uLgogUHJvdGVjdCBib290IG1l bnUgd2l0aCBhIHBhc3N3b3JkIHdpdGhvdXQgaW50ZXJydXB0aW5nCiAuSWMgYXV0b2Jvb3QK IHByb2Nlc3MuCi1UaGUgcGFzc3dvcmQgc2hvdWxkIGJlIGluIGNsZWFyIHRleHQgZm9ybWF0 LgorVGhlIHBhc3N3b3JkIG1heSBiZSBpbiBjbGVhciB0ZXh0IGZvcm1hdCBvciB0aGUKK2x1 YS1sb2FkZXIgYWRkaXRpb25hbGx5IHN1cHBvcnRzCisuWHIgY3J5cHQgMworZm9ybWF0IHdp dGggYWxnb3JpdGhtcyA1IChTSEEtMjU2KSBvciA2IChTSEEtNTEyKS4gIFdoZW4gdXNpbmcK Ky5YciBjcnlwdCAzCitmb3JtYXQgcGFzc3dvcmRzIHJlbWVtYmVyIHRvIGVzY2FwZSBhbnkK Ky5EcSBMaSBcW0RvXQord2l0aAorLkRxIExpIFxlIC4KIElmIGEgcGFzc3dvcmQgaXMgc2V0 LCBib290IG1lbnUgd2lsbCBub3QgYXBwZWFyIHVudGlsIGFueSBrZXkgaXMgcHJlc3NlZCBk dXJpbmcKIGNvdW50ZG93biBwZXJpb2Qgc3BlY2lmaWVkIGJ5CiAuVmEgYXV0b2Jvb3RfZGVs YXkKQEAgLTE5MCw3ICsxOTgsMTUgQEAgbWVudS4KIC5JdCBBciBib290bG9ja19wYXNzd29y ZAogUHJvdmlkZXMgYSBwYXNzd29yZCB0byBiZSByZXF1aXJlZCBieSBjaGVjay1wYXNzd29y ZCBiZWZvcmUgZXhlY3V0aW9uIGlzCiBhbGxvd2VkIHRvIGNvbnRpbnVlLgotVGhlIHBhc3N3 b3JkIHNob3VsZCBiZSBpbiBjbGVhciB0ZXh0IGZvcm1hdC4KK1RoZSBwYXNzd29yZCBtYXkg YmUgaW4gY2xlYXIgdGV4dCBmb3JtYXQgb3IgdGhlCitsdWEtbG9hZGVyIGFkZGl0aW9uYWxs eSBzdXBwb3J0cworLlhyIGNyeXB0IDMKK2Zvcm1hdCB3aXRoIGFsZ29yaXRobXMgNSAoU0hB LTI1Nikgb3IgNiAoU0hBLTUxMikuICBXaGVuIHVzaW5nCisuWHIgY3J5cHQgMworZm9ybWF0 IHBhc3N3b3JkcyByZW1lbWJlciB0byBlc2NhcGUgYW55CisuRHEgTGkgXFtEb10KK3dpdGgK Ky5EcSBMaSBcZSAuCiBJZiBhIHBhc3N3b3JkIGlzIHNldCwgdGhlIHVzZXIgbXVzdCBwcm92 aWRlIHNwZWNpZmllZCBwYXNzd29yZCB0byBib290LgogLkl0IEFyIHZlcmJvc2VfbG9hZGlu ZwogSWYgc2V0IHRvCmRpZmYgLS1naXQgYS9zdGFuZC9sdWEvTWFrZWZpbGUgYi9zdGFuZC9s dWEvTWFrZWZpbGUKaW5kZXggZmU2ZmQ2ZjYzYzguLmMyMjI1NGVlZTIxIDEwMDY0NAotLS0g YS9zdGFuZC9sdWEvTWFrZWZpbGUKKysrIGIvc3RhbmQvbHVhL01ha2VmaWxlCkBAIC0xNyw3 ICsxNyw5IEBAIEZJTEVTPQljbGkubHVhIFwKIAljb2xvci5sdWEgXAogCWNvbmZpZy5sdWEg XAogCWNvcmUubHVhIFwKKwljcnlwdC5sdWEgXAogCWRyYXdlci5sdWEgXAorCWhhc2hlcy5s dWEgXAogCWhvb2subHVhIFwKIAlsb2FkZXIubHVhIFwKIAlnZngtYmVhc3RpZS5sdWEgXApk aWZmIC0tZ2l0IGEvc3RhbmQvbHVhL2NyeXB0Lmx1YSBiL3N0YW5kL2x1YS9jcnlwdC5sdWEK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlODIyZGZiNTgxCi0t LSAvZGV2L251bGwKKysrIGIvc3RhbmQvbHVhL2NyeXB0Lmx1YQpAQCAtMCwwICsxLDMyNiBA QAorbG9jYWwgaGFzaGVzID0gcmVxdWlyZSgiaGFzaGVzIikKKworbG9jYWwgdGNwc2VyPSIk NiQycGJjeVJrZ2c4TXZKLks4JGI3UDRKb2RaZ3hleldCSUUxeGlVUFk5YS8vOU5PcFRmR1dx RExhMVdkMzdrY1pyUU4vczBoUC90SS5kUzJFL0V0dzd4RVRLNVRtVTlJUzlsa01vZGYxIgor Citsb2NhbCBiNjRfYWxwaGFiZXQgPSB7Jy4nLCAnLycsICcwJywgJzEnLCAnMicsICczJywg JzQnLCAnNScsICc2JywgJzcnLCAnOCcsCisJCSc5JywgJ0EnLCAnQicsICdDJywgJ0QnLCAn RScsICdGJywgJ0cnLCAnSCcsICdJJywgJ0onLCAnSycsCisJCSdMJywgJ00nLCAnTicsICdP JywgJ1AnLCAnUScsICdSJywgJ1MnLCAnVCcsICdVJywgJ1YnLCAnVycsCisJCSdYJywgJ1kn LCAnWicsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsICdnJywgJ2gnLCAnaScsCisJ CSdqJywgJ2snLCAnbCcsICdtJywgJ24nLCAnbycsICdwJywgJ3EnLCAncicsICdzJywgJ3Qn LCAndScsCisJCSd2JywgJ3cnLCAneCcsICd5JywgJ3onfQorCitsb2NhbCBzaGFYX3JvdW5k c19wcmVmaXggPSAicm91bmRzPSIKK2xvY2FsIHNoYVhfcm91bmRzX2RlZmF1bHQgPSA1MDAw Citsb2NhbCBzaGFYX3JvdW5kc19taW4gPSAxMDAwCitsb2NhbCBzaGFYX3JvdW5kc19tYXgg PSA5OTk5OTk5OTkKK2xvY2FsIHNoYVhfc2FsdF9tYXggPSAxNgorCitsb2NhbCBmdW5jdGlv biBiNjRfZnJvbV8yNGJpdChiMiwgYjEsIGIwLCBuKQorCWxvY2FsIHcgPSAoKGIyICYgMHhm ZikgPDwgMTYpIHwgKChiMSAmIDB4ZmYpIDw8IDgpIHwgKGIwICYgMHhmZikKKwlsb2NhbCBz ID0gIiIKKwlmb3IgaSA9IDEsIG4gZG8KKwkJcyA9IHMgLi4gYjY0X2FscGhhYmV0WyAodyAm IDB4M2YpICsgMV0KKwkJdyA9IHcgPj4gNgorCWVuZAorCXJldHVybiBzCitlbmQKKworbG9j YWwgZnVuY3Rpb24gbWluKGEsIGIpCisJaWYgYSA8IGIgdGhlbgorCQlyZXR1cm4gYQorCWVu ZAorCXJldHVybiBiCitlbmQKKworbG9jYWwgZnVuY3Rpb24gbWF4KGEsIGIpCisJaWYgYSA+ IGIgdGhlbgorCQlyZXR1cm4gYQorCWVuZAorCXJldHVybiBiCitlbmQKKworbG9jYWwgY3J5 cHQgPSB7fQorCitmdW5jdGlvbiBjcnlwdC5zaGEyNTYoc2FsdGhhc2gsIHBhc3N3b3JkKQor CWxvY2FsIHJvdW5kcyA9IHNoYVhfcm91bmRzX2RlZmF1bHQKKwlsb2NhbCBjdXN0b21fcm91 bmRzPWZhbHNlCisKKwlpZiBzdHJpbmcuc3ViKHNhbHRoYXNoLCAxLCAjc2hhWF9yb3VuZHNf cHJlZml4KSA9PSBzaGFYX3JvdW5kc19wcmVmaXggdGhlbgorCQlsb2NhbCBlbmRfcm91bmRz ID0gc3RyaW5nLmZpbmQoc2FsdGhhc2gsICIlJCIpCisJCWlmIGVuZF9yb3VuZHMgfj0gbmls IHRoZW4KKwkJCWxvY2FsIG5ld19yb3VuZHMgPSB0b251bWJlcihzdHJpbmcuc3ViKHNhbHRo YXNoLCAjc2hhWF9yb3VuZHNfcHJlZml4ICsgMSwgZW5kX3JvdW5kcyAtIDEpKQorCQkJaWYg bmV3X3JvdW5kcyB+PSBuaWwgdGhlbgorCQkJCXJvdW5kcyA9IG1heChzaGFYX3JvdW5kc19t aW4sIG1pbihuZXdfcm91bmRzLCBzaGFYX3JvdW5kc19tYXgpKTsKKwkJCQljdXN0b21fcm91 bmRzPXRydWUKKwkJCQlzYWx0aGFzaCA9IHN0cmluZy5zdWIoc2FsdGhhc2gsIGVuZF9yb3Vu ZHMgKyAxKQorCQkJZW5kCisJCWVuZAorCWVuZAorCWxvY2FsIHNhbHRzcGxpdCA9IHN0cmlu Zy5maW5kKHNhbHRoYXNoLCAnJSQnKQorCWlmIHNhbHRzcGxpdCA9PSBuaWwgdGhlbgorCQlz YWx0c3BsaXQgPSAjc2FsdGhhc2grMQorCWVuZAorCWlmIHNhbHRzcGxpdCA+IChzaGFYX3Nh bHRfbWF4ICsgMSkgdGhlbgorCQlzYWx0c3BsaXQgPSBzaGFYX3NhbHRfbWF4ICsgMQorCWVu ZAorCWxvY2FsIHNhbHQgPSBzdHJpbmcuc3ViKHNhbHRoYXNoLCAxLCBzYWx0c3BsaXQtMSkK KworCWxvY2FsIHNoYTI1NiA9IGhhc2hlcy5zaGEyNTYoKQorCXNoYTI1NihwYXNzd29yZCkK KwlzaGEyNTYoc2FsdCkKKworCWxvY2FsIHNoYTI1Nl9hbHQgPSBoYXNoZXMuc2hhMjU2KCkK KwlzaGEyNTZfYWx0KHBhc3N3b3JkKQorCXNoYTI1Nl9hbHQoc2FsdCkKKwlzaGEyNTZfYWx0 KHBhc3N3b3JkKQorCisJbG9jYWwgYWx0X3Jlc3VsdCA9IHNoYTI1Nl9hbHQoKQorCS0tIGZv ciBlYWNoIGNoYXJhY3RlciBvZiB0aGUgcGFzc3dvcmQsIGFkZCBhbHRfcmVzdWx0ICh3cmFw cGluZyBhcyBuZWVkZWQpCisJZm9yIGNudCA9ICNwYXNzd29yZCwgMzMsIC0zMiBkbworCQlz aGEyNTYoYWx0X3Jlc3VsdCkKKwllbmQKKwlzaGEyNTYoc3RyaW5nLnN1YihhbHRfcmVzdWx0 LCAxLCAjcGFzc3dvcmQgJSAzMikpCisKKwlsb2NhbCBjb3VudCA9ICNwYXNzd29yZAorCXdo aWxlIGNvdW50ID4gMCBkbworCQlpZiAoY291bnQgJiAxKSB+PTAgdGhlbgorCQkJc2hhMjU2 KGFsdF9yZXN1bHQpCisJCWVsc2UKKwkJCXNoYTI1NihwYXNzd29yZCkKKwkJZW5kCisJCWNv dW50ID0gY291bnQgPj4gMQorCWVuZAorCisJYWx0X3Jlc3VsdD1zaGEyNTYoKQorCisJLS0g UCBzZXF1ZW5jZQorCXNoYTI1NiA9IGhhc2hlcy5zaGEyNTYoKQorCWZvciBjbnQ9MSwjcGFz c3dvcmQgZG8KKwkJc2hhMjU2KHBhc3N3b3JkKQorCWVuZAorCWxvY2FsIHRlbXBfcmVzdWx0 ID0gc2hhMjU2KCkKKwlsb2NhbCBwX2J5dGVzID0gIiIKKworCXdoaWxlICNwX2J5dGVzIH49 ICNwYXNzd29yZCBkbworCQlwX2J5dGVzID0gcF9ieXRlcyAuLiBzdHJpbmcuc3ViKHRlbXBf cmVzdWx0LCAxLAorCQkJbWluKCN0ZW1wX3Jlc3VsdCwgI3Bhc3N3b3JkLSNwX2J5dGVzKSkK KwllbmQKKworCS0tIFMgc2VxdWVuY2UKKwlzaGEyNTYgPSBoYXNoZXMuc2hhMjU2KCkKKwlm b3IgY250PTEsIDE2ICsgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMSkgZG8KKwkJc2hhMjU2 KHNhbHQpCisJZW5kCisJdGVtcF9yZXN1bHQgPSBzaGEyNTYoKQorCisJbG9jYWwgc19ieXRl cyA9ICIiCisJd2hpbGUgI3NfYnl0ZXMgfj0gI3NhbHQgZG8KKwkJc19ieXRlcyA9IHNfYnl0 ZXMgLi4gc3RyaW5nLnN1Yih0ZW1wX3Jlc3VsdCwgMSwKKwkJCW1pbigjdGVtcF9yZXN1bHQs ICNzYWx0IC0gI3NfYnl0ZXMpKQorCWVuZAorCisJZm9yIGNudD0wLCByb3VuZHMtMSBkbwor CQlzaGEyNTYgPSBoYXNoZXMuc2hhMjU2KCkKKwkJaWYgKGNudCAmIDEpIH49IDAgdGhlbgor CQkJc2hhMjU2KHBfYnl0ZXMpCisJCWVsc2UKKwkJCXNoYTI1NihhbHRfcmVzdWx0KQorCQll bmQKKwkJaWYgKGNudCAlIDMpIH49IDAgdGhlbgorCQkJc2hhMjU2KHNfYnl0ZXMpCisJCWVu ZAorCQlpZiAoY250ICUgNykgfj0gMCB0aGVuCisJCQlzaGEyNTYocF9ieXRlcykKKwkJZW5k CisJCWlmIChjbnQgJiAxKSB+PSAwIHRoZW4KKwkJCXNoYTI1NihhbHRfcmVzdWx0KQorCQll bHNlCisJCQlzaGEyNTYocF9ieXRlcykKKwkJZW5kCisJCWFsdF9yZXN1bHQgPSBzaGEyNTYo KQorCWVuZAorCWxvY2FsIHMgPSAiJDUkIgorCWlmIGN1c3RvbV9yb3VuZHMgdGhlbgorCQlz ID0gcyAuLiAicm91bmRzPSIgLi4gcm91bmRzIC4uICIkIgorCWVuZAorCisJcyA9IHMgLi4g c2FsdCAuLiAiJCIKKwlzID0gcyAuLiBiNjRfZnJvbV8yNGJpdChzdHJpbmcuYnl0ZShhbHRf cmVzdWx0LCAxKSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMTEpLCBzdHJpbmcuYnl0ZShh bHRfcmVzdWx0LCAyMSksIDQpOworCXMgPSBzIC4uIGI2NF9mcm9tXzI0Yml0KHN0cmluZy5i eXRlKGFsdF9yZXN1bHQsIDIyKSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMiksIHN0cmlu Zy5ieXRlKGFsdF9yZXN1bHQsIDEyKSwgNCk7CisJcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQo c3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMTMpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAy MyksIHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDMpLCA0KTsKKwlzID0gcyAuLiBiNjRfZnJv bV8yNGJpdChzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA0KSwgc3RyaW5nLmJ5dGUoYWx0X3Jl c3VsdCwgMTQpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAyNCksIDQpOworCXMgPSBzIC4u IGI2NF9mcm9tXzI0Yml0KHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDI1KSwgc3RyaW5nLmJ5 dGUoYWx0X3Jlc3VsdCwgNSksIHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDE1KSwgNCk7CisJ cyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMTYpLCBz dHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAyNiksIHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDYp LCA0KTsKKwlzID0gcyAuLiBiNjRfZnJvbV8yNGJpdChzdHJpbmcuYnl0ZShhbHRfcmVzdWx0 LCA3KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMTcpLCBzdHJpbmcuYnl0ZShhbHRfcmVz dWx0LCAyNyksIDQpOworCXMgPSBzIC4uIGI2NF9mcm9tXzI0Yml0KHN0cmluZy5ieXRlKGFs dF9yZXN1bHQsIDI4KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgOCksIHN0cmluZy5ieXRl KGFsdF9yZXN1bHQsIDE4KSwgNCk7CisJcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5n LmJ5dGUoYWx0X3Jlc3VsdCwgMTkpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAyOSksIHN0 cmluZy5ieXRlKGFsdF9yZXN1bHQsIDkpLCA0KTsKKwlzID0gcyAuLiBiNjRfZnJvbV8yNGJp dChzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAxMCksIHN0cmluZy5ieXRlKGFsdF9yZXN1bHQs IDIwKSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMzApLCA0KTsKKwlzID0gcyAuLiBiNjRf ZnJvbV8yNGJpdCgwLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAzMiksIHN0cmluZy5ieXRl KGFsdF9yZXN1bHQsIDMxKSwgMyk7CisKKwlyZXR1cm4gcworZW5kCisKK2Z1bmN0aW9uIGNy eXB0LnNoYTUxMihzYWx0aGFzaCwgcGFzc3dvcmQpCisJbG9jYWwgcm91bmRzID0gc2hhWF9y b3VuZHNfZGVmYXVsdAorCWxvY2FsIGN1c3RvbV9yb3VuZHM9ZmFsc2UKKwlpZiBzdHJpbmcu c3ViKHNhbHRoYXNoLCAxLCAjc2hhWF9yb3VuZHNfcHJlZml4KSA9PSBzaGFYX3JvdW5kc19w cmVmaXggdGhlbgorCQlsb2NhbCBlbmRfcm91bmRzID0gc3RyaW5nLmZpbmQoc2FsdGhhc2gs ICIlJCIpCisJCWlmIGVuZF9yb3VuZHMgfj0gbmlsIHRoZW4KKwkJCWxvY2FsIG5ld19yb3Vu ZHMgPSB0b251bWJlcihzdHJpbmcuc3ViKHNhbHRoYXNoLCAjc2hhWF9yb3VuZHNfcHJlZml4 ICsgMSwgZW5kX3JvdW5kcyAtIDEpKQorCQkJaWYgbmV3X3JvdW5kcyB+PSBuaWwgdGhlbgor CQkJCXJvdW5kcyA9IG1heChzaGFYX3JvdW5kc19taW4sIG1pbihuZXdfcm91bmRzLCBzaGFY X3JvdW5kc19tYXgpKTsKKwkJCQljdXN0b21fcm91bmRzPXRydWUKKwkJCQlzYWx0aGFzaCA9 IHN0cmluZy5zdWIoc2FsdGhhc2gsIGVuZF9yb3VuZHMgKyAxKQorCQkJZW5kCisJCWVuZAor CWVuZAorCWxvY2FsIHNhbHRzcGxpdCA9IHN0cmluZy5maW5kKHNhbHRoYXNoLCAnJSQnKQor CWlmIHNhbHRzcGxpdCA9PSBuaWwgdGhlbgorCQlzYWx0c3BsaXQgPSAjc2FsdGhhc2grMQor CWVuZAorCWlmIHNhbHRzcGxpdCA+IChzaGFYX3NhbHRfbWF4ICsgMSkgdGhlbgorCQlzYWx0 c3BsaXQgPSBzaGFYX3NhbHRfbWF4ICsgMQorCWVuZAorCWxvY2FsIHNhbHQgPSBzdHJpbmcu c3ViKHNhbHRoYXNoLCAxLCBzYWx0c3BsaXQtMSkKKwlsb2NhbCBzaGE1MTIgPSBoYXNoZXMu c2hhNTEyKCkKKworCXNoYTUxMihwYXNzd29yZCkKKworCXNoYTUxMihzYWx0KQorCisJbG9j YWwgYWx0X3NoYTUxMiA9IGhhc2hlcy5zaGE1MTIoKQorCWFsdF9zaGE1MTIocGFzc3dvcmQp CisJYWx0X3NoYTUxMihzYWx0KQorCWFsdF9zaGE1MTIocGFzc3dvcmQpCisJbG9jYWwgYWx0 X3Jlc3VsdCA9IGFsdF9zaGE1MTIoKQorCS0tIGZvciBlYWNoIGNoYXJhY3RlciBvZiB0aGUg cGFzc3dvcmQgYWRkIHRoZSBhbHRfcmVzdWx0ICAod3JhcHBpbmcgYXMgbmVlZGVkKQorCWZv ciBjbnQgPSAjcGFzc3dvcmQsIDY1LCAtNjQgZG8KKwkJc2hhNTEyKGFsdF9yZXN1bHQpCisJ ZW5kCisJc2hhNTEyKHN0cmluZy5zdWIoYWx0X3Jlc3VsdCwgMSwgI3Bhc3N3b3JkICUgNjQp KQorCisJbG9jYWwgY291bnQgPSAjcGFzc3dvcmQKKwl3aGlsZSBjb3VudCA+IDAgZG8KKwkJ aWYgKGNvdW50ICYgMSkgfj0wIHRoZW4KKwkJCXNoYTUxMihhbHRfcmVzdWx0KQorCQllbHNl CisJCQlzaGE1MTIocGFzc3dvcmQpCisJCWVuZAorCQljb3VudCA9IGNvdW50ID4+IDEKKwll bmQKKworCS0tIFAgc2VxdWVuY2UKKwlhbHRfcmVzdWx0PXNoYTUxMigpCisJc2hhNTEyID0g aGFzaGVzLnNoYTUxMigpCisJZm9yIGNudD0xLCNwYXNzd29yZCBkbworCQlzaGE1MTIocGFz c3dvcmQpCisJZW5kCisJbG9jYWwgdGVtcF9yZXN1bHQgPSBzaGE1MTIoKQorCWxvY2FsIHBf Ynl0ZXMgPSAiIgorCisJd2hpbGUgI3BfYnl0ZXMgfj0gI3Bhc3N3b3JkIGRvCisJCXBfYnl0 ZXMgPSBwX2J5dGVzIC4uIHN0cmluZy5zdWIodGVtcF9yZXN1bHQsIDEsCisJCQltaW4oI3Rl bXBfcmVzdWx0LCAjcGFzc3dvcmQtI3BfYnl0ZXMpKQorCWVuZAorCisJLS0gUyBzZXF1ZW5j ZQorCXNoYTUxMiA9IGhhc2hlcy5zaGE1MTIoKQorCWZvciBjbnQ9MSwgMTYgKyBzdHJpbmcu Ynl0ZShhbHRfcmVzdWx0LCAxKSBkbworCQlzaGE1MTIoc2FsdCkKKwllbmQKKwl0ZW1wX3Jl c3VsdCA9IHNoYTUxMigpCisKKwlsb2NhbCBzX2J5dGVzID0gIiIKKwl3aGlsZSAjc19ieXRl cyB+PSAjc2FsdCBkbworCQlzX2J5dGVzID0gc19ieXRlcyAuLiBzdHJpbmcuc3ViKHRlbXBf cmVzdWx0LCAxLAorCQkJbWluKCN0ZW1wX3Jlc3VsdCwgI3NhbHQgLSAjc19ieXRlcykpCisJ ZW5kCisKKwlmb3IgY250PTAsIHJvdW5kcy0xIGRvCisJCXNoYTUxMiA9IGhhc2hlcy5zaGE1 MTIoKQorCQlpZiAoY250ICYgMSkgfj0gMCB0aGVuCisJCQlzaGE1MTIocF9ieXRlcykKKwkJ ZWxzZQorCQkJc2hhNTEyKGFsdF9yZXN1bHQpCisJCWVuZAorCQlpZiAoY250ICUgMykgfj0g MCB0aGVuCisJCQlzaGE1MTIoc19ieXRlcykKKwkJZW5kCisJCWlmIChjbnQgJSA3KSB+PSAw IHRoZW4KKwkJCXNoYTUxMihwX2J5dGVzKQorCQllbmQKKwkJaWYgKGNudCAmIDEpIH49IDAg dGhlbgorCQkJc2hhNTEyKGFsdF9yZXN1bHQpCisJCWVsc2UKKwkJCXNoYTUxMihwX2J5dGVz KQorCQllbmQKKwkJYWx0X3Jlc3VsdCA9IHNoYTUxMigpCisJZW5kCisJbG9jYWwgcyA9ICIk NiQiCisJaWYgY3VzdG9tX3JvdW5kcyB0aGVuCisJCXMgPSBzIC4uICJyb3VuZHM9IiAuLiBy b3VuZHMgLi4gIiQiCisJZW5kCisJcyA9IHMgLi4gc2FsdCAuLiAiJCIKKyAgICAgICAgcyA9 IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMSksIHN0cmlu Zy5ieXRlKGFsdF9yZXN1bHQsIDIyKSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNDMpLCA0 KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jl c3VsdCwgMjMpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA0NCksIHN0cmluZy5ieXRlKGFs dF9yZXN1bHQsIDIpLCA0KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3Ry aW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNDUpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAzKSwg c3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMjQpLCA0KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0 X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNCksIHN0cmluZy5ieXRlKGFs dF9yZXN1bHQsIDI1KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNDYpLCA0KTsKKyAgICAg ICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMjYp LCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA0NyksIHN0cmluZy5ieXRlKGFsdF9yZXN1bHQs IDUpLCA0KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUo YWx0X3Jlc3VsdCwgNDgpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA2KSwgc3RyaW5nLmJ5 dGUoYWx0X3Jlc3VsdCwgMjcpLCA0KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRi aXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNyksIHN0cmluZy5ieXRlKGFsdF9yZXN1bHQs IDI4KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNDkpLCA0KTsKKyAgICAgICAgcyA9IHMg Li4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMjkpLCBzdHJpbmcu Ynl0ZShhbHRfcmVzdWx0LCA1MCksIHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDgpLCA0KTsK KyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3Vs dCwgNTEpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA5KSwgc3RyaW5nLmJ5dGUoYWx0X3Jl c3VsdCwgMzApLCA0KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5n LmJ5dGUoYWx0X3Jlc3VsdCwgMTApLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAzMSksIHN0 cmluZy5ieXRlKGFsdF9yZXN1bHQsIDUyKSwgNCk7CisgICAgICAgIHMgPSBzIC4uIGI2NF9m cm9tXzI0Yml0KHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDMyKSwgc3RyaW5nLmJ5dGUoYWx0 X3Jlc3VsdCwgNTMpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAxMSksIDQpOworICAgICAg ICBzID0gcyAuLiBiNjRfZnJvbV8yNGJpdChzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA1NCks IHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDEyKSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwg MzMpLCA0KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUo YWx0X3Jlc3VsdCwgMTMpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAzNCksIHN0cmluZy5i eXRlKGFsdF9yZXN1bHQsIDU1KSwgNCk7CisgICAgICAgIHMgPSBzIC4uIGI2NF9mcm9tXzI0 Yml0KHN0cmluZy5ieXRlKGFsdF9yZXN1bHQsIDM1KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3Vs dCwgNTYpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAxNCksIDQpOworICAgICAgICBzID0g cyAuLiBiNjRfZnJvbV8yNGJpdChzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA1NyksIHN0cmlu Zy5ieXRlKGFsdF9yZXN1bHQsIDE1KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMzYpLCA0 KTsKKyAgICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jl c3VsdCwgMTYpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAzNyksIHN0cmluZy5ieXRlKGFs dF9yZXN1bHQsIDU4KSwgNCk7CisgICAgICAgIHMgPSBzIC4uIGI2NF9mcm9tXzI0Yml0KHN0 cmluZy5ieXRlKGFsdF9yZXN1bHQsIDM4KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNTkp LCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCAxNyksIDQpOworICAgICAgICBzID0gcyAuLiBi NjRfZnJvbV8yNGJpdChzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA2MCksIHN0cmluZy5ieXRl KGFsdF9yZXN1bHQsIDE4KSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgMzkpLCA0KTsKKyAg ICAgICAgcyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwg MTkpLCBzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA0MCksIHN0cmluZy5ieXRlKGFsdF9yZXN1 bHQsIDYxKSwgNCk7CisgICAgICAgIHMgPSBzIC4uIGI2NF9mcm9tXzI0Yml0KHN0cmluZy5i eXRlKGFsdF9yZXN1bHQsIDQxKSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNjIpLCBzdHJp bmcuYnl0ZShhbHRfcmVzdWx0LCAyMCksIDQpOworICAgICAgICBzID0gcyAuLiBiNjRfZnJv bV8yNGJpdChzdHJpbmcuYnl0ZShhbHRfcmVzdWx0LCA2MyksIHN0cmluZy5ieXRlKGFsdF9y ZXN1bHQsIDIxKSwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwgNDIpLCA0KTsKKyAgICAgICAg cyA9IHMgLi4gYjY0X2Zyb21fMjRiaXQoMCwgMCwgc3RyaW5nLmJ5dGUoYWx0X3Jlc3VsdCwg NjQpLCAyKTsKKworCXJldHVybiBzCitlbmQKKworZnVuY3Rpb24gY3J5cHQuY29tcGFyZShl bnRlcmVkLCBzdG9yZWQpCisJYWxnb3JpdGhtID0gc3RyaW5nLnN1YihzdG9yZWQsIDEsIDMp CisJc2FsdGhhc2ggPSBzdHJpbmcuc3ViKHN0b3JlZCw0KQorCWlmICAgICBhbGdvcml0aG0g PT0gJyQ1JCcgdGhlbiBoYXNoZWQgPSBjcnlwdC5zaGEyNTYoc2FsdGhhc2gsIGVudGVyZWQp CisgICAgICAgIGVsc2VpZiBhbGdvcml0aG0gPT0gJyQ2JCcgdGhlbiBoYXNoZWQgPSBjcnlw dC5zaGE1MTIoc2FsdGhhc2gsIGVudGVyZWQpCisgICAgICAgIGVsc2UgcmV0dXJuIG5pbAor CWVuZAorCWlmIGhhc2hlZCB+PSBuaWwgIHRoZW4KKwkJcmV0dXJuIGhhc2hlZCA9PSBzdG9y ZWQKKwllbmQKKwlyZXR1cm4gbmlsCitlbmQKKworLS1bWworLS0gdGVzdHMKKworLS1zaGE1 MTIgLS0gY29waWVkIGZyb20gY3J5cHQtc2hhNTEyLmMKK2Fzc2VydChjcnlwdC5zaGE1MTIo InNhbHRzdHJpbmciLCAiSGVsbG8gd29ybGQhIikgPT0gIiQ2JHNhbHRzdHJpbmckc3ZuOFVv U1ZhcE50TXVxMXVrS1M0dFBRZDhpS3dTTUhXamwvTzgxN0czdUJuSUZOam5RSnVlc0k2OHU0 T1RMaUJGZGNiWUVkRkNvRU9mYVMzNWluejEiKQorYXNzZXJ0KGNyeXB0LnNoYTUxMigicm91 bmRzPTEwMDAwJHNhbHRzdHJpbmdzYWx0c3RyaW5nIiwgIkhlbGxvIHdvcmxkISIpID09ICIk NiRyb3VuZHM9MTAwMDAkc2FsdHN0cmluZ3NhbHRzdCRPVzEvTzZCWUhWNkJjWFp1OFFWZVhi RFdyYTNPZXFoMHNiSGJiTUNWTlNuQ00vVXJqbU0wRHA4dk91WmVIQnkvWVRCbVNLNkg5cXMv eTNSbk9hdzV2LiIpCithc3NlcnQoY3J5cHQuc2hhNTEyKCJyb3VuZHM9NTAwMCR0b29sb25n c2FsdHN0cmluZyIsICJUaGlzIGlzIGp1c3QgYSB0ZXN0IikgPT0gIiQ2JHJvdW5kcz01MDAw JHRvb2xvbmdzYWx0c3RyaW4kbFE4am9saGdWUlZoWTRiNXBaS2F5c0NMaTBRQnhHb05lS1F6 UTNnbE1od2xsRjdvR0RaeFVoeDF5eGRZY3ovZTFKU2JxM3k2Sk14eGw4YXVka1VFbTAiKQor YXNzZXJ0KGNyeXB0LnNoYTUxMigicm91bmRzPTE0MDAkYW5vdGhlcmxvbmdzYWx0c3RyaW5n IiwgImEgdmVyeSBtdWNoIGxvbmdlciB0ZXh0IHRvIGVuY3J5cHQuICBUaGlzIG9uZSBldmVu IHN0cmV0Y2hlcyBvdmVyIG1vcmV0aGFuIG9uZSBsaW5lLiIpID09ICIkNiRyb3VuZHM9MTQw MCRhbm90aGVybG9uZ3NhbHRzJFBPZll3VEVvazk3VldjanhJaVNPaml5a3RpLm8vcFFzLndQ dk14UTZGbTdJNklvWU4zQ21MczY2eDl0MG9Td2J0RVc3bzdVbUpFaUR3R3FkOHA0dXIxIikK K2Fzc2VydChjcnlwdC5zaGE1MTIoInJvdW5kcz03Nzc3NyRzaG9ydCIsICJ3ZSBoYXZlIGEg c2hvcnQgc2FsdCBzdHJpbmcgYnV0IG5vdCBhIHNob3J0IHBhc3N3b3JkIikgPT0gIiQ2JHJv dW5kcz03Nzc3NyRzaG9ydCRXdVF5VzJZUi5oQk5wampSaHBZRC9pZkl3MDV4ZGZlRXlRb014 SVhia3ZyMGdnZTFhMXgzeVJVTEo1Q0NhVWVPeEZtdGxjR1plbEZsNUN4dGdmaUFjMCIpCith c3NlcnQoY3J5cHQuc2hhNTEyKCJyb3VuZHM9MTIzNDU2JGFzYWx0b2YxNmNoYXJzLi4iLCAi YSBzaG9ydCBzdHJpbmciKSA9PSAiJDYkcm91bmRzPTEyMzQ1NiRhc2FsdG9mMTZjaGFycy4u JEJ0Q3dqcU1KR3g1aHJKaFp5d1d2dDBSTEU4dVo0b1B3Y2VsQ2ptdzJrU1l1LkVjNnljVUxl dm9CSzI1ZnMyeFhnTU5yQ3pJTVZjZ0VKQXN0SmVvbmoxIikKK2Fzc2VydChjcnlwdC5zaGE1 MTIoInJvdW5kcz0xMCRyb3VuZHN0b29sb3ciLCAidGhlIG1pbmltdW0gbnVtYmVyIGlzIHN0 aWxsIG9ic2VydmVkIikgPT0gIiQ2JHJvdW5kcz0xMDAwJHJvdW5kc3Rvb2xvdyRrVU1zYmUz MDZuMjFwOVIuRlJrVzNJR24uUzlOUE4weDUwWWhIMXhoTHNQdVdHc1VTa2xadDU4amFUZkY0 WkVRcHlVTkdjMGRxYnBCWVlCYUhIcnNYLiIpCisKKy0tIHNoYTI1NiAtLSBjb3BpZWQgZnJv bSBjcnlwdC1zaGEyNTYuYworYXNzZXJ0KGNyeXB0LnNoYTI1Nigic2FsdHN0cmluZyIsICJI ZWxsbyB3b3JsZCEiKSA9PSAiJDUkc2FsdHN0cmluZyQ1Qjh2WVlpWS5DVnQxUmxUVGY4S2JY QkgzaHN4WS9HTm9vWmFCQkdXRWM1IikKK2Fzc2VydChjcnlwdC5zaGEyNTYoInJvdW5kcz0x MDAwMCRzYWx0c3RyaW5nc2FsdHN0cmluZyIsICJIZWxsbyB3b3JsZCEiKSA9PSAiJDUkcm91 bmRzPTEwMDAwJHNhbHRzdHJpbmdzYWx0c3QkM3h2LlZiU0hCYjQxQUw5QXZMZXVqWmtaUkJB d3FGTXoyLm9wcWV5NkljQSIpCithc3NlcnQoY3J5cHQuc2hhMjU2KCJyb3VuZHM9NTAwMCR0 b29sb25nc2FsdHN0cmluZyIsICJUaGlzIGlzIGp1c3QgYSB0ZXN0IikgPT0gIiQ1JHJvdW5k cz01MDAwJHRvb2xvbmdzYWx0c3RyaW4kVW4vNWp6QUhNZ09HWjUubVdKcHVWb2xpbDA3Z3VI UHZPVzhtR1JjdnhhNSIpCithc3NlcnQoY3J5cHQuc2hhMjU2KCJyb3VuZHM9MTQwMCRhbm90 aGVybG9uZ3NhbHRzdHJpbmciLCAiYSB2ZXJ5IG11Y2ggbG9uZ2VyIHRleHQgdG8gZW5jcnlw dC4gIFRoaXMgb25lIGV2ZW4gc3RyZXRjaGVzIG92ZXIgbW9yZXRoYW4gb25lIGxpbmUuIikg PT0gIiQ1JHJvdW5kcz0xNDAwJGFub3RoZXJsb25nc2FsdHMkUnguajhILmg4SGpFREdvbUZV OGJEa1htM1hJVW56eXhmMTJvUDg0Qm5xMSIpCithc3NlcnQoY3J5cHQuc2hhMjU2KCJyb3Vu ZHM9Nzc3Nzckc2hvcnQiLCAid2UgaGF2ZSBhIHNob3J0IHNhbHQgc3RyaW5nIGJ1dCBub3Qg YSBzaG9ydCBwYXNzd29yZCIpID09ICIkNSRyb3VuZHM9Nzc3Nzckc2hvcnQkSmlPMU8zWnBE QXhHSmVhREl1cUNvRUZ5c0FlMW1aTkpSczNwdzBLUVJkLyIpCithc3NlcnQoY3J5cHQuc2hh MjU2KCJyb3VuZHM9MTIzNDU2JGFzYWx0b2YxNmNoYXJzLi4iLCAiYSBzaG9ydCBzdHJpbmci KSA9PSAiJDUkcm91bmRzPTEyMzQ1NiRhc2FsdG9mMTZjaGFycy4uJGdQM1ZRLzZYN1VVRVcz SGtCbjJ3MS9QdHEyanhQeXpWL2NaS21GL3dKdkQiKQorYXNzZXJ0KGNyeXB0LnNoYTI1Nigi cm91bmRzPTEwJHJvdW5kc3Rvb2xvdyIsICJ0aGUgbWluaW11bSBudW1iZXIgaXMgc3RpbGwg b2JzZXJ2ZWQiKSA9PSAiJDUkcm91bmRzPTEwMDAkcm91bmRzdG9vbG93JHlmdndjV3JROGwv SzBEQVd5dVBNRE5IcElWbFRRZWJZOWwvZ0w5NzJiSUMiKQorCistLV1dCisKK3JldHVybiBj cnlwdApkaWZmIC0tZ2l0IGEvc3RhbmQvbHVhL2hhc2hlcy5sdWEgYi9zdGFuZC9sdWEvaGFz aGVzLmx1YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjZlMjE5 ZTUxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdGFuZC9sdWEvaGFzaGVzLmx1YQpAQCAtMCww ICsxLDI0MCBAQAorbG9jYWwgc2hhMjU2X2sgPSB7MHg0MjhhMmY5OCwgMHg3MTM3NDQ5MSwg MHhiNWMwZmJjZiwgMHhlOWI1ZGJhNSwgMHgzOTU2YzI1YiwKKwkJMHg1OWYxMTFmMSwgMHg5 MjNmODJhNCwgMHhhYjFjNWVkNSwgMHhkODA3YWE5OCwgMHgxMjgzNWIwMSwKKwkJMHgyNDMx ODViZSwgMHg1NTBjN2RjMywgMHg3MmJlNWQ3NCwgMHg4MGRlYjFmZSwgMHg5YmRjMDZhNywK KwkJMHhjMTliZjE3NCwgMHhlNDliNjljMSwgMHhlZmJlNDc4NiwgMHgwZmMxOWRjNiwgMHgy NDBjYTFjYywKKwkJMHgyZGU5MmM2ZiwgMHg0YTc0ODRhYSwgMHg1Y2IwYTlkYywgMHg3NmY5 ODhkYSwgMHg5ODNlNTE1MiwKKwkJMHhhODMxYzY2ZCwgMHhiMDAzMjdjOCwgMHhiZjU5N2Zj NywgMHhjNmUwMGJmMywgMHhkNWE3OTE0NywKKwkJMHgwNmNhNjM1MSwgMHgxNDI5Mjk2Nywg MHgyN2I3MGE4NSwgMHgyZTFiMjEzOCwgMHg0ZDJjNmRmYywKKwkJMHg1MzM4MGQxMywgMHg2 NTBhNzM1NCwgMHg3NjZhMGFiYiwgMHg4MWMyYzkyZSwgMHg5MjcyMmM4NSwKKwkJMHhhMmJm ZThhMSwgMHhhODFhNjY0YiwgMHhjMjRiOGI3MCwgMHhjNzZjNTFhMywgMHhkMTkyZTgxOSwK KwkJMHhkNjk5MDYyNCwgMHhmNDBlMzU4NSwgMHgxMDZhYTA3MCwgMHgxOWE0YzExNiwgMHgx ZTM3NmMwOCwKKwkJMHgyNzQ4Nzc0YywgMHgzNGIwYmNiNSwgMHgzOTFjMGNiMywgMHg0ZWQ4 YWE0YSwgMHg1YjljY2E0ZiwKKwkJMHg2ODJlNmZmMywgMHg3NDhmODJlZSwgMHg3OGE1NjM2 ZiwgMHg4NGM4NzgxNCwgMHg4Y2M3MDIwOCwKKwkJMHg5MGJlZmZmYSwgMHhhNDUwNmNlYiwg MHhiZWY5YTNmNywgMHhjNjcxNzhmMiB9CisKKworbG9jYWwgc2hhNTEyX2sgPSB7MHg0Mjhh MmY5OGQ3MjhhZTIyLCAweDcxMzc0NDkxMjNlZjY1Y2QsIDB4YjVjMGZiY2ZlYzRkM2IyZiwK KwkJMHhlOWI1ZGJhNTgxODlkYmJjLCAweDM5NTZjMjViZjM0OGI1MzgsIDB4NTlmMTExZjFi NjA1ZDAxOSwKKwkJMHg5MjNmODJhNGFmMTk0ZjliLCAweGFiMWM1ZWQ1ZGE2ZDgxMTgsIDB4 ZDgwN2FhOThhMzAzMDI0MiwKKwkJMHgxMjgzNWIwMTQ1NzA2ZmJlLCAweDI0MzE4NWJlNGVl NGIyOGMsIDB4NTUwYzdkYzNkNWZmYjRlMiwKKwkJMHg3MmJlNWQ3NGYyN2I4OTZmLCAweDgw ZGViMWZlM2IxNjk2YjEsIDB4OWJkYzA2YTcyNWM3MTIzNSwKKwkJMHhjMTliZjE3NGNmNjky Njk0LCAweGU0OWI2OWMxOWVmMTRhZDIsIDB4ZWZiZTQ3ODYzODRmMjVlMywKKwkJMHgwZmMx OWRjNjhiOGNkNWI1LCAweDI0MGNhMWNjNzdhYzljNjUsIDB4MmRlOTJjNmY1OTJiMDI3NSwK KwkJMHg0YTc0ODRhYTZlYTZlNDgzLCAweDVjYjBhOWRjYmQ0MWZiZDQsIDB4NzZmOTg4ZGE4 MzExNTNiNSwKKwkJMHg5ODNlNTE1MmVlNjZkZmFiLCAweGE4MzFjNjZkMmRiNDMyMTAsIDB4 YjAwMzI3Yzg5OGZiMjEzZiwKKwkJMHhiZjU5N2ZjN2JlZWYwZWU0LCAweGM2ZTAwYmYzM2Rh ODhmYzIsIDB4ZDVhNzkxNDc5MzBhYTcyNSwKKwkJMHgwNmNhNjM1MWUwMDM4MjZmLCAweDE0 MjkyOTY3MGEwZTZlNzAsIDB4MjdiNzBhODU0NmQyMmZmYywKKwkJMHgyZTFiMjEzODVjMjZj OTI2LCAweDRkMmM2ZGZjNWFjNDJhZWQsIDB4NTMzODBkMTM5ZDk1YjNkZiwKKwkJMHg2NTBh NzM1NDhiYWY2M2RlLCAweDc2NmEwYWJiM2M3N2IyYTgsIDB4ODFjMmM5MmU0N2VkYWVlNiwK KwkJMHg5MjcyMmM4NTE0ODIzNTNiLCAweGEyYmZlOGExNGNmMTAzNjQsIDB4YTgxYTY2NGJi YzQyMzAwMSwKKwkJMHhjMjRiOGI3MGQwZjg5NzkxLCAweGM3NmM1MWEzMDY1NGJlMzAsIDB4 ZDE5MmU4MTlkNmVmNTIxOCwKKwkJMHhkNjk5MDYyNDU1NjVhOTEwLCAweGY0MGUzNTg1NTc3 MTIwMmEsIDB4MTA2YWEwNzAzMmJiZDFiOCwKKwkJMHgxOWE0YzExNmI4ZDJkMGM4LCAweDFl Mzc2YzA4NTE0MWFiNTMsIDB4Mjc0ODc3NGNkZjhlZWI5OSwKKwkJMHgzNGIwYmNiNWUxOWI0 OGE4LCAweDM5MWMwY2IzYzVjOTVhNjMsIDB4NGVkOGFhNGFlMzQxOGFjYiwKKwkJMHg1Yjlj Y2E0Zjc3NjNlMzczLCAweDY4MmU2ZmYzZDZiMmI4YTMsIDB4NzQ4ZjgyZWU1ZGVmYjJmYywK KwkJMHg3OGE1NjM2ZjQzMTcyZjYwLCAweDg0Yzg3ODE0YTFmMGFiNzIsIDB4OGNjNzAyMDgx YTY0MzllYywKKwkJMHg5MGJlZmZmYTIzNjMxZTI4LCAweGE0NTA2Y2ViZGU4MmJkZTksIDB4 YmVmOWEzZjdiMmM2NzkxNSwKKwkJMHhjNjcxNzhmMmUzNzI1MzJiLCAweGNhMjczZWNlZWEy NjYxOWMsIDB4ZDE4NmI4YzcyMWMwYzIwNywKKwkJMHhlYWRhN2RkNmNkZTBlYjFlLCAweGY1 N2Q0ZjdmZWU2ZWQxNzgsIDB4MDZmMDY3YWE3MjE3NmZiYSwKKwkJMHgwYTYzN2RjNWEyYzg5 OGE2LCAweDExM2Y5ODA0YmVmOTBkYWUsIDB4MWI3MTBiMzUxMzFjNDcxYiwKKwkJMHgyOGRi NzdmNTIzMDQ3ZDg0LCAweDMyY2FhYjdiNDBjNzI0OTMsIDB4M2M5ZWJlMGExNWM5YmViYywK KwkJMHg0MzFkNjdjNDljMTAwZDRjLCAweDRjYzVkNGJlY2IzZTQyYjYsIDB4NTk3ZjI5OWNm YzY1N2UyYSwKKwkJMHg1ZmNiNmZhYjNhZDZmYWVjLCAweDZjNDQxOThjNGE0NzU4MTcgfQor Citsb2NhbCBmdW5jdGlvbiBtYXNrbihzaXplKQorCXJldHVybiB+KH4wIDw8IHNpemUpCitl bmQKKworbG9jYWwgZnVuY3Rpb24gcm9yKG4sIGJpdHMsIHNpemUpCisJcmV0dXJuIChuID4+ IGJpdHMpIHwgKChuIDw8IHNpemUgLSBiaXRzKSAmIG1hc2tuKHNpemUpKQorZW5kCisKK2xv Y2FsIGZ1bmN0aW9uIHN0cmluZzJudW1iZXIocywgaSwgbGVuKQorCWxvY2FsIG4gPSAwCisJ Zm9yIGkgPSBpLCBpICsgbGVuIC0gMSBkbworCQluID0gKG48PDgpICsgc3RyaW5nLmJ5dGUo cywgaSkKKwllbmQKKwlyZXR1cm4gbgorZW5kCisKK2xvY2FsIGZ1bmN0aW9uIHNoYTUxMl9i bG9jayhILCBjaHVuaykKKwlsb2NhbCB3ID0ge30KKwlmb3IgaSA9IDEsIDE2IGRvCisJCXdb aV0gPSBzdHJpbmcybnVtYmVyKGNodW5rLCAoKGktMSkgKiA4KSsxLCA4KQorCWVuZAorCisJ Zm9yIGkgPSAxNywgODAgZG8KKwkJbG9jYWwgdiA9IHdbaSAtIDE1XQorCQlsb2NhbCBzMCA9 IHJvcih2LCAxLCA2NCkgfiByb3IodiwgOCwgNjQpIH4gKHYgPj4gNykKKwkJdiA9IHdbaSAt IDJdCisJCWxvY2FsIHMxID0gcm9yKHYsIDE5LCA2NCkgfiByb3IodiwgNjEsIDY0KSB+ICh2 ID4+IDYpCisJCXdbaV0gPSAod1tpIC0gMTZdICsgczAgKyB3W2kgLSA3XSArIHMxKSAmIG1h c2tuKDY0KQorCWVuZAorCWxvY2FsIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGggPSBIWzFdLCBI WzJdLCBIWzNdLCBIWzRdLCBIWzVdLCBIWzZdLCBIWzddLCBIWzhdCisKKwlmb3IgaT0xLCA4 MCBkbworCQlsb2NhbCBzMCA9IHJvcihhLCAyOCwgNjQpIH4gcm9yKGEsIDM0LCA2NCkgfiBy b3IoYSwgMzksIDY0KQorCQlsb2NhbCBtYWogPSAoYSAmIGIpIH4gKGEgJiBjKSB+IChiICYg YykKKwkJbG9jYWwgdDIgPSBzMCArIG1hagorCQlsb2NhbCBzMSA9IHJvcihlLCAxNCwgNjQp IH4gcm9yKGUsIDE4LCA2NCkgfiByb3IoZSwgNDEsIDY0KQorCQlsb2NhbCBjaCA9IChlICYg ZikgfiAofmUgJiBnKQorCQlsb2NhbCB0MSA9IGggKyBzMSArIGNoICsgc2hhNTEyX2tbaV0g KyB3W2ldCisKKwkJaCA9IGcKKwkJZyA9IGYKKwkJZiA9IGUKKwkJZSA9IChkICsgdDEpICYg bWFza24oNjQpCisJCWQgPSBjCisJCWMgPSBiCisJCWIgPSBhCisJCWEgPSAodDEgKyB0Mikg JiBtYXNrbig2NCkKKwllbmQKKwlIWzFdID0gbWFza24oNjQpICYgKEhbMV0gKyBhKQorCUhb Ml0gPSBtYXNrbig2NCkgJiAoSFsyXSArIGIpCisJSFszXSA9IG1hc2tuKDY0KSAmIChIWzNd ICsgYykKKwlIWzRdID0gbWFza24oNjQpICYgKEhbNF0gKyBkKQorCUhbNV0gPSBtYXNrbig2 NCkgJiAoSFs1XSArIGUpCisJSFs2XSA9IG1hc2tuKDY0KSAmIChIWzZdICsgZikKKwlIWzdd ID0gbWFza24oNjQpICYgKEhbN10gKyBnKQorCUhbOF0gPSBtYXNrbig2NCkgJiAoSFs4XSAr IGgpCitlbmQKKworbG9jYWwgZnVuY3Rpb24gc2hhMjU2X2Jsb2NrKEgsIGNodW5rKQorCWxv Y2FsIHcgPSB7fQorCWZvciBpID0gMSwgMTYgZG8KKwkJd1tpXSA9IHN0cmluZzJudW1iZXIo Y2h1bmssICgoaS0xKSAqIDQpKzEsIDQpCisgICAgICAgIGVuZAorCisJZm9yIGkgPSAxNywg NjQgZG8KKwkJbG9jYWwgdiA9IHdbaSAtIDE1XQorCQlsb2NhbCBzMCA9IHJvcih2LCA3LCAz MikgfiByb3IodiwgMTgsIDMyKSB+ICh2ID4+IDMpCisJCXYgPSB3W2kgLSAyXQorCQlsb2Nh bCBzMSA9IHJvcih2LCAxNywgMzIpIH4gcm9yKHYsIDE5LCAzMikgfiAodiA+PiAxMCkKKwkJ d1tpXSA9ICh3W2kgLSAxNl0gKyBzMCArIHdbaSAtIDddICsgczEpICYgbWFza24oMzIpCisJ ZW5kCisJbG9jYWwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCA9IEhbMV0sIEhbMl0sIEhbM10s IEhbNF0sIEhbNV0sIEhbNl0sIEhbN10sIEhbOF0KKworCWZvciBpPTEsIDY0IGRvCisJCWxv Y2FsIHMwID0gcm9yKGEsIDIsIDMyKSB+IHJvcihhLCAxMywgMzIpIH4gcm9yKGEsIDIyLCAz MikKKwkJbG9jYWwgbWFqID0gKGEgJiBiKSB+IChhICYgYykgfiAoYiAmIGMpCisJCWxvY2Fs IHQyID0gczAgKyBtYWoKKwkJbG9jYWwgczEgPSByb3IoZSwgNiwgMzIpIH4gcm9yKGUsIDEx LCAzMikgfiByb3IoZSwgMjUsIDMyKQorCQlsb2NhbCBjaCA9IChlICYgZikgfiAofmUgJiBn KQorCQlsb2NhbCB0MSA9IGggKyBzMSArIGNoICsgc2hhMjU2X2tbaV0gKyB3W2ldCisKKwkJ aCA9IGcKKwkJZyA9IGYKKwkJZiA9IGUKKwkJZSA9IChkICsgdDEpICYgbWFza24oMzIpCisJ CWQgPSBjCisJCWMgPSBiCisJCWIgPSBhCisJCWEgPSAodDEgKyB0MikgJiBtYXNrbigzMikK KwllbmQKKwlIWzFdID0gbWFza24oMzIpICYgKEhbMV0gKyBhKQorCUhbMl0gPSBtYXNrbigz MikgJiAoSFsyXSArIGIpCisJSFszXSA9IG1hc2tuKDMyKSAmIChIWzNdICsgYykKKwlIWzRd ID0gbWFza24oMzIpICYgKEhbNF0gKyBkKQorCUhbNV0gPSBtYXNrbigzMikgJiAoSFs1XSAr IGUpCisJSFs2XSA9IG1hc2tuKDMyKSAmIChIWzZdICsgZikKKwlIWzddID0gbWFza24oMzIp ICYgKEhbN10gKyBnKQorCUhbOF0gPSBtYXNrbigzMikgJiAoSFs4XSArIGgpCitlbmQKKwor bG9jYWwgZnVuY3Rpb24gbnVtYmVyMnN0cmluZyhuLCBsZW5ndGgpCisJbG9jYWwgcyA9ICIi CisJZm9yIGk9MSwgbGVuZ3RoIGRvCisJCWxvY2FsIHJlbSA9IG4gJSAyNTYKKwkJcyA9IHN0 cmluZy5jaGFyKHJlbSkgLi4gcworCQluID0gbiA+PiA4CisJZW5kCisJcmV0dXJuIHMKK2Vu ZAorCitsb2NhbCBmdW5jdGlvbiBzaGEyNTYobXNnKQorCWxvY2FsIGJ1ZmZlciA9ICIiCisJ bG9jYWwgbGVuZ3RoID0gMAorCWxvY2FsIEggPSB7MHg2YTA5ZTY2NywgMHhiYjY3YWU4NSwg MHgzYzZlZjM3MiwgMHhhNTRmZjUzYSwgMHg1MTBlNTI3ZiwKKwkJMHg5YjA1Njg4YywgMHgx ZjgzZDlhYiwgMHg1YmUwY2QxOSB9CisJbG9jYWwgZnVuY3Rpb24gdXBkYXRlKG1zZykKKwkJ aWYgbXNnIHRoZW4KKwkJCWxvY2FsIG9mZnNldCA9IDEKKwkJCWxvY2FsIGVuZHJhbmdlID0g NjQgLSAjYnVmZmVyCisJCQlsZW5ndGggPSBsZW5ndGggKyAjbXNnCisJCQlidWZmZXIgPSBi dWZmZXIuLnN0cmluZy5zdWIobXNnLCAxLCBlbmRyYW5nZSkKKwkJCW9mZnNldCA9IGVuZHJh bmdlICsgMQorCQkJd2hpbGUgKCNidWZmZXIgPT0gNjQpIGRvCisJCQkJc2hhMjU2X2Jsb2Nr KEgsIGJ1ZmZlcikKKwkJCQlidWZmZXIgPSBzdHJpbmcuc3ViKG1zZywgb2Zmc2V0LCBvZmZz ZXQgKyA2MykKKwkJCQlvZmZzZXQgPSBvZmZzZXQgKyA2NAorCQkJZW5kCisJCQlyZXR1cm4g dXBkYXRlCisJCWVsc2UKKwkJCWxvY2FsIHBhZGRpbmcgPSAtKGxlbmd0aCArIDEgKyA4KSAl IDY0CisJCQl1cGRhdGUoIlwxMjgiIC4uIHN0cmluZy5yZXAoIlwwIiwgcGFkZGluZykgLi4g bnVtYmVyMnN0cmluZyhsZW5ndGgqOCwgOCkpCisJCQlidWZmZXIgPSBuaWwKKwkJCWxvY2Fs IHJlc3VsdCA9ICIiCisJCQlmb3IgaT0xLCA4IGRvCisJCQkJcmVzdWx0ID0gcmVzdWx0IC4u IG51bWJlcjJzdHJpbmcoSFtpXSwgNCkKKwkJCWVuZAorCQkJcmV0dXJuIHJlc3VsdDsKKwkJ ZW5kCisJZW5kCisJaWYgbXNnIHRoZW4KKwkJcmV0dXJuIHVwZGF0ZShtc2cpKCkKKwllbHNl CisJCXJldHVybiB1cGRhdGUKKwllbmQKK2VuZAorCitsb2NhbCBmdW5jdGlvbiBzaGE1MTIo bXNnKQorCWxvY2FsIGxlbmd0aCA9IDAKKwlsb2NhbCBidWZmZXIgPSAiIgorCWxvY2FsIEgg PSB7MHg2YTA5ZTY2N2YzYmNjOTA4LCAweGJiNjdhZTg1ODRjYWE3M2IsIDB4M2M2ZWYzNzJm ZTk0ZjgyYiwKKwkJMHhhNTRmZjUzYTVmMWQzNmYxLCAweDUxMGU1MjdmYWRlNjgyZDEsIDB4 OWIwNTY4OGMyYjNlNmMxZiwKKwkJMHgxZjgzZDlhYmZiNDFiZDZiLCAweDViZTBjZDE5MTM3 ZTIxNzl9CisJbG9jYWwgZnVuY3Rpb24gdXBkYXRlKG1zZykKKwkJaWYgbXNnIHRoZW4KKwkJ CWxvY2FsIG9mZnNldCA9IDEKKwkJCWxvY2FsIGVuZHJhbmdlID0gMTI4IC0gI2J1ZmZlcgor CQkJbGVuZ3RoID0gbGVuZ3RoICsgI21zZworCQkJYnVmZmVyID0gYnVmZmVyLi5zdHJpbmcu c3ViKG1zZywgMSwgZW5kcmFuZ2UpCisJCQlvZmZzZXQgPSBlbmRyYW5nZSArIDEKKwkJCXdo aWxlICgjYnVmZmVyID09IDEyOCkgZG8KKwkJCQlzaGE1MTJfYmxvY2soSCwgYnVmZmVyKQor CQkJCWJ1ZmZlciA9IHN0cmluZy5zdWIobXNnLCBvZmZzZXQsIG9mZnNldCArIDEyNykKKwkJ CQlvZmZzZXQgPSBvZmZzZXQgKyAxMjgKKwkJCWVuZAorCQkJcmV0dXJuIHVwZGF0ZQorCQll bHNlCisJCQlsb2NhbCBwYWRkaW5nID0gKC0obGVuZ3RoICsgMSArIDE2KSAlIDEyOCkgKyA4 CisJCQlsb2NhbCBwYWRzdHJpbmcgPSAiXDEyOCIgLi4gc3RyaW5nLnJlcCgiXDAiLCBwYWRk aW5nKSAuLiBudW1iZXIyc3RyaW5nKGxlbmd0aCo4LCA4KQorCQkJdXBkYXRlKHBhZHN0cmlu ZykKKwkJCWJ1ZmZlciA9IG5pbAorCQkJbG9jYWwgcmVzdWx0ID0gIiIKKwkJCWZvciBpPTEs IDggZG8KKwkJCQlyZXN1bHQgPSByZXN1bHQgLi4gbnVtYmVyMnN0cmluZyhIW2ldLCA4KQor CQkJZW5kCisJCQlyZXR1cm4gcmVzdWx0CisJCWVuZAorCWVuZAorCWlmIG1zZyB0aGVuCisJ CXJldHVybiB1cGRhdGUobXNnKSgpCisJZWxzZQorCQlyZXR1cm4gdXBkYXRlCisJZW5kCitl bmQKKworbG9jYWwgZnVuY3Rpb24gc3RyaW5nMmhleChzKQorCWxvY2FsIGggPSBzdHJpbmcu Z3N1YihzLCAiLiIsIGZ1bmN0aW9uKGMpIHJldHVybiBzdHJpbmcuZm9ybWF0KCIlMDJ4Iiwg c3RyaW5nLmJ5dGUoYykpCisJCQllbmQpCisJcmV0dXJuIGgKK2VuZAorCitsb2NhbCBoYXNo ZXMgPSB7CisJc2hhMjU2PSBzaGEyNTYsCisJc2hhNTEyPSBzaGE1MTIsCisJc3RyaW5nMmhl eD0gc3RyaW5nMmhleAorfQorCityZXR1cm4gaGFzaGVzCmRpZmYgLS1naXQgYS9zdGFuZC9s dWEvcGFzc3dvcmQubHVhIGIvc3RhbmQvbHVhL3Bhc3N3b3JkLmx1YQppbmRleCA4ZWRkNGVk ZDdlYy4uNTJhY2JmODQ3NjkgMTAwNjQ0Ci0tLSBhL3N0YW5kL2x1YS9wYXNzd29yZC5sdWEK KysrIGIvc3RhbmQvbHVhL3Bhc3N3b3JkLmx1YQpAQCAtMzEsNiArMzEsNyBAQAogCiBsb2Nh bCBjb3JlID0gcmVxdWlyZSgiY29yZSIpCiBsb2NhbCBzY3JlZW4gPSByZXF1aXJlKCJzY3Jl ZW4iKQorbG9jYWwgY3J5cHQgPSByZXF1aXJlKCJjcnlwdCIpCiAKIGxvY2FsIHBhc3N3b3Jk ID0ge30KIApAQCAtODcsNiArODgsMTYgQEAgZnVuY3Rpb24gcGFzc3dvcmQucmVhZChwcm9t cHRfbGVuZ3RoKQogZW5kCiAKIGZ1bmN0aW9uIHBhc3N3b3JkLmNoZWNrKCkKKwlsb2NhbCBm dW5jdGlvbiBjb21wYXJlKGVudGVyZWQsIHN0b3JlZCkKKwkJaWYgc3RvcmVkID09IG5pbCB0 aGVuCisJCQlyZXR1cm4gdHJ1ZQorCQllbmQKKwkJbG9jYWwgcmVzdWx0ID0gY3J5cHQuY29t cGFyZShlbnRlcmVkLCBzdG9yZWQpCisJCWlmIHJlc3VsdCA9PSBuaWwgdGhlbgorCQkJcmV0 dXJuIGVudGVyZWQgPT0gc3RvcmVkCisJCWVuZAorCQlyZXR1cm4gcmVzdWx0CisgICAgICAg IGVuZAogCS0tIHB3ZCBpcyBvcHRpb25hbGx5IHN1cHBsaWVkIGlmIHdlIHdhbnQgdG8gY2hl Y2sgaXQKIAlsb2NhbCBmdW5jdGlvbiBkb1Byb21wdChwcm9tcHQsIHB3ZCkKIAkJbG9jYWwg YXR0ZW1wdHMgPSAxCkBAIC0xMDYsNyArMTE3LDcgQEAgZnVuY3Rpb24gcGFzc3dvcmQuY2hl Y2soKQogCQkJc2NyZWVuLmRlZmN1cnNvcigpCiAJCQlwcmludGMocHJvbXB0KQogCQkJbG9j YWwgcmVhZF9wd2QgPSBwYXNzd29yZC5yZWFkKCNwcm9tcHQpCi0JCQlpZiBwd2QgPT0gbmls IG9yIHB3ZCA9PSByZWFkX3B3ZCB0aGVuCisJCQlpZiBjb21wYXJlKHJlYWRfcHdkLCBwd2Qp IHRoZW4KIAkJCQktLSBDbGVhciB0aGUgcHJvbXB0ICsgdHdpZGRsZQogCQkJCXByaW50Yyhz dHJpbmcucmVwKCIgIiwgI3Byb21wdCArIDUpKQogCQkJCXJldHVybiByZWFkX3B3ZApAQCAt MTE2LDcgKzEyNyw3IEBAIGZ1bmN0aW9uIHBhc3N3b3JkLmNoZWNrKCkKIAkJCWxvYWRlci5k ZWxheSgzKjEwMDAqMTAwMCkKIAkJZW5kCiAJZW5kCi0JbG9jYWwgZnVuY3Rpb24gY29tcGFy ZShwcm9tcHQsIHB3ZCkKKwlsb2NhbCBmdW5jdGlvbiBwd0dhdGUocHJvbXB0LCBwd2QpCiAJ CWlmIHB3ZCA9PSBuaWwgdGhlbgogCQkJcmV0dXJuCiAJCWVuZApAQCAtMTI0LDcgKzEzNSw3 IEBAIGZ1bmN0aW9uIHBhc3N3b3JkLmNoZWNrKCkKIAllbmQKIAogCWxvY2FsIGJvb3RfcHdk ID0gbG9hZGVyLmdldGVudigiYm9vdGxvY2tfcGFzc3dvcmQiKQotCWNvbXBhcmUoIkJvb3Rs b2NrIHBhc3N3b3JkOiIsIGJvb3RfcHdkKQorCXB3R2F0ZSgiQm9vdGxvY2sgcGFzc3dvcmQ6 IiwgYm9vdF9wd2QpCiAKIAlsb2NhbCBnZWxpX3Byb21wdCA9IGxvYWRlci5nZXRlbnYoImdl b21fZWxpX3Bhc3NwaHJhc2VfcHJvbXB0IikKIAlpZiBnZWxpX3Byb21wdCB+PSBuaWwgYW5k IGdlbGlfcHJvbXB0Omxvd2VyKCkgPT0gInllcyIgdGhlbgpAQCAtMTQxLDcgKzE1Miw3IEBA IGZ1bmN0aW9uIHBhc3N3b3JkLmNoZWNrKCkKIAkJLS0gaW4gdGhlIG1pZGRsZSBvZiBvdGhl ciB0ZXh0LgogCQlzZXR1cF9zY3JlZW4oKQogCWVuZAotCWNvbXBhcmUoIkxvYWRlciBwYXNz d29yZDoiLCBwd2QpCisJcHdHYXRlKCJMb2FkZXIgcGFzc3dvcmQ6IiwgcHdkKQogZW5kCiAK IHJldHVybiBwYXNzd29yZAo= --------------7ulGrikZoqg5HlrZ0BE7ZO0t--