Received: by 2002:ab2:1689:0:b0:1f7:5705:b850 with SMTP id d9csp1725905lqa; Mon, 29 Apr 2024 18:22:33 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXUlIrCfHUZhAi1PP5XWEMdZ3Q0rYX8ZMwyVZw7v8twu3sS4Cuc0GdMFWkt1YjpQl2ZXI1THtbI98WR2yHmxbD4ZikIOE7q3zacj6pwKw== X-Google-Smtp-Source: AGHT+IHik4G//hhoBcOjMNNNh9A8C/E44hYfouzfb/AxlP27FpcvHQbljDTLUWyRihjJ3ucgpGZp X-Received: by 2002:a05:6a20:3d88:b0:1ad:999b:de34 with SMTP id s8-20020a056a203d8800b001ad999bde34mr19354242pzi.38.1714440153617; Mon, 29 Apr 2024 18:22:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714440153; cv=pass; d=google.com; s=arc-20160816; b=xsMlSA1QgNN++X2IaaZCv0ZubLBl+vo1mcdLqOCN9fEHW1LmoHnvPHwIYG+a2QhN57 FIHjzYbn1YeST/v8qxkTVdSlDN8kRkH5DWZSqmOyu9IYvkG5vyQRypTwUhk+9hWGYnf9 du4ZWyw1sPxzx+pBRfEDSFN8RjMa+WRj13mApHHcX9Vsj1KwUJJR4jAX+S1jw+1t/EME H38xJGsO8tw/SnDfs6+Fjxa7XBZ/16q94e+UA/BaTkj3w38a3S1G1/9X5sckD6X4d/d3 2lsNbhXl8oKQ4YVPPNbBpmYH5quSmzs1iPUgHZAvsstB+2jLplynOBNuloJwDOuYLacn mV4A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:message-id:reply-to:cc:to:from:date; bh=rVXEo8tZyfUiaiSFjh7syaOf68mjrBLwDeWH3MrqQn4=; fh=NLT2TZCxr6GyPWvJ34JfVYIjfIvihMWEeMpzrlwKvHk=; b=dXYl5k0NNf1+1As90Qzn3mhzCRsrvOcWaWl8QGs+yvmJ9HNR2qjwGepNzw1kxsaf3r pg/BkvghUO3X5z9iTUM5TUUjL2D+45netURe4YB2rFdBLWEucd4LS2jmu6iueefzmTIL YrWiM6UWuz5HVSyL5ZMSAGJZP8eYcwk3JYgq5IgLBtePdrgdGtkl82IdiVKN2qu4rkgf hBPTIOupXG6c6hgP4oOUPpJMmH62jhd6mA40G8vTxAIkly08ZIfhG81ka/ciCWHPF2SN xo59KJgKH5axUjZ8F1mV83uR7rC6cDUmur/4Jbg53W5R0g5025RLlMW8iQe9usnvmKDF S6qw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=ubisectech.com); spf=pass (google.com: domain of linux-kernel+bounces-163221-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-163221-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id z5-20020a1709028f8500b001e47d98b4e8si20466991plo.183.2024.04.29.18.22.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Apr 2024 18:22:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-163221-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=ubisectech.com); spf=pass (google.com: domain of linux-kernel+bounces-163221-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-163221-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 39ACB283A7E for ; Tue, 30 Apr 2024 01:22:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 04A0B2107; Tue, 30 Apr 2024 01:22:25 +0000 (UTC) Received: from out28-77.mail.aliyun.com (out28-77.mail.aliyun.com [115.124.28.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 462D28F7A; Tue, 30 Apr 2024 01:22:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.28.77 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714440142; cv=none; b=diaMtgqb2airMmLb2Tx/kUJBC+3yXUJkwizM2joq5cyQBzQVb6ljHosools0+Nn1jBo+yuEFvx/1rdRlVMpcBWOor4vBbZDQ/m1tm3SDV3EYO0teAqzpTE3pYNe51wK1fQ+umV34t+r1EeC4MOFAEmWQSDWAZ0+s9OENzU6LBak= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714440142; c=relaxed/simple; bh=rVXEo8tZyfUiaiSFjh7syaOf68mjrBLwDeWH3MrqQn4=; h=Date:From:To:Cc:Message-ID:Subject:MIME-Version:Content-Type; b=A3o1pFcFqKa9GkP/4WzmUmN8HVp0XbaDscYr8a6/PL8RGlIBhd+0pwAXhLQZOa1y/906XBCzn6nKZwZJjxnFf7nBT+yT4mKqKK06Mf5abWQ617VNaPNT66ry6jfWpaDdAVJHIQUG6x7CrvP5kddzOlOQeDhYT6KhUGX4jhDuxtg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ubisectech.com; spf=pass smtp.mailfrom=ubisectech.com; arc=none smtp.client-ip=115.124.28.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ubisectech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ubisectech.com X-Alimail-AntiSpam:AC=CONTINUE;BC=0.07843988|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.0974038-0.0112105-0.891386;FP=0|0|0|0|0|0|0|0;HT=ay29a033018047202;MF=bugreport@ubisectech.com;NM=1;PH=DW;RN=4;RT=4;SR=0;TI=W4_0.2.3_v5_2125151E_1714439772878_o7001c85t; Received: from WS-web (bugreport@ubisectech.com[W4_0.2.3_v5_2125151E_1714439772878_o7001c85t]) at Tue, 30 Apr 2024 09:16:50 +0800 Date: Tue, 30 Apr 2024 09:16:50 +0800 From: "Ubisectech Sirius" To: "linux-trace-kernel" , "linux-kernel" Cc: "tytso" , "adilger.kernel" Reply-To: "Ubisectech Sirius" Message-ID: Subject: =?UTF-8?B?QlVHOiB1bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBpbiBkb19zcGxp?= =?UTF-8?B?dA==?= X-Mailer: [Alimail-Mailagent][W4_0.2.3][v5][Chrome] Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 x-aliyun-mail-creator: W4_0.2.3_v5_M3LTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyNC4wLjAuMCBTYWZhcmkvNTM3LjM2vN Content-Type: multipart/mixed; boundary="----=ALIBOUNDARY_60289_7f563d39d700_66304682_80b9c0" This is a multi-part message in MIME format. ------=ALIBOUNDARY_60289_7f563d39d700_66304682_80b9c0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGVsbG8uCldlIGFyZSBVYmlzZWN0ZWNoIFNpcml1cyBUZWFtLCB0aGUgdnVsbmVyYWJpbGl0eSBs YWIgb2YgQ2hpbmEgVmFsaWFudFNlYy4gUmVjZW50bHksIG91ciB0ZWFtIGhhcyBkaXNjb3ZlcmVk IGEgaXNzdWUgaW4gTGludXgga2VybmVsIDYuNy4gQXR0YWNoZWQgdG8gdGhlIGVtYWlsIHdlcmUg YSBQb0MgZmlsZSBvZiB0aGUgaXNzdWUuCgpTdGFjayBkdW1wOgpCVUc6IHVuYWJsZSB0byBoYW5k bGUgcGFnZSBmYXVsdCBmb3IgYWRkcmVzczogZmZmZmVkMTEwYzJmZDk3ZgojUEY6IHN1cGVydmlz b3IgcmVhZCBhY2Nlc3MgaW4ga2VybmVsIG1vZGUKI1BGOiBlcnJvcl9jb2RlKDB4MDAwMCkgLSBu b3QtcHJlc2VudCBwYWdlClBHRCA3ZmZkMDA2NyBQNEQgN2ZmZDAwNjcgUFVEIDAKT29wczogMDAw MCBbIzFdIFBSRUVNUFQgU01QIEtBU0FOIE5PUFRJCkNQVTogMCBQSUQ6IDI0MDgyIENvbW06IHN5 ei1leGVjdXRvci4zIE5vdCB0YWludGVkIDYuNy4wICMyCkhhcmR3YXJlIG5hbWU6IFFFTVUgU3Rh bmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEuMTUuMC0xIDA0LzAxLzIwMTQK UklQOiAwMDEwOmRvX3NwbGl0KzB4ZmVmLzB4MWUxMCBmcy9leHQ0L25hbWVpLmM6MjA0NwpDb2Rl OiBkMiAwZiA4NSAzOCAwYiAwMCAwMCA4YiA0NSAwMCA4OSA4NCAyNCA4NCAwMCAwMCAwMCA0MSA4 ZCA0NSBmZiA0OCA4ZCAxYyBjMyA0OCBiOCAwMCAwMCAwMCAwMCAwMCBmYyBmZiBkZiA0OCA4OSBk YSA0OCBjMSBlYSAwMyA8MGY+IGI2IDE0IDAyIDQ4IDg5IGQ4IDgzIGUwIDA3IDgzIGMwIDAzIDM4 IGQwIDdjIDA4IDg0IGQyIDBmIDg1IGVmClJTUDogMDAxODpmZmZmYzkwMDAxZTlmODU4IEVGTEFH UzogMDAwMTBhMDIKUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogZmZmZjg4ODg2MTdlY2JmOCBS Q1g6IGZmZmZjOTAwMTA0OGYwMDAKUkRYOiAxZmZmZjExMTBjMmZkOTdmIFJTSTogZmZmZmZmZmY4 MjMzNjRhYiBSREk6IDAwMDAwMDAwMDAwMDAwMDUKUkJQOiBmZmZmODg4MDYxN2VjYzAwIFIwODog MDAwMDAwMDAwMDAwMDAwNSBSMDk6IDAwMDAwMDAwZmZmZmZmZmYKUjEwOiAwMDAwMDAwMGZmZmZm ZmZmIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGRmZmZmYzAwMDAwMDAwMDAKUjEzOiAwMDAw MDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDBmZmZmZmZmZiBSMTU6IGZmZmY4ODgwMWVlOGQyYjAK RlM6ICAwMDAwN2YxOTE0MDJhNjQwKDAwMDApIEdTOmZmZmY4ODgwMmM2MDAwMDAoMDAwMCkga25s R1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAw MDAwMDgwMDUwMDMzCkNSMjogZmZmZmVkMTEwYzJmZDk3ZiBDUjM6IDAwMDAwMDAwNTUwMGEwMDAg Q1I0OiAwMDAwMDAwMDAwNzUwZWYwCkRSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAw MDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6 IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwClBLUlU6IDU1NTU1NTU0CkNh bGwgVHJhY2U6CiA8VEFTSz4KIG1ha2VfaW5kZXhlZF9kaXIrMHgxMTU4LzB4MTU0MCBmcy9leHQ0 L25hbWVpLmM6MjM0MgogZXh0NF9hZGRfZW50cnkrMHhjZDAvMHhlODAgZnMvZXh0NC9uYW1laS5j OjI0NTQKIGV4dDRfYWRkX25vbmRpcisweDkwLzB4MmIwIGZzL2V4dDQvbmFtZWkuYzoyNzk1CiBl eHQ0X3N5bWxpbmsrMHg1MzkvMHg5ZTAgZnMvZXh0NC9uYW1laS5jOjM0MzYKIHZmc19zeW1saW5r IGZzL25hbWVpLmM6NDQ2NCBbaW5saW5lXQogdmZzX3N5bWxpbmsrMHgzZjYvMHg2NDAgZnMvbmFt ZWkuYzo0NDQ4CiBkb19zeW1saW5rYXQrMHgyNDUvMHgyZjAgZnMvbmFtZWkuYzo0NDkwCiBfX2Rv X3N5c19zeW1saW5rIGZzL25hbWVpLmM6NDUxMSBbaW5saW5lXQogX19zZV9zeXNfc3ltbGluayBm cy9uYW1laS5jOjQ1MDkgW2lubGluZV0KIF9feDY0X3N5c19zeW1saW5rKzB4NzkvMHhhMCBmcy9u YW1laS5jOjQ1MDkKIGRvX3N5c2NhbGxfeDY0IGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjUyIFtp bmxpbmVdCiBkb19zeXNjYWxsXzY0KzB4NDMvMHgxMjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6 ODMKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDZmLzB4NzcKUklQOiAwMDMzOjB4 N2YxOTEzMjkwMDJkCkNvZGU6IGMzIGU4IDk3IDJiIDAwIDAwIDBmIDFmIDgwIDAwIDAwIDAwIDAw IGYzIDBmIDFlIGZhIDQ4IDg5IGY4IDQ4IDg5IGY3IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMy IDRkIDg5IGM4IDRjIDhiIDRjIDI0IDA4IDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEg YzMgNDggYzcgYzEgYjAgZmYgZmYgZmYgZjcgZDggNjQgODkgMDEgNDgKUlNQOiAwMDJiOjAwMDA3 ZjE5MTQwMmEwMjggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDA1OApS QVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2YxOTEzM2NiZjgwIFJDWDogMDAwMDdmMTkx MzI5MDAyZApSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDIwMDAwZTQwIFJESTog MDAwMDAwMDAyMDAwMTY0MApSQlA6IDAwMDA3ZjE5MTMyZjE0ZDAgUjA4OiAwMDAwMDAwMDAwMDAw MDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAw MDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAwMApSMTM6IDAwMDAwMDAwMDAwMDAwMGIg UjE0OiAwMDAwN2YxOTEzM2NiZjgwIFIxNTogMDAwMDdmMTkxNDAwYTAwMAogPC9UQVNLPgpNb2R1 bGVzIGxpbmtlZCBpbjoKQ1IyOiBmZmZmZWQxMTBjMmZkOTdmCi0tLVsgZW5kIHRyYWNlIDAwMDAw MDAwMDAwMDAwMDAgXS0tLQpSSVA6IDAwMTA6ZG9fc3BsaXQrMHhmZWYvMHgxZTEwIGZzL2V4dDQv bmFtZWkuYzoyMDQ3CkNvZGU6IGQyIDBmIDg1IDM4IDBiIDAwIDAwIDhiIDQ1IDAwIDg5IDg0IDI0 IDg0IDAwIDAwIDAwIDQxIDhkIDQ1IGZmIDQ4IDhkIDFjIGMzIDQ4IGI4IDAwIDAwIDAwIDAwIDAw IGZjIGZmIGRmIDQ4IDg5IGRhIDQ4IGMxIGVhIDAzIDwwZj4gYjYgMTQgMDIgNDggODkgZDggODMg ZTAgMDcgODMgYzAgMDMgMzggZDAgN2MgMDggODQgZDIgMGYgODUgZWYKUlNQOiAwMDE4OmZmZmZj OTAwMDFlOWY4NTggRUZMQUdTOiAwMDAxMGEwMgpSQVg6IGRmZmZmYzAwMDAwMDAwMDAgUkJYOiBm ZmZmODg4ODYxN2VjYmY4IFJDWDogZmZmZmM5MDAxMDQ4ZjAwMApSRFg6IDFmZmZmMTExMGMyZmQ5 N2YgUlNJOiBmZmZmZmZmZjgyMzM2NGFiIFJESTogMDAwMDAwMDAwMDAwMDAwNQpSQlA6IGZmZmY4 ODgwNjE3ZWNjMDAgUjA4OiAwMDAwMDAwMDAwMDAwMDA1IFIwOTogMDAwMDAwMDBmZmZmZmZmZgpS MTA6IDAwMDAwMDAwZmZmZmZmZmYgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogZGZmZmZjMDAw MDAwMDAwMApSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMGZmZmZmZmZmIFIxNTog ZmZmZjg4ODAxZWU4ZDJiMApGUzogIDAwMDA3ZjE5MTQwMmE2NDAoMDAwMCkgR1M6ZmZmZjg4ODAy YzYwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBF UzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKQ1IyOiBmZmZmZWQxMTBjMmZkOTdmIENSMzog MDAwMDAwMDA1NTAwYTAwMCBDUjQ6IDAwMDAwMDAwMDA3NTBlZjAKRFIwOiAwMDAwMDAwMDAwMDAw MDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAw MDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAK UEtSVTogNTU1NTU1NTQKLS0tLS0tLS0tLS0tLS0tLQpDb2RlIGRpc2Fzc2VtYmx5IChiZXN0IGd1 ZXNzKToKICAgMDogICBkMiAwZiAgICAgICAgICAgICAgICAgICByb3JiICAgJWNsLCglcmRpKQog ICAyOiAgIDg1IDM4ICAgICAgICAgICAgICAgICAgIHRlc3QgICAlZWRpLCglcmF4KQogICA0OiAg IDBiIDAwICAgICAgICAgICAgICAgICAgIG9yICAgICAoJXJheCksJWVheAogICA2OiAgIDAwIDhi IDQ1IDAwIDg5IDg0ICAgICAgIGFkZCAgICAlY2wsLTB4N2I3NmZmYmIoJXJieCkKICAgYzogICAy NCA4NCAgICAgICAgICAgICAgICAgICBhbmQgICAgJDB4ODQsJWFsCiAgIGU6ICAgMDAgMDAgICAg ICAgICAgICAgICAgICAgYWRkICAgICVhbCwoJXJheCkKICAxMDogICAwMCA0MSA4ZCAgICAgICAg ICAgICAgICBhZGQgICAgJWFsLC0weDczKCVyY3gpCiAgMTM6ICAgNDUgZmYgNDggOGQgICAgICAg ICAgICAgcmV4LlJCIGRlY2wgLTB4NzMoJXI4KQogIDE3OiAgIDFjIGMzICAgICAgICAgICAgICAg ICAgIHNiYiAgICAkMHhjMywlYWwKICAxOTogICA0OCBiOCAwMCAwMCAwMCAwMCAwMCAgICBtb3Zh YnMgJDB4ZGZmZmZjMDAwMDAwMDAwMCwlcmF4CiAgMjA6ICAgZmMgZmYgZGYKICAyMzogICA0OCA4 OSBkYSAgICAgICAgICAgICAgICBtb3YgICAgJXJieCwlcmR4CiAgMjY6ICAgNDggYzEgZWEgMDMg ICAgICAgICAgICAgc2hyICAgICQweDMsJXJkeAoqIDJhOiAgIDBmIGI2IDE0IDAyICAgICAgICAg ICAgIG1vdnpibCAoJXJkeCwlcmF4LDEpLCVlZHggPC0tIHRyYXBwaW5nIGluc3RydWN0aW9uCiAg MmU6ICAgNDggODkgZDggICAgICAgICAgICAgICAgbW92ICAgICVyYngsJXJheAogIDMxOiAgIDgz IGUwIDA3ICAgICAgICAgICAgICAgIGFuZCAgICAkMHg3LCVlYXgKICAzNDogICA4MyBjMCAwMyAg ICAgICAgICAgICAgICBhZGQgICAgJDB4MywlZWF4CiAgMzc6ICAgMzggZDAgICAgICAgICAgICAg ICAgICAgY21wICAgICVkbCwlYWwKICAzOTogICA3YyAwOCAgICAgICAgICAgICAgICAgICBqbCAg ICAgMHg0MwogIDNiOiAgIDg0IGQyICAgICAgICAgICAgICAgICAgIHRlc3QgICAlZGwsJWRsCiAg M2Q6ICAgMGYgICAgICAgICAgICAgICAgICAgICAgLmJ5dGUgMHhmCiAgM2U6ICAgODUgZWYgICAg ICAgICAgICAgICAgICAgdGVzdCAgICVlYnAsJWVkaQoKClRoYW5rIHlvdSBmb3IgdGFraW5nIHRo ZSB0aW1lIHRvIHJlYWQgdGhpcyBlbWFpbCBhbmQgd2UgbG9vayBmb3J3YXJkIHRvIHdvcmtpbmcg d2l0aCB5b3UgZnVydGhlci4KCgoKCgoKCgoKCg== ------=ALIBOUNDARY_60289_7f563d39d700_66304682_80b9c0 Content-Type: application/octet-stream Content-Disposition: attachment; filename="=?UTF-8?B?cG9jLmM=?=" Content-Transfer-Encoding: base64 Ly8gYXV0b2dlbmVyYXRlZCBieSBzeXprYWxsZXIgKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUv c3l6a2FsbGVyKQoKI2RlZmluZSBfR05VX1NPVVJDRQoKI2luY2x1ZGUgPGVuZGlhbi5oPgojaW5j bHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxzZXRqbXAuaD4KI2lu Y2x1ZGUgPHN0ZGJvb2wuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgojaW5jbHVkZSA8c3RkaW50Lmg+ CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmcu aD4KI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgojaW5jbHVkZSA8c3lzL21tYW4uaD4KI2luY2x1ZGUg PHN5cy9tb3VudC5oPgojaW5jbHVkZSA8c3lzL3N0YXQuaD4KI2luY2x1ZGUgPHN5cy9zeXNjYWxs Lmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgoKI2luY2x1ZGUg PGxpbnV4L2xvb3AuaD4KCiNpZm5kZWYgX19OUl9tZW1mZF9jcmVhdGUKI2RlZmluZSBfX05SX21l bWZkX2NyZWF0ZSAzMTkKI2VuZGlmCiNpZm5kZWYgX19OUl9yZW5hbWVhdDIKI2RlZmluZSBfX05S X3JlbmFtZWF0MiAzMTYKI2VuZGlmCgpzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHByb2NpZDsK Ci8vJSBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHB1ZmYue2MsaH0sIGZvdW5kIGluIHRoZSB6 bGliIGRldmVsb3BtZW50LiBUaGUKLy8lIG9yaWdpbmFsIGZpbGVzIGNvbWUgd2l0aCB0aGUgZm9s bG93aW5nIGNvcHlyaWdodCBub3RpY2U6CgovLyUgQ29weXJpZ2h0IChDKSAyMDAyLTIwMTMgTWFy ayBBZGxlciwgYWxsIHJpZ2h0cyByZXNlcnZlZAovLyUgdmVyc2lvbiAyLjMsIDIxIEphbiAyMDEz Ci8vJSBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJl c3Mgb3IgaW1wbGllZAovLyUgd2FycmFudHkuICBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3Ig YmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCi8vJSBhcmlzaW5nIGZyb20gdGhlIHVzZSBv ZiB0aGlzIHNvZnR3YXJlLgovLyUgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1 c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCi8vJSBpbmNsdWRpbmcgY29tbWVyY2lh bCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0Ci8vJSBm cmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6Ci8vJSAxLiBUaGUg b3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBt dXN0IG5vdAovLyUgICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJl LiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKLy8lICAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93 bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQovLyUgICAgYXBw cmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KLy8lIDIuIEFsdGVyZWQgc291cmNlIHZlcnNp b25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCi8vJSAg ICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCi8vJSAzLiBU aGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2Ug ZGlzdHJpYnV0aW9uLgovLyUgTWFyayBBZGxlciAgICBtYWRsZXJAYWx1bW5pLmNhbHRlY2guZWR1 CgovLyUgQkVHSU4gQ09ERSBERVJJVkVEIEZST00gcHVmZi57YyxofQoKI2RlZmluZSBNQVhCSVRT IDE1CiNkZWZpbmUgTUFYTENPREVTIDI4NgojZGVmaW5lIE1BWERDT0RFUyAzMAojZGVmaW5lIE1B WENPREVTIChNQVhMQ09ERVMgKyBNQVhEQ09ERVMpCiNkZWZpbmUgRklYTENPREVTIDI4OAoKc3Ry dWN0IHB1ZmZfc3RhdGUgewogIHVuc2lnbmVkIGNoYXIqIG91dDsKICB1bnNpZ25lZCBsb25nIG91 dGxlbjsKICB1bnNpZ25lZCBsb25nIG91dGNudDsKICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbjsK ICB1bnNpZ25lZCBsb25nIGlubGVuOwogIHVuc2lnbmVkIGxvbmcgaW5jbnQ7CiAgaW50IGJpdGJ1 ZjsKICBpbnQgYml0Y250OwogIGptcF9idWYgZW52Owp9OwpzdGF0aWMgaW50IHB1ZmZfYml0cyhz dHJ1Y3QgcHVmZl9zdGF0ZSogcywgaW50IG5lZWQpCnsKICBsb25nIHZhbCA9IHMtPmJpdGJ1ZjsK ICB3aGlsZSAocy0+Yml0Y250IDwgbmVlZCkgewogICAgaWYgKHMtPmluY250ID09IHMtPmlubGVu KQogICAgICBsb25nam1wKHMtPmVudiwgMSk7CiAgICB2YWwgfD0gKGxvbmcpKHMtPmluW3MtPmlu Y250KytdKSA8PCBzLT5iaXRjbnQ7CiAgICBzLT5iaXRjbnQgKz0gODsKICB9CiAgcy0+Yml0YnVm ID0gKGludCkodmFsID4+IG5lZWQpOwogIHMtPmJpdGNudCAtPSBuZWVkOwogIHJldHVybiAoaW50 KSh2YWwgJiAoKDFMIDw8IG5lZWQpIC0gMSkpOwp9CnN0YXRpYyBpbnQgcHVmZl9zdG9yZWQoc3Ry dWN0IHB1ZmZfc3RhdGUqIHMpCnsKICBzLT5iaXRidWYgPSAwOwogIHMtPmJpdGNudCA9IDA7CiAg aWYgKHMtPmluY250ICsgNCA+IHMtPmlubGVuKQogICAgcmV0dXJuIDI7CiAgdW5zaWduZWQgbGVu ID0gcy0+aW5bcy0+aW5jbnQrK107CiAgbGVuIHw9IHMtPmluW3MtPmluY250KytdIDw8IDg7CiAg aWYgKHMtPmluW3MtPmluY250KytdICE9ICh+bGVuICYgMHhmZikgfHwKICAgICAgcy0+aW5bcy0+ aW5jbnQrK10gIT0gKCh+bGVuID4+IDgpICYgMHhmZikpCiAgICByZXR1cm4gLTI7CiAgaWYgKHMt PmluY250ICsgbGVuID4gcy0+aW5sZW4pCiAgICByZXR1cm4gMjsKICBpZiAocy0+b3V0Y250ICsg bGVuID4gcy0+b3V0bGVuKQogICAgcmV0dXJuIDE7CiAgZm9yICg7IGxlbi0tOyBzLT5vdXRjbnQr Kywgcy0+aW5jbnQrKykgewogICAgaWYgKHMtPmluW3MtPmluY250XSkKICAgICAgcy0+b3V0W3Mt Pm91dGNudF0gPSBzLT5pbltzLT5pbmNudF07CiAgfQogIHJldHVybiAwOwp9CnN0cnVjdCBwdWZm X2h1ZmZtYW4gewogIHNob3J0KiBjb3VudDsKICBzaG9ydCogc3ltYm9sOwp9OwpzdGF0aWMgaW50 IHB1ZmZfZGVjb2RlKHN0cnVjdCBwdWZmX3N0YXRlKiBzLCBjb25zdCBzdHJ1Y3QgcHVmZl9odWZm bWFuKiBoKQp7CiAgaW50IGZpcnN0ID0gMDsKICBpbnQgaW5kZXggPSAwOwogIGludCBiaXRidWYg PSBzLT5iaXRidWY7CiAgaW50IGxlZnQgPSBzLT5iaXRjbnQ7CiAgaW50IGNvZGUgPSBmaXJzdCA9 IGluZGV4ID0gMDsKICBpbnQgbGVuID0gMTsKICBzaG9ydCogbmV4dCA9IGgtPmNvdW50ICsgMTsK ICB3aGlsZSAoMSkgewogICAgd2hpbGUgKGxlZnQtLSkgewogICAgICBjb2RlIHw9IGJpdGJ1ZiAm IDE7CiAgICAgIGJpdGJ1ZiA+Pj0gMTsKICAgICAgaW50IGNvdW50ID0gKm5leHQrKzsKICAgICAg aWYgKGNvZGUgLSBjb3VudCA8IGZpcnN0KSB7CiAgICAgICAgcy0+Yml0YnVmID0gYml0YnVmOwog ICAgICAgIHMtPmJpdGNudCA9IChzLT5iaXRjbnQgLSBsZW4pICYgNzsKICAgICAgICByZXR1cm4g aC0+c3ltYm9sW2luZGV4ICsgKGNvZGUgLSBmaXJzdCldOwogICAgICB9CiAgICAgIGluZGV4ICs9 IGNvdW50OwogICAgICBmaXJzdCArPSBjb3VudDsKICAgICAgZmlyc3QgPDw9IDE7CiAgICAgIGNv ZGUgPDw9IDE7CiAgICAgIGxlbisrOwogICAgfQogICAgbGVmdCA9IChNQVhCSVRTICsgMSkgLSBs ZW47CiAgICBpZiAobGVmdCA9PSAwKQogICAgICBicmVhazsKICAgIGlmIChzLT5pbmNudCA9PSBz LT5pbmxlbikKICAgICAgbG9uZ2ptcChzLT5lbnYsIDEpOwogICAgYml0YnVmID0gcy0+aW5bcy0+ aW5jbnQrK107CiAgICBpZiAobGVmdCA+IDgpCiAgICAgIGxlZnQgPSA4OwogIH0KICByZXR1cm4g LTEwOwp9CnN0YXRpYyBpbnQgcHVmZl9jb25zdHJ1Y3Qoc3RydWN0IHB1ZmZfaHVmZm1hbiogaCwg Y29uc3Qgc2hvcnQqIGxlbmd0aCwgaW50IG4pCnsKICBpbnQgbGVuOwogIGZvciAobGVuID0gMDsg bGVuIDw9IE1BWEJJVFM7IGxlbisrKQogICAgaC0+Y291bnRbbGVuXSA9IDA7CiAgaW50IHN5bWJv bDsKICBmb3IgKHN5bWJvbCA9IDA7IHN5bWJvbCA8IG47IHN5bWJvbCsrKQogICAgKGgtPmNvdW50 W2xlbmd0aFtzeW1ib2xdXSkrKzsKICBpZiAoaC0+Y291bnRbMF0gPT0gbikKICAgIHJldHVybiAw OwogIGludCBsZWZ0ID0gMTsKICBmb3IgKGxlbiA9IDE7IGxlbiA8PSBNQVhCSVRTOyBsZW4rKykg ewogICAgbGVmdCA8PD0gMTsKICAgIGxlZnQgLT0gaC0+Y291bnRbbGVuXTsKICAgIGlmIChsZWZ0 IDwgMCkKICAgICAgcmV0dXJuIGxlZnQ7CiAgfQogIHNob3J0IG9mZnNbTUFYQklUUyArIDFdOwog IG9mZnNbMV0gPSAwOwogIGZvciAobGVuID0gMTsgbGVuIDwgTUFYQklUUzsgbGVuKyspCiAgICBv ZmZzW2xlbiArIDFdID0gb2Zmc1tsZW5dICsgaC0+Y291bnRbbGVuXTsKICBmb3IgKHN5bWJvbCA9 IDA7IHN5bWJvbCA8IG47IHN5bWJvbCsrKQogICAgaWYgKGxlbmd0aFtzeW1ib2xdICE9IDApCiAg ICAgIGgtPnN5bWJvbFtvZmZzW2xlbmd0aFtzeW1ib2xdXSsrXSA9IHN5bWJvbDsKICByZXR1cm4g bGVmdDsKfQpzdGF0aWMgaW50IHB1ZmZfY29kZXMoc3RydWN0IHB1ZmZfc3RhdGUqIHMsIGNvbnN0 IHN0cnVjdCBwdWZmX2h1ZmZtYW4qIGxlbmNvZGUsCiAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgcHVmZl9odWZmbWFuKiBkaXN0Y29kZSkKewogIHN0YXRpYyBjb25zdCBzaG9ydCBs ZW5zWzI5XSA9IHszLCAgNCwgIDUsICA2LCAgIDcsICAgOCwgICA5LCAgIDEwLCAgMTEsIDEzLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwgMTcsIDE5LCAyMywgIDI3LCAgMzEs ICAzNSwgIDQzLCAgNTEsIDU5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Nywg ODMsIDk5LCAxMTUsIDEzMSwgMTYzLCAxOTUsIDIyNywgMjU4fTsKICBzdGF0aWMgY29uc3Qgc2hv cnQgbGV4dFsyOV0gPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgMiwgMiwg MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwgMywgMywgMywgMywgNCwgNCwg NCwgNCwgNSwgNSwgNSwgNSwgMH07CiAgc3RhdGljIGNvbnN0IHNob3J0IGRpc3RzWzMwXSA9IHsK ICAgICAgMSwgICAgMiwgICAgMywgICAgNCwgICAgNSwgICAgNywgICAgOSwgICAgMTMsICAgIDE3 LCAgICAyNSwKICAgICAgMzMsICAgNDksICAgNjUsICAgOTcsICAgMTI5LCAgMTkzLCAgMjU3LCAg Mzg1LCAgIDUxMywgICA3NjksCiAgICAgIDEwMjUsIDE1MzcsIDIwNDksIDMwNzMsIDQwOTcsIDYx NDUsIDgxOTMsIDEyMjg5LCAxNjM4NSwgMjQ1Nzd9OwogIHN0YXRpYyBjb25zdCBzaG9ydCBkZXh0 WzMwXSA9IHswLCAwLCAwLCAgMCwgIDEsICAxLCAgMiwgIDIsICAzLCAgMywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgNCwgNCwgNSwgIDUsICA2LCAgNiwgIDcsICA3LCAgOCwgIDgs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDksIDksIDEwLCAxMCwgMTEsIDExLCAx MiwgMTIsIDEzLCAxM307CiAgaW50IHN5bWJvbDsKICBkbyB7CiAgICBzeW1ib2wgPSBwdWZmX2Rl Y29kZShzLCBsZW5jb2RlKTsKICAgIGlmIChzeW1ib2wgPCAwKQogICAgICByZXR1cm4gc3ltYm9s OwogICAgaWYgKHN5bWJvbCA8IDI1NikgewogICAgICBpZiAocy0+b3V0Y250ID09IHMtPm91dGxl bikKICAgICAgICByZXR1cm4gMTsKICAgICAgaWYgKHN5bWJvbCkKICAgICAgICBzLT5vdXRbcy0+ b3V0Y250XSA9IHN5bWJvbDsKICAgICAgcy0+b3V0Y250Kys7CiAgICB9IGVsc2UgaWYgKHN5bWJv bCA+IDI1NikgewogICAgICBzeW1ib2wgLT0gMjU3OwogICAgICBpZiAoc3ltYm9sID49IDI5KQog ICAgICAgIHJldHVybiAtMTA7CiAgICAgIGludCBsZW4gPSBsZW5zW3N5bWJvbF0gKyBwdWZmX2Jp dHMocywgbGV4dFtzeW1ib2xdKTsKICAgICAgc3ltYm9sID0gcHVmZl9kZWNvZGUocywgZGlzdGNv ZGUpOwogICAgICBpZiAoc3ltYm9sIDwgMCkKICAgICAgICByZXR1cm4gc3ltYm9sOwogICAgICB1 bnNpZ25lZCBkaXN0ID0gZGlzdHNbc3ltYm9sXSArIHB1ZmZfYml0cyhzLCBkZXh0W3N5bWJvbF0p OwogICAgICBpZiAoZGlzdCA+IHMtPm91dGNudCkKICAgICAgICByZXR1cm4gLTExOwogICAgICBp ZiAocy0+b3V0Y250ICsgbGVuID4gcy0+b3V0bGVuKQogICAgICAgIHJldHVybiAxOwogICAgICB3 aGlsZSAobGVuLS0pIHsKICAgICAgICBpZiAoZGlzdCA8PSBzLT5vdXRjbnQgJiYgcy0+b3V0W3Mt Pm91dGNudCAtIGRpc3RdKQogICAgICAgICAgcy0+b3V0W3MtPm91dGNudF0gPSBzLT5vdXRbcy0+ b3V0Y250IC0gZGlzdF07CiAgICAgICAgcy0+b3V0Y250Kys7CiAgICAgIH0KICAgIH0KICB9IHdo aWxlIChzeW1ib2wgIT0gMjU2KTsKICByZXR1cm4gMDsKfQpzdGF0aWMgaW50IHB1ZmZfZml4ZWQo c3RydWN0IHB1ZmZfc3RhdGUqIHMpCnsKICBzdGF0aWMgaW50IHZpcmdpbiA9IDE7CiAgc3RhdGlj IHNob3J0IGxlbmNudFtNQVhCSVRTICsgMV0sIGxlbnN5bVtGSVhMQ09ERVNdOwogIHN0YXRpYyBz aG9ydCBkaXN0Y250W01BWEJJVFMgKyAxXSwgZGlzdHN5bVtNQVhEQ09ERVNdOwogIHN0YXRpYyBz dHJ1Y3QgcHVmZl9odWZmbWFuIGxlbmNvZGUsIGRpc3Rjb2RlOwogIGlmICh2aXJnaW4pIHsKICAg IGxlbmNvZGUuY291bnQgPSBsZW5jbnQ7CiAgICBsZW5jb2RlLnN5bWJvbCA9IGxlbnN5bTsKICAg IGRpc3Rjb2RlLmNvdW50ID0gZGlzdGNudDsKICAgIGRpc3Rjb2RlLnN5bWJvbCA9IGRpc3RzeW07 CiAgICBzaG9ydCBsZW5ndGhzW0ZJWExDT0RFU107CiAgICBpbnQgc3ltYm9sOwogICAgZm9yIChz eW1ib2wgPSAwOyBzeW1ib2wgPCAxNDQ7IHN5bWJvbCsrKQogICAgICBsZW5ndGhzW3N5bWJvbF0g PSA4OwogICAgZm9yICg7IHN5bWJvbCA8IDI1Njsgc3ltYm9sKyspCiAgICAgIGxlbmd0aHNbc3lt Ym9sXSA9IDk7CiAgICBmb3IgKDsgc3ltYm9sIDwgMjgwOyBzeW1ib2wrKykKICAgICAgbGVuZ3Ro c1tzeW1ib2xdID0gNzsKICAgIGZvciAoOyBzeW1ib2wgPCBGSVhMQ09ERVM7IHN5bWJvbCsrKQog ICAgICBsZW5ndGhzW3N5bWJvbF0gPSA4OwogICAgcHVmZl9jb25zdHJ1Y3QoJmxlbmNvZGUsIGxl bmd0aHMsIEZJWExDT0RFUyk7CiAgICBmb3IgKHN5bWJvbCA9IDA7IHN5bWJvbCA8IE1BWERDT0RF Uzsgc3ltYm9sKyspCiAgICAgIGxlbmd0aHNbc3ltYm9sXSA9IDU7CiAgICBwdWZmX2NvbnN0cnVj dCgmZGlzdGNvZGUsIGxlbmd0aHMsIE1BWERDT0RFUyk7CiAgICB2aXJnaW4gPSAwOwogIH0KICBy ZXR1cm4gcHVmZl9jb2RlcyhzLCAmbGVuY29kZSwgJmRpc3Rjb2RlKTsKfQpzdGF0aWMgaW50IHB1 ZmZfZHluYW1pYyhzdHJ1Y3QgcHVmZl9zdGF0ZSogcykKewogIHN0YXRpYyBjb25zdCBzaG9ydCBv cmRlclsxOV0gPSB7MTYsIDE3LCAxOCwgMCwgOCwgIDcsIDksICA2LCAxMCwgNSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDExLCA0LCAgMTIsIDMsIDEzLCAyLCAxNCwgMSwgMTV9 OwogIGludCBubGVuID0gcHVmZl9iaXRzKHMsIDUpICsgMjU3OwogIGludCBuZGlzdCA9IHB1ZmZf Yml0cyhzLCA1KSArIDE7CiAgaW50IG5jb2RlID0gcHVmZl9iaXRzKHMsIDQpICsgNDsKICBpZiAo bmxlbiA+IE1BWExDT0RFUyB8fCBuZGlzdCA+IE1BWERDT0RFUykKICAgIHJldHVybiAtMzsKICBz aG9ydCBsZW5ndGhzW01BWENPREVTXTsKICBpbnQgaW5kZXg7CiAgZm9yIChpbmRleCA9IDA7IGlu ZGV4IDwgbmNvZGU7IGluZGV4KyspCiAgICBsZW5ndGhzW29yZGVyW2luZGV4XV0gPSBwdWZmX2Jp dHMocywgMyk7CiAgZm9yICg7IGluZGV4IDwgMTk7IGluZGV4KyspCiAgICBsZW5ndGhzW29yZGVy W2luZGV4XV0gPSAwOwogIHNob3J0IGxlbmNudFtNQVhCSVRTICsgMV0sIGxlbnN5bVtNQVhMQ09E RVNdOwogIHN0cnVjdCBwdWZmX2h1ZmZtYW4gbGVuY29kZSA9IHtsZW5jbnQsIGxlbnN5bX07CiAg aW50IGVyciA9IHB1ZmZfY29uc3RydWN0KCZsZW5jb2RlLCBsZW5ndGhzLCAxOSk7CiAgaWYgKGVy ciAhPSAwKQogICAgcmV0dXJuIC00OwogIGluZGV4ID0gMDsKICB3aGlsZSAoaW5kZXggPCBubGVu ICsgbmRpc3QpIHsKICAgIGludCBzeW1ib2w7CiAgICBpbnQgbGVuOwogICAgc3ltYm9sID0gcHVm Zl9kZWNvZGUocywgJmxlbmNvZGUpOwogICAgaWYgKHN5bWJvbCA8IDApCiAgICAgIHJldHVybiBz eW1ib2w7CiAgICBpZiAoc3ltYm9sIDwgMTYpCiAgICAgIGxlbmd0aHNbaW5kZXgrK10gPSBzeW1i b2w7CiAgICBlbHNlIHsKICAgICAgbGVuID0gMDsKICAgICAgaWYgKHN5bWJvbCA9PSAxNikgewog ICAgICAgIGlmIChpbmRleCA9PSAwKQogICAgICAgICAgcmV0dXJuIC01OwogICAgICAgIGxlbiA9 IGxlbmd0aHNbaW5kZXggLSAxXTsKICAgICAgICBzeW1ib2wgPSAzICsgcHVmZl9iaXRzKHMsIDIp OwogICAgICB9IGVsc2UgaWYgKHN5bWJvbCA9PSAxNykKICAgICAgICBzeW1ib2wgPSAzICsgcHVm Zl9iaXRzKHMsIDMpOwogICAgICBlbHNlCiAgICAgICAgc3ltYm9sID0gMTEgKyBwdWZmX2JpdHMo cywgNyk7CiAgICAgIGlmIChpbmRleCArIHN5bWJvbCA+IG5sZW4gKyBuZGlzdCkKICAgICAgICBy ZXR1cm4gLTY7CiAgICAgIHdoaWxlIChzeW1ib2wtLSkKICAgICAgICBsZW5ndGhzW2luZGV4Kytd ID0gbGVuOwogICAgfQogIH0KICBpZiAobGVuZ3Roc1syNTZdID09IDApCiAgICByZXR1cm4gLTk7 CiAgZXJyID0gcHVmZl9jb25zdHJ1Y3QoJmxlbmNvZGUsIGxlbmd0aHMsIG5sZW4pOwogIGlmIChl cnIgJiYgKGVyciA8IDAgfHwgbmxlbiAhPSBsZW5jb2RlLmNvdW50WzBdICsgbGVuY29kZS5jb3Vu dFsxXSkpCiAgICByZXR1cm4gLTc7CiAgc2hvcnQgZGlzdGNudFtNQVhCSVRTICsgMV0sIGRpc3Rz eW1bTUFYRENPREVTXTsKICBzdHJ1Y3QgcHVmZl9odWZmbWFuIGRpc3Rjb2RlID0ge2Rpc3RjbnQs IGRpc3RzeW19OwogIGVyciA9IHB1ZmZfY29uc3RydWN0KCZkaXN0Y29kZSwgbGVuZ3RocyArIG5s ZW4sIG5kaXN0KTsKICBpZiAoZXJyICYmIChlcnIgPCAwIHx8IG5kaXN0ICE9IGRpc3Rjb2RlLmNv dW50WzBdICsgZGlzdGNvZGUuY291bnRbMV0pKQogICAgcmV0dXJuIC04OwogIHJldHVybiBwdWZm X2NvZGVzKHMsICZsZW5jb2RlLCAmZGlzdGNvZGUpOwp9CnN0YXRpYyBpbnQgcHVmZih1bnNpZ25l ZCBjaGFyKiBkZXN0LCB1bnNpZ25lZCBsb25nKiBkZXN0bGVuLAogICAgICAgICAgICAgICAgY29u c3QgdW5zaWduZWQgY2hhciogc291cmNlLCB1bnNpZ25lZCBsb25nIHNvdXJjZWxlbikKewogIHN0 cnVjdCBwdWZmX3N0YXRlIHMgPSB7CiAgICAgIC5vdXQgPSBkZXN0LAogICAgICAub3V0bGVuID0g KmRlc3RsZW4sCiAgICAgIC5vdXRjbnQgPSAwLAogICAgICAuaW4gPSBzb3VyY2UsCiAgICAgIC5p bmxlbiA9IHNvdXJjZWxlbiwKICAgICAgLmluY250ID0gMCwKICAgICAgLmJpdGJ1ZiA9IDAsCiAg ICAgIC5iaXRjbnQgPSAwLAogIH07CiAgaW50IGVycjsKICBpZiAoc2V0am1wKHMuZW52KSAhPSAw KQogICAgZXJyID0gMjsKICBlbHNlIHsKICAgIGludCBsYXN0OwogICAgZG8gewogICAgICBsYXN0 ID0gcHVmZl9iaXRzKCZzLCAxKTsKICAgICAgaW50IHR5cGUgPSBwdWZmX2JpdHMoJnMsIDIpOwog ICAgICBlcnIgPSB0eXBlID09IDAgPyBwdWZmX3N0b3JlZCgmcykKICAgICAgICAgICAgICAgICAg ICAgIDogKHR5cGUgPT0gMSA/IHB1ZmZfZml4ZWQoJnMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiAodHlwZSA9PSAyID8gcHVmZl9keW5hbWljKCZzKSA6IC0xKSk7CiAgICAg IGlmIChlcnIgIT0gMCkKICAgICAgICBicmVhazsKICAgIH0gd2hpbGUgKCFsYXN0KTsKICB9CiAg KmRlc3RsZW4gPSBzLm91dGNudDsKICByZXR1cm4gZXJyOwp9CgovLyUgRU5EIENPREUgREVSSVZF RCBGUk9NIHB1ZmYue2MsaH0KCiNkZWZpbmUgWkxJQl9IRUFERVJfV0lEVEggMgoKc3RhdGljIGlu dCBwdWZmX3psaWJfdG9fZmlsZShjb25zdCB1bnNpZ25lZCBjaGFyKiBzb3VyY2UsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzb3VyY2VsZW4sIGludCBkZXN0X2Zk KQp7CiAgaWYgKHNvdXJjZWxlbiA8IFpMSUJfSEVBREVSX1dJRFRIKQogICAgcmV0dXJuIDA7CiAg c291cmNlICs9IFpMSUJfSEVBREVSX1dJRFRIOwogIHNvdXJjZWxlbiAtPSBaTElCX0hFQURFUl9X SURUSDsKICBjb25zdCB1bnNpZ25lZCBsb25nIG1heF9kZXN0bGVuID0gMTMyIDw8IDIwOwogIHZv aWQqIHJldCA9IG1tYXAoMCwgbWF4X2Rlc3RsZW4sIFBST1RfV1JJVEUgfCBQUk9UX1JFQUQsCiAg ICAgICAgICAgICAgICAgICBNQVBfUFJJVkFURSB8IE1BUF9BTk9OLCAtMSwgMCk7CiAgaWYgKHJl dCA9PSBNQVBfRkFJTEVEKQogICAgcmV0dXJuIC0xOwogIHVuc2lnbmVkIGNoYXIqIGRlc3QgPSAo dW5zaWduZWQgY2hhciopcmV0OwogIHVuc2lnbmVkIGxvbmcgZGVzdGxlbiA9IG1heF9kZXN0bGVu OwogIGludCBlcnIgPSBwdWZmKGRlc3QsICZkZXN0bGVuLCBzb3VyY2UsIHNvdXJjZWxlbik7CiAg aWYgKGVycikgewogICAgbXVubWFwKGRlc3QsIG1heF9kZXN0bGVuKTsKICAgIGVycm5vID0gLWVy cjsKICAgIHJldHVybiAtMTsKICB9CiAgaWYgKHdyaXRlKGRlc3RfZmQsIGRlc3QsIGRlc3RsZW4p ICE9IChzc2l6ZV90KWRlc3RsZW4pIHsKICAgIG11bm1hcChkZXN0LCBtYXhfZGVzdGxlbik7CiAg ICByZXR1cm4gLTE7CiAgfQogIHJldHVybiBtdW5tYXAoZGVzdCwgbWF4X2Rlc3RsZW4pOwp9Cgpz dGF0aWMgaW50IHNldHVwX2xvb3BfZGV2aWNlKHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVk IGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBsb29w bmFtZSwgaW50KiBsb29wZmRfcCkKewogIGludCBlcnIgPSAwLCBsb29wZmQgPSAtMTsKICBpbnQg bWVtZmQgPSBzeXNjYWxsKF9fTlJfbWVtZmRfY3JlYXRlLCAic3l6a2FsbGVyIiwgMCk7CiAgaWYg KG1lbWZkID09IC0xKSB7CiAgICBlcnIgPSBlcnJubzsKICAgIGdvdG8gZXJyb3I7CiAgfQogIGlm IChwdWZmX3psaWJfdG9fZmlsZShkYXRhLCBzaXplLCBtZW1mZCkpIHsKICAgIGVyciA9IGVycm5v OwogICAgZ290byBlcnJvcl9jbG9zZV9tZW1mZDsKICB9CiAgbG9vcGZkID0gb3Blbihsb29wbmFt ZSwgT19SRFdSKTsKICBpZiAobG9vcGZkID09IC0xKSB7CiAgICBlcnIgPSBlcnJubzsKICAgIGdv dG8gZXJyb3JfY2xvc2VfbWVtZmQ7CiAgfQogIGlmIChpb2N0bChsb29wZmQsIExPT1BfU0VUX0ZE LCBtZW1mZCkpIHsKICAgIGlmIChlcnJubyAhPSBFQlVTWSkgewogICAgICBlcnIgPSBlcnJubzsK ICAgICAgZ290byBlcnJvcl9jbG9zZV9sb29wOwogICAgfQogICAgaW9jdGwobG9vcGZkLCBMT09Q X0NMUl9GRCwgMCk7CiAgICB1c2xlZXAoMTAwMCk7CiAgICBpZiAoaW9jdGwobG9vcGZkLCBMT09Q X1NFVF9GRCwgbWVtZmQpKSB7CiAgICAgIGVyciA9IGVycm5vOwogICAgICBnb3RvIGVycm9yX2Ns b3NlX2xvb3A7CiAgICB9CiAgfQogIGNsb3NlKG1lbWZkKTsKICAqbG9vcGZkX3AgPSBsb29wZmQ7 CiAgcmV0dXJuIDA7CgplcnJvcl9jbG9zZV9sb29wOgogIGNsb3NlKGxvb3BmZCk7CmVycm9yX2Ns b3NlX21lbWZkOgogIGNsb3NlKG1lbWZkKTsKZXJyb3I6CiAgZXJybm8gPSBlcnI7CiAgcmV0dXJu IC0xOwp9CgpzdGF0aWMgdm9pZCByZXNldF9sb29wX2RldmljZShjb25zdCBjaGFyKiBsb29wbmFt ZSkKewogIGludCBsb29wZmQgPSBvcGVuKGxvb3BuYW1lLCBPX1JEV1IpOwogIGlmIChsb29wZmQg PT0gLTEpIHsKICAgIHJldHVybjsKICB9CiAgaWYgKGlvY3RsKGxvb3BmZCwgTE9PUF9DTFJfRkQs IDApKSB7CiAgfQogIGNsb3NlKGxvb3BmZCk7Cn0KCnN0YXRpYyBsb25nIHN5el9tb3VudF9pbWFn ZSh2b2xhdGlsZSBsb25nIGZzYXJnLCB2b2xhdGlsZSBsb25nIGRpciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZvbGF0aWxlIGxvbmcgZmxhZ3MsIHZvbGF0aWxlIGxvbmcgb3B0c2FyZywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbGF0aWxlIGxvbmcgY2hhbmdlX2RpciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdm9s YXRpbGUgbG9uZyBpbWFnZSkKewogIHVuc2lnbmVkIGNoYXIqIGRhdGEgPSAodW5zaWduZWQgY2hh ciopaW1hZ2U7CiAgaW50IHJlcyA9IC0xLCBlcnIgPSAwLCBuZWVkX2xvb3BfZGV2aWNlID0gISFz aXplOwogIGNoYXIqIG1vdW50X29wdHMgPSAoY2hhciopb3B0c2FyZzsKICBjaGFyKiB0YXJnZXQg PSAoY2hhciopZGlyOwogIGNoYXIqIGZzID0gKGNoYXIqKWZzYXJnOwogIGNoYXIqIHNvdXJjZSA9 IE5VTEw7CiAgY2hhciBsb29wbmFtZVs2NF07CiAgaWYgKG5lZWRfbG9vcF9kZXZpY2UpIHsKICAg IGludCBsb29wZmQ7CiAgICBtZW1zZXQobG9vcG5hbWUsIDAsIHNpemVvZihsb29wbmFtZSkpOwog ICAgc25wcmludGYobG9vcG5hbWUsIHNpemVvZihsb29wbmFtZSksICIvZGV2L2xvb3AlbGx1Iiwg cHJvY2lkKTsKICAgIGlmIChzZXR1cF9sb29wX2RldmljZShkYXRhLCBzaXplLCBsb29wbmFtZSwg Jmxvb3BmZCkgPT0gLTEpCiAgICAgIHJldHVybiAtMTsKICAgIGNsb3NlKGxvb3BmZCk7CiAgICBz b3VyY2UgPSBsb29wbmFtZTsKICB9CiAgbWtkaXIodGFyZ2V0LCAwNzc3KTsKICBjaGFyIG9wdHNb MjU2XTsKICBtZW1zZXQob3B0cywgMCwgc2l6ZW9mKG9wdHMpKTsKICBpZiAoc3RybGVuKG1vdW50 X29wdHMpID4gKHNpemVvZihvcHRzKSAtIDMyKSkgewogIH0KICBzdHJuY3B5KG9wdHMsIG1vdW50 X29wdHMsIHNpemVvZihvcHRzKSAtIDMyKTsKICBpZiAoc3RyY21wKGZzLCAiaXNvOTY2MCIpID09 IDApIHsKICAgIGZsYWdzIHw9IE1TX1JET05MWTsKICB9IGVsc2UgaWYgKHN0cm5jbXAoZnMsICJl eHQiLCAzKSA9PSAwKSB7CiAgICBib29sIGhhc19yZW1vdW50X3JvID0gZmFsc2U7CiAgICBjaGFy KiByZW1vdW50X3JvX3N0YXJ0ID0gc3Ryc3RyKG9wdHMsICJlcnJvcnM9cmVtb3VudC1ybyIpOwog ICAgaWYgKHJlbW91bnRfcm9fc3RhcnQgIT0gTlVMTCkgewogICAgICBjaGFyIGFmdGVyID0gKihy ZW1vdW50X3JvX3N0YXJ0ICsgc3RybGVuKCJlcnJvcnM9cmVtb3VudC1ybyIpKTsKICAgICAgY2hh ciBiZWZvcmUgPSByZW1vdW50X3JvX3N0YXJ0ID09IG9wdHMgPyAnXDAnIDogKihyZW1vdW50X3Jv X3N0YXJ0IC0gMSk7CiAgICAgIGhhc19yZW1vdW50X3JvID0gKChiZWZvcmUgPT0gJ1wwJyB8fCBi ZWZvcmUgPT0gJywnKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAoYWZ0ZXIgPT0gJ1wwJyB8 fCBhZnRlciA9PSAnLCcpKTsKICAgIH0KICAgIGlmIChzdHJzdHIob3B0cywgImVycm9ycz1wYW5p YyIpIHx8ICFoYXNfcmVtb3VudF9ybykKICAgICAgc3RyY2F0KG9wdHMsICIsZXJyb3JzPWNvbnRp bnVlIik7CiAgfSBlbHNlIGlmIChzdHJjbXAoZnMsICJ4ZnMiKSA9PSAwKSB7CiAgICBzdHJjYXQo b3B0cywgIixub3V1aWQiKTsKICB9CiAgcmVzID0gbW91bnQoc291cmNlLCB0YXJnZXQsIGZzLCBm bGFncywgb3B0cyk7CiAgaWYgKHJlcyA9PSAtMSkgewogICAgZXJyID0gZXJybm87CiAgICBnb3Rv IGVycm9yX2NsZWFyX2xvb3A7CiAgfQogIHJlcyA9IG9wZW4odGFyZ2V0LCBPX1JET05MWSB8IE9f RElSRUNUT1JZKTsKICBpZiAocmVzID09IC0xKSB7CiAgICBlcnIgPSBlcnJubzsKICAgIGdvdG8g ZXJyb3JfY2xlYXJfbG9vcDsKICB9CiAgaWYgKGNoYW5nZV9kaXIpIHsKICAgIHJlcyA9IGNoZGly KHRhcmdldCk7CiAgICBpZiAocmVzID09IC0xKSB7CiAgICAgIGVyciA9IGVycm5vOwogICAgfQog IH0KCmVycm9yX2NsZWFyX2xvb3A6CiAgaWYgKG5lZWRfbG9vcF9kZXZpY2UpCiAgICByZXNldF9s b29wX2RldmljZShsb29wbmFtZSk7CiAgZXJybm8gPSBlcnI7CiAgcmV0dXJuIHJlczsKfQoKdWlu dDY0X3QgclsxXSA9IHsweGZmZmZmZmZmZmZmZmZmZmZ9OwoKaW50IG1haW4odm9pZCkKewogIHN5 c2NhbGwoX19OUl9tbWFwLCAvKmFkZHI9Ki8weDFmZmZmMDAwdWwsIC8qbGVuPSovMHgxMDAwdWws IC8qcHJvdD0qLzB1bCwKICAgICAgICAgIC8qZmxhZ3M9TUFQX0ZJWEVEfE1BUF9BTk9OWU1PVVN8 TUFQX1BSSVZBVEUqLyAweDMydWwsIC8qZmQ9Ki8tMSwKICAgICAgICAgIC8qb2Zmc2V0PSovMHVs KTsKICBzeXNjYWxsKF9fTlJfbW1hcCwgLyphZGRyPSovMHgyMDAwMDAwMHVsLCAvKmxlbj0qLzB4 MTAwMDAwMHVsLAogICAgICAgICAgLypwcm90PVBST1RfV1JJVEV8UFJPVF9SRUFEfFBST1RfRVhF QyovIDd1bCwKICAgICAgICAgIC8qZmxhZ3M9TUFQX0ZJWEVEfE1BUF9BTk9OWU1PVVN8TUFQX1BS SVZBVEUqLyAweDMydWwsIC8qZmQ9Ki8tMSwKICAgICAgICAgIC8qb2Zmc2V0PSovMHVsKTsKICBz eXNjYWxsKF9fTlJfbW1hcCwgLyphZGRyPSovMHgyMTAwMDAwMHVsLCAvKmxlbj0qLzB4MTAwMHVs LCAvKnByb3Q9Ki8wdWwsCiAgICAgICAgICAvKmZsYWdzPU1BUF9GSVhFRHxNQVBfQU5PTllNT1VT fE1BUF9QUklWQVRFKi8gMHgzMnVsLCAvKmZkPSovLTEsCiAgICAgICAgICAvKm9mZnNldD0qLzB1 bCk7CiAgaW50cHRyX3QgcmVzID0gMDsKICBtZW1jcHkoKHZvaWQqKTB4MjAwMDAxODAsICJleHQ0 XDAwMCIsIDUpOwogIG1lbWNweSgodm9pZCopMHgyMDAwMDBjMCwgIi4vZmlsZTFcMDAwIiwgOCk7 CiAgKih1aW50OF90KikweDIwMDAwNzQwID0gMDsKICBtZW1jcHkoCiAgICAgICh2b2lkKikweDIw MDAwZGMwLAogICAgICAiXHg3OFx4OWNceGVjXHhkY1x4Y2JceDZmXHg1NFx4ZDVceDFmXHgwMFx4 ZjBceGVmXHhiZFx4ZDNceDk2XHgzN1x4ZWRceDhmIgogICAgICAiXHgxZlx4YTJceGYyXHg5MFx4 MmFceDFhXHgxYlx4MWZceDJkXHgyZFx4YThceDJjXHhkY1x4NjhceDc0XHhhN1x4ODlceDg5Igog ICAgICAiXHgyZVx4NzBceDYzXHg1Mlx4ZGJceDQyXHgyYVx4MDNceDM1XHhiNFx4MjRceDQyXHg4 OFx4NTZceDYzXHg3MFx4NjlceDQ4IgogICAgICAiXHhkY1x4MWJceDU3XHhjNlx4ZThceDVmXHhl MFx4NGFceDM3XHg0Nlx4NWRceDk5XHhiOFx4ZDVceGJkXHgyMVx4MjFceDRhIgogICAgICAiXHg0 Y1x4NDBceDE3XHg2Nlx4Y2NceGJkXHg3M1x4NmZceDY5XHhjYlx4NGNceDVmXHg0Y1x4OTlceGUy XHg3Y1x4M2VceGM5IgogICAgICAiXHgxZFx4Y2VceDk5XHg3Ylx4NjZceGNlXHhmOVx4Y2VceGI5 XHg2N1x4ZWVceGI5XHhmN1x4MzBceDBkXHhhMFx4NjNceGY1IgogICAgICAiXHg2N1x4MGZceDQ5 XHhjNFx4ZjZceDg4XHhmOFx4MjVceDIyXHg3YVx4ZWJceGQ5XHg4NVx4MDVceGZhXHhlYlx4ZmZc eGRjIgogICAgICAiXHhiOFx4NzZceDcxXHhlY1x4YWZceDZiXHgxN1x4YzdceDkyXHhhOFx4ZDVc eDVlXHhmZFx4M2RceGM5XHhjYlx4NWRceGJmIgogICAgICAiXHg3Nlx4NzFceGFjXHgyY1x4NWFc eGJlXHg2ZVx4NWJceDkxXHgxOVx4NDhceDIzXHhkMlx4MGZceDkzXHhhMlx4OTJceDg1IgogICAg ICAiXHhhNlx4Y2ZceDVmXHgzOFx4MzVceDVhXHhhZFx4NGVceDljXHgyZFx4ZjJceDQzXHgzM1x4 YTdceGRmXHgxZVx4OWFceDNlIgogICAgICAiXHg3Zlx4ZTFceGM5XHhjOVx4ZDNceGEzXHgyN1x4 MjdceDRlXHg0ZVx4OWNceDE5XHgzOVx4NzZceGVjXHhlOFx4OTFceGUxIgogICAgICAiXHg2N1x4 OWVceDFlXHg3OVx4YWFceDI1XHg3MVx4NjZceDcxXHg1ZFx4ZGZceGZiXHhlZVx4ZDRceGZlXHhh NFx4ZWJceGY1IgogICAgICAiXHhjYlx4MmZceDhmXHgxZFx4YmZceGZjXHhlNlx4MGZceDVmXHg3 NVx4NDVceGM0XHg5ZVx4MDNceGY1XHhmZFx4ZjNceGUzIgogICAgICAiXHhiOFx4MmRceGU5XHhi Nlx4YjlceDY0XHg3Zlx4MTZceGY4XHgxZlx4YjVceGRjXHhlMlx4NjJceDhmXHhiNFx4YTRceGIy IgogICAgICAiXHg4ZFx4NjNceGM3XHhiY1x4NzRceGQyXHhkNVx4YzZceDg2XHhiMFx4MmFceDk1 XHg4OFx4YzhceGJhXHhhYlx4M2JceDFmIgogICAgICAiXHhmZlx4YmRceDUxXHg4OVx4OWJceDlk XHhkN1x4MWJceDJmXHg3ZVx4ZDBceGQ2XHhjNlx4MDFceGViXHgyYVx4M2JceDM3IgogICAgICAi XHg2ZFx4NmFceGJlXHg3Ylx4YjZceDA2XHhmY1x4ODdceDI1XHhkMVx4ZWVceDE2XHgwMFx4ZWRc eDUxXHg5ZVx4ZThceGIzIgogICAgICAiXHhlYlx4ZGZceDcyXHhiYlx4NDNceDUzXHg4Zlx4MGRc eGUxXHhlYVx4NzNceGY1XHgwYlx4YTBceDJjXHhlZVx4MWJceGM1IgogICAgICAiXHg1Nlx4ZGZc eGQzXHgxNVx4NjlceDUxXHhhNlx4N2JceDFkXHhlYlx4YmZceDJmXHgyMlx4OGVceGNmXHhmZVx4 ZmRceDY5IgogICAgICAiXHhiNlx4NDVceGQxXHgwZlx4ZmZceDZjXHg1Zlx4YzdceDBhXHgwMVx4 ODBceDhlXHhmN1x4NGRceDM2XHhmZlx4NzlceGEyIgogICAgICAiXHhkMVx4ZmNceDJmXHg4ZFx4 M2RceGYzXHhjYVx4ZWRceDJjXHhkNlx4NTBceGZhXHgyMlx4ZTJceDdmXHgxMVx4YjFceDJiIgog ICAgICAiXHgyMlx4ZmVceDFmXHgxMVx4YmJceDIzXHhlMlx4OWVceDg4XHhiY1x4ZWNceGJkXHhj NVx4N2NceDY2XHgzNVx4ZWFceDRiIgogICAgICAiXHg0M1x4OTVceGI5XHhmY1x4YWRceGYzXHhj Zlx4ZjRceGNhXHg5YVx4ODNceDViXHg4MVx4NmNceGZlXHhmN1x4NmNceGIxIgogICAgICAiXHhi Nlx4YjVceDcwXHhmZVx4NTdceGNlXHhmZVx4YTJceGFmXHg1Mlx4ZTRceDc2XHhlNFx4ZjFceDc3 XHgyN1x4MjdceDI2IgogICAgICAiXHhhYlx4MTNceDg3XHg4Ylx4Y2ZceDY0XHgyMFx4YmFceDM3 XHg2NVx4ZjlceGUxXHgyNVx4ZWFceGY4XHhmNlx4ODVceDlmIgogICAgICAiXHgzZlx4NmVceGI2 XHhhZlx4N2ZceGRlXHhmY1x4MmZceGRiXHhiMlx4ZmFceGNiXHhiOVx4NjBceGQxXHg4ZVx4MmJc eDVkIgogICAgICAiXHg4Ylx4NmVceGQwXHg4ZFx4OGZceGNlXHg4Y1x4YjZceDZhXHg1Mlx4N2Fc eGY1XHhmZFx4ODhceGJkXHg1ZFx4OGRceGUyIgogICAgICAiXHg0Zlx4ZTZceDU2XHgwMlx4OTJc eDg4XHhiOFx4M2ZceDIyXHhmNlx4YWVceGVlXHhhZFx4NzdceDk2XHg4OVx4YzlceGM3IgogICAg ICAiXHhiZVx4ZDhceGRmXHhhY1x4ZDBceGYyXHhmMVx4MmZceGExXHgwNVx4ZWJceDRjXHhiNVx4 Y2ZceDIyXHgxZVx4YWRceGY3IgogICAgICAiXHhmZlx4NmNceDJjXHg4YVx4YmZceDk0XHgyY1x4 YmRceDNlXHgzOVx4YjRceDM5XHhhYVx4MTNceDg3XHg4N1x4Y2FceGEzIgogICAgICAiXHhlMlx4 NTZceDNmXHhmZVx4NzRceGU5XHg5NVx4YzZceGI1XHg2Zlx4YmVceGJkXHhmOFx4NWJceDIwXHhl Ylx4ZmZceGFkIgogICAgICAiXHgwYlx4OGZceGZmXHg0NVx4MjVceDdhXHhmZlx4NGNceGU2XHhh Zlx4ZDdceDRlXHhhZlx4YmVceDhlXHg0Ylx4YmZceDdlIgogICAgICAiXHhkNFx4ZjRceDlhXHg3 Mlx4YWRceGM3XHg3Zlx4NGZceGYyXHg1YVx4M2VceDI2XHg3Ylx4OGFceGU3XHhkZVx4MTlceDlk IgogICAgICAiXHg5OVx4MzlceDNiXHgxY1x4ZDFceDkzXHhiY1x4OTRceGU3XHgxN1x4M2NceDNm XHg3Mlx4ZjNceGI1XHg2NVx4YmVceDJjIgogICAgICAiXHg5Zlx4YzVceDNmXHg3MFx4YThceGYx XHhmOFx4ZGZceDU1XHhiY1x4MjZceDhiXHg3Zlx4NWZceDQ0XHg2NFx4MDdceGYxIgogICAgICAi XHg4MVx4ODhceDc4XHgyMFx4MjJceDBlXHgxNlx4NmRceDdmXHgzMFx4MjJceDFlXHg4YVx4ODhc eDQzXHg0Ylx4YzRceGZmIgogICAgICAiXHhmZFx4ZjNceDBmXHhiZlx4YjVceGFhXHhmOFx4Mjdc eGVmXHg2Y1x4ZmZceDhmXHgzN1x4ZmNceGZlXHg5Ylx4M2JceGZlIgogICAgICAiXHhmYlx4MTZc eGY2XHhmZlx4ZWFceDEzXHg5NVx4NTNceGRmXHg3ZFx4ZGRceGFjXHhmZVx4OTVceGY1XHhmZlx4 ZDFceDNjIgogICAgICAiXHgzNVx4NTBceDNjXHg5M1x4N2ZceGZmXHgyZFx4YTNceDc5XHg3M1x4 YTJceDNhXHgxMVx4NTFceGFiXHhhZFx4ZjlceDY4IgogICAgICAiXHgwNlx4MDBceDAwXHg4MFx4 YmJceDRmXHgxYVx4MTFceGRiXHgyM1x4NDlceDA3XHhlN1x4ZDJceDY5XHgzYVx4MzhceDU4Igog ICAgICAiXHhmZlx4M2ZceGZjXHhiYlx4NjNceDZiXHg1YVx4OWRceDlhXHg5ZVx4NzlceGZjXHhj NFx4ZDRceGI5XHgzM1x4ZTNceGY1IgogICAgICAiXHhkZlx4MDhceGY0XHg0NVx4NzdceDVhXHhk ZVx4ZTlceGVhXHgyZFx4ZWVceDg3XHg2Nlx4NTdceGRiXHhjM1x4YzlceDZjIgogICAgICAiXHhm MVx4OGVceGY1XHhmYlx4YTNceDIzXHhjNVx4YmRceGUyXHhmMlx4N2VceGU5XHg5MVx4ZTJceGJl XHhmMVx4MjdceDk1IgogICAgICAiXHgyZFx4NzlceDdlXHg3MFx4NmNceGFhXHgzYVx4ZGVceGU2 XHhkOFx4YTFceGQzXHg2ZFx4NmJceDMyXHhmZVx4MzNceGJmIgogICAgICAiXHg1NVx4ZGFceGRk XHgzYVx4NjBceGRkXHhmOVx4YmRceDE2XHg3NFx4YWVceGM1XHhlM1x4M2ZceDZkXHg1M1x4M2Jc eDgwIgogICAgICAiXHgzYlx4Y2ZceGY5XHgxZlx4M2FceDk3XHhmMVx4MGZceDlkXHhjYlx4Zjhc eDg3XHhjZVx4MzVceDZmXHhmY1x4N2ZceDc5IgogICAgICAiXHhlZVx4ZDJceGJlXHgzY1x4ZjFc eDVlXHhmZVx4NzhceDcwXHg2ZVx4NDdceGMzXHhiNVx4ODBceDI1XHhmZVx4NzJceDA4IgogICAg ICAiXHg3MFx4NzdceDcwXHhmZVx4ODdceGNlXHg2NVx4ZmNceDQzXHhlN1x4MzJceGZlXHhhMVx4 NzNceDE5XHhmZlx4ZDBceDkxIgogICAgICAiXHg2ZVx4ZTdceDc3XHhmZFx4ZWRceDQ5XHg2Y1x4 MjlceDVhXHhiZVx4NWNceGUxXHg5ZVx4ZjZceDM3XHg3NVx4NmRceDg5IgogICAgICAiXHhjZlx4 YmJceDM3XHg0NFx4MzNceDk2XHg0Ylx4NDRceGJhXHg1NFx4OTlceDM3XHhhMlx4ZjFceGFlXHhm ZVx4ODhceDU4IgogICAgICAiXHhhN1x4ODZceGM1XHg4Nlx4ZjhceDU4XHg1YVx4OWRceDQ4XHg1 Nlx4NzBceGE4XHhhZlx4MzRceDcxXHhlMlx4NjRceDMxIgogICAgICAiXHg3NFx4NTZceDUyXHhi OFx4OWRceGRmXHg0YVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw IgogICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAi XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwIgogICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAiXHgwMFx4MDBc eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwIgogICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAiXHgwMFx4MDBceDAwXHgwMFx4 MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgog ICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAiXHgw MFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwIgogICAgICAiXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgogICAgICAiXHgwMFx4MDBceDAw XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc eDAwIgogICAgICAiXHgwMFx4YWRceGYzXHg2Zlx4MDBceDAwXHgwMFx4ZmZceGZmXHgxYlx4Y2Nc eGU1XHg1MSIsCiAgICAgIDExNjUpOwogIHN5el9tb3VudF9pbWFnZSgvKmZzPSovMHgyMDAwMDE4 MCwgLypkaXI9Ki8weDIwMDAwMGMwLAogICAgICAgICAgICAgICAgICAvKmZsYWdzPU1TX1NZTkNI Uk9OT1VTKi8gMHgxMCwgLypvcHRzPSovMHgyMDAwMDc0MCwKICAgICAgICAgICAgICAgICAgLypj aGRpcj0qLzB4ZmUsIC8qc2l6ZT0qLzB4NDhkLCAvKmltZz0qLzB4MjAwMDBkYzApOwogIG1lbWNw eSgodm9pZCopMHgyMDAwMDJjMCwgIi4vZmlsZTBcMDAwIiwgOCk7CiAgc3lzY2FsbChfX05SX21r bm9kLCAvKmZpbGU9Ki8weDIwMDAwMmMwdWwsIC8qbW9kZT0qLzB1bCwgLypkZXY9Ki8weDcwMCk7 CiAgbWVtY3B5KCh2b2lkKikweDIwMDAwMTAwLCAiLi9maWxlMVwwMDAiLCA4KTsKICBzeXNjYWxs KAogICAgICBfX05SX29wZW4sIC8qZmlsZT0qLzB4MjAwMDAxMDB1bCwKICAgICAgLypmbGFncz1P X05PTkJMT0NLfE9fTk9GT0xMT1d8T19OT0FUSU1FfE9fRElSRUNUfE9fQ1JFQVR8MHgyKi8gMHg2 NDg0MnVsLAogICAgICAvKm1vZGU9Ki8wdWwpOwogIG1lbWNweSgodm9pZCopMHgyMDAwMDAwMCwK ICAgICAgICAgIi4vIgogICAgICAgICAiZmlsZTBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgogICAgICAgICAiYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhIgogICAgICAgICAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgogICAgICAgICAiYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYVwwMDAiLAogICAgICAgICAyNTApOwogIHN5c2NhbGwoX19O Ul9ta25vZCwgLypmaWxlPSovMHgyMDAwMDAwMHVsLCAvKm1vZGU9Ki8wdWwsIC8qZGV2PSovMHg3 MDEpOwogIG1lbWNweSgodm9pZCopMHgyMDAwMDk0MCwgIi4vZmlsZTBcMDAwIiwgOCk7CiAgbWVt Y3B5KCh2b2lkKikweDIwMDAwZDQwLAogICAgICAgICAiLi8iCiAgICAgICAgICJmaWxlMGFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWEiCiAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCiAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCiAgICAg ICAgICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhXDAwMCIsCiAg ICAgICAgIDI1Myk7CiAgc3lzY2FsbChfX05SX2xpbmssIC8qb2xkPSovMHgyMDAwMDk0MHVsLCAv Km5ldz0qLzB4MjAwMDBkNDB1bCk7CiAgbWVtY3B5KCh2b2lkKikweDIwMDAxMjQwLCAiLi9maWxl MFwwMDAiLCA4KTsKICBtZW1jcHkoKHZvaWQqKTB4MjAwMDBiYzAsCiAgICAgICAgICIuLyIKICAg ICAgICAgImZpbGUwYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYSIKICAgICAgICAgImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKICAgICAgICAgImFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYSIKICAgICAgICAgImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhXDAwMCIsCiAgICAgICAgIDI1Nyk7CiAgc3lzY2FsbChfX05SX2xpbmssIC8q b2xkPSovMHgyMDAwMTI0MHVsLCAvKm5ldz0qLzB4MjAwMDBiYzB1bCk7CiAgbWVtY3B5KCh2b2lk KikweDIwMDAwMjAwLCAiLi9idXNcMDAwIiwgNik7CiAgc3lzY2FsbChfX05SX29wZW5hdCwgLypm ZD0qLzB4ZmZmZmZmOWMsIC8qZmlsZT0qLzB4MjAwMDAyMDB1bCwKICAgICAgICAgIC8qZmxhZ3M9 T19OT05CTE9DS3xPX05PQ1RUWXxPX05PQVRJTUV8T19DUkVBVHxPX1JEV1IqLyAweDQwOTQydWws CiAgICAgICAgICAvKm1vZGU9Ki8wdWwpOwogIG1lbWNweSgodm9pZCopMHgyMDAwMDAwMCwgIi5c MDAwIiwgMik7CiAgcmVzID0gc3lzY2FsbChfX05SX29wZW5hdCwgLypmZD0qLzB4ZmZmZmZmZmZm ZmZmZmY5Y3VsLCAvKmZpbGU9Ki8weDIwMDAwMDAwdWwsCiAgICAgICAgICAgICAgICAvKmZsYWdz PSovMHVsLCAvKm1vZGU9Ki8wdWwpOwogIGlmIChyZXMgIT0gLTEpCiAgICByWzBdID0gcmVzOwog IG1lbWNweSgodm9pZCopMHgyMDAwMDM4MCwgIi4vYnVzXDAwMCIsIDYpOwogIG1lbWNweSgodm9p ZCopMHgyMDAwMDQwMCwgIi4vZmlsZTFcMDAwIiwgOCk7CiAgc3lzY2FsbChfX05SX3JlbmFtZWF0 MiwgLypvbGRmZD0qL3JbMF0sIC8qb2xkPSovMHgyMDAwMDM4MHVsLCAvKm5ld2ZkPSovclswXSwK ICAgICAgICAgIC8qbmV3PSovMHgyMDAwMDQwMHVsLCAvKmZsYWdzPSovMHVsKTsKICBtZW1jcHko KHZvaWQqKTB4MjAwMDE2NDAsCiAgICAgICAgICIuLyIKICAgICAgICAgImZpbGUwYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIK ICAgICAgICAgImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKICAgICAgICAgImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKICAgICAgICAg ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhLy4uL2ZpbGUwXDAwMCIs CiAgICAgICAgIDI2MCk7CiAgbWVtY3B5KCh2b2lkKikweDIwMDAwZTQwLAogICAgICAgICAiLi8i CiAgICAgICAgICJmaWxlMGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCiAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCiAgICAgICAg ICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWEiCiAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYVwwMDAiLAogICAgICAgICAyNTEpOwogIHN5c2NhbGwoX19OUl9zeW1saW5rLCAv Km9sZD0qLzB4MjAwMDE2NDB1bCwgLypuZXc9Ki8weDIwMDAwZTQwdWwpOwogIHJldHVybiAwOwp9 Cg== ------=ALIBOUNDARY_60289_7f563d39d700_66304682_80b9c0--