Tsql 匹配数字、网址方法的clr实现

来源:互联网 发布:js鼠标放上去显示文字 编辑:程序博客网 时间:2024/06/05 18:03

例子

-- Listing 7.3 --  the CLR regular expression functionalitySELECT dbo.RegExDigitsOnly('123456');SELECT dbo.RegExDigitsOnly('123456789abc');SELECT dbo.RegExEmailIsValid('ian_stirk@yahoo.com');SELECT dbo.RegExEmailIsValid('ian_stirk@yahoo');SELECT dbo.WebAddressIsValid('http://www.manning.com/stirk');SELECT dbo.WebAddressIsValid('http://wwwmanningcom');SELECT dbo.RegExReplace('Q123AS456WE789', '[^0-9]', 'a');SELECT dbo.RegExMatch('123456789', '^[0-9]+$');SELECT dbo.RegExMatch('12345678abc9', '^[0-9]+$');

c#

using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using System.Text.RegularExpressions;using Microsoft.SqlServer.Server;namespace SQLCLRS{    public partial class CLRRegEx    {        private const string sDigitsOnly = @"^\d+$";        private const string sEmailRegEx = @"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$";        private const string sWebAddressRegEx = @"^http(s)?://([\w-*]+\.)+[\w-*]+(/[\w- ./?%&=*]*)?$";        [SqlFunction(IsDeterministic = true,        DataAccess = DataAccessKind.None)]        public static SqlBoolean RegExEmailIsValid(SqlString sSource)        {            if (sSource.IsNull)                return SqlBoolean.Null;            else                return (SqlBoolean)Regex.IsMatch(sSource.Value, sEmailRegEx                , RegexOptions.IgnoreCase);        }        [SqlFunction(IsDeterministic = true,        DataAccess = DataAccessKind.None)]        public static SqlBoolean RegExDigitsOnly(SqlString sSource)        {            if (sSource.IsNull)                return SqlBoolean.Null;            else                return (SqlBoolean)Regex.IsMatch(sSource.Value, sDigitsOnly                , RegexOptions.CultureInvariant);        }        [SqlFunction(IsDeterministic = true,        DataAccess = DataAccessKind.None)]        public static SqlBoolean WebAddressIsValid(SqlString sSource)        {            if (sSource.IsNull)                return SqlBoolean.Null;            else                return (SqlBoolean)Regex.IsMatch(sSource.Value, sWebAddressRegEx                , RegexOptions.IgnoreCase);        }        [SqlFunction(IsDeterministic = true,        DataAccess = DataAccessKind.None)]        public static SqlString RegExReplace(SqlString sSource, SqlString sPattern        , SqlString sReplacement)        {            if (sSource.IsNull || sPattern.IsNull || sReplacement.IsNull)                return SqlString.Null;            else                return (SqlString)Regex.Replace(sSource.Value, sPattern.Value                , sReplacement.Value);        }        [SqlFunction(IsDeterministic = true,        DataAccess = DataAccessKind.None)]        public static SqlBoolean RegExMatch(SqlString sSource, SqlString sRegEx)        {            if (sSource.IsNull || sRegEx.IsNull)                return SqlBoolean.Null;            else                return (SqlBoolean)Regex.IsMatch(sSource.Value, sRegEx.Value                , RegexOptions.CultureInvariant);        }    }}

using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;public partial class UserDefinedFunctions{    [SqlFunction(IsDeterministic = true, DataAccess = DataAccessKind.None)]    public static String ExtractSQLRoutineName(String sSource)    {        int _routineStartOffset;        int _firstSpaceOffset;        int _endOfRoutineNameOffset;        if (String.IsNullOrEmpty(sSource) == true)        {            return null;        }        _routineStartOffset = sSource.IndexOf("CREATE PROC",        StringComparison.CurrentCultureIgnoreCase);        if (_routineStartOffset == -1)        {            _routineStartOffset = sSource.IndexOf("CREATE FUNC",            StringComparison.CurrentCultureIgnoreCase);        }        if (_routineStartOffset == -1)        {            return null;        }        _routineStartOffset = _routineStartOffset + "CREATE FUNC".Length;        _firstSpaceOffset = sSource.IndexOf(" ", _routineStartOffset);        for (int i = _firstSpaceOffset; i < (sSource.Length - 1); i++)        {            if (sSource.Substring(i, 1) != " ")            {                _firstSpaceOffset = i;                break;            }        }        _endOfRoutineNameOffset = sSource.IndexOfAny(new char[] { ' ','(', '\t', '\r', '\n' }, _firstSpaceOffset + 1);        if (_endOfRoutineNameOffset > _routineStartOffset)        {            return sSource.Substring(_firstSpaceOffset,            (_endOfRoutineNameOffset - _firstSpaceOffset));        }        else            return null;    }}


发布脚本

/*des 的部署脚本此代码由工具生成。如果重新生成此代码,则对此文件的更改可能导致不正确的行为并将丢失。*/GOSET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;SET NUMERIC_ROUNDABORT OFF;GO:setvar DatabaseName "des":setvar DefaultFilePrefix "des":setvar DefaultDataPath "C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\":setvar DefaultLogPath "C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\"GO:on error exitGO/*请检测 SQLCMD 模式,如果不支持 SQLCMD 模式,请禁用脚本执行。要在启用 SQLCMD 模式后重新启用脚本,请执行:SET NOEXEC OFF; */:setvar __IsSqlCmdEnabled "True"GOIF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'    BEGIN        PRINT N'要成功执行此脚本,必须启用 SQLCMD 模式。';        SET NOEXEC ON;    ENDGOIF EXISTS (SELECT 1           FROM   [master].[dbo].[sysdatabases]           WHERE  [name] = N'$(DatabaseName)')    BEGIN        ALTER DATABASE [$(DatabaseName)]            SET ANSI_NULLS ON,                ANSI_PADDING ON,                ANSI_WARNINGS ON,                ARITHABORT ON,                CONCAT_NULL_YIELDS_NULL ON,                QUOTED_IDENTIFIER ON,                ANSI_NULL_DEFAULT ON,                CURSOR_DEFAULT LOCAL             WITH ROLLBACK IMMEDIATE;    ENDGOIF EXISTS (SELECT 1           FROM   [master].[dbo].[sysdatabases]           WHERE  [name] = N'$(DatabaseName)')    BEGIN        ALTER DATABASE [$(DatabaseName)]            SET PAGE_VERIFY NONE             WITH ROLLBACK IMMEDIATE;    ENDGOIF IS_SRVROLEMEMBER(N'sysadmin') = 1    BEGIN        IF EXISTS (SELECT 1                   FROM   [master].[dbo].[sysdatabases]                   WHERE  [name] = N'$(DatabaseName)')            BEGIN                EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]    SET TRUSTWORTHY OFF     WITH ROLLBACK IMMEDIATE';            END    ENDELSE    BEGIN        PRINT N'无法修改数据库设置。您必须是 SysAdmin 才能应用这些设置。';    ENDGOUSE [$(DatabaseName)];GOPRINT N'正在创建 [SQLCLRS]...';GOCREATE ASSEMBLY [SQLCLRS]    AUTHORIZATION [dbo]    FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300F86844540000000000000000E00002210B010B00001000000006000000000000EE2E00000020000000400000000000100020000000020000040000000000000006000000000000000080000000020000000000000300608500001000001000000000100000100000000000001000000000000000000000009C2E00004F00000000400000A002000000000000000000000000000000000000006000000C000000642D00001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000F40E0000002000000010000000020000000000000000000000000000200000602E72737263000000A0020000004000000004000000120000000000000000000000000000400000402E72656C6F6300000C0000000060000000020000001600000000000000000000000000004000004200000000000000000000000000000000D02E0000000000004800000002000500DC220000880A00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000133003003300000001000011000F00280500000A16FE010B072D087E0600000A0A2B1A0F00280700000A720100007017280800000A280900000A0A2B00062A00133003003700000001000011000F00280500000A16FE010B072D087E0600000A0A2B1E0F00280700000A725F0000702000020000280800000A280900000A0A2B00062A00133003003300000001000011000F00280500000A16FE010B072D087E0600000A0A2B1A0F00280700000A726B00007017280800000A280900000A0A2B00062A00133003005100000002000011000F00280500000A2D150F01280500000A2D0C0F02280500000A16FE012B0116000B072D087E0A00000A0A2B220F00280700000A0F01280700000A0F02280700000A280B00000A280C00000A0A2B00062A000000133003004600000001000011000F00280500000A2D0C0F01280500000A16FE012B0116000B072D087E0600000A0A2B200F00280700000A0F01280700000A2000020000280800000A280900000A0A2B00062A1E02280D00000A2A00002000280009000D000A00000013300400EC000000030000110002280E00000A16FE01130511052D090014130438D00000000272D1000070176F0F00000A0A0615FE0116FE01130511052D0F000272E9000070176F0F00000A0A000615FE0116FE01130511052D090014130438910000000672E90000706F1000000A580A027201010070066F1100000A0B070D2B26000209176F1200000A7201010070281300000A16FE01130511052D0500090B2B16000917580D09026F1000000A1759FE04130511052DC9021B8D0D00000125D004000004281500000A0717586F1600000A0C0806FE0216FE01130511052D0F0002070807596F1200000A13042B051413042B0011042A1E02280D00000A2A42534A4201000100000000000C00000076342E302E33303331390000000005006C0000000C030000237E000078030000A003000023537472696E67730000000018070000080100002355530020080000100000002347554944000000300800005802000023426C6F620000000000000002000001579D02200902000000FA25330016000001000000120000000500000004000000080000000900000016000000030000000A00000001000000030000000100000001000000030000000100000000000A0001000000000006004C0045000A009D0088000A00A8008800060052013F011300660100000600950175010600B50175010A00EE01D3010E003C021D020E0042021D0206006B0245000600800245000600BC02450006000603750106002103450006005C03750106006B03450006007103450000000000010000000000010001000100100016001F00050001000100010010002700000005000400070000000000C1020000050004000900130100002B0300003D0005000900518053000A0051805F000A0051806B000A00130148030B025020000000009600B200DA0001009020000000009600C400DA000200D420000000009600D400DA0003001421000000009600E600E10004007421000000009600F300EC000700C621000000008618FE00F5000900DC210000000096000401F9000900D422000000008618FE00F5000A00000001001A01000001001A01000001001A01000001001A01000002002201000003002B01000001001A01000002003801000001001A012100FE00FE003100FE0004013900FE00F5004100FE00F50019000302AD0111000E02B10119001302B50149004F02B90111005702C10119000E02CD0149006302D10119005702D8010900FE00F50059007202E40159009102E90159009902F00159009102F4015900A402FA015900AE0200027100FE00F500810084030F025900940317020E0004000D000E00080018000E000C0075002000230009012E000B0027022E00130030022E001B0039024000230009016000230009018000230009018300A3000602A00023000901E0002300090101000A0000000500C701DE011E02D021000004000480000000000000000000000000000000001F00000004000000000000000000000001003C000000000004000000000000000000000001007C00000000000400000000000000000000000100450000000000050004000000003C4D6F64756C653E0053514C434C52532E646C6C00434C5252656745780053514C434C52530055736572446566696E656446756E6374696F6E73006D73636F726C69620053797374656D004F626A65637400734469676974734F6E6C790073456D61696C526567457800735765624164647265737352656745780053797374656D2E446174610053797374656D2E446174612E53716C54797065730053716C426F6F6C65616E0053716C537472696E67005265674578456D61696C497356616C69640052656745784469676974734F6E6C790057656241646472657373497356616C69640052656745785265706C6163650052656745784D61746368002E63746F72004578747261637453514C526F7574696E654E616D650073536F7572636500735061747465726E00735265706C6163656D656E74007352656745780053797374656D2E446961676E6F73746963730044656275676761626C6541747472696275746500446562756767696E674D6F6465730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300436F6D70696C6174696F6E52656C61786174696F6E734174747269627574650052756E74696D65436F6D7061746962696C697479417474726962757465004D6963726F736F66742E53716C5365727665722E5365727665720053716C46756E6374696F6E417474726962757465006765745F49734E756C6C004E756C6C006765745F56616C75650053797374656D2E546578742E526567756C617245787072657373696F6E730052656765780052656765784F7074696F6E730049734D61746368006F705F496D706C69636974005265706C61636500537472696E670049734E756C6C4F72456D70747900537472696E67436F6D70617269736F6E00496E6465784F66006765745F4C656E67746800537562737472696E67006F705F496E657175616C6974790043686172003C50726976617465496D706C656D656E746174696F6E44657461696C733E7B37394634383031302D383631452D344237442D394238372D4233353243373745414337357D00436F6D70696C657247656E6572617465644174747269627574650056616C756554797065005F5F5374617469634172726179496E69745479706553697A653D31300024246D6574686F643078363030303030372D310052756E74696D6548656C706572730041727261790052756E74696D654669656C6448616E646C6500496E697469616C697A65417272617900496E6465784F66416E790000005D5E005C0077002B0028005B002D002B002E0027005D005C0077002B0029002A0040005C0077002B0028005B002D002E005D005C0077002B0029002A005C002E005C0077002B0028005B002D002E005D005C0077002B0029002A002400010B5E005C0064002B00240000655E0068007400740070002800730029003F003A002F002F0028005B005C0077002D002A005D002B005C002E0029002B005B005C0077002D002A005D002B0028002F005B005C0077002D0020002E002F003F00250026003D002A005D002A0029003F00240001174300520045004100540045002000500052004F00430000174300520045004100540045002000460055004E00430000032000000000001080F4791E867D4B9B87B352C77EAC750008B77A5C561934E08902060E0A5E005C0064002B0024005C5E005C0077002B0028005B002D002B002E0027005D005C0077002B0029002A0040005C0077002B0028005B002D002E005D005C0077002B0029002A005C002E005C0077002B0028005B002D002E005D005C0077002B0029002A002400645E0068007400740070002800730029003F003A002F002F0028005B005C0077002D002A005D002B005C002E0029002B005B005C0077002D002A005D002B0028002F005B005C0077002D0020002E002F003F00250026003D002A005D002A0029003F0024000600011109110D0A0003110D110D110D110D0800021109110D110D032000010400010E0E052001011115042001010880A20100020054020F497344657465726D696E6973746963015455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000003200002030611090320000E070003020E0E11290500011109020507021109020306110D0600030E0E0E0E050001110D0E050702110D02040001020E062002080E113103200008052002080E080520020E0808050002020E0E0401000000030611140700020112451149062002081D0308080706080808080E020801000701000000000801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F77730100000000F868445400000000020000001C010000802D0000800F0000525344531648789436FC874E88B085B9A0BD9BA702000000653A5C4A4F425C49534F46545C53514C434C52535C6F626A5C44656275675C53514C434C52532E7064620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C42E00000000000000000000DE2E0000002000000000000000000000000000000000000000000000D02E0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058400000440200000000000000000000440234000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000000000000000000000000000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004A4010000010053007400720069006E006700460069006C00650049006E0066006F0000008001000001003000300030003000300034006200300000002C0002000100460069006C0065004400650073006300720069007000740069006F006E000000000020000000300008000100460069006C006500560065007200730069006F006E000000000030002E0030002E0030002E003000000038000C00010049006E007400650072006E0061006C004E0061006D0065000000530051004C0043004C00520053002E0064006C006C0000002800020001004C006500670061006C0043006F00700079007200690067006800740000002000000040000C0001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000530051004C0043004C00520053002E0064006C006C000000340008000100500072006F006400750063007400560065007200730069006F006E00000030002E0030002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000030002E0030002E0030002E00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000C000000F03E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;GOALTER ASSEMBLY [SQLCLRS]    DROP FILE ALL    ADD FILE FROM 0x4D6963726F736F667420432F432B2B204D534620372E30300D0A1A445300000000020000010000001F0000009C000000000000001E00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008130086FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30E4FFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BCA3101380000000010000000100000000000000F00FFFF0400000003800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F862513FC607D311905300C04FA302A1C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BD60A66E40CF64824CB6F042D48172A7991000000000000000643A1109BEFB836FADBA436A1A341ADF070000000B0000000C00000008000000090000000A0000000D0000000E0000000F00000010000000110000001200000013000000140000001600000015000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F862513FC607D311905300C04FA302A1C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BD60A66E40CF64824CB6F042D48172A7991000000000000000A1697DB9611499EF3DB287C7B36F55A9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF040000000380000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF040000000380000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA3101380000000010000000100000000000001100FFFF0400000003800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F862513FC607D311905300C04FA302A1C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BD60A66E40CF64824CB6F042D48172A7991000000000000000A1697DB9611499EF3DB287C7B36F55A9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200200000000000020020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FEEFFEEF010000009600000000653A5C4A4F425C49534F46545C53514C434C52535C53716C46756E6374696F6E322E63730000653A5C6A6F625C69736F66745C73716C636C72735C73716C66756E6374696F6E322E637300653A5C4A4F425C49534F46545C53514C434C52535C53716C46756E6374696F6E312E637300653A5C6A6F625C69736F66745C73716C636C72735C73716C66756E6374696F6E312E6373000700000000000000260000004C000000010000002700000071000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001BE23001AC000000C00180FE06ECCF010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000004000000010000000A0000000000000071000000280000001BE230013BA97154580000004C000000260000007100000065000000000000000000000027000000280000001BE23001C836E48E58000000010000002600000027000000650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001BE23001AC000000AEAAA36007ECCF010200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000004000000010000000A0000000000000071000000280000001BE230013BA97154580000004C000000260000007100000065000000000000000000000027000000280000001BE23001C836E48E5800000001000000260000002700000065000000000000000000000073000000220024115553797374656D2E546578742E526567756C617245787072657373696F6E73001E002411554D6963726F736F66742E53716C5365727665722E536572766572001E002011000000000100001100000000000004004353243124303030300000001E002011010000000100001100000000000004004353243424303030310000000200060032000404C93FEAC6B359D649BC250902BBABB460000000004D004400320000000401000004000000100000000200000006000000020006003A002A110000000038020000000000003700000000000000000000000200000633000000010000000052656745784469676974734F6E6C79000000001600031170010000040200003700000033000000010000001E002011000000000100001100000000000004004353243124303030300000001E002011010000000100001100000000000004004353243424303030040000003A002A11000000006C01000000000000330000000000000000000000010000060000000001000000005265674578456D61696C497356616C696400001600031104000000340100003300000000000000010000000A0024115553797374656D00120024115553797374656D2E44617461000000001A0024115553797374656D2E446174612E53716C436C69656E7400001A0024115553797374656D2E446174612E53716C5479706573000000220024115553797374656D2E546578742E526567756C617245787072657373696F6E73001E002411554D6963726F736F66742E53716C5365727665722E536572766572001E002011000000000100001100000000000004004353243124303030300000001E002011010000000100001100000000000004004353243424303030310000000200060032000404C93FEAC6B359D649BC250902BBABB460000000004D004400320000000401000004000000100000000200000006000000020006003A002A110000000038020000000000003700000000000000000000000200000633000000010000000052656745784469676974734F6E6C79000000001600031170010000040200003700000033000000010000001E002011000000000100001100000000000004004353243124303030300000001E00201101000000010000110000000000000400435324342430303031000000020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004010000040136000C00000001000006020006003A002A11000000000403000000000000330000000000000000000000030000066A000000010000000057656241646472657373497356616C69640000160003113C020000D0020000330000006A000000010000001E002011000000000100001100000000000004004353243124303030300000001E00201101000000010000110000000000000400435324342430303031000000020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004010000040136000C000000010000060200060036002A1100000000CC03000000000000510000000000000000000000040000069D000000010000000052656745785265706C616365000000160003110803000098030000510000009D000000010000001E002011000000000200001100000000000004004353243124303030300000001E00201101000000020000110000000000000400435324342430303031000000020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004010000040136000C000000010000060200060032002A1100000000900400000000000046000000000000000000000005000006EE000000010000000052656745784D617463680016000311D00300005C04000046000000EE000000010000001E002011000000000100001100000000000004004353243124303030300000001E00201101000000010000110000000000000400435324342430303031000000020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004010000040136000C0000000100000602000600F200000060000000000000000100010033000000000000000600000054000000000000001300008001000000140000800C000000EEEFFE800F000000150000801700000017000081310000001900008009000A000D002000000000001100280011002C0009000A00F200000060000000330000000100010037000000000000000600000054000000000000001D000080010000001E0000800C000000EEEFFE800F0000001F0000801700000021000081350000002300008009000A000D00200000000000110028001100320009000A00F2000000600000006A0000000100010033000000000000000600000054000000000000002700008001000000280000800C000000EEEFFE800F00000029000080170000002B000081310000002D00008009000A000D002000000000001100280011002C0009000A00F2000000600000009D00000001000100510000000000000006000000540000000000000032000080010000003300008022000000EEEFFE8025000000340000802D000000360000814F0000003800008009000A000D004A0000000000110027001100270009000A00F200000060000000EE0000000100010046000000000000000600000054000000000000003C000080010000003D00008019000000EEEFFE801C0000003E0000802400000040000081440000004200008009000A000D00310000000000110028001100320009000A00F4000000080000004C0000000000000028000000000000002000000038000000580000007000000090000000A8000000C4000000DC000000F8000000040000000300001100000000000004004353243124303030300000001E0020110500000003000011000000000000040043532434243030303100000026002011000000000300001100000000000000005F726F7574696E6553746172744F66667365740026002011010000000300001100000000000000005F666972737453706163654F66667365740000002A002011020000000300001100000000000000005F656E644F66526F7574696E654E616D654F6666736574001600031144000000C00100003B000000A60100000100000016002011030000000300001100000000000000006900000002000600020006003A000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004020000040000000C00000001000500040234000C000000040000003E002A11000000000402000000000000EC0000000000000000000000070000063401000001000000004578747261637453514C526F7574696E654E616D6500001600031104000000C4010000EC00000034010000010000000A0024115553797374656D00120024115553797374656D2E44617461000000001A0024115553797374656D2E446174612E53716C436C69656E7400001A0024115553797374656D2E446174612E53716C54797065730000001E002411554D6963726F736F66742E53716C5365727665722E536572766572001E002011040000000300001100000000000004004353243124303030300000001E0020110500000003000011000000000000040043532434243030303100000026002011000000000300001100000000000000005F726F7574696E6553746172744F66667365740026002011010000000300001100000000000000005F666972737453706163654F66667365740000002A002011020000000300001100000000000000005F656E644F66526F7574696E654E616D654F6666736574001600031144000000C00100003B000000A60100000100000016002011030000000300001100000000000000006900000002000600020006003A000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004020000040000000C00000001000500040236000C0000000100000602000600F2000000C80100003401000001000100EC0000000000000024000000BC010000000000000B000080010000000F0000800C000000EEEFFE8010000000100000801100000011000080190000001300008126000000150000802F000000EEEFFE80330000001600008034000000170000814100000019000080420000001A0000804B000000EEEFFE804F0000001B000080500000001C000080580000001E000080650000001F000080720000002000008074000000EEEFFE80760000002100008077000000220000808E000000EEEFFE80920000002300008093000000240000809500000025000080970000002700008098000000200000809C00000020000080A9000000EEEFFE80AD00000028000081C80000002A000080D1000000EEEFFE80D50000002B000080D60000002C000081E400000030000080E90000003100008005000600090033000000000009000A000D00190009003400090027000000000009000A000D00380009000A00090027000000000009000A000D00190009004A00090047000E0028000000000009000A000D003000000000000D000E00110027001100170009000A004300460029004100000000000900310009003B000000000009000A000D003C000D00190005000600F4000000080000000100000000000000080000001001000034010000000000000000000000000000FFFFFFFF1A092FF160000000340200005900000001000000910000000100000021000000010000003501000001000000DD00000001000000C5000000010000000100000001000000F900000001000000A900000001000000390000000100000071000000010000001101000001000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000020000000000000000000000000000000010000000000000000000000000000000000000000000010000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000C0000001800000024000000300000003C0000004800000054000000600000006C0000007800000084000000303300001A0025110000000008030000010052656745785265706C61636500001600291100000000080300000100303630303030303400001A00251100000000D0030000010052656745784D61746368000000001600291100000000D003000001003036303030303035000022002511000000000400000002004578747261637453514C526F7574696E654E616D65001600291100000000040000000200303630303030303700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E002511000000000400000001005265674578456D61696C497356616C6964001600291100000000040000000100303630303030303100001E0025110000000070010000010052656745784469676974734F6E6C790000001600291100000000700100000100303630303030303200001E002511000000003C020000010057656241646472657373497356616C69640016002911000000003C0200000100303630303030303300001A0025110000000008030000010052656745785265706C61636500001600291100000000080300000100303630303030303400001A00251100000000D0030000010052656745784D61746368000000001600291100000000D003000001003036303030303035000022002511000000000400000002004578747261637453514C526F7574696E654E616D650016002911000000000400000002003036303030303037000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000FFFFFFFF1A092FF10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF77093101020000000C00008B0D0015C60E000946BC000000AC0000002C00000060000000000000000000000016000000190000000000EEC00000000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000A0094040000000000001802000001000000086D5700000000000000000053514C434C52532E434C52526567457800384341423444354100000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000B000802000000000000E001000001000000686C5700000000000000000055736572446566696E656446756E6374696F6E730037314141414545380000002DBA2EF10100000000000000330000000000000000000000000000000000000001000000330000003700000000000000000000000000000000000000010000006A0000003300000000000000000000000000000000000000010000009D000000510000000000000000000000000000000000000001000000EE00000046000000000000000000000000000000000000000100000034010000EC00000000000000010000000000000000000000020002000D01000000000100FFFFFFFF00000000200200000802000000000000FFFFFFFF00000000FFFFFFFF0200020000000100010001000000000025000000653A5C4A4F425C49534F46545C53514C434C52535C53716C0A00000098000000E600000038000000FFFFFFFF3800000000000000C6000000AC0000005800000058000000040000000300000006000000070000000B0000000C00000008000000090000002F653A5C6A6F625C69736F66745C73716C636C72735C73716C66756E6374696F6E322E6373002F7372632F66696C65732F653A5C6A6F625C69736F66745C73716C636C72735C73716C66756E6374696F6E312E637300050000000A0000000100000036010000000000001100000007000000000000000500000052000000090000000A00000006000000220000000800000000000000419132010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001900000020000000E600000038000000630200003800000000000000C6000000AC000000580000005800000028000000D8060000F4030000A40200002C0000004C0100000300000019000000060000001700000018000000070000000B0000000C00000008000000090000000A0000000D0000000E0000000F0000001000000011000000120000001300000014000000160000001500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046756E6374696F6E312E637300653A5C4A4F425C49534F46545C53514C434C52535C53716C46756E6374696F6E322E6373000000FEEFFEEF010000000100000000010000000000000000000000FFFFFFFFFFFFFFFFFFFF1000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942E310154684454020000001648789436FC874E88B085B9A0BD9BA7820000002F4C696E6B496E666F002F6E616D6573002F7372632F686561646572626C6F636B002F7372632F66696C65732F653A5C6A6F625C69736F66745C73716C636C72735C73716C66756E6374696F6E322E6373002F7372632F66696C65732F653A5C6A6F625C69736F66745C73716C636C72735C73716C66756E6374696F6E312E637300050000000A0000000100000036010000000000001100000007000000000000000500000052000000090000000A0000000600000022000000080000000000000041913201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000004C000000E600000038000000630200003800000000000000C6000000AC0000005800000058000000D8060000F4030000A40200002C0000004C010000FFFFFFFF28000000190000001C00000006000000180000001B000000070000000B0000000D00000004000000050000000E0000000F00000010000000110000001200000013000000140000001500000017000000160000000A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 AS N'SQLCLRS.pdb';GOPRINT N'正在创建 [dbo].[CLRRegEx]...';GOCREATE FUNCTION [dbo].[CLRRegEx](@param1 int,@param2 int)RETURNS INTASBEGINRETURN @param1 + @param2ENDGOPRINT N'正在创建 [dbo].[ExtractSQLRoutineName]...';GOCREATE FUNCTION [dbo].[ExtractSQLRoutineName](@sSource NVARCHAR (MAX))RETURNS NVARCHAR (MAX)AS EXTERNAL NAME [SQLCLRS].[UserDefinedFunctions].[ExtractSQLRoutineName]GOPRINT N'正在创建 [dbo].[RegExDigitsOnly]...';GOCREATE FUNCTION [dbo].[RegExDigitsOnly](@sSource NVARCHAR (MAX))RETURNS BITAS EXTERNAL NAME [SQLCLRS].[SQLCLRS.CLRRegEx].[RegExDigitsOnly]GOPRINT N'正在创建 [dbo].[RegExEmailIsValid]...';GOCREATE FUNCTION [dbo].[RegExEmailIsValid](@sSource NVARCHAR (MAX))RETURNS BITAS EXTERNAL NAME [SQLCLRS].[SQLCLRS.CLRRegEx].[RegExEmailIsValid]GOPRINT N'正在创建 [dbo].[RegExMatch]...';GOCREATE FUNCTION [dbo].[RegExMatch](@sSource NVARCHAR (MAX), @sRegEx NVARCHAR (MAX))RETURNS BITAS EXTERNAL NAME [SQLCLRS].[SQLCLRS.CLRRegEx].[RegExMatch]GOPRINT N'正在创建 [dbo].[RegExReplace]...';GOCREATE FUNCTION [dbo].[RegExReplace](@sSource NVARCHAR (MAX), @sPattern NVARCHAR (MAX), @sReplacement NVARCHAR (MAX))RETURNS NVARCHAR (MAX)AS EXTERNAL NAME [SQLCLRS].[SQLCLRS.CLRRegEx].[RegExReplace]GOPRINT N'正在创建 [dbo].[WebAddressIsValid]...';GOCREATE FUNCTION [dbo].[WebAddressIsValid](@sSource NVARCHAR (MAX))RETURNS BITAS EXTERNAL NAME [SQLCLRS].[SQLCLRS.CLRRegEx].[WebAddressIsValid]GOPRINT N'更新完成。';GO


0 0
原创粉丝点击