From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-am1-obe.outbound.protection.outlook.com (mail-am1on0092.outbound.protection.outlook.com [157.56.112.92]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 41F8D21F7AC for ; Sun, 8 Nov 2015 02:19:37 -0800 (PST) Received: from AM2PR07MB0931.eurprd07.prod.outlook.com (10.162.37.139) by AM2PR07MB0770.eurprd07.prod.outlook.com (10.161.70.23) with Microsoft SMTP Server (TLS) id 15.1.318.15; Sun, 8 Nov 2015 10:19:34 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kevin@darbyshire-bryant.me.uk; Received: from [IPv6:2001:470:183f:da2b::632f:a7da] (2001:470:183f:da2b::632f:a7da) by AM2PR07MB0931.eurprd07.prod.outlook.com (10.162.37.139) with Microsoft SMTP Server (TLS) id 15.1.318.15; Sun, 8 Nov 2015 10:19:32 +0000 To: References: <5638A4F4.2010701@darbyshire-bryant.me.uk> <87si4nntcg.fsf@toke.dk> <0196FDEC-50A7-4ECA-9973-1FD23FF2945A@gmx.de> <877flznq3f.fsf@toke.dk> <848953E5-8571-4B81-B67F-D4A7BA4A1F96@darbyshire-bryant.me.uk> <8737wnnpco.fsf@toke.dk> <563B86D4.6030704@darbyshire-bryant.me.uk> From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <563F21AE.5040506@darbyshire-bryant.me.uk> Date: Sun, 8 Nov 2015 10:19:26 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <563B86D4.6030704@darbyshire-bryant.me.uk> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms000707060104010301090502" X-Originating-IP: [2001:470:183f:da2b::632f:a7da] X-ClientProxiedBy: VI1PR04CA0035.eurprd04.prod.outlook.com (25.163.3.45) To AM2PR07MB0931.eurprd07.prod.outlook.com (25.162.37.139) X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0931; 2:Cf3BUJ5ncPEbrVLJNwETeodu1pCX6ZSLuKr9DYkat+Cjr/iCZscIgGE5loecgdUwIzxJsf6Hq9bE5oyavc15XOAnltbUVB7HtPRbQiduuUIeF/NsYWp1kKlSIJr/qn/qoEN3Uhw9+43ijiNaklV+sv3UhlykD70QUKj01Ad3yGA=; 3:YTVTxFPRQjBOrb7b6NilNBWQuohI/v3qHaVUjKNdL5i3zid30cFbUHY4QMvDK+6D8frCW1hYFkX4FlCAg9B86nRPyKXy6CQHh7+ev3G5oslxXSxS5mkQlGFGo0Uuph/sQW+yjkJWMqt+2y9GWtCVaw==; 25:zn9123G0I45Fv/FrT8DY8R9w9WiQlFSkMRHqITl8ov4FQWln1Ldx9CbqjXmXErr+pDqen8y8Qi/hRecwES8xTAnp/HLcHN8dPYPEBXgAg90K31BT4uYfwa0AirDq4eUDFGZ9mF300pZ/jTBRJp1IrNbigiOWr2n/XoyKXPCL45lWHV14mThkJ4zKfKUQnXu0hY004prHL2CpytuRfl0bka/sSsjXwjThr59EbtAjy1uAcwTsIOobwjwkVK/+gR46; 4:y9APqzXUch2gtd2PJgInicpZg+aqObq4834hByOgl4BR8/f4pnBW4jN/RBCQzpt/4Di58/D8e1u7lfZ04HUGWjKVSsIc8LvV/Z++ZLGVGnNkTJgVyLysf+r8cEOA9woGMSCy47ZbXhWKlwgu8MQSMjNAFjmuxElkLwNB1SUYb0AWrsVu138CaEVjCHm+OdiILgT+MoOKa+daIOzVVccHQ/CPxHIouJUo7XGdJlCx1tr3jm70IcVi9Q8oqLi8sIuMx9odbg9TyueM87OrOPodcC9sZcUdFZei8aSuJPEkY9/cw+bBwOxvVJnnBACfGWcanTnxCO+EDMPjomrMiXVAUofPAEd0h66dNOqA348qoJkGKFjIEhwfcphsMyJfSwud X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR07MB0931; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(159216200783502); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001); SRVR:AM2PR07MB0931; BCL:0; PCL:0; RULEID:; SRVR:AM2PR07MB0931; X-Forefront-PRVS: 0754F7E325 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(24454002)(189002)(479174004)(199003)(568964002)(97736004)(122386002)(40100003)(15975445007)(2950100001)(93886004)(92566002)(50986999)(33656002)(80316001)(54356999)(76176999)(5001920100001)(65816999)(5007970100001)(19580405001)(77096005)(189998001)(106356001)(5001960100002)(64126003)(87976001)(105586002)(2351001)(19580395003)(107886002)(450100001)(83506001)(5004730100002)(101416001)(59896002)(86362001)(81156007)(84326002)(87266999)(110136002)(65956001)(4001350100001)(36756003)(5008740100001)(74482002)(65806001)(5890100001)(42186005)(512944002)(3826002)(5001840100002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR07MB0931; H:[IPv6:2001:470:183f:da2b::632f:a7da]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: darbyshire-bryant.me.uk does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM2PR07MB0931; 23:UnZqbgKtvPYHkXhaEVW44v2m5oJBKa4DIo3T0QSpO?= =?us-ascii?Q?XMxspy/a/9BTX73W6t/HcH5StftzHy32sjZPc3Id5Vc1ikeOww7qJl+R8+t7?= =?us-ascii?Q?iYhQW/G1addStOaiqgtcc0tE0ipZwVOkHZrgntR3glwaeETsc4O2KnqnYFH9?= =?us-ascii?Q?d91SBpvZUH/+ZoK5wyM8s+5I20UD5GG3u7KrVymDeZkkVZNZ4WhDlYH1RosM?= =?us-ascii?Q?nnh7PZDgfEIUmvBYhSSmV+/Q+7STHR0/02Au7CkGWsj8DgVndVSWIut87rvJ?= =?us-ascii?Q?Z4RfxLCrjIIbIHdeOPu0o5spQrxVzO4I3IHfv5irSh2zSKUmKkeQAi+EtB2G?= =?us-ascii?Q?AboSLg9P/7qSIDxE4B/sojODNuHVVXvZhmc5jNKbrMfc9ntQRt0yQLuekJvm?= =?us-ascii?Q?qGimTYGHIZNbNMKt9U/8IuiVPSL30a1CyBsk5G+3iLUM78MYnFSTNeFLTHej?= =?us-ascii?Q?NQ0u2xIJZWNZwlnR8wKLKDdm8JVLC93NiHeq3CZd+AdXj6w+8XVB+yF8DZ1u?= =?us-ascii?Q?M7q6IMN4KlwQ+mNyeHcduiy3NF6XBFHcCkn/oILiIB3Au+yEctEcxvFc3R8S?= =?us-ascii?Q?NXkfN8Zg9CQ4d8TNIW0TO9yBAdjbsQYMHedzUiRONQZaO0KJ3zLw7Q9nHghI?= =?us-ascii?Q?v0Imf64NbFCQMdU1HzK4SHEpVYdo6y6+mdWFlBWuKJ1bFoCWYi6PJ7x94CeT?= =?us-ascii?Q?L0tNbHECO3zhjNBdShpgliCFUXli5ZJOSBt+t5PnDyAUJriMWu90XwHqt/YP?= =?us-ascii?Q?mAgLLlxIRW65UrpD4wdn0aEyKrY47mLRuFoW0+2jjbkfDACasEd6N1GhFOjf?= =?us-ascii?Q?//AOlj+djXJBfnDyeJHzujTR8C7SbiqtsgRJEy96RJ5qOXYhVITnDK3Y2hW1?= =?us-ascii?Q?sQC/OdzSnGhnVrILbcbzPi5wAjhFPDQoHJDhcYCCrfOamd0rEjFiNk/E1K7M?= =?us-ascii?Q?4rm0Y10/7EgD6jsYgdWRt6e5byW5oRw6lzET9mqJ6w7DNA28nCL4+w7kFT6/?= =?us-ascii?Q?qtked7jy/zD2RkTc4vsU0UPO1ZWieKDz3rU+UioI07tKw9C1IcJj5d1GfSHA?= =?us-ascii?Q?JCO1B2HVeQM48on6eNiO6Dc73Kk+kk0PciPetgz80D7+msgcKfClQXkCOt8E?= =?us-ascii?Q?RfRCsVJZIlAS3z9IoaMu3qfFXFI7TNi/7XjnWmLekP6HVkkW9zNg3kSmpG8s?= =?us-ascii?Q?ssCRX4gvZnlAi01GpQh0p6muyUcK7pukamZouWgkb2zP8Z8x3Wer4P8odLPU?= =?us-ascii?Q?vIKM7I5I8D3EJj8P0hHEzqkzqtBJTWSM17SzbLa/JZB1rU9ElvEV1r6f0x9G?= =?us-ascii?Q?fDDQJCiYi3RTOuiunYvNbucX82sMuyH9C8Xsqw0+8Yeb5s7iEYD8BiRHcbsb?= =?us-ascii?Q?m9FYVx7XD843KlZnKPwa1H35eVoSi2BpqJhpK9VE2eyil9E?= X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0931; 5:bBuiUGb0tMSKCTUzsabYZ59onhaODKbs/loIlqi9zYLVtWvoTxlmVu7OIKzMp8L6XZ8FYXnMg70RFdidOCcSqiau6wp8qPZq6NGdmmLmuOSN4OpJRjGF41m9BvGGn1+5QysfrIjSY6eZGKKJibZvyA==; 24:Tp5WjtzV3m54cFq953409CiPH06X0ij7Z2f5QqdHpCdpXvJn4bgw2W3UaNVgqKwGEvCvkeE4jztWnk4NL0XgFqtrnAFxON9KApsk7eMRK1k=; 20:L9xeB64V2Kz5xZqiFPOSs2RvVjjc5IiJizzZ/u6On/e4FrLYuNxozG0HgLj12y0Z23imPZcTAi3COF+giLYd1w== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2015 10:19:32.8878 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR07MB0931 X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0770; 2:mBti6KuE84mY8ptOgCMZAX0AdtYVkBeSYLLNNA62f8gJ/7Zv4Cxr0rPNmMvKRNOWowL8oTeDxpTzOVYkVuU3scHkMOxfjlid6Bl1DVSejMEUrfrviKOxDqlDCmMuelP7W91xtuPX1F7ul8MxkCWSu9H0o296AHILD0m3aDpvhSE=; 23:cGhVlBgzNLMG5blDyC/lT/q+PKEJIdDtpAmgUedmjhx/C8MqMHNnM4cAXC15nMdYjr9YSAqT2ZkABpjGyus3gYR3h8JMoK1/9u7z3h3LqdfkxDHa6IHSvDJS35RmTVDVHCDAS3jXCmONAmvp/YZnq5hBMf3mEfS07cCJphFiwq03y461W5/OuJgPejvR0l5d X-OriginatorOrg: darbyshire-bryant.me.uk Subject: Re: [Cake] More on 'target' corner cases - rate/target/interval confusion? X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Nov 2015 10:20:00 -0000 --------------ms000707060104010301090502 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 05/11/15 16:41, Kevin Darbyshire-Bryant wrote: > > On 03/11/15 14:12, Toke H=F8iland-J=F8rgensen wrote: >> Kevin Darbyshire-Bryant writes: >> >>> At the moment cake is effectively saying that it expects stuff in tin= >>> 4 to take 4 times as long to send/its packets are 4 times as big >>> depending which warped view you care to take :-) >> Yup, exactly. However that can be true because tin 4 is shaped to 1/4 >> the rate; so for 1 packet, that is actually true. >> >> However, it's not really a shaping, it's a threshold. Or is it? As I >> said, I need to go read the code :P >> >> -Toke > Following this up: The existing code is correct, or is certainly much > more correct than some changes I've been experimenting with :-) The > bottom line is that passing the true 'line' rate and hence related > target/intervals for each tin rather breaks the class/tin shaper, > something I proved with the aid of flent. 'b->tin_rate_bps =3D rate;'= is > really a reporting construct and isn't actually used as an active part > of code. > > So I'm gradually understanding things....by breaking them and putting > them back together :-) The exact mechanism for shaping eludes me at > the moment (I suspect 'threshold') and quite what effect 'target' and > 'interval' really have again is something to experiment with. > > Fun! Ok, so more following up. 'threshold' does indeed act as the shaper and bases its value on target/interval for that tin which is why tweaking 'tin_rate_bps' doesn't help. I still feel confused as to why 'lower bandwidth allocation/higher priority/lower jitter' tins end up with higher targets & intervals. So, in the interests of experimentation I came up with another way of setting all tins to the same (tin 0) target/interval. I pushed a branch https://github.com/dtaht/sch_cake/tree/targetintervalcopied I'm sorry Jonathan, every time I touch your code I feel like I'm being an absolute vandal, please forgive the horrors! If someone is bored, has a suitable test bed etc I'd be really interested to know what differences are seen with this code. Whilst I was there I also subtly tweaked the diffserv4 video tin bandwidth allocation to 11/16ths rather than 3/4. In combination with voice (1/4) it meant that (theoretically) best effort could be completely starved, let alone bulk - it doesn't seem to actually happen in real life, but setting video to 11/16th & voice to 4/16th means that there's 1/16th to be fought over between best effort and bulk - and best effort as a result does seem to get a little bit more of a look-in in the face of 'more important' competition. Kevin --------------ms000707060104010301090502 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG9w0BBwEAAKCC DYEwggY0MIIEHKADAgECAgEeMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYD VQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0 ZSBTaWduaW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe Fw0wNzEwMjQyMTAxNTVaFw0xNzEwMjQyMTAxNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UE ChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUg U2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0 ZSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHCYPMzi3YGrEp pC4Tq5a+ijKDjKaIQZZVR63UbxIP6uq/I0fhCu+cQhoUfE6ERKKnu8zPf1Jwuk0tsvVCk6U9 b+0UjM0dLep3ZdE1gblK/1FwYT5Pipsu2yOMluLqwvsuz9/9f1+1PKHG/FaR/wpbfuIqu54q zHDYeqiUfsYzoVflR80DAC7hmJ+SmZnNTWyUGHJbBpA8Q89lGxahNvuryGaC/o2/ceD2uYDX 9U8Eg5DpIpGQdcbQeGarV04WgAUjjXX5r/2dabmtxWMZwhZna//jdiSyrrSMTGKkDiXm6/3/ 4ebfeZuCYKzN2P8O2F/Xe2AC/Y7zeEsnR7FOp+uXAgMBAAGjggGtMIIBqTAPBgNVHRMBAf8E BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUU3Ltkpzg2ssBXHx+ljVO8tS4UYIw HwYDVR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsG AQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6 Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8v d3d3LnN0YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wu Y29tL3Nmc2NhLmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIB FiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRw Oi8vd3d3LnN0YXJ0c3NsLmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4IC AQAKgwh9eKssBly4Y4xerhy5I3dNoXHYfYa8PlVLL/qtXnkFgdtY1o95CfegFJTwqBBmf8py TUnFsukDFUI22zF5bVHzuJ+GxhnSqN2sD1qetbYwBYK2iyYA5Pg7Er1A+hKMIzEzcduRkIMm CeUTyMyikfbUFvIBivtvkR8ZFAk22BZy+pJfAoedO61HTz4qSfQoCRcLN5A0t4DkuVhTMXIz uQ8CnykhExD6x4e6ebIbrjZLb7L+ocR0y4YjCl/Pd4MXU91y0vTipgr/O75CDUHDRHCCKBVm z/Rzkc/b970MEeHt5LC3NiWTgBSvrLEuVzBKM586YoRD9Dy3OHQgWI270g+5MYA8GfgI/EPT 5G7xPbCDz+zjdH89PeR3U4So4lSXur6H6vp+m9TQXPF3a0LwZrp8MQ+Z77U1uL7TelWO5lAp sbAonrqASfTpaprFVkL4nyGH+NHST2ZJPWIBk81i6Vw0ny0qZW2Niy/QvVNKbb43A43ny076 khXO7cNbBIRdJ/6qQNq9Bqb5C0Q5nEsFcj75oxQRqlKf6TcvGbjxkJh8BYtv9ePsXklAxtm8 J7GCUBthHSQgepbkOexhJ0wP8imUkyiPHQ0GvEnd83129fZjoEhdGwXV27ioRKbj/cIq7JRX un0NbeY+UdMYu9jGfIpDLtUUGSgsg2zMGs5R4jCCB0UwggYtoAMCAQICAw5ySjANBgkqhkiG 9w0BAQsFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNV BAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0 Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBMB4XDTE1MDYyMDIw MzA1MloXDTE2MDYyMDE0MjY0N1owVjEmMCQGA1UEAwwda2V2aW5AZGFyYnlzaGlyZS1icnlh bnQubWUudWsxLDAqBgkqhkiG9w0BCQEWHWtldmluQGRhcmJ5c2hpcmUtYnJ5YW50Lm1lLnVr MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAugCNtDhytCJ9HOfenUHr/vUGUECv PL1IJXgHMl4cIJmwgLOkXhIcTMxHnX+kFweqvT+eDWv1hzA9yMWhvjLFC4eLoFaV0xiAat8O XQ7t3MwKY5DW0mB1dOnjiFIcc/XMwyYI4KfEGnFMJQkzon0rDVpkl/Q1f/hu1sELO7Zc6TFL wuuDuiP7S73zrz50TRoq0+Ob3x0uOMW2uVwVzf6NLwHgBE2LFleMXblyUMx0IlIcLan2nWiI Vsa3XYd+C6KAGGwlmO4VAZ25KuX7hkj8f82lSapvtKTtvrSoDghXlHH2JXiIQX+Sn0UgOmbX 1KyOe9vN7WzQ+tpPRzpFRffnnnp1VQye3wVRPBumjDxQSFTOhUtslnvbefUQSPw6p5w9ZiXI GJICLkX/MkYN/TwGCvuUG2PxBybSR1A2I5ap+VI/zGSG3XGVEA69SOZQyD+8YjJZfaY2nCu+ DuM64JrJUi2CvX6fwcdHNschJNrrfetpnrx3JrGnG9o+pWuUG1phBg+KKN2bhrdzY79qm7ha 86EMKSUOn5nBdGY3YxdXq/naoUQeOCUV2JMFGOulu7sKpiWcz7HVFacXjd9ebisVLv+jOwll z14BWRb87s1+LBEJn/Ybn3ekhtgyEAhB4kgj0scl4hI8xCU6zrZyDnbXmxSvDXbClZA0PACt f/jhGvUCAwEAAaOCAuMwggLfMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQG CCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQULkW2CpDiQpRNumQ7wdspjFfgX+AwHwYD VR0jBBgwFoAUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwKAYDVR0RBCEwH4Eda2V2aW5AZGFyYnlz aGlyZS1icnlhbnQubWUudWswggFMBgNVHSAEggFDMIIBPzCCATsGCysGAQQBgbU3AQIDMIIB KjAuBggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjCB9wYI KwYBBQUHAgIwgeowJxYgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwAwIBARqB vlRoaXMgY2VydGlmaWNhdGUgd2FzIGlzc3VlZCBhY2NvcmRpbmcgdG8gdGhlIENsYXNzIDEg VmFsaWRhdGlvbiByZXF1aXJlbWVudHMgb2YgdGhlIFN0YXJ0Q29tIENBIHBvbGljeSwgcmVs aWFuY2Ugb25seSBmb3IgdGhlIGludGVuZGVkIHB1cnBvc2UgaW4gY29tcGxpYW5jZSBvZiB0 aGUgcmVseWluZyBwYXJ0eSBvYmxpZ2F0aW9ucy4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDov L2NybC5zdGFydHNzbC5jb20vY3J0dTEtY3JsLmNybDCBjgYIKwYBBQUHAQEEgYEwfzA5Bggr BgEFBQcwAYYtaHR0cDovL29jc3Auc3RhcnRzc2wuY29tL3N1Yi9jbGFzczEvY2xpZW50L2Nh MEIGCCsGAQUFBzAChjZodHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9jZXJ0cy9zdWIuY2xhc3Mx LmNsaWVudC5jYS5jcnQwIwYDVR0SBBwwGoYYaHR0cDovL3d3dy5zdGFydHNzbC5jb20vMA0G CSqGSIb3DQEBCwUAA4IBAQBicQWe98eF/o09TXFsExc+WSyYjt3oSnXyocLzXQp82CQhIg21 5RqNZ1e+hsO7tq8S6hdItUDbKpecpIV59+57ke1zVl2slTRIT19fhYINHH78rVVRPzuHoiDt MXnGrp9hbq3Cz8P4mm8INKDiYK46kyplRAQ3ZMouPG1lsnDzgQAvbCj74H8yAp7fK8if6cxs 28BCUmdP8D3c6M1ffdNNaqNT+4Z3mtOujXXg7zOfmXN0Zg/mEtZ0NrWE2uICGdWjTv9KZiI7 fi4hk2CRpCL63qzmu6BwtcgtwhgYYtuAk2N43+SiyDkyLKGAcjEor3t5f9HivN29E0F0MXTH 1OdgMYIFDTCCBQkCAQEwgZQwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBM dGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYD VQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQID DnJKMA0GCWCGSAFlAwQCAwUAoIICSTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG SIb3DQEJBTEPFw0xNTExMDgxMDE5MjZaME8GCSqGSIb3DQEJBDFCBEB4ia+u4eSkV6uab2M2 jf9cYl7Psz/8eAeXzFJcEjxt+omu4KA8ZGqM1EZPmnaG7YSoSvWIIT+/7iJxh3sOmU10MGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgBvziSvn/8uGHteQLfeUI3XcPfT4Wuq Ow6VhUvVmh3thMNt/4xWJEWg2RafPydULNyeL3nJ9HEPEDA2B8gxuv3jyCwnDb7NXe2pV61e nHlsU2wacXaNSyJGfPvhzu60ZwO9AC/u3o7VP2E1E7JT/L5dL7ibRwvrEA78KJzgsjoBk1b5 Il/mZ3ULyzH22CG0LtO0lm4KIDGcu/P7+K4bOwfakL7vY06rdshCryILfqrhAgyhiVPyhLMl NbDluuMBU3P643WHO9abjiatIXrnW6bbbMl6uty3ymIIxK2WM929e8UVsTE0Q9LgOK2nxsTG r7sn2e6URkpp6GUMspIZUFV8VQXxb1YXtsylu0zxh4U6cMGKgsX+irPIpnTICyweGns6gQcz uXRxbLN/6UG3hegBGuMRtMXzMgtP168gsO6qLVJB3+02zCI6h9HBIJXMDjAOVUg+8649FLqg PEHJBfTjovqW4GVDsCjQ8XVIG/N9LzFNf2dam/CICDfru0Q+EpzRm3aZQ3XHs5+QB1bqZnBo FTJE/pJTVf0MbUac72UHu1Rsnj+9NwZrkbtnHL1W87DhhazXuZmSp1RKlE7a5dA1bOrbaBzS mWOoJcfmYMQQFUdD/4ul+2k+1TG7SWOxcwsA2wiwC+ch/luZZUZprkOydM4HdUcjNZYayB5+ jLIE9gAAAAAAAA== --------------ms000707060104010301090502--