From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 31AE8A04B1; Tue, 24 Nov 2020 07:36:04 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9414AC910; Tue, 24 Nov 2020 07:36:02 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id B14FEC90E for ; Tue, 24 Nov 2020 07:36:00 +0100 (CET) IronPort-SDR: ul27sO6vYEbiGZQoJssq4B67fvZ+ZT55Vg+08EIhZnB6atR2qJPmpjq23x/e7M/L0mneVzOnDf uKeQwONmBotQ== X-IronPort-AV: E=McAfee;i="6000,8403,9814"; a="236036636" X-IronPort-AV: E=Sophos;i="5.78,365,1599548400"; d="txt'?scan'208";a="236036636" X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Nov 2020 22:35:58 -0800 IronPort-SDR: +0IdsOz35GRD7QdchAuKy/Pw9eVBfGzwDDZ0/60HhJGgKxYVjmwqs/TUDBsleKj80AR6YS6Rdu /wRS6t5dRPJw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,365,1599548400"; d="txt'?scan'208";a="478396379" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga004.jf.intel.com with ESMTP; 23 Nov 2020 22:35:58 -0800 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 23 Nov 2020 22:35:56 -0800 Received: from shsmsx605.ccr.corp.intel.com (10.109.6.215) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 24 Nov 2020 14:35:55 +0800 Received: from shsmsx605.ccr.corp.intel.com ([10.109.6.215]) by SHSMSX605.ccr.corp.intel.com ([10.109.6.215]) with mapi id 15.01.1713.004; Tue, 24 Nov 2020 14:35:54 +0800 From: "Jiang, YuX" To: Stephen Hemminger , "nhorman@tuxdriver.com" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2 6/7] dpdk-pmdinfo: replace deprecated optparse with argparse Thread-Index: AQHWsnbkIdQ3z0JOg063ieYz6cyb/KnW7wNA Date: Tue, 24 Nov 2020 06:35:54 +0000 Message-ID: <4eadf636681f45baa1435e63d1db2fae@intel.com> References: <20200906013133.26360-3-stephen@networkplumber.org> <20201104064842.25832-1-stephen@networkplumber.org> <20201104064842.25832-7-stephen@networkplumber.org> In-Reply-To: <20201104064842.25832-7-stephen@networkplumber.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.36] Content-Type: multipart/mixed; boundary="_002_4eadf636681f45baa1435e63d1db2faeintelcom_" MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 6/7] dpdk-pmdinfo: replace deprecated optparse with argparse X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" --_002_4eadf636681f45baa1435e63d1db2faeintelcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Hemminger, Latest "dpdk-devbind.py --status-dev" just can support {net,baseband,crypt= o,event,mempool,compress} devices,=20 But can not support show Misc devices, can you fix it or provide new method= to show? Notes: Old dpdk-devbind.py can support show cbdma device by cmd " ./usertoo= ls/dpdk-devbind.py --status-dev misc " Trace Log: root@dpdk-yaobing-purely147:~/dpdk# ./usertools/dpdk-devbind.py --status-d= ev misc usage: dpdk-devbind.py [-h] [-s] [--status-dev {net,baseband,crypto,event,mempool,com= press}] [-b DRIVER | -u] [--force] [DEVICE [DEVICE ...]] dpdk-devbind.py: error: argument --status-dev: invalid choice: 'misc' (cho= ose from 'net', 'baseband', 'crypto', 'event', 'mempool', 'compress') root@dpdk-yaobing-purely147:~/dpdk# ./usertools/dpdk-devbind.py -s Misc (rawdev) devices using kernel driver =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 0000:00:04.0 'Sky Lake-E CBDMA Registers 2021' drv=3Dioatdma unused=3D= vfio-pci Best Regards Jiang yu > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Stephen > Hemminger > Sent: Wednesday, November 4, 2020 2:49 PM > To: nhorman@tuxdriver.com > Cc: dev@dpdk.org; Stephen Hemminger > Subject: [dpdk-dev] [PATCH v2 6/7] dpdk-pmdinfo: replace deprecated > optparse with argparse >=20 > The optparse module is deprecated and replaced with new argparse. > The code now enforces the rule that only one of the output formats can be > specified: raw or json. >=20 > Signed-off-by: Stephen Hemminger > --- > usertools/dpdk-pmdinfo.py | 70 ++++++++++++++++++--------------------- > 1 file changed, 32 insertions(+), 38 deletions(-) >=20 > diff --git a/usertools/dpdk-pmdinfo.py b/usertools/dpdk-pmdinfo.py index > aec2abe9a683..1c2c3d05fea6 100755 > --- a/usertools/dpdk-pmdinfo.py > +++ b/usertools/dpdk-pmdinfo.py > @@ -11,10 +11,11 @@ > import os > import platform > import sys > +import argparse > from elftools.common.exceptions import ELFError from > elftools.common.py3compat import byte2int from elftools.elf.elffile impo= rt > ELFFile -from optparse import OptionParser > + >=20 > # For running from development directory. It should take precedence over > the # installed pyelftools. > @@ -563,56 +564,49 @@ def main(stream=3DNone): > if not os.path.exists(pcifile_default): > pcifile_default =3D "/usr/share/misc/pci_vendors" >=20 > - optparser =3D OptionParser( > - usage=3D'usage: %prog [-hrtp] [-d ', > - description=3D"Dump pmd hardware support info", > - add_help_option=3DTrue) > - optparser.add_option('-r', '--raw', > - action=3D'store_true', dest=3D'raw_output', > - help=3D'Dump raw json strings') > - optparser.add_option("-d", "--pcidb", dest=3D"pcifile", > - help=3D"specify a pci database " > - "to get vendor names from", > - default=3Dpcifile_default, metavar=3D"FILE") > - optparser.add_option("-t", "--table", dest=3D"tblout", > - help=3D"output information on hw support as a " > - "hex table", > - action=3D'store_true') > - optparser.add_option("-p", "--plugindir", dest=3D"pdir", > - help=3D"scan dpdk for autoload plugins", > - action=3D'store_true') > - > - options, args =3D optparser.parse_args() > - > - if options.raw_output: > + parser =3D argparse.ArgumentParser( > + usage=3D'usage: %(prog)s [-hrtp] [-d ] elf_file', > + description=3D"Dump pmd hardware support info") > + group =3D parser.add_mutually_exclusive_group() > + group.add_argument('-r', '--raw', > + action=3D'store_true', dest=3D'raw_output', > + help=3D'dump raw json strings') > + group.add_argument("-t", "--table", dest=3D"tblout", > + help=3D"output information on hw support as a hex= table", > + action=3D'store_true') > + parser.add_argument("-d", "--pcidb", dest=3D"pcifile", > + help=3D"specify a pci database to get vendor nam= es from", > + default=3Dpcifile_default, metavar=3D"FILE") > + parser.add_argument("-p", "--plugindir", dest=3D"pdir", > + help=3D"scan dpdk for autoload plugins", > + action=3D'store_true') > + parser.add_argument("elf_file", help=3D"driver shared object file") > + args =3D parser.parse_args() > + > + if args.raw_output: > raw_output =3D True >=20 > - if options.pcifile: > - pcidb =3D PCIIds(options.pcifile) > + if args.tblout: > + args.pcifile =3D None > + > + if args.pcifile: > + pcidb =3D PCIIds(args.pcifile) > if pcidb is None: > print("Pci DB file not found") > exit(1) >=20 > - if options.tblout: > - options.pcifile =3D None > - pcidb =3D None > - > - if len(args) =3D=3D 0: > - optparser.print_usage() > - exit(1) > - > - if options.pdir: > + if args.pdir: > exit(scan_for_autoload_pmds(args[0])) >=20 > ldlibpath =3D os.environ.get('LD_LIBRARY_PATH') > if ldlibpath is None: > ldlibpath =3D "" >=20 > - if os.path.exists(args[0]): > - myelffile =3D args[0] > + if os.path.exists(args.elf_file): > + myelffile =3D args.elf_file > else: > - myelffile =3D search_file( > - args[0], ldlibpath + ":/usr/lib64:/lib64:/usr/lib:/lib") > + myelffile =3D search_file(args.elf_file, > + ldlibpath + > + ":/usr/lib64:/lib64:/usr/lib:/lib") >=20 > if myelffile is None: > print("File not found") > -- > 2.27.0 --_002_4eadf636681f45baa1435e63d1db2faeintelcom_ Content-Type: text/plain; name="dpdk-devbind-cmd.txt" Content-Description: dpdk-devbind-cmd.txt Content-Disposition: attachment; filename="dpdk-devbind-cmd.txt"; size=8301; creation-date="Tue, 24 Nov 2020 06:22:47 GMT"; modification-date="Tue, 24 Nov 2020 06:35:31 GMT" Content-Transfer-Encoding: base64 cm9vdEBkcGRrLXlhb2JpbmctcHVyZWx5MTQ3On4vZHBkayMgLi91c2VydG9vbHMvZHBkay1kZXZi aW5kLnB5IC1oDQp1c2FnZTogZHBkay1kZXZiaW5kLnB5IFstaF0gWy1zXQ0KICAgICAgICAgICAg ICAgICAgICAgICBbLS1zdGF0dXMtZGV2IHtuZXQsYmFzZWJhbmQsY3J5cHRvLGV2ZW50LG1lbXBv b2wsY29tcHJlc3N9XQ0KICAgICAgICAgICAgICAgICAgICAgICBbLWIgRFJJVkVSIHwgLXVdIFst LWZvcmNlXQ0KICAgICAgICAgICAgICAgICAgICAgICBbREVWSUNFIFtERVZJQ0UgLi4uXV0NCg0K VXRpbGl0eSB0byBiaW5kIGFuZCB1bmJpbmQgZGV2aWNlcyBmcm9tIExpbnV4IGtlcm5lbA0KDQpw b3NpdGlvbmFsIGFyZ3VtZW50czoNCiAgREVWSUNFICAgICAgICAgICAgICAgIERldmljZSBzcGVj aWZpZWQgYXMgUENJICJkb21haW46YnVzOnNsb3QuZnVuYyIgc3ludGF4DQogICAgICAgICAgICAg ICAgICAgICAgICBvciAiYnVzOnNsb3QuZnVuYyIgc3ludGF4LiBGb3IgZGV2aWNlcyBib3VuZCB0 byBMaW51eA0KICAgICAgICAgICAgICAgICAgICAgICAga2VybmVsIGRyaXZlcnMsIHRoZXkgbWF5 IGJlIHJlZmVycmVkIHRvIGJ5IGludGVyZmFjZQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmFt ZS4NCg0Kb3B0aW9uYWwgYXJndW1lbnRzOg0KICAtaCwgLS1oZWxwICAgICAgICAgICAgc2hvdyB0 aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdA0KICAtcywgLS1zdGF0dXMgICAgICAgICAgUHJpbnQg dGhlIGN1cnJlbnQgc3RhdHVzIG9mIGFsbCBrbm93biBkZXZpY2VzLg0KICAtLXN0YXR1cy1kZXYg e25ldCxiYXNlYmFuZCxjcnlwdG8sZXZlbnQsbWVtcG9vbCxjb21wcmVzc30NCiAgICAgICAgICAg ICAgICAgICAgICAgIFByaW50IHRoZSBzdGF0dXMgb2YgZ2l2ZW4gZGV2aWNlIGdyb3VwLg0KICAt YiBEUklWRVIsIC0tYmluZCBEUklWRVINCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCB0 aGUgZHJpdmVyIHRvIHVzZSBvciAibm9uZSIgdG8gdW5iaW5kIHRoZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgZGV2aWNlDQogIC11LCAtLXVuYmluZCAgICAgICAgICBVbmJpbmQgYSBkZXZpY2Ug KGVxdWl2YWxlbnQgdG8gIi1iIG5vbmUiKQ0KICAtLWZvcmNlICAgICAgICAgICAgICAgT3ZlcnJp ZGUgcmVzdHJpY3Rpb24gb24gYmluZGluZyBkZXZpY2VzIGluIHVzZSBieQ0KICAgICAgICAgICAg ICAgICAgICAgICAgTGludXgiIFdBUk5JTkc6IFRoaXMgY2FuIGxlYWQgdG8gbG9zcyBvZiBuZXR3 b3JrDQogICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uIGFuZCBzaG91bGQgYmUgdXNl ZCB3aXRoIGNhdXRpb24uDQoNCkV4YW1wbGVzOg0KLS0tLS0tLS0tDQoNClRvIGRpc3BsYXkgY3Vy cmVudCBkZXZpY2Ugc3RhdHVzOg0KICAgICAgICBkcGRrLWRldmJpbmQucHkgLS1zdGF0dXMNCg0K VG8gZGlzcGxheSBjdXJyZW50IG5ldHdvcmsgZGV2aWNlIHN0YXR1czoNCiAgICAgICAgZHBkay1k ZXZiaW5kLnB5IC0tc3RhdHVzLWRldiBuZXQNCg0KVG8gYmluZCBldGgxIGZyb20gdGhlIGN1cnJl bnQgZHJpdmVyIGFuZCBtb3ZlIHRvIHVzZSB2ZmlvLXBjaQ0KICAgICAgICBkcGRrLWRldmJpbmQu cHkgLS1iaW5kPXZmaW8tcGNpIGV0aDENCg0KVG8gdW5iaW5kIDAwMDA6MDE6MDAuMCBmcm9tIHVz aW5nIGFueSBkcml2ZXINCiAgICAgICAgZHBkay1kZXZiaW5kLnB5IC11IDAwMDA6MDE6MDAuMA0K DQpUbyBiaW5kIDAwMDA6MDI6MDAuMCBhbmQgMDAwMDowMjowMC4xIHRvIHRoZSBpeGdiZSBrZXJu ZWwgZHJpdmVyDQogICAgICAgIGRwZGstZGV2YmluZC5weSAtYiBpeGdiZSAwMjowMC4wIDAyOjAw LjENCnJvb3RAZHBkay15YW9iaW5nLXB1cmVseTE0Nzp+L2RwZGsjDQoNCg0Kcm9vdEBkcGRrLXlh b2JpbmctcHVyZWx5MTQ3On4vZHBkayMgLi91c2VydG9vbHMvZHBkay1kZXZiaW5kLnB5IC1zDQoN Ck5ldHdvcmsgZGV2aWNlcyB1c2luZyBrZXJuZWwgZHJpdmVyDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KMDAwMDoyMDowMC4wICdFdGhlcm5ldCBDb25uZWN0aW9uIFg3MjIg Zm9yIDEwR0JBU0UtVCAzN2QyJyBpZj1lbm8xIGRydj1pNDBlIHVudXNlZD12ZmlvLXBjaSAqQWN0 aXZlKg0KMDAwMDoyMDowMC4xICdFdGhlcm5ldCBDb25uZWN0aW9uIFg3MjIgZm9yIDEwR0JBU0Ut VCAzN2QyJyBpZj1lbm8yIGRydj1pNDBlIHVudXNlZD12ZmlvLXBjaQ0KMDAwMDoyMDowMC4yICdF dGhlcm5ldCBDb25uZWN0aW9uIFg3MjIgZm9yIDEwR2JFIFNGUCsgMzdkMycgaWY9ZW5vMyBkcnY9 aTQwZSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6MjA6MDAuMyAnRXRoZXJuZXQgQ29ubmVjdGlvbiBY NzIyIGZvciAxMEdiRSBTRlArIDM3ZDMnIGlmPWVubzQgZHJ2PWk0MGUgdW51c2VkPXZmaW8tcGNp DQowMDAwOjNiOjAwLjAgJ0V0aGVybmV0IENvbnRyb2xsZXIgWEw3MTAgZm9yIDQwR2JFIFFTRlAr IDE1ODMnIGlmPWVucDU5czBmMCBkcnY9aTQwZSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6M2I6MDAu MSAnRXRoZXJuZXQgQ29udHJvbGxlciBYTDcxMCBmb3IgNDBHYkUgUVNGUCsgMTU4MycgaWY9ZW5w NTlzMGYxIGRydj1pNDBlIHVudXNlZD12ZmlvLXBjaQ0KMDAwMDo2MDowMC4wICdFdGhlcm5ldCBD b250cm9sbGVyIFhMNzEwIGZvciA0MEdiRSBRU0ZQKyAxNTgzJyBpZj1lbnA5NnMwZjAgZHJ2PWk0 MGUgdW51c2VkPXZmaW8tcGNpDQowMDAwOjYwOjAwLjEgJ0V0aGVybmV0IENvbnRyb2xsZXIgWEw3 MTAgZm9yIDQwR2JFIFFTRlArIDE1ODMnIGlmPWVucDk2czBmMSBkcnY9aTQwZSB1bnVzZWQ9dmZp by1wY2kNCjAwMDA6ODY6MDAuMCAnRXRoZXJuZXQgQ29udHJvbGxlciBYTDcxMCBmb3IgNDBHYkUg UVNGUCsgMTU4MycgaWY9ZW5wMTM0czBmMCBkcnY9aTQwZSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6 ODY6MDAuMSAnRXRoZXJuZXQgQ29udHJvbGxlciBYTDcxMCBmb3IgNDBHYkUgUVNGUCsgMTU4Mycg aWY9ZW5wMTM0czBmMSBkcnY9aTQwZSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6ZDg6MDAuMCAnRXRo ZXJuZXQgQ29udHJvbGxlciBYNzEwIGZvciAxMEdiRSBTRlArIDE1NzInIGlmPWVucDIxNnMwZjAg ZHJ2PWk0MGUgdW51c2VkPXZmaW8tcGNpDQowMDAwOmQ4OjAwLjEgJ0V0aGVybmV0IENvbnRyb2xs ZXIgWDcxMCBmb3IgMTBHYkUgU0ZQKyAxNTcyJyBpZj1lbnAyMTZzMGYxIGRydj1pNDBlIHVudXNl ZD12ZmlvLXBjaQ0KMDAwMDpkODowMC4yICdFdGhlcm5ldCBDb250cm9sbGVyIFg3MTAgZm9yIDEw R2JFIFNGUCsgMTU3MicgaWY9ZW5wMjE2czBmMiBkcnY9aTQwZSB1bnVzZWQ9dmZpby1wY2kNCjAw MDA6ZDg6MDAuMyAnRXRoZXJuZXQgQ29udHJvbGxlciBYNzEwIGZvciAxMEdiRSBTRlArIDE1NzIn IGlmPWVucDIxNnMwZjMgZHJ2PWk0MGUgdW51c2VkPXZmaW8tcGNpDQoNCk5vICdCYXNlYmFuZCcg ZGV2aWNlcyBkZXRlY3RlZA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCkNyeXB0 byBkZXZpY2VzIHVzaW5nIERQREstY29tcGF0aWJsZSBkcml2ZXINCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCjAwMDA6MWE6MDEuMCAnRGV2aWNlIDM3YzknIGRy dj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYTowMS4xICdEZXZpY2UgMzdjOScg ZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFhOjAxLjIgJ0RldmljZSAzN2M5 JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWE6MDEuMyAnRGV2aWNlIDM3 YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYTowMS40ICdEZXZpY2Ug MzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFhOjAxLjUgJ0Rldmlj ZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWE6MDEuNiAnRGV2 aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYTowMS43ICdE ZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFhOjAyLjAg J0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWE6MDIu MSAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYTow Mi4yICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFh OjAyLjMgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6 MWE6MDIuNCAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAw MDoxYTowMi41ICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQow MDAwOjFhOjAyLjYgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYN CjAwMDA6MWE6MDIuNyAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2 Zg0KMDAwMDoxYzowMS4wICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYy eHZmDQowMDAwOjFjOjAxLjEgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9j NjJ4dmYNCjAwMDA6MWM6MDEuMiAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0 X2M2Mnh2Zg0KMDAwMDoxYzowMS4zICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1x YXRfYzYyeHZmDQowMDAwOjFjOjAxLjQgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2Vk PXFhdF9jNjJ4dmYNCjAwMDA6MWM6MDEuNSAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVz ZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYzowMS42ICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVu dXNlZD1xYXRfYzYyeHZmDQowMDAwOjFjOjAxLjcgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kg dW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWM6MDIuMCAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBj aSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYzowMi4xICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8t cGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFjOjAyLjIgJ0RldmljZSAzN2M5JyBkcnY9dmZp by1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWM6MDIuMyAnRGV2aWNlIDM3YzknIGRydj12 ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYzowMi40ICdEZXZpY2UgMzdjOScgZHJ2 PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFjOjAyLjUgJ0RldmljZSAzN2M5JyBk cnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWM6MDIuNiAnRGV2aWNlIDM3Yzkn IGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxYzowMi43ICdEZXZpY2UgMzdj OScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFlOjAxLjAgJ0RldmljZSAz N2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWU6MDEuMSAnRGV2aWNl IDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxZTowMS4yICdEZXZp Y2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFlOjAxLjMgJ0Rl dmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWU6MDEuNCAn RGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDoxZTowMS41 ICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAwOjFlOjAx LjYgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAwMDA6MWU6 MDEuNyAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0KMDAwMDox ZTowMi4wICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZmDQowMDAw OjFlOjAyLjEgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4dmYNCjAw MDA6MWU6MDIuMiAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2Mnh2Zg0K MDAwMDoxZTowMi4zICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRfYzYyeHZm DQowMDAwOjFlOjAyLjQgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFhdF9jNjJ4 dmYNCjAwMDA6MWU6MDIuNSAnRGV2aWNlIDM3YzknIGRydj12ZmlvLXBjaSB1bnVzZWQ9cWF0X2M2 Mnh2Zg0KMDAwMDoxZTowMi42ICdEZXZpY2UgMzdjOScgZHJ2PXZmaW8tcGNpIHVudXNlZD1xYXRf YzYyeHZmDQowMDAwOjFlOjAyLjcgJ0RldmljZSAzN2M5JyBkcnY9dmZpby1wY2kgdW51c2VkPXFh dF9jNjJ4dmYNCg0KQ3J5cHRvIGRldmljZXMgdXNpbmcga2VybmVsIGRyaXZlcg0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KMDAwMDoxYTowMC4wICdDNjJ4IENoaXBzZXQgUXVp Y2tBc3Npc3QgVGVjaG5vbG9neSAzN2M4JyBkcnY9YzZ4eCB1bnVzZWQ9cWF0X2M2MngsdmZpby1w Y2kNCjAwMDA6MWM6MDAuMCAnQzYyeCBDaGlwc2V0IFF1aWNrQXNzaXN0IFRlY2hub2xvZ3kgMzdj OCcgZHJ2PWM2eHggdW51c2VkPXFhdF9jNjJ4LHZmaW8tcGNpDQowMDAwOjFlOjAwLjAgJ0M2Mngg Q2hpcHNldCBRdWlja0Fzc2lzdCBUZWNobm9sb2d5IDM3YzgnIGRydj1jNnh4IHVudXNlZD1xYXRf YzYyeCx2ZmlvLXBjaQ0KDQpObyAnRXZlbnRkZXYnIGRldmljZXMgZGV0ZWN0ZWQNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KDQpObyAnTWVtcG9vbCcgZGV2aWNlcyBkZXRlY3RlZA0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KTm8gJ0NvbXByZXNzJyBkZXZpY2VzIGRl dGVjdGVkDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KTWlzYyAocmF3ZGV2KSBk ZXZpY2VzIHVzaW5nIGtlcm5lbCBkcml2ZXINCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQowMDAwOjAwOjA0LjAgJ1NreSBMYWtlLUUgQ0JETUEgUmVnaXN0ZXJzIDIw MjEnIGRydj1pb2F0ZG1hIHVudXNlZD12ZmlvLXBjaQ0KMDAwMDowMDowNC4xICdTa3kgTGFrZS1F IENCRE1BIFJlZ2lzdGVycyAyMDIxJyBkcnY9aW9hdGRtYSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6 MDA6MDQuMiAnU2t5IExha2UtRSBDQkRNQSBSZWdpc3RlcnMgMjAyMScgZHJ2PWlvYXRkbWEgdW51 c2VkPXZmaW8tcGNpDQowMDAwOjAwOjA0LjMgJ1NreSBMYWtlLUUgQ0JETUEgUmVnaXN0ZXJzIDIw MjEnIGRydj1pb2F0ZG1hIHVudXNlZD12ZmlvLXBjaQ0KMDAwMDowMDowNC40ICdTa3kgTGFrZS1F IENCRE1BIFJlZ2lzdGVycyAyMDIxJyBkcnY9aW9hdGRtYSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6 MDA6MDQuNSAnU2t5IExha2UtRSBDQkRNQSBSZWdpc3RlcnMgMjAyMScgZHJ2PWlvYXRkbWEgdW51 c2VkPXZmaW8tcGNpDQowMDAwOjAwOjA0LjYgJ1NreSBMYWtlLUUgQ0JETUEgUmVnaXN0ZXJzIDIw MjEnIGRydj1pb2F0ZG1hIHVudXNlZD12ZmlvLXBjaQ0KMDAwMDowMDowNC43ICdTa3kgTGFrZS1F IENCRE1BIFJlZ2lzdGVycyAyMDIxJyBkcnY9aW9hdGRtYSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6 ODA6MDQuMCAnU2t5IExha2UtRSBDQkRNQSBSZWdpc3RlcnMgMjAyMScgZHJ2PWlvYXRkbWEgdW51 c2VkPXZmaW8tcGNpDQowMDAwOjgwOjA0LjEgJ1NreSBMYWtlLUUgQ0JETUEgUmVnaXN0ZXJzIDIw MjEnIGRydj1pb2F0ZG1hIHVudXNlZD12ZmlvLXBjaQ0KMDAwMDo4MDowNC4yICdTa3kgTGFrZS1F IENCRE1BIFJlZ2lzdGVycyAyMDIxJyBkcnY9aW9hdGRtYSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6 ODA6MDQuMyAnU2t5IExha2UtRSBDQkRNQSBSZWdpc3RlcnMgMjAyMScgZHJ2PWlvYXRkbWEgdW51 c2VkPXZmaW8tcGNpDQowMDAwOjgwOjA0LjQgJ1NreSBMYWtlLUUgQ0JETUEgUmVnaXN0ZXJzIDIw MjEnIGRydj1pb2F0ZG1hIHVudXNlZD12ZmlvLXBjaQ0KMDAwMDo4MDowNC41ICdTa3kgTGFrZS1F IENCRE1BIFJlZ2lzdGVycyAyMDIxJyBkcnY9aW9hdGRtYSB1bnVzZWQ9dmZpby1wY2kNCjAwMDA6 ODA6MDQuNiAnU2t5IExha2UtRSBDQkRNQSBSZWdpc3RlcnMgMjAyMScgZHJ2PWlvYXRkbWEgdW51 c2VkPXZmaW8tcGNpDQowMDAwOjgwOjA0LjcgJ1NreSBMYWtlLUUgQ0JETUEgUmVnaXN0ZXJzIDIw MjEnIGRydj1pb2F0ZG1hIHVudXNlZD12ZmlvLXBjaQ0KDQpObyAnUmVnZXgnIGRldmljZXMgZGV0 ZWN0ZWQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K --_002_4eadf636681f45baa1435e63d1db2faeintelcom_--