From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 13:45:59 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 684A416A41A for ; Sun, 28 Oct 2007 13:45:59 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.229]) by mx1.freebsd.org (Postfix) with ESMTP id 16FF513C4C8 for ; Sun, 28 Oct 2007 13:45:58 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: by wx-out-0506.google.com with SMTP id i29so1205457wxd for ; Sun, 28 Oct 2007 06:45:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=341zniUK809ge+0WaVTEGKKZ+4zK7jhLFCaSVp2LHJ8=; b=soQEZ5HTlt42fCLAJWM6ZtHwufh3KEN5xza9FMeSjfnzcfBms27/r0dKW9QRpBmgR4aPaiadEpoiHTAPJQ333aaCmVCEkl7J+pLQVb8fACz4tNbcIbM3EsNUkVZvh63ZeV5qJhHol6cPBfwxKluSgE9uUnrBND3eFuAMcl9ByLE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=Gp3dPXZ9PUaSQxq6tEi2flnJM8uKDorluhyZiOl5D9x5NKXdToqyZBfskDjgwiCb7EGhrd7HVjuPkjQQqldbUsMxoh5c3k4E+rDUsmDZHLoK7JYaqJepSukhg4Pha6Tgz9yckdN+SvozReF0tPG+Sr7xrCvvsbp911m9V6Ub2Kk= Received: by 10.70.68.11 with SMTP id q11mr8717054wxa.1193577458293; Sun, 28 Oct 2007 06:17:38 -0700 (PDT) Received: by 10.70.73.1 with HTTP; Sun, 28 Oct 2007 06:17:38 -0700 (PDT) Message-ID: <9a542da30710280617t11e668e2o4d122998192f71c@mail.gmail.com> Date: Sun, 28 Oct 2007 14:17:38 +0100 From: "=?ISO-8859-1?Q?Ermal_Lu=E7i?=" To: freebsd-pf@freebsd.org, freebsd-net@freebsd.org In-Reply-To: <9a542da30710211232v4d3c930fg8ea778a12f3f16cb@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_13721_18234194.1193577458248" References: <9a542da30710161409o4732a77bybdf4ba35d7491bb@mail.gmail.com> <200710171043.08126.max@love2party.net> <9a542da30710211232v4d3c930fg8ea778a12f3f16cb@mail.gmail.com> X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: [PATCH] PF+dummynet X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 13:45:59 -0000 ------=_Part_13721_18234194.1193577458248 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Attached is the patch against -CURRENT for integrating PF with dummynet! It gives full dummynet support in pf.conf syntax and removes dummynet depndency to ipfw. You can configure a pipe/queue using the same ipfw syntax the only difference is that i call those 'dnpipe'/'dnqueue' respectivley. GRED/RED isn't currently finished but that is a pfctl addition so not difficult. For dummynet i preserve ipfw style statistics so tools of ipfw can be used here to. Since this is PF i preserved ALTQ priotitizing of ACK, meaning on ALTQ you do pass in quick proto tcp from any to any flags S/SA queue(pri, que) You can do the same with dummynet queues only, since for pipes it doesn't make much sense since they simulate a link. So yuo can do dnpipe 10 bandwidth 100Kbit dnqueue 10 dnpipe 10 queue 100 dnqueue 20 dnpipe 10 queue 20 pass in quick proto tcp from any to any flags S/SA dnqueue(10, 20) Please test and give feedback. ------=_Part_13721_18234194.1193577458248-- From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 17:13:16 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 374C416A46B for ; Sun, 28 Oct 2007 17:13:16 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.237]) by mx1.freebsd.org (Postfix) with ESMTP id 4D3EA13C4B2 for ; Sun, 28 Oct 2007 17:13:15 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: by wx-out-0506.google.com with SMTP id i29so1241198wxd for ; Sun, 28 Oct 2007 10:13:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=nUlki/CViR6OANFYfhJUZpv+lzd6qHWBNgYYZb08oYk=; b=c0LXpQxILUuq43cTpkav9HhRJnURLhEpgxsZVK0HpVh7c+XmJdsaU2ckV6AFZHuRmDqJ7CdMP0RhPCA+rNXV9mHN6znQT1hN0svGK2xKisu3HDf5vToUyMYnMudXM/VcoBq687vJAlscoa5mCE62sylzA6n2aiDCykKSGq5KRoE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=gl5YPB5yuuQ8PmcfJwoQPykGxOr83T4pLkCU8zucmZriSrlVuPdHOsx3iWSiyiXOJ4GI5OTpA61tq/nBA338qS7xieTyhgdyjmwSVbJ7PIhrXsDdsPeSx++LcklBifvE1Ma9gdkb85PCRPy3cqJxiloC3t0P62iZ0kprR6oGfqI= Received: by 10.70.89.11 with SMTP id m11mr8956268wxb.1193591593948; Sun, 28 Oct 2007 10:13:13 -0700 (PDT) Received: by 10.70.73.1 with HTTP; Sun, 28 Oct 2007 10:13:13 -0700 (PDT) Message-ID: <9a542da30710281013q642b5aa8k33c7836ee064242e@mail.gmail.com> Date: Sun, 28 Oct 2007 18:13:13 +0100 From: "=?ISO-8859-1?Q?Ermal_Lu=E7i?=" To: freebsd-pf@freebsd.org, freebsd-net@freebsd.org In-Reply-To: <20071028095802.A61999@xorpc.icir.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_14170_30775547.1193591593935" References: <9a542da30710161409o4732a77bybdf4ba35d7491bb@mail.gmail.com> <200710171043.08126.max@love2party.net> <9a542da30710211232v4d3c930fg8ea778a12f3f16cb@mail.gmail.com> <9a542da30710280617t11e668e2o4d122998192f71c@mail.gmail.com> <20071028095802.A61999@xorpc.icir.org> Cc: Subject: Fwd: [PATCH] PF+dummynet X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 17:13:16 -0000 ------=_Part_14170_30775547.1193591593935 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline I am sending this again since it seems the list ripps off files other than text files. > > > It gives full dummynet support in pf.conf syntax and removes dummynet > > depndency to ipfw. > > > > You can configure a pipe/queue using the same ipfw syntax the only > > difference is that i call those 'dnpipe'/'dnqueue' respectivley. > > GRED/RED isn't currently finished but that is a pfctl addition so not > > difficult. > > > > For dummynet i preserve ipfw style statistics so tools of ipfw can be > > used here to. > > > > Since this is PF i preserved ALTQ priotitizing of ACK, meaning on ALTQ you do > > pass in quick proto tcp from any to any flags S/SA queue(pri, que) > > > > You can do the same with dummynet queues only, since for pipes it > > doesn't make much sense since they simulate a link. So yuo can do > > > > dnpipe 10 bandwidth 100Kbit > > dnqueue 10 dnpipe 10 queue 100 > > dnqueue 20 dnpipe 10 queue 20 > > > > pass in quick proto tcp from any to any flags S/SA dnqueue(10, 20) > > > > > > Please test and give feedback. > > > _______________________________________________ > > freebsd-net@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-net > > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > ------=_Part_14170_30775547.1193591593935 Content-Type: text/x-patch; name=test_dummynet3.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_f8bvlik4 Content-Disposition: attachment; filename=test_dummynet3.diff SW5kZXg6IGNvbnRyaWIvcGYvcGZjdGwvcGFyc2UueQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9t ZS9lcmkvcmVwby9jb250cmliL3BmL3BmY3RsL3BhcnNlLnksdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMS4xLjEKZGlmZiAtdSAtcjEuMS4xLjEgcGFyc2UueQotLS0gY29udHJpYi9wZi9wZmN0bC9w YXJzZS55CTIxIE9jdCAyMDA3IDEzOjUzOjE1IC0wMDAwCTEuMS4xLjEKKysrIGNvbnRyaWIvcGYv cGZjdGwvcGFyc2UueQkyMSBPY3QgMjAwNyAxOTowMzo0OSAtMDAwMApAQCAtNDUsNiArNDUsOSBA QAogI2luY2x1ZGUgPGFsdHEvYWx0cV9wcmlxLmg+CiAjaW5jbHVkZSA8YWx0cS9hbHRxX2hmc2Mu aD4KIAorI2luY2x1ZGUgPG5ldGluZXQvaXBfZncuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2lwX2R1 bW15bmV0Lmg+CisKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2lu Y2x1ZGUgPG5ldGRiLmg+CkBAIC0yMDYsNiArMjA5LDkgQEAKIAljaGFyCQkJKnRhZzsKIAljaGFy CQkJKm1hdGNoX3RhZzsKIAl1X2ludDhfdAkJIG1hdGNoX3RhZ19ub3Q7CisJdV9pbnQzMl90CQkg ZG5waXBlOworCXVfaW50MzJfdAkJIHBkbnBpcGU7CisJdV9pbnQzMl90CQkgZG50eXBlOwogCWlu dAkJCSBydGFibGVpZDsKIH0gZmlsdGVyX29wdHM7CiAKQEAgLTI2MSw2ICsyNjcsOCBAQAogCiAK IHN0cnVjdCBub2RlX2hmc2Nfb3B0cwloZnNjX29wdHM7CitzdHJ1Y3QgZG5fcGlwZQkJZG5waXBl X29wdHM7CitzdHJ1Y3QgZG5fZmxvd19zZXQJZG5xdWV1ZV9vcHRzOwogCiBpbnQJeXllcnJvcihj b25zdCBjaGFyICosIC4uLik7CiBpbnQJZGlzYWxsb3dfdGFibGUoc3RydWN0IG5vZGVfaG9zdCAq LCBjb25zdCBjaGFyICopOwpAQCAtMzk1LDYgKzQwMyw4IEBACiAJCXN0cnVjdCBmaWx0ZXJfb3B0 cwkgZmlsdGVyX29wdHM7CiAJCXN0cnVjdCBhbnRpc3Bvb2Zfb3B0cwkgYW50aXNwb29mX29wdHM7 CiAJCXN0cnVjdCBxdWV1ZV9vcHRzCSBxdWV1ZV9vcHRzOworCQlzdHJ1Y3QgZG5fcGlwZQkJIGRu cGlwZV9vcHRzOworCQlzdHJ1Y3QgZG5fZmxvd19zZXQJIGRucXVldWVfb3B0czsKIAkJc3RydWN0 IHNjcnViX29wdHMJIHNjcnViX29wdHM7CiAJCXN0cnVjdCB0YWJsZV9vcHRzCSB0YWJsZV9vcHRz OwogCQlzdHJ1Y3QgcG9vbF9vcHRzCSBwb29sX29wdHM7CkBAIC00MjEsNiArNDMxLDggQEAKICV0 b2tlbglCSVRNQVNLIFJBTkRPTSBTT1VSQ0VIQVNIIFJPVU5EUk9CSU4gU1RBVElDUE9SVCBQUk9C QUJJTElUWQogJXRva2VuCUFMVFEgQ0JRIFBSSVEgSEZTQyBCQU5EV0lEVEggVEJSU0laRSBMSU5L U0hBUkUgUkVBTFRJTUUgVVBQRVJMSU1JVAogJXRva2VuCVFVRVVFIFBSSU9SSVRZIFFMSU1JVCBS VEFCTEUKKyV0b2tlbglETlBJUEUgRE5RVUVVRSBHUkVEIFJFRCBXRUlHSFQgTUFTSyBERUxBWSBC VUNLRVRTIFBMUgorJXRva2VuCVNSQ0lQIERTVElQIFNSQ1BPUlQgRFNUUE9SVCBTUkNJUDYgRFNU SVA2IEZMT1dJRCBOT0VSUk9SCiAldG9rZW4JTE9BRCBSVUxFU0VUX09QVElNSVpBVElPTgogJXRv a2VuCVNUSUNLWUFERFJFU1MgTUFYU1JDU1RBVEVTIE1BWFNSQ05PREVTIFNPVVJDRVRSQUNLIEdM T0JBTCBSVUxFCiAldG9rZW4JTUFYU1JDQ09OTiBNQVhTUkNDT05OUkFURSBPVkVSTE9BRCBGTFVT SApAQCAtNDUxLDcgKzQ2Myw3IEBACiAldHlwZQk8di5naWQ+CQkJZ2lkcyBnaWRfbGlzdCBnaWRf aXRlbQogJXR5cGUJPHYucm91dGU+CQlyb3V0ZQogJXR5cGUJPHYucmVkaXJlY3Rpb24+CQlyZWRp cmVjdGlvbiByZWRpcnBvb2wKLSV0eXBlCTx2LnN0cmluZz4JCWxhYmVsIHN0cmluZyB0YWcgYW5j aG9ybmFtZQorJXR5cGUJPHYuc3RyaW5nPgkJbGFiZWwgc3RyaW5nIHRhZyBhbmNob3JuYW1lIAog JXR5cGUJPHYua2VlcF9zdGF0ZT4JCWtlZXAKICV0eXBlCTx2LnN0YXRlX29wdD4JCXN0YXRlX29w dF9zcGVjIHN0YXRlX29wdF9saXN0IHN0YXRlX29wdF9pdGVtCiAldHlwZQk8di5sb2dxdWljaz4J CWxvZ3F1aWNrIHF1aWNrIGxvZyBsb2dvcHRzIGxvZ29wdApAQCAtNDYyLDYgKzQ3NCw4IEBACiAl dHlwZQk8di5udW1iZXI+CQljYnFmbGFnc19saXN0IGNicWZsYWdzX2l0ZW0KICV0eXBlCTx2Lm51 bWJlcj4JCXByaXFmbGFnc19saXN0IHByaXFmbGFnc19pdGVtCiAldHlwZQk8di5oZnNjX29wdHM+ CQloZnNjb3B0c19saXN0IGhmc2NvcHRzX2l0ZW0gaGZzY19vcHRzCisldHlwZQk8di5kbnBpcGVf b3B0cz4JCWRucGlwZV9vcHRzCisldHlwZQk8di5kbnF1ZXVlX29wdHM+CWRucXVldWVfb3B0cyBt YXNrX3NwZWNpZmllcgogJXR5cGUJPHYucXVldWVfYndzcGVjPgliYW5kd2lkdGgKICV0eXBlCTx2 LmZpbHRlcl9vcHRzPgkJZmlsdGVyX29wdHMgZmlsdGVyX29wdCBmaWx0ZXJfb3B0c19sCiAldHlw ZQk8di5hbnRpc3Bvb2Zfb3B0cz4JYW50aXNwb29mX29wdHMgYW50aXNwb29mX29wdCBhbnRpc3Bv b2Zfb3B0c19sCkBAIC00ODMsNiArNDk3LDggQEAKIAkJfCBydWxlc2V0IGFuY2hvcnJ1bGUgJ1xu JwogCQl8IHJ1bGVzZXQgbG9hZHJ1bGUgJ1xuJwogCQl8IHJ1bGVzZXQgYWx0cWlmICdcbicKKwkJ fCBydWxlc2V0IGR1bW15bmV0aWYgJ1xuJworCQl8IHJ1bGVzZXQgZG5xdWV1ZXNwZWMgJ1xuJwog CQl8IHJ1bGVzZXQgcXVldWVzcGVjICdcbicKIAkJfCBydWxlc2V0IHZhcnNldCAnXG4nCiAJCXwg cnVsZXNldCBhbnRpc3Bvb2YgJ1xuJwpAQCAtMTY2Nyw2ICsxNjgzLDIyMiBAQAogCQl9CiAJCTsK IAorZHVtbXluZXRpZiAgICAgIDogRE5QSVBFIG51bWJlciBkbnBpcGVfb3B0cyBkbnF1ZXVlX29w dHMgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbl9waXBlIHA7CisK KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGVja19ydWxlc3RhdGUoUEZDVExfU1RBVEVf UVVFVUUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworCisgICAg ICAgICAgICAgICAgICAgICAgICBtZW1zZXQoJnAsIDAsIHNpemVvZihwKSk7CisKKyAgICAgICAg ICAgICAgICAgICAgICAgIHAuYmFuZHdpZHRoID0gJDMuYmFuZHdpZHRoOworICAgICAgICAgICAg ICAgICAgICAgICAgcC5kZWxheSA9ICQzLmRlbGF5OworCQkJcC5waXBlX25yID0gJDI7CisgICAg ICAgICAgICAgICAgICAgICAgICBtZW1jcHkoJnAuZnMsICYkNCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKHAuZnMpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg aWYocGZjdGxfYWRkX2R1bW15bmV0KHBmLCAmcCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFlZRVJST1I7CisgICAgICAgICAgICAgICAgfQorZG5xdWV1ZXNwZWMgICAgIDogRE5R VUVVRSBudW1iZXIgRE5QSVBFIG51bWJlciBkbnF1ZXVlX29wdHMgeworCQkgICAgICAgIHN0cnVj dCBkbl9waXBlIHA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGVja19ydWxlc3Rh dGUoUEZDVExfU1RBVEVfUVVFVUUpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WVlFUlJPUjsKKworICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZwLCAwLCBzaXplb2Yo cCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJDQgPT0gMCkgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB5eWVycm9yKCJwaXBlIG11c3QgYmUgc3BlY2lmaWVkIGZv ciBxdWV1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAg ICAgICAgICAgICAgICAgICAgICAgfQorCQkJaWYgKCQyID09IDApIHsKKwkJCQl5eWVycm9yKCJx dWV1ZSBudW1iZXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCIpOworCQkJCVlZRVJST1I7CisJCQl9 CisJCQkJCQorICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCZwLmZzLCAmJDUsIHNpemVv ZihwLmZzKSk7CisJCQlwLmZzLmZzX25yID0gJDI7CisgICAgICAgICAgICAgICAgICAgICAgICBw LmZzLnBhcmVudF9uciA9ICQ0OworCQkJcC5waXBlX25yID0gMDsKKworICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKHBmY3RsX2FkZF9kdW1teW5ldChwZiwgJnApKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoImVycm9ycyBpbiBkbnF1ZXVlIGRlZmluaXRpb24i KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlFUlJPUjsKKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCitk bnBpcGVfb3B0cyAgICAgOiAgICAgICAvKiBYWFg6IGZpeCB0aGlzICovIHsKKwkgICAgICAgICAg ICAgICAgYnplcm8oJmRucGlwZV9vcHRzLCBzaXplb2YgZG5waXBlX29wdHMpOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGRucGlwZV9vcHRzX2wKKyAgICAgICAg ICAgICAgICAgICAgICAgCXsgJCQgPSBkbnBpcGVfb3B0czsgfQorICAgICAgICAgICAgICAgIHwJ LyogZW1wdHkgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgYnplcm8oJmRucGlwZV9vcHRz LCBzaXplb2YgZG5waXBlX29wdHMpOworICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBkbnBp cGVfb3B0czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCitkbnBpcGVf b3B0c19sICAgOiBkbnBpcGVfb3B0c19sIGRucGlwZV9vcHQKKwkgICAgICAgIHwgZG5waXBlX29w dAorICAgICAgICAgICAgICAgIDsKKworZG5waXBlX29wdCAgICAgIDogQkFORFdJRFRIIGJhbmR3 aWR0aCAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRucGlwZV9vcHRzLmJhbmR3aWR0aCA9 ICQyLmJ3X2Fic29sdXRlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8IERF TEFZIG51bWJlciAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJDIgPiAw ICYmICQyIDwgMTAwMDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRucGlwZV9v cHRzLmRlbGF5ID0gJDI7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeXllcnJvcigiZGVsYXkgbmVlZHMgYXJndW1lbnQgMC4u MTAwMDBtcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICA7CisKK2RucXVldWVfb3B0cyAgICA6IC8qIFhYWDogZml4IHRoaXMgKi8geworCQkgICAgICAg IGJ6ZXJvKCZkbnF1ZXVlX29wdHMsIHNpemVvZiBkbnF1ZXVlX29wdHMpOworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZG5xdWV1ZV9vcHRzX2wKKyAgICAgICAgICAgICAg ICAgICAgICAgIHsgJCQgPSBkbnF1ZXVlX29wdHM7IH0KKyAgICAgICAgICAgICAgICB8IC8qIGVt cHR5ICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ6ZXJvKCZxdWV1ZV9vcHRzLCBzaXpl b2YgcXVldWVfb3B0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGRucXVldWVfb3B0 czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCitkbnF1ZXVlX29wdHNf bCAgOiBkbnF1ZXVlX29wdHNfbCBkbnF1ZXVlX29wdAorCQl8IGRucXVldWVfb3B0CisgICAgICAg ICAgICAgICAgOworCitkbnF1ZXVlX29wdCAgICAgOiBCVUNLRVRTIG51bWJlciAgICAgICB7CisJ CSAgICAgICAgaWYgKCQyIDwgMTYgfHwgJDIgPiA2NTUzNSkgeworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB5eWVycm9yKCJidWNrZXRzIG91dCBvZiByYW5nZTogWzE2LTY1NTM1XSIp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLypkbnF1ZXVlX29wdHMubWFy a2VyIHw9IEROX0JVQ0tFVFM7Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRucXVldWVfb3B0 cy5ycV9zaXplID0gJDI7CisgICAgICAgICAgICAgICAgfQorCQl8IFdFSUdIVCBudW1iZXIJCQkg IHsKKwkJCWlmICgkMiA8IDAgfHwgJDIgPiAxMDApICB7IC8qIFswLi4xMDBdIGlzIGFsbG93ZWQg Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXllcnJvcigid2VpZ2h0IG11c3Qg YmUgaW4gWzAuLjEwMF0gcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WVlFUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgIAorCQkJZG5xdWV1ZV9vcHRzLndlaWdodCA9ICQyOworCQl9CisgICAgICAgICAgICAgICAg fCBRVUVVRSBTVFJJTkcJCSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgICBicHM7 CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICAgICpjcDsKKworCQkJYnBzID0gc3RydG9k KCQyLCAmY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJwcyA8IDE2IHx8IGJwcyA+ IDY1NTM1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoInFsaW1p dCBvdXQgb2YgcmFuZ2UgWzE2Li42NTUzNV0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWVlFUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKGNwICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCFzdHJjbXAoY3AsICJCIikpCisJCQkJCWRucXVldWVfb3B0cy5mbGFnc19mcyB8 PSAKKwkJCQkJCUROX1FTSVpFX0lTX0JZVEVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbHNlIGlmICghc3RyY21wKGNwLCAiS0IiKSkgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJwcyAqPSAxMDI0OworCQkJCQlkbnF1ZXVlX29wdHMuZmxhZ3Nf ZnMgfD0gCisJCQkJCQlETl9RU0laRV9JU19CWVRFUzsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIGlmICgqY3AgIT0gJ1wwJykgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoInVua25vd24gdW5pdCAlcyIsIGNwKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKCQyKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CisJCQl9IGVsc2UgCisJCQkJZG5xdWV1ZV9vcHRzLmZsYWdzX2ZzICY9 IAorCQkJCQl+RE5fUVNJWkVfSVNfQllURVM7CisgICAgICAgICAgICAgICAgICAgICAgICBmcmVl KCQyKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgZG5xdWV1ZV9vcHRzLnFzaXplID0gKHVf aW50MzJfdClicHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHwgUExSIG51 bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg ICBkbnF1ZXVlX29wdHMucGxyID0gKGludCkkMioweDdmZmZmZmZmIDsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgfCBNQVNLIG1hc2tfc3BlY2lmaWVyICAgeworICAgICAgICAg ICAgICAgICAgICAgICAgbWVtY3B5KCZkbnF1ZXVlX29wdHMsICYkMiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRucXVldWVfb3B0cykpOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICB8IFJFRCBzdHJpbmcgJy8nIG51bWJlciAnLycgbnVtYmVyICcv JyBzdHJpbmcgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogWFhYOiB0aGlzIG5v dCB5ZXQgZmluaXNoZWQhICovCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICAgICplOwor ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICAgcCA9IHN0cnRvZCgkMiwgJmUpOworCisg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKmUgPT0gJyUnKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHAgKj0gMC4wMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZSsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoImlu dmFsaWQ6ICVzIiwgJDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKCQy KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlFUlJPUjsKKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBmbG9vcihwICogKFVJ TlRfTUFYKzEuMCkgKyAwLjUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAgPCAxLjAg fHwgcCA+PSAoVUlOVF9NQVgrMS4wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB5eWVycm9yKCJpbnZhbGlkOiAlcyIsICQyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnJlZSgkMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlZRVJST1I7 CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBmcmVl KCQyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCittYXNrX3NwZWNp ZmllciAgOiBBTEwgICAgICAgICAgICAgICAgICAgeworCisgICAgICAgICAgICAgICAgICAgICAg ICBtZW1zZXQoJiQkLCAwLCBzaXplb2YoJCQpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg JCQuZmxvd19tYXNrLmRzdF9pcCA9IH4wOworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxv d19tYXNrLnNyY19pcCA9IH4wOworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxvd19tYXNr LmRzdF9wb3J0ID0gfjA7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbG93X21hc2suc3Jj X3BvcnQgPSB+MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsb3dfbWFzay5wcm90byA9 IH4wOworICAgICAgICAgICAgICAgICAgICAgICAgbjJtYXNrKCYkJC5mbG93X21hc2suZHN0X2lw NiwgMTI4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG4ybWFzaygmJCQuZmxvd19tYXNrLnNy Y19pcDYsIDEyOCk7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbG93X21hc2suZmxvd19p ZDYgPSB+MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9IEROX0hBVkVf RkxPV19NQVNLOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8IERTVElQIG51 bWJlciAgICAgICAgICAgICAJeworCQkJJCQuZmxvd19tYXNrLmRzdF9pcCA9ICh1aW50MzJfdCkk MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9IEROX0hBVkVfRkxPV19N QVNLOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8IFNSQ0lQIG51bWJlcgkg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxvd19tYXNrLnNyY19p cCA9ICh1aW50MzJfdCkkMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9 IEROX0hBVkVfRkxPV19NQVNLOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8 IERTVFBPUlQgbnVtYmVyCSAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJCQu Zmxvd19tYXNrLmRzdF9wb3J0ID0gKHVpbnQxNl90KSQyOworICAgICAgICAgICAgICAgICAgICAg ICAgJCQuZmxhZ3NfZnMgfD0gRE5fSEFWRV9GTE9XX01BU0s7CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgIHwgU1JDUE9SVCBudW1iZXIJICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICAkJC5mbG93X21hc2suc3JjX3BvcnQgPSAodWludDE2X3QpJDI7CisgICAg ICAgICAgICAgICAgICAgICAgICAkJC5mbGFnc19mcyB8PSBETl9IQVZFX0ZMT1dfTUFTSzsKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfCBEU1RJUDYgJy8nIG51bWJlciAJICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBuMm1hc2soJiQkLmZsb3dfbWFzay5k c3RfaXA2LCAkMyk7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbGFnc19mcyB8PSBETl9I QVZFX0ZMT1dfTUFTSzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfCBTUkNJ UDYgJy8nIG51bWJlcgkgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBuMm1h c2soJiQkLmZsb3dfbWFzay5zcmNfaXA2LCAkMyk7CisgICAgICAgICAgICAgICAgICAgICAgICAk JC5mbGFnc19mcyB8PSBETl9IQVZFX0ZMT1dfTUFTSzsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgfCBGTE9XSUQgbnVtYmVyCSAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICQkLmZsb3dfbWFzay5mbG93X2lkNiA9ICh1aW50MzJfdCkkMjsKKyAgICAgICAg ICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9IEROX0hBVkVfRkxPV19NQVNLOworCisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHwgUFJPVE8gbnVtYmVyIAkgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxvd19tYXNrLnByb3RvID0gKHVpbnQ4 X3QpJDI7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbGFnc19mcyB8PSBETl9IQVZFX0ZM T1dfTUFTSzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfCBOT0VSUk9SICAg ICAgIHsgJCQuZmxhZ3NfZnMgfD0gRE5fTk9FUlJPUjsgfQorICAgICAgICAgICAgICAgIDsKKwog cGZydWxlCQk6IGFjdGlvbiBkaXIgbG9ncXVpY2sgaW50ZXJmYWNlIHJvdXRlIGFmIHByb3RvIGZy b210bwogCQkgICAgZmlsdGVyX29wdHMKIAkJewpAQCAtMjAzNCw2ICsyMjY2LDE0IEBACiAJCQkJ ZnJlZSgkOS5xdWV1ZXMucHFuYW1lKTsKIAkJCX0KIAorCQkJaWYgKCQ5LmRucGlwZSkgeworCQkJ CXIuZG5waXBlID0gJDkuZG5waXBlOworCQkJCXIuZG50eXBlID0gJDkuZG50eXBlOworCQkJfQor CQkJaWYgKCQ5LnBkbnBpcGUgJiYgci5kbnR5cGUgPT0gRE5fSVNfUVVFVUUpIHsKKwkJCQlyLnBk bnBpcGUgPSAkOS5wZG5waXBlOworCQkJfQorCiAJCQlleHBhbmRfcnVsZSgmciwgJDQsICQ1Lmhv c3QsICQ3LCAkOC5zcmNfb3MsCiAJCQkgICAgJDguc3JjLmhvc3QsICQ4LnNyYy5wb3J0LCAkOC5k c3QuaG9zdCwgJDguZHN0LnBvcnQsCiAJCQkgICAgJDkudWlkLCAkOS5naWQsICQ5LmljbXBzcGVj LCAiIik7CkBAIC0yMTIzLDYgKzIzNjMsMjcgQEAKIAkJCX0KIAkJCWZpbHRlcl9vcHRzLnF1ZXVl cyA9ICQxOwogCQl9CisJCXwgRE5QSVBFIG51bWJlcgkJCSAgICAgICAgeworCQkJZmlsdGVyX29w dHMuZG5waXBlID0gJDI7CisJCQlmaWx0ZXJfb3B0cy5kbnR5cGUgPSBETl9JU19QSVBFOworCQl9 CisJCXwgRE5QSVBFICcoJyBudW1iZXIgJyknCQkJeworCQkJZmlsdGVyX29wdHMuZG5waXBlID0g JDM7CisJCQlmaWx0ZXJfb3B0cy5kbnR5cGUgPSBETl9JU19QSVBFOworCQl9CisJCXwgRE5RVUVV RSBudW1iZXIJCQl7CisJCQlmaWx0ZXJfb3B0cy5kbnBpcGUgPSAkMjsKKwkJCWZpbHRlcl9vcHRz LmRudHlwZSA9IEROX0lTX1FVRVVFOworCQl9CisJCXwgRE5RVUVVRSAnKCcgbnVtYmVyIGNvbW1h IG51bWJlciAnKScJeworCQkJZmlsdGVyX29wdHMuZG5waXBlID0gJDM7CisJCQlmaWx0ZXJfb3B0 cy5wZG5waXBlID0gJDU7CisJCQlmaWx0ZXJfb3B0cy5kbnR5cGUgPSBETl9JU19RVUVVRTsKKwkJ fQorCQl8IEROUVVFVUUgJygnIG51bWJlciAnKScJCXsKKwkJCWZpbHRlcl9vcHRzLmRucGlwZSA9 ICQzOworCQkJZmlsdGVyX29wdHMuZG50eXBlID0gRE5fSVNfUVVFVUU7CisJCX0KIAkJfCBUQUcg c3RyaW5nCQkJCXsKIAkJCWZpbHRlcl9vcHRzLnRhZyA9ICQyOwogCQl9CkBAIC00MTEwLDYgKzQz NzEsMTEgQEAKIAkJeXllcnJvcigia2VlcCBzdGF0ZSBvbiBibG9jayBydWxlcyBkb2Vzbid0IG1h a2Ugc2Vuc2UiKTsKIAkJcHJvYmxlbXMrKzsKIAl9CisJaWYgKHItPnJ0ICYmIHItPmRucGlwZSkg eworCQl5eWVycm9yKCJyb3V0ZS10by9kdXAtdG8vZmFzdHJvdXRlL3JlcGx5LXRvIHdpdGggZHVt bXluZXQgIgorCQkJImRvZXNuJ3QgbWFrZSBzZW5zZSIpOworCQlwcm9ibGVtcysrOworCX0KIAly ZXR1cm4gKC1wcm9ibGVtcyk7CiB9CiAKQEAgLTQ4OTYsMjMgKzUxNjIsMzIgQEAKIAkJeyAiYml0 bWFzayIsCQlCSVRNQVNLfSwKIAkJeyAiYmxvY2siLAkJQkxPQ0t9LAogCQl7ICJibG9jay1wb2xp Y3kiLAlCTE9DS1BPTElDWX0sCisJCXsgImJ1Y2tldHMiLAkJQlVDS0VUU30sCiAJCXsgImNicSIs CQlDQlF9LAogCQl7ICJjb2RlIiwJCUNPREV9LAogCQl7ICJjcm9wIiwJCUZSQUdDUk9QfSwKIAkJ eyAiZGVidWciLAkJREVCVUd9LAorCQl7ICJkZWxheSIsCQlERUxBWX0sCisJCXsgImRucGlwZSIs IAkJRE5QSVBFfSwKKwkJeyAiZG5xdWV1ZSIsCQlETlFVRVVFfSwKIAkJeyAiZHJvcCIsCQlEUk9Q fSwKIAkJeyAiZHJvcC1vdmwiLAkJRlJBR0RST1B9LAorCQl7ICJkc3QtaXAiLAkJRFNUSVB9LAor CQl7ICJkc3QtaXA2IiwJCURTVElQNn0sCiAJCXsgImR1cC10byIsCQlEVVBUT30sCisJCXsgImRz dC1wb3J0IiwJCURTVFBPUlR9LAogCQl7ICJmYXN0cm91dGUiLAkJRkFTVFJPVVRFfSwKIAkJeyAi ZmlsZSIsCQlGSUxFTkFNRX0sCiAJCXsgImZpbmdlcnByaW50cyIsCUZJTkdFUlBSSU5UU30sCiAJ CXsgImZsYWdzIiwJCUZMQUdTfSwKIAkJeyAiZmxvYXRpbmciLAkJRkxPQVRJTkd9LAorCQl7ICJm bG93LWlkIiwJCUZMT1dJRH0sCiAJCXsgImZsdXNoIiwJCUZMVVNIfSwKIAkJeyAiZm9yIiwJCUZP Un0sCiAJCXsgImZyYWdtZW50IiwJCUZSQUdNRU5UfSwKIAkJeyAiZnJvbSIsCQlGUk9NfSwKIAkJ eyAiZ2xvYmFsIiwJCUdMT0JBTH0sCisJCXsgImdyZWQiLAkJR1JFRH0sCiAJCXsgImdyb3VwIiwJ CUdST1VQfSwKIAkJeyAiaGZzYyIsCQlIRlNDfSwKIAkJeyAiaG9zdGlkIiwJCUhPU1RJRH0sCkBA IC00OTI5LDYgKzUyMDQsNyBAQAogCQl7ICJsb2FkIiwJCUxPQUR9LAogCQl7ICJsb2ciLAkJTE9H fSwKIAkJeyAibG9naW50ZXJmYWNlIiwJTE9HSU5URVJGQUNFfSwKKwkJeyAibWFzayIsCQlNQVNL fSwKIAkJeyAibWF4IiwJCU1BWElNVU19LAogCQl7ICJtYXgtbXNzIiwJCU1BWE1TU30sCiAJCXsg Im1heC1zcmMtY29ubiIsCU1BWFNSQ0NPTk59LApAQCAtNDk0MywxMiArNTIxOSwxNCBAQAogCQl7 ICJuby1kZiIsCQlOT0RGfSwKIAkJeyAibm8tcm91dGUiLAkJTk9ST1VURX0sCiAJCXsgIm5vLXN5 bmMiLAkJTk9TWU5DfSwKKwkJeyAibm9lcnJvciIsCQlOT0VSUk9SfSwKIAkJeyAib24iLAkJCU9O fSwKIAkJeyAib3B0aW1pemF0aW9uIiwJT1BUSU1JWkFUSU9OfSwKIAkJeyAib3MiLAkJCU9TfSwK IAkJeyAib3V0IiwJCU9VVH0sCiAJCXsgIm92ZXJsb2FkIiwJCU9WRVJMT0FEfSwKIAkJeyAicGFz cyIsCQlQQVNTfSwKKwkJeyAicGxyIiwJCVBMUn0sCiAJCXsgInBvcnQiLAkJUE9SVH0sCiAJCXsg InByaW9yaXR5IiwJCVBSSU9SSVRZfSwKIAkJeyAicHJpcSIsCQlQUklRfSwKQEAgLTQ5NjMsNiAr NTI0MSw3IEBACiAJCXsgInJkci1hbmNob3IiLAkJUkRSQU5DSE9SfSwKIAkJeyAicmVhbHRpbWUi LAkJUkVBTFRJTUV9LAogCQl7ICJyZWFzc2VtYmxlIiwJCVJFQVNTRU1CTEV9LAorCQl7ICJyZWQi LAkJUkVEfSwKIAkJeyAicmVwbHktdG8iLAkJUkVQTFlUT30sCiAJCXsgInJlcXVpcmUtb3JkZXIi LAlSRVFVSVJFT1JERVJ9LAogCQl7ICJyZXR1cm4iLAkJUkVUVVJOfSwKQEAgLTQ5ODAsNiArNTI1 OSw5IEBACiAJCXsgInNraXAiLAkJU0tJUH0sCiAJCXsgInNvdXJjZS1oYXNoIiwJU09VUkNFSEFT SH0sCiAJCXsgInNvdXJjZS10cmFjayIsCVNPVVJDRVRSQUNLfSwKKwkJeyAic3JjLWlwIiwJCVNS Q0lQfSwKKwkJeyAic3JjLWlwNiIsIAkJU1JDSVA2fSwKKwkJeyAic3JjLXBvcnQiLAkJU1JDUE9S VH0sCiAJCXsgInN0YXRlIiwJCVNUQVRFfSwKIAkJeyAic3RhdGUtcG9saWN5IiwJU1RBVEVQT0xJ Q1l9LAogCQl7ICJzdGF0aWMtcG9ydCIsCVNUQVRJQ1BPUlR9LApAQCAtNDk5Niw2ICs1Mjc4LDcg QEAKIAkJeyAidXBwZXJsaW1pdCIsCQlVUFBFUkxJTUlUfSwKIAkJeyAidXJwZi1mYWlsZWQiLAlV UlBGRkFJTEVEfSwKIAkJeyAidXNlciIsCQlVU0VSfSwKKwkJeyAid2VpZ2h0IiwJCVdFSUdIVH0s CiAJfTsKIAljb25zdCBzdHJ1Y3Qga2V5d29yZHMJKnA7CiAKQEAgLTU1MjQsMyArNTgwNywyMyBA QAogCiAJcmV0dXJuICgwKTsKIH0KKworLyogbjJtYXNrIHNldHMgbiBiaXRzIG9mIHRoZSBtYXNr ICovCitzdGF0aWMgdm9pZAorbjJtYXNrKHN0cnVjdCBpbjZfYWRkciAqbWFzaywgaW50IG4pCit7 CisgICAgICAgIHN0YXRpYyBpbnQgICAgICBtaW5pbWFza1s5XSA9CisgICAgICAgICAgICB7IDB4 MDAsIDB4ODAsIDB4YzAsIDB4ZTAsIDB4ZjAsIDB4ZjgsIDB4ZmMsIDB4ZmUsIDB4ZmYgfTsKKyAg ICAgICAgdV9jaGFyICAgICAgICAgICpwOworCisgICAgICAgIG1lbXNldChtYXNrLCAwLCBzaXpl b2Yoc3RydWN0IGluNl9hZGRyKSk7CisgICAgICAgIHAgPSAodV9jaGFyICopIG1hc2s7CisgICAg ICAgIGZvciAoOyBuID4gMDsgcCsrLCBuIC09IDgpIHsKKyAgICAgICAgICAgICAgICBpZiAobiA+ PSA4KQorICAgICAgICAgICAgICAgICAgICAgICAgKnAgPSAweGZmOworICAgICAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICpwID0gbWluaW1hc2tbbl07CisgICAgICAg IH0KKyAgICAgICAgcmV0dXJuOworfQorCkluZGV4OiBjb250cmliL3BmL3BmY3RsL3BmY3RsLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vY29udHJpYi9wZi9wZmN0bC9wZmN0 bC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIxLjEuMS4xIHBmY3Rs LmMKLS0tIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGwuYwkyMSBPY3QgMjAwNyAxMzo1MzoxNSAtMDAw MAkxLjEuMS4xCisrKyBjb250cmliL3BmL3BmY3RsL3BmY3RsLmMJMjEgT2N0IDIwMDcgMTk6MDM6 NDkgLTAwMDAKQEAgLTQ2LDYgKzQ2LDkgQEAKICNpbmNsdWRlIDxhbHRxL2FsdHEuaD4KICNpbmNs dWRlIDxzeXMvc3lzY3RsLmg+CiAKKyNpbmNsdWRlIDxuZXRpbmV0L2lwX2Z3Lmg+CisjaW5jbHVk ZSA8bmV0aW5ldC9pcF9kdW1teW5ldC5oPgorCiAjaW5jbHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8 ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAtNzEsNiArNzQsNyBAQAogaW50CSBwZmN0 bF9jbGVhcl9ydWxlcyhpbnQsIGludCwgY2hhciAqKTsKIGludAkgcGZjdGxfY2xlYXJfbmF0KGlu dCwgaW50LCBjaGFyICopOwogaW50CSBwZmN0bF9jbGVhcl9hbHRxKGludCwgaW50KTsKK2ludAkg cGZjdGxfY2xlYXJfZHVtbXluZXQoaW50LCBpbnQpOwogaW50CSBwZmN0bF9jbGVhcl9zcmNfbm9k ZXMoaW50LCBpbnQpOwogaW50CSBwZmN0bF9jbGVhcl9zdGF0ZXMoaW50LCBjb25zdCBjaGFyICos IGludCk7CiB2b2lkCSBwZmN0bF9hZGRycHJlZml4KGNoYXIgKiwgc3RydWN0IHBmX2FkZHIgKik7 CkBAIC05NSw2ICs5OSw3IEBACiBpbnQJIHBmY3RsX3Nob3dfbGltaXRzKGludCwgaW50KTsKIHZv aWQJIHBmY3RsX2RlYnVnKGludCwgdV9pbnQzMl90LCBpbnQpOwogaW50CSBwZmN0bF90ZXN0X2Fs dHFzdXBwb3J0KGludCwgaW50KTsKK2ludAkgcGZjdGxfdGVzdF9kdW1teW5ldHN1cHBvcnQoaW50 LCBpbnQpOwogaW50CSBwZmN0bF9zaG93X2FuY2hvcnMoaW50LCBpbnQsIGNoYXIgKik7CiBpbnQJ IHBmY3RsX3J1bGVzZXRfdHJhbnMoc3RydWN0IHBmY3RsICosIGNoYXIgKiwgc3RydWN0IHBmX2Fu Y2hvciAqKTsKIGludAkgcGZjdGxfbG9hZF9ydWxlc2V0KHN0cnVjdCBwZmN0bCAqLCBjaGFyICos CkBAIC0xMjIsNiArMTI3LDkgQEAKIGludAkJIGxvYWRvcHQ7CiBpbnQJCSBhbHRxc3VwcG9ydDsK IAoraW50IAkJIGR1bW15bmV0c3VwcG9ydDsKK2ludCAJCSBkbnNvY2s7CisKIGludAkJIGRldiA9 IC0xOwogaW50CQkgZmlyc3RfdGl0bGUgPSAxOwogaW50CQkgbGFiZWxzID0gMDsKQEAgLTIwNywx MiArMjE1LDEyIEBACiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqY2xlYXJvcHRfbGlzdFtdID0g ewotCSJuYXQiLCAicXVldWUiLCAicnVsZXMiLCAiU291cmNlcyIsCisJIm5hdCIsICJxdWV1ZSIs ICJkdW1teW5ldCIsICJydWxlcyIsICJTb3VyY2VzIiwKIAkic3RhdGUiLCAiaW5mbyIsICJUYWJs ZXMiLCAib3NmcCIsICJhbGwiLCBOVUxMCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqc2hvd29w dF9saXN0W10gPSB7Ci0JIm5hdCIsICJxdWV1ZSIsICJydWxlcyIsICJBbmNob3JzIiwgIlNvdXJj ZXMiLCAic3RhdGUiLCAiaW5mbyIsCisJIm5hdCIsICJxdWV1ZSIsICJkdW1teW5ldCIsICJydWxl cyIsICJBbmNob3JzIiwgIlNvdXJjZXMiLCAic3RhdGUiLCAiaW5mbyIsCiAJIkludGVyZmFjZXMi LCAibGFiZWxzIiwgInRpbWVvdXRzIiwgIm1lbW9yeSIsICJUYWJsZXMiLCAib3NmcCIsCiAJImFs bCIsIE5VTEwKIH07CkBAIC0zNjcsNiArMzc1LDIxIEBACiB9CiAKIGludAorcGZjdGxfY2xlYXJf ZHVtbXluZXQoaW50IGRuc29jaywgaW50IG9wdHMpCit7CisgICAgICAgaWYgKCFkdW1teW5ldHN1 cHBvcnQpCisgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICBpZiAoc2V0c29ja29w dChkbnNvY2ssIElQUFJPVE9fSVAsIElQX0RVTU1ZTkVUX0ZMVVNILCBOVUxMLCAwKSA8IDApIHsK KyAgICAgICAgICAgICAgIGVycigxLCJzZXRzb2Nrb3B0KElQX0RVTU1ZTkVUX0ZMVVNIKSIpOwor ICAgICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICB9CisKKyAgICAgICBpZiAoKG9wdHMg JiBQRl9PUFRfUVVJRVQpID09IDApCisgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkRV TU1ZTkVUIGNsZWFyZWRcbiIpOworICAgICAgIHJldHVybiAoMCk7Cit9CisKK2ludAogcGZjdGxf Y2xlYXJfc3JjX25vZGVzKGludCBkZXYsIGludCBvcHRzKQogewogCWlmIChpb2N0bChkZXYsIERJ T0NDTFJTUkNOT0RFUykpCkBAIC0xMzQ4LDYgKzEzNzEsMjQgQEAKIH0KIAogaW50CitwZmN0bF9h ZGRfZHVtbXluZXQoc3RydWN0IHBmY3RsICpwZiwgc3RydWN0IGRuX3BpcGUgKnApCit7CisgICAg ICAgaWYgKGR1bW15bmV0c3VwcG9ydCAmJgorICAgICAgICAgICAobG9hZG9wdCAmIFBGQ1RMX0ZM QUdfRFVNTVlORVQpICE9IDApIHsKKyAgICAgICAgICAgICAgIGlmICgocGYtPm9wdHMgJiBQRl9P UFRfTk9BQ1RJT04pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHNvY2tv cHQoZG5zb2NrLCBJUFBST1RPX0lQLCBJUF9EVU1NWU5FVF9DT05GSUdVUkUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcCwgc2l6ZW9mKCpwKSkgPCAwKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXJyeCgxLCAiRFVNTVlORVQgY29uZmlndXJlIik7CisgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorCWlmIChwZi0+ b3B0cyAmIFBGX09QVF9WRVJCT1NFKSAKKwkgICAgICAgcHJpbnRfZHVtbXluZXQocCk7CisKKyAg ICAgICByZXR1cm4gKDApOworfQorCitpbnQKIHBmY3RsX3J1bGVzKGludCBkZXYsIGNoYXIgKmZp bGVuYW1lLCBGSUxFICpmaW4sIGludCBvcHRzLCBpbnQgb3B0aW1pemUsCiAgICAgY2hhciAqYW5j aG9ybmFtZSwgc3RydWN0IHBmcl9idWZmZXIgKnRyYW5zKQogewpAQCAtMTkxNCw2ICsxOTU1LDIx IEBACiB9CiAKIGludAorcGZjdGxfdGVzdF9kdW1teW5ldHN1cHBvcnQoaW50IGRuc29jaywgaW50 IG9wdHMpCit7CisgICAgICAgc3RydWN0IGRuX3BpcGUgcDsKKyAgICAgICBzb2NrbGVuX3QgICAg ICAgbGVuOworCisgICAgICAgaWYgKGdldHNvY2tvcHQoZG5zb2NrLCBJUFBST1RPX0lQLCBJUF9E VU1NWU5FVF9HRVQsICZwLAorICAgICAgICAgICAgICAgICAgICAgICAmbGVuKSA8IDApIHsKKyAg ICAgICAgICAgICAgIGlmICghKG9wdHMgJiAoUEZfT1BUX1FVSUVUfFBGX09QVF9OT0FDVElPTikp KQorICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkRVTU1ZTkVUIG5vdCBs b2FkZWRcbiIpOworICAgICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICB9CisgICAgICAg cmV0dXJuICgxKTsKK30KKworaW50CiBwZmN0bF9zaG93X2FuY2hvcnMoaW50IGRldiwgaW50IG9w dHMsIGNoYXIgKmFuY2hvcm5hbWUpCiB7CiAJc3RydWN0IHBmaW9jX3J1bGVzZXQJIHByOwpAQCAt MTk3OCw3ICsyMDM0LDcgQEAKIAkJdXNhZ2UoKTsKIAogCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJn YywgYXJndiwKLQkgICAgImE6QWREOmVxZjpGOmdoaTprOks6bW5OT286OnA6clJzOnQ6VDp2eDp6 IikpICE9IC0xKSB7CisJICAgICJhOkFkRFA6ZXFmOkY6Z2hpOms6Szptbk5Pbzo6cDpyUnM6dDpU OnZ4OnoiKSkgIT0gLTEpIHsKIAkJc3dpdGNoIChjaCkgewogCQljYXNlICdhJzoKIAkJCWFuY2hv cm9wdCA9IG9wdGFyZzsKQEAgLTIwNTAsNiArMjEwNiw5IEBACiAJCWNhc2UgJ0EnOgogCQkJbG9h ZG9wdCB8PSBQRkNUTF9GTEFHX0FMVFE7CiAJCQlicmVhazsKKwkJY2FzZSAnUCc6CisJCQlsb2Fk b3B0IHw9IFBGQ1RMX0ZMQUdfRFVNTVlORVQ7CisJCQlicmVhazsKIAkJY2FzZSAnUic6CiAJCQls b2Fkb3B0IHw9IFBGQ1RMX0ZMQUdfRklMVEVSOwogCQkJYnJlYWs7CkBAIC0yMTY0LDYgKzIyMjMs MTEgQEAKIAkJaWYgKGRldiA9PSAtMSkKIAkJCWVycigxLCAiJXMiLCBwZl9kZXZpY2UpOwogCQlh bHRxc3VwcG9ydCA9IHBmY3RsX3Rlc3RfYWx0cXN1cHBvcnQoZGV2LCBvcHRzKTsKKworCQlkbnNv Y2sgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19SQVcsIElQUFJPVE9fUkFXKTsKKwkJaWYgKGRuc29j ayA8IDApCisJCQllcnIoMSwgInNvY2tldCIpOworCQlkdW1teW5ldHN1cHBvcnQgPSBwZmN0bF90 ZXN0X2R1bW15bmV0c3VwcG9ydChkbnNvY2ssIG9wdHMpOwogCX0gZWxzZSB7CiAJCWRldiA9IG9w ZW4ocGZfZGV2aWNlLCBPX1JET05MWSk7CiAJCWlmIChkZXYgPj0gMCkKQEAgLTIxNzYsNiArMjI0 MCwxMCBAQAogI2Vsc2UKIAkJYWx0cXN1cHBvcnQgPSAxOwogI2VuZGlmCisgICAgICAgICAgICAg ICAgZG5zb2NrID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfUkFXLCBJUFBST1RPX1JBVyk7CisgICAg ICAgICAgICAgICAgaWYgKGRuc29jayA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICBlcnIo MSwgInNvY2tldCIpOworICAgICAgICAgICAgICAgIGR1bW15bmV0c3VwcG9ydCA9IHBmY3RsX3Rl c3RfZHVtbXluZXRzdXBwb3J0KGRuc29jaywgb3B0cyk7CiAJfQogCiAJaWYgKG9wdHMgJiBQRl9P UFRfRElTQUJMRSkKQEAgLTIyMDUsNiArMjI3Myw5IEBACiAJCQlwZmN0bF9zaG93X2FsdHEoZGV2 LCBpZmFjZW9wdCwgb3B0cywKIAkJCSAgICBvcHRzICYgUEZfT1BUX1ZFUkJPU0UyKTsKIAkJCWJy ZWFrOworCQljYXNlICdkJzoKKwkJCXBmY3RsX3Nob3dfZHVtbXluZXQoZG5zb2NrLCBvcHRzKTsK KwkJCWJyZWFrOwogCQljYXNlICdzJzoKIAkJCXBmY3RsX3Nob3dfc3RhdGVzKGRldiwgaWZhY2Vv cHQsIG9wdHMpOwogCQkJYnJlYWs7CkBAIC0yMjI3LDYgKzIyOTgsNyBAQAogCQkJcGZjdGxfc2hv d19uYXQoZGV2LCBvcHRzLCBhbmNob3JuYW1lKTsKIAkJCXBmY3RsX3Nob3dfcnVsZXMoZGV2LCBw YXRoLCBvcHRzLCAwLCBhbmNob3JuYW1lLCAwKTsKIAkJCXBmY3RsX3Nob3dfYWx0cShkZXYsIGlm YWNlb3B0LCBvcHRzLCAwKTsKKwkJCXBmY3RsX3Nob3dfZHVtbXluZXQoZG5zb2NrLCBvcHRzKTsK IAkJCXBmY3RsX3Nob3dfc3RhdGVzKGRldiwgaWZhY2VvcHQsIG9wdHMpOwogCQkJcGZjdGxfc2hv d19zcmNfbm9kZXMoZGV2LCBvcHRzKTsKIAkJCXBmY3RsX3Nob3dfc3RhdHVzKGRldiwgb3B0cyk7 CkBAIC0yMjY4LDYgKzIzNDAsOSBAQAogCQljYXNlICdxJzoKIAkJCXBmY3RsX2NsZWFyX2FsdHEo ZGV2LCBvcHRzKTsKIAkJCWJyZWFrOworCQljYXNlICdkJzoKKwkJCXBmY3RsX2NsZWFyX2R1bW15 bmV0KGRuc29jaywgb3B0cyk7CisJCQlicmVhazsKIAkJY2FzZSAncyc6CiAJCQlwZmN0bF9jbGVh cl9zdGF0ZXMoZGV2LCBpZmFjZW9wdCwgb3B0cyk7CiAJCQlicmVhazsKQEAgLTIyODMsNiArMjM1 OCw3IEBACiAJCQlwZmN0bF9jbGVhcl90YWJsZXMoYW5jaG9ybmFtZSwgb3B0cyk7CiAJCQlpZiAo ISphbmNob3JuYW1lKSB7CiAJCQkJcGZjdGxfY2xlYXJfYWx0cShkZXYsIG9wdHMpOworCQkJCXBm Y3RsX2NsZWFyX2R1bW15bmV0KGRuc29jaywgb3B0cyk7CiAJCQkJcGZjdGxfY2xlYXJfc3RhdGVz KGRldiwgaWZhY2VvcHQsIG9wdHMpOwogCQkJCXBmY3RsX2NsZWFyX3NyY19ub2RlcyhkZXYsIG9w dHMpOwogCQkJCXBmY3RsX2NsZWFyX3N0YXRzKGRldiwgb3B0cyk7CkluZGV4OiBjb250cmliL3Bm L3BmY3RsL3BmY3RsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vY29udHJp Yi9wZi9wZmN0bC9wZmN0bC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUg LXIxLjEuMS4xIHBmY3RsLmgKLS0tIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGwuaAkyMSBPY3QgMjAw NyAxMzo1MzoxNSAtMDAwMAkxLjEuMS4xCisrKyBjb250cmliL3BmL3BmY3RsL3BmY3RsLmgJMjEg T2N0IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTg1LDYgKzg1LDcgQEAKIGludAkgcGZjdGxfY29t bWFuZF90YWJsZXMoaW50LCBjaGFyICpbXSwgY2hhciAqLCBjb25zdCBjaGFyICosIGNoYXIgKiwK IAkgICAgY29uc3QgY2hhciAqLCBpbnQpOwogaW50CSBwZmN0bF9zaG93X2FsdHEoaW50LCBjb25z dCBjaGFyICosIGludCwgaW50KTsKK2ludAkgcGZjdGxfc2hvd19kdW1teW5ldChpbnQsIGludCk7 CiB2b2lkCSB3YXJuX25hbWVzcGFjZV9jb2xsaXNpb24oY29uc3QgY2hhciAqKTsKIGludAkgcGZj dGxfc2hvd19pZmFjZXMoY29uc3QgY2hhciAqLCBpbnQpOwogRklMRQkqcGZjdGxfZm9wZW4oY29u c3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpJbmRleDogY29udHJpYi9wZi9wZmN0bC9wZmN0bF9k bi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfZG4uYwpkaWZm IC1OIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfZG4uYwotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAg MDA6MDA6MDAgLTAwMDAKKysrIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfZG4uYwkyMSBPY3QgMjAw NyAxOTowMzozMiAtMDAwMApAQCAtMCwwICsxLDM5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg MjAwNyBFcm1hbCBMdedpCisgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwMyBMdWlnaSBSaXp6bwor ICogQ29weXJpZ2h0IChjKSAxOTk2IEFsZXggTmFzaCwgUGF1bCBUcmFpbmEsIFBvdWwtSGVubmlu ZyBLYW1wCisgKiBDb3B5cmlnaHQgKGMpIDE5OTQgVWdlbiBKLlMuQW50c2lsZXZpY2gKKyAqCisg KiBJZGVhIGFuZCBncmFtbWFyIHBhcnRpYWxseSBsZWZ0IGZyb206CisgKiBDb3B5cmlnaHQgKGMp IDE5OTMgRGFuaWVsIEJvdWxldAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291 cmNlIGZvcm1zLCB3aXRoIGFuZCB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0 ZWQgcHJvdmlkZWQgdGhhdCB0aGlzIGVudGlyZSBjb21tZW50IGFwcGVhcnMgaW50YWN0LgorICoK KyAqIFJlZGlzdHJpYnV0aW9uIGluIGJpbmFyeSBmb3JtIG1heSBvY2N1ciB3aXRob3V0IGFueSBy ZXN0cmljdGlvbnMuCisgKiBPYnZpb3VzbHksIGl0IHdvdWxkIGJlIG5pY2UgaWYgeW91IGdhdmUg Y3JlZGl0IHdoZXJlIGNyZWRpdCBpcyBkdWUKKyAqIGJ1dCByZXF1aXJpbmcgaXQgd291bGQgYmUg dG9vIG9uZXJvdXMuCisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBgYEFTIElTJycg d2l0aG91dCBhbnkgd2FycmFudGllcyBvZiBhbnkga2luZC4KKyAqCisgKiBORVcgY29tbWFuZCBs aW5lIGludGVyZmFjZSBmb3IgSVAgZmlyZXdhbGwgZmFjaWxpdHkKKyAqCisgKi8KKworLyoKKyAq IE1vc3Qgb2YgdGhpcyBpcyBkZXJpdmVkIGZyb20gaXBmdyg4KSBjb2RlLgorICovCisKKyNpbmNs dWRlIDxzeXMvY2RlZnMuaD4KKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5 cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisKKyNp bmNsdWRlIDxuZXQvaWYuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8bmV0 L3BmdmFyLmg+CisKKyNpbmNsdWRlIDxlcnIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1 ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2lu Y2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5o PgorI2luY2x1ZGUgPG5ldGRiLmg+CisKKyNpbmNsdWRlIDxuZXRpbmV0L2lwX2Z3Lmg+CisjaW5j bHVkZSA8bmV0aW5ldC9pcF9kdW1teW5ldC5oPgorCisjaW5jbHVkZSAicGZjdGxfcGFyc2VyLmgi CisjaW5jbHVkZSAicGZjdGwuaCIKKworc3RhdGljIGludCBkb19zb3J0LAorCSAgIHZlcmJvc2U7 CisKK3N0YXRpYyBpbnQgc29ydF9xKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKK3N0YXRp YyB2b2lkCitsaXN0X3F1ZXVlcyhzdHJ1Y3QgZG5fZmxvd19zZXQgKiwgc3RydWN0IGRuX2Zsb3df cXVldWUgKik7CitzdGF0aWMgdm9pZAorcHJpbnRfZmxvd3NldF9wYXJtcyhzdHJ1Y3QgZG5fZmxv d19zZXQgKiwgY2hhciAqKTsKK3N0YXRpYyB2b2lkCitsaXN0X3BpcGVzKHZvaWQgKiwgdWludCAp OworCitzdGF0aWMgaW50Citzb3J0X3EoY29uc3Qgdm9pZCAqcGEsIGNvbnN0IHZvaWQgKnBiKQor eworICAgICAgICBpbnQgcmV2ID0gKDApOworICAgICAgICBpbnQgZmllbGQgPSByZXYgPyAtZG9f c29ydCA6IGRvX3NvcnQ7CisgICAgICAgIGxvbmcgbG9uZyByZXMgPSAwOworICAgICAgICBjb25z dCBzdHJ1Y3QgZG5fZmxvd19xdWV1ZSAqYSA9IHBhOworICAgICAgICBjb25zdCBzdHJ1Y3QgZG5f Zmxvd19xdWV1ZSAqYiA9IHBiOworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAg Y2FzZSAxOiAvKiBwa3RzICovCisgICAgICAgICAgICAgICAgcmVzID0gYS0+bGVuIC0gYi0+bGVu OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6IC8qIGJ5dGVzICovCisg ICAgICAgICAgICAgICAgcmVzID0gYS0+bGVuX2J5dGVzIC0gYi0+bGVuX2J5dGVzOworICAgICAg ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMzogLyogdG90IHBrdHMgKi8KKyAgICAg ICAgICAgICAgICByZXMgPSBhLT50b3RfcGt0cyAtIGItPnRvdF9wa3RzOworICAgICAgICAgICAg ICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNDogLyogdG90IGJ5dGVzICovCisgICAgICAgICAg ICAgICAgcmVzID0gYS0+dG90X2J5dGVzIC0gYi0+dG90X2J5dGVzOworICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChyZXMgPCAwKQorICAgICAgICAgICAgICAg IHJlcyA9IC0xOworICAgICAgICBpZiAocmVzID4gMCkKKyAgICAgICAgICAgICAgICByZXMgPSAx OworICAgICAgICByZXR1cm4gKGludCkocmV2ID8gcmVzIDogLXJlcyk7Cit9CisKK3N0YXRpYyB2 b2lkCitsaXN0X3F1ZXVlcyhzdHJ1Y3QgZG5fZmxvd19zZXQgKmZzLCBzdHJ1Y3QgZG5fZmxvd19x dWV1ZSAqcSkKK3sKKyAgICAgICAgaW50IGw7CisgICAgICAgIGludCBpbmRleF9wcmludGVkLCBp bmRleGVzID0gMDsKKyAgICAgICAgY2hhciBidWZmWzI1NV07CisgICAgICAgIHN0cnVjdCBwcm90 b2VudCAqcGU7CisKKyAgICAgICAgaWYgKGZzLT5ycV9lbGVtZW50cyA9PSAwKQorICAgICAgICAg ICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZG9fc29ydCAhPSAwKQorICAgICAgICAgICAg ICAgIGhlYXBzb3J0KHEsIGZzLT5ycV9lbGVtZW50cywgc2l6ZW9mICpxLCBzb3J0X3EpOworCisg ICAgICAgIC8qIFByaW50IElQdjQgZmxvd3MgKi8KKyAgICAgICAgaW5kZXhfcHJpbnRlZCA9IDA7 CisgICAgICAgIGZvciAobCA9IDA7IGwgPCBmcy0+cnFfZWxlbWVudHM7IGwrKykgeworICAgICAg ICAgICAgICAgIHN0cnVjdCBpbl9hZGRyIGluYTsKKworICAgICAgICAgICAgICAgIC8qIFhYWDog U2hvdWxkIGNoZWNrIGZvciBJUHY0IGZsb3dzICovCisgICAgICAgICAgICAgICAgaWYgKElTX0lQ Nl9GTE9XX0lEKCYocVtsXS5pZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 CisKKyAgICAgICAgICAgICAgICBpZiAoIWluZGV4X3ByaW50ZWQpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGluZGV4X3ByaW50ZWQgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGluZGV4ZXMgPiAwKSAgICAgICAgLyogY3VycmVudGx5IGEgbm8tb3AgKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICAgICAgICAgICAgICAg ICAgaW5kZXhlcysrOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJtYXNrOiAweCUwMnggMHglMDh4LzB4JTA0eCAtPiAw eCUwOHgvMHglMDR4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzLT5mbG93X21h c2sucHJvdG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnMtPmZsb3dfbWFzay5zcmNf aXAsIGZzLT5mbG93X21hc2suc3JjX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZnMtPmZsb3dfbWFzay5kc3RfaXAsIGZzLT5mbG93X21hc2suZHN0X3BvcnQpOworCisgICAgICAg ICAgICAgICAgICAgICAgICBwcmludGYoIkJLVCBQcm90IF9fX1NvdXJjZSBJUC9wb3J0X19fXyAi CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fX19EZXN0LiBJUC9wb3J0X19fXyAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvdF9wa3QvYnl0ZXMgUGt0L0J5dGUgRHJwXG4i KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwcmludGYoIiUzZCAiLCBx W2xdLmhhc2hfc2xvdCk7CisgICAgICAgICAgICAgICAgcGUgPSBnZXRwcm90b2J5bnVtYmVyKHFb bF0uaWQucHJvdG8pOworICAgICAgICAgICAgICAgIGlmIChwZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgIHByaW50ZigiJS00cyAiLCBwZS0+cF9uYW1lKTsKKyAgICAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiU0dSAiLCBxW2xdLmlkLnByb3RvKTsK KyAgICAgICAgICAgICAgICBpbmEuc19hZGRyID0gaHRvbmwocVtsXS5pZC5zcmNfaXApOworICAg ICAgICAgICAgICAgIHByaW50ZigiJTE1cy8lLTVkICIsCisgICAgICAgICAgICAgICAgICAgIGlu ZXRfbnRvYShpbmEpLCBxW2xdLmlkLnNyY19wb3J0KTsKKyAgICAgICAgICAgICAgICBpbmEuc19h ZGRyID0gaHRvbmwocVtsXS5pZC5kc3RfaXApOworICAgICAgICAgICAgICAgIHByaW50ZigiJTE1 cy8lLTVkICIsCisgICAgICAgICAgICAgICAgICAgIGluZXRfbnRvYShpbmEpLCBxW2xdLmlkLmRz dF9wb3J0KTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiU0cXUgJThxdSAlMnUgJTR1ICUzdVxu IiwKKyAgICAgICAgICAgICAgICAgICAgcVtsXS50b3RfcGt0cywgcVtsXS50b3RfYnl0ZXMsCisg ICAgICAgICAgICAgICAgICAgIHFbbF0ubGVuLCBxW2xdLmxlbl9ieXRlcywgcVtsXS5kcm9wcyk7 CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBw cmludGYoIiAgIFMgJTIwcWQgIEYgJTIwcWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcVtsXS5TLCBxW2xdLkYpOworICAgICAgICB9CisKKyAgICAgICAgLyogUHJpbnQgSVB2NiBm bG93cyAqLworICAgICAgICBpbmRleF9wcmludGVkID0gMDsKKyAgICAgICAgZm9yIChsID0gMDsg bCA8IGZzLT5ycV9lbGVtZW50czsgbCsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFJU19JUDZf RkxPV19JRCgmKHFbbF0uaWQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor CisgICAgICAgICAgICAgICAgaWYgKCFpbmRleF9wcmludGVkKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICBpbmRleF9wcmludGVkID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp bmRleGVzID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIp OworICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzKys7CisgICAgICAgICAgICAgICAgICAg ICAgICBwcmludGYoIlxuICAgICAgICBtYXNrOiBwcm90bzogMHglMDJ4LCBmbG93X2lkOiAweCUw OHgsICAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzLT5mbG93X21hc2sucHJvdG8s IGZzLT5mbG93X21hc2suZmxvd19pZDYpOworICAgICAgICAgICAgICAgICAgICAgICAgaW5ldF9u dG9wKEFGX0lORVQ2LCAmKGZzLT5mbG93X21hc2suc3JjX2lwNiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnVmZiwgc2l6ZW9mKGJ1ZmYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg IHByaW50ZigiJXMvMHglMDR4IC0+ICIsIGJ1ZmYsIGZzLT5mbG93X21hc2suc3JjX3BvcnQpOwor ICAgICAgICAgICAgICAgICAgICAgICAgaW5ldF9udG9wKCBBRl9JTkVUNiwgJihmcy0+Zmxvd19t YXNrLmRzdF9pcDYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYsIHNpemVvZihi dWZmKSApOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcy8weCUwNHhcbiIsIGJ1 ZmYsIGZzLT5mbG93X21hc2suZHN0X3BvcnQpOworCisgICAgICAgICAgICAgICAgICAgICAgICBw cmludGYoIkJLVCBfX19Qcm90X19fIF9mbG93LWlkXyAiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIl9fX19fX19fX19fX19fU291cmNlIElQdjYvcG9ydF9fX19fX19fX19fX19fXyAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fX19fX19fX19fX19fX0Rlc3QuIElQdjYvcG9y dF9fX19fX19fX19fX19fXyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvdF9wa3Qv Ynl0ZXMgUGt0L0J5dGUgRHJwXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgcHJpbnRmKCIlM2QgIiwgcVtsXS5oYXNoX3Nsb3QpOworICAgICAgICAgICAgICAgIHBlID0g Z2V0cHJvdG9ieW51bWJlcihxW2xdLmlkLnByb3RvKTsKKyAgICAgICAgICAgICAgICBpZiAocGUg IT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiJTlzICIsIHBlLT5wX25h bWUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50 ZigiJTl1ICIsIHFbbF0uaWQucHJvdG8pOworICAgICAgICAgICAgICAgIHByaW50ZigiJTdkICAl MzlzLyUtNWQgIiwgcVtsXS5pZC5mbG93X2lkNiwKKyAgICAgICAgICAgICAgICAgICAgaW5ldF9u dG9wKEFGX0lORVQ2LCAmKHFbbF0uaWQuc3JjX2lwNiksIGJ1ZmYsIHNpemVvZihidWZmKSksCisg ICAgICAgICAgICAgICAgICAgIHFbbF0uaWQuc3JjX3BvcnQpOworICAgICAgICAgICAgICAgIHBy aW50ZigiICUzOXMvJS01ZCAiLAorICAgICAgICAgICAgICAgICAgICBpbmV0X250b3AoQUZfSU5F VDYsICYocVtsXS5pZC5kc3RfaXA2KSwgYnVmZiwgc2l6ZW9mKGJ1ZmYpKSwKKyAgICAgICAgICAg ICAgICAgICAgcVtsXS5pZC5kc3RfcG9ydCk7CisgICAgICAgICAgICAgICAgcHJpbnRmKCIgJTRx dSAlOHF1ICUydSAlNHUgJTN1XG4iLAorICAgICAgICAgICAgICAgICAgICBxW2xdLnRvdF9wa3Rz LCBxW2xdLnRvdF9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgcVtsXS5sZW4sIHFbbF0ubGVu X2J5dGVzLCBxW2xdLmRyb3BzKTsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgUyAlMjBxZCAgRiAlMjBxZFxuIiwgcVtsXS5T LCBxW2xdLkYpOworICAgICAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9mbG93c2V0X3Bh cm1zKHN0cnVjdCBkbl9mbG93X3NldCAqZnMsIGNoYXIgKnByZWZpeCkKK3sKKyAgICAgICAgaW50 IGw7CisgICAgICAgIGNoYXIgcXNbMzBdOworICAgICAgICBjaGFyIHBsclszMF07CisgICAgICAg IGNoYXIgcmVkWzkwXTsgICAvKiBEaXNwbGF5IFJFRCBwYXJhbWV0ZXJzICovCisKKyAgICAgICAg bCA9IGZzLT5xc2l6ZTsKKyAgICAgICAgaWYgKGZzLT5mbGFnc19mcyAmIEROX1FTSVpFX0lTX0JZ VEVTKSB7CisgICAgICAgICAgICAgICAgaWYgKGwgPj0gODE5MikKKyAgICAgICAgICAgICAgICAg ICAgICAgIHNwcmludGYocXMsICIlZCBLQiIsIGwgLyAxMDI0KTsKKyAgICAgICAgICAgICAgICBl bHNlCisgICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHFzLCAiJWQgQiIsIGwpOworICAg ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBzcHJpbnRmKHFzLCAiJTNkIHNsLiIsIGwpOwor ICAgICAgICBpZiAoZnMtPnBscikKKyAgICAgICAgICAgICAgICBzcHJpbnRmKHBsciwgInBsciAl ZiIsIDEuMCAqIGZzLT5wbHIgLyAoZG91YmxlKSgweDdmZmZmZmZmKSk7CisgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICBwbHJbMF0gPSAnXDAnOworICAgICAgICBpZiAoZnMtPmZsYWdzX2Zz ICYgRE5fSVNfUkVEKSAgIC8qIFJFRCBwYXJhbWV0ZXJzICovCisgICAgICAgICAgICAgICAgc3By aW50ZihyZWQsCisgICAgICAgICAgICAgICAgICAgICJcblx0ICAlY1JFRCB3X3EgJWYgbWluX3Ro ICVkIG1heF90aCAlZCBtYXhfcCAlZiIsCisgICAgICAgICAgICAgICAgICAgIChmcy0+ZmxhZ3Nf ZnMgJiBETl9JU19HRU5UTEVfUkVEKSA/ICdHJyA6ICcgJywKKyAgICAgICAgICAgICAgICAgICAg MS4wICogZnMtPndfcSAvIChkb3VibGUpKDEgPDwgU0NBTEVfUkVEKSwKKyAgICAgICAgICAgICAg ICAgICAgU0NBTEVfVkFMKGZzLT5taW5fdGgpLAorICAgICAgICAgICAgICAgICAgICBTQ0FMRV9W QUwoZnMtPm1heF90aCksCisgICAgICAgICAgICAgICAgICAgIDEuMCAqIGZzLT5tYXhfcCAvIChk b3VibGUpKDEgPDwgU0NBTEVfUkVEKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz cHJpbnRmKHJlZCwgImRyb3B0YWlsIik7CisKKyAgICAgICAgcHJpbnRmKCIlcyAlcyVzICVkIHF1 ZXVlcyAoJWQgYnVja2V0cykgJXNcbiIsCisgICAgICAgICAgICBwcmVmaXgsIHFzLCBwbHIsIGZz LT5ycV9lbGVtZW50cywgZnMtPnJxX3NpemUsIHJlZCk7Cit9CisKKworc3RhdGljIHZvaWQKK2xp c3RfcGlwZXModm9pZCAqZGF0YSwgdWludCBuYnl0ZXMpCit7CisgICAgICAgIHZvaWQgKm5leHQg PSBkYXRhOworICAgICAgICBzdHJ1Y3QgZG5fcGlwZSAqcCA9IChzdHJ1Y3QgZG5fcGlwZSAqKSBk YXRhOworICAgICAgICBzdHJ1Y3QgZG5fZmxvd19zZXQgKmZzOworICAgICAgICBzdHJ1Y3QgZG5f Zmxvd19xdWV1ZSAqcTsKKyAgICAgICAgaW50IGw7CisKKyAgICAgICAgZm9yICg7IG5ieXRlcyA+ PSBzaXplb2YgKnA7IHAgPSAoc3RydWN0IGRuX3BpcGUgKiluZXh0KSB7CisgICAgICAgICAgICAg ICAgZG91YmxlIGIgPSBwLT5iYW5kd2lkdGg7CisgICAgICAgICAgICAgICAgY2hhciBidWZbMzBd OworICAgICAgICAgICAgICAgIGNoYXIgcHJlZml4WzgwXTsKKworICAgICAgICAgICAgICAgIGlm IChTTElTVF9ORVhUKHAsIG5leHQpICE9IChzdHJ1Y3QgZG5fcGlwZSAqKUROX0lTX1BJUEUpCisg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgIC8qIGRvbmUgd2l0aCBwaXBlcywgbm93IHF1 ZXVlcyAqLworCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBjb21wdXRl IGxlbmd0aCwgYXMgcGlwZSBoYXZlIHZhcmlhYmxlIHNpemUKKyAgICAgICAgICAgICAgICAgKi8K KyAgICAgICAgICAgICAgICBsID0gc2l6ZW9mKCpwKSArIHAtPmZzLnJxX2VsZW1lbnRzICogc2l6 ZW9mKCpxKTsKKyAgICAgICAgICAgICAgICBuZXh0ID0gKGNoYXIgKilwICsgbDsKKyAgICAgICAg ICAgICAgICBuYnl0ZXMgLT0gbDsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg ICAgICogUHJpbnQgcmF0ZSAob3IgY2xvY2tpbmcgaW50ZXJmYWNlKQorICAgICAgICAgICAgICAg ICAqLworICAgICAgICAgICAgICAgIGlmIChwLT5pZl9uYW1lWzBdICE9ICdcMCcpCisgICAgICAg ICAgICAgICAgICAgICAgIHNwcmludGYoYnVmLCAiJXMiLCBwLT5pZl9uYW1lKTsKKyAgICAgICAg ICAgICAgICBlbHNlIGlmIChiID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRm KGJ1ZiwgInVubGltaXRlZCIpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGIgPj0gMTAwMDAw MCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYoYnVmLCAiJTcuM2YgTWJpdC9zIiwg Yi8xMDAwMDAwKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChiID49IDEwMDApCisgICAgICAg ICAgICAgICAgICAgICAgICBzcHJpbnRmKGJ1ZiwgIiU3LjNmIEtiaXQvcyIsIGIvMTAwMCk7Cisg ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZihidWYs ICIlNy4zZiBiaXQvcyAiLCBiKTsKKworICAgICAgICAgICAgICAgIHNwcmludGYocHJlZml4LCAi JTA1ZDogJXMgJTRkIG1zICIsCisgICAgICAgICAgICAgICAgICAgIHAtPnBpcGVfbnIsIGJ1Ziwg cC0+ZGVsYXkpOworICAgICAgICAgICAgICAgIHByaW50X2Zsb3dzZXRfcGFybXMoJihwLT5mcyks IHByZWZpeCk7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAg ICAgICAgICBwcmludGYoIiAgIFYgJTIwcWRcbiIsIHAtPlYgPj4gTVlfTSk7CisKKyAgICAgICAg ICAgICAgICBxID0gKHN0cnVjdCBkbl9mbG93X3F1ZXVlICopKHArMSk7CisgICAgICAgICAgICAg ICAgbGlzdF9xdWV1ZXMoJihwLT5mcyksIHEpOworICAgICAgICB9CisgICAgICAgIGZvciAoZnMg PSBuZXh0OyBuYnl0ZXMgPj0gc2l6ZW9mICpmczsgZnMgPSBuZXh0KSB7CisgICAgICAgICAgICAg ICAgY2hhciBwcmVmaXhbODBdOworCisgICAgICAgICAgICAgICAgaWYgKFNMSVNUX05FWFQoZnMs IG5leHQpICE9IChzdHJ1Y3QgZG5fZmxvd19zZXQgKilETl9JU19RVUVVRSkKKyAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGwgPSBzaXplb2YoKmZzKSArIGZz LT5ycV9lbGVtZW50cyAqIHNpemVvZigqcSk7CisgICAgICAgICAgICAgICAgbmV4dCA9IChjaGFy ICopZnMgKyBsOworICAgICAgICAgICAgICAgIG5ieXRlcyAtPSBsOworI2lmIDAKKyAgICAgICAg ICAgICAgICBpZiAocnVsZW51bSAhPSAwICYmICgocnVsZW51bSAhPSBmcy0+ZnNfbnIgJiYgZG9f cGlwZSA9PSAyKSB8fAorICAgICAgICAgICAgICAgICAgICAocnVsZW51bSAhPSBmcy0+cGFyZW50 X25yICYmIGRvX3BpcGUgPT0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsKKyAgICAgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgICAgICBxID0gKHN0cnVj dCBkbl9mbG93X3F1ZXVlICopKGZzKzEpOworICAgICAgICAgICAgICAgIHNwcmludGYocHJlZml4 LCAicSUwNWQ6IHdlaWdodCAlZCBwaXBlICVkICIsCisgICAgICAgICAgICAgICAgICAgIGZzLT5m c19uciwgZnMtPndlaWdodCwgZnMtPnBhcmVudF9ucik7CisgICAgICAgICAgICAgICAgcHJpbnRf Zmxvd3NldF9wYXJtcyhmcywgcHJlZml4KTsKKyAgICAgICAgICAgICAgICBsaXN0X3F1ZXVlcyhm cywgcSk7CisgICAgICAgIH0KK30KKwordm9pZAorcHJpbnRfZHVtbXluZXQoc3RydWN0IGRuX3Bp cGUgKnApCit7CisJY2hhciBidWZmWzI1NV07CisKKwlpZiAocC0+cGlwZV9uciAhPSAwKSB7IC8q IFRoaXMgaXMgYSBwaXBlICovCisJCXByaW50ZigiZG5waXBlICVkIiwgcC0+cGlwZV9ucik7CisJ CWlmIChwLT5iYW5kd2lkdGgpIAorCQkJcHJpbnRmKCIgYmFuZHdpZHRoICVkTWIiLCBwLT5iYW5k d2lkdGgvMTAwMDAwMCk7CisJICAgICAgICBlbHNlIGlmIChwLT5iYW5kd2lkdGggPj0gMTAwMCkK KyAgICAgICAgIAkgICAgICAgIHByaW50ZigiIGJhbmR3aWR0aCAlZEtiIiwgcC0+YmFuZHdpZHRo LzEwMDApOworCSAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICAgICAgICAgCXByaW50Zigi IGJhbmR3aWR0aCAlZGIgIiwgcC0+YmFuZHdpZHRoKTsKKwkJaWYgKHAtPmRlbGF5ID4gMCkKKwkJ CXByaW50ZigiIGRlbGF5ICVkIiwgcC0+ZGVsYXkpOworCX0gZWxzZSB7CisJCXByaW50ZigiZG5x dWV1ZSAlZCBkbnBpcGUgJWQiLCBwLT5mcy5mc19uciwgcC0+ZnMucGFyZW50X25yKTsKKwkJaWYg KHAtPmZzLndlaWdodCkKKwkJCXByaW50ZigiIHdlaWdodCAlZCIsIHAtPmZzLndlaWdodCk7CisJ fQorCisJaWYgKHAtPmZzLnJxX3NpemUgPiAxNSkKKwkJcHJpbnRmKCIgYnVja2V0cyAlZCIsIHAt PmZzLnJxX3NpemUpOworCWlmIChwLT5mcy5mbGFnc19mcyAmIEROX1FTSVpFX0lTX0JZVEVTKSB7 CisgICAgICAgICAgICAgICAgaWYgKHAtPmZzLnFzaXplID49IDgxOTIpCisgICAgICAgICAgICAg ICAgICAgICAgICBwcmludGYoIiBxdWV1ZSAlZEtCIiwgIHAtPmZzLnFzaXplIC8gMTAyNCk7Cisg ICAgICAgICAgICAgICAgZWxzZSBpZiAocC0+ZnMucXNpemUgPiAwKQorICAgICAgICAgICAgICAg ICAgICAgICAgcHJpbnRmKCIgcXVldWUgJWRCIiwgcC0+ZnMucXNpemUpOworICAgICAgICB9IGVs c2UKKwkJaWYgKHAtPmZzLnFzaXplID4gMCkKKwkgICAgICAgICAgICAgICAgcHJpbnRmKCIgcXVl dWUgJTNkIiwgcC0+ZnMucXNpemUpOworICAgICAgICBpZiAocC0+ZnMucGxyID4gMCkKKyAgICAg ICAgICAgICAgICBwcmludGYoIiBwbHIgJWYiLCAxLjAgKiBwLT5mcy5wbHIgLyAoZG91YmxlKSgw eDdmZmZmZmZmKSk7CisKKwlpZiAocC0+ZnMuZmxvd19tYXNrLnByb3RvICYmIHAtPmZzLmZsb3df bWFzay5kc3RfaXAgJiYgCisJCXAtPmZzLmZsb3dfbWFzay5zcmNfaXAgJiYgcC0+ZnMuZmxvd19t YXNrLmRzdF9wb3J0ICYmIAorCQlwLT5mcy5mbG93X21hc2suc3JjX3BvcnQgJiYKKwkJcC0+ZnMu Zmxvd19tYXNrLmZsb3dfaWQ2KQorCQlwcmludGYoIiBtYXNrIGFsbCIpOworCWVsc2UgIGlmIChw LT5mcy5mbG93X21hc2sucHJvdG8gfHwgcC0+ZnMuZmxvd19tYXNrLmRzdF9pcCB8fCAKKwkJcC0+ ZnMuZmxvd19tYXNrLnNyY19pcCB8fCBwLT5mcy5mbG93X21hc2suZHN0X3BvcnQgfHwgCisJCXAt PmZzLmZsb3dfbWFzay5zcmNfcG9ydCB8fAorCQlwLT5mcy5mbG93X21hc2suZmxvd19pZDYpIHsK KwkJcHJpbnRmKCJcblx0IG1hc2s6ICIpOworCWlmIChwLT5mcy5mbG93X21hc2sucHJvdG8pCisJ CXByaW50ZigiIHByb3RvIDB4JTAyeCIsIHAtPmZzLmZsb3dfbWFzay5wcm90byk7CisJaWYgKHAt PmZzLmZsb3dfbWFzay5zcmNfaXApCisJCXByaW50ZigiIHNyYy1pcCAweCUwOHgiLCBwLT5mcy5m bG93X21hc2suc3JjX2lwKTsKKwlpZiAocC0+ZnMuZmxvd19tYXNrLnNyY19wb3J0KQorCQlwcmlu dGYoIiBzcmMtcG9ydCAweCUwNHgiLCBwLT5mcy5mbG93X21hc2suc3JjX3BvcnQpOworCWlmIChw LT5mcy5mbG93X21hc2suZHN0X2lwKQorCQlwcmludGYoIiBkc3QtaXAgMHglMDh4IiwgcC0+ZnMu Zmxvd19tYXNrLmRzdF9pcCk7CisJaWYgKHAtPmZzLmZsb3dfbWFzay5kc3RfcG9ydCkKKwkJcHJp bnRmKCIgZHN0LXBvcnQgMHglMDR4IiwgcC0+ZnMuZmxvd19tYXNrLmRzdF9wb3J0KTsKKwlpZiAo cC0+ZnMuZmxvd19tYXNrLmZsb3dfaWQ2KQorCQlwcmludGYoIiBkc3QtcG9ydCAweCUwOHgiLCBw LT5mcy5mbG93X21hc2suZmxvd19pZDYpOworCX0KKwlpZiAocC0+ZnMuZmxhZ3NfZnMgJiBETl9O T0VSUk9SKQorCQlwcmludGYoIiBub2Vycm9yIik7CisKKwlwcmludGYoIlxuIik7CQorfQorCitp bnQKK3BmY3RsX3Nob3dfZHVtbXluZXQoaW50IGRuc29jaywgaW50IG9wdHMpCit7CisgICAgICAg IHZvaWQgKmRhdGEgPSBOVUxMOworICAgICAgICBpbnQgbmJ5dGVzLCBuYWxsb2MgPSAxMDI0Owor CisJaWYgKG9wdHMgJiBQRl9PUFRfVkVSQk9TRSkKKwkJdmVyYm9zZSA9IDE7CisJZWxzZSAKKwkJ dmVyYm9zZSA9IDA7CisJCisJbmJ5dGVzID0gbmFsbG9jOworICAgICAgICB3aGlsZSAobmJ5dGVz ID49IG5hbGxvYykgeworICAgICAgICAgICAgICAgIG5hbGxvYyA9IG5hbGxvYyAqIDIgKyAyMDA7 CisgICAgICAgICAgICAgICAgbmJ5dGVzID0gbmFsbG9jOworICAgICAgICAgICAgICAgIGlmICgo ZGF0YSA9IHJlYWxsb2MoZGF0YSwgbmJ5dGVzKSkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAg ICAgICAgIGVycigxLCAicmVhbGxvYyIpOworICAgICAgICAgICAgICAgIGlmIChnZXRzb2Nrb3B0 KGRuc29jaywgSVBQUk9UT19JUCwgSVBfRFVNTVlORVRfR0VULCBkYXRhLAorICAgICAgICAgICAg ICAgICAgICAgICAgKHNvY2tsZW5fdCAqKSZuYnl0ZXMpIDwgMCkgeworICAgICAgICAgICAgICAg ICAgICAgICAgZnJlZShkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycigxLCAiZ2V0 c29ja29wdChJUF9EVU1NWU5FVF9HRVQpIik7CisJCX0KKyAgICAgICAgfQorCQorICAgICAgICBs aXN0X3BpcGVzKGRhdGEsIG5ieXRlcyk7CisJCisJcmV0dXJuICgwKTsKKworfQpJbmRleDogY29u dHJpYi9wZi9wZmN0bC9wZmN0bF9wYXJzZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9l cmkvcmVwby9jb250cmliL3BmL3BmY3RsL3BmY3RsX3BhcnNlci5jLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIxLjEuMS4xIHBmY3RsX3BhcnNlci5jCi0tLSBjb250cmli L3BmL3BmY3RsL3BmY3RsX3BhcnNlci5jCTIxIE9jdCAyMDA3IDEzOjUzOjE1IC0wMDAwCTEuMS4x LjEKKysrIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfcGFyc2VyLmMJMjEgT2N0IDIwMDcgMTk6MDM6 NDkgLTAwMDAKQEAgLTQ4LDYgKzQ4LDkgQEAKICNpbmNsdWRlIDxuZXQvcGZ2YXIuaD4KICNpbmNs dWRlIDxhcnBhL2luZXQuaD4KIAorI2luY2x1ZGUgPG5ldGluZXQvaXBfZncuaD4KKyNpbmNsdWRl IDxuZXRpbmV0L2lwX2R1bW15bmV0Lmg+CisKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUg PHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtOTgxLDYgKzk4NCwxMiBAQAogCX0K IAlpZiAoci0+bGFiZWxbMF0pCiAJCXByaW50ZigiIGxhYmVsIFwiJXNcIiIsIHItPmxhYmVsKTsK KwlpZiAoci0+ZG5waXBlICYmIHItPnBkbnBpcGUpCisJICAgICAgIHByaW50ZigiIGRucXVldWUo JWQsICVkKSIsIHItPmRucGlwZSwgci0+cGRucGlwZSk7CisJZWxzZSBpZiAoci0+ZG5waXBlKQkK KwkJcHJpbnRmKCIgJXMgJWQiLCAKKwkJCXItPmRudHlwZSA9PSBETl9JU19QSVBFID8gImRucGlw ZSIgOiAiZG5xdWV1ZSIsCisJCQlyLT5kbnBpcGUpOwogCWlmIChyLT5xbmFtZVswXSAmJiByLT5w cW5hbWVbMF0pCiAJCXByaW50ZigiIHF1ZXVlKCVzLCAlcykiLCByLT5xbmFtZSwgci0+cHFuYW1l KTsKIAllbHNlIGlmIChyLT5xbmFtZVswXSkKSW5kZXg6IGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxf cGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vY29udHJpYi9wZi9w ZmN0bC9wZmN0bF9wYXJzZXIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11 IC1yMS4xLjEuMSBwZmN0bF9wYXJzZXIuaAotLS0gY29udHJpYi9wZi9wZmN0bC9wZmN0bF9wYXJz ZXIuaAkyMSBPY3QgMjAwNyAxMzo1MzoxNSAtMDAwMAkxLjEuMS4xCisrKyBjb250cmliL3BmL3Bm Y3RsL3BmY3RsX3BhcnNlci5oCTIxIE9jdCAyMDA3IDE5OjAzOjQ5IC0wMDAwCkBAIC02Nyw2ICs2 Nyw3IEBACiB9CiAKIHN0cnVjdCBwZnJfYnVmZmVyOwkvKiBmb3J3YXJkIGRlZmluaXRpb24gKi8K K3N0cnVjdCBkbl9waXBlOwogCiAKIHN0cnVjdCBwZmN0bCB7CkBAIC0yMTcsNiArMjE4LDcgQEAK IAogaW50CXBmY3RsX2FkZF9ydWxlKHN0cnVjdCBwZmN0bCAqLCBzdHJ1Y3QgcGZfcnVsZSAqLCBj b25zdCBjaGFyICopOwogaW50CXBmY3RsX2FkZF9hbHRxKHN0cnVjdCBwZmN0bCAqLCBzdHJ1Y3Qg cGZfYWx0cSAqKTsKK2ludCAJcGZjdGxfYWRkX2R1bW15bmV0KHN0cnVjdCBwZmN0bCAqLCBzdHJ1 Y3QgZG5fcGlwZSAqKTsKIGludAlwZmN0bF9hZGRfcG9vbChzdHJ1Y3QgcGZjdGwgKiwgc3RydWN0 IHBmX3Bvb2wgKiwgc2FfZmFtaWx5X3QpOwogdm9pZAlwZmN0bF9tb3ZlX3Bvb2woc3RydWN0IHBm X3Bvb2wgKiwgc3RydWN0IHBmX3Bvb2wgKik7CiB2b2lkCXBmY3RsX2NsZWFyX3Bvb2woc3RydWN0 IHBmX3Bvb2wgKik7CkBAIC0yNDQsNiArMjQ2LDggQEAKIGludAlldmFsX3BmcXVldWUoc3RydWN0 IHBmY3RsICosIHN0cnVjdCBwZl9hbHRxICosIHN0cnVjdCBub2RlX3F1ZXVlX2J3ICosCiAJICAg IHN0cnVjdCBub2RlX3F1ZXVlX29wdCAqKTsKIAordm9pZAlwcmludF9kdW1teW5ldChzdHJ1Y3Qg ZG5fcGlwZSAqKTsKKwogdm9pZAkgcHJpbnRfYWx0cShjb25zdCBzdHJ1Y3QgcGZfYWx0cSAqLCB1 bnNpZ25lZCwgc3RydWN0IG5vZGVfcXVldWVfYncgKiwKIAkgICAgc3RydWN0IG5vZGVfcXVldWVf b3B0ICopOwogdm9pZAkgcHJpbnRfcXVldWUoY29uc3Qgc3RydWN0IHBmX2FsdHEgKiwgdW5zaWdu ZWQsIHN0cnVjdCBub2RlX3F1ZXVlX2J3ICosCkBAIC0yODYsNiArMjkwLDcgQEAKICNkZWZpbmUg UEZDVExfRkxBR19PUFRJT04JMHgwOAogI2RlZmluZSBQRkNUTF9GTEFHX0FMVFEJCTB4MTAKICNk ZWZpbmUgUEZDVExfRkxBR19UQUJMRQkweDIwCisjZGVmaW5lCVBGQ1RMX0ZMQUdfRFVNTVlORVQJ MHg0MAogCiBleHRlcm4gY29uc3Qgc3RydWN0IHBmX3RpbWVvdXQgcGZfdGltZW91dHNbXTsKIApJ bmRleDogc2Jpbi9wZmN0bC9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9lcmkv cmVwby9zYmluL3BmY3RsL01ha2VmaWxlLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRp ZmYgLXUgLXIxLjEuMS4xIE1ha2VmaWxlCi0tLSBzYmluL3BmY3RsL01ha2VmaWxlCTIxIE9jdCAy MDA3IDEzOjU0OjE2IC0wMDAwCTEuMS4xLjEKKysrIHNiaW4vcGZjdGwvTWFrZWZpbGUJMjEgT2N0 IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTExLDYgKzExLDcgQEAKIFNSQ1MrPSBwZmN0bF9vc2Zw LmMgcGZjdGxfcmFkaXguYyBwZmN0bF90YWJsZS5jIHBmY3RsX3FzdGF0cy5jCiBTUkNTKz0gcGZj dGxfb3B0aW1pemUuYwogU1JDUys9IHBmX3J1bGVzZXQuYworU1JDUys9IHBmY3RsX2RuLmMKIAog Q0ZMQUdTKz0gLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVduby11bmluaXRpYWxpemVkCiBD RkxBR1MrPSAtV3N0cmljdC1wcm90b3R5cGVzIC1JJHsuQ1VSRElSfS8uLi8uLi9jb250cmliL3Bm L3BmY3RsCkluZGV4OiBzeXMvY29udHJpYi9wZi9uZXQvcGYuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvaG9tZS9lcmkvcmVwby9zeXMvY29udHJpYi9wZi9uZXQvcGYuYyx2CnJldHJpZXZpbmcgcmV2 aXNpb24gMS4xLjEuMQpkaWZmIC11IC1yMS4xLjEuMSBwZi5jCi0tLSBzeXMvY29udHJpYi9wZi9u ZXQvcGYuYwkyMSBPY3QgMjAwNyAxMzo1NDo1NiAtMDAwMAkxLjEuMS4xCisrKyBzeXMvY29udHJp Yi9wZi9uZXQvcGYuYwkyMSBPY3QgMjAwNyAxOTowMzo0OSAtMDAwMApAQCAtNjcxOCw2ICs2NzE5 LDcgQEAKIAlpbnQJCQkgb2ZmLCBkaXJuZHgsIHBxaWQgPSAwOwogCiAjaWZkZWYgX19GcmVlQlNE X18KKwlzdHJ1Y3QgaXBfZndfYXJncwkgZG5mbG93OwogCVBGX0xPQ0soKTsKICNlbmRpZgogCWlm ICghcGZfc3RhdHVzLnJ1bm5pbmcpCkBAIC02NzQ0LDYgKzY3NDYsNyBAQAogCQlQRl9VTkxPQ0so KTsKIAkJcmV0dXJuIChQRl9QQVNTKTsKIAl9CisJCiAjZWxzZQogCWlmIChwZC5wZl9tdGFnLT5m bGFncyAmIFBGX1RBR19HRU5FUkFURUQpCiAJCXJldHVybiAoUEZfUEFTUyk7CkBAIC02ODI3LDYg KzY4MzAsMTMgQEAKIAkJc3RydWN0IHRjcGhkcgl0aDsKIAogCQlwZC5oZHIudGNwID0gJnRoOwor CisjaWZkZWYgX19GcmVlQlNEX18KKyAgICAgICAgICAgICAgICBkbmZsb3cuZl9pZC5mbGFncyA9 IHRoLnRoX2ZsYWdzOworICAgICAgICAgICAgICAgIGRuZmxvdy5mX2lkLmRzdF9wb3J0ID0gdGgu dGhfZHBvcnQ7CisgICAgICAgICAgICAgICAgZG5mbG93LmZfaWQuc3JjX3BvcnQgPSB0aC50aF9z cG9ydDsKKyNlbmRpZgorCiAJCWlmICghcGZfcHVsbF9oZHIobSwgb2ZmLCAmdGgsIHNpemVvZih0 aCksCiAJCSAgICAmYWN0aW9uLCAmcmVhc29uLCBBRl9JTkVUKSkgewogCQkJbG9nID0gYWN0aW9u ICE9IFBGX1BBU1M7CkBAIC02ODY4LDYgKzY4NzgsMTIgQEAKIAkJc3RydWN0IHVkcGhkcgl1aDsK IAogCQlwZC5oZHIudWRwID0gJnVoOworCisjaWZkZWYgX19GcmVlQlNEX18KKyAgICAgICAgICAg ICAgICBkbmZsb3cuZl9pZC5kc3RfcG9ydCA9IHVoLnVoX2Rwb3J0OworICAgICAgICAgICAgICAg IGRuZmxvdy5mX2lkLnNyY19wb3J0ID0gdWgudWhfc3BvcnQ7CisjZW5kaWYKKwogCQlpZiAoIXBm X3B1bGxfaGRyKG0sIG9mZiwgJnVoLCBzaXplb2YodWgpLAogCQkgICAgJmFjdGlvbiwgJnJlYXNv biwgQUZfSU5FVCkpIHsKIAkJCWxvZyA9IGFjdGlvbiAhPSBQRl9QQVNTOwpAQCAtNjkwOSw2ICs2 OTI1LDcgQEAKIAkJc3RydWN0IGljbXAJaWg7CiAKIAkJcGQuaGRyLmljbXAgPSAmaWg7CisKIAkJ aWYgKCFwZl9wdWxsX2hkcihtLCBvZmYsICZpaCwgSUNNUF9NSU5MRU4sCiAJCSAgICAmYWN0aW9u LCAmcmVhc29uLCBBRl9JTkVUKSkgewogCQkJbG9nID0gYWN0aW9uICE9IFBGX1BBU1M7CkBAIC03 MDgzLDYgKzcxMDAsMzMgQEAKIAkJcGZfcm91dGUobTAsIHIsIGRpciwgaWZwLCBzLCAmcGQpOwog CiAjaWZkZWYgX19GcmVlQlNEX18KKwlpZiAoci0+ZG5waXBlICYmIGlwX2RuX2lvX3B0ciAhPSBO VUxMKSB7CisJCQlzdHJ1Y3QgaXBfZncgZHVtbXlydWxlOworCisgICAgICAJCQlkdW1teXJ1bGUu Y21kLT5vcGNvZGUgPSAKKwkJCQlyLT5kbnR5cGUgPT0gRE5fSVNfUElQRSA/IE9fUElQRSA6IE9f UVVFVUU7CisJCQlkdW1teXJ1bGUuYWN0X29mcyA9IDA7CisJCQlkdW1teXJ1bGUuY21kX2xlbiA9 IDE7CisJCQlpZiAoYWN0aW9uID09IFBGX1BBU1MgJiYgKAorCQkJCXBxaWQgfHwgKHBkLnRvcyAm IElQVE9TX0xPV0RFTEFZKSkpIAorCQkJCWRuZmxvdy5jb29raWUgPSByLT5wZG5waXBlOworCQkJ ZWxzZSAKKwkJCQlkbmZsb3cuY29va2llID0gci0+ZG5waXBlOworICAgICAgICAgICAgICAgIAlk bmZsb3cucnVsZSA9ICZkdW1teXJ1bGU7CisgICAgICAgICAgICAgICAgCWRuZmxvdy5mX2lkLmFk ZHJfdHlwZSA9IDQ7IC8qIElQdjQgdHlwZSAqLworICAgICAgICAgICAgICAgIAlkbmZsb3cuZl9p ZC5wcm90byA9IHBkLnByb3RvOworCQkJUEZfVU5MT0NLKCk7CisJCQkKKwkJCWggPSBtdG9kKCpt MCwgc3RydWN0IGlwICopOworCQkJTlRPSFMoaC0+aXBfbGVuKTsKKwkJCU5UT0hTKGgtPmlwX29m Zik7CisJCQlpcF9kbl9pb19wdHIoKm0wLCAKKwkJCQlkaXIgPT0gUEZfSU4gPyBETl9UT19JUF9J TiA6IEROX1RPX0lQX09VVCwgCisJCQkJJmRuZmxvdyk7CisJCQkqbTAgPSBOVUxMOworCQkJcmV0 dXJuIChhY3Rpb24pOworCQl9CisJCiAJUEZfVU5MT0NLKCk7CiAjZW5kaWYKIApAQCAtNzExMSw2 ICs3MTU1LDcgQEAKIAlpbnQJCQkgb2ZmLCB0ZXJtaW5hbCA9IDAsIGRpcm5keCwgcmhfY250ID0g MDsKIAogI2lmZGVmIF9fRnJlZUJTRF9fCisJc3RydWN0IGlwX2Z3X2FyZ3MJIGRuZmxvdzsKIAlQ Rl9MT0NLKCk7CiAjZW5kaWYKIApAQCAtNzI4Niw2ICs3MzMxLDEyIEBACiAJCXN0cnVjdCB0Y3Bo ZHIJdGg7CiAKIAkJcGQuaGRyLnRjcCA9ICZ0aDsKKyNpZmRlZiBfX0ZyZWVCU0RfXworICAgICAg ICAgICAgICAgIGRuZmxvdy5mX2lkLmZsYWdzID0gdGgudGhfZmxhZ3M7CisgICAgICAgICAgICAg ICAgZG5mbG93LmZfaWQuZHN0X3BvcnQgPSB0aC50aF9kcG9ydDsKKyAgICAgICAgICAgICAgICBk bmZsb3cuZl9pZC5zcmNfcG9ydCA9IHRoLnRoX3Nwb3J0OworI2VuZGlmCisKIAkJaWYgKCFwZl9w dWxsX2hkcihtLCBvZmYsICZ0aCwgc2l6ZW9mKHRoKSwKIAkJICAgICZhY3Rpb24sICZyZWFzb24s IEFGX0lORVQ2KSkgewogCQkJbG9nID0gYWN0aW9uICE9IFBGX1BBU1M7CkBAIC03MzI2LDYgKzcz NzcsMTEgQEAKIAkJc3RydWN0IHVkcGhkcgl1aDsKIAogCQlwZC5oZHIudWRwID0gJnVoOworI2lm ZGVmIF9fRnJlZUJTRF9fCisgICAgICAgICAgICAgICAgZG5mbG93LmZfaWQuZHN0X3BvcnQgPSB1 aC51aF9kcG9ydDsKKyAgICAgICAgICAgICAgICBkbmZsb3cuZl9pZC5zcmNfcG9ydCA9IHVoLnVo X3Nwb3J0OworI2VuZGlmCisKIAkJaWYgKCFwZl9wdWxsX2hkcihtLCBvZmYsICZ1aCwgc2l6ZW9m KHVoKSwKIAkJICAgICZhY3Rpb24sICZyZWFzb24sIEFGX0lORVQ2KSkgewogCQkJbG9nID0gYWN0 aW9uICE9IFBGX1BBU1M7CkBAIC03NTM5LDggKzc1OTUsMzMgQEAKIAkJcGZfcm91dGU2KG0wLCBy LCBkaXIsIGlmcCwgcywgJnBkKTsKIAogI2lmZGVmIF9fRnJlZUJTRF9fCisJaWYgKHItPmRucGlw ZSAmJiBpcF9kbl9pb19wdHIgIT0gTlVMTCkgeworCQkJc3RydWN0IGlwX2Z3IGR1bW15cnVsZTsK KworICAgICAgCQkJZHVtbXlydWxlLmNtZC0+b3Bjb2RlID0gCisJCQkJci0+ZG50eXBlID09IERO X0lTX1BJUEUgPyBPX1BJUEUgOiBPX1FVRVVFOworCQkJZHVtbXlydWxlLmFjdF9vZnMgPSAwOwor CQkJZHVtbXlydWxlLmNtZF9sZW4gPSAxOworCQkJaWYgKGFjdGlvbiA9PSBQRl9QQVNTICYmICgK KwkJCQlwZC50b3MgJiBJUFRPU19MT1dERUxBWSkpIAorCQkJCWRuZmxvdy5jb29raWUgPSByLT5w ZG5waXBlOworCQkJZWxzZSAKKwkJCQlkbmZsb3cuY29va2llID0gci0+ZG5waXBlOworICAgICAg ICAgICAgICAgIAlkbmZsb3cucnVsZSA9ICZkdW1teXJ1bGU7CisgICAgICAgICAgICAgICAgCWRu Zmxvdy5mX2lkLmFkZHJfdHlwZSA9IDY7IC8qIElQdjQgdHlwZSAqLworICAgICAgICAgICAgICAg IAlkbmZsb3cuZl9pZC5wcm90byA9IHBkLnByb3RvOworCQkJUEZfVU5MT0NLKCk7CisJCQkKKwkJ CWlwX2RuX2lvX3B0cigqbTAsIAorCQkJCWRpciA9PSBQRl9JTiA/IEROX1RPX0lQNl9JTiA6IERO X1RPX0lQNl9PVVQsIAorCQkJCSZkbmZsb3cpOworCQkJKm0wID0gTlVMTDsKKwkJCXJldHVybiAo YWN0aW9uKTsKKwkJfQorCQogCVBGX1VOTE9DSygpOwogI2VuZGlmCisKIAlyZXR1cm4gKGFjdGlv bik7CiB9CiAjZW5kaWYgLyogSU5FVDYgKi8KSW5kZXg6IHN5cy9jb250cmliL3BmL25ldC9wZl9p b2N0bC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2VyaS9yZXBvL3N5cy9jb250cmliL3Bm L25ldC9wZl9pb2N0bC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIx LjEuMS4xIHBmX2lvY3RsLmMKLS0tIHN5cy9jb250cmliL3BmL25ldC9wZl9pb2N0bC5jCTIxIE9j dCAyMDA3IDEzOjU0OjU2IC0wMDAwCTEuMS4xLjEKKysrIHN5cy9jb250cmliL3BmL25ldC9wZl9p b2N0bC5jCTIxIE9jdCAyMDA3IDE5OjAzOjQ5IC0wMDAwCkBAIC0zNTIyLDggKzM1MjIsMTYgQEAK IAkgKiBieXRlIG9yZGVyLiAKIAkgKi8KIAlzdHJ1Y3QgaXAgKmggPSBOVUxMOworCXN0cnVjdCBt X3RhZyAqZG5fdGFnOwogCWludCBjaGs7CiAKKyAgICAgICAgZG5fdGFnID0gbV90YWdfZmluZCgq bSwgUEFDS0VUX1RBR19EVU1NWU5FVCwgTlVMTCk7CisJaWYgKGRuX3RhZyAhPSBOVUxMICYmIAor CQkoKHN0cnVjdCBkbl9wa3RfdGFnICopKGRuX3RhZysxKSktPmRuX2RpciA9PSBETl9UT19JUF9J TikgeworCQltX3RhZ19kZWxldGUoKm0sIGRuX3RhZyk7CisgICAgICAgICAgICAgICAgcmV0dXJu IChQRl9QQVNTKTsKKyAgICAgICAgfQorCiAJaWYgKCgqbSktPm1fcGt0aGRyLmxlbiA+PSAoaW50 KXNpemVvZihzdHJ1Y3QgaXApKSB7CiAJCS8qIGlmIG1fcGt0aGRyLmxlbiBpcyBsZXNzIHRoYW4g aXAgaGVhZGVyLCBwZiB3aWxsIGhhbmRsZS4gKi8KIAkJaCA9IG10b2QoKm0sIHN0cnVjdCBpcCAq KTsKQEAgLTM1NTcsNiArMzU2NSw3IEBACiAJICogYnl0ZSBvcmRlci4gCiAJICovCiAJc3RydWN0 IGlwICpoID0gTlVMTDsKKwlzdHJ1Y3QgbV90YWcgKmRuX3RhZzsKIAlpbnQgY2hrOwogCiAJLyog V2UgbmVlZCBhIHByb3BlciBDU1VNIGJlZm9yIHdlIHN0YXJ0IChzLiBPcGVuQlNEIGlwX291dHB1 dCkgKi8KQEAgLTM1NjQsNiArMzU3MywxNCBAQAogCQlpbl9kZWxheWVkX2Nrc3VtKCptKTsKIAkJ KCptKS0+bV9wa3RoZHIuY3N1bV9mbGFncyAmPSB+Q1NVTV9ERUxBWV9EQVRBOwogCX0KKwkKKwlk bl90YWcgPSBtX3RhZ19maW5kKCptLCBQQUNLRVRfVEFHX0RVTU1ZTkVULCBOVUxMKTsKKwlpZiAo ZG5fdGFnICE9IE5VTEwgJiYgCisJCSgoc3RydWN0IGRuX3BrdF90YWcgKikoZG5fdGFnKzEpKS0+ ZG5fZGlyID09IEROX1RPX0lQX09VVCkgeworCQltX3RhZ19kZWxldGUoKm0sIGRuX3RhZyk7Cisg ICAgICAgICAgICAgICAgcmV0dXJuIChQRl9QQVNTKTsKKyAgICAgICAgfQorCQogCWlmICgoKm0p LT5tX3BrdGhkci5sZW4gPj0gKGludClzaXplb2YoKmgpKSB7CiAJCS8qIGlmIG1fcGt0aGRyLmxl biBpcyBsZXNzIHRoYW4gaXAgaGVhZGVyLCBwZiB3aWxsIGhhbmRsZS4gKi8KIAkJaCA9IG10b2Qo Km0sIHN0cnVjdCBpcCAqKTsKQEAgLTM1OTMsNiArMzYxMCwxNCBAQAogCSAqIElQdjYgaXMgbm90 IGFmZmVjdGVkIGJ5IGlwX2xlbi9pcF9vZmYgYnl0ZSBvcmRlciBjaGFuZ2VzLgogCSAqLwogCWlu dCBjaGs7CisJc3RydWN0IG1fdGFnICpkbl90YWc7CisJCisJZG5fdGFnID0gbV90YWdfZmluZCgq bSwgUEFDS0VUX1RBR19EVU1NWU5FVCwgTlVMTCk7CisJaWYgKGRuX3RhZyAhPSBOVUxMICYmIAor CQkoKHN0cnVjdCBkbl9wa3RfdGFnICopKGRuX3RhZysxKSktPmRuX2RpciA9PSBETl9UT19JUDZf SU4pIHsKKwkJbV90YWdfZGVsZXRlKCptLCBkbl90YWcpOworICAgICAgICAgICAgICAgIHJldHVy biAoUEZfUEFTUyk7CisgICAgICAgIH0KIAogCS8qCiAJICogSW4gY2FzZSBvZiBsb29wYmFjayB0 cmFmZmljIElQdjYgdXNlcyB0aGUgcmVhbCBpbnRlcmZhY2UgaW4KQEAgLTM2MTYsNiArMzY0MSwx NCBAQAogCSAqIElQdjYgZG9lcyBub3QgYWZmZWN0ZWQgaXBfbGVuL2lwX29mZiBieXRlIG9yZGVy IGNoYW5nZXMuCiAJICovCiAJaW50IGNoazsKKwlzdHJ1Y3QgbV90YWcgKmRuX3RhZzsKKworCWRu X3RhZyA9IG1fdGFnX2ZpbmQoKm0sIFBBQ0tFVF9UQUdfRFVNTVlORVQsIE5VTEwpOworCWlmIChk bl90YWcgIT0gTlVMTCAmJiAKKwkJKChzdHJ1Y3QgZG5fcGt0X3RhZyAqKShkbl90YWcrMSkpLT5k bl9kaXIgPT0gRE5fVE9fSVA2X09VVCkgeworCQltX3RhZ19kZWxldGUoKm0sIGRuX3RhZyk7Cisg ICAgICAgICAgICAgICAgcmV0dXJuIChQRl9QQVNTKTsKKyAgICAgICAgfQogCiAJLyogV2UgbmVl ZCBhIHByb3BlciBDU1VNIGJlZm9yIHdlIHN0YXJ0IChzLiBPcGVuQlNEIGlwX291dHB1dCkgKi8K IAlpZiAoKCptKS0+bV9wa3RoZHIuY3N1bV9mbGFncyAmIENTVU1fREVMQVlfREFUQSkgewpJbmRl eDogc3lzL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUv ZXJpL3JlcG8vc3lzL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMS4xLjEKZGlmZiAtdSAtcjEuMS4xLjEgcGZ2YXIuaAotLS0gc3lzL2NvbnRyaWIvcGYvbmV0 L3BmdmFyLmgJMjEgT2N0IDIwMDcgMTM6NTQ6NTYgLTAwMDAJMS4xLjEuMQorKysgc3lzL2NvbnRy aWIvcGYvbmV0L3BmdmFyLmgJMjEgT2N0IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTU3LDYgKzU3 LDkgQEAKIAogI2lmZGVmIF9fRnJlZUJTRF9fCiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorCisj aW5jbHVkZSA8bmV0aW5ldC9pcF9mdy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaXBfZHVtbXluZXQu aD4KICNlbmRpZgogCiAjaW5jbHVkZSA8bmV0aW5ldC90Y3BfZnNtLmg+CkBAIC02MzIsNiArNjM1 LDkgQEAKIAl9CQkJIG1heF9zcmNfY29ubl9yYXRlOwogCXVfaW50MzJfdAkJIHFpZDsKIAl1X2lu dDMyX3QJCSBwcWlkOworCXVfaW50MzJfdAkJIGRucGlwZTsKKwl1X2ludDMyX3QJCSBwZG5waXBl OworCXVfaW50MzJfdAkJIGRudHlwZTsKIAl1X2ludDMyX3QJCSBydF9saXN0aWQ7CiAJdV9pbnQz Ml90CQkgbnI7CiAJdV9pbnQzMl90CQkgcHJvYjsKSW5kZXg6IHN5cy9uZXRpbmV0L2lwX2R1bW15 bmV0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vc3lzL25ldGluZXQvaXBf ZHVtbXluZXQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11IC1yMS4xLjEu MSBpcF9kdW1teW5ldC5jCi0tLSBzeXMvbmV0aW5ldC9pcF9kdW1teW5ldC5jCTIxIE9jdCAyMDA3 IDEzOjU1OjM2IC0wMDAwCTEuMS4xLjEKKysrIHN5cy9uZXRpbmV0L2lwX2R1bW15bmV0LmMJMjEg T2N0IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTg0LDYgKzg0LDkgQEAKICNpbmNsdWRlIDxuZXRp bmV0L2lwNi5oPiAgICAgICAvKiBmb3IgaXA2X2lucHV0LCBpcDZfb3V0cHV0IHByb3RvdHlwZXMg Ki8KICNpbmNsdWRlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+CiAKKworc3RhdGljIHN0cnVjdCBpcF9m dyBkZWZhdWx0X3J1bGUgOworCiAvKgogICogV2Uga2VlcCBhIHByaXZhdGUgdmFyaWFibGUgZm9y IHRoZSBzaW11bGF0aW9uIHRpbWUsIGJ1dCB3ZSBjb3VsZAogICogcHJvYmFibHkgdXNlIGFuIGV4 aXN0aW5nIG9uZSAoInNvZnR0aWNrcyIgaW4gc3lzL2tlcm4va2Vybl90aW1lb3V0LmMpCkBAIC0y MTQsNyArMjE3LDYgQEAKIHN0YXRpYyB2b2lkIGR1bW15bmV0X3NlbmQoc3RydWN0IG1idWYgKik7 CiB2b2lkIGR1bW15bmV0X2RyYWluKHZvaWQpOwogc3RhdGljIGlwX2RuX2lvX3QgZHVtbXluZXRf aW87Ci1zdGF0aWMgdm9pZCBkbl9ydWxlX2RlbGV0ZSh2b2lkICopOwogCiAvKgogICogSGVhcCBt YW5hZ2VtZW50IGZ1bmN0aW9ucy4KQEAgLTE0OTAsNyArMTQ5Miw2IEBACiAJRFVNTVlORVRfVU5M T0NLKCk7CiB9CiAKLWV4dGVybiBzdHJ1Y3QgaXBfZncgKmlwX2Z3X2RlZmF1bHRfcnVsZSA7CiBz dGF0aWMgdm9pZAogZG5fcnVsZV9kZWxldGVfZnMoc3RydWN0IGRuX2Zsb3dfc2V0ICpmcywgdm9p ZCAqcikKIHsKQEAgLTE1MDMsNyArMTUwNCw3IEBACiAJICAgIGZvciAobSA9IHEtPmhlYWQgOyBt IDsgbSA9IG0tPm1fbmV4dHBrdCApIHsKIAkJc3RydWN0IGRuX3BrdF90YWcgKnBrdCA9IGRuX3Rh Z19nZXQobSkgOwogCQlpZiAocGt0LT5ydWxlID09IHIpCi0JCSAgICBwa3QtPnJ1bGUgPSBpcF9m d19kZWZhdWx0X3J1bGUgOworCQkgICAgcGt0LT5ydWxlID0gJmRlZmF1bHRfcnVsZSA7CiAJICAg IH0KIH0KIC8qCkBAIC0xNTM2LDcgKzE1MzcsNyBAQAogCQlmb3IgKG0gPSBwaXBlLT5oZWFkIDsg bSA7IG0gPSBtLT5tX25leHRwa3QgKSB7CiAJCQlwa3QgPSBkbl90YWdfZ2V0KG0pOwogCQkJaWYg KHBrdC0+cnVsZSA9PSByKQotCQkJCXBrdC0+cnVsZSA9IGlwX2Z3X2RlZmF1bHRfcnVsZTsKKwkJ CQlwa3QtPnJ1bGUgPSAmZGVmYXVsdF9ydWxlOwogCQl9CiAJfQogICAgIERVTU1ZTkVUX1VOTE9D SygpOwpAQCAtMjEyOSw3ICsyMTMwLDIwIEBACiAKIAlpcF9kbl9jdGxfcHRyID0gaXBfZG5fY3Rs OwogCWlwX2RuX2lvX3B0ciA9IGR1bW15bmV0X2lvOwotCWlwX2RuX3J1bGVkZWxfcHRyID0gZG5f cnVsZV9kZWxldGU7CisKKwliemVybygmZGVmYXVsdF9ydWxlLCBzaXplb2YgZGVmYXVsdF9ydWxl KTsKKworICAgICAgICBkZWZhdWx0X3J1bGUuYWN0X29mcyA9IDA7CisgICAgICAgIGRlZmF1bHRf cnVsZS5ydWxlbnVtID0gSVBGV19ERUZBVUxUX1JVTEU7CisgICAgICAgIGRlZmF1bHRfcnVsZS5j bWRfbGVuID0gMTsKKyAgICAgICAgZGVmYXVsdF9ydWxlLnNldCA9IFJFU1ZEX1NFVDsKKworICAg ICAgICBkZWZhdWx0X3J1bGUuY21kWzBdLmxlbiA9IDE7CisgICAgICAgIGRlZmF1bHRfcnVsZS5j bWRbMF0ub3Bjb2RlID0KKyNpZmRlZiBJUEZJUkVXQUxMX0RFRkFVTFRfVE9fQUNDRVBUCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPyBPX0FDQ0VQVCA6CisjZW5kaWYKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT19ERU5ZOwogCiAJVEFTS19JTklUKCZkbl90YXNr LCAwLCBkdW1teW5ldF90YXNrLCBOVUxMKTsKIAlkbl90cSA9IHRhc2txdWV1ZV9jcmVhdGVfZmFz dCgiZHVtbXluZXQiLCBNX05PV0FJVCwKQEAgLTIxNDksNyArMjE2Myw2IEBACiB7CiAJaXBfZG5f Y3RsX3B0ciA9IE5VTEw7CiAJaXBfZG5faW9fcHRyID0gTlVMTDsKLQlpcF9kbl9ydWxlZGVsX3B0 ciA9IE5VTEw7CiAKIAlEVU1NWU5FVF9MT0NLKCk7CiAJY2FsbG91dF9zdG9wKCZkbl90aW1lb3V0 KTsKQEAgLTIxOTcsNSArMjIxMCw0IEBACiAJTlVMTAogfTsKIERFQ0xBUkVfTU9EVUxFKGR1bW15 bmV0LCBkdW1teW5ldF9tb2QsIFNJX1NVQl9QUk9UT19JRkFUVEFDSERPTUFJTiwgU0lfT1JERVJf QU5ZKTsKLU1PRFVMRV9ERVBFTkQoZHVtbXluZXQsIGlwZncsIDIsIDIsIDIpOwogTU9EVUxFX1ZF UlNJT04oZHVtbXluZXQsIDEpOwpJbmRleDogc3lzL25ldGluZXQvaXBfZHVtbXluZXQuaAo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClJDUyBmaWxlOiAvaG9tZS9lcmkvcmVwby9zeXMvbmV0aW5ldC9pcF9kdW1teW5ldC5o LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIxLjEuMS4xIGlwX2R1bW15 bmV0LmgKLS0tIHN5cy9uZXRpbmV0L2lwX2R1bW15bmV0LmgJMjEgT2N0IDIwMDcgMTM6NTU6MzYg LTAwMDAJMS4xLjEuMQorKysgc3lzL25ldGluZXQvaXBfZHVtbXluZXQuaAkyMSBPY3QgMjAwNyAx OTowMzo0OSAtMDAwMApAQCAtMzQyLDEzICszNDIsMTMgQEAKIAogI2lmZGVmIF9LRVJORUwKIHR5 cGVkZWYJaW50IGlwX2RuX2N0bF90KHN0cnVjdCBzb2Nrb3B0ICopOyAvKiByYXdfaXAuYyAqLwot dHlwZWRlZgl2b2lkIGlwX2RuX3J1bGVkZWxfdCh2b2lkICopOyAvKiBpcF9mdy5jICovCiB0eXBl ZGVmCWludCBpcF9kbl9pb190KHN0cnVjdCBtYnVmICptLCBpbnQgZGlyLCBzdHJ1Y3QgaXBfZndf YXJncyAqZndhKTsKIGV4dGVybglpcF9kbl9jdGxfdCAqaXBfZG5fY3RsX3B0cjsKLWV4dGVybglp cF9kbl9ydWxlZGVsX3QgKmlwX2RuX3J1bGVkZWxfcHRyOwogZXh0ZXJuCWlwX2RuX2lvX3QgKmlw X2RuX2lvX3B0cjsKICNkZWZpbmUJRFVNTVlORVRfTE9BREVECShpcF9kbl9pb19wdHIgIT0gTlVM TCkKIAordm9pZCBkbl9ydWxlX2RlbGV0ZSh2b2lkICopOworCiAvKgogICogUmV0dXJuIHRoZSBJ UEZXIHJ1bGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBkdW1teW5ldCB0YWc7IGlmIGFueS4KICAqIE1h a2Ugc3VyZSB0aGF0IHRoZSBkdW1teW5ldCB0YWcgaXMgbm90IHJldXNlZCBieSBsb3dlciBsYXll cnMuCkluZGV4OiBzeXMvbmV0aW5ldC9pcF9mdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21l L2VyaS9yZXBvL3N5cy9uZXRpbmV0L2lwX2Z3LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4x LjEKZGlmZiAtdSAtcjEuMS4xLjEgaXBfZncuaAotLS0gc3lzL25ldGluZXQvaXBfZncuaAkyMSBP Y3QgMjAwNyAxMzo1NTozNiAtMDAwMAkxLjEuMS4xCisrKyBzeXMvbmV0aW5ldC9pcF9mdy5oCTIx IE9jdCAyMDA3IDE5OjAzOjQ5IC0wMDAwCkBAIC02MTUsNSArNjE1LDcgQEAKIGV4dGVybglpcF9m d19jaGtfdAkqaXBfZndfY2hrX3B0cjsKICNkZWZpbmUJSVBGV19MT0FERUQJKGlwX2Z3X2Noa19w dHIgIT0gTlVMTCkKIAorI2RlZmluZSBJUEZXX0RFRkFVTFRfUlVMRSAgICAgICA2NTUzNQorCiAj ZW5kaWYgLyogX0tFUk5FTCAqLwogI2VuZGlmIC8qIF9JUEZXMl9IICovCkluZGV4OiBzeXMvbmV0 aW5ldC9pcF9mdzIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9lcmkvcmVwby9zeXMvbmV0 aW5ldC9pcF9mdzIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11IC1yMS4x LjEuMSBpcF9mdzIuYwotLS0gc3lzL25ldGluZXQvaXBfZncyLmMJMjEgT2N0IDIwMDcgMTM6NTU6 MzYgLTAwMDAJMS4xLjEuMQorKysgc3lzL25ldGluZXQvaXBfZncyLmMJMjEgT2N0IDIwMDcgMTk6 MDM6NDkgLTAwMDAKQEAgLTEyMiw3ICsxMjIsNiBAQAogCiBzdGF0aWMgc3RydWN0IGNhbGxvdXQg aXBmd190aW1lb3V0Owogc3RhdGljIHVtYV96b25lX3QgaXBmd19keW5fcnVsZV96b25lOwotI2Rl ZmluZQlJUEZXX0RFRkFVTFRfUlVMRQk2NTUzNQogCiAvKgogICogRGF0YSBzdHJ1Y3R1cmUgdG8g Y2FjaGUgb3VyIHVjcmVkIHJlbGF0ZWQKQEAgLTM4MjgsNyArMzgyNyw3IEBACiAJd2hpbGUgKChy dWxlID0gaGVhZCkgIT0gTlVMTCkgewogCQloZWFkID0gaGVhZC0+bmV4dDsKIAkJaWYgKERVTU1Z TkVUX0xPQURFRCkKLQkJCWlwX2RuX3J1bGVkZWxfcHRyKHJ1bGUpOworCQkJZG5fcnVsZV9kZWxl dGUocnVsZSk7CiAJCWZyZWUocnVsZSwgTV9JUEZXKTsKIAl9CiB9CkluZGV4OiBzeXMvbmV0aW5l dC9pcF9md19wZmlsLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vc3lzL25l dGluZXQvaXBfZndfcGZpbC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUg LXIxLjEuMS4xIGlwX2Z3X3BmaWwuYwotLS0gc3lzL25ldGluZXQvaXBfZndfcGZpbC5jCTIxIE9j dCAyMDA3IDEzOjU1OjM2IC0wMDAwCTEuMS4xLjEKKysrIHN5cy9uZXRpbmV0L2lwX2Z3X3BmaWwu YwkyMSBPY3QgMjAwNyAxOTowMzo0OSAtMDAwMApAQCAtNzIsOSArNzIsNiBAQAogCiBpbnQgaXBm d19jaGdfaG9vayhTWVNDVExfSEFORExFUl9BUkdTKTsKIAotLyogRHVtbXluZXQgaG9va3MuICov Ci1pcF9kbl9ydWxlZGVsX3QJKmlwX2RuX3J1bGVkZWxfcHRyID0gTlVMTDsKLQogLyogRGl2ZXJ0 IGhvb2tzLiAqLwogaXBfZGl2ZXJ0X3BhY2tldF90ICppcF9kaXZlcnRfcHRyID0gTlVMTDsKIAo= ------=_Part_14170_30775547.1193591593935-- From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 18:04:09 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8312616A41B for ; Sun, 28 Oct 2007 18:04:09 +0000 (UTC) (envelope-from wearabnet@yahoo.ca) Received: from web33715.mail.mud.yahoo.com (web33715.mail.mud.yahoo.com [68.142.201.212]) by mx1.freebsd.org (Postfix) with SMTP id 2F15313C4C4 for ; Sun, 28 Oct 2007 18:04:09 +0000 (UTC) (envelope-from wearabnet@yahoo.ca) Received: (qmail 17174 invoked by uid 60001); 28 Oct 2007 18:04:08 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.ca; h=X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=YOquidGSPG7Ku3Vv7PoiJZZF3wuA0A6m4mHBVgI71Hfq/tmW5w694OJBRbBUO/ESLoq3d4DVAqxHizLBcktylgzTPGbcqnxg47+OfIoeU2X//mA0UKkb4p6npWo1Zsi0xrWwh0OvsdJ9aS9G5jzNto1Ie/nocAlm7CH/UFDm7Mg=; X-YMail-OSG: HtKoRYgVM1neDhzB8MIU2GRp.qM2kHGLkbVl2DdNNaj8kgLt_Ps4DMVeIntLcRj25CaE8LTMbvUq2zLGsCfsao_ccjCd9bqb2T9hPM8X7qiqjG63RW4- Received: from [86.62.225.4] by web33715.mail.mud.yahoo.com via HTTP; Sun, 28 Oct 2007 11:04:08 PDT X-Mailer: YahooMailRC/814.06 YahooMailWebService/0.7.134.12 Date: Sun, 28 Oct 2007 11:04:08 -0700 (PDT) From: Abdullah Ibn Hamad Al-Marri To: Per olof Ljungmark , Andrew Birukov MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Message-ID: <256621.16904.qm@web33715.mail.mud.yahoo.com> Cc: FreeBSD STABLE , freebsd-pf@freebsd.org Subject: Re: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 18:04:09 -0000 ----- Original Message ----=0A> From: Per olof Ljungmark =0A> To: Andrew Birukov =0A> Cc: current@freebsd.org=0A> = Sent: Sunday, October 28, 2007 8:47:11 PM=0A> Subject: Re: pf broken in 7.0= -BETA1 ?=0A> =0A> Andrew Birukov wrote:=0A> >=0A> > This problem is affecte= d 7.0 only.=0A> > pf rools witch tos in FreeBSD-6.2 work properly.=0A> =0A>= Just a guess, could this be the problem?=0A> "Warning: When browsing the p= f user's guide, please keep in mind that =0A> different versions of FreeBSD= contain different versions of pf."=0A> =0A> I believe pf in 7 is based on = OpenBSD 4.1.=0A> =0A> --per=0A=0AI think this should be sent to freebsd-pf@= freebsd.org and stable, since RELENG_7 is branched.=0A=0AAlso the man isn't= updated to reflect the changes in 7.0 yet :(=0A=0A =0A=0ARegards, =0A-Abdu= llah Ibn Hamad Al-Marri=0AArab Portal=0Ahttp://www.WeArab.Net/=0A=0A=0A____= ______________________________________________=0ADo You Yahoo!?=0ATired of = spam? Yahoo! Mail has the best spam protection around =0Ahttp://mail.yahoo= .com From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 18:49:58 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12A9416A420; Sun, 28 Oct 2007 18:49:58 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from simmts8-srv.bellnexxia.net (simmts8-qfe0.srvr.bell.ca [206.47.199.166]) by mx1.freebsd.org (Postfix) with ESMTP id A96B913C4A6; Sun, 28 Oct 2007 18:49:57 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from amb.homeunix.org ([156.34.188.4]) by simmts12-srv.bellnexxia.net (InterMail vM.5.01.06.13 201-253-122-130-113-20050324) with ESMTP id <20071028183735.NRSI25485.simmts12-srv.bellnexxia.net@amb.homeunix.org>; Sun, 28 Oct 2007 14:37:35 -0400 Received: from server.amb.kiev.ua ([10.15.25.2] helo=amb.kiev.ua) by amb.homeunix.org with esmtp (Exim 4.68 (FreeBSD)) (envelope-from ) id 1ImD0w-0001N4-KL; Sun, 28 Oct 2007 15:37:34 -0300 Message-ID: <4724D6EE.6050004@amb.kiev.ua> Date: Sun, 28 Oct 2007 15:37:34 -0300 From: Andrew Birukov User-Agent: Thunderbird 2.0.0.6 (X11/20070803) MIME-Version: 1.0 To: freebsd-stable@freebsd.org Content-Type: multipart/mixed; boundary="------------060903090006020801070202" X-SA-Exim-Connect-IP: 10.15.25.2 X-SA-Exim-Rcpt-To: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org X-SA-Exim-Mail-From: amb@amb.kiev.ua X-SA-Exim-Scanned: No (on amb.homeunix.org); SAEximRunCond expanded to false Cc: freebsd-pf@freebsd.org Subject: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 18:49:58 -0000 This is a multi-part message in MIME format. --------------060903090006020801070202 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit pf.conf: --------------------------------------------------------------- ext_if="xl0" altq on $ext_if priq bandwidth 520Kb queue { ssh, traf } queue ssh priority 1 queue traf priority 15 priq(default) pass in all pass out all pass out on $ext_if proto tcp from any to any tos 0x10 queue ssh ----------------------------------------------------------------- I connected to remote host by ssh. In tcpdump i see many packets witch tos 0x10. 12:54:46.732928 IP (tos 0x10, ttl 64, id 12486, offset 0, flags [DF], proto TCP (6), length 52) 10.15.25.2.56587 > 194.0.91.110.22: ., cksum 0x35d5 (correct), 1919:1919(0) ack 2832 win 8181 12:54:46.746958 IP (tos 0x10, ttl 64, id 12487, offset 0, flags [DF], proto TCP (6), length 100) 10.15.25.2.56587 > 194.0.91.110.22: P 1919:1967(48) ack 2832 win 8195 12:54:46.900186 IP (tos 0x10, ttl 64, id 12488, offset 0, flags [DF], proto TCP (6), length 52) 10.15.25.2.56587 > 194.0.91.110.22: ., cksum 0x33ec (correct), 1967:1967(0) ack 2944 win 8181 12:54:46.915079 IP (tos 0x10, ttl 64, id 12489, offset 0, flags [DF], proto TCP (6), length 100) 10.15.25.2.56587 > 194.0.91.110.22: P 1967:2015(48) ack 2944 win 8195 tcpdump confirms that the outgoing ssh data packets have tos 0x10, but the majority of the packets are still going to the default "traf" queue. queue ssh on xl0 [ pkts: 0 bytes: 0 dropped pkts: 0 bytes: 0 ] [ qlength: 0/ 50 ] [ measured: 0.0 packets/s, 0 b/s ] queue traf on xl0 priority 15 priq( default ) [ pkts: 5059 bytes: 1130390 dropped pkts: 69 bytes: 80689 ] [ qlength: 0/ 50 ] [ measured: 3.9 packets/s, 2.15Kb/s ] This problem is affected 7.0 only. pf rools witch tos in FreeBSD-6.2 (previous pf version) work properly. My configuration: # uname -a FreeBSD amb.kiev.ua 7.0-BETA1 FreeBSD 7.0-BETA1 #1: Sun Oct 28 10:08:13 ADT 2007 root@amb.kiev.ua:/usr/obj/usr/src/sys/AMB.7.0 i386 dmesg output and kernel config file are attached to this letter. Last time I cvsupped RELENG_7 and reinstall world in this morning. -- Andrew Biriukov amb@amb.kiev.ua --------------060903090006020801070202 Content-Type: text/plain; name="KERNEL" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="KERNEL" # # GENERIC -- Generic kernel configuration file for FreeBSD/i386 # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.474.2.1 2007/10/11 06:20:26 kensmith Exp $ #cpu I486_CPU #cpu I586_CPU cpu I686_CPU ident AMB # To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options SCHED_4BSD # 4BSD scheduler #options SCHED_ULE options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking #options INET6 # IPv6 communications protocols #options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists options UFS_DIRHASH # Improve performance on big directories options UFS_GJOURNAL # Enable gjournal-based UFS journaling options MD_ROOT # MD is a potential root device #options NFSCLIENT # Network Filesystem Client #options NFSSERVER # Network Filesystem Server #options NFS_ROOT # NFS usable as /, requires NFSCLIENT #options MSDOSFS # MSDOS Filesystem #options CD9660 # ISO 9660 Filesystem options PROCFS # Process filesystem (requires PSEUDOFS) options PSEUDOFS # Pseudo-filesystem framework options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options COMPAT_FREEBSD6 # Compatible with FreeBSD6 #options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory options SYSVMSG # SYSV-style message queues options SYSVSEM # SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev options ADAPTIVE_GIANT # Giant mutex is adaptive. options STOP_NMI # Stop CPUS using NMI instead of IPI options AUDIT # Security event auditing #options IPFIREWALL #options IPFIREWALL_DEFAULT_TO_ACCEPT #options IPFIREWALL_FORWARD #options DUMMYNET #options IPFILTER #options IPFILTER_LOG #options ACCEPT_FILTER_DATA #options ACCEPT_FILTER_HTTP options ALTQ options ALTQ_CBQ options ALTQ_RED options ALTQ_RIO options ALTQ_HFSC options ALTQ_CDNR options ALTQ_PRIQ options ALTQ_NOPCC options ALTQ_DEBUG #options NETGRAPH #options NETGRAPH_SPPP #options NETGRAPH_PPP #options NETGRAPH_PPPOE #options NETGRAPH_PPTPGRE options DEVICE_POLLING device atapicam # To make an SMP kernel, the next two lines are needed options SMP # Symmetric MultiProcessor Kernel device apic # I/O APIC # CPU frequency control device cpufreq # Bus support. #device eisa device pci # Floppy drives device fdc # ATA and ATAPI devices device ata device atadisk # ATA disk drives #device ataraid # ATA RAID drives device atapicd # ATAPI CDROM drives device atapifd # ATAPI floppy drives #device atapist # ATAPI tape drives options ATA_STATIC_ID # Static device numbering # SCSI Controllers #device ahb # EISA AHA1742 family #device ahc # AHA2940 and onboard AIC7xxx devices #options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. #device ahd # AHA39320/29320 and onboard AIC79xx devices #options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. #device amd # AMD 53C974 (Tekram DC-390(T)) #device hptiop # Highpoint RocketRaid 3xxx series #device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module #device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic #device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') #device trm # Tekram DC395U/UW/F DC315U adapters #device adv # Advansys SCSI adapters #device adw # Advansys wide SCSI adapters #device aha # Adaptec 154x SCSI adapters #device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. #device bt # Buslogic/Mylex MultiMaster SCSI adapters #device ncv # NCR 53C500 #device nsp # Workbit Ninja SCSI-3 #device stg # TMC 18C30/18C50 # SCSI peripherals device scbus # SCSI bus (required for SCSI) #device ch # SCSI media changers device da # Direct Access (disks) #device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) #device ses # SCSI Environmental Services (and SAF-TE) # RAID controllers interfaced to the SCSI subsystem #device amr # AMI MegaRAID #device arcmsr # Areca SATA II RAID #device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID #device ciss # Compaq Smart RAID 5* #device dpt # DPT Smartcache III, IV - See NOTES for options #device hptmv # Highpoint RocketRAID 182x #device rr232x # Highpoint RocketRAID 232x #device iir # Intel Integrated RAID #device ips # IBM (Adaptec) ServeRAID #device mly # Mylex AcceleRAID/eXtremeRAID #device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers #device aac # Adaptec FSA RAID #device aacp # SCSI passthrough for aac (requires CAM) #device ida # Compaq Smart RAID #device mfi # LSI MegaRAID SAS #device mlx # Mylex DAC960 family #device pst # Promise Supertrak SX6000 #device twe # 3ware ATA RAID # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller device atkbd # AT keyboard #device psm # PS/2 mouse device kbdmux # keyboard multiplexer device vga # VGA video card driver device splash # Splash screen and screen saver support # syscons is the default console driver, resembling an SCO console device sc device agp # support several AGP chipsets # Power management support (see NOTES for more options) #device apm # Add suspend/resume support for the i8254. #device pmtimer # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support #device cbb # cardbus (yenta) bridge #device pccard # PC Card (16-bit) bus #device cardbus # CardBus (32-bit) bus # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports device uart # Generic UART driver # Parallel port #device ppc #device ppbus # Parallel port bus (required) #device lpt # Printer #device plip # TCP/IP over parallel #device ppi # Parallel port interface device #device vpo # Requires scbus and da # If you've got a "dumb" serial or parallel PCI card that is # supported by the puc(4) glue driver, uncomment the following # line to enable it (connects to sio, uart and/or ppc drivers): #device puc # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device le # AMD Am7900 LANCE and Am79C9xx PCnet device txp # 3Com 3cR990 (``Typhoon'') device vx # 3Com 3c590, 3c595 (``Vortex'') # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support #device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet #device bfe # Broadcom BCM440x 10/100 Ethernet #device bge # Broadcom BCM570xx Gigabit Ethernet #device dc # DEC/Intel 21143 and various workalikes #device fxp # Intel EtherExpress PRO/100B (82557, 82558) #device lge # Level 1 LXT1001 gigabit Ethernet #device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet #device nfe # nVidia nForce MCP on-board Ethernet #device nge # NatSemi DP83820 gigabit Ethernet #device nve # nVidia nForce MCP on-board Ethernet Networking #device pcn # AMD Am79C97x PCI 10/100 (precedence over 'le') device re # RealTek 8139C+/8169/8169S/8110S #device rl # RealTek 8129/8139 #device sf # Adaptec AIC-6915 (``Starfire'') #device sis # Silicon Integrated Systems SiS 900/SiS 7016 #device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet #device ste # Sundance ST201 (D-Link DFE-550TX) #device stge # Sundance/Tamarack TC9021 gigabit Ethernet #device ti # Alteon Networks Tigon I/II gigabit Ethernet #device tl # Texas Instruments ThunderLAN #device tx # SMC EtherPower II (83c170 ``EPIC'') #device vge # VIA VT612x gigabit Ethernet #device vr # VIA Rhine, Rhine II #device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') # ISA Ethernet NICs. pccard NICs included. #device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' #device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards #device ex # Intel EtherExpress Pro/10 and Pro/10+ #device ep # Etherlink III based cards #device fe # Fujitsu MB8696x based cards #device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. #device sn # SMC's 9000 series of Ethernet chips #device xe # Xircom pccard Ethernet # Wireless NIC cards #device wlan # 802.11 support #device wlan_wep # 802.11 WEP support #device wlan_ccmp # 802.11 CCMP support #device wlan_tkip # 802.11 TKIP support #device wlan_amrr # AMRR transmit rate control algorithm #device wlan_scan_ap # 802.11 AP mode scanning #device wlan_scan_sta # 802.11 STA mode scanning #device an # Aironet 4500/4800 802.11 wireless NICs. #device ath # Atheros pci/cardbus NIC's #device ath_hal # Atheros HAL (Hardware Access Layer) #device ath_rate_sample # SampleRate tx rate control for ath #device awi # BayStack 660 and others #device ral # Ralink Technology RT2500 wireless NICs. #device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. # Pseudo devices. device loop # Network loopback device random # Entropy device device ether # Ethernet support #device sl # Kernel SLIP #device ppp # Kernel PPP device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) device md # Memory "disks" #device gif # IPv6 and IPv4 tunneling #device faith # IPv6-to-IPv4 relaying (translation) #device firmware # firmware assist module # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # "Human Interface Devices" device ukbd # Keyboard #device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse #device ural # Ralink Technology RT2500USB wireless NICs #device rum # Ralink Technology RT2501USB wireless NICs #device urio # Diamond Rio 500 MP3 player #device uscanner # Scanners # USB Ethernet, requires miibus device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet # FireWire support #device firewire # FireWire bus code #device sbp # SCSI over FireWire (Requires scbus and da) #device fwe # Ethernet over FireWire (non-standard!) #device fwip # IP over FireWire (RFC 2734,3146) #device dcons # Dumb console driver #device dcons_crom # Configuration ROM for dcons device sound device snd_hda device coretemp --------------060903090006020801070202 Content-Type: text/plain; name="dmesg" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dmesg" Copyright (c) 1992-2007 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 7.0-BETA1 #1: Sun Oct 28 10:08:13 ADT 2007 root@amb.kiev.ua:/usr/obj/usr/src/sys/AMB.7.0 Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Core(TM)2 CPU 4300 @ 1.80GHz (1805.49-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x6f2 Stepping = 2 Features=0xbfebfbff Features2=0xe39d AMD Features=0x20100000 AMD Features2=0x1 Cores per package: 2 real memory = 2147024896 (2047 MB) avail memory = 2087424000 (1990 MB) ACPI APIC Table: FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0 irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: on motherboard acpi0: [ITHREAD] acpi0: Power Button (fixed) acpi0: reservation of 0, a0000 (3) failed acpi0: reservation of 100000, 7ff00000 (3) failed Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0 acpi_hpet0: iomem 0xfed00000-0xfed003ff on acpi0 Timecounter "HPET" frequency 14318180 Hz quality 900 cpu0: on acpi0 coretemp0: on cpu0 est0: on cpu0 est: CPU supports Enhanced Speedstep, but is not recognized. est: cpu_vendor GenuineIntel, msr 928092806000928 device_attach: est0 attach returned 6 p4tcc0: on cpu0 cpu1: on acpi0 coretemp1: on cpu1 est1: on cpu1 est: CPU supports Enhanced Speedstep, but is not recognized. est: cpu_vendor GenuineIntel, msr 928092806000928 device_attach: est1 attach returned 6 p4tcc1: on cpu1 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pcib1: irq 16 at device 1.0 on pci0 pci1: on pcib1 nvidia0: mem 0xfd000000-0xfdffffff,0xc0000000-0xcfffffff,0xfc000000-0xfcffffff irq 16 at device 0.0 on pci1 nvidia0: [GIANT-LOCKED] nvidia0: [ITHREAD] uhci0: port 0xe000-0xe01f irq 16 at device 26.0 on pci0 uhci0: [GIANT-LOCKED] uhci0: [ITHREAD] usb0: on uhci0 usb0: USB revision 1.0 uhub0: on usb0 uhub0: 2 ports with 2 removable, self powered uhci1: port 0xe080-0xe09f irq 17 at device 26.1 on pci0 uhci1: [GIANT-LOCKED] uhci1: [ITHREAD] usb1: on uhci1 usb1: USB revision 1.0 uhub1: on usb1 uhub1: 2 ports with 2 removable, self powered ehci0: mem 0xfebff400-0xfebff7ff irq 18 at device 26.7 on pci0 ehci0: [GIANT-LOCKED] ehci0: [ITHREAD] usb2: waiting for BIOS to give up control usb2: EHCI version 1.0 usb2: companion controllers, 2 ports each: usb0 usb1 usb2: on ehci0 usb2: USB revision 2.0 uhub2: on usb2 uhub2: 4 ports with 4 removable, self powered pcm0: mem 0xfebf8000-0xfebfbfff irq 22 at device 27.0 on pci0 pcm0: [ITHREAD] pcib2: irq 16 at device 28.0 on pci0 pci4: on pcib2 pcib3: irq 19 at device 28.3 on pci0 pci3: on pcib3 re0: port 0xb800-0xb8ff mem 0xfe9ff000-0xfe9fffff irq 19 at device 0.0 on pci3 re0: Using 2 MSI messages miibus0: on re0 rgephy0: PHY 1 on miibus0 rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto re0: Ethernet address: 00:18:f3:74:54:de re0: [FILTER] re0: [FILTER] pcib4: irq 16 at device 28.4 on pci0 pci2: on pcib4 atapci0: port 0xac00-0xac07,0xa880-0xa883,0xa800-0xa807,0xa480-0xa483,0xa400-0xa40f mem 0xfe8fe000-0xfe8fffff irq 16 at device 0.0 on pci2 atapci0: [ITHREAD] atapci0: AHCI Version 01.00 controller with 2 ports detected ata2: on atapci0 ata2: [ITHREAD] ata3: on atapci0 ata3: [ITHREAD] ata4: on atapci0 ata4: [ITHREAD] uhci2: port 0xd800-0xd81f irq 23 at device 29.0 on pci0 uhci2: [GIANT-LOCKED] uhci2: [ITHREAD] usb3: on uhci2 usb3: USB revision 1.0 uhub3: on usb3 uhub3: 2 ports with 2 removable, self powered uhci3: port 0xd880-0xd89f irq 19 at device 29.1 on pci0 uhci3: [GIANT-LOCKED] uhci3: [ITHREAD] usb4: on uhci3 usb4: USB revision 1.0 uhub4: on usb4 uhub4: 2 ports with 2 removable, self powered uhci4: port 0xdc00-0xdc1f irq 18 at device 29.2 on pci0 uhci4: [GIANT-LOCKED] uhci4: [ITHREAD] usb5: on uhci4 usb5: USB revision 1.0 uhub5: on usb5 uhub5: 2 ports with 2 removable, self powered ehci1: mem 0xfebff000-0xfebff3ff irq 23 at device 29.7 on pci0 ehci1: [GIANT-LOCKED] ehci1: [ITHREAD] usb6: EHCI version 1.0 usb6: companion controllers, 2 ports each: usb3 usb4 usb5 usb6: on ehci1 usb6: USB revision 2.0 uhub6: on usb6 uhub6: 6 ports with 6 removable, self powered pcib5: at device 30.0 on pci0 pci5: on pcib5 xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xcc00-0xcc7f mem 0xfeaffc00-0xfeaffc7f irq 23 at device 2.0 on pci5 miibus1: on xl0 ukphy0: PHY 24 on miibus1 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto xl0: Ethernet address: 00:01:03:ba:e0:71 xl0: [ITHREAD] isab0: at device 31.0 on pci0 isa0: on isab0 atapci1: port 0xec00-0xec07,0xe880-0xe883,0xe800-0xe807,0xe480-0xe483,0xe400-0xe41f mem 0xfebff800-0xfebfffff irq 19 at device 31.2 on pci0 atapci1: [ITHREAD] atapci1: AHCI Version 01.10 controller with 4 ports detected ata5: on atapci1 ata5: [ITHREAD] ata6: on atapci1 ata6: [ITHREAD] ata7: on atapci1 ata7: port not implemented ata7: [ITHREAD] ata8: on atapci1 ata8: port not implemented ata8: [ITHREAD] ata9: on atapci1 ata9: [ITHREAD] ata10: on atapci1 ata10: [ITHREAD] pci0: at device 31.3 (no driver attached) acpi_button0: on acpi0 sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sio0: type 16550A sio0: [FILTER] fdc0: port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0 fdc0: [FILTER] fd0: <1440-KB 3.5" drive> on fdc0 drive 0 orm0: at iomem 0xd2000-0xd27ff pnpid ORM0000 on isa0 ata0 at port 0x1f0-0x1f7,0x3f6 irq 14 on isa0 ata0: [ITHREAD] ata1 at port 0x170-0x177,0x376 irq 15 on isa0 ata1: [ITHREAD] atkbdc0: at port 0x60,0x64 on isa0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] atkbd0: [ITHREAD] sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio1: configured irq 3 not in bitmap of probed irqs 0 sio1: port may not be enabled vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 uhub7: on uhub4 uhub7: 4 ports with 4 removable, self powered ukbd0: on uhub7 kbd2 at ukbd0 uhid0: on uhub7 ums0: on uhub7 ums0: 5 buttons and Z dir and a TILT dir. uhid1: on uhub7 uhid2: on uhub7 uhid2: unexpected endpoint device_attach: uhid2 attach returned 6 Timecounters tick every 1.000 msec acd0: DVDR at ata4-slave UDMA33 ad10: 305245MB at ata5-master SATA300 ad12: 381554MB at ata6-master SATA150 pcm0: pcm0: acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01 acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01 SMP: AP CPU #1 Launched! cd0 at ata4 bus 0 target 1 lun 0 cd0: Removable CD-ROM SCSI-0 device cd0: 33.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present Trying to mount root from ufs:/dev/ad10s1a WARNING: ZFS is considered to be an experimental feature in FreeBSD. ZFS filesystem version 6 ZFS storage pool version 6 re0: link state changed to UP altq: emulate 256000000Hz cpu clock xl0: promiscuous mode enabled xl0: promiscuous mode disabled xl0: promiscuous mode enabled xl0: promiscuous mode disabled xl0: promiscuous mode enabled xl0: promiscuous mode disabled xl0: promiscuous mode enabled xl0: promiscuous mode disabled --------------060903090006020801070202-- From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 19:14:11 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3C11D16A417 for ; Sun, 28 Oct 2007 19:14:11 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.227]) by mx1.freebsd.org (Postfix) with ESMTP id B776213C481 for ; Sun, 28 Oct 2007 19:14:10 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: by wx-out-0506.google.com with SMTP id i29so1260342wxd for ; Sun, 28 Oct 2007 12:14:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=UEyYTS7iltHfso0Pt12HdPlovb7SJ3uzZBGnhMXB/Pk=; b=PF7OuFR9Szi1rJABNG7+xN2mi1E0vaOft2UrdWK6+p6H0ih21lH40icpvUud9XdOLFhLWRgZ/6rWzwwjBXP07mG4bKzl9lMdfc3j7KpP8ZnwEHZP8y7lIl6nrrheP92vLts3u6BN12TJ2bhFmEXZGeCwCTJakAuW7VtSlqey61Q= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=MwQnhBRVtdVnrbSol0KbuPAuWSEt+qSdUpDyw/+sKMLxuA7EqzxyTiZSDCa/aEFFOncXaeKuUlgn/AMv6ELnQ7xWLfLOEeAwcz09LnBLVBuEiunERUAUIu/zSYwyG99DC99dtAgO3aAPdWyfUIWrmB6rEIu1SpPC+MwpxSw+S+c= Received: by 10.70.87.5 with SMTP id k5mr9195611wxb.1193598849625; Sun, 28 Oct 2007 12:14:09 -0700 (PDT) Received: by 10.70.73.1 with HTTP; Sun, 28 Oct 2007 12:14:09 -0700 (PDT) Message-ID: <9a542da30710281214v79cd332fx69b8806db2895836@mail.gmail.com> Date: Sun, 28 Oct 2007 20:14:09 +0100 From: "=?ISO-8859-1?Q?Ermal_Lu=E7i?=" To: "Andrew Birukov" In-Reply-To: <4724D6EE.6050004@amb.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <4724D6EE.6050004@amb.kiev.ua> Cc: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org Subject: Re: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 19:14:11 -0000 Try using pass out on $ext_if proto tcp from any to any tos 0x10 no keep state queue ssh and it should work as you expect! On 10/28/07, Andrew Birukov wrote: > > pf.conf: > --------------------------------------------------------------- > ext_if="xl0" > > altq on $ext_if priq bandwidth 520Kb queue { ssh, traf } > queue ssh priority 1 > queue traf priority 15 priq(default) > > pass in all > pass out all > > pass out on $ext_if proto tcp from any to any tos 0x10 queue ssh > ----------------------------------------------------------------- > > I connected to remote host by ssh. > In tcpdump i see many packets witch tos 0x10. > > 12:54:46.732928 IP (tos 0x10, ttl 64, id 12486, offset 0, flags [DF], > proto TCP (6), length 52) 10.15.25.2.56587 > 194.0.91.110.22: ., cksum > 0x35d5 (correct), 1919:1919(0) ack 2832 win 8181 8630585 535444648> > 12:54:46.746958 IP (tos 0x10, ttl 64, id 12487, offset 0, flags [DF], > proto TCP (6), length 100) 10.15.25.2.56587 > 194.0.91.110.22: P > 1919:1967(48) ack 2832 win 8195 > 12:54:46.900186 IP (tos 0x10, ttl 64, id 12488, offset 0, flags [DF], > proto TCP (6), length 52) 10.15.25.2.56587 > 194.0.91.110.22: ., cksum > 0x33ec (correct), 1967:1967(0) ack 2944 win 8181 8630746 535444816> > 12:54:46.915079 IP (tos 0x10, ttl 64, id 12489, offset 0, flags [DF], > proto TCP (6), length 100) 10.15.25.2.56587 > 194.0.91.110.22: P > 1967:2015(48) ack 2944 win 8195 > > tcpdump confirms that the outgoing ssh data packets have tos 0x10, but > the majority of the packets are still going to the default "traf" queue. > > queue ssh on xl0 > [ pkts: 0 bytes: 0 dropped pkts: 0 bytes: > 0 ] > [ qlength: 0/ 50 ] > [ measured: 0.0 packets/s, 0 b/s ] > queue traf on xl0 priority 15 priq( default ) > [ pkts: 5059 bytes: 1130390 dropped pkts: 69 bytes: > 80689 ] > [ qlength: 0/ 50 ] > [ measured: 3.9 packets/s, 2.15Kb/s ] > > > This problem is affected 7.0 only. > pf rools witch tos in FreeBSD-6.2 (previous pf version) work properly. > > My configuration: > # uname -a > FreeBSD amb.kiev.ua 7.0-BETA1 FreeBSD 7.0-BETA1 #1: Sun Oct 28 10:08:13 > ADT 2007 root@amb.kiev.ua:/usr/obj/usr/src/sys/AMB.7.0 i386 > > dmesg output and kernel config file are attached to this letter. > > Last time I cvsupped RELENG_7 and reinstall world in this morning. > > -- > Andrew Biriukov > amb@amb.kiev.ua > > > # > # GENERIC -- Generic kernel configuration file for FreeBSD/i386 > # > # For more information on this file, please read the handbook section on > # Kernel Configuration Files: > # > # http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html > # > # The handbook is also available locally in /usr/share/doc/handbook > # if you've installed the doc distribution, otherwise always see the > # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the > # latest information. > # > # An exhaustive list of options and more detailed explanations of the > # device lines is also present in the ../../conf/NOTES and NOTES files. > # If you are in doubt as to the purpose or necessity of a line, check first > # in NOTES. > # > # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.474.2.1 2007/10/11 06:20:26 kensmith Exp $ > > #cpu I486_CPU > #cpu I586_CPU > cpu I686_CPU > ident AMB > > # To statically compile in device wiring instead of /boot/device.hints > #hints "GENERIC.hints" # Default places to look for devices. > > makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols > > options SCHED_4BSD # 4BSD scheduler > #options SCHED_ULE > options PREEMPTION # Enable kernel thread preemption > options INET # InterNETworking > #options INET6 # IPv6 communications protocols > #options SCTP # Stream Control Transmission Protocol > options FFS # Berkeley Fast Filesystem > options SOFTUPDATES # Enable FFS soft updates support > options UFS_ACL # Support for access control lists > options UFS_DIRHASH # Improve performance on big directories > options UFS_GJOURNAL # Enable gjournal-based UFS journaling > options MD_ROOT # MD is a potential root device > #options NFSCLIENT # Network Filesystem Client > #options NFSSERVER # Network Filesystem Server > #options NFS_ROOT # NFS usable as /, requires NFSCLIENT > #options MSDOSFS # MSDOS Filesystem > #options CD9660 # ISO 9660 Filesystem > options PROCFS # Process filesystem (requires PSEUDOFS) > options PSEUDOFS # Pseudo-filesystem framework > options GEOM_PART_GPT # GUID Partition Tables. > options GEOM_LABEL # Provides labelization > options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] > options COMPAT_FREEBSD4 # Compatible with FreeBSD4 > options COMPAT_FREEBSD5 # Compatible with FreeBSD5 > options COMPAT_FREEBSD6 # Compatible with FreeBSD6 > #options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI > options KTRACE # ktrace(1) support > options SYSVSHM # SYSV-style shared memory > options SYSVMSG # SYSV-style message queues > options SYSVSEM # SYSV-style semaphores > options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions > options KBD_INSTALL_CDEV # install a CDEV entry in /dev > options ADAPTIVE_GIANT # Giant mutex is adaptive. > options STOP_NMI # Stop CPUS using NMI instead of IPI > options AUDIT # Security event auditing > > #options IPFIREWALL > #options IPFIREWALL_DEFAULT_TO_ACCEPT > #options IPFIREWALL_FORWARD > #options DUMMYNET > > #options IPFILTER > #options IPFILTER_LOG > > #options ACCEPT_FILTER_DATA > #options ACCEPT_FILTER_HTTP > > options ALTQ > options ALTQ_CBQ > options ALTQ_RED > options ALTQ_RIO > options ALTQ_HFSC > options ALTQ_CDNR > options ALTQ_PRIQ > options ALTQ_NOPCC > options ALTQ_DEBUG > > > #options NETGRAPH > #options NETGRAPH_SPPP > #options NETGRAPH_PPP > #options NETGRAPH_PPPOE > #options NETGRAPH_PPTPGRE > > options DEVICE_POLLING > device atapicam > > # To make an SMP kernel, the next two lines are needed > options SMP # Symmetric MultiProcessor Kernel > device apic # I/O APIC > > # CPU frequency control > device cpufreq > > # Bus support. > #device eisa > device pci > > # Floppy drives > device fdc > > # ATA and ATAPI devices > device ata > device atadisk # ATA disk drives > #device ataraid # ATA RAID drives > device atapicd # ATAPI CDROM drives > device atapifd # ATAPI floppy drives > #device atapist # ATAPI tape drives > options ATA_STATIC_ID # Static device numbering > > # SCSI Controllers > #device ahb # EISA AHA1742 family > #device ahc # AHA2940 and onboard AIC7xxx devices > #options AHC_REG_PRETTY_PRINT # Print register bitfields in debug > # output. Adds ~128k to driver. > #device ahd # AHA39320/29320 and onboard AIC79xx devices > #options AHD_REG_PRETTY_PRINT # Print register bitfields in debug > # output. Adds ~215k to driver. > #device amd # AMD 53C974 (Tekram DC-390(T)) > #device hptiop # Highpoint RocketRaid 3xxx series > #device isp # Qlogic family > #device ispfw # Firmware for QLogic HBAs- normally a module > #device mpt # LSI-Logic MPT-Fusion > #device ncr # NCR/Symbios Logic > #device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') > #device trm # Tekram DC395U/UW/F DC315U adapters > > #device adv # Advansys SCSI adapters > #device adw # Advansys wide SCSI adapters > #device aha # Adaptec 154x SCSI adapters > #device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. > #device bt # Buslogic/Mylex MultiMaster SCSI adapters > > #device ncv # NCR 53C500 > #device nsp # Workbit Ninja SCSI-3 > #device stg # TMC 18C30/18C50 > > # SCSI peripherals > device scbus # SCSI bus (required for SCSI) > #device ch # SCSI media changers > device da # Direct Access (disks) > #device sa # Sequential Access (tape etc) > device cd # CD > device pass # Passthrough device (direct SCSI access) > #device ses # SCSI Environmental Services (and SAF-TE) > > # RAID controllers interfaced to the SCSI subsystem > #device amr # AMI MegaRAID > #device arcmsr # Areca SATA II RAID > #device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID > #device ciss # Compaq Smart RAID 5* > #device dpt # DPT Smartcache III, IV - See NOTES for options > #device hptmv # Highpoint RocketRAID 182x > #device rr232x # Highpoint RocketRAID 232x > #device iir # Intel Integrated RAID > #device ips # IBM (Adaptec) ServeRAID > #device mly # Mylex AcceleRAID/eXtremeRAID > #device twa # 3ware 9000 series PATA/SATA RAID > > # RAID controllers > #device aac # Adaptec FSA RAID > #device aacp # SCSI passthrough for aac (requires CAM) > #device ida # Compaq Smart RAID > #device mfi # LSI MegaRAID SAS > #device mlx # Mylex DAC960 family > #device pst # Promise Supertrak SX6000 > #device twe # 3ware ATA RAID > > # atkbdc0 controls both the keyboard and the PS/2 mouse > device atkbdc # AT keyboard controller > device atkbd # AT keyboard > #device psm # PS/2 mouse > > device kbdmux # keyboard multiplexer > > device vga # VGA video card driver > > device splash # Splash screen and screen saver support > > # syscons is the default console driver, resembling an SCO console > device sc > > device agp # support several AGP chipsets > > # Power management support (see NOTES for more options) > #device apm > # Add suspend/resume support for the i8254. > #device pmtimer > > # PCCARD (PCMCIA) support > # PCMCIA and cardbus bridge support > #device cbb # cardbus (yenta) bridge > #device pccard # PC Card (16-bit) bus > #device cardbus # CardBus (32-bit) bus > > # Serial (COM) ports > device sio # 8250, 16[45]50 based serial ports > device uart # Generic UART driver > > # Parallel port > #device ppc > #device ppbus # Parallel port bus (required) > #device lpt # Printer > #device plip # TCP/IP over parallel > #device ppi # Parallel port interface device > #device vpo # Requires scbus and da > > # If you've got a "dumb" serial or parallel PCI card that is > # supported by the puc(4) glue driver, uncomment the following > # line to enable it (connects to sio, uart and/or ppc drivers): > #device puc > > # PCI Ethernet NICs. > device de # DEC/Intel DC21x4x (``Tulip'') > device em # Intel PRO/1000 adapter Gigabit Ethernet Card > device ixgb # Intel PRO/10GbE Ethernet Card > device le # AMD Am7900 LANCE and Am79C9xx PCnet > device txp # 3Com 3cR990 (``Typhoon'') > device vx # 3Com 3c590, 3c595 (``Vortex'') > > # PCI Ethernet NICs that use the common MII bus controller code. > # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! > device miibus # MII bus support > #device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet > #device bfe # Broadcom BCM440x 10/100 Ethernet > #device bge # Broadcom BCM570xx Gigabit Ethernet > #device dc # DEC/Intel 21143 and various workalikes > #device fxp # Intel EtherExpress PRO/100B (82557, 82558) > #device lge # Level 1 LXT1001 gigabit Ethernet > #device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet > #device nfe # nVidia nForce MCP on-board Ethernet > #device nge # NatSemi DP83820 gigabit Ethernet > #device nve # nVidia nForce MCP on-board Ethernet Networking > #device pcn # AMD Am79C97x PCI 10/100 (precedence over 'le') > device re # RealTek 8139C+/8169/8169S/8110S > #device rl # RealTek 8129/8139 > #device sf # Adaptec AIC-6915 (``Starfire'') > #device sis # Silicon Integrated Systems SiS 900/SiS 7016 > #device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet > #device ste # Sundance ST201 (D-Link DFE-550TX) > #device stge # Sundance/Tamarack TC9021 gigabit Ethernet > #device ti # Alteon Networks Tigon I/II gigabit Ethernet > #device tl # Texas Instruments ThunderLAN > #device tx # SMC EtherPower II (83c170 ``EPIC'') > #device vge # VIA VT612x gigabit Ethernet > #device vr # VIA Rhine, Rhine II > #device wb # Winbond W89C840F > device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') > > # ISA Ethernet NICs. pccard NICs included. > #device cs # Crystal Semiconductor CS89x0 NIC > # 'device ed' requires 'device miibus' > #device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards > #device ex # Intel EtherExpress Pro/10 and Pro/10+ > #device ep # Etherlink III based cards > #device fe # Fujitsu MB8696x based cards > #device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. > #device sn # SMC's 9000 series of Ethernet chips > #device xe # Xircom pccard Ethernet > > # Wireless NIC cards > #device wlan # 802.11 support > #device wlan_wep # 802.11 WEP support > #device wlan_ccmp # 802.11 CCMP support > #device wlan_tkip # 802.11 TKIP support > #device wlan_amrr # AMRR transmit rate control algorithm > #device wlan_scan_ap # 802.11 AP mode scanning > #device wlan_scan_sta # 802.11 STA mode scanning > #device an # Aironet 4500/4800 802.11 wireless NICs. > #device ath # Atheros pci/cardbus NIC's > #device ath_hal # Atheros HAL (Hardware Access Layer) > #device ath_rate_sample # SampleRate tx rate control for ath > #device awi # BayStack 660 and others > #device ral # Ralink Technology RT2500 wireless NICs. > #device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. > #device wl # Older non 802.11 Wavelan wireless NIC. > > # Pseudo devices. > device loop # Network loopback > device random # Entropy device > device ether # Ethernet support > #device sl # Kernel SLIP > #device ppp # Kernel PPP > device tun # Packet tunnel. > device pty # Pseudo-ttys (telnet etc) > device md # Memory "disks" > #device gif # IPv6 and IPv4 tunneling > #device faith # IPv6-to-IPv4 relaying (translation) > #device firmware # firmware assist module > > # The `bpf' device enables the Berkeley Packet Filter. > # Be aware of the administrative consequences of enabling this! > # Note that 'bpf' is required for DHCP. > device bpf # Berkeley packet filter > > # USB support > device uhci # UHCI PCI->USB interface > device ohci # OHCI PCI->USB interface > device ehci # EHCI PCI->USB interface (USB 2.0) > device usb # USB Bus (required) > #device udbp # USB Double Bulk Pipe devices > device ugen # Generic > device uhid # "Human Interface Devices" > device ukbd # Keyboard > #device ulpt # Printer > device umass # Disks/Mass storage - Requires scbus and da > device ums # Mouse > #device ural # Ralink Technology RT2500USB wireless NICs > #device rum # Ralink Technology RT2501USB wireless NICs > #device urio # Diamond Rio 500 MP3 player > #device uscanner # Scanners > # USB Ethernet, requires miibus > device aue # ADMtek USB Ethernet > device axe # ASIX Electronics USB Ethernet > device cdce # Generic USB over Ethernet > device cue # CATC USB Ethernet > device kue # Kawasaki LSI USB Ethernet > device rue # RealTek RTL8150 USB Ethernet > > # FireWire support > #device firewire # FireWire bus code > #device sbp # SCSI over FireWire (Requires scbus and da) > #device fwe # Ethernet over FireWire (non-standard!) > #device fwip # IP over FireWire (RFC 2734,3146) > #device dcons # Dumb console driver > #device dcons_crom # Configuration ROM for dcons > > device sound > device snd_hda > device coretemp > > > Copyright (c) 1992-2007 The FreeBSD Project. > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 > The Regents of the University of California. All rights reserved. > FreeBSD is a registered trademark of The FreeBSD Foundation. > FreeBSD 7.0-BETA1 #1: Sun Oct 28 10:08:13 ADT 2007 > root@amb.kiev.ua:/usr/obj/usr/src/sys/AMB.7.0 > Timecounter "i8254" frequency 1193182 Hz quality 0 > CPU: Intel(R) Core(TM)2 CPU 4300 @ 1.80GHz (1805.49-MHz 686-class CPU) > Origin = "GenuineIntel" Id = 0x6f2 Stepping = 2 > Features=0xbfebfbff > Features2=0xe39d > AMD Features=0x20100000 > AMD Features2=0x1 > Cores per package: 2 > real memory = 2147024896 (2047 MB) > avail memory = 2087424000 (1990 MB) > ACPI APIC Table: > FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs > cpu0 (BSP): APIC ID: 0 > cpu1 (AP): APIC ID: 1 > ioapic0 irqs 0-23 on motherboard > kbd1 at kbdmux0 > acpi0: on motherboard > acpi0: [ITHREAD] > acpi0: Power Button (fixed) > acpi0: reservation of 0, a0000 (3) failed > acpi0: reservation of 100000, 7ff00000 (3) failed > Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 > acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0 > acpi_hpet0: iomem 0xfed00000-0xfed003ff on acpi0 > Timecounter "HPET" frequency 14318180 Hz quality 900 > cpu0: on acpi0 > coretemp0: on cpu0 > est0: on cpu0 > est: CPU supports Enhanced Speedstep, but is not recognized. > est: cpu_vendor GenuineIntel, msr 928092806000928 > device_attach: est0 attach returned 6 > p4tcc0: on cpu0 > cpu1: on acpi0 > coretemp1: on cpu1 > est1: on cpu1 > est: CPU supports Enhanced Speedstep, but is not recognized. > est: cpu_vendor GenuineIntel, msr 928092806000928 > device_attach: est1 attach returned 6 > p4tcc1: on cpu1 > pcib0: port 0xcf8-0xcff on acpi0 > pci0: on pcib0 > pcib1: irq 16 at device 1.0 on pci0 > pci1: on pcib1 > nvidia0: mem 0xfd000000-0xfdffffff,0xc0000000-0xcfffffff,0xfc000000-0xfcffffff irq 16 at device 0.0 on pci1 > nvidia0: [GIANT-LOCKED] > nvidia0: [ITHREAD] > uhci0: port 0xe000-0xe01f irq 16 at device 26.0 on pci0 > uhci0: [GIANT-LOCKED] > uhci0: [ITHREAD] > usb0: on uhci0 > usb0: USB revision 1.0 > uhub0: on usb0 > uhub0: 2 ports with 2 removable, self powered > uhci1: port 0xe080-0xe09f irq 17 at device 26.1 on pci0 > uhci1: [GIANT-LOCKED] > uhci1: [ITHREAD] > usb1: on uhci1 > usb1: USB revision 1.0 > uhub1: on usb1 > uhub1: 2 ports with 2 removable, self powered > ehci0: mem 0xfebff400-0xfebff7ff irq 18 at device 26.7 on pci0 > ehci0: [GIANT-LOCKED] > ehci0: [ITHREAD] > usb2: waiting for BIOS to give up control > usb2: EHCI version 1.0 > usb2: companion controllers, 2 ports each: usb0 usb1 > usb2: on ehci0 > usb2: USB revision 2.0 > uhub2: on usb2 > uhub2: 4 ports with 4 removable, self powered > pcm0: mem 0xfebf8000-0xfebfbfff irq 22 at device 27.0 on pci0 > pcm0: [ITHREAD] > pcib2: irq 16 at device 28.0 on pci0 > pci4: on pcib2 > pcib3: irq 19 at device 28.3 on pci0 > pci3: on pcib3 > re0: port 0xb800-0xb8ff mem 0xfe9ff000-0xfe9fffff irq 19 at device 0.0 on pci3 > re0: Using 2 MSI messages > miibus0: on re0 > rgephy0: PHY 1 on miibus0 > rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto > re0: Ethernet address: 00:18:f3:74:54:de > re0: [FILTER] > re0: [FILTER] > pcib4: irq 16 at device 28.4 on pci0 > pci2: on pcib4 > atapci0: port 0xac00-0xac07,0xa880-0xa883,0xa800-0xa807,0xa480-0xa483,0xa400-0xa40f mem 0xfe8fe000-0xfe8fffff irq 16 at device 0.0 on pci2 > atapci0: [ITHREAD] > atapci0: AHCI Version 01.00 controller with 2 ports detected > ata2: on atapci0 > ata2: [ITHREAD] > ata3: on atapci0 > ata3: [ITHREAD] > ata4: on atapci0 > ata4: [ITHREAD] > uhci2: port 0xd800-0xd81f irq 23 at device 29.0 on pci0 > uhci2: [GIANT-LOCKED] > uhci2: [ITHREAD] > usb3: on uhci2 > usb3: USB revision 1.0 > uhub3: on usb3 > uhub3: 2 ports with 2 removable, self powered > uhci3: port 0xd880-0xd89f irq 19 at device 29.1 on pci0 > uhci3: [GIANT-LOCKED] > uhci3: [ITHREAD] > usb4: on uhci3 > usb4: USB revision 1.0 > uhub4: on usb4 > uhub4: 2 ports with 2 removable, self powered > uhci4: port 0xdc00-0xdc1f irq 18 at device 29.2 on pci0 > uhci4: [GIANT-LOCKED] > uhci4: [ITHREAD] > usb5: on uhci4 > usb5: USB revision 1.0 > uhub5: on usb5 > uhub5: 2 ports with 2 removable, self powered > ehci1: mem 0xfebff000-0xfebff3ff irq 23 at device 29.7 on pci0 > ehci1: [GIANT-LOCKED] > ehci1: [ITHREAD] > usb6: EHCI version 1.0 > usb6: companion controllers, 2 ports each: usb3 usb4 usb5 > usb6: on ehci1 > usb6: USB revision 2.0 > uhub6: on usb6 > uhub6: 6 ports with 6 removable, self powered > pcib5: at device 30.0 on pci0 > pci5: on pcib5 > xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xcc00-0xcc7f mem 0xfeaffc00-0xfeaffc7f irq 23 at device 2.0 on pci5 > miibus1: on xl0 > ukphy0: PHY 24 on miibus1 > ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto > xl0: Ethernet address: 00:01:03:ba:e0:71 > xl0: [ITHREAD] > isab0: at device 31.0 on pci0 > isa0: on isab0 > atapci1: port 0xec00-0xec07,0xe880-0xe883,0xe800-0xe807,0xe480-0xe483,0xe400-0xe41f mem 0xfebff800-0xfebfffff irq 19 at device 31.2 on pci0 > atapci1: [ITHREAD] > atapci1: AHCI Version 01.10 controller with 4 ports detected > ata5: on atapci1 > ata5: [ITHREAD] > ata6: on atapci1 > ata6: [ITHREAD] > ata7: on atapci1 > ata7: port not implemented > ata7: [ITHREAD] > ata8: on atapci1 > ata8: port not implemented > ata8: [ITHREAD] > ata9: on atapci1 > ata9: [ITHREAD] > ata10: on atapci1 > ata10: [ITHREAD] > pci0: at device 31.3 (no driver attached) > acpi_button0: on acpi0 > sio0: configured irq 4 not in bitmap of probed irqs 0 > sio0: port may not be enabled > sio0: configured irq 4 not in bitmap of probed irqs 0 > sio0: port may not be enabled > sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 > sio0: type 16550A > sio0: [FILTER] > fdc0: port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0 > fdc0: [FILTER] > fd0: <1440-KB 3.5" drive> on fdc0 drive 0 > orm0: at iomem 0xd2000-0xd27ff pnpid ORM0000 on isa0 > ata0 at port 0x1f0-0x1f7,0x3f6 irq 14 on isa0 > ata0: [ITHREAD] > ata1 at port 0x170-0x177,0x376 irq 15 on isa0 > ata1: [ITHREAD] > atkbdc0: at port 0x60,0x64 on isa0 > atkbd0: irq 1 on atkbdc0 > kbd0 at atkbd0 > atkbd0: [GIANT-LOCKED] > atkbd0: [ITHREAD] > sc0: at flags 0x100 on isa0 > sc0: VGA <16 virtual consoles, flags=0x300> > sio1: configured irq 3 not in bitmap of probed irqs 0 > sio1: port may not be enabled > vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 > uhub7: on uhub4 > uhub7: 4 ports with 4 removable, self powered > ukbd0: on uhub7 > kbd2 at ukbd0 > uhid0: on uhub7 > ums0: on uhub7 > ums0: 5 buttons and Z dir and a TILT dir. > uhid1: on uhub7 > uhid2: on uhub7 > uhid2: unexpected endpoint > device_attach: uhid2 attach returned 6 > Timecounters tick every 1.000 msec > acd0: DVDR at ata4-slave UDMA33 > ad10: 305245MB at ata5-master SATA300 > ad12: 381554MB at ata6-master SATA150 > pcm0: > pcm0: > acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01 > acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01 > SMP: AP CPU #1 Launched! > cd0 at ata4 bus 0 target 1 lun 0 > cd0: Removable CD-ROM SCSI-0 device > cd0: 33.000MB/s transfers > cd0: Attempt to query device size failed: NOT READY, Medium not present > Trying to mount root from ufs:/dev/ad10s1a > WARNING: ZFS is considered to be an experimental feature in FreeBSD. > ZFS filesystem version 6 > ZFS storage pool version 6 > re0: link state changed to UP > altq: emulate 256000000Hz cpu clock > xl0: promiscuous mode enabled > xl0: promiscuous mode disabled > xl0: promiscuous mode enabled > xl0: promiscuous mode disabled > xl0: promiscuous mode enabled > xl0: promiscuous mode disabled > xl0: promiscuous mode enabled > xl0: promiscuous mode disabled > > > _______________________________________________ > freebsd-pf@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-pf > To unsubscribe, send any mail to "freebsd-pf-unsubscribe@freebsd.org" > > From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 19:36:25 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 05E7D16A41A for ; Sun, 28 Oct 2007 19:36:25 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from simmts3-srv.bellnexxia.net (simmts3-srv.bellnexxia.net [206.47.199.12]) by mx1.freebsd.org (Postfix) with ESMTP id 8A7DA13C4B3 for ; Sun, 28 Oct 2007 19:36:24 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from amb.homeunix.org ([156.34.188.4]) by simmts7-srv.bellnexxia.net (InterMail vM.5.01.06.13 201-253-122-130-113-20050324) with ESMTP id <20071028193456.SYJP28304.simmts7-srv.bellnexxia.net@amb.homeunix.org>; Sun, 28 Oct 2007 15:34:56 -0400 Received: from server.amb.kiev.ua ([10.15.25.2] helo=amb.kiev.ua) by amb.homeunix.org with esmtp (Exim 4.68 (FreeBSD)) (envelope-from ) id 1ImDuS-0002BC-Fa; Sun, 28 Oct 2007 16:34:56 -0300 Message-ID: <4724E460.1050309@amb.kiev.ua> Date: Sun, 28 Oct 2007 16:34:56 -0300 From: Andrew Birukov User-Agent: Thunderbird 2.0.0.6 (X11/20070803) MIME-Version: 1.0 To: =?UTF-8?B?RXJtYWwgTHXDp2k=?= References: <4724D6EE.6050004@amb.kiev.ua> <9a542da30710281214v79cd332fx69b8806db2895836@mail.gmail.com> In-Reply-To: <9a542da30710281214v79cd332fx69b8806db2895836@mail.gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 10.15.25.2 X-SA-Exim-Rcpt-To: ermal.luci@gmail.com, freebsd-stable@freebsd.org, freebsd-pf@freebsd.org X-SA-Exim-Mail-From: amb@amb.kiev.ua X-SA-Exim-Scanned: No (on amb.homeunix.org); SAEximRunCond expanded to false Cc: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org Subject: Re: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 19:36:25 -0000 Ermal Luçi wrote: > Try using > > pass out on $ext_if proto tcp from any to any tos 0x10 no keep state queue ssh > > and it should work as you expect! pf.conf ------------------------------------------------------------------- ext_if="xl0" altq on $ext_if priq bandwidth 520Kb queue { ssh, traf } queue ssh priority 1 queue traf priority 15 priq(default) pass in all pass out all pass out on $ext_if proto tcp from any to any tos 0x10 no keep state queue ssh ------------------------------------------------------------------- # /etc/rc.d/pf restart Disabling pf. pf disabled Enabling pf. /etc/pf.conf:10: syntax error pfctl: Syntax error in config file: pf rules not loaded pf enabled Unfortunately syntax error... -- Andrew Biriukov amb@amb.kiev.ua From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 20:11:11 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30C7916A421 for ; Sun, 28 Oct 2007 20:11:11 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.226]) by mx1.freebsd.org (Postfix) with ESMTP id 920AF13C4B3 for ; Sun, 28 Oct 2007 20:11:10 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: by wx-out-0506.google.com with SMTP id i29so1269158wxd for ; Sun, 28 Oct 2007 13:11:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=AbTtnX5JVZVnyBMJW2M1/DyICgsp9zlK9/c4BtGpvjY=; b=JVSg9msH3U/gt9vwxpkSX2bmoOlkSRdhXoSmlJJytuMESHsZJdGxLmFAlkwtwaqlrkFL+mqovyii7tfMCH5jqveWxPNCpdDv6Qk/l8L4zL1VoF3wfNWr7VTSaB2pLTN7EbvC7LFUVWOVaHtwRWkKdt8nuo7SbuoTeVJPl/VgGQo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=muaFTiqZ9MMRogSV/351lX4CbTOg+CjrtCA7oideQKUQ/H3paHB1143G56kYvARrTHiIxuxpbet3VYKpzadoDdc5ljOnOsUVF8XS6Ppwe9KDWktIO45MiP9st0Jp7nO6wLoScuXfw4GA6bVzbh3SNUReMD3qv20fWaLWZpzoXTk= Received: by 10.70.66.18 with SMTP id o18mr9225453wxa.1193602269655; Sun, 28 Oct 2007 13:11:09 -0700 (PDT) Received: by 10.70.73.1 with HTTP; Sun, 28 Oct 2007 13:11:09 -0700 (PDT) Message-ID: <9a542da30710281311n7f8a6f29me02da90941d96ae5@mail.gmail.com> Date: Sun, 28 Oct 2007 21:11:09 +0100 From: "=?ISO-8859-1?Q?Ermal_Lu=E7i?=" To: freebsd-pf@freebsd.org, freebsd-net@freebsd.org In-Reply-To: <9a542da30710281013q642b5aa8k33c7836ee064242e@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_98_11251979.1193602269616" References: <9a542da30710161409o4732a77bybdf4ba35d7491bb@mail.gmail.com> <200710171043.08126.max@love2party.net> <9a542da30710211232v4d3c930fg8ea778a12f3f16cb@mail.gmail.com> <9a542da30710280617t11e668e2o4d122998192f71c@mail.gmail.com> <20071028095802.A61999@xorpc.icir.org> <9a542da30710281013q642b5aa8k33c7836ee064242e@mail.gmail.com> Cc: Subject: Fwd: [PATCH] PF+dummynet X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 20:11:11 -0000 ------=_Part_98_11251979.1193602269616 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Ok thanks to remko@ for hosting it! You can find it here: http://people.freebsd.org/~remko/patches/dummynet_pf.tar.gz Please test and give feedback. > > > It gives full dummynet support in pf.conf syntax and removes dummynet > > depndency to ipfw. > > > > You can configure a pipe/queue using the same ipfw syntax the only > > difference is that i call those 'dnpipe'/'dnqueue' respectivley. > > GRED/RED isn't currently finished but that is a pfctl addition so not > > difficult. > > > > For dummynet i preserve ipfw style statistics so tools of ipfw can be > > used here to. > > > > Since this is PF i preserved ALTQ priotitizing of ACK, meaning on ALTQ you do > > pass in quick proto tcp from any to any flags S/SA queue(pri, que) > > > > You can do the same with dummynet queues only, since for pipes it > > doesn't make much sense since they simulate a link. So yuo can do > > > > dnpipe 10 bandwidth 100Kbit > > dnqueue 10 dnpipe 10 queue 100 > > dnqueue 20 dnpipe 10 queue 20 > > > > pass in quick proto tcp from any to any flags S/SA dnqueue(10, 20) > > > > > > Please test and give feedback. > > > _______________________________________________ > > freebsd-net@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-net > > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > ------=_Part_98_11251979.1193602269616 Content-Type: text/x-patch; name=test_dummynet3.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_f8bvlik4 Content-Disposition: attachment; filename=test_dummynet3.diff SW5kZXg6IGNvbnRyaWIvcGYvcGZjdGwvcGFyc2UueQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9t ZS9lcmkvcmVwby9jb250cmliL3BmL3BmY3RsL3BhcnNlLnksdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMS4xLjEKZGlmZiAtdSAtcjEuMS4xLjEgcGFyc2UueQotLS0gY29udHJpYi9wZi9wZmN0bC9w YXJzZS55CTIxIE9jdCAyMDA3IDEzOjUzOjE1IC0wMDAwCTEuMS4xLjEKKysrIGNvbnRyaWIvcGYv cGZjdGwvcGFyc2UueQkyMSBPY3QgMjAwNyAxOTowMzo0OSAtMDAwMApAQCAtNDUsNiArNDUsOSBA QAogI2luY2x1ZGUgPGFsdHEvYWx0cV9wcmlxLmg+CiAjaW5jbHVkZSA8YWx0cS9hbHRxX2hmc2Mu aD4KIAorI2luY2x1ZGUgPG5ldGluZXQvaXBfZncuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2lwX2R1 bW15bmV0Lmg+CisKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2lu Y2x1ZGUgPG5ldGRiLmg+CkBAIC0yMDYsNiArMjA5LDkgQEAKIAljaGFyCQkJKnRhZzsKIAljaGFy CQkJKm1hdGNoX3RhZzsKIAl1X2ludDhfdAkJIG1hdGNoX3RhZ19ub3Q7CisJdV9pbnQzMl90CQkg ZG5waXBlOworCXVfaW50MzJfdAkJIHBkbnBpcGU7CisJdV9pbnQzMl90CQkgZG50eXBlOwogCWlu dAkJCSBydGFibGVpZDsKIH0gZmlsdGVyX29wdHM7CiAKQEAgLTI2MSw2ICsyNjcsOCBAQAogCiAK IHN0cnVjdCBub2RlX2hmc2Nfb3B0cwloZnNjX29wdHM7CitzdHJ1Y3QgZG5fcGlwZQkJZG5waXBl X29wdHM7CitzdHJ1Y3QgZG5fZmxvd19zZXQJZG5xdWV1ZV9vcHRzOwogCiBpbnQJeXllcnJvcihj b25zdCBjaGFyICosIC4uLik7CiBpbnQJZGlzYWxsb3dfdGFibGUoc3RydWN0IG5vZGVfaG9zdCAq LCBjb25zdCBjaGFyICopOwpAQCAtMzk1LDYgKzQwMyw4IEBACiAJCXN0cnVjdCBmaWx0ZXJfb3B0 cwkgZmlsdGVyX29wdHM7CiAJCXN0cnVjdCBhbnRpc3Bvb2Zfb3B0cwkgYW50aXNwb29mX29wdHM7 CiAJCXN0cnVjdCBxdWV1ZV9vcHRzCSBxdWV1ZV9vcHRzOworCQlzdHJ1Y3QgZG5fcGlwZQkJIGRu cGlwZV9vcHRzOworCQlzdHJ1Y3QgZG5fZmxvd19zZXQJIGRucXVldWVfb3B0czsKIAkJc3RydWN0 IHNjcnViX29wdHMJIHNjcnViX29wdHM7CiAJCXN0cnVjdCB0YWJsZV9vcHRzCSB0YWJsZV9vcHRz OwogCQlzdHJ1Y3QgcG9vbF9vcHRzCSBwb29sX29wdHM7CkBAIC00MjEsNiArNDMxLDggQEAKICV0 b2tlbglCSVRNQVNLIFJBTkRPTSBTT1VSQ0VIQVNIIFJPVU5EUk9CSU4gU1RBVElDUE9SVCBQUk9C QUJJTElUWQogJXRva2VuCUFMVFEgQ0JRIFBSSVEgSEZTQyBCQU5EV0lEVEggVEJSU0laRSBMSU5L U0hBUkUgUkVBTFRJTUUgVVBQRVJMSU1JVAogJXRva2VuCVFVRVVFIFBSSU9SSVRZIFFMSU1JVCBS VEFCTEUKKyV0b2tlbglETlBJUEUgRE5RVUVVRSBHUkVEIFJFRCBXRUlHSFQgTUFTSyBERUxBWSBC VUNLRVRTIFBMUgorJXRva2VuCVNSQ0lQIERTVElQIFNSQ1BPUlQgRFNUUE9SVCBTUkNJUDYgRFNU SVA2IEZMT1dJRCBOT0VSUk9SCiAldG9rZW4JTE9BRCBSVUxFU0VUX09QVElNSVpBVElPTgogJXRv a2VuCVNUSUNLWUFERFJFU1MgTUFYU1JDU1RBVEVTIE1BWFNSQ05PREVTIFNPVVJDRVRSQUNLIEdM T0JBTCBSVUxFCiAldG9rZW4JTUFYU1JDQ09OTiBNQVhTUkNDT05OUkFURSBPVkVSTE9BRCBGTFVT SApAQCAtNDUxLDcgKzQ2Myw3IEBACiAldHlwZQk8di5naWQ+CQkJZ2lkcyBnaWRfbGlzdCBnaWRf aXRlbQogJXR5cGUJPHYucm91dGU+CQlyb3V0ZQogJXR5cGUJPHYucmVkaXJlY3Rpb24+CQlyZWRp cmVjdGlvbiByZWRpcnBvb2wKLSV0eXBlCTx2LnN0cmluZz4JCWxhYmVsIHN0cmluZyB0YWcgYW5j aG9ybmFtZQorJXR5cGUJPHYuc3RyaW5nPgkJbGFiZWwgc3RyaW5nIHRhZyBhbmNob3JuYW1lIAog JXR5cGUJPHYua2VlcF9zdGF0ZT4JCWtlZXAKICV0eXBlCTx2LnN0YXRlX29wdD4JCXN0YXRlX29w dF9zcGVjIHN0YXRlX29wdF9saXN0IHN0YXRlX29wdF9pdGVtCiAldHlwZQk8di5sb2dxdWljaz4J CWxvZ3F1aWNrIHF1aWNrIGxvZyBsb2dvcHRzIGxvZ29wdApAQCAtNDYyLDYgKzQ3NCw4IEBACiAl dHlwZQk8di5udW1iZXI+CQljYnFmbGFnc19saXN0IGNicWZsYWdzX2l0ZW0KICV0eXBlCTx2Lm51 bWJlcj4JCXByaXFmbGFnc19saXN0IHByaXFmbGFnc19pdGVtCiAldHlwZQk8di5oZnNjX29wdHM+ CQloZnNjb3B0c19saXN0IGhmc2NvcHRzX2l0ZW0gaGZzY19vcHRzCisldHlwZQk8di5kbnBpcGVf b3B0cz4JCWRucGlwZV9vcHRzCisldHlwZQk8di5kbnF1ZXVlX29wdHM+CWRucXVldWVfb3B0cyBt YXNrX3NwZWNpZmllcgogJXR5cGUJPHYucXVldWVfYndzcGVjPgliYW5kd2lkdGgKICV0eXBlCTx2 LmZpbHRlcl9vcHRzPgkJZmlsdGVyX29wdHMgZmlsdGVyX29wdCBmaWx0ZXJfb3B0c19sCiAldHlw ZQk8di5hbnRpc3Bvb2Zfb3B0cz4JYW50aXNwb29mX29wdHMgYW50aXNwb29mX29wdCBhbnRpc3Bv b2Zfb3B0c19sCkBAIC00ODMsNiArNDk3LDggQEAKIAkJfCBydWxlc2V0IGFuY2hvcnJ1bGUgJ1xu JwogCQl8IHJ1bGVzZXQgbG9hZHJ1bGUgJ1xuJwogCQl8IHJ1bGVzZXQgYWx0cWlmICdcbicKKwkJ fCBydWxlc2V0IGR1bW15bmV0aWYgJ1xuJworCQl8IHJ1bGVzZXQgZG5xdWV1ZXNwZWMgJ1xuJwog CQl8IHJ1bGVzZXQgcXVldWVzcGVjICdcbicKIAkJfCBydWxlc2V0IHZhcnNldCAnXG4nCiAJCXwg cnVsZXNldCBhbnRpc3Bvb2YgJ1xuJwpAQCAtMTY2Nyw2ICsxNjgzLDIyMiBAQAogCQl9CiAJCTsK IAorZHVtbXluZXRpZiAgICAgIDogRE5QSVBFIG51bWJlciBkbnBpcGVfb3B0cyBkbnF1ZXVlX29w dHMgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkbl9waXBlIHA7CisK KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGVja19ydWxlc3RhdGUoUEZDVExfU1RBVEVf UVVFVUUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworCisgICAg ICAgICAgICAgICAgICAgICAgICBtZW1zZXQoJnAsIDAsIHNpemVvZihwKSk7CisKKyAgICAgICAg ICAgICAgICAgICAgICAgIHAuYmFuZHdpZHRoID0gJDMuYmFuZHdpZHRoOworICAgICAgICAgICAg ICAgICAgICAgICAgcC5kZWxheSA9ICQzLmRlbGF5OworCQkJcC5waXBlX25yID0gJDI7CisgICAg ICAgICAgICAgICAgICAgICAgICBtZW1jcHkoJnAuZnMsICYkNCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKHAuZnMpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg aWYocGZjdGxfYWRkX2R1bW15bmV0KHBmLCAmcCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFlZRVJST1I7CisgICAgICAgICAgICAgICAgfQorZG5xdWV1ZXNwZWMgICAgIDogRE5R VUVVRSBudW1iZXIgRE5QSVBFIG51bWJlciBkbnF1ZXVlX29wdHMgeworCQkgICAgICAgIHN0cnVj dCBkbl9waXBlIHA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGVja19ydWxlc3Rh dGUoUEZDVExfU1RBVEVfUVVFVUUpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WVlFUlJPUjsKKworICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZwLCAwLCBzaXplb2Yo cCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJDQgPT0gMCkgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB5eWVycm9yKCJwaXBlIG11c3QgYmUgc3BlY2lmaWVkIGZv ciBxdWV1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAg ICAgICAgICAgICAgICAgICAgICAgfQorCQkJaWYgKCQyID09IDApIHsKKwkJCQl5eWVycm9yKCJx dWV1ZSBudW1iZXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCIpOworCQkJCVlZRVJST1I7CisJCQl9 CisJCQkJCQorICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCZwLmZzLCAmJDUsIHNpemVv ZihwLmZzKSk7CisJCQlwLmZzLmZzX25yID0gJDI7CisgICAgICAgICAgICAgICAgICAgICAgICBw LmZzLnBhcmVudF9uciA9ICQ0OworCQkJcC5waXBlX25yID0gMDsKKworICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKHBmY3RsX2FkZF9kdW1teW5ldChwZiwgJnApKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoImVycm9ycyBpbiBkbnF1ZXVlIGRlZmluaXRpb24i KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlFUlJPUjsKKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCitk bnBpcGVfb3B0cyAgICAgOiAgICAgICAvKiBYWFg6IGZpeCB0aGlzICovIHsKKwkgICAgICAgICAg ICAgICAgYnplcm8oJmRucGlwZV9vcHRzLCBzaXplb2YgZG5waXBlX29wdHMpOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGRucGlwZV9vcHRzX2wKKyAgICAgICAg ICAgICAgICAgICAgICAgCXsgJCQgPSBkbnBpcGVfb3B0czsgfQorICAgICAgICAgICAgICAgIHwJ LyogZW1wdHkgKi8geworICAgICAgICAgICAgICAgICAgICAgICAgYnplcm8oJmRucGlwZV9vcHRz LCBzaXplb2YgZG5waXBlX29wdHMpOworICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBkbnBp cGVfb3B0czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCitkbnBpcGVf b3B0c19sICAgOiBkbnBpcGVfb3B0c19sIGRucGlwZV9vcHQKKwkgICAgICAgIHwgZG5waXBlX29w dAorICAgICAgICAgICAgICAgIDsKKworZG5waXBlX29wdCAgICAgIDogQkFORFdJRFRIIGJhbmR3 aWR0aCAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRucGlwZV9vcHRzLmJhbmR3aWR0aCA9 ICQyLmJ3X2Fic29sdXRlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8IERF TEFZIG51bWJlciAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJDIgPiAw ICYmICQyIDwgMTAwMDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRucGlwZV9v cHRzLmRlbGF5ID0gJDI7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeXllcnJvcigiZGVsYXkgbmVlZHMgYXJndW1lbnQgMC4u MTAwMDBtcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICA7CisKK2RucXVldWVfb3B0cyAgICA6IC8qIFhYWDogZml4IHRoaXMgKi8geworCQkgICAgICAg IGJ6ZXJvKCZkbnF1ZXVlX29wdHMsIHNpemVvZiBkbnF1ZXVlX29wdHMpOworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZG5xdWV1ZV9vcHRzX2wKKyAgICAgICAgICAgICAg ICAgICAgICAgIHsgJCQgPSBkbnF1ZXVlX29wdHM7IH0KKyAgICAgICAgICAgICAgICB8IC8qIGVt cHR5ICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ6ZXJvKCZxdWV1ZV9vcHRzLCBzaXpl b2YgcXVldWVfb3B0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGRucXVldWVfb3B0 czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCitkbnF1ZXVlX29wdHNf bCAgOiBkbnF1ZXVlX29wdHNfbCBkbnF1ZXVlX29wdAorCQl8IGRucXVldWVfb3B0CisgICAgICAg ICAgICAgICAgOworCitkbnF1ZXVlX29wdCAgICAgOiBCVUNLRVRTIG51bWJlciAgICAgICB7CisJ CSAgICAgICAgaWYgKCQyIDwgMTYgfHwgJDIgPiA2NTUzNSkgeworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB5eWVycm9yKCJidWNrZXRzIG91dCBvZiByYW5nZTogWzE2LTY1NTM1XSIp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLypkbnF1ZXVlX29wdHMubWFy a2VyIHw9IEROX0JVQ0tFVFM7Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRucXVldWVfb3B0 cy5ycV9zaXplID0gJDI7CisgICAgICAgICAgICAgICAgfQorCQl8IFdFSUdIVCBudW1iZXIJCQkg IHsKKwkJCWlmICgkMiA8IDAgfHwgJDIgPiAxMDApICB7IC8qIFswLi4xMDBdIGlzIGFsbG93ZWQg Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXllcnJvcigid2VpZ2h0IG11c3Qg YmUgaW4gWzAuLjEwMF0gcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WVlFUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgIAorCQkJZG5xdWV1ZV9vcHRzLndlaWdodCA9ICQyOworCQl9CisgICAgICAgICAgICAgICAg fCBRVUVVRSBTVFJJTkcJCSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgICBicHM7 CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICAgICpjcDsKKworCQkJYnBzID0gc3RydG9k KCQyLCAmY3ApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJwcyA8IDE2IHx8IGJwcyA+ IDY1NTM1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoInFsaW1p dCBvdXQgb2YgcmFuZ2UgWzE2Li42NTUzNV0iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWVlFUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKGNwICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCFzdHJjbXAoY3AsICJCIikpCisJCQkJCWRucXVldWVfb3B0cy5mbGFnc19mcyB8 PSAKKwkJCQkJCUROX1FTSVpFX0lTX0JZVEVTOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbHNlIGlmICghc3RyY21wKGNwLCAiS0IiKSkgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJwcyAqPSAxMDI0OworCQkJCQlkbnF1ZXVlX29wdHMuZmxhZ3Nf ZnMgfD0gCisJCQkJCQlETl9RU0laRV9JU19CWVRFUzsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIGlmICgqY3AgIT0gJ1wwJykgeworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoInVua25vd24gdW5pdCAlcyIsIGNwKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKCQyKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZWUVSUk9SOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CisJCQl9IGVsc2UgCisJCQkJZG5xdWV1ZV9vcHRzLmZsYWdzX2ZzICY9 IAorCQkJCQl+RE5fUVNJWkVfSVNfQllURVM7CisgICAgICAgICAgICAgICAgICAgICAgICBmcmVl KCQyKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgZG5xdWV1ZV9vcHRzLnFzaXplID0gKHVf aW50MzJfdClicHM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHwgUExSIG51 bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg ICBkbnF1ZXVlX29wdHMucGxyID0gKGludCkkMioweDdmZmZmZmZmIDsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgfCBNQVNLIG1hc2tfc3BlY2lmaWVyICAgeworICAgICAgICAg ICAgICAgICAgICAgICAgbWVtY3B5KCZkbnF1ZXVlX29wdHMsICYkMiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRucXVldWVfb3B0cykpOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICB8IFJFRCBzdHJpbmcgJy8nIG51bWJlciAnLycgbnVtYmVyICcv JyBzdHJpbmcgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogWFhYOiB0aGlzIG5v dCB5ZXQgZmluaXNoZWQhICovCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICAgICplOwor ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICAgcCA9IHN0cnRvZCgkMiwgJmUpOworCisg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKmUgPT0gJyUnKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHAgKj0gMC4wMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZSsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl5ZXJyb3IoImlu dmFsaWQ6ICVzIiwgJDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKCQy KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlFUlJPUjsKKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBmbG9vcihwICogKFVJ TlRfTUFYKzEuMCkgKyAwLjUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAgPCAxLjAg fHwgcCA+PSAoVUlOVF9NQVgrMS4wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB5eWVycm9yKCJpbnZhbGlkOiAlcyIsICQyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnJlZSgkMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlZRVJST1I7 CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBmcmVl KCQyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgOworCittYXNrX3NwZWNp ZmllciAgOiBBTEwgICAgICAgICAgICAgICAgICAgeworCisgICAgICAgICAgICAgICAgICAgICAg ICBtZW1zZXQoJiQkLCAwLCBzaXplb2YoJCQpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAg JCQuZmxvd19tYXNrLmRzdF9pcCA9IH4wOworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxv d19tYXNrLnNyY19pcCA9IH4wOworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxvd19tYXNr LmRzdF9wb3J0ID0gfjA7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbG93X21hc2suc3Jj X3BvcnQgPSB+MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsb3dfbWFzay5wcm90byA9 IH4wOworICAgICAgICAgICAgICAgICAgICAgICAgbjJtYXNrKCYkJC5mbG93X21hc2suZHN0X2lw NiwgMTI4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG4ybWFzaygmJCQuZmxvd19tYXNrLnNy Y19pcDYsIDEyOCk7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbG93X21hc2suZmxvd19p ZDYgPSB+MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9IEROX0hBVkVf RkxPV19NQVNLOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8IERTVElQIG51 bWJlciAgICAgICAgICAgICAJeworCQkJJCQuZmxvd19tYXNrLmRzdF9pcCA9ICh1aW50MzJfdCkk MjsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9IEROX0hBVkVfRkxPV19N QVNLOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8IFNSQ0lQIG51bWJlcgkg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxvd19tYXNrLnNyY19p cCA9ICh1aW50MzJfdCkkMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9 IEROX0hBVkVfRkxPV19NQVNLOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB8 IERTVFBPUlQgbnVtYmVyCSAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJCQu Zmxvd19tYXNrLmRzdF9wb3J0ID0gKHVpbnQxNl90KSQyOworICAgICAgICAgICAgICAgICAgICAg ICAgJCQuZmxhZ3NfZnMgfD0gRE5fSEFWRV9GTE9XX01BU0s7CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgIHwgU1JDUE9SVCBudW1iZXIJICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICAkJC5mbG93X21hc2suc3JjX3BvcnQgPSAodWludDE2X3QpJDI7CisgICAg ICAgICAgICAgICAgICAgICAgICAkJC5mbGFnc19mcyB8PSBETl9IQVZFX0ZMT1dfTUFTSzsKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfCBEU1RJUDYgJy8nIG51bWJlciAJICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBuMm1hc2soJiQkLmZsb3dfbWFzay5k c3RfaXA2LCAkMyk7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbGFnc19mcyB8PSBETl9I QVZFX0ZMT1dfTUFTSzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfCBTUkNJ UDYgJy8nIG51bWJlcgkgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBuMm1h c2soJiQkLmZsb3dfbWFzay5zcmNfaXA2LCAkMyk7CisgICAgICAgICAgICAgICAgICAgICAgICAk JC5mbGFnc19mcyB8PSBETl9IQVZFX0ZMT1dfTUFTSzsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgfCBGTE9XSUQgbnVtYmVyCSAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICQkLmZsb3dfbWFzay5mbG93X2lkNiA9ICh1aW50MzJfdCkkMjsKKyAgICAgICAg ICAgICAgICAgICAgICAgICQkLmZsYWdzX2ZzIHw9IEROX0hBVkVfRkxPV19NQVNLOworCisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHwgUFJPVE8gbnVtYmVyIAkgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJCQuZmxvd19tYXNrLnByb3RvID0gKHVpbnQ4 X3QpJDI7CisgICAgICAgICAgICAgICAgICAgICAgICAkJC5mbGFnc19mcyB8PSBETl9IQVZFX0ZM T1dfTUFTSzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfCBOT0VSUk9SICAg ICAgIHsgJCQuZmxhZ3NfZnMgfD0gRE5fTk9FUlJPUjsgfQorICAgICAgICAgICAgICAgIDsKKwog cGZydWxlCQk6IGFjdGlvbiBkaXIgbG9ncXVpY2sgaW50ZXJmYWNlIHJvdXRlIGFmIHByb3RvIGZy b210bwogCQkgICAgZmlsdGVyX29wdHMKIAkJewpAQCAtMjAzNCw2ICsyMjY2LDE0IEBACiAJCQkJ ZnJlZSgkOS5xdWV1ZXMucHFuYW1lKTsKIAkJCX0KIAorCQkJaWYgKCQ5LmRucGlwZSkgeworCQkJ CXIuZG5waXBlID0gJDkuZG5waXBlOworCQkJCXIuZG50eXBlID0gJDkuZG50eXBlOworCQkJfQor CQkJaWYgKCQ5LnBkbnBpcGUgJiYgci5kbnR5cGUgPT0gRE5fSVNfUVVFVUUpIHsKKwkJCQlyLnBk bnBpcGUgPSAkOS5wZG5waXBlOworCQkJfQorCiAJCQlleHBhbmRfcnVsZSgmciwgJDQsICQ1Lmhv c3QsICQ3LCAkOC5zcmNfb3MsCiAJCQkgICAgJDguc3JjLmhvc3QsICQ4LnNyYy5wb3J0LCAkOC5k c3QuaG9zdCwgJDguZHN0LnBvcnQsCiAJCQkgICAgJDkudWlkLCAkOS5naWQsICQ5LmljbXBzcGVj LCAiIik7CkBAIC0yMTIzLDYgKzIzNjMsMjcgQEAKIAkJCX0KIAkJCWZpbHRlcl9vcHRzLnF1ZXVl cyA9ICQxOwogCQl9CisJCXwgRE5QSVBFIG51bWJlcgkJCSAgICAgICAgeworCQkJZmlsdGVyX29w dHMuZG5waXBlID0gJDI7CisJCQlmaWx0ZXJfb3B0cy5kbnR5cGUgPSBETl9JU19QSVBFOworCQl9 CisJCXwgRE5QSVBFICcoJyBudW1iZXIgJyknCQkJeworCQkJZmlsdGVyX29wdHMuZG5waXBlID0g JDM7CisJCQlmaWx0ZXJfb3B0cy5kbnR5cGUgPSBETl9JU19QSVBFOworCQl9CisJCXwgRE5RVUVV RSBudW1iZXIJCQl7CisJCQlmaWx0ZXJfb3B0cy5kbnBpcGUgPSAkMjsKKwkJCWZpbHRlcl9vcHRz LmRudHlwZSA9IEROX0lTX1FVRVVFOworCQl9CisJCXwgRE5RVUVVRSAnKCcgbnVtYmVyIGNvbW1h IG51bWJlciAnKScJeworCQkJZmlsdGVyX29wdHMuZG5waXBlID0gJDM7CisJCQlmaWx0ZXJfb3B0 cy5wZG5waXBlID0gJDU7CisJCQlmaWx0ZXJfb3B0cy5kbnR5cGUgPSBETl9JU19RVUVVRTsKKwkJ fQorCQl8IEROUVVFVUUgJygnIG51bWJlciAnKScJCXsKKwkJCWZpbHRlcl9vcHRzLmRucGlwZSA9 ICQzOworCQkJZmlsdGVyX29wdHMuZG50eXBlID0gRE5fSVNfUVVFVUU7CisJCX0KIAkJfCBUQUcg c3RyaW5nCQkJCXsKIAkJCWZpbHRlcl9vcHRzLnRhZyA9ICQyOwogCQl9CkBAIC00MTEwLDYgKzQz NzEsMTEgQEAKIAkJeXllcnJvcigia2VlcCBzdGF0ZSBvbiBibG9jayBydWxlcyBkb2Vzbid0IG1h a2Ugc2Vuc2UiKTsKIAkJcHJvYmxlbXMrKzsKIAl9CisJaWYgKHItPnJ0ICYmIHItPmRucGlwZSkg eworCQl5eWVycm9yKCJyb3V0ZS10by9kdXAtdG8vZmFzdHJvdXRlL3JlcGx5LXRvIHdpdGggZHVt bXluZXQgIgorCQkJImRvZXNuJ3QgbWFrZSBzZW5zZSIpOworCQlwcm9ibGVtcysrOworCX0KIAly ZXR1cm4gKC1wcm9ibGVtcyk7CiB9CiAKQEAgLTQ4OTYsMjMgKzUxNjIsMzIgQEAKIAkJeyAiYml0 bWFzayIsCQlCSVRNQVNLfSwKIAkJeyAiYmxvY2siLAkJQkxPQ0t9LAogCQl7ICJibG9jay1wb2xp Y3kiLAlCTE9DS1BPTElDWX0sCisJCXsgImJ1Y2tldHMiLAkJQlVDS0VUU30sCiAJCXsgImNicSIs CQlDQlF9LAogCQl7ICJjb2RlIiwJCUNPREV9LAogCQl7ICJjcm9wIiwJCUZSQUdDUk9QfSwKIAkJ eyAiZGVidWciLAkJREVCVUd9LAorCQl7ICJkZWxheSIsCQlERUxBWX0sCisJCXsgImRucGlwZSIs IAkJRE5QSVBFfSwKKwkJeyAiZG5xdWV1ZSIsCQlETlFVRVVFfSwKIAkJeyAiZHJvcCIsCQlEUk9Q fSwKIAkJeyAiZHJvcC1vdmwiLAkJRlJBR0RST1B9LAorCQl7ICJkc3QtaXAiLAkJRFNUSVB9LAor CQl7ICJkc3QtaXA2IiwJCURTVElQNn0sCiAJCXsgImR1cC10byIsCQlEVVBUT30sCisJCXsgImRz dC1wb3J0IiwJCURTVFBPUlR9LAogCQl7ICJmYXN0cm91dGUiLAkJRkFTVFJPVVRFfSwKIAkJeyAi ZmlsZSIsCQlGSUxFTkFNRX0sCiAJCXsgImZpbmdlcnByaW50cyIsCUZJTkdFUlBSSU5UU30sCiAJ CXsgImZsYWdzIiwJCUZMQUdTfSwKIAkJeyAiZmxvYXRpbmciLAkJRkxPQVRJTkd9LAorCQl7ICJm bG93LWlkIiwJCUZMT1dJRH0sCiAJCXsgImZsdXNoIiwJCUZMVVNIfSwKIAkJeyAiZm9yIiwJCUZP Un0sCiAJCXsgImZyYWdtZW50IiwJCUZSQUdNRU5UfSwKIAkJeyAiZnJvbSIsCQlGUk9NfSwKIAkJ eyAiZ2xvYmFsIiwJCUdMT0JBTH0sCisJCXsgImdyZWQiLAkJR1JFRH0sCiAJCXsgImdyb3VwIiwJ CUdST1VQfSwKIAkJeyAiaGZzYyIsCQlIRlNDfSwKIAkJeyAiaG9zdGlkIiwJCUhPU1RJRH0sCkBA IC00OTI5LDYgKzUyMDQsNyBAQAogCQl7ICJsb2FkIiwJCUxPQUR9LAogCQl7ICJsb2ciLAkJTE9H fSwKIAkJeyAibG9naW50ZXJmYWNlIiwJTE9HSU5URVJGQUNFfSwKKwkJeyAibWFzayIsCQlNQVNL fSwKIAkJeyAibWF4IiwJCU1BWElNVU19LAogCQl7ICJtYXgtbXNzIiwJCU1BWE1TU30sCiAJCXsg Im1heC1zcmMtY29ubiIsCU1BWFNSQ0NPTk59LApAQCAtNDk0MywxMiArNTIxOSwxNCBAQAogCQl7 ICJuby1kZiIsCQlOT0RGfSwKIAkJeyAibm8tcm91dGUiLAkJTk9ST1VURX0sCiAJCXsgIm5vLXN5 bmMiLAkJTk9TWU5DfSwKKwkJeyAibm9lcnJvciIsCQlOT0VSUk9SfSwKIAkJeyAib24iLAkJCU9O fSwKIAkJeyAib3B0aW1pemF0aW9uIiwJT1BUSU1JWkFUSU9OfSwKIAkJeyAib3MiLAkJCU9TfSwK IAkJeyAib3V0IiwJCU9VVH0sCiAJCXsgIm92ZXJsb2FkIiwJCU9WRVJMT0FEfSwKIAkJeyAicGFz cyIsCQlQQVNTfSwKKwkJeyAicGxyIiwJCVBMUn0sCiAJCXsgInBvcnQiLAkJUE9SVH0sCiAJCXsg InByaW9yaXR5IiwJCVBSSU9SSVRZfSwKIAkJeyAicHJpcSIsCQlQUklRfSwKQEAgLTQ5NjMsNiAr NTI0MSw3IEBACiAJCXsgInJkci1hbmNob3IiLAkJUkRSQU5DSE9SfSwKIAkJeyAicmVhbHRpbWUi LAkJUkVBTFRJTUV9LAogCQl7ICJyZWFzc2VtYmxlIiwJCVJFQVNTRU1CTEV9LAorCQl7ICJyZWQi LAkJUkVEfSwKIAkJeyAicmVwbHktdG8iLAkJUkVQTFlUT30sCiAJCXsgInJlcXVpcmUtb3JkZXIi LAlSRVFVSVJFT1JERVJ9LAogCQl7ICJyZXR1cm4iLAkJUkVUVVJOfSwKQEAgLTQ5ODAsNiArNTI1 OSw5IEBACiAJCXsgInNraXAiLAkJU0tJUH0sCiAJCXsgInNvdXJjZS1oYXNoIiwJU09VUkNFSEFT SH0sCiAJCXsgInNvdXJjZS10cmFjayIsCVNPVVJDRVRSQUNLfSwKKwkJeyAic3JjLWlwIiwJCVNS Q0lQfSwKKwkJeyAic3JjLWlwNiIsIAkJU1JDSVA2fSwKKwkJeyAic3JjLXBvcnQiLAkJU1JDUE9S VH0sCiAJCXsgInN0YXRlIiwJCVNUQVRFfSwKIAkJeyAic3RhdGUtcG9saWN5IiwJU1RBVEVQT0xJ Q1l9LAogCQl7ICJzdGF0aWMtcG9ydCIsCVNUQVRJQ1BPUlR9LApAQCAtNDk5Niw2ICs1Mjc4LDcg QEAKIAkJeyAidXBwZXJsaW1pdCIsCQlVUFBFUkxJTUlUfSwKIAkJeyAidXJwZi1mYWlsZWQiLAlV UlBGRkFJTEVEfSwKIAkJeyAidXNlciIsCQlVU0VSfSwKKwkJeyAid2VpZ2h0IiwJCVdFSUdIVH0s CiAJfTsKIAljb25zdCBzdHJ1Y3Qga2V5d29yZHMJKnA7CiAKQEAgLTU1MjQsMyArNTgwNywyMyBA QAogCiAJcmV0dXJuICgwKTsKIH0KKworLyogbjJtYXNrIHNldHMgbiBiaXRzIG9mIHRoZSBtYXNr ICovCitzdGF0aWMgdm9pZAorbjJtYXNrKHN0cnVjdCBpbjZfYWRkciAqbWFzaywgaW50IG4pCit7 CisgICAgICAgIHN0YXRpYyBpbnQgICAgICBtaW5pbWFza1s5XSA9CisgICAgICAgICAgICB7IDB4 MDAsIDB4ODAsIDB4YzAsIDB4ZTAsIDB4ZjAsIDB4ZjgsIDB4ZmMsIDB4ZmUsIDB4ZmYgfTsKKyAg ICAgICAgdV9jaGFyICAgICAgICAgICpwOworCisgICAgICAgIG1lbXNldChtYXNrLCAwLCBzaXpl b2Yoc3RydWN0IGluNl9hZGRyKSk7CisgICAgICAgIHAgPSAodV9jaGFyICopIG1hc2s7CisgICAg ICAgIGZvciAoOyBuID4gMDsgcCsrLCBuIC09IDgpIHsKKyAgICAgICAgICAgICAgICBpZiAobiA+ PSA4KQorICAgICAgICAgICAgICAgICAgICAgICAgKnAgPSAweGZmOworICAgICAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICpwID0gbWluaW1hc2tbbl07CisgICAgICAg IH0KKyAgICAgICAgcmV0dXJuOworfQorCkluZGV4OiBjb250cmliL3BmL3BmY3RsL3BmY3RsLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vY29udHJpYi9wZi9wZmN0bC9wZmN0 bC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIxLjEuMS4xIHBmY3Rs LmMKLS0tIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGwuYwkyMSBPY3QgMjAwNyAxMzo1MzoxNSAtMDAw MAkxLjEuMS4xCisrKyBjb250cmliL3BmL3BmY3RsL3BmY3RsLmMJMjEgT2N0IDIwMDcgMTk6MDM6 NDkgLTAwMDAKQEAgLTQ2LDYgKzQ2LDkgQEAKICNpbmNsdWRlIDxhbHRxL2FsdHEuaD4KICNpbmNs dWRlIDxzeXMvc3lzY3RsLmg+CiAKKyNpbmNsdWRlIDxuZXRpbmV0L2lwX2Z3Lmg+CisjaW5jbHVk ZSA8bmV0aW5ldC9pcF9kdW1teW5ldC5oPgorCiAjaW5jbHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8 ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgpAQCAtNzEsNiArNzQsNyBAQAogaW50CSBwZmN0 bF9jbGVhcl9ydWxlcyhpbnQsIGludCwgY2hhciAqKTsKIGludAkgcGZjdGxfY2xlYXJfbmF0KGlu dCwgaW50LCBjaGFyICopOwogaW50CSBwZmN0bF9jbGVhcl9hbHRxKGludCwgaW50KTsKK2ludAkg cGZjdGxfY2xlYXJfZHVtbXluZXQoaW50LCBpbnQpOwogaW50CSBwZmN0bF9jbGVhcl9zcmNfbm9k ZXMoaW50LCBpbnQpOwogaW50CSBwZmN0bF9jbGVhcl9zdGF0ZXMoaW50LCBjb25zdCBjaGFyICos IGludCk7CiB2b2lkCSBwZmN0bF9hZGRycHJlZml4KGNoYXIgKiwgc3RydWN0IHBmX2FkZHIgKik7 CkBAIC05NSw2ICs5OSw3IEBACiBpbnQJIHBmY3RsX3Nob3dfbGltaXRzKGludCwgaW50KTsKIHZv aWQJIHBmY3RsX2RlYnVnKGludCwgdV9pbnQzMl90LCBpbnQpOwogaW50CSBwZmN0bF90ZXN0X2Fs dHFzdXBwb3J0KGludCwgaW50KTsKK2ludAkgcGZjdGxfdGVzdF9kdW1teW5ldHN1cHBvcnQoaW50 LCBpbnQpOwogaW50CSBwZmN0bF9zaG93X2FuY2hvcnMoaW50LCBpbnQsIGNoYXIgKik7CiBpbnQJ IHBmY3RsX3J1bGVzZXRfdHJhbnMoc3RydWN0IHBmY3RsICosIGNoYXIgKiwgc3RydWN0IHBmX2Fu Y2hvciAqKTsKIGludAkgcGZjdGxfbG9hZF9ydWxlc2V0KHN0cnVjdCBwZmN0bCAqLCBjaGFyICos CkBAIC0xMjIsNiArMTI3LDkgQEAKIGludAkJIGxvYWRvcHQ7CiBpbnQJCSBhbHRxc3VwcG9ydDsK IAoraW50IAkJIGR1bW15bmV0c3VwcG9ydDsKK2ludCAJCSBkbnNvY2s7CisKIGludAkJIGRldiA9 IC0xOwogaW50CQkgZmlyc3RfdGl0bGUgPSAxOwogaW50CQkgbGFiZWxzID0gMDsKQEAgLTIwNywx MiArMjE1LDEyIEBACiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqY2xlYXJvcHRfbGlzdFtdID0g ewotCSJuYXQiLCAicXVldWUiLCAicnVsZXMiLCAiU291cmNlcyIsCisJIm5hdCIsICJxdWV1ZSIs ICJkdW1teW5ldCIsICJydWxlcyIsICJTb3VyY2VzIiwKIAkic3RhdGUiLCAiaW5mbyIsICJUYWJs ZXMiLCAib3NmcCIsICJhbGwiLCBOVUxMCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqc2hvd29w dF9saXN0W10gPSB7Ci0JIm5hdCIsICJxdWV1ZSIsICJydWxlcyIsICJBbmNob3JzIiwgIlNvdXJj ZXMiLCAic3RhdGUiLCAiaW5mbyIsCisJIm5hdCIsICJxdWV1ZSIsICJkdW1teW5ldCIsICJydWxl cyIsICJBbmNob3JzIiwgIlNvdXJjZXMiLCAic3RhdGUiLCAiaW5mbyIsCiAJIkludGVyZmFjZXMi LCAibGFiZWxzIiwgInRpbWVvdXRzIiwgIm1lbW9yeSIsICJUYWJsZXMiLCAib3NmcCIsCiAJImFs bCIsIE5VTEwKIH07CkBAIC0zNjcsNiArMzc1LDIxIEBACiB9CiAKIGludAorcGZjdGxfY2xlYXJf ZHVtbXluZXQoaW50IGRuc29jaywgaW50IG9wdHMpCit7CisgICAgICAgaWYgKCFkdW1teW5ldHN1 cHBvcnQpCisgICAgICAgICAgICAgICByZXR1cm4gKC0xKTsKKyAgICAgICBpZiAoc2V0c29ja29w dChkbnNvY2ssIElQUFJPVE9fSVAsIElQX0RVTU1ZTkVUX0ZMVVNILCBOVUxMLCAwKSA8IDApIHsK KyAgICAgICAgICAgICAgIGVycigxLCJzZXRzb2Nrb3B0KElQX0RVTU1ZTkVUX0ZMVVNIKSIpOwor ICAgICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICB9CisKKyAgICAgICBpZiAoKG9wdHMg JiBQRl9PUFRfUVVJRVQpID09IDApCisgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkRV TU1ZTkVUIGNsZWFyZWRcbiIpOworICAgICAgIHJldHVybiAoMCk7Cit9CisKK2ludAogcGZjdGxf Y2xlYXJfc3JjX25vZGVzKGludCBkZXYsIGludCBvcHRzKQogewogCWlmIChpb2N0bChkZXYsIERJ T0NDTFJTUkNOT0RFUykpCkBAIC0xMzQ4LDYgKzEzNzEsMjQgQEAKIH0KIAogaW50CitwZmN0bF9h ZGRfZHVtbXluZXQoc3RydWN0IHBmY3RsICpwZiwgc3RydWN0IGRuX3BpcGUgKnApCit7CisgICAg ICAgaWYgKGR1bW15bmV0c3VwcG9ydCAmJgorICAgICAgICAgICAobG9hZG9wdCAmIFBGQ1RMX0ZM QUdfRFVNTVlORVQpICE9IDApIHsKKyAgICAgICAgICAgICAgIGlmICgocGYtPm9wdHMgJiBQRl9P UFRfTk9BQ1RJT04pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNldHNvY2tv cHQoZG5zb2NrLCBJUFBST1RPX0lQLCBJUF9EVU1NWU5FVF9DT05GSUdVUkUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcCwgc2l6ZW9mKCpwKSkgPCAwKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXJyeCgxLCAiRFVNTVlORVQgY29uZmlndXJlIik7CisgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorCWlmIChwZi0+ b3B0cyAmIFBGX09QVF9WRVJCT1NFKSAKKwkgICAgICAgcHJpbnRfZHVtbXluZXQocCk7CisKKyAg ICAgICByZXR1cm4gKDApOworfQorCitpbnQKIHBmY3RsX3J1bGVzKGludCBkZXYsIGNoYXIgKmZp bGVuYW1lLCBGSUxFICpmaW4sIGludCBvcHRzLCBpbnQgb3B0aW1pemUsCiAgICAgY2hhciAqYW5j aG9ybmFtZSwgc3RydWN0IHBmcl9idWZmZXIgKnRyYW5zKQogewpAQCAtMTkxNCw2ICsxOTU1LDIx IEBACiB9CiAKIGludAorcGZjdGxfdGVzdF9kdW1teW5ldHN1cHBvcnQoaW50IGRuc29jaywgaW50 IG9wdHMpCit7CisgICAgICAgc3RydWN0IGRuX3BpcGUgcDsKKyAgICAgICBzb2NrbGVuX3QgICAg ICAgbGVuOworCisgICAgICAgaWYgKGdldHNvY2tvcHQoZG5zb2NrLCBJUFBST1RPX0lQLCBJUF9E VU1NWU5FVF9HRVQsICZwLAorICAgICAgICAgICAgICAgICAgICAgICAmbGVuKSA8IDApIHsKKyAg ICAgICAgICAgICAgIGlmICghKG9wdHMgJiAoUEZfT1BUX1FVSUVUfFBGX09QVF9OT0FDVElPTikp KQorICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkRVTU1ZTkVUIG5vdCBs b2FkZWRcbiIpOworICAgICAgICAgICAgICAgcmV0dXJuICgwKTsKKyAgICAgICB9CisgICAgICAg cmV0dXJuICgxKTsKK30KKworaW50CiBwZmN0bF9zaG93X2FuY2hvcnMoaW50IGRldiwgaW50IG9w dHMsIGNoYXIgKmFuY2hvcm5hbWUpCiB7CiAJc3RydWN0IHBmaW9jX3J1bGVzZXQJIHByOwpAQCAt MTk3OCw3ICsyMDM0LDcgQEAKIAkJdXNhZ2UoKTsKIAogCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJn YywgYXJndiwKLQkgICAgImE6QWREOmVxZjpGOmdoaTprOks6bW5OT286OnA6clJzOnQ6VDp2eDp6 IikpICE9IC0xKSB7CisJICAgICJhOkFkRFA6ZXFmOkY6Z2hpOms6Szptbk5Pbzo6cDpyUnM6dDpU OnZ4OnoiKSkgIT0gLTEpIHsKIAkJc3dpdGNoIChjaCkgewogCQljYXNlICdhJzoKIAkJCWFuY2hv cm9wdCA9IG9wdGFyZzsKQEAgLTIwNTAsNiArMjEwNiw5IEBACiAJCWNhc2UgJ0EnOgogCQkJbG9h ZG9wdCB8PSBQRkNUTF9GTEFHX0FMVFE7CiAJCQlicmVhazsKKwkJY2FzZSAnUCc6CisJCQlsb2Fk b3B0IHw9IFBGQ1RMX0ZMQUdfRFVNTVlORVQ7CisJCQlicmVhazsKIAkJY2FzZSAnUic6CiAJCQls b2Fkb3B0IHw9IFBGQ1RMX0ZMQUdfRklMVEVSOwogCQkJYnJlYWs7CkBAIC0yMTY0LDYgKzIyMjMs MTEgQEAKIAkJaWYgKGRldiA9PSAtMSkKIAkJCWVycigxLCAiJXMiLCBwZl9kZXZpY2UpOwogCQlh bHRxc3VwcG9ydCA9IHBmY3RsX3Rlc3RfYWx0cXN1cHBvcnQoZGV2LCBvcHRzKTsKKworCQlkbnNv Y2sgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19SQVcsIElQUFJPVE9fUkFXKTsKKwkJaWYgKGRuc29j ayA8IDApCisJCQllcnIoMSwgInNvY2tldCIpOworCQlkdW1teW5ldHN1cHBvcnQgPSBwZmN0bF90 ZXN0X2R1bW15bmV0c3VwcG9ydChkbnNvY2ssIG9wdHMpOwogCX0gZWxzZSB7CiAJCWRldiA9IG9w ZW4ocGZfZGV2aWNlLCBPX1JET05MWSk7CiAJCWlmIChkZXYgPj0gMCkKQEAgLTIxNzYsNiArMjI0 MCwxMCBAQAogI2Vsc2UKIAkJYWx0cXN1cHBvcnQgPSAxOwogI2VuZGlmCisgICAgICAgICAgICAg ICAgZG5zb2NrID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfUkFXLCBJUFBST1RPX1JBVyk7CisgICAg ICAgICAgICAgICAgaWYgKGRuc29jayA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICBlcnIo MSwgInNvY2tldCIpOworICAgICAgICAgICAgICAgIGR1bW15bmV0c3VwcG9ydCA9IHBmY3RsX3Rl c3RfZHVtbXluZXRzdXBwb3J0KGRuc29jaywgb3B0cyk7CiAJfQogCiAJaWYgKG9wdHMgJiBQRl9P UFRfRElTQUJMRSkKQEAgLTIyMDUsNiArMjI3Myw5IEBACiAJCQlwZmN0bF9zaG93X2FsdHEoZGV2 LCBpZmFjZW9wdCwgb3B0cywKIAkJCSAgICBvcHRzICYgUEZfT1BUX1ZFUkJPU0UyKTsKIAkJCWJy ZWFrOworCQljYXNlICdkJzoKKwkJCXBmY3RsX3Nob3dfZHVtbXluZXQoZG5zb2NrLCBvcHRzKTsK KwkJCWJyZWFrOwogCQljYXNlICdzJzoKIAkJCXBmY3RsX3Nob3dfc3RhdGVzKGRldiwgaWZhY2Vv cHQsIG9wdHMpOwogCQkJYnJlYWs7CkBAIC0yMjI3LDYgKzIyOTgsNyBAQAogCQkJcGZjdGxfc2hv d19uYXQoZGV2LCBvcHRzLCBhbmNob3JuYW1lKTsKIAkJCXBmY3RsX3Nob3dfcnVsZXMoZGV2LCBw YXRoLCBvcHRzLCAwLCBhbmNob3JuYW1lLCAwKTsKIAkJCXBmY3RsX3Nob3dfYWx0cShkZXYsIGlm YWNlb3B0LCBvcHRzLCAwKTsKKwkJCXBmY3RsX3Nob3dfZHVtbXluZXQoZG5zb2NrLCBvcHRzKTsK IAkJCXBmY3RsX3Nob3dfc3RhdGVzKGRldiwgaWZhY2VvcHQsIG9wdHMpOwogCQkJcGZjdGxfc2hv d19zcmNfbm9kZXMoZGV2LCBvcHRzKTsKIAkJCXBmY3RsX3Nob3dfc3RhdHVzKGRldiwgb3B0cyk7 CkBAIC0yMjY4LDYgKzIzNDAsOSBAQAogCQljYXNlICdxJzoKIAkJCXBmY3RsX2NsZWFyX2FsdHEo ZGV2LCBvcHRzKTsKIAkJCWJyZWFrOworCQljYXNlICdkJzoKKwkJCXBmY3RsX2NsZWFyX2R1bW15 bmV0KGRuc29jaywgb3B0cyk7CisJCQlicmVhazsKIAkJY2FzZSAncyc6CiAJCQlwZmN0bF9jbGVh cl9zdGF0ZXMoZGV2LCBpZmFjZW9wdCwgb3B0cyk7CiAJCQlicmVhazsKQEAgLTIyODMsNiArMjM1 OCw3IEBACiAJCQlwZmN0bF9jbGVhcl90YWJsZXMoYW5jaG9ybmFtZSwgb3B0cyk7CiAJCQlpZiAo ISphbmNob3JuYW1lKSB7CiAJCQkJcGZjdGxfY2xlYXJfYWx0cShkZXYsIG9wdHMpOworCQkJCXBm Y3RsX2NsZWFyX2R1bW15bmV0KGRuc29jaywgb3B0cyk7CiAJCQkJcGZjdGxfY2xlYXJfc3RhdGVz KGRldiwgaWZhY2VvcHQsIG9wdHMpOwogCQkJCXBmY3RsX2NsZWFyX3NyY19ub2RlcyhkZXYsIG9w dHMpOwogCQkJCXBmY3RsX2NsZWFyX3N0YXRzKGRldiwgb3B0cyk7CkluZGV4OiBjb250cmliL3Bm L3BmY3RsL3BmY3RsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vY29udHJp Yi9wZi9wZmN0bC9wZmN0bC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUg LXIxLjEuMS4xIHBmY3RsLmgKLS0tIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGwuaAkyMSBPY3QgMjAw NyAxMzo1MzoxNSAtMDAwMAkxLjEuMS4xCisrKyBjb250cmliL3BmL3BmY3RsL3BmY3RsLmgJMjEg T2N0IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTg1LDYgKzg1LDcgQEAKIGludAkgcGZjdGxfY29t bWFuZF90YWJsZXMoaW50LCBjaGFyICpbXSwgY2hhciAqLCBjb25zdCBjaGFyICosIGNoYXIgKiwK IAkgICAgY29uc3QgY2hhciAqLCBpbnQpOwogaW50CSBwZmN0bF9zaG93X2FsdHEoaW50LCBjb25z dCBjaGFyICosIGludCwgaW50KTsKK2ludAkgcGZjdGxfc2hvd19kdW1teW5ldChpbnQsIGludCk7 CiB2b2lkCSB3YXJuX25hbWVzcGFjZV9jb2xsaXNpb24oY29uc3QgY2hhciAqKTsKIGludAkgcGZj dGxfc2hvd19pZmFjZXMoY29uc3QgY2hhciAqLCBpbnQpOwogRklMRQkqcGZjdGxfZm9wZW4oY29u c3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpJbmRleDogY29udHJpYi9wZi9wZmN0bC9wZmN0bF9k bi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfZG4uYwpkaWZm IC1OIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfZG4uYwotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAg MDA6MDA6MDAgLTAwMDAKKysrIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfZG4uYwkyMSBPY3QgMjAw NyAxOTowMzozMiAtMDAwMApAQCAtMCwwICsxLDM5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg MjAwNyBFcm1hbCBMdedpCisgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwMyBMdWlnaSBSaXp6bwor ICogQ29weXJpZ2h0IChjKSAxOTk2IEFsZXggTmFzaCwgUGF1bCBUcmFpbmEsIFBvdWwtSGVubmlu ZyBLYW1wCisgKiBDb3B5cmlnaHQgKGMpIDE5OTQgVWdlbiBKLlMuQW50c2lsZXZpY2gKKyAqCisg KiBJZGVhIGFuZCBncmFtbWFyIHBhcnRpYWxseSBsZWZ0IGZyb206CisgKiBDb3B5cmlnaHQgKGMp IDE5OTMgRGFuaWVsIEJvdWxldAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291 cmNlIGZvcm1zLCB3aXRoIGFuZCB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0 ZWQgcHJvdmlkZWQgdGhhdCB0aGlzIGVudGlyZSBjb21tZW50IGFwcGVhcnMgaW50YWN0LgorICoK KyAqIFJlZGlzdHJpYnV0aW9uIGluIGJpbmFyeSBmb3JtIG1heSBvY2N1ciB3aXRob3V0IGFueSBy ZXN0cmljdGlvbnMuCisgKiBPYnZpb3VzbHksIGl0IHdvdWxkIGJlIG5pY2UgaWYgeW91IGdhdmUg Y3JlZGl0IHdoZXJlIGNyZWRpdCBpcyBkdWUKKyAqIGJ1dCByZXF1aXJpbmcgaXQgd291bGQgYmUg dG9vIG9uZXJvdXMuCisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBgYEFTIElTJycg d2l0aG91dCBhbnkgd2FycmFudGllcyBvZiBhbnkga2luZC4KKyAqCisgKiBORVcgY29tbWFuZCBs aW5lIGludGVyZmFjZSBmb3IgSVAgZmlyZXdhbGwgZmFjaWxpdHkKKyAqCisgKi8KKworLyoKKyAq IE1vc3Qgb2YgdGhpcyBpcyBkZXJpdmVkIGZyb20gaXBmdyg4KSBjb2RlLgorICovCisKKyNpbmNs dWRlIDxzeXMvY2RlZnMuaD4KKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5 cy9pb2N0bC5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisKKyNp bmNsdWRlIDxuZXQvaWYuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8bmV0 L3BmdmFyLmg+CisKKyNpbmNsdWRlIDxlcnIuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1 ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2lu Y2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5o PgorI2luY2x1ZGUgPG5ldGRiLmg+CisKKyNpbmNsdWRlIDxuZXRpbmV0L2lwX2Z3Lmg+CisjaW5j bHVkZSA8bmV0aW5ldC9pcF9kdW1teW5ldC5oPgorCisjaW5jbHVkZSAicGZjdGxfcGFyc2VyLmgi CisjaW5jbHVkZSAicGZjdGwuaCIKKworc3RhdGljIGludCBkb19zb3J0LAorCSAgIHZlcmJvc2U7 CisKK3N0YXRpYyBpbnQgc29ydF9xKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKK3N0YXRp YyB2b2lkCitsaXN0X3F1ZXVlcyhzdHJ1Y3QgZG5fZmxvd19zZXQgKiwgc3RydWN0IGRuX2Zsb3df cXVldWUgKik7CitzdGF0aWMgdm9pZAorcHJpbnRfZmxvd3NldF9wYXJtcyhzdHJ1Y3QgZG5fZmxv d19zZXQgKiwgY2hhciAqKTsKK3N0YXRpYyB2b2lkCitsaXN0X3BpcGVzKHZvaWQgKiwgdWludCAp OworCitzdGF0aWMgaW50Citzb3J0X3EoY29uc3Qgdm9pZCAqcGEsIGNvbnN0IHZvaWQgKnBiKQor eworICAgICAgICBpbnQgcmV2ID0gKDApOworICAgICAgICBpbnQgZmllbGQgPSByZXYgPyAtZG9f c29ydCA6IGRvX3NvcnQ7CisgICAgICAgIGxvbmcgbG9uZyByZXMgPSAwOworICAgICAgICBjb25z dCBzdHJ1Y3QgZG5fZmxvd19xdWV1ZSAqYSA9IHBhOworICAgICAgICBjb25zdCBzdHJ1Y3QgZG5f Zmxvd19xdWV1ZSAqYiA9IHBiOworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAg Y2FzZSAxOiAvKiBwa3RzICovCisgICAgICAgICAgICAgICAgcmVzID0gYS0+bGVuIC0gYi0+bGVu OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6IC8qIGJ5dGVzICovCisg ICAgICAgICAgICAgICAgcmVzID0gYS0+bGVuX2J5dGVzIC0gYi0+bGVuX2J5dGVzOworICAgICAg ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMzogLyogdG90IHBrdHMgKi8KKyAgICAg ICAgICAgICAgICByZXMgPSBhLT50b3RfcGt0cyAtIGItPnRvdF9wa3RzOworICAgICAgICAgICAg ICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNDogLyogdG90IGJ5dGVzICovCisgICAgICAgICAg ICAgICAgcmVzID0gYS0+dG90X2J5dGVzIC0gYi0+dG90X2J5dGVzOworICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChyZXMgPCAwKQorICAgICAgICAgICAgICAg IHJlcyA9IC0xOworICAgICAgICBpZiAocmVzID4gMCkKKyAgICAgICAgICAgICAgICByZXMgPSAx OworICAgICAgICByZXR1cm4gKGludCkocmV2ID8gcmVzIDogLXJlcyk7Cit9CisKK3N0YXRpYyB2 b2lkCitsaXN0X3F1ZXVlcyhzdHJ1Y3QgZG5fZmxvd19zZXQgKmZzLCBzdHJ1Y3QgZG5fZmxvd19x dWV1ZSAqcSkKK3sKKyAgICAgICAgaW50IGw7CisgICAgICAgIGludCBpbmRleF9wcmludGVkLCBp bmRleGVzID0gMDsKKyAgICAgICAgY2hhciBidWZmWzI1NV07CisgICAgICAgIHN0cnVjdCBwcm90 b2VudCAqcGU7CisKKyAgICAgICAgaWYgKGZzLT5ycV9lbGVtZW50cyA9PSAwKQorICAgICAgICAg ICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZG9fc29ydCAhPSAwKQorICAgICAgICAgICAg ICAgIGhlYXBzb3J0KHEsIGZzLT5ycV9lbGVtZW50cywgc2l6ZW9mICpxLCBzb3J0X3EpOworCisg ICAgICAgIC8qIFByaW50IElQdjQgZmxvd3MgKi8KKyAgICAgICAgaW5kZXhfcHJpbnRlZCA9IDA7 CisgICAgICAgIGZvciAobCA9IDA7IGwgPCBmcy0+cnFfZWxlbWVudHM7IGwrKykgeworICAgICAg ICAgICAgICAgIHN0cnVjdCBpbl9hZGRyIGluYTsKKworICAgICAgICAgICAgICAgIC8qIFhYWDog U2hvdWxkIGNoZWNrIGZvciBJUHY0IGZsb3dzICovCisgICAgICAgICAgICAgICAgaWYgKElTX0lQ Nl9GTE9XX0lEKCYocVtsXS5pZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 CisKKyAgICAgICAgICAgICAgICBpZiAoIWluZGV4X3ByaW50ZWQpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGluZGV4X3ByaW50ZWQgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGluZGV4ZXMgPiAwKSAgICAgICAgLyogY3VycmVudGx5IGEgbm8tb3AgKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIpOworICAgICAgICAgICAgICAgICAgICAg ICAgaW5kZXhlcysrOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJtYXNrOiAweCUwMnggMHglMDh4LzB4JTA0eCAtPiAw eCUwOHgvMHglMDR4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzLT5mbG93X21h c2sucHJvdG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnMtPmZsb3dfbWFzay5zcmNf aXAsIGZzLT5mbG93X21hc2suc3JjX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZnMtPmZsb3dfbWFzay5kc3RfaXAsIGZzLT5mbG93X21hc2suZHN0X3BvcnQpOworCisgICAgICAg ICAgICAgICAgICAgICAgICBwcmludGYoIkJLVCBQcm90IF9fX1NvdXJjZSBJUC9wb3J0X19fXyAi CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fX19EZXN0LiBJUC9wb3J0X19fXyAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvdF9wa3QvYnl0ZXMgUGt0L0J5dGUgRHJwXG4i KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwcmludGYoIiUzZCAiLCBx W2xdLmhhc2hfc2xvdCk7CisgICAgICAgICAgICAgICAgcGUgPSBnZXRwcm90b2J5bnVtYmVyKHFb bF0uaWQucHJvdG8pOworICAgICAgICAgICAgICAgIGlmIChwZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgIHByaW50ZigiJS00cyAiLCBwZS0+cF9uYW1lKTsKKyAgICAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiU0dSAiLCBxW2xdLmlkLnByb3RvKTsK KyAgICAgICAgICAgICAgICBpbmEuc19hZGRyID0gaHRvbmwocVtsXS5pZC5zcmNfaXApOworICAg ICAgICAgICAgICAgIHByaW50ZigiJTE1cy8lLTVkICIsCisgICAgICAgICAgICAgICAgICAgIGlu ZXRfbnRvYShpbmEpLCBxW2xdLmlkLnNyY19wb3J0KTsKKyAgICAgICAgICAgICAgICBpbmEuc19h ZGRyID0gaHRvbmwocVtsXS5pZC5kc3RfaXApOworICAgICAgICAgICAgICAgIHByaW50ZigiJTE1 cy8lLTVkICIsCisgICAgICAgICAgICAgICAgICAgIGluZXRfbnRvYShpbmEpLCBxW2xdLmlkLmRz dF9wb3J0KTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiU0cXUgJThxdSAlMnUgJTR1ICUzdVxu IiwKKyAgICAgICAgICAgICAgICAgICAgcVtsXS50b3RfcGt0cywgcVtsXS50b3RfYnl0ZXMsCisg ICAgICAgICAgICAgICAgICAgIHFbbF0ubGVuLCBxW2xdLmxlbl9ieXRlcywgcVtsXS5kcm9wcyk7 CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBw cmludGYoIiAgIFMgJTIwcWQgIEYgJTIwcWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcVtsXS5TLCBxW2xdLkYpOworICAgICAgICB9CisKKyAgICAgICAgLyogUHJpbnQgSVB2NiBm bG93cyAqLworICAgICAgICBpbmRleF9wcmludGVkID0gMDsKKyAgICAgICAgZm9yIChsID0gMDsg bCA8IGZzLT5ycV9lbGVtZW50czsgbCsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFJU19JUDZf RkxPV19JRCgmKHFbbF0uaWQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor CisgICAgICAgICAgICAgICAgaWYgKCFpbmRleF9wcmludGVkKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICBpbmRleF9wcmludGVkID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp bmRleGVzID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIp OworICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzKys7CisgICAgICAgICAgICAgICAgICAg ICAgICBwcmludGYoIlxuICAgICAgICBtYXNrOiBwcm90bzogMHglMDJ4LCBmbG93X2lkOiAweCUw OHgsICAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzLT5mbG93X21hc2sucHJvdG8s IGZzLT5mbG93X21hc2suZmxvd19pZDYpOworICAgICAgICAgICAgICAgICAgICAgICAgaW5ldF9u dG9wKEFGX0lORVQ2LCAmKGZzLT5mbG93X21hc2suc3JjX2lwNiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnVmZiwgc2l6ZW9mKGJ1ZmYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg IHByaW50ZigiJXMvMHglMDR4IC0+ICIsIGJ1ZmYsIGZzLT5mbG93X21hc2suc3JjX3BvcnQpOwor ICAgICAgICAgICAgICAgICAgICAgICAgaW5ldF9udG9wKCBBRl9JTkVUNiwgJihmcy0+Zmxvd19t YXNrLmRzdF9pcDYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYsIHNpemVvZihi dWZmKSApOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcy8weCUwNHhcbiIsIGJ1 ZmYsIGZzLT5mbG93X21hc2suZHN0X3BvcnQpOworCisgICAgICAgICAgICAgICAgICAgICAgICBw cmludGYoIkJLVCBfX19Qcm90X19fIF9mbG93LWlkXyAiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIl9fX19fX19fX19fX19fU291cmNlIElQdjYvcG9ydF9fX19fX19fX19fX19fXyAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fX19fX19fX19fX19fX0Rlc3QuIElQdjYvcG9y dF9fX19fX19fX19fX19fXyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvdF9wa3Qv Ynl0ZXMgUGt0L0J5dGUgRHJwXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgcHJpbnRmKCIlM2QgIiwgcVtsXS5oYXNoX3Nsb3QpOworICAgICAgICAgICAgICAgIHBlID0g Z2V0cHJvdG9ieW51bWJlcihxW2xdLmlkLnByb3RvKTsKKyAgICAgICAgICAgICAgICBpZiAocGUg IT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiJTlzICIsIHBlLT5wX25h bWUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50 ZigiJTl1ICIsIHFbbF0uaWQucHJvdG8pOworICAgICAgICAgICAgICAgIHByaW50ZigiJTdkICAl MzlzLyUtNWQgIiwgcVtsXS5pZC5mbG93X2lkNiwKKyAgICAgICAgICAgICAgICAgICAgaW5ldF9u dG9wKEFGX0lORVQ2LCAmKHFbbF0uaWQuc3JjX2lwNiksIGJ1ZmYsIHNpemVvZihidWZmKSksCisg ICAgICAgICAgICAgICAgICAgIHFbbF0uaWQuc3JjX3BvcnQpOworICAgICAgICAgICAgICAgIHBy aW50ZigiICUzOXMvJS01ZCAiLAorICAgICAgICAgICAgICAgICAgICBpbmV0X250b3AoQUZfSU5F VDYsICYocVtsXS5pZC5kc3RfaXA2KSwgYnVmZiwgc2l6ZW9mKGJ1ZmYpKSwKKyAgICAgICAgICAg ICAgICAgICAgcVtsXS5pZC5kc3RfcG9ydCk7CisgICAgICAgICAgICAgICAgcHJpbnRmKCIgJTRx dSAlOHF1ICUydSAlNHUgJTN1XG4iLAorICAgICAgICAgICAgICAgICAgICBxW2xdLnRvdF9wa3Rz LCBxW2xdLnRvdF9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgcVtsXS5sZW4sIHFbbF0ubGVu X2J5dGVzLCBxW2xdLmRyb3BzKTsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgUyAlMjBxZCAgRiAlMjBxZFxuIiwgcVtsXS5T LCBxW2xdLkYpOworICAgICAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9mbG93c2V0X3Bh cm1zKHN0cnVjdCBkbl9mbG93X3NldCAqZnMsIGNoYXIgKnByZWZpeCkKK3sKKyAgICAgICAgaW50 IGw7CisgICAgICAgIGNoYXIgcXNbMzBdOworICAgICAgICBjaGFyIHBsclszMF07CisgICAgICAg IGNoYXIgcmVkWzkwXTsgICAvKiBEaXNwbGF5IFJFRCBwYXJhbWV0ZXJzICovCisKKyAgICAgICAg bCA9IGZzLT5xc2l6ZTsKKyAgICAgICAgaWYgKGZzLT5mbGFnc19mcyAmIEROX1FTSVpFX0lTX0JZ VEVTKSB7CisgICAgICAgICAgICAgICAgaWYgKGwgPj0gODE5MikKKyAgICAgICAgICAgICAgICAg ICAgICAgIHNwcmludGYocXMsICIlZCBLQiIsIGwgLyAxMDI0KTsKKyAgICAgICAgICAgICAgICBl bHNlCisgICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHFzLCAiJWQgQiIsIGwpOworICAg ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBzcHJpbnRmKHFzLCAiJTNkIHNsLiIsIGwpOwor ICAgICAgICBpZiAoZnMtPnBscikKKyAgICAgICAgICAgICAgICBzcHJpbnRmKHBsciwgInBsciAl ZiIsIDEuMCAqIGZzLT5wbHIgLyAoZG91YmxlKSgweDdmZmZmZmZmKSk7CisgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICBwbHJbMF0gPSAnXDAnOworICAgICAgICBpZiAoZnMtPmZsYWdzX2Zz ICYgRE5fSVNfUkVEKSAgIC8qIFJFRCBwYXJhbWV0ZXJzICovCisgICAgICAgICAgICAgICAgc3By aW50ZihyZWQsCisgICAgICAgICAgICAgICAgICAgICJcblx0ICAlY1JFRCB3X3EgJWYgbWluX3Ro ICVkIG1heF90aCAlZCBtYXhfcCAlZiIsCisgICAgICAgICAgICAgICAgICAgIChmcy0+ZmxhZ3Nf ZnMgJiBETl9JU19HRU5UTEVfUkVEKSA/ICdHJyA6ICcgJywKKyAgICAgICAgICAgICAgICAgICAg MS4wICogZnMtPndfcSAvIChkb3VibGUpKDEgPDwgU0NBTEVfUkVEKSwKKyAgICAgICAgICAgICAg ICAgICAgU0NBTEVfVkFMKGZzLT5taW5fdGgpLAorICAgICAgICAgICAgICAgICAgICBTQ0FMRV9W QUwoZnMtPm1heF90aCksCisgICAgICAgICAgICAgICAgICAgIDEuMCAqIGZzLT5tYXhfcCAvIChk b3VibGUpKDEgPDwgU0NBTEVfUkVEKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz cHJpbnRmKHJlZCwgImRyb3B0YWlsIik7CisKKyAgICAgICAgcHJpbnRmKCIlcyAlcyVzICVkIHF1 ZXVlcyAoJWQgYnVja2V0cykgJXNcbiIsCisgICAgICAgICAgICBwcmVmaXgsIHFzLCBwbHIsIGZz LT5ycV9lbGVtZW50cywgZnMtPnJxX3NpemUsIHJlZCk7Cit9CisKKworc3RhdGljIHZvaWQKK2xp c3RfcGlwZXModm9pZCAqZGF0YSwgdWludCBuYnl0ZXMpCit7CisgICAgICAgIHZvaWQgKm5leHQg PSBkYXRhOworICAgICAgICBzdHJ1Y3QgZG5fcGlwZSAqcCA9IChzdHJ1Y3QgZG5fcGlwZSAqKSBk YXRhOworICAgICAgICBzdHJ1Y3QgZG5fZmxvd19zZXQgKmZzOworICAgICAgICBzdHJ1Y3QgZG5f Zmxvd19xdWV1ZSAqcTsKKyAgICAgICAgaW50IGw7CisKKyAgICAgICAgZm9yICg7IG5ieXRlcyA+ PSBzaXplb2YgKnA7IHAgPSAoc3RydWN0IGRuX3BpcGUgKiluZXh0KSB7CisgICAgICAgICAgICAg ICAgZG91YmxlIGIgPSBwLT5iYW5kd2lkdGg7CisgICAgICAgICAgICAgICAgY2hhciBidWZbMzBd OworICAgICAgICAgICAgICAgIGNoYXIgcHJlZml4WzgwXTsKKworICAgICAgICAgICAgICAgIGlm IChTTElTVF9ORVhUKHAsIG5leHQpICE9IChzdHJ1Y3QgZG5fcGlwZSAqKUROX0lTX1BJUEUpCisg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgIC8qIGRvbmUgd2l0aCBwaXBlcywgbm93IHF1 ZXVlcyAqLworCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBjb21wdXRl IGxlbmd0aCwgYXMgcGlwZSBoYXZlIHZhcmlhYmxlIHNpemUKKyAgICAgICAgICAgICAgICAgKi8K KyAgICAgICAgICAgICAgICBsID0gc2l6ZW9mKCpwKSArIHAtPmZzLnJxX2VsZW1lbnRzICogc2l6 ZW9mKCpxKTsKKyAgICAgICAgICAgICAgICBuZXh0ID0gKGNoYXIgKilwICsgbDsKKyAgICAgICAg ICAgICAgICBuYnl0ZXMgLT0gbDsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg ICAgICogUHJpbnQgcmF0ZSAob3IgY2xvY2tpbmcgaW50ZXJmYWNlKQorICAgICAgICAgICAgICAg ICAqLworICAgICAgICAgICAgICAgIGlmIChwLT5pZl9uYW1lWzBdICE9ICdcMCcpCisgICAgICAg ICAgICAgICAgICAgICAgIHNwcmludGYoYnVmLCAiJXMiLCBwLT5pZl9uYW1lKTsKKyAgICAgICAg ICAgICAgICBlbHNlIGlmIChiID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRm KGJ1ZiwgInVubGltaXRlZCIpOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGIgPj0gMTAwMDAw MCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNwcmludGYoYnVmLCAiJTcuM2YgTWJpdC9zIiwg Yi8xMDAwMDAwKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChiID49IDEwMDApCisgICAgICAg ICAgICAgICAgICAgICAgICBzcHJpbnRmKGJ1ZiwgIiU3LjNmIEtiaXQvcyIsIGIvMTAwMCk7Cisg ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgc3ByaW50ZihidWYs ICIlNy4zZiBiaXQvcyAiLCBiKTsKKworICAgICAgICAgICAgICAgIHNwcmludGYocHJlZml4LCAi JTA1ZDogJXMgJTRkIG1zICIsCisgICAgICAgICAgICAgICAgICAgIHAtPnBpcGVfbnIsIGJ1Ziwg cC0+ZGVsYXkpOworICAgICAgICAgICAgICAgIHByaW50X2Zsb3dzZXRfcGFybXMoJihwLT5mcyks IHByZWZpeCk7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAg ICAgICAgICBwcmludGYoIiAgIFYgJTIwcWRcbiIsIHAtPlYgPj4gTVlfTSk7CisKKyAgICAgICAg ICAgICAgICBxID0gKHN0cnVjdCBkbl9mbG93X3F1ZXVlICopKHArMSk7CisgICAgICAgICAgICAg ICAgbGlzdF9xdWV1ZXMoJihwLT5mcyksIHEpOworICAgICAgICB9CisgICAgICAgIGZvciAoZnMg PSBuZXh0OyBuYnl0ZXMgPj0gc2l6ZW9mICpmczsgZnMgPSBuZXh0KSB7CisgICAgICAgICAgICAg ICAgY2hhciBwcmVmaXhbODBdOworCisgICAgICAgICAgICAgICAgaWYgKFNMSVNUX05FWFQoZnMs IG5leHQpICE9IChzdHJ1Y3QgZG5fZmxvd19zZXQgKilETl9JU19RVUVVRSkKKyAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGwgPSBzaXplb2YoKmZzKSArIGZz LT5ycV9lbGVtZW50cyAqIHNpemVvZigqcSk7CisgICAgICAgICAgICAgICAgbmV4dCA9IChjaGFy ICopZnMgKyBsOworICAgICAgICAgICAgICAgIG5ieXRlcyAtPSBsOworI2lmIDAKKyAgICAgICAg ICAgICAgICBpZiAocnVsZW51bSAhPSAwICYmICgocnVsZW51bSAhPSBmcy0+ZnNfbnIgJiYgZG9f cGlwZSA9PSAyKSB8fAorICAgICAgICAgICAgICAgICAgICAocnVsZW51bSAhPSBmcy0+cGFyZW50 X25yICYmIGRvX3BpcGUgPT0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsKKyAgICAgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgICAgICBxID0gKHN0cnVj dCBkbl9mbG93X3F1ZXVlICopKGZzKzEpOworICAgICAgICAgICAgICAgIHNwcmludGYocHJlZml4 LCAicSUwNWQ6IHdlaWdodCAlZCBwaXBlICVkICIsCisgICAgICAgICAgICAgICAgICAgIGZzLT5m c19uciwgZnMtPndlaWdodCwgZnMtPnBhcmVudF9ucik7CisgICAgICAgICAgICAgICAgcHJpbnRf Zmxvd3NldF9wYXJtcyhmcywgcHJlZml4KTsKKyAgICAgICAgICAgICAgICBsaXN0X3F1ZXVlcyhm cywgcSk7CisgICAgICAgIH0KK30KKwordm9pZAorcHJpbnRfZHVtbXluZXQoc3RydWN0IGRuX3Bp cGUgKnApCit7CisJY2hhciBidWZmWzI1NV07CisKKwlpZiAocC0+cGlwZV9uciAhPSAwKSB7IC8q IFRoaXMgaXMgYSBwaXBlICovCisJCXByaW50ZigiZG5waXBlICVkIiwgcC0+cGlwZV9ucik7CisJ CWlmIChwLT5iYW5kd2lkdGgpIAorCQkJcHJpbnRmKCIgYmFuZHdpZHRoICVkTWIiLCBwLT5iYW5k d2lkdGgvMTAwMDAwMCk7CisJICAgICAgICBlbHNlIGlmIChwLT5iYW5kd2lkdGggPj0gMTAwMCkK KyAgICAgICAgIAkgICAgICAgIHByaW50ZigiIGJhbmR3aWR0aCAlZEtiIiwgcC0+YmFuZHdpZHRo LzEwMDApOworCSAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICAgICAgICAgCXByaW50Zigi IGJhbmR3aWR0aCAlZGIgIiwgcC0+YmFuZHdpZHRoKTsKKwkJaWYgKHAtPmRlbGF5ID4gMCkKKwkJ CXByaW50ZigiIGRlbGF5ICVkIiwgcC0+ZGVsYXkpOworCX0gZWxzZSB7CisJCXByaW50ZigiZG5x dWV1ZSAlZCBkbnBpcGUgJWQiLCBwLT5mcy5mc19uciwgcC0+ZnMucGFyZW50X25yKTsKKwkJaWYg KHAtPmZzLndlaWdodCkKKwkJCXByaW50ZigiIHdlaWdodCAlZCIsIHAtPmZzLndlaWdodCk7CisJ fQorCisJaWYgKHAtPmZzLnJxX3NpemUgPiAxNSkKKwkJcHJpbnRmKCIgYnVja2V0cyAlZCIsIHAt PmZzLnJxX3NpemUpOworCWlmIChwLT5mcy5mbGFnc19mcyAmIEROX1FTSVpFX0lTX0JZVEVTKSB7 CisgICAgICAgICAgICAgICAgaWYgKHAtPmZzLnFzaXplID49IDgxOTIpCisgICAgICAgICAgICAg ICAgICAgICAgICBwcmludGYoIiBxdWV1ZSAlZEtCIiwgIHAtPmZzLnFzaXplIC8gMTAyNCk7Cisg ICAgICAgICAgICAgICAgZWxzZSBpZiAocC0+ZnMucXNpemUgPiAwKQorICAgICAgICAgICAgICAg ICAgICAgICAgcHJpbnRmKCIgcXVldWUgJWRCIiwgcC0+ZnMucXNpemUpOworICAgICAgICB9IGVs c2UKKwkJaWYgKHAtPmZzLnFzaXplID4gMCkKKwkgICAgICAgICAgICAgICAgcHJpbnRmKCIgcXVl dWUgJTNkIiwgcC0+ZnMucXNpemUpOworICAgICAgICBpZiAocC0+ZnMucGxyID4gMCkKKyAgICAg ICAgICAgICAgICBwcmludGYoIiBwbHIgJWYiLCAxLjAgKiBwLT5mcy5wbHIgLyAoZG91YmxlKSgw eDdmZmZmZmZmKSk7CisKKwlpZiAocC0+ZnMuZmxvd19tYXNrLnByb3RvICYmIHAtPmZzLmZsb3df bWFzay5kc3RfaXAgJiYgCisJCXAtPmZzLmZsb3dfbWFzay5zcmNfaXAgJiYgcC0+ZnMuZmxvd19t YXNrLmRzdF9wb3J0ICYmIAorCQlwLT5mcy5mbG93X21hc2suc3JjX3BvcnQgJiYKKwkJcC0+ZnMu Zmxvd19tYXNrLmZsb3dfaWQ2KQorCQlwcmludGYoIiBtYXNrIGFsbCIpOworCWVsc2UgIGlmIChw LT5mcy5mbG93X21hc2sucHJvdG8gfHwgcC0+ZnMuZmxvd19tYXNrLmRzdF9pcCB8fCAKKwkJcC0+ ZnMuZmxvd19tYXNrLnNyY19pcCB8fCBwLT5mcy5mbG93X21hc2suZHN0X3BvcnQgfHwgCisJCXAt PmZzLmZsb3dfbWFzay5zcmNfcG9ydCB8fAorCQlwLT5mcy5mbG93X21hc2suZmxvd19pZDYpIHsK KwkJcHJpbnRmKCJcblx0IG1hc2s6ICIpOworCWlmIChwLT5mcy5mbG93X21hc2sucHJvdG8pCisJ CXByaW50ZigiIHByb3RvIDB4JTAyeCIsIHAtPmZzLmZsb3dfbWFzay5wcm90byk7CisJaWYgKHAt PmZzLmZsb3dfbWFzay5zcmNfaXApCisJCXByaW50ZigiIHNyYy1pcCAweCUwOHgiLCBwLT5mcy5m bG93X21hc2suc3JjX2lwKTsKKwlpZiAocC0+ZnMuZmxvd19tYXNrLnNyY19wb3J0KQorCQlwcmlu dGYoIiBzcmMtcG9ydCAweCUwNHgiLCBwLT5mcy5mbG93X21hc2suc3JjX3BvcnQpOworCWlmIChw LT5mcy5mbG93X21hc2suZHN0X2lwKQorCQlwcmludGYoIiBkc3QtaXAgMHglMDh4IiwgcC0+ZnMu Zmxvd19tYXNrLmRzdF9pcCk7CisJaWYgKHAtPmZzLmZsb3dfbWFzay5kc3RfcG9ydCkKKwkJcHJp bnRmKCIgZHN0LXBvcnQgMHglMDR4IiwgcC0+ZnMuZmxvd19tYXNrLmRzdF9wb3J0KTsKKwlpZiAo cC0+ZnMuZmxvd19tYXNrLmZsb3dfaWQ2KQorCQlwcmludGYoIiBkc3QtcG9ydCAweCUwOHgiLCBw LT5mcy5mbG93X21hc2suZmxvd19pZDYpOworCX0KKwlpZiAocC0+ZnMuZmxhZ3NfZnMgJiBETl9O T0VSUk9SKQorCQlwcmludGYoIiBub2Vycm9yIik7CisKKwlwcmludGYoIlxuIik7CQorfQorCitp bnQKK3BmY3RsX3Nob3dfZHVtbXluZXQoaW50IGRuc29jaywgaW50IG9wdHMpCit7CisgICAgICAg IHZvaWQgKmRhdGEgPSBOVUxMOworICAgICAgICBpbnQgbmJ5dGVzLCBuYWxsb2MgPSAxMDI0Owor CisJaWYgKG9wdHMgJiBQRl9PUFRfVkVSQk9TRSkKKwkJdmVyYm9zZSA9IDE7CisJZWxzZSAKKwkJ dmVyYm9zZSA9IDA7CisJCisJbmJ5dGVzID0gbmFsbG9jOworICAgICAgICB3aGlsZSAobmJ5dGVz ID49IG5hbGxvYykgeworICAgICAgICAgICAgICAgIG5hbGxvYyA9IG5hbGxvYyAqIDIgKyAyMDA7 CisgICAgICAgICAgICAgICAgbmJ5dGVzID0gbmFsbG9jOworICAgICAgICAgICAgICAgIGlmICgo ZGF0YSA9IHJlYWxsb2MoZGF0YSwgbmJ5dGVzKSkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAg ICAgICAgIGVycigxLCAicmVhbGxvYyIpOworICAgICAgICAgICAgICAgIGlmIChnZXRzb2Nrb3B0 KGRuc29jaywgSVBQUk9UT19JUCwgSVBfRFVNTVlORVRfR0VULCBkYXRhLAorICAgICAgICAgICAg ICAgICAgICAgICAgKHNvY2tsZW5fdCAqKSZuYnl0ZXMpIDwgMCkgeworICAgICAgICAgICAgICAg ICAgICAgICAgZnJlZShkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycigxLCAiZ2V0 c29ja29wdChJUF9EVU1NWU5FVF9HRVQpIik7CisJCX0KKyAgICAgICAgfQorCQorICAgICAgICBs aXN0X3BpcGVzKGRhdGEsIG5ieXRlcyk7CisJCisJcmV0dXJuICgwKTsKKworfQpJbmRleDogY29u dHJpYi9wZi9wZmN0bC9wZmN0bF9wYXJzZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9l cmkvcmVwby9jb250cmliL3BmL3BmY3RsL3BmY3RsX3BhcnNlci5jLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIxLjEuMS4xIHBmY3RsX3BhcnNlci5jCi0tLSBjb250cmli L3BmL3BmY3RsL3BmY3RsX3BhcnNlci5jCTIxIE9jdCAyMDA3IDEzOjUzOjE1IC0wMDAwCTEuMS4x LjEKKysrIGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxfcGFyc2VyLmMJMjEgT2N0IDIwMDcgMTk6MDM6 NDkgLTAwMDAKQEAgLTQ4LDYgKzQ4LDkgQEAKICNpbmNsdWRlIDxuZXQvcGZ2YXIuaD4KICNpbmNs dWRlIDxhcnBhL2luZXQuaD4KIAorI2luY2x1ZGUgPG5ldGluZXQvaXBfZncuaD4KKyNpbmNsdWRl IDxuZXRpbmV0L2lwX2R1bW15bmV0Lmg+CisKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUg PHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtOTgxLDYgKzk4NCwxMiBAQAogCX0K IAlpZiAoci0+bGFiZWxbMF0pCiAJCXByaW50ZigiIGxhYmVsIFwiJXNcIiIsIHItPmxhYmVsKTsK KwlpZiAoci0+ZG5waXBlICYmIHItPnBkbnBpcGUpCisJICAgICAgIHByaW50ZigiIGRucXVldWUo JWQsICVkKSIsIHItPmRucGlwZSwgci0+cGRucGlwZSk7CisJZWxzZSBpZiAoci0+ZG5waXBlKQkK KwkJcHJpbnRmKCIgJXMgJWQiLCAKKwkJCXItPmRudHlwZSA9PSBETl9JU19QSVBFID8gImRucGlw ZSIgOiAiZG5xdWV1ZSIsCisJCQlyLT5kbnBpcGUpOwogCWlmIChyLT5xbmFtZVswXSAmJiByLT5w cW5hbWVbMF0pCiAJCXByaW50ZigiIHF1ZXVlKCVzLCAlcykiLCByLT5xbmFtZSwgci0+cHFuYW1l KTsKIAllbHNlIGlmIChyLT5xbmFtZVswXSkKSW5kZXg6IGNvbnRyaWIvcGYvcGZjdGwvcGZjdGxf cGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vY29udHJpYi9wZi9w ZmN0bC9wZmN0bF9wYXJzZXIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11 IC1yMS4xLjEuMSBwZmN0bF9wYXJzZXIuaAotLS0gY29udHJpYi9wZi9wZmN0bC9wZmN0bF9wYXJz ZXIuaAkyMSBPY3QgMjAwNyAxMzo1MzoxNSAtMDAwMAkxLjEuMS4xCisrKyBjb250cmliL3BmL3Bm Y3RsL3BmY3RsX3BhcnNlci5oCTIxIE9jdCAyMDA3IDE5OjAzOjQ5IC0wMDAwCkBAIC02Nyw2ICs2 Nyw3IEBACiB9CiAKIHN0cnVjdCBwZnJfYnVmZmVyOwkvKiBmb3J3YXJkIGRlZmluaXRpb24gKi8K K3N0cnVjdCBkbl9waXBlOwogCiAKIHN0cnVjdCBwZmN0bCB7CkBAIC0yMTcsNiArMjE4LDcgQEAK IAogaW50CXBmY3RsX2FkZF9ydWxlKHN0cnVjdCBwZmN0bCAqLCBzdHJ1Y3QgcGZfcnVsZSAqLCBj b25zdCBjaGFyICopOwogaW50CXBmY3RsX2FkZF9hbHRxKHN0cnVjdCBwZmN0bCAqLCBzdHJ1Y3Qg cGZfYWx0cSAqKTsKK2ludCAJcGZjdGxfYWRkX2R1bW15bmV0KHN0cnVjdCBwZmN0bCAqLCBzdHJ1 Y3QgZG5fcGlwZSAqKTsKIGludAlwZmN0bF9hZGRfcG9vbChzdHJ1Y3QgcGZjdGwgKiwgc3RydWN0 IHBmX3Bvb2wgKiwgc2FfZmFtaWx5X3QpOwogdm9pZAlwZmN0bF9tb3ZlX3Bvb2woc3RydWN0IHBm X3Bvb2wgKiwgc3RydWN0IHBmX3Bvb2wgKik7CiB2b2lkCXBmY3RsX2NsZWFyX3Bvb2woc3RydWN0 IHBmX3Bvb2wgKik7CkBAIC0yNDQsNiArMjQ2LDggQEAKIGludAlldmFsX3BmcXVldWUoc3RydWN0 IHBmY3RsICosIHN0cnVjdCBwZl9hbHRxICosIHN0cnVjdCBub2RlX3F1ZXVlX2J3ICosCiAJICAg IHN0cnVjdCBub2RlX3F1ZXVlX29wdCAqKTsKIAordm9pZAlwcmludF9kdW1teW5ldChzdHJ1Y3Qg ZG5fcGlwZSAqKTsKKwogdm9pZAkgcHJpbnRfYWx0cShjb25zdCBzdHJ1Y3QgcGZfYWx0cSAqLCB1 bnNpZ25lZCwgc3RydWN0IG5vZGVfcXVldWVfYncgKiwKIAkgICAgc3RydWN0IG5vZGVfcXVldWVf b3B0ICopOwogdm9pZAkgcHJpbnRfcXVldWUoY29uc3Qgc3RydWN0IHBmX2FsdHEgKiwgdW5zaWdu ZWQsIHN0cnVjdCBub2RlX3F1ZXVlX2J3ICosCkBAIC0yODYsNiArMjkwLDcgQEAKICNkZWZpbmUg UEZDVExfRkxBR19PUFRJT04JMHgwOAogI2RlZmluZSBQRkNUTF9GTEFHX0FMVFEJCTB4MTAKICNk ZWZpbmUgUEZDVExfRkxBR19UQUJMRQkweDIwCisjZGVmaW5lCVBGQ1RMX0ZMQUdfRFVNTVlORVQJ MHg0MAogCiBleHRlcm4gY29uc3Qgc3RydWN0IHBmX3RpbWVvdXQgcGZfdGltZW91dHNbXTsKIApJ bmRleDogc2Jpbi9wZmN0bC9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9lcmkv cmVwby9zYmluL3BmY3RsL01ha2VmaWxlLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRp ZmYgLXUgLXIxLjEuMS4xIE1ha2VmaWxlCi0tLSBzYmluL3BmY3RsL01ha2VmaWxlCTIxIE9jdCAy MDA3IDEzOjU0OjE2IC0wMDAwCTEuMS4xLjEKKysrIHNiaW4vcGZjdGwvTWFrZWZpbGUJMjEgT2N0 IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTExLDYgKzExLDcgQEAKIFNSQ1MrPSBwZmN0bF9vc2Zw LmMgcGZjdGxfcmFkaXguYyBwZmN0bF90YWJsZS5jIHBmY3RsX3FzdGF0cy5jCiBTUkNTKz0gcGZj dGxfb3B0aW1pemUuYwogU1JDUys9IHBmX3J1bGVzZXQuYworU1JDUys9IHBmY3RsX2RuLmMKIAog Q0ZMQUdTKz0gLVdhbGwgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVduby11bmluaXRpYWxpemVkCiBD RkxBR1MrPSAtV3N0cmljdC1wcm90b3R5cGVzIC1JJHsuQ1VSRElSfS8uLi8uLi9jb250cmliL3Bm L3BmY3RsCkluZGV4OiBzeXMvY29udHJpYi9wZi9uZXQvcGYuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvaG9tZS9lcmkvcmVwby9zeXMvY29udHJpYi9wZi9uZXQvcGYuYyx2CnJldHJpZXZpbmcgcmV2 aXNpb24gMS4xLjEuMQpkaWZmIC11IC1yMS4xLjEuMSBwZi5jCi0tLSBzeXMvY29udHJpYi9wZi9u ZXQvcGYuYwkyMSBPY3QgMjAwNyAxMzo1NDo1NiAtMDAwMAkxLjEuMS4xCisrKyBzeXMvY29udHJp Yi9wZi9uZXQvcGYuYwkyMSBPY3QgMjAwNyAxOTowMzo0OSAtMDAwMApAQCAtNjcxOCw2ICs2NzE5 LDcgQEAKIAlpbnQJCQkgb2ZmLCBkaXJuZHgsIHBxaWQgPSAwOwogCiAjaWZkZWYgX19GcmVlQlNE X18KKwlzdHJ1Y3QgaXBfZndfYXJncwkgZG5mbG93OwogCVBGX0xPQ0soKTsKICNlbmRpZgogCWlm ICghcGZfc3RhdHVzLnJ1bm5pbmcpCkBAIC02NzQ0LDYgKzY3NDYsNyBAQAogCQlQRl9VTkxPQ0so KTsKIAkJcmV0dXJuIChQRl9QQVNTKTsKIAl9CisJCiAjZWxzZQogCWlmIChwZC5wZl9tdGFnLT5m bGFncyAmIFBGX1RBR19HRU5FUkFURUQpCiAJCXJldHVybiAoUEZfUEFTUyk7CkBAIC02ODI3LDYg KzY4MzAsMTMgQEAKIAkJc3RydWN0IHRjcGhkcgl0aDsKIAogCQlwZC5oZHIudGNwID0gJnRoOwor CisjaWZkZWYgX19GcmVlQlNEX18KKyAgICAgICAgICAgICAgICBkbmZsb3cuZl9pZC5mbGFncyA9 IHRoLnRoX2ZsYWdzOworICAgICAgICAgICAgICAgIGRuZmxvdy5mX2lkLmRzdF9wb3J0ID0gdGgu dGhfZHBvcnQ7CisgICAgICAgICAgICAgICAgZG5mbG93LmZfaWQuc3JjX3BvcnQgPSB0aC50aF9z cG9ydDsKKyNlbmRpZgorCiAJCWlmICghcGZfcHVsbF9oZHIobSwgb2ZmLCAmdGgsIHNpemVvZih0 aCksCiAJCSAgICAmYWN0aW9uLCAmcmVhc29uLCBBRl9JTkVUKSkgewogCQkJbG9nID0gYWN0aW9u ICE9IFBGX1BBU1M7CkBAIC02ODY4LDYgKzY4NzgsMTIgQEAKIAkJc3RydWN0IHVkcGhkcgl1aDsK IAogCQlwZC5oZHIudWRwID0gJnVoOworCisjaWZkZWYgX19GcmVlQlNEX18KKyAgICAgICAgICAg ICAgICBkbmZsb3cuZl9pZC5kc3RfcG9ydCA9IHVoLnVoX2Rwb3J0OworICAgICAgICAgICAgICAg IGRuZmxvdy5mX2lkLnNyY19wb3J0ID0gdWgudWhfc3BvcnQ7CisjZW5kaWYKKwogCQlpZiAoIXBm X3B1bGxfaGRyKG0sIG9mZiwgJnVoLCBzaXplb2YodWgpLAogCQkgICAgJmFjdGlvbiwgJnJlYXNv biwgQUZfSU5FVCkpIHsKIAkJCWxvZyA9IGFjdGlvbiAhPSBQRl9QQVNTOwpAQCAtNjkwOSw2ICs2 OTI1LDcgQEAKIAkJc3RydWN0IGljbXAJaWg7CiAKIAkJcGQuaGRyLmljbXAgPSAmaWg7CisKIAkJ aWYgKCFwZl9wdWxsX2hkcihtLCBvZmYsICZpaCwgSUNNUF9NSU5MRU4sCiAJCSAgICAmYWN0aW9u LCAmcmVhc29uLCBBRl9JTkVUKSkgewogCQkJbG9nID0gYWN0aW9uICE9IFBGX1BBU1M7CkBAIC03 MDgzLDYgKzcxMDAsMzMgQEAKIAkJcGZfcm91dGUobTAsIHIsIGRpciwgaWZwLCBzLCAmcGQpOwog CiAjaWZkZWYgX19GcmVlQlNEX18KKwlpZiAoci0+ZG5waXBlICYmIGlwX2RuX2lvX3B0ciAhPSBO VUxMKSB7CisJCQlzdHJ1Y3QgaXBfZncgZHVtbXlydWxlOworCisgICAgICAJCQlkdW1teXJ1bGUu Y21kLT5vcGNvZGUgPSAKKwkJCQlyLT5kbnR5cGUgPT0gRE5fSVNfUElQRSA/IE9fUElQRSA6IE9f UVVFVUU7CisJCQlkdW1teXJ1bGUuYWN0X29mcyA9IDA7CisJCQlkdW1teXJ1bGUuY21kX2xlbiA9 IDE7CisJCQlpZiAoYWN0aW9uID09IFBGX1BBU1MgJiYgKAorCQkJCXBxaWQgfHwgKHBkLnRvcyAm IElQVE9TX0xPV0RFTEFZKSkpIAorCQkJCWRuZmxvdy5jb29raWUgPSByLT5wZG5waXBlOworCQkJ ZWxzZSAKKwkJCQlkbmZsb3cuY29va2llID0gci0+ZG5waXBlOworICAgICAgICAgICAgICAgIAlk bmZsb3cucnVsZSA9ICZkdW1teXJ1bGU7CisgICAgICAgICAgICAgICAgCWRuZmxvdy5mX2lkLmFk ZHJfdHlwZSA9IDQ7IC8qIElQdjQgdHlwZSAqLworICAgICAgICAgICAgICAgIAlkbmZsb3cuZl9p ZC5wcm90byA9IHBkLnByb3RvOworCQkJUEZfVU5MT0NLKCk7CisJCQkKKwkJCWggPSBtdG9kKCpt MCwgc3RydWN0IGlwICopOworCQkJTlRPSFMoaC0+aXBfbGVuKTsKKwkJCU5UT0hTKGgtPmlwX29m Zik7CisJCQlpcF9kbl9pb19wdHIoKm0wLCAKKwkJCQlkaXIgPT0gUEZfSU4gPyBETl9UT19JUF9J TiA6IEROX1RPX0lQX09VVCwgCisJCQkJJmRuZmxvdyk7CisJCQkqbTAgPSBOVUxMOworCQkJcmV0 dXJuIChhY3Rpb24pOworCQl9CisJCiAJUEZfVU5MT0NLKCk7CiAjZW5kaWYKIApAQCAtNzExMSw2 ICs3MTU1LDcgQEAKIAlpbnQJCQkgb2ZmLCB0ZXJtaW5hbCA9IDAsIGRpcm5keCwgcmhfY250ID0g MDsKIAogI2lmZGVmIF9fRnJlZUJTRF9fCisJc3RydWN0IGlwX2Z3X2FyZ3MJIGRuZmxvdzsKIAlQ Rl9MT0NLKCk7CiAjZW5kaWYKIApAQCAtNzI4Niw2ICs3MzMxLDEyIEBACiAJCXN0cnVjdCB0Y3Bo ZHIJdGg7CiAKIAkJcGQuaGRyLnRjcCA9ICZ0aDsKKyNpZmRlZiBfX0ZyZWVCU0RfXworICAgICAg ICAgICAgICAgIGRuZmxvdy5mX2lkLmZsYWdzID0gdGgudGhfZmxhZ3M7CisgICAgICAgICAgICAg ICAgZG5mbG93LmZfaWQuZHN0X3BvcnQgPSB0aC50aF9kcG9ydDsKKyAgICAgICAgICAgICAgICBk bmZsb3cuZl9pZC5zcmNfcG9ydCA9IHRoLnRoX3Nwb3J0OworI2VuZGlmCisKIAkJaWYgKCFwZl9w dWxsX2hkcihtLCBvZmYsICZ0aCwgc2l6ZW9mKHRoKSwKIAkJICAgICZhY3Rpb24sICZyZWFzb24s IEFGX0lORVQ2KSkgewogCQkJbG9nID0gYWN0aW9uICE9IFBGX1BBU1M7CkBAIC03MzI2LDYgKzcz NzcsMTEgQEAKIAkJc3RydWN0IHVkcGhkcgl1aDsKIAogCQlwZC5oZHIudWRwID0gJnVoOworI2lm ZGVmIF9fRnJlZUJTRF9fCisgICAgICAgICAgICAgICAgZG5mbG93LmZfaWQuZHN0X3BvcnQgPSB1 aC51aF9kcG9ydDsKKyAgICAgICAgICAgICAgICBkbmZsb3cuZl9pZC5zcmNfcG9ydCA9IHVoLnVo X3Nwb3J0OworI2VuZGlmCisKIAkJaWYgKCFwZl9wdWxsX2hkcihtLCBvZmYsICZ1aCwgc2l6ZW9m KHVoKSwKIAkJICAgICZhY3Rpb24sICZyZWFzb24sIEFGX0lORVQ2KSkgewogCQkJbG9nID0gYWN0 aW9uICE9IFBGX1BBU1M7CkBAIC03NTM5LDggKzc1OTUsMzMgQEAKIAkJcGZfcm91dGU2KG0wLCBy LCBkaXIsIGlmcCwgcywgJnBkKTsKIAogI2lmZGVmIF9fRnJlZUJTRF9fCisJaWYgKHItPmRucGlw ZSAmJiBpcF9kbl9pb19wdHIgIT0gTlVMTCkgeworCQkJc3RydWN0IGlwX2Z3IGR1bW15cnVsZTsK KworICAgICAgCQkJZHVtbXlydWxlLmNtZC0+b3Bjb2RlID0gCisJCQkJci0+ZG50eXBlID09IERO X0lTX1BJUEUgPyBPX1BJUEUgOiBPX1FVRVVFOworCQkJZHVtbXlydWxlLmFjdF9vZnMgPSAwOwor CQkJZHVtbXlydWxlLmNtZF9sZW4gPSAxOworCQkJaWYgKGFjdGlvbiA9PSBQRl9QQVNTICYmICgK KwkJCQlwZC50b3MgJiBJUFRPU19MT1dERUxBWSkpIAorCQkJCWRuZmxvdy5jb29raWUgPSByLT5w ZG5waXBlOworCQkJZWxzZSAKKwkJCQlkbmZsb3cuY29va2llID0gci0+ZG5waXBlOworICAgICAg ICAgICAgICAgIAlkbmZsb3cucnVsZSA9ICZkdW1teXJ1bGU7CisgICAgICAgICAgICAgICAgCWRu Zmxvdy5mX2lkLmFkZHJfdHlwZSA9IDY7IC8qIElQdjQgdHlwZSAqLworICAgICAgICAgICAgICAg IAlkbmZsb3cuZl9pZC5wcm90byA9IHBkLnByb3RvOworCQkJUEZfVU5MT0NLKCk7CisJCQkKKwkJ CWlwX2RuX2lvX3B0cigqbTAsIAorCQkJCWRpciA9PSBQRl9JTiA/IEROX1RPX0lQNl9JTiA6IERO X1RPX0lQNl9PVVQsIAorCQkJCSZkbmZsb3cpOworCQkJKm0wID0gTlVMTDsKKwkJCXJldHVybiAo YWN0aW9uKTsKKwkJfQorCQogCVBGX1VOTE9DSygpOwogI2VuZGlmCisKIAlyZXR1cm4gKGFjdGlv bik7CiB9CiAjZW5kaWYgLyogSU5FVDYgKi8KSW5kZXg6IHN5cy9jb250cmliL3BmL25ldC9wZl9p b2N0bC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2VyaS9yZXBvL3N5cy9jb250cmliL3Bm L25ldC9wZl9pb2N0bC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIx LjEuMS4xIHBmX2lvY3RsLmMKLS0tIHN5cy9jb250cmliL3BmL25ldC9wZl9pb2N0bC5jCTIxIE9j dCAyMDA3IDEzOjU0OjU2IC0wMDAwCTEuMS4xLjEKKysrIHN5cy9jb250cmliL3BmL25ldC9wZl9p b2N0bC5jCTIxIE9jdCAyMDA3IDE5OjAzOjQ5IC0wMDAwCkBAIC0zNTIyLDggKzM1MjIsMTYgQEAK IAkgKiBieXRlIG9yZGVyLiAKIAkgKi8KIAlzdHJ1Y3QgaXAgKmggPSBOVUxMOworCXN0cnVjdCBt X3RhZyAqZG5fdGFnOwogCWludCBjaGs7CiAKKyAgICAgICAgZG5fdGFnID0gbV90YWdfZmluZCgq bSwgUEFDS0VUX1RBR19EVU1NWU5FVCwgTlVMTCk7CisJaWYgKGRuX3RhZyAhPSBOVUxMICYmIAor CQkoKHN0cnVjdCBkbl9wa3RfdGFnICopKGRuX3RhZysxKSktPmRuX2RpciA9PSBETl9UT19JUF9J TikgeworCQltX3RhZ19kZWxldGUoKm0sIGRuX3RhZyk7CisgICAgICAgICAgICAgICAgcmV0dXJu IChQRl9QQVNTKTsKKyAgICAgICAgfQorCiAJaWYgKCgqbSktPm1fcGt0aGRyLmxlbiA+PSAoaW50 KXNpemVvZihzdHJ1Y3QgaXApKSB7CiAJCS8qIGlmIG1fcGt0aGRyLmxlbiBpcyBsZXNzIHRoYW4g aXAgaGVhZGVyLCBwZiB3aWxsIGhhbmRsZS4gKi8KIAkJaCA9IG10b2QoKm0sIHN0cnVjdCBpcCAq KTsKQEAgLTM1NTcsNiArMzU2NSw3IEBACiAJICogYnl0ZSBvcmRlci4gCiAJICovCiAJc3RydWN0 IGlwICpoID0gTlVMTDsKKwlzdHJ1Y3QgbV90YWcgKmRuX3RhZzsKIAlpbnQgY2hrOwogCiAJLyog V2UgbmVlZCBhIHByb3BlciBDU1VNIGJlZm9yIHdlIHN0YXJ0IChzLiBPcGVuQlNEIGlwX291dHB1 dCkgKi8KQEAgLTM1NjQsNiArMzU3MywxNCBAQAogCQlpbl9kZWxheWVkX2Nrc3VtKCptKTsKIAkJ KCptKS0+bV9wa3RoZHIuY3N1bV9mbGFncyAmPSB+Q1NVTV9ERUxBWV9EQVRBOwogCX0KKwkKKwlk bl90YWcgPSBtX3RhZ19maW5kKCptLCBQQUNLRVRfVEFHX0RVTU1ZTkVULCBOVUxMKTsKKwlpZiAo ZG5fdGFnICE9IE5VTEwgJiYgCisJCSgoc3RydWN0IGRuX3BrdF90YWcgKikoZG5fdGFnKzEpKS0+ ZG5fZGlyID09IEROX1RPX0lQX09VVCkgeworCQltX3RhZ19kZWxldGUoKm0sIGRuX3RhZyk7Cisg ICAgICAgICAgICAgICAgcmV0dXJuIChQRl9QQVNTKTsKKyAgICAgICAgfQorCQogCWlmICgoKm0p LT5tX3BrdGhkci5sZW4gPj0gKGludClzaXplb2YoKmgpKSB7CiAJCS8qIGlmIG1fcGt0aGRyLmxl biBpcyBsZXNzIHRoYW4gaXAgaGVhZGVyLCBwZiB3aWxsIGhhbmRsZS4gKi8KIAkJaCA9IG10b2Qo Km0sIHN0cnVjdCBpcCAqKTsKQEAgLTM1OTMsNiArMzYxMCwxNCBAQAogCSAqIElQdjYgaXMgbm90 IGFmZmVjdGVkIGJ5IGlwX2xlbi9pcF9vZmYgYnl0ZSBvcmRlciBjaGFuZ2VzLgogCSAqLwogCWlu dCBjaGs7CisJc3RydWN0IG1fdGFnICpkbl90YWc7CisJCisJZG5fdGFnID0gbV90YWdfZmluZCgq bSwgUEFDS0VUX1RBR19EVU1NWU5FVCwgTlVMTCk7CisJaWYgKGRuX3RhZyAhPSBOVUxMICYmIAor CQkoKHN0cnVjdCBkbl9wa3RfdGFnICopKGRuX3RhZysxKSktPmRuX2RpciA9PSBETl9UT19JUDZf SU4pIHsKKwkJbV90YWdfZGVsZXRlKCptLCBkbl90YWcpOworICAgICAgICAgICAgICAgIHJldHVy biAoUEZfUEFTUyk7CisgICAgICAgIH0KIAogCS8qCiAJICogSW4gY2FzZSBvZiBsb29wYmFjayB0 cmFmZmljIElQdjYgdXNlcyB0aGUgcmVhbCBpbnRlcmZhY2UgaW4KQEAgLTM2MTYsNiArMzY0MSwx NCBAQAogCSAqIElQdjYgZG9lcyBub3QgYWZmZWN0ZWQgaXBfbGVuL2lwX29mZiBieXRlIG9yZGVy IGNoYW5nZXMuCiAJICovCiAJaW50IGNoazsKKwlzdHJ1Y3QgbV90YWcgKmRuX3RhZzsKKworCWRu X3RhZyA9IG1fdGFnX2ZpbmQoKm0sIFBBQ0tFVF9UQUdfRFVNTVlORVQsIE5VTEwpOworCWlmIChk bl90YWcgIT0gTlVMTCAmJiAKKwkJKChzdHJ1Y3QgZG5fcGt0X3RhZyAqKShkbl90YWcrMSkpLT5k bl9kaXIgPT0gRE5fVE9fSVA2X09VVCkgeworCQltX3RhZ19kZWxldGUoKm0sIGRuX3RhZyk7Cisg ICAgICAgICAgICAgICAgcmV0dXJuIChQRl9QQVNTKTsKKyAgICAgICAgfQogCiAJLyogV2UgbmVl ZCBhIHByb3BlciBDU1VNIGJlZm9yIHdlIHN0YXJ0IChzLiBPcGVuQlNEIGlwX291dHB1dCkgKi8K IAlpZiAoKCptKS0+bV9wa3RoZHIuY3N1bV9mbGFncyAmIENTVU1fREVMQVlfREFUQSkgewpJbmRl eDogc3lzL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUv ZXJpL3JlcG8vc3lzL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMS4xLjEKZGlmZiAtdSAtcjEuMS4xLjEgcGZ2YXIuaAotLS0gc3lzL2NvbnRyaWIvcGYvbmV0 L3BmdmFyLmgJMjEgT2N0IDIwMDcgMTM6NTQ6NTYgLTAwMDAJMS4xLjEuMQorKysgc3lzL2NvbnRy aWIvcGYvbmV0L3BmdmFyLmgJMjEgT2N0IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTU3LDYgKzU3 LDkgQEAKIAogI2lmZGVmIF9fRnJlZUJTRF9fCiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorCisj aW5jbHVkZSA8bmV0aW5ldC9pcF9mdy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaXBfZHVtbXluZXQu aD4KICNlbmRpZgogCiAjaW5jbHVkZSA8bmV0aW5ldC90Y3BfZnNtLmg+CkBAIC02MzIsNiArNjM1 LDkgQEAKIAl9CQkJIG1heF9zcmNfY29ubl9yYXRlOwogCXVfaW50MzJfdAkJIHFpZDsKIAl1X2lu dDMyX3QJCSBwcWlkOworCXVfaW50MzJfdAkJIGRucGlwZTsKKwl1X2ludDMyX3QJCSBwZG5waXBl OworCXVfaW50MzJfdAkJIGRudHlwZTsKIAl1X2ludDMyX3QJCSBydF9saXN0aWQ7CiAJdV9pbnQz Ml90CQkgbnI7CiAJdV9pbnQzMl90CQkgcHJvYjsKSW5kZXg6IHN5cy9uZXRpbmV0L2lwX2R1bW15 bmV0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vc3lzL25ldGluZXQvaXBf ZHVtbXluZXQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11IC1yMS4xLjEu MSBpcF9kdW1teW5ldC5jCi0tLSBzeXMvbmV0aW5ldC9pcF9kdW1teW5ldC5jCTIxIE9jdCAyMDA3 IDEzOjU1OjM2IC0wMDAwCTEuMS4xLjEKKysrIHN5cy9uZXRpbmV0L2lwX2R1bW15bmV0LmMJMjEg T2N0IDIwMDcgMTk6MDM6NDkgLTAwMDAKQEAgLTg0LDYgKzg0LDkgQEAKICNpbmNsdWRlIDxuZXRp bmV0L2lwNi5oPiAgICAgICAvKiBmb3IgaXA2X2lucHV0LCBpcDZfb3V0cHV0IHByb3RvdHlwZXMg Ki8KICNpbmNsdWRlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+CiAKKworc3RhdGljIHN0cnVjdCBpcF9m dyBkZWZhdWx0X3J1bGUgOworCiAvKgogICogV2Uga2VlcCBhIHByaXZhdGUgdmFyaWFibGUgZm9y IHRoZSBzaW11bGF0aW9uIHRpbWUsIGJ1dCB3ZSBjb3VsZAogICogcHJvYmFibHkgdXNlIGFuIGV4 aXN0aW5nIG9uZSAoInNvZnR0aWNrcyIgaW4gc3lzL2tlcm4va2Vybl90aW1lb3V0LmMpCkBAIC0y MTQsNyArMjE3LDYgQEAKIHN0YXRpYyB2b2lkIGR1bW15bmV0X3NlbmQoc3RydWN0IG1idWYgKik7 CiB2b2lkIGR1bW15bmV0X2RyYWluKHZvaWQpOwogc3RhdGljIGlwX2RuX2lvX3QgZHVtbXluZXRf aW87Ci1zdGF0aWMgdm9pZCBkbl9ydWxlX2RlbGV0ZSh2b2lkICopOwogCiAvKgogICogSGVhcCBt YW5hZ2VtZW50IGZ1bmN0aW9ucy4KQEAgLTE0OTAsNyArMTQ5Miw2IEBACiAJRFVNTVlORVRfVU5M T0NLKCk7CiB9CiAKLWV4dGVybiBzdHJ1Y3QgaXBfZncgKmlwX2Z3X2RlZmF1bHRfcnVsZSA7CiBz dGF0aWMgdm9pZAogZG5fcnVsZV9kZWxldGVfZnMoc3RydWN0IGRuX2Zsb3dfc2V0ICpmcywgdm9p ZCAqcikKIHsKQEAgLTE1MDMsNyArMTUwNCw3IEBACiAJICAgIGZvciAobSA9IHEtPmhlYWQgOyBt IDsgbSA9IG0tPm1fbmV4dHBrdCApIHsKIAkJc3RydWN0IGRuX3BrdF90YWcgKnBrdCA9IGRuX3Rh Z19nZXQobSkgOwogCQlpZiAocGt0LT5ydWxlID09IHIpCi0JCSAgICBwa3QtPnJ1bGUgPSBpcF9m d19kZWZhdWx0X3J1bGUgOworCQkgICAgcGt0LT5ydWxlID0gJmRlZmF1bHRfcnVsZSA7CiAJICAg IH0KIH0KIC8qCkBAIC0xNTM2LDcgKzE1MzcsNyBAQAogCQlmb3IgKG0gPSBwaXBlLT5oZWFkIDsg bSA7IG0gPSBtLT5tX25leHRwa3QgKSB7CiAJCQlwa3QgPSBkbl90YWdfZ2V0KG0pOwogCQkJaWYg KHBrdC0+cnVsZSA9PSByKQotCQkJCXBrdC0+cnVsZSA9IGlwX2Z3X2RlZmF1bHRfcnVsZTsKKwkJ CQlwa3QtPnJ1bGUgPSAmZGVmYXVsdF9ydWxlOwogCQl9CiAJfQogICAgIERVTU1ZTkVUX1VOTE9D SygpOwpAQCAtMjEyOSw3ICsyMTMwLDIwIEBACiAKIAlpcF9kbl9jdGxfcHRyID0gaXBfZG5fY3Rs OwogCWlwX2RuX2lvX3B0ciA9IGR1bW15bmV0X2lvOwotCWlwX2RuX3J1bGVkZWxfcHRyID0gZG5f cnVsZV9kZWxldGU7CisKKwliemVybygmZGVmYXVsdF9ydWxlLCBzaXplb2YgZGVmYXVsdF9ydWxl KTsKKworICAgICAgICBkZWZhdWx0X3J1bGUuYWN0X29mcyA9IDA7CisgICAgICAgIGRlZmF1bHRf cnVsZS5ydWxlbnVtID0gSVBGV19ERUZBVUxUX1JVTEU7CisgICAgICAgIGRlZmF1bHRfcnVsZS5j bWRfbGVuID0gMTsKKyAgICAgICAgZGVmYXVsdF9ydWxlLnNldCA9IFJFU1ZEX1NFVDsKKworICAg ICAgICBkZWZhdWx0X3J1bGUuY21kWzBdLmxlbiA9IDE7CisgICAgICAgIGRlZmF1bHRfcnVsZS5j bWRbMF0ub3Bjb2RlID0KKyNpZmRlZiBJUEZJUkVXQUxMX0RFRkFVTFRfVE9fQUNDRVBUCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgPyBPX0FDQ0VQVCA6CisjZW5kaWYKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT19ERU5ZOwogCiAJVEFTS19JTklUKCZkbl90YXNr LCAwLCBkdW1teW5ldF90YXNrLCBOVUxMKTsKIAlkbl90cSA9IHRhc2txdWV1ZV9jcmVhdGVfZmFz dCgiZHVtbXluZXQiLCBNX05PV0FJVCwKQEAgLTIxNDksNyArMjE2Myw2IEBACiB7CiAJaXBfZG5f Y3RsX3B0ciA9IE5VTEw7CiAJaXBfZG5faW9fcHRyID0gTlVMTDsKLQlpcF9kbl9ydWxlZGVsX3B0 ciA9IE5VTEw7CiAKIAlEVU1NWU5FVF9MT0NLKCk7CiAJY2FsbG91dF9zdG9wKCZkbl90aW1lb3V0 KTsKQEAgLTIxOTcsNSArMjIxMCw0IEBACiAJTlVMTAogfTsKIERFQ0xBUkVfTU9EVUxFKGR1bW15 bmV0LCBkdW1teW5ldF9tb2QsIFNJX1NVQl9QUk9UT19JRkFUVEFDSERPTUFJTiwgU0lfT1JERVJf QU5ZKTsKLU1PRFVMRV9ERVBFTkQoZHVtbXluZXQsIGlwZncsIDIsIDIsIDIpOwogTU9EVUxFX1ZF UlNJT04oZHVtbXluZXQsIDEpOwpJbmRleDogc3lzL25ldGluZXQvaXBfZHVtbXluZXQuaAo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClJDUyBmaWxlOiAvaG9tZS9lcmkvcmVwby9zeXMvbmV0aW5ldC9pcF9kdW1teW5ldC5o LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIxLjEuMS4xIGlwX2R1bW15 bmV0LmgKLS0tIHN5cy9uZXRpbmV0L2lwX2R1bW15bmV0LmgJMjEgT2N0IDIwMDcgMTM6NTU6MzYg LTAwMDAJMS4xLjEuMQorKysgc3lzL25ldGluZXQvaXBfZHVtbXluZXQuaAkyMSBPY3QgMjAwNyAx OTowMzo0OSAtMDAwMApAQCAtMzQyLDEzICszNDIsMTMgQEAKIAogI2lmZGVmIF9LRVJORUwKIHR5 cGVkZWYJaW50IGlwX2RuX2N0bF90KHN0cnVjdCBzb2Nrb3B0ICopOyAvKiByYXdfaXAuYyAqLwot dHlwZWRlZgl2b2lkIGlwX2RuX3J1bGVkZWxfdCh2b2lkICopOyAvKiBpcF9mdy5jICovCiB0eXBl ZGVmCWludCBpcF9kbl9pb190KHN0cnVjdCBtYnVmICptLCBpbnQgZGlyLCBzdHJ1Y3QgaXBfZndf YXJncyAqZndhKTsKIGV4dGVybglpcF9kbl9jdGxfdCAqaXBfZG5fY3RsX3B0cjsKLWV4dGVybglp cF9kbl9ydWxlZGVsX3QgKmlwX2RuX3J1bGVkZWxfcHRyOwogZXh0ZXJuCWlwX2RuX2lvX3QgKmlw X2RuX2lvX3B0cjsKICNkZWZpbmUJRFVNTVlORVRfTE9BREVECShpcF9kbl9pb19wdHIgIT0gTlVM TCkKIAordm9pZCBkbl9ydWxlX2RlbGV0ZSh2b2lkICopOworCiAvKgogICogUmV0dXJuIHRoZSBJ UEZXIHJ1bGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBkdW1teW5ldCB0YWc7IGlmIGFueS4KICAqIE1h a2Ugc3VyZSB0aGF0IHRoZSBkdW1teW5ldCB0YWcgaXMgbm90IHJldXNlZCBieSBsb3dlciBsYXll cnMuCkluZGV4OiBzeXMvbmV0aW5ldC9pcF9mdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21l L2VyaS9yZXBvL3N5cy9uZXRpbmV0L2lwX2Z3LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4x LjEKZGlmZiAtdSAtcjEuMS4xLjEgaXBfZncuaAotLS0gc3lzL25ldGluZXQvaXBfZncuaAkyMSBP Y3QgMjAwNyAxMzo1NTozNiAtMDAwMAkxLjEuMS4xCisrKyBzeXMvbmV0aW5ldC9pcF9mdy5oCTIx IE9jdCAyMDA3IDE5OjAzOjQ5IC0wMDAwCkBAIC02MTUsNSArNjE1LDcgQEAKIGV4dGVybglpcF9m d19jaGtfdAkqaXBfZndfY2hrX3B0cjsKICNkZWZpbmUJSVBGV19MT0FERUQJKGlwX2Z3X2Noa19w dHIgIT0gTlVMTCkKIAorI2RlZmluZSBJUEZXX0RFRkFVTFRfUlVMRSAgICAgICA2NTUzNQorCiAj ZW5kaWYgLyogX0tFUk5FTCAqLwogI2VuZGlmIC8qIF9JUEZXMl9IICovCkluZGV4OiBzeXMvbmV0 aW5ldC9pcF9mdzIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9lcmkvcmVwby9zeXMvbmV0 aW5ldC9pcF9mdzIuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZmIC11IC1yMS4x LjEuMSBpcF9mdzIuYwotLS0gc3lzL25ldGluZXQvaXBfZncyLmMJMjEgT2N0IDIwMDcgMTM6NTU6 MzYgLTAwMDAJMS4xLjEuMQorKysgc3lzL25ldGluZXQvaXBfZncyLmMJMjEgT2N0IDIwMDcgMTk6 MDM6NDkgLTAwMDAKQEAgLTEyMiw3ICsxMjIsNiBAQAogCiBzdGF0aWMgc3RydWN0IGNhbGxvdXQg aXBmd190aW1lb3V0Owogc3RhdGljIHVtYV96b25lX3QgaXBmd19keW5fcnVsZV96b25lOwotI2Rl ZmluZQlJUEZXX0RFRkFVTFRfUlVMRQk2NTUzNQogCiAvKgogICogRGF0YSBzdHJ1Y3R1cmUgdG8g Y2FjaGUgb3VyIHVjcmVkIHJlbGF0ZWQKQEAgLTM4MjgsNyArMzgyNyw3IEBACiAJd2hpbGUgKChy dWxlID0gaGVhZCkgIT0gTlVMTCkgewogCQloZWFkID0gaGVhZC0+bmV4dDsKIAkJaWYgKERVTU1Z TkVUX0xPQURFRCkKLQkJCWlwX2RuX3J1bGVkZWxfcHRyKHJ1bGUpOworCQkJZG5fcnVsZV9kZWxl dGUocnVsZSk7CiAJCWZyZWUocnVsZSwgTV9JUEZXKTsKIAl9CiB9CkluZGV4OiBzeXMvbmV0aW5l dC9pcF9md19wZmlsLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvZXJpL3JlcG8vc3lzL25l dGluZXQvaXBfZndfcGZpbC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUg LXIxLjEuMS4xIGlwX2Z3X3BmaWwuYwotLS0gc3lzL25ldGluZXQvaXBfZndfcGZpbC5jCTIxIE9j dCAyMDA3IDEzOjU1OjM2IC0wMDAwCTEuMS4xLjEKKysrIHN5cy9uZXRpbmV0L2lwX2Z3X3BmaWwu YwkyMSBPY3QgMjAwNyAxOTowMzo0OSAtMDAwMApAQCAtNzIsOSArNzIsNiBAQAogCiBpbnQgaXBm d19jaGdfaG9vayhTWVNDVExfSEFORExFUl9BUkdTKTsKIAotLyogRHVtbXluZXQgaG9va3MuICov Ci1pcF9kbl9ydWxlZGVsX3QJKmlwX2RuX3J1bGVkZWxfcHRyID0gTlVMTDsKLQogLyogRGl2ZXJ0 IGhvb2tzLiAqLwogaXBfZGl2ZXJ0X3BhY2tldF90ICppcF9kaXZlcnRfcHRyID0gTlVMTDsKIAo= ------=_Part_98_11251979.1193602269616-- From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 20:57:12 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57CD516A41A for ; Sun, 28 Oct 2007 20:57:12 +0000 (UTC) (envelope-from wearabnet@yahoo.ca) Received: from web33706.mail.mud.yahoo.com (web33706.mail.mud.yahoo.com [68.142.201.203]) by mx1.freebsd.org (Postfix) with SMTP id 1A85613C480 for ; Sun, 28 Oct 2007 20:57:11 +0000 (UTC) (envelope-from wearabnet@yahoo.ca) Received: (qmail 7850 invoked by uid 60001); 28 Oct 2007 20:57:11 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.ca; h=X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=F7J9iBqcw7WmTzZ5FBvF86b/LxcdzXaGOXBDTgTfw/w3SSQwUvSMDlP7oTyNTg6qtees4b9Eu0NIgMr/cZTPC2RWOnDuca9EYwh6zOjgSVLHsMpYuQK7Nij+F8onOqQGQ1mpK6dd26kZqpwVIdLwUDOmBA0v6a5YJDzIDpWxNkk=; X-YMail-OSG: NAU4TzcVM1mqRJdUDApPnquBCWwsI.uZWX58L1gSSAc0RBZCAZFLq8lgKkB6jXHVFA-- Received: from [89.211.5.3] by web33706.mail.mud.yahoo.com via HTTP; Sun, 28 Oct 2007 13:57:11 PDT X-Mailer: YahooMailRC/814.06 YahooMailWebService/0.7.134.12 Date: Sun, 28 Oct 2007 13:57:11 -0700 (PDT) From: Abdullah Ibn Hamad Al-Marri To: Andrew Birukov , =?iso-8859-1?Q?Ermal_Lu=E7i?= MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Message-ID: <216439.6336.qm@web33706.mail.mud.yahoo.com> Cc: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org Subject: Re: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 20:57:12 -0000 ----- Original Message ----=0A> From: Andrew Birukov =0A> = To: Ermal Lu=E7i =0A> Cc: freebsd-stable@freebsd.org;= freebsd-pf@freebsd.org=0A> Sent: Sunday, October 28, 2007 10:34:56 PM=0A> = Subject: Re: pf broken in 7.0-BETA1 ?=0A> =0A> Ermal Lu=E7i wrote:=0A> > Tr= y using=0A> > =0A> > pass out on $ext_if proto tcp from any to any tos 0x10= no keep=0A> state=0A> =0A queue ssh=0A> > =0A> > and it should work as you= expect!=0A> =0A> pf.conf=0A> ---------------------------------------------= ----------------------=0A> ext_if=3D"xl0"=0A> =0A> altq on $ext_if priq ban= dwidth 520Kb queue { ssh, traf }=0A> queue ssh priority 1=0A> queue traf p= riority 15 priq(default)=0A> =0A> pass in all=0A> pass out all=0A> =0A> pas= s out on $ext_if proto tcp from any to any tos 0x10 no keep state =0A> queu= e ssh=0A> -----------------------------------------------------------------= --=0A> =0A> # /etc/rc.d/pf restart=0A> Disabling pf.=0A> pf disabled=0A> En= abling pf.=0A> /etc/pf.conf:10: syntax error=0A> pfctl: Syntax error in con= fig file: pf rules not loaded=0A> pf enabled=0A> =0A> Unfortunately syntax = error...=0A> =0A> =0A> -- =0A> Andrew Biriukov=0A> amb@amb.kiev.ua=0A=0A=0A= Is this related to your problem?=0A=0Ahttp://www.nabble.com/Suggestion-with= -patch%2C-change-PF-TOS-matching-to-bitmask-tf4697797.html=0A=0A=0A-- =0ARe= gards, =0A-Abdullah Ibn Hamad Al-Marri=0AArab Portal=0Ahttp://www.WeArab.Ne= t/=0A=0A =0A=0A=0A=0A__________________________________________________=0AD= o You Yahoo!?=0ATired of spam? Yahoo! Mail has the best spam protection ar= ound =0Ahttp://mail.yahoo.com From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 21:50:09 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32F7E16A418; Sun, 28 Oct 2007 21:50:09 +0000 (UTC) (envelope-from fb-stable@psconsult.nl) Received: from ps226.psconsult.nl (ps226.psconsult.nl [213.222.19.226]) by mx1.freebsd.org (Postfix) with ESMTP id B55EA13C480; Sun, 28 Oct 2007 21:50:08 +0000 (UTC) (envelope-from fb-stable@psconsult.nl) Received: from phuket.psconsult.nl (localhost [127.0.0.1]) by phuket.psconsult.nl (8.13.1/8.13.1) with ESMTP id l9SKkS2g004767; Sun, 28 Oct 2007 21:46:28 +0100 (CET) (envelope-from fb-stable@psconsult.nl) Received: (from paul@localhost) by phuket.psconsult.nl (8.13.1/8.13.1/Submit) id l9SKkSni004766; Sun, 28 Oct 2007 21:46:28 +0100 (CET) (envelope-from fb-stable@psconsult.nl) Date: Sun, 28 Oct 2007 21:46:27 +0100 From: Paul Schenkeveld To: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org Message-ID: <20071028204627.GA4666@psconsult.nl> Mail-Followup-To: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org References: <4724D6EE.6050004@amb.kiev.ua> <9a542da30710281214v79cd332fx69b8806db2895836@mail.gmail.com> <4724E460.1050309@amb.kiev.ua> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4724E460.1050309@amb.kiev.ua> User-Agent: Mutt/1.5.6i Cc: Subject: Re: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 21:50:09 -0000 On Sun, Oct 28, 2007 at 04:34:56PM -0300, Andrew Birukov wrote: > Ermal Luçi wrote: > >Try using > > > >pass out on $ext_if proto tcp from any to any tos 0x10 no keep state queue > >ssh > > > >and it should work as you expect! > > pf.conf > ------------------------------------------------------------------- > ext_if="xl0" > > altq on $ext_if priq bandwidth 520Kb queue { ssh, traf } > queue ssh priority 1 > queue traf priority 15 priq(default) > > pass in all > pass out all > > pass out on $ext_if proto tcp from any to any tos 0x10 no keep state > queue ssh > ------------------------------------------------------------------- > > # /etc/rc.d/pf restart > Disabling pf. > pf disabled > Enabling pf. > /etc/pf.conf:10: syntax error > pfctl: Syntax error in config file: pf rules not loaded > pf enabled > > Unfortunately syntax error... Should be "no state" according to pf.conf(5) > -- > Andrew Biriukov > amb@amb.kiev.ua Paul Schenkeveld From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 23:34:23 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3FCD316A418; Sun, 28 Oct 2007 23:34:23 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from simmts6-srv.bellnexxia.net (simmts6-qfe0.srvr.bell.ca [206.47.199.164]) by mx1.freebsd.org (Postfix) with ESMTP id AFFBE13C491; Sun, 28 Oct 2007 23:34:22 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from amb.homeunix.org ([156.34.188.4]) by simmts6-srv.bellnexxia.net (InterMail vM.5.01.06.13 201-253-122-130-113-20050324) with ESMTP id <20071028233420.LKBM8742.simmts6-srv.bellnexxia.net@amb.homeunix.org>; Sun, 28 Oct 2007 19:34:20 -0400 Received: from server.amb.kiev.ua ([10.15.25.2] helo=amb.kiev.ua) by amb.homeunix.org with esmtp (Exim 4.68 (FreeBSD)) (envelope-from ) id 1ImHe5-0006Ka-05; Sun, 28 Oct 2007 20:34:17 -0300 Message-ID: <47251C78.6090305@amb.kiev.ua> Date: Sun, 28 Oct 2007 20:34:16 -0300 From: Andrew Birukov User-Agent: Thunderbird 2.0.0.6 (X11/20070803) MIME-Version: 1.0 To: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org References: <4724D6EE.6050004@amb.kiev.ua> <9a542da30710281214v79cd332fx69b8806db2895836@mail.gmail.com> <4724E460.1050309@amb.kiev.ua> <20071028204627.GA4666@psconsult.nl> In-Reply-To: <20071028204627.GA4666@psconsult.nl> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 10.15.25.2 X-SA-Exim-Rcpt-To: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org X-SA-Exim-Mail-From: amb@amb.kiev.ua X-SA-Exim-Scanned: No (on amb.homeunix.org); SAEximRunCond expanded to false Cc: Subject: Re: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 23:34:23 -0000 Paul Schenkeveld wrote: > On Sun, Oct 28, 2007 at 04:34:56PM -0300, Andrew Birukov wrote: >> Ermal Luçi wrote: >>> Try using >>> >>> pass out on $ext_if proto tcp from any to any tos 0x10 no keep state queue >>> ssh >>> >>> and it should work as you expect! >> pf.conf >> ------------------------------------------------------------------- >> ext_if="xl0" >> >> altq on $ext_if priq bandwidth 520Kb queue { ssh, traf } >> queue ssh priority 1 >> queue traf priority 15 priq(default) >> >> pass in all >> pass out all >> >> pass out on $ext_if proto tcp from any to any tos 0x10 no keep state >> queue ssh >> ------------------------------------------------------------------- >> >> # /etc/rc.d/pf restart >> Disabling pf. >> pf disabled >> Enabling pf. >> /etc/pf.conf:10: syntax error >> pfctl: Syntax error in config file: pf rules not loaded >> pf enabled >> >> Unfortunately syntax error... > > Should be "no state" according to pf.conf(5) Thank's a lot ! That was it! -- Andrew Biriukov amb@amb.kiev.ua From owner-freebsd-pf@FreeBSD.ORG Sun Oct 28 23:37:24 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03A8F16A418; Sun, 28 Oct 2007 23:37:24 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from simmts5-srv.bellnexxia.net (simmts5.bellnexxia.net [206.47.199.163]) by mx1.freebsd.org (Postfix) with ESMTP id 0C31313C4BB; Sun, 28 Oct 2007 23:37:22 +0000 (UTC) (envelope-from amb@amb.kiev.ua) Received: from amb.homeunix.org ([156.34.188.4]) by simmts5-srv.bellnexxia.net (InterMail vM.5.01.06.13 201-253-122-130-113-20050324) with ESMTP id <20071028233719.UWWX9038.simmts5-srv.bellnexxia.net@amb.homeunix.org>; Sun, 28 Oct 2007 19:37:19 -0400 Received: from server.amb.kiev.ua ([10.15.25.2] helo=amb.kiev.ua) by amb.homeunix.org with esmtp (Exim 4.68 (FreeBSD)) (envelope-from ) id 1ImHgw-000AAA-4P; Sun, 28 Oct 2007 20:37:14 -0300 Message-ID: <47251D29.4020702@amb.kiev.ua> Date: Sun, 28 Oct 2007 20:37:13 -0300 From: Andrew Birukov User-Agent: Thunderbird 2.0.0.6 (X11/20070803) MIME-Version: 1.0 To: Abdullah Ibn Hamad Al-Marri References: <216439.6336.qm@web33706.mail.mud.yahoo.com> In-Reply-To: <216439.6336.qm@web33706.mail.mud.yahoo.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 10.15.25.2 X-SA-Exim-Rcpt-To: wearabnet@yahoo.ca, freebsd-stable@freebsd.org, freebsd-pf@freebsd.org X-SA-Exim-Mail-From: amb@amb.kiev.ua X-SA-Exim-Scanned: No (on amb.homeunix.org); SAEximRunCond expanded to false Cc: freebsd-stable@freebsd.org, freebsd-pf@freebsd.org Subject: Re: pf broken in 7.0-BETA1 ? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Oct 2007 23:37:24 -0000 Abdullah Ibn Hamad Al-Marri wrote: > ----- Original Message ---- >> From: Andrew Birukov >> To: Ermal Luçi >> Cc: freebsd-stable@freebsd.org; freebsd-pf@freebsd.org >> Sent: Sunday, October 28, 2007 10:34:56 PM >> Subject: Re: pf broken in 7.0-BETA1 ? >> >> Ermal Luçi wrote: >>> Try using >>> >>> pass out on $ext_if proto tcp from any to any tos 0x10 no keep >> state >> > queue ssh >>> and it should work as you expect! >> pf.conf >> ------------------------------------------------------------------- >> ext_if="xl0" >> >> altq on $ext_if priq bandwidth 520Kb queue { ssh, traf } >> queue ssh priority 1 >> queue traf priority 15 priq(default) >> >> pass in all >> pass out all >> >> pass out on $ext_if proto tcp from any to any tos 0x10 no keep state >> queue ssh >> ------------------------------------------------------------------- >> >> # /etc/rc.d/pf restart >> Disabling pf. >> pf disabled >> Enabling pf. >> /etc/pf.conf:10: syntax error >> pfctl: Syntax error in config file: pf rules not loaded >> pf enabled >> >> Unfortunately syntax error... >> >> >> -- >> Andrew Biriukov >> amb@amb.kiev.ua > > > Is this related to your problem? > > http://www.nabble.com/Suggestion-with-patch%2C-change-PF-TOS-matching-to-bitmask-tf4697797.html It is not related, but interesting for me. I am going to try this patch. Thank you! -- Andrew Biriukov amb@amb.kiev.ua From owner-freebsd-pf@FreeBSD.ORG Mon Oct 29 11:07:15 2007 Return-Path: Delivered-To: freebsd-pf@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 87F7E16A478 for ; Mon, 29 Oct 2007 11:07:08 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 5DEAD13C481 for ; Mon, 29 Oct 2007 11:07:08 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l9TB78vY090189 for ; Mon, 29 Oct 2007 11:07:08 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l9TB77O7090185 for freebsd-pf@FreeBSD.org; Mon, 29 Oct 2007 11:07:07 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 29 Oct 2007 11:07:07 GMT Message-Id: <200710291107.l9TB77O7090185@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-pf@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-pf@FreeBSD.org X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Oct 2007 11:07:16 -0000 Current FreeBSD problem reports Critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/111220 pf [pf] repeatable hangs while manipulating pf tables 1 problem total. Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/82271 pf [pf] cbq scheduler cause bad latency o kern/92949 pf [pf] PF + ALTQ problems with latency o kern/110698 pf [pf] nat rule of pf without "on" clause causes invalid o bin/116610 pf [patch] teach tcpdump(1) to cope with the new-style pf 4 problems total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o sparc/93530 pf [pf] Incorrect checksums when using pf's route-to on s o kern/93825 pf [pf] pf reply-to doesn't work o kern/106400 pf [pf] fatal trap 12 at restart of PF with ALTQ if ng0 d s conf/110838 pf tagged parameter on nat not working on FreeBSD 5.2 o kern/114567 pf [pf] LOR pf_ioctl.c + if.c o kern/115640 pf [net] [pf] pfctl -k dont works o kern/116645 pf pfctl -k does not work in securelevel 3 7 problems total. From owner-freebsd-pf@FreeBSD.ORG Mon Oct 29 17:13:39 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D06B16A46C for ; Mon, 29 Oct 2007 17:13:39 +0000 (UTC) (envelope-from johan@stromnet.se) Received: from core.stromnet.se (core.stromnet.se [83.218.84.131]) by mx1.freebsd.org (Postfix) with ESMTP id 7250C13C4CE for ; Mon, 29 Oct 2007 17:13:20 +0000 (UTC) (envelope-from johan@stromnet.se) Received: from localhost (core.stromnet.se [83.218.84.131]) by core.stromnet.se (Postfix) with ESMTP id 17128D46481 for ; Mon, 29 Oct 2007 09:37:57 +0100 (CET) X-Virus-Scanned: amavisd-new at stromnet.se X-Spam-Flag: NO X-Spam-Score: 1.239 X-Spam-Level: * X-Spam-Status: No, score=1.239 tagged_above=0 required=6.2 tests=[AWL=1.139, RDNS_DYNAMIC=0.1] Received: from core.stromnet.se ([83.218.84.131]) by localhost (core.stromnet.se [83.218.84.131]) (amavisd-new, port 10024) with ESMTP id pyU4rcEKHlcV for ; Mon, 29 Oct 2007 09:37:54 +0100 (CET) Received: from [172.28.3.6] (90-224-172-102-no129.tbcn.telia.com [90.224.172.102]) by core.stromnet.se (Postfix) with ESMTP id 8DB9FD46423 for ; Mon, 29 Oct 2007 09:37:53 +0100 (CET) Mime-Version: 1.0 (Apple Message framework v752.3) Content-Transfer-Encoding: quoted-printable Message-Id: <74777995-192A-4058-ABE5-8BA1676B0654@stromnet.se> Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed To: freebsd-pf@freebsd.org From: =?ISO-8859-1?Q?Johan_Str=F6m?= Date: Mon, 29 Oct 2007 09:37:45 +0100 X-Mailer: Apple Mail (2.752.3) Subject: Jails and PF states on locahost X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Oct 2007 17:13:39 -0000 Hello I got a FreeBSD 6.2 box running a few jails, with a pretty strict PF =20 ruleset. I got a problem with traffic between two of the jails. Both =20 have public IPs (one of them have two using the jail-multiple-ip-=20 patch). The problem I have is when they are to talk with each other. =20 First let med describe the PF ruleset (somewhat stripped down but =20 this should be the relevant stuff) jail1=3Dxx.xx.xx.131 jail2a=3Dxx.xx.xx.133 jail2b=3Dxx.xx.xx.134 scrub in all block drop in log # base system talk to itself pass in on lo0 inet from 127.0.0.1 to 127.0.0.1 # all can talk out pass out on em0 proto tcp flags S/SA modulate state pass out on em0 proto udp keep state # jails talk to them selfs pass in on lo0 inet from $jail1 to $jail1 pass in on lo0 inet from {$jail2a $jail2b} to {$jail2a $jail2b} # let smtp in on jail1 pass in on {lo0 em0} inet proto tcp from any to $jail1 port smtp =20 flags S/SA modulate state Okay, so the problem occurs when jail2 shall talk to jail1 on port 25 =20= (smtp). =46rom the above rules, when the traffic leaves jail2 (traffic =20= comes from $jail2b it seems) it should match the last rule and create =20= a state. And so it does! self tcp xx.xx.xx:25 <- xx.xx.xx.134:57557 SYN_SENT:ESTABLISHED [3014249759 + 65536](+2074393365) wscale 1 [4121000179 + 65536]=20 (+541973245) wscale 1 age 00:01:03, expires in 00:00:01, 7:10 pkts, 384:640 bytes So the SYN arives at $jail1, but the SYNACK fails to go back to =20 $jail2b (where the state should let the packet back in?), which is =20 also seen in the following row from pflog0: 09:30:34.370402 rule 1/0(match): block in on lo0: (tos 0x0, ttl 64, =20 id 35618, offset 0, flags [DF], proto: TCP (6), length: 64) xx.xx.xx.=20 131.25 > xx.xx.xx.134.57557: S 793675827:793675827(0) ack 4121000179 =20 win 65535 So.. What have I missed? The state is created but it doesnt seem to =20 match enough bytes or something? 384:640 matched packets, so et =20 matches in both directions? Any clues are welcome! Thanks -- Johan Str=F6m Stromnet johan@stromnet.se http://www.stromnet.se/ From owner-freebsd-pf@FreeBSD.ORG Tue Oct 30 16:13:23 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18FFC16A417; Tue, 30 Oct 2007 16:13:23 +0000 (UTC) (envelope-from cristi@net.utcluj.ro) Received: from bavaria.utcluj.ro (unknown [IPv6:2001:b30:5000:2:20e:cff:fe4b:ca01]) by mx1.freebsd.org (Postfix) with ESMTP id 65FAA13C4A8; Tue, 30 Oct 2007 16:13:22 +0000 (UTC) (envelope-from cristi@net.utcluj.ro) Received: from localhost (localhost [127.0.0.1]) by bavaria.utcluj.ro (Postfix) with ESMTP id 4B4D750884; Tue, 30 Oct 2007 18:13:21 +0200 (EET) X-Virus-Scanned: by the daemon playing with your mail on local.mail.utcluj.ro Received: from bavaria.utcluj.ro ([127.0.0.1]) by localhost (bavaria.utcluj.ro [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bgsdvBI0Et8F; Tue, 30 Oct 2007 18:13:15 +0200 (EET) Received: from [172.27.2.200] (c7.campus.utcluj.ro [193.226.6.226]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by bavaria.utcluj.ro (Postfix) with ESMTP id 31F3D5083F; Tue, 30 Oct 2007 18:13:15 +0200 (EET) Message-ID: <4727581A.5040602@net.utcluj.ro> Date: Tue, 30 Oct 2007 18:13:14 +0200 From: Cristian KLEIN User-Agent: Thunderbird 2.0.0.6 (X11/20071022) MIME-Version: 1.0 To: =?UTF-8?B?RXJtYWwgTHXDp2k=?= References: <9a542da30710161409o4732a77bybdf4ba35d7491bb@mail.gmail.com> <200710171043.08126.max@love2party.net> <9a542da30710211232v4d3c930fg8ea778a12f3f16cb@mail.gmail.com> <9a542da30710280617t11e668e2o4d122998192f71c@mail.gmail.com> <20071028095802.A61999@xorpc.icir.org> <9a542da30710281013q642b5aa8k33c7836ee064242e@mail.gmail.com> <9a542da30710281311n7f8a6f29me02da90941d96ae5@mail.gmail.com> In-Reply-To: <9a542da30710281311n7f8a6f29me02da90941d96ae5@mail.gmail.com> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: freebsd-net@freebsd.org, freebsd-pf@freebsd.org Subject: Re: Fwd: [PATCH] PF+dummynet X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Oct 2007 16:13:23 -0000 Ermal Luçi wrote: > Ok thanks to remko@ for hosting it! > > You can find it here: > http://people.freebsd.org/~remko/patches/dummynet_pf.tar.gz > > Please test and give feedback. I am really interested in your patch and hope that I will soon have time to test it. Meanwhile, I would like to ask you how dummynet interacts with the pf keep state function. Ideally, one should be able to send uplink / downlink traffic to different pipes. For example, dnpipe 10 config bw 4Mbit mask src-ip 0x000000ff queue 10 dnpipe 11 config bw 4Mbit mask dst-ip 0x000000ff queue 10 pass in from $if_int proto tcp from any to any port 80 keep state dnpipe (up 10, down 11) should limit HTTP traffic for each host, to 4Mbps. Could you please tell me how this works? > >>> It gives full dummynet support in pf.conf syntax and removes dummynet >>> depndency to ipfw. >>> >>> You can configure a pipe/queue using the same ipfw syntax the only >>> difference is that i call those 'dnpipe'/'dnqueue' respectivley. >>> GRED/RED isn't currently finished but that is a pfctl addition so not >>> difficult. >>> >>> For dummynet i preserve ipfw style statistics so tools of ipfw can be >>> used here to. >>> >>> Since this is PF i preserved ALTQ priotitizing of ACK, meaning on ALTQ you do >>> pass in quick proto tcp from any to any flags S/SA queue(pri, que) >>> >>> You can do the same with dummynet queues only, since for pipes it >>> doesn't make much sense since they simulate a link. So yuo can do >>> >>> dnpipe 10 bandwidth 100Kbit >>> dnqueue 10 dnpipe 10 queue 100 >>> dnqueue 20 dnpipe 10 queue 20 >>> >>> pass in quick proto tcp from any to any flags S/SA dnqueue(10, 20) >>> >>> >>> Please test and give feedback. >>> _______________________________________________ >>> freebsd-net@freebsd.org mailing list >>> http://lists.freebsd.org/mailman/listinfo/freebsd-net >>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-pf@FreeBSD.ORG Wed Oct 31 00:00:36 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5A0B16A41B for ; Wed, 31 Oct 2007 00:00:36 +0000 (UTC) (envelope-from dougs@dawnsign.com) Received: from mailfilter.dawnsign.com (cetus.dawnsign.com [216.70.250.4]) by mx1.freebsd.org (Postfix) with ESMTP id 9D93B13C4B6 for ; Wed, 31 Oct 2007 00:00:36 +0000 (UTC) (envelope-from dougs@dawnsign.com) Received: from cetus.dawnsign.com (cetus.dawnsign.com [192.168.1.5]) by mailfilter.dawnsign.com (Postfix) with ESMTP id 321FF95824; Tue, 30 Oct 2007 16:32:15 -0700 (PDT) Received: by cetus.dawnsign.com with Internet Mail Service (5.5.2657.72) id ; Tue, 30 Oct 2007 16:32:15 -0700 Message-ID: <9DE6EC5B5CF8C84281AE3D7454376A0D6D0149@cetus.dawnsign.com> From: Doug Sampson To: 'Olli Hauer' Date: Tue, 30 Oct 2007 16:32:11 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2657.72) Content-Type: text/plain; charset="iso-8859-1" Cc: freebsd-pf@freebsd.org Subject: RE: spamd nonfunctioning due to power outage in SD X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Oct 2007 00:00:36 -0000 <..snip..> > 200.46.204.71.53512 > 127.0.0.1.25: S > 2390205679:2390205679(0) win 65535 > > 038980 rule 3/0(match): block in on rl0: > 200.46.204.71.65136 > 127.0.0.1.25: S 1802046267:1802046267(0) w > > > > Which of the rules above does rule 3/0(match) refer to? > > It's easier to count the rules this way > Nat/rdr rules: > # pfctl -sn > filter rues: > # pfctl -sr => now look at the 3'rd line > > > @8 pass in log inet proto tcp from any to 216.70.250.4 > port = smtp flags S/SA synproxy state > > @9 pass out log inet proto tcp from 216.70.250.4 to any > port = smtp flags S/SA synproxy state > > @10 pass in log inet proto tcp from 192.168.1.0/24 to > 192.168.1.25 port = smtp flags S/SA synproxy state > > @11 block drop in log all > > There is no quick keyword, so please place @11 before @8 > reload the pf rules and post the output of > 1) pfctl -sn > 2) pfctl -sr > 3) now take again a look with tcpdump -i pflog0 > this makes things easier to count and refer > Egads, so it was rule #11 that was blocking! I've modified to have #11 appear before #8 and restarted. All appear to be functioning as previously. I don't quite understand why the original pf.conf rules were letting the mail into both port 25 and 8025 prior to the last reboot-- I had #11 after #8 all along! Thanks for your kind assistance! I've made this a supporting document for future troubleshooting activity! ~Best ~Doug From owner-freebsd-pf@FreeBSD.ORG Wed Oct 31 10:48:01 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0CF3816A420 for ; Wed, 31 Oct 2007 10:48:01 +0000 (UTC) (envelope-from frank@pinky.sax.de) Received: from post.frank-behrens.de (post.frank-behrens.de [82.139.255.138]) by mx1.freebsd.org (Postfix) with ESMTP id 59A6F13C4A5 for ; Wed, 31 Oct 2007 10:47:59 +0000 (UTC) (envelope-from frank@pinky.sax.de) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pinky.sax.de; h=from:to:date:mime-version:subject:in-reply-to:references:content-type:content-transfer-encoding:content-description; q=dns/txt; s=pinky1; t=1193822155; i=frank@pinky.sax.de; bh=m2aWoB2VohsEjlqcRIYk4Xq3qJnUl5PWhHsDySQTNrU=; b=mJ9TdDlxDjktDhe45Bt3fOHR3T6RvCZfIoCl0Wn1SkjtE3iM/QI//i+x4xWeYiQQ9HcCLFEdVMxwgo1IdB5vlQ== Received: from [192.168.20.32] (sun.behrens [192.168.20.32]) by post.frank-behrens.de (8.14.1/8.14.1) with ESMTP-MSA id l9V9Fdld027372 for ; Wed, 31 Oct 2007 10:15:39 +0100 (CET) (envelope-from frank@pinky.sax.de) Message-Id: <200710310915.l9V9Fdld027372@post.frank-behrens.de> From: "Frank Behrens" To: freebsd-pf@freebsd.org Date: Wed, 31 Oct 2007 10:15:39 +0100 MIME-Version: 1.0 Priority: normal In-reply-to: <200708021537.l72Fb69k004919@pinky.frank-behrens.de> References: <200708021715.25167.max@love2party.net> X-mailer: Pegasus Mail for Windows (4.31, DE v4.31 R1) Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body X-Hashcash: 1:24:071031:freebsd-pf@freebsd.org::0HJtcVC+k5P6Pd7z:000000000000lIC8 Subject: Re: pf eates syn packet? X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Oct 2007 10:48:01 -0000 Although this is an old thread, the problem is still present. Lets remember: As I wrote in http://lists.freebsd.org/pipermail/freebsd-pf/2007-August/003642.html and related mails I want to do policy based routing with pf. The basic rules are nat inet from !tun2-address to any port = http -> tun2-address nat on tun0 inet from to any -> tun0-address .... pass out quick on tun0 route-to (tun2 tun2-peer) inet from tun2-address to any keep state pass out quick on tun2 route-to (tun0 tun0-peer) inet from tun0-address to any keep state I see the result, that the 1st syn packet can not pass the pf firewall, because a state insertion fails. Now I tried to debug this state handling and inserted some debug print statements in pf.c. A typical session (with associated packets) is 09:44:29 pfdbg: insert_state TCP 192.168.50.02:1948 84.182.202.81:57560 192.109.108.33:80 [lo=3608055223 high=3608055225 win=32768 modulator=0] [lo=0 high=1 win=1 modulator=0] 2:0 rule: 0 nat_rule: 0 09:44:29 pfdbg: insert_state TCP 84.182.202.81:57560 84.182.202.81:57560 192.109.108.33:80 [lo=3608055223 high=3608055225 win=32768 modulator=0] [lo=0 high=1 win=1 modulator=0] 2:0 rule: 2 09:44:29 pf: state insert failed: tree_ext_gwy lan: 84.182.202.81:57560 gwy: 84.182.202.81:57560 ext: 192.109.108.33:80 09:44:29.475380 IP (tos 0x0, ttl 128, id 51971, offset 0, flags [DF], proto: TCP (6), length: 52) 192.168.50.02.1948 > 192.109.108.33.80: S, cksum 0x010e (correct), 3608055223:3608055223(0) win 65535 09:44:32.573436 IP (tos 0x0, ttl 128, id 51988, offset 0, flags [DF], proto: TCP (6), length: 52) 192.168.50.02.1948 > 192.109.108.33.80: S, cksum 0x010e (correct), 3608055223:3608055223(0) win 65535 The repeated SYN after 3 seconds passes the firewall and the tcp session continues without any problems. The debug messages are created on pf.c (v1.45 2007/07/03) with @@ -892,6 +892,16 @@ int pf_insert_state(struct pfi_kif *kif, struct pf_state *state) { + if (pf_status.debug >= PF_DEBUG_MISC) { + printf("pfdbg: insert_state "); + pf_print_state(state); + if (state->rule.ptr) + printf(" rule: %x", (int)state->rule.ptr->nr); + if (state->nat_rule.ptr) + printf(" nat_rule: %x", (int)state->nat_rule.ptr->nr); + printf("\n"); + } + Now my questions: 1. Is my setup correct or should I use other rules? 2. Is it right, that pf tries to insert an additional state entry with lan and gwy addresses being the same, although a NAT entry is already inserted? Regards, Frank -- Frank Behrens, Osterwieck, Germany PGP-key 0x5B7C47ED on public servers available. From owner-freebsd-pf@FreeBSD.ORG Wed Oct 31 13:56:03 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB19F16A41A for ; Wed, 31 Oct 2007 13:56:03 +0000 (UTC) (envelope-from rob@techniumcast.com) Received: from smtp.techniumcast.net (smtp.techniumcast.net [194.74.204.204]) by mx1.freebsd.org (Postfix) with ESMTP id AA5F913C49D for ; Wed, 31 Oct 2007 13:56:03 +0000 (UTC) (envelope-from rob@techniumcast.com) Received: from [10.1.32.176] (cast-users-176.techniumcast.net [10.1.32.176]) by smtp.techniumcast.net (Postfix) with ESMTP id 6D20C120AE6 for ; Wed, 31 Oct 2007 12:15:41 +0000 (GMT) Message-ID: <472871EC.9040509@techniumcast.com> Date: Wed, 31 Oct 2007 12:15:40 +0000 From: Rob Shepherd User-Agent: Thunderbird 1.5.0.13 (Windows/20070809) MIME-Version: 1.0 To: freebsd-pf@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-TechniumCAST-MailScanner-Information: Please contact the ISP for more information X-TechniumCAST-MailScanner: Not scanned: please contact your Internet E-Mail Service Provider for details X-TechniumCAST-MailScanner-From: rob@techniumcast.com X-Spam-Status: No Subject: PPTP "fixup" for FreeBSD NAT Router X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Oct 2007 13:56:04 -0000 Dear FreeBSD PF users, We have Cisco FWSM software v2.3 which doesn't pass PPTP traffic due to it not being able to extract the GRE session information. Grrr.... Enterprise grade my *rse! Nevertheless, I am intrigued to see if I can provide an alternate route for a customers PPTP connection through a FreeBSD router. I'll VLAN interface on to their LAN, NAT as usual to a public IP, but I would like to inquire (before I commence my setup) if... 1. FreeBSD NAT (PF) will pass PPTP 2. if (1), will it support multiple PPTP sessions (multiple clients to common remote VPN server) Many thanks for any suggestions etc. much appreciated. Rob -- Rob Shepherd BEng PhD | Computer and Network Engineer | CAST Ltd Technium CAST | LL57 4HJ | http://www.techniumcast.com From owner-freebsd-pf@FreeBSD.ORG Wed Oct 31 15:41:24 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6DF016A46C for ; Wed, 31 Oct 2007 15:41:24 +0000 (UTC) (envelope-from sullrich@gmail.com) Received: from nz-out-0506.google.com (nz-out-0506.google.com [64.233.162.236]) by mx1.freebsd.org (Postfix) with ESMTP id A1C8F13C494 for ; Wed, 31 Oct 2007 15:41:24 +0000 (UTC) (envelope-from sullrich@gmail.com) Received: by nz-out-0506.google.com with SMTP id l8so139443nzf for ; Wed, 31 Oct 2007 08:41:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=00Sc338+43rztNi6MR9WNIFzeuWWCkVbOmZOXyRgFaA=; b=rPIUIueuWpoK7lZ6FBNitaYtdHKJWzQTzr6fgN+o0D60UaP+97fP/sr6VzG2WXjUa9AlCAtuoWICpODcjFLwZsJng0vLM6KlktN18WozVNJ1LmqeRtZL9JYGdEG28ds+zIC006tu/AVMc0OlZrXNExW2CzH5Z1f2J0R49rUzWfk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=S6vYXvB/KfvIP/MnddETGLFNwukvEj3oThaPru0JFkZ31EQVnggKPyHFibmqUfS6v+BYvuX5mU6doo2PORdiH0I4jZs63fEVgecIXfgSMEmjUJNQBlVfaaLvOUd/TlvQ6MKk+ADw4cjMzARVtVbTCtqC0PyPbzUnV7PUzJDMEwc= Received: by 10.114.152.17 with SMTP id z17mr1693687wad.1193841915692; Wed, 31 Oct 2007 07:45:15 -0700 (PDT) Received: by 10.115.109.10 with HTTP; Wed, 31 Oct 2007 07:45:15 -0700 (PDT) Message-ID: Date: Wed, 31 Oct 2007 10:45:15 -0400 From: "Scott Ullrich" To: "Rob Shepherd" In-Reply-To: <472871EC.9040509@techniumcast.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <472871EC.9040509@techniumcast.com> Cc: freebsd-pf@freebsd.org Subject: Re: PPTP "fixup" for FreeBSD NAT Router X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 31 Oct 2007 15:41:25 -0000 On 10/31/07, Rob Shepherd wrote: > Dear FreeBSD PF users, > > We have Cisco FWSM software v2.3 which doesn't pass PPTP traffic due to it not > being able to extract the GRE session information. Grrr.... Enterprise grade my > *rse! > > Nevertheless, I am intrigued to see if I can provide an alternate route for a > customers PPTP connection through a FreeBSD router. > > I'll VLAN interface on to their LAN, NAT as usual to a public IP, but I would > like to inquire (before I commence my setup) if... > > 1. FreeBSD NAT (PF) will pass PPTP > 2. if (1), will it support multiple PPTP sessions (multiple clients to common > remote VPN server) PF does not have PPTP session handling code. You could try using a proxy such as frickin-pptp[1] (yes, that is really it's name) that should keep state on the GRE traffic much better but the last time I tried to use this daemon it had issues on FreeBSD which the author was aware of but did not know how to fix. [1] http://sourceforge.net/projects/frickin/ Scott Scott From owner-freebsd-pf@FreeBSD.ORG Fri Nov 2 23:24:21 2007 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26DD816A418 for ; Fri, 2 Nov 2007 23:24:21 +0000 (UTC) (envelope-from wearabnet@yahoo.ca) Received: from web33714.mail.mud.yahoo.com (web33714.mail.mud.yahoo.com [68.142.201.211]) by mx1.freebsd.org (Postfix) with SMTP id AB7F813C48D for ; Fri, 2 Nov 2007 23:24:20 +0000 (UTC) (envelope-from wearabnet@yahoo.ca) Received: (qmail 27096 invoked by uid 60001); 2 Nov 2007 16:17:11 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.ca; h=Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=MMnscH+v6fOSyH8g9LGSGP+evwWG6D7GDAk+xb2tlr0HKXo+EDN+T9xMaVOW3+gmlQBXADfKQdUt6UUAxABdhxm2yY4NQjgWSBBpbqx85wf5R0PaqbYtIOIGqqsj3mG+mdbkUBnbVzhjuOjsTJv+UE73bzZ2vLFPeTrDKyHNEqA=; Received: from [86.62.225.4] by web33714.mail.mud.yahoo.com via HTTP; Fri, 02 Nov 2007 09:17:11 PDT X-Mailer: YahooMailRC/814.06 YahooMailWebService/0.7.134.12 Date: Fri, 2 Nov 2007 09:17:10 -0700 (PDT) From: Abdullah Ibn Hamad Al-Marri To: freebsd-pf@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Message-ID: <279998.26087.qm@web33714.mail.mud.yahoo.com> Subject: PF changes in OpenBSD 4.2 X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Nov 2007 23:24:21 -0000 Hello Max,=0A=0AWould these change going to break the ABI, or could you imp= ort them to RELENG_7 later? since these changes boosts PF performance now := )=0A=0Ahttp://www.onlamp.com/lpt/a/7155=0A=0A=0A--- =0ARegards, =0A-Abdulla= h Ibn Hamad Al-Marri=0AArab Portal=0Ahttp://www.WeArab.Net/=0A=0A=0A=0A=0A_= _________________________________________________=0ADo You Yahoo!?=0ATired = of spam? Yahoo! Mail has the best spam protection around =0Ahttp://mail.ya= hoo.com From owner-freebsd-pf@FreeBSD.ORG Sat Nov 3 20:59:54 2007 Return-Path: Delivered-To: pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0A7F16A419 for ; Sat, 3 Nov 2007 20:59:54 +0000 (UTC) (envelope-from danger@FreeBSD.org) Received: from virtual.micronet.sk (smtp.micronet.sk [84.16.32.237]) by mx1.freebsd.org (Postfix) with ESMTP id 83F3913C4B0 for ; Sat, 3 Nov 2007 20:59:54 +0000 (UTC) (envelope-from danger@FreeBSD.org) Received: from localhost (localhost [127.0.0.1]) by virtual.micronet.sk (Postfix) with ESMTP id 491A510EA39; Sat, 3 Nov 2007 19:47:30 +0100 (CET) X-Virus-Scanned: by amavisd-new at virtual.micronet.sk Received: from virtual.micronet.sk ([127.0.0.1]) by localhost (virtual.micronet.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3qVK6KiGTHbs; Sat, 3 Nov 2007 19:47:28 +0100 (CET) Received: from DANGER-PC (danger.mcrn.sk [84.16.37.254]) by virtual.micronet.sk (Postfix) with ESMTP id F1AA610E65C; Sat, 3 Nov 2007 19:47:26 +0100 (CET) Date: Sat, 3 Nov 2007 19:47:22 +0100 From: Daniel Gerzo Organization: The FreeBSD Project X-Priority: 3 (Normal) Message-ID: <105193555.20071103194722@rulez.sk> To: pf@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: Subject: LOR pf/ifnet X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Gerzo List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Nov 2007 20:59:54 -0000 Hello pf, I wasn't able to find this LOR listed on FreeBSD LOR page: lock order reversal: 1st 0xffffffff805fa660 pf task mtx (pf task mtx) @ /usr/src/sys/contrib/pf/net/pf_ioctl.c:1304 2nd 0xffffffff806a97c0 ifnet (ifnet) @ /usr/src/sys/net/if.c:1494 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a witness_checkorder() at witness_checkorder+0x655 _mtx_lock_flags() at _mtx_lock_flags+0x75 ifunit() at ifunit+0x24 pfioctl() at pfioctl+0x2c2b devfs_ioctl_f() at devfs_ioctl_f+0x67 kern_ioctl() at kern_ioctl+0xa3 ioctl() at ioctl+0xf0 syscall() at syscall+0x1bc Xfast_syscall() at Xfast_syscall+0xab --- syscall (54, FreeBSD ELF64, ioctl), rip = 0x80096289c, rsp = 0x7fffffffdc28, rbp = 0x7fffffffdcb0 --- -- Best regards, Daniel mailto:danger@FreeBSD.org From owner-freebsd-pf@FreeBSD.ORG Sat Nov 3 23:28:25 2007 Return-Path: Delivered-To: pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D26216A417 for ; Sat, 3 Nov 2007 23:28:25 +0000 (UTC) (envelope-from danger@FreeBSD.org) Received: from virtual.micronet.sk (smtp.micronet.sk [84.16.32.237]) by mx1.freebsd.org (Postfix) with ESMTP id 5F08E13C491 for ; Sat, 3 Nov 2007 23:28:25 +0000 (UTC) (envelope-from danger@FreeBSD.org) Received: from localhost (localhost [127.0.0.1]) by virtual.micronet.sk (Postfix) with ESMTP id 94A9E10EA78 for ; Sun, 4 Nov 2007 00:27:48 +0100 (CET) X-Virus-Scanned: by amavisd-new at virtual.micronet.sk Received: from virtual.micronet.sk ([127.0.0.1]) by localhost (virtual.micronet.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hXVZpu5t5Zlo for ; Sun, 4 Nov 2007 00:27:47 +0100 (CET) Received: from DANGER-PC (danger.mcrn.sk [84.16.37.254]) by virtual.micronet.sk (Postfix) with ESMTP id 210D910E9E4 for ; Sun, 4 Nov 2007 00:27:46 +0100 (CET) Date: Sun, 4 Nov 2007 00:27:42 +0100 From: Daniel Gerzo Organization: The FreeBSD Project X-Priority: 3 (Normal) Message-ID: <1265644059.20071104002742@rulez.sk> To: pf@freebsd.org In-Reply-To: <105193555.20071103194722@rulez.sk> References: <105193555.20071103194722@rulez.sk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: Subject: Re: LOR pf/ifnet X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Gerzo List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Nov 2007 23:28:25 -0000 Hello, Saturday, November 3, 2007, 7:47:22 PM, I wrote: > I wasn't able to find this LOR listed on FreeBSD LOR page: I forgot to mention that this is on 7.0-BETA1 FreeBSD 7.0-BETA1 #2: Sat Nov 3 20:43:14 CET 2007 amd64 -- Best regards, Daniel mailto:danger@FreeBSD.org