From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0061.outbound.protection.outlook.com [157.55.234.61]) (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 53A0221F5D4 for ; Mon, 16 Nov 2015 05:46:17 -0800 (PST) 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 DB5PR07MB0936.eurprd07.prod.outlook.com (10.161.200.143) with Microsoft SMTP Server (TLS) id 15.1.325.17; Mon, 16 Nov 2015 13:46:13 +0000 To: Jonathan Morton 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> <563F21AE.5040506@darbyshire-bryant.me.uk> <56408DAB.6080106@darbyshire-bryant.me.uk> <0B75A2D1-80FC-4499-8DCD-FC2C4E150448@gmail.com> <5649CA7A.5060706@darbyshire-bryant.me.uk> <7983D5EE-9FF7-41AC-8F84-406EF7DB742F@gmail.com> From: Kevin Darbyshire-Bryant X-Enigmail-Draft-Status: N1110 Message-ID: <5649DE21.2040008@darbyshire-bryant.me.uk> Date: Mon, 16 Nov 2015 13:46:09 +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: <7983D5EE-9FF7-41AC-8F84-406EF7DB742F@gmail.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms040402010602090708070306" X-Originating-IP: [2001:470:183f:da2b::632f:a7da] X-ClientProxiedBy: VI1PR07CA0002.eurprd07.prod.outlook.com (25.163.160.140) To DB5PR07MB0936.eurprd07.prod.outlook.com (25.161.200.143) X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0936; 2:NIsHsfQ2Zp8G4qL4penxrvz6HyFKePYLK0FHLNmvDAKk/RHpZsLyaExGYKooqucLULdxDt7o76l9BA1CYC7oJOBKJ2YzAxvrSJyCGln+W+XQLtpVdUa/t2ADp2Hi1FfngAXY0hTtoPrabvQlfPVdSDNwGAVVNatTzqyexeJ1WcQ=; 3:UengPyw2nhjF8m4ku+1Jh5C0xqj7ioF7D797V7OhhHWa7kss6v0L5MefeQeScZLlJ0dA5N1tTLPeLQJefkcIEsJemNf/1onC9IzEaQ+1FZemObAU7lrb4Hxr6jFJeDr+ujfuUoganTfuCdMGGWwDmg==; 25:v2uoI72WrixrG81jRwUinZD+P3t9uD09nOncBfbM4erzmnu4a8kruel3UPjxLpR8HaNcSZmxban3ojdamv/ytC5xUY9b92UEtY53eQ0DdLXtsdpmUAap7lInfdKnyl8cRUxP3CZVz3l4n6kyYzAvctOBM7ZwYGuk2vBxJScieT6sXtIvW+J/ET8H9TQu9XOJSiYA3roCYjHikfPHqRj0b1XLoDDPhP7uwOKe0e5nJXobG4YjdwpJP9ldW0Ir+KBMbSr3cgX43AmscY/aeKqueA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB0936; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(10201501046)(3002001); SRVR:DB5PR07MB0936; BCL:0; PCL:0; RULEID:; SRVR:DB5PR07MB0936; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0936; 4:fdV2ne427bNXEVgPv3iDBCLu5nuukZwOxtH2A0jcaEjXjj+k5SXrfDo9yzoO5apt1Ykuq3/CO3/UCbDnWh6XfZi9UZF6Yg5w2/ZdgMSHHmg8iJZB0Wfs3pc80DOuhfb/npEFN39122zshokzUl7lvXt7U/0lL/6RS4+pWDOt/6ccpgrFufe/vvd9M5hi9AYGHhz5lODXS89Qf2NtYgFXdYdsHRYx+GaIhzO9NbvfsVyX8sqMaTwLctv2NyjrIKWsIbyScxFv29PmagBnGmoi6+d9+Lby5XRLoZ2+4thDb+DcQaRspH6PcK+4sPpwCHFAbPwfuX9e75bA++j0NpIwhJIWPqJwhBXCIUQmBVEObreZ20QH2vMhAnlCRGUc7IN8 X-Forefront-PRVS: 0762FFD075 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(24454002)(189002)(199003)(479174004)(5001960100002)(80316001)(568964002)(64126003)(74482002)(83506001)(42186005)(92566002)(40100003)(33656002)(512944002)(97736004)(2950100001)(106356001)(5008740100001)(36756003)(4001350100001)(122386002)(93886004)(5890100001)(1411001)(65816999)(189998001)(105586002)(5007970100001)(5004730100002)(586003)(101416001)(84326002)(86362001)(5001920100001)(87976001)(110136002)(54356999)(65806001)(76176999)(81156007)(77096005)(50986999)(59896002)(65956001)(87266999)(3826002)(5001840100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR07MB0936; 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; DB5PR07MB0936; 23:gGDEKWU0R3TjsO6bvJC0/EpEvGk/V2jq9e5hXlbLa?= =?us-ascii?Q?bB8VjoQqbPmT7pqSuZT5b3OVPKlV+eyaI34sHTSYEPVsz2y4XiKphsxEZeak?= =?us-ascii?Q?CNXki6M20DJHatgO0xXp3xuSr2S1Lkb56wjjGv3tvCTxHqR6g0QIIIFBVT8G?= =?us-ascii?Q?1nDGswGwCPMld8+ZT14ZkSBFi2hqx4Tr6heGEQcXuPGQSOElnMD+vmeV5I3j?= =?us-ascii?Q?PJOcv01rsZ+kjtqdFYLQflOArQrGEV+mJTYhVw1OoarLUTMJ4i4nudqFS7VE?= =?us-ascii?Q?PRaC1lPm5uBImTpN4MFU9Mriq+wUZGYfSKmH7gF2udMmw5mgp1FcHdcRaDyR?= =?us-ascii?Q?PxrOdGWsmkuVh18cThGy7uDpg+zeEj+y62s1z4hSpU334XZxfJ50O6NAxmWj?= =?us-ascii?Q?nCcNbskuniX/OJ70P5cLtGl39XuCSQn5x0jm57EM9SKmGHX9B3JH6720JOGO?= =?us-ascii?Q?9S3VfmJJsJ7wMg7RH009Jd89yXxuYdwJ4+FSZ5NkQr2MyWmx9Fz3oNUab/1T?= =?us-ascii?Q?rBZcslFGaUveotCQwVdudZ4G3iHAl34tZM2S0SAXyIZra6AVm/ZMbJVguFO9?= =?us-ascii?Q?BrqhtUeP9jWVgnlxD9FbKUynrOuOkTENpiHbhkzLuYQn4XTZE8BL/VizyfWS?= =?us-ascii?Q?A+898XXJ4r5uJeIYzktm2GyZKAqmI4LFIODESwtg3Mrf9GKajKc03fvFj5Vj?= =?us-ascii?Q?hhGohnp8exHlFdKSyqnmNWsOHD6M3aalm/p17MryXmfRdm/V/Ra7G4SY7dqZ?= =?us-ascii?Q?rEk93RvgbMf5yMJoxdAvJSH6lx0VfCz2UprhcOI6br7cZY26eQdzqhjsY1k2?= =?us-ascii?Q?YDOQgGzePcjIpTvba40rchR24HzcPexXeVBwzApt+vdvn12mU7B2cUuiG2S7?= =?us-ascii?Q?P+ZW5tv+xWRHls5lRvdfWWPVx7PxjO+cNpinExHHRGESUag/ndcIg+vYYQAc?= =?us-ascii?Q?C2NkZF+JyoEGJ3BI7TtlXi9dF9KxObTxsEr8gyjlXvnMU20Dj39Si4s8EN3D?= =?us-ascii?Q?NV/lNtFLHwghS6WmY1UaZfc7yFSziwLClctSA78CPwxD72eHlVUFxiLQpjxg?= =?us-ascii?Q?lDBrJZUJXBBehMQ1JjjMJIV0D8HCm6vB+Qaj7EF6vj8Hb3y8v9GTOMi0g2qn?= =?us-ascii?Q?qELR5Fx47yav6QAWhTfu4twYjpNihV4253TqSfsS7wGTHrDz6kLDsjaTNQuN?= =?us-ascii?Q?E7SteTl70K+snvItxOd49jxsesJqDmalORSK9MswdLMqKGi2/SZcOXlw4+hX?= =?us-ascii?Q?CkHCoPOmxttbTdUWtwJmk3069svNGSL4Hd06zB5owpcVqpbELRjp9DmVy9OF?= =?us-ascii?B?UT09?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0936; 5:/ONFwfxDT+9tWDBl67eBy1FkdjmpmN5mQg0/qS9PS8VWiYsGM8Ul6b3mhWPydSBkEX1DUA7onIT+BURPxlmPPU+xApqOiY522YbT067fNOPc5RHrPh4o+mT/FcHLwXBfqR5xawUAYxBIDLc/As7w6Q==; 24:T7ObVM0xBW9T7rKm2x1gEdQeHFqct00R6hSUVgwP1A+Ua8zS38vchij+tXFXWnecxmm/YcVe5NwfEdM6a/4F7nHCXjyMSElM9LykYZ2MszY=; 20:lCzeirF+CDMyCAlphAupEKCLPsanCkYpdS0oyyW/mLY1Js9UjxZhhW0er9G4ynIFMHfr8kdtZalLsMbzZRTErg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2015 13:46:13.6283 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB0936 Cc: cake@lists.bufferbloat.net 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: Mon, 16 Nov 2015 13:46:41 -0000 --------------ms040402010602090708070306 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 16/11/15 12:41, Jonathan Morton wrote: >> Video & Voice can gang together to claim 3/4 bandwidth >> still leaving 1/4ish to be battled between bulk & best effort=85 > That=92s the intended behaviour of the current settings, since Voice bo= rrows all the bandwidth it uses from Video=92s allocation. > > With Video reduced to a =BD allocation, Video + Voice should also be li= mited to =BD in total if there is competing saturating traffic. It=92s p= ossible that you haven=92t altered the =93bandwidth balance=94 DRR weight= s to match the new allocations, which might cause such an artefact. In which case, and this comes as no surprise at all, I really, really, really don't have a clue how this works :-) I apologise, can you explain= ? I've noticed a difference between how the drr weights are calculated between precedence/diffserv8 and diffserv4: diffserv8: does 7/8ths rate for each tin, 3/2 priority and 7/8 bandwidth sharing. Rate & bandwidth sharing decrease, priority increases= =2E diffserv4: (and this is from 'master' - none of my fiddling :-) /* class characteristics */ cake_set_rate(&q->tins[0], rate, mtu, US2TIME(q->target), US2TIME(q->interval)); cake_set_rate(&q->tins[1], rate - (rate >> 4), mtu, US2TIME(q->target), US2TIME(q->interval)); cake_set_rate(&q->tins[2], rate - (rate >> 2), mtu, US2TIME(q->target), US2TIME(q->interval)); cake_set_rate(&q->tins[3], rate >> 2, mtu, US2TIME(q->target), US2TIME(q->interval)); /* priority weights */ q->tins[0].tin_quantum_prio =3D quantum >> 4; q->tins[1].tin_quantum_prio =3D quantum; q->tins[2].tin_quantum_prio =3D quantum << 2; q->tins[3].tin_quantum_prio =3D quantum << 4; /* bandwidth-sharing weights */ q->tins[0].tin_quantum_band =3D (quantum >> 4); q->tins[1].tin_quantum_band =3D (quantum >> 3) + (quantum >> 4); q->tins[2].tin_quantum_band =3D (quantum >> 1); q->tins[3].tin_quantum_band =3D (quantum >> 2); Rate decreases. Priority increases. bandwidth sharing increases until voice where it decreases again. Bandwidth sharing mostly goes the opposite way round to precedence/diffserv8 - that suggests one of them is wrong. > >>> The tin-specific tuning of target and interval was introduced when Ca= ke had a separate hard shaper per tin. It was the obvious design at the = time. Now that Cake uses soft shaping between tins (allowing any tin to u= se the full link bandwidth if uncontended), it=92s possible that choosing= identical target and interval for all tins might suffice. Alternatively= , we might choose an even more conservative strategy. >>> >>> But which - and how do we decide? >> I've no idea! I tried the following experiment: set ingress & egress= >> b/widths to 2mbit & 448kbit respectively (like my parents adsl...on a >> good day) Ran a 'rrul8_splittin' and noted ping box_plot for each tin= - >> EF was about 30ms higher (120ms) than CS3 (90ms) Thinking I'd found a= >> smoking gun and that 120ms was quite close to the EF target of 140ms I= >> tweaked code to copy tin 0 target across all tins ..... it barely mad= e any >> difference at all! > Since you=92re using saturating traffic in all tins, Voice will be oper= ating in =93deprioritised=94 mode to penalise this abuse, so a higher lat= ency is entirely expected. If you delete the EF bulk flows but leave the= latency measurements in place, you should see a big latency advantage. > > As I tried to explain before, the Codel settings affect latency and thr= oughput *within* flows rather than *between* them. Since you are present= ly measuring using a between-flows methodology, it=92s not surprising tha= t you saw no difference. > > - Jonathan Morton > --------------ms040402010602090708070306 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 SIb3DQEJBTEPFw0xNTExMTYxMzQ2MDlaME8GCSqGSIb3DQEJBDFCBEBInxKu8BrvDs5JRQKM X2h2ALgGUSpgh8/jqI22BKQflOpYjguK++wIViNrFVv+w+xStJcgACr1GWvwgViaP1vsMGwG CSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAO BggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgw gaUGCSsGAQQBgjcQBDGBlzCBlDCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t IEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2 BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB AgMOckowgacGCyqGSIb3DQEJEAILMYGXoIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBD bGllbnQgQ0ECAw5ySjANBgkqhkiG9w0BAQEFAASCAgA2s9HvdyzUh7tNGxKXEIF+VQW9cYPe l8nCidMcJ0uaQeEuJS/pzn2nCl4jYP4bFZ0k9Pc8mH5aPyQpnoRrlc6IovCOzSEY3Kh2OQyy 0qdNvysx1/1Ra2RjH6tE+knk6Pi0JuAEXZrAaIOKrIjwFrsice6Gy7dRXl/DIdW53pOy3l3a l0PKtaPk7GzuBNSwwGO8kVQs+szjNDKfEYs/1jMVNscc6MFF3DZku/iM2k69Y1f9dCTBD99m NB/EYiTgQurXi2q9L+lstNziw+B2xhPFHpZLvp6lmJf2ogUnc8LtSTASIN7j27xVaQHapOjM Yy7qCGw57cRIZsnVm1uN0k3fDCi53KmYBZWE2JgY6DxjwPIs0SibdMDEP3Ev3Ec5oM66evhZ 2KcxS0uK6JQQoVtFERl3U6PxbOmh1X04ETuOighOm9x1U2kMC/KlWO6ujfj86Em7D3tt4la4 nUTJN22E8qpqDMYoboO/V5rM0KJMn5AcXrdJ6ZchZbDMieRJPqvHGa5piHtXr91ip+wrkPH7 GGeqJ95N8cYvOqr6KiJmWHhEkbAGw4E1IOn5pyPZfnU+CMPDL2TByNHYqBRY78mSmGhnLazw TpzpvaWRASI+TKdLqZi1wLy32xe7/ayA/cd3J2g3zWYB81AT/6rw3co//WnTex3q/oZ+FJtX KPLhsQAAAAAAAA== --------------ms040402010602090708070306--