Technical Article

Getting resource content from blocked process report

,

Added on 7.4.2017.

- .Net source code is available on

https://onedrive.live.com/?authkey=%21AAL%5Fg65wns6ZEdo&id=2FB47B8B4D56FEB9%215282&cid=2FB47B8B4D56FEB9

if you analyzing blocking problems off-line, using trace or extended events, you have to count only on information found in blocked process report.

The resource name is most important information in the blocked process report. Unfortunately this information is only available as encoded.

Although many authors suggest that is not important what is content of blocking, in my opinion that is very important information.

This script serves to display the content of the waiting resource.

There are two parts. In first one, I will show how to accomplish this task using t-sql. In second part the same thing is accomplished using SQLCLR

--- 1.Part - using T-SQL

Usage

1. Example

-- @waitResource is written in blocked process report as a attribute of  blocked-process/proces element

DECLARE @waitResource nvarchar(128) = 'KEY: 10:72057594098286592 (b14200e25741)'

-- @resourceName is decoded using function GetResourceName ( see previous post )

DECLARE @resourceName = 'HumanResources.Employee' -- replace with the name of your resource

SELECT

        dbo.GetResourceContent(@waitResource, @resourceName, DEFAULT);

-- Will return t-sql to evaluate. After evaluation you get one or more records in form of xml document.

2. Example

-- @waitResource is written in blocked process report as a attribute of blocked-process/proces element

DECLARE @waitResource as nvarchar(256) = 'KEY: 41:72057594544062464 (b14200e25741)'

-- @sql t-sql code to evaluate

DECLARE @sql as nvarchar(max)

-- @tableName is decoded using function GetResourceName ( see previous post )

DECLARE @tableName as nvarchar(256) = 'HumanResource.Employee' --replace with the name of your resource

--output value in form of xml document

DECLARE @resCon as nvarchar(max)

SET @SQL = DBO.[GetResourceContent](@waitResource,@tableName,@tester);

EXEC sp_executesql @sql

    ,N'@tester nvarchar(max) output'

    ,@resCon OUTPUT;

SELECT

 @resCon

-- Will return one or more records in form of xml document.

--- 2.Part - using SQLCLR

DECLARE @waitResource as nvarchar(256) = 'PAGE: 25:1:6077390'; --Replace with your key code

DECLARE @tableName as nvarchar(256) = 'Employee.Employee' --Replace with your table name

SELECT

 [dbo].[GetResourceContentClr](@waitResource, @tableName);

SET @waitResource = 'KEY: 25:72057600909443072 (b14200e25741)'

SELECT

 [dbo].[GetResourceContentClr](@waitResource, @tableName);

--Drop if exists
IF EXISTS (SELECT
*
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[GetResourceContent]')
AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[GetResourceContent]
GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Get resource name from  blocked process report
-- @waitResource e.g. KEY: 6:72057594041991168 (ce52f92a058c)
-- @tableName - resource name 
-- @paramName -
-- supported types are KEY & PAGE 
-- =============================================
CREATE FUNCTION [dbo].[GetResourceContent] ( @waitResource AS nvarchar(128)
,                                            @tableName as nvarchar(256)
,                                            @paramName as sysname =NULL)
RETURNS nvarchar(max)
AS
BEGIN
DECLARE @retValue as nvarchar(max)
DECLARE @blockingType AS nvarchar(20)
DECLARE @dbId as int
DECLARE @blockingKey AS nvarchar(256);
DECLARE @lockRes as nvarchar(20);
DECLARE @pos1 as int;
DECLARE @fileId as int;
DECLARE @pageId as bigint;
DECLARE @helper1 as nvarchar(500);

SET @retValue = '';
SET @blockingType = RTRIM(SUBSTRING(@waitResource, 1, CHARINDEX(':', @waitResource) - 1));
SET @blockingKey = SUBSTRING(@waitResource, CHARINDEX(':', @waitResource) + 1, LEN(@waitResource) - CHARINDEX(':', @waitResource));
SET @dbId = SUBSTRING(@blockingKey, 1, CHARINDEX(':', @blockingKey) - 1);

IF @paramName IS NOT NULL
BEGIN
SET @retValue = 'SET ' + @paramName + ' = (';
END
--Blocking type is KEY
IF @blockingType = 'KEY'
BEGIN

SET @lockRes = LTRIM(SUBSTRING(@blockingKey, CHARINDEX('(', @blockingKey) - 1, CHARINDEX(')', @blockingKey) - CHARINDEX('(', @blockingKey) + 2));

SET @retValue = @retValue + 'SELECT * 
FROM ' + DB_NAME(@dbId) + '.' + @tableName + ' (NOLOCK) 
WHERE %%lockres%% = ''' + @lockRes + '''' + ' FOR XML AUTO';
END

--Blocking type is PAGE
ELSE IF @blockIngType = 'PAGE'
BEGIN
SET @pos1 = CHARINDEX(':', @blockingKey) + 1;
SET @helper1 = SUBSTRING(@blockingKey, @pos1, 100);
SET @fileId = SUBSTRING(@helper1, 1, CHARINDEX(':', @helper1) - 1);
SET @pageId = CAST(SUBSTRING(@helper1, CHARINDEX(':', @helper1) + 1, LEN(@helper1) - CHARINDEX(':', @helper1)) AS BIGINT)
SET @lockRes = '(' + CAST(@fileId AS NVARCHAR(10)) + ':' + CAST(@pageid AS NVARCHAR(MAX)) + '%'

SET @retValue = @retValue + 'SELECT *
FROM ' + DB_NAME(@dbId) + '.' + @tableName + ' (NOLOCK) 
WHERE sys.fn_PhysLocFormatter(%%physloc%%) like  ''' + @lockRes + '''' + ' FOR XML AUTO';

END
IF @paramName IS NOT NULL
BEGIN
SET @retValue = @retValue + ')'
END
RETURN @retvalue;

END

GO


/*
Part two - SQL CLR. The same thing using SQLCLR.
Replace <your database> with your database name
Similar do with log and data path. This information could be found on server properties database settings. 
Put this query in sqlcmd mode.
Works on sql server 2012 and above. 
*/
GO
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;

SET NUMERIC_ROUNDABORT OFF;


GO
:setvar DatabaseName "<your database>"
:setvar DefaultFilePrefix "<your database>"
:setvar DefaultDataPath "<data path>"
:setvar DefaultLogPath "<log path>"

GO
:on error exit
GO
/*
Detect SQLCMD mode and disable script execution if SQLCMD mode is not supported.
To re-enable the script after enabling SQLCMD mode, execute the following:
SET NOEXEC OFF; 
*/:setvar __IsSqlCmdEnabled "True"
GO
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
    BEGIN
        PRINT N'SQLCMD mode must be enabled to successfully execute this script.';
SET NOEXEC ON;
    END


GO
USE [$(DatabaseName)];


GO
PRINT N'Creating [SqlClrGetResourceContent]...';


GO
CREATE ASSEMBLY [SqlClrGetResourceContent]
    AUTHORIZATION [dbo]
    FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300C0E3AE580000000000000000E00002210B010B000012000000060000000000009E3000000020000000400000000000100020000000020000040000000000000006000000000000000080000000020000000000000300608500001000001000000000100000100000000000001000000000000000000000004C3000004F00000000400000E802000000000000000000000000000000000000006000000C000000142F00001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000A4100000002000000012000000020000000000000000000000000000200000602E72737263000000E8020000004000000004000000140000000000000000000000000000400000402E72656C6F6300000C000000006000000002000000180000000000000000000000000000400000420000000000000000000000000000000080300000000000004800000002000500F4230000200B000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001330020094000000010000110072010000700A0F00FE16020000016F0600000A72030000706F0700000A16FE010C082D24000F00FE16020000016F0600000A0F01FE16020000016F0600000A28030000060A002B400F00FE16020000016F0600000A720B0000706F0700000A16FE010C082D22000F00FE16020000016F0600000A0F01FE16020000016F0600000A28020000060A0006280800000A0B2B00072A1B30040004010000020000110002178D0A00000113081108161F3A9D11086F0900000A0A020B068E6918FE04130911093ACB00000000001B8D09000001130A110A167215000070A2110A1706189AA2110A187219000070A2110A1906199AA2110A1A721D000070A2110A280A00000A0C06179A6F0B00000A0D7221000070097241000070280C00000A13041104280400000613051D8D09000001130A110A167247000070A2110A171105A2110A187265000070A2110A1903A2110A1A726B000070A2110A1B08A2110A1C72E9000070A2110A280A00000A1304110428040000060B00DE18130600720701007011066F0D00000A280E00000A0B00DE0000002B0800724D0100700B000713072B0011072A0110000000002A00AED800180B0000011B30050013010000020000110002178D0A00000113081108161F3A9D11086F0900000A0A020B068E6918321506189A72150000706F0F00000A16FE0216FE012B011700130911093AC3000000000006189A06189A72150000706F0F00000A06189A6F1000000A06189A72150000706F0F00000A596F1100000A6F0B00000A0C06179A6F0B00000A0D7221000070097241000070280C00000A13041104280400000613051D8D09000001130A110A167247000070A2110A171105A2110A187265000070A2110A1903A2110A1A72B5010070A2110A1B08A2110A1C72E9000070A2110A280A00000A1304110428040000060B00DE1813060072F901007011066F0D00000A280E00000A0B00DE0000002B0800723D0200700B000713072B0011072A000110000000004100A6E700180B0000011B300200770000000300001100140A0072D4020070731200000A0B000207731300000A0C00076F1400000A00086F1500000A6F0600000A0A076F1600000A0000DE120814FE01130511052D07086F1700000A00DC0000DE120714FE01130511052D07076F1700000A00DC0000DE0C0D00096F0D00000A0A00DE00000613042B0011042A0001280000020018001E3600120000000002000F003D4C001200000000000003005F62000C0B0000011E02281800000A2A42534A4201000100000000000C00000076342E302E33303331390000000005006C00000050020000237E0000BC020000DC02000023537472696E6773000000009805000004030000235553009C080000100000002347554944000000AC0800007402000023426C6F620000000000000002000001571D02000900000000FA25330016000001000000100000000200000002000000050000000700000018000000020000000600000003000000010000000200000000000A0001000000000006004C0045000A007D0068000A00EC00D1000600350122011300490100000600780158010600980158010A00CF01D1000600ED01450006000B0245000600220245000A006B0255020A00790255020A00970284020A00A90284020600C702450000000000010000000000010001000100100027000000050001000100568053000A00568057000A00502000000000960087001D000100F0200000000091009D00260003001022000000009100A900260005004023000000009100B4002C000700EC23000000008618BE003100080000000100C40000000200FE00000001000B01000002000D01000001000B01000002001701000001001C011900BE0031002100BE0077003100BE007D003900BE0031004100BE0031000900E401DA014900F401DE011100FF01E30149001002F00149001602F70149001D02DA0149001602FD0159002C02DA01490016022600490038021602490040021B0249004B021F026100BE0025026900BE002A027100A40231007900B30231027100C10231008100D30231000900BE0031000E0004000D000E000800140020002B00820024000B0035002E00130041022E001B004A022E002300530244000B005600E90104023502048000000000000000000000000000000000B601000004000000000000000000000001003C000000000004000000000000000000000001005C00000000000000003C4D6F64756C653E0053716C436C724765745265736F75726365436F6E74656E742E646C6C0055736572446566696E656446756E6374696F6E73006D73636F726C69620053797374656D004F626A656374004B455900504147450053797374656D2E446174610053797374656D2E446174612E53716C54797065730053716C537472696E67004765745265736F75726365436F6E74656E74436C720050726F63657373506167650050726F636573734B6579004D616B65496E707574002E63746F7200776169745265736F75726365004D6963726F736F66742E53716C5365727665722E5365727665720053716C4661636574417474726962757465007265736F757263654E616D650070007461626C654E616D65006E616D650051756572790053797374656D2E446961676E6F73746963730044656275676761626C6541747472696275746500446562756767696E674D6F6465730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300436F6D70696C6174696F6E52656C61786174696F6E734174747269627574650052756E74696D65436F6D7061746962696C6974794174747269627574650053716C436C724765745265736F75726365436F6E74656E740053716C46756E6374696F6E41747472696275746500546F537472696E6700537472696E670053746172747357697468006F705F496D706C6963697400436861720053706C697400436F6E636174005472696D00457863657074696F6E006765745F4D65737361676500496E6465784F66006765745F4C656E67746800537562737472696E670053797374656D2E446174612E53716C436C69656E740053716C436F6E6E656374696F6E0053716C436F6D6D616E640053797374656D2E446174612E436F6D6D6F6E004462436F6E6E656374696F6E004F70656E004462436F6D6D616E6400457865637574655363616C617200436C6F73650049446973706F7361626C6500446973706F73650000000100074B0045005900000950004100470045000003280000033A0000032500001F530045004C004500430054002000440042005F004E0041004D0045002800000529003B00001D530045004C0045004300540020002A002000460052004F004D002000000520002E00007D2000280020004E004F004C004F0043004B002900200020005700480045005200450020007300790073002E0066006E005F0050006800790073004C006F00630046006F0072006D006100740074006500720028002500250070006800790073006C006F00630025002500290020006C0069006B006500200020002700011D2700200046004F005200200058004D004C0020004100550054004F0001454500720072006F00720020007700680069006C0065002000700072006F00630065007300730069006E006700200070006100670065002000760061006C0075006500200000674900200065007800700065006300740065006400200070006100670065002000760061006C0075006500200069006E00200066006F0072006D0020006F00660020003A00200050004100470045003A00200037003A0031003A0034003200320030003000300000432000280020004E004F004C004F0043004B00290020002000570048004500520045002000250025006C006F0063006B007200650073002500250020003D002000270001434500720072006F00720020007700680069006C0065002000700072006F00630065007300730069006E00670020006B00650079002000760061006C00750065002000008095490020006500780070006500630074006500640020006B00650079002000760061006C0075006500200069006E00200066006F0072006D0020006F00660020003A0020004B00450059003A002000320031003A0037003200300035003700350039003400300035003400300034003900370039003200200028006200310034003200300030006500320035003700340031002900002F63006F006E007400650078007400200063006F006E006E0065006300740069006F006E003D00740072007500650000E9E159AF503B6342AC2D650282D31D6D0008B77A5C561934E08902060E064B00450059000850004100470045000800021109110911090500020E0E0E0400010E0E03200001200100020054020A49734E756C6C61626C65015408074D617853697A6580000000200100020054020A49734E756C6C61626C65015408074D617853697A65000100000520010111150420010108815601000400540E044E616D65154765745265736F75726365436F6E74656E74436C725455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730100000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D446174614163636573730100000054020F497344657465726D696E6973746963010320000E042001020E05000111090E0607030E1109020620011D0E1D030500010E1D0E0600030E0E0E0E11070B1D0E0E0E0E0E0E122D0E1D03021D0E042001080E032000080520020E0808042001010E062002010E12310320001C0B07060E12311235122D0E020801000701000000000801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F777301000000000000C0E3AE5800000000020000001C010000302F00003011000052534453D6CA4436D5298D42A93516A799A7B7DB01000000633A5C55736572735C4461726B6F2E4952415441484F4D455C446F63756D656E74735C56697375616C2053747564696F20323031335C50726F6A656374735C53716C436C724765745265736F75726365436F6E74656E745C53716C436C724765745265736F75726365436F6E74656E745C6F626A5C44656275675C53716C436C724765745265736F75726365436F6E74656E742E706462000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007430000000000000000000008E30000000200000000000000000000000000000000000000000000080300000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF2500200010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000018000080000000000000000000000000000001000100000030000080000000000000000000000000000001000000000048000000584000008C02000000000000000000008C0234000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000000000000000000000000000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004EC010000010053007400720069006E006700460069006C00650049006E0066006F000000C801000001003000300030003000300034006200300000002C0002000100460069006C0065004400650073006300720069007000740069006F006E000000000020000000300008000100460069006C006500560065007200730069006F006E000000000030002E0030002E0030002E00300000005C001D00010049006E007400650072006E0061006C004E0061006D0065000000530071006C0043006C0072004700650074005200650073006F00750072006300650043006F006E00740065006E0074002E0064006C006C00000000002800020001004C006500670061006C0043006F00700079007200690067006800740000002000000064001D0001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000530071006C0043006C0072004700650074005200650073006F00750072006300650043006F006E00740065006E0074002E0064006C006C0000000000340008000100500072006F006400750063007400560065007200730069006F006E00000030002E0030002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000030002E0030002E0030002E00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000C000000A03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;


GO
ALTER ASSEMBLY [SqlClrGetResourceContent]
    DROP FILE ALL
    ADD FILE FROM 0x4D6963726F736F667420432F432B2B204D534620372E30300D0A1A445300000000020000020000001F00000090000000000000001B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF380000F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BCA3101380000000010000000100000000000000E00FFFF04000000FFFF03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA3101380000000010000000100000000000000F00FFFF04000000FFFF0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942E3101C0E3AE5801000000D6CA4436D5298D42A93516A799A7B7DB00000000000000000100000001000000000000000000000000000000DC51330100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF04000000FFFF030000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF04000000FFFF030000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F862513FC607D311905300C04FA302A1C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BD60A66E40CF64824CB6F042D48172A79910000000000000000FFE92A80E41EBDBEF00F94F7E35FF0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220300000000000022030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FEEFFEEF010000002A01000000633A5C55736572735C4461726B6F2E4952415441484F4D455C446F63756D656E74735C56697375616C2053747564696F20323031335C50726F6A656374735C53716C436C724765745265736F75726365436F6E74656E745C53716C436C724765745265736F75726365436F6E74656E745C46756E6374696F6E735C4765745265736F75726365436F6E74656E74436C722E63730000633A5C75736572735C6461726B6F2E6972617461686F6D655C646F63756D656E74735C76697375616C2073747564696F20323031335C70726F6A656374735C73716C636C726765747265736F75726365636F6E74656E745C73716C636C726765747265736F75726365636F6E74656E745C66756E6374696F6E735C6765747265736F75726365636F6E74656E74636C722E637300040000009500000001000000960000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001BE2300180000000E5A028E0D88DD201010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000200000001000000010000000000000096000000280000001BE23001F8330D8158000000010000009500000096000000650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000003E002A11000000006C01000000000000940000000000000000000000010000060000000001000000004765745265736F75726365436F6E74656E74436C7200001600031104000000380100009400000000000000010000000A0024115553797374656D00120024115553797374656D2E44617461000000001A0024115553797374656D2E446174612E53716C436C69656E7400001A0024115553797374656D2E446174612E53716C54797065730000001E002411554D6963726F736F66742E53716C5365727665722E536572766572001E002011010000000100001100000000000004004353243124303030300000001E0020110200000001000011000000000000040043532434243030303100000022002011000000000100001100000000000000007265736F75726365436F6E74656E7400020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004010000040000000C000000010005000200060036002A110000000070030000000000000401000000000000000000000200000694000000010000000050726F63657373506167650000000016000311700100003C0300000401000094000000010000001E002011070000000200001100000000000004004353243124303030300000001E002011080000000200001100000000000004004353243024303030310000001E002011090000000200001100000000000004004353243424303030320000001E0020110A0000000200001100000000000004004353243024303030330000001A0020110000000002000011000000000000000068656C70657200001E0020110100000002000011000000000000000072657456616C75650000000016000311A801000004030000AC000000BE000000010000001A00201102000000020000110000000000000000686F6269640000001A0020110300000002000011000000000000000064624964000000001A0020110400000002000011000000000000000071756572790000001A0020110500000002000011000000000000000064624E616D6500000200060016000311A801000038030000140000006E0100000100000016002011060000000200001100000000000000006578000002000600020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D00440032000000040100000401B7000C000000010000060200060032002A110000000070050000000000001301000000000000000000000300000698010000010000000050726F636573734B65790016000311740300003C0500001301000098010000010000001E002011070000000200001100000000000004004353243124303030300000001E002011080000000200001100000000000004004353243024303030310000001E002011090000000200001100000000000004004353243424303030320000001E0020110A0000000200001100000000000004004353243024303030330000001A0020110000000002000011000000000000000068656C70657200001E0020110100000002000011000000000000000072657456616C75650000000016000311A803000004050000A4000000D9010000010000001A00201102000000020000110000000000000000686F6269640000001A0020110300000002000011000000000000000064624964000000001A0020110400000002000011000000000000000071756572790000001A0020110500000002000011000000000000000064624E616D6500000200060016000311A80300003805000014000000810200000100000016002011060000000200001100000000000000006578000002000600020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D00440032000000040100000401B7000C000000010000060200060032002A1100000000EC0600000000000077000000000000000000000004000006AB02000001000000004D616B65496E70757400001600031174050000B806000077000000AB020000010000001E002011040000000300001100000000000004004353243124303030300000001E0020110500000003000011000000000000040043532434243030303100000016002011000000000300001100000000000000006473000016000311A8050000800600005B000000AF020000010000001600201101000000030000110000000000000000636E6E0016000311180600007C06000039000000BB020000010000001A00201102000000030000110000000000000000636F6D6D616E6400020006000200060016000311A8050000B4060000090000000E0300000100000016002011030000000300001100000000000000006578000002000600020006002E000404C93FEAC6B359D649BC250902BBABB460000000004D004400320000000401000004017A030C0000000100000602000600F2000000CC000000000000000100010094000000000000000F000000C000000000000000130000800100000014000080070000001500008022000000EEEFFE8025000000160000802600000017000080460000001800008047000000EEEFFE80490000001900008064000000EEEFFE80670000001A000080680000001B000080880000001C000080890000001D000080920000001E0000800500060009002500090035000000000009000A000D005B0009000A00000000000E003B000000000009000A000D005C0009000A000900200005000600F200000068010000940000000100010004010000000000001C0000005C0100000000000021000080010000002300008018000000240000801A0000002500008022000000EEEFFE8029000000260000802A000000280000802B00000029000080640000002A0000806D0000002B0000807F0000002C0000808800000030000081CD00000032000080D500000034000080D6000000EEEFFE80D800000036000080DA00000037000080DB00000038000080ED0000003A000080EE000000EEEFFE80F0000000EEEFFE80F10000003D000080F2000000EEEFFE80F40000003F000080F500000040000080FB00000041000080FC000000420000800101000044000080050006000900280009001D00090021000000000009000A000D000E001100480011003000110041001100320011006B0011002D000D000E00000000000D0021000D000E0011004E000D000E00000000000000000009000A000000000009000A000D004E0009000A001100210005000600F200000068010000980100000100010013010000000000001C0000005C01000000000000470000800100000049000080180000004A0000801A0000004B00008039000000EEEFFE80400000004C000080410000004E000080420000004F00008073000000500000807C000000510000808E000000520000809700000056000081DC00000058000080E400000059000080E5000000EEEFFE80E70000005A000080E90000005B000080EA0000005C000080FC0000005E000080FD000000EEEFFE80FF000000EEEFFE80000100005F00008001010000EEEFFE80030100006100008004010000620000800A010000630000800B010000650000801001000066000080050006000900280009001D0009003E000000000009000A000D000E000E007B000D002C000D003D000D002E000D004A000D0029000D000E00000000000D0021000D000E0011004D000D000E00000000000000000009000A000000000009000A000D00650009000A000900190005000600F200000050010000AB0200000100010077000000000000001A000000440100000000000069000080010000006A000080030000006C000080040000006E0000800F0000006F00008010000000710000801800000072000080190000007300008020000000740000802C00000075000080330000007600008034000000EEEFFE8048000000EEEFFE8049000000770000804A000000EEEFFE805E000000EEEFFE805F0000007800008060000000EEEFFE806200000079000080630000007A000080640000007B0000806B0000007C0000806C000000EEEFFE806E000000EEEFFE806F0000007D000080740000007E0000800500060009001A0009000A00140054000D000E0018004700110012001500200015003D00150021001100120000000000000000000D000E00000000000000000009000A000000000009001D0009000A000D001D0009000A0000000000000000000900130005000600F40000000800000001000000000000002000000000000000240000003C00000058000000700000008C000000A4000000BC0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF1A092FF1400000002402000059000000010000008D000000010000003D000000010000002500000001000000BD000000010000007100000001000000A5000000010000000100000001000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000C0000001800000024000000300000003C000000480000005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022002511000000000400000001004765745265736F75726365436F6E74656E74436C72001600291100000000040000000100303630303030303100001A0025110000000070010000010050726F63657373506167650000001600291100000000700100000100303630303030303200001A0025110000000074030000010050726F636573734B65790000000016002911000000007403000001003036303030303033000016002511000000007405000001004D616B65496E7075740016002911000000007405000001003036303030303034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000FFFFFFFF1A092FF10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF77093101010000000B00008E0C0032060D00000060000000740000002C000000A0000000000000000000000016000000190000000000EEC00000000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000A00F0060000000000001C050000010000000020EE00000000000000000055736572446566696E656446756E6374696F6E730037314141414545380000002DBA2EF101000000000000009400000000000000000000000000000000000000010000009400000004010000000000000000000000000000000000000100000098010000130100000000000000000000000000000000000001000000AB0200007700000000000000000000000000000000000000020002000D01000000000100FFFFFFFF00000000220300000802000000000000FFFFFFFF00000000FFFFFFFF010001000000010000000000633A5C55736572735C4461726B6F2E4952415441484F4D455C446F63756D656E74735C56697375616C2053747564696F20323031335C50726F6A656374735C53716C436C724765745265736F75726365436F6E74656E745C53716C436C724765745265736F75726365436F6E74656E745C46756E6374696F6E735C4765745265736F75726365436F6E74656E74436C722E637300FEEFFEEF010000000100000000010000000000000000000000FFFFFFFFFFFFFFFFFFFF0900FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942E3101C0E3AE5801000000D6CA4436D5298D42A93516A799A7B7DBC10000002F4C696E6B496E666F002F6E616D6573002F7372632F686561646572626C6F636B002F7372632F66696C65732F633A5C75736572735C6461726B6F2E6972617461686F6D655C646F63756D656E74735C76697375616C2073747564696F20323031335C70726F6A656374735C73716C636C726765747265736F75726365636F6E74656E745C73716C636C726765747265736F75726365636F6E74656E745C66756E6374696F6E735C6765747265736F75726365636F6E74656E74636C722E6373000400000006000000010000001E00000000000000110000000700000022000000080000000A00000006000000000000000500000000000000DC51330100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E000000200000001D010000380000000F02000038000000000000004E010000800000005800000028000000300C0000740200002C000000D40000000300000019000000060000001700000018000000070000000A0000000B00000008000000090000000C0000000D0000000E0000000F0000001000000011000000120000001300000014000000160000001500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 AS N'SqlClrGetResourceContent.pdb';


GO
PRINT N'Creating [dbo].[GetResourceContentClr]...';


GO
CREATE FUNCTION [dbo].[GetResourceContentClr]
(@waitResource NVARCHAR (128), @resourceName NVARCHAR (256))
RETURNS NVARCHAR (MAX)
AS
 EXTERNAL NAME [SqlClrGetResourceContent].[UserDefinedFunctions].[GetResourceContentClr]


GO
PRINT N'Update complete.';


GO

Rate

5 (6)

You rated this post out of 5. Change rating

Share

Share

Rate

5 (6)

You rated this post out of 5. Change rating