lvfengfree b92e1119ae fix: 修复菜单为空问题 - 移除后端过滤home路由的错误逻辑
- 修复RouteService中错误过滤home路由的问题
- 后端现在正确返回所有用户有权限的路由
- 添加设备管理相关功能(列表、在线监控、电源管理、远程监控)
- 添加详细的修复文档和重启脚本
- 更新权限配置脚本

问题根源:后端代码中有逻辑会过滤掉home路由,导致前端收到空数组,无法生成菜单
解决方案:移除过滤home路由的逻辑,让后端返回所有有权限的路由
2026-03-01 09:50:19 +08:00

404 lines
21 KiB
JavaScript

//----------------------------------------------------------------------------
//
// Copyright (c) Intel Corporation, 2010 All Rights Reserved.
//
// Contents: Demonstrate the KVM COM interface.
//
//----------------------------------------------------------------------------
var Screen = { "Monitor0": 0, "Monitor1": 1 }
var PortsState = { "DisableAll": 0, "DefaultPortOnly": 1, "RedirectionPortOnly": 2, "EnableAll": 3 }
var info = new ActiveXObject("Intel.Manageability.ConnectionInfo");
if (typeof (info) != undefined)
{
info.Host = "10.0.0.15";
info.UserName = "admin";
info.Password = "Admin!98";
var amt = new ActiveXObject("Intel.Manageability.COM.AMTInstance");
if (typeof (amt) != undefined)
{
try {
amt.Create(info);
amt.KVMSetup.SetDefaultMonitor(Screen.Monitor0);
amt.KVMSetup.SetRFBPassword("P@ssw0rd");
amt.KVMSetup.SetOptInTimeout(200);
amt.KVMSetup.SetSessionTimeout(150);
amt.KVMSetup.SetOptInPolicy(true);
amt.KVMSetup.SetPortsState(PortsState.DisableAll);
//Get capabilities
var capabilities = amt.KVMSetup.GetCapabilities();
document.write("Is default port enabled: " + capabilities.IsDefaultPortEnable + "</br>");
document.write("Is redirection port enabled: " + capabilities.IsRedirectionPortEnable + "</br>");
}
catch (Error)
{
alert(Error.Message);
}
}
else
{
alert("Failed to perform KVM call");
}
}
else
{
alert("Failed to initialize ConnectionInfo object");
}
// SIG // Begin signature block
// SIG // MIItigYJKoZIhvcNAQcCoIItezCCLXcCAQExDzANBglg
// SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
// SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC
// SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
// SIG // H0DpeQ+HloorR2pPD4zmwLYKJIT4EiLF03TH+rCx0xqg
// SIG // ghF+MIIFbzCCBFegAwIBAgIQSPyTtGBVlI02p8mKidaU
// SIG // FjANBgkqhkiG9w0BAQwFADB7MQswCQYDVQQGEwJHQjEb
// SIG // MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
// SIG // VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
// SIG // TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRl
// SIG // IFNlcnZpY2VzMB4XDTIxMDUyNTAwMDAwMFoXDTI4MTIz
// SIG // MTIzNTk1OVowVjELMAkGA1UEBhMCR0IxGDAWBgNVBAoT
// SIG // D1NlY3RpZ28gTGltaXRlZDEtMCsGA1UEAxMkU2VjdGln
// SIG // byBQdWJsaWMgQ29kZSBTaWduaW5nIFJvb3QgUjQ2MIIC
// SIG // IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjeeU
// SIG // EiIEJHQu/xYjApKKtq42haxH1CORKz7cfeIxoFFvrISR
// SIG // 41KKteKW3tCHYySJiv/vEpM7fbu2ir29BX8nm2tl06UM
// SIG // abG8STma8W1uquSggyfamg0rUOlLW7O4ZDakfko9qXGr
// SIG // YbNzszwLDO/bM1flvjQ345cbXf0fEj2CA3bm+z9m0pQx
// SIG // afptszSswXp43JJQ8mTHqi0Eq8Nq6uAvp6fcbtfo/9oh
// SIG // q0C/ue4NnsbZnpnvxt4fqQx2sycgoda6/YDnAdLv64Ip
// SIG // lXCN/7sVz/7RDzaiLk8ykHRGa0c1E3cFM09jLrgt4b9l
// SIG // pwRrGNhx+swI8m2JmRCxrds+LOSqGLDGBwF1Z95t6WNj
// SIG // HjZ/aYm+qkU+blpfj6Fby50whjDoA7NAxg0POM1nqFOI
// SIG // +rgwZfpvx+cdsYN0aT6sxGg7seZnM5q2COCABUhA7vaC
// SIG // ZEao9XOwBpXybGWfv1VbHJxXGsd4RnxwqpQbghesh+m2
// SIG // yQ6BHEDWFhcp/FycGCvqRfXvvdVnTyheBe6QTHrnxvTQ
// SIG // /PrNPjJGEyA2igTqt6oHRpwNkzoJZplYXCmjuQymMDg8
// SIG // 0EY2NXycuu7D1fkKdvp+BRtAypI16dV60bV/AK6pkKrF
// SIG // fwGcELEW/MxuGNxvYv6mUKe4e7idFT/+IAx1yCJaE5UZ
// SIG // kADpGtXChvHjjuxf9OUCAwEAAaOCARIwggEOMB8GA1Ud
// SIG // IwQYMBaAFKARCiM+lvEH7OKvKe+CpX/QMKS0MB0GA1Ud
// SIG // DgQWBBQy65Ka/zWWSC8oQEJwIDaRXBeF5jAOBgNVHQ8B
// SIG // Af8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUE
// SIG // DDAKBggrBgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAw
// SIG // CAYGZ4EMAQQBMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6
// SIG // Ly9jcmwuY29tb2RvY2EuY29tL0FBQUNlcnRpZmljYXRl
// SIG // U2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr
// SIG // BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29t
// SIG // MA0GCSqGSIb3DQEBDAUAA4IBAQASv6Hvi3SamES4aUa1
// SIG // qyQKDKSKZ7g6gb9Fin1SB6iNH04hhTmja14tIIa/ELiu
// SIG // eTtTzbT72ES+BtlcY2fUQBaHRIZyKtYyFfUSg8L54V0R
// SIG // QGf2QidyxSPiAjgaTCDi2wH3zUZPJqJ8ZsBRNraJAlTH
// SIG // /Fj7bADu/pimLpWhDFMpH2/YGaZPnvesCepdgsaLr4Cn
// SIG // vYFIUoQx2jLsFeSmTD1sOXPUC4U5IOCFGmjhp0g4qdE2
// SIG // JXfBjRkWxYhMZn0vY86Y6GnfrDyoXZ3JHFuu2PMvdM+4
// SIG // fvbXg50RlmKarkUT2n/cR/vfw1Kf5gZV6Z2M8jpiUbzs
// SIG // JA8p1FiAhORFe1rYMIIF6TCCBFGgAwIBAgIRAP5c1JUB
// SIG // imUXpNBO+HtrkzowDQYJKoZIhvcNAQEMBQAwVDELMAkG
// SIG // A1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRl
// SIG // ZDErMCkGA1UEAxMiU2VjdGlnbyBQdWJsaWMgQ29kZSBT
// SIG // aWduaW5nIENBIFIzNjAeFw0yNDAzMTMwMDAwMDBaFw0y
// SIG // NTAzMTMyMzU5NTlaMFoxCzAJBgNVBAYTAlVTMRMwEQYD
// SIG // VQQIDApDYWxpZm9ybmlhMRowGAYDVQQKDBFJbnRlbCBD
// SIG // b3Jwb3JhdGlvbjEaMBgGA1UEAwwRSW50ZWwgQ29ycG9y
// SIG // YXRpb24wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
// SIG // AoIBgQCOvQs9ebKrmAXTOWV54xQTZ76syOFlIGkPz4wS
// SIG // qINrfyJEgclyvtytZuAsELU4KqTAg9fdxNwP8Qx5llRL
// SIG // 6QilAfsXPHP/BROk8pqyCgP9FB+41XrC4AqNAMXzNHZH
// SIG // Kq7yyr53IbHnpHWjNm/hONTUowIYVoBqdS6E2cqwDiTa
// SIG // RrDyH4AP9PiekQhAofQQEW1wkVwJ807j7Vg13ypTsEmu
// SIG // PqNrSTO0zzQC0yUix6GW731DqYDoftJVsePYYpqFupXw
// SIG // 7eXGQzzk/MDcKXeQ1sAfDIcy3zRKW70f/ObPEj/3Vkaw
// SIG // FZEkcUtcKiGWvTrMQ/q4wQSHvCQ0dWPYYxgVCsmzAGN9
// SIG // D6fKw6RXh9WGtQPIDXmnvCkUpWnK6MqMYUb4i/Z/JwmS
// SIG // IYqi+kNELvXCRsJWIi/ZgDEclTyNwR39LOq+gUarfMgW
// SIG // D/9nbIHOM/WFfQxiVGis9pI8LndTiWbqRQ2YqPrIc2zv
// SIG // 4e/IiUkIjFR4DFRRFTmRRERN3VUhBbFnTwMCAwEAAaOC
// SIG // Aa4wggGqMB8GA1UdIwQYMBaAFA8qyyCHKLjsb0iuK1Sm
// SIG // KaoXpM0MMB0GA1UdDgQWBBQo7T1qfzp1FOdWlwIgcHEP
// SIG // 4L2HxjAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIw
// SIG // ADATBgNVHSUEDDAKBggrBgEFBQcDAzBKBgNVHSAEQzBB
// SIG // MDUGDCsGAQQBsjEBAgEDAjAlMCMGCCsGAQUFBwIBFhdo
// SIG // dHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBBAEw
// SIG // SQYDVR0fBEIwQDA+oDygOoY4aHR0cDovL2NybC5zZWN0
// SIG // aWdvLmNvbS9TZWN0aWdvUHVibGljQ29kZVNpZ25pbmdD
// SIG // QVIzNi5jcmwweQYIKwYBBQUHAQEEbTBrMEQGCCsGAQUF
// SIG // BzAChjhodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3Rp
// SIG // Z29QdWJsaWNDb2RlU2lnbmluZ0NBUjM2LmNydDAjBggr
// SIG // BgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20w
// SIG // IwYDVR0RBBwwGoEYcGtpZW5naW5lZXJpbmdAaW50ZWwu
// SIG // Y29tMA0GCSqGSIb3DQEBDAUAA4IBgQAdNVhldXFo7Uwk
// SIG // BpDbQ0aZktPDblIrNRdvtHMCK5NnWPLVyomeUbLqZASl
// SIG // n6YzUh3Vu/Q71QqLQW8kWFHQ0nhZEPI0T5vr5c8hYUVr
// SIG // luKkmHCJceqomqRmRBbL5hBFzJ8BvcxBHirGJZzP2UiN
// SIG // t7i2Ql8oScd+Rtj6Qa97TMpuoCL7WuQ5peEv1xCSSP2b
// SIG // yCoTzuUFHpgktO0vUDe0jinhJJNS3VdXHAgTbUaQM5hl
// SIG // a+ImEuKW1a/MorIWHtuU0gD3lhMvT2BDJ42W0EEvJQ/F
// SIG // xQeoH4kySxQgsyCrB8zCJPhbiZcFZauHnP1q8dPn6VXq
// SIG // NkjyWSP4hPNoLQ+aMsKLaawuOzHb1ZXL23j2Jx6Caqkb
// SIG // Z4V/hOo5RkbZ4VAj1fgbEUnKeL/AyFCRnVeQM0ua2Lt2
// SIG // ISRgyYE4DxrwbZr2j3ibcXCs11JzKT7Wp7iYFt6NbnEq
// SIG // PUim/XTahXC3DlFQ9pQ44fOWdGpyaJvduMYVZuHBjVkh
// SIG // e2s/HFQOsx/0XOgwggYaMIIEAqADAgECAhBiHW0MUgGe
// SIG // O5B5FSCJIRwKMA0GCSqGSIb3DQEBDAUAMFYxCzAJBgNV
// SIG // BAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQx
// SIG // LTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENvZGUgU2ln
// SIG // bmluZyBSb290IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0z
// SIG // NjAzMjEyMzU5NTlaMFQxCzAJBgNVBAYTAkdCMRgwFgYD
// SIG // VQQKEw9TZWN0aWdvIExpbWl0ZWQxKzApBgNVBAMTIlNl
// SIG // Y3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYw
// SIG // ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCb
// SIG // K51T+jU/jmAGQ2rAz/V/9shTUxjIztNsfvxYB5UXeWUz
// SIG // CxEeAEZGbEN4QMgCsJLZUKhWThj/yPqy0iSZhXkZ6Pg2
// SIG // A2NVDgFigOMYzB2OKhdqfWGVoYW3haT29PSTahYkwmMv
// SIG // 0b/83nbeECbiMXhSOtbam+/36F09fy1tsB8je/RV0mIk
// SIG // 8XL/tfCK6cPuYHE215wzrK0h1SWHTxPbPuYkRdkP05Zw
// SIG // mRmTnAO5/arnY83jeNzhP06ShdnRqtZlV59+8yv+KIhE
// SIG // 5ILMqgOZYAENHNX9SJDm+qxp4VqpB3MV/h53yl41aHU5
// SIG // pledi9lCBbH9JeIkNFICiVHNkRmq4TpxtwfvjsUedyz8
// SIG // rNyfQJy/aOs5b4s+ac7IH60B+Ja7TVM+EKv1WuTGwcLm
// SIG // oU3FpOFMbmPj8pz44MPZ1f9+YEQIQty/NQd/2yGgW+uf
// SIG // flcZ/ZE9o1M7a5Jnqf2i2/uMSWymR8r2oQBMdlyh2n5H
// SIG // irY4jKnFH/9gRvd+QOfdRrJZb1sCAwEAAaOCAWQwggFg
// SIG // MB8GA1UdIwQYMBaAFDLrkpr/NZZILyhAQnAgNpFcF4Xm
// SIG // MB0GA1UdDgQWBBQPKssghyi47G9IritUpimqF6TNDDAO
// SIG // BgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIB
// SIG // ADATBgNVHSUEDDAKBggrBgEFBQcDAzAbBgNVHSAEFDAS
// SIG // MAYGBFUdIAAwCAYGZ4EMAQQBMEsGA1UdHwREMEIwQKA+
// SIG // oDyGOmh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGln
// SIG // b1B1YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5jcmwwewYI
// SIG // KwYBBQUHAQEEbzBtMEYGCCsGAQUFBzAChjpodHRwOi8v
// SIG // Y3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2Rl
// SIG // U2lnbmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUFBzABhhdo
// SIG // dHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0B
// SIG // AQwFAAOCAgEABv+C4XdjNm57oRUgmxP/BP6YdURhw1aV
// SIG // cdGRP4Wh60BAscjW4HL9hcpkOTz5jUug2oeunbYAowbF
// SIG // C2AKK+cMcXIBD0ZdOaWTsyNyBBsMLHqafvIhrCymlaS9
// SIG // 8+QpoBCyKppP0OcxYEdU0hpsaqBBIZOtBajjcw5+w/Ke
// SIG // FvPYfLF/ldYpmlG+vd0xqlqd099iChnyIMvY5HexjO2A
// SIG // mtsbpVn0OhNcWbWDRF/3sBp6fWXhz7DcML4iTAWS+MVX
// SIG // eNLj1lJziVKEoroGs9Mlizg0bUMbOalOhOfCipnx8CaL
// SIG // ZeVme5yELg09Jlo8BMe80jO37PU8ejfkP9/uPak7VLwE
// SIG // LKxAMcJszkyeiaerlphwoKx1uHRzNyE6bxuSKcutisqm
// SIG // KL5OTunAvtONEoteSiabkPVSZ2z76mKnzAfZxCl/3dq3
// SIG // dUNw4rg3sTCggkHSRqTqlLMS7gjrhTqBmzu1L90Y1KWN
// SIG // /Y5JKdGvspbOrTfOXyXvmPL6E52z1NZJ6ctuMFBQZH3p
// SIG // wWvqURR8AgQdULUvrxjUYbHHj95Ejza63zdrEcxWLDX6
// SIG // xWls/GDnVNueKjWUH3fTv1Y8Wdho698YADR7TNx8X8z2
// SIG // Bev6SivBBOHY+uqiirZtg0y9ShQoPzmCcn63Syatatvx
// SIG // 157YK9hlcPmVoa1oDE5/L9Uo2bC5a4CH2RwxghtkMIIb
// SIG // YAIBATBpMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9T
// SIG // ZWN0aWdvIExpbWl0ZWQxKzApBgNVBAMTIlNlY3RpZ28g
// SIG // UHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYCEQD+XNSV
// SIG // AYplF6TQTvh7a5M6MA0GCWCGSAFlAwQCAQUAoHwwEAYK
// SIG // KwYBBAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwGCisG
// SIG // AQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQB
// SIG // gjcCARUwLwYJKoZIhvcNAQkEMSIEIFVp5lhkYWkWzX1M
// SIG // Cu68682Gef5liMmgsxwYtOgTEYIEMA0GCSqGSIb3DQEB
// SIG // AQUABIIBgC/5ebuG9H5XHtNMUWD5N2W7VtEnFVgesFug
// SIG // RcPRjXw74Pcie4ZOVXxDSUCTZFdrCC0cXqcApAKP9I9Y
// SIG // Oy2Bs4PYTViiMnjBc5H7TeCb2KI7cqMr3YEV+wNA7qE+
// SIG // 6rFZvhIHhTcLt5STVUS2LcF2ivnrtyGfU9Hc2DXrUksl
// SIG // n8lnDwvXzdqvqxVbzcOQOvGX3qnF6dmZF3607o7DAb/z
// SIG // 9puBC+TuNYbTwcl1aCmmiL5QkJBZ32xAHeBr3Hf4b8XS
// SIG // nRSZIhOtGbXXJfU+HkVbKaIITEtGVjeDzXL3dzM9uZpb
// SIG // eegUpT3AOxJz7BFT45N71ZPiTMDgSB7fssf+bcVFat1X
// SIG // lWorp4Ou3/DaDbyiGEBSXptBEyQjEcuW4iBrVDGZNXSI
// SIG // zHp8dYEAh1w3hM17H+J12W61J9ruhWKdomDzEbEH4ezU
// SIG // G2X1a2aPt/Ou85ZvLJOPzeBFui/zk1/SJ+WROzCtPume
// SIG // pe2OoErvTr8Ei3h9vU3DfoyruWgu0BHoeyOmmKGCGM4w
// SIG // ghjKBgorBgEEAYI3AwMBMYIYujCCGLYGCSqGSIb3DQEH
// SIG // AqCCGKcwghijAgEDMQ8wDQYJYIZIAWUDBAICBQAwgfQG
// SIG // CyqGSIb3DQEJEAEEoIHkBIHhMIHeAgEBBgorBgEEAbIx
// SIG // AgEBMDEwDQYJYIZIAWUDBAIBBQAEIFDSoYEDbiZMqHyK
// SIG // wL83lK2U0T/M8YXok4QpckNb+RsHAhUA/jVmNrA5jBoP
// SIG // Fk6Vnto95CSYGJIYDzIwMjUwMTI3MTkwMTU0WqBypHAw
// SIG // bjELMAkGA1UEBhMCR0IxEzARBgNVBAgTCk1hbmNoZXN0
// SIG // ZXIxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEwMC4G
// SIG // A1UEAxMnU2VjdGlnbyBQdWJsaWMgVGltZSBTdGFtcGlu
// SIG // ZyBTaWduZXIgUjM1oIIS/zCCBl0wggTFoAMCAQICEDpS
// SIG // aiyEzlXmHWX8zBLY6YkwDQYJKoZIhvcNAQEMBQAwVTEL
// SIG // MAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGlt
// SIG // aXRlZDEsMCoGA1UEAxMjU2VjdGlnbyBQdWJsaWMgVGlt
// SIG // ZSBTdGFtcGluZyBDQSBSMzYwHhcNMjQwMTE1MDAwMDAw
// SIG // WhcNMzUwNDE0MjM1OTU5WjBuMQswCQYDVQQGEwJHQjET
// SIG // MBEGA1UECBMKTWFuY2hlc3RlcjEYMBYGA1UEChMPU2Vj
// SIG // dGlnbyBMaW1pdGVkMTAwLgYDVQQDEydTZWN0aWdvIFB1
// SIG // YmxpYyBUaW1lIFN0YW1waW5nIFNpZ25lciBSMzUwggIi
// SIG // MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCN0Wf0
// SIG // wUibvf04STpNYYGbw9jcRaVhBDaNBp7jmJaA9dQZW5ig
// SIG // hrXGNMYjK7Dey5RIHMqLIbT9z9if753mYbojJrKWO4ZP
// SIG // 0N5dBT2TwZZaPb8E+hqaDZ8Vy2c+x1NiEwbEzTrPX4W3
// SIG // QFq/zJvDDbWKL99qLL42GJQzX3n5wWo60KklfFn+Wb22
// SIG // mOZWYSqkCVGl8aYuE12SqIS4MVO4PUaxXeO+4+48YpQl
// SIG // Nqbc/ndTgszRQLF4MjxDPjRDD1M9qvpLTZcTGVzxfViy
// SIG // IToRNxPP6DUiZDU6oXARrGwyP9aglPXwYbkqI2dLuf9f
// SIG // iIzBugCDciOly8TPDgBkJmjAfILNiGcVEzg+40xUdhxN
// SIG // caC+6r0juPiR7bzXHh7v/3RnlZuT3ZGstxLfmE7fRMAF
// SIG // wbHdDz5gtHLqjSTXDiNF58IxPtvmZPG2rlc+Yq+2B8+5
// SIG // pY+QZn+1vEifI0MDtiA6BxxQuOnj4PnqDaK7NEKwtD1p
// SIG // zoA3jJFuoJiwbatwhDkg1PIjYnMDbDW+wAc9FtRN6pUs
// SIG // O405jaBgigoFZCw9hWjLNqgFVTo7lMb5rVjJ9aSBVVL2
// SIG // dcqzyFW2LdWk5Xdp65oeeOALod7YIIMv1pbqC15R7QCY
// SIG // LxcK1bCl4/HpBbdE5mjy9JR70BHuYx27n4XNOZbwrXcG
// SIG // 3wZf9gEUk7stbPAoBQIDAQABo4IBjjCCAYowHwYDVR0j
// SIG // BBgwFoAUX1jtTDF6omFCjVKAurNhlxmiMpswHQYDVR0O
// SIG // BBYEFGjvpDJJabZSOB3qQzks9BRqngyFMA4GA1UdDwEB
// SIG // /wQEAwIGwDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQM
// SIG // MAoGCCsGAQUFBwMIMEoGA1UdIARDMEEwNQYMKwYBBAGy
// SIG // MQECAQMIMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2Vj
// SIG // dGlnby5jb20vQ1BTMAgGBmeBDAEEAjBKBgNVHR8EQzBB
// SIG // MD+gPaA7hjlodHRwOi8vY3JsLnNlY3RpZ28uY29tL1Nl
// SIG // Y3RpZ29QdWJsaWNUaW1lU3RhbXBpbmdDQVIzNi5jcmww
// SIG // egYIKwYBBQUHAQEEbjBsMEUGCCsGAQUFBzAChjlodHRw
// SIG // Oi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNU
// SIG // aW1lU3RhbXBpbmdDQVIzNi5jcnQwIwYIKwYBBQUHMAGG
// SIG // F2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3
// SIG // DQEBDAUAA4IBgQCw3C7J+k82TIov9slP1e8YTx+fDsa/
// SIG // /hJ62Y6SMr2E89rv82y/n8we5W6z5pfBEWozlW7nWp+s
// SIG // dPCdUTFw/YQcqvshH6b9Rvs9qZp5Z+V7nHwPTH8yzKwg
// SIG // KzTTG1I1XEXLAK9fHnmXpaDeVeI8K6Lw3iznWZdLQe3z
// SIG // l+Rejdq5l2jU7iUfMkthfhFmi+VVYPkR/BXpV7Ub1Qyy
// SIG // WebqkjSHJHRmv3lBYbQyk08/S7TlIeOr9iQ+UN57fJg4
// SIG // QI0yqdn6PyiehS1nSgLwKRs46T8A6hXiSn/pCXaASnds
// SIG // 0LsM5OVoKYfbgOOlWCvKfwUySWoSgrhncihSBXxH2pAu
// SIG // DV2vr8GOCEaePZc0Dy6O1rYnKjGmqm/IRNkJghSMizr1
// SIG // iIOPN+23futBXAhmx8Ji/4NTmyH9K0UvXHiuA2Pa3wZx
// SIG // xR9r9XeIUVb2V8glZay+2ULlc445CzCvVSZV01ZB6bgv
// SIG // CuUuBx079gCcepjnZDCcEuIC5Se4F6yFaZ8RvmiJ4hgw
// SIG // ggYUMIID/KADAgECAhB6I67aU2mWD5HIPlz0x+M/MA0G
// SIG // CSqGSIb3DQEBDAUAMFcxCzAJBgNVBAYTAkdCMRgwFgYD
// SIG // VQQKEw9TZWN0aWdvIExpbWl0ZWQxLjAsBgNVBAMTJVNl
// SIG // Y3RpZ28gUHVibGljIFRpbWUgU3RhbXBpbmcgUm9vdCBS
// SIG // NDYwHhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5
// SIG // WjBVMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGln
// SIG // byBMaW1pdGVkMSwwKgYDVQQDEyNTZWN0aWdvIFB1Ymxp
// SIG // YyBUaW1lIFN0YW1waW5nIENBIFIzNjCCAaIwDQYJKoZI
// SIG // hvcNAQEBBQADggGPADCCAYoCggGBAM2Y2ENBq26CK+z2
// SIG // M34mNOSJjNPvIhKAVD7vJq+MDoGD46IiM+b83+3ecLvB
// SIG // hStSVjeYXIjfa3ajoW3cS3ElcJzkyZlBnwDEJuHlzpbN
// SIG // 4kMH2qRBVrjrGJgSlzzUqcGQBaCxpectRGhhnOSwcjPM
// SIG // I3G0hedv2eNmGiUbD12OeORN0ADzdpsQ4dDi6M4YhoGE
// SIG // 9cbY11XxM2AVZn0GiOUC9+XE0wI7CQKfOUfigLDn7i/W
// SIG // eyxZ43XLj5GVo7LDBExSLnh+va8WxTlA+uBvq1KO8RSH
// SIG // UQLgzb1gbL9Ihgzxmkdp2ZWNuLc+XyEmJNbD2OIIq/fW
// SIG // lwBp6KNL19zpHsODLIsgZ+WZ1AzCs1HEK6VWrxmnKyJJ
// SIG // g2Lv23DlEdZlQSGdF+z+Gyn9/CRezKe7WNyxRf4e4bwU
// SIG // trYE2F5Q+05yDD68clwnweckKtxRaF0VzN/w76kOLIaF
// SIG // Vhf5sMM/caEZLtOYqYadtn034ykSFaZuIBU9uCSrKRKT
// SIG // PJhWvXk4CllgrwIDAQABo4IBXDCCAVgwHwYDVR0jBBgw
// SIG // FoAU9ndq3T/9ARP/FqFsggIv0Ao9FCUwHQYDVR0OBBYE
// SIG // FF9Y7UwxeqJhQo1SgLqzYZcZojKbMA4GA1UdDwEB/wQE
// SIG // AwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1UdJQQM
// SIG // MAoGCCsGAQUFBwMIMBEGA1UdIAQKMAgwBgYEVR0gADBM
// SIG // BgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLnNlY3Rp
// SIG // Z28uY29tL1NlY3RpZ29QdWJsaWNUaW1lU3RhbXBpbmdS
// SIG // b290UjQ2LmNybDB8BggrBgEFBQcBAQRwMG4wRwYIKwYB
// SIG // BQUHMAKGO2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2Vj
// SIG // dGlnb1B1YmxpY1RpbWVTdGFtcGluZ1Jvb3RSNDYucDdj
// SIG // MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdv
// SIG // LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAEtd7IK0ONVgM
// SIG // noEdJVj9TC1ndK/HYiYh9lVUacahRoZ2W2hfiEOyQExn
// SIG // Hk1jkvpIJzAMxmEc6ZvIyHI5UkPCbXKspioYMdbOnBWQ
// SIG // Un733qMooBfIghpR/klUqNxx6/fDXqY0hSU1OSkkSivt
// SIG // 51UlmJElUICZYBodzD3M/SFjeCP59anwxs6hwj1mfvzG
// SIG // +b1coYGnqsSz2wSKr+nDO+Db8qNcTbJZRAiSazr7KyUJ
// SIG // Go1c+MScGfG5QHV+bps8BX5Oyv9Ct36Y4Il6ajTqV2if
// SIG // ikkVtB3RNBUgwu/mSiSUice/Jp/q8BMk/gN8+0rNIE+Q
// SIG // qU63JoVMCMPY2752LmESsRVVoypJVt8/N3qQ1c6Fibbc
// SIG // Rabo3azZkcIdWGVSAdoLgAIxEKBeNh9AQO1gQrnh1TA8
// SIG // ldXuJzPSuALOz1Ujb0PCyNVkWk7hkhVHfcvBfI8NtgWQ
// SIG // upiaAeNHe0pWSGH2opXZYKYG4Lbukg7HpNi/KqJhue2K
// SIG // eak6qH9A8CeEOB7Eob0Zf+fU+CCQaL0cJqlmnx9HCDxF
// SIG // +3BLbUufrV64EbTI40zqegPZdA+sXCmbcZy6okx/Sjws
// SIG // usWRItFA3DE8MORZeFb6BmzBtqKJ7l939bbKBy2jvxcJ
// SIG // I98Va95Q5JnlKor3m0E7xpMeYRriWklUPsetMSf2NvUQ
// SIG // a/E5vVyefQIwggaCMIIEaqADAgECAhA2wrC9fBs656Oz
// SIG // 3TbLyXVoMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG
// SIG // EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UE
// SIG // BxMLSmVyc2V5IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VS
// SIG // VFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0
// SIG // IFJTQSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0y
// SIG // MTAzMjIwMDAwMDBaFw0zODAxMTgyMzU5NTlaMFcxCzAJ
// SIG // BgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
// SIG // ZWQxLjAsBgNVBAMTJVNlY3RpZ28gUHVibGljIFRpbWUg
// SIG // U3RhbXBpbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEB
// SIG // AQUAA4ICDwAwggIKAoICAQCIndi5RWedHd3ouSaBmlRU
// SIG // wHxJBZvMWhUP2ZQQRLRBQIF3FJmp1OR2LMgIU14g0JIl
// SIG // L6VXWKmdbmKGRDILRxEtZdQnOh2qmcxGzjqemIk8et8s
// SIG // E6J+N+Gl1cnZocew8eCAawKLu4TRrCoqCAT8uRjDeypo
// SIG // GJrruH/drCio28aqIVEn45NZiZQI7YYBex48eL78lQ0B
// SIG // rHeSmqy1uXe9xN04aG0pKG9ki+PC6VEfzutu6Q3IcZZf
// SIG // m00r9YAEp/4aeiLhyaKxLuhKKaAdQjRaf/h6U13jQEV1
// SIG // JnUTCm511n5avv4N+jSVwd+Wb8UMOs4netapq5Q/yGyi
// SIG // QOgjsP/JRUj0MAT9YrcmXcLgsrAimfWY3MzKm1HCxcqu
// SIG // inTqbs1Q0d2VMMQyi9cAgMYC9jKc+3mW62/yVl4jnDcw
// SIG // 6ULJsBkOkrcPLUwqj7poS0T2+2JMzPP+jZ1h90/QpZnB
// SIG // khdtixMiWDVgh60KmLmzXiqJc6lGwqoUqpq/1HVHm+Pc
// SIG // 2B6+wCy/GwCcjw5rmzajLbmqGygEgaj/OLoanEWP6Y52
// SIG // Hflef3XLvYnhEY4kSirMQhtberRvaI+5YsD3XVxHGBjl
// SIG // Ili5u+NrLedIxsE88WzKXqZjj9Zi5ybJL2WjeXuOTbsw
// SIG // B7XjkZbErg7ebeAQUQiS/uRGZ58NHs57ZPUfECcgJC+v
// SIG // 2wIDAQABo4IBFjCCARIwHwYDVR0jBBgwFoAUU3m/Wqor
// SIG // Ss9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFPZ3at0//QET
// SIG // /xahbIICL9AKPRQlMA4GA1UdDwEB/wQEAwIBhjAPBgNV
// SIG // HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMI
// SIG // MBEGA1UdIAQKMAgwBgYEVR0gADBQBgNVHR8ESTBHMEWg
// SIG // Q6BBhj9odHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVNF
// SIG // UlRydXN0UlNBQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5j
// SIG // cmwwNQYIKwYBBQUHAQEEKTAnMCUGCCsGAQUFBzABhhlo
// SIG // dHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3
// SIG // DQEBDAUAA4ICAQAOvmVB7WhEuOWhxdQRh+S3OyWM637a
// SIG // yBeR7djxQ8SihTnLf2sABFoB0DFR6JfWS0snf6WDG2gt
// SIG // CGflwVvcYXZJJlFfym1Doi+4PfDP8s0cqlDmdfyGOwMt
// SIG // GGzJ4iImyaz3IBae91g50QyrVbrUoT0mUGQHbRcF57ol
// SIG // pfHhQEStz5i6hJvVLFV/ueQ21SM99zG4W2tB1ExGL98i
// SIG // dX8ChsTwbD/zIExAopoe3l6JrzJtPxj8V9rocAnLP2C8
// SIG // Q5wXVVZcbw4x4ztXLsGzqZIiRh5i111TW7HV1AtsQa6v
// SIG // Xy633vCAbAOIaKcLAo/IU7sClyZUk62XD0VUnHD+YvVN
// SIG // vIGezjM6CRpcWed/ODiptK+evDKPU2K6synimYBaNH49
// SIG // v9Ih24+eYXNtI38byt5kIvh+8aW88WThRpv8lUJKaPn3
// SIG // 7+YHYafob9Rg7LyTrSYpyZoBmwRWSE4W6iPjB7wJjJpH
// SIG // 29308ZkpKKdpkiS9WNsf/eeUtvRrtIEiSJHN899L1P4l
// SIG // 6zKVsdrUu1FX1T/ubSrsxrYJD+3f3aKg6yxdbugot06Y
// SIG // wGXXiy5UUGZvOu3lXlxA+fC13dQ5OlL2gIb5lmF6Ii8+
// SIG // CQOYDwXM+yd9dbmocQsHjcRPsccUd5E9FiswEqORvz8g
// SIG // 3s+jR3SFCgXhN4wz7NgAnOgpCdUo4uDyllU9PzGCBJEw
// SIG // ggSNAgEBMGkwVTELMAkGA1UEBhMCR0IxGDAWBgNVBAoT
// SIG // D1NlY3RpZ28gTGltaXRlZDEsMCoGA1UEAxMjU2VjdGln
// SIG // byBQdWJsaWMgVGltZSBTdGFtcGluZyBDQSBSMzYCEDpS
// SIG // aiyEzlXmHWX8zBLY6YkwDQYJYIZIAWUDBAICBQCgggH5
// SIG // MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkq
// SIG // hkiG9w0BCQUxDxcNMjUwMTI3MTkwMTU0WjA/BgkqhkiG
// SIG // 9w0BCQQxMgQw/uzIyNO5OttdOtW79hwRCXL/48zFTRT1
// SIG // +f4lvWsh8sWYetcAO+k2CbFYMPEEoa4cMIIBegYLKoZI
// SIG // hvcNAQkQAgwxggFpMIIBZTCCAWEwFgQU+GCYGab7iCz3
// SIG // 6FKX8qEZUhoWd18wgYcEFMauVOR4hvF8PVUSSIxpw0p6
// SIG // +cLdMG8wW6RZMFcxCzAJBgNVBAYTAkdCMRgwFgYDVQQK
// SIG // Ew9TZWN0aWdvIExpbWl0ZWQxLjAsBgNVBAMTJVNlY3Rp
// SIG // Z28gUHVibGljIFRpbWUgU3RhbXBpbmcgUm9vdCBSNDYC
// SIG // EHojrtpTaZYPkcg+XPTH4z8wgbwEFIU9Yy2TgoJhfNCQ
// SIG // NcSR3pLBQtrHMIGjMIGOpIGLMIGIMQswCQYDVQQGEwJV
// SIG // UzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxML
// SIG // SmVyc2V5IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJV
// SIG // U1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJT
// SIG // QSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQIQNsKwvXwb
// SIG // Ouejs902y8l1aDANBgkqhkiG9w0BAQEFAASCAgBxUFm6
// SIG // nqBA63gIGDvsjbju0zDn8k3VbRViuksmRyvSml1O6798
// SIG // l2EJPDkBqgm3p/eEt/EgtHeTwW93h/lLptzb7pugqYvo
// SIG // 9aK23Xj2YQ+bU3rwagpijCPoBmqJSd9ffNTQaDMLqovM
// SIG // WzLyO/jOTsnTF5IDrTr6kgnS25YD6S/jx/TSd1m8lyDN
// SIG // iz7WMikzWZ/ewMBzpeP151E+6mqEuMPQI084NQsChZRs
// SIG // 6UQZE9Q8XxURuSip3pF9cCSjuKpx0j/f0DRwVJs9mixg
// SIG // dxnfk2FeicezdWulBbODaJ/SHwee45knv3Xfy0FnQTfJ
// SIG // 5L8byz7vbNz40oK1Fxf/XTz5XZmOSAB9ZV48RouMOipx
// SIG // baHqkeFuG+I2BXNBZsqRMdUqIdcCMdh5FCZK7EfyKOvM
// SIG // hkLRI8oLC0v+/hkNbRuAhSC2w8FsWiz37ZXy1toiMYfK
// SIG // Wrdoif5RAiX+Ko2eFz20BqZeikzrRXXeTEOOg1hZjRan
// SIG // qO6nmn5bIx/S7vS1VLCWOLHpBrddOn1wiIaoIL4PkgqE
// SIG // Ie7lu6troEpC5xbOEZLcyQt44Nvb3VSoIKDKYWHLjS0K
// SIG // 0e2tRTDeWQDqdnV2AR5DqdRTMFCNfW72DVZr4FC89VE8
// SIG // etEMafQ73SE0yfQsEuWRwsuOkArQoo+Pti3vpJhNmYe6
// SIG // CjryNuxWeB56H5GIdw==
// SIG // End signature block