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 X-Spam-Level: X-Spam-Status: No, score=-2.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 60616C432C0 for ; Fri, 22 Nov 2019 15:06:26 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2B1B82071C for ; Fri, 22 Nov 2019 15:06:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=lca.pw header.i=@lca.pw header.b="oKs4Z5Sl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2B1B82071C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lca.pw Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id EC6C4873B6; Fri, 22 Nov 2019 15:06:25 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vmD+r69FNnoK; Fri, 22 Nov 2019 15:06:25 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 0169585BB1; Fri, 22 Nov 2019 15:06:24 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id D30C4C1DD8; Fri, 22 Nov 2019 15:06:24 +0000 (UTC) Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id C6743C18DA for ; Fri, 22 Nov 2019 15:06:23 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id C16BA88293 for ; Fri, 22 Nov 2019 15:06:23 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sf2wbXB42P4X for ; Fri, 22 Nov 2019 15:06:22 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com [209.85.160.194]) by whitealder.osuosl.org (Postfix) with ESMTPS id 8916088270 for ; Fri, 22 Nov 2019 15:06:22 +0000 (UTC) Received: by mail-qt1-f194.google.com with SMTP id g24so1306026qtq.11 for ; Fri, 22 Nov 2019 07:06:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=OmzPhk5Yyy7WolfhIXiZJLsVO7n+CH8VihE0LLeqRTQ=; b=oKs4Z5SlBXUmL/uMk286NbOKufC/Y+aGw0d7HrAQcGeV7i2dRuJOnB/N1ZgTFFBzOt ZoU+iNhGTnAut3ksC6+0vuAufn12yeMmU97A4WlUCACClJ97evqlF4K42VkwF2ibDd5g d2RS2uwVSZbaZ2nK44z9kaZG/SGD5fnfE1xJJPa8WLx4HFwaHrDNdcso+t+Y1FYc56rM xpNyO7j7G6M7iJs3nPzpM2clszt8Cd4Y7QS7TefUWWBtuEbRzRe6RHyeQeOCggERp4VS /d24jTqh5u7WctddAs1x2FtZz1U/ssXdMOVUatStlRjx8yBq4xuUALt9fd/ar4Xj0w/J YI0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=OmzPhk5Yyy7WolfhIXiZJLsVO7n+CH8VihE0LLeqRTQ=; b=CXiAXCOPFGVPQFgRaTnzbkDluvmrTdyU7PNR4yXTv5nvKUv0YhVpaM7w2LKGFA3Lp4 f8PNRrXPY1T5pMoemXvl8VXRmGHQiIHOc9WZGJP8Rso5pdFBxaLUKHUNxDq07irFqD12 M32J8bBWn+kQzTpzSaMsYMRe33V2cFJxyhbtjK1VicOcdSsUiygJCBnaTEsVURoT75sB TO9qEMSsu1X14PmK04NFYE92xfOliMOK5v0oYfORnyeeKdU0Z+q/kaaTbdL3pKBqXCQc jv2tLCZN5ArrQ0IycyomIQG+SxsB0XfdL1ms+PmFBq16+0WUlypOIYwixpzsC7MtV4oU XJQA== X-Gm-Message-State: APjAAAXN4RIQeF3ZU7KfaLszf7x/FGgrGhn8m/W+vor1h2lWmcBan8yO JE5/cJazL+TO1exlKyZH3RxdBw== X-Google-Smtp-Source: APXvYqzCevE0A/1bfl+JMaiiwfk+z2ye83k9BU4q7Y44lJg6cBIrsRO/uTBPuppULvSxOYhk8bpSqQ== X-Received: by 2002:ac8:7a83:: with SMTP id x3mr3837022qtr.141.1574435181217; Fri, 22 Nov 2019 07:06:21 -0800 (PST) Received: from dhcp-41-57.bos.redhat.com (nat-pool-bos-t.redhat.com. [66.187.233.206]) by smtp.gmail.com with ESMTPSA id h186sm3105239qkf.64.2019.11.22.07.06.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Nov 2019 07:06:20 -0800 (PST) Message-ID: <1574435179.9585.21.camel@lca.pw> Subject: "Revisit iommu_insert_resv_region() implementation" causes use-after-free From: Qian Cai To: Joerg Roedel , Eric Auger Date: Fri, 22 Nov 2019 10:06:19 -0500 X-Mailer: Evolution 3.22.6 (3.22.6-10.el7) Mime-Version: 1.0 Cc: iommu@lists.linux-foundation.org, Christoph Hellwig , linux-kernel@vger.kernel.org X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" UmVhZCBmaWxlcyB1bmRlciAvc3lzL2tlcm5lbC9pb21tdV9ncm91cHMvIHRyaWdnZXJzIGFuIHVz ZS1hZnRlci1mcmVlLiBSZXZlcnRlZAp0aGUgY29tbWl0IDRkYmQyNThmZjYzZSAoImlvbW11OiBS ZXZpc2l0IGlvbW11X2luc2VydF9yZXN2X3JlZ2lvbigpCmltcGxlbWVudGF0aW9uIikgZml4ZWQg dGhlIGlzc3VlLgoKLyogbm8gbWVyZ2UgbmVlZGVkIG9uIGVsZW1lbnRzIG9mIGRpZmZlcmVudCB0 eXBlcyB0aGFuIEBuciAqLwppZiAoaXRlci0+dHlwZSAhPSBuci0+dHlwZSkgewoJbGlzdF9tb3Zl X3RhaWwoJml0ZXItPmxpc3QsICZzdGFjayk7Cgljb250aW51ZTsKClvCoMKgMTYwLjE1Njk2NF1b IFQzMTAwXSBCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbgppb21tdV9pbnNlcnRfcmVzdl9y ZWdpb24rMHgzNGIvMHg1MjAKW8KgwqAxNjAuMTk3NzU4XVsgVDMxMDBdIFJlYWQgb2Ygc2l6ZSA0 IGF0IGFkZHIgZmZmZjg4ODdhYmE3ODQ2NCBieSB0YXNrIGNhdC8zMTAwClvCoMKgMTYwLjIzMDY0 NV1bIFQzMTAwXcKgClvCoMKgMTYwLjI0MDkwN11bIFQzMTAwXSBDUFU6IDE0IFBJRDogMzEwMCBD b21tOiBjYXQgTm90IHRhaW50ZWQgNS40LjAtcmM4LW5leHQtCjIwMTkxMTIyKyAjMTEKW8KgwqAx NjAuMjc4NjcxXVsgVDMxMDBdIEhhcmR3YXJlIG5hbWU6IEhQIFByb0xpYW50IFhMNDIwIEdlbjkv UHJvTGlhbnQgWEw0MjAKR2VuOSwgQklPUyBVMTkgMTIvMjcvMjAxNQpbwqDCoDE2MC4zMjA1ODld WyBUMzEwMF0gQ2FsbCBUcmFjZToKW8KgwqAxNjAuMzM1MjI5XVsgVDMxMDBdwqDCoGR1bXBfc3Rh Y2srMHhhMC8weGVhClvCoMKgMTYwLjM1NDAxMV1bIFQzMTAwXcKgwqBwcmludF9hZGRyZXNzX2Rl c2NyaXB0aW9uLmNvbnN0cHJvcC41LmNvbGQuNysweDkvMHgzODQKW8KgwqAxNjAuMzg2NTY5XVsg VDMxMDBdwqDCoF9fa2FzYW5fcmVwb3J0LmNvbGQuOCsweDdhLzB4YzAKW8KgwqAxNjAuNDA5ODEx XVsgVDMxMDBdwqDCoD8gaW9tbXVfaW5zZXJ0X3Jlc3ZfcmVnaW9uKzB4MzRiLzB4NTIwClvCoMKg MTYwLjQzNTY2OF1bIFQzMTAwXcKgwqBrYXNhbl9yZXBvcnQrMHgxMi8weDIwClvCoMKgMTYwLjQ1 NTM4N11bIFQzMTAwXcKgwqBfX2FzYW5fbG9hZDQrMHg5NS8weGEwClvCoMKgMTYwLjQ3NDgwOF1b IFQzMTAwXcKgwqBpb21tdV9pbnNlcnRfcmVzdl9yZWdpb24rMHgzNGIvMHg1MjAKW8KgwqAxNjAu NTAwMjI4XVsgVDMxMDBdwqDCoD8gaW9tbXVfYnVzX25vdGlmaWVyKzB4ZTAvMHhlMApbwqDCoDE2 MC41MjI5MDRdWyBUMzEwMF3CoMKgPyBpbnRlbF9pb21tdV9nZXRfcmVzdl9yZWdpb25zKzB4MzQ4 LzB4NDAwClvCoMKgMTYwLjU1MDQ2MV1bIFQzMTAwXcKgwqBpb21tdV9nZXRfZ3JvdXBfcmVzdl9y ZWdpb25zKzB4MTZkLzB4MmYwClvCoMKgMTYwLjU3NzYxMV1bIFQzMTAwXcKgwqA/IGlvbW11X2lu c2VydF9yZXN2X3JlZ2lvbisweDUyMC8weDUyMApbwqDCoDE2MC42MDM3NTZdWyBUMzEwMF3CoMKg PyByZWdpc3Rlcl9sb2NrX2NsYXNzKzB4OTQwLzB4OTQwClvCoMKgMTYwLjYyODI2NV1bIFQzMTAw XcKgwqBpb21tdV9ncm91cF9zaG93X3Jlc3ZfcmVnaW9ucysweDhkLzB4MWYwClvCoMKgMTYwLjY1 NTM3MF1bIFQzMTAwXcKgwqA/IGlvbW11X2dldF9ncm91cF9yZXN2X3JlZ2lvbnMrMHgyZjAvMHgy ZjAKW8KgwqAxNjAuNjg0MTY4XVsgVDMxMDBdwqDCoGlvbW11X2dyb3VwX2F0dHJfc2hvdysweDM0 LzB4NTAKW8KgwqAxNjAuNzA4Mzk1XVsgVDMxMDBdwqDCoHN5c2ZzX2tmX3NlcV9zaG93KzB4MTFj LzB4MjIwClvCoMKgMTYwLjczMTc1OF1bIFQzMTAwXcKgwqA/IGlvbW11X2RlZmF1bHRfcGFzc3Ro cm91Z2grMHgyMC8weDIwClvCoMKgMTYwLjc1Njg5OF1bIFQzMTAwXcKgwqBrZXJuZnNfc2VxX3No b3crMHhhNC8weGIwClvCoMKgMTYwLjc3NzA5N11bIFQzMTAwXcKgwqBzZXFfcmVhZCsweDI3ZS8w eDcxMApbwqDCoDE2MC43OTUxOTVdWyBUMzEwMF3CoMKga2VybmZzX2ZvcF9yZWFkKzB4N2QvMHgy YzAKW8KgwqAxNjAuODE1MzQ5XVsgVDMxMDBdwqDCoF9fdmZzX3JlYWQrMHg1MC8weGEwClvCoMKg MTYwLjgzNDE1NF1bIFQzMTAwXcKgwqB2ZnNfcmVhZCsweGNiLzB4MWUwClvCoMKgMTYwLjg1MjMz Ml1bIFQzMTAwXcKgwqBrc3lzX3JlYWQrMHhjNi8weDE2MApbwqDCoDE2MC44NzEwMjhdWyBUMzEw MF3CoMKgPyBrZXJuZWxfd3JpdGUrMHhjMC8weGMwClvCoMKgMTYwLjg5MTMwN11bIFQzMTAwXcKg wqA/IGRvX3N5c2NhbGxfNjQrMHg3OS8weGFlYwpbwqDCoDE2MC45MTI0NDZdWyBUMzEwMF3CoMKg PyBkb19zeXNjYWxsXzY0KzB4NzkvMHhhZWMKW8KgwqAxNjAuOTMzNjQwXVsgVDMxMDBdwqDCoF9f eDY0X3N5c19yZWFkKzB4NDMvMHg1MApbwqDCoDE2MC45NTM5NTddWyBUMzEwMF3CoMKgZG9fc3lz Y2FsbF82NCsweGNjLzB4YWVjClvCoMKgMTYwLjk3NDMyMl1bIFQzMTAwXcKgwqA/IHRyYWNlX2hh cmRpcnFzX29uX3RodW5rKzB4MWEvMHgxYwpbwqDCoDE2MC45OTkxMzBdWyBUMzEwMF3CoMKgPyBz eXNjYWxsX3JldHVybl9zbG93cGF0aCsweDU4MC8weDU4MApbwqDCoDE2MS4wMjQ3NTNdWyBUMzEw MF3CoMKgPyBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHgzZS8weGJlClvCoMKgMTYx LjA1MjQxNl1bIFQzMTAwXcKgwqA/IHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIrMHgzYS8weDE1 MApbwqDCoDE2MS4wNzg0MDBdWyBUMzEwMF3CoMKgPyB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmsr MHgxYS8weDFjClvCoMKgMTYxLjEwMzcxMV1bIFQzMTAwXcKgwqBlbnRyeV9TWVNDQUxMXzY0X2Fm dGVyX2h3ZnJhbWUrMHg0OS8weGJlClvCoMKgMTYxLjEzMDc5M11bIFQzMTAwXSBSSVA6IDAwMzM6 MHg3ZjMzZTBkODlkNzUKW8KgwqAxNjEuMTUwNzMyXVsgVDMxMDBdIENvZGU6IGZlIGZmIGZmIDUw IDQ4IDhkIDNkIDRhIGRjIDA5IDAwIGU4IDI1IDBlIDAyIDAwIDBmCjFmIDQ0IDAwIDAwIGYzIDBm IDFlIGZhIDQ4IDhkIDA1IGE1IDU5IDJkIDAwIDhiIDAwIDg1IGMwIDc1IDBmIDMxIGMwIDBmIDA1 IDw0OD4KM2QgMDAgZjAgZmYgZmYgNzcgNTMgYzMgNjYgOTAgNDEgNTQgNDkgODkgZDQgNTUgNDgg ODkgZjUgNTMgODkKW8KgwqAxNjEuMjQ1NTAzXVsgVDMxMDBdIFJTUDogMDAyYjowMDAwN2ZmZjg4 ZjBkYjg4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6CjAwMDAwMDAwMDAwMDAwMDAKW8KgwqAx NjEuMjg0NTQ3XVsgVDMxMDBdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAw MjAwMDAgUkNYOgowMDAwN2YzM2UwZDg5ZDc1ClvCoMKgMTYxLjMyMTEyM11bIFQzMTAwXSBSRFg6 IDAwMDAwMDAwMDAwMjAwMDAgUlNJOiAwMDAwN2YzM2UxMjAxMDAwIFJESToKMDAwMDAwMDAwMDAw MDAwMwpbwqDCoDE2MS4zNTc2MTddWyBUMzEwMF0gUkJQOiAwMDAwN2YzM2UxMjAxMDAwIFIwODog MDAwMDAwMDBmZmZmZmZmZiBSMDk6CjAwMDAwMDAwMDAwMDAwMDAKW8KgwqAxNjEuMzk0MTczXVsg VDMxMDBdIFIxMDogMDAwMDAwMDAwMDAwMDAyMiBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOgow MDAwN2YzM2UxMjAxMDAwClvCoMKgMTYxLjQzMDczNl1bIFQzMTAwXSBSMTM6IDAwMDAwMDAwMDAw MDAwMDMgUjE0OiAwMDAwMDAwMDAwMDAwZmZmIFIxNToKMDAwMDAwMDAwMDAyMDAwMApbwqDCoDE2 MS40NjczMzddWyBUMzEwMF3CoApbwqDCoDE2MS40Nzc1MjldWyBUMzEwMF0gQWxsb2NhdGVkIGJ5 IHRhc2sgMzEwMDoKW8KgwqAxNjEuNDk3MTMzXVsgVDMxMDBdwqDCoHNhdmVfc3RhY2srMHgyMS8w eDkwClvCoMKgMTYxLjUxNTc3N11bIFQzMTAwXcKgwqBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9w LjEzKzB4YzEvMHhkMApbwqDCoDE2MS41NDE3NDNdWyBUMzEwMF3CoMKga2FzYW5fa21hbGxvYysw eDkvMHgxMApbwqDCoDE2MS41NjEzMzBdWyBUMzEwMF3CoMKga21lbV9jYWNoZV9hbGxvY190cmFj ZSsweDFmOC8weDQ3MApbwqDCoDE2MS41ODU5NDldWyBUMzEwMF3CoMKgaW9tbXVfaW5zZXJ0X3Jl c3ZfcmVnaW9uKzB4ZWIvMHg1MjAKW8KgwqAxNjEuNjEwODc2XVsgVDMxMDBdwqDCoGlvbW11X2dl dF9ncm91cF9yZXN2X3JlZ2lvbnMrMHgxNmQvMHgyZjAKW8KgwqAxNjEuNjM4MzE4XVsgVDMxMDBd wqDCoGlvbW11X2dyb3VwX3Nob3dfcmVzdl9yZWdpb25zKzB4OGQvMHgxZjAKW8KgwqAxNjEuNjY1 MzIyXVsgVDMxMDBdwqDCoGlvbW11X2dyb3VwX2F0dHJfc2hvdysweDM0LzB4NTAKW8KgwqAxNjEu Njg4NTI2XVsgVDMxMDBdwqDCoHN5c2ZzX2tmX3NlcV9zaG93KzB4MTFjLzB4MjIwClvCoMKgMTYx LjcxMTk5Ml1bIFQzMTAwXcKgwqBrZXJuZnNfc2VxX3Nob3crMHhhNC8weGIwClvCoMKgMTYxLjcz NDI1Ml1bIFQzMTAwXcKgwqBzZXFfcmVhZCsweDI3ZS8weDcxMApbwqDCoDE2MS43NTQ0MTJdWyBU MzEwMF3CoMKga2VybmZzX2ZvcF9yZWFkKzB4N2QvMHgyYzAKW8KgwqAxNjEuNzc1NDkzXVsgVDMx MDBdwqDCoF9fdmZzX3JlYWQrMHg1MC8weGEwClvCoMKgMTYxLjc5NDMyOF1bIFQzMTAwXcKgwqB2 ZnNfcmVhZCsweGNiLzB4MWUwClvCoMKgMTYxLjgxMjU1OV1bIFQzMTAwXcKgwqBrc3lzX3JlYWQr MHhjNi8weDE2MApbwqDCoDE2MS44MzE1NTRdWyBUMzEwMF3CoMKgX194NjRfc3lzX3JlYWQrMHg0 My8weDUwClvCoMKgMTYxLjg1MTc3Ml1bIFQzMTAwXcKgwqBkb19zeXNjYWxsXzY0KzB4Y2MvMHhh ZWMKW8KgwqAxNjEuODcyMDk4XVsgVDMxMDBdwqDCoGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdm cmFtZSsweDQ5LzB4YmUKW8KgwqAxNjEuODk4OTE5XVsgVDMxMDBdwqAKW8KgwqAxNjEuOTA5MTEz XVsgVDMxMDBdIEZyZWVkIGJ5IHRhc2sgMzEwMDoKW8KgwqAxNjEuOTI3MDcwXVsgVDMxMDBdwqDC oHNhdmVfc3RhY2srMHgyMS8weDkwClvCoMKgMTYxLjk0NTcxMV1bIFQzMTAwXcKgwqBfX2thc2Fu X3NsYWJfZnJlZSsweDExYy8weDE3MApbwqDCoDE2MS45NjgxMTJdWyBUMzEwMF3CoMKga2FzYW5f c2xhYl9mcmVlKzB4ZS8weDEwClvCoMKgMTYxLjk4ODYwMV1bIFQzMTAwXcKgwqBzbGFiX2ZyZWVf ZnJlZWxpc3RfaG9vaysweDVmLzB4MWQwClvCoMKgMTYyLjAxMjkxOF1bIFQzMTAwXcKgwqBrZnJl ZSsweGU5LzB4NDEwClvCoMKgMTYyLjAyOTQ1NF1bIFQzMTAwXcKgwqBpb21tdV9pbnNlcnRfcmVz dl9yZWdpb24rMHg0N2QvMHg1MjAKW8KgwqAxNjIuMDUzNzAxXVsgVDMxMDBdwqDCoGlvbW11X2dl dF9ncm91cF9yZXN2X3JlZ2lvbnMrMHgxNmQvMHgyZjAKW8KgwqAxNjIuMDc5NjcxXVsgVDMxMDBd wqDCoGlvbW11X2dyb3VwX3Nob3dfcmVzdl9yZWdpb25zKzB4OGQvMHgxZjAKW8KgwqAxNjIuMTA1 NDg0XVsgVDMxMDBdwqDCoGlvbW11X2dyb3VwX2F0dHJfc2hvdysweDM0LzB4NTAKW8KgwqAxNjIu MTI3NzA5XVsgVDMxMDBdwqDCoHN5c2ZzX2tmX3NlcV9zaG93KzB4MTFjLzB4MjIwClvCoMKgMTYy LjE0OTI1MF1bIFQzMTAwXcKgwqBrZXJuZnNfc2VxX3Nob3crMHhhNC8weGIwClvCoMKgMTYyLjE2 OTA4NV1bIFQzMTAwXcKgwqBzZXFfcmVhZCsweDI3ZS8weDcxMApbwqDCoDE2Mi4xODcwMzhdWyBU MzEwMF3CoMKga2VybmZzX2ZvcF9yZWFkKzB4N2QvMHgyYzAKW8KgwqAxNjIuMjA3MzkxXVsgVDMx MDBdwqDCoF9fdmZzX3JlYWQrMHg1MC8weGEwClvCoMKgMTYyLjIyNzgyOV1bIFQzMTAwXcKgwqB2 ZnNfcmVhZCsweGNiLzB4MWUwClvCoMKgMTYyLjI0Nzc4OF1bIFQzMTAwXcKgwqBrc3lzX3JlYWQr MHhjNi8weDE2MApbwqDCoDE2Mi4yNjU0NzFdWyBUMzEwMF3CoMKgX194NjRfc3lzX3JlYWQrMHg0 My8weDUwClvCoMKgMTYyLjI4NTA0MV1bIFQzMTAwXcKgwqBkb19zeXNjYWxsXzY0KzB4Y2MvMHhh ZWMKW8KgwqAxNjIuMzA0NjI3XVsgVDMxMDBdwqDCoGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdm cmFtZSsweDQ5LzB4YmUKW8KgwqAxNjIuMzMwNDI5XVsgVDMxMDBdwqAKW8KgwqAxNjIuMzQwMTk5 XVsgVDMxMDBdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdApmZmZm ODg4N2FiYTc4NDQwClvCoMKgMTYyLjM0MDE5OV1bIFQzMTAwXcKgwqB3aGljaCBiZWxvbmdzIHRv IHRoZSBjYWNoZSBrbWFsbG9jLTY0IG9mIHNpemUgNjQKW8KgwqAxNjIuNDAyMDUwXVsgVDMxMDBd IFRoZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgMzYgYnl0ZXMgaW5zaWRlIG9mClvCoMKgMTYy LjQwMjA1MF1bIFQzMTAwXcKgwqA2NC1ieXRlIHJlZ2lvbiBbZmZmZjg4ODdhYmE3ODQ0MCwgZmZm Zjg4ODdhYmE3ODQ4MCkKW8KgwqAxNjIuNDYwMTI3XVsgVDMxMDBdIFRoZSBidWdneSBhZGRyZXNz IGJlbG9uZ3MgdG8gdGhlIHBhZ2U6ClvCoMKgMTYyLjQ4NDY5Nl1bIFQzMTAwXSBwYWdlOmZmZmZl YTAwMWVhZTllMDAgcmVmY291bnQ6MSBtYXBjb3VudDowCm1hcHBpbmc6ZmZmZjg4ODIwN2MwMmFj MCBpbmRleDoweGZmZmY4ODg3YWJhNzhlNDAKW8KgwqAxNjIuNTMxMDQ1XVsgVDMxMDBdIHJhdzog MDE1ZmZmZTAwMDAwMDIwMCBmZmZmODg4NDg3YzAwNzQwIGZmZmY4ODg0ODdjMDA3NDAKZmZmZjg4 ODIwN2MwMmFjMApbwqDCoDE2Mi41Njk0NTVdWyBUMzEwMF0gcmF3OiBmZmZmODg4N2FiYTc4ZTQw IDAwMDAwMDAwMDAwODAwMDMgMDAwMDAwMDFmZmZmZmZmZgowMDAwMDAwMDAwMDAwMDAwClvCoMKg MTYyLjYwNzgwMV1bIFQzMTAwXSBwYWdlIGR1bXBlZCBiZWNhdXNlOiBrYXNhbjogYmFkIGFjY2Vz cyBkZXRlY3RlZApbwqDCoDE2Mi42MzY2MDNdWyBUMzEwMF0gcGFnZV9vd25lciB0cmFja3MgdGhl IHBhZ2UgYXMgYWxsb2NhdGVkClvCoMKgMTYyLjY2MTYzNF1bIFQzMTAwXSBwYWdlIGxhc3QgYWxs b2NhdGVkIHZpYSBvcmRlciAwLCBtaWdyYXRldHlwZSBVbm1vdmFibGUsCmdmcF9tYXNrIDB4MTJj YzAoR0ZQX0tFUk5FTHxfX0dGUF9OT1dBUk58X19HRlBfTk9SRVRSWSkKW8KgwqAxNjIuNzE2MzEw XVsgVDMxMDBdwqDCoHByZXBfbmV3X3BhZ2UrMHgyZWQvMHgzMTAKW8KgwqAxNjIuNzM5MTU4XVsg VDMxMDBdwqDCoGdldF9wYWdlX2Zyb21fZnJlZWxpc3QrMHgyMGJiLzB4MzA5MApbwqDCoDE2Mi43 NjUwMTddWyBUMzEwMF3CoMKgX19hbGxvY19wYWdlc19ub2RlbWFzaysweDJlNC8weDcyMApbwqDC oDE2Mi43ODg0NDBdWyBUMzEwMF3CoMKgYWxsb2NfcGFnZXNfY3VycmVudCsweDljLzB4MTEwClvC oMKgMTYyLjgxMDMyNF1bIFQzMTAwXcKgwqBhbGxvY19zbGFiX3BhZ2UrMHhjOS8weDRlMApbwqDC oDE2Mi44MzEwNDRdWyBUMzEwMF3CoMKgYWxsb2NhdGVfc2xhYisweDcwLzB4NWQwClvCoMKgMTYy Ljg1MTQ1MF1bIFQzMTAwXcKgwqBuZXdfc2xhYisweDQ2LzB4NzAKW8KgwqAxNjIuODY5MzI2XVsg VDMxMDBdwqDCoF9fX3NsYWJfYWxsb2MrMHg0YWIvMHg3YjAKW8KgwqAxNjIuODg5NTU0XVsgVDMx MDBdwqDCoF9fc2xhYl9hbGxvYysweDQzLzB4NzAKW8KgwqAxNjIuOTA4NDMwXVsgVDMxMDBdwqDC oGttZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHgyZjEvMHg0NzAKW8KgwqAxNjIuOTMyMDM2XVsgVDMx MDBdwqDCoGlvbW11X2luc2VydF9yZXN2X3JlZ2lvbisweGViLzB4NTIwClvCoMKgMTYyLjk1NjE3 OV1bIFQzMTAwXcKgwqBpb21tdV9nZXRfZ3JvdXBfcmVzdl9yZWdpb25zKzB4MTZkLzB4MmYwClvC oMKgMTYyLjk4MjA4M11bIFQzMTAwXcKgwqBpb21tdV9ncm91cF9zaG93X3Jlc3ZfcmVnaW9ucysw eDhkLzB4MWYwClvCoMKgMTYzLjAwODM3M11bIFQzMTAwXcKgwqBpb21tdV9ncm91cF9hdHRyX3No b3crMHgzNC8weDUwClvCoMKgMTYzLjAzMDU1N11bIFQzMTAwXcKgwqBzeXNmc19rZl9zZXFfc2hv dysweDExYy8weDIyMApbwqDCoDE2My4wNTIwMzhdWyBUMzEwMF3CoMKga2VybmZzX3NlcV9zaG93 KzB4YTQvMHhiMApbwqDCoDE2My4wNzIxNzldWyBUMzEwMF0gcGFnZSBsYXN0IGZyZWUgc3RhY2sg dHJhY2U6ClvCoMKgMTYzLjA5MjYxMl1bIFQzMTAwXcKgwqBfX2ZyZWVfcGFnZXNfb2srMHhhM2Uv MHhiMjAKW8KgwqAxNjMuMTEzMzYxXVsgVDMxMDBdwqDCoF9fZnJlZV9wYWdlcysweDk0LzB4ZDAK W8KgwqAxNjMuMTMyMTk4XVsgVDMxMDBdwqDCoF9fZnJlZV9zbGFiKzB4MTc3LzB4NTIwClvCoMKg MTYzLjE1MDkyMl1bIFQzMTAwXcKgwqBkaXNjYXJkX3NsYWIrMHg0MS8weDgwClvCoMKgMTYzLjE2 OTcwOF1bIFQzMTAwXcKgwqBfX3NsYWJfZnJlZSsweDRiNy8weDUyMApbwqDCoDE2My4xODg4NTZd WyBUMzEwMF3CoMKgX19fY2FjaGVfZnJlZSsweGMzLzB4MTIwClvCoMKgMTYzLjIwODQ1Ml1bIFQz MTAwXcKgwqBxbGlzdF9mcmVlX2FsbCsweDQ0LzB4YTAKW8KgwqAxNjMuMjI4MzM1XVsgVDMxMDBd wqDCoHF1YXJhbnRpbmVfcmVkdWNlKzB4MWIwLzB4MjQwClvCoMKgMTYzLjI1MzEyMF1bIFQzMTAw XcKgwqBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9wLjEzKzB4OTgvMHhkMApbwqDCoDE2My4yNzk4 NjVdWyBUMzEwMF3CoMKga2FzYW5fc2xhYl9hbGxvYysweDExLzB4MjAKW8KgwqAxNjMuMzAwMTc1 XVsgVDMxMDBdwqDCoGttZW1fY2FjaGVfYWxsb2MrMHgxN2EvMHg0NTAKW8KgwqAxNjMuMzIxMzcz XVsgVDMxMDBdwqDCoHB0bG9ja19hbGxvYysweDIwLzB4NTAKW8KgwqAxNjMuMzQwMTY4XVsgVDMx MDBdwqDCoHB0ZV9hbGxvY19vbmUrMHg0MC8weGYwClvCoMKgMTYzLjM1OTMxMF1bIFQzMTAwXcKg wqBfX2hhbmRsZV9tbV9mYXVsdCsweDEyNTcvMHgxMzAwClvCoMKgMTYzLjM4MTYwM11bIFQzMTAw XcKgwqBoYW5kbGVfbW1fZmF1bHQrMHgyMDUvMHg0YzAKW8KgwqAxNjMuNDAyMzEyXVsgVDMxMDBd wqDCoF9fZG9fcGFnZV9mYXVsdCsweDI5Yy8weDY0MApbwqDCoDE2My40MjMwODJdWyBUMzEwMF3C oApbwqDCoDE2My40MzI1NTZdWyBUMzEwMF0gTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kg YWRkcmVzczoKW8KgwqAxNjMuNDU3MjkyXVsgVDMxMDBdwqDCoGZmZmY4ODg3YWJhNzgzMDA6IGZj IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjCmZjIGZjIGZjClvCoMKgMTYzLjQ5 Mjk5NF1bIFQzMTAwXcKgwqBmZmZmODg4N2FiYTc4MzgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYwpmYyBmYyBmYwpbwqDCoDE2My41Mjg1MzBdWyBUMzEwMF0gPmZmZmY4 ODg3YWJhNzg0MDA6IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZiIGZiIGZiIGZiIGZiCmZiIGZi IGZiClvCoMKgMTYzLjU2NTAyM11bIFQzMTAwXcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBeClvCoMKgMTYzLjU5ODAyN11bIFQzMTAwXcKgwqBm ZmZmODg4N2FiYTc4NDgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpm YyBmYyBmYwpbwqDCoDE2My42MzM3NDddWyBUMzEwMF3CoMKgZmZmZjg4ODdhYmE3ODUwMDogZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKZmMgZmMgZmMKW8KgwqAxNjMuNjY5 ODI4XVsgVDMxMDBdCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpbwqDCoDE2My43MDU0MTddWyBUMzEwMF0gRGlzYWJsaW5n IGxvY2sgZGVidWdnaW5nIGR1ZSB0byBrZXJuZWwgdGFpbnQKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxpc3Rz LmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lvbW11