From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DED69C61DA4 for ; Fri, 27 Jan 2023 19:43:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: Mime-Version:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=ptxIgDdBgYrMDfWeEG+eZzXRiJSZgwCj3UYnF8S2QeY=; b=xup VEBq6kE4AlA33E0WmgaLZAqUxmQAC0m3gQE6p5Nor9gxyPI4UZbFZFbUTTiQ6870Vl5csdxYDjh2e YAUR037GwRbCWmDt4vdob5LqeHIHX5JOmr+O7Xh8p2qXvxIsiSvpNyUsO1J6UV17HU0Scg6WWSAfY +6COq/sCwZjT0SjdpGZZV/VpF4/m+C6NNiYIi2sXtsXskPO2OulugXdNeX4lhKrKWeT7sSZboLg3x gt1sjF+fiJhC8ToG7FpCoijZLX6yXW6M8YaWHPbtKMP785HEe1upn4F/Uf09DQn+AVscQgh1eITXQ 9L85GwPWdDG8lMt+Evmsh9xcxPuvWiQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pLUc7-00G9ML-1R; Fri, 27 Jan 2023 19:42:19 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pLUb6-00G8wa-K9 for linux-arm-kernel@lists.infradead.org; Fri, 27 Jan 2023 19:41:19 +0000 Received: by mail-yb1-xb49.google.com with SMTP id z17-20020a256651000000b007907852ca4dso6387494ybm.16 for ; Fri, 27 Jan 2023 11:41:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:from:to:cc:subject:date:message-id:reply-to; bh=jHaigHL/qYALF8TO1v9tjquwWSXhIW6ro+oG3/El/0k=; b=iNYcYX2QA3x1vr3JKW/CHzagf4bTyxKFq2HNLUndU1FDbxnpdvC5Bx79ipUe5icsq2 L1QQ3JnQTu1WWzZPBDlfozjO4aULoX8mfAfmU4AIrqUzrl2iYsaiJptv9ja4xntqTscy sosTYMYH4iihhnMMwGJ+n1/iWr6zHPBk/vTw1u6oYZdVfCC+atdu9aplEIu2q8zAzv7c h9zisHKP34d06K74Vd9UfheznkjPfKBbP0aa8nDMicRotxfauD3U69iVQ/KatVAyQE+E UAQVTSN9bEF96M2D2gkDtf8TG4L0na2nvfHQb9o+9nkVueFxCLOEIR4tS/r4iRrbQs/P X8vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:from:subject:message-id :mime-version:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jHaigHL/qYALF8TO1v9tjquwWSXhIW6ro+oG3/El/0k=; b=YG9/wB2InqFlkfZf7sZs+dYZhxewC+99gixfhhHGn1vi1WT6RAiV9ba+hBcfYWpgdZ jMq0B5xP17hQDAohhrZhjCgVJflMJFB7G1vPemddTtPMvW8ReBVN/Xa03zPG+RjtdlAL QEXIVtm1tsciyN+oGaVQszGFmlSq/4tpWaKH/pjkgEiMfGqr7rK54M9xGLaGupi0p6SJ 7jE4WDbe9XwYnMBVCLnhQUe6sIVK1aZ4ZJWaCUxyaUf8HMRf6IYGNAEA35DmSaxF7qiL xTbuurBvZdIA5x4ARIcVV9ymI839cqt+0IpoDpIA0TQEyGFekpBSnOBgAXUIhj3w1Pok x9mg== X-Gm-Message-State: AFqh2kqTzN1iIcFf2sZoTgMF6JGZ+rUsvlPPDw1TPgcpA4nxAm4rA3T+ 8qcmA9nkRfu1chVq0mwo9GOULLybsXw= X-Google-Smtp-Source: AMrXdXtE7RP7VYbKUC4IwBV5od4kqfb02rN6DNLKparG6qkWu2Syta8g6R8a2Y7ynvSvEEKbYTAybwXxM6I= X-Received: from surenb-desktop.mtv.corp.google.com ([2620:15c:211:200:4e19:be9:c5d0:8483]) (user=surenb job=sendgmr) by 2002:a81:1e90:0:b0:489:e4c5:45ca with SMTP id e138-20020a811e90000000b00489e4c545camr5325726ywe.336.1674848474014; Fri, 27 Jan 2023 11:41:14 -0800 (PST) Date: Fri, 27 Jan 2023 11:40:37 -0800 Mime-Version: 1.0 X-Mailer: git-send-email 2.39.1.456.gfc5497dd1b-goog Message-ID: <20230127194110.533103-1-surenb@google.com> Subject: [PATCH v2 00/33] Per-VMA locks From: Suren Baghdasaryan To: akpm@linux-foundation.org Cc: michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, paulmck@kernel.org, mingo@redhat.com, will@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, punit.agrawal@bytedance.com, lstoakes@gmail.com, peterjung1337@gmail.com, rientjes@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, rppt@kernel.org, jannh@google.com, shakeelb@google.com, tatashin@google.com, edumazet@google.com, gthelen@google.com, gurua@google.com, arjunroy@google.com, soheil@google.com, leewalsh@google.com, posk@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com, surenb@google.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230127_114116_721771_201C1F44 X-CRM114-Status: GOOD ( 26.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org UHJldmlvdXMgdmVyc2lvbjoKdjE6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8yMDIzMDEw OTIwNTMzNi4zNjY1OTM3LTEtc3VyZW5iQGdvb2dsZS5jb20vClJGQzogaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvYWxsLzIwMjIwOTAxMTczNTE2LjcwMjEyMi0xLXN1cmVuYkBnb29nbGUuY29tLwoK TFdOIGFydGljbGUgZGVzY3JpYmluZyB0aGUgZmVhdHVyZToKaHR0cHM6Ly9sd24ubmV0L0FydGlj bGVzLzkwNjg1Mi8KClBlci12bWEgbG9ja3MgaWRlYSB0aGF0IHdhcyBkaXNjdXNzZWQgZHVyaW5n IFNQRiBbMV0gZGlzY3Vzc2lvbiBhdCBMU0YvTU0KbGFzdCB5ZWFyIFsyXSwgd2hpY2ggY29uY2x1 ZGVkIHdpdGggc3VnZ2VzdGlvbiB0aGF0IOKAnGEgcmVhZGVyL3dyaXRlcgpzZW1hcGhvcmUgY291 bGQgYmUgcHV0IGludG8gdGhlIFZNQSBpdHNlbGY7IHRoYXQgd291bGQgaGF2ZSB0aGUgZWZmZWN0 IG9mCnVzaW5nIHRoZSBWTUEgYXMgYSBzb3J0IG9mIHJhbmdlIGxvY2suIFRoZXJlIHdvdWxkIHN0 aWxsIGJlIGNvbnRlbnRpb24gYXQKdGhlIFZNQSBsZXZlbCwgYnV0IGl0IHdvdWxkIGJlIGFuIGlt cHJvdmVtZW50LuKAnSBUaGlzIHBhdGNoc2V0IGltcGxlbWVudHMKdGhpcyBzdWdnZXN0ZWQgYXBw cm9hY2guCgpXaGVuIGhhbmRsaW5nIHBhZ2UgZmF1bHRzIHdlIGxvb2t1cCB0aGUgVk1BIHRoYXQg Y29udGFpbnMgdGhlIGZhdWx0aW5nCnBhZ2UgdW5kZXIgUkNVIHByb3RlY3Rpb24gYW5kIHRyeSB0 byBhY3F1aXJlIGl0cyBsb2NrLiBJZiB0aGF0IGZhaWxzIHdlCmZhbGwgYmFjayB0byB1c2luZyBt bWFwX2xvY2ssIHNpbWlsYXIgdG8gaG93IFNQRiBoYW5kbGVkIHRoaXMgc2l0dWF0aW9uLgoKT25l IG5vdGFibGUgd2F5IHRoZSBpbXBsZW1lbnRhdGlvbiBkZXZpYXRlcyBmcm9tIHRoZSBwcm9wb3Nh bCBpcyB0aGUgd2F5ClZNQXMgYXJlIHJlYWQtbG9ja2VkLiBEdXJpbmcgc29tZSBvZiBtbSB1cGRh dGVzLCBtdWx0aXBsZSBWTUFzIG5lZWQgdG8gYmUKbG9ja2VkIHVudGlsIHRoZSBlbmQgb2YgdGhl IHVwZGF0ZSAoZS5nLiB2bWFfbWVyZ2UsIHNwbGl0X3ZtYSwgZXRjKS4KVHJhY2tpbmcgYWxsIHRo ZSBsb2NrZWQgVk1BcywgYXZvaWRpbmcgcmVjdXJzaXZlIGxvY2tzLCBmaWd1cmluZyBvdXQgd2hl bgppdCdzIHNhZmUgdG8gdW5sb2NrIHByZXZpb3VzbHkgbG9ja2VkIFZNQXMgd291bGQgbWFrZSB0 aGUgY29kZSBtb3JlCmNvbXBsZXguIFNvLCBpbnN0ZWFkIG9mIHRoZSB1c3VhbCBsb2NrL3VubG9j ayBwYXR0ZXJuLCB0aGUgcHJvcG9zZWQKc29sdXRpb24gbWFya3MgYSBWTUEgYXMgbG9ja2VkIGFu ZCBwcm92aWRlcyBhbiBlZmZpY2llbnQgd2F5IHRvOgoxLiBJZGVudGlmeSBsb2NrZWQgVk1Bcy4K Mi4gVW5sb2NrIGFsbCBsb2NrZWQgVk1BcyBpbiBidWxrLgpXZSBhbHNvIHBvc3Rwb25lIHVubG9j a2luZyB0aGUgbG9ja2VkIFZNQXMgdW50aWwgdGhlIGVuZCBvZiB0aGUgdXBkYXRlLAp3aGVuIHdl IGRvIG1tYXBfd3JpdGVfdW5sb2NrLiBQb3RlbnRpYWxseSB0aGlzIGtlZXBzIGEgVk1BIGxvY2tl ZCBmb3IKbG9uZ2VyIHRoYW4gaXMgYWJzb2x1dGVseSBuZWNlc3NhcnkgYnV0IGl0IHJlc3VsdHMg aW4gYSBiaWcgcmVkdWN0aW9uIG9mCmNvZGUgY29tcGxleGl0eS4KUmVhZC1sb2NraW5nIGEgVk1B IGlzIGRvbmUgdXNpbmcgdHdvIHNlcXVlbmNlIG51bWJlcnMgLSBvbmUgaW4gdGhlCnZtX2FyZWFf c3RydWN0IGFuZCBvbmUgaW4gdGhlIG1tX3N0cnVjdC4gVk1BIGlzIGNvbnNpZGVyZWQgcmVhZC1s b2NrZWQKd2hlbiB0aGVzZSBzZXF1ZW5jZSBudW1iZXJzIGFyZSBlcXVhbC4gVG8gcmVhZC1sb2Nr IGEgVk1BIHdlIHNldCB0aGUKc2VxdWVuY2UgbnVtYmVyIGluIHZtX2FyZWFfc3RydWN0IHRvIGJl IGVxdWFsIHRvIHRoZSBzZXF1ZW5jZSBudW1iZXIgaW4KbW1fc3RydWN0LiBUbyB1bmxvY2sgYWxs IFZNQXMgd2UgaW5jcmVtZW50IG1tX3N0cnVjdCdzIHNlcSBudW1iZXIuIFRoaXMKYWxsb3dzIGZv ciBhbiBlZmZpY2llbnQgd2F5IHRvIHRyYWNrIGxvY2tlZCBWTUFzIGFuZCB0byBkcm9wIHRoZSBs b2NrcyBvbgphbGwgVk1BcyBhdCB0aGUgZW5kIG9mIHRoZSB1cGRhdGUuCgpUaGUgcGF0Y2hzZXQg aW1wbGVtZW50cyBwZXItVk1BIGxvY2tpbmcgb25seSBmb3IgYW5vbnltb3VzIHBhZ2VzIHdoaWNo CmFyZSBub3QgaW4gc3dhcCBhbmQgYXZvaWRzIHVzZXJmYXVsdGZzIGFzIHRoZWlyIGltcGxlbWVu dGF0aW9uIGlzIG1vcmUKY29tcGxleC4gQWRkaXRpb25hbCBzdXBwb3J0IGZvciBmaWxlLWJhY2sg cGFnZSBmYXVsdHMsIHN3YXBwZWQgYW5kIHVzZXIKcGFnZXMgY2FuIGJlIGFkZGVkIGluY3JlbWVu dGFsbHkuCgpQZXJmb3JtYW5jZSBiZW5jaG1hcmtzIHNob3cgc2ltaWxhciBhbHRob3VnaCBzbGln aHRseSBzbWFsbGVyIGJlbmVmaXRzIGFzCndpdGggU1BGIHBhdGNoc2V0ICh+NzUlIG9mIFNQRiBi ZW5lZml0cykuIFN0aWxsLCB3aXRoIGxvd2VyIGNvbXBsZXhpdHkKdGhpcyBhcHByb2FjaCBtaWdo dCBiZSBtb3JlIGRlc2lyYWJsZS4KClNpbmNlIFJGQyB3YXMgcG9zdGVkIGluIFNlcHRlbWJlciAy MDIyLCB0d28gc2VwYXJhdGUgR29vZ2xlIHRlYW1zIG91dHNpZGUKb2YgQW5kcm9pZCBldmFsdWF0 ZWQgdGhlIHBhdGNoc2V0IGFuZCBjb25maXJtZWQgcG9zaXRpdmUgcmVzdWx0cy4gSGVyZSBhcmUK dGhlIGtub3duIHVzZWNhc2VzIHdoZW4gcGVyLVZNQSBsb2NrcyBzaG93IGJlbmVmaXRzOgoKQW5k cm9pZDoKQXBwcyB3aXRoIGhpZ2ggbnVtYmVyIG9mIHRocmVhZHMgKH4xMDApIGxhdW5jaCB0aW1l cyBpbXByb3ZlIGJ5IHVwIHRvIDIwJS4KRWFjaCB0aHJlYWQgbW1hcHMgc2V2ZXJhbCBhcmVhcyB1 cG9uIHN0YXJ0dXAgKFN0YWNrIGFuZCBUaHJlYWQtbG9jYWwKc3RvcmFnZSAoVExTKSwgdGhyZWFk IHNpZ25hbCBzdGFjaywgaW5kaXJlY3QgcmVmIHRhYmxlKSwgd2hpY2ggcmVxdWlyZXMKdGFraW5n IG1tYXBfbG9jayBpbiB3cml0ZSBtb2RlLiBQYWdlIGZhdWx0cyB0YWtlIG1tYXBfbG9jayBpbiBy ZWFkIG1vZGUuCkR1cmluZyBhcHAgbGF1bmNoLCBib3RoIHRocmVhZCBjcmVhdGlvbiBhbmQgcGFn ZSBmYXVsdHMgZXN0YWJsaXNoaW5nIHRoZQphY3RpdmUgd29ya2luZ2V0IGFyZSBoYXBwZW5pbmcg aW4gcGFyYWxsZWwgYW5kIHRoYXQgY2F1c2VzIGxvY2sgY29udGVudGlvbgpiZXR3ZWVuIG1tIHdy aXRlcnMgYW5kIHJlYWRlcnMgZXZlbiBpZiB1cGRhdGVzIGFuZCBwYWdlIGZhdWx0cyBhcmUKaGFw cGVuaW5nIGluIGRpZmZlcmVudCBWTUFzLiBQZXItdm1hIGxvY2tzIHByZXZlbnQgdGhpcyBjb250 ZW50aW9uIGJ5CnByb3ZpZGluZyBtb3JlIGdyYW51bGFyIGxvY2suCgpHb29nbGUgRmliZXJzOgpX ZSBoYXZlIHNldmVyYWwgZHluYW1pY2FsbHkgc2l6ZWQgdGhyZWFkIHBvb2xzIHRoYXQgc3Bhd24g bmV3IHRocmVhZHMKdW5kZXIgaW5jcmVhc2VkIGxvYWQgYW5kIHJlZHVjZSB0aGVpciBudW1iZXIg d2hlbiBpZGxpbmcuIEZvciBleGFtcGxlLApHb29nbGUncyBpbi1wcm9jZXNzIHNjaGVkdWxpbmcv dGhyZWFkaW5nIGZyYW1ld29yaywgVU1DRy9GaWJlcnMsIGlzIGJhY2tlZApieSBzdWNoIGEgdGhy ZWFkIHBvb2wuIFdoZW4gaWRsaW5nLCBvbmx5IGEgc21hbGwgbnVtYmVyIG9mIGlkbGUgd29ya2Vy CnRocmVhZHMgYXJlIGF2YWlsYWJsZTsgd2hlbiBhIHNwaWtlIG9mIGluY29taW5nIHJlcXVlc3Rz IGFycml2ZSwgZWFjaApyZXF1ZXN0IGlzIGhhbmRsZWQgaW4gaXRzIG93biAiZmliZXIiLCB3aGlj aCBpcyBhIHdvcmsgaXRlbSBwb3N0ZWQgb250byBhClVNQ0cgd29ya2VyIHRocmVhZDsgcXVpdGUg b2Z0ZW4gdGhlc2Ugc3Bpa2VzIGxlYWQgdG8gYSBudW1iZXIgb2YgbmV3CnRocmVhZHMgc3Bhd25p bmcuIEVhY2ggbmV3IHRocmVhZCBuZWVkcyB0byBhbGxvY2F0ZSBhbmQgcmVnaXN0ZXIgYW4gUlNF UQpzZWN0aW9uIG9uIGl0cyBUTFMsIHRoZW4gcmVnaXN0ZXIgaXRzZWxmIHdpdGggdGhlIGtlcm5l bCBhcyBhIFVNQ0cgd29ya2VyCnRocmVhZCwgYW5kIG9ubHkgYWZ0ZXIgdGhhdCBpdCBjYW4gYmUg Y29uc2lkZXJlZCBieSB0aGUgaW4tcHJvY2VzcwpVTUNHL0ZpYmVyIHNjaGVkdWxlciBhcyBhdmFp bGFibGUgdG8gZG8gdXNlZnVsIHdvcmsuIEluIHNob3J0LCBkdXJpbmcgYW4KaW5jb21pbmcgd29y a2xvYWQgc3Bpa2UgbmV3IHRocmVhZHMgaGF2ZSB0byBiZSBzcGF3bmVkLCBhbmQgdGhleSBwZXJm b3JtCnNldmVyYWwgc3lzY2FsbHMgKFJTRVEgcmVnaXN0cmF0aW9uLCBVTUNHIHdvcmtlciByZWdp c3RyYXRpb24sIG1lbW9yeQphbGxvY2F0aW9ucykgYmVmb3JlIHRoZXkgY2FuIGFjdHVhbGx5IHN0 YXJ0IGRvaW5nIHVzZWZ1bCB3b3JrLiBSZW1vdmluZwphbnkgYm90dGxlbmVja3Mgb24gdGhpcyB0 aHJlYWQgc3RhcnR1cCBwYXRoIHdpbGwgZ3JlYXRseSBpbXByb3ZlIG91cgpzZXJ2aWNlcycgbGF0 ZW5jaWVzIHdoZW4gZmFjZWQgd2l0aCByZXF1ZXN0L3dvcmtsb2FkIHNwaWtlcy4KQXQgaGlnaCBz Y2FsZSwgbW1hcF9sb2NrIGNvbnRlbnRpb24gZHVyaW5nIHRocmVhZCBjcmVhdGlvbiBhbmQgc3Rh Y2sgcGFnZQpmYXVsdHMgbGVhZHMgdG8gdXNlci12aXNpYmxlIG11bHRpLXNlY29uZCBzZXJ2aW5n IGxhdGVuY2llcyBpbiBhIHNpbWlsYXIKcGF0dGVybiB0byBBbmRyb2lkIGFwcCBzdGFydHVwLiBQ ZXItVk1BIGxvY2tpbmcgcGF0Y2hzZXQgaGFzIGJlZW4gcnVuCnN1Y2Nlc3NmdWxseSBpbiBsaW1p dGVkIGV4cGVyaW1lbnRzIHdpdGggdXNlci1mYWNpbmcgcHJvZHVjdGlvbiB3b3JrbG9hZHMuCklu IHRoZXNlIGV4cGVyaW1lbnRzLCB3ZSBvYnNlcnZlZCB0aGF0IHRoZSBwZWFrIHRocmVhZCBjcmVh dGlvbiByYXRlIHdhcwpoaWdoIGVub3VnaCB0aGF0IHRocmVhZCBjcmVhdGlvbiBpcyBubyBsb25n ZXIgYSBib3R0bGVuZWNrLgoKVENQIHplcm9jb3B5IHJlY2VpdmU6CkZyb20gdGhlIHBvaW50IG9m IHZpZXcgb2YgVENQIHplcm9jb3B5IHJlY2VpdmUsIHRoZSBwZXItdm1hIGxvY2sgcGF0Y2ggaXMK bWFzc2l2ZWx5IGJlbmVmaWNpYWwuCkluIHRvZGF5J3MgaW1wbGVtZW50YXRpb24sIGEgcHJvY2Vz cyB3aXRoIE4gdGhyZWFkcyB3aGVyZSBOIC0gMSBhcmUKcGVyZm9ybWluZyB6ZXJvY29weSByZWNl aXZlIGFuZCAxIHRocmVhZCBpcyBwZXJmb3JtaW5nIG1hZHZpc2UoKSB3aXRoIHRoZQp3cml0ZSBs b2NrIHRha2VuIChlLmcuIG5lZWRzIHRvIGNoYW5nZSB2bV9mbGFncykgd2lsbCByZXN1bHQgaW4g YWxsIE4gLTEKcmVjZWl2ZSB0aHJlYWRzIGJsb2NraW5nIHVudGlsIHRoZSBtYWR2aXNlIGlzIGRv bmUuIENvbnZlcnNlbHksIG9uIGEgYnVzeQpwcm9jZXNzIHJlY2VpdmluZyBhIGxvdCBvZiBkYXRh LCBhbiBtYWR2aXNlIG9wZXJhdGlvbiB0aGF0IGRvZXMgbmVlZCB0bwp0YWtlIHRoZSBtbWFwIGxv Y2sgaW4gd3JpdGUgbW9kZSB3aWxsIG5lZWQgdG8gd2FpdCBmb3IgYWxsIG9mIHRoZSByZWNlaXZl cwp0byBiZSBkb25lIC0gYSBsb3NlOmxvc2UgcHJvcG9zaXRpb24uIFBlci1WTUEgbG9ja2luZyBf cmVtb3Zlc18gYnkKZGVmaW5pdGlvbiB0aGlzIHNvdXJjZSBvZiBjb250ZW50aW9uIGVudGlyZWx5 LgpUaGVyZSBhcmUgb3RoZXIgYmVuZWZpdHMgZm9yIHJlY2VpdmUgYXMgd2VsbCwgY2hpZWZseSBh IHJlZHVjdGlvbiBpbgpjYWNoZWxpbmUgYm91bmNpbmcgYWNyb3NzIHJlY2VpdmluZyB0aHJlYWRz IGZvciBsb2NraW5nL3VubG9ja2luZyB0aGUKc2luZ2xlIG1tYXAgbG9jay4gT24gYW4gUlBDIHN0 eWxlIHN5bnRoZXRpYyB3b3JrbG9hZCB3aXRoIDRLQiBSUENzOgoxYSkgVGhlIGZpbmQrbG9jayt1 bmxvY2sgVk1BIHBhdGggaW4gdGhlIGJhc2UgY2FzZSwgd2l0aG91dCB0aGUgcGVyLXZtYQpsb2Nr IHBhdGNoc2V0LCBpcyBhYm91dCAwLjclIG9mIGN5Y2xlcyBhcyBtZWFzdXJlZCBieSBwZXJmLgox YikgbW1hcF9yZWFkX2xvY2sgKyBtbWFwX3JlYWRfdW5sb2NrIGluIHRoZSBiYXNlIGNhc2UgaXMg YWJvdXQgMC41JQpjeWNsZXMgb3ZlcmFsbCAtIG1vc3Qgb2YgdGhpcyBpcyB3aXRoaW4gdGhlIFRD UCByZWFkIGhvdHBhdGggKGEgc21hbGwKZnJhY3Rpb24gaXMgJ290aGVyJyB1c2FnZSBpbiB0aGUg c3lzdGVtKS4KMmEpIFRoZSBmaW5kK2xvY2srdW5sb2NrIFZNQSBwYXRoLCB3aXRoIHRoZSBwZXIt dm1hIHBhdGNoc2V0IGFuZCBhIHRyaXZpYWwKcGF0Y2ggd3JpdHRlbiB0byB0YWtlIGFkdmFudGFn ZSBvZiBpdCBpbiBUQ1AsIGlzIGFib3V0IDAuNCUgb2YgY3ljbGVzCihkb3duIGZyb20gMC43JSBh Ym92ZSkKMmIpIG1tYXBfcmVhZF9sb2NrICsgbW1hcF9yZWFkX3VubG9jayBpbiB0aGUgcGVyLXZt YSBwYXRjaHNldCBpcyA8IDAuMSUKY3ljbGVzIGFuZCBpcyBvdXQgb2YgdGhlIFRDUCByZWFkIGhv dHBhdGggZW50aXJlbHkgKGRvd24gZnJvbSAwLjUlIGJlZm9yZSwKdGhlIHJlbWFpbmluZyB1c2Fn ZSBpcyB0aGUgJ290aGVyJyB1c2FnZSBpbiB0aGUgc3lzdGVtKS4KU28sIGluIGFkZGl0aW9uIHRv IGVudGlyZWx5IHJlbW92aW5nIGFuIG9uZXJvdXMgc291cmNlIG9mIGNvbnRlbnRpb24sIGl0CmFs c28gcmVkdWNlcyB0aGUgQ1BVIGN5Y2xlcyBvZiBUQ1AgcmVjZWl2ZSB6ZXJvY29weSBieSBhYm91 dCAwLjUlKwooY29tcGFyZWQgdG8gb3ZlcmFsbCBjeWNsZXMgaW4gcGVyZikgZm9yIHRoZSAnc21h bGwnIFJQQyBzY2VuYXJpby4KClRoZSBwYXRjaHNldCBzdHJ1Y3R1cmUgaXM6CjAwMDEtMDAwNzog RW5hYmxlIG1hcGxlLXRyZWUgUkNVIG1vZGUKMDAwOC0wMDMyOiBNYWluIHBlci12bWEgbG9ja3Mg cGF0Y2hzZXQKMDAzMi0wMDMzOiBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zCgpDaGFuZ2VzIHNp bmNlIHYxOgotIE1vdmVkIHZtX2ZsYWdzIG1vZGlmaWVycyBpbnRvIGEgc2VwYXJhdGUgcGF0Y2hz ZXQsIHBlciBEYXZpZGxvaHIgQnVlc28KLSBEcm9wcGVkIFdSSVRFX09OQ0UgaW4gaW5pdF92bV9m bGFncywgcGVyIE1pY2hhbCBIb2NrbwotIE1hZGUgQ09ORklHX1BFUl9WTUFfTE9DSyBub24tY29u ZmlndXJhYmxlLCBwZXIgRGF2aWRsb2hyIEJ1ZXNvCi0gTW92ZWQgZnJlZV9hbm9uX3ZtYV9uYW1l KCkgaW50byBfX3ZtX2FyZWFfZnJlZSgpLCBwZXIgTWljaGFsIEhvY2tvCi0gVXBkYXRlZCBkZXNj cmlwdGlvbiBvZiAwMDExIHBhdGNoLCBwZXIgTWljaGFsIEhvY2tvIFszXQotIFJlbW92ZWQgV1JJ VEVfT05DRSBpbiBtbV9pbml0KCksIHBlciBNaWNoYWwgSG9ja28KLSBSZW5hbWVkIHZtYSBsb2Nr aW5nIHByaW1pdGl2ZXMgdG8gdm1hX3N0YXJ0X3tyZWFkfHdyaXRlfSwgcGVyIE1hdHRoZXcgV2ls Y294Ci0gQWRkZWQgcmVhZCBSQ1Ugc2VjdGlvbiBpbiB2bWFfZW5kX3JlYWQsIHBlciBKYW5uIEhv cm4KLSBVcGRhdGVkIGRlc2NyaXB0aW9uIG9mIDAwMTMgcGF0Y2gsIHBlciBNaWNoYWwgSG9ja28g WzRdCi0gQWRkIGNvbW1lbnQgYWJvdXQgbG9ja2luZyBvcmRlciBpbiBybWFwLmMsIHBlciBKYW5u IEhvcm4KLSBBbWVuZCAwMDE0IHBhdGNoIGRlc2NyaXB0aW9uLCBwZXIgTWljaGFsIEhvY2tvIFs1 XQotIFJlcGxhY2Ugdm1hX2Fzc2VydF9ub19yZWFkZXJzIHdpdGggVk1fQlVHX09OX1ZNQShyd3Nl bV9pc19sb2NrZWQpLApwZXIgTWljaGFsIEhvY2tvCi0gQWRkIGEgc2VwYXJhdGUgbG9vcCBmb3Ig Vk1BIGxvY2tpbmcgaW4gbW1fdGFrZV9hbGxfbG9ja3MsIHBlciBKYW5uIEhvcm4KLSBNb3ZlIHVz ZXJmYXVsdGZkX2FybWVkIGNoZWNrIGFmdGVyIGxvY2tpbmcgdGhlIFZNQSwgcGVyIEphbm4gSG9y bgotIFJlcGxhY2UgY2FsbF9yY3UgYmF0Y2hpbmcgd2l0aCBkaXJlY3QgZnJlZWluZyBmcm9tIGV4 aXRfbW1hcCwKcGVyIExpYW0gUi4gSG93bGV0dAotIERyb3BwZWQgdGhlIHBhdGNoIG9wdGltaXpp bmcgdm1hX2xvY2sgc2l6ZSBmb3Igbm93LCBwZXIgTWljaGFsIEhvY2tvCgpUaGUgcGF0Y2hzZXQg YXBwbGllcyBjbGVhbmx5IG92ZXIgbW0tdW5zdGFibGUgYnJhbmNoLgoKWzFdIGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL2FsbC8yMDIyMDEyODEzMTAwNi42NzcxMi0xLW1pY2hlbEBsZXNwaW5hc3Nl Lm9yZy8KWzJdIGh0dHBzOi8vbHduLm5ldC9BcnRpY2xlcy84OTM5MDYvClszXSBodHRwczovL2xv cmUua2VybmVsLm9yZy9hbGwvWThhNCtiVjFkWU5BaVVrREBkaGNwMjIuc3VzZS5jei8KWzRdIGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC9ZOGhsczRNSDM1M1pubFF1QGRoY3AyMi5zdXNlLmN6 LwpbNV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvYWxsL1k4ZStlZmJKNHJ3OWdvRjBAZGhjcDIy LnN1c2UuY3ovCgpMYXVyZW50IER1Zm91ciAoMSk6CiAgcG93ZXJjL21tOiB0cnkgVk1BIGxvY2st YmFzZWQgcGFnZSBmYXVsdCBoYW5kbGluZyBmaXJzdAoKTGlhbSBIb3dsZXR0ICg0KToKICBtYXBs ZV90cmVlOiBCZSBtb3JlIGNhdXRpb3VzIGFib3V0IGRlYWQgbm9kZXMKICBtYXBsZV90cmVlOiBE ZXRlY3QgZGVhZCBub2RlcyBpbiBtYXNfc3RhcnQoKQogIG1hcGxlX3RyZWU6IEZpeCBmcmVlaW5n IG9mIG5vZGVzIGluIHJjdSBtb2RlCiAgbWFwbGVfdHJlZTogcmVtb3ZlIGV4dHJhIHNtcF93bWIo KSBmcm9tIG1hc19kZWFkX2xlYXZlcygpCgpMaWFtIFIuIEhvd2xldHQgKDMpOgogIG1hcGxlX3Ry ZWU6IEZpeCB3cml0ZSBtZW1vcnkgYmFycmllciBvZiBub2RlcyBvbmNlIGRlYWQgZm9yIFJDVSBt b2RlCiAgbWFwbGVfdHJlZTogQWRkIHNtcF9ybWIoKSB0byBkZWFkIG5vZGUgZGV0ZWN0aW9uCiAg bW06IEVuYWJsZSBtYXBsZSB0cmVlIFJDVSBtb2RlIGJ5IGRlZmF1bHQuCgpNaWNoZWwgTGVzcGlu YXNzZSAoMSk6CiAgbW06IHJjdSBzYWZlIFZNQSBmcmVlaW5nCgpTdXJlbiBCYWdoZGFzYXJ5YW4g KDI0KToKICBtbTogaW50cm9kdWNlIENPTkZJR19QRVJfVk1BX0xPQ0sKICBtbTogbW92ZSBtbWFw X2xvY2sgYXNzZXJ0IGZ1bmN0aW9uIGRlZmluaXRpb25zCiAgbW06IGFkZCBwZXItVk1BIGxvY2sg YW5kIGhlbHBlciBmdW5jdGlvbnMgdG8gY29udHJvbCBpdAogIG1tOiBtYXJrIFZNQSBhcyBiZWlu ZyB3cml0dGVuIHdoZW4gY2hhbmdpbmcgdm1fZmxhZ3MKICBtbS9tbWFwOiBtb3ZlIFZNQSBsb2Nr aW5nIGJlZm9yZSB2bWFfYWRqdXN0X3RyYW5zX2h1Z2UgY2FsbAogIG1tL2todWdlcGFnZWQ6IHdy aXRlLWxvY2sgVk1BIHdoaWxlIGNvbGxhcHNpbmcgYSBodWdlIHBhZ2UKICBtbS9tbWFwOiB3cml0 ZS1sb2NrIFZNQXMgYmVmb3JlIG1lcmdpbmcsIHNwbGl0dGluZyBvciBleHBhbmRpbmcgdGhlbQog IG1tL21tYXA6IHdyaXRlLWxvY2sgVk1BIGJlZm9yZSBzaHJpbmtpbmcgb3IgZXhwYW5kaW5nIGl0 CiAgbW0vbXJlbWFwOiB3cml0ZS1sb2NrIFZNQSB3aGlsZSByZW1hcHBpbmcgaXQgdG8gYSBuZXcg YWRkcmVzcyByYW5nZQogIG1tOiB3cml0ZS1sb2NrIFZNQXMgYmVmb3JlIHJlbW92aW5nIHRoZW0g ZnJvbSBWTUEgdHJlZQogIG1tOiBjb25kaXRpb25hbGx5IHdyaXRlLWxvY2sgVk1BIGluIGZyZWVf cGd0YWJsZXMKICBtbS9tbWFwOiB3cml0ZS1sb2NrIGFkamFjZW50IFZNQXMgaWYgdGhleSBjYW4g Z3JvdyBpbnRvIHVubWFwcGVkIGFyZWEKICBrZXJuZWwvZm9yazogYXNzZXJ0IG5vIFZNQSByZWFk ZXJzIGR1cmluZyBpdHMgZGVzdHJ1Y3Rpb24KICBtbS9tbWFwOiBwcmV2ZW50IHBhZ2VmYXVsdCBo YW5kbGVyIGZyb20gcmFjaW5nIHdpdGggbW11X25vdGlmaWVyCiAgICByZWdpc3RyYXRpb24KICBt bTogaW50cm9kdWNlIGxvY2tfdm1hX3VuZGVyX3JjdSB0byBiZSB1c2VkIGZyb20gYXJjaC1zcGVj aWZpYyBjb2RlCiAgbW06IGZhbGwgYmFjayB0byBtbWFwX2xvY2sgaWYgdm1hLT5hbm9uX3ZtYSBp cyBub3QgeWV0IHNldAogIG1tOiBhZGQgRkFVTFRfRkxBR19WTUFfTE9DSyBmbGFnCiAgbW06IHBy ZXZlbnQgZG9fc3dhcF9wYWdlIGZyb20gaGFuZGxpbmcgcGFnZSBmYXVsdHMgdW5kZXIgVk1BIGxv Y2sKICBtbTogcHJldmVudCB1c2VyZmF1bHRzIHRvIGJlIGhhbmRsZWQgdW5kZXIgcGVyLXZtYSBs b2NrCiAgbW06IGludHJvZHVjZSBwZXItVk1BIGxvY2sgc3RhdGlzdGljcwogIHg4Ni9tbTogdHJ5 IFZNQSBsb2NrLWJhc2VkIHBhZ2UgZmF1bHQgaGFuZGxpbmcgZmlyc3QKICBhcm02NC9tbTogdHJ5 IFZNQSBsb2NrLWJhc2VkIHBhZ2UgZmF1bHQgaGFuZGxpbmcgZmlyc3QKICBtbS9tbWFwOiBmcmVl IHZtX2FyZWFfc3RydWN0IHdpdGhvdXQgY2FsbF9yY3UgaW4gZXhpdF9tbWFwCiAgbW06IHNlcGFy YXRlIHZtYS0+bG9jayBmcm9tIHZtX2FyZWFfc3RydWN0CgogYXJjaC9hcm02NC9LY29uZmlnICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogYXJjaC9hcm02NC9tbS9mYXVsdC5jICAgICAgICAg ICAgICAgICAgfCAgMzYgKysrKysrCiBhcmNoL3Bvd2VycGMvbW0vZmF1bHQuYyAgICAgICAgICAg ICAgICB8ICA0MSArKysrKysrCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvS2NvbmZp ZyB8ICAgMSArCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvS2NvbmZpZyB8ICAgMSAr CiBhcmNoL3g4Ni9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBhcmNoL3g4 Ni9tbS9mYXVsdC5jICAgICAgICAgICAgICAgICAgICB8ICAzNiArKysrKysKIGluY2x1ZGUvbGlu dXgvbW0uaCAgICAgICAgICAgICAgICAgICAgIHwgIDk1ICsrKysrKysrKysrKysrKy0KIGluY2x1 ZGUvbGludXgvbW1fdHlwZXMuaCAgICAgICAgICAgICAgIHwgIDI5ICsrKystCiBpbmNsdWRlL2xp bnV4L21tYXBfbG9jay5oICAgICAgICAgICAgICB8ICAzNyArKysrKy0tCiBpbmNsdWRlL2xpbnV4 L3ZtX2V2ZW50X2l0ZW0uaCAgICAgICAgICB8ICAgNiArCiBpbmNsdWRlL2xpbnV4L3Ztc3RhdC5o ICAgICAgICAgICAgICAgICB8ICAgNiArCiBrZXJuZWwvZm9yay5jICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA5OSArKysrKysrKysrKysrKy0tLQogbGliL21hcGxlX3RyZWUuYyAgICAgICAg ICAgICAgICAgICAgICAgfCAxNDUgKysrKysrKysrKysrKysrKysrKystLS0tLQogbW0vS2NvbmZp ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTIgKysKIG1tL0tjb25maWcuZGVidWcg ICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiBtbS9pbml0LW1tLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBtbS9pbnRlcm5hbC5oICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogbW0va2h1Z2VwYWdlZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDUgKwogbW0vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzUgKysrKysr KysrKysrLQogbW0vbW1hcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzAgKysr KysrKysrLS0tCiBtbS9tcmVtYXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBtbS9ub21tdS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCiBtbS9ybWFw LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMSArKystLS0KIG1tL3Ztc3RhdC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHRvb2xzL3Rlc3RpbmcvcmFkaXgt dHJlZS9tYXBsZS5jICAgICAgIHwgIDE2ICsrKwogMjYgZmlsZXMgY2hhbmdlZCwgNjc3IGluc2Vy dGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKLS0gCjIuMzkuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK