DonatShell
Server IP : 180.180.241.3  /  Your IP : 216.73.216.252
Web Server : Microsoft-IIS/7.5
System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Program Files (x86)/Microsoft SQL Server/110/SDK/Assemblies/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /Program Files (x86)/Microsoft SQL Server/110/SDK/Assemblies/Microsoft.SqlServer.SqlEnum.dll
MZ@	!L!This program cannot be run in DOS mode.

$PELP! n  1 `	@S  =@l  H.textt  `.rsrc @@.reloc@@BPHp	xP "Ń,4¯ugK7|8Jt
1JDYp<@ŲC:~Ob^^ī!M+E@#PBH{,g̓ו۶$8)y,#&*.s*f(
s
}}*0U(
-s
zs
}}o
+"
{o
%{X}Xi2*(
-s
zo 
}o!
}*0g(
~"
(#
,s
z($

s
}}o

+"	{o
%{X}	X
	i2*{,~.{o%
}*6o&
o'
*~*{*(*J(c(c((
*N(c(c()
*N(c(c(*
*R(c(c(+
*Z(c(c(,
*b(c(c(-
*b(c(c(.
*j(c(c(/
*J(c(c(0
*Z(c(c(1
*0
,o&
o&
o2

*0
,o&
o&
o2

*0,o&
s
+s
*2(3
s*Z-s
zo&
o4
*(<,s
zo&
o&
o4
*2{s*(<,s
zo&
o&
o5
*(<,s
zo&
o&
o6
*0
,
o&
o7

*"(<*"(<*No&
(co8
*N(c(c(9
*6(:
s*:(;
s*2o&
o<
*6o&
o=
*6o&
o>
*:o&
o?
*:o&
o@
*>o&
oA
*>o&
oB
*6o&
oC
*:o&
oD
*>o&
oE
*(<,s
zo&
o&
oF
s*r-s
zo&
oF
s*2i(2*0-s
z2iX/sG
zsH

/c-~I
+o&
oJ

	,	o&
oK
&	X
+#	,,oK
&	o&
oK
&	X
	Y2o&
s*6o&
oL
*6o&
oM
*:o&
oN
*:o&
oO
*>o&
oP
*>o&
oQ
*6o&
oR
*:o&
oS
*>o&
oT
*03
,,
+--o&
o&
(0

*03
,,
+--o&
o&
(0

*03
,,
+--o&
o&
(0

*.(<*.(=*.(>*0
(*Jo&
oU
s*No&
oV
s*Jo&
oW
s*No&
oX
s*Jo&
oY
s*No&
oZ
s*No&
o[
s*vo&
o&
o&
o\
s*Jo&
o]
(S*No&
o^
(S*No&
o_
(S*Ro&
o`
(S*No&
oa
(S*Ro&
ob
(S*(<,s
zo&
o&
oc
*(<,s
zo&
o&
od
*04	
,-i
+,
s+Xi2*Jo&
oe
s*No&
of
s*2{(g
*Fo&
oh
s*Jo&
oi
s*Fo&
oj
s*2{o 
*04
~I

(	,$sk
(l
{(g
(m

(n
*Fo&
oo
s*Jo&
op
s*Fo&
oq
s*Fo&
or
s*Jo&
os
s*Jo&
ot
s*Jo&
ou
s*0
(?,o&

*0
,s
*0
(?,{o 

*0
,s
*0
(v

(?,
o&
(w
*0 
(x
-o&
s
*(y
s}s}s}*{*"}*{*"}*{	*"}	*~{
-(z
s{
}
{
*{*{*"}*{*"}*{*"}*{
*"}
*"(|
*09(}
-s
+'(}
u,(}
t
+(}
s
*2(~
o
*:(
t*0 
*0Q(,!o((vo
o&*o
(ooo
o&*0E(vo+o
t
o,oo
-u,o
*'30d(}
,
(}
o
-*(}
o

+/	
(}
o
.+(}(X	i2(*0/(}
(,o(+o&o*&o*0=,(}
+	(}
(,o(+o&o*0(}
oo*0f{-*(}
o,Koo
+"o
to3
oo&o
-u
	,	o
*&.T0M{-*(r{o&(t{o&(v{o&(*0gs
}(l,(lo((to+&o
t
o,oo(o
-u,o
(ro+&o
to,oo(o
-u,o
(({,p({o,c({oo
+/o
to-o(}
	o(o
-u		,	o
{o
1{o*(13d3<70(}
9(}
o
9(}
o
i>(}
o

,vo
,9o
-o
iao
o
o
o
o
o
o
,-o
-o
i#o
o
o
o
(}
o
i1;(}
o
iYio
(}
o
o
o
i(
*o
*0gs
o
(}
o
3	o
+o
((((n,(noo(}*0o,ko
+Go
t
o32o(
to(oooo
-u
	,	o
*
S]6((*n({,({o(*n{,{o(*0(,$t
(joo(jo*01s

(
o
oJ
,(-(jo*V(o(*>((*0Us}(((((x,(jo,to,(*(*(
*{-(z
s{
}{o
*0\(q,S(qo
+*o
p
(
ta(
taoo
-u,o
*6J0-(
(
(jst((}
,(}
o
.(}
o
3*(}
o
(}
o
-(joo
>
(joo
+Go
p(
u-+(
u,(
t*o
o
	/
+	o
-u,o
	,&&(s
*T0o
(
oo
ro
us, o
3o
3
o
 .o
orpoo
&rpo
&(
oo
	*r.0L3
(*.3/(
3*s
(
o
o
o
*s
z(ro(to(vo*"o*
*2(
*0J-*o
+!o
t
o-
{o
&o
-u,o
*-86{*0(l,(lo((to+o
t
o(o
-u,o
(ro+o
to(o
-u,o
(
	+	t
	o(	X		i2*''Np'0(vo
+\	o
t
o,Ho
o
+o
(}(o
-u,o
	o
-	u,o
*/&Uht:}(*R}((*0 s

o
o
(~
o
o
(noo
ao
(noo
o
s
(
(
toooo*0S!(n-*(noo
+o

(r{o&o
-u,o
*'A01%
,*rp(
-rp(
-	+(*(|**(*"(
*"(*"(*0Q"(}
,(}
o
,(j-*(}
o
+
o
o
(Xi2*0|#o(po
t",=o
+o

	(o
-u,o
*,(
+
(jo*'F0H$(
o
ty
-*o
3!(
rpo
(;
*o
*&(
*Bo(*0	(*08%s#
o$,o+oo*Jo(*0&o'
s
9oG(y(t(oI
	,	s(m	ooJ,(r(ooK,s(oooL,(oM,(t(ooN,(r(ooO,(r(ooP		9(v	o(	o(vo+Qo
t

oo
+o
o
o
-u,o
o
-u,o
oQ,)(pooo
o!-ooR

,
o
o(
oo(o*o*o+9,o2o
-	o<,r(t(s,o
o
,o
o
o
, %o
_o
%o
_o
(
o+o+,(:=:7*P p2^0	'o/
,:o
+o
o
&o
-u,o
o
-
o0,;o
+o

	o
&o
-u,o
o
-o-oo.o(o*/b(i*(rp}}}}*{*(}
o
.(}
o
3}(*0((}
o
3*(}
o
.(*({o-}(*t
(oo(o
&((
(}o
oY{-)rpZ(
(
rp(
o+rpooo1ss

+Y(tot	oo
&rpZY

(
(
rpo(
oX(to2(too(too,orpo(
oOo	,=	+)(t	ot

		o
o	X		(to2}*PTO06{,&(,((
t
o*(*0)((

,Ns
(
o
o
rprp(
o
&o
(
o
o
o
*s

	o
	o
	(~
o
	a(o
oo
1Z	io
+B	o
s
	o
aoYYo
o
X2s
(
	(
(
*0*s

rprp(
o
o
o
rpo
,o
}o
r/po

,o

o
r7po
,o
}o
rGpo
,}	(*0+((
,*(}
o-*oo

+,	o
to3(o(
, 	o
-	u,o
**/8g0,({o
,({o
i,({o
i1:({o,%({oo
,({oo
1(
*({o
,+({o

+	
(-q	X
	i2+^({o,Q({oo
+o
to(-'o
-u,o
(
**n{-(*{(*>}(*0T-(
(}
-=s(k(r~I
(jo&(
(
(js*(*(*(*(*0(
sH
}sH
}sH
}sH
}sH
}sH
}sH
}sH
}s
}(z
s{
}}(}}} *{*"}*{*{*{*"}*6{(*J,
o
**{*"}*o
1	oK
&oK
&oK
&oK
&*r{~I
~I
rQp(*r{~I
r]pr]p(*r{rapreprip(*r{~I
r]pr]p(*r{~I
~I
rop(*(,} {~I
~I
rop(*r{~I
~I
r]p(*r{rapreprup(*r{~I
~I
r}p(*-rp(
+
rp(
(*0|.(o
+Jo
t
o
(
,0(
rpo]((;
(#o
-u
	,	o
(*Vb0;,7,-(
rp
]((;
(*(*:{o
*0o/{(-{o&
o{}{(-({
{}(-o&
({o
{Y%{oX}1C{{{o
o
{{{{o
o
+{{o
{o
+&o
p{(
(
o
o
-u,o
sH

{(--	{o
&{ ,	r}poK
&	r]poK
&{(-
	{o
&	}{ } {(-3{(,{{o
&+{o&
({(-+{{}(-
o&
({(-{o&
({{o
&{(-{o&
(*3 00{,{*sH

{(,*rpoK
&{,rpoK
&{o
&{(-rpoK
&{o
&{(-rpoK
&{o
&{(-rpoK
&{o
&*00sH

{(-erpoK
&{o
&rpoK
&rp(oK
&r]poK
&rp~I
(oK
&r-poK
&{(-{o
&r]poK
&(o
&{(-r]poK
&{o
&o&
*2{o&
*Z}}}*0`1s
{{o
&{{o
&{{o
&{ } {o
{Y1B{{{{o
o
{{{o
o
+{{o
%{(X}{o

+%	o
p{(
(
o
	o
-	u,o
{{o
&{{o
&{{o
&{{o
&*1~{o
&-%{X}*N(((*0W2{-N}{o
+o
t
oo(o
-u,o
**E2{o&
*6{o
*03sH

rGpoK
&oK
&rapoK
&(,C(o

+	o
t(	o
-	u,o
repoK
&o&
*<#_04F,R+r}poK
&o

,o
o-,(
rkpo(;
oK
&*(
rpoo(;
oK
&*075s
rpoorp(
ooo*2sH
}*V(
}"(*(
}"(}&(*{!,${&(
-{!{&o
}!*0S{!o
}${!o
{!o
-({!o
&{!{$o
}"**
7{!{$o
{",{!o
*06u*}!{!,*u
,
o
}!*u,
s
}!*u,
s
}!*u
	,	o
s
}!*(\s
zs
}#s
}%{!{%o
*:{#o
&*007{%,{!{%o
}%{#
}#*0C-*o
tso
2&{!o
-{!o
o
&
***&8s0/8{!o
&
(,{!o
&+*.0;9
{!o

(,{!o

+o
o
*.02:
{!o

(,{!o

+*.0
;(*2{!o
*2{!o
*2{!o
*0,<s
ooooo*
0=s
ooo*
	0>s

o
&(*0?
(
o**(*0@s
os
+	o
o	X
	o
Y2	o
o8o
tso
/ooJ
1oo&
,	-o*(p~.:K8.t
0=s
o*0=s
o*0?A(
+o
(X
o
Y2o
((*060)Bu&
,*u,o
*s(*0>Cu|,'(
(
,'*u
,o
*s(*2s(*0Dt
orpo(
&r?p(
rIp(
-,,,(]s
z,!\oL

	2	of
	XoZ
,ToJ
1"\oJ
Yo'
3oJ
YoZ
o(
r[p(;
o,)o(
rp(;
o(
(*(*{*"}*{*"}*{*"}*{*"}*{*"}*(
o(
o(o(o((*(
(
((((*:(
(*V(-((
&*V(-((

&*0yE(:L(Zs
z~I

~I
~I
~I

~I
~I
(rpo

(rpo
(rpo
(
,(
,(
,(Ys
z(3\
(r
po
(r-po
(rMpo

(rmpo
(rpo
+W(rpo
(rpo
(rpo

(rpo
(rpo
(
-(
+ (
-(
+	(
-	(
+
	
s
(
-(
+ 	(
-	(
+ 
(
-	(
+ 
s
(o
(o
(o
s
(
-(
,((
-((
&*((
&(rp(
:((
*0*(,-*(

((;
*0\F~I

s
,K
+:	o'
#3oJ
/o
&~I

+
(

X	oJ
2*0U(o
,**(o
.6(o
3(o
*(o
,(o
3*"(*(*N(((
*z(((
-*(**(*0G(
}{-(s
z{s
(
(o
((
9(r!p(
-([s
z(rpo

(rpo
(rpo
(
,(
,(
,(Ys
z~I

(3(r
po

+(rpo

	(
, (

(
, (
(
( 
(o
0	(
( 
(o
<(o
YE+ (e(s!
z(f(s!
z(3(o&
(s!
z(o&
r7p('o&
(
(s!
z((
,*(as
zN(
{o"
*zr;p(,((
,**rGp(-rGp(s
zsD*0BrYp(-"(rYp(
-rYp(s
z((
&s)*"(*Zrop(,s1**Zrp(,s,**"(*F(rpo
*^(rpo
(*Z(rpo
(*Z(rpo
(*"(*F(rpo
*0H(rpo

,(#
*(rpo

,rp(*
-**(2r	p(
-4rp(
-'rp(
-rp(
-
r-p(
,**0L(r;po

,rSp(
*(rpo

,*(rpo
(*^(r;po
*F(rpo
*0(rpo

-*(#
*0(rpo

-*(#
*0(rpo

-*($
*0EI(rpo

,-oq

r#po%
.`r1po%
.`*0(r?po

-*(#
*^(rIpo
*0J(rWpo

,Doj

rcpo%
.`rspo%
.`rpo%
.`*(rpo

,Hoj

rcpo%
._rspo%
._rpo%
._*(<,**6((*F(rpo
*F(rpo
*F(rpo
*^(?-
(@**n(rp(
,s_**"(*F(rpo
*F(rpo
*0(rpo

-*(#
*^(E-
(F**((
-*r%p(,sS**Zr=p(,sw**Zr[p(,sV**Zrp(,s,**Zrp(,sg**Zrp(,su**Zrp(,sy**Zrp(,s{**Zrp(,s**Zrp(,s**"(*((
-*(rp(
,sX**n(rp(
,s_**"(*((
-*(r	p(
,s\**"(*F(r%	po
*F(r1	po
*0 (!
,(rp(
,**"(*F(rpo
*0 (!
,(r	p(
,**"(*F(r?	po
*^(rE	po
(*((
-*(r[	p(
,sc**"(*0T(rpo
%
,>r1	p(
-)r%	p(
-rq	p(
-rsp(
-+*****F(r	po
*F(r	po
*"(*Z(r	po
(*^(rpo
(*^(rpo
(*^(r	po
(*^(r	po
*^(r	po
(*6((*2rp("*n(rp(
,s_**"(*(*Z(r	po
(*n(rp(
,s_**"(q*2rp("*"(q*2r=p("*"(q*2rp("*"(*F(r
po
*Z(r	po
(*Z(r
po
(*2rp("*"(*F(r	po
*Z(r=
po
(*2r]
p("*"(*F(r
po
*F(r
po
*0K%9~:~s'
%r/p((
%r
p((
%r
p((
%r
p((
%r
p((
%r
p((
%r
p((
%r
p((
%r
p((
%rp	((
%rp
((
%rp((
%r#p((
%r-p
((
%r9p((
%rKp((
%r_p((
%rip((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%r!p((
%r5p((
~()
9E
"**222:BBJRZbbjjjr+xrp
+|rMp
+trgp
+lrp
+drMp
+\rp
+Trp
+Lrp
+Dr
p
+<r'
p
+4r?
p
+,rY
p
+$rq
p
+r
p
+r
p
+(s
z*-3s
*3o
o
s
*s
z0<LsH


+ 	o'
o*
&3o*
&	X
	oJ
2o&
*040sH

r
poK
&'(oK
&r
poK
&o&
*0\M
(
o+
(
o,
o-
o\
(.

(r
po&
(
s
z-(s
z*,.r0$N4(
o/

-(s
z*.(*0^OsH

+@Jo'

-	3+$	3-++
,-!	3,	o*
&%JXTJoJ
2o&
*"(*04P-*s

+X[](o0
oJ
2*0Q
+qo'

	%.
	[.	_3, -oJ
Zs1

of
oK
&,r
poK
&,o'
o*
&,r
poK
&XoJ
2,o&
**(
*f(
}s
}*"}*{*{*jo-
{,*(*^(-
{o
**>{o
*
*{*"}*"}*{*"}*n,s
}{o*Z{-*{o*J(
s
}*2{o
*:{o
&*0<R{o
+o
t
oo
-u,o
**0SS
{o
+&o
to,
ooo
-u
	,	o
*2@0DR{o
+o
t
o,oo
-u,o
*&2J{o2
t*F{o
s*:(
}*2{o
*2{o
*2{o3
*0(oh(oi}oj}ol}{-I{,	}+8ok}{,	}+om}{,}on}op(*0@>(s

o2o
&(o?}}o@}*(s
(oE}}oF}*Vsoo!-*VoB,so*VoH,so*{*"}*09{-{+(o
{-*r
p{(
*(,{,{*(o*0T(o(
(,	oJ
0o*o9ol,g,	oJ
0oloo
+jarapr
poloorep(4

+#{-o,oJ
1o*{3r
p+rp(
r3p(;
(

	o*0U(5
o2(6
o4(7
o7(8
o3(9
o5(:
o8(
o9(;
o:(<
o6}oA}o=(
o;}o>}oC
,s
}{o*Z{-*{o*{*"}*{,{*{,
{o**09(-(*(
rCp
(((;
*0;{,+(
rUp
(((;
*(*:(}*{*"}*{*{*{*"}*V(ojo*(os(or}ot(*r{,{*(o*"(*b,soo!-*:(o*"(*b,soo!-*:(o*"(*b,soo!-*:(o*0:V(
s
}oT
,(*oU,{o*0W{s
o~I

sooYo{oo
&sooZo{oo
&1rwp(

(
rp
	%X|	%X|	(;
(

o!:W{o	{(
(
o*2{o*{*:(
}*0C(
o=
(
o
(
o
(
o
(
o>
(
*"}*"}*{*{*{*"}*0SX{-
o}*oo
+o

{o
&o
-u,o
*! A^(
}}*j{-s
}{*j{-s
}{*"}*j{-s
}{*"}*{*{*"}*2(?
t*"(@
*{-*{o
oA
2*{o
oA
*{*"}*{*"}*{-(z
s{
}{o
*0Y(:(
YE+s(
rp(;
*(
r
poB
o&
'(r
p(
oB
o&
](rp(;
*(`s
z(
	YE+U*(
r
poB
o&
'(r
p(
oB
o&
]((;
*(`s
z0?rp(
rp
(YoB
o&
]((;
(
*0	E-*rp(
rp
(YoB
o&
]((;
o\
*{,{o
oA
**06
+%oB
o&
oB
o&
(
,*X
(Y2*0?Z(os

(2(oo
&*~I
(,vrp(C
~D
(E
(F
(
(G
r
p(
(oo
&(rp(
o(o(o(o
8?{o
oH
	{,({o
oA
/{o
oH
	{.(o
&{9{o
@(3z{oI
ta(YoB
ta(*
-M(o

{(YoB
o
tao
o(+&,-(-	(	(o
&X{o
oA
?(,(o
&*0T{-(bs
z{o
oA
.(cs
z{o
oH
(o(*0[t
orpo(
&rp(
-rprp(s
zo(
rp'((;
o(
(*(*{*"}*{*"}*{*"}*(
*0j\s
}o`}oa}ob
sodooeoofo{o
&o!-*6{*"}*{*{*"}*0](-{*{o
+_o
t
o3ooo+5o3,oo,	o+o-~I
oo
-u,o
{(
( 

+!	{o2
toX2(
{	(;
*l"}*(
*0E(o}(o~}o|-(ds
zo|}}*02^{{(u
-{rp(s
z*{*{-(z
s{
}{o
*
*0_{9(
o|oo
oo}
o(
o{o{oJ
oK
+o
taojooo
-u
	,	o
}*`+f,soo!-*:(
}*{*"}*{*"}*6{oL
*{*"}*{*"}*6{*
*0s`o-j~I

(oJ
oK

+%	o
ta-rp(

(

	o
-	u,o
(sM
z*!1R0Rao
}
o
+o
{%X
oo
-u
	,	o
*&@0:{,*}
+{{o
X
{i2*0Cb
oA
Y+0X[oH
oN
oO

	3Y+	3X
+*1*06(!
/*Y
1YoH
oN
o&
(
-*0#(
rp
]((;
*NoP
rp(
*>(&($*R{|o*:(&|*:(&*0N(&
($,*ta**R(o+}*0cs

(o=
oQ
rp(
(R
o
o
o
arprprpo
#rpsS
rpsS
o
s
((
(
*0d{o
rp("
1~I
*~I
{o
%X
oH
rpoN
ta(
{o
oA
/,rp{o
oH
rpoN
o&
(
-*{*0z}($,~I
}*((o
	/({-(-}ta(.}+o1}{-~I
}*ta*b((o
	/**^(/-(0{*>}}*6(,o+*^(4}}*{3{ta(}{*r!p((
, {3{ta(}{*{3{ta(&~U{?*{3{ta(&~U{@*&()*0e(/-(&
(0{($,{*%9rp(
-6r+p(
-0r=p(
-;r[p(
-:rp(
-9+L{*{ta(7oZ
*(7|*(9*(:,(:*~I
**
*J(sT
}*
*rpsU
r psU
*0!f{sT
o
{-,
~}+~}
{oV
8oW
rqpoX
oY
,*oW
r}poX
oY
,oW
rpoX
oY
,
,H,EoW
rpoX
oY
,.{o
toW
rpoX
oZ
o
oW
rpoX
oY
,oW
rpoX
oZ

o[
oY
:**0Rg
(o
	22(
rp](|(;

+p1<(
rp](||(;

+0(
r[p](|(;

(~I

o
o\
	+"	o
t5	oB
o&
(

	o
-	u

,
o
o
oA
1,o
oH
oB
u-o&
(#
R	*/N{o
*0({o
to
ta
-~I
**0h,
u-*((
,~I
*('()()
(&u|,|+	(
(
(
(
(
(C-#((B(A	(D*0ii($,~]
*|
($,~]
*|1/~]
* '[d[d]d] '[d[d]d]s^
<*^(&(&(F*(*0-('
1 '[d[d]d]s_
<*(*0-('
1 '[d[d]d]s`
*(*0ej
(&($-|
0~D
<* (_
 [ ]<[<](`
	(a
<*(*0rk
(&($-|
0* (_
 [ ]<[<](`
(&<	(a
(E
*(*0.ot
(S-d.,	(	
+
*0"ot
(S-(	
*0]l
Trp((
,D(o=
o
o
rp(
,

(
Trp(
,

(T*0

 0P; ; YEdjpv|8 0% .s YEag8 .` YEJ\PV+Zrp*rp*rp*rp*rp*rp*rp*rp*rp*r
p*rp*rp*r$p*r.p*r8p*rBp*0J((o
	/('(T(R|*()('(Q|*(*0<(
rDp
()'(()'((;
*0m(W
,Q(%-G(
rp()'(()'((;
(

-6(
rp()'((;
(

+F(
rp
		()'(	()'(	(;
(

*0n()%
9~:~s'
%rp((
%rp((
%r$p((
%r.p((
%r6p((
%rJp((
%rPp((
%rVp((
%r\p((
%rbp	((
%rhp
((
%rnp((
%rtp((
%rzp
((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
%rp((
~()
9E#2AP_r11@Sb8lrp(X*r-p(X*rp(X*r p(X*r4 p(X*r\ p(X*r pr p(X*(%-r pr p(X*r p(X*r pr p(X*r pr p(X*r p(X*r p(X*r!p(X*r"!p(X*r2!p(X*rD!p(X*rz!pr p(X*r p(X*r pr p(X*r!p(X*r!p(X*()(s
z"(Y*(*0td{-().(}
%,3r!p(
-r!p(
-r!p(
-
+

+
+
{o
2*{o
*"}*(*r(}}}*0o('
('(){,5(
r"p
	|	|	](	(;
*}(
rH"p||(;
*0dp{,*}	a}(`((
o
8o
t-
8ob
	oc
od
 	@ob
	oc
oe
r|"poe
oJ
Yof
2iXoe
%oL
0oe
oJ
{%Xoe
Yof
	X
	ob
og
/{i?b	X
	ob
og
/{i?'{i2*o
:u,o
}*A8G0n(a{9}%
9u~-ms'
%r"p((
%r"p((
%r"p((
%r"p((
%r"p((
%r#p((
%r(#p((
%rJ#p((
~()
9E5Me}8{(
(h
*{(
( 
|*{(
( 
|*{(
(i
*{(
(i
*{(
(i
*{(
(i
*{(
(i
**>}}*0q($,~j
*ta
j.o]
i.~j
*
+/(
( 
j	%X
Z_bjZXXi2sk
*(*z($,*ta&ta(l
*(*0r
()(m
{-Bo3#rp#p?(n
((}+r#p((}{o
o\

+$	o
t5oB
?(o
,
+	o
-	u,o
-~]
*%9~:s'
%r#p((
%r"$p((
%rD$p((
%rb$p((
%rz$p((
%r$p((
%r$p((
%r$p((
%r$p((
%r$p	((
%r%p
((
~()
9E)Ea}8r %poN
*rL%poN
*r~%poN
*r%poN
|-+*r%poN
|-+*r%poN
|-+*r%poN
r
&poN
(F*r&&poN
*rH&poN
rd&poN
(F*r&poN
*rpoN
**l0(H*0|s()
()a
	r&p	(	r&p	(	r&p	(4
((o
oA
1o
oH
r'poN
**(H*0t(&
o&
s*(*(#}}~I
}*
*0Fu#{3.r'p((
o
oH
oB
}{*0au{(
,Mr'p((
o
oH
oB
ta}{{oJ
YoZ
}{*{-"((o
	/(w+(v{*0v{-z{-r()
(#(
(r
	'(	(;
(
(roJ
1((o
oH
}&}{**]v.>}}*0@r7(p(,r7(prW(por(p(,r(pr(por(p(,r(pr)porM)p(,rM)prk)por)p(,r)pr)por)p(,r)pr	*porG*p(,rG*pra*por*p(,r*pr*por*p(,r*pr!+pora+p(,ra+pr)pors+p(,rs+pr+po*05s
(ur+p(-
r+p(,r+pr+por+p(,r,pr,por+p(,r,pr,por-p(-
r-p(,r-pr-por-p(,r/pr>/porb/p(,rb/prx/por0p(,r0pr!0por-p(-r-p(-
r+p(,r0por1p(,r1pr	2por2p(,r2pr2por3p(,r3pr3porT5p(,((	,rT5prt5po(xo}*0(ws
(ur+p(-
r+p(,r+pr[6por+p(,r,pr6por+p(,r,pr7por-p(-
r-p(,r-pr:8por-p(,r/pry9por0p(,r0pr+por1p(,r1pr:po((o
2o
 2(xo}*0mxr:p(,_r:po((
o
	/
ro;po+r;pory=por:pr>por>po*0y((
(s-rT5p(*
,~]
8%
9~:#s'
%r+p((
%r+p((
%r-p((
%r-p((
%rs+p((
%rb/p((
%ra+p((
%r0p((
%r)p((
%rG*p	((
%r(p
((
%rM)p((
%r7(p((
%r)p
((
%r(p((
%r*p((
%r*p((
%r1p((
%r3p((
%r:p((
%r2p((
%rT5p((
~	()
9rE=%%%%%%%%%%%%%%9^8#($-o
	/?(sr+poN
(sr,poN
Y(pZX+>(sr+poN
(sr,poN
lY(pZX#AY#8D#(sr,poN
u,(sr,poN
(sr+poN
X(pZ#@[8o
	/)(sr-poN
(pZ8(sr-poN
l(pZ8yo
	/@(sr/poN
(sr-poN
Y(pZ8/(sr/poN
(sr-poN
Yl(pZ8(soN
8o

?(sr3poN
8o
?o
 ?(sr:poN
8o

2w(sr2poN
+bo
	/($,*ta(z+=((	,(srT5poN
($,~I
*ta(z*0%,oJ
-~I
*~I

(p

&*	 
*>}}*0yz()
((o
2r>p+o
	2rAp+rCp(#(

	((o
oH
}
&}*A-n
.($,-{-{-(}{,{oN
*(*0{('
,*{-rFp((}%9f~-as'
%rNp((
%rNp((
%rNp((
%rNp((
%r4Op((
%rlOp((
%rOp((
~()
9	E#A\w8{o
oH
oB
8{o
oH
oB
8{o
oH
oB
+j{o
oH
oB
+O{o
oH
oB
+4{o
oH
oB
+{o
oH
oB
*(*0}|
()('-5(
rOp
	(	|	(;
((
o
oA
1!o
oH
r;RpoN
**(*rORp(
,(('*reRp(
,((	**(*:}(*
*0A%
,:rRp(
-rRp(
-+(|+(m*^{/({*^{/({*n(&,(&*j*0)}j
}(
(}i}*0d~L
L j1U j[ljULl4%LjXUL j1. j[lijULl4%LjXUL j1jU****:}(*
*0o{,(}}%
,KrRp(
-rRp(
-rRp(
-	+"{*{(
,|*|**0()}(
rSp{(;

s
o
&(rgSp(&~I

4&~I

+o
oA
-~I
*o
oH
oB
o&
*	*@T	.@]	"}*:}(*
*0R{,(}%
,4ruSp(
-rSp(
-+{*{**"}*0(
rSp()'((;
sq

((	-rSpor
&+rXpor
&(
o&

	(&	()	('|	(;
((o
oH
ruSpoN
(
(s
}o
oH
rSpoN
(
(s
}*r(
(((*{*"}*{*"}*{	*"}	*V(
}
}*{
*"}
*{*"}*0It
(o1*(o/*(o3*(o0**(
*(
}
}}}}}*0D(
}
}}}}}}}*{
*"}
*{*"}*{*"}*{*"}*{*"}*{*"}*00u
-st
z{-{
{
(*
+{{
{
ou
,*{-{{(*
+{{{ou
,*{{/*{{1*{{3
{,*{-0{{(*
,*{{(*
,<*{{{ou
,*{{{ou
,**J(
sT
}*{*"}*0K~{:1~sT
}~{|r pr pso
~{|r pr pso
~{|r!pr!pso
~{|r pr pso
~{|r pr pso
~{|r!pr!pso
~{|rz!pry^pso
~{|r\ pr\ pso
~{|r"!pr"!pso
~{e|rperpso
~{f|r4 pfr4 pso
~{g|r pgr pso
~{ |rp rpso
~{ |r^p r^pso
~{ |r^p r^pso
~{h|r^phr^pso
~{ |r_p r_pso
~{ |r%_p r%_pso
~{ |r;_p r;_pso
~{
|r2!p
r2!pso
~{*0L%
9~:	s'
%r p((
%r p((
%r!p((
%r p((
%r p((
%r!p((
%rz!p((
%r\ p((
%r"!p((
%rp	((
%r4 p
((
%r p((
%rp((
%r^p
((
%r^p((
%r^p((
%r_p((
%r%_p((
%r;_p((
%r2!p((
~	()
9E
%+14:@F+G*********e*f*g* * * *h* * * *
*sH

(ov
oK
+.o
t%X1r&poK
&ooK
&o
-u,o
o&
(s
z;%0(w
,(gsx
z}{(}((s
o
s
oy
rpoz
}oy
rpoz
}{-+oy
o
(&oy
({
(s
z{(}rO_p(}s
(-{(o
&{o

2r]_po
&+r`po
&rapo
&j
sH
 oy
8o
o
r p(
,o
o
r3ap(
,rAap({o

?rz!p(.Fr^p(.8r^p(.*rp(.r%_p(.r;_p(3$arprpo
++arprpr-po
o
t		oorz!p(.Fr^p(.8r^p(.*rp(.r%_p(.r;_p(3	oreapo	orpo	o(
(
o	oroapo	ooK
&
({
(
s|
zrpo
o}
,doJ
1ZrapoK
&(
( 
&oK
&r}poK
&(
oK
&repoK
&o~
&8arpo
o
tooo(
(
ooroapoooK
&
({
(
s|
z	jX
	j1j	j]3o&
o
&o
Xi?	j1j	j].o&
o
&rapo
&~I
(,	rbp+]{o
0	rAbp+F{o
	3	rkbp+.{o

3	rbp+{o
2rbp(
rbpo
-+|(;
(
(
s
o
(
o
o
&(,{(+	(((-r|cp(*
0$(
rp
'((;
*0AL-*sH


+ 	o'
o*
&3o*
&	X
	oJ
2o&
*0(

sH
{o
1rcp(o
&+rdp(o
&o&
{(o
oA
,-o
oH
oB
ta
	r#epo4
,(

+(

*Z(|o
t*0~s

s
Щ(
{o

?@o
o\
8o
t5
	({o
t-?	(({
s
(R
o
{o
o
&	r-epoN
o
	(o,f{o
t,o
o
&+=s
	(o
{o
o
&o
o
&o
:u,o
o
8o
o\
8o
t5		(
{
o
t-F
o	(({
s
(R
o
{
o
o
&	rGepoN
oP
.L	(
{
o
t

,o

o
&+o

o
&o
&o
:u,o
(*A46Iv`0a-
r_epoN
+rGepoN
|
-
rsepoN
+repoN
s
((s|
z	*LL0	-
repoN
+repoN
ta
-
repoN
+repoN
ta-
rfpoN
+r#fpoN
ta-
r?fpoN
+r[fpoN
ta
-
rGepoN
+r_epoN
|-
repoN
+rsepoN
	{{s((s|
z*0sH

o
o
o\
+to
t~o
oK
&rapoK
&o
oN
oP
o
&repoK
&r7poK
&o
oN
o
&rsfpoK
&o
-u
	,	o
o&
*0wo

+O	o
t
+1o
o2
u,o
{o
o
Xo
o
2	o
-	u,o
*[b0o(
s
ar	po
o
{,](
rwfp{(
{(
oo|(;
(R
o
+L(
rfp{(
oo|(;
(R
o
s
{o
(

	o
oH
oB
ta(R
*0(
{,:(
r9gp{(
{(
(;
+)(
rgp{(
(;
rz!po(
9(
rgprepoN
(or?fpoN
ta(
rfpoN
ta(
r[fpoN
ta(
(;
(
(R

Щ(
r#fpoN
oP
3L(
r;hpor[fpoN
ta(
(;
(
(R

x(
r]hpor[fpoN
ta(
r#fpoN
ta(
(;
(
((s|
z(R
*	*Atp0
-repoN
ta+repoN
ta-repoN
ta+repoN
ta-rfpoN
ta+r#fpoN
ta
-r?fpoN
ta+r[fpoN
ta-repoN
+rsepoN
(~I
(
,&(
rhp(
(;

+I{,+(
rhp

{(

(;

+(
rhp(;

~I
(
,,(
rhp(
(;
(

+/(
rhp{(
(;
(

rz!po(
9ripoN
taripoN
tar'ipoN
|	(
rgp	(o(
(
(
(;
(

(R
ݫ~I
	(
,@(
r;hpo(
(;
(

(R
^(
r]hpo(
	(
(;
(


((
s|
z(R
**A90#(
rp
]((;
*.s*03(
s
}oW
{o]o
&o!-*{*(
*0
oJ
-	`
8_o]
9
	
+	
%,kr3ip(
-Hr9ip(
->r?ip(
-4rEip(
-+rKip(
-"rSip(
-++
+
++
X

	i?v, @
+-`
	-`
-`
-`
*0t
or]ipo(
&rip(
rjp(
-(^s
zo(
r(jp
		(;
o-or\jpo+)o(
rjp(;
o(
(*(*>(
(*>(
(*0r}'}!})o}"{'3oo
}#+{"}#oo(o(*0}{|)o}!{'@+]({ o

++{#-~]
o
+{#o
X{#i2{ o
o
(-{)o
})Q}#{),{)o
{)o
}){!o
}!{o}*+{Q0{"}$}%,o
+}&
{&,>(z
s{

{"+!o2
to|o
Xo
2o
8o
t
	o(	o
(
,t	o
(
*rjp	o
rkp(
(
&z{$}.{$	o((
}/}%{&,I	oo
t,2{$	o
}-{$}0o X%{"/o
:u		,	o
*AL"r*r
0s
} { (
o

o

8	o
to
o
, o
r<kpo
,rp+rMprkp(*
-'{ o
o'(
s
o
+"{ o
o(
s
o
{'-
X%
{"/	o
:N	u,o
*${'3{ o
{(oH
oB
*{!o
*{'3{ o
{(oH
oB
*{#*{'3{ o
{(oH
o
*{#*0h{!o

,W{!{#o
&C&+1{#{!o
&{#{!o
X{#i2*(>#C0{&-*
+O{${0,8{${0{${-(o*(X
{"2+-{${0,{${0o+X{"2*0{%-*
8{${.9{#u:{${.o
,+{#{${.{#(
8w{#u,A{${.o
,){#{${.(
o
8%>{${/{${. o

	,){#	{#o
8a(
{${/@{${. >o

	,u	o
,c{${.r&lp>a(
o
,*		{#	o
&{#X
{"?*6((*2{!o
*2{!o
*
*0U} {!,+{!o
-{),{)o
{!o
{,{o}*0Du{!o

+o
o
oA
Yo
{"2o
oA
{"0*
*0(
,(*0s{ o
oA

}(+(%{(X}({(2{ o
oA
Y+{ o
o
Y{"/{ *F{ o
oA
*{ ,{ o
{),{)o
{!,{!o
*{"*{"1{"1{!o
X*&{#*N{!o
(*6(*6(*0,(t
i1i+jj(
j*6(*0,(t
i1i+jj(
j*
*Z({!o
*6(<*6(=*6(*((o
o
o
*6(*6(?*6(*6(|*6(*Z({!o
*N{!o
(*6(ta*"(*0Dbi
{"2+{"+(X2
+		X
	{"2*Z({!o
*(
*0r2lpErFlpFrZlpGrlp~Gr3mp(
Hr=mpIr_mpJrmpKrmpLrmpMarInp~Ernp~Hrnp(4
NrnpOrnpPropQreopRropSropTsU~HVropWropXr#ppYr9ppZrUpp[a
	~H	ropp	~E	ropp	~I	ropp	~J	ropp	~K		ropp	
~F	ropp	~N	
ropp	~S	ropp	~T	ropp	~M	ropp	~O	ropp	~Q	ropp	~P	ropp	~R	ropp	~L	rspp	(4

~UsU
}Aa~Vropp~Wropp~Xropp~Yropp~Z	ropp
~[(4
~UDsU
}B*0FPo[
Q8PoW
rppoX
oY
,vr
pPoW
rppoX
oZ
](r
p(
}7PoW
rppoX
o
}3{3PoW
rppoX
o
X}482PoW
rppoX
oY
,`PoW
rppoX
oZ
}7PoW
rppoX
o
}3{3PoW
rppoX
o
X}48PoW
rppoX
oY
9-*PoW
rppoX
oZ
}7PoW
rppoX
o
}3{3PoW
rppoX
o
X}4
r
p{7""(r
p(
}7+Po[
QPoY
:@PoY
,`Po[
QPoW
rqpoX
oY
,?PoW
rqpoX
oZ
}9{4PoW
rqpoX
o
X}4{7oJ
*0(-*PoW
r/qpoX
oY
9{7}6~I
}7{3
~I
}9(-*}3PoW
r/qpoX
oY
,A{6}8{7}6~I
}7~I
}9(-*}3*0r}2}4}3rBp}7rBp}5rBp}9rBp}6}1};}:rBp}=rBp}<~U{AoV

8oW
rppoX
oY
9r7qpoW
rppoX
oZ
(*
-oW
rppoX
o
}2+ZrEqpoW
rppoX
oZ
(*
-$}1oW
rppoX
o
}2+*o[

oY
:Mo[

+;oW
rppoX
oY
,oW
rppoX
oZ
}5+o[

oY
-(,rQqp{5(*
,D*oW
rppoX
oY
,$raqpoW
rppoX
oZ
(*
,*o[

oY
-}3}4rBp}6rBp}7({3}:{4};{6}<{7}={8}>*0
~U}?~U}@
~U{AoV
81AoW
rgqpoX
oY
,Y
+oW
rqpoX
oY
,X
=7oW
rqpoX
oY
,-o
o
X*8oW
rqpoX
oY
,o
*oW
rqpoX
oY
,8oW
rqpoX
oY
,X
~U}?8oW
rqpoX
oY
,+~,<oW
rpoX
oY
,$~UoW
rpoX
oZ
}@+?oW
rqpoX
oY
,
+#	, oW
rqpoX
oY
,o
*o[
oY
:o*0arqprrprrp

~U{BoV
8-/oW
rrpoX
oY
,-A1=oW
rppoX
oY
,%%XoZ
(*
,3o

oW
r+rpoX
oY
,oW
r9rpoX
oY
,,*3	*o[
oY
:@,*3	**(
*0
 ot
%9~:+>s'
%rArp((
%rGrp((
%rQrp((
%r[rp((
%rerp((
%rorp((
%ryrp((
%rrp((
%rrp((
%rrp	((
%rrp
((
%rrp((
%rrp((
%rrp
((
%rrp((
%rrp((
%rrp((
%rrp((
%rrp((
%rrp((
%rp((
%r.p((
%rsp((
%rsp((
%rsp((
%rsp((
%r!sp((
%r+sp((
%r5sp((
%r?sp((
%rp((
%r$p((
%rIsp ((
%rp!((
%rSsp"((
%r]sp#((
%r
p$((
%rgsp%((
%rqsp&((
%r{sp'((
%r8p(((
%rsp)((
%rsp*((
%rsp+((
%rsp,((
%rsp-((
%rsp.((
%rp/((
%rsp0((
%rp1((
%rsp2((
%rp3((
%rp4((
%rp5((
%rp6((
%rp7((
%rsp8((
%rsp9((
%rsp:((
%rp;((
%rsp<((
%rsp=((
~()
9	E>!(07>ELT\dlt|!&+05:?DINSX]bglqv{8
8
8
8
8{
8t=
8l
8e
8^
8W
8P	
8H

8@
88
80
8(
8 
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8 
8!
8"
8#
+{$
+v%
+q&
+l'
+g(
+b)
+]*
+X+
+S,
+N-
+I.
+D/
+?0
+:1
+52
+03
++4
+&5
+!6
+7
+8
+9
+
:
+;
+<
*0
 ot
%9~:s'
%rArp((
%rsp((
%rsp((
%rp((
%rp((
%rsp((
%rp((
%rtp((
%rp((
%rp	((
%rp
((
%rsp((
%rp((
%rsp
((
%rtp((
%rtp((
~()
9	E
"&+05:?D+E
+A
+=
+9
+5
+1
+-
+)
+%
+!	
+

+
+
+

+
+
*0
 ot
%9~:s'
%rtp((
%r)tp((
%r3tp((
%r=tp((
%rGtp((
%rQtp((
%r[tp((
%retp((
%rotp((
%rytp	((
%rtp
((
%rtp((
%rrp((
%rsp
((
%rtp((
%rp((
%rtp((
%rtp((
%rtp((
%rtp((
%rtp((
%rtp((
%rtp((
%rtp((
%rtp((
%rtp((
%rtp((
%rup((
%rup((
%rup((
%r%up((
~()
9#	E!%)-15:?DINSX]bglqv{8
8
8
8
8
+|
+x
+t
+p
+l	
+g

+b
+]
+X
+S
+N
+I
+D
+?
+:
+5
+0
++
+&
+!
+
+
+
+

+
+
*(
*0(t
-s
o*(*J(s
}*0 
*0l(t
{o
+5o
t(}
o
(~
ozo
too
-u
	,	o
*AY0?5o
ooooojoojoo
&*0sH

t({o

+!	o
tr/upoK
&(	o
-	u,o
(jo(jo(*"-O0D({o
+o
t
o
o
-u,o
*20F({o
+o
t
o
o
-u,o
* 40;o&&(+s
o{o
&o&-*{*"}*b(
os
}*N(
o}*:{o
*6{o
*0:,{{o
&*{o
tA
{o
o
&*01
+"{o
,{o
-*X
o2*0M-*{o
tA
{o
+o
{o
.*Xo2*:(}*0c{:s

(o=
oQ
r?up(
(R
o
o
o
arprMupo
#rpsS
o
((
(
}{*~(%,~]
*()o#*
*"}*(!*0("
o
rp("1~]
*so
oH
rMupoN
o&
()
	oeoX%o
oA
/#o
oH
rpoN
o&
(
-*0n%
9~: s'
%rwup((
%rup((
%rup((
%rup((
%rvp((
%r7vp((
%ravp((
%rvp((
%rvp((
%rvp	((
%r1wp
((
%rmwp((
%rwp((
%rwp
((
%rwp((
%r%xp((
%rCxp((
%r[xp((
%r}xp((
%rxp((
%rxp((
%ryp((
%r%yp((
%rEyp((
%r]yp((
%ryp((
%ryp((
%ryp((
%ryp((
%rzp((
%r3zp((
%rOzp((
%rwzp ((
%rzp!((
%rzp"((
%rzp#((
%rzp$((
%r{p%((
%r){p&((
%r={p'((
%rm{p(((
%r{p)((
%r{p*((
%r{p+((
%r
|p,((
%r-|p-((
%ru|p.((
%r|p/((
%r|p0((
%r}p1((
%r7}p2((
%rg}p3((
%r}p4((
%r}p5((
%r}p6((
%r}p7((
%r#~p8((
%rK~p9((
%r~p:((
%r~p;((
%r~p<((
%r~p=((
%rp>((
%rKp?((
%rcp@((
%r}pA((
%rpB((
%rpC((
%rpD((
%r	pE((
%r'pF((
%rQpG((
%rupH((
%rpI((
%rpJ((
%r׀pK((
%rpL((
%r
pM((
%r%pN((
%r=pO((
%r_pP((
%rpQ((
%rpR((
%rpS((
%rpT((
%r%pU((
%rOpV((
%rqpW((
%rpX((
%rтpY((
%rpZ((
%r%p[((
%rUp\((
%rp]((
%rp^((
%r׃p_((
%rp`((
%r!pa((
%r7pb((
%rWpc((
%r{pd((
%rpe((
%rׄpf((
%rpg((
%rph((
%r+pi((
%rcpj((
%rwpk((
%rpl((
%rpm((
%rÅpn((
%rۅpo((
%rpp((
%r+pq((
%rEpr((
%rcps((
%rpt((
%rpu((
%rpv((
%rpw((
%rpx((
%r-py((
%rApz((
%rUp{((
%rip|((
%rp}((
%rp~((
%rˇp((
%rp ((
%r	p ((
%r!p ((
~()
9)E#)/5;AGMSY_ekqw}
%+17=CIOU[agmsy	!'-39?EKQW]ciou{8(l*(m*(n*(o*(p*(q*(r*(s*(t*(u*(v*(w*(x*(y*(z*({*(|*(}*(~*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(!*0("
o
rp("1~]
*so
oH
rMupoN
o&
(,
	ooX%o
oA
/#o
oH
rpoN
o&
(
-*0
n%
9~:h
 s'
%rwup((
%rEp((
%rup((
%rup((
%rup((
%rvp((
%r7vp((
%ravp((
%rsp((
%rp	((
%rvp
((
%rvp((
%rۈp((
%rp
((
%r7p((
%rvp((
%r1wp((
%rUp((
%rsp((
%rmwp((
%rwp((
%rwp((
%rwp((
%r%xp((
%rCxp((
%rp((
%rp((
%rp((
%r[xp((
%rp((
%r}xp((
%rxp((
%rxp ((
%ryp!((
%r%yp"((
%rEyp#((
%rp$((
%r]yp%((
%r=p&((
%r{p'((
%ryp(((
%ryp)((
%ryp*((
%ryp+((
%rzp,((
%rp-((
%rɊp.((
%rp/((
%r3zp0((
%r/p1((
%rOzp2((
%rwzp3((
%rzp4((
%rzp5((
%rzp6((
%rap7((
%rzp8((
%r{p9((
%r){p:((
%r={p;((
%rm{p<((
%r{p=((
%rp>((
%r{p?((
%r{p@((
%r
|pA((
%rpB((
%rpC((
%rpD((
%r-|pE((
%ru|pF((
%r|pG((
%r?pH((
%r|pI((
%r_pJ((
%rpK((
%r}pL((
%r7}pM((
%rg}pN((
%r}pO((
%r}pP((
%r}pQ((
%rpR((
%rpS((
%rpT((
%r}pU((
%r7pV((
%r#~pW((
%rK~pX((
%r~pY((
%r~pZ((
%r~p[((
%r~p\((
%rUp]((
%rp^((
%rp_((
%rKp`((
%rcpa((
%r}pb((
%rpc((
%rpd((
%rpe((
%rpf((
%rэpg((
%rph((
%r	pi((
%r'pj((
%rQpk((
%rupl((
%rpm((
%rpn((
%r׀po((
%rpp((
%r
pq((
%r%pr((
%r;ps((
%r=pt((
%r_pu((
%rpv((
%rgpw((
%rpx((
%rpy((
%rpz((
%rp{((
%r%p|((
%rOp}((
%rqp~((
%rp((
%rώp ((
%rp ((
%rp ((
%rтp ((
%rp ((
%r#p ((
%r%p ((
%r?p ((
%rep ((
%rUp ((
%rp ((
%rp ((
%r׃p ((
%rp ((
%r!p ((
%rp ((
%rp ((
%rp ((
%r7p ((
%rp ((
%rWp ((
%r{p ((
%rp ((
%rׄp ((
%rp ((
%rp ((
%rp ((
%r+p ((
%rCp ((
%rcp ((
%rwp ((
%rp ((
%rp ((
%rÅp ((
%rۅp ((
%rp ((
%rip ((
%rp ((
%r͐p ((
%rp ((
%r+p ((
%rEp ((
%rcp ((
%rp ((
%rp ((
%rp ((
%rp ((
%rp ((
%r-p ((
%rAp ((
%rUp ((
%rp ((
%rip ((
%rp ((
%rGp ((
%rap ((
%rp ((
%rˇp ((
%rmp ((
%rp ((
%r	p ((
%r!p ((
~()
9wE#)/5;AGMSY_ekqw}
%+17=CIOU[agmsy	!'-39?EKQW]ciou{#)/5;AGMSY_ekqw}
%+17=CIOU[agms8t(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(	*(
*(*(*(
*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *(!*("*(#*($*(%*(&*('*((*()*(**(+*(,*(-*(.*(/*(0*(1*(2*(3*(4*(5*(6*(7*(8*(9*(:*(;*(<*(=*(>*(?*(@*(A*(B*(C*(D*(E*(F*(G*(H*(I*(J*(K*(L*(M*(N*(O*(P*(Q*(R*(S*(T*(U*(V*(W*(X*(Y*(Z*([*(\*(]*(^*(_*(`*(a*(b*(c*(d*(e*(f*(g*(h*(i*(j*(k*(l*(m*(n*(o*(p*(q*(r*(s*(t*(u*(v*(w*(x*(y*(z*({*(|*(}*(~*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(3*0-(y
s5

rpo6
rpo7
o9
o
(
s5

rpo6
rpo7
o9
o
(
s5

rpo6
rpo7
o9
o
(
s5

rpo6
rpo7
o9
o
(
s5

rpo6
rpo7
o9
o
(
s5

rÑpo6
rpo7
o9
o
(
*0
 
*0(
o

s
(
o
(}
o
+-(

o
	o
(
o
&Xi2rp(
(
rÑpo
u,o
-+
o
3o
o\
8o
t5rӑpoN
o&
		,	oJ
1rp	(
,	rpoN
o&
	-rBp+rp	(
(

,
(*
:\rpoN
o&
(
(*
,	@.o
(}
o
8

%9rp(
-KrÑp(
-Jrp(
-Nrp(
-Wrp(
-Vrp(
-y8

o
+|
o
+j
rpoN
o
+S
	o
+F
rprpoN
o&
(
-+o
+
rpoN
o
Xi?o
o
o
:u,o
s
*A('('('('(1*.+.+.+.+s
*(*0s

()(
,*s
o
o
o

	,^	o
o
+/o
to
o
,o
o
&o
-u,o
*C<(*:(
}*0{(
-{
*>(
}*ba(
3*(
*0(

,
o
8o
(+
-o
(
n(
o
+2t
	o
(+
-o
(
(Xi2Xi?t(
**0(ua
(
-{(9*(
*0ko
+R
o
(
,8(
o
+to

i2+Xi2*	*a(
3o&
{(;*(
*FГ(
(7*FT(
(7*F(
(7*FI(
(7*Fs(
(7*Fu(
(7*Fv(
(7*Fw(
(7*Fx(
(7*Fy(
(7*F{(
(7*Fz(
(7*F~(
(7*F(
(7*F
(
(7*FЀ(
(7*F}(
(7*FЁ(
(7*Ft(
(7*FЂ(
(7*FЃ(
(7*FЄ(
(7*FЅ(
(7*FІ(
(7*FЇ(
(7*(
*(*(*.r%p(*.rKp(*.rp(*.rp(*.rےp(*.rp(*.r9p(*.rYp(*.ryp(*.rp(*.rÓp(*.rۓp(*.r	p(*.r)p(*.rIp(*.rsp(*.rp(*.rp(*.rӔp(*.rݔp(*.rp(*.rp(*.rUp(*.rep(*.rsp(*.rp(*.rp(*.rp(*.rp(*.rϕp(*.rp(*.rp(*.r%p(*.rIp(*.rgp(*.rp(*.rɖp(*.rp(*.rp(*.rCp(*.r[p(*.rqp(*.rp(*.rp(*.rŗp(*.rp(*.rp(*.r#p(*.rGp(*.rip(*.rp(*.rp(*.rp(*.r՘p(*.rp(*.rp(*.rCp(*.rYp(*.rmp(*.rp(*.rp(*.rp(*.rp(*.r-p(*.rYp(*.ryp(*.rp(*.rp(*.r˚p(*.rp(*.rp(*.r'p(*.rMp(*.rap(*.rwp(*.rp(*.rp(*.r?p(*.rqp(*.rp(*.rp(*.rp(*.rp(*.rIp(*.rwp(*.rp(*.rp(*.rŝp(*.rp(*.rCp(*.rmp(*.rp(*.rp(*.rϞp(*.rp(*.rp(*.rGp(*.rop(*.rp(*.rǟp(*.rp(*.rp(*.rAp(*.r[p(*.rp(*.rp(*.rp(*.rՠp(*.rp(*.r=p(*.rsp(*.rp(*.rӡp(*.rp(*.rp(*.r)p(*2rAp(*6rip(*2rp(*2rۢp(*2rp(*6r)p(*2rQp(*2r{p(*6rp(*2rǣp(*2rߣp(*2rp(*2rp(*2r=p(*2rp(*(
*~U*U*F~T~Uo
*0'(
~T~Uo

(;
*0+(
~T~Uo

(;
*(
o
(
o
o
s
TU*:(
}*{*s*0s
o*"(*0s
o*"(*F{o&
*s*s*s*s*s*s*s*s*s*"	s*"
s*"s*"s*"
s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*"s*" s*"!s*""s*"#s*"$s*"%s*"&s*"'s*"(s*")s*"*s*"+s*",s*"-s*".s*"/s*"0s*"1s*"2s*"3s*"4s*"5s*"6s*"7s*"8s*"9s*":s*";s*"<s*"=s*">s*"?s*"@s*"As*"Bs*"Cs*"Ds*"Es*"Fs*"Gs*"Hs*"Is*"Js*"Ks*"Ls*"Ms*"Ns*"Os*"Ps*"Qs*"Rs*"Ss*"Ts*"Us*"Vs*"Ws*"Xs*"Ys*"Zs*"[s*"\s*"]s*"^s*"_s*"`s*"as*"bs*"cs*"ds*"es*"fs*"gs*"hs*"is*"js*"ks*"ls*"ms*"ns*"os*"ps*"qs*"rs*"ss*"ts*"us*"vs*"ws*"xs*"ys*"zs*"{s*"|s*"}s*"~s*"s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*. s*(*"(*:((*03(os
(+
(Xi2*b(o
tA(*2(s*N(oo
*N(oo
*&(*&(*0s
o*"(*0s
o*"(* *0sH

(P
o
rǤp(
oK
&(o
+9o

	,%,+r&poK
&o&
oK
&Xo
-u,o
o&
*3Fy{*"}*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*:(	o
*>(	o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:( o
*>( o
*:(!o
*>(!o
*:("o
*>("o
*:(#o
*>(#o
*:($o
*>($o
*:(%o
*>(%o
*:(&o
*>(&o
*:('o
*>('o
*:((o
*>((o
*:()o
*>()o
*:(*o
*>(*o
*:(+o
*>(+o
*:(,o
*>(,o
*:(-o
*>(-o
*:(.o
*>(.o
*:(/o
*>(/o
*:(0o
*>(0o
*:(1o
*>(1o
*:(2o
*>(2o
*:(3o
*>(3o
*:(4o
*>(4o
*:(5o
*>(5o
*:(6o
*>(6o
*:(7o
*>(7o
*:(8o
*>(8o
*:(9o
*>(9o
*:(:o
*>(:o
*:(;o
*>(;o
*:(<o
*>(<o
*:(=o
*>(=o
*:(>o
*>(>o
*:(?o
*>(?o
*:(@o
*>(@o
*:(Ao
*>(Ao
*:(Bo
*>(Bo
*:(Co
*>(Co
*:(Do
*>(Do
*:(Eo
*>(Eo
*:(Fo
*>(Fo
*:(Go
*>(Go
*:(Ho
*>(Ho
*:(Io
*>(Io
*:(Jo
*>(Jo
*:(Ko
*>(Ko
*:(Lo
*>(Lo
*:(Mo
*>(Mo
*:(No
*>(No
*:(Oo
*>(Oo
*:(Po
*>(Po
*:(Qo
*>(Qo
*:(Ro
*>(Ro
*:(So
*>(So
*:(To
*>(To
*:(Uo
*>(Uo
*:(Vo
*>(Vo
*:(Wo
*>(Wo
*:(Xo
*>(Xo
*:(Yo
*>(Yo
*:(Zo
*>(Zo
*:([o
*>([o
*:(\o
*>(\o
*:(]o
*>(]o
*:(^o
*>(^o
*:(_o
*>(_o
*:(`o
*>(`o
*:(ao
*>(ao
*:(bo
*>(bo
*:(co
*>(co
*:(do
*>(do
*:(eo
*>(eo
*:(fo
*>(fo
*:(go
*>(go
*:(ho
*>(ho
*:(io
*>(io
*:(jo
*>(jo
*:(ko
*>(ko
*:(lo
*>(lo
*:(mo
*>(mo
*:(no
*>(no
*:(oo
*>(oo
*:(po
*>(po
*:(qo
*>(qo
*:(ro
*>(ro
*:(so
*>(so
*:(to
*>(to
*:(uo
*>(uo
*:(vo
*>(vo
*:(wo
*>(wo
*:(xo
*>(xo
*:(yo
*>(yo
*:(zo
*>(zo
*:({o
*>({o
*:(|o
*>(|o
*:(}o
*>(}o
*:(~o
*>(~o
*:(o
*>(o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*0(s
()((fs(-((js(.((ks
	(/	(	(l	s(3((ps(5((rs(6(ss((b(s(>({((=(zs 		(>	({	s!

(?
(
(|
s"((A(~s#((H(s$

(J
(
(
(^
("
(
(
s%(^("(s&(J((s'(Q((s((R((s):(3((p(/((l(?((|	(
(b((
(-((j(.((k((Q(((R(((((S(((6 (s!(>"({#($(=%(z&('(A((~)(*(H+(,(5-(.(r/(J0(1(2(^3("4(5(6()7(8(f9(s*(?((|((b(((-(	(j
(.((k
((Q(((R(((((S((s+(s,*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~ (*R~ (}*2~!(*R~!(}*2~"(*R~"(}*2~#(*R~#(}*2~$(*R~$(}*2~%(*R~%(}*2~&(*R~&(}*2~'(*R~'(}*2~((*R~((}*2~)(*R~)(}*2~*(*R~*(}*2~+(*R~+(}*2~,(*R~,(}*:(
}*{*s*0s
o*"(g*0s
o*"(i*F{o&
*sd*sd*sd*sd*sd*sd*sd*sd*sd*"	sd*"
sd*"sd*"sd*"
sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*"sd*" sd*"!sd*""sd*"#sd*"$sd*"%sd*"&sd*"'sd*"(sd*")sd*"*sd*"+sd*",sd*"-sd*".sd*"/sd*"0sd*"1sd*"2sd*"3sd*"4sd*"5sd*"6sd*"7sd*"8sd*"9sd*":sd*";sd*"<sd*"=sd*">sd*"?sd*"@sd*"Asd*"Bsd*"Csd*"Dsd*"Esd*"Fsd*"Gsd*"Hsd*"Isd*"Jsd*"Ksd*"Lsd*"Msd*"Nsd*"Osd*"Psd*"Qsd*"Rsd*"Ssd*"Tsd*"Usd*"Vsd*"Wsd*"Xsd*"Ysd*"Zsd*"[sd*"\sd*"]sd*"^sd*"_sd*"`sd*"asd*"bsd*"csd*"dsd*"esd*"fsd*"gsd*"hsd*"isd*"jsd*"ksd*"lsd*"msd*"nsd*"osd*"psd*"qsd*"rsd*"ssd*"tsd*"usd*"vsd*"wsd*"xsd*"ysd*"zsd*"{sd*"|sd*"}sd*"~sd*"sd*. sd*. sd*. sd*(*"(*:((*03(os
(+
(Xi2*b(o
tA(*2(s*N(oeo
*N(oeo
*&(*&(*0s
o*"(*0s
o*"(* *0sH

(P
o
rǤp(
oK
&(o
+9o

	,%,+r&poK
&o&
oK
&Xo
-u,o
o&
*3Fy{*"}*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*6(o
*:(o
*:(	o
*>(	o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(
o
*>(
o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:(o
*>(o
*:( o
*>( o
*:(!o
*>(!o
*:("o
*>("o
*:(#o
*>(#o
*:($o
*>($o
*:(%o
*>(%o
*:(&o
*>(&o
*:('o
*>('o
*:((o
*>((o
*:()o
*>()o
*:(*o
*>(*o
*:(+o
*>(+o
*:(,o
*>(,o
*:(-o
*>(-o
*:(.o
*>(.o
*:(/o
*>(/o
*:(0o
*>(0o
*:(1o
*>(1o
*:(2o
*>(2o
*:(3o
*>(3o
*:(4o
*>(4o
*:(5o
*>(5o
*:(6o
*>(6o
*:(7o
*>(7o
*:(8o
*>(8o
*:(9o
*>(9o
*:(:o
*>(:o
*:(;o
*>(;o
*:(<o
*>(<o
*:(=o
*>(=o
*:(>o
*>(>o
*:(?o
*>(?o
*:(@o
*>(@o
*:(Ao
*>(Ao
*:(Bo
*>(Bo
*:(Co
*>(Co
*:(Do
*>(Do
*:(Eo
*>(Eo
*:(Fo
*>(Fo
*:(Go
*>(Go
*:(Ho
*>(Ho
*:(Io
*>(Io
*:(Jo
*>(Jo
*:(Ko
*>(Ko
*:(Lo
*>(Lo
*:(Mo
*>(Mo
*:(No
*>(No
*:(Oo
*>(Oo
*:(Po
*>(Po
*:(Qo
*>(Qo
*:(Ro
*>(Ro
*:(So
*>(So
*:(To
*>(To
*:(Uo
*>(Uo
*:(Vo
*>(Vo
*:(Wo
*>(Wo
*:(Xo
*>(Xo
*:(Yo
*>(Yo
*:(Zo
*>(Zo
*:([o
*>([o
*:(\o
*>(\o
*:(]o
*>(]o
*:(^o
*>(^o
*:(_o
*>(_o
*:(`o
*>(`o
*:(ao
*>(ao
*:(bo
*>(bo
*:(co
*>(co
*:(do
*>(do
*:(eo
*>(eo
*:(fo
*>(fo
*:(go
*>(go
*:(ho
*>(ho
*:(io
*>(io
*:(jo
*>(jo
*:(ko
*>(ko
*:(lo
*>(lo
*:(mo
*>(mo
*:(no
*>(no
*:(oo
*>(oo
*:(po
*>(po
*:(qo
*>(qo
*:(ro
*>(ro
*:(so
*>(so
*:(to
*>(to
*:(uo
*>(uo
*:(vo
*>(vo
*:(wo
*>(wo
*:(xo
*>(xo
*:(yo
*>(yo
*:(zo
*>(zo
*:({o
*>({o
*:(|o
*>(|o
*:(}o
*>(}o
*:(~o
*>(~o
*:(o
*>(o
*F( o
*J( o
*F( o
*J( o
*F( o
*J( o
*0_
((o(s((p(s((q(s(rs
	(	(	(	s((t(s((s(n((m(s ((((((((|(	(
(y((
(((((((({(((((((((((p (!("(#($(%(&('(t(()(*(+(,(l-(.(/(0(1(2(o3(4(5(6(7(8(9(:(r;(<(=(>(?(q@(A(nB(C(mD(E(F(}G(H(I(vJ(K(L(uM(N(O(~P(Q(R(S(T(U(V(W(X(Y(Z([(\(](^(_(`(sa(b(c(d(e(f(g(h(i(j(k(l(m(n(o(wp(q(r(xs(t(u(v(w(x(y(z({(|(}(z~(( ( ( (s((u(s		(	(}	(	s(

(
(t
(
(
(
(
(l
(
(
	(

(
(
(o

(
(
(
(
(
(
(
(r
(
(
(
(
(q
(
(n
(
(m
(
(
 (}
!(
"(
#(v
$(
%(
&(u
'(
s((((s((v(s

(
(
s(w((s(x((s((z(s(({(s(((s((|(((y(((s((~(s(((s((((((s(((s((s(s(((s(((s(((s(((s(l((((s(((s((((s  ( ( ( s!!(!(!(!s""("("("s##(#(~#(#(#(#(#(#(#(#	(#
(#(#(#
(#(#(#(#(#(s#(#s$$($($($s%%(%(%(%s&&(&(&s''('('('s(((((((((((((((((|(((	((
(y(((((
((((((((s))()()()s**(*(*s++(+(+(+s,,(,(,(,s--(-(-(-s*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*2~(*R~(}*Y<?xml version="1.0" ?>
<EnumObject type="PhysicalPartition" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<version min_major='9' max_major='9' matrix_min_major='10'>
			<parent_link>
				<link parent="TableID" local="TableID" />
				<link parent="IndexID" local="IndexID" />
			</parent_link>
		</version>
		<version min_major='10'>
			<parent_link>
				<link parent="TableIDForPartition" local="TableID" />
				<link parent="IndexIDForPartition" local="IndexID" />
			</parent_link>
		</version>
                <version min_major ='9' matrix_min_major='10'>
                       <property_link table="sys.partitions AS p"></property_link>
                </version>
		<version min_major='9' matrix_min_major='10'>
			<property_link left_join = "sys.destination_data_spaces AS dds">
				<link_multiple no='1' expression="dds.partition_scheme_id = {0} and dds.destination_id = p.partition_number">
					<link_field type='parent' field="DataSpaceID" />
				</link_multiple>
			</property_link>
			<property_link fields="#FileGroupName#" left_join="sys.filegroups AS fg">
				<link_multiple no='1' expression="fg.data_space_id = dds.data_space_id or fg.data_space_id = {0}">
					<link_field type='parent' field="DataSpaceID" />
				</link_multiple>
			</property_link>
			<property_link left_join = "sys.partition_schemes AS ps">
				<link_multiple no='1' expression="ps.data_space_id = {0}">
					<link_field type='parent' field="DataSpaceID" />
				</link_multiple>
			</property_link>
			<property_link fields="#RightBoundaryValue#RangeType#" left_join="sys.partition_range_values AS prv">prv.boundary_id = p.partition_number and prv.function_id = ps.function_id</property_link>
			<property_link fields="#RangeType#" left_join="sys.partition_functions AS pf"> pf.function_id = prv.function_id</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='9' matrix_min_major='10'>
			<property name="IndexID" type="int" hidden='true'>p.index_id</property>
			<property name="TableID" type="int" hidden='true'>p.object_id</property>
			<property name="PartitionNumber" type="int" >p.partition_number</property>
			<property name="RightBoundaryValue" type="sql_variant">prv.value</property>
			<property name="FileGroupName" type="sysname" > fg.name</property>
			<property name="RangeType" type="int" report_type="RangeType" cast='true' >pf.boundary_value_on_right</property>
		</version>
    <version min_major='9'>
      <property name="RowCount" type="float" access='Read' cast='true'>p.rows</property>
    </version>
    <version matrix_min_major='10'>
      <property name="RowCount" type="float" access='Read' cast='true'>(select sum (sp.rows) from sys.partitions sp where sp.object_id = p.object_id and sp.partition_number = p.partition_number and sp.index_id = p.index_id and sp.partition_number = p.partition_number)</property>
    </version>
		<version min_major='10' matrix_min_major='10'>
			<property name="DataCompression" type="int" report_type="DataCompressionType" >p.data_compression</property>
		</version>
	</properties>
</EnumObject>$lSystem.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSetPADPADPk#FbÉA9taОsI
kSdDMl
dǬ4\H
!L~G/{YG3y萾ѿbzr#o@Ĺ\^ȕ\⯯ʀ?e̍Σ9TӟXP)EFae).ј@+;.C`(񼌧yv>c(}X͉/OKa
l
3h.L{FɯyM`#\$A&:)?k+4,wS.u./kj:3c3)4ޚ5ra7?'uB;aDфZHHeL\O%Ojc0VQX͟XPpZN[&\Xb\'`[`%Qbbf!ghPh2%i?F%i^t%iQgk5mTmWnnSbp+q-3vm6x8y{`|)
AVnw|Lw	}`'I?

f?Jn

SGJ	
5
	m>suM]

$)F	&^^
	e
!8.l}JcJ3
P\E
]_BetweenRetries@CouldNotGetInfoFromDependencyRow,CouldNotInstantiateObjC6DatabaseNameMustBeSpecifiedfFDatabaseNameMustBeSpecifiedinTheUrn*EnumObjectTagNotFoundExecuting"FailedToCreateUrn(FailedToLoadAssembly&FailedToLoadResFile8Idle$IncorectVersionTag0InvalidConfigurationFile*InvalidConnectionType InvalidSqlServer$(InvalidUrnForDependsEInvalidVersionuMissingSection,NoClassNamePostProcessNotDbObjectNotDerivedFromNotSingleDb56NullVersionOnLoadingCfgFile\$OnlyPathOrFullName4PerformingCompletionAction&PropMustBeSpecified8QueryNotSupportedPostProcess(SmoSQLCLRUnAvailable<SqlServer80NameSqlServer90NameSuspendedTooManyDbLevelsUnknown7UnknownOperator@UnknownTypeS6UnsupportedTypeDepDiscoveryg,WaitingForStepToFinish,WaitingForWorkerThread adssInitializing(adssNotSynchronizingadssReverting& adssSynchronized1"adssSynchronizing?agabpNoneNagabpPrimaryTagabpSecondary]$agabpSecondaryOnlyhDagfcOnAnyQualifiedFailureConditionx4agfcOnCriticalServerErrors4agfcOnModerateServerErrors agfcOnServerDown0agfcOnServerUnresponsiveagliFailureagliUnknownaglipOfflineaglipOnline$aglipOnlinePending&agshAllSynchronized-(agshAllSynchronizing?*agshNoneSynchronizingR4agshPartiallySynchronizingf,aramAsynchronousCommit*aramSynchronousCommitarcsConnected arcsDisconnectedarfmAutomaticarfmManualBarjsJoinedFailoverClusterInstance8arjsJoinedStandaloneInstancearjsNotJoinedarosFailed)$arosFailedNoQuorum1arosOfflineCarosOnlineLarosPendingT&arosPendingFailover]arrPrimaryoarrResolvingxarrSecondary arrUninitializedarrhInProgressarrhOnline(arshNotSynchronizing arshSynchronized"arshSynchronizing$cmprAllConnections0cmprReadWriteConnectionscmsOffline	cmsOnline 	$cmsPartiallyOnline(	cmsUnknown:	$cmsrAllConnectionsC	"cmsrNoConnectionsH	:cmsrReadIntentConnectionsOnlyL	cmtDiskWitness^	&cmtFileshareWitnessl	cmtNode	cqsForcedQuorum	cqsNormalQuorum	 cqsNotApplicable	*cqsUnknownQuorumState	cqtDiskOnly	,cqtNodeAndDiskMajority	6cqtNodeAndFileshareMajority	cqtNodeMajority	
 cqtNotApplicable
ctNone(
ctPartial.
"drsrNotApplicable7
(drsrSuspendFromApplyG
,drsrSuspendFromCapture[
,drsrSuspendFromPartnerq
&drsrSuspendFromRedo
,drsrSuspendFromRestart
&drsrSuspendFromUndo
&drsrSuspendFromUser
hmsFailed
.hmsPendingCommunication
hmsRunning
msDisconnected
msNone"msPendingFailovermsSuspended$msSynchronized/msSynchronizing=:replicaReadModeAllConnectionsL8replicaReadModeNoConnectionscPreplicaReadModeReadIntentConnectionsOnlyyrmBulkLoggedrmFullrmSimpleBetween retries0Failed to retrieve dependency information ({0}).!could not instantiate object {0}. Database name must be specified.3The database name must be specified in the urn: {0}%Enumeration object tag was not found.	Executing)failed to create Urn for object code: {0}failed to load assembly {0}.File {0} was not found.
The file might be missing in sources or misspelled in config.xml, or case sensitivity may not be preserved.Not runningIncorrect version tag. Configuration file is not valid.Connection type is not valid.Operation not supported on {0}..Urn is not valid for dependency discovery: {0}'Operation not supported on version {0}.0invalid configuration file: missing section {0}.&<post_process> tag missing class_name.object is not under database.{0} is not derived from {1}.%objects are not in a single database.8Version was not specified on loading configuration file.-Only Path or only FullName must be specified.Performing completion action{0} must be specified on {1}.8Cannot provide DataReader because of the properties: {0}The functionality you’re trying to execute is disabled inside SQLCLR, if you still want to execute this functionality you can try executing it inside your client application.SQL Server 2000SQL Server 2005	Suspendedtoo many database levels.UnknownUnknown operator.Unknown type: {0}.e{0} is not supported in dependency discovery. Only objects of the following types are supported: {1}.Waiting for step to finishWaiting for worker threadInitializingNot Synchronizing	RevertingSynchronized
SynchronizingNonePrimary	SecondarySecondary Only"On Any Qualified Failure ConditionOn Critical Server ErrorsOn Moderate Server ErrorsOn Server DownOn Server UnresponsiveFailureUnknownOfflineOnlineOnline PendingAll SynchronizedAll SynchronizingNone SynchronizingPartially SynchronizingAsynchronous commitSynchronous commit	ConnectedDisconnected	AutomaticManual+Joined SQL Server Failover Cluster InstanceJoined Standalone Instance
Not JoinedFailedFailed No QuorumOfflineOnlinePendingPending FailoverPrimary	Resolving	Secondary
UninitializedIn ProgressOnlineNot SynchronizingSynchronized
SynchronizingAllow all connectionsAllow read/write connectionsOfflineOnlinePartially OnlineUnknownYesNoRead-intent onlyDisk WitnessFileshare WitnessNode
Forced Quorum
Normal QuorumNot ApplicableUnknown Quorum State	Disk OnlyNode and Disk MajorityNode and Fileshare Majority
Node MajorityNot ApplicableNonePartialNot ApplicableSuspend From ApplySuspend From CaptureSuspend From PartnerSuspend From RedoSuspend From RestartSuspend From UndoSuspend From UserFailedPending communicationRunningDisconnectedNonePending Failover	SuspendedSynchronized
SynchronizingAllow all connectionsDisallow connections"Allow only read-intent connectionsBulk LoggedFullSimpleћ<?xml version="1.0" ?>
<EnumObject type="Database" impl_type="Database" min_major='7' matrix_min_major='10' cloud_min_major='10'>
    <settings>
      <version min_major ='11'>
        <include file='inc_hadr_setting.xml' />
      </version>
        <version min_major='7' max_major='8'>
          <property_link table="master.dbo.sysdatabases AS dtb"/>
          <property_link fields="#SpaceAvailable#" left_join="#tmplog t">t.dbname = dtb.name</property_link>
        </version>
        <version min_major='8' max_major='8'>
            <property_link fields='#DatabaseOwnershipChaining#' join='master.dbo.spt_values AS v'>v.name = 'db chaining'</property_link>
        </version>
        <version min_major='7' max_major='8'>
            <prefix fields="#SpaceAvailable#">
                create table #tmplog (dbname sysname null, log_size float null, log_space_used float null, status int)
                INSERT INTO #tmplog EXEC ('DBCC SQLPERF(LOGSPACE)')
            </prefix>
          <prefix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            create table #tempbackup (database_name nvarchar(128), [type] char(1), backup_finish_date datetime)
            insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type]
          </prefix>
          <postfix fields="#SpaceAvailable#">
            drop table #tmplog
          </postfix>
          <postfix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            drop table #tempbackup
          </postfix>
        </version>
     
      <version cloud_min_major='10'>
        <property_link table="sys.databases AS dtb"/>
        <post_process fields = '#Owner#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessUser' triggered_fields='#Sid1#'></post_process>
      </version>
      
      
	<version min_major='9' matrix_min_major='10'>
          <property_link table="master.sys.databases AS dtb"/>
          <property_link fields = '#MirroringPartner#MirroringPartnerInstance#MirroringTimeout#MirroringRedoQueueMaxSize#MirroringRole#MirroringSafetyLevel#MirroringStatus#MirroringWitness#MirroringWitnessStatus#IsMirroringEnabled#MirroringID#MirroringRoleSequence#MirroringSafetySequence#MirroringFailoverLogSequenceNumber#'
        left_join="sys.database_mirroring AS dmi">dmi.database_id = dtb.database_id</property_link>
          <property_link fields = '#RecoveryForkGuid#DatabaseGuid#HasFullBackup#'
        left_join="sys.database_recovery_status AS drs">drs.database_id = dtb.database_id</property_link>
          <property_link fields = '#IsVarDecimalStorageFormatEnabled#'
                  left_join='#tmp_sp_db_vardecimal_storage_format as vardec'>dtb.database_id = db_id(vardec.dbname)</property_link>
        </version>

      <version min_major='9'>
        <property_link fields = '#PrimaryFilePath#'
        left_join="sys.master_files AS df">df.database_id = dtb.database_id and 1=df.data_space_id and 1 = df.file_id</property_link>
      </version>
      
      <version matrix_min_major='10'>
        <property_link fields = '#PrimaryFilePath#'
        left_join="sys.master_files AS df">df.database_id = dtb.database_id and 1=df.data_space_id and 1 = df.file_id and df.brick_id = brick_id()</property_link>
      </version>

      <!--  Change tracking info for databases exist in sys.change_tracking_databases-->
        <version min_major='10'>
          <property_link fields = '#ChangeTrackingEnabled#ChangeTrackingAutoCleanUp#ChangeTrackingRetentionPeriod#ChangeTrackingRetentionPeriodUnits#'
      left_join="sys.change_tracking_databases AS ctb">ctb.database_id = dtb.database_id </property_link>
        </version>

      <!--Transparent Data Encryption(TDE) Properties-->
        <version min_major='11'>
          <property_link fields = '#HasDatabaseEncryptionKey#'
      left_join="#tmp_db_encryption_keys AS dek">dek.database_id = dtb.database_id </property_link>
        </version>

      <!--HADR Properties-->
      <version min_major='11'>
        <property_link fields = '#AvailabilityGroupName#'
                left_join="#tmp_db_ars AS ars">dtb.replica_id = ars.replica_id</property_link>
        <property_link fields = '#AvailabilityGroupName#'
                left_join="#tmp_db_ags AS ags">ars.group_id = ags.group_id</property_link>

        <property_link fields = '#AvailabilityDatabaseSynchronizationState#'
                left_join="#tmp_db_hadr_dbrs AS dbrs">dtb.group_database_id = dbrs.group_database_id and dbrs.is_local = 1</property_link>
      </version>

        <version min_major='11'>
          <property_link fields = '#FilestreamDirectoryName#FilestreamNonTransactedAccess#' left_join="sys.database_filestream_options AS fsopt">fsopt.database_id = dtb.database_id</property_link>
        </version>
      
        <!-- Prefix and post fix fields will be defined after all the table and field links are defined-->
        <version min_major='9' matrix_min_major='10'>

            <prefix fields="#IsVarDecimalStorageFormatEnabled#">
                create table #tmp_sp_db_vardecimal_storage_format (dbname sysname null, vardecimal_enabled varchar(3) null)
                if exists (select o.object_id from sys.system_objects o where o.name=N'sp_db_vardecimal_storage_format')
                begin
                insert into #tmp_sp_db_vardecimal_storage_format exec sys.sp_db_vardecimal_storage_format
                end
            </prefix>
          <prefix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            create table #tempbackup (database_name nvarchar(128), [type] char(1), backup_finish_date datetime)
            insert into #tempbackup select database_name, [type], max(backup_finish_date) from msdb..backupset where [type] = 'D' or [type] = 'L' or [type]='I' group by database_name, [type]
          </prefix>
          <postfix fields="#IsVarDecimalStorageFormatEnabled#">
            drop table #tmp_sp_db_vardecimal_storage_format
          </postfix>
          <postfix fields="#LastBackupDate#LastDifferentialBackupDate#LastLogBackupDate#">
            drop table #tempbackup
          </postfix>
        </version>
        <version min_major='7' max_major='8'>
            <post_process fields = '#IsDbDenyDatawriter#IsDbDenyDatareader#IsDbDdlAdmin#IsDbSecurityAdmin#IsDbOwner#IsDbDatawriter#IsDbDatareader#IsDbBackupOperator#IsDbAccessAdmin#SpaceAvailable#Size#DataSpaceUsage#IndexSpaceUsage#UserName#DboLogin#DefaultSchema#PrimaryFilePath#DefaultFileGroup#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
				triggered_fields='#DatabaseName#'/>
        </version>
        <version min_major='9' max_major='9'>
          <post_process fields = '#IsDbDenyDatawriter#IsDbDenyDatareader#IsDbDdlAdmin#IsDbSecurityAdmin#IsDbOwner#IsDbDatawriter#IsDbDatareader#IsDbBackupOperator#IsDbAccessAdmin#SpaceAvailable#Size#DataSpaceUsage#IndexSpaceUsage#UserName#DboLogin#DefaultSchema#PrimaryFilePath#DefaultFileGroup#IsMailHost#'
      class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
      triggered_fields='#DatabaseName#'/>
        </version>
        <version min_major='8' max_major='8'>
            <post_process fields = '#DatabaseOwnershipChaining#'
					class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
					triggered_fields='#DatabaseNameOptions#'/>
        </version>
        <version min_major='10' matrix_min_major='10'>
          <post_process fields = '#IsManagementDataWarehouse#IsDbDenyDatawriter#IsDbDenyDatareader#IsDbDdlAdmin#IsDbSecurityAdmin#IsDbOwner#IsDbDatawriter#IsDbDatareader#IsDbBackupOperator#IsDbAccessAdmin#SpaceAvailable#Size#DataSpaceUsage#IndexSpaceUsage#UserName#DboLogin#DefaultSchema#PrimaryFilePath#DefaultFileGroup#IsMailHost#DefaultFileStreamFileGroup#'
			class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
			triggered_fields='#DatabaseName#'/>
        </version>

     
      <post_process fields = '#Collation#Version#CompatibilityLevel#CaseSensitive#TargetRecoveryTime#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessAutoCloseProperties'
				triggered_fields='#DatabaseName2#'/>

      <version min_major='11'>
        <post_process fields = '#DefaultLanguageLcid#DefaultLanguageName#DefaultFullTextLanguageLcid#DefaultFullTextLanguageName#NestedTriggersEnabled#TransformNoiseWords#TwoDigitYearCutoff#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessContainedDbProperties'
				triggered_fields='#ContainmentType2#'/>
      </version>
      
    </settings>
    <properties>
        <include file='inc_urn.xml'/>
        <version min_major='7' max_major='8'>
            <property name="Name" type="sysname">dtb.name</property>
            <property name="ID" type="int" cast='true'>dtb.dbid</property>
            <property name="Owner" type="sysname" access="Read">suser_sname(dtb.sid)</property>
            <property name="CreateDate" type="datetime" access="Read">dtb.crdate</property>
            <property name="PrimaryFilePath" type="nvarchar" size='512' access="Read">rtrim(dtb.filename)</property>
            <property name="Size" type="float" access="Read" cast='true' expensive='true'>NULL</property>
            <!-- Space available = LogSize*LogFreePercent, expressed in KB, so we multiply it with 1024 !-->
            <property name="SpaceAvailable" type="float" access="Read" expensive='true'>t.log_size*(100-t.log_space_used)*10.24</property>
            <property name="DataSpaceUsage" type="float" access="Read" cast='true' expensive='true'>NULL</property>
            <property name="IndexSpaceUsage" type="float" access="Read" cast='true' expensive='true'>NULL</property>
            <property name="DboLogin" type="bit" access="Read" cast='true' expensive='true'>0</property>
            <property name="ActiveConnections" type="int" access="Read" expensive="true">(select count(*) from master.dbo.sysprocesses p where dtb.dbid=p.dbid)</property>
            <property name="CompatibilityLevel" type="tinyint" report_type="CompatibilityLevel" expensive='true' mode="design">dtb.cmptlevel</property>
            <property name="DefaultSchema" type="sysname" expensive='true' mode="design">''</property>
            <property name="ReplicationOptions" type="int" report_type='ReplicationOptions' access = 'Read'>dtb.category</property>
            <!--IsSystemObject check by name + if it is distributor-->
            <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dtb.name in ('master','model','msdb','tempdb') then 1 else category &amp; 16 end</property>
            <!--properties imported from databaseoptions.xml-->
            <property name="AutoClose" type="bit" cast='true' mode="deploy">dtb.status &amp; &lt;msparam&gt;1&lt;/msparam&gt;</property>
            <property name="AutoShrink" type="bit" cast='true' mode="deploy">dtb.status &amp; &lt;msparam&gt;4194304&lt;/msparam&gt;</property>
        </version>

      <version cloud_min_major='10'>
        <!--IsSystemObject check by name + if it is distributor-->
        <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dtb.name in ('master') then 1 else dtb.is_distributor end</property>
        <property name="DefaultSchema" type="sysname" expensive='true'>
          (select default_schema_name from sys.database_principals where name = user_name())
        </property>       
        <property name="UserName" type="sysname" expensive='true' access='Read'>(select user_name()) </property>
        <property name="Owner" type="sysname" read_only_after_creation="true" expensive='true'>0</property>
        <property name="Sid1" type="sysname" access="Read" hidden='true'>ISNULL(convert(nvarchar(85), dtb.owner_sid, 1),N'')</property>
        <property name="IsDbAccessAdmin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_accessadmin'))</property>
        <property name="IsDbBackupOperator" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_backupoperator'))</property>
        <property name="IsDbDatareader" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_datareader'))</property>
        <property name="IsDbDatawriter" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_datawriter'))</property>
        <property name="IsDbOwner" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_owner'))</property>
        <property name="IsDbSecurityAdmin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_securityadmin'))</property>
        <property name="IsDbDdlAdmin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_ddladmin'))</property>
        <property name="IsDbDenyDatareader" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_denydatareader'))</property>
        <property name="IsDbDenyDatawriter" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_denydatawriter'))</property>
        <property name="DboLogin" type="bit" access="Read" cast='true' expensive='true'>(select is_member(N'db_owner'))</property>
        <property name="IsDbManager" type="bit" access="Read" cast='true' expensive='true'>(select isnull(is_member(N'dbmanager'), 0))</property>
        <property name="IsLoginManager" type="bit" access="Read" cast='true' expensive='true'>(select isnull(is_member(N'loginmanager'), 0))</property>
        <property name="IsUpdateable" type="bit" access="Read" cast='true'>( case dtb.is_read_only when 1 then 0 else 1 end)</property>
	</version>

     
        <version min_major='9'>
        <property name="MirroringRedoQueueMaxSize" type="int" access="read">ISNULL((case dmi.mirroring_redo_queue_type when N'UNLIMITED' then 0 else dmi.mirroring_redo_queue end),0)</property>
        <property name="MirroringTimeout" type="int">ISNULL(dmi.mirroring_connection_timeout,0)</property>
        <property name='MirroringPartner' type='nvarchar' size = '128'
											>ISNULL(dmi.mirroring_partner_name,'')</property>
        <property name='MirroringPartnerInstance' type='nvarchar' size = '128' access='Read'
											>ISNULL(dmi.mirroring_partner_instance,'')</property>
        <property name='MirroringRole' type='tinyint' report_type = 'MirroringRole'
                                              access='Read'>ISNULL(dmi.mirroring_role,0)</property>
        <property name='MirroringSafetyLevel' type='int' report_type = 'MirroringSafetyLevel'
											>ISNULL(dmi.mirroring_safety_level + 1, 0)</property>
        <property name='MirroringStatus' type='tinyint' report_type = 'MirroringStatus'
                  access='Read'>ISNULL(dmi.mirroring_state + 1, 0)</property>
        <property name='MirroringWitness' type='nvarchar' size = '128'
											>ISNULL(dmi.mirroring_witness_name,'')</property>
        <property name='MirroringWitnessStatus' type='int' report_type = 'MirroringWitnessStatus'
                  access='Read'>ISNULL(dmi.mirroring_witness_state + 1, 0)</property>
        <property name='IsMirroringEnabled' type='bit' cast='true'
                  access='Read'>case when dmi.mirroring_partner_name is null then 0 else 1 end</property>
        <property name='MirroringID' type='uniqueidentifier'
                  access='Read'>ISNULL(dmi.mirroring_guid,'00000000-0000-0000-0000-0000000000000000')</property>
        <property name='MirroringRoleSequence' type='int'
                  access='Read'>ISNULL(dmi.mirroring_role_sequence,0)</property>
        <property name='MirroringSafetySequence' type='int'
                  access='Read'>ISNULL(dmi.mirroring_safety_sequence,0)</property>
        <property name='MirroringFailoverLogSequenceNumber' type='numeric'
                  access='Read'>ISNULL(dmi.mirroring_failover_lsn,0)</property>
        <property name="DefaultFullTextCatalog" type="sysname" expensive='true'>ISNULL((select top 1 ftc.name from sys.fulltext_catalogs as ftc where ftc.is_default=1),N'')</property>        
	 <property name="PrimaryFilePath" type="nvarchar" size='520' access="Read" expensive='true'>ISNULL(df.physical_name, N'')</property>
        </version>
      <version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
        <!--Adding options property here. Earlier use to in databaseoptions.xml-->
        <property name="AnsiNullDefault" type="bit" mode="design">dtb.is_ansi_null_default_on</property>
        <property name="AnsiNullsEnabled" type="bit" mode="design">dtb.is_ansi_nulls_on</property>
        <property name="AnsiPaddingEnabled" type="bit" mode="design">dtb.is_ansi_padding_on</property>
        <property name="AnsiWarningsEnabled" type="bit" mode="design">dtb.is_ansi_warnings_on</property>
        <property name="ArithmeticAbortEnabled" type="bit" mode="design">dtb.is_arithabort_on</property>
        <property name="AutoShrink" type="bit" mode="deploy">dtb.is_auto_shrink_on</property>
        <property name="CloseCursorsOnCommitEnabled" type="bit" mode="deploy">dtb.is_cursor_close_on_commit_on</property>
        <property name="ConcatenateNullYieldsNull" type="bit" mode="design">dtb.is_concat_null_yields_null_on</property>
        <property name="NumericRoundAbortEnabled" type="bit" mode="design">dtb.is_numeric_roundabort_on</property>
        <property name="QuotedIdentifiersEnabled" type="bit" mode="design">dtb.is_quoted_identifier_on</property>
        <property name="ReadOnly" type="bit" mode="design">dtb.is_read_only</property>
        <property name="RecursiveTriggersEnabled" type="bit" mode="design">dtb.is_recursive_triggers_on</property>
        <property name="LocalCursorsDefault" type="bit" mode="design">dtb.is_local_cursor_default</property>
        <property name="PageVerify" type="tinyint" report_type = 'PageVerify' mode="design">dtb.page_verify_option</property>
        <property name="RecoveryModel" type="int" report_type="RecoveryModel" mode="deploy">dtb.recovery_model</property>
        <property name="UserAccess" type="int" report_type = 'DatabaseUserAccess' mode="deploy">dtb.user_access</property>
        <property name="DatabaseOwnershipChaining" type="bit" mode="deploy">dtb.is_db_chaining_on</property>
        <property name="AutoUpdateStatisticsAsync" type="bit" mode="deploy">dtb.is_auto_update_stats_async_on</property>
        <property name="DateCorrelationOptimization" type="bit" mode="deploy">dtb.is_date_correlation_on</property>
        <property name="Trustworthy" type="bit" mode="design">dtb.is_trustworthy_on</property>
        <property name="Name" type="sysname">dtb.name</property>
        <property name="ID" type="int">dtb.database_id</property>
        <property name="CreateDate" type="datetime" access="Read">dtb.create_date</property>
        <property name="Collation" type="sysname" expensive='true' mode="design">dtb.collation_name</property>
        <property name="AutoCreateStatisticsEnabled" type="bit" mode="deploy">dtb.is_auto_create_stats_on</property>
        <property name="AutoUpdateStatisticsEnabled" type="bit" mode="deploy">dtb.is_auto_update_stats_on</property>
        <property name="IsParameterizationForced" type="bit" mode="deploy">dtb.is_parameterization_forced</property>
        <property name="CompatibilityLevel" type="tinyint" report_type="CompatibilityLevel" expensive='true' mode="design">dtb.compatibility_level</property>
    	<property name="IsReadCommittedSnapshotOn" type="bit" mode="deploy">dtb.is_read_committed_snapshot_on</property>
      </version>
      <version min_major='9' cloud_min_major='10'>
        <property name="AutoClose" type="bit" mode="deploy">dtb.is_auto_close_on</property>
        <property name="BrokerEnabled" type="bit">dtb.is_broker_enabled</property>
        <!--database view-->
        <property name="IsDatabaseSnapshot" type="bit" cast='true' access='Read'>isnull(dtb.source_database_id, 0)</property>
        <property name="IsDatabaseSnapshotBase" type="bit" cast='true' access='Read' expensive='true'>(select count(1) from sys.databases dtbmir where dtbmir.source_database_id = dtb.database_id)</property>
        <property name="DatabaseSnapshotBaseName" type="sysname" read_only_after_creation="true">ISNULL(DB_NAME(dtb.source_database_id), N'')</property>
        <property name="IsFullTextEnabled" type="bit">dtb.is_fulltext_enabled</property>
        <property name="ServiceBrokerGuid" type="uniqueidentifier" access='Read'>dtb.service_broker_guid</property>
	<property name="SnapshotIsolationState" type="tinyint" report_type="SnapshotIsolationState" access="Read">dtb.snapshot_isolation_state</property>
        <property name="ReplicationOptions" type="int"  report_type='ReplicationOptions' access = 'Read'>(dtb.is_published*1+dtb.is_subscribed*2+dtb.is_merge_published*4)</property>
	</version>
	<version matrix_min_major='10'>
        <property name="PrimaryFilePath" type="nvarchar" size='520' access="Read" expensive='true'>REPLACE(df.physical_name,cast(SERVERPROPERTY('InstanceDefaultDataPath') as nvarchar(520)),N'')</property>
      </version>
        <version min_major='9' matrix_min_major='10'>
	   <property name="Owner" type="sysname" access="Read">suser_sname(dtb.owner_sid)</property>
           <property name="Size" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="SpaceAvailable" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="DataSpaceUsage" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="IndexSpaceUsage" type="float" access="Read" cast='true' expensive='true'>0</property>
            <property name="DboLogin" type="bit" access="Read" cast='true' expensive='true'>0</property>
            <property name="ActiveConnections" type="int" access="Read" expensive="true">(select count(*) from master.dbo.sysprocesses p where dtb.database_id=p.dbid)</property>
            <property name="DefaultSchema" type="sysname" expensive='true' mode="design">''</property>
            <property name="IsMailHost" type="bit" expensive='true' access='Read'>0</property>
           <property name="IsVarDecimalStorageFormatEnabled" type="bit" expensive="true" mode="deploy">
                case
                when vardec.vardecimal_enabled = 'ON' then cast(1 as bit)
                else cast(0 as bit)
                end
            </property>
          
          <!--database mirroring-->

          <property name='LogReuseWaitStatus' type='tinyint' report_type = 'LogReuseWaitStatus'
                    access='Read'>ISNULL(dtb.log_reuse_wait,0)</property>
          
          <property name="RecoveryForkGuid" type="uniqueidentifier" access='Read'>drs.recovery_fork_guid</property>
          <property name="DatabaseGuid" type="uniqueidentifier" access='Read'>drs.database_guid</property>
          <property name="HasFullBackup" type="bit" cast='true'>(case when drs.last_log_backup_lsn is not null then 1 else 0 end)</property>
          
          <!--IsSystemObject check by name + if it is distributor-->
          <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dtb.name in ('master','model','msdb','tempdb') then 1 else dtb.is_distributor end</property>
        </version>

        <version min_major='10' matrix_min_major='10'>
          <property name="IsManagementDataWarehouse" type="bit" access="Read" cast='true' expensive='true'>0</property>
        </version>
        <version min_major='10'>
        <property name="DefaultFileStreamFileGroup" type="sysname" expensive='true' access='Read'>N''</property>
      </version>
        <!-- Change Tracking properties-->
        <version min_major='10'>
		<property name="ChangeTrackingEnabled" type="bit" cast='true' mode="deploy">case when ctb.database_id is null then 0 else 1  end</property>
            <property name="ChangeTrackingAutoCleanUp" type="bit" cast='true' mode="deploy">ISNULL(ctb.is_auto_cleanup_on,0)</property>
            <property name="ChangeTrackingRetentionPeriod" type="int" mode="deploy">ISNULL(ctb.retention_period,0)</property>
            <property name="ChangeTrackingRetentionPeriodUnits" type="tinyint" cast='true' report_type ='RetentionPeriodUnits' mode="deploy">ISNULL(ctb.retention_period_units,0)</property>
        </version>

       <!-- Transparent Data Encryption(TDE) Properties-->
       <version min_major='11'>
            <property name="HasDatabaseEncryptionKey" type="bit" access='Read' cast='true' expensive ='true'>ISNULL(dek.database_id, 0)</property>
       </version>

      <version min_major='11'>
        <property name="ContainmentType" type="int" report_type='ContainmentType'>dtb.containment</property>
        <property name="ContainmentType2" type="int" hidden='true'>dtb.containment</property>
        <property name="DefaultLanguageLcid" type="int">dtb.default_language_lcid</property>
        <property name="DefaultLanguageName" type="nvarchar" size='256'>dtb.default_language_name</property>
        <property name="DefaultFullTextLanguageLcid" type="int">dtb.default_fulltext_language_lcid</property>
        <!-- Default full text language name can be null for a contained database -->
        <property name="DefaultFullTextLanguageName" type="nvarchar" size='256'>ISNULL(dtb.default_fulltext_language_name,N'')</property>
        <property name="NestedTriggersEnabled" type="bit" cast='true'>dtb.is_nested_triggers_on</property>
        <property name="TransformNoiseWords" type="bit" cast='true'>dtb.is_transform_noise_words_on</property>
        <property name="TwoDigitYearCutoff" type="int">dtb.two_digit_year_cutoff</property>
		<property name="TargetRecoveryTime" type="int">dtb.target_recovery_time_in_seconds</property>

	  </version>      

        <!-- DATABASEPROPERTY obtained properties -->
        <version min_major='8' max_major='8'>
            <property name="IsFullTextEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsFulltextEnabled')</property>
            <property name="Collation" type="sysname" cast='true' expensive='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'Collation')</property>
        </version>

        <!-- common to 8.0 and 7.0  see above for meanings of the bits we are ORing together here -->
        <version min_major='7' max_major='8'>
          <property name="Status" type="int" report_type="DatabaseStatus" access="Read">
            case
            -- if all these are false then we are in the Normal state
            -- except some return NULL if it's AutoClosed
            when (DATABASEPROPERTY(dtb.name,'IsInLoad') = 0 and
            (DATABASEPROPERTY(dtb.name,'IsInRecovery') = 0 or DATABASEPROPERTY(dtb.name,'IsInRecovery') is null) and
            (DATABASEPROPERTY(dtb.name,'IsNotRecovered') = 0 or DATABASEPROPERTY(dtb.name,'IsNotRecovered') is null) and
            DATABASEPROPERTY(dtb.name,'IsSuspect') = 0 and
            DATABASEPROPERTY(dtb.name,'IsOffline') = 0 and
            DATABASEPROPERTY(dtb.name,'IsInStandBy') = 0 and
            (DATABASEPROPERTY(dtb.name,'IsShutDown') = 0 or DATABASEPROPERTY(dtb.name,'IsShutDown') is null) and
            DATABASEPROPERTY(dtb.name,'IsEmergencyMode') = 0) then 1
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsInLoad') = 1 then 2
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsInRecovery') = 1 and
            DATABASEPROPERTY(dtb.name,'IsNotRecovered') = 1 then 4
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsInRecovery') = 1 then 8
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsSuspect') = 1 then 16
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsOffline') = 1 then 32
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsInStandBy') = 1 then 64
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsShutDown') = 1 then 128
            when DATABASEPROPERTY(dtb.name,'IsShutDown') is null then (512 + 128)
            else 0
            end |
            case
            when DATABASEPROPERTY(dtb.name,'IsEmergencyMode') = 1 then 256
            else 0
            end
          </property>


        </version>

        <!--properties imported from databaseoptions.xml-->
        <version min_major='8' max_major='8'>
            <property name="AnsiNullDefault" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullDefault')</property>
            <property name="AnsiNullsEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullsEnabled')</property>
            <property name="AnsiPaddingEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiPaddingEnabled')</property>
            <property name="AnsiWarningsEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsAnsiWarningsEnabled')</property>
            <property name="ArithmeticAbortEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsArithmeticAbortEnabled')</property>
            <property name="AutoCreateStatisticsEnabled" type="bit" cast='true' mode="deploy">DATABASEPROPERTYEX(dtb.name, 'IsAutoCreateStatistics')</property>
            <property name="AutoUpdateStatisticsEnabled" type="bit" cast='true' mode="deploy">DATABASEPROPERTYEX(dtb.name, 'IsAutoUpdateStatistics')</property>
            <property name="CloseCursorsOnCommitEnabled" type="bit" cast='true' mode="deploy">DATABASEPROPERTYEX(dtb.name, 'IsCloseCursorsOnCommitEnabled')</property>
            <property name="ConcatenateNullYieldsNull" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsNullConcat')</property>
            <property name="NumericRoundAbortEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsNumericRoundAbortEnabled')</property>
            <property name="QuotedIdentifiersEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsQuotedIdentifiersEnabled')</property>
            <property name="ReadOnly" type="bit" cast='true' mode="design">DATABASEPROPERTY(dtb.name, 'IsReadOnly')</property>
            <property name="RecursiveTriggersEnabled" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsRecursiveTriggersEnabled')</property>
            <property name="LocalCursorsDefault" type="bit" cast='true' mode="design">DATABASEPROPERTYEX(dtb.name, 'IsLocalCursorsDefault')</property>
            <property name="PageVerify" type="tinyint" report_type = 'PageVerify' mode="design">CASE WHEN 1=DATABASEPROPERTYEX(dtb.name, 'IsTornPageDetectionEnabled') THEN 1 ELSE 0 END</property>
            <property name="RecoveryModel" type="int"
				report_type="RecoveryModel" mode="deploy">CASE DATABASEPROPERTYEX(dtb.name, 'Recovery') WHEN 'SIMPLE' THEN 3 WHEN 'BULK_LOGGED' THEN 2 ELSE /*FULL*/ 1 END</property>
            <property name="UserAccess" type="int"
				report_type = 'DatabaseUserAccess' mode="deploy">CASE CONVERT(sysname,DATABASEPROPERTYEX(dtb.name, 'UserAccess')) WHEN 'SINGLE_USER' THEN 1 WHEN 'RESTRICTED_USER' THEN 2 ELSE /*MULTI_USER*/ 0 END</property>
            <property name="DatabaseOwnershipChaining" type="bit" cast='true' expensive='true' mode="deploy">
                case when (dtb.status2 &amp; v.number != 0) then 1 else 0 end
            </property>
            <property name="DatabaseNameOptions" type="sysname" hidden='true'>dtb.name</property>

        </version>

      <version min_major ='8' max_major='8'>
        <property name="CaseSensitive" type="bit" access="Read" cast='true' expensive='true'>CHARINDEX(N'_CS_', CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS nvarchar(255)))</property>
      </version>
      
      <version min_major='9' matrix_min_major='10' cloud_min_major='10' >
        <property name="CaseSensitive" type="bit" access="Read" cast='true' expensive='true'>CHARINDEX(N'_CS_', dtb.collation_name)</property>

        <!-- Database state, a mask of:
				DatabaseStatus enum
				Normal			= 0x000001
				Restoring		= 0x000002
				RecoveryPending = 0x000004
				Recovering		= 0x000008
				Suspect			= 0x000010
				Offline			= 0x000020
				Standby			= 0x000040
				Shutdown		= 0x000080
				EmergencyMode	= 0x000100
                AutoClosed      = 0x000200  

				state column				
				0 = ONLINE
				1 = RESTORING
				2 = RECOVERING
				3 = RECOVERY_PENDING
				4 = SUSPECT	
				5 = EMERGENCY
				6 = OFFLINE

                NULL collation means AutoClosed status. -->
        <property name="Status" type="int" report_type="DatabaseStatus" access="Read">
          case
          when dtb.collation_name is null then 0x200
          else 0
          end |
          case
          when 1 = dtb.is_in_standby then 0x40
          else 0
          end |
          case dtb.state
          when 1 then 0x2
          when 2 then 0x8
          when 3 then 0x4
          when 4 then 0x10
          when 5 then 0x100
          when 6 then 0x20
          else 1
          end
        </property>
        
      </version>
      
        <version min_major='8' matrix_min_major='10'>
            <property name="IsUpdateable" type="bit" access="Read" cast='true'>( case LOWER(convert( nvarchar(128), DATABASEPROPERTYEX(dtb.name, 'Updateability'))) when 'read_write' then 1 else 0 end)</property>
            <property name="Version" type="int" access="Read" cast='true' expensive='true'>DATABASEPROPERTYEX(dtb.name, 'Version')</property>
        </version>
        <version min_major='7' max_major='7'>
          <property name="IsFullTextEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name,'IsFulltextEnabled')</property>
        </version>

        <version min_major='10' cloud_min_major = '10'>
            <property name="EncryptionEnabled" type="bit" cast="true">dtb.is_encrypted</property>
            <property name="HonorBrokerPriority" type="bit" cast="true">dtb.is_honor_broker_priority_on</property>
        </version>

        <!--common in all versions -->
      <version min_major='7' matrix_min_major='10'>
        <property name="IsDbAccessAdmin" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbBackupOperator" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDatareader" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDatawriter" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbOwner" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbSecurityAdmin" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDdlAdmin" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDenyDatareader" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="IsDbDenyDatawriter" type="bit" access="Read" cast='true' expensive='true'>0</property>
        <property name="UserName" type="sysname" expensive='true' access='Read'>''</property>
        
        <property name="DefaultFileGroup" type="sysname" expensive='true' access='Read'>N''</property>
        <property name="DatabaseName" type="sysname" hidden='true'>dtb.name</property>
        <property name="IsAccessible" type="bit" cast='true' access = 'Read'>has_dbaccess(dtb.name)</property>
      </version>
      <version min_major='8' max_major='8'>
        <property name="LastLogBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;L&lt;/msparam&gt; and db_id(database_name) = dtb.dbid)</property>
        <property name="LastBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;D&lt;/msparam&gt; and db_id(database_name) = dtb.dbid)</property>
        <property name="LastDifferentialBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;I&lt;/msparam&gt; and db_id(database_name) = dtb.dbid)</property>
      </version>
      <version min_major='9' matrix_min_major='10'>
        <property name="LastLogBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;L&lt;/msparam&gt; and db_id(database_name) = dtb.database_id)</property>
        <property name="LastBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;D&lt;/msparam&gt; and db_id(database_name) = dtb.database_id)</property>
        <property name="LastDifferentialBackupDate" type="datetime" access = 'Read' expensive='true'>(select backup_finish_date from #tempbackup where type = &lt;msparam&gt;I&lt;/msparam&gt; and db_id(database_name) = dtb.database_id)</property>
      </version>

      <version min_major='11'>
        <property name="FilestreamDirectoryName" type="nvarchar" size="256">ISNULL(fsopt.directory_name , N'')</property>
        <property name="FilestreamNonTransactedAccess" type="tinyint" report_type="FilestreamNonTransactedAccessType">ISNULL(fsopt.non_transacted_access , 0)</property>
      </version>
      
      <!--common in all versions -->
      <property name="DatabaseName2" type="sysname" hidden='true'>dtb.name</property>
      
		<version min_major='10' matrix_min_major='10'>
            <include file='inc_policy_health_state.xml'/>
        </version>
      <!--HADR Properties-->
      <version min_major='11'>
        <property name="AvailabilityGroupName" type="sysname" access="Read" expensive ="true">ISNULL(ags.name, '')</property>
        <property name="AvailabilityDatabaseSynchronizationState" type="tinyint" report_type="AvailabilityDatabaseSynchronizationState" access="Read" expensive ="true">dbrs.synchronization_state</property>
      </version>
      <version matrix_min_major='10'>
        <property name="DefaultDistributionPolicy" type="tinyint" report_type="DefaultDistributionPolicy" suppress_sfc_attribute="true">dtb.distribution_policy</property>
        <property name="LeadingColumnsForDistribution" type="int" cast="true" suppress_sfc_attribute="true">ISNULL(dtb.distribution_leading_columns,0)</property>
      </version>
      
      <version cloud_min_major = '10'>
        <property name="IsFederationMember" type="bit" access="Read" cast="true">ISNULL(dtb.is_federation_member, 0)</property>
      </version>

    </properties>

    <!-- extended properties support -->
    <property name="ExtPropClass" type="int" hidden='true'>0</property>
    <property name="ExtPropMajorID" type="int" hidden='true'>0</property>
    <property name="ExtPropMinorID" type="int" hidden='true'>0</property>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FileGroup" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysfilegroups AS g' />
			<prefix fields="#Size#">declare @PageSize float select @PageSize=v.low/1024.0 from master..spt_values v 
				where v.number=1 and v.type='E'
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table='sys.filegroups AS g' />
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">g.groupname</property>
			<property name="ID" type="int" cast='true'>g.groupid</property>
			<property name="ReadOnly" type="bit" cast='true'>g.status &amp; 0x08</property>
			<property name="IsDefault" type="bit" cast='true'>g.status &amp; 0x10</property>
			<!-- return 0 if it has no files -->
			<property name="Size" type="float" access="Read" cast='true'>ISNULL((select sum(s.size * @PageSize) from dbo.sysfiles s where s.groupid = g.groupid), 0)</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="Name" type="sysname" cast='true'>cast(g.name as varbinary(256))</property>
			<property name="ID" type="int">g.data_space_id</property>
			<property name="ReadOnly" type="bit">g.is_read_only</property>
			<property name="IsDefault" type="bit" cast='true'>g.is_default</property>
			<!-- return 0 if it has no files -->
			<property name="Size" type="float" cast='true'>ISNULL((select sum(cast(gs.size as float))*convert(float,8) from sys.database_files gs where gs.data_space_id = g.data_space_id), 0)</property>
		</version>
		<version min_major='10'>
			<property name="IsFileStream" type="bit" cast='true' read_only_after_creation="true">CASE WHEN 'FD'=g.type THEN 1 ELSE 0 END</property>
		</version>
		<version min_major="10" matrix_min_major="10">
			<include file='inc_policy_health_state.xml'/>
		</version>
	</properties>
</EnumObject>
2<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="GroupID" />
		</parent_link>

		<version min_major='9' max_major='9'>
			<property_link table="sys.database_files AS s">s.type = 0 and (s.drop_lsn IS NULL)</property_link>
		</version>
		<version min_major='10'>
			<property_link table="sys.database_files AS s">(s.type = 2 or s.type = 0) and (s.drop_lsn IS NULL)</property_link>
		</version>
    <version min_major='9' >
       <property_link fields='#NumberOfDiskReads#NumberOfDiskWrites#BytesReadFromDisk#BytesWrittenToDisk#' left_join='sys.dm_io_virtual_file_stats(default, default) AS fs'>fs.database_id = db_id() AND fs.file_id = s.file_id</property_link>
    </version>
    <version matrix_min_major='10'>
      <property_link table="sys.database_files AS s">(s.type = 2 or s.type = 0) and (s.drop_lsn IS NULL) and s.database_fragment_id = brick_id()</property_link>
    </version>
    <version min_major='11'>
      <post_process fields = '#AvailableSpace#UsedSpace#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessFile' triggered_fields='#Name2#GroupID2#DatabaseName2#Size2#'></post_process>
    </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_DbFile.xml'/>

		<!-- undocumented: using file id == 1 in place of slow FILEPROPERTY(s.name, N'IsPrimaryFile') see #441694 -->
		<version min_major='7' max_major='8'>
			<property name="IsPrimaryFile" type="bit" cast='true' read_only_after_creation="true">CASE s.fileid WHEN 1 THEN 1 ELSE 0 END</property>
      <property name="UsedSpace" type="float" access='Read' cast='true'>CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8) </property>
      <property name="AvailableSpace" type="float" access='Read'>
        <link_multiple no='2' expression=" {0} - {1} ">
          <link_field type='local' field="Size" />
          <link_field type='local' field="UsedSpace" />
        </link_multiple>
      </property>
    </version>
		<version min_major='9' matrix_min_major='10'>
			<property name="IsPrimaryFile" type="bit" cast='true' read_only_after_creation="true">CASE s.file_id WHEN 1 THEN 1 ELSE 0 END</property>
		</version>
    <version matrix_min_major='10'>
      <property name="FileName" type="nvarchar" size="520" read_only_after_creation="true">REPLACE(s.physical_name,cast(SERVERPROPERTY('InstanceDefaultDataPath') as nvarchar(520)),N'') </property>
      <property name="Size" type="float">(select sum(m.size)* CONVERT(float,8) from sys.master_files m where (m.type = 0 or m.type =2) and m.database_id = db_id() and m.drop_lsn is null and m.file_id = s.file_id group by m.file_id)</property>
      <property name="UsedSpace" type="float" access='Read' cast='true'>(select sum(spu.allocated_extent_page_count)* CONVERT(float,8) from sys.dm_db_file_space_usage spu where spu.database_id = db_id() and spu.file_id = s.file_id group by spu.file_id)</property>
      <property name="AvailableSpace" type="float" access='Read' cast='true'>(select sum(spu.unallocated_extent_page_count)* CONVERT(float,8) from sys.dm_db_file_space_usage spu where spu.database_id = db_id() and spu.file_id = s.file_id group by spu.file_id)</property>
    </version>
		<version min_major='9' max_major='10' max_minor='50'>
			<property name="UsedSpace" type="float" access='Read' cast='true'>CASE s.type WHEN 2 THEN 0 ELSE CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8) END</property>
      </version>
    <version min_major='10' matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
    <version min_major='11'>
      <property name="UsedSpace" type="float" access='Read' cast='true' expensive='true'>0.0</property>
      <property name="AvailableSpace" type="float" access='Read' cast='true' expensive='true'>0.0</property>
    </version>
    <version min_major='9' max_major='10' max_minor='50'>
      <property name="AvailableSpace" type="float" access='Read'>
        <link_multiple no='2' expression=" CASE s.type WHEN 2 THEN 0 ELSE ({0} - {1})  END ">
          <link_field type='local' field="Size" />
          <link_field type='local' field="UsedSpace" />
        </link_multiple>
      </property>
    </version>
   </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="LogFile" impl_type="SqlObject" min_major='7'  matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<include file='inc_DbFile.xml' />
			<property_link>s.groupid = 0</property_link>
		</version>
		<version min_major='9'>
			<property_link table="sys.database_files AS s">s.type = 1</property_link>
            <property_link fields='#NumberOfDiskReads#NumberOfDiskWrites#BytesReadFromDisk#BytesWrittenToDisk#' join='sys.dm_io_virtual_file_stats(default, default) AS fs'>fs.database_id = db_id() AND fs.file_id = s.file_id</property_link>
        </version>
    <version matrix_min_major='10'>
      <property_link table="sys.database_files AS s">s.type = 1 and s.database_fragment_id = brick_id()</property_link>
		</version>
  </settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='9'  matrix_min_major='10'>
			<include file='inc_DbFile.xml' />
		</version>
		<property name="UsedSpace" type="float" access='Read' expensive="true">CAST(FILEPROPERTY(s.name, 'SpaceUsed') AS float)* CONVERT(float,8)</property>
    <version min_major ="10"  matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
    <version matrix_min_major='10'>
      <property name="FileName" type="nvarchar" size="520" read_only_after_creation="true">REPLACE(s.physical_name,cast(SERVERPROPERTY('InstanceDefaultLogPath') as nvarchar(520)),N'')</property>
      <property name="Size" type="float">(select sum(m.size)* CONVERT(float,8) from sys.master_files m where (m.type = 1) and m.database_id = db_id() and m.drop_lsn is null and m.file_id = s.file_id group by m.file_id)</property>
    </version>
  </properties>
</EnumObject>

<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="Audit" impl_type="SqlObject" min_major="10" matrix_min_major='10'>
  <settings>
    <property_link table='sys.server_audits AS au'></property_link>
    <property_link fields='#FileName#MaximumFileSize#ReserveDiskSpace#MaximumRolloverFiles#MaximumFiles#' left_join='sys.server_file_audits AS fileau'>fileau.audit_id = au.audit_id AND fileau.audit_guid = au.audit_guid</property_link>
    <property_link fields='#Owner#' left_join='sys.server_principals as p'>au.principal_id = p.principal_id</property_link>
    <post_process fields = '#MaximumFileSize#MaximumFileSizeUnit#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessAuditProperties'
				triggered_fields='#MaximumFileSizeInMegaBytes#'/>
  </settings>
  <properties>
    <include file='inc_urn.xml' />
    <property name='Name' type='sysname'>au.name</property>
    <property name='ID' type='int' access='Read'>au.audit_id</property>
    <property name='DestinationType' type='tinyint' report_type='AuditDestinationType'>case when au.type='FL' then 0 when au.type='SL' then 1 when au.type='AL' then 2 end</property>
    <property name='QueueDelay' type='int'>au.queue_delay</property>
    <property name='OnFailure' type='tinyint' report_type='OnFailureAction'>au.on_failure</property>
    <property name='Enabled' type='bit' access='Read'>au.is_state_enabled</property>
    <property name='Guid' type='uniqueidentifier' report_type2='System.Guid' read_only_after_creation='true'>au.audit_guid</property>
    <property name='CreateDate' type='datetime' access='Read'>au.create_date</property>
    <property name='DateLastModified' type='datetime' access='Read'>au.modify_date</property>
    <property name='FilePath' type='sysname'>ISNULL(log_file_path,'')</property>
    <property name='FileName' type='sysname' access='Read'>ISNULL(log_file_name,'')</property>
    <property name='MaximumFileSizeInMegaBytes' type='bigint' hidden='true'>ISNULL(fileau.max_file_size,0)</property>
    <property name='MaximumFileSize' type='int'>0</property>
    <property name='MaximumFileSizeUnit' type='tinyint' report_type='AuditFileSizeUnit'>0</property>
    <property name='ReserveDiskSpace' type='bit'>ISNULL(fileau.reserve_disk_space, 0)</property>
    <property name='MaximumRolloverFiles' type='bigint'>ISNULL(fileau.max_rollover_files, 0)</property>

    <version min_major='11'>
      <property name='MaximumFiles' type='int'>ISNULL(fileau.max_files, 0)</property>
      <property name='Filter' type="nvarchar" size='3000'>ISNULL(au.predicate, '')</property>
    </version>

    <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>
<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ServerAuditSpecification" impl_type="SqlObject" min_major="10" matrix_min_major='10'>
    <settings>
        <property_link table='sys.server_audit_specifications AS sas'></property_link>
        <property_link fields='#AuditName#' left_join='sys.server_audits AS au'>sas.audit_guid = au.audit_guid</property_link>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name='Name' type='sysname'>sas.name</property>
        <property name='ID' type='int' access='Read'>sas.server_specification_id</property>
        <property name='Enabled' type='bit' access='Read'>sas.is_state_enabled</property>
        <property name='Guid' type='uniqueidentifier' report_type2='System.Guid' access='Read'>sas.audit_guid</property>
        <property name='AuditName' type='sysname'>ISNULL(au.name, '')</property>
        <property name='CreateDate' type='datetime' access='Read'>sas.create_date</property>
        <property name='DateLastModified' type='datetime' access='Read'>sas.modify_date</property>
        <include file='inc_policy_health_state.xml'/>
    </properties>
</EnumObject><?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ServerAuditSpecificationDetail" impl_type="SqlObject" min_major="10">
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table="sys.server_audit_specification_details AS details"></property_link>
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='1' expression="{0} + '/ServerAuditSpecificationDetail'">
        <link_field type='parent' field="Urn" />
      </link_multiple>
    </property>
    <property name="ParentID" type="int">details.server_specification_id</property>
    <property name="AuditActionType" type="char" size="4">details.audit_action_name</property>
    <property name="ObjectClass" type="sysname">''</property>
    <property name="ObjectSchema" type="sysname">''</property>
    <property name="ObjectName" type="sysname">''</property>
    <property name="Principal" type="sysname">''</property>
  </properties>
</EnumObject><?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="DatabaseAuditSpecification" impl_type="SqlObject" min_major="10" matrix_min_major="10">
    <settings>
        <property_link table='sys.database_audit_specifications AS das'></property_link>
        <property_link fields='#AuditName#' left_join='sys.server_audits AS au'>das.audit_guid = au.audit_guid</property_link>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name='Name' type='sysname'>das.name</property>
        <property name='ID' type='int' access='Read'>das.database_specification_id</property>
        <property name='Enabled' type='bit' access='Read'>das.is_state_enabled</property>
        <property name='Guid' type='uniqueidentifier' report_type2='System.Guid' access='Read'>das.audit_guid</property>
        <property name='AuditName' type='sysname'>ISNULL(au.name, '')</property>
        <property name='CreateDate' type='datetime' access='Read'>das.create_date</property>
        <property name='DateLastModified' type='datetime' access='Read'>das.modify_date</property>
        <property name='DatabaseName' type='sysname' access='Read'>db_name()</property>
        <include file='inc_policy_health_state.xml'/>
    </properties>
</EnumObject>.<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="DatabaseAuditSpecificationDetail" impl_type="SqlObject" min_major="10">
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table="sys.database_audit_specification_details AS details"></property_link>
    <property_link fields="#ObjectSchema#ObjectName#" left_join="sys.all_objects AS o">details.is_group = 0 and o.object_id = details.major_id and details.class_desc != 'SCHEMA' and details.class_desc != 'DATABASE'</property_link>
    <property_link fields="#ObjectName#" left_join="sys.schemas as sch">details.is_group = 0 and sch.schema_id = details.major_id and details.class_desc = 'SCHEMA'</property_link>
    <property_link fields="#Principal#" left_join="sys.database_principals as p">details.is_group = 0 and p.principal_id = details.audited_principal_id</property_link>
    <property_link fields="#ObjectClass#" left_join="sys.securable_classes as s">details.is_group = 0 and s.class = details.class</property_link>
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='1' expression="{0} + '/DatabaseAuditSpecificationDetail'">
        <link_field type='parent' field="Urn" />
      </link_multiple>
    </property>
    <property name="ParentID" type="int">details.database_specification_id</property>
    <property name="AuditActionType" type="sysname">details.audit_action_name</property>
    <property name="ObjectClass" type="sysname">ISNULL(case when s.class_desc != 'DATABASE' and s.class_desc != 'SCHEMA' then 'OBJECT' else s.class_desc end,'')</property>
    <property name="ObjectSchema" type="sysname">ISNULL(SCHEMA_NAME(o.schema_id), '')</property>
    <property name="ObjectName" type="sysname">ISNULL(case when details.is_group = 0 and details.class_desc = 'DATABASE' then db_name() when details.class_desc = 'SCHEMA' then sch.name else o.name end,'')</property>
    <property name="Principal" type="sysname">ISNULL(p.name, '')</property>
  </properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject type="Role" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
  <settings distinct='true'>
    <version min_major='7' max_major='8'>
      <property_link table = 'master.dbo.spt_values v1'>
        v1.low=0 and v1.type='SRV'
      </property_link>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property_link table = 'sys.server_principals r'>r.type ='R'</property_link>
      <property_link fields = '#Number#' table ='master.dbo.spt_values v1'>
        v1.name = r.name and v1.low = 0
      </property_link>
    </version>
    <version min_major='11' matrix_min_major='10'>
      <property_link fields = '#Owner#' left_join='sys.server_principals AS ou'>ou.principal_id = r.owning_principal_id</property_link>
    </version>
  </settings>
  <properties>
    <include file='inc_urn.xml' />
    <property name="NType" type="sysname" access='Read' hidden='true'>Role</property>
    <version min_major='7' max_major='8'>
      <property name="Name" type="nvarchar" size="250">v1.name</property>
      <property name="Description" type="nvarchar" size="250" table="master.dbo.spt_values v2" link="v2.low=-1 and v2.type='SRV' and v1.number=v2.number">v2.name</property>
      <property name="Number" type="int" hidden="true">v1.number</property>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property name="Name" type="sysname">r.name</property>
      <property name="ID" type="int">r.principal_id</property>
      <property name="Description" type="nvarchar" size="250">N''</property>
      <property name="Number" type="int" hidden="true">v1.number</property>

      <!-- enable permissions -->
      <property name="PermissionClass" type="int" hidden='true'>101</property>
    </version> 
    <version min_major='11' matrix_min_major='10'>
      <property name="DateModified" type="datetime" access="Read">r.modify_date</property>
      <property name="DateCreated" type="datetime" access="Read">r.create_date</property>
      <property name="Owner" type="sysname">ou.name</property>
      <property name="IsFixedRole" type="bit" cast='true' access='Read'>r.is_fixed_role</property>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
7<?xml version="1.0" ?>
<EnumObject type="Login" impl_type="SqlObject" min_major='7'  matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='master.dbo.syslogins AS log' />
			<property_link fields="#LanguageAlias#" left_join="master.dbo.syslanguages AS l">log.language = l.name</property_link>
		</version>
		<version min_major='9'  matrix_min_major='10'>
			<property_link table='sys.server_principals AS log'>log.type in ('U', 'G', 'S', 'C', 'K') AND log.principal_id not between 101 and 255 AND log.name &lt;&gt; N'##MS_AgentSigningCertificate##'</property_link>
			<property_link fields="#LanguageAlias#" left_join="sys.syslanguages AS l">l.name = log.default_language_name</property_link>
			<property_link fields="#PasswordPolicyEnforced#PasswordExpirationEnabled#" 
					left_join="sys.sql_logins" alias = 'sqllog'>sqllog.principal_id = log.principal_id</property_link>
      <property_link fields="#DenyWindowsLogin#WindowsLoginAccessType#HasAccess#" left_join="sys.server_permissions AS sp">sp.grantee_principal_id = log.principal_id and sp.type = N'COSQ'</property_link>
      <property_link fields="#Certificate#" left_join="master.sys.certificates AS cert">cert.sid = log.sid</property_link>
      <property_link fields="#AsymmetricKey#" left_join="master.sys.asymmetric_keys AS ak">ak.sid = log.sid</property_link>
      <property_link fields="#Credential#" left_join="sys.credentials AS c">c.credential_id = log.credential_id</property_link>
    </version>
    <version cloud_min_major='10'>
      <property_link table='sys.sql_logins AS sqllog'>sqllog.type in ('S')</property_link>
      <property_link fields="#LanguageAlias#" left_join="sys.syslanguages AS l">l.name = sqllog.default_language_name</property_link>
    </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">log.loginname</property>
			<property name="Language" type="sysname">ISNULL(log.language, N'')</property>
			<property name="LanguageAlias" type="sysname" access='Read'>l.alias</property>
			<property name="DefaultDatabase" type="sysname">ISNULL(log.dbname,N'')</property>
			<property name="DenyWindowsLogin" type="bit" cast='true'>log.denylogin</property>
			<property name="LoginType" type="int" report_type="LoginType" read_only_after_creation="true">CASE WHEN 0 &lt;&gt; log.isntuser THEN 0 WHEN 0 &lt;&gt; log.isntgroup THEN 1 ELSE 2 END</property>
			<property name="WindowsLoginAccessType" type="int" report_type="WindowsLoginAccessType" access='Read'>CASE WHEN (0 = log.isntuser AND 0 = log.isntgroup) THEN 99 WHEN (0 = log.denylogin and 0 = log.hasaccess) THEN 0 WHEN (0 = log.denylogin ) THEN 1 ELSE 2 END</property>
			<property name="HasAccess" type="bit" access='Read' cast='true'>log.hasaccess</property>
			<property name="Sid" type="varbinary" size = "85" read_only_after_creation="true">log.sid</property>
			<property name="CreateDate" type="datetime" access='Read'>log.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>log.updatedate</property>
			<property name="IsSystemObject" type="bit" cast='true' access='Read'>CASE log.sid WHEN 0x01 THEN 1 ELSE 0 END</property>
		</version>

    <version min_major='9'  matrix_min_major='10'>
      <property name="Name" type="sysname">log.name</property>
      <property name="Language" type="sysname">ISNULL(log.default_language_name,N'')</property>
      <property name="LanguageAlias" type="sysname" access='Read'>l.alias</property>
      <property name="DefaultDatabase" type="sysname">ISNULL(log.default_database_name, N'')</property>
      <property name="DenyWindowsLogin" type="bit" cast='true'>CASE sp.state WHEN N'D' THEN 1 ELSE 0 END</property>
      <property name="LoginType" type="int" report_type="LoginType" read_only_after_creation="true">CASE WHEN N'U' = log.type THEN 0 WHEN N'G' = log.type THEN 1 WHEN N'S' = log.type THEN 2 WHEN N'C' = log.type THEN 3 WHEN N'K' = log.type THEN 4 END</property>
      <property name="WindowsLoginAccessType" type="int" report_type="WindowsLoginAccessType" access='Read'>CASE WHEN (N'U' != log.type AND N'G' != log.type) THEN 99 WHEN (sp.state is null) THEN 0 WHEN (N'G'=sp.state) THEN 1 ELSE 2 END</property>
      <property name="HasAccess" type="bit" access='Read' cast='true'>CASE WHEN (sp.state is null) THEN 0 ELSE 1 END</property>
      <property name="Sid" type="varbinary" size = "85" read_only_after_creation="true">log.sid</property>
      <property name="CreateDate" type="datetime" access='Read'>log.create_date</property>
      <property name="DateLastModified" type="datetime" access='Read'>log.modify_date</property>
      <property name="IsLocked" type="bit" access='Read' cast='true'>LOGINPROPERTY(log.name, N'IsLocked')</property>
      <property name="IsPasswordExpired" type="bit" access='Read' cast='true'>LOGINPROPERTY(log.name, N'IsExpired')</property>
      <property name="MustChangePassword" type="bit" access='Read' cast='true'>LOGINPROPERTY(log.name, N'IsMustChange')</property>
      <property name="ID" type="int" access='Read'>log.principal_id</property>
      <property name="Credential" type="sysname">ISNULL(c.name,N'')</property>
      <property name="Certificate" type="sysname" read_only_after_creation="true">ISNULL(cert.name,N'')</property>
      <property name="AsymmetricKey" type="sysname" read_only_after_creation="true">ISNULL(ak.name,N'')</property>
      <property name="IsDisabled" type="bit" access="Read">log.is_disabled</property>
      

      <!-- enable permissions -->
      <property name="IsSystemObject" type="bit" cast='true' access='Read'>CASE WHEN log.principal_id &lt; 256 THEN 1 ELSE 0 END</property>
    </version>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
      <!-- enable permissions -->
      <property name="PermissionClass" type="int" hidden='true'>101</property>      
      <property name="PasswordExpirationEnabled" type="bit" cast = "true">sqllog.is_expiration_checked</property>
      <property name="PasswordPolicyEnforced" type="bit" cast = "true" >sqllog.is_policy_checked</property>
    </version>
    <version cloud_min_major='10'>
      <property name="Name" type="sysname">sqllog.name</property>
      <property name="Language" type="sysname">ISNULL(sqllog.default_language_name,N'')</property>
      <property name="LanguageAlias" type="sysname" access='Read'>l.alias</property>
      <property name="DefaultDatabase" type="sysname">ISNULL(sqllog.default_database_name, N'')</property>
      <property name="LoginType" type="int" report_type="LoginType" read_only_after_creation="true">CASE WHEN N'S' = sqllog.type THEN 2 END</property>
      <property name="Sid" type="varbinary" size = "85" read_only_after_creation="true">sqllog.sid</property>
      <property name="CreateDate" type="datetime" access='Read'>sqllog.create_date</property>
      <property name="DateLastModified" type="datetime" access='Read'>sqllog.modify_date</property>
      <property name="ID" type="int" access='Read'>sqllog.principal_id</property>
      <property name="IsDisabled" type="bit" access="Read" cast ="true">sqllog.is_disabled</property>
      
      <property name="IsSystemObject" type="bit" cast='true' access='Read'>0</property>
    </version>
    <version min_major='11'>
      <property name="PasswordHashAlgorithm" type="int" access='Read' cast='true' report_type='PasswordHashAlgorithm'>
        ISNULL(LOGINPROPERTY(log.name, N'PasswordHashAlgorithm'), 0)
      </property>
      <property name="SidHexString" type="nvarchar" size="256" access='Read'>
        sys.fn_varbintohexsubstring(0,log.sid, 1, 0)
      </property>
    </version>
		<version min_major='10'  matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="DatabaseMapping" impl_type="SqlObject" min_major='7' matrix_min_major="10">
	<settings>
		<parent_link>
			<link parent="Name" local="LoginName" />
		</parent_link>
		<property_link table = '#loginmappings AS logmap'/>
		<prefix>
create table #loginmappings( LoginName sysname NULL, DBName sysname NULL, UserName sysname NULL, AliasName sysname NULL )
declare @db_name nvarchar(512)
declare crs cursor local fast_forward
	</prefix>
		<version min_major = '7' max_major = '8'>
			<prefix> 
	for ( select name from master.dbo.sysdatabases where 1 = has_dbaccess(name)) 
			</prefix>
		</version>
		<version min_major = '9' matrix_min_major='10'>
			<prefix> 
	for ( select name from sys.databases where 1 = has_dbaccess(name)) 
			</prefix>
		</version>
	<prefix>
open crs 
fetch crs into @db_name
while @@fetch_status &gt;= 0 
begin 
	set @db_name = quotename(@db_name)
		</prefix>
		<version min_major = '7' max_major = '8'>
			<prefix> 
	exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from dbo.sysusers u where suser_sname(u.sid) is not null')
			</prefix>
		</version>
		<version min_major = '9' matrix_min_major="10">
			<prefix> 
	exec('use ' + @db_name + ' INSERT #loginmappings select suser_sname(u.sid), db_name(), u.name, null from sys.database_principals AS u where suser_sname(u.sid) is not null')
			</prefix>
		</version>
		<prefix> 
	fetch crs into @db_name
end 
close crs
deallocate crs
		</prefix>
		<postfix>
drop table #loginmappings
		</postfix>
	</settings>
	<properties>
		<property name="LoginName" type="sysname" access="Read">logmap.LoginName</property>
		<property name="DBName" type="sysname" access="Read">logmap.DBName</property>
		<property name="UserName" type="sysname" access="Read">logmap.UserName</property>
	</properties>
</EnumObject>
,<?xml version="1.0" ?>
<EnumObject type="User" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link 
				table = 'dbo.sysusers AS u'>((u.issqlrole != &lt;msparam&gt;1&lt;/msparam&gt; and u.isapprole != &lt;msparam&gt;1&lt;/msparam&gt; ) or (u.sid=&lt;msparam&gt;0x00&lt;/msparam&gt;)) and u.isaliased != &lt;msparam&gt;1&lt;/msparam&gt; and u.hasdbaccess != &lt;msparam&gt;0&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table = 'sys.database_principals AS u'>u.type in ('U', 'S', 'G', 'C', 'K')</property_link>
			<property_link fields="#HasDBAccess#" left_join="sys.database_permissions AS dp">dp.grantee_principal_id = u.principal_id and dp.type = &lt;msparam&gt;CO&lt;/msparam&gt;</property_link>
    </version>
    <version min_major ="9" matrix_min_major='10'>
      <property_link fields="#Certificate#" left_join="sys.certificates AS cert">cert.sid = u.sid</property_link>
      <property_link fields="#AsymmetricKey#" left_join="sys.asymmetric_keys AS ak">ak.sid = u.sid</property_link>
    </version>
    <version cloud_min_major='10'>
      <post_process fields = '#UserType#Login#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessUser' triggered_fields='#Sid1#'></post_process>
     </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">u.name</property>
    <version min_major='7' max_major='8'>
			<property name="ID" type="int" cast = 'true' access='Read'>u.uid</property>
			<property name="Login" type="sysname" read_only_after_creation="true" mode="design">ISNULL(suser_sname(u.sid),N'')</property>
			<property name="IsSystemObject" type="bit" access='Read'
				cast = 'true'>CASE WHEN u.uid = 1 OR u.uid = 16382 OR u.uid = 16383 THEN 1 ELSE 0 END</property>
			<property name="LoginType" type="int" report_type="LoginType" access='read'>CASE WHEN 0 &lt;&gt; u.isntuser THEN 0 WHEN 0 &lt;&gt; u.isntgroup THEN 1 ELSE 2 END</property>
            <property name="UserType" type="int" report_type="UserType" read_only_after_creation="true" mode="design">0</property>
			<property name="Sid" type="varbinary" size = "85" access='Read'>u.sid</property>
			<property name="HasDBAccess" type="bit" access='Read' cast='true'>u.hasdbaccess</property>
	
			<property name="CreateDate" type="datetime" access='Read'>u.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>u.updatedate</property>

			<!-- extended properties support : commented out: sysproperties is not accessible to regular users -->
			<property name="ExtPropClass" type="int" hidden='true'>2</property>
			<property name="ObjectTypeName" type="sysname" hidden="true">N'USER'</property>
			<property name="ObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='filter' field="Name" default_value="default"/>
				</link_multiple>
			</property>
		</version>			
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="ID" type="int" access='Read'>u.principal_id</property>
			<property name="IsSystemObject" type="bit" access='Read' cast = 'true'>CASE WHEN u.principal_id &lt; 5 OR u.principal_id = 16382 OR u.principal_id = 16383 THEN 1 ELSE 0 END</property>
			<property name="LoginType" type="int" report_type="LoginType" access='read'>CASE WHEN N'U' = u.type THEN 0 WHEN N'G' = u.type THEN 1 WHEN N'S' = u.type THEN 2 WHEN N'C' = u.type THEN 3 WHEN N'K' = u.type THEN 4 END</property>
			<property name="HasDBAccess" type="bit" access='Read' cast='true'>CASE dp.state WHEN N'G' THEN 1 WHEN 'W' THEN 1 ELSE 0 END</property>
			<property name="Sid" type="varbinary" size = "85" access='Read'>u.sid</property>
      			<property name="CreateDate" type="datetime" access='Read'>u.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>u.modify_date</property>
			<property name="DefaultSchema" type="sysname" mode="design">ISNULL(u.default_schema_name,N'')</property>
			
			<!-- extended properties support -->	
			<property name="ExtPropClass" type="int" hidden='true'>4</property>
		</version>
    <version min_major='9' matrix_min_major='10'>
      <property name="Certificate" type="sysname" read_only_after_creation="true">ISNULL(cert.name,N'')</property>
      <property name="AsymmetricKey" type="sysname" read_only_after_creation="true">ISNULL(ak.name,N'')</property>
      <property name="Login" type="sysname" read_only_after_creation="true" mode="design">ISNULL(suser_sname(u.sid),N'')</property>
    </version>
    <version min_major='9' max_major='10' matrix_min_major='10'>
      <property name="UserType" type="int" report_type="UserType" read_only_after_creation="true" mode="design">CASE WHEN N'C' = u.type THEN 1 WHEN N'K' = u.type THEN 2 WHEN N'S' = u.type AND suser_sname(u.sid) IS NULL THEN 3 ELSE 0 END</property>
      <property name="AuthenticationType" type="int" report_type="AuthenticationType" access='Read'>CASE WHEN N'U' = u.type or N'G' = u.type THEN 3 WHEN N'S' = u.type and suser_sname(u.sid) IS NOT NULL THEN 1 ELSE 0 END</property>
    </version>
    <version cloud_min_major='10'>
      <property name="UserType" type="int" report_type="UserType" read_only_after_creation="true" expensive='true'>0</property>
      <property name="Login" type="sysname" read_only_after_creation="true" expensive='true'>0</property>
      <property name="Sid1" type="nvarchar" size ="85" access='Read' hidden='true'>ISNULL(convert(nvarchar(85), u.sid, 1),N'')</property>
    </version>
    <version min_major='11'>
      <property name="DefaultLanguageLcid" type="int">ISNULL(u.default_language_lcid, -1)</property>
      <property name="DefaultLanguageName" type="sysname">ISNULL(u.default_language_name,N'')</property>
      <property name="AuthenticationType" type="int" report_type="AuthenticationType" access='Read'>u.authentication_type</property>
      <property name="UserType" type="int" report_type="UserType" read_only_after_creation="true" mode="design">
        CASE
        WHEN N'C' = u.type THEN 1
        WHEN N'K' = u.type THEN 2        
        WHEN N'S' = u.type AND SUSER_SNAME(u.sid) is null AND u.authentication_type != 2 THEN 3
        ELSE 0 END
      </property>
    </version>
		<!-- extended properties support -->
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
3
<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysusers AS rl'>rl.issqlrole = 1</property_link>
			<property_link fields = '#Owner#' join='dbo.sysusers ou'>ou.uid = rl.altuid</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table='sys.database_principals AS rl'>rl.type = 'R'</property_link>
			<property_link fields = '#Owner#' join='sys.database_principals AS ou'>ou.principal_id = rl.owning_principal_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">rl.name</property>
    <version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true'>rl.uid</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.updatedate</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>2</property>			
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="ID" type="int">rl.principal_id</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.modify_date</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>4</property>			
		</version>
		<property name="Owner" type="sysname" mode="design">ou.name</property>
		
		<property name="IsFixedRole" type="bit" cast='true' access='Read' mode="design">
			<link_multiple no='1' expression="CASE WHEN {0} &gt; 16383 AND {0} &lt; 16400 THEN 1 ELSE 0 END">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="DatabaseUrn" type="nvarchar" size="600" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
		
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
*<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysusers AS rl'>rl.isapprole = 1</property_link>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table='sys.database_principals AS rl'>rl.type = 'A'</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">rl.name</property>
    <version min_major='7' max_major='8'>		
			<property name="ID" type="int" cast='true'>rl.uid</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.createdate</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.updatedate</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>2</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="ID" type="int">rl.principal_id</property>
			<property name="DefaultSchema" type="sysname">rl.default_schema_name</property>
			
			<property name="CreateDate" type="datetime" access='Read'>rl.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>rl.modify_date</property>
			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>4</property>
		</version>
      <property name="DatabaseUrn" type="nvarchar" size="600" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='parent' field="Urn" />
        </link_multiple>
      </property>
      <property name="ExtPropMajorID" type="int" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
4<?xml version="1.0" ?>
<EnumObject type="FixedDrive" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#fixdrv">
		<prefix> 
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives
update #fixdrv set Name = Name + ':'
		</prefix>
		<postfix> drop table #fixdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject>7<?xml version="1.0" ?>
<EnumObject type="RemoteDrive" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#fixdrv">
		<prefix> 
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives 1
update #fixdrv set Name = Name + ':'
		</prefix>
		<postfix> drop table #fixdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject><<?xml version="1.0" ?>
<EnumObject type="RemovableDrive" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#fixdrv">
		<prefix>
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #fixdrv EXECUTE master.dbo.xp_fixeddrives 2
update #fixdrv set Name = Name + ':'
		</prefix>
		<postfix> drop table #fixdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject>c<?xml version="1.0" ?>
<EnumObject type="CdromDrive" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings main_table="#cdromdrv">
		<prefix>
            create table #cdromdrv ( Name sysname NOT NULL, Size int NOT NULL ) insert #cdromdrv EXECUTE master.dbo.xp_fixeddrives 3
            update #cdromdrv set Name = Name + ':'
        </prefix>
        <postfix> drop table #cdromdrv</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="FixedDrive" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#fixdrv">
		<prefix>
create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL, Type sysname NULL ) 

insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 
update #fixdrv set Type = 'Fixed' where Type IS NULL 
insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 1 
update #fixdrv set Type = 'Remote' where Type IS NULL 
insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 2 
update #fixdrv set Type = 'Removable' where Type IS NULL
		</prefix>
        <version min_major='9' matrix_min_major='10'>
            <prefix>
                insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 3
                update #fixdrv set Type = 'CD-ROM' where Type IS NULL
            </prefix>
        </version>
        <prefix>
            update #fixdrv set Name = Name + ':'
        </prefix>
		<postfix> 
drop table #fixdrv
		</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">Name</property>
		<property name="Size" type="int" access="Read">Size</property>
		<property name="Type" type="sysname" access="Read">Type</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#filetmpfin">
		<prefix>
		create table #filetmpfin (Name nvarchar(255) NOT NULL, IsFile bit NULL) 
		if(@Name is null) 
		begin 
			create table #filetmp (Name nvarchar(255) NOT NULL, depth int NOT NULL, IsFile bit NULL ) 
			insert #filetmp EXECUTE master.dbo.xp_dirtree @Path, 1, 1 
			insert #filetmpfin select Name, IsFile from #filetmp f 
			drop table #filetmp 
		end 
		if(NOT @Name is null) 
		begin 
			declare @FullName nvarchar(300) 
			if(@Path is null) 
				select @FullName = @Name 
			else
				select @FullName = @Path 	+ '\' + @Name 
			create table #filetmp2 ( Exist bit NOT NULL, IsDir bit NOT NULL, DirExist bit NULL ) 
			insert #filetmp2 EXECUTE master.dbo.xp_fileexist @FullName 
			insert #filetmpfin select @Name, 1-IsDir from #filetmp2 where Exist = 1 or IsDir = 1 drop table #filetmp2 
		end
		</prefix>
		<postfix>drop table #filetmpfin</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='255' access="Read">Name</property>
		<property name="FullName" type="nvarchar" size='300' access="Read">@Path+'\'+Name</property>
		<property name="Path" type="nvarchar" size='300' access="Read">@Path</property>
		<property name="IsFile" type="bit" access="Read">IsFile</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Language" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="master.dbo.syslanguages s" />
		</version>
		<version min_major='9' matrix_min_major='10'>
      <property_link table="sys.syslanguages s" />
    </version>
  </settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>Language</property>
		<property name="Name" type="sysname" access="ReadWrite"> s.name</property>
		<property name="LangID" type="smallint" access="Read"> s.langid</property>
		<property name="DateFormat" type="sysname" access="Read"> s.dateformat</property>
		<property name="Alias" type="sysname" access="Read"> s.alias</property>
		<property name="Days" type="sysname" access="Read"> s.days</property>
		<property name="FirstDayOfWeek" type="tinyint" access="Read"> s.datefirst</property>
		<property name="Months" type="sysname" access="Read"> s.months</property>
		<property name="ShortMonths" type="sysname" access="Read"> s.shortmonths</property>
		<property name="Upgrade" type="int" access="Read"> s.upgrade</property>
		<property name="LocaleID" type="int" access="Read"> s.lcid</property>
		<property name="MsgLangID" type="smallint" access="Read"> s.msglangid</property>
	</properties>
</EnumObject>#<?xml version="1.0" ?>
<EnumObject type="LinkedServer" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='master.dbo.sysservers AS srv'>srv.srvid != 0</property_link>
		</version>
        <version min_major='7' max_major='7'>
		    <property_link fields='#CollationCompatible#DataAccess#Distributor#DistPublisher#Publisher#RPC#RPCOut#Subscriber#' join='#tmp_srvoptions' alias='so'>srv.srvid != 0 AND srv.srvname = so.srvname</property_link>
        </version>
		<version min_major='9' >
			<property_link table='sys.servers AS srv'>srv.server_id != 0</property_link>
		</version>
		<version min_major = '7' max_major='7'>
			<prefix fields='#CollationCompatible#DataAccess#Distributor#DistPublisher#Publisher#RPC#RPCOut#Subscriber'>
                create table #tmp_srvoptions([srvname] nvarchar(255) not null, [collationcompatible] bit not null, [dataaccess] bit not null, [dist] bit not null, [dpub] bit not null, [pub] bit not null, [rpc] bit not null, [rpcout] bit not null, [sub] bit not null)
                declare @srvname nvarchar(255)
                declare @collation_compatible bit
                declare @data_access bit
                declare @dist bit
                declare @pub bit
                declare @dpub bit
                declare @rpc bit
                declare @rpc_out bit
                declare @sub bit
                create table #tmp(opt nvarchar(100))
                declare srvname_cursor cursor for
                select srvname FROM dbo.sysservers WHERE srvid &lt;&gt; 0
                open srvname_cursor
                fetch next from srvname_cursor into @srvname
                while @@FETCH_STATUS = 0
                begin
                truncate table #tmp
                insert #tmp exec sp_serveroption @srvname
                set @collation_compatible = case when exists ( select * from #tmp where opt = 'collation compatible') then 1 else 0 end
                set @data_access = case when exists ( select * from #tmp where opt = 'data access') then 1 else 0 end
                set @dist = case when exists ( select * from #tmp where opt = 'dist') then 1 else 0 end
                set @dpub = case when exists ( select * from #tmp where opt = 'dpub') then 1 else 0 end
                set @pub = case when exists ( select * from #tmp where opt = 'pub') then 1 else 0 end
                set @rpc = case when exists ( select * from #tmp where opt = 'rpc') then 1 else 0 end
                set @rpc_out = case when exists ( select * from #tmp where opt = 'rpc out') then 1 else 0 end
                set @sub = case when exists ( select * from #tmp where opt = 'sub') then 1 else 0 end
                insert into #tmp_srvoptions([srvname], [collationcompatible], [dataaccess], [dist], [dpub], [pub], [rpc], [rpcout], [sub]) values (@srvname, @collation_compatible, @data_access, @dist, @dpub, @pub, @rpc, @rpc_out, @sub)
                fetch next from srvname_cursor into @srvname
                end
                close srvname_cursor
                deallocate srvname_cursor
                drop table #tmp
			</prefix>
		    <postfix fields='#CollationCompatible#DataAccess#Distributor#DistPublisher#Publisher#RPC#RPCOut#Subscriber#'>
                drop table #tmp_srvoptions
		    </postfix>
		</version>
		<post_process fields="#ProviderString#" class_name="Microsoft.SqlServer.Management.Smo.PostProcessCreateSqlSecureString" triggered_fields="#ProviderStringIn#" />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">srv.srvname</property>
			<property name="ID" type="int" cast='true'>srv.srvid</property>
			<property name="Catalog" type="sysname" read_only_after_creation="true">ISNULL(srv.catalog,N'')</property>
			<property name="DataSource" type="sysname" read_only_after_creation="true">ISNULL(srv.datasource,N'')</property>
			<property name="Location" type="sysname" read_only_after_creation="true">ISNULL(srv.location,N'')</property>
			<property name="ProductName" type="sysname" read_only_after_creation="true">srv.srvproduct</property>
			<property name="ProviderName" type="sysname" read_only_after_creation="true">srv.providername</property>
			<property name="ProviderStringIn" type="sysname" hidden="true">srv.providerstring</property>
			<property name="ProviderString" type="sysname" report_type="Internal.SqlSecureString" read_only_after_creation="true">null</property>
		</version>
		<version min_major='7' max_major='7'>
			<property name="CollationCompatible" type="bit" cast='true'>so.collationcompatible</property>
			<property name="DataAccess" type="bit" cast='true'>so.dataaccess</property>
			<property name="Distributor" type="bit" cast='true'>so.dist</property>
			<property name="DistPublisher" type="bit" cast='true'>so.dpub</property>
			<property name="Publisher" type="bit" cast='true'>so.pub</property>
			<property name="Rpc" type="bit" cast='true'>so.rpc</property>
			<property name="RpcOut" type="bit" cast='true'>so.rpcout</property>
			<property name="Subscriber" type="bit" cast='true'>so.sub</property>
		</version>
		<version min_major='8' max_major='8' comment='those need to be ported to 7.0, but we obtain them differently'>
			<property name="CollationCompatible" type="bit" cast='true'>srv.collationcompatible</property>
			<property name="DataAccess" type="bit" cast='true'>srv.dataaccess</property>
			<property name="Distributor" type="bit" cast='true'>srv.dist</property>
			<property name="DistPublisher" type="bit" cast='true'>srv.dpub</property>
			<property name="Publisher" type="bit" cast='true'>srv.pub</property>
			<property name="Rpc" type="bit" cast='true'>srv.rpc</property>
			<property name="RpcOut" type="bit" cast='true'>srv.rpcout</property>
			<property name="Subscriber" type="bit" cast='true'>srv.sub</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="CollationName" type="sysname" cast='true'>ISNULL(COLLATIONPROPERTYFROMID(srv.srvcollation, 'name'),N'')</property>
			<property name="ConnectTimeout" type="int">srv.connecttimeout</property>
			<property name="LazySchemaValidation" type="bit" cast='true'>srv.lazyschemavalidation</property>
			<property name="QueryTimeout" type="int">srv.querytimeout</property>
			<property name="UseRemoteCollation" type="bit" cast='true'>srv.useremotecollation</property>
		</version>
		<version min_major='9'>
			<property name="Name" type="sysname">srv.name</property>
			<property name="ID" type="int" cast='true'>srv.server_id</property>
			<property name="Catalog" type="sysname" read_only_after_creation="true">ISNULL(srv.catalog,N'')</property>
			<property name="DataSource" type="sysname" read_only_after_creation="true">ISNULL(srv.data_source,N'')</property>
			<property name="Location" type="sysname" read_only_after_creation="true">ISNULL(srv.location,N'')</property>
			<property name="ProductName" type="sysname" read_only_after_creation="true">srv.product</property>
			<property name="ProviderName" type="sysname" read_only_after_creation="true">srv.provider</property>
			<property name="CollationCompatible" type="bit" cast='true'>srv.is_collation_compatible</property>
			<property name="DataAccess" type="bit" cast='true'>srv.is_data_access_enabled</property>
			<property name="Distributor" type="bit" cast='true'>srv.is_distributor</property>
      <!-- DistPublisher defaults to 0 because we need to have this property 
           in the property bag for Yukon -->
			<property name="DistPublisher" type="bit" cast='true'>0</property>
			<property name="Publisher" type="bit" cast='true'>srv.is_publisher</property>
			<property name="Rpc" type="bit" cast='true'>srv.is_remote_login_enabled</property>
			<property name="RpcOut" type="bit" cast='true'>srv.is_rpc_out_enabled</property>
			<property name="Subscriber" type="bit" cast='true'>srv.is_subscriber</property>
			<property name="CollationName" type="sysname">ISNULL(srv.collation_name,N'')</property>
			<property name="ConnectTimeout" type="int">srv.connect_timeout</property>
			<property name="LazySchemaValidation" type="bit">srv.lazy_schema_validation</property>
			<property name="QueryTimeout" type="int">srv.query_timeout</property>
			<property name="UseRemoteCollation" type="bit">srv.uses_remote_collation</property>
			<property name="DateLastModified" type="datetime" access='Read'>srv.modify_date</property>
			<property name="ProviderStringIn" type="sysname" hidden="true">srv.provider_string</property>
			<property name="ProviderString" type="sysname" report_type="Internal.SqlSecureString" read_only_after_creation="true">null</property>
		</version>
		<version min_major='10' >
			<property name="IsPromotionofDistributedTransactionsForRPCEnabled" type="bit" cast='true'>srv.is_remote_proc_transaction_promotion_enabled</property>
			<include file='inc_policy_health_state.xml'/>
		</version>
	</properties>
</EnumObject>
-<?xml version="1.0" ?>
<EnumObject type="Table" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS tbl">(tbl.type='U' or tbl.type='S')</property_link>
			<property_link fields='#HasClusteredIndex#IndexID#RowCount#' join="dbo.sysindexes AS idx">idx.id = tbl.id and idx.indid &lt; 2</property_link>
		</version>
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<property_link table="sys.tables AS tbl" />
			<property_link fields='#DataSpaceID#HasClusteredIndex#IndexID#IndexIDForPartition#FileStreamFileGroup#FileStreamPartitionScheme#DistributionPolicy#' join="sys.indexes AS idx">idx.object_id = tbl.object_id and idx.index_id &lt; &lt;msparam&gt;2&lt;/msparam&gt;</property_link>
		</version>
    <version min_major='9' matrix_min_major='10'>
      <property_link fields='#TextFileGroup#' left_join='sys.data_spaces AS dstext '>tbl.lob_data_space_id = dstext.data_space_id</property_link>
    </version>

    <!-- Change Tracking Properties for Table info is available in sys.change_tracking_tables-->
    <version min_major='10'>
      <property_link fields = '#ChangeTrackingEnabled#TrackColumnsUpdatedEnabled#' 
        left_join="sys.change_tracking_tables AS ctt">ctt.object_id = tbl.object_id </property_link>		
    </version>
    <version min_major="11">
      <property_link fields = 'FileTableDirectoryName#FileTableNameColumnCollation#FileTableNamespaceEnabled#'
        left_join="sys.filetables AS ft">ft.object_id = tbl.object_id </property_link>
    </version>
    <version min_major='7' matrix_min_major='10'>
      <prefix fields='#IndexSpaceUsed#DataSpaceUsed#'>
        declare @PageSize float
        select @PageSize=v.low/1024.0 from master.dbo.spt_values v where v.number=&lt;msparam&gt;1&lt;/msparam&gt; and v.type=&lt;msparam&gt;E&lt;/msparam&gt;
      </prefix>
    </version>
    <version cloud_min_major='10'>
      <property_link fields="#DistributionName#FederationColumnName#FederationColumnID#"
        left_join="sys.federated_table_columns AS ftc">(ftc.object_id = tbl.object_id)</property_link>
      <property_link fields="#DistributionName#FederationColumnName#FederationColumnID#"
        left_join="sys.columns AS c">(c.object_id = tbl.object_id) AND (c.column_id = ftc.column_id)</property_link>
    </version>
    <special_query database = 'tempdb' query = "tbl.name not like '#%'"/>
	</settings>
	<properties>
		<include alias='tbl' file='inc_object.xml' />
        <include alias='tbl' file='inc_system_table_view_sp_udf.xml' for="#IsSystemObject#" />
		<include file='inc_objprop_table_view.xml' />
    <version min_major='7' max_major='8'>
			<property name="FakeSystemTable" type="bit" access='Read' cast='true'>CASE WHEN (OBJECTPROPERTY(tbl.id, N'tableisfake')=1) THEN 1 ELSE 0 END</property>
			<property name="DataSpaceUsed" type="float" access='Read' expensive='true'>@PageSize*((SELECT sum(sidx.dpages)
		 FROM dbo.sysindexes sidx
		 WHERE sidx.indid &lt; &lt;msparam&gt;2&lt;/msparam&gt; and sidx.id = tbl.id)
		+
		(SELECT isnull(sum(sidx.used), 0)
		 FROM dbo.sysindexes sidx
		 WHERE sidx.indid = &lt;msparam&gt;255&lt;/msparam&gt; and sidx.id = tbl.id))</property>
			<property name="IndexSpaceUsed" type="float" access='Read' expensive='true'>@PageSize*(SELECT sum(isnull(sidx.used,0)-isnull(sidx.dpages,0))
		 FROM dbo.sysindexes sidx
		 WHERE sidx.indid &lt; &lt;msparam&gt;2&lt;/msparam&gt; and sidx.id = tbl.id)</property>
			<property name="HasClusteredIndex" type="bit" access='Read' cast='true'>CASE idx.indid WHEN  1 THEN 1 ELSE 0 END</property>
			<property name="TextFileGroup" type="sysname" read_only_after_creation="true">ISNULL((SELECT top 1 s.groupname FROM dbo.sysfilegroups s, dbo.sysindexes i WHERE i.id = tbl.id and i.indid in (0,1)AND i.groupid = s.groupid), N'')</property>
			<property name="Replicated" type="bit" access='Read' cast='true'>tbl.replinfo</property>
			<property name="HasFullTextCatalog" type="bit" hidden='true' cast='true'>OBJECTPROPERTY(tbl.id, 'TableFullTextCatalogId')</property>
			<!-- used for link with PartitionSchemeParameter, inc_storage -->
			<property name="IndexID" type="int" hidden='true'>idx.indid</property>
		</version>
		<version min_major='7' max_major='7'>
			<property name="RowCount" type="int" report_type2 = 'System.Int64' access='Read' cast='true'>idx.rows</property>			
		</version>
		<version min_major='8' max_major='8'>
			<property name="AnsiNullsStatus" type="bit" cast='true' read_only_after_creation="true" mode="design">OBJECTPROPERTY(tbl.id,N'IsAnsiNullsOn')</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' read_only_after_creation="true" mode="design">OBJECTPROPERTY(tbl.id,N'IsQuotedIdentOn')</property>
			<property name="RowCount" type="bigint" access='Read' cast='true'>idx.rowcnt</property>			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'TABLE'</property>
		</version>
    <version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
      <property name="HasClusteredIndex" type="bit" access='Read' cast='true'>CASE idx.index_id WHEN 1 THEN 1 ELSE 0 END</property>
      <property name="AnsiNullsStatus" type="bit" read_only_after_creation="true" mode="design">tbl.uses_ansi_nulls</property>
      <property name="QuotedIdentifierStatus" type="bit" cast='true' read_only_after_creation="true" mode="design">OBJECTPROPERTY(tbl.object_id,N'IsQuotedIdentOn')</property>
      <property name="FakeSystemTable" type="bit" cast='true' access='Read'>0</property>
		<!-- used for link with PartitionSchemeParameter, inc_storage -->
		<property name="IndexID" type="int" hidden='true'>idx.index_id</property>
		<!-- used for link with PartitionSchemeParameter -->
		<property name="TableID" type="int" hidden='true' cast='true'>tbl.object_id</property>
	</version>
    <version min_major='9' matrix_min_major='10'>
			<property name="TextFileGroup" type="sysname" read_only_after_creation="true">ISNULL(dstext.name,N'')</property>
			<property name="RowCount" type="bigint" access='Read'>ISNULL( ( select sum (spart.rows) from sys.partitions spart where spart.object_id = tbl.object_id and spart.index_id &lt; &lt;msparam&gt;2&lt;/msparam&gt;), 0)</property>

			<!--when modify check datatabase.xml DataSpaceUsed for consistency -->
      			<property name="DataSpaceUsed" type="float" access='Read' expensive='true'>
				ISNULL((select @PageSize * SUM(CASE WHEN a.type &lt;&gt; 1 THEN a.used_pages WHEN p.index_id &lt; 2 THEN a.data_pages ELSE 0 END) 
				FROM sys.indexes as i
				JOIN sys.partitions as p ON p.object_id = i.object_id and p.index_id = i.index_id
				JOIN sys.allocation_units as a ON a.container_id = p.partition_id
				where i.object_id = tbl.object_id),0.0)
			</property>
			<!--when modify check datatabase.xml IndexSpaceUsed and index.xml SpaceUsed for consistency -->
			<property name="IndexSpaceUsed" type="float" access='Read' expensive='true'>
				ISNULL((select @PageSize * SUM(a.used_pages - CASE WHEN a.type &lt;&gt; 1 THEN a.used_pages WHEN p.index_id &lt; 2 THEN a.data_pages ELSE 0 END) 
				FROM sys.indexes as i
				JOIN sys.partitions as p ON p.object_id = i.object_id and p.index_id = i.index_id
				JOIN sys.allocation_units as a ON a.container_id = p.partition_id
				where i.object_id = tbl.object_id),0.0)
			</property>
			<property name='IsVarDecimalStorageFormatEnabled' type='bit' cast='true' expensive ='true' mode="deploy">
			case
    				when databasepropertyex(DB_NAME(), 'version') &lt; 612 then 0
    				else objectproperty(tbl.object_id, 'TableHasVarDecimalStorageFormat')
			end
            		</property>
		<property name="DataSpaceID" type="int" hidden='true'>idx.data_space_id</property>
		</version>
    <version cloud_min_major='10'>
      <property name='IsVarDecimalStorageFormatEnabled' type='bit' cast='true' expensive ='true' mode="deploy">
        objectproperty(tbl.object_id, 'TableHasVarDecimalStorageFormat') <!-- version > 612 for cloud -->
      </property>
      <property name="DistributionName" type="nvarchar" size="128" read_only_after_creation="true">ISNULL(ftc.distribution_name,N'')</property>
      <property name="FederationColumnName" type="sysname" size="128" read_only_after_creation="true">ISNULL(c.name,N'')</property>
      <property name="FederationColumnID" type="int" access='Read'>ISNULL(ftc.column_id, 0)</property>
    </version>
    
	
    <version min_major='9' cloud_min_major='10'>
      <property name="Replicated" type="bit" access='Read'>tbl.is_replicated</property>
    </version>
    <!-- Properties for Change Tracking and Lock Escalation improvements-->
    <version min_major='10' matrix_min_major='10' cloud_min_major='10'>
      <property name="LockEscalation" type="tinyint" report_type='LockEscalationType'  mode="deploy">tbl.lock_escalation</property>
      <property name="ExtPropClassforColumn" type="int" hidden='true'>1</property>
      <property name="ExtPropMajorIDforColumn" type="int" hidden='true'>tbl.object_id</property>
    </version>

     <property name="ThreePartName" type="nvarchar" size='600' hidden='true'>
        <link_multiple no='3' expression="quotename({0}, ']')+'.'+quotename({1}, ']')+'.'+quotename({2}, ']')">
          <link_field type='parent' field="Name" />
          <link_field type='local' field="Schema" />
          <link_field type='local' field="Name" />
        </link_multiple>
      </property>

    <version min_major='10'>
      <property name="ChangeTrackingEnabled" type="bit" cast='true' mode="deploy">case when ctt.object_id is null then 0 else 1  end</property>
      <property name="TrackColumnsUpdatedEnabled" type="bit" cast='true' mode="deploy">ISNULL(ctt.is_track_columns_updated_on,0)</property>
    </version>

		<version min_major="10">
			<!-- used for link with PhysicalPartition -->
			<property name="IndexIDForPartition" type="int" hidden='true'>idx.index_id</property>
			<!-- used for link with PhysicalPartition -->
			<property name="TableIDForPartition" type="int" hidden='true' cast='true'>tbl.object_id</property>
		</version>

		<version min_major='10' matrix_min_major='10'>
      <property name="HasCompressedPartitions" type="bit" access='Read' cast='true' expensive='true'>
        case when ((SELECT  MAX(data_compression) FROM sys.partitions  WHERE object_id = tbl.object_id AND index_id &lt; 2) &gt; 0) then 1 else 0 end
      </property>
    </version>

    <version min_major='11'>
      <property name="IsFileTable" type="bit" read_only_after_creation="true">tbl.is_filetable</property>
      <property name="FileTableDirectoryName" type="nvarchar" size="256">ISNULL(ft.directory_name,N'')</property>
      <property name="FileTableNameColumnCollation" type="nvarchar" size="129" read_only_after_creation="true">ISNULL(ft.filename_collation_name,N'')</property>
      <property name="FileTableNamespaceEnabled" type="bit" cast="true">ISNULL(ft.is_enabled,0)</property>
    </version>
    
    <version min_major='7' matrix_min_major='10'>
      <include alias='idx' file='inc_storage.xml'/>
    </version>

    <version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
    <version matrix_min_major='10'>
      <property name="DistributionPolicy" type="tinyint" access='Read' report_type="DistributionPolicy" suppress_sfc_attribute="true">idx.distribution_policy</property>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="View" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS v">v.type = &lt;msparam&gt;V&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table="sys.all_views AS v">v.type = &lt;msparam&gt;V&lt;/msparam&gt;</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='v' />
        <include file='inc_system_table_view_sp_udf.xml' alias='v' for="#IsSystemObject#" />
		<include file='sql_module_link.xml' alias='v' 
			for='#AnsiNullsStatus#QuotedIdentifierStatus#IsSchemaBound#IsEncrypted#Text#BodyStartIndex#'/>
		<include file='inc_objprop_table_view.xml' />

    <property name="HasColumnSpecification" type='bit' expensive='true' access='Read' cast='true' usage='request'>0</property>	
		
		<version min_major='7' max_major='8'>
			<property name="HasFullTextCatalog" type="bit" hidden='true' cast='true'>OBJECTPROPERTY(v.id, 'TableFullTextCatalogId')</property>
			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'VIEW'</property>
		</version>	
		


		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<property name="ReturnsViewMetadata" type="bit" mode="design">v.has_opaque_metadata</property>

		</version>
		<version min_major='10' matrix_min_major='10' cloud_min_major='10'>
		<property name="ExtPropClassforColumn" type="int" hidden='true'>1</property>
		<property name="ExtPropMajorIDforColumn" type="int" hidden='true'>v.object_id</property>
		</version>
		<property name="ThreePartName" type="nvarchar" size='600' hidden='true'>
			<link_multiple no='3' expression="quotename({0}, ']')+'.'+quotename({1}, ']')+'.'+quotename({2}, ']')">
				<link_field type='parent' field="Name" />
				<link_field type='local' field="Schema" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject type="StoredProcedure" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysobjects AS sp'>sp.xtype = &lt;msparam&gt;P&lt;/msparam&gt; OR sp.xtype = &lt;msparam&gt;RF&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<property_link table='sys.all_objects AS sp'>sp.type = &lt;msparam&gt;P&lt;/msparam&gt; OR sp.type = &lt;msparam&gt;RF&lt;/msparam&gt; OR sp.type=&lt;msparam&gt;PC&lt;/msparam&gt;</property_link>
			<property_link fields='#Startup#' left_join='sys.procedures AS spp'>spp.object_id = sp.object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='sp' />
        <include file='inc_system_table_view_sp_udf.xml' alias='sp' for="#IsSystemObject#" />
		<include file='mixed_module_link.xml' alias='sp' 
			for='#Recompile#ExecutionContextPrincipal#ExecutionContext#MethodName#ClassName#AssemblyName#AnsiNullsStatus#QuotedIdentifierStatus#IsEncrypted#Text#TextBody#BodyStartIndex#'/>
		<version min_major='7' max_major='8'>
			<property name="Startup" type="bit" cast='true' mode="design"> OBJECTPROPERTY(sp.id, N'ExecIsStartup')</property>
			<property name="ForReplication" type="bit" cast='true' read_only_after_creation="true" mode="deploy">CASE sp.xtype WHEN N'RF' THEN 1 ELSE 0 END</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">1</property>

			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'PROCEDURE'</property>
		</version>
		
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Startup" type="bit" cast="true" mode="design">ISNULL(spp.is_auto_executed,0)</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">CASE WHEN sp.type = N'P' THEN 1 WHEN sp.type = N'PC' THEN 2 ELSE 1 END</property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="ForReplication" type="bit" cast='true' read_only_after_creation="true" mode="deploy">CASE sp.type WHEN N'RF' THEN 1 ELSE 0 END</property>
		</version>
		<version min_major='10'  matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Login" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="SRVID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='master.dbo.sysxlogins lnklgn'>
				lnklgn.ishqoutmap = 1
			</property_link>
			<property_link fields = '#Name#' 
				left_join='master.dbo.sysxlogins xlnklgn'>lnklgn.sid=xlnklgn.sid and ISNULL(xlnklgn.ishqoutmap,0) = 0</property_link>
		</version>
		<version min_major='9' >
			<property_link table='sys.linked_logins ll'/>
			<property_link fields = '#Name#'
				left_join='sys.server_principals sp'>ll.local_principal_id = sp.principal_id</property_link>
		</version>
	</settings>	
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerLogin</property>
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">ISNULL(xlnklgn.name, '')</property>
			<property name="RemoteUser" type="sysname">ISNULL(lnklgn.name, N'')</property>
			<property name="Impersonate" type="bit" cast = "true">convert(bit,lnklgn.selfoutmap)</property>
			<property name="SRVID" type="int" hidden="true">lnklgn.srvid</property>
		</version>
		<version min_major='9' >
			<property name="Name" type="sysname">ISNULL(sp.name, '')</property>
			<property name="RemoteUser" type="sysname">ISNULL(ll.remote_name, N'')</property>
			<property name="Impersonate" type="bit" cast = "true">ll.uses_self_credential</property>
			<property name="SRVID" type="int" hidden="true">ll.server_id</property>
			<property name="DateLastModified" type="datetime" access='Read'>ll.modify_date</property>
		</version>		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="LinkedServerCatalog" impl_type="SqlObject" min_major='7'>
	<settings>
		<!-- 
		  Logic: For getting a value from the parent
		  1)Expose a hidden property called Servername
		  2)Get the Servername from the parent query ({0})
		  3)Insert the Servername into #tmp_sp_catalogs 
		-->
		<parent_link>
			<link parent="Name" local="ServerName" />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
			<field name='ProductName' />
			<field name='ProviderName' />
		</request_parent_select>
		<property_link table="#tmp_sp_catalogs" alias="tsc" />
		<!-- 
		  1) Check whether the catalog support exist or not for this provider
		  2) If catalog support is not exist then return default as the catalog name and set IsCatalogSupport to "0"
		  3) For sql servers IsSysObject should be set to 1 if catalog is in ('master','model','msdb','tempdb')
		-->
		<version min_major='7' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
                create table #tmp_sp_catalogs (is_catalog_support bit null,server_name nvarchar(128) null, product_name nvarchar(128) null,provider_name nvarchar(128) null,catalog_name nvarchar(128) null, description nvarchar(4000) null)
                declare @ServerName sysname
                declare @ProductName sysname
				        declare @ProviderName sysname
                declare crs cursor local fast_forward
                for ( {0} ) 
                open crs 
                fetch crs into @ServerName,@ProductName,@ProviderName
                while @@fetch_status &gt;= 0 
                begin		
                create table #tmp_catalog_exist_test (id int null,description sysname null,flags varchar null)
				        DECLARE @IsCatalogSupport bit  
                if (UPPER(@ProviderName) like 'SQLNCLI%' ) 
					      begin  
                   set @IsCatalogSupport = 1                
                end
                else
                begin
                    insert into #tmp_catalog_exist_test(id,description,flags) EXEC master.dbo.xp_prop_oledb_provider @ProviderName                    
                    select @IsCatalogSupport = count(*) from #tmp_catalog_exist_test  where id = 233  
                end                               				
          if (@IsCatalogSupport = 0)
					begin
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)										
					end
					else
					begin					
					insert into #tmp_sp_catalogs (catalog_name,description) EXEC master.dbo.sp_catalogs @server_name = @ServerName
					update #tmp_sp_catalogs set is_catalog_support = 1	               
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)   				    
					end
					update #tmp_sp_catalogs set server_name = @ServerName
					update #tmp_sp_catalogs set product_name = @ProductName
					update #tmp_sp_catalogs set provider_name = @ProviderName
					fetch crs into @ServerName,@ProductName,@ProviderName
			    end
				close crs
				deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #tmp_sp_catalogs
				drop table #tmp_catalog_exist_test
			</postfix>
		</version>
		<version min_major='9'>
			<prefix>
				<link_multiple no='1' expression="
                create table #tmp_sp_catalogs (is_catalog_support bit null,server_name nvarchar(128) null, product_name nvarchar(128) null,provider_name nvarchar(128) null,catalog_name nvarchar(128) null, description nvarchar(4000) null)
                declare @ServerName sysname
                declare @ProductName sysname
				        declare @ProviderName sysname
                declare crs cursor local fast_forward
                for ( {0} ) 
                open crs 
                fetch crs into @ServerName,@ProductName,@ProviderName
                while @@fetch_status &gt;= 0 
                begin		                                       				                     
                create table #tmp_catalog_exist_test (id int null,description sysname null,flags varchar null)
				        DECLARE @IsCatalogSupport bit  
                if (UPPER(@ProviderName) like 'SQLNCLI%' ) 
					      begin  
                   set @IsCatalogSupport = 1                
                end
                else
                begin
                    insert into #tmp_catalog_exist_test(id,description,flags) EXEC master.dbo.xp_prop_oledb_provider @ProviderName                    
                    select @IsCatalogSupport = count(*) from #tmp_catalog_exist_test  where id = 233  
                end 
          if (@IsCatalogSupport = 0)
					begin
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)										
					end
					else
					begin
					BEGIN TRY
					insert into #tmp_sp_catalogs (catalog_name,description) EXEC master.dbo.sp_catalogs @server_name = @ServerName
					update #tmp_sp_catalogs set is_catalog_support = 1
	                END TRY
					BEGIN CATCH
					insert into #tmp_sp_catalogs (catalog_name,is_catalog_support) values ('default',0)   
				    END CATCH
					end
					update #tmp_sp_catalogs set server_name = @ServerName
					update #tmp_sp_catalogs set product_name = @ProductName
					update #tmp_sp_catalogs set provider_name = @ProviderName
					fetch crs into @ServerName,@ProductName,@ProviderName
			    end
				close crs
				deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #tmp_sp_catalogs
				drop table #tmp_catalog_exist_test
			</postfix>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="4000">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @IsCatalogSupport=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="IsCatalogSupport" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerCatalog</property>
		<property name="ServerName" type="nvarchar" size="128" hidden='true'>tsc.server_name</property>
		<property name="ProductName" type="nvarchar" size="128" hidden='true'>tsc.product_name</property>
		<property name="ProvideName" type="nvarchar" size="128" hidden='true'>tsc.provider_name</property>
		<property name="Name" type="nvarchar" size="128">tsc.catalog_name</property>
		<property name="Description" type="nvarchar" size="4000">ISNULL(tsc.description, '')</property>
		<property name="IsCatalogSupport" type="bit" access='Read' >tsc.is_catalog_support</property>
		<property name="IsSystemObject" type="bit" access='Read' >case when ( ((tsc.product_name in ('SQL Server')) or (UPPER(tsc.provider_name) like ('SQLNCLI%')) ) and (tsc.catalog_name in ('master','model','msdb','tempdb')) ) then 1 else 0 end</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="LinkedServerTable" impl_type="SqlObject" min_major='7'>
	<settings>
		<parent_link>
			<link parent="ServerName" local="ServerName" />
		</parent_link>
		<!-- selecting both linkedServerName and CatalogName from the Parent -->
		<request_parent_select>
			<field name='ServerName' />
			<field name='Name' />
			<field name='IsCatalogSupport' />
		</request_parent_select>
		<property_link table="#tmp_sp_tables_ex" alias="tste" />
		<!-- 
		  1) There is no way to request SYSTEMTABLES and TABLES in one call
		  2) #tmp_sp_tables_ex_all : select all objects(Tables,systemtables,views,systemviews) into this table
		  3) #tmp_sp_tables_ex: this table contains only SYSTEM TABLES and TABLES
		  4) If catalog support not exist (@IsCatalogSupportExist=0) then pass NULL to @table_catalog
		  5)schemaname can be null for some providers, we can't handle this in OE so make the schemaname.objectname (or)
		    only objectname using the property SchemaObjectName		 
		-->
		<prefix>
			<link_multiple no='1' expression="
				create table #tmp_sp_tables_ex (is_catalog_error bit null,server_name nvarchar(128) null,server_catalog_name nvarchar(128) null,TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null) 				
				create table #tmp_sp_tables_ex_all (TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null)
                declare @TableServerName sysname
				declare @TableCatalogName sysname
				declare @IsCatalogSupportExist bit
                declare TableServerCrs cursor local fast_forward
                for ( {0} ) 
                open TableServerCrs 
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                while @@fetch_status &gt;= 0 
                begin
				IF (@IsCatalogSupportExist=0)
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = NULL
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM TABLE','TABLE')
				update #tmp_sp_tables_ex set server_catalog_name = NULL
				END
				ELSE
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = @TableCatalogName
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM TABLE','TABLE')
				update #tmp_sp_tables_ex set server_catalog_name = @TableCatalogName
				END				
                update #tmp_sp_tables_ex set server_name = @TableServerName																
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                end
                close TableServerCrs
                deallocate TableServerCrs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #tmp_sp_tables_ex
			drop table #tmp_sp_tables_ex_all
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="4000">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @Schema=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="Schema" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerTable</property>
		<property name="ServerName" type="nvarchar" size="128" hidden='true'>tste.server_name</property>
		<property name="ServerCatalogName" type="nvarchar" size="128" hidden='true'>tste.server_catalog_name</property>
		<property name="CatalogName" type="sysname" >ISNULL(tste.TABLE_CAT,'')</property>
		<property name="Schema" type="sysname">ISNULL(tste.TABLE_SCHEM,'')</property>
		<property name="Name" type="sysname">tste.TABLE_NAME</property>		
		<property name="TableType" type="varchar" size="32">tste.TABLE_TYPE</property>
		<property name="SchemaObjectName" type="sysname">
			<link_multiple no='2' expression="case when ( tste.TABLE_SCHEM in ('') or (tste.TABLE_SCHEM IS NULL) ) then {1} else {0}+'.'+{1} end">
				<link_field type='local' field="Schema" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="Remarks" type="varchar" size="254">ISNULL(tste.REMARKS,'')</property>
		<property name="IsSystemObject" type="bit" access="Read" >case when tste.TABLE_TYPE in ('SYSTEM TABLE') then 1 else 0 end</property>		
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="LinkedServerView" impl_type="SqlObject" min_major='7'>
	<settings>
		<parent_link>
			<link parent="ServerName" local="ServerName" />
		</parent_link>
		<!-- selecting both linkedServerName and CatalogName from the Parent -->
		<request_parent_select>
			<field name='ServerName' />
			<field name='Name' />
			<field name='IsCatalogSupport' />
		</request_parent_select>
		<property_link table="#tmp_sp_tables_ex" alias="tste" />
		<!--
		1) There is no way to request SYSTEMVIEWS and VIEWS in one call
		2) #tmp_sp_tables_ex_all : select all objects(Tables,systemtables,views,systemviews) into this table.
		3) #tmp_sp_tables_ex:  this table contains only SYSTEM VIEWS and VIEWS
		4) If catalog support not exist (@IsCatalogSupportExist=0) then pass NULL to @table_catalog		
		5)schemaname can be null for some providers, we can't handle this in OE so make the schemaname.objectname (or)
		    only objectname using the property SchemaObjectName		
		-->
		<prefix>
			<link_multiple no='1' expression="
				create table #tmp_sp_tables_ex (is_catalog_error bit null,server_name nvarchar(128) null,server_catalog_name nvarchar(128) null,TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null) 				
				create table #tmp_sp_tables_ex_all (TABLE_CAT sysname null, TABLE_SCHEM sysname null,TABLE_NAME sysname null,TABLE_TYPE varchar(32) null,REMARKS varchar(254) null)		
                declare @TableServerName sysname
				declare @TableCatalogName sysname
				declare @IsCatalogSupportExist bit
                declare TableServerCrs cursor local fast_forward
                for ( {0} ) 
                open TableServerCrs 
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                while @@fetch_status &gt;= 0                 
				begin
				IF (@IsCatalogSupportExist=0)
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = NULL
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM VIEW','VIEW')
				update #tmp_sp_tables_ex set server_catalog_name = NULL
				END
				ELSE
				BEGIN
				insert into #tmp_sp_tables_ex_all (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) EXEC master.dbo.sp_tables_ex
			    @table_server = @TableServerName
			    ,@table_name = NULL
			    ,@table_schema = NULL
			    ,@table_catalog = @TableCatalogName
			    ,@table_type = NULL
				insert into #tmp_sp_tables_ex (TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS) select TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE,REMARKS from #tmp_sp_tables_ex_all where TABLE_TYPE in  ('SYSTEM VIEW','VIEW')
				update #tmp_sp_tables_ex set server_catalog_name = @TableCatalogName
				END				
                update #tmp_sp_tables_ex set server_name = @TableServerName																
                fetch TableServerCrs into @TableServerName,@TableCatalogName,@IsCatalogSupportExist
                end
                close TableServerCrs
                deallocate TableServerCrs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #tmp_sp_tables_ex
			drop table #tmp_sp_tables_ex_all
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="4000">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @Schema=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="Schema" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="NType" type="sysname" access='Read' hidden='true'>LinkedServerView</property>
		<property name="ServerName" type="nvarchar" size="128" hidden='true'>tste.server_name</property>
		<property name="ServerCatalogName" type="nvarchar" size="128" hidden='true'>tste.server_catalog_name</property>
		<property name="CatalogName" type="sysname" >ISNULL(tste.TABLE_CAT,'')</property>
		<property name="Schema" type="sysname">ISNULL(tste.TABLE_SCHEM,'')</property>
		<property name="Name" type="sysname">tste.TABLE_NAME</property>
		<property name="TableType" type="varchar" size="32">tste.TABLE_TYPE</property>
		<property name="SchemaObjectName" type="sysname">
			<link_multiple no='2' expression="case when ( tste.TABLE_SCHEM in ('') or (tste.TABLE_SCHEM IS NULL) ) then {1} else {0}+'.'+{1} end">
				<link_field type='local' field="Schema" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="Remarks" type="varchar" size="254">tste.REMARKS</property>
		<property name="IsSystemObject" type="bit" access="Read" >case when tste.TABLE_TYPE in ('SYSTEM VIEW') then 1 else 0 end</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Member" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
    <settings>
        <version min_major='7' max_major='8'>
            <parent_link>
                <link_multiple no="1" expression="{0} = lgnmb.role_col">
                    <link_field type="parent" field="Name" />
                </link_multiple>
            </parent_link>
            <property_link table='#SmoMemberTemp lgnmb' />
            <prefix>
create table #SmoMemberTemp
(
	role_col sysname NOT NULL,
	mem_col sysname NOT NULL,
	id_col varbinary(85)
)
insert into #SmoMemberTemp (role_col, mem_col, id_col) exec master.dbo.sp_helpsrvrolemember
            </prefix>
            <postfix>
drop table #SmoMemberTemp
            </postfix>
        </version>
        <version min_major='9' matrix_min_major='10'>
            <parent_link>
                <link_multiple no="1" expression="{0} = m.role_principal_id">
                    <link_field type="parent" field="ID" />
                </link_multiple>
            </parent_link>
            <property_link table = 'sys.server_role_members m'/>
            <property_link table = 'sys.server_principals p'>
				p.principal_id = m.member_principal_id
            </property_link>
        </version>
    </settings>
<properties>
    <version min_major='7' max_major='8'>
      <property name="Name" type="sysname">lgnmb.mem_col</property>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property name="Name" type="sysname">p.name</property>
      <property name="LoginType" type="int" report_type="LoginType" access='read'>CASE p.type WHEN N'U' THEN 0 WHEN N'G' THEN 1 WHEN N'S' THEN 2 WHEN N'C' THEN 3 WHEN N'K' THEN 4 END</property>
    </version>
    <version min_major='11' matrix_min_major='10'>
      <property name="IsLogin" type="bit" cast='true' access='Read'>CASE p.type WHEN N'R' THEN 0 ELSE 1 END</property>
    </version>
  </properties>

</EnumObject>/  <!--handle Sql Server Agent Checks from OE xmls instead of putting a hack in AgentPropertyHandler.PopulateProperties, putting cloud version attributes in Jobserver.xml: VSTS 341222-->
<EnumObject type='SPGetSqlagentProperties' impl_type='SqlObject' min_major='7'  matrix_min_major='10' cloud_min_major='10'>
  <settings>
    <version min_major = '7' max_major='8'>
      <property_link table='#tmp_sp_get_sqlagent_properties' alias='tsgsp' fields="#MsxServerName#SqlServerRestart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#MsxServerName#SqlAgentAutoStart#"/>
      <prefix fields="#MsxServerName#SqlServerRestart#SqlAgentAutoStart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#MsxServerName">
        create table #tmp_sp_get_sqlagent_properties
        (auto_start int null, msx_server_name sysname null, sqlagent_type int null, startup_account nvarchar(255) null, sqlserver_restart int null, jobhistory_max_rows int null, jobhistory_max_rows_per_job int null, errorlog_file nvarchar(255) null, errorlogging_level int null, error_recipient nvarchar(30) null, monitor_autostart int null, local_host_server sysname null, job_shutdown_timeout int null, cmdexec_account varbinary(64) null, regular_connections int null, host_login_name nvarchar(128) null, host_login_password varbinary(512) null, login_timeout int null, idle_cpu_percent int null, idle_cpu_duration int null, oem_errorlog int null, sysadmin_only int null, email_profile nvarchar(64) null, email_save_in_sent_folder int null, cpu_poller_enabled int null)
        insert into #tmp_sp_get_sqlagent_properties(auto_start, msx_server_name, sqlagent_type, startup_account, sqlserver_restart, jobhistory_max_rows, jobhistory_max_rows_per_job, errorlog_file, errorlogging_level, error_recipient, monitor_autostart, local_host_server, job_shutdown_timeout, cmdexec_account, regular_connections, host_login_name, host_login_password, login_timeout, idle_cpu_percent, idle_cpu_duration, oem_errorlog, sysadmin_only, email_profile, email_save_in_sent_folder, cpu_poller_enabled)
        exec msdb.dbo.sp_get_sqlagent_properties
      </prefix>

      <prefix fields="#MsxAccountName#">
        create table #tmpMsxAccountName ( domain nvarchar(255) null, username nvarchar(255) null)
        if ( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion &amp; 0xffff &gt;= 760) ) or (@@microsoftversion / power(2, 24) &gt; 8))
        begin
        insert into #tmpMsxAccountName(domain, username) exec master.dbo.xp_sqlagent_msx_account N'GET'
        end
      </prefix>
    </version>

    <version min_major = '9'  matrix_min_major='10'>
      <property_link table='#tmp_sp_get_sqlagent_properties' alias='tsgsp' fields="#MsxServerName#SqlServerRestart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#MsxServerName#SqlAgentAutoStart#ReplaceAlertTokensEnabled#"/>

      <prefix fields="#MsxServerName#SqlServerRestart#SqlAgentAutoStart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#ReplaceAlertTokensEnabled#">
        create table #tmp_sp_get_sqlagent_properties
        (auto_start int null, msx_server_name sysname null, sqlagent_type int null, startup_account nvarchar(255) null, sqlserver_restart int null, jobhistory_max_rows int null, jobhistory_max_rows_per_job int null, errorlog_file nvarchar(255) null, errorlogging_level int null, error_recipient nvarchar(30) null, monitor_autostart int null, local_host_server sysname null, job_shutdown_timeout int null, cmdexec_account varbinary(64) null, regular_connections int null, host_login_name sysname null, host_login_password varbinary(512) null, login_timeout int null, idle_cpu_percent int null, idle_cpu_duration int null, oem_errorlog int null, sysadmin_only int null, email_profile nvarchar(64) null, email_save_in_sent_folder int null, cpu_poller_enabled int null, replace_alert_tokens_enabled int null)
        insert into #tmp_sp_get_sqlagent_properties(auto_start, msx_server_name, sqlagent_type, startup_account, sqlserver_restart, jobhistory_max_rows, jobhistory_max_rows_per_job, errorlog_file, errorlogging_level, error_recipient, monitor_autostart, local_host_server, job_shutdown_timeout, cmdexec_account, regular_connections, host_login_name, host_login_password, login_timeout, idle_cpu_percent, idle_cpu_duration, oem_errorlog, sysadmin_only, email_profile, email_save_in_sent_folder, cpu_poller_enabled, replace_alert_tokens_enabled)
        exec msdb.dbo.sp_get_sqlagent_properties
      </prefix>

      <prefix fields="#MsxAccountName#MsxAccountCredentialName#">
        create table #tmpMsxAccountName
        (msx_connection int null, msx_credential_id int null, msx_credential_name nvarchar(300) null, msx_login_name nvarchar(300) null)
        insert into #tmpMsxAccountName(msx_connection, msx_credential_id, msx_credential_name, msx_login_name)
        exec msdb.dbo.sp_msx_get_account
      </prefix>
      <prefix fields = '#DatabaseMailProfile#'>
        declare @DatabaseMailProfile nvarchar(255)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'DatabaseMailProfile', @param = @DatabaseMailProfile OUT, @no_output = N'no_output'
      </prefix>
      <prefix fields = '#AgentMailType#'>
        declare @AgentMailType int
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'UseDatabaseMail', @param = @AgentMailType OUT, @no_output = N'no_output'
      </prefix>
      <prefix fields="#ServiceAccount#">
        declare @ServiceAccount nvarchar(512)
        EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT', N'ObjectName', @ServiceAccount OUTPUT
      </prefix>
      <prefix fields="#ServiceStartMode#">
        declare @ServiceStartMode int
        EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT', N'Start', @ServiceStartMode OUTPUT
      </prefix>
    </version>
    <version min_major="10" matrix_min_major='10'>
      <prefix fields="#AgentDomainGroup#">
        declare @AgtGroup nvarchar(512)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'AGTGroup', @AgtGroup OUTPUT
      </prefix>
    </version>
        <postfix fields="#MsxServerName#SqlServerRestart#SqlAgentAutoStart#SqlAgentRestart#MaximumHistoryRows#MaximumJobHistoryRows#ErrorLogFile#AgentLogLevel#NetSendRecipient#AgentShutdownWaitTime#SqlAgentMailProfile#SaveInSentFolder#WriteOemErrorLog#IsCpuPollingEnabled#IdleCpuPercentage#IdleCpuDuration#SysAdminOnly#LoginTimeout#HostLoginName#LocalHostAlias#JobServerType#ReplaceAlertTokensEnabled#">
drop table #tmp_sp_get_sqlagent_properties
        </postfix>
    
		<postfix fields="#MsxAccountName#MsxAccountCredentialName#">
drop table #tmpMsxAccountName
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn_single.xml'/>
		<version min_major = '7' max_major = '7'>
      <property name="Name" type="sysname">@@SERVERNAME</property>
    </version> 
    <version min_major = '8'  matrix_min_major='10' cloud_min_major='10'>
      <property name="Name" type="sysname" cast='true'>serverproperty(N'Servername')</property>
    </version>

    <property name='MsxServerName' type='sysname' access="Read" notusage='order'>ISNULL(tsgsp.msx_server_name,N'')</property>
    <property name="JobServerType" type="int" report_type='Agent.JobServerType' access="Read">tsgsp.sqlagent_type</property>
    <property name='SqlServerRestart' type='bit' cast='true'>tsgsp.sqlserver_restart</property>
    <property name="SqlAgentRestart" type="bit" cast='true'>tsgsp.monitor_autostart</property>
    <property name='MaximumHistoryRows' type='int'>tsgsp.jobhistory_max_rows</property>
    <property name='MaximumJobHistoryRows' type='int'>tsgsp.jobhistory_max_rows_per_job</property>
    <property name='ErrorLogFile' type='nvarchar' size = '255'>tsgsp.errorlog_file</property>
    <property name='AgentLogLevel' type='int' report_type = "Agent.AgentLogLevels">tsgsp.errorlogging_level</property>
    <property name='NetSendRecipient' type='nvarchar' size = '30'>ISNULL(tsgsp.error_recipient,N'')</property>
    <property name='AgentShutdownWaitTime' type='int'>tsgsp.job_shutdown_timeout</property>
    <property name='SqlAgentMailProfile' type='nvarchar' size = '64'>ISNULL(tsgsp.email_profile,N'')</property>
    <property name='SaveInSentFolder' type='bit' cast='true'>tsgsp.email_save_in_sent_folder</property>
    <property name='WriteOemErrorLog' type='bit' cast='true'>tsgsp.oem_errorlog</property>
    <property name='IsCpuPollingEnabled' type='bit' cast='true'>tsgsp.cpu_poller_enabled</property>
    <property name='IdleCpuPercentage' type='int'>tsgsp.idle_cpu_percent</property>
    <property name='IdleCpuDuration' type='int'>tsgsp.idle_cpu_duration</property>
    <property name='LoginTimeout' type='int'>tsgsp.login_timeout</property>
    <property name='HostLoginName' type='sysname' access="Read">ISNULL(tsgsp.host_login_name,N'')</property>
    <property name='LocalHostAlias' type='sysname'>ISNULL(tsgsp.local_host_server,N'')</property>
    <property name="SqlAgentAutoStart" type="bit" cast='true'>tsgsp.auto_start</property>

    <version min_major = '7' max_major = '8'>
			<property name="MsxAccountName" type="nvarchar" size = "255" access="Read"
				expensive="true">ISNULL((select top 1 ISNULL(domain + N'\', N'') + username as [UserName] from #tmpMsxAccountName),N'')</property>
			<property name='SysAdminOnly' type='bit' cast='true' access="Read">tsgsp.sysadmin_only</property>
		</version>

		<version min_major = '9'  matrix_min_major='10'>
            <property name='ReplaceAlertTokensEnabled' type='bit' cast='true'>tsgsp.replace_alert_tokens_enabled</property>
			<property name="MsxAccountName" type="nvarchar" size = "255" access="Read"
				expensive="true">ISNULL((select top 1 msx_login_name from #tmpMsxAccountName),N'')</property>
			<property name="MsxAccountCredentialName" type="nvarchar" size = "255" access="Read"
				expensive="true">ISNULL((select top 1 msx_credential_name from #tmpMsxAccountName),N'')</property>
			<property name='DatabaseMailProfile' type='nvarchar' size='255'>ISNULL(@DatabaseMailProfile,N'')</property>
			<property name='AgentMailType' type='int' report_type='Agent.AgentMailType'>ISNULL(@AgentMailType, 0)</property>
      <!-- SysAdminOnly defaults to 1 because we need to have this property
           in the property bag for Yukon -->
      <property name='SysAdminOnly' type='bit' cast='true' access="Read">1</property>
      <property name="ServiceStartMode" type="int" report_type="ServiceStartMode"  access="Read">@ServiceStartMode</property>
      <property name="ServiceAccount" type="nvarchar" size="512" access="Read">ISNULL(@ServiceAccount,N'')</property>
    </version>
    <version min_major ="10"  matrix_min_major='10'>
      <property name="AgentDomainGroup" type="nvarchar" size="128" access="Read">ISNULL(suser_sname(sid_binary(ISNULL(@AgtGroup,N''))),N'')</property>
    </version>
	</properties>
</EnumObject>
L<?xml version="1.0" ?>
<EnumObject type="Index" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<!-- ignore heap( > 0 ), and we need only indexes (<255) -->
			<property_link table="dbo.sysindexes AS i">i.indid &gt; &lt;msparam&gt;0&lt;/msparam&gt; and i.indid &lt; &lt;msparam&gt;255&lt;/msparam&gt; and &lt;msparam&gt;1&lt;/msparam&gt; != INDEXPROPERTY(i.id,i.name,N'IsStatistics') and &lt;msparam&gt;1&lt;/msparam&gt; != INDEXPROPERTY(i.id,i.name,N'IsHypothetical')</property_link>
			<property_link fields = '#KeyID#IsSystemNamed#' left_join="dbo.sysobjects AS k">k.parent_obj = i.id AND k.name = i.name AND k.xtype IN (N'PK', N'UQ')</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<!-- ignore heap( > 0 )-->
			<property_link table="sys.indexes AS i">i.index_id &gt; &lt;msparam&gt;0&lt;/msparam&gt; and i.is_hypothetical = &lt;msparam&gt;0&lt;/msparam&gt;</property_link>
			<property_link fields='#NoAutomaticRecomputation#' left_join="sys.stats AS s">s.stats_id = i.index_id AND s.object_id = i.object_id</property_link>
			<property_link fields = '#KeyID#IsSystemNamed#' left_join="sys.key_constraints AS k">k.parent_object_id = i.object_id AND k.unique_index_id = i.index_id</property_link>
		</version>

    <version min_major ="9" max_major='10' >
      <property_link fields = '#IndexType#SecondaryXmlIndexType#ParentXmlIndex#' left_join="sys.xml_indexes AS xi">xi.object_id = i.object_id AND xi.index_id = i.index_id</property_link>
      <property_link fields = '#ParentXmlIndex#' left_join="sys.xml_indexes AS xi2">xi2.object_id = xi.object_id AND xi2.index_id = xi.using_xml_index_id</property_link>
    </version>
    
    <version min_major ="11" >
      <property_link fields = '#IndexType#SecondaryXmlIndexType#ParentXmlIndex#IndexedXmlPathName#' left_join="sys.xml_indexes AS xi">xi.object_id = i.object_id AND xi.index_id = i.index_id</property_link>
      <property_link fields = '#ParentXmlIndex#' left_join="sys.xml_indexes AS xi2">xi2.object_id = xi.object_id AND xi2.index_id = xi.using_xml_index_id</property_link>
    </version>

		<version min_major ='10' cloud_min_major='10'>
			<property_link fields='#SpatialIndexType#' left_join="sys.spatial_indexes AS spi">i.object_id = spi.object_id and i.index_id = spi.index_id</property_link>
			<property_link fields='#BoundingBoxXMin#BoundingBoxYMin#BoundingBoxXMax#BoundingBoxYMax#Level1Grid#Level2Grid#Level3Grid#Level4Grid#CellsPerObject#' left_join='sys.spatial_index_tessellations as si'>i.object_id = si.object_id and i.index_id = si.index_id</property_link>
    </version>
    <version min_major ='10'>
      <property_link fields = '#TableIDForPartition#' left_join="sys.all_objects AS allobj">
        allobj.name = 'extended_index_' + cast(i.object_id AS varchar) + '_' + cast(i.index_id AS varchar) AND allobj.type='IT'
      </property_link>
    </version>
		<version min_major ='11'>
			<property_link fields = '#HasCompressedPartitions#' left_join="sys.all_objects AS allobj">
				allobj.name = 'extended_index_' + cast(i.object_id AS varchar) + '_' + cast(i.index_id AS varchar) AND allobj.type='IT'
			</property_link>
		</version>

    <version min_major ="11">
      <property_link fields='#IsFileTableDefined#' left_join="sys.filetable_system_defined_objects AS filetableobj">i.object_id = filetableobj.object_id</property_link>
    </version>

    <!-- Selective XML Index (SXI) was introduced in SP1. First build with SXI was SQL11_PCU_Main 11.0.2813 -->
    <version min_major ="11"  min_build='2813'>
      <property_link fields='#IndexedXmlPathName#' left_join="sys.selective_xml_index_paths AS indexedpaths">xi.object_id = indexedpaths.object_id AND xi.using_xml_index_id = indexedpaths.index_id AND xi.path_id = indexedpaths.path_id</property_link>
    </version>
    
    <version min_major='7' matrix_min_major='10'>
      <prefix fields="#SpaceUsed#">declare @PageSize float select @PageSize=v.low/1024.0 from master.dbo.spt_values v where v.number=&lt;msparam&gt;1&lt;/msparam&gt; and v.type=&lt;msparam&gt;E&lt;/msparam&gt;</prefix>
    </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design#deploy">i.name</property>
			<property name="ID" type="int" cast='true'>i.indid</property>
			<property name="IsSystemObject" type="bit" access="Read" cast='true'>OBJECTPROPERTY(i.id,N'IsMSShipped')</property>
			<property name="IsFullTextKey" type="bit" cast='true'>INDEXPROPERTY(i.id,i.name,N'IsFulltextKey')</property>
			<property name="NoAutomaticRecomputation" type="bit" cast='true' mode="design#deploy">CASE WHEN (i.status &amp; 0x1000000) &lt;&gt; 0 THEN 1 ELSE 0 END</property>
			<property name="FillFactor" type="tinyint" cast='true' read_only_after_creation="true" mode="design#deploy">INDEXPROPERTY(i.id,i.name,N'IndexFillFactor')</property>
			<property name="SpaceUsed" type="float" expensive='true' access='Read'>CASE WHEN (i.indid = 1) THEN (i.used - i.dpages - ISNULL((SELECT 
				SUM(j.used) FROM dbo.sysindexes AS j WHERE (j.indid &gt; 1) AND (j.indid &lt; 255) AND (j.id = i.id) AND (j.name = i.name)), 0)) * @PageSize ELSE i.used * @PageSize END</property>
			<property name="IsClustered" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">CASE i.indid WHEN 1 THEN 1 ELSE 0 END</property>
			<property name="IndexKeyType" type="int" report_type="IndexKeyType" read_only_after_creation="true" mode="design#deploy">CASE WHEN 0 != i.status&amp;0x800 THEN 1 WHEN 0 != i.status&amp;0x1000 THEN 2 ELSE 0 END</property>
			<property name="IsUnique" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">i.status&amp;2</property>
            <property name="IgnoreDuplicateKeys" type="bit" cast='true' mode="design#deploy">CASE WHEN 0 != (i.status&amp;0x01) THEN 1 ELSE 0 END</property>
			<property name="DisallowRowLocks" type="bit" cast='true' mode="design#deploy">INDEXPROPERTY(i.id, i.name, N'IsRowLockDisallowed')</property>
			<property name="DisallowPageLocks" type="bit" cast='true' mode="design#deploy">INDEXPROPERTY(i.id, i.name, N'IsPageLockDisallowed')</property>
			<property name="PadIndex" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">INDEXPROPERTY(i.id, i.name, N'IsPadIndex')</property>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>ISNULL(k.status &amp; 4, 0)</property>
			<property name="ParentID" type="int" hidden='true'>i.id</property>
			<property name="KeyID" type="int" hidden='true'>k.id</property>
			<!-- used for link with PartitionSchemeParameter, inc_storage -->
			<property name="IndexID" type="int" hidden='true' cast='true'>i.indid</property>
			<property name="IndexType" type="tinyint" report_type="IndexType" read_only_after_creation="true" cast='true'>CASE i.indid WHEN 1 THEN 0 ELSE 1 END</property>
		</version>
		<version min_major='8' max_major='8'>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>
				<link_multiple no='1' expression="CASE ({0}) WHEN 0 THEN 6 ELSE 3 END">
					<link_field type='local' field="IndexKeyType" />
				</link_multiple>
			</property>
			-->
			<property name="ObjectTypeName" type="int" hidden='true'>
				<link_multiple no='1' expression="CASE ({0}) WHEN 0 THEN N'INDEX' ELSE N'CONSTRAINT' END ">
					<link_field type='filter' field="IndexKeyType" default_value="0"/>
				</link_multiple>
			</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design#deploy">i.name</property>
			<property name="ID" type="int" cast='true'>i.index_id</property>
			<property name="IsSystemObject" type="bit" access="Read" cast='true'>OBJECTPROPERTY(i.object_id,N'IsMSShipped')</property>
			<property name="NoAutomaticRecomputation" type="bit" mode="design#deploy">ISNULL(s.no_recompute,0)</property>
			<property name="FillFactor" type="tinyint" read_only_after_creation="true" mode="design#deploy">i.fill_factor</property>
			<property name="IsClustered" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">CASE i.index_id WHEN 1 THEN 1 ELSE 0 END</property>
			<property name="IndexKeyType" type="int" report_type="IndexKeyType" read_only_after_creation="true" mode="design#deploy">i.is_primary_key + 2*i.is_unique_constraint</property>
			<property name="IsUnique" type="bit" read_only_after_creation="true" mode="design#deploy">i.is_unique</property>
            		<property name="IgnoreDuplicateKeys" type="bit" mode="design#deploy">i.ignore_dup_key</property>
			<property name="DisallowRowLocks" type="bit" mode="design#deploy">~i.allow_row_locks</property>
			<property name="DisallowPageLocks" type="bit" mode="design#deploy">~i.allow_page_locks</property>
			<property name="PadIndex" type="bit" cast='true' read_only_after_creation="true" mode="design#deploy">INDEXPROPERTY(i.object_id, i.name, N'IsPadIndex')</property>
			<!-- will report 0 for hypothetical indexes -->
			<property name="IsDisabled" type="bit" access="Read">i.is_disabled</property>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>ISNULL(k.is_system_named, 0)</property>
			<property name="ParentID" type="int" hidden='true'>i.object_id</property>
			<property name="KeyID" type="int" hidden='true'>k.object_id</property>
			<!-- used for link with PartitionSchemeParameter, inc_storage -->
			<property name="IndexID" type="int" hidden='true' cast='true'>i.index_id</property>
			<!-- used for link with PartitionSchemeParameter -->
			<property name="TableID" type="int" hidden='true' cast='true'>i.object_id</property>			
			<!-- extended properties support -->			
			<property name="ExtPropClass" type="int" hidden='true'>
				<link_multiple no='1' expression="CASE ({0}) WHEN 0 THEN 7 ELSE 1 END">
					<link_field type='local' field="IndexKeyType" />
				</link_multiple>
			</property>
			
			<!-- fragmentation info support:IndexNameFromFilter, TableNameFromFilter, ParentSysObj -->
			<property name="IndexNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='filter' field="Name" default_value="'*'"/>
				</link_multiple>
			</property>
			<property name="TableNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="TableNameFromFilter"/>
				</link_multiple>
			</property>
			<property name="ParentSysObj" type='bit' hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="IsSystemObject" />
				</link_multiple>
			</property>
		</version>
    
    <version min_major='9' matrix_min_major='10'>
      <!-- will report 0 for hypothetical indexes -->
      <!--when modify check datatabase.xml and table.xml IndexSpaceUsed for consistency -->
      <property name="SpaceUsed" type="float" expensive='true' access='Read'>
ISNULL((select @PageSize * SUM(a.used_pages - CASE WHEN a.type &lt;&gt; 1 THEN a.used_pages WHEN p.index_id &lt; 2 THEN a.data_pages ELSE 0 END) 
FROM sys.partitions as p
JOIN sys.allocation_units as a ON a.container_id = p.partition_id
WHERE p.object_id = i.object_id AND p.index_id = i.index_id),0.0)</property>
		<property name="DataSpaceID" type="int" hidden='true'>i.data_space_id</property>
	</version>
    <version min_major='9' cloud_min_major='10'>
      <property name="IsFullTextKey" type="bit" cast='true'>INDEXPROPERTY(i.object_id,i.name,N'IsFulltextKey')</property>
      <property name="IsXmlIndex" type="bit" access="Read" cast='true'>case when i.type=3 then 1 else 0 end</property>
   </version>
    <version min_major='9'>
      <property name='SecondaryXmlIndexType' type="int" report_type="SecondaryXmlIndexType" read_only_after_creation="true">case UPPER(ISNULL(xi.secondary_type,'')) when 'P' then 1 when 'V' then 2 when 'R' then 3 else 0 end</property>
    </version>

    <version min_major='9'>
        <property name='ParentXmlIndex' type="sysname" read_only_after_creation="true">ISNULL(xi2.name, N'')</property>
    </version>
    <version min_major='9' max_major='10'>
       <property name="IndexType" type="tinyint" report_type="IndexType" read_only_after_creation="true" cast='true'>CASE i.type WHEN 1 THEN 0 WHEN 3 THEN CASE WHEN xi.using_xml_index_id IS NULL THEN 2 ELSE 3 END WHEN 4 THEN 4 WHEN 6 THEN 5 ELSE 1 END</property>
    </version>
    <version min_major='10' cloud_min_major='10'>
        <property name ="SpatialIndexType" type="tinyint"  cast ="true" report_type='SpatialIndexType' read_only_after_creation="true">ISNULL(spi.spatial_index_type,0)</property>
        <property name ="BoundingBoxXMin" type="float" size ="53"  cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_xmin,0)</property>
        <property name ="BoundingBoxYMin" type="float" size="53"  cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_ymin,0)</property>
        <property name ="BoundingBoxXMax" type="float"  size="53" cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_xmax,0)</property>
        <property name ="BoundingBoxYMax" type="float"  size="53" cast ="true" read_only_after_creation="true">ISNULL(si.bounding_box_ymax,0)</property>
        <property name ="Level1Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_1_grid,0)</property>
        <property name ="Level2Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_2_grid,0)</property>
        <property name ="Level3Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_3_grid,0)</property>
        <property name ="Level4Grid" type="smallint"  cast ="true" report_type="SpatialGeoLevelSize" read_only_after_creation="true">ISNULL(si.level_4_grid,0)</property>
        <property name ="CellsPerObject" type="int" cast ="true" read_only_after_creation="true">ISNULL(si.cells_per_object,0)</property>
        <property name ="IsSpatialIndex" type="bit" access ="read" cast ='true'>case when i.type=4 then 1 else 0 end</property>
    </version>
    <version min_major='10'>
        <!-- used for link with PhysicalPartition-->
        <property name="IndexIDForPartition" type="int" hidden='true' cast='true'>(CASE WHEN i.type = 4 THEN 1 ELSE i.index_id END)</property>
        <!-- used for link with PhysicalPartition -->
        <property name="TableIDForPartition" type="int" hidden='true' cast='true'>(CASE WHEN i.type = 4 THEN allobj.object_id ELSE i.object_id END)</property>
    </version>
    <version min_major='10' matrix_min_major='10' cloud_min_major='10'>
        <property name="HasFilter" type="bit" access='read'>i.has_filter</property>
        <property name="FilterDefinition" type="nvarchar" size='max' read_only_after_creation="true" mode="deploy">ISNULL(i.filter_definition, N'')</property>
    </version>
    <version cloud_min_major='10' matrix_min_major='10'>
      <property name="IndexType" type="tinyint" report_type="IndexType" read_only_after_creation="true" cast='true'>CASE i.type WHEN 1 THEN 0 WHEN 4 THEN 4 ELSE 1 END</property>
    </version>
    <version matrix_min_major='10'>
        <property name="DistributionPolicy" type="tinyint" report_type="DistributionPolicy" suppress_sfc_attribute="true">i.distribution_policy</property>
    </version>
    <version min_major='7' matrix_min_major='10'>
      <include alias='i' file='inc_storage.xml' ro_after_creation='#FileStreamFileGroup#FileStreamPartitionScheme#'/>
    </version>

    <version min_major='11'>
      <property name="IsFileTableDefined" type="bit" cast='true' access="read">CASE WHEN filetableobj.object_id IS NULL THEN 0 ELSE 1 END</property>
    </version>
    
    <!-- Selective XML Index (SXI) was introduced in SP1. First build with SXI was SQL11_PCU_Main 11.0.2813 -->
    <version min_major='11' max_major='11' min_minor='0' max_minor='0' max_build="2812">
       <property name="IndexType" type="tinyint" report_type="IndexType" read_only_after_creation="true" cast='true'>CASE i.type WHEN 1 THEN 0 WHEN 3 THEN CASE WHEN xi.using_xml_index_id IS NULL THEN 2 ELSE 3 END WHEN 4 THEN 4 WHEN 6 THEN 5 ELSE 1 END</property>
    </version>

     <version min_major='11' min_minor='0' min_build="2813">
       <property name="IndexType" type="tinyint" report_type="IndexType" read_only_after_creation="true" cast='true'>CASE i.type WHEN 1 THEN 0 WHEN 4 THEN 4 WHEN 3 THEN CASE xi.xml_index_type WHEN 0 THEN 2 WHEN 1 THEN 3 WHEN 2 THEN 6 WHEN 3 THEN 7 END WHEN 4 THEN 4 WHEN 6 THEN 5 ELSE 1 END</property>
    </version>
    <!-- extended properties support -->
      <property name="ExtPropMajorID" type="int" hidden='true'>
        <link_multiple no='3' expression="CASE ({0}) WHEN 0 THEN {1} ELSE {2} END">
          <link_field type='local' field="IndexKeyType" />
          <link_field type='local' field="ParentID" />
          <link_field type='local' field="KeyID" />
        </link_multiple>
      </property>
      <property name="ExtPropMinorID" type="int" hidden='true'>
        <link_multiple no='2' expression="CASE ({0}) WHEN 0 THEN {1} ELSE 0 END">
          <link_field type='local' field="IndexKeyType" />
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>

    <version min_major='10' matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
    
    <version min_major ='10' max_major='10' matrix_min_major='10'>
      <property name="HasCompressedPartitions" type="bit" access='Read' cast='true' expensive='true'>
        case when ((SELECT  MAX(data_compression) FROM sys.partitions  WHERE object_id = i.object_id AND index_id = i.index_id) &gt; 0) then 1 else 0 end
      </property>
    </version>

    <version min_major ='11'>
      <property name="HasCompressedPartitions" type="bit" access='Read' cast='true' expensive='true'>
        case when ((SELECT  MAX(data_compression) FROM sys.partitions  WHERE object_id = (CASE WHEN i.type = 4 THEN allobj.object_id ELSE i.object_id END) AND index_id = (CASE WHEN i.type = 4 THEN 1 ELSE i.index_id END)) &gt; 0) then 1 else 0 end
      </property>
    </version>

    <!-- SXI was introduced in SP1. First build with SXI was SQL11_PCU_Main 11.0.2813 -->
    <version min_major ='11' max_major ='11' min_minor='0' max_minor='0' max_build='2812'>
      <property name="IndexedXmlPathName" type="sysname" read_only_after_creation="true">
         N''
      </property>
    </version>
    
    <version min_major ='11' min_minor='0' min_build='2813'>
      <property name="IndexedXmlPathName" type="sysname" read_only_after_creation="true">
        ISNULL(indexedpaths.name, N'')
      </property>
    </version>
  </properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="IndexedColumn" impl_type="SqlObject" min_major='7'  matrix_min_major='10' cloud_min_major='10'>
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
		<version min_major='7' max_major='8'>		
			<property_link table="dbo.sysindexkeys AS ic" />
			<property_link filed = '#Name#IsComputed#' join="dbo.syscolumns AS clmns">clmns.id = ic.id and clmns.colid = ic.colid and clmns.number = 0</property_link>
		</version>		
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>		
			<!-- accept key, include and xml column, reject RID and partition columns -->
			<property_link table = "sys.index_columns AS ic">ic.column_id > 0 and (ic.key_ordinal > 0 or ic.partition_ordinal = 0 or ic.is_included_column != 0)</property_link>
			<property_link filed = '#Name#IsComputed#' join="sys.columns AS clmns">clmns.object_id = ic.object_id and clmns.column_id = ic.column_id</property_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>		
			<property name="Name" type="nvarchar" size="256" mode="design#deploy">clmns.name</property>		
			<property name="ID" type="int" access="Read" cast='true'>ic.keyno</property>
			<property name="TableID" type="int" hidden='true'>ic.id</property>
			<property name="IndexID" type="int" hidden='true' cast='true'>ic.indid</property>
			<property name="IsComputed" type="bit" access="Read"
						cast = 'true'>COLUMNPROPERTY(ic.id, clmns.name, N'IsComputed')</property>
		</version>		
		<version min_major = '8' max_major='8'>
			<property name="Descending" type="bit"
						cast = 'true' mode="design#deploy">INDEXKEY_PROPERTY(ic.id, ic.indid, ic.keyno, N'IsDescending')</property>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>	
			<property name="Name" type="sysname" mode="design#deploy">clmns.name</property>

			<property name="ID" type="int" access="Read">(case ic.key_ordinal when 0 then ic.index_column_id else ic.key_ordinal end)</property>
			<property name="TableID" type="int" hidden='true'>ic.object_id</property>
			<property name="IndexID" type="int" hidden='true'>ic.index_id</property>
			<property name="IsComputed" type="bit" access="Read"
						cast = 'true'>COLUMNPROPERTY(ic.object_id, clmns.name, N'IsComputed')</property>
			<property name="Descending" type="bit" mode="design#deploy">ic.is_descending_key</property>
			<property name="IsIncluded" type="bit" mode="design#deploy">ic.is_included_column</property>
		</version>		
	</properties>
</EnumObject>
b
<?xml version="1.0" ?>
<EnumObject type="IndexedXmlPath" impl_type="SqlObject" min_major='11'  matrix_min_major='11' >
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
	
		<version min_major='11'  matrix_min_major='11' >		
			<!-- accept key, include and xml column, reject RID and partition columns -->
			<property_link table = "sys.selective_xml_index_paths as xmlTable" />
		</version>		
	</settings>
	<properties>
		<include file='inc_urn.xml' />
      <include file='inc_type.xml' alias='xmlTable' for='#DataType#NumericPrecision#NumericScale#DataTypeSchema#SystemType#Length#' ro_after_creation='#DataType#NumericPrecision#NumericScale#DataTypeSchema#SystemType#Length#'/>
 

		<version min_major='11' matrix_min_major='11' >	
			<property name="Name" type="sysname" mode="design#deploy">xmlTable.name</property>

			<property name="ID" type="int" access="Read">xmlTable.path_id</property>
			<property name="TableID" type="int" hidden='true'>xmlTable.object_id</property>
			<property name="IndexID" type="int" hidden='true'>xmlTable.index_id</property>

		    <property name="Path" type="nvarchar" size='20' read_only_after_creation="true" >xmlTable.path</property>
			
			<property name="PathType" type="tinyint" report_type="IndexedXmlPathType" read_only_after_creation="true" cast='true'>xmlTable.path_type</property>

			<property name="PathTypeDesc" type="sysname" read_only_after_creation="true">xmlTable.path_type_desc</property>
      
			<property name="XmlComponentID" type="int" read_only_after_creation="true">xmlTable.xml_component_id</property>
            
            <property name="XQueryTypeDescription" type="nvarchar" size='4000' read_only_after_creation="true" >ISNULL(xmlTable.xquery_type_description, N'') </property>

			<property name="IsXQueryTypeInferred" type="bit" access="Read">xmlTable.is_xquery_type_inferred</property>
			<property name="IsXQueryMaxlengthInferred" type="bit" access="Read">xmlTable.is_xquery_max_length_inferred</property>
            <property name="XQueryMaxLength" type="int" read_only_after_creation="true">ISNULL(xmlTable.xquery_max_length,-1)</property>
            
			<property name="SqlTypeCollationName" type="sysname" read_only_after_creation="true">xmlTable.collation_name</property>
    		<property name="IsNode" type="bit" read_only_after_creation="true">xmlTable.is_node</property>
    		<property name="IsSingleton" type="bit" read_only_after_creation="true">xmlTable.is_singleton </property>
         
        </version>		
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="IndexedXmlPathNamespace" impl_type="SqlObject" min_major='11'>
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>

		<version min_major='11' >		
			<property_link table = "sys.selective_xml_index_namespaces as xmlTable" />
		</version>		
	</settings>
	<properties>
		<version min_major='11' >	
            <property name="Name" type="sysname" mode="design#deploy">CASE WHEN xmlTable.prefix IS NULL THEN '' ELSE xmlTable.prefix END</property> 
			<property name="TableID" type="int" hidden='true'>xmlTable.object_id</property>
			<property name="IndexID" type="int" hidden='true'>xmlTable.index_id</property>
            <property name="Uri" type="nvarchar" size='4000' read_only_after_creation="true" >xmlTable.uri</property>
	    	<property name="IsDefaultUri" type="bit" read_only_after_creation="true">xmlTable.is_default_uri</property>
        </version>		
	</properties>
</EnumObject>
Z<?xml version='1.0' ?>
<EnumObject type='SPHelpJobstep' impl_type='SqlObject' min_major='7'  matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="JobID" local="JobID" />
		</parent_link>
		<request_parent_select>
			<field name='JobID' />
		</request_parent_select>
	
	
		<property_link table='#tmp_sp_help_jobstep' alias='tshj'/>
        <version min_major='9'  matrix_min_major='10'> 
            <property_link fields='#ProxyName#' left_join='#tmp_sp_help_proxy' alias = 'sp'>sp.proxy_id = tshj.proxy_id</property_link>
        </version>
		
		<version min_major='7' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #tmp_sp_help_jobstep
(step_id int null, step_name nvarchar(128) null, subsystem nvarchar(128) collate Latin1_General_CI_AS null, command nvarchar(3200) null, flags int null, cmdexec_success_code int null, on_success_action tinyint null, on_success_step_id int null, on_fail_action tinyint null, on_fail_step_id int null, server nvarchar(128) null, database_name sysname null, database_user_name sysname null, retry_attempts int null, retry_interval int null, os_run_priority int null, output_file_name nvarchar(300) null, last_run_outcome int null, last_run_duration int null, last_run_retries int null, last_run_date int null, last_run_time int null, job_id uniqueidentifier null)

declare @job_id uniqueidentifier
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobstep(step_id, step_name, subsystem, command, flags, cmdexec_success_code, on_success_action, on_success_step_id, on_fail_action, on_fail_step_id, server, database_name, database_user_name, retry_attempts, retry_interval, os_run_priority, output_file_name, last_run_outcome, last_run_duration, last_run_retries, last_run_date, last_run_time) 
		exec msdb.dbo.sp_help_jobstep @job_id = @job_id
	update #tmp_sp_help_jobstep set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
		<version min_major='9'  matrix_min_major='10'>
			<prefix>
				<link_multiple no='1' expression="
create table #tmp_sp_help_jobstep
(step_id int null, step_name nvarchar(128) null, subsystem nvarchar(128) collate Latin1_General_CI_AS null, command nvarchar(max) null, flags int null, cmdexec_success_code int null, on_success_action tinyint null, on_success_step_id int null, on_fail_action tinyint null, on_fail_step_id int null, server nvarchar(128) null, database_name sysname null, database_user_name sysname null, retry_attempts int null, retry_interval int null, os_run_priority int null, output_file_name nvarchar(300) null, last_run_outcome int null, last_run_duration int null, last_run_retries int null, last_run_date int null, last_run_time int null, proxy_id int null, job_id uniqueidentifier null)

declare @job_id uniqueidentifier
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobstep(step_id, step_name, subsystem, command, flags, cmdexec_success_code, on_success_action, on_success_step_id, on_fail_action, on_fail_step_id, server, database_name, database_user_name, retry_attempts, retry_interval, os_run_priority, output_file_name, last_run_outcome, last_run_duration, last_run_retries, last_run_date, last_run_time, proxy_id) 
		exec msdb.dbo.sp_help_jobstep @job_id = @job_id
	update #tmp_sp_help_jobstep set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
		<prefix fields ="#ProxyName#">
create table #tmp_sp_help_proxy
(proxy_id int null, name nvarchar(300) null, credential_identity nvarchar(300) null, enabled tinyint null, description nvarchar(max) null, user_sid binary(200) null, credential_id int null, credential_identity_exists int null)
insert into #tmp_sp_help_proxy(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists)
		exec msdb.dbo.sp_help_proxy
		</prefix>
		<postfix fields ="#ProxyName#">
drop table #tmp_sp_help_proxy
		</postfix>
		<postfix>
drop table #tmp_sp_help_jobstep
		</postfix>
		<post_process fields = '#LastRunDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime' 
				triggered_fields='#LastRunDateInt#LastRunTimeInt#'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshj.step_name</property>		
		<property name='ID' type='int' access="Write" read_only_after_creation="true">tshj.step_id</property>
        <property name="SubSystem" type="int" report_type="Agent.AgentSubSystem"
			>CASE LOWER(tshj.subsystem) when 'tsql' THEN 1 WHEN 'activescripting' THEN 2 WHEN 'cmdexec' THEN 3 
WHEN 'snapshot' THEN 4 WHEN 'logreader' THEN 5 WHEN 'distribution' THEN 6 
WHEN 'merge' THEN 7 WHEN 'queuereader' THEN 8 WHEN 'analysisquery' THEN 9 
WHEN 'analysiscommand' THEN 10 WHEN 'dts' THEN 11 WHEN 'ssis' THEN 11 WHEN 'powershell' THEN 12 ELSE 0 END</property>
         <version min_major='7' max_major='8'>
		    <property name='Command' type='nvarchar' size = '3200'>ISNULL(tshj.command,N'')</property>
		</version> 
 		<version min_major='9'  matrix_min_major='10'>
			<property name='Command' type='nvarchar' size = 'max'>ISNULL(tshj.command,N'')</property>		
		</version>       
		<property name='CommandExecutionSuccessCode' type='int'>tshj.cmdexec_success_code</property>
		<property name='OnSuccessAction' type='tinyint' report_type="Agent.StepCompletionAction">tshj.on_success_action</property>		
		<property name='OnSuccessStep' type='int'>tshj.on_success_step_id</property>		
		<property name='OnFailAction' type='tinyint' report_type="Agent.StepCompletionAction">tshj.on_fail_action</property>		
		<property name='OnFailStep' type='int'>tshj.on_fail_step_id</property>		
		<property name='Server' type='nvarchar' size = '128'>ISNULL(tshj.server,N'')</property>		
		<property name='DatabaseName' type='sysname'>ISNULL(tshj.database_name,N'')</property>		
		<property name='DatabaseUserName' type='sysname'>ISNULL(tshj.database_user_name,N'')</property>		
		<property name='RetryAttempts' type='int'>tshj.retry_attempts</property>
		<property name='RetryInterval' type='int'>tshj.retry_interval</property>
		<property name='OSRunPriority' type='int' report_type="Agent.OSRunPriority">tshj.os_run_priority</property>		
		<property name='OutputFileName' type='nvarchar' size = '300'>ISNULL(tshj.output_file_name,N'')</property>
		<property name='LastRunOutcome' type='int' report_type="Agent.CompletionResult" access="Read">tshj.last_run_outcome</property>
		<property name='LastRunDuration' type='int' access="Read">tshj.last_run_duration</property>
		<property name='LastRunRetries' type='int' access="Read">tshj.last_run_retries</property>
		<property name="LastRunDate" type="datetime" access="Read">null</property>
		<property name='LastRunDateInt' type='int' hidden='true'>tshj.last_run_date</property>
		<property name='LastRunTimeInt' type='int' hidden='true'>tshj.last_run_time</property>
		<property name="JobStepFlags" type="int" report_type="Agent.JobStepFlags">tshj.flags</property>		

		<version min_major='9'  matrix_min_major='10'>
			<property name="ProxyName" type="nvarchar" size="300">ISNULL(sp.name,N'')</property>		
		</version>
		
		<property name="JobID" type="uniqueidentifier" hidden='true'>tshj.job_id</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="SPHelpJobStepLog" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='JobID' local='JobID' />
			<link parent='ID' local='StepID' />
		</parent_link>
		<request_parent_select>
			<field name='JobID' />
		</request_parent_select>
		<property_link table="#jobstep_outputlog_tmp tjsol" />
		<prefix>
			<link_multiple no='1' expression="
create table #jobstep_outputlog_tmp(job_id uniqueidentifier, job_name sysname, step_id int, step_name sysname, step_uid uniqueidentifier, date_created datetime, date_modified datetime, log_size int, log nvarchar(max))
declare @JobID uniqueidentifier
declare @OldJobID uniqueidentifier
select @OldJobID = null

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @JobID
while @@fetch_status &gt;= 0 
begin 
		if (@OldJobID IS NULL) OR (@OldJobID &lt;&gt; @JobID)
		begin
			insert #jobstep_outputlog_tmp (job_id,job_name,step_id,step_name,step_uid,date_created,date_modified,log_size,log) exec msdb.dbo.sp_help_jobsteplog @job_id = @JobID
			select @OldJobID = @JobID
		end
		fetch crs into @JobID
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #jobstep_outputlog_tmp
		</postfix>
	</settings>
	<properties>
		<property name="JobID" type="uniqueidentifier" access="read">tjsol.job_id</property>
		<property name="JobName" type="sysname" access="read">tjsol.job_name</property>
		<property name="StepID" type="int" access="read">tjsol.step_id</property>
		<property name="StepName" type="sysname" access="read">tjsol.step_name</property>
		<property name="StepUID" type="uniqueidentifier" access="read">tjsol.step_uid</property>				
		<property name="DateCreated" type="datetime" access="read">tjsol.date_created</property>
		<property name="DateModified" type="datetime" access="read">tjsol.date_modified</property>
		<property name="LogSize" type="int" access="read">tjsol.log_size</property>
		<property name="Log" type="nvarchar" size="max" access="read">tjsol.log</property>
	</properties>
</EnumObject>
9<?xml version='1.0' ?>
<EnumObject type='sysjobschedules' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
    <settings>
        <parent_link>
            <link parent="JobID" local="JobID" />
        </parent_link>
        <request_parent_select>
            <field name='JobID' />
        </request_parent_select>

        <property_link table='#tmp_sp_help_jobschedule' alias='tshj'/>
        <version min_major = '7' max_major = '8'>
            <prefix>
                <link_multiple no='1' expression="
create table #tmp_sp_help_jobschedule
(schedule_id int null, schedule_name nvarchar(128) null, enabled int null, freq_type int null, freq_interval int null, freq_subday_type int null, freq_subday_interval int null, freq_relative_interval int null, freq_recurrence_factor int null, active_start_date int null, active_end_date int null, active_start_time int null, active_end_time int null, date_created datetime null, schedule_description nvarchar(4000) null, next_run_date int null, next_run_time int null, job_id uniqueidentifier null)
declare @job_id sysname
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobschedule (schedule_id, schedule_name, enabled, freq_type, freq_interval, freq_subday_type, freq_subday_interval, freq_relative_interval, freq_recurrence_factor, active_start_date, active_end_date, active_start_time, active_end_time, date_created, schedule_description, next_run_date, next_run_time) 
		exec msdb.dbo.sp_help_jobschedule @job_id = @job_id
	update #tmp_sp_help_jobschedule set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <version min_major = '9' matrix_min_major='10'>
            <prefix>
                <link_multiple no='1' expression="
create table #tmp_sp_help_jobschedule
(schedule_id int null, schedule_name nvarchar(128) null, enabled int null, freq_type int null, freq_interval int null, freq_subday_type int null, freq_subday_interval int null, freq_relative_interval int null, freq_recurrence_factor int null, active_start_date int null, active_end_date int null, active_start_time int null, active_end_time int null, date_created datetime null, schedule_description nvarchar(4000) null, next_run_date int null, next_run_time int null, schedule_uid uniqueidentifier null,  job_count int null, job_id uniqueidentifier null)
declare @job_id sysname
declare crs cursor local fast_forward
for ( {0} ) 
open crs 
fetch crs into @job_id
while @@fetch_status &gt;= 0 
begin 
	insert into #tmp_sp_help_jobschedule (schedule_id, schedule_name, enabled, freq_type, freq_interval, freq_subday_type, freq_subday_interval, freq_relative_interval, freq_recurrence_factor, active_start_date, active_end_date, active_start_time, active_end_time, date_created, schedule_description, next_run_date, next_run_time, schedule_uid, job_count) 
		exec msdb.dbo.sp_help_jobschedule @job_id = @job_id
	update #tmp_sp_help_jobschedule set job_id = @job_id where job_id is null
	fetch crs into @job_id
end 
close crs
deallocate crs">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <postfix>
            drop table #tmp_sp_help_jobschedule
        </postfix>

        <post_process fields='#ActiveStartDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveStartDateInt#' />
        <post_process fields='#ActiveEndDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveEndDateInt#' />
        <post_process fields='#ActiveStartTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveStartTimeOfDayInt#' />
        <post_process fields='#ActiveEndTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveEndTimeOfDayInt#' />
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name='Name' type='nvarchar' size = '128'>tshj.schedule_name</property>
        <property name='ID' type='int'>tshj.schedule_id</property>
        <property name='DateCreated' type='datetime' access="Read">tshj.date_created</property>
        <property name='IsEnabled' type='bit' cast='true'>tshj.enabled</property>
        <property name='FrequencyTypes' type='int' report_type='Agent.FrequencyTypes'>tshj.freq_type</property>
        <property name='FrequencyInterval' type='int'>tshj.freq_interval</property>
        <property name='FrequencySubDayTypes' type='int' report_type='Agent.FrequencySubDayTypes'>tshj.freq_subday_type</property>
        <property name='FrequencySubDayInterval' type='int'>tshj.freq_subday_interval</property>
        <property name='FrequencyRelativeIntervals' type='int' report_type="Agent.FrequencyRelativeIntervals">tshj.freq_relative_interval</property>
        <property name='FrequencyRecurrenceFactor' type='int'>tshj.freq_recurrence_factor</property>
        <property name='ActiveStartDate' type='datetime'>null</property>
        <property name='ActiveStartDateInt' type='int' hidden='true'>tshj.active_start_date</property>
        <property name="ActiveStartTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
        <property name='ActiveStartTimeOfDayInt' type='int' hidden='true'>tshj.active_start_time</property>
        <property name="ActiveEndTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
        <property name='ActiveEndTimeOfDayInt' type='int' hidden='true'>tshj.active_end_time</property>
        <property name='ActiveEndDate' type='datetime'>null</property>
        <property name='ActiveEndDateInt' type='int' hidden='true'>tshj.active_end_date</property>
        <property name='JobID' type='uniqueidentifier' hidden='true'>tshj.job_id</property>

        <version min_major='7' max_major='8'>
            <property name='JobCount' type='int' expensive='true' access='Read'>(SELECT COUNT(*) FROM msdb.dbo.sysjobschedules as js WHERE (js.schedule_id = tshj.schedule_id))</property>
        </version>
        <version min_major='9' matrix_min_major='10'>
            <property name='JobCount' type='int' access='Read'>tshj.job_count</property>
            <property name='ScheduleUid' type='uniqueidentifier'>tshj.schedule_uid</property>
        </version>
    </properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='SPHelpSchedule' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_schedule' alias='tshs'/>
		<prefix>
create table #tmp_sp_help_schedule
(schedule_id int null, schedule_uid uniqueidentifier null, schedule_name nvarchar(128) null, enabled int null, freq_type int null, freq_interval int null, freq_subday_type int null, freq_subday_interval int null, freq_relative_interval int null, freq_recurrence_factor int null, active_start_date int null, active_end_date int null, active_start_time int null, active_end_time int null, date_created datetime null, schedule_description nvarchar(4000) null, job_count int null)
insert into #tmp_sp_help_schedule exec msdb.dbo.sp_help_schedule
		</prefix>
		<postfix>
drop table #tmp_sp_help_schedule
		</postfix>
		
		<post_process fields='#ActiveStartDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveStartDateInt#' />
		<post_process fields='#ActiveEndDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveEndDateInt#' />
		<post_process fields='#ActiveStartTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveStartTimeOfDayInt#' />
		<post_process fields='#ActiveEndTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveEndTimeOfDayInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshs.schedule_name</property>
		<property name='ID' type='int'>tshs.schedule_id</property>
    <property name='DateCreated' type='datetime' access="Read">tshs.date_created</property>
		<property name='IsEnabled' type='bit' cast='true'>tshs.enabled</property>
		<property name='FrequencyTypes' type='int' report_type='Agent.FrequencyTypes'>tshs.freq_type</property>						
		<property name='FrequencyInterval' type='int'>tshs.freq_interval</property>		
		<property name='FrequencySubDayTypes' type='int' report_type='Agent.FrequencySubDayTypes'>tshs.freq_subday_type</property>
		<property name='FrequencySubDayInterval' type='int'>tshs.freq_subday_interval</property>
		<property name='FrequencyRelativeIntervals' type='int' report_type="Agent.FrequencyRelativeIntervals">tshs.freq_relative_interval</property>
		<property name='FrequencyRecurrenceFactor' type='int'>tshs.freq_recurrence_factor</property>
		<property name='ActiveStartDate' type='datetime'>null</property>
		<property name='ActiveStartDateInt' type='int' hidden='true'>tshs.active_start_date</property>
		<property name="ActiveStartTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='ActiveStartTimeOfDayInt' type='int' hidden='true'>tshs.active_start_time</property>
		<property name="ActiveEndTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='ActiveEndTimeOfDayInt' type='int' hidden='true'>tshs.active_end_time</property>
		<property name='ActiveEndDate' type='datetime'>null</property>		
		<property name='ActiveEndDateInt' type='int' hidden='true'>tshs.active_end_date</property>
		<property name='JobCount' type='int' access='Read'>tshs.job_count</property>
    <property name='ScheduleUid' type='uniqueidentifier' access="Read">tshs.schedule_uid</property>
  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='sysjobschedules' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='msdb.dbo.sysjobschedules sjs' />
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table='msdb.dbo.sysschedules sjs' />
		</version>
		<post_process fields='#ActiveStartDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveStartDateInt#' />
		<post_process fields='#ActiveEndDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDate'
			triggered_fields='#ActiveEndDateInt#' />
		<post_process fields='#ActiveStartTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveStartTimeOfDayInt#' />
		<post_process fields='#ActiveEndTimeOfDay#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#ActiveEndTimeOfDayInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>sjs.name</property>
		<property name='ID' type='int'>sjs.schedule_id</property>
		<property name='DateCreated' type='datetime' access='Read'>sjs.date_created</property>
		<property name='IsEnabled' type='bit'>convert(bit,sjs.enabled)</property>
		<property name='FrequencyTypes' type='int' report_type='Agent.FrequencyTypes'>sjs.freq_type</property>
		<property name='FrequencyInterval' type='int'>sjs.freq_interval</property>
		<property name='FrequencySubDayTypes' type='int' report_type='Agent.FrequencySubDayTypes'>sjs.freq_subday_type</property>
		<property name='FrequencySubDayInterval' type='int'>sjs.freq_subday_interval</property>
		<property name='FrequencyRelativeIntervals' type='int' report_type="Agent.FrequencyRelativeIntervals">sjs.freq_relative_interval</property>
		<property name='FrequencyRecurrenceFactor' type='int'>sjs.freq_recurrence_factor</property>
		<property name='ActiveStartDateInt' type='int' hidden='true'>sjs.active_start_date</property>
		<property name='ActiveStartDate' type='datetime'>cast(null as datetime)</property>
		<property name='ActiveStartTimeOfDayInt' type='int' hidden='true'>sjs.active_start_time</property>
		<property name="ActiveStartTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='ActiveEndDateInt' type='int' hidden='true'>sjs.active_end_date</property>
		<property name='ActiveEndDate' type='datetime'>cast(null as datetime)</property>
		<property name='ActiveEndTimeOfDayInt' type='int' hidden='true'>sjs.active_end_time</property>
		<property name="ActiveEndTimeOfDay" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='JobCount' type='int' expensive='true' access='Read'>(SELECT COUNT(*) FROM msdb.dbo.sysjobschedules as js WHERE (js.schedule_id = sjs.schedule_id))</property>
	</properties>
</EnumObject>
n<?xml version="1.0" ?>
<EnumObject type="PrimaryFile" impl_type="PrimaryFile" min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table="#smoPrimaryFileProp p" fields="#Property#Value#" />
		<prefix fields="#Property#Value#"> 
			declare @command nvarchar(300)
			select @command = 'dbcc checkprimaryfile (N'''+ @fileName + ''' , 2)'
			create table #smoPrimaryFileProp(property sql_variant NULL, value sql_variant NULL) 
			insert #smoPrimaryFileProp exec (@command)
		</prefix>
		<postfix fields="#Property#Value#"> drop table #smoPrimaryFileProp</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='255'>rtrim(@fileName)</property>
		<property name="Property" type="sysname" access="Read">p.property</property>
		<property name="Value" type="sysname" access="Read">p.value</property>
	</properties>
</EnumObject>
'<?xml version="1.0" ?>
<EnumObject type="OLEDBProvider" impl_type="SqlObject" min_major='7' >
	<settings main_table="#OLEDBProv op">
		<prefix> create table #OLEDBProv ( Name sysname NOT NULL, ParseName sysname NOT 
			NULL,Description sysname NOT NULL ) insert #OLEDBProv EXECUTE master.dbo.xp_enum_oledb_providers</prefix>
		<postfix> drop table #OLEDBProv</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>OLEDBProvider</property>
		<property name="Name" type="sysname" access="Read">op.Name</property>
		<property name="ParseName" type="sysname" access="Read">op.ParseName</property>
		<property name="Description" type="sysname" access="Read">op.Description</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="OLEDBProviderProp" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="Name" local="Name"/>
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#OLEDBProvProp prop" />
		<prefix>
			<link_multiple no='1' expression="
			create table #OLEDBProvProp (ID int NOT NULL,Description sysname NOT NULL , Flags int NOT NULL, Name sysname null) 
			declare name_cursor cursor 
				FOR {0} 
				for read only 
			open name_cursor 
			DECLARE @providername sysname 
			FETCH NEXT FROM name_cursor INTO @providername 
			WHILE (@@FETCH_STATUS &lt;&gt; -1) 
			BEGIN 
				IF (@@FETCH_STATUS &lt;&gt; -2) 
				BEGIN 
					SELECT @providername = RTRIM(@providername) 
					insert #OLEDBProvProp (ID,Description, Flags) EXECUTE master.dbo.xp_prop_oledb_provider @providername 
					update #OLEDBProvProp set Name = @providername where Name is null
				END 
				FETCH NEXT FROM name_cursor INTO @providername 
			END 
			CLOSE name_cursor 
			DEALLOCATE name_cursor">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix> 
			drop table #OLEDBProvProp
		</postfix>
	</settings>
	<properties>
		<property name="Name" type="sysname">prop.Name</property>
		<property name="ID" type="int">prop.ID</property>
		<property name="Description" type="sysname">prop.Description</property>
		<property name="Flags" type="int">prop.Flags</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#SmoPrimayChildren s">
		<prefix>
			declare @command nvarchar(300)
			select @command = 'dbcc checkprimaryfile (N''' + @fileName + ''' , 3)'
			create table #SmoPrimayChildren(status INT,fileid INT,name sysname,filename nvarchar(512))
			insert #SmoPrimayChildren exec (@command)
		</prefix>
		<postfix>  
			drop table  #SmoPrimayChildren		
		</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='255'>s.name</property>
		<property name="ID" type="int" access="Read">s.fileid</property>
		<property name="IsFile" type="bit" access="Read" cast='true'>case when (s.status &amp; 0x40) = 0 then 1 else 0 end</property>
		<property name="FileName" type="nvarchar" size="512" access="Read">RTRIM(s.filename)</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Check" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS cstr">cstr.type = 'C'</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table="sys.check_constraints AS cstr" />
		</version>
    <version min_major='11'>
      <property_link fields='#IsFileTableDefined#' left_join='sys.filetable_system_defined_objects AS filetableobj'>filetableobj.object_id = cstr.object_id</property_link>
    </version>
    
	</settings>
	<properties>
		<include file='inc_constraint.xml' />
		<include file='inc_fulltext.xml' alias = 'cstr' ro_after_creation='#Text#'/>
		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
    <version min_major='11'>
      <property name="IsFileTableDefined" type="bit" cast='true' access="read">CASE WHEN filetableobj.object_id IS NULL THEN 0 ELSE 1 END</property>
    </version>
	</properties>
</EnumObject>
<<EnumObject type="Trigger" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysobjects AS tr'>tr.type = &lt;msparam&gt;TR&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table='sys.objects AS tr'>tr.type in (&lt;msparam&gt;TR&lt;/msparam&gt;, &lt;msparam&gt;TA&lt;/msparam&gt;)</property_link>
			<property_link table='sys.triggers AS trr'
				fields='#IsEnabled#InsteadOf#NotForReplication#'>trr.object_id = tr.object_id</property_link>
      <property_link fields='#Insert#InsertOrder#' left_join='sys.trigger_events AS tei'>tei.object_id = tr.object_id and tei.type=&lt;msparam&gt;1&lt;/msparam&gt;</property_link>
      <property_link fields='#Update#UpdateOrder#' left_join='sys.trigger_events AS teu'>teu.object_id = tr.object_id and teu.type=&lt;msparam&gt;2&lt;/msparam&gt;</property_link>
      <property_link fields='#Delete#DeleteOrder#' left_join='sys.trigger_events AS ted'>ted.object_id = tr.object_id and ted.type=&lt;msparam&gt;3&lt;/msparam&gt;</property_link>
    </version>
    <version min_major='9'>
      <property_link fileds='#ClassName#MethodName#AssemblyName#'
							left_join='sys.assembly_modules AS mod'>mod.object_id = tr.object_id</property_link>
      <property_link fields='#AssemblyName#'
							left_join='sys.assemblies AS asmbl'>asmbl.assembly_id = mod.assembly_id</property_link>
    </version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_named_object.xml' alias='tr' for="#Name#ID#CreateDate#DateLastModified#ParentID#ExtPropClass#ExtPropMajorID#ExtPropMinorID#ObjectNameFromFilter#"/>
        <include file='inc_system_object.xml' alias='tr' for="#IsSystemObject#" />
		<include file='mixed_module_link.xml' alias='tr' 
			for='#ExecutionContextPrincipal#ExecutionContext#MethodName#ClassName#AssemblyName#AnsiNullsStatus#QuotedIdentifierStatus#Text#BodyStartIndex#IsEncrypted#' />
    <version min_major='7' max_major='8'>
			<property name="IsEnabled" type="bit" cast='true' mode="design">1-OBJECTPROPERTY(tr.id,N'ExecIsTriggerDisabled')</property>
			<property name="InsteadOf" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id, N'ExecIsInsteadOfTrigger')</property>
			<property name="Insert" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id,N'ExecIsInsertTrigger')</property>
			<property name="InsertOrder" type="int"
				report_type="Agent.ActivationOrder" mode="design">CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstInsertTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastInsertTrigger') = 1 THEN 2 ELSE 1 END</property>
			<property name="Update" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id,N'ExecIsUpdateTrigger')</property>
			<property name="UpdateOrder" type="int"
				report_type="Agent.ActivationOrder" mode="design">CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstUpdateTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastUpdateTrigger') = 1 THEN 2 ELSE 1 END</property>
			<property name="Delete" type="bit" cast='true' mode="design">OBJECTPROPERTY(tr.id,N'ExecIsDeleteTrigger')</property>
			<property name="DeleteOrder" type="int"
				report_type="Agent.ActivationOrder" mode="design">CASE WHEN OBJECTPROPERTY(tr.id, N'ExecIsFirstDeleteTrigger') = 1 THEN 0 WHEN OBJECTPROPERTY(tr.id, N'ExecIsLastDeleteTrigger') = 1 THEN 2 ELSE 1 END</property>
			<property name="NotForReplication" type="bit" cast='true' mode="deploy">OBJECTPROPERTY(tr.id,N'ExecIsTriggerNotForRepl')</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">1</property>
		</version>
		
		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'TRIGGER'</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<property name="IsEnabled" type="bit" mode="design">~trr.is_disabled</property>
			<property name="InsteadOf" type="bit" mode="design">trr.is_instead_of_trigger</property>
			<property name="Insert" type="bit" cast='true' mode="design">ISNULL(tei.object_id,0)</property>
			<property name="InsertOrder" type="int" report_type="Agent.ActivationOrder" mode="design">CASE WHEN tei.is_first = 1 THEN 0 WHEN tei.is_last = 1 THEN 2 ELSE 1 END</property>
			<property name="Update" type="bit" cast='true' mode="design">ISNULL(teu.object_id,0)</property>
			<property name="UpdateOrder" type="int" report_type="Agent.ActivationOrder" mode="design">CASE WHEN teu.is_first = 1 THEN 0 WHEN teu.is_last = 1 THEN 2	ELSE 1 END</property>
			<property name="Delete" type="bit" cast='true' mode="design">ISNULL(ted.object_id,0)</property>
			<property name="DeleteOrder" type="int" report_type="Agent.ActivationOrder" mode="design">CASE WHEN ted.is_first = 1 THEN 0 WHEN ted.is_last = 1 THEN 2	ELSE 1 END</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END</property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="NotForReplication" type="bit" mode="deploy">trr.is_not_for_replication</property>
		</version>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefineFunction" impl_type="SqlObject" min_major='8' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<property_link table="dbo.sysobjects AS udf">udf.xtype in ( 'TF', 'FN', 'IF') and udf.name not like N'#%%'</property_link>
			<property_link fields='#TableVariableName#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#XmlSchemaNamespace#' 
					left_join='syscolumns AS ret_param'>ret_param.id = udf.id and ret_param.number = &lt;msparam&gt;0&lt;/msparam&gt; and ret_param.name=''</property_link>
		</version>
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<!--FN = SQL Scalar-Function
				IF = SQL Inlined-table-valued-Function
				TF = SQL Table-valued-Function
				FS = Assembly  (CLR) Scalar-Function
				FT = Assembly (CLR) Table-valued Function
			-->
			<property_link table="sys.all_objects AS udf">udf.type in ('TF', 'FN', 'IF', 'FS', 'FT')</property_link>
			<property_link fields='#TableVariableName#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#XmlSchemaNamespace#XmlSchemaNamespaceSchema#XmlDocumentConstraint#UserType#'
					left_join='sys.all_parameters AS ret_param'>ret_param.object_id = udf.object_id and ret_param.is_output = &lt;msparam&gt;1&lt;/msparam&gt;</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='udf' />
        <include file='inc_system_table_view_sp_udf.xml' alias='udf' for="#IsSystemObject#" />
		<include file='inc_type.xml' alias='ret_param' />
		<include file='mixed_module_link.xml' alias='udf' 
			for='#ReturnsNullOnNullInput#ExecutionContextPrincipal#ExecutionContext#MethodName#ClassName#AssemblyName#AnsiNullsStatus#IsSchemaBound#IsEncrypted#Text#TextBody#BodyStartIndex#'/>
		
		<version min_major='7' max_major='8'>
			<property name="IsDeterministic" type="bit" access="Read" cast='true'>OBJECTPROPERTY(udf.id, N'IsDeterministic')</property>
			<property name="FunctionType" type="int" report_type='UserDefinedFunctionType' mode="design">(case when 1 = OBJECTPROPERTY(udf.id, N'IsScalarFunction') then 1 when 1 = OBJECTPROPERTY(udf.id, N'IsInlineFunction') then 3 when 1 = OBJECTPROPERTY(udf.id, N'IsTableFunction') then 2 else 0 end)</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">1</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">isnull(OBJECTPROPERTYEX(udf.id, N'IsQuotedIdentOn'),1)</property>
			
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'FUNCTION'</property>
		</version>
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<property name="IsDeterministic" type="bit" access="Read" cast='true'>OBJECTPROPERTYEX(udf.object_id, N'IsDeterministic')</property>
			<property name="FunctionType" type="int" report_type='UserDefinedFunctionType' mode="design">(case when 'FN' = udf.type then 1 when 'FS' = udf.type then 1 when 'IF' = udf.type then 3 when 'TF' = udf.type then 2 when 'FT' = udf.type then 2 else 0 end)</property>
			<property name="ImplementationType" type="int" report_type="ImplementationType" mode="design">CASE WHEN udf.type IN ('FN','IF','TF') THEN 1 WHEN udf.type IN ('FS','FT') THEN 2 ELSE 1 END</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">ISNULL(OBJECTPROPERTYEX(udf.object_id,N'ExecIsQuotedIdentOn'),0)</property>
		</version>
		<version min_major='10' matrix_min_major='10' cloud_min_major='10'>
			<property name="ExtPropClassforColumn" type="int" hidden='true'>1</property>
			<property name="ExtPropMajorIDforColumn" type="int" hidden='true'>udf.object_id</property>
		</version>
		<property name="TableVariableName" type='sysname' mode="design">ret_param.name</property>

		<version min_major='10'  matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
	</properties>
</EnumObject>
2<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.syscolumns AS clmns' />
			<property_link fields='#InPrimaryKey#' left_join='dbo.sysindexes AS ik'>ik.id = clmns.id and 0 != ik.status &amp; 0x0800</property_link>
			<property_link fields='#InPrimaryKey#' left_join='dbo.sysindexkeys AS cik'>cik.indid = ik.indid and cik.colid = clmns.colid and cik.id = clmns.id</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join='dbo.sysobjects AS d'>d.id = clmns.cdefault and 0=d.category &amp; 0x0800</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join='dbo.sysobjects AS r'>r.id = clmns.domain</property_link>
			<post_process fields='#ComputedText#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessText' />
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table='sys.all_columns AS clmns' />
			<property_link fields='#IdentitySeed#IdentityIncrement#NotForReplication#' left_join='sys.identity_columns AS ic'>ic.object_id = clmns.object_id and ic.column_id = clmns.column_id</property_link>
			<property_link fields='#ComputedText#IsPersisted#' left_join='sys.computed_columns AS cc'>cc.object_id = clmns.object_id and cc.column_id = clmns.column_id</property_link>
			<property_link fields='#InPrimaryKey#' left_join='sys.indexes AS ik'>ik.object_id = clmns.object_id and 1=ik.is_primary_key</property_link>
			<property_link fields='#InPrimaryKey#' left_join='sys.index_columns AS cik'>cik.index_id = ik.index_id and cik.column_id = clmns.column_id and cik.object_id = clmns.object_id and 0 = cik.is_included_column</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join='sys.objects AS d'>d.object_id = clmns.default_object_id</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join='sys.objects AS r'>r.object_id = clmns.rule_object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design">clmns.name</property>
			<property name="ID" type="int" access="Read" cast='true'>clmns.colid</property>
			<!-- column specific props-->
			<property name="Nullable" type="bit" cast='true' mode="design">clmns.isnullable</property>
			<property name="Computed" type="bit" cast='true' read_only_after_creation="true" mode="design">clmns.iscomputed</property>
			<property name="InPrimaryKey" type="bit" access='read' cast='true'>ISNULL(cik.colid, 0)</property>
			<property name="AnsiPaddingStatus" type="bit" cast='true' access='read'>ISNULL(COLUMNPROPERTY(clmns.id, clmns.name, N'UsesAnsiTrim'),0)</property>
			<property name="RowGuidCol" type="bit" cast='true' mode="design">clmns.colstat &amp; 2</property>
			<property name="NotForReplication" type="bit" cast='true' read_only_after_creation="true" mode="deploy">clmns.colstat &amp; 8</property>
			<property name="IsFullTextIndexed" type="bit" cast='true' access='read' >COLUMNPROPERTY(clmns.id, clmns.name, N'IsFulltextIndexed')</property>
			<property name="ComputedText" type="nvarchar" size='4000' expensive='true' read_only_after_creation="true" mode="design">cast(clmns.id as nvarchar(20)) + '_' + cast(clmns.colid as nvarchar(20)) + '_' + cast(db_id() as nvarchar(20)) + '_0'</property>
			<property name="Identity" type="bit" cast='true' read_only_after_creation="true" mode="design">COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity')</property>
			<property name="IsForeignKey" type="bit" cast='true' 
				access='read' >ISNULL((select top 1 1 from dbo.sysforeignkeys AS colfk where colfk.fkey = clmns.colid and colfk.fkeyid = clmns.id), 0)</property>
			<version min_major='8' max_major='8'>
				<property name="Collation" type="sysname" mode="design">ISNULL(clmns.collation, N'')</property>
				
				<property name="IdentitySeed" type="bigint" cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_seed({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
				<property name="IdentityIncrement" type="bigint" cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_incr({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
			</version>
			<version min_major='7' max_major='7'>
				<property name="IdentitySeed" type="int" report_type2 = 'System.Int64' cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_seed({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
				<property name="IdentityIncrement" type="int" report_type2 = 'System.Int64' cast='true' read_only_after_creation="true" mode="design">
					<link_multiple no='1' expression="case COLUMNPROPERTY(clmns.id, clmns.name, N'IsIdentity') when 1 then ident_incr({0}) else 0 end">
						<link_field type='parent' field="FullName" />
					</link_multiple>
				</property>
			</version>

			<!-- default section -->
			<property name="ColumnDefaultID" type="int" hidden='true'>clmns.cdefault</property>
			<property name="ParentID" type="int" hidden="true">clmns.id</property>			
			<property name="Default" type="sysname" read_only_after_creation="true">(case when clmns.cdefault = 0 then N'' else d.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when clmns.cdefault = 0 then N'' else user_name(d.uid) end)</property>
			<!-- rule section -->
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when clmns.domain = 0 then N'' else r.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when clmns.domain = 0 then N'' else user_name(r.uid) end)</property>

			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>4</property>
			-->
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'COLUMN'</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design">clmns.name</property>
			<property name="ID" type="int">clmns.column_id</property>
			<!-- column specific props-->
			<property name="Nullable" type="bit" mode="design">clmns.is_nullable</property>
			<property name="Computed" type="bit" read_only_after_creation="true" mode="design">clmns.is_computed</property>
			<property name="InPrimaryKey" type="bit" access='read' cast='true'>ISNULL(cik.index_column_id, 0)</property>
			<property name="AnsiPaddingStatus" type="bit" access='read'>clmns.is_ansi_padded</property>
			<property name="RowGuidCol" type="bit" cast='true' mode="design">clmns.is_rowguidcol</property>
			
            <property name="IsDeterministic" type="bit" cast='true' access='read'>ISNULL(COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsDeterministic'),0)</property>
            <property name="IsPrecise" type="bit" cast='true' access='read'>ISNULL(COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsPrecise'),0)</property>
			<property name="ComputedText" type="nvarchar" size='max' expensive='true' read_only_after_creation="true" mode="design">ISNULL(cc.definition,N'')</property>
			<property name="IsPersisted" type="bit" cast="true" mode="design">ISNULL(cc.is_persisted, 0)</property>
			<property name="Collation" type="sysname" mode="design">ISNULL(clmns.collation_name, N'')</property>
			<property name="IsForeignKey" type="bit" cast='true' 
				access='read' >ISNULL((select TOP 1 1 from sys.foreign_key_columns AS colfk where colfk.parent_column_id = clmns.column_id and colfk.parent_object_id = clmns.object_id), 0)</property>
			<!-- identity section -->
			<property name="Identity" type="bit" read_only_after_creation="true" mode="design">clmns.is_identity</property>
			<property name="IdentitySeed" type="bigint" cast='true' read_only_after_creation="true" mode="design">ISNULL(ic.seed_value,0)</property>
			<property name="IdentityIncrement" type="bigint" cast='true' read_only_after_creation="true" mode="design">ISNULL(ic.increment_value,0)</property>

			<!-- default section -->
			<property name="ColumnDefaultID" type="int" hidden='true'>clmns.default_object_id</property>
			<property name="Default" type="sysname" read_only_after_creation="true">(case when clmns.default_object_id = 0 then N'' when d.parent_object_id > 0 then N'' else d.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when clmns.default_object_id = 0 then N'' when d.parent_object_id > 0 then N'' else schema_name(d.schema_id) end)</property>
			<!-- rule section -->
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when clmns.rule_object_id = 0 then N'' else r.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when clmns.rule_object_id = 0 then N'' else schema_name(r.schema_id) end)</property>
		</version>
    <version min_major='9' cloud_min_major='10'>
      <property name="NotForReplication" type="bit" read_only_after_creation="true" mode="deploy">ISNULL(ic.is_not_for_replication, 0)</property>
			<property name="IsFullTextIndexed" type="bit" cast='true' access='read'>COLUMNPROPERTY(clmns.object_id, clmns.name, N'IsFulltextIndexed')</property>
    </version>
    <version min_major='11'>
      <property name="StatisticalSemantics" type="int" cast="true" access="read">COLUMNPROPERTY(clmns.object_id, clmns.name, N'StatisticalSemantics')</property>
    </version>
    <version min_major='9' max_major='9'>
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>1</property>
			<property name="ParentID" type="int" hidden="true">clmns.object_id</property>
		</version>
		
		<version min_major='10' matrix_min_major='10' cloud_min_major='10'>
			<!-- extended properties support -->
      <property name="ExtPropClass" type="int" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='parent' field="ExtPropClassforColumn"/>
        </link_multiple>
      </property>
			<property name="ParentID" type="int" hidden="true">clmns.object_id</property>
		</version>
    <version min_major='10' cloud_min_major='10'>
      <!-- column specific props-->
      <property name="IsFileStream" type="bit" cast='true' read_only_after_creation="true">clmns.is_filestream</property>
      <property name="IsSparse" type="bit" cast="true" mode="design">clmns.is_sparse</property>
      <property name="IsColumnSet" type="bit" cast="true" read_only_after_creation="true" mode="design">clmns.is_column_set</property>
    </version>
		<include alias = 'clmns' file='inc_type.xml' />
		
		<!-- extended properties support -->
		<version min_major='7' max_major='9'>
			<property name="ExtPropMajorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ParentID" />
				</link_multiple>
			</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>
		
		<version min_major='10' matrix_min_major='10' cloud_min_major='10'>
      <property name="ExtPropMajorID" type="int" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='parent' field="ExtPropMajorIDforColumn"/>
        </link_multiple>
      </property>
			<property name="ExtPropMinorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>

		<!-- permission support-->
      <property name="ObjectName" type="sysname" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='parent' field="Name" />
        </link_multiple>
      </property>
      <property name="ObjectSchema" type="sysname" hidden='true'>
        <link_multiple no='1' expression="{0}">
          <link_field type='parent' field="Schema" />
        </link_multiple>
      </property>
	</properties>
</EnumObject>
+<?xml version="1.0" ?>
<EnumObject type="OrderColumn" impl_type="SqlObject" min_major='10' matrix_min_major='10'>
	<settings >
		<parent_link>
			<link parent="ID" local="UdfID" />
		</parent_link>
		<property_link table = "sys.function_order_columns AS oc"></property_link>
		<property_link fields = '#Name#' join="sys.columns AS clmns">clmns.object_id = oc.object_id and clmns.column_id = oc.column_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="ID" type="int" access="Read">oc.order_column_id</property>
		<property name="Descending" type="bit">oc.is_descending</property>		
		<property name="Name" type="sysname">clmns.name</property>
		<property name="UdfID" type="int" hidden='true'>oc.object_id</property>
	</properties>
</EnumObject>

[<?xml version='1.0' ?>
<EnumObject type='SysjobsView' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='msdb.dbo.sysjobs_view' alias='sv'/>

		<property_link fields = '#Category#CategoryType#' join='#tmp_sp_help_category' alias='tshc'>sv.category_id = tshc.category_id</property_link>

		<property_link fields = '#OperatorToEmail#' left_join='#tmp_sp_help_operator' alias='tsho_e'>tsho_e.id = sv.notify_email_operator_id</property_link>
		<property_link fields = '#OperatorToNetSend#' left_join='#tmp_sp_help_operator' alias='tsho_ns'>tsho_ns.id = sv.notify_netsend_operator_id</property_link>
		<property_link fields = '#OperatorToPage#' left_join='#tmp_sp_help_operator' alias='tsho_p'>tsho_p.id = sv.notify_page_operator_id</property_link>

		<prefix fields = '#Category#CategoryType#'>
			create table #tmp_sp_help_category
			(category_id int null, category_type tinyint null, name nvarchar(128) null)
			insert into #tmp_sp_help_category exec msdb.dbo.sp_help_category
		</prefix>
		<version min_major='7' max_major='8'>
			<!-- Yukon SP2 bug 401299: In SQL 2000, aka major version 8, sp_help_operator 
is available only to sysadmin, the db_owner or anyone explicitly 
granted. Otherwise it raises an error which throws back into SMO. SQL 
2000 doesn't have TRY..CATCH so we explicitly check for permission 
before trying to call it.-->

			<!--action = 224(EXECUTE) and protecttype != 206 (not DENY) and (uid = 0 or uid = USER_ID())(public or to me)-->
			<prefix fields = '#OperatorToEmail#OperatorToNetSend#OperatorToPage#'>
				create table #tmp_sp_help_operator
				(id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null)

				if ((ISNULL(IS_SRVROLEMEMBER('sysadmin'), 0) != 0) or
				exists (select * from sysprotects
				where OBJECT_NAME(id) = 'sp_help_operator'
				and action = 224
				and protecttype != 206
				and (uid = 0 or uid = USER_ID())
				)
				)
				insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix fields = '#OperatorToEmail#OperatorToNetSend#OperatorToPage#'>
				create table #tmp_sp_help_operator
				(id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null)
				insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator
			</prefix>
		</version>
		<postfix fields = '#OperatorToEmail#OperatorToNetSend#OperatorToPage#'>
drop table #tmp_sp_help_operator
		</postfix>
		<postfix fields = '#Category#CategoryType#'>
drop table #tmp_sp_help_category
		</postfix>
		<post_process fields = '#CurrentRunRetryAttempt#CurrentRunStatus#CurrentRunStep#HasSchedule#HasServer#HasStep#LastRunDateInt#LastRunTimeInt#LastRunDate#LastRunOutcome#NextRunDateInt#NextRunTimeInt#NextRunDate#NextRunScheduleID#JobType#'
				class_name='Microsoft.SqlServer.Management.Smo.PostProcessJobActivity'
				triggered_fields='#job_id#'/>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @CategoryID=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field type='local' field="CategoryID" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name='Name' type='sysname'>sv.name</property>
		<property name='JobID' type='uniqueidentifier' access='Read'>sv.job_id</property>
		<property name='OriginatingServer' type='sysname' access="Read">sv.originating_server</property>
		<property name='IsEnabled' type='bit' cast='true'>sv.enabled</property>
		<property name='Description' type='nvarchar' size = '512'>ISNULL(sv.description,N'')</property>
		<property name='StartStepID' type='int'>sv.start_step_id</property>
		<property name='OwnerLoginName' type='sysname'>ISNULL(suser_sname(sv.owner_sid), N'')</property>
		<property name="EventLogLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_eventlog</property>
		<property name="EmailLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_email</property>
		<property name="NetSendLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_netsend</property>
		<property name="PageLevel" type="int" report_type="Agent.CompletionAction">sv.notify_level_page</property>
		<property name="DeleteLevel" type="int" report_type="Agent.CompletionAction">sv.delete_level</property>
		<property name='DateCreated' type='datetime' access="Read">sv.date_created</property>
		<property name='DateLastModified' type='datetime' access="Read">sv.date_modified</property>
		<property name='VersionNumber' type='int' access='Read'>sv.version_number</property>
		<property name='Category' type='sysname' expensive = 'true'>tshc.name</property>
		<property name='CategoryID' type='int' expensive = 'false'>sv.category_id</property>
		<property name='CategoryType' type='tinyint' expensive = 'true'>tshc.category_type</property>
		<property name="OperatorToEmail" type="sysname" expensive = 'true'>ISNULL(tsho_e.name,N'')</property>
		<property name="OperatorToNetSend" type="sysname" expensive = 'true'>ISNULL(tsho_ns.name,N'')</property>
		<property name="OperatorToPage" type="sysname" expensive = 'true'>ISNULL(tsho_p.name,N'')</property>

		<property name='job_id' type='nvarchar' size = '100' hidden='true' cast='true'>sv.job_id</property>
		<!-- activity properties -->
		<property name="CurrentRunRetryAttempt" type="int" access="Read" expensive = 'true' notusage="filter,order">null</property>
		<property name="CurrentRunStatus" type="int" access="Read" report_type="Agent.JobExecutionStatus" expensive = 'true' notusage="filter,order">null</property>
		<property name="CurrentRunStep" type="sysname" access="Read" expensive = 'true' notusage="filter,order">null</property>
		<property name="HasSchedule" type="bit" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="HasServer" type="bit" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="HasStep" type="bit" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="LastRunDate" type="datetime" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="LastRunOutcome" type="int" report_type="Agent.CompletionResult" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="NextRunDate" type="datetime" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="NextRunScheduleID" type="int" access='Read' expensive = 'true' notusage="filter,order">null</property>
		<property name="JobType" type="int" report_type="Agent.JobType" access='Read' expensive = 'true' notusage="filter,order">null</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="AditionalParameters" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table = '#srvargs arg'/>
		<prefix > 
declare @Arg sysname
declare @Param sysname
declare @n int

select @n=0
select @Param='dummy'

create table #srvargs (value nvarchar(512) NOT NULL)

while(not @Param is null)
begin
	select @Param=null
	select @Arg='SqlArg'+convert(nvarchar,@n)

		</prefix>
		<version min_major = '7' max_major = '7'>
			<prefix > 
	exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', @Arg, @Param OUTPUT
			</prefix>
		</version>
		<version min_major = '8' matrix_min_major='10'>
			<prefix > 
	exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters', @Arg, @Param OUTPUT
			</prefix>
		</version>
		<prefix > 
	insert #srvargs  select @Param where not @Param is null

	select @n=@n+1
end
		</prefix>
		<postfix>
drop table #srvargs		
		</postfix>
	</settings>
	<properties>
		<property name="Value" type="nvarchar" size="512">arg.value</property>
	</properties>
</EnumObject>	O<?xml version="1.0" ?>
<EnumObject type="Member" impl_type="SqlObject" min_major='7' matrix_min_major="10" cloud_min_major="10">
	<settings>
		<parent_link>
			<link parent='ID' local='RoleID' />
		</parent_link>
		<request_parent_select>
			<field name='ID' />
		</request_parent_select>
		<version min_major = '7' max_major = '8'>
			<property_link table = '#tmp_role_member_ids AS m'/>
			<property_link join = 'dbo.sysusers AS u'>u.uid = m.id</property_link>
    	    <prefix>
			    <link_multiple no='1' expression="
set NOCOUNT OFF
CREATE TABLE #tmp_role_member_ids (id int not null, role_id int null, sub_role_id int null, generation int null)
declare @generation int
set @generation = 0
INSERT INTO #tmp_role_member_ids (id) {0}
UPDATE #tmp_role_member_ids SET role_id = id, sub_role_id = id, generation=@generation
WHILE ( 1=1 )
BEGIN
	INSERT INTO #tmp_role_member_ids (id, role_id, sub_role_id, generation)
		SELECT a.memberuid, b.role_id, a.groupuid, @generation + 1
            FROM sysmembers AS a INNER JOIN #tmp_role_member_ids AS b
            ON a.groupuid = b.id
			WHERE b.generation = @generation
	if @@ROWCOUNT &lt;= 0
		break
	set @generation = @generation + 1
END
delete #tmp_role_member_ids WHERE id in ( {0} )
UPDATE #tmp_role_member_ids SET generation = 0;
INSERT INTO #tmp_role_member_ids (id, role_id, generation) 
    SELECT distinct id, role_id, 1 FROM #tmp_role_member_ids
DELETE #tmp_role_member_ids WHERE generation = 0
">
				<link_field field="ParentSelect" />
			</link_multiple>
    	    </prefix>
    		<postfix>
	    		drop table #tmp_role_member_ids
	    	</postfix>
        </version>
		<version min_major = '9' matrix_min_major="10" cloud_min_major="10">
			<property_link table = '#tmp_role_member_ids AS m'/>
            <property_link join = 'sys.database_principals AS u'>u.principal_id = m.id</property_link>            
    	<prefix>
			<link_multiple no='1' expression="
set NOCOUNT OFF
CREATE TABLE #tmp_role_member_ids (id int not null, role_id int null, sub_role_id int null, generation int null)
declare @generation int
set @generation = 0
INSERT INTO #tmp_role_member_ids (id) {0}
UPDATE #tmp_role_member_ids SET role_id = id, sub_role_id = id, generation=@generation
WHILE ( 1=1 )
BEGIN
	INSERT INTO #tmp_role_member_ids (id, role_id, sub_role_id, generation)
		SELECT a.member_principal_id, b.role_id, a.role_principal_id, @generation + 1
            FROM sys.database_role_members AS a INNER JOIN #tmp_role_member_ids AS b
			ON a.role_principal_id = b.id
            WHERE b.generation = @generation
	if @@ROWCOUNT &lt;= 0
		break
	set @generation = @generation + 1
END
DELETE #tmp_role_member_ids WHERE id in ({0} )
UPDATE #tmp_role_member_ids SET generation = 0;
INSERT INTO #tmp_role_member_ids (id, role_id, generation) 
    SELECT distinct id, role_id, 1 FROM #tmp_role_member_ids
DELETE #tmp_role_member_ids WHERE generation = 0
">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #tmp_role_member_ids
		</postfix>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/' + {1}+ '[@Name=' + quotename({2},'''') + ']'">
				<link_field type='parent' field="DatabaseUrn" />
				<link_field type='local' field="MemberType" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="Name" type="sysname">u.name</property>		
		
		<version min_major = '7' max_major = '8'>
			<property name="ID" type="int">u.uid</property>
			<property name="Login" type="sysname">suser_sname(u.sid)</property>
			<property name="MemberType" type="sysname" hidden='true'>(CASE 
				WHEN u.issqlrole = 1 THEN N'Role' 
				WHEN u.isapprole = 1 THEN N'ApplicationRole'
				ELSE N'User' END)
			</property>
			<property name="RoleID" type="sysname" hidden='true'>m.role_id</property>
		</version>
		<version min_major = '9' matrix_min_major="10" cloud_min_major="10">
			<property name="ID" type="int">u.principal_id</property>
			
			<property name="MemberType" type="sysname" hidden='true'>(CASE u.type 
				WHEN 'A' THEN N'ApplicationRole'
				WHEN 'R' THEN N'Role'
				ELSE N'User' END)
			</property>
			<property name="RoleID" type="sysname" hidden='true'>m.role_id</property>
		</version>

    <version min_major = '9'>
      <property name="Login" type="sysname">suser_sname(u.sid)</property>
    </version>
    <version cloud_min_major='10'>
      <property name="Login" type="sysname">0</property>
    </version>
    
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="WindowsGroup" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>

		<property_link table = "#tmpntgrp" alias = 't'/>
		
		<prefix>
			<link_multiple no = '1' 
expression = 'create table #tmpntgrp ( name sysname NULL, description nvarchar(255) NULL)
insert into #tmpntgrp exec master.dbo.xp_enumgroups {0}'>
				<link_field type='filter' field="Domain"/>
			</link_multiple>
		</prefix>
		
		<postfix>
			drop table #tmpntgrp
		</postfix>
		
	</settings>
	<properties>
		<property name="Name" type="sysname">t.name</property>
		<property name="Description" type="nvarchar" size='255'>t.description</property>
		<property name="Domain" type="nvarchar" size='255' expensive='true' usage='filter'>
			<link_multiple no = '1' expression = '{0}'>
				<link_field type='filter' field="Domain" default_value='NULL'/>
			</link_multiple>
		</property>
	</properties>
</EnumObject>
r<?xml version="1.0" ?>
<EnumObject type="NTLogin" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#tmpntlogin">
		<prefix>
			create table #tmpntlogin ( [Account name] sysname NULL, Type sysname	NULL, [Privilege] sysname NULL, [Mapped login name] sysname NULL, [Permission path] sysname NULL)
			insert into #tmpntlogin exec master.dbo.xp_logininfo 
		</prefix>
		<postfix>
			drop table #tmpntlogin
		</postfix>
	</settings>
	<properties>
		<property name="Account name" type="sysname">[Account name]</property>
		<property name="Type" type="sysname">Type</property>
		<property name="Privilege" type="sysname">[Privilege]</property>
		<property name="Mapped login name" type="sysname">[Mapped login name]</property>
		<property name="Permission path" type="sysname">[Permission path]</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Rule" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS obj">obj.xtype=N'R'</property_link>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table="sys.objects" alias="obj">obj.type=N'R' and (0 = obj.parent_object_id or obj.parent_object_id is null)</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='obj' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#'/>
		<include file='sql_module_link.xml' alias='obj' for='#Text#BodyStartIndex#' ro_after_creation='#Text#'/>

		<version min_major='8' max_major='8'>
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'RULE'</property>
		</version>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="RuleID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table = 'dbo.syscolumns AS c'/>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link join = 'sys.columns AS c'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<!--needed for children inc_DefaultRule_column-->
			<property name="RuleID" type="int" hidden='true'>c.domain</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<!--needed for children inc_DefaultRule_column-->
			<property name="RuleID" type="int" hidden='true'>c.rule_object_id</property>
		</version>
		<include file='inc_column_reference.xml' alias='c'/>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="RuleID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.systypes AS t' />
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link join='sys.types AS t'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="RuleID" type="int" hidden='true'>t.domain</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="RuleID" type="int" hidden='true'>t.rule_object_id</property>
		</version>
		<include file='inc_type_reference.xml' alias='t' />
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Configuration" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
  <settings>
	<version min_major='7' 	max_major = '8'>
		<property_link table="master.dbo.syscurconfigs" alias ="cfg"/>
		<property_link join="master.dbo.spt_values" alias ="v">v.type = 'C  ' and not cfg.status is null and v.number = cfg.config	</property_link>
		<property_link fields="#ConfigValue#" left_join="master.dbo.sysconfigures ucfg">ucfg.config = cfg.config</property_link>
	</version>
	<version min_major='9' matrix_min_major='10'>
		<property_link table="sys.configurations" alias= "cfg"/>
	</version>
</settings>

<properties>
	<version min_major='7' 	max_major = '8'>
		<property name="Name" type="nvarchar" size="35" access="Read">v.name</property>
		<property name="Number" type="int" access="Read">v.number</property>
		<property name="Minimum" type="int" access="Read">v.low</property>
		<property name="Maximum" type="int" access="Read">v.high</property>
		<property name="Dynamic" type="bit" access="Read" cast='true'>cfg.status &amp; 1</property>
		<property name="Advanced" type="bit" access="Read" cast='true'>cfg.status &amp; 2</property>
		<property name="ConfigValue" type="int" access="Read">ucfg.value</property>
		<property name="RunValue" type="int" access="Read">cfg.value</property>
		<property name="Description" type="nvarchar" size='510' access="Read">cfg.comment</property>
	</version>
	<version min_major='9' matrix_min_major='10'>
		<property name="Name" type="nvarchar" size="35" access="Read">cfg.name</property>
		<property name="Number" type="int" access="Read">cfg.configuration_id</property>
		<property name="Minimum" type="int" access="Read">cfg.minimum</property>
		<property name="Maximum" type="int" access="Read">cfg.maximum</property>
		<property name="Dynamic" type="bit" access="Read">cfg.is_dynamic</property>
		<property name="Advanced" type="bit" access="Read">cfg.is_advanced</property>
		<property name="ConfigValue" type="int" access="Read">cfg.value</property>
		<property name="RunValue" type="int" access="Read">cfg.value_in_use</property>
		<property name="Description" type="nvarchar" size='510' access="Read">cfg.description</property>	
	</version>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="AffinityInfo" impl_type="SqlObject" min_major='10' min_minor ='50' matrix_min_major='10'>
  <settings>
	<version min_major='10' min_minor ='50'>
		<property_link table="sys.dm_os_memory_nodes" alias= "mnd"/>
    <property_link fields="#NodeStateDesc#GroupID#CpuIds#CpuAffinityMask#" join="(Select SUM (cpu_affinity_mask) as cpu_affinity_mask, 
		SUM(online_scheduler_mask) as online_scheduler_mask,
		processor_group,
		node_state_desc,
		memory_node_id
		from sys.dm_os_nodes 
		group by memory_node_id, node_state_desc, processor_group) AS nd">nd.memory_node_id = mnd.memory_node_id</property_link>
    <property_link fields="#AffinityType#" join="sys.dm_os_sys_info AS inf">1=1</property_link>
    <postfix fields="#NodeStateDesc#GroupID#CpuIds#CpuAffinityMask#">ORDER BY ID ASC</postfix>
  </version>
  </settings>
  <properties>
	<version min_major='10' min_minor ='50' >
    <property name="AffinityType" type="int">inf.affinity_type</property>
    <property name="NodeStateDesc" type="nvarchar" size ="256" access ="Read">nd.node_state_desc</property>
		<property name="ID" type="int" access="Read">mnd.memory_node_id</property>
		<property name="GroupID" type="int" access="Read">nd.processor_group</property>
		<property name="CpuIds" type="bigint" access="Read">nd.cpu_affinity_mask</property>
		<property name="CpuAffinityMask" type="bigint" access="Read">nd.online_scheduler_mask</property>
		</version>
  </properties>
</EnumObject>
6<?xml version="1.0" ?>
<EnumObject type="ResourcePoolAffinityInfo" impl_type="SqlObject" min_major='11'>
  <settings>
	<version min_major='11'>
      <property_link table="sys.dm_resource_governor_resource_pools" alias= "[pls]"/>
      <property_link fields="#GroupID#CpuIds#CpuAffinityMask#" join="
                     (SELECT SUM ([cpu_affinity_mask]) AS [cpu_affinity_mask], 
		              SUM([online_scheduler_mask]) AS [online_scheduler_mask],
		              [processor_group],
		              [node_state_desc],
		              [memory_node_id]
		              FROM [sys].[dm_os_nodes] 
		              GROUP BY [memory_node_id], [node_state_desc], [processor_group]) AS [mn]"> [mn].[memory_node_id] &lt; 64
      </property_link>
      <property_link fields="#GroupID#CpuIds#CpuAffinityMask#" left_join="(SELECT DISTINCT [pa].[pool_id] FROM [sys].[dm_resource_governor_resource_pool_affinity] AS [pa]) AS [plaff]">
        [pls].[pool_id] = [plaff].[pool_id]
      </property_link>
      <postfix fields="#GroupID#CpuIds#CpuAffinityMask#">ORDER BY [pls].[pool_id], [mn].[memory_node_id] ASC</postfix>
    </version>
  </settings>
  <properties>
	<version min_major='11'>
        <property name="PoolID" type="int">[pls].[pool_id]</property>
        <property name="AffinityType" type="int">
          CASE WHEN [plaff].[pool_id] IS NULL
          THEN 2 ELSE 1
          END
        </property>
		<property name="ID" type="int" access="Read">[mn].[memory_node_id]</property>
		<property name="GroupID" type="int" access="Read">[mn].[processor_group]</property>
		<property name="CpuIds" type="bigint" access="Read">[mn].[cpu_affinity_mask]</property>
		<property name="CpuAffinityMask" type="bigint" access="Read">[mn].[online_scheduler_mask]</property>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ResourcePoolScheduler" impl_type="SqlObject" min_major='11'>
  <settings>
	<version min_major='11'>
      <property_link table="[sys].[dm_os_memory_nodes]" alias= "[mn]"/>
      <property_link join="
                         (SELECT [osn].[memory_node_id] AS [numa_node_id], [sc].[cpu_id], [sc].[scheduler_id]
                          FROM [sys].[dm_os_nodes] AS [osn]
                          LEFT JOIN [sys].[dm_os_schedulers] AS [sc] 
                              ON [osn].[node_id] = [sc].[parent_node_id] 
                              AND [sc].[scheduler_id] &lt; 1048576
                          WHERE [osn].[memory_node_id] &lt; 64) AS [smap]"> [mn].[memory_node_id] = [smap].[numa_node_id]
      </property_link>
      <property_link join="[sys].[dm_resource_governor_resource_pools] AS [pls]"> 1 = 1 </property_link>
      <property_link left_join="[sys].[dm_resource_governor_resource_pool_affinity] AS [aff]">
        [pls].[pool_id] = [aff].[pool_id] AND ([smap].[scheduler_id] / 64) = [aff].[processor_group]
      </property_link>
      <postfix>ORDER BY [smap].[numa_node_id], [smap].[scheduler_id] ASC</postfix>
    </version>
  </settings>
  <properties>
	<version min_major='11'>
        <property name="NumaNodeId" type="int" access="Read">[mn].[memory_node_id]</property>
		<property name="CpuId" type="int" access="Read">[smap].[cpu_id]</property>
		<property name="SchedulerId" type="int" access="Read">[smap].[scheduler_id]</property>
		<property name="PoolId" type="int" access="Read">[pls].[pool_id]</property>
		<property name="SchedulerMask" type="bigint" access="Read">ISNULL([aff].[scheduler_mask], 0)</property>
    </version>
  </properties>
</EnumObject>
'<?xml version="1.0" ?>
<EnumObject type="Default" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS obj">obj.xtype=N'D' and obj.name not like N'#%%' and 0=(obj.category &amp; 0x0800)</property_link>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table="sys.objects" alias="obj">obj.type=N'D' and not(obj.parent_object_id > 0)</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_object.xml' alias='obj' for='#Urn#Name#Schema#ID#CreateDate#'/>
		<include file='sql_module_link.xml' alias='obj' for='#Text#BodyStartIndex#' ro_after_creation='#Text#'/>
		
		<version min_major='8' max_major='8'>
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'DEFAULT'</property>
		</version>
    <version min_major='10' matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
n<?xml version="1.0" ?>
<EnumObject type="UserDefinedDataType" impl_type="SqlObject" min_major='7' cloud_min_major='10' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="systypes AS st">st.xusertype != st.xtype and st.name != N'sysname'</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join="sysobjects AS def">def.id = st.tdefault</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join="sysobjects AS rul">rul.id = st.domain</property_link>
		</version>
		<version min_major='9' max_major='9'>
			<property_link table="sys.types AS st">st.schema_id!=4 and st.system_type_id!=240 and st.user_type_id != st.system_type_id</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join="sys.objects AS def">def.object_id = st.default_object_id</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join="sys.objects AS rul">rul.object_id = st.rule_object_id</property_link>
		</version>
		<version min_major='10' cloud_min_major='10' matrix_min_major='10'>
			<property_link table="sys.types AS st">st.schema_id!=4 and st.system_type_id!=240 and st.user_type_id != st.system_type_id and st.is_table_type != 1</property_link>
			<property_link fields='#Default#DefaultSchema#' left_join="sys.objects AS def">def.object_id = st.default_object_id</property_link>
			<property_link fields='#Rule#RuleSchema#' left_join="sys.objects AS rul">rul.object_id = st.rule_object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include file='inc_type_reference.xml' alias='st' />
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true'>st.xusertype</property>
		</version>
		<version min_major='9' cloud_min_major='10' matrix_min_major='10'>
			<property name="ID" type="int">st.user_type_id</property>
		</version>
		<include file='inc_type.xml' alias='st' for='#Length#NumericPrecision#NumericScale#' ro_after_creation='#Length#NumericPrecision#NumericScale#'/>
		<property name="AllowIdentity" type="bit" access="Read" cast='true'>
			<link_multiple no='1' expression="CASE WHEN {0} IN (N'decimal', N'int', N'numeric', N'smallint', N'tinyint', N'bigint') THEN 1 ELSE 0 END">
				<link_field type='local' field="SystemType" />
			</link_multiple>
		</property>
		<version min_major='7' max_major='8'>
			<property name="MaxLength" type="smallint" access="Read">st.length</property>
			<property name="Nullable" type="bit" read_only_after_creation="true" mode="design">st.allownulls</property>
			<property name="VariableLength" type="bit" access="Read">st.variable</property>
			<property name="Default" type="sysname" read_only_after_creation="true">(case when st.tdefault = 0 then N'' else def.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when st.tdefault = 0 then N'' else user_name(def.uid) end)</property>
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when st.domain = 0 then N'' else rul.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when st.domain = 0 then N'' else user_name(rul.uid) end)</property>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>1</property>
			<property name="ExtPropMajorID" type="int" hidden='true'>0</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>st.xusertype</property>
			-->
			<!-- extended properties support -->
			<property name="ObjectTypeName" type="sysname" hidden="true">N'TYPE'</property>
			<property name="ObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='filter' field="Name" default_value="default"/>
				</link_multiple>
			</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation, N'')</property>
		</version>
		<version min_major='9' cloud_min_major='10' matrix_min_major='10'>
			<property name="MaxLength" type="smallint" access="Read">st.max_length</property>
			<property name="Nullable" type="bit" read_only_after_creation="true" mode="design">st.is_nullable</property>
			<property name="Default" type="sysname" read_only_after_creation="true">(case when st.default_object_id = 0 then N'' else def.name end)</property>
			<property name="DefaultSchema" type="sysname" read_only_after_creation="true">(case when st.default_object_id = 0 then N'' else schema_name(def.schema_id) end)</property>
			<property name="Rule" type="sysname" read_only_after_creation="true">(case when st.rule_object_id = 0 then N'' else rul.name end)</property>
			<property name="RuleSchema" type="sysname" read_only_after_creation="true">(case when st.rule_object_id = 0 then N'' else schema_name(rul.schema_id) end)</property>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation_name, N'')</property>
			<property name="VariableLength" type="bit" cast='true' access="Read">CASE WHEN baset.name IN ( N'varchar', N'varbinary', N'nvarchar' ) THEN 1 ELSE 0 END</property>
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>6</property>
			<property name="ExtPropMajorID" type="int" hidden='true'>st.user_type_id</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		</version>
		<property name="SystemType" type="sysname" read_only_after_creation="true" mode="design">
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="BaseTypeHidden" />
			</link_multiple>
		</property>
    <version min_major='10' matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedTableType" impl_type="SqlObject" min_major='10' cloud_min_major='10'>
	<settings>
		<property_link table="sys.table_types AS tt" />
		<property_link fields='#CreateDate#DateLastModified#ParentID#' left_join="sys.objects AS obj">obj.object_id = tt.type_table_object_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
    <include file='inc_type_reference.xml' alias='tt' for='#Owner#IsSchemaOwned#' />
		<property name="Name" type="sysname" mode="design">tt.name</property>
		<property name="ID" type="int" access='Read'>tt.type_table_object_id</property>
		<property name="Schema" type="sysname" mode="design">SCHEMA_NAME(tt.schema_id)</property>
		<property name="CreateDate" type="datetime" access='Read'>obj.create_date</property>
		<property name="DateLastModified" type="datetime" access='Read'>obj.modify_date</property>
		<property name="ParentID" type="int" hidden='true'>obj.parent_object_id</property>
		<property name="MaxLength" type="smallint" access="Read">tt.max_length</property>
		<property name="Nullable" type="bit" read_only_after_creation="true">tt.is_nullable</property>
		<property name="Collation" type="sysname" access="Read">ISNULL(tt.collation_name, N'')</property>
		<property name="IsUserDefined" type="bit" cast='true' read_only_after_creation="true" mode="design">case when tt.is_user_defined = 1 then 1 else 0 end</property>
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>6</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>tt.user_type_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<property name="ExtPropClassforColumn" type="int" hidden='true'>8</property>
		<property name="ExtPropMajorIDforColumn" type="int" hidden='true'>tt.user_type_id</property>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="ForeignKey" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS cstr">cstr.type=N'F'</property_link>
			<property_link fields="#ReferencedKey#ReferencedTable#ReferencedTableSchema#" 
					join="dbo.sysreferences AS rfr">rfr.constid = cstr.id</property_link>
			<property_link fields="#ReferencedKey#" 
					left_join="dbo.sysindexes AS ki">ki.indid = rfr.rkeyindid AND ki.id = rfr.rkeyid</property_link>
			<property_link fields="#ReferencedTable#ReferencedTableSchema#" 
					join="dbo.sysobjects AS rtbl">rfr.rkeyid = rtbl.id</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table="sys.foreign_keys AS cstr" />
			<property_link fields="#ReferencedKey#" 
					left_join="sys.indexes AS ki">ki.index_id = cstr.key_index_id and ki.object_id = cstr.referenced_object_id</property_link>
			<property_link fields="#ReferencedTable#ReferencedTableSchema#" 
					join="sys.tables rtbl">rtbl.object_id = cstr.referenced_object_id</property_link>
		</version>
    <version min_major='11'>
      <property_link fields='#IsFileTableDefined#' left_join='sys.filetable_system_defined_objects AS filetableobj'>filetableobj.object_id = cstr.object_id</property_link>
    </version>
	</settings>
	<properties>
    
		<include file='inc_constraint.xml' />
		<version min_major='7' max_major='8'>
			<property name="ReferencedKey" type="sysname" access='Read'>ki.name</property>
			<property name="ReferencedTable" type="sysname" mode="design">rtbl.name</property>
			<property name="ReferencedTableSchema" type="sysname" mode="design">user_name(rtbl.uid)</property>
			<property name="DeleteAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">OBJECTPROPERTY(cstr.id, N'CnstIsDeleteCascade')</property>
			<property name="UpdateAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">OBJECTPROPERTY(cstr.id, N'CnstIsUpdateCascade')</property>
		</version>
		
		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="ReferencedKey" type="sysname" access='Read'>ki.name</property>
			<property name="ReferencedTable" type="sysname" mode="design">rtbl.name</property>
			<property name="ReferencedTableSchema" type="sysname" mode="design">schema_name(rtbl.schema_id)</property>
			<!--
			The referential action that was declared for this foreign key when an update happens, one of:
			0 = No Action
			1 = Cascade
			2 = Set Null
			3 = Set Default
			-->
			<property name="DeleteAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">cstr.delete_referential_action</property>
			<property name="UpdateAction" type="tinyint" report_type='ForeignKeyAction' read_only_after_creation="true" mode="design">cstr.update_referential_action</property>
		</version>
    <version min_major='11'>
      <property name="IsFileTableDefined" type="bit" cast='true' access="read">CASE WHEN filetableobj.object_id IS NULL THEN 0 ELSE 1 END</property>
    </version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns' alias='param'>param.number = 1 or (param.number = 0 and 1 = OBJECTPROPERTY(param.id, N'IsScalarFunction') and isnull(param.name, '') != '')</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table='sys.all_parameters' alias='param'>param.is_output = 0</property_link>
		</version>
	</settings>
	<properties>
		<property name="Number" type="int" hidden='true'>-1</property>
		<version min_major='10' matrix_min_major='10' cloud_min_major='10'>
			<property name="IsReadOnly" type="bit" mode="design">param.is_readonly</property>
		</version>
		<include file='parameter.xml'/>	
	</properties>
</EnumObject>
2<?xml version="1.0" ?>
<EnumObject type="BoundColumn" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="UserTypeID" />
		</parent_link>
		<version min_major = '7' max_major = '8'>
			<property_link table = 'dbo.syscolumns AS c'/>
			<property_link join="dbo.sysobjects AS t">t.id = c.id and t.type = 'U'</property_link>
		</version>
		<version min_major = '9' matrix_min_major='10'>
			<property_link table = 'sys.columns AS c'/>
			<property_link fields = '#ObjectName#ObjectSchema#' join="sys.tables AS t">t.object_id = c.object_id</property_link>
		</version>			
	</settings>
	<properties>
		<property name="Name" type="sysname">c.name</property>	
		<property name="ObjectName" type="sysname" access="Read">t.name</property>
		<version min_major = '7' max_major = '8'>
			<property name="ObjectSchema" type="sysname" access="Read">user_name(t.uid)</property>		
			<property name="UserTypeID" type="int" hidden = 'true'>c.xusertype</property>
		</version>
		<version min_major = '9' matrix_min_major='10'>
			<property name="ObjectSchema" type="sysname" access="Read">schema_name(t.schema_id)</property>		
			<property name="UserTypeID" type="int" hidden = 'true'>c.user_type_id</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ServerOption" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="DisableDefaultConstraintCheck" type="bit" cast='true'>@@OPTIONS &amp; 1</property>
		<property name="ImplicitTransactions" type="bit" cast='true'>@@OPTIONS &amp; 2</property>
		<property name="CursorCloseOnCommit" type="bit" cast='true'>@@OPTIONS &amp; 4</property>
		<property name="AnsiWarnings" type="bit" cast='true'>@@OPTIONS &amp; 8</property>
		<property name="AnsiPadding" type="bit" cast='true'>@@OPTIONS &amp; 16</property>
		<property name="AnsiNulls" type="bit" cast='true'>@@OPTIONS &amp; 32</property>
		<property name="ArithAbort" type="bit" cast='true'>@@OPTIONS &amp; 64</property>
		<property name="ArithIgnore" type="bit" cast='true'>@@OPTIONS &amp; 128</property>
		<property name="QuotedIdentifier" type="bit" cast='true'>@@OPTIONS &amp; 256</property>
		<property name="NoCount" type="bit" cast='true'>@@OPTIONS &amp; 512</property>
		<property name="AnsiNullDefaultOn" type="bit" cast='true'>@@OPTIONS &amp; 1024</property>
		<property name="AnsiNullDefaultOff" type="bit" cast='true'>@@OPTIONS &amp; 2048</property>
		<property name="ConcatNullYieldsNull" type="bit" cast='true'>@@OPTIONS &amp; 4096</property>
		<property name="NumericRoundAbort" type="bit" cast='true'>@@OPTIONS &amp; 8192</property>
		<property name="AbortTransactionOnError" type="bit" cast='true'>@@OPTIONS &amp; 16384</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="SystemDataType" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major = '7' max_major = '8'>
			<property_link table="dbo.systypes AS st">st.xusertype = st.xtype or st.name=N'sysname'</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table="sys.types AS st">st.schema_id=4</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_type_reference.xml' alias='st' for='#Name#'/>
		
		<property name="Numeric" type="bit" cast='true' access="Read">CASE WHEN st.name IN (N'decimal', N'numeric') THEN 1 ELSE 0 END</property>
		<property name="VariableLength" type="bit" access="Read" cast='true'>CASE WHEN st.name IN ( N'varchar', N'varbinary', N'nvarchar' ) THEN 1 ELSE 0 END</property>
		<property name="VariableMaxLength" type="int" access="Read">
			<link_multiple no='1' expression="CASE WHEN st.name IN ( N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar' ) THEN {0} ELSE 0 END">
				<link_field type='local' field="MaximumLength" />
			</link_multiple>
		</property>
		
		<property name="AllowIdentity" type="bit" access="Read" cast='true'>CASE WHEN st.name IN (N'decimal', N'int', N'numeric', N'smallint', N'tinyint', N'bigint') THEN 1 ELSE 0 END</property>
		<property name="AllowLength" type="bit" access="Read" cast='true'>CASE WHEN st.name IN ( N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar' ) THEN 1 ELSE 0 END</property>
				
		<version min_major = '7' max_major='8'>
			<property name="AllowNulls" type="bit" access="Read">st.allownulls</property>
			<property name="MaximumLength" type="int" access="Read" cast='true'>CASE WHEN st.name IN (N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar') THEN st.prec ELSE st.length END</property>
			<property name="NumericPrecision" type="int" cast='true' access="Read">st.xprec</property>
			<property name="NumericScale" type="int" cast='true' access="Read">st.xscale</property>
		</version>
		<version min_major = '8' max_major='8'>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation,N'')</property>
		</version>
		
		<version min_major = '9'  matrix_min_major='10' cloud_min_major='10'>
			<property name="AllowNulls" type="bit" access="Read">st.is_nullable</property>
			<property name="MaximumLength" type="int" access="Read" 
				cast='true'>CASE WHEN st.name IN (N'nchar', N'nvarchar') THEN st.max_length/2 ELSE st.max_length END</property>
			<property name="Collation" type="sysname" access="Read">ISNULL(st.collation_name,N'')</property>											
			<property name="ID" type="int" access="Read">st.user_type_id</property>
			<property name="NumericPrecision" type="int" cast='true' access="Read">st.precision</property>
			<property name="NumericScale" type="int" cast='true' access="Read">st.scale</property>
		</version>
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="BackupDevice" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
  <settings>
    <version min_major='7' max_major='8'>
      <property_link table = 'master.dbo.sysdevices o'>(o.status &amp; 0x10) &lt;&gt; 0</property_link>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property_link table="sys.backup_devices o"></property_link>
    </version>

  </settings>


  <properties>
    <include file='inc_urn.xml' />
    <property name="Name" type="sysname">o.name</property>
    <version min_major='7' max_major='8'>
      <property name="PhysicalLocation" type="sysname" read_only_after_creation="true">o.phyname</property>
      <property name="BackupDeviceType" type="int" report_type='BackupDeviceType' read_only_after_creation="true">o.cntrltype</property>
      <property name="SkipTapeLabel" type="bit" cast='true' read_only_after_creation="true">o.status &amp; 0x08</property>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property name="PhysicalLocation" type="sysname" read_only_after_creation="true">o.physical_name</property>
      <property name="BackupDeviceType" type="int" report_type='BackupDeviceType' read_only_after_creation="true">o.type</property>
      <!-- This property is not supported on 9.0 but we return 0 in case someone is relying on it to have a value-->
      <property name="SkipTapeLabel" type="bit" cast='true' read_only_after_creation="true">0</property>
    </version>
    <!--This object does not have an ID, so we're going to use the name  
    to calculate policy health.
    Note that this has to be consistent with the API implementation of UrnWithId.-->
    <version min_major = '10' matrix_min_major='10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='2' expression="'Server/{1}[@Name=' + quotename({0},'''') + ']'">
          <link_field type='local' field="Name" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='2' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server/{1}\[@Name=' + QUOTENAME({0}, '''') + '\]%' ESCAPE '\') then 1 else 0 end">
          <link_field type='local' field="Name" />
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="StoredProcedure" impl_type="SqlObject" min_major='7' matrix_min_major='10'  cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.sysobjects AS xproc'>xproc.xtype='X'</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table='sys.all_objects AS xproc'>xproc.type='X'</property_link>
		</version>
    <version min_major='10' matrix_min_major='10' cloud_min_major='10'>
      <property_link fields='#DllLocation#' left_join='sys.extended_procedures as ep'>ep.object_id = xproc.object_id</property_link>
    </version>
	</settings>>
	<properties>
		<include file='inc_object.xml' alias='xproc' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#' />
		<include file='inc_system_object.xml' alias='xproc' for="#IsSystemObject#" />
		
		<version min_major='10' matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
    <version min_major='7' max_major='9'>
      <property name="DllLocation" type="nvarchar" size="4000" read_only_after_creation="true">
        <link_multiple no='1' expression="ISNULL((select top 1 c.definition from sys.sql_modules AS c where c.object_id = {0}),N'')">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
    </version>
    <version min_major='10' matrix_min_major='10' cloud_min_major='10'>
      <property name="DllLocation" type="nvarchar" size="4000" read_only_after_creation="true">ISNULL(ep.dll_name,N'')</property>
    </version>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="DefaultID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table = 'dbo.syscolumns AS c'/>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link join = 'sys.columns AS c'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<!--needed for children inc_DefaultRule_column-->
			<property name="DefaultID" type="int" hidden='true'>c.cdefault</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<!--needed for children inc_DefaultRule_column-->
			<property name="DefaultID" type="int" hidden='true'>c.default_object_id</property>
		</version>
		<include file='inc_column_reference.xml' alias='c'/>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="DefaultID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='dbo.systypes AS t' />
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link join='sys.types AS t'/>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="DefaultID" type="int" hidden='true'>t.tdefault</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="DefaultID" type="int" hidden='true'>t.default_object_id</property>
		</version>
		<include file='inc_type_reference.xml' alias='t' />
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10'>
	<settings/>
	<properties>
		<version min_major='7' max_major='8'>
			<!-- on 7-8 Definition is just a pointer to the text-->
			<property name="Definition" type="nvarchar" size='50' hidden='true'>
				<link_multiple no='1' expression="cast({0} as nvarchar(20)) + '_' + cast(db_id() as nvarchar(20))">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<!-- here we just offer support for text, every object will do whatever it sees fit
			take the whole text, parse it, etc -->
			<property name="Definition" type="nvarchar" size='max'  hidden='true'>
				<link_multiple no='1' expression="object_def({0})">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
		</version>
	</properties>
</EnumObject>*<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings />
	<properties>
		<version min_major='7' max_major='8'>
			<property name="AnsiNullsStatus" type="bit" cast='true' mode="design">OBJECTPROPERTY({0}.id,N'ExecIsAnsiNullsOn')</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">OBJECTPROPERTY({0}.id,N'ExecIsQuotedIdentOn')</property>
			<property name="IsSchemaBound" type="bit" cast='true' mode="design">OBJECTPROPERTY({0}.id, N'IsSchemaBound')</property>
			<property name="IsEncrypted" type="bit" cast='true' mode="deploy">(SELECT TOP 1 encrypted FROM dbo.syscomments p WHERE {0}.id = p.id AND p.colid=1 and p.number &lt; 2)</property>
			<property name="Recompile" type="bit" cast='true' mode="design">{0}.status &amp; 4</property>
			<!-- on 7-8 Definition is just a pointer to the text-->
			<property name="Definition" type="nvarchar" size='80' hidden='true'>cast({0}.id as nvarchar(20)) + '_' + cast(db_id() as nvarchar(20)) + '_0'</property>
		</version>
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10' >
			<property name="IsEncrypted" type="bit" cast='true' mode="deploy">CASE WHEN ISNULL({0}.definition, s{0}.definition) IS NULL THEN 1 ELSE 0 END</property>
			<property name="Recompile" type="bit" cast='true' mode="design">ISNULL({0}.is_recompiled, s{0}.is_recompiled)</property>
			<!-- here we just offer support for text, every object will do whatever it sees fit
			take the whole text, parse it, etc -->
			<property name="Definition" type="nvarchar" size='max' hidden='true'>ISNULL({0}.definition, s{0}.definition)</property>
		</version>
		<property name="ParentNumber" type='smallint' hidden='true'>0</property>
		<include file='inc_text.xml' />
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="inc_procedures" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
	</settings>
	<properties>
      <property name="Urn" type="nvarchar" size="600">
        <link_multiple no='4' expression="{0} + '/{3}[@Name=' + quotename({1},'''') + ' and @Schema=' + quotename({2},'''') + ']'">
          <link_field type='parent' field="Urn" />
          <link_field type='local' field="Name" />
          <link_field type='local' field="Schema" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="FullName" type="nvarchar" size="300" hidden='true'>
        <link_multiple no='2' expression="QUOTENAME({1}) + '.' + QUOTENAME({0})">
          <link_field type='local' field="Name" />
          <link_field type='local' field="Schema" />
        </link_multiple>
      </property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="inc_urn" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
	</settings>
	<properties>
    <property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Name=' + quotename({1},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	</properties>
</EnumObject>RZ<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7' matrix_min_major='10' cloud_min_major='10'>
  <settings>
    <version min_major='8' matrix_min_major='10'>
      <prefix fields='#MasterDBPath#MasterDBLogPath#ErrorLogPath#RootDirectory#InstallDataDirectory#PerfMonMode#MailProfile#BackupDirectory#AuditLevel#LoginMode#DefaultLog#DefaultFile#NumberOfLogFiles#BrowserStartMode#BrowserServiceAccount#InstallSharedDirectory#TcpEnabled#NamedPipesEnabled#ServiceStartMode#ServiceAccount#ServiceInstanceId#SqlDomainGroup#FilestreamShareName#FilestreamLevel#'>
        declare @HkeyLocal nvarchar(18)
        declare @ServicesRegPath nvarchar(34)
        declare @SqlServiceRegPath sysname
        declare @BrowserServiceRegPath sysname
        declare @MSSqlServerRegPath nvarchar(31)
        declare @InstanceNamesRegPath nvarchar(59)
        declare @InstanceRegPath sysname
        declare @SetupRegPath sysname
        declare @NpRegPath sysname
        declare @TcpRegPath sysname
        declare @RegPathParams sysname
        declare @FilestreamRegPath sysname

        select @HkeyLocal=N'HKEY_LOCAL_MACHINE'

        -- Instance-based paths
        select @MSSqlServerRegPath=N'SOFTWARE\Microsoft\MSSQLServer'
        select @InstanceRegPath=@MSSqlServerRegPath + N'\MSSQLServer'
        select @FilestreamRegPath=@InstanceRegPath + N'\Filestream'
        select @SetupRegPath=@MSSqlServerRegPath + N'\Setup'
        select @RegPathParams=@InstanceRegPath+'\Parameters'

        -- Services
        select @ServicesRegPath=N'SYSTEM\CurrentControlSet\Services'
        select @SqlServiceRegPath=@ServicesRegPath + N'\MSSQLSERVER'
        select @BrowserServiceRegPath=@ServicesRegPath + N'\SQLBrowser'

        -- InstanceId setting
        select @InstanceNamesRegPath=N'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL'

        -- Network settings
        select @NpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Np'
        select @TcpRegPath=@InstanceRegPath + N'\SuperSocketNetLib\Tcp'
      </prefix>
    </version>
    <version min_major='8' max_major='9'>
      <prefix fields='#TapeLoadWaitTime#'>
        declare @SmoTapeLoadWaitTime int
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT
      </prefix>
    </version>

    <version min_major="10" matrix_min_major='10'>
      <prefix fields="#SqlDomainGroup#">
        declare @SqlGroup nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLGroup', @SqlGroup OUTPUT
      </prefix>
    </version>
    <version min_major="10">
      <prefix fields="#FilestreamLevel#">
        declare @FilestreamLevel int
        exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'EnableLevel', @FilestreamLevel OUTPUT
      </prefix>
      <prefix fields="#FilestreamShareName#">
        declare @FilestreamShareName nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @FilestreamRegPath, N'ShareName', @FilestreamShareName OUTPUT
      </prefix>
      <prefix fields="#ProcessorUsage#">
        create table #tempproc(value int)
        insert #tempproc exec msdb.sys.sp_getProcessorUsage 
      </prefix>
    </version>

    <!-- Setup Properties-->
    <version min_major="9" matrix_min_major='10'>
      <prefix fields="#ServiceInstanceId#">
        declare @ServiceInstanceId nvarchar(512)
        EXEC master.sys.xp_regread @HkeyLocal, @InstanceNamesRegPath, @@SERVICENAME, @ServiceInstanceId OUTPUT
      </prefix>
      <prefix fields="#ServiceAccount#">
        declare @ServiceAccount nvarchar(512)
        EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'ObjectName', @ServiceAccount OUTPUT
      </prefix>
      <prefix fields="#ServiceStartMode#">
        declare @ServiceStartMode int
        EXEC master.sys.xp_instance_regread @HkeyLocal, @SqlServiceRegPath, N'Start', @ServiceStartMode OUTPUT
      </prefix>
      <prefix fields="#NamedPipesEnabled#">
        declare @NamedPipesEnabled int
        exec master.dbo.xp_instance_regread @HkeyLocal, @NpRegPath, N'Enabled', @NamedPipesEnabled OUTPUT
      </prefix>
      <prefix fields="#TcpEnabled#">
        declare @TcpEnabled int
        EXEC master.sys.xp_instance_regread @HkeyLocal, @TcpRegPath, N'Enabled', @TcpEnabled OUTPUT
      </prefix>
      <prefix fields="#InstallSharedDirectory#">
        declare @InstallSharedDirectory nvarchar(512)
        EXEC master.sys.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @InstallSharedDirectory OUTPUT
      </prefix>
      <prefix fields="#BrowserServiceAccount#">
        declare @BrowserServiceAccount nvarchar(512)
        EXEC master.sys.xp_regread @HkeyLocal, @BrowserServiceRegPath, N'ObjectName', @BrowserServiceAccount OUTPUT
      </prefix>
      <prefix fields="#BrowserStartMode#">
        declare @BrowserStartMode int
        EXEC master.sys.xp_regread @HkeyLocal, @BrowserServiceRegPath, N'Start', @BrowserStartMode OUTPUT
      </prefix>
    </version>

    <!--imported from settings.xml-->
    <version min_major='8' matrix_min_major='10'>
      <prefix fields="#NumberOfLogFiles#">
        declare @NumErrorLogs int
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'NumErrorLogs', @NumErrorLogs OUTPUT
      </prefix>
      <prefix fields="#LoginMode#">
        declare @SmoLoginMode int
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'LoginMode', @SmoLoginMode OUTPUT
      </prefix>
      <prefix fields="#AuditLevel#">
        declare @SmoAuditLevel int
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'AuditLevel', @SmoAuditLevel OUTPUT
      </prefix>
      <prefix fields="#BackupDirectory#">
        declare @BackupDirectory nvarchar(512)
        if 1=isnull(cast(SERVERPROPERTY('IsLocalDB') as bit), 0)
          select @BackupDirectory=cast(SERVERPROPERTY('instancedefaultdatapath') as nvarchar(512))
        else
          exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'BackupDirectory', @BackupDirectory OUTPUT
      </prefix>
      <prefix fields="#MailProfile#">
        declare @SmoMailProfile nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'MailAccountName', @SmoMailProfile OUTPUT
      </prefix>
      <prefix fields="#PerfMonMode#">
        declare @SmoPerfMonMode int
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'Performance', @SmoPerfMonMode OUTPUT

        if @SmoPerfMonMode is null
        begin
        set @SmoPerfMonMode = 1000
        end
      </prefix>
      <!-- Setup properties -->
      <prefix fields="#InstallDataDirectory#">
        declare @InstallSqlDataDir nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLDataRoot', @InstallSqlDataDir OUTPUT
      </prefix>

      <!--imported from information.xml-->
      <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#">
        create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
        insert #SVer exec master.dbo.xp_msver
      </prefix>
      <prefix fields="#RootDirectory#">
        declare @SmoRoot nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @SetupRegPath, N'SQLPath', @SmoRoot OUTPUT
      </prefix>
    </version>

    <version min_major="8" max_major="10" matrix_min_major="10">
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @Arg sysname
        declare @Param sysname
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLogPath nvarchar(512)
        declare @n int

        select @n=0
        select @Param='dummy'
        while(not @Param is null)
        begin
        select @Param=null
        select @Arg='SqlArg'+convert(nvarchar,@n)

        exec master.dbo.xp_instance_regread @HkeyLocal, @RegPathParams, @Arg, @Param OUTPUT
        if(@Param like '-d%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end
        else if(@Param like '-l%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end
        else if(@Param like '-e%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end

        select @n=@n+1
        end
      </prefix>
    </version>

    <version min_major="8" max_major="10">
      <prefix fields="#DefaultFile#">
        declare @SmoDefaultFile nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'DefaultData', @SmoDefaultFile OUTPUT
      </prefix>
      <prefix fields="#DefaultLog#">
        declare @SmoDefaultLog nvarchar(512)
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'DefaultLog', @SmoDefaultLog OUTPUT
      </prefix>
    </version>

    <version min_major="11">
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLog nvarchar(512)
        declare @ErrorLogPath nvarchar(512)

        select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name))) from master.sys.database_files where name=N'master'
        select @LogPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name))) from master.sys.database_files where name=N'mastlog'
        select @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512))
        select @ErrorLogPath=substring(@ErrorLog, 1, len(@ErrorLog) - charindex('\', reverse(@ErrorLog)))
      </prefix>
      <prefix fields="#ClusterName#ClusterQuorumType#ClusterQuorumState#">
        declare @cluster_name nvarchar(128)
        declare @quorum_type tinyint
        declare @quorum_state tinyint
        BEGIN TRY
            SELECT @cluster_name = cluster_name, 
                @quorum_type = quorum_type,
                @quorum_state = quorum_state
            FROM sys.dm_hadr_cluster
        END TRY
        BEGIN CATCH
            IF(ERROR_NUMBER() != 297)
            BEGIN
                THROW
            END
        END CATCH
      </prefix>
    </version>

    <version min_major="8" matrix_min_major="10">
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#">
        drop table #SVer
      </postfix>
    </version>
    <version min_major="10" matrix_min_major="10">
      <postfix fields="#ProcessorUsage#">
        drop table #tempproc
      </postfix>
    </version>
  </settings>

  <properties>
    <!--imported from Settings.xml-->
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='2' expression="'{1}[@Name=' + quotename({0},'''') + ']'">
        <link_field type='local' field="Name" />
        <link_field field="NType" />
      </link_multiple>
    </property>
    <version min_major="7" matrix_min_major = '10'>
      <!--imported from Settings.xml-->
      <property name="AuditLevel" type="int"  report_type='AuditLevel'>@SmoAuditLevel</property>
      <property name="NumberOfLogFiles" type="int">ISNULL(@NumErrorLogs, -1)</property>
      <property name="LoginMode" type="int" report_type='ServerLoginMode'>(case when @SmoLoginMode &lt; 3 then @SmoLoginMode else 9 end)</property>
      <property name="MailProfile" type="nvarchar" size="512">ISNULL(@SmoMailProfile,N'')</property>
      <property name="BackupDirectory" type="nvarchar" size="512" notusage='filter,order'>@BackupDirectory</property>
      <property name="PerfMonMode" type="int" report_type='PerfMonMode'>@SmoPerfMonMode</property>
      <property name="InstallDataDirectory" type="nvarchar" size="512" access="Read">ISNULL(@InstallSqlDataDir,N'')</property>
      <property name="ServiceName" type="sysname" cast='true' access="Read">@@SERVICENAME</property>
       <!--imported from information.xml-->
      <property name="Product" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'ProductName')</property>
      <property name="OSVersion" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'WindowsVersion')</property>
      <property name="Language" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'Language')</property>
      <property name="Platform" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'Platform')</property>
      <property name="PhysicalMemory" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'PhysicalMemory')</property>
      <property name="Processors" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'ProcessorCount')</property>
      <property name="ErrorLogPath" type="nvarchar" size="512" access="Read">@ErrorLogPath</property>      
      <property name="RootDirectory" type="nvarchar" size='512' access="Read">@SmoRoot</property>
  </version>
    <property name="VersionMajor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x1000000) &amp; 0xff</property>
    <property name="VersionMinor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x10000) &amp; 0xff</property>
    <property name="BuildNumber" type="int" access="Read" expensive='true'>@@microsoftversion &amp; 0xffff</property>
    <property name="IsCaseSensitive" type="bit" access="Read" cast='true'>case when 'a' &lt;&gt; 'A' then 1 else 0 end</property>
    <property name="MaxPrecision" type="tinyint" access="Read">@@MAX_PRECISION</property>
  
    <version min_major='7' max_major='8'>
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>case when (select password from master.dbo.syslogins where sid = 0x01) is null then 1 else 0 end</property>
    </version>
    <version min_major='7'>
      <property name="IsFullTextInstalled" type="bit" cast='true' access="Read">FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')</property>
  </version>
  <version min_major='8' matrix_min_major='10' cloud_min_major='10'>
      <property name="VersionString" type="sysname" access="Read">SERVERPROPERTY(N'ProductVersion')</property>
      <property name="Edition" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'Edition')</property>
      <property name="ProductLevel" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'ProductLevel')</property>
      <property name="IsSingleUser" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsSingleUser')</property>
      <property name="EngineEdition" type="int" access='Read' cast='true' report_type='Edition'>SERVERPROPERTY('EngineEdition')</property>
      <property name="Collation" type="sysname" access="Read">convert(sysname, serverproperty(N'collation'))</property>      
    </version>
    <version min_major='8' matrix_min_major='10'>
      <property name="IsClustered" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsClustered')</property>
      <property name="NetName" type="sysname" access="Read" cast = 'true'>SERVERPROPERTY(N'MachineName')</property>
    </version>
    <version min_major='7'>
      <property name="MasterDBLogPath" type="nvarchar" size="512" access="Read">@LogPath</property>
      <property name="MasterDBPath" type="nvarchar" size="512" access="Read">@MasterPath</property>
    </version>
    <version matrix_min_major='10'>
      <property name="MasterDBLogPath" type="nvarchar" size="512" access="Read">REPLACE(@LogPath + N'\',cast(SERVERPROPERTY('InstanceDefaultLogPath') as nvarchar(520)),N'')</property>
      <property name="MasterDBPath" type="nvarchar" size="512" access="Read">REPLACE(@MasterPath + N'\',cast(SERVERPROPERTY('InstanceDefaultDataPath') as nvarchar(520)),N'')</property>
    </version>
    <version min_major='7' max_major='10'>
      <property name="DefaultFile" type="nvarchar" size="512">ISNULL(@SmoDefaultFile,N'')</property>
      <property name="DefaultLog" type="nvarchar" size="512">ISNULL(@SmoDefaultLog,N'')</property>
    </version>
    <version min_major='11' matrix_min_major='10'>
      <property name="DefaultFile" type="nvarchar" size="512">SERVERPROPERTY('instancedefaultdatapath')</property>
      <property name="DefaultLog" type="nvarchar" size="512">SERVERPROPERTY('instancedefaultlogpath')</property>
    </version>
    <version min_major='8' max_major='9'>
      <property name="TapeLoadWaitTime" type="int">@SmoTapeLoadWaitTime</property>
    </version>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
      <property name="ResourceVersionString" type="sysname" access="Read">SERVERPROPERTY(N'ResourceVersion')</property>
      <property name="ResourceLastUpdateDateTime" type="datetime" access="Read">SERVERPROPERTY(N'ResourceLastUpdateDateTime')</property>
      <property name="CollationID" type="int" access="Read">SERVERPROPERTY(N'CollationID')</property>
      <property name="ComparisonStyle" type="int" access="Read">SERVERPROPERTY(N'ComparisonStyle')</property>
      <property name="SqlCharSet" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlCharSet')</property>
      <property name="SqlCharSetName" type="sysname" access="Read">SERVERPROPERTY(N'SqlCharSetName')</property>
      <property name="SqlSortOrder" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlSortOrder')</property>
      <property name="SqlSortOrderName" type="sysname" access="Read">SERVERPROPERTY(N'SqlSortOrderName')</property>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS')</property>
      <property name="BuildClrVersionString" type="sysname" access="Read">SERVERPROPERTY(N'BuildClrVersion')</property>
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>null</property>      
      <!-- Setup Properties -->
      <property name="ServiceInstanceId" type="sysname" access="Read" expensive="true">ISNULL(@ServiceInstanceId,N'')</property>
      <property name="ServiceStartMode" type="int" report_type="ServiceStartMode" access="Read">@ServiceStartMode</property>
      <property name="ServiceAccount" type="nvarchar" size="512" access="Read">ISNULL(@ServiceAccount,N'')</property>
      <property name="NamedPipesEnabled" type="bit" cast="true" access="Read">@NamedPipesEnabled</property>
      <property name="TcpEnabled" type="bit" cast="true" access="Read">@TcpEnabled</property>
      <property name="InstallSharedDirectory" type="nvarchar" size="512" access="Read">ISNULL(@InstallSharedDirectory,N'')</property>
      <property name="BrowserStartMode" type="int" report_type="ServiceStartMode" access="Read" expensive="true">@BrowserStartMode</property>
      <property name="BrowserServiceAccount" type="nvarchar" size="512" access="Read" expensive="true">ISNULL(@BrowserServiceAccount,N'')</property>
    </version>

    <version min_major = '7' max_major = '7'>
      <property name="Name" type="sysname" access="Read" cast="true">@@SERVERNAME</property>
    </version>
    <version min_major = "10">
      <property name="ProcessorUsage" type="int" access="Read" expensive="true">case when OBJECT_ID(N'msdb.sys.sp_getProcessorUsage',  N'P') is not null then (select top 1 value from #tempproc)/(select Internal_Value from #SVer where Name = N'ProcessorCount') else -1 end</property>
    </version>
    <version min_major='8' max_major='9'>
      <property name="Name" type="sysname" cast='true'>serverproperty(N'Servername')</property>
      <property name="InstanceName" type="sysname" access="Read" cast='true'>ISNULL(serverproperty(N'instancename'),N'')</property>
      <property name="Status" type="int" report_type="ServerStatus" access="Read" cast='true'>0x0010</property>
    </version>
    <version min_major = '10' matrix_min_major='10'>
      <property name="SqlDomainGroup" type="nvarchar" size="128" access="Read">ISNULL(suser_sname(sid_binary(ISNULL(@SqlGroup,N''))),N'')</property>
      <property name="PolicyHealthState" type="int" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='1' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state  where target_query_expression_with_id like '{0}%' ) then 1 else 0 end">
          <link_field field="NType"/>
        </link_multiple>
      </property>
      <property name="PhysicalMemoryUsageInKB" type="bigint" access="Read" expensive="true">(select physical_memory_in_use_kb from sys.dm_os_process_memory)</property>
    </version>
    <version min_major = '10'>
      <property name="FilestreamLevel" type="int" access="Read" report_type="FileStreamEffectiveLevel">@FilestreamLevel</property>
      <property name="FilestreamShareName" type="nvarchar" size="512" access="Read">ISNULL(@FilestreamShareName,N'')</property>
      <property name="TapeLoadWaitTime" type="int" access="Read">-1</property>
    </version>
    
    <version min_major = '10' matrix_min_major='10' cloud_min_major='10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='1' expression="'{0}'">
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>

    <!-- HADR Properties -->
    <version min_major="11">
      <property name="IsHadrEnabled" type="bit" cast="true" access="Read">SERVERPROPERTY(N'IsHadrEnabled')</property>
      <property name="HadrManagerStatus" type="int" report_type="HadrManagerStatus" access="Read">SERVERPROPERTY(N'HADRManagerStatus')</property>
      <property name="ClusterName" type="nvarchar" size="256" access="Read">ISNULL(@cluster_name, '')</property>
      <property name="ClusterQuorumType" type="tinyint" access="Read" report_type="ClusterQuorumType">ISNULL(@quorum_type, 4)</property>
      <property name="ClusterQuorumState" type="tinyint" access="Read" report_type="ClusterQuorumState">ISNULL(@quorum_state, 3)</property>
      <property name="ServiceAccountSid" type="varbinary" size = "85" read_only_after_creation="true">SUSER_SID(@ServiceAccount, 0)</property>      
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="RuleDefault" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects obj">
				<link_multiple no = '1' expression="obj.xtype={0} and obj.name not like N'#%%' and 0=(obj.category &amp; 0x0800)">
					<link_field type='local' field="XType" />
				</link_multiple>
			</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include alias='obj' file='inc_object.xml' />
		<!-- TypeSelection is used for inc_sql_module_main -->
		<property name="TypeSelection" type="sysname" hidden='true'>
			<link_multiple no = '1' expression="obj.type = {0} and not(obj.parent_object_id > 0)">
				<link_field type='local' field="XType" />
			</link_multiple>
		</property>
		<include file='inc_sql_module_main.xml' />
		<include file='inc_sql_module_JustText.xml' />
		<include file='inc_text.xml' />
	</properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings/>
	<properties>
  		<version min_major='8' matrix_min_major='10' cloud_min_major='10'>
		    <property name="HasAfterTrigger" type="bit" access="Read" cast='true'>
			    <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasAfterTrigger')">
				    <link_field type='local' field="ID" />
			    </link_multiple>
		    </property>
		    <property name="HasInsertTrigger" type="bit" access="Read" cast='true'>
			    <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasInsertTrigger')">
				    <link_field type='local' field="ID" />
			    </link_multiple>
		    </property>
		    <property name="HasDeleteTrigger" type="bit" access="Read" cast='true'>
			    <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasDeleteTrigger')">
				    <link_field type='local' field="ID" />
			    </link_multiple>
		    </property>
		    <property name="HasInsteadOfTrigger" type="bit" access="Read" cast='true'>
			    <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasInsteadOfTrigger')">
				    <link_field type='local' field="ID" />
			    </link_multiple>
		    </property>
		    <property name="HasUpdateTrigger" type="bit" access="Read" cast='true'>
			    <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'HasUpdateTrigger')">
				    <link_field type='local' field="ID" />
			    </link_multiple>
		    </property>
		    <property name="HasIndex" type="bit" access="Read" cast='true'>
			    <link_multiple no='1' expression="OBJECTPROPERTY({0}, N'IsIndexed')">
    				<link_field type='local' field="ID" />
	    		</link_multiple>
		    </property>
     		<property name="IsIndexable" type="bit" access="Read" cast='true'>
	    		<link_multiple no='1' expression="OBJECTPROPERTY({0}, N'IsIndexable')">
		    		<link_field type='local' field="ID" />
			    </link_multiple>
		    </property>
        </version>
        
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<!-- fragmentation info support -->
			<property name="TableNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='2' expression="quotename({1}) + N'.' + quotename({0})">
					<link_field type='filter' field="Name" default_value="null"/>
					<link_field type='filter' field="Schema" default_value="null"/>
				</link_multiple>
			</property>
		</version>
	</properties>
</EnumObject>


<?xml version="1.0" ?>
<EnumObject type="DefaultConstrain" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link local='ID' parent='ColumnDefaultID' />
		</parent_link>
	
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysobjects AS cstr">cstr.xtype='D' and cstr.name not like N'#%%' and 0!=convert(bit,cstr.category &amp; 0x0800)</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link join="sys.default_constraints AS cstr"/>
		</version>
    <version min_major='11'>
      <property_link fields='#IsFileTableDefined#' left_join='sys.filetable_system_defined_objects AS filetableobj'>filetableobj.object_id = cstr.object_id</property_link>
    </version>
	</settings>
	<properties>
		<include file='inc_constraint.xml' for='#Urn#Name#ID#CreateDate#IsSystemNamed#' />
		<include file='inc_fulltext.xml' alias='cstr' />
		<property name="ParentNumber" type='smallint' hidden='true'>0</property>		

		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'CONSTRAINT'</property>		
			<property name="ParentObjName" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjName" />
				</link_multiple>
			</property>
			<property name="ParentOwner" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentOwner" />
				</link_multiple>
			</property>
			<property name="ParentObjectSchemaFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjectSchemaFromFilter" />
				</link_multiple>
			</property>
			<property name="ParentObjectTypeName" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjectTypeName" />
				</link_multiple>
			</property>
			<property name="ParentObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentObjectNameFromFilter" />
				</link_multiple>
			</property>
		</version>
    <version min_major='11'>
      <property name="IsFileTableDefined" type="bit" cast='true' access="read">CASE WHEN filetableobj.object_id IS NULL THEN 0 ELSE 1 END</property>
    </version>
	</properties>
</EnumObject>
u<?xml version="1.0" ?>
<EnumObject type="Text" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="dbo.syscomments c">
		<parent_link>
			<link parent="ID" local="ParentID" />
			<link local="Number" parent="ParentNumber" />
		</parent_link>
	</settings>
	<properties>
		<property name="ID" type="smallint">c.colid</property>
		<property name="Number" type="int">case when c.number > 1 then c.number else 0 end</property>
		<property name="Text" type="varchar" size='8000' access="Read">c.text</property>
		<property name="ObjectIdentifier" type="nvarchar" size='300' 
			access="Read">cast(c.id as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_' + cast(case when c.number > 1 then c.number else 0 end as nvarchar(20))</property>
		<property name="ParentID" type="int" hidden='true'>c.id</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Index" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysindexes st">
				(st.indid &lt;&gt; 0 and st.indid &lt;&gt; 255) and 0 = OBJECTPROPERTY(st.id,N'IsMSShipped')
			</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table="sys.stats st" />
			
			<post_process fields='#Stream#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessStatisticStream'
				triggered_fields='#StatisticName#ParentFullName#'/>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">st.name</property>
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true'>st.indid</property>
			<property name="NoAutomaticRecomputation" type="bit" cast='true'>case when (st.status &amp; 16777216) &lt;&gt; 0 then 1 else 0 end</property>
			<property name="LastUpdated" type="datetime" access='Read'>STATS_DATE(st.id, st.indid)</property>		
			<property name="IsFromIndexCreation" type="bit" access='Read' cast='true'>1 - INDEXPROPERTY(st.id,st.name,N'IsStatistics')</property>
			<property name="IsAutoCreated" type="bit" access='Read' cast='true'>INDEXPROPERTY(st.id,st.name,N'IsAutoStatistics')</property>
			<property name="FileGroup" type="sysname">''</property>
			<property name="ParentID" type="int" hidden = 'true'>st.id</property>			
			<!-- extended properties support -->
			<property name="ExtPropClass" type="int" hidden='true'>6</property>
		</version>
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<property name="ID" type="int">st.stats_id</property>
			<property name="NoAutomaticRecomputation" type="bit">st.no_recompute</property>
			<property name="LastUpdated" type="datetime" access='Read'>STATS_DATE(st.object_id, st.stats_id)</property>
			<property name="IsFromIndexCreation" type="bit" access='Read' cast='true'>1 - INDEXPROPERTY(st.object_id,st.name,N'IsStatistics')</property>
			<property name="IsAutoCreated" type="bit" access='Read'>st.auto_created</property>
			<property name="FileGroup" type="sysname">''</property>
			<property name="Stream" type="varbinary" expensive='true' access='Read'>null</property>
			
			<property name="ParentID" type="int" hidden='true'>st.object_id</property>
			
			<!-- DBCC SHOW_STATISTICS support -->
			<property name="ParentFullName" type="nvarchar" size='600' hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ThreePartName" />
				</link_multiple>
			</property>
      
			<property name="StatisticName" type="sysname" hidden='true'>st.name</property>
      <!-- extended properties support -->
      <property name="ExtPropClass" type="int" hidden='true'>7</property>
		</version>
		<version min_major='10' matrix_min_major='10' cloud_min_major='10'>
			<property name="HasFilter" type="bit" access='Read'>st.has_filter</property>
			<property name="FilterDefinition" type="nvarchar" size='max'>ISNULL(st.filter_definition ,N'')</property>
		</version>
    <version min_major='11'>
      <property name="IsTemporary" type="bit" access='Read'>st.is_temporary</property>
    </version>
		<!-- extended properties support -->
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ParentID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<version min_major='10' matrix_min_major='10'>

      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Collation" impl_type="SqlObject" min_major='8' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<property_link table = '::fn_helpcollations() cl'/>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table = 'sys.fn_helpcollations() cl'/>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">cl.name</property>
		<property name="CodePage" type="int" cast='true'>COLLATIONPROPERTY(name, 'CodePage')</property>
		<property name="LocaleID" type="int" cast='true'>COLLATIONPROPERTY(name, 'LCID')</property>
		<property name="ComparisonStyle" type="int" cast='true'>COLLATIONPROPERTY(name, 'ComparisonStyle')</property>
		<property name="Description" type="nvarchar" size='1000'>cl.description</property>

		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
				  <property name="CollationVersion" type="int" report_type="CollationVersion" cast='true'>COLLATIONPROPERTY(name, 'Version')</property>
		</version>
	</properties>
</EnumObject>
 
1<?xml version="1.0" ?>
<EnumObject type="Lock" impl_type="SqlObject" min_major='7' matrix_min_major="10">
	<settings>
		<property_link table = 'master.dbo.syslockinfo l, master..spt_values v'>
			l.req_mode = v.number and v.type = N'L' and db_id() = l.rsc_dbid
		</property_link>
	</settings>
	<properties>
		<property name="RequestorSpid" type="int">l.req_spid</property>
		<property name="LockType" type="nvarchar" size='36'>v.name</property>
		<property name="Database" type="sysname">db_name(l.rsc_dbid)</property>
		<property name="Table" type="sysname">object_name(l.rsc_objid)</property>
		<property name="Index" type="sysname">object_name(l.rsc_indid)</property>
		<property name="Status" type="tinyint" report_type='LockRequestStatus'>l.req_status</property>
	</properties>
</EnumObject>
 s<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table="#err_log_tmp er" />
		<version min_major='7' max_major='7'>
			<prefix>
				create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24))
			</prefix>
		</version>
		<version min_major='8' matrix_min_major='10'>
			<prefix>
                create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int)
            </prefix>
		</version>
		<prefix>
			insert #err_log_tmp exec master.dbo.sp_enumerrorlogs
		</prefix>
		<postfix>
			drop table #err_log_tmp
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ArchiveNo=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ArchiveNo" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	
		<property name="Name" type="sysname" cast='true'>er.ArchiveNo</property>
		<property name="ArchiveNo" type="int">er.ArchiveNo</property>
		<property name="CreateDate" type="datetime">CONVERT(datetime, er.CreateDate, 101)</property>
		<version min_major='8' matrix_min_major='10'>
			<property name="Size" type="int">er.Size</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='ArchiveNo' local='ArchiveNo' />
		</parent_link>
		<request_parent_select>
			<field name='ArchiveNo' />
		</request_parent_select>
		<property_link table="#err_log_text_tmp_final ert" />
        <prefix>
            create table #err_log_text_tmp_final(Text nvarchar(4000), ArchiveNo int null, LogDate datetime null, ProcessInfo nvarchar(100) null)
        </prefix>
        <version min_major="7" max_major="8">
            <prefix>
                declare @text_offset int
                declare @process_info_length int

                set @text_offset = 34
                set @process_info_length = 10
            </prefix>
            <prefix>
                <link_multiple no='1' expression="
create table #err_log_text_tmp(id int IDENTITY(0, 1) primary key clustered, Text nvarchar(4000), ContinuationRow bit, ArchiveNo int null)

declare @ArchiveNo int

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo
while @@fetch_status &gt;= 0 
begin 
		if( @ArchiveNo &gt; 0 )
			insert #err_log_text_tmp (Text, ContinuationRow) exec master.dbo.sp_readerrorlog @ArchiveNo
		else
			insert #err_log_text_tmp (Text, ContinuationRow) exec master.dbo.sp_readerrorlog
		update #err_log_text_tmp set ArchiveNo = @ArchiveNo where ArchiveNo is null
		fetch crs into @ArchiveNo
end 
close crs
deallocate crs

declare @off int
select @off = 1

while exists ( select ContinuationRow from #err_log_text_tmp where ContinuationRow = 1 )
begin
	update t1
	set t1.Text = t1.Text + t2.Text
	from #err_log_text_tmp as t1
		inner join #err_log_text_tmp as t2 on t1.id + @off = t2.id
	where t1.ContinuationRow = 0
	and t2.ContinuationRow = 1
	
	delete t2
	from #err_log_text_tmp as t2
		inner join #err_log_text_tmp as t1 on t1.id + @off = t2.id
	where t2.ContinuationRow = 1

	set @off = @off + 1
end

insert #err_log_text_tmp_final
	select 
		Text = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: remove date/spid part */ SUBSTRING(Text, @text_offset, 4000) else /*non structured row*/ Text end,
		ArchiveNo, 
		LogDate = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get date part */ CONVERT(datetime, LEFT(Text, 23), 121) else /*non structured row*/ null end,
		ProcessInfo = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get spid part */ rtrim(SUBSTRING(Text, 24, @process_info_length)) else /*non structured row*/ null end
	from #err_log_text_tmp

drop table #err_log_text_tmp
">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <version min_major="9" matrix_min_major='10'>
            <prefix>
                <link_multiple no='1' expression="
declare @ArchiveNo int

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo
while @@fetch_status &gt;= 0 
begin 
		if( @ArchiveNo &gt; 0 )
			insert #err_log_text_tmp_final (LogDate, ProcessInfo, Text) exec master.dbo.sp_readerrorlog @ArchiveNo
		else
			insert #err_log_text_tmp_final (LogDate, ProcessInfo, Text) exec master.dbo.sp_readerrorlog
		update #err_log_text_tmp_final set ArchiveNo = @ArchiveNo where ArchiveNo is null
		fetch crs into @ArchiveNo
end 
close crs
deallocate crs
">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
		<postfix>
			drop table #err_log_text_tmp_final
		</postfix>
	</settings>
	<properties>
		<property name="LogDate" type="datetime">ert.LogDate</property>
		<property name="ProcessInfo" type="nvarchar" size = '100'>ert.ProcessInfo</property>
		<property name="Text" type="nvarchar" size='4000'>ert.Text</property>
		<property name="ArchiveNo" type="int" hidden='true'>ert.ArchiveNo</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Process" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table = 'master.dbo.sysprocesses p'/>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table = 'sys.dm_exec_sessions p'/>
			<property_link fields ="#Status#Command#Database#BlockingSpid#" left_join = 'sys.dm_exec_requests r'>r.session_id = p.session_id</property_link>
			<property_link fields ="#ExecutionContextID#Database#" join = 'sys.sysprocesses pr'>pr.spid = p.session_id</property_link>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Spid=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Spid" />
				<link_field field="NType" />
			</link_multiple>
		</property>

		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" cast='true'>p.spid</property>
			<property name="Spid" type="smallint">p.spid</property>
			<property name="Login" type="sysname">suser_sname(p.sid)</property>
			<property name="Host" type="nchar" size='129'>p.hostname</property>
			<property name="Status" type="nchar" size='31'>p.status</property>
			<property name="Command" type="nchar" size='31'>p.cmd</property>
			<property name="Database" type="sysname">db_name(p.dbid)</property>
			<property name="Cpu" type="int">p.cpu</property>
			<property name="MemUsage" type="int">p.memusage</property>
			<property name="BlockingSpid" type="smallint">p.blocked</property>
			<property name="IsSystem" type="bit" cast='true'>case when p.spid &lt; 51 then 1 else 0 end</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="Name" type="sysname" cast='true'>p.session_id</property>
			<property name="Spid" type="smallint">p.session_id</property>
			<property name="Login" type="sysname">p.login_name</property>
			<property name="Host" type="nchar" size='129'>p.host_name</property>
			<property name="Status" type="nchar" size='31'>ISNULL(r.status, N'')</property>
			<property name="Command" type="nchar" size='31'>ISNULL(r.command, N'')</property>
			<property name="Database" type="sysname">ISNULL(db_name(r.database_id), ISNULL(db_name(pr.dbid), N''))</property>
			<property name="Cpu" type="int">p.cpu_time</property>
			<property name="MemUsage" type="int">p.memory_usage</property>
			<property name="BlockingSpid" type="smallint">ISNULL(r.blocking_session_id, 0)</property>
			<property name="IsSystem" type="bit" cast='true'>~p.is_user_process</property>
		</version>
		
		<property name="Program" type="nchar" size='129'>p.program_name</property>
		
		<version min_major='7' max_major='7' comment='kept for compatibility with dmo'>
			<property name="ExecutionContextID" type="smallint" cast='true'>0</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="ExecutionContextID" type="smallint">p.ecid</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="ExecutionContextID" type="smallint">pr.ecid</property>
		</version>

	</properties>
</EnumObject>
 S<?xml version="1.0" ?>
<EnumObject type="Lock" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#t AS l' />
		<property_link fields='#LockType#' join='master.dbo.spt_values AS v'>v.number = l.mode AND v.type = N'L'</property_link>
		<property_link fields='#ResourceType#' join='master.dbo.spt_values AS v2'>v2.number = l.ltype AND v2.type = N'LR'</property_link>
		<version min_major='7' max_major='8'>
			<prefix>
				CREATE TABLE #t(spid int, mode int, dbid int NULL, objid int, objid2 int, indid int, status tinyint, ltype tinyint, objname sysname NULL, indname sysname NULL, dbname sysname NULL, sch sysname NULL)

				INSERT #t SELECT spid = req_spid, mode = req_mode, dbid=rsc_dbid, objid=l.rsc_objid, objid2=l.rsc_objid, indid=l.rsc_indid, status = l.req_status, ltype = l.rsc_type, objname=NULL, indname=NULL, dbname = NULL, sch = NULL
				FROM master.dbo.syslockinfo l WHERE rsc_dbid != db_id('tempdb') OR rsc_objid != object_id('#t')
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix>
				CREATE TABLE #t(spid int, mode int, dbid int NULL, objid bigint, objid2 bigint, indid int, status tinyint, ltype nvarchar(120), objname sysname NULL, indname sysname NULL, dbname sysname NULL, sch sysname NULL)

				INSERT #t SELECT spid = request_session_id,
				mode = case request_mode when N'NL' then 0
				when N'SCH_S'		then 1
				when N'SCH_M'		then 2
				when N'S'			then 3
				when N'U'			then 4
				when N'X'			then 5
				when N'IS'			then 6
				when N'IU'			then 7
				when N'IX'			then 8
				when N'SIU'			then 9
				when N'SIX'			then 10
				when N'UIX'			then 11
				when N'BU'			then 12
				when N'RS_S'		then 13
				when N'RS_U'		then 14
				when N'RI_NL'		then 15
				when N'RI_S'		then 16
				when N'RI_U'		then 17
				when N'RI_X'		then 18
				when N'RX_S'		then 19
				when N'RX_U'		then 20
				when N'RX_X'		then 21
				when N'LAST_MODE'	then 22
				end,
				dbid=resource_database_id, objid=l.resource_associated_entity_id, objid2=l.resource_associated_entity_id, indid=NULL,
				status = case l.request_status when N'GRANT' then 1
				when N'CONVERT' then 2
				when N'WAIT' then 3
				end,
				ltype = l.resource_type, objname=NULL, indname=NULL, dbname = NULL, sch = NULL
				FROM master.sys.dm_tran_locks l WHERE resource_database_id != db_id('tempdb') OR resource_associated_entity_id != object_id('#t')
			</prefix>		  
			  </version>
		<version min_major='7' max_major='8'>
			<prefix fields='#Database#Schema#Table#Index#'>
update #t set dbname = d.name FROM #t t LEFT OUTER JOIN master.dbo.sysdatabases d ON d.dbid = t.dbid
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix fields='#Database#Schema#Table#Index#'>
				update #t set dbname = d.name FROM #t t LEFT OUTER JOIN sys.databases d ON d.database_id = t.dbid
				update #t set objid2 = -objid2 where dbname is null
			</prefix>
		</version>
		<prefix fields='#Database#Schema#Table#Index#'>
			DECLARE name_cursor CURSOR
			FOR select t.dbid, t.dbname FROM #t t GROUP BY t.dbid, t.dbname
			OPEN name_cursor
			DECLARE @dbid int
			DECLARE @dbname sysname
			DECLARE @sql nvarchar(1000)
			FETCH NEXT FROM name_cursor INTO @dbid, @dbname
			WHILE (@@FETCH_STATUS &lt;&gt; -1)
			BEGIN
			IF (@@FETCH_STATUS &lt;&gt; -2)
			BEGIN
		</prefix>
		<version min_major='7' max_major='8'>
			<prefix fields='#Database#Schema#Table#Index#'>
				SELECT @sql = 'use ' + quotename(@dbname) + ' update #t set objname = o.name, indname = i.name, sch=user_name(o.uid) FROM #t AS t '+
				'LEFT JOIN dbo.sysobjects AS o ON o.id = t.objid LEFT OUTER JOIN dbo.sysindexes AS i ON i.id = t.objid AND i.indid = t.indid '+
				'WHERE t.ltype in (4,5) AND t.dbid = ' + CAST(@dbid AS NVARCHAR(20))
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix fields='#Database#Schema#Table#Index#'>
				IF( NOT @dbname	IS NULL )--resource database
				SELECT @sql = 'use ' + quotename(@dbname)
				ELSE
				SELECT @sql = ''
				SELECT @sql = @sql + ' update #t set objname = o.name, indname = i.name, sch=schema_name(o.schema_id) FROM #t AS t '+
				'LEFT JOIN sys.all_objects AS o ON o.object_id = t.objid2 LEFT OUTER JOIN sys.indexes AS i ON i.object_id = t.objid2 AND i.index_id = t.indid '+
				'WHERE t.ltype in (''UNUSED1'',''OBJECT'') AND t.dbid = ' + CAST(@dbid AS NVARCHAR(20))
			</prefix>
		</version>
		<prefix fields='#Database#Schema#Table#Index#'>
		EXEC(@sql)
	END 
	FETCH NEXT FROM name_cursor INTO @dbid, @dbname
END 
CLOSE name_cursor 
DEALLOCATE name_cursor
		</prefix>
		<postfix>
			drop table #t
		</postfix>
	</settings>
	<properties>
		<property name="RequestorSpid" type="int">l.spid</property>
		<property name="LockType" type="nvarchar" size='36'>v.name</property>
		<!--<property name="ResourceType" type="nvarchar" size='36'>v2.name</property> not in dmo, we also probably want enums here-->
		<property name="Database" type="sysname">ISNULL(l.dbname,N'')</property>
		<property name="Schema" type="sysname">ISNULL(l.sch,N'')</property>
		<property name="Table" type="sysname">ISNULL(l.objname,N'')</property>
		<property name="Index" type="sysname">ISNULL(l.indname,N'')</property>
		<property name="Status" type="tinyint" report_type='LockRequestStatus'>l.status</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="TapeDevice" impl_type="SqlObject" min_major='7' >
	<settings main_table="#tpdv">
		<prefix>create table #tpdv ( Name nvarchar(512) NOT NULL) 
			insert #tpdv (Name) EXECUTE master.dbo.xp_get_tape_devices
		</prefix>
		<postfix> drop table #tpdv</postfix>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='512' access="Read">Name</property>
	</properties>
</EnumObject>	<?xml version="1.0" ?>
<EnumObject type="inc_text" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<!--TableVariableName is need in udf - we need to parse the text to get the name of the retun table, 
		it is not present in the metadata-->
		<post_process fields='#Text#BodyStartIndex#HasColumnSpecification#TableVariableName#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessBodyText'
					triggered_fields='#Definition#'/>
	</settings>
	<properties>
		<!-- Definition must be already there-->
		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Text" type="nvarchar" size='max' expensive='true' access="Read">NULL</property>		
		</version>
		<version min_major = '7' max_major = '8'>
			<property name="Text" type="nvarchar" size='4000' expensive='true' access="Read">NULL</property>		
		</version>
		<property name="BodyStartIndex" type="int" expensive='true' access="Read">NULL</property>
	</properties>
</EnumObject>s<?xml version="1.0" ?>
<EnumObject type="DbFile" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysfiles AS s"/>
			<prefix fields="#AvailableSpace#Size#MaxSize#Growth#">
DECLARE @PageSize float 
SELECT @PageSize=v.low/1024.0 FROM master..spt_values v WHERE v.number=1 AND v.type='E'
			</prefix>
		</version>  
	<version min_major="10" min_minor='50'>
		<post_process fields='#VolumeFreeSpace#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessFileProperties'
				triggered_fields='#DatabaseName2#FileId2#'/>
	</version>
  </settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="Name" type="nvarchar" size="256">rtrim(s.name)</property>
			<property name="ID" type="int" cast='true'>s.fileid</property>
			<property name="FileName" type="nvarchar" size="520" read_only_after_creation="true">rtrim(s.filename)</property>
			<property name="Size" type="float">(s.size * @PageSize)</property>
			<property name="MaxSize" type="float">case when s.maxsize=-1 then -1 else s.maxsize * @PageSize end</property>
			<property name="Growth" type="float" 
				cast = 'true'>CASE WHEN (0 &lt;&gt;(s.status &amp; 0x100000)) THEN s.growth ELSE s.growth * @PageSize END</property>
			<property name="GrowthType" type="int" 
				report_type='FileGrowthType'>CASE WHEN s.growth=0 THEN 99 WHEN (0 &lt;&gt;(s.status &amp; 0x100000)) THEN 1 ELSE 0 END</property>
			<property name="GroupID" type="int" access='Read' hidden = 'true'>s.groupid</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="Name" type="nvarchar" size="256">s.name</property>
			<property name="ID" type="int">s.file_id</property>
      <property name="MaxSize" type="float">CASE when s.max_size=-1 then -1 else s.max_size * CONVERT(float,8) END</property>
      <property name="Growth" type="float" cast='true'>CASE s.is_percent_growth WHEN 1 THEN s.growth ELSE s.growth*8 END</property>
      <property name="IsReadOnlyMedia" type="bit" access = 'Read'>s.is_media_read_only</property>
      <property name="IsReadOnly" type="bit" access = 'Read'>s.is_read_only</property>
      <property name="IsOffline" type="bit" access = 'Read' cast = 'true'>case s.state when 6 then 1 else 0 end</property>
      <property name="IsSparse" type="bit" access = 'Read'>s.is_sparse</property>
      <property name="GroupID" type="int" access='Read' hidden = 'true'>s.data_space_id</property>
        </version>

        <version min_major='10' min_minor='50'>
          <property name ="VolumeFreeSpace" type ="bigint" access="Read" expensive='true'>null</property>
          <property name="DatabaseName2" type="nvarchar" size="520" hidden="true">db_name()</property>
          <property name="FileId2" type="int" hidden="true">s.file_id</property>
        </version>

    <version min_major='9'>
      <property name="FileName" type="nvarchar" size="520" read_only_after_creation="true">s.physical_name</property>
      <property name="Size" type="float">s.size * CONVERT(float,8)</property>
      <property name="NumberOfDiskReads" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_reads, 0)</property>
      <property name="NumberOfDiskWrites" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_writes, 0)</property>
      <property name="BytesReadFromDisk" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_bytes_read, 0)</property>
      <property name="BytesWrittenToDisk" type="bigint" access = 'Read' expensive='true'>ISNULL(fs.num_of_bytes_written, 0)</property>
    </version>
    <version min_major='9' max_major='9'>
      <property name="GrowthType" type="int" report_type='FileGrowthType' cast='true'>CASE when s.growth=0 THEN 99 ELSE s.is_percent_growth END</property>
    </version>
		<version min_major='10' matrix_min_major='10'>
			<property name="GrowthType" type="int" report_type='FileGrowthType' cast='true'>CASE when s.growth=0 THEN (CASE WHEN s.type = 2 THEN 0 ELSE 99 END) ELSE s.is_percent_growth END</property>
		</version>
    <version matrix_min_major ='10'>
      <property name="NumberOfDiskReads" type="bigint" access = 'Read' expensive='true'>(select SUM(fs.num_of_reads) from sys.dm_io_virtual_file_stats(default, default) AS fs where fs.file_id = s.file_id and fs.database_id = db_id() group by file_id) </property>
      <property name="NumberOfDiskWrites" type="bigint" access = 'Read' expensive='true'>(select SUM(fs.num_of_writes) from sys.dm_io_virtual_file_stats(default, default) AS fs where fs.file_id = s.file_id and fs.database_id = db_id() group by file_id) </property>
      <property name="BytesReadFromDisk" type="bigint" access = 'Read' expensive='true'>(select SUM(fs.num_of_bytes_read) from sys.dm_io_virtual_file_stats(default, default) AS fs where fs.file_id = s.file_id and fs.database_id = db_id() group by file_id) </property>
      <property name="BytesWrittenToDisk" type="bigint" access = 'Read' expensive='true'>(select SUM(fs.num_of_bytes_written) from sys.dm_io_virtual_file_stats(default, default) AS fs where fs.file_id = s.file_id and fs.database_id = db_id() group by file_id) </property>
    </version>
    <version min_major='11'>
      <!--Name2, GroupID2, Size2 will be consumed in File.xml's postprocess PostProcessFile-->
      <property name="Name2" type="nvarchar" size="256" hidden = 'true'>s.name</property>
      <property name="GroupID2" type="int" access='Read' hidden = 'true'>s.data_space_id</property>
      <property name="Size2" type="float" hidden = 'true'>s.size * CONVERT(float,8)</property>
    </version>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='backupset' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='msdb.dbo.backupset bkps' />
	</settings>
	<properties>
		<property name='Name' type='nvarchar' size='128'>bkps.name</property>
		<property name='ID' type='int'>bkps.backup_set_id</property>
		<property name='BackupSetUuid' type='uniqueidentifier'>bkps.backup_set_uuid</property>
		<property name='MediaSetId' type='int'>bkps.media_set_id</property>
		<property name='FirstFamilyNumber' type='tinyint'>bkps.first_family_number</property>
		<property name='FirstMediaNumber' type='smallint'>bkps.first_media_number</property>
		<property name='LastFamilyNumber' type='tinyint'>bkps.last_family_number</property>
		<property name='LastMediaNumber' type='smallint'>bkps.last_media_number</property>
		<property name='CatalogFamilyNumber' type='tinyint'>bkps.catalog_family_number</property>
		<property name='CatalogMediaNumber' type='smallint'>bkps.catalog_media_number</property>
		<property name='Position' type='int'>bkps.position</property>
		<property name='ExpirationDate' type='datetime'>bkps.expiration_date</property>
		<property name='SoftwareVendorId' type='int'>bkps.software_vendor_id</property>
		<property name='Description' type='nvarchar' size='255'>bkps.description</property>
		<property name='UserName' type='nvarchar' size='128'>bkps.user_name</property>
		<property name='SoftwareMajorVersion' type='tinyint'>bkps.software_major_version</property>
		<property name='SoftwareMinorVersion' type='tinyint'>bkps.software_minor_version</property>
		<property name='SoftwareBuildVersion' type='smallint'>bkps.software_build_version</property>
		<property name='TimeZone' type='smallint'>bkps.time_zone</property>
		<property name='MtfMinorVersion' type='tinyint'>bkps.mtf_minor_version</property>
		<property name='FirstLsn' type='numeric' size='25'>bkps.first_lsn</property>
		<property name='LastLsn' type='numeric' size='25'>bkps.last_lsn</property>
		<property name='CheckpointLsn' type='numeric' size='25'>bkps.checkpoint_lsn</property>
		<property name='DatabaseBackupLsn' type='numeric' size='25'>bkps.database_backup_lsn</property>
		<property name='DatabaseCreationDate' type='datetime'>bkps.database_creation_date</property>
		<property name='BackupStartDate' type='datetime'>bkps.backup_start_date</property>
		<property name='BackupFinishDate' type='datetime'>bkps.backup_finish_date</property>
		<property name='BackupSetType' type='int' report_type = 'BackupSetType'>CASE bkps.type WHEN 'D' THEN 1 WHEN 'I' THEN 2 WHEN 'L' THEN 3 WHEN 'F' THEN 4 WHEN 'G' THEN 5 END</property>
		<property name='SortOrder' type='smallint'>bkps.sort_order</property>
		<property name='CodePage' type='smallint'>bkps.code_page</property>
		<property name='CompatibilityLevel' type='tinyint' report_type = 'CompatibilityLevel'>bkps.compatibility_level</property>
		<property name='DatabaseVersion' type='int'>bkps.database_version</property>
		<property name='BackupSize' type='numeric' size='13'>bkps.backup_size</property>
    		<property name='DatabaseName' type='nvarchar' size='128'>bkps.database_name</property>
		<property name='ServerName' type='nvarchar' size='128'>bkps.server_name</property>
		<property name='MachineName' type='nvarchar' size='128'>bkps.machine_name</property>
		<version min_major='8' matrix_min_major='10'>
			<property name='BackupSetFlags' type='int'>bkps.flags</property>
			<property name='UnicodeLocale' type='int'>bkps.unicode_locale</property>
			<property name='UnicodeCompareStyle' type='int'>bkps.unicode_compare_style</property>
			<property name='CollationName' type='nvarchar' size='128'>bkps.collation_name</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
      			<property name='IsDamaged' type='bit'>bkps.is_damaged</property>
      			<property name='IsCopyOnly' type='bit'>bkps.is_copy_only</property>
      			<property name='IsSnapShot' type='bit'>bkps.is_snapshot</property>
      			<property name='IsReadOnly' type='bit'>bkps.is_readonly</property>
      			<property name='IsPasswordProtected' type='bit'>bkps.is_password_protected</property>
      			<property name='HasIncompleteMetaData' type='bit'>bkps.has_incomplete_metadata</property>
      			<property name='HasBulkLoggedData' type='bit'>bkps.has_bulk_logged_data</property>
      			<property name='BeginsLogChain' type='bit'>bkps.begins_log_chain</property>
      			<property name='IsForceOffline' type='bit'>bkps.is_force_offline</property>
      			<property name='DatabaseGuid' type='uniqueidentifier' >bkps.database_guid</property>
      			<property name='DifferentialBaseGuid' type='uniqueidentifier' >bkps.differential_base_guid</property>
      			<property name='FirstRecoveryForkID' type='uniqueidentifier' >bkps.first_recovery_fork_guid</property>
      			<property name='RecoveryForkID' type='uniqueidentifier' >bkps.last_recovery_fork_guid</property>
      			<property name='FamilyGuid' type='uniqueidentifier' >bkps.family_guid</property>
      			<property name='ForkPointLsn' type='numeric' size='25'>bkps.fork_point_lsn</property>
      			<property name='DifferentialBaseLsn' type='numeric' size='25'>bkps.differential_base_lsn</property>
    		</version>
		<version min_major='10' matrix_min_major='10'>
			<property name='CompressedBackupSize' type='numeric' size='20'>bkps.compressed_backup_size</property>
		</version>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='restorehistory' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='msdb.dbo.restorehistory rthist' />
	</settings>
	<properties>
		<property name='ID' type='int'>rthist.restore_history_id</property>
		<property name='RestoreDate' type='datetime'>rthist.restore_date</property>
		<property name='DestinationDatabaseName' type='nvarchar' size='128'>rthist.destination_database_name</property>
		<property name='UserName' type='nvarchar' size='128'>rthist.user_name</property>
		<property name='BackupSetId' type='int'>rthist.backup_set_id</property>
		<property name='RestoreType' type='int' report_type = 'RestoreType'>CASE rthist.restore_type WHEN 'D' THEN 1 WHEN 'F' THEN 2 WHEN 'L' THEN 3 WHEN 'V' THEN 4 END</property>
		<property name='ReplaceExistingData' type='bit'>rthist.replace</property>
		<property name='IsWithRecovery' type='bit'>rthist.recovery</property>
		<property name='IsRestartSpecified' type='bit'>rthist.restart</property>
		<property name='StopAt' type='datetime'>rthist.stop_at</property>
		<property name='DeviceCount' type='tinyint'>rthist.device_count</property>
		<version min_major='8' matrix_min_major='10'>		
			<property name='StopAtMarkName' type='nvarchar' size='128'>rthist.stop_at_mark_name</property>
			<property name='IncludesMarkedTransaction' type='bit'>rthist.stop_before</property>			
		</version>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='restorefile' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='ID' local = 'RestoreHistoryId'/>
		</parent_link>
		<property_link table='msdb.dbo.restorefile rtsf'/>
	</settings>
	<properties>
		<property name='RestoreHistoryId' type='int' hidden = 'true'>rtsf.restore_history_id</property>
		<property name='FileNumber' type='numeric' size='9'>rtsf.file_number</property>
		<property name='DestinationPhysDrive' type='varchar' size='260'>rtsf.destination_phys_drive</property>
		<property name='DestinationPhysName' type='varchar' size='260'>rtsf.destination_phys_name</property>
	</properties>
</EnumObject>	<?xml version='1.0' ?>
<EnumObject type='restorefilegroup' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='ID' local = 'RestoreHistoryId'/>
		</parent_link>
		<property_link table='msdb.dbo.restorefilegroup rtsfg'/>
	</settings>
	<properties>
		<property name='RestoreHistoryId' type='int' hidden = 'true'>rtsfg.restore_history_id</property>
		<property name='Name' type='nvarchar' size='128'>rtsfg.filegroup_name</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='backupfile' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='ID' local='BackupSetId'/>
		</parent_link>
		<property_link table='msdb.dbo.backupfile bkpf'/>
	</settings>
	<properties>
		<property name='BackupSetId' type='int' hidden='true'>bkpf.backup_set_id</property>
		<property name='FirstFamilyNumber' type='tinyint'>bkpf.first_family_number</property>
		<property name='FirstMediaNumber' type='smallint'>bkpf.first_media_number</property>
		<property name='FileGroupName' type='nvarchar' size='128'>bkpf.filegroup_name</property>
		<property name='PageSize' type='int'>bkpf.page_size</property>
		<property name='FileNumber' type='numeric' size='9'>bkpf.file_number</property>
		<property name='BackedUpPageCount' type='numeric' size='9'>bkpf.backed_up_page_count</property>
		<property name='FileType' type='char' size='1'>bkpf.file_type</property>
		<property name='SourceFileBlockSize' type='numeric' size='9'>bkpf.source_file_block_size</property>
		<property name='FileSize' type='numeric' size='13'>bkpf.file_size</property>
		<property name='LogicalName' type='nvarchar' size='128'>bkpf.logical_name</property>
		<property name='PhysicalDrive' type='varchar' size='260'>bkpf.physical_drive</property>
		<property name='PhysicalName' type='varchar' size='260'>bkpf.physical_name</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='backupmediafamily' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='ID' local='MediaSetId'/>
		</parent_link>
		<property_link table='msdb.dbo.backupmediafamily bkpmf'/>
	</settings>
	<properties>
		<property name='MediaSetId' type='int' hidden='true'>bkpmf.media_set_id</property>
		<property name='ID' type='uniqueidentifier'>bkpmf.media_family_id</property>		
		<property name='FamilySequenceNumber' type='tinyint'>bkpmf.family_sequence_number</property>
		<property name='MediaCount' type='int'>bkpmf.media_count</property>
		<property name='LogicalDeviceName' type='nvarchar' size='128'>bkpmf.logical_device_name</property>
		<property name='PhysicalDeviceName' type='nvarchar' size='260'>bkpmf.physical_device_name</property>
		<property name='BackupDeviceType' type='int' report_type = 'BackupDeviceType'>CASE WHEN bkpmf.device_type &gt; 100 THEN bkpmf.device_type - 100 ELSE bkpmf.device_type END</property>
		<property name='IsBackupDevicePermanent' type='bit' cast='true'>CASE WHEN bkpmf.device_type &gt; 100 THEN 1 ELSE 0 END</property>
		<property name='PhysicalBlockSize' type='int'>bkpmf.physical_block_size</property>
	</properties>
</EnumObject> <?xml version='1.0' ?>
<EnumObject type='backupmediaset' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='msdb.dbo.backupmediaset bkpms'/>
	</settings>
	<properties>
		<property name='ID' type='int'>bkpms.media_set_id</property>
		<property name='MediaUuid' type='uniqueidentifier'>bkpms.media_uuid</property>
		<property name='MediaFamilyCount' type='tinyint'>bkpms.media_family_count</property>
		<property name='Name' type='nvarchar' size='128'>bkpms.name</property>
		<property name='Description' type='nvarchar' size='255'>bkpms.description</property>
		<property name='SoftwareName' type='nvarchar' size='128'>bkpms.software_name</property>
		<property name='SoftwareVendorId' type='int'>bkpms.software_vendor_id</property>
		<property name='MTFMajorVersion' type='tinyint'>bkpms.MTF_major_version</property>
		<version min_major='10' matrix_min_major='10'>
			<property name='IsCompressed' type='bit' cast='true'>bkpms.is_compressed</property>
		</version>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='SPHelpAlert' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_alert' alias='tsha' />
		<version min_major='7' max_major='8'>
			<prefix>
				create table #tmp_sp_help_alert
				(id int null, name nvarchar(128) null, event_source nvarchar(100) null, event_category_id int null, event_id int null, message_id int null, severity int null, enabled tinyint null, delay_between_responses int null, last_occurrence_date int null, last_occurrence_time int null, last_response_date int null, last_response_time int null, notification_message nvarchar(512) null, include_event_description tinyint null, database_name nvarchar(128) null, event_description_keyword nvarchar(100) null, occurrence_count int null, count_reset_date int null, count_reset_time int null, job_id uniqueidentifier null, job_name nvarchar(128) null, has_notification int null, flags int null, performance_condition nvarchar(512) null, category_name nvarchar(128) null, type int null)
				insert into #tmp_sp_help_alert exec msdb.dbo.sp_help_alert
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix>
create table #tmp_sp_help_alert
(id int null, name nvarchar(128) null, event_source nvarchar(100) null, event_category_id int null, event_id int null, message_id int null, severity int null, enabled tinyint null, delay_between_responses int null, last_occurrence_date int null, last_occurrence_time int null, last_response_date int null, last_response_time int null, notification_message nvarchar(512) null, include_event_description tinyint null, database_name nvarchar(128) null, event_description_keyword nvarchar(100) null, occurrence_count int null, count_reset_date int null, count_reset_time int null, job_id uniqueidentifier null, job_name nvarchar(128) null, has_notification int null, flags int null, performance_condition nvarchar(512) null, category_name nvarchar(128) null, wmi_namespace nvarchar(max) null, wmi_query nvarchar(max) null, type int null)
insert into #tmp_sp_help_alert exec msdb.dbo.sp_help_alert
			</prefix>
		</version>
		<postfix>
drop table #tmp_sp_help_alert
		</postfix>
		
		<post_process fields='#CountResetDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#CountResetDateInt#CountResetTimeInt#' />
		<post_process fields='#LastOccurrenceDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastOccurrenceDateInt#LastOccurrenceTimeInt#' />
		<post_process fields='#LastResponseDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastResponseDateInt#LastResponseTimeInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		
		<property name='ID' type='int'>tsha.id</property>
		<property name='Name' type='nvarchar' size='128'>tsha.name</property>
		<property name='EventSource' type='nvarchar' size='100' access='Read'>ISNULL(tsha.event_source,N'')</property>
		<property name='MessageID' type='int'>tsha.message_id</property>
		<property name='Severity' type='int'>tsha.severity</property>
		<property name='IsEnabled' type='bit' cast='true'>tsha.enabled</property>
		<property name='DelayBetweenResponses' type='int'>tsha.delay_between_responses</property>
		<property name='LastOccurrenceDate' type='datetime'>null</property>
		<property name='LastOccurrenceDateInt' type='int' hidden='true'>tsha.last_occurrence_date</property>
		<property name='LastOccurrenceTimeInt' type='int' hidden='true'>tsha.last_occurrence_time</property>
		<property name='LastResponseDate' type='datetime'>null</property>
		<property name='LastResponseDateInt' type='int' hidden='true'>tsha.last_response_date</property>
		<property name='LastResponseTimeInt' type='int' hidden='true'>tsha.last_response_time</property>
		<property name='NotificationMessage' type='nvarchar' size='512'>ISNULL(tsha.notification_message,N'')</property>
		<property name='IncludeEventDescription' type='tinyint' report_type='Agent.NotifyMethods'>tsha.include_event_description</property>
		<property name='DatabaseName' type='nvarchar' size='128'>ISNULL(tsha.database_name,N'')</property>
		<property name='EventDescriptionKeyword' type='nvarchar' size='100'>ISNULL(tsha.event_description_keyword,N'')</property>
		<property name='OccurrenceCount' type='int' access='Read'>tsha.occurrence_count</property>
		<property name='CountResetDate' type='datetime' access='Read'>null</property>
		<property name='CountResetDateInt' type='int' hidden='true'>tsha.count_reset_date</property>
		<property name='CountResetTimeInt' type='int' hidden='true'>tsha.count_reset_time</property>
		<property name='JobID' type='uniqueidentifier'>ISNULL(tsha.job_id, convert(uniqueidentifier, N'00000000-0000-0000-0000-000000000000'))</property>
		<property name='JobName' type='nvarchar' size='128' access='Read'>ISNULL(tsha.job_name,N'')</property>
		<property name='HasNotification' type='int' access='Read'>tsha.has_notification</property>
		<property name='PerformanceCondition' type='nvarchar' size='512'>ISNULL(tsha.performance_condition,N'')</property>
		<property name='CategoryName' type='nvarchar' size='128'>ISNULL(tsha.category_name,N'')</property>
		
		<version min_major='9' matrix_min_major='10'>
			<property name='WmiEventNamespace' type='nvarchar' size='max'>ISNULL(tsha.wmi_namespace,N'')</property>
			<property name='WmiEventQuery' type='nvarchar' size='max'>ISNULL(tsha.wmi_query,N'')</property>
		</version>
		
		<property name='AlertType' type='int' report_type='Agent.AlertType' access='Read'>tsha.type</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpOperator' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_operator' alias='tsho' />
		<prefix>
create table #tmp_sp_help_operator
(id int null, name nvarchar(128) null, enabled tinyint null, email_address nvarchar(100) null, last_email_date int null, last_email_time int null, pager_address nvarchar(100) null, last_pager_date int null, last_pager_time int null, weekday_pager_start_time int null, weekday_pager_end_time int null, saturday_pager_start_time int null, saturday_pager_end_time int null, sunday_pager_start_time int null, sunday_pager_end_time int null, pager_days tinyint null, netsend_address nvarchar(100) null, last_netsend_date int null, last_netsend_time int null, category_name nvarchar(128) null)
insert into #tmp_sp_help_operator exec msdb.dbo.sp_help_operator
		</prefix>
		<postfix>
drop table #tmp_sp_help_operator
		</postfix>
		<post_process fields='#LastEmailDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastEmailDateInt#LastEmailTimeInt#' />
		<post_process fields='#LastPagerDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastPagerDateInt#LastPagerTimeInt#' />
		<post_process fields='#LastNetSendDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
			triggered_fields='#LastNetsendDateInt#LastNetsendTimeInt#' />
		<post_process fields='#WeekdayPagerStartTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#WeekdayPagerStartTimeInt#' />
		<post_process fields='#WeekdayPagerEndTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#WeekdayPagerEndTimeInt#' />
		<post_process fields='#SaturdayPagerStartTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SaturdayPagerStartTimeInt#' />
		<post_process fields='#SaturdayPagerEndTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SaturdayPagerEndTimeInt#' />
		<post_process fields='#SundayPagerStartTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SundayPagerStartTimeInt#' />
		<post_process fields='#SundayPagerEndTime#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTime'
			triggered_fields='#SundayPagerEndTimeInt#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size='128'>tsho.name</property>
		<property name='ID' type='int'>tsho.id</property>
		<property name='Enabled' type='bit' cast='true'>tsho.enabled</property>
		<property name='EmailAddress' type='nvarchar' size='100'>ISNULL(tsho.email_address,N'')</property>
		<property name='LastEmailDate' type='datetime' access='Read'>null</property>
		<property name='LastEmailDateInt' type='int' hidden='true'>tsho.last_email_date</property>
		<property name='LastEmailTimeInt' type='int' hidden='true'>tsho.last_email_time</property>
		<property name='PagerAddress' type='nvarchar' size='100'>ISNULL(tsho.pager_address,N'')</property>
		<property name='LastPagerDate' type='datetime' access='Read'>null</property>
		<property name='LastPagerDateInt' type='int' hidden='true'>tsho.last_pager_date</property>
		<property name='LastPagerTimeInt' type='int' hidden='true'>tsho.last_pager_time</property>
		<property name="WeekdayPagerStartTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='WeekdayPagerStartTimeInt' type='int' hidden='true'>tsho.weekday_pager_start_time</property>
		<property name="WeekdayPagerEndTime" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='WeekdayPagerEndTimeInt' type='int' hidden='true'>tsho.weekday_pager_end_time</property>
		<property name="SaturdayPagerStartTime" type="int" report_type2='System.TimeSpan'>0</property>
		<property name='SaturdayPagerStartTimeInt' type='int' hidden='true'>tsho.saturday_pager_start_time</property>
		<property name="SaturdayPagerEndTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='SaturdayPagerEndTimeInt' type='int' hidden='true'>tsho.saturday_pager_end_time</property>
		<property name="SundayPagerStartTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='SundayPagerStartTimeInt' type='int' hidden='true'>tsho.sunday_pager_start_time</property>
		<property name="SundayPagerEndTime" type="int" report_type2='System.TimeSpan'>0</property>		
		<property name='SundayPagerEndTimeInt' type='int' hidden='true'>tsho.sunday_pager_end_time</property>
		<property name='PagerDays' type='tinyint' report_type="Agent.WeekDays">tsho.pager_days</property>
		<property name='NetSendAddress' type='nvarchar' size='100'>ISNULL(tsho.netsend_address,N'')</property>
		<property name='LastNetSendDate' type='datetime' access='Read'>null</property>
		<property name='LastNetsendDateInt' type='int' hidden='true'>tsho.last_netsend_date</property>
		<property name='LastNetsendTimeInt' type='int' hidden='true'>tsho.last_netsend_time</property>
		<property name='CategoryName' type='nvarchar' size='128'>ISNULL(tsho.category_name,N'')</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpTargetserver' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_targetserver' alias='tsht'/>
		<prefix>
create table #tmp_sp_help_targetserver
(server_id int null, server_name sysname null, location nvarchar(200) null, time_zone_adjustment int null, enlist_date datetime null, last_poll_date datetime null, status int null, unread_instructions int null, local_time datetime null, enlisted_by_nt_user nvarchar(200) null, poll_interval int null)
insert into #tmp_sp_help_targetserver exec msdb.dbo.sp_help_targetserver
		</prefix>
		<postfix>
drop table #tmp_sp_help_targetserver
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>tsht.server_name</property>
		<property name='ID' type='int'>tsht.server_id</property>
		<property name='Location' type='nvarchar' size = '200' access='Read'>tsht.location</property>
		<property name='TimeZoneAdjustment' type='int' access='Read'>tsht.time_zone_adjustment</property>
		<property name='EnlistDate' type='datetime' access='Read'>tsht.enlist_date</property>
		<property name='LastPollDate' type='datetime' access='Read'>tsht.last_poll_date</property>
		<property name='Status' type='int' access='Read' report_type='Agent.TargetServerStatus'>tsht.status</property>
		<property name='PollingInterval' type='int' access='Read'>tsht.poll_interval</property>
		<property name='PendingInstructions' type='int' access='Read'>tsht.unread_instructions</property>
		<property name='LocalTime' type='datetime' access='Read'>tsht.local_time</property>
	</properties>
</EnumObject>
>#<?xml version='1.0' ?>
<EnumObject type='AlertSystem' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major = '8' matrix_min_major='10'>
			<prefix fields = '#FailSafeOperator#'>
				declare @FailSafeOperator nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeOperator', @param = @FailSafeOperator OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#NotificationMethod#'>
				declare @NotificationMethod int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertNotificationMethod', @param = @NotificationMethod OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingServer#'>
				declare @ForwardingServer nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingServer', @param = @ForwardingServer OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingSeverity#'>
				declare @ForwardingSeverity int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingSeverity', @param = @ForwardingSeverity OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#IsForwardedAlways#'>
				declare @ForwardAlways int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardAlways', @param = @ForwardAlways OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerToTemplate#'>
				declare @PagerToTemplate nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerToTemplate', @param = @PagerToTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerCCTemplate#'>
				declare @PagerCCTemplate nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerCCTemplate', @param = @PagerCCTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSubjectTemplate#'>
				declare @PagerSubjectTemplate nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSubjectTemplate', @param = @PagerSubjectTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSendSubjectOnly#'>
				declare @PagerSendSubjectOnly int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSendSubjectOnly', @param = @PagerSendSubjectOnly OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeEmailAddress#'>
				declare @FailSafeEmailAddress nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeEmailAddress', @param = @FailSafeEmailAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafePagerAddress#'>
				declare @FailSafePagerAddress nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafePagerAddress', @param = @FailSafePagerAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeNetSendAddress#'>
				declare @FailSafeNetSendAddress nvarchar(255)
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeNetSendAddress', @param = @FailSafeNetSendAddress OUT, @no_output = N'no_output'
			</prefix>
		</version>
		<version min_major = '7' max_major = '7'>
			<prefix fields = '#FailSafeOperator#'>
				declare @FailSafeOperator nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeOperator', @param = @FailSafeOperator OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#NotificationMethod#'>
				declare @NotificationMethod int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertNotificationMethod', @param = @NotificationMethod OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingServer#'>
				declare @ForwardingServer nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingServer', @param = @ForwardingServer OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#ForwardingSeverity#'>
				declare @ForwardingSeverity int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardingSeverity', @param = @ForwardingSeverity OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#IsForwardedAlways#'>
				declare @ForwardAlways int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertForwardAlways', @param = @ForwardAlways OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerToTemplate#'>
				declare @PagerToTemplate nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerToTemplate', @param = @PagerToTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerCCTemplate#'>
				declare @PagerCCTemplate nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerCCTemplate', @param = @PagerCCTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSubjectTemplate#'>
				declare @PagerSubjectTemplate nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSubjectTemplate', @param = @PagerSubjectTemplate OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#PagerSendSubjectOnly#'>
				declare @PagerSendSubjectOnly int
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertPagerSendSubjectOnly', @param = @PagerSendSubjectOnly OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeEmailAddress#'>
				declare @FailSafeEmailAddress nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeEmailAddress', @param = @FailSafeEmailAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafePagerAddress#'>
				declare @FailSafePagerAddress nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafePagerAddress', @param = @FailSafePagerAddress OUT, @no_output = N'no_output'
			</prefix>
			<prefix fields = '#FailSafeNetSendAddress#'>
				declare @FailSafeNetSendAddress nvarchar(255)
				exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'AlertFailSafeNetSendAddress', @param = @FailSafeNetSendAddress OUT, @no_output = N'no_output'
			</prefix>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='1' expression="{0} + '/AlertSystem'">
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
		<property name='Name' type='sysname'>N'AlertSystem'</property>
		<property name='FailSafeOperator' type='nvarchar' size='255'>ISNULL(@FailSafeOperator,N'')</property>
		<property name='NotificationMethod' type='int' report_type='Agent.NotifyMethods'>@NotificationMethod</property>
		<property name='ForwardingServer' type='nvarchar' size='255'>ISNULL(@ForwardingServer,N'')</property>
		<property name='ForwardingSeverity' type='int'>@ForwardingSeverity</property>
		<property name='IsForwardedAlways' type='bit' cast='true'>ISNULL(@ForwardAlways, 0)</property>
		<property name='PagerToTemplate' type='nvarchar' size='255'>ISNULL(@PagerToTemplate,N'')</property>
		<property name='PagerCCTemplate' type='nvarchar' size='255'>ISNULL(@PagerCCTemplate,N'')</property>
		<property name='PagerSubjectTemplate' type='nvarchar' size='255'>ISNULL(@PagerSubjectTemplate,N'')</property>
		<property name='PagerSendSubjectOnly' type='bit' cast='true'>@PagerSendSubjectOnly</property>
		<property name='FailSafeEmailAddress' type='nvarchar' size='255'>ISNULL(@FailSafeEmailAddress,N'')</property>
		<property name='FailSafePagerAddress' type='nvarchar' size='255'>ISNULL(@FailSafePagerAddress,N'')</property>
		<property name='FailSafeNetSendAddress' type='nvarchar' size='255'>ISNULL(@FailSafeNetSendAddress,N'')</property>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='SPHelpTargetservergroup' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_targetservergroup' alias='tsht'/>
		<prefix>
create table #tmp_sp_help_targetservergroup
(servergroup_id int null, name nvarchar(128) null)
insert into #tmp_sp_help_targetservergroup exec msdb..sp_help_targetservergroup
		</prefix>
		<postfix>
drop table #tmp_sp_help_targetservergroup
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tsht.name</property>		
		<property name='ID' type='int'>tsht.servergroup_id</property>
		
		<property name="ParentUrn" type="nvarchar" size="600" hidden='true'>
			<link_multiple no='1' expression="{0}" hidden = 'true'>
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpTargetservergroupMember' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link local='GroupName' parent='Name'/>
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>

		<property_link table='#tmp_sp_help_targetservergroup_member' alias='tshtm'/>
		<prefix>
			<link_multiple no='1' expression="
create table #tmp_sp_help_targetservergroup_member
(server_id int null, server_name sysname null, servergroup_name sysname null)

declare @servergroup_name sysname
declare crs cursor local fast_forward
for ( {0} )
open crs
fetch crs into @servergroup_name
while @@fetch_status &gt;= 0
begin
insert into #tmp_sp_help_targetservergroup_member(server_id, server_name)
		exec msdb.dbo.sp_help_targetservergroup @name=@servergroup_name
	update #tmp_sp_help_targetservergroup_member set servergroup_name = @servergroup_name where servergroup_name is null
	fetch crs into @servergroup_name
end
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
drop table #tmp_sp_help_targetservergroup_member
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='2' expression="{0} + '/TargetServer[@Name=' + quotename({1},'''') + ']'">
				<link_field type='parent' field="ParentUrn" />
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>

		<property name='Name' type='sysname'>tshtm.server_name</property>
		<property name='ID' type='int'>tshtm.server_id</property>

		<property name='GroupName' type='sysname' hidden='true'>tshtm.servergroup_name</property>
	</properties>
</EnumObject>
~<?xml version="1.0" ?>
<EnumObject type="inc_text" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<post_process fields='#Text#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessText'/>
		</version>			
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="Text" type="varchar" size='300' expensive='true' mode="design">
				<link_multiple no='1' expression="cast({{0}} as varchar(20)) + '_' + cast(db_id() as varchar(20)) + '_0'">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>		
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Text" type="nvarchar" size='max' expensive='true' mode="design">{0}.definition</property>
		</version>
	</properties>
</EnumObject>
*<?xml version='1.0' ?>
<EnumObject type='sysalerts' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link local='JobID' parent='JobID'/>
		</parent_link>
	</settings>
	<properties>
		<include file='agent_alert.xml' />
	</properties>
</EnumObject>>	<?xml version='1.0' ?>
<EnumObject type='SPHelpJobhistory' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="JobID" local="JobID" />
		</parent_link>

		<property_link table='#tmp_sp_help_jobhistory' alias='tshj' />
		<prefix>
create table #tmp_sp_help_jobhistory
(instance_id int null, job_id uniqueidentifier null, job_name sysname null, step_id int null, step_name sysname null, sql_message_id int null, sql_severity int null, message nvarchar(4000) null, run_status int null, run_date int null, run_time int null, run_duration int null, operator_emailed sysname null, operator_netsent sysname null, operator_paged sysname null, retries_attempted int null, server sysname null)
insert into #tmp_sp_help_jobhistory exec msdb.dbo.sp_help_jobhistory @mode='FULL'
		</prefix>
		<postfix>
drop table #tmp_sp_help_jobhistory
		</postfix>
	</settings>
	<properties>
		<property name='InstanceID' type='int'>tshj.instance_id</property>
		<property name='SqlMessageID' type='int'>tshj.sql_message_id</property>
		<property name='Message' type='nvarchar' size = '4000'>tshj.message</property>
		<property name='StepID' type='int'>tshj.step_id</property>
		<property name='StepName' type='sysname'>tshj.step_name</property>
		<property name='SqlSeverity' type='int'>tshj.sql_severity</property>

		<property name='JobID' type='uniqueidentifier'>tshj.job_id</property>
		<property name='JobName' type='sysname'>tshj.job_name</property>
		<property name='RunStatus' type='int' report_type='Agent.CompletionResult'>tshj.run_status</property>

		<property name='RunDate' type='datetime'>convert(datetime, stuff(stuff(cast(tshj.run_date as nchar(8)), 7, 0, '-'), 5, 0, '-') + N' ' + stuff(stuff(substring(cast(1000000 + tshj.run_time as nchar(7)), 2, 6), 5, 0, ':'), 3, 0, ':'), 120)</property>

		<property name='RunDuration' type='int'>tshj.run_duration</property>
		<property name='OperatorEmailed' type='sysname'>tshj.operator_emailed</property>
		<property name='OperatorNetsent' type='sysname'>tshj.operator_netsent</property>
		<property name='OperatorPaged' type='sysname'>tshj.operator_paged</property>
		<property name='RetriesAttempted' type='int'>tshj.retries_attempted</property>
		<property name='Server' type='sysname'>tshj.server</property>
	</properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='SPHelpJobserver' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="JobID" local="JobID" />
		</parent_link>
		<request_parent_select>
			<field name='JobID' />
		</request_parent_select>

		<property_link table='#tmp_sp_help_jobserver' alias='tshj'/>
		<prefix>
			<link_multiple no='1' expression="
create table #tmp_sp_help_jobserver
(server_id int null, server_name sysname null, enlist_date datetime null, last_poll_date datetime null, last_run_date int null, last_run_time int null, last_run_duration int null, last_run_outcome tinyint null, last_outcome_message nvarchar(4000) null, job_id uniqueidentifier null)

declare @job_id uniqueidentifier
declare crs cursor local fast_forward
for ( {0} )
open crs
fetch crs into @job_id
while @@fetch_status &gt;= 0
begin
insert into #tmp_sp_help_jobserver(server_id, server_name, enlist_date, last_poll_date, last_run_date, last_run_time, last_run_duration, last_run_outcome, last_outcome_message)
		exec msdb.dbo.sp_help_jobserver @job_id = @job_id, @show_last_run_details = 1
	update #tmp_sp_help_jobserver set job_id = @job_id where job_id is null
	fetch crs into @job_id
end
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
drop table #tmp_sp_help_jobserver
		</postfix>
		<post_process fields = '#LastRunDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateTime'
					triggered_fields='#LastRunDateInt#LastRunTimeInt#'/>
	</settings>
	<properties>
		<property name='ServerName' type='sysname'>tshj.server_name</property>
		<property name='ID' type='int'>tshj.server_id</property>
		<property name='EnlistDate' type='datetime'>tshj.enlist_date</property>
		<property name='LastPollDate' type='datetime'>tshj.last_poll_date</property>

		<property name='LastRunDate' type='datetime'>null</property>
		<property name='LastRunDateInt' type='int' hidden='true'>tshj.last_run_date</property>
		<property name='LastRunTimeInt' type='int' hidden='true'>tshj.last_run_time</property>

		<property name='LastRunDuration' type='int'>tshj.last_run_duration</property>
		<property name='LastRunOutcome' type='tinyint' report_type = 'Agent.JobOutcome'>tshj.last_run_outcome</property>
		<property name='LastOutcomeMessage' type='nvarchar' size = '4000'>tshj.last_outcome_message</property>

		<property name='JobID' type='uniqueidentifier' hidden='true'>tshj.job_id</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table="#err_log_tmp er" />
		<version min_major='9' matrix_min_major='10'>
			<prefix>
				create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int)
				insert #err_log_tmp exec master.dbo.sp_enumerrorlogs 2
			</prefix>
		</version>
		<version min_major='7' max_major='8'>
			<prefix>
				create table #err_log_tmp(ArchiveNo int, CreateDate datetime, Size int, ErrorLog NVARCHAR(255))

				DECLARE @errorlog_path NVARCHAR(255)
				DECLARE @errorlog_dir NVARCHAR(255)
				DECLARE @errorlog_partfile NVARCHAR(255)
				DECLARE @errorlog NVARCHAR(255)
				DECLARE @dotIdx INT
				DECLARE @slashIdx INT
				DECLARE @logexists INT
				DECLARE @ArchiveNo INT
			</prefix>
		</version>

		<version min_major='7' max_major='7'>
			<prefix>
				EXECUTE master.dbo.xp_regread N'HKEY_LOCAL_MACHINE',
				N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
				N'ErrorLogFile',
				@errorlog_path OUTPUT,
				N'no_output'
			</prefix>
		</version>

		<version min_major='8' max_major='8'>
			<prefix>
				EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',
				N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
				N'ErrorLogFile',
				@errorlog_path OUTPUT,
				N'no_output'
			</prefix>
		</version>

		<version min_major='7' max_major='8'>
			<!-- take special care on how we convert the LastWriteTime from xp_getfiledetails
			sometimes we get only minutes and seconds and sometimes only secconds.
			Also the hour can have only one digit
			In all this cases replace the missing digits with 0-->
			-->
			<prefix>
				EXECUTE master.dbo.xp_fileexist @errorlog_path, @logexists OUTPUT

				IF(@logexists = 1)
				BEGIN
				create table #err_logs_dir_tmp(ErrorLog NVARCHAR(255), d int, f int)
				create table #file_details_tmp(AltName NVARCHAR(32) NULL, Size int, CDate INT, CTime INT, LWDate INT, LWTime INT,  LADate INT, LATime INT, Attributes INT)

				INSERT #file_details_tmp EXECUTE master.dbo.xp_getfiledetails @errorlog_path

				SET @errorlog_path = REVERSE(@errorlog_path)

				SET @dotIdx = CHARINDEX(N'.', @errorlog_path);
				SET @slashIdx = CHARINDEX(N'\', @errorlog_path);
				SET @errorlog_path = REVERSE(@errorlog_path)
				SET @errorlog_dir = @errorlog_path

				if(@slashIdx &lt;&gt; 0)
				BEGIN
				SET @errorlog_dir = SUBSTRING(@errorlog_path, 1, LEN(@errorlog_path) - @slashIdx)
				SET @errorlog_partfile= SUBSTRING(@errorlog_path, LEN(@errorlog_path) - @slashIdx + 2, 255)
				END

				if(@dotIdx &lt;&gt; 0)
				BEGIN
				SET @errorlog_partfile = SUBSTRING(@errorlog_partfile, 1, LEN(@errorlog_partfile) - @dotIdx + 1)
				END

				INSERT #err_logs_dir_tmp EXECUTE master.dbo.xp_dirtree @errorlog_dir, 1, 1

				INSERT #err_log_tmp(ArchiveNo, CreateDate, Size, ErrorLog)
				SELECT
				0,
				-- convert the 2 int's (20020912  152026) to yyyy-mm-dd hh:mi:ss
				CONVERT(datetime, STUFF(STUFF(STR(LWDate, 8), 7, 0, '-'), 5, 0, '-') + ' ' +
				STUFF(STUFF(REPLACE(STR(LWTime,6), ' ', '0'), 5, 0, ':'), 3, 0, ':')
				, 120),
				Size,
				@errorlog_path
				FROM #file_details_tmp

				DELETE #file_details_tmp

				declare crslogs insensitive cursor
				for ( SELECT ErrorLog FROM #err_logs_dir_tmp WHERE ErrorLog like @errorlog_partfile + '[1-9]' )
				for read only
				open crslogs
				fetch crslogs into @errorlog
				while @@fetch_status &gt;= 0
				begin
				SET @ArchiveNo = CONVERT(INT, SUBSTRING(@errorlog, LEN(@errorlog_partfile) + 1, 1))
				SET @errorlog = @errorlog_dir + '\' + @errorlog

				INSERT #file_details_tmp EXECUTE master.dbo.xp_getfiledetails @errorlog

				INSERT #err_log_tmp(ArchiveNo, CreateDate, Size, ErrorLog)
				SELECT
				@ArchiveNo,
				-- convert the 2 int's (20020912  152026) to yyyy-mm-dd hh:mi:ss
				CONVERT(datetime, STUFF(STUFF(STR(LWDate, 8), 7, 0, '-'), 5, 0, '-') + ' ' +
				STUFF(STUFF(REPLACE(STR(LWTime,6), ' ', '0'), 5, 0, ':'), 3, 0, ':')
				, 120),
				Size,
				@errorlog
				FROM #file_details_tmp

				DELETE #file_details_tmp

				fetch crslogs into @errorlog
				end
				close crslogs
				deallocate crslogs

				DROP TABLE #file_details_tmp
				DROP TABLE #err_logs_dir_tmp
				END
			</prefix>
		</version>
		<postfix>
			drop table #err_log_tmp
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ArchiveNo=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ArchiveNo" />
				<link_field field="NType" />
			</link_multiple>
		</property>
		<property name="Name" type="sysname" cast='true'>er.ArchiveNo</property>
		<property name="ArchiveNo" type="int">er.ArchiveNo</property>
		<version min_major='7' max_major='8'>
			<property name="CreateDate" type="datetime">er.CreateDate</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="CreateDate" type="datetime">CONVERT(datetime, er.CreateDate, 101)</property>
		</version>
		<version min_major='8' matrix_min_major='10'>
			<property name="Size" type="int">er.Size</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='ArchiveNo' local='ArchiveNo' />
		</parent_link>
	
		<version min_major='7' max_major='8'>
			<request_parent_select>
				<field name='ArchiveNo' />							
			</request_parent_select>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<request_parent_select>
				<field name='ArchiveNo' />
			</request_parent_select>
		</version>
		<property_link table="#err_log_text_tmp ert" />
		<version min_major='9' matrix_min_major='10'>
			<prefix>
				<link_multiple no='1' expression="
create table #err_log_text_tmp(LogDate datetime null, ErrorLevel int null, Text nvarchar(4000), ContinuationRow bit, ArchiveNo int null)
declare @ArchiveNoChild int

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNoChild
while @@fetch_status &gt;= 0 
begin 
		insert #err_log_text_tmp (LogDate, ErrorLevel, Text) exec master.dbo.sp_readerrorlog @ArchiveNoChild, 2
		update #err_log_text_tmp set ArchiveNo = @ArchiveNoChild where ArchiveNo is null
		fetch crs into @ArchiveNoChild
end 
close crs
deallocate crs
">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
		<version min_major='7' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #err_log_text_tmp(LogDate datetime null, ErrorLevel int null, Text nvarchar(4000), ContinuationRow bit, ArchiveNo int null)
declare @ErrorLogChild nvarchar(255)
declare @ArchiveNoChild int
				
declare crs insensitive cursor 
for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNoChild
while @@fetch_status &gt;= 0 
begin 
        set @ErrorLogChild = (select top 1 ErrorLog from #err_log_tmp where ArchiveNo = @ArchiveNoChild)
        insert #err_log_text_tmp (Text, ContinuationRow) exec master.dbo.sp_readerrorlog -1, @ErrorLogChild
		update #err_log_text_tmp set ArchiveNo  = @ArchiveNoChild where ArchiveNo is null

		fetch crs into @ArchiveNoChild
end 
close crs
deallocate crs

UPDATE #err_log_text_tmp
    SET LogDate = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]%'
    THEN CONVERT(datetime, LEFT(Text, 19), 120) ELSE NULL END,
    ErrorLevel = CASE SUBSTRING(Text, 21, 3) WHEN '- ?' THEN 3 WHEN '- +' THEN 2 ELSE 1 END,
    Text = SUBSTRING(Text, 25, 4000)
WHERE ContinuationRow = 0
">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
        <postfix>
			drop table #err_log_text_tmp
		</postfix>
	</settings>
	<properties>
		<property name="LogDate" type="datetime">ert.LogDate</property>
		<property name="ErrorLevel" type="int">ert.ErrorLevel</property>
		<property name="Text" type="nvarchar" size='4000'>ert.Text</property>
		<property name="ArchiveNo" type="int" hidden='true'>ert.ArchiveNo</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="AvailableMedia" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings main_table="#avmed am">
		<version min_major='8' matrix_min_major='10'>
			<property_link fields='#SharedDrive#'
				left_join='#tmpsrdDrive srddrv'>convert(nchar(1), am.name)= convert(nchar(1), srddrv.DriveName)</property_link>
		</version>

		<prefix>
			create table #avmed (name nvarchar(512), low_free int, high_free int, type int)
			insert #avmed exec master.dbo.xp_availablemedia
			update #avmed set name = convert(nchar(2), name) where type != 4
		</prefix>
		<version min_major='8' max_major='8'>
			<prefix fields='#SharedDrive#' comment="make temp table to avoid collation conflict">
				create table #tmpsrdDrive ( DriveName nvarchar(255) )
				insert #tmpsrdDrive	select * from ::fn_servershareddrives()
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix fields='#SharedDrive#' comment="make temp table to avoid collation conflict">
create table #tmpsrdDrive ( DriveName nvarchar(255) )
insert #tmpsrdDrive	select * from sys.fn_servershareddrives()
			</prefix>
		</version>
		<postfix>
drop table #avmed
		</postfix>
		<version min_major='8' matrix_min_major='10'>
			<postfix fields='#SharedDrive#'>
				drop table #tmpsrdDrive
			</postfix>
		</version>
	</settings>
	<properties>
		<property name="Name" type="nvarchar" size='512'>am.name</property>
		<property name="LowFree" type="int">am.low_free</property>
		<property name="HighFree" type="int">am.high_free</property>
		<property name="FreeSpace" type="float" cast="true">case when am.low_free >= 0 then 0. + am.low_free else 4294967296. + am.low_free end + 4294967296. * am.high_free</property>
		<property name="MediaTypes" type="int" report_type='MediaTypes'>am.type</property>
		<version min_major='8' matrix_min_major='10'>
			<property name="SharedDrive" type="bit" cast='true'>case when srddrv.DriveName is null then 0 else 1 end</property>
		</version>
	</properties>
</EnumObject>
w<?xml version="1.0" ?>
<EnumObject type="StatisticColumn" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
		<version min_major='7' max_major='8'>		
			<property_link table="dbo.sysindexkeys c" />
			<property_link filed = '#Name#' table="dbo.syscolumns clmns">
				clmns.id = c.id and clmns.colid = c.colid
			</property_link>
		</version>		
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>		
			<property_link table = "sys.stats_columns sic"/>		
		</version>		
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="nvarchar" size="256">clmns.name</property>
			<property name="ID" type="int" cast='true'>c.keyno</property>
			<property name="TableID" type="int" hidden='true'>c.id</property>
			<property name="IndexID" type="int" hidden='true'>c.indid</property>
			<property name="ColumnID" type="int" hidden='true'>c.colid</property>
		</version>		
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>		
			<property name="Name" type="sysname">COL_NAME(sic.object_id, sic.column_id)</property>
			<property name="ID" type="int">sic.stats_column_id</property>
			<property name="TableID" type="int" hidden='true'>sic.object_id</property>
			<property name="IndexID" type="int" hidden='true'>sic.stats_id</property>
			<property name="ColumnID" type="int" hidden='true'>sic.column_id</property>
		</version>		
	</properties>
</EnumObject>
-	<?xml version="1.0" ?>
<EnumObject type="UserOption" impl_type="UserOption" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<prefix>
				declare @UserOption int
				select @UserOption=c.value from master.dbo.sysconfigures c, master.dbo.spt_values v where v.type = 'C  ' and not c.status is null and v.number = c.config and v.name='user options'
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix>
        declare @UserOption int
        select @UserOption=convert(int, c.value) from sys.configurations c where c.name='user options'
      </prefix>				
		</version>
	</settings>
	<properties>
		<property name="DisableDefaultConstraintCheck" type="bit" cast='true' mode="deploy">@UserOption &amp; 1</property>
		<property name="ImplicitTransactions" type="bit" cast='true' mode="deploy">@UserOption &amp; 2</property>
		<property name="CursorCloseOnCommit" type="bit" cast='true' mode="deploy">@UserOption &amp; 4</property>
		<property name="AnsiWarnings" type="bit" cast='true' mode="deploy">@UserOption &amp; 8</property>
		<property name="AnsiPadding" type="bit" cast='true' mode="deploy">@UserOption &amp; 16</property>
		<property name="AnsiNulls" type="bit" cast='true' mode="deploy">@UserOption &amp; 32</property>
		<property name="AbortOnArithmeticErrors" type="bit" cast='true' mode="deploy">@UserOption &amp; 64</property>
		<property name="IgnoreArithmeticErrors" type="bit" cast='true' mode="deploy">@UserOption &amp; 128</property>
		<property name="QuotedIdentifier" type="bit" cast='true' mode="deploy">@UserOption &amp; 256</property>
		<property name="NoCount" type="bit" cast='true' mode="deploy">@UserOption &amp; 512</property>
		<property name="AnsiNullDefaultOn" type="bit" cast='true' mode="deploy">@UserOption &amp; 1024</property>
		<property name="AnsiNullDefaultOff" type="bit" cast='true' mode="deploy">@UserOption &amp; 2048</property>
		<property name="ConcatenateNullYieldsNull" type="bit" cast='true' mode="deploy">@UserOption &amp; 4096</property>
		<property name="NumericRoundAbort" type="bit" cast='true' mode="deploy">@UserOption &amp; 8192</property>
		<property name="AbortTransactionOnError" type="bit" cast='true' mode="deploy">@UserOption &amp; 16384</property>
	</properties>
</EnumObject>
!/<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7' matrix_min_major='10' cloud_min_major='10'>
  <settings>
    <version min_major='7' max_major='7'>
      <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#VersionString#OSVersion#Language#">
        create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
        insert #SVer exec master.dbo.xp_msver
      </prefix>
      <prefix fields="#NetName#">
        declare @NetName sysname
        exec master.dbo.xp_getnetname @NetName OUTPUT
      </prefix>
      <prefix fields="#RootDirectory#">
        declare @SmoRoot nvarchar(512)
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath', @SmoRoot OUTPUT
      </prefix>
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @RegPathParams sysname
        declare @Arg sysname
        declare @Param sysname
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLogPath nvarchar(512)
        declare @n int

        select @n=0
        select @RegPathParams=N'Software\Microsoft\MSSQLServer\MSSQLServer'+'\Parameters'
        select @Param='dummy'
        while(not @Param is null)
        begin
        select @Param=null
        select @Arg='SqlArg'+convert(nvarchar,@n)

        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @RegPathParams, @Arg, @Param OUTPUT
        if(@Param like '-d%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end
        else if(@Param like '-l%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end
        else if(@Param like '-e%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end

        select @n=@n+1
        end
      </prefix>
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#VersionString#OSVersion#Language#">
        drop table #SVer
      </postfix>
    </version>

    <version min_major='8' max_major='10' matrix_min_major='10'>
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @RegPathParams sysname
        declare @Arg sysname
        declare @Param sysname
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLogPath nvarchar(512)
        declare @n int

        select @n=0
        select @RegPathParams=N'Software\Microsoft\MSSQLServer\MSSQLServer'+'\Parameters'
        select @Param='dummy'
        while(not @Param is null)
        begin
        select @Param=null
        select @Arg='SqlArg'+convert(nvarchar,@n)

        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @RegPathParams, @Arg, @Param OUTPUT
        if(@Param like '-d%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @MasterPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end
        else if(@Param like '-l%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @LogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end
        else if(@Param like '-e%')
        begin
        select @Param=substring(@Param, 3, 255)
        select @ErrorLogPath=substring(@Param, 1, len(@Param) - charindex('\', reverse(@Param)))
        end

        select @n=@n+1
        end
      </prefix>
    </version>

    <version min_major='8' matrix_min_major='10'>
      <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#">
        create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
        insert #SVer exec master.dbo.xp_msver
      </prefix>
      <prefix fields="#RootDirectory#">
        declare @SmoRoot nvarchar(512)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath', @SmoRoot OUTPUT
      </prefix>
    </version>

    <version min_major='11'>
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLog nvarchar(512)
        declare @ErrorLogPath nvarchar(512)

        select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name))) from master.sys.database_files where name=N'master'
        select @LogPath=substring(physical_name, 1, len(physical_name) - charindex('\', reverse(physical_name))) from master.sys.database_files where name=N'mastlog'
        select @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512))
        select @ErrorLogPath=substring(@ErrorLog, 1, len(@ErrorLog) - charindex('\', reverse(@ErrorLog)))
      </prefix>
      <prefix fields="#FullyQualifiedNetName#">
        declare @FullyQualifiedNetName nvarchar(255)
        exec master.dbo.xp_getnetname @FullyQualifiedNetName OUTPUT, 1
      </prefix>
    </version>

    <version min_major='8' matrix_min_major='10'>
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#">
        drop table #SVer
      </postfix>
    </version>

  </settings>

  <properties>
    <property name="VersionMajor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x1000000) &amp; 0xff</property>
    <property name="VersionMinor" type="int" access="Read" expensive='true'>(@@microsoftversion / 0x10000) &amp; 0xff</property>
    <property name="BuildNumber" type="int" access="Read" expensive='true'>@@microsoftversion &amp; 0xffff</property>
    <property name="IsCaseSensitive" type="bit" access="Read" cast='true'>case when 'a' &lt;&gt; 'A' then 1 else 0 end</property>
    <property name="MaxPrecision" type="tinyint" access="Read">@@MAX_PRECISION</property>

    <version min_major='7' matrix_min_major='10'>
      <property name="Product" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'ProductName')</property>
      <property name="OSVersion" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'WindowsVersion')</property>
      <property name="Language" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'Language')</property>
      <property name="Platform" type="nvarchar" size="512" access="Read" expensive='true'>(select Value from #SVer where Name = N'Platform')</property>
      <property name="PhysicalMemory" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'PhysicalMemory')</property>
      <property name="Processors" type="int" access="Read" expensive='true'>(select Internal_Value from #SVer where Name = N'ProcessorCount')</property>
      <property name="ErrorLogPath" type="nvarchar" size="512" access="Read">@ErrorLogPath</property>
      <property name="RootDirectory" type="nvarchar" size='512' access="Read">@SmoRoot</property>
    </version>

    <version min_major='7'>
      <property name="IsFullTextInstalled" type="bit" cast='true' access="Read">FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')</property>
      <property name="MasterDBLogPath" type="nvarchar" size="512" access="Read">@LogPath</property>
      <property name="MasterDBPath" type="nvarchar" size="512" access="Read">@MasterPath</property>
    </version>
    <version matrix_min_major='10'>
      <property name="MasterDBLogPath" type="nvarchar" size="512" access="Read">REPLACE(@LogPath + N'\',cast(SERVERPROPERTY('InstanceDefaultLogPath') as nvarchar(520)),N'')</property>
      <property name="MasterDBPath" type="nvarchar" size="512" access="Read">REPLACE(@MasterPath + N'\',cast(SERVERPROPERTY('InstanceDefaultDataPath') as nvarchar(520)),N'')</property>
    </version>
    <version min_major='7' max_major='7'>
      <property name="VersionString" type="sysname" access="Read" expensive='true'>(select Value from #SVer where Name = N'ProductVersion')</property>
      <property name="NetName" type="sysname" access="Read" expensive='true'>@NetName</property>
      <property name="Edition" type="sysname" access="Read" cast='true'>SUBSTRING(@@version,PATINDEX(N'%Corporation%',@@version)+DATALENGTH('Corporation')+2,PATINDEX(N'% on %',@@version)-(PATINDEX(N'%Corporation%',@@version)+DATALENGTH('Corporation')+2))</property>
    </version>
    <version min_major='8' matrix_min_major='10' cloud_min_major='10'>
      <property name="VersionString" type="sysname" access="Read">SERVERPROPERTY(N'ProductVersion')</property>
      <property name="Edition" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'Edition')</property>
      <property name="ProductLevel" type="sysname" access="Read" cast='true'>SERVERPROPERTY(N'ProductLevel')</property>

      <property name="IsSingleUser" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsSingleUser')</property>
      <property name="EngineEdition" type="int" access='Read' cast='true'>SERVERPROPERTY('EngineEdition')</property>
      <property name="Collation" type="sysname" access="Read">convert(sysname, serverproperty(N'collation'))</property>
    </version>
    <version min_major='8' matrix_min_major='10'>
      <property name="NetName" type="sysname" access="Read" cast = 'true'>SERVERPROPERTY(N'MachineName')</property>
      <property name="IsClustered" type="bit" access="Read" cast='true'>SERVERPROPERTY('IsClustered')</property>
    </version>
    <version min_major='7' max_major='8'>
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>case when (select password from master.dbo.syslogins where sid = 0x01) is null then 1 else 0 end</property>
    </version>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
      <property name="ResourceVersionString" type="sysname" access="Read">SERVERPROPERTY(N'ResourceVersion')</property>
      <property name="ResourceLastUpdateDateTime" type="datetime" access="Read">SERVERPROPERTY(N'ResourceLastUpdateDateTime')</property>
      <property name="CollationID" type="int" access="Read">SERVERPROPERTY(N'CollationID')</property>
      <property name="ComparisonStyle" type="int" access="Read">SERVERPROPERTY(N'ComparisonStyle')</property>
      <property name="SqlCharSet" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlCharSet')</property>
      <property name="SqlCharSetName" type="sysname" access="Read">SERVERPROPERTY(N'SqlCharSetName')</property>
      <property name="SqlSortOrder" type="int" report_type2="System.Int16" access="Read">SERVERPROPERTY(N'SqlSortOrder')</property>
      <property name="SqlSortOrderName" type="sysname" access="Read">SERVERPROPERTY(N'SqlSortOrderName')</property>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>null</property>
      <property name="BuildClrVersionString" type="sysname" access="Read">SERVERPROPERTY(N'BuildClrVersion')</property>
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS')</property>
    </version>

    <!-- HADR Properties -->
    <version min_major="11">
      <property name="IsHadrEnabled" type="bit" cast="true" access="Read" expensive="true">SERVERPROPERTY(N'IsHadrEnabled')</property>
      <property name="FullyQualifiedNetName" type="sysname" access="Read" expensive='true'>@FullyQualifiedNetName</property>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7' matrix_min_major='10'>
    <!--
    this code will truncate paths longer than 512 unicode chars
    -->
  <settings>
    <version min_major='7' max_major='7'>
      <prefix fields="#NumberOfLogFiles#"> 
        declare @NumErrorLogs int
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', @NumErrorLogs OUTPUT
      </prefix>
      <prefix fields="#DefaultFile#">
        declare @SmoDefaultFile nvarchar(512)
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @SmoDefaultFile OUTPUT
      </prefix>
      <prefix fields="#DefaultLog#">
        declare @SmoDefaultLog nvarchar(512)
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @SmoDefaultLog OUTPUT
      </prefix>
      <prefix fields="#LoginMode#">
        declare @SmoLoginMode int
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', @SmoLoginMode OUTPUT
      </prefix>
      <prefix fields="#AuditLevel#">
        declare @SmoAuditLevel int
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', @SmoAuditLevel OUTPUT
      </prefix>
      <prefix fields="#TapeLoadWaitTime#">
        declare @SmoTapeLoadWaitTime int
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT
      </prefix>
      <prefix fields="#BackupDirectory#">
        declare @BackupDirectory nvarchar(512)
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @BackupDirectory OUTPUT
      </prefix>
      <prefix fields="#MailProfile#">
        declare @SmoMailProfile nvarchar(512)
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'MailAccountName', @SmoMailProfile OUTPUT
      </prefix>
      <prefix fields="#PerfMonMode#">
        declare @SmoPerfMonMode int
        exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Performance', @SmoPerfMonMode OUTPUT

        if @SmoPerfMonMode is null
        begin 
          set @SmoPerfMonMode = 1000
        end
      </prefix>
    </version>
    <version min_major='8' matrix_min_major='10'>
      <prefix fields="#NumberOfLogFiles#"> 
        declare @NumErrorLogs int
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', @NumErrorLogs OUTPUT
      </prefix>
      <prefix fields="#LoginMode#">
        declare @SmoLoginMode int
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', @SmoLoginMode OUTPUT
      </prefix>
      <prefix fields="#AuditLevel#">
        declare @SmoAuditLevel int
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', @SmoAuditLevel OUTPUT
      </prefix>
      <prefix fields="#BackupDirectory#">
        declare @BackupDirectory nvarchar(512)
        if 1=isnull(cast(SERVERPROPERTY('IsLocalDB') as bit), 0)
          select @BackupDirectory=cast(SERVERPROPERTY('instancedefaultdatapath') as nvarchar(512))
        else
          exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @BackupDirectory OUTPUT
      </prefix>
      <prefix fields="#MailProfile#">
        declare @SmoMailProfile nvarchar(512)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'MailAccountName', @SmoMailProfile OUTPUT
      </prefix>
      <prefix fields="#PerfMonMode#">
        declare @SmoPerfMonMode int
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Performance', @SmoPerfMonMode OUTPUT

        if @SmoPerfMonMode is null
        begin 
          set @SmoPerfMonMode = 1000
        end
      </prefix>
    </version>
    <version min_major='8' max_major='9'>
      <prefix fields="#TapeLoadWaitTime#">
        declare @SmoTapeLoadWaitTime int
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'Tapeloadwaittime', @SmoTapeLoadWaitTime OUTPUT
      </prefix>
    </version>
    <version min_major='8' max_major='10'>
      <prefix fields="#DefaultFile#">
        declare @SmoDefaultFile nvarchar(512)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', @SmoDefaultFile OUTPUT
      </prefix>
      <prefix fields="#DefaultLog#">
        declare @SmoDefaultLog nvarchar(512)
        exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', @SmoDefaultLog OUTPUT
      </prefix>
    </version>
  </settings>

  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='2' expression="{0} + '/{1}'">
        <link_field type='parent' field="Urn" />
        <link_field field="NType" />
      </link_multiple>
    </property>
  
    <property name="AuditLevel" type="int"  report_type='AuditLevel'>@SmoAuditLevel</property>
    <property name="NumberOfLogFiles" type="int">ISNULL(@NumErrorLogs, -1)</property>
    <property name="LoginMode" type="int" report_type='ServerLoginMode'>(case when @SmoLoginMode &lt; 3 then @SmoLoginMode else 9 end)</property>
    <version min_major='7' max_major='10'>
      <property name="DefaultFile" type="nvarchar" size="512">ISNULL(@SmoDefaultFile,N'')</property>
      <property name="DefaultLog" type="nvarchar" size="512">ISNULL(@SmoDefaultLog,N'')</property>
    </version>
    <version min_major='11' matrix_min_major='10'>
      <property name="DefaultFile" type="nvarchar" size="512">SERVERPROPERTY('instancedefaultdatapath')</property>
      <property name="DefaultLog" type="nvarchar" size="512">SERVERPROPERTY('instancedefaultlogpath')</property>
    </version>
    <version min_major='7' max_major='9'>
      <property name="TapeLoadWaitTime" type="int">@SmoTapeLoadWaitTime</property>
    </version>
    <version min_major='10'>
      <property name="TapeLoadWaitTime" type="int">-1</property>
    </version>
    <property name="MailProfile" type="nvarchar" size="512">ISNULL(@SmoMailProfile,N'')</property>		
    <property name="BackupDirectory" type="nvarchar" size="512" notusage='filter,order'>@BackupDirectory</property>
    <property name="PerfMonMode" type="int" report_type='PerfMonMode'>@SmoPerfMonMode</property>		
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FKColumn" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local='FK_ID' />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table="dbo.sysforeignkeys AS fk" />
			<property_link fields='#ID#Name#' 
				join="dbo.syscolumns AS cfk">cfk.colid=fk.fkey and cfk.id = fk.fkeyid</property_link>
			<property_link fields='#ReferencedColumn#' 
				join="dbo.syscolumns AS crk">crk.colid=fk.rkey and crk.id = fk.rkeyid</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table="sys.foreign_key_columns AS fk" />
			<property_link fields='#ID#Name#' 
				join="sys.columns AS cfk">fk.parent_column_id = cfk.column_id and fk.parent_object_id = cfk.object_id</property_link>
			<property_link fields='#ReferencedColumn#' 
				join="sys.columns AS crk">fk.referenced_column_id = crk.column_id and fk.referenced_object_id = crk.object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design">cfk.name</property>
			<property name="ID" type="int" cast='true'>fk.keyno</property>
			<property name="ReferencedColumn" type="sysname" mode="design">crk.name</property>
			<property name="FK_ID" type="int" hidden='true'>fk.constid</property>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design">cfk.name</property>
			<property name="ID" type="int">fk.constraint_column_id</property>
			<property name="ReferencedColumn" type="sysname" mode="design">crk.name</property>
			<property name="FK_ID" type="int" hidden='true'>fk.constraint_object_id</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ComputedText" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ColumnID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
		<property_link table='dbo.syscomments comt' />
	</settings>
	<properties>
		<property name="ID" type="int" access="Read" cast='true'>comt.colid</property>
		<property name="Text" type="varchar" size='8000' access="Read">comt.text</property>
		<property name="ObjectIdentifier" type="nvarchar" size='300' 
			access="Read">cast(comt.id as nvarchar(20)) + N'_' + cast(comt.number as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_0'</property>		
		<property name="TableID" type="int" access="Read" hidden='true'>comt.id</property>
		<property name="ColumnID" type="int" access="Read" hidden='true'>comt.number</property>
	</properties>
</EnumObject>
_<?xml version="1.0" ?>
<EnumObject type="inc_object" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields = '#Schema#' join='sysusers AS s{0}'>s{0}.uid = {0}.uid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include alias='{0}' file='inc_named_object.xml' />
		<version min_major='7' max_major='8'>
			<property name="Schema" type="sysname" mode="design">s{0}.name</property>
      <property name="Owner" type="sysname" mode="design">s{0}.name</property>
			<!-- extended properties support -->
			<property name="ObjectSchemaFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{{0}}">
					<link_field type='filter' field="Schema" default_value="null"/>
				</link_multiple>
			</property>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Schema" type="sysname" mode="design">SCHEMA_NAME({0}.schema_id)</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0"  encoding="us-ascii" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7'  matrix_min_major='10' cloud_min_major='10'>
	<settings>
 	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="IsSystemObject" type="bit" access='Read' cast='true'>
				CASE WHEN (OBJECTPROPERTY({0}.id, N'IsMSShipped')=1) THEN 1 WHEN 1 = OBJECTPROPERTY({0}.id, N'IsSystemTable') THEN 1 ELSE 0 END
			</property>
		</version>
		<version min_major='9'  matrix_min_major='10' cloud_min_major='10'>
			<property name="IsSystemObject" type="bit" access='Read' cast = 'true'>
                {0}.is_ms_shipped
           </property>
		</version>
	</properties>
</EnumObject>
*<?xml version="1.0"  encoding="us-ascii" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
 	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="IsSystemObject" type="bit" access='Read' cast='true'>
                CASE WHEN (OBJECTPROPERTY({0}.id, N'IsMSShipped')=1) THEN 1 WHEN 1 = OBJECTPROPERTY({0}.id, N'IsSystemTable') THEN 1 ELSE 0 END
            </property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="IsSystemObject" type="bit" access='Read' cast = 'true'>
 case 
    when {0}.is_ms_shipped = 1 then 1
    when (
        select 
            major_id 
        from 
            sys.extended_properties 
        where 
            major_id = {0}.object_id and 
            minor_id = 0 and 
            class = 1 and 
            name = N'microsoft_database_tools_support') 
        is not null then 1
    else 0
end          
            </property>
		</version>
    <version cloud_min_major='10'>
      <property name="IsSystemObject" type="bit" access='Read' cast = 'true'>
        case
          when {0}.is_ms_shipped = 1 then 1
          else 0
        end
      </property>
    </version>
	</properties>
</EnumObject>
$<?xml version="1.0" ?>
<EnumObject type="inc_object" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings/>
	<properties>
		<include file='inc_urn.xml' />
		<include alias = 'cstr' file='inc_named_object.xml' for='#Name#ID#CreateDate#DateLastModified#'/>
		<version min_major='7' max_major='8'>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>cstr.status &amp; 4</property>
			<property name="IsChecked" type="bit" cast='true' read_only_after_creation="true" mode="design">1 - ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsNotTrusted'),0)</property>
			<property name="IsEnabled" type="bit" cast='true' mode="design">1 - ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsDisabled'),0)</property>
			<property name="NotForReplication"
			 type="bit" cast='true' read_only_after_creation="true" mode="deploy">ISNULL(OBJECTPROPERTY(cstr.id, N'CnstIsNotRepl'),0)</property>
		</version>

		<!-- extended properties support-->		
		<version min_major='8' max_major='8'>
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'CONSTRAINT'</property>
		</version>

		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="IsSystemNamed" type="bit" cast='true' access='Read'>cstr.is_system_named</property>
			<property name="IsChecked" type="bit" read_only_after_creation="true" mode="design">~cstr.is_not_trusted</property>
			<property name="IsEnabled" type="bit" mode="design">~cstr.is_disabled</property>
		</version>
		<version min_major='9' cloud_min_major='10'>
			<property name="NotForReplication" type="bit" read_only_after_creation="true" mode="deploy">cstr.is_not_for_replication</property>
		</version>
		<property name="ParentNumber" type='smallint' hidden='true'>0</property>		
	</properties>
</EnumObject>
I<?xml version="1.0" ?>
<EnumObject min_major='9' >
	<settings>
		<parent_link>
			<link parent = 'IndexID' local = 'IndexID'/>
			<link parent = 'TableID' local = 'ObjectID'/>
		</parent_link>
		<property_link table='sys.index_columns ic'>ic.partition_ordinal &gt; 0</property_link>
		<property_link fields='#Name#' join='sys.columns c'>c.object_id = ic.object_id and c.column_id = ic.column_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">c.name</property>
		<property name="ID" type="int" cast="true">ic.partition_ordinal</property>
		
		<!-- used for parent link -->
		<property name="IndexID" type="int" hidden='true'>ic.index_id</property>
		<property name="ObjectID" type="int" hidden='true'>ic.object_id</property>
	</properties>
</EnumObject>
+<?xml version="1.0" ?>
<EnumObject type="PartitionFunction" impl_type="SqlObject" min_major='9' >
	<settings main_table="sys.partition_functions AS spf" />
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">spf.name</property>
		<property name="ID" type="int" access='Read'>spf.function_id</property>
		<property name="RangeType" type="int" report_type="RangeType" cast='true' read_only_after_creation="true">spf.boundary_value_on_right</property>
		<property name="CreateDate" type="datetime" access='Read'>spf.create_date</property>
		<property name="NumberOfPartitions" type="int" access='Read'>spf.fanout</property>
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>21</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>spf.function_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="PartitionFunctionParameter" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.partition_parameters AS spp' />
		<property_link fields='#Name#' join='sys.types AS st'>st.system_type_id = st.user_type_id and spp.system_type_id = st.system_type_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="BaseTypeHidden" />
			</link_multiple>
		</property>
		<property name="ID" type="int" access='Read'>spp.parameter_id</property>
		<property name="ParentID" type="int" hidden="true">spp.function_id</property>
		<property name="Collation" type="sysname">ISNULL(spp.collation_name,N'')</property>
		<include file='inc_type.xml' for='#Length#NumericPrecision#NumericScale#' alias='spp'/>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="RangeValue" impl_type="SqlObject" min_major='9' >
	<settings main_table="sys.partition_range_values sprv" >
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
	</settings>
	<properties>
		<property name="ID" type="int" access='Read'>sprv.boundary_id</property>
		<property name="ParentID" type="int" hidden="true">sprv.function_id</property>
		<property name="Value" type="sql_variant" access='Read'>sprv.value</property>
	</properties>
</EnumObject>

3<?xml version="1.0" ?>
<EnumObject type="PartitionFunction" impl_type="SqlObject" min_major='9' >
	<settings>
			<property_link table='sys.partition_schemes AS sps'/>
			<property_link fields='#PartitionFunction#NextUsedFileGroup#FunctionFunOut#' 
							join='sys.partition_functions AS spf'>sps.function_id = spf.function_id	</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">sps.name</property>
		<property name="ID" type="int" access='Read'>sps.data_space_id</property>
		<property name="FunctionFunOut" type="int" access='Read' hidden='true'>spf.fanout</property>
		<property name="PartitionFunction" type="sysname" read_only_after_creation="true">spf.name</property>
		<property name="NextUsedFileGroup" type="sysname">ISNULL((case when spf.fanout &lt; (select count(*) from sys.destination_data_spaces sdd where sps.data_space_id = sdd.partition_scheme_id) then (select sf.name from sys.filegroups sf, sys.destination_data_spaces sdd where sf.data_space_id = sdd.data_space_id and sps.data_space_id = sdd.partition_scheme_id and sdd.destination_id &gt; spf.fanout) else null end),N'')</property>
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>20</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>sps.data_space_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="PartitionSchemeFileGroup" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link join='sys.destination_data_spaces AS sdd'>
			<link_multiple no='2' expression="sdd.partition_scheme_id = {0} and sdd.destination_id &lt;= {1}">
				<link_field type='parent' field="ID" />
				<link_field type='parent' field="FunctionFunOut" />
			</link_multiple>
		</property_link>
		<property_link fields='#Name#' 
				join='sys.filegroups AS sf'>sf.data_space_id = sdd.data_space_id</property_link>
	</settings>
	<properties>
		<property name="Name" type="sysname" access='Read'>sf.name</property>
		<property name="ID" type="int" access='Read'>sdd.destination_id</property>
	</properties>
</EnumObject>
'
<?xml version="1.0" ?>
<EnumObject type="Table" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<!-- left join because sysfiles have groupid = 0 on their index -->
			<property_link fields='#FileGroup#' left_join='dbo.sysfilegroups AS fg{0}'>
				<link_multiple no='1' expression="fg{0}.groupid = {0}.groupid">
					<!--used just to trigger the parent property link -->
					<link_field type='local' field="IndexID" />
				</link_multiple>
			</property_link>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link fields='#FileGroup#PartitionScheme#IsPartitioned#' left_join='sys.data_spaces AS ds{0}'>
				<link_multiple no='1' expression="ds{0}.data_space_id = {0}.data_space_id">
					<!--used just to trigger the parent property link -->
					<link_field type='local' field="IndexID" />
				</link_multiple>
			</property_link>			
		</version>
		<version min_major='10' matrix_min_major='10'>
		<property_link fields='#FileStreamFileGroup#FileStreamPartitionScheme#' left_join='sys.tables AS t'>t.object_id = {0}.object_id</property_link>
			<property_link fields='#FileStreamFileGroup#FileStreamPartitionScheme#' left_join='sys.data_spaces AS dstbl'>
				<link_multiple no='1' expression="dstbl.data_space_id = t.Filestream_data_space_id and {0}.index_id &lt; 2">
					<!--used just to trigger the parent property link -->
					<link_field type='local' field="IndexID" />
				</link_multiple>
			</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="FileGroup" type="sysname" read_only_after_creation="true">fg{0}.groupname</property>
		</version>
    <version min_major='9' matrix_min_major='10'>
      <property name="FileGroup" type="sysname" read_only_after_creation="true">CASE WHEN 'FG'=ds{0}.type THEN ds{0}.name ELSE N'' END</property>
    </version>
    <version min_major='9'>
			<property name="PartitionScheme" type="sysname" read_only_after_creation="true">CASE WHEN 'PS'=ds{0}.type THEN ds{0}.name ELSE N'' END</property>
			<property name="IsPartitioned" type="bit" cast='true' access="Read">CASE WHEN 'PS'=ds{0}.type THEN 1 ELSE 0 END</property>
		</version>
		<version min_major='10'>
			<property name="FileStreamFileGroup" type="sysname">CASE WHEN 'FD'=dstbl.type THEN dstbl.name ELSE N'' END</property>
			<property name="FileStreamPartitionScheme" type="sysname">CASE WHEN 'PS'=dstbl.type THEN dstbl.name ELSE N'' END</property>		
		</version>
	</properties>
</EnumObject>
o<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields='#DataType#DataTypeSchema#' 
					left_join='systypes AS usrt'>usrt.xusertype = {0}.xusertype</property_link>
			<property_link fields='#SystemType#Length#BaseTypeHidden#'
					left_join='systypes AS baset'>baset.xusertype = {0}.xtype and baset.xusertype = baset.xtype</property_link>
			<property_link fields='#DataTypeSchema#' 
					left_join='sysusers AS s1{0}'>s1{0}.uid = usrt.uid</property_link>
		</version>
        <!-- 
          For clr system types the system_type_id and user_type_id will be different in sys.types.		 	 
        -->
        <version min_major='9' max_major='9'>
            <property_link fields='#SystemType#Length#BaseTypeHidden#VariableLength#' 
                    left_join='sys.types AS baset'>(baset.user_type_id = {0}.system_type_id and baset.user_type_id = baset.system_type_id) </property_link>
        </version>
        <version min_major='10' matrix_min_major='10' cloud_min_major='10'>
            <property_link fields='#SystemType#Length#BaseTypeHidden#VariableLength#' 
                    left_join='sys.types AS baset'>(baset.user_type_id = {0}.system_type_id and baset.user_type_id = baset.system_type_id) or ((baset.system_type_id = {0}.system_type_id) and (baset.user_type_id = {0}.user_type_id) and (baset.is_user_defined = 0) and (baset.is_assembly_type = 1)) </property_link>
        </version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link fields='#DataType#DataTypeSchema#UserType#' 
					left_join='sys.types AS usrt'>usrt.user_type_id = {0}.user_type_id</property_link>
			<property_link fields = '#DataTypeSchema#' 
					left_join='sys.schemas AS s1{0}'>s1{0}.schema_id = usrt.schema_id</property_link>
			<property_link fields='#XmlSchemaNamespace#XmlSchemaNamespaceSchema#' 
					left_join='sys.xml_schema_collections AS xsc{0}'>xsc{0}.xml_collection_id = {0}.xml_collection_id</property_link>
			<property_link fields = '#XmlSchemaNamespaceSchema#' 
					left_join='sys.schemas AS s2{0}'>s2{0}.schema_id = xsc{0}.schema_id</property_link>
		</version>
	</settings>
	<properties>
    <property name="DataType" type="sysname" mode="design">usrt.name</property>
    <property name="DataTypeSchema" type="sysname">s1{0}.name</property>
    <property name="BaseTypeHidden" type="sysname" hidden='true'>baset.name</property>
    <property name="SystemType" type="sysname" access='Read'>ISNULL(baset.name, N'')</property>
    <version min_major='7' max_major='8'>
			<property name="Length" type="int" 
			 cast='true' mode="design">CASE WHEN baset.name IN (N'char', N'varchar', N'binary', N'varbinary', N'nchar', N'nvarchar') THEN {0}.prec ELSE {0}.length END</property>
			<property name="NumericPrecision" type="int" cast='true' mode="design">{0}.xprec</property>
			<property name="NumericScale" type="int" cast='true' mode="design">{0}.xscale</property>
		</version>        
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>

			<property name="Length" type="int"
				cast='true' mode="design">CASE WHEN baset.name IN (N'nchar', N'nvarchar') AND {0}.max_length &lt;&gt; -1 THEN {0}.max_length/2 ELSE {0}.max_length END</property>
			<property name="NumericPrecision" type="int" cast='true' mode="design">{0}.precision</property>
			<property name="NumericScale" type="int" cast='true' mode="design">{0}.scale</property>
			<property name='XmlSchemaNamespace' type='sysname'>ISNULL(xsc{0}.name, N'')</property>			
			<property name='XmlSchemaNamespaceSchema' type='sysname'>ISNULL(s2{0}.name, N'')</property>			
			<property name='XmlDocumentConstraint' type='int' report_type='XmlDocumentConstraint'>ISNULL( (case {0}.is_xml_document when 1 then 2 else 1 end), 0)</property>
		</version>
        <version min_major='10' matrix_min_major='10' cloud_min_major='10'>
            <property name="UserType" type="sysname" access='Read'>CASE WHEN usrt.is_table_type = 1 THEN N'structured' ELSE N'' END</property>
        </version>
    </properties>
</EnumObject>
9<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ExtPropMajorID" local="MajorID" />
			<link parent="ExtPropMinorID" local="MinorID" />
			<link parent="ExtPropClass" local="Class" />
		</parent_link>
		<version min_major='8' max_major='8'>
			<property_link table='dbo.sysproperties AS p' />
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table='sys.extended_properties AS p' />
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">p.name</property>
		<property name="Value" type='sql_variant' cast='true'>p.value</property>
		<version min_major='8' max_major='8'>
			<property name="MajorID" type="int" hidden='true'>p.id</property>
			<property name="MinorID" type="int" hidden='true'>p.smallid</property>
			<property name="Class" type="int" hidden='true'>p.type</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="MajorID" type="int" hidden='true'>p.major_id</property>
			<property name="MinorID" type="int" hidden='true'>p.minor_id</property>
			<property name="Class" type="int" hidden='true'>p.class</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' matrix_min_major='10'>
	<settings>
		<version min_major='9' matrix_min_major='10'>
			<include file ="ExtendedProperty.xml"/>
		</version>
	</settings>
	<properties>
		<version min_major='8' max_major='8'>
			<include file='inc_urn.xml' />
			<property name="Name" type="sysname">p.name</property>
			<property name="Value" type='sql_variant'>p.value</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' matrix_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent="Name" local="ObjName" />
			</parent_link>
		
			<property_link expression_is_for_table_name='true' alias='p'>
				<link_multiple no='2' expression="::fn_listextendedproperty (NULL, {0}, {1}, default, default, default, default)">
					<link_field type='parent' field="ObjectTypeName"/>
					<link_field type='parent' field="ObjectNameFromFilter" />
				</link_multiple>
			</property_link>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
P<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' matrix_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Schema' local='Owner' />
				<link parent='Name' local='ObjName' />
			</parent_link>
			<request_parent_select>
				<field name='Schema' />
				<field name='Name' />
			</request_parent_select>
			<property_link table='#extprops AS p' />
			<prefix>
				create table #extprops(owner sysname null, objname sysname null, name sysname, value sql_variant null)
			</prefix>
			<prefix>
				<link_multiple no='4' expression=
"if not ({0} is null )
begin
	insert #extprops (owner, objname, name, value) select null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', {0}, {1}, {2}, default, default)
	update #extprops set owner = {0}
end
else
begin
	declare @owner sysname
	declare @name sysname
	
	declare crs insensitive cursor 
		for ( {3} ) 
	for read only 
	open crs 
	fetch crs into @owner, @name
	while @@fetch_status &gt;= 0 
	begin 
			insert #extprops (owner, objname, name, value) select null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @name, default, default)
			update #extprops set owner = @owner where owner is null
			fetch crs into @owner, @name
	end 
	close crs
	deallocate crs
end">
					<link_field type='parent' field="ObjectSchemaFromFilter" />
					<link_field type='parent' field="ObjectTypeName"/>
					<link_field type='parent' field="ObjectNameFromFilter" />
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #extprops
			</postfix>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="Owner" type="sysname" hidden="true" cast='true'>cast(p.owner as varbinary(256))</property>
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
R
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' matrix_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Name' local='ObjName'/>
				<link parent='ParentObjName' local='ParentObjName' />
				<link parent='ParentOwner' local='ParentOwner' />
			</parent_link>
			<request_parent_select>
				<field name='ParentOwner' />
				<field name='ParentObjName' />
				<field name='Name' />
			</request_parent_select>
			<property_link table='#extprops AS p' />
			<prefix>
				create table #extprops(owner sysname null, parentobjname sysname null, 
						objname sysname null, name sysname , value sql_variant null)
			</prefix>
			<prefix>
				<link_multiple no='5' expression=
"if not ({0} is null or {2} is null)
begin
	insert #extprops (owner, parentobjname, objname, name, value) select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', {0}, {1}, {2}, {3}, default)
	update #extprops set owner = {0}, parentobjname = {2}
end
else
begin
	declare @owner sysname
	declare @parentname sysname
	declare @name sysname
	
	declare crs insensitive cursor 
		for ( {4} ) 
	for read only 
	open crs 
	fetch crs into @owner, @parentname, @name
	while @@fetch_status &gt;= 0 
	begin 
			insert #extprops (owner, parentobjname, objname, name, value) select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @parentname, {3}, @name)
			update #extprops set owner = @owner, parentobjname = @parentname where owner is null
			fetch crs into @owner, @parentname, @name
	end 
	close crs
	deallocate crs
end">
					<link_field type='parent' field="ParentObjectSchemaFromFilter" />
					<link_field type='parent' field="ParentObjectTypeName"/>
					<link_field type='parent' field="ParentObjectNameFromFilter" />
					<link_field type='parent' field="ObjectTypeName" />
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #extprops
			</postfix>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="ParentOwner" type="sysname" hidden="true" cast='true'>cast(p.owner as varbinary(256))</property>
			<property name="ParentObjName" type="sysname" hidden="true" cast='true'>cast(p.parentobjname as varbinary(256))</property>
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' matrix_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Name' local='ObjName'/>
				<link parent='ParentObjName' local='ParentObjName' />
				<link parent='ParentOwner' local='ParentOwner' />
			</parent_link>
			<request_parent_select>
				<field name='ParentOwner' />
				<field name='ParentObjName' />
				<field name='Name' />
				<field name='IndexKeyType' />
			</request_parent_select>
			<property_link table='#extprops AS p' />
			<prefix>
				create table #extprops(owner sysname null, parentobjname sysname  null, 
							objname sysname null, name sysname , value sql_variant null)
			</prefix>
			<prefix>
				<link_multiple no='5' expression=
"
declare @idx_type sysname
select @idx_type = {3}

if not ({0} is null or {2} is null or @idx_type is null)
begin
	insert #extprops (owner, parentobjname, objname, name, value) select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', {0}, {1}, {2}, @idx_type, default)
	update #extprops set owner = {0}, parentobjname = {2}
end
else
begin
	declare @owner sysname
	declare @parentname sysname
	declare @name sysname
	
	declare crs insensitive cursor 
		for ( {4} ) 
	for read only 
	open crs 
	fetch crs into @owner, @parentname, @name, @idx_type
	while @@fetch_status &gt;= 0 
	begin 
			if 0 = @idx_type 
				insert #extprops (owner, parentobjname, objname, name, value) 
					select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @parentname, N'INDEX', @name)
			else
				insert #extprops (owner, parentobjname, objname, name, value) 
					select null, null, objname, name, value from ::fn_listextendedproperty (NULL, 'USER', @owner, {1}, @parentname, N'CONSTRAINT', @name)
		
			update #extprops set owner = @owner, parentobjname = @parentname where owner is null
			fetch crs into @owner, @parentname, @name, @idx_type
	end 
	close crs
	deallocate crs
end">
					<link_field type='parent' field="ParentObjectSchemaFromFilter" />
					<link_field type='parent' field="ParentObjectTypeName"/>
					<link_field type='parent' field="ParentObjectNameFromFilter" />
					<link_field type='parent' field="ObjectTypeName" />
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
			<postfix>
				drop table #extprops
			</postfix>
		</version>
	</settings>
	<properties>
		<include file ="inc_shilohExtendedProperty.xml"/>
		<version min_major='8' max_major='8'>		
			<property name="ParentOwner" type="sysname" hidden="true" cast='true'>cast(p.owner as varbinary(256))</property>
			<property name="ParentObjName" type="sysname" hidden="true" cast='true'>cast(p.parentobjname as varbinary(256))</property>
			<property name="ObjName" type="sysname" hidden="true" cast='true'>cast(p.objname as varbinary(256))</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' max_major='8'>
	<settings>
	</settings>
	<properties>
		<property name="ParentObjName" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Name" />
			</link_multiple>
		</property>
		<property name="ParentOwner" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Schema" />
			</link_multiple>
		</property>
		<property name="ParentObjectSchemaFromFilter" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ObjectSchemaFromFilter" />
			</link_multiple>
		</property>
		<property name="ParentObjectTypeName" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ObjectTypeName" />
			</link_multiple>
		</property>
		<property name="ParentObjectNameFromFilter" type="sysname" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ObjectNameFromFilter" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' matrix_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<property_link table='::fn_listextendedproperty (NULL, default, default, default, default, default, default) AS p'/>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table='sys.extended_properties AS p'>p.major_id=0 AND p.minor_id=0 AND p.class=0</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">p.name</property>
		<property name="Value" type='sql_variant' cast='true'>p.value</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7'  matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields='#Schema#Owner#' 
					join='sysusers AS s{0}'>s{0}.uid = {0}.uid</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link fields = '#Schema#' 
					join='sys.schemas AS s{0}'>s{0}.schema_id = {0}.schema_id</property_link>
      <property_link fields = '#Owner#'
          left_join='sys.database_principals AS s1{0}'>s1{0}.principal_id = ISNULL({0}.principal_id, (TYPEPROPERTY(QUOTENAME(SCHEMA_NAME({0}.schema_id)) + '.' + QUOTENAME({0}.name), 'OwnerId')))</property_link>
		</version>
	</settings>
	<properties>
		<property name="Name" type="sysname" mode="design">{0}.name</property>
		<property name="Schema" type="sysname" mode="design">s{0}.name</property>
    <version min_major='7' max_major='8'>
      <property name="Owner" type="sysname" mode="design">s{0}.name</property>
    </version>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
      <property name="Owner" type="sysname" mode="design">ISNULL(s1{0}.name, N'')</property>
      <property name="IsSchemaOwned" type="bit" access="Read" cast="true" mode="design">case when {0}.principal_id is null then 1 else 0 end</property>
    </version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link fields='#TableName#TableSchema#' 
				join = 'dbo.sysobjects AS tbl'>tbl.id = {0}.id</property_link>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link fields='#TableName#TableSchema#' 
				join = 'sys.tables AS tbl'>tbl.object_id = {0}.object_id</property_link>
		</version>
	</settings>
	<properties>
		<property name="Name" type="sysname">{0}.name</property>
		<property name="TableName" type="sysname">tbl.name</property>
		<version min_major='7' max_major='8'>
			<property name="TableSchema" type="sysname">user_name(tbl.uid)</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="TableSchema" type="sysname">schema_name(tbl.schema_id)</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
            <!-- 
            here we have to fetch from both sys.sql_modules and sys.system_sql_modules
            because user objects are stored in the former, and system objects are 
            stored in the latter
            -->
			<property_link 
				fields = '#Recompile#IsEncrypted#Definition#SqlReturnsNullOnNullInput#SqlExecutionContext#SqlExecutionContextPrincipal#'
				left_join='sys.sql_modules AS sm{0}'>sm{0}.object_id = {0}.object_id</property_link>
            <property_link 
				fields = '#Recompile#IsEncrypted#Definition#'
				left_join='sys.system_sql_modules AS ssm{0}'>ssm{0}.object_id = {0}.object_id</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8' >
			<include file='inc_sql_module.xml' alias='{0}'/>
		</version>
   <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="AnsiNullsStatus" type="bit" cast='true' mode="design">ISNULL(OBJECTPROPERTYEX({0}.object_id,N'ExecIsAnsiNullsOn'),0)</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true' mode="design">ISNULL(OBJECTPROPERTYEX({0}.object_id,N'ExecIsQuotedIdentOn'),0)</property>
			<property name="IsSchemaBound" type="bit" cast='true' mode="design">ISNULL(OBJECTPROPERTYEX({0}.object_id, N'IsSchemaBound'),0)</property>
			<include file='inc_sql_module.xml' alias='sm{0}'/>
			
			<property name="SqlReturnsNullOnNullInput" type="bit" cast='true' hidden='true'>sm{0}.null_on_null_input</property>
			<property name="SqlExecutionContext" type="int" report_type="ExecutionContext" hidden='true'>case isnull(sm{0}.execute_as_principal_id, -1) when -1 then 1 when -2 then 2 else 3 end</property>
			<property name="SqlExecutionContextDdl" type="int" report_type="ExecutionContext" hidden='true'>case isnull(sm{0}.execute_as_principal_id, -1) when -1 then 1 else 2 end</property>
			<property name="SqlExecutionContextPrincipal" type="sysname" hidden='true'>ISNULL(user_name(sm{0}.execute_as_principal_id),N'')</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='9' matrix_min_major='10'>
			<property_link fields='#ClassName#MethodName#AssemblyName#ExecutionContext#ExecutionContextPrincipal#ReturnsNullOnNullInput#' 
						left_join='sys.assembly_modules' alias='am{0}'>am{0}.object_id = {0}.object_id</property_link>
			<property_link fields='#AssemblyName#' 
						left_join='sys.assemblies' alias='asmbl{0}'>asmbl{0}.assembly_id = am{0}.assembly_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='sql_module_link.xml' alias='{0}'/>

		<version min_major='9' matrix_min_major='10'>		
			<property name="AssemblyName" type="sysname" mode="design">case when am{0}.object_id is null then N'' else asmbl{0}.name end</property>
			<property name="ClassName" type="sysname" mode="design">case when am{0}.object_id is null then N'' else am{0}.assembly_class end</property>
			<property name="MethodName" type="sysname" mode="design">case when am{0}.object_id is null then N'' else am{0}.assembly_method end</property>

			<property name="ReturnsNullOnNullInput" type="bit" cast='true' mode="design">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else am{0}.null_on_null_input end">
					<link_field type='local' field="SqlReturnsNullOnNullInput" />
				</link_multiple>
			</property>
			<property name="ExecutionContext" type="int" report_type="ExecutionContext" mode="deploy">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else case isnull(am{0}.execute_as_principal_id, -1) when -1 then 1 when -2 then 2 else 3 end end">
					<link_field type='local' field="SqlExecutionContext" />
				</link_multiple>
			</property>
			<property name="ExecutionContextPrincipal" type="sysname" mode="deploy">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else user_name(am{0}.execute_as_principal_id) end">
					<link_field type='local' field="SqlExecutionContextPrincipal" />
				</link_multiple>
			</property>
			<property name="ExecutionContextLogin" type="sysname">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else user_name(am{0}.execute_as_principal_id) end">
					<link_field type='local' field="SqlExecutionContextPrincipal" />
				</link_multiple>
			</property>
			<property name="ExecutionContextUser" type="sysname">
				<link_multiple no='1' expression="case when am{0}.object_id is null then {{0}} else user_name(am{0}.execute_as_principal_id) end">
					<link_field type='local' field="SqlExecutionContextPrincipal" />
				</link_multiple>
			</property>
		</version>

    <version cloud_min_major='10' >
      <property name="ReturnsNullOnNullInput" type="bit" cast='true'>
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlReturnsNullOnNullInput" />
        </link_multiple>
      </property>
      <property name="ExecutionContext" type="int" report_type="ExecutionContext">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContext" />
        </link_multiple>
      </property>
      <property name="ExecutionContextPrincipal" type="sysname">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContextPrincipal" />
        </link_multiple>
      </property>
      <property name="ExecutionContextLogin" type="sysname">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContextPrincipal" />
        </link_multiple>
      </property>
      <property name="ExecutionContextUser" type="sysname">
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="SqlExecutionContextPrincipal" />
        </link_multiple>
      </property>
    </version>
    
	</properties>
</EnumObject>
š<?xml version='1.0' ?>
<EnumObject type='backupset' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
  <settings>
    <property_link table='#backupset AS btmp' />
    <property_link join='msdb.dbo.backupset AS bkps'>bkps.backup_set_id = btmp.backup_set_id</property_link>
    <version min_major='7' max_major='7'>
      <prefix>
        declare @server_name nvarchar(512)
        set @server_name = @@SERVERNAME
      </prefix>
    </version>
    <version min_major='8' matrix_min_major='10'>
      <prefix>
        declare @server_name nvarchar(512)
        set @server_name = cast(serverproperty(N'Servername') as nvarchar(512))
      </prefix>
    </version>

    <version min_major='7' max_major='8'>
      <prefix>
        DECLARE
        @first_full_backupset_id      INTEGER,
        @first_full_backup_startdate  DATETIME,
        @count_entries					INTEGER,
        @in_restore_plan				BIT,
        @last_backupset_type			CHAR(1),
        @last_backupset_id				INTEGER,
        @last_backupset_family_guid		UNIQUEIDENTIFIER,
        @last_backupset_diff_base_guid	UNIQUEIDENTIFIER,
        @last_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,
        @full_backupset_id				INTEGER,
        @full_backupset_start_date		DATETIME,
        @full_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,


        @loop_var						BIT,
        @loop_backup_set_id				INTEGER,
        @loop_start_date				DATETIME,
        @count_unique_fork_guid INTEGER,

        @t1_backup_set_id				INTEGER,
        @t1_type						CHAR(1),
        @t1_backup_start_date			DATETIME,
        @t1_first_recovery_fork_guid	UNIQUEIDENTIFIER,
        @t1_last_recovery_fork_guid		UNIQUEIDENTIFIER,
        @t1_first_lsn					NUMERIC(25, 0),
        @t1_last_lsn					NUMERIC(25, 0),
        @t1_checkpoint_lsn				NUMERIC(25, 0),
        @t1_database_backup_lsn			NUMERIC(25, 0),
        @t1_fork_point_lsn				NUMERIC(25, 0),
        @t1_backup_set_uuid				UNIQUEIDENTIFIER,
        @t1_database_guid				UNIQUEIDENTIFIER,
        @t1_diff_base_guid				UNIQUEIDENTIFIER,

        @t2_backup_set_id				INTEGER,
        @t2_type						CHAR(1),
        @t2_backup_start_date			DATETIME,
        @t2_first_recovery_fork_guid	UNIQUEIDENTIFIER,
        @t2_last_recovery_fork_guid		UNIQUEIDENTIFIER,
        @t2_first_lsn					NUMERIC(25, 0),
        @t2_last_lsn					NUMERIC(25, 0),
        @t2_checkpoint_lsn				NUMERIC(25, 0),
        @t2_database_backup_lsn			NUMERIC(25, 0),
        @t2_fork_point_lsn				NUMERIC(25, 0),
        @t2_backup_set_uuid				UNIQUEIDENTIFIER,
        @t2_database_guid				UNIQUEIDENTIFIER,
        @t2_diff_base_guid				UNIQUEIDENTIFIER


        CREATE TABLE #backupset(
        backup_set_id					INTEGER				NOT NULL,
        is_in_restore_plan				BIT					NOT NULL,
        backup_start_date				DATETIME			NOT NULL,
        type						    CHAR(1)				NOT NULL,
        database_name				    NVARCHAR(256)		NOT NULL,
        database_guid				    UNIQUEIDENTIFIER	,
        family_guid						UNIQUEIDENTIFIER	,
        first_recovery_fork_guid		UNIQUEIDENTIFIER	,
        last_recovery_fork_guid			UNIQUEIDENTIFIER	,
        first_lsn					    NUMERIC(25, 0)		,
        last_lsn					    NUMERIC(25, 0)		,
        checkpoint_lsn					NUMERIC(25, 0)		,
        database_backup_lsn				NUMERIC(25, 0)		,
        fork_point_lsn					NUMERIC(25, 0)		,
        restore_till_lsn				NUMERIC(25, 0)		,
        backup_set_uuid					UNIQUEIDENTIFIER	,
        differential_base_guid			UNIQUEIDENTIFIER
        )
        /**********************************************************************/
        /* Identify the first                                                 */
        /**********************************************************************/
        SELECT @first_full_backupset_id = backupset_outer.backup_set_id
        ,@first_full_backup_startdate = backupset_outer.backup_start_date
        FROM msdb.dbo.backupset backupset_outer
        WHERE backupset_outer.database_name = @db_name
        AND backupset_outer.server_name = @server_name
        AND backupset_outer.type = 'D' -- Full Database Backup
        AND backupset_outer.backup_start_date = (  SELECT MAX(backupset_inner.backup_start_date)
        FROM msdb.dbo.backupset backupset_inner
        WHERE backupset_inner.database_name = backupset_outer.database_name
        AND backupset_inner.server_name = @server_name
        AND backupset_inner.type = backupset_outer.type AND
        backupset_inner.backup_start_date &lt;= @restore_to_datetime)
        /*******************************************************************************************/
        /* Find the first full database backup needed in the restore plan and store its attributes */
        /* in #backupset work table                                                                */
        /*******************************************************************************************/
        INSERT #backupset(
        backup_set_id
        ,is_in_restore_plan
        ,backup_start_date
        ,type
        ,database_name
        )
        SELECT backup_set_id
        ,1                   --  The full database backup is always needed for the restore plan
        ,backup_start_date
        ,type
        ,database_name
        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_id = @first_full_backupset_id
        AND msdb.dbo.backupset.server_name = @server_name

        /***************************************************************/
        /* Find the log and differential backups that occurred after   */
        /* the full backup and store them in #backupset work table     */
        /***************************************************************/
        INSERT #backupset(
        backup_set_id
        ,is_in_restore_plan
        ,backup_start_date
        ,type
        ,database_name
        )
        SELECT backup_set_id
        ,0
        ,backup_start_date
        ,type
        ,database_name
        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.database_name = @db_name
        AND msdb.dbo.backupset.server_name = @server_name
        AND msdb.dbo.backupset.type IN ('I', 'L')  -- Differential, Log backups
        AND msdb.dbo.backupset.backup_start_date &gt;= @first_full_backup_startdate

        /**********************************************************************************/
        /* identify and mark the backup logs that need to be included in the restore plan */
        /**********************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'I'
        AND #backupset.backup_start_date = (SELECT MAX(backupset_inner.backup_start_date)
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = #backupset.type
        AND backupset_inner.backup_start_date &lt;= @restore_to_datetime)

        /**************************************************************************************/
        /* Log backups that occurred after the different are always part of the restore plan. */
        /**************************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'L'
        AND #backupset.backup_start_date &lt;= @restore_to_datetime
        AND #backupset.backup_start_date &gt;= (SELECT backupset_inner.backup_start_date
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = 'I'
        AND backupset_inner.is_in_restore_plan = 1)

        /**************************************************************************************/
        /* If @restore_to_datetime is greater than the last startdate of the last log backup, */
        /* include the next log backup in the restore plan                                    */
        /**************************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'L'
        AND #backupset.backup_start_date = (SELECT MIN(backupset_inner.backup_start_date)
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = 'L'
        AND backupset_inner.backup_start_date > @restore_to_datetime
        AND backupset_inner.is_in_restore_plan = 0)

        /**************************************************************************************/
        /* If there are no differential backups, all log backups that occurred after the full */
        /* backup are needed in the restore plan.                                             */
        /**************************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'L'
        AND #backupset.backup_start_date &lt;= @restore_to_datetime
        AND NOT EXISTS(SELECT *
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = 'I')
      </prefix>
    </version>

    <version min_major='9' >
      <prefix>
        DECLARE
        @first_full_backupset_id      INTEGER,
        @first_full_backup_startdate  DATETIME,
        @count_entries					INTEGER,
        @in_restore_plan				BIT,
        @last_backupset_type			CHAR(1),
        @last_backupset_id				INTEGER,
        @last_backupset_family_guid		UNIQUEIDENTIFIER,
        @last_backupset_diff_base_guid	UNIQUEIDENTIFIER,
        @last_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,
        @full_backupset_id				INTEGER,
        @full_backupset_start_date		DATETIME,
        @full_backupset_recovery_fork_guid	UNIQUEIDENTIFIER,


        @loop_var						BIT,
        @loop_backup_set_id				INTEGER,
        @loop_start_date				DATETIME,
        @count_unique_fork_guid INTEGER,

        @t1_backup_set_id				INTEGER,
        @t1_type						CHAR(1),
        @t1_backup_start_date			DATETIME,
        @t1_first_recovery_fork_guid	UNIQUEIDENTIFIER,
        @t1_last_recovery_fork_guid		UNIQUEIDENTIFIER,
        @t1_first_lsn					NUMERIC(25, 0),
        @t1_last_lsn					NUMERIC(25, 0),
        @t1_checkpoint_lsn				NUMERIC(25, 0),
        @t1_database_backup_lsn			NUMERIC(25, 0),
        @t1_fork_point_lsn				NUMERIC(25, 0),
        @t1_backup_set_uuid				UNIQUEIDENTIFIER,
        @t1_database_guid				UNIQUEIDENTIFIER,
        @t1_diff_base_guid				UNIQUEIDENTIFIER,

        @t2_backup_set_id				INTEGER,
        @t2_type						CHAR(1),
        @t2_backup_start_date			DATETIME,
        @t2_first_recovery_fork_guid	UNIQUEIDENTIFIER,
        @t2_last_recovery_fork_guid		UNIQUEIDENTIFIER,
        @t2_first_lsn					NUMERIC(25, 0),
        @t2_last_lsn					NUMERIC(25, 0),
        @t2_checkpoint_lsn				NUMERIC(25, 0),
        @t2_database_backup_lsn			NUMERIC(25, 0),
        @t2_fork_point_lsn				NUMERIC(25, 0),
        @t2_backup_set_uuid				UNIQUEIDENTIFIER,
        @t2_database_guid				UNIQUEIDENTIFIER,
        @t2_diff_base_guid				UNIQUEIDENTIFIER


        CREATE TABLE #backupset(
        backup_set_id					INTEGER				NOT NULL,
        is_in_restore_plan				BIT					NOT NULL,
        backup_start_date				DATETIME			NOT NULL,
        type						    CHAR(1)				NOT NULL,
        database_name				    NVARCHAR(256)		NOT NULL,
        database_guid				    UNIQUEIDENTIFIER	,
        family_guid						UNIQUEIDENTIFIER	,
        first_recovery_fork_guid		UNIQUEIDENTIFIER	,
        last_recovery_fork_guid			UNIQUEIDENTIFIER	,
        first_lsn					    NUMERIC(25, 0)		,
        last_lsn					    NUMERIC(25, 0)		,
        checkpoint_lsn					NUMERIC(25, 0)		,
        database_backup_lsn				NUMERIC(25, 0)		,
        fork_point_lsn					NUMERIC(25, 0)		,
        restore_till_lsn				NUMERIC(25, 0)		,
        backup_set_uuid					UNIQUEIDENTIFIER	,
        differential_base_guid			UNIQUEIDENTIFIER
        )
        /**********************************************************************/
        /* Identify the first                                                 */
        /**********************************************************************/
        SELECT @first_full_backupset_id = backupset_outer.backup_set_id
        ,@first_full_backup_startdate = backupset_outer.backup_start_date
        FROM msdb.dbo.backupset backupset_outer
        WHERE backupset_outer.database_name = @db_name
        AND backupset_outer.server_name = @server_name
        AND backupset_outer.type = 'D' -- Full Database Backup
        AND backupset_outer.backup_start_date = (  SELECT MAX(backupset_inner.backup_start_date)
        FROM msdb.dbo.backupset backupset_inner
        WHERE backupset_inner.database_name = backupset_outer.database_name
        AND backupset_inner.server_name = @server_name
        AND backupset_inner.type = backupset_outer.type
        AND backupset_inner.backup_start_date &lt;= @restore_to_datetime
        AND backupset_inner.is_copy_only = 0 )
        AND backupset_outer.is_copy_only = 0
        /*******************************************************************************************/
        /* Find the first full database backup needed in the restore plan and store its attributes */
        /* in #backupset work table                                                                */
        /*******************************************************************************************/
        INSERT #backupset(
        backup_set_id
        ,is_in_restore_plan
        ,backup_start_date
        ,type
        ,database_name
        ,last_recovery_fork_guid
        )
        SELECT backup_set_id
        ,1                   --  The full database backup is always needed for the restore plan
        ,backup_start_date
        ,type
        ,database_name
        ,last_recovery_fork_guid
        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_id = @first_full_backupset_id
        AND msdb.dbo.backupset.server_name = @server_name

        /***************************************************************/
        /* Find the log and differential backups that occurred after   */
        /* the full backup and store them in #backupset work table     */
        /***************************************************************/
        INSERT #backupset(
        backup_set_id
        ,is_in_restore_plan
        ,backup_start_date
        ,type
        ,database_name
        ,last_recovery_fork_guid
        )
        SELECT backup_set_id
        ,0
        ,backup_start_date
        ,type
        ,database_name
        ,last_recovery_fork_guid
        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.database_name = @db_name
        AND msdb.dbo.backupset.server_name = @server_name
        AND msdb.dbo.backupset.type IN ('I', 'L')  -- Differential, Log backups
        AND msdb.dbo.backupset.backup_start_date &gt;= @first_full_backup_startdate

        /**********************************************************************************/
        /* identify and mark the backup logs that need to be included in the restore plan */
        /**********************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'I'
        AND #backupset.backup_start_date = (SELECT MAX(backupset_inner.backup_start_date)
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = #backupset.type
        AND backupset_inner.backup_start_date &lt;= @restore_to_datetime)

        /**************************************************************************************/
        /* Log backups that occurred after the different are always part of the restore plan. */
        /**************************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'L'
        AND #backupset.backup_start_date &lt;= @restore_to_datetime
        AND #backupset.backup_start_date &gt;= (SELECT backupset_inner.backup_start_date
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = 'I'
        AND backupset_inner.is_in_restore_plan = 1)

        /**************************************************************************************/
        /* If @restore_to_datetime is greater than the last startdate of the last log backup, */
        /* include the next log backup in the restore plan                                    */
        /**************************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'L'
        AND #backupset.backup_start_date = (SELECT MIN(backupset_inner.backup_start_date)
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = 'L'
        AND backupset_inner.backup_start_date > @restore_to_datetime
        AND backupset_inner.is_in_restore_plan = 0)

        /**************************************************************************************/
        /* If there are no differential backups, all log backups that occurred after the full */
        /* backup are needed in the restore plan.                                             */
        /**************************************************************************************/
        UPDATE #backupset
        SET is_in_restore_plan = 1
        WHERE #backupset.type = 'L'
        AND #backupset.backup_start_date &lt;= @restore_to_datetime
        AND NOT EXISTS(SELECT *
        FROM #backupset backupset_inner
        WHERE backupset_inner.type = 'I')

      </prefix>
    </version>

    <version min_major='9' >
      <prefix>

        /**************************************************************************************/
        /* The above plan is based on backup_start_date which fails in case when the DB is    */
        /* restored to a previous state i.e forked. In which case we need to base it on lsn   */
        /* numbers. This forking condition can be checked by matching the                     */
        /* last_recovery_fork_guid of the backupset if it doesn't match, we need to change    */
        /* the plan.                                                                          */
        /**************************************************************************************/

        SELECT @count_unique_fork_guid = COUNT( DISTINCT last_recovery_fork_guid )
        FROM #backupset

        IF @count_unique_fork_guid &gt; 1
        BEGIN

        DELETE
        FROM #backupset
        /**************************************************************************************/
        /* First we look for a T-Log backup taken after the given point-in-time to get the    */
        /* tail log, that can be used to restore to the exact point-in-time.                  */
        /**************************************************************************************/

        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.database_name = @db_name
        AND msdb.dbo.backupset.type IN ('D', 'L')
        AND msdb.dbo.backupset.backup_start_date &gt;= @restore_to_datetime
        ORDER BY msdb.dbo.backupset.backup_start_date ASC,
        msdb.dbo.backupset.last_lsn ASC

        SELECT @last_backupset_type = bset.type
        FROM #backupset as bset

        IF @last_backupset_type = 'D' --Full
        BEGIN
        DELETE FROM #backupset
        END

        /**********************************************************************/
        /* If no T-Log backup exits for after the time T, get the last backup */
        /**********************************************************************/

        SELECT @count_entries = COUNT(bset.backup_set_id)
        FROM #backupset as bset

        IF @count_entries &lt; 1
        BEGIN

        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.database_name = @db_name
        AND msdb.dbo.backupset.backup_start_date &lt;= @restore_to_datetime
        ORDER BY msdb.dbo.backupset.backup_start_date DESC,
        msdb.dbo.backupset.last_lsn DESC

        END

        SELECT @last_backupset_type = bset.type,
        @last_backupset_id = bset.backup_set_id,
        @last_backupset_family_guid = bset.family_guid,
        @last_backupset_diff_base_guid = bset.differential_base_guid,
        @last_backupset_recovery_fork_guid = bset.last_recovery_fork_guid
        FROM #backupset as bset

        /**************************************************************************************/
        /* If the selected backup is Full ('D') return.                                       */
        /**************************************************************************************/

        IF (@last_backupset_type = 'D')
        BEGIN
        GOTO done
        END

        /**************************************************************************************/
        /* If the selected backup is Differential('I'),select the Diff-base backup(Full) also */
        /**************************************************************************************/
        IF (@last_backupset_type = 'I')
        BEGIN

        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_uuid = @last_backupset_diff_base_guid
        AND msdb.dbo.backupset.family_guid = @last_backupset_family_guid

        GOTO done
        END

        SELECT @t1_type = bset.type,
        @t1_backup_set_id = bset.backup_set_id,
        @t1_backup_set_uuid = bset.backup_set_uuid,
        @t1_backup_start_date = bset.backup_start_date,
        @t1_diff_base_guid = bset.differential_base_guid,
        @t1_last_recovery_fork_guid = bset.last_recovery_fork_guid,
        @t1_first_recovery_fork_guid = bset.first_recovery_fork_guid,
        @t1_database_guid = bset.database_guid,
        @t1_first_lsn = bset.first_lsn,
        @t1_last_lsn = bset.last_lsn,
        @t1_checkpoint_lsn = bset.checkpoint_lsn,
        @t1_database_backup_lsn = bset.database_backup_lsn,
        @t1_fork_point_lsn = bset.fork_point_lsn
        FROM #backupset as bset

        SET @loop_backup_set_id = @t1_backup_set_id
        SET @loop_start_date = @t1_backup_start_date

        /**************************************************************************************/
        /* This Loop iterates thru the backup with the same family_guid in reverse order and  */
        /* constructs the T-Log chain, until it finds the compatible Diff or Backup           */
        /**************************************************************************************/
        SET @loop_var = 1
        WHILE ( @loop_var = 1 )
        BEGIN

        SELECT TOP(1)
        @t2_backup_set_id = backup_set_id,
        @t2_backup_set_uuid = backup_set_uuid,
        @t2_backup_start_date =	backup_start_date,
        @t2_type = type,
        @t2_first_recovery_fork_guid = first_recovery_fork_guid,
        @t2_last_recovery_fork_guid= last_recovery_fork_guid,
        @t2_database_guid = database_guid,
        @t2_first_lsn = first_lsn,
        @t2_last_lsn = last_lsn,
        @t2_checkpoint_lsn = checkpoint_lsn,
        @t2_database_backup_lsn = database_backup_lsn,
        @t2_fork_point_lsn= fork_point_lsn,
        @t2_diff_base_guid = differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.family_guid = @last_backupset_family_guid
        AND msdb.dbo.backupset.backup_start_date &lt;= @loop_start_date
        AND msdb.dbo.backupset.backup_set_id &lt; @loop_backup_set_id
        ORDER BY msdb.dbo.backupset.backup_start_date DESC,
        msdb.dbo.backupset.last_lsn DESC,
        msdb.dbo.backupset.backup_set_id DESC

        IF( @t2_backup_set_id IS NULL OR @t2_backup_set_id = @loop_backup_set_id)
        BEGIN
        GOTO done
        END

        IF( @t1_fork_point_lsn IS NULL )
        BEGIN

        IF (@t2_type = 'D' AND @t2_database_guid = @t1_database_guid AND @t2_first_lsn = @t1_first_lsn AND  @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid )
        BEGIN
        GOTO AddFullBackup
        END

        IF (@t2_type = 'I' AND @t2_database_guid = @t1_database_guid AND  @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid )
        BEGIN
        GOTO AddDiffBackup
        END

        IF (@t2_type = 'L' AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn = @t1_first_lsn)
        BEGIN
        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id

        SET	@t1_type = @t2_type
        SET	@t1_backup_set_id = @t2_backup_set_id
        SET	@t1_backup_set_uuid = @t2_backup_set_uuid
        SET	@t1_backup_start_date = @t2_backup_start_date
        SET	@t1_diff_base_guid = @t2_diff_base_guid
        SET	@t1_last_recovery_fork_guid = @t2_last_recovery_fork_guid
        SET	@t1_first_recovery_fork_guid = @t2_first_recovery_fork_guid
        SET	@t1_database_guid = @t2_database_guid
        SET	@t1_first_lsn = @t2_first_lsn
        SET	@t1_last_lsn = @t2_last_lsn
        SET	@t1_checkpoint_lsn = @t2_checkpoint_lsn
        SET	@t1_database_backup_lsn = @t2_database_backup_lsn
        SET	@t1_fork_point_lsn = @t2_fork_point_lsn

        END

        END
        ELSE
        BEGIN

        IF (@t2_type = 'D' AND ((@t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn &lt;= @t1_fork_point_lsn)
        OR @t2_last_recovery_fork_guid = @t1_last_recovery_fork_guid AND @t2_last_lsn &gt; @t1_fork_point_lsn AND @t2_last_lsn &lt; @t1_last_lsn))
        BEGIN
        GOTO AddFullBackup
        END

        IF (@t2_type = 'I'
        AND ((@t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn &lt;= @t1_fork_point_lsn)
        OR @t2_last_recovery_fork_guid = @t1_last_recovery_fork_guid AND @t2_last_lsn &gt; @t1_fork_point_lsn AND @t2_last_lsn &lt; @t1_last_lsn))
        BEGIN
        GOTO AddDiffBackup
        END

        IF (@t2_type = 'L' AND @t2_last_recovery_fork_guid = @t1_first_recovery_fork_guid AND @t2_last_lsn = @t1_first_lsn)
        BEGIN
        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id

        SET	@t1_type = @t2_type
        SET	@t1_backup_set_id = @t2_backup_set_id
        SET	@t1_backup_set_uuid = @t2_backup_set_uuid
        SET	@t1_backup_start_date = @t2_backup_start_date
        SET	@t1_diff_base_guid = @t2_diff_base_guid
        SET	@t1_last_recovery_fork_guid = @t2_last_recovery_fork_guid
        SET	@t1_first_recovery_fork_guid = @t2_first_recovery_fork_guid
        SET	@t1_database_guid = @t2_database_guid
        SET	@t1_first_lsn = @t2_first_lsn
        SET	@t1_last_lsn = @t2_last_lsn
        SET	@t1_checkpoint_lsn = @t2_checkpoint_lsn
        SET	@t1_database_backup_lsn = @t2_database_backup_lsn
        SET	@t1_fork_point_lsn = @t2_fork_point_lsn

        END
        END

        SET @loop_backup_set_id = @t2_backup_set_id
        SET @loop_start_date = @t2_backup_start_date

        END

        AddFullBackup:
        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id
        GOTO done

        AddDiffBackup:
        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_id = @t2_backup_set_id

        INSERT #backupset(
        backup_set_id,
        is_in_restore_plan,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid
        )
        SELECT TOP(1)
        backup_set_id,
        1,
        backup_start_date,
        type,
        database_name,
        database_guid,
        family_guid,
        first_recovery_fork_guid,
        last_recovery_fork_guid,
        first_lsn,
        last_lsn,
        checkpoint_lsn,
        database_backup_lsn,
        fork_point_lsn,
        backup_set_uuid,
        differential_base_guid

        FROM msdb.dbo.backupset
        WHERE msdb.dbo.backupset.backup_set_uuid = @t2_diff_base_guid
        AND msdb.dbo.backupset.family_guid = @last_backupset_family_guid


        done:

        SELECT @count_entries = COUNT( bset.backup_set_id )
        FROM #backupset AS bset
        WHERE bset.type = 'D'

        /**************************************************************************************/
        /* If the backupset info in the msdb is incomplete then the restore_plan may be       */
        /* broken. In those cases just don't return anything.                                 */
        /**************************************************************************************/

        IF @count_entries &lt; 1
        BEGIN
        DELETE
        FROM #backupset
        END


        END

      </prefix>
    </version>



    <postfix>
      drop table #backupset
    </postfix>
  </settings>
  <properties>
    <property name='Name' type='nvarchar' size='128'>bkps.name</property>
    <property name='ID' type='int'>bkps.backup_set_id</property>
    <property name='IsInRestorePlan' type='int'>btmp.is_in_restore_plan</property>
    <property name='BackupSetUuid' type='uniqueidentifier'>bkps.backup_set_uuid</property>
    <property name='MediaSetId' type='int'>bkps.media_set_id</property>
    <property name='FirstFamilyNumber' type='tinyint'>bkps.first_family_number</property>
    <property name='FirstMediaNumber' type='smallint'>bkps.first_media_number</property>
    <property name='LastFamilyNumber' type='tinyint'>bkps.last_family_number</property>
    <property name='LastMediaNumber' type='smallint'>bkps.last_media_number</property>
    <property name='CatalogFamilyNumber' type='tinyint'>bkps.catalog_family_number</property>
    <property name='CatalogMediaNumber' type='smallint'>bkps.catalog_media_number</property>
    <property name='Position' type='int'>bkps.position</property>
    <property name='ExpirationDate' type='datetime'>bkps.expiration_date</property>
    <property name='SoftwareVendorId' type='int'>bkps.software_vendor_id</property>
    <property name='Description' type='nvarchar' size='255'>bkps.description</property>
    <property name='UserName' type='nvarchar' size='128'>bkps.user_name</property>
    <property name='SoftwareMajorVersion' type='tinyint'>bkps.software_major_version</property>
    <property name='SoftwareMinorVersion' type='tinyint'>bkps.software_minor_version</property>
    <property name='SoftwareBuildVersion' type='smallint'>bkps.software_build_version</property>
    <property name='TimeZone' type='smallint'>bkps.time_zone</property>
    <property name='MtfMinorVersion' type='tinyint'>bkps.mtf_minor_version</property>
    <property name='FirstLsn' type='numeric' size='13'>bkps.first_lsn</property>
    <property name='LastLsn' type='numeric' size='13'>bkps.last_lsn</property>
    <property name='CheckpointLsn' type='numeric' size='13'>bkps.checkpoint_lsn</property>
    <property name='DatabaseBackupLsn' type='numeric' size='13'>bkps.database_backup_lsn</property>
    <property name='DatabaseCreationDate' type='datetime'>bkps.database_creation_date</property>
    <property name='BackupStartDate' type='datetime'>bkps.backup_start_date</property>
    <property name='BackupFinishDate' type='datetime'>bkps.backup_finish_date</property>
    <property name='Type' type='char' size='1'>bkps.type</property>
    <property name='SortOrder' type='smallint'>bkps.sort_order</property>
    <property name='CodePage' type='smallint'>bkps.code_page</property>
    <property name='CompatibilityLevel' type='tinyint'>bkps.compatibility_level</property>
    <property name='DatabaseVersion' type='int'>bkps.database_version</property>
    <property name='BackupSize' type='numeric' size='13'>bkps.backup_size</property>
    <property name='DatabaseName' type='nvarchar' size='128'>bkps.database_name</property>
    <property name='ServerName' type='nvarchar' size='128'>bkps.server_name</property>
    <property name='MachineName' type='nvarchar' size='128'>bkps.machine_name</property>
    <version min_major='8' matrix_min_major='10'>
      <property name='Flags' type='int'>bkps.flags</property>
      <property name='UnicodeLocale' type='int'>bkps.unicode_locale</property>
      <property name='UnicodeCompareStyle' type='int'>bkps.unicode_compare_style</property>
      <property name='CollationName' type='nvarchar' size='128'>bkps.collation_name</property>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property name='IsCopyOnly' type='bit'>bkps.is_copy_only</property>
    </version>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="AlertNotification" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='Name' local='AlertName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#alert_notification_tmp ant" />
		<prefix>
			<link_multiple no='1' expression="
create table #alert_notification_tmp(AlertName sysname default '', OperatorId int, OperatorName sysname, UseEmail bit, UsePager bit, UseNetSend bit, HasEmail bit, HasPager bit, HasNetSend bit)
declare @AlertName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @AlertName
while @@fetch_status &gt;= 0 
begin 
		insert #alert_notification_tmp (OperatorId,OperatorName,UseEmail,UsePager,UseNetSend,HasEmail,HasPager,HasNetSend) exec msdb.dbo.sp_help_notification 'OPERATORS', @AlertName, 'ACTUAL', 7
		update #alert_notification_tmp set AlertName=@AlertName where AlertName = ''
		fetch crs into @AlertName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #alert_notification_tmp
		</postfix>
	</settings>
	<properties>
		<property name="OperatorId" type="int">ant.OperatorId</property>
		<property name="OperatorName" type="sysname">ant.OperatorName</property>
		<property name="UseEmail" type="bit">ant.UseEmail</property>
		<property name="UsePager" type="bit">ant.UsePager</property>
		<property name="UseNetSend" type="bit">ant.UseNetSend</property>				
		<property name="HasEmail" type="bit">ant.HasEmail</property>
		<property name="HasPager" type="bit">ant.HasPager</property>
		<property name="HasNetSend" type="bit">ant.HasNetSend</property>				
		<property name="AlertName" type="sysname" hidden='true'>ant.AlertName</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OperatorNotification" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='Name' local='OperatorName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#operator_notification_tmp ont" />
		<prefix>
			<link_multiple no='1' expression="
create table #operator_notification_tmp(OperatorName sysname default '', AlertId int, AlertName sysname, UseEmail bit, UsePager bit, UseNetSend bit, HasEmail bit, HasPager bit, HasNetSend bit)
declare @OperatorName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @OperatorName
while @@fetch_status &gt;= 0 
begin 
		insert #operator_notification_tmp (AlertId,AlertName,UseEmail,UsePager,UseNetSend,HasEmail,HasPager,HasNetSend) exec msdb.dbo.sp_help_notification 'ALERTS', @OperatorName, 'ACTUAL', 7
		update #operator_notification_tmp set OperatorName=@OperatorName where OperatorName = ''
		fetch crs into @OperatorName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #operator_notification_tmp
		</postfix>
	</settings>
	<properties>
		<property name="AlertId" type="int">ont.AlertId</property>
		<property name="AlertName" type="sysname">ont.AlertName</property>
		<property name="UseEmail" type="bit">ont.UseEmail</property>
		<property name="UsePager" type="bit">ont.UsePager</property>
		<property name="UseNetSend" type="bit">ont.UseNetSend</property>				
		<property name="HasEmail" type="bit">ont.HasEmail</property>
		<property name="HasPager" type="bit">ont.HasPager</property>
		<property name="HasNetSend" type="bit">ont.HasNetSend</property>				
		<property name="OperatorName" type="sysname" hidden='true'>ont.OperatorName</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OperatorJobNotification" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='Name' local='OperatorName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#operator_job_notification_tmp ont" />
		<prefix>
			<link_multiple no='1' expression="
create table #operator_job_notification_tmp(OperatorName sysname default '', JobId uniqueidentifier, JobName sysname, NotifyLevelEmail int, NotifyLevelNetSend int, NotifyLevelPage int)
declare @OperatorName sysname

declare crs cursor local fast_forward
	for ( {0} ) 

open crs 
fetch crs into @OperatorName
while @@fetch_status &gt;= 0 
begin 
		insert #operator_job_notification_tmp (JobId,JobName,NotifyLevelEmail,NotifyLevelNetSend,NotifyLevelPage) exec msdb.dbo.sp_help_operator_jobs @operator_name = @OperatorName
		update #operator_job_notification_tmp set OperatorName=@OperatorName where OperatorName = ''
		fetch crs into @OperatorName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #operator_job_notification_tmp
		</postfix>
	</settings>
	<properties>
		<property name="JobId" type="uniqueidentifier">ont.JobId</property>
		<property name="JobName" type="sysname">ont.JobName</property>
		<property name="NotifyLevelEmail" type="int">ont.NotifyLevelEmail</property>
		<property name="NotifyLevelNetSend" type="int">ont.NotifyLevelNetSend</property>
		<property name="NotifyLevelPage" type="int">ont.NotifyLevelPage</property>				
		<property name="OperatorName" type="sysname" hidden='true'>ont.OperatorName</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="SqlAssembly" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='sys.assemblies AS asmbl' />
		<property_link fields='#Owner#' join='sys.database_principals AS princip'>princip.principal_id = asmbl.principal_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">asmbl.name</property>
		<property name="ID" type="int" access='Read'>asmbl.assembly_id</property>
		<property name="CreateDate" type="datetime" access='Read'>asmbl.create_date</property>
		<property name="Culture" type="nvarchar" size='30' access='Read' cast='true'>ISNULL(ASSEMBLYPROPERTY(asmbl.assembly_id, N'CultureInfo'), N'')</property>
		<property name="AssemblySecurityLevel" type="int" report_type="AssemblySecurityLevel">asmbl.permission_set</property>
		<property name="Owner" type="sysname">princip.name</property>
		<property name="IsVisible" type="bit">asmbl.is_visible</property>
		<property name="PublicKey" type="varbinary" size='8000' cast='true'>ISNULL(ASSEMBLYPROPERTY(asmbl.name, N'PublicKey'), CONVERT(varbinary(8000), N''))</property>
		<property name="VersionMajor" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionMajor')</property>
		<property name="VersionMinor" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionMinor')</property>
		<property name="VersionBuild" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionBuild')</property>
		<property name="VersionRevision" type="int" access='Read' cast='true'>ASSEMBLYPROPERTY(asmbl.name, N'VersionRevision')</property>
		<property name="IsSystemObject" type="bit" access="Read" cast='true'>case when asmbl.assembly_id &lt; 65536 then 1 else 0 end</property>
		<!-- extended properties support --> 
		<property name="ExtPropClass" type="int" hidden='true'>5</property>
        <property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="SqlAssemblyFile" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.assembly_files AS afiles' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="ParentID" type="int" hidden="true">afiles.assembly_id</property>			
		<property name="Name" type="nvarchar" size='260'>afiles.name</property>
		<property name="ID" type="int" access='Read'>afiles.file_id</property>
		<property name="FileBytes" type="image" access='Read' expensive='true'>afiles.content</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedType" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='sys.assembly_types AS atypes' />
		<property_link join='sys.assemblies AS asmbl'>(asmbl.assembly_id = atypes.assembly_id) and (atypes.is_user_defined = 1)</property_link>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<include file='inc_type_reference.xml' alias='atypes' />

		<property name="ID" type="int" access='Read'>atypes.user_type_id</property>
		<property name="MaxLength" type="int" access='Read' cast='true'>atypes.max_length</property>
		<property name="Collation" type="sysname" access='Read'>ISNULL(atypes.collation_name,N'')</property>
		<property name="NumericPrecision" type="int" access='Read' cast='true'>atypes.precision</property>
		<property name="NumericScale" type="int" access='Read' cast='true'>atypes.scale</property>
		<property name="IsNullable" type="bit" cast = 'true' access='Read'>atypes.is_nullable</property>

		<property name="AssemblyName" type="sysname">asmbl.name</property>

		<property name="ClassName" type="sysname">ISNULL(atypes.assembly_class,N'')</property>
		<property name="IsBinaryOrdered" type="bit" access='Read'>atypes.is_binary_ordered</property>
		<property name="IsFixedLength" type="bit" access='Read'>atypes.is_fixed_length</property>
		<property name="IsComVisible" type="bit" cast = 'true' access='Read'>0</property>
		<property name="BinaryTypeIdentifier" type="varbinary" access='Read' cast='true'>0x0</property>
		<property name="UserDefinedTypeFormat" type="tinyint" access='Read' report_type="UserDefinedTypeFormat" cast='true'>0</property>

		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>6</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedAggregate" impl_type="SqlObject" min_major='9'>
	<settings>
		<property_link table="sys.objects AS obj">obj.type=N'AF'</property_link>
		<property_link fields='#ClassName#AssemblyName#' table="sys.assembly_modules AS am">am.object_id = obj.object_id</property_link>
		<property_link fields='#AssemblyName#' left_join='sys.assemblies AS asmbl'>asmbl.assembly_id = am.assembly_id</property_link>
		<property_link fields='#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#XmlSchemaNamespace#XmlSchemaNamespaceSchema#XmlDocumentConstraint#UserType#'
				left_join='sys.all_parameters AS ret_param'>ret_param.object_id = obj.object_id and ret_param.is_output = 1</property_link>
	</settings>
	<properties>
        <include file='inc_object.xml' alias='obj' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#'/>
        <include file='inc_type.xml' alias='ret_param' />
    <version min_major='9'>
        <property name="AssemblyName" type="sysname">asmbl.name</property>
        <property name="ClassName" type="sysname">am.assembly_class</property>
    </version>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedAggregateParameter" impl_type="SqlObject" min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.parameters AS par' >par.is_output = 0</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">par.name</property>
		<property name="ID" type="int" access='Read'>par.parameter_id</property>
		<property name="ParentID" type="int" hidden="true">par.object_id</property>
		<version min_major='10'>
			<property name="IsReadOnly" type="bit">par.is_readonly</property>
		</version>
		<include file='inc_type.xml' alias='par'/>
		
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>2</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>par.object_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>par.parameter_id</property>
	</properties>
</EnumObject>

<?xml version="1.0"?>
<EnumObject type="FullTextService" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major = '7' max_major = '9'>
			<prefix fields="#DefaultPath#"> 
				DECLARE @FullTextDefaultPath NVARCHAR(512)
				EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',
													N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer',
													N'FullTextDefaultPath',
													@FullTextDefaultPath OUTPUT
			</prefix>
		</version>
        <version min_major = '10' >
            <prefix fields="#DefaultPath#">
                DECLARE @FullTextDefaultPath NVARCHAR(512)
                EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE',
                                                    N'SOFTWARE\Microsoft\MSSQLServer\Setup',
                                                    N'FullTextDefaultPath',
                                                    @FullTextDefaultPath OUTPUT
            </prefix>
        </version>
	</settings>
	<properties>
		<include file='inc_urn.xml'/>
		<version min_major = '7' max_major = '7'>
			<property name="Name" type="sysname">@@SERVERNAME</property>
		</version>
		<version min_major = '8'>
			<property name="Name" type="sysname" cast='true'>serverproperty(N'Servername')</property>
		</version>


		<version min_major='7' >
			<property name="ResourceUsage" type="int" report_type="ResourceUsage">ISNULL(FULLTEXTSERVICEPROPERTY('ResourceUsage'), 0)</property>
			<property name="DefaultPath" type="nvarchar" size="512" access="Read">ISNULL(@FullTextDefaultPath, N'')</property>
		</version>

		<version min_major='7' >
			<property name="ConnectTimeout" type="int" report_type2='System.TimeSpan'>ISNULL(FULLTEXTSERVICEPROPERTY('ConnectTimeout'),0) * 10000000</property>
		</version>
		
		<version min_major='8' max_major='8'>
			<property name="DataTimeout" type="int" report_type2='System.TimeSpan'>ISNULL(FULLTEXTSERVICEPROPERTY('DataTimeout'),0) * 10000000</property>
		</version>
		
		<version min_major='9' >
			<property name="DataTimeout" type="int" report_type2='System.TimeSpan'>0</property>
			<property name="AllowUnsignedBinaries" type="bit" cast='true'>CASE
							WHEN FULLTEXTSERVICEPROPERTY('VerifySignature') = 0 THEN 1
							WHEN FULLTEXTSERVICEPROPERTY('VerifySignature') = 1 THEN 0
							ELSE 0 END</property> 
			<property name="LoadOSResourcesEnabled" type="bit" cast='true'>FULLTEXTSERVICEPROPERTY('LoadOSResources')</property>
		</version>
		<version min_major='10'>
			<property name="CatalogUpgradeOption" type="int" report_type="FullTextCatalogUpgradeOption">FULLTEXTSERVICEPROPERTY('UpgradeOption')</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FullTextCatalog" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='9' >
			<property_link table='sys.fulltext_catalogs AS cat' />
			<property_link fields='#FileGroup#' left_join='sys.filegroups AS fg'>cat.data_space_id = fg.data_space_id</property_link>
			<property_link fields='#Owner#' left_join='sys.database_principals AS dp'>cat.principal_id=dp.principal_id</property_link>

    </version>
		<version min_major='7' max_major='8'>
			<property_link table='sysfulltextcatalogs AS cat' />
			<property_link fields='#RootPath#HasFullTextIndexedTables#' left_join='#tmpcatinfo AS ci'>ci.ftcatid = cat.ftcatid</property_link>
		</version>
		<version min_major = '8' max_major='8'>
			<prefix fields='#RootPath#HasFullTextIndexedTables#'>
create table #tmpcatinfo ([ftcatid] smallint,[name] sysname,[path] nvarchar(260),[status] int,[number_fulltext_tables] int)
if( 1 = DATABASEPROPERTYEX(db_name(), 'IsFulltextEnabled') )
begin
	insert #tmpcatinfo execute dbo.sp_help_fulltext_catalogs
end
			</prefix>
		</version>
		<version min_major = '7' max_major='7'>
			<prefix fields='#RootPath#HasFullTextIndexedTables#'>
create table #tmpcatinfo ([ftcatid] smallint,[name] sysname,[path] nvarchar(260),[status] int,[number_fulltext_tables] int)
if( 1 = DATABASEPROPERTY(db_name(), 'IsFulltextEnabled') )
begin
	insert #tmpcatinfo execute dbo.sp_help_fulltext_catalogs
end
			</prefix>
		</version>
		<version min_major = '7' max_major='8'>
			<postfix fields='#RootPath#HasFullTextIndexedTables#'> 
drop table #tmpcatinfo
			</postfix>
		</version>
		<post_process fields = '#PopulationCompletionDate#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateDateSeconds1990' 
				triggered_fields='#PopulationCompletionDateInt#'/>
		<post_process fields = '#PopulationCompletionAge#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessCreateTimeSpanHMS' 
				triggered_fields='#PopulationCompletionAgeInt#PopulationCompletionAgeNow#'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname">cat.name</property>

		<version min_major='10' >
			<property name="UniqueKeyCount" type="int" access='Read' expensive='true'>FULLTEXTCATALOGPROPERTY(cat.name,'UniqueKeyCount')</property>		
		</version>
			
		<version min_major='7' max_major='9'>
			<property name="UniqueKeyCount" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'UniqueKeyCount')</property>
		</version>
		
		<version min_major='9' >
			<property name="ID" type="int" access='Read'>cat.fulltext_catalog_id</property>
			<property name="IsAccentSensitive" type="bit" cast='true'>FULLTEXTCATALOGPROPERTY(cat.name,'AccentSensitivity')</property>
			<property name="IsDefault" type="bit" cast='true' read_only_after_creation="true">cat.is_default</property>
			<property name="FileGroup" type="sysname">ISNULL(fg.name, N'')</property>
			<property name="Owner" type="sysname">dp.name</property>
		</version>

		<version min_major='7' max_major='8'>
			<property name="ID" type="int" cast='true' access='Read'>cat.ftcatid</property>
		</version>

		<property name="ErrorLogSize" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'LogSize')</property>
		<property name="FullTextIndexSize" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'IndexSize')</property>
		<property name="ItemCount" type="int" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'ItemCount')</property>		
		<property name="PopulationStatus" type="int" report_type="CatalogPopulationStatus" access='Read'>FULLTEXTCATALOGPROPERTY(cat.name,'PopulateStatus')</property>
		<property name="PopulationCompletionAgeInt" type="int" hidden='true'>FULLTEXTCATALOGPROPERTY(cat.name,'PopulateCompletionAge')</property>
		<property name="PopulationCompletionAgeNow" type="datetime" hidden='true'>GETDATE()</property>
		<property name="PopulationCompletionAge" type="int" report_type2='System.TimeSpan' access='Read'>0</property>
		
		<property name='PopulationCompletionDateInt' type='int' hidden='true'>FULLTEXTCATALOGPROPERTY(cat.name,'PopulateCompletionAge')</property>		
		<property name="PopulationCompletionDate" type="datetime" access='Read'>cast(null as datetime)</property>

    <version min_major='7' max_major='8'>
      <property name="RootPath" type="nvarchar" size='260' read_only_after_creation="true">ISNULL(ci.path,N'')</property>
  		<property name="HasFullTextIndexedTables" type="bit" cast='true' access='Read'>ci.number_fulltext_tables</property>
    </version>

    <version min_major='9'>
      <property name="RootPath" type="nvarchar" size='260' read_only_after_creation="true">ISNULL(cat.path,N'')</property>
      <property name="HasFullTextIndexedTables" type="bit" cast='true' access='Read'>(select (case when exists(select distinct object_id from sys.fulltext_indexes fti where cat.fulltext_catalog_id = fti.fulltext_catalog_id and OBJECTPROPERTY(object_id, 'IsTable')=1) then 1 else 0 end))</property>
    </version>

    <!-- extended properties support -->
    <property name="ExtPropClass" type="int" hidden='true'>23</property>
        <property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>

    <version min_major ="10">
      <include file='inc_policy_health_state.xml'/>
    </version>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FullTextStopList" impl_type="SqlObject" min_major='10'>
	<settings>
			<property_link table='sys.fulltext_stoplists AS sl' />
			<property_link fields='#Owner#' join='sys.database_principals AS dp'>sl.principal_id=dp.principal_id</property_link>
	</settings>
	<properties>
			<include file='inc_urn.xml' />
			<property name="Name" type="sysname">sl.name</property>
			<property name="Owner" type="sysname" read_only_after_creation="true">dp.name</property>
			<property name="ID" type="int" access="Read">sl.stoplist_id</property>
		
		    <property name="ExtPropClass" type="int" hidden='true'>29</property>
			<property name="ExtPropMajorID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='local' field="ID" />
				</link_multiple>
			</property>
			<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="SearchPropertyList" impl_type="SqlObject" min_major='11'>
 
  <settings>
    <property_link table='sys.registered_search_property_lists AS spl' />
    <property_link fields='#Owner#' join='sys.database_principals AS dp'>spl.principal_id=dp.principal_id</property_link>
  </settings>
  
  <properties>
    <include file='inc_urn.xml' />
    
    <property name="Name" type="sysname" read_only_after_creation="true">spl.name</property>
    <property name="Owner" type="sysname">dp.name</property>
    <property name="ID" type="int" access="Read">spl.property_list_id</property>
    <property name="DateCreated" type="datetime" access="Read">spl.create_date</property>
    <property name="DateLastModified" type="datetime" access="Read">spl.modify_date</property>

    <!-- enable permissions -->
    <property name="ExtPropClass" type="int" hidden='true'>31</property>
    <property name="ExtPropMajorID" type="int" hidden='true'>
      <link_multiple no='1' expression="{0}">
        <link_field type='local' field="ID" />
      </link_multiple>
    </property>
    <property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    
    <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>"<?xml version="1.0" ?>
<EnumObject type="SearchProperty" impl_type="SqlObject" min_major='11'>
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table='sys.registered_search_properties AS sp' />
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='3' expression="{0} + '/{2}[@Name=' + quotename({1},'''') COLLATE CATALOG_DEFAULT+ ']'">
        <link_field type='parent' field="Urn" />
        <link_field type='local' field="Name" />
        <link_field field="NType" />
      </link_multiple>
    </property>
    <property name="Name" type="sysname" read_only_after_creation="true">sp.property_name</property>
    <property name="PropertySetGuid" type="uniqueidentifier" read_only_after_creation="true">sp.property_set_guid</property>
    <property name="IntID" type="int" read_only_after_creation="true">sp.property_int_id</property>
    <property name="ID" type="int" access="Read">sp.property_id</property>
    <property name="Description" type="nvarchar" size='512' read_only_after_creation="true">ISNULL(sp.property_description, N'')</property>
    <property name="ParentID" type="int" hidden="true">sp.property_list_id</property>   
  </properties>
</EnumObject>
S<?xml version="1.0" ?>
<EnumObject type="Schema" impl_type="SqlObject" min_major='9' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<property_link table="sys.schemas AS s" />
		<property_link fields = '#Owner#' left_join="sys.database_principals AS dp1">dp1.principal_id = s.principal_id</property_link>
	</settings>
	<properties>
    		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">s.name</property>
		<property name="ID" type="int">s.schema_id</property>		
		<property name="Owner" type="sysname" mode="design">ISNULL(dp1.name, N'')</property>
		<property name="IsSystemObject" type="bit" access='Read' cast='true'>
      case when s.name in ('dbo','guest','INFORMATION_SCHEMA','sys','db_owner','db_accessadmin','db_securityadmin','db_ddladmin','db_backupoperator','db_datareader','db_datawriter','db_denydatareader', 'db_denydatawriter') then 1 else 0 end</property>
		<version min_major='10'  matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>

    <!-- extended properties support -->
    <property name="ExtPropClass" type="int" hidden='true'>3</property>
      <property name="ExtPropMajorID" type="int" hidden='true'>s.schema_id</property>
      <property name="ExtPropMinorID" type="int" hidden='true'>0</property>    
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FullTextIndex" impl_type="SqlObject" min_major='7' >
	<settings>
		<version min_major='7' max_major='8'>
			<parent_link>
				<link parent="HasFullTextCatalog" local="HasFullTextCatalog" />
			</parent_link>
			
			<property_link fields='#CatalogName#' join='sysfulltextcatalogs AS cat'>
				<link_multiple no='1' expression="cat.ftcatid=OBJECTPROPERTY({0}, 'TableFullTextCatalogId')">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property_link>
			<property_link fields='#UniqueIndexName#IsEnabled#PopulationStatus#ChangeTracking#' join='sysindexes AS si'>
				<link_multiple no='1' expression="si.id = {0} and INDEXPROPERTY({0}, si.name, 'IsFulltextKey') &lt;&gt; 0">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property_link>
		</version>
	
		<version min_major='9' >
			<parent_link>
				<link parent="ID" local="ParentID" />
			</parent_link>
		
			<property_link table='sys.fulltext_indexes AS fti' />
			<property_link fields='#CatalogName#' join='sys.fulltext_catalogs AS cat'>cat.fulltext_catalog_id = fti.fulltext_catalog_id</property_link>
			<property_link fields='#UniqueIndexName#' join='sys.indexes AS si'>si.index_id=fti.unique_index_id and si.object_id=fti.object_id</property_link>
		</version>

		<version min_major='10'>
			<property_link fields='#StopListName#' left_join='sys.fulltext_stoplists AS sl'>sl.stoplist_id = fti.stoplist_id</property_link>
			<property_link fields='#FilegroupName#' join='sys.filegroups AS fg'>fg.data_space_id = fti.data_space_id</property_link>
		</version>

    <version min_major='11'>
      <property_link fields='#SearchPropertyListName#' left_join='sys.registered_search_property_lists AS spl'>spl.property_list_id = fti.property_list_id</property_link>
    </version>
    
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Name=' + quotename({1},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='parent' field="Name" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
		
		<property name="Name" type="sysname" expensive="true">
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Name" />
			</link_multiple>
		</property>
		
		<property name="CatalogName" type="sysname" read_only_after_creation="true">cat.name</property>
		
		<version min_major='7' max_major='8'>
			<property name="IsEnabled" type="bit" cast='true' access='Read'>
				<link_multiple no='1' expression="OBJECTPROPERTY({0},'TableHasActiveFulltextIndex')">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			<property name="PopulationStatus" type="int" report_type="IndexPopulationStatus" access='Read'>
				<link_multiple no='1' expression="ISNULL(OBJECTPROPERTY({0},'TableFullTextPopulateStatus'),0)">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			<property name="ChangeTracking" type="int" report_type="ChangeTracking" >
				<link_multiple no='1' expression="ISNULL(OBJECTPROPERTY({0},'TableFullTextBackgroundUpdateIndexOn'),0) + ISNULL(OBJECTPROPERTY({0},'TableFullTextChangeTrackingOn'),0)">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			
			<property name="ParentID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			
			<property name="HasFullTextCatalog" type="bit" hidden='true'>1</property>	
		</version>
		
		<version min_major='9' >
			<property name="IsEnabled" type="bit" cast='true' access='Read'>fti.is_enabled</property>
			<property name="PopulationStatus" type="int" report_type="IndexPopulationStatus" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextPopulateStatus')</property>
			<property name="ChangeTracking" type="int" report_type="ChangeTracking" >(case change_tracking_state when 'M' then 1 when 'A' then 2 else 0 end)</property>
			<property name="ItemCount" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextItemCount')</property>
			<property name="DocumentsProcessed" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextDocsProcessed')</property>
			<property name="PendingChanges" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextPendingChanges')</property>
			<property name="NumberOfFailures" type="int" access='Read'>OBJECTPROPERTY(fti.object_id,'TableFullTextFailCount')</property>
			
			<property name="ParentID" type="int" hidden='true'>fti.object_id</property>	
		</version>
		<version min_major='10'>
			<property name="StopListOption" type="int" report_type="StopListOption">(case when fti.stoplist_id is NULL then 0 when fti.stoplist_id = 0 then 1 else 2 end)</property>
			<property name="StopListName" type="nvarchar" size='128'>ISNULL(sl.name,N'')</property>
			<property name="FilegroupName" type="sysname" read_only_after_creation="true">fg.name</property>
		</version>



    <property name="UniqueIndexName" type="sysname" read_only_after_creation="true">si.name</property>
    <version min_major='10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='2' expression="{0} + '/{1}'">
          <link_field type='parent' field="UrnWithId" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='2' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server/Database[@Id=' + CONVERT(nvarchar(15), db_id()) + ']/Table[@Id={0}]/{1}%' ESCAPE '\') then 1 else 0 end">
          <link_field field="ParentId" />
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
    <version min_major='11'>
      <property name="SearchPropertyListName" type="nvarchar" size='128'>ISNULL(spl.name,N'')</property>
    </version>
  </properties>
</EnumObject>
F<?xml version="1.0" ?>
<EnumObject type="FullTextIndexColumn" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ParentID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns cols' >COLUMNPROPERTY(cols.id, cols.name, 'IsFulltextIndexed') &lt;&gt; 0</property_link>
		</version>
		<version min_major='8' max_major='8'>
			<property_link fields='#Language#' left_join='master.dbo.syslanguages AS sl'>sl.lcid=cols.language</property_link>
		</version>
		
		<version min_major='9' >
			<property_link table='sys.fulltext_index_columns AS icol' />
			<property_link fields = '#Name#' join='sys.columns AS col'>col.object_id = icol.object_id and col.column_id = icol.column_id</property_link>
			<property_link fields='#Language#' join='sys.fulltext_languages AS sl'>sl.lcid=icol.language_id</property_link>
			<property_link fields='#TypeColumnName#' left_join='sys.columns AS col2'>col2.column_id = icol.type_column_id and col2.object_id = icol.object_id</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname">cols.name</property>
			<property name="ParentID" type="int" hidden='true'>cols.id</property>	
		</version>
		<version min_major='7' max_major='7'>
			<property name="TypeColumnName" type="sysname" read_only_after_creation="true">ISNULL((select scol2.name from
					sysdepends as sdep,
					syscolumns as scol2
			where
				cols.colid = sdep.number
				and cols.id = sdep.id
				and cols.id = scol2.id
				and sdep.depnumber = scol2.colid),N'')
				</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="TypeColumnName" type="sysname" read_only_after_creation="true">ISNULL((select scol2.name from
					sysdepends as sdep,
					syscolumns as scol2
			where
				cols.colid = sdep.number
				and cols.id = sdep.id
				and sdep.deptype = 1
				and cols.id = scol2.id
				and sdep.depnumber = scol2.colid),N'')
				</property>
		</version>
		<version min_major='8' max_major='8'>
			<property name="Language" type="sysname" read_only_after_creation="true">sl.alias</property>
		</version>
		<version min_major='9' >
			<property name="Name" type="sysname">col.name</property>
			<property name="ParentID" type="int" hidden='true'>icol.object_id</property>
			<property name="Language" type="sysname" read_only_after_creation="true">sl.name</property>
			<property name="TypeColumnName" type="sysname" read_only_after_creation="true">ISNULL(col2.name,N'')</property>
		</version>
    <version min_major='11' >
      <property name="StatisticalSemantics" type="int" read_only_after_creation="true">icol.statistical_semantics</property>
    </version>    
	</properties>
</EnumObject>
-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
--    contains source objects
-- 2. @find_referencing_objects defines ordering
--    1 order for drop
--    0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1
set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uda int
declare @uddt int
declare @xml int
declare @udt int
declare @assm int
declare @part_sch int
declare @part_func int
declare @synonym int
declare @sequence int
declare @udtt int
declare @ddltr int
declare @unknown int
declare @pg int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
set @uda = 11
set @synonym = 12
set @sequence = 13
--above 100 -> not in sys.objects
set @uddt = 101
set @xml = 102
set @udt = 103
set @assm = 1000
set @part_sch = 201
set @part_func = 202
set @udtt = 104
set @ddltr = 203
set @unknown = 1001
set @pg = 204

-- variables for referenced type obtained from sys.sql_expression_dependencies
declare @obj int
set @obj = 20
declare @type int
set @type = 21
-- variables for xml and part_func are already there

create table #t1
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL,
	degree int NULL
)

-- we need to create another temporary table to store the dependencies from sys.sql_expression_dependencies till the updated values are inserted finally into #t1
create table #t2
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL
)

-- This index will ensure that we have unique parent-child relationship
create unique clustered index i1 on #t1(object_name, object_schema, object_db, object_svr, object_type, relative_name, relative_schema, relative_type) with IGNORE_DUP_KEY

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) 
   select l.objid, l.objname, l.objschema, l.objdb, l.objtype, l.objid, l.objname, l.objschema, l.objdb, l.objtype, 1, @iter_no from #tempdep l

-- change the object_id of table types to their user_defined_id
update #t1 set object_id = tt.user_type_id, relative_id = tt.user_type_id
from sys.table_types as tt where tt.type_table_object_id = #t1.object_id and object_type = @udtt

while @rows > 0
begin
	set @rows = 0
	if (1 = @find_referencing_objects)
	begin
		-- HARD DEPENDENCIES
		-- these dependencies have to be in the same database only

		-- tables that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- udtts that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables/views that reference triggers
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @tr, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id and o.type = 'TR'
			where @iter_no = t.rank and (t.object_type = @u OR  t.object_type = @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference defaults (only default objects)
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.default_object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- types that reference defaults (only default objects)
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.default_object_id = t.object_id
			join sys.objects as o on o.object_id = t.object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference rules
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.rule_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = clmns.object_id
			where @iter_no = t.rank and t.relative_type = @rule and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- types that reference rules
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.rule_object_id = t.object_id
			where @iter_no = t.rank and t.object_type = @rule and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.xml_collection_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table types that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.xml_collection_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- procedures that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type in ( 'P', 'RF', 'PC') then @sp else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as c on c.xml_collection_id = t.object_id
			join sys.objects as o on o.object_id = c.object_id
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		-- udf, sp, uda, trigger all that reference assembly
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_modules as am on ((am.assembly_id = t.object_id) and (am.assembly_id >= 65536))
			join sys.objects as o on am.object_id = o.object_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		-- udt that reference assembly
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select at.user_type_id, at.name, SCHEMA_NAME(at.schema_id), t.object_db, @udt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_types as at on ((at.assembly_id = t.object_id) and (at.is_user_defined = 1))
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly that reference assembly
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_references as ar on ((ar.referenced_assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = ar.assembly_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table references table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.referenced_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.parent_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uda references types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @uda, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.user_type_id = t.object_id
			join sys.objects as o on o.object_id = p.object_id and o.type = 'AF'
			where @iter_no = t.rank and t.object_type in (@udt, @uddt, @udtt) and (t.object_svr IS null and t.object_db = db_name())

		-- table,view references partition scheme
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'V' then @v else @u end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.indexes as idx on idx.data_space_id = t.object_id
			join sys.objects as o on o.object_id = idx.object_id
			where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- partition scheme references partition function
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.partition_schemes as ps on ps.function_id = t.object_id
			where @iter_no = t.rank and t.object_type = @part_func and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- plan guide references sp, udf, triggers
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select pg.plan_guide_id, pg.name, t.object_db, @pg, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.plan_guides as pg on pg.scope_object_id = t.object_id
			where @iter_no = t.rank and t.object_type in (@sp, @udf, @tr) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- synonym refrences object
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @synonym, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on object_id(s.base_object_name) = t.object_id
			where @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount						
		
		--  sequences that reference uddts 
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @sequence, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.sequences as s on s.user_type_id = t.object_id
			where @iter_no = t.rank and (t.object_type = @uddt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount	
		

		-- SOFT DEPENDENCIES
		DECLARE name_cursor CURSOR
		FOR
			SELECT DISTINCT t.object_id, t.object_name, t.object_schema, t.object_type
			FROM #t1 as t
			WHERE @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name()) and t.object_type NOT IN (@part_sch, @assm, @tr, @ddltr)
		OPEN name_cursor
		DECLARE @objid int
		DECLARE @objname sysname
		DECLARE @objschema sysname
		DECLARE @objtype smallint
		DECLARE @fullname sysname
		DECLARE @objecttype sysname
		FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			SET @fullname = case when @objschema IS NULL then quotename(@objname)
							else quotename(@objschema) + '.' + quotename(@objname) end
			SET @objecttype = case when @objtype in (@uddt, @udt, @udtt) then 'TYPE'
								when @objtype = @xml then 'XML_SCHEMA_COLLECTION'
								when @objtype = @part_func then 'PARTITION_FUNCTION'
								else 'OBJECT' end
			insert #t2 (object_type, object_id, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
				select
					case dep.referencing_class when 1 then (select
						case when obj.type = 'U' then @u
						when obj.type = 'V' then @v
						when obj.type = 'TR' then @tr
						when obj.type in ('P', 'RF', 'PC') then @sp
						when obj.type in ('AF') then @uda
						when obj.type in ('TF', 'FN', 'IF', 'FS', 'FT') then @udf
						when obj.type = 'D' then @def
						when obj.type = 'SN' then @synonym
						when obj.type = 'SO' then @sequence
						else @obj
						end
					from sys.objects as obj where obj.object_id = dep.referencing_id)
				when 6 then (select 
						case when (tp.is_assembly_type = 1) then @udt
						when (tp.is_table_type = 1) then @udtt
						else @uddt
						end
					from sys.types as tp where tp.user_type_id = dep.referencing_id)
				when 7 then @u
				when 9 then @u	
				when 10 then @xml 
				when 12 then @ddltr 
				when 21 then @part_func 
				end,
			dep.referencing_id,
			dep.referencing_entity_name,
			dep.referencing_schema_name,
			db_name(), null,
			@objid, @objname,
			@objschema, db_name(), @objtype, 
			0, @iter_no + 1
			from sys.dm_sql_referencing_entities(@fullname, @objecttype) dep

			FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype
		END
		CLOSE name_cursor
		DEALLOCATE name_cursor

		update #t2 set object_id = obj.object_id, object_name = obj.name, object_schema = schema_name(obj.schema_id), object_type = case when obj.type = 'U' then @u when obj.type = 'V' then @v end		
		from sys.objects as o
		join sys.objects as obj on obj.object_id = o.parent_object_id
		where o.object_id = #t2.object_id and (#t2.object_type = @obj OR o.parent_object_id != 0) and #t2.rank = @iter_no + 1

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank and #t2.object_id != #t2.relative_id
		set @rows = @rows + @@rowcount

	end
	else
	begin
		-- SOFT DEPENDENCIES
		-- insert all values from sys.sql_expression_dependencies for the corresponding object
		-- first insert them in #t2, update them and then finally insert them in #t1
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u	
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as dep on dep.referencing_id = t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- insert all the dependency values in case of a table that references a check
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u	
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as d on d.referenced_id = t.object_id
			join sys.objects as o on o.object_id = d.referencing_id and o.type = 'C'
			join sys.sql_expression_dependencies as dep on dep.referencing_id = d.referencing_id and dep.referenced_id != t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() and t.object_type = @u

		-- insert all the dependency values in case of an object that belongs to another object whose dependencies are being found
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u	
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id
			join sys.sql_expression_dependencies as dep on dep.referencing_id = o.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- queries for objects with object_id null and object_svr null - resolve them
		-- we will build the query to resolve the objects 
		-- increase @rows as we bind the objects
		
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t2 as t
			where t.rank = (@iter_no+1) and t.object_id IS NULL and t.object_svr IS NULL
		OPEN db_cursor
	    DECLARE @dbname sysname		
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			DECLARE @query nvarchar(MAX)
			-- when schema is not null 
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' when obj.type = ''SO'' then ' + CAST(@sequence AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id 
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @part_func - schema is always null
			-- @schema is null
			-- consider schema as 'dbo'
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' when obj.type = ''SO'' then ' + CAST(@sequence AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				where obj.name = #t2.object_name collate database_default
				and SCHEMA_NAME(obj.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				where t.name = #t2.object_name collate database_default
				and SCHEMA_NAME(t.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				where x.name = #t2.object_name collate database_default
				and SCHEMA_NAME(x.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- consider schema as t.relative_schema
			-- the parent object will have the default schema of user in case of dynamic schema binding
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' when obj.type = ''SO'' then ' + CAST(@sequence AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @part_func always have schema as null
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = p.function_id
				from ' + quotename(@dbname) + '.sys.partition_functions as p
				where p.name = #t2.object_name collate database_default
				and #t2.object_type = ' + CAST(@part_func AS nvarchar(8)) + 
				' and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- update the shared object if any (schema is not null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_type = @sp
			from master.sys.objects as o 
			join master.sys.schemas as sch on sch.schema_id = o.schema_id
			where o.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and 
			o.type in ('P', 'RF', 'PC') and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			-- update the shared object if any (schema is null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_schema = SCHEMA_NAME(o.schema_id), object_type = @sp
			from master.sys.objects as o 
			where o.name = #t2.object_name collate database_default and SCHEMA_NAME(o.schema_id) = 'dbo' collate database_default  and 
			o.type in ('P', 'RF', 'PC') and 
			#t2.object_schema IS null and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor

	update #t2 set object_type = @unknown where object_id IS NULL

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank
		SET @rows = @rows + @@rowcount


		-- HARD DEPENDENCIES
		-- uddt or udt referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as col on col.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uddt or udt referenced by table type
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as col on col.object_id = tt.type_table_object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table or view referenced by trigger
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, case o.type when 'V' then @v else @u end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.triggers as tr on tr.object_id = t.object_id
			join sys.objects as o on o.object_id = tr.parent_id
			where @iter_no = t.rank and t.object_type = @tr and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- defaults (only default objects) referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.default_object_id and 0 = isnull(o.parent_object_id, 0)
			where  @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- defaults (only default objects) referenced by types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.user_type_id = t.object_id
			join sys.objects as o on o.object_id = tp.default_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @uddt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
      
		-- rules referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.rule_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.relative_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- rules referenced by types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.user_type_id = t.object_id
			join sys.objects as o on o.object_id = tp.rule_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.relative_type = @uddt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- XmlSchemaCollections referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.object_id = t.object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- XmlSchemaCollections referenced by tabletypes
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as c on c.object_id = tt.type_table_object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- XmlSchemaCollections referenced by procedures
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as c on c.object_id = t.object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type in (@sp, @udf) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.parent_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.referenced_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uddts referenced by uda
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case when tp.is_table_type = 1 then @udtt when tp.is_assembly_type = 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = p.user_type_id
			where @iter_no = t.rank and t.object_type = @uda and t.object_type = @uda and tp.user_type_id>256
		set @rows = @rows + @@rowcount

		-- assembly referenced by assembly
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_references as ar on ((ar.assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = ar.referenced_assembly_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly referenced by udt
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_types as at on ((at.user_type_id = t.object_id) and (at.is_user_defined = 1))
			join sys.assemblies as asm on asm.assembly_id = at.assembly_id
			where @iter_no = t.rank and t.object_type = @udt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly referenced by udf, sp, uda, trigger
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_modules as am on ((am.object_id = t.object_id) and (am.assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = am.assembly_id
			where @iter_no = t.rank and t.object_type in ( @udf, @sp, @uda, @tr) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- Partition Schemes referenced by tables/views
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.indexes as idx on idx.object_id = t.object_id
			join sys.partition_schemes as ps on ps.data_space_id = idx.data_space_id
			where @iter_no = t.rank and t.object_type in (@u, @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- Partition Function referenced by Partition Schemes
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select pf.function_id, pf.name, t.object_db, @part_func, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.partition_schemes as ps on ps.data_space_id = t.object_id
			join sys.partition_functions as pf on pf.function_id = ps.function_id
			where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
        -- sp, udf, triggers referenced by plan guide
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'P' then @sp when 'TR' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.plan_guides as pg on pg.plan_guide_id = t.object_id
			join sys.objects as o on o.object_id = pg.scope_object_id
			where @iter_no = t.rank and t.object_type = @pg and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- objects referenced by synonym
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type = 'U' then @u when o.type = 'V' then @v when o.type in ('P', 'RF', 'PC') then @sp when o.type = 'AF' then @uda else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on s.object_id = t.object_id
			join sys.objects as o on o.object_id = OBJECT_ID(s.base_object_name) and o.type in ('U', 'V', 'P', 'RF', 'PC', 'AF', 'TF', 'FN', 'IF', 'FS', 'FT')
			where @iter_no = t.rank and t.object_type = @synonym and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- uddt referenced by sequence. Used to find UDDT that is in sequence dependencies.
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.sequences as s on s.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = s.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @sequence and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount						
		
	end
	set @iter_no = @iter_no + 1
end

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
	select count(*) from #t1 t
	where t.relative_id = #t1.object_id and t.object_id != t.relative_id)

-- perform the topological sorting
set @iter_no = 1
while 1 = 1
begin
	update #t1 set rank=@iter_no where degree = 0
	-- end the loop if no more rows left to process
	if (@@rowcount = 0) break
	update #t1 set degree = NULL where rank = @iter_no

	update #t1 set degree = (
		select count(*) from #t1 t
		where t.relative_id = #t1.object_id and t.object_id != t.relative_id
		and t.object_id in (select tt.object_id from #t1 tt where tt.rank = 0))
		where degree is not null

	set @iter_no = @iter_no + 1
end

--correcting naming mistakes of objects present in current database 
--This part need to be removed once SMO's URN comparision gets fixed
		DECLARE @collation sysname;
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t1 as t
			where t.object_id IS NOT NULL and t.object_svr IS NULL
		OPEN db_cursor
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			
			SET @collation = (select convert(sysname,DatabasePropertyEx(@dbname,'Collation')));
			SET @query = 'update #t1 set #t1.object_name = o.name,#t1.object_schema = sch.name from #t1  inner join '+ quotename(@dbname)+ '.sys.objects as o on #t1.object_id = o.object_id inner join '+ quotename(@dbname)+ '.sys.schemas as sch on sch.schema_id = o.schema_id  where o.name = #t1.object_name collate '+  @collation +' and sch.name = #t1.object_schema collate '+ @collation
			EXEC (@query)	


			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor
	

--final select
select ISNULL(t.object_id, 0) as [object_id], t.object_name, ISNULL(t.object_schema, '') as [object_schema], ISNULL(t.object_db, '') as [object_db], ISNULL(t.object_svr, '') as [object_svr], t.object_type, ISNULL(t.relative_id, 0) as [relative_id], t.relative_name, ISNULL(t.relative_schema, '') as [relative_schema], relative_db, ISNULL(t.relative_svr, '') as [relative_svr], t.relative_type, t.schema_bound, ISNULL(CASE WHEN p.type= 'U' then @u when p.type = 'V' then @v end, 0) as [ptype], ISNULL(p.name, '') as [pname], ISNULL(SCHEMA_NAME(p.schema_id), '') as [pschema]
 from #t1 as t
 left join sys.objects as o on (t.object_type = @tr and o.object_id = t.object_id) or (t.relative_type = @tr and o.object_id = t.relative_id)
 left join sys.objects as p on p.object_id = o.parent_object_id
 order by rank desc
 
drop table #t1
drop table #t2
drop table #tempdep

IF @must_set_nocount_off > 0 
   set nocount off
'-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
--    contains source objects
-- 2. @find_referencing_objects defines ordering
--    1 order for drop
--    0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1
set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uda int
declare @uddt int
declare @xml int
declare @udt int
declare @assm int
declare @part_sch int
declare @part_func int
declare @synonym int
declare @udtt int
declare @ddltr int
declare @unknown int
declare @pg int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
set @uda = 11
set @synonym = 12
--above 100 -> not in sys.objects
set @uddt = 101
set @xml = 102
set @udt = 103
set @assm = 1000
set @part_sch = 201
set @part_func = 202
set @udtt = 104
set @ddltr = 203
set @unknown = 1001
set @pg = 204

-- variables for referenced type obtained from sys.sql_expression_dependencies
declare @obj int
set @obj = 20
declare @type int
set @type = 21
-- variables for xml and part_func are already there

create table #t1
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL,
	degree int NULL
)

-- we need to create another temporary table to store the dependencies from sys.sql_expression_dependencies till the updated values are inserted finally into #t1
create table #t2
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL
)

-- This index will ensure that we have unique parent-child relationship
create unique clustered index i1 on #t1(object_name, object_schema, object_db, object_svr, object_type, relative_name, relative_schema, relative_type) with IGNORE_DUP_KEY

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) 
   select l.objid, l.objname, l.objschema, l.objdb, l.objtype, l.objid, l.objname, l.objschema, l.objdb, l.objtype, 1, @iter_no from #tempdep l

-- change the object_id of table types to their user_defined_id
update #t1 set object_id = tt.user_type_id, relative_id = tt.user_type_id
from sys.table_types as tt where tt.type_table_object_id = #t1.object_id and object_type = @udtt

while @rows > 0
begin
	set @rows = 0
	if (1 = @find_referencing_objects)
	begin
		-- HARD DEPENDENCIES
		-- these dependencies have to be in the same database only

		-- tables that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- udtts that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables/views that reference triggers
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @tr, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id and o.type = 'TR'
			where @iter_no = t.rank and (t.object_type = @u OR  t.object_type = @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference defaults (only default objects)
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.default_object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- types that reference defaults (only default objects)
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.default_object_id = t.object_id
			join sys.objects as o on o.object_id = t.object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @def and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference rules
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.rule_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = clmns.object_id
			where @iter_no = t.rank and t.relative_type = @rule and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- types that reference rules
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, @uddt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.rule_object_id = t.object_id
			where @iter_no = t.rank and t.object_type = @rule and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.xml_collection_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table types that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.xml_collection_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- procedures that reference XmlSchemaCollections
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type in ( 'P', 'RF', 'PC') then @sp else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as c on c.xml_collection_id = t.object_id
			join sys.objects as o on o.object_id = c.object_id
			where @iter_no = t.rank and t.object_type = @xml and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		-- udf, sp, uda, trigger all that reference assembly
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_modules as am on ((am.assembly_id = t.object_id) and (am.assembly_id >= 65536))
			join sys.objects as o on am.object_id = o.object_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		-- udt that reference assembly
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select at.user_type_id, at.name, SCHEMA_NAME(at.schema_id), t.object_db, @udt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_types as at on ((at.assembly_id = t.object_id) and (at.is_user_defined = 1))
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly that reference assembly
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_references as ar on ((ar.referenced_assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = ar.assembly_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table references table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.referenced_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.parent_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uda references types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @uda, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.user_type_id = t.object_id
			join sys.objects as o on o.object_id = p.object_id and o.type = 'AF'
			where @iter_no = t.rank and t.object_type in (@udt, @uddt, @udtt) and (t.object_svr IS null and t.object_db = db_name())

		-- table,view references partition scheme
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'V' then @v else @u end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.indexes as idx on idx.data_space_id = t.object_id
			join sys.objects as o on o.object_id = idx.object_id
			where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- partition scheme references partition function
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.partition_schemes as ps on ps.function_id = t.object_id
			where @iter_no = t.rank and t.object_type = @part_func and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- plan guide references sp, udf, triggers
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select pg.plan_guide_id, pg.name, t.object_db, @pg, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.plan_guides as pg on pg.scope_object_id = t.object_id
			where @iter_no = t.rank and t.object_type in (@sp, @udf, @tr) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- synonym refrences object
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @synonym, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on object_id(s.base_object_name) = t.object_id
			where @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- SOFT DEPENDENCIES
		DECLARE name_cursor CURSOR
		FOR
			SELECT DISTINCT t.object_id, t.object_name, t.object_schema, t.object_type
			FROM #t1 as t
			WHERE @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name()) and t.object_type NOT IN (@part_sch, @assm, @tr, @ddltr)
		OPEN name_cursor
		DECLARE @objid int
		DECLARE @objname sysname
		DECLARE @objschema sysname
		DECLARE @objtype smallint
		DECLARE @fullname sysname
		DECLARE @objecttype sysname
		FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			SET @fullname = case when @objschema IS NULL then quotename(@objname)
							else quotename(@objschema) + '.' + quotename(@objname) end
			SET @objecttype = case when @objtype in (@uddt, @udt, @udtt) then 'TYPE'
								when @objtype = @xml then 'XML_SCHEMA_COLLECTION'
								when @objtype = @part_func then 'PARTITION_FUNCTION'
								else 'OBJECT' end
			insert #t2 (object_type, object_id, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
				select
					case dep.referencing_class when 1 then (select
						case when obj.type = 'U' then @u
						when obj.type = 'V' then @v
						when obj.type = 'TR' then @tr
						when obj.type in ('P', 'RF', 'PC') then @sp
						when obj.type in ('AF') then @uda
						when obj.type in ('TF', 'FN', 'IF', 'FS', 'FT') then @udf
						when obj.type = 'D' then @def
						when obj.type = 'SN' then @synonym
						else @obj
						end
					from sys.objects as obj where obj.object_id = dep.referencing_id)
				when 6 then (select 
						case when (tp.is_assembly_type = 1) then @udt
						when (tp.is_table_type = 1) then @udtt
						else @uddt
						end
					from sys.types as tp where tp.user_type_id = dep.referencing_id)
				when 7 then @u
				when 9 then @u	
				when 10 then @xml 
				when 12 then @ddltr 
				when 21 then @part_func 
				end,
			dep.referencing_id,
			dep.referencing_entity_name,
			dep.referencing_schema_name,
			db_name(), null,
			@objid, @objname,
			@objschema, db_name(), @objtype, 
			0, @iter_no + 1
			from sys.dm_sql_referencing_entities(@fullname, @objecttype) dep

			FETCH NEXT FROM name_cursor INTO @objid, @objname, @objschema, @objtype
		END
		CLOSE name_cursor
		DEALLOCATE name_cursor

		update #t2 set object_id = obj.object_id, object_name = obj.name, object_schema = schema_name(obj.schema_id), object_type = case when obj.type = 'U' then @u when obj.type = 'V' then @v end
		from sys.objects as o
		join sys.objects as obj on obj.object_id = o.parent_object_id
		where o.object_id = #t2.object_id and (#t2.object_type = @obj OR o.parent_object_id != 0) and #t2.rank = @iter_no + 1

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank and #t2.object_id != #t2.relative_id
		set @rows = @rows + @@rowcount

	end
	else
	begin
		-- SOFT DEPENDENCIES
		-- insert all values from sys.sql_expression_dependencies for the corresponding object
		-- first insert them in #t2, update them and then finally insert them in #t1
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u				
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as dep on dep.referencing_id = t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- insert all the dependency values in case of a table that references a check
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u				
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as d on d.referenced_id = t.object_id
			join sys.objects as o on o.object_id = d.referencing_id and o.type = 'C'
			join sys.sql_expression_dependencies as dep on dep.referencing_id = d.referencing_id and dep.referenced_id != t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() and t.object_type = @u

		-- insert all the dependency values in case of an object that belongs to another object whose dependencies are being found
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 7 then @u
				when 9 then @u				
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id
			join sys.sql_expression_dependencies as dep on dep.referencing_id = o.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- queries for objects with object_id null and object_svr null - resolve them
		-- we will build the query to resolve the objects 
		-- increase @rows as we bind the objects
		
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t2 as t
			where t.rank = (@iter_no+1) and t.object_id IS NULL and t.object_svr IS NULL
		OPEN db_cursor
		DECLARE @dbname sysname
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			DECLARE @query nvarchar(MAX)
			-- when schema is not null 
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id 
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @part_func - schema is always null
			-- @schema is null
			-- consider schema as 'dbo'
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				where obj.name = #t2.object_name collate database_default
				and SCHEMA_NAME(obj.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				where t.name = #t2.object_name collate database_default
				and SCHEMA_NAME(t.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				where x.name = #t2.object_name collate database_default
				and SCHEMA_NAME(x.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- consider schema as t.relative_schema
			-- the parent object will have the default schema of user in case of dynamic schema binding
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @part_func always have schema as null
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = p.function_id
				from ' + quotename(@dbname) + '.sys.partition_functions as p
				where p.name = #t2.object_name collate database_default
				and #t2.object_type = ' + CAST(@part_func AS nvarchar(8)) + 
				' and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- update the shared object if any (schema is not null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_type = @sp
			from master.sys.objects as o 
			join master.sys.schemas as sch on sch.schema_id = o.schema_id
			where o.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and 
			o.type in ('P', 'RF', 'PC') and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			-- update the shared object if any (schema is null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_schema = SCHEMA_NAME(o.schema_id), object_type = @sp
			from master.sys.objects as o 
			where o.name = #t2.object_name collate database_default and SCHEMA_NAME(o.schema_id) = 'dbo' collate database_default  and 
			o.type in ('P', 'RF', 'PC') and 
			#t2.object_schema IS null and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor

	update #t2 set object_type = @unknown where object_id IS NULL

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank
		SET @rows = @rows + @@rowcount


		-- HARD DEPENDENCIES
		-- uddt or udt referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as col on col.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uddt or udt referenced by table type
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as col on col.object_id = tt.type_table_object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table or view referenced by trigger
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, case o.type when 'V' then @v else @u end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.triggers as tr on tr.object_id = t.object_id
			join sys.objects as o on o.object_id = tr.parent_id
			where @iter_no = t.rank and t.object_type = @tr and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- defaults (only default objects) referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.default_object_id and 0 = isnull(o.parent_object_id, 0)
			where  @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- defaults (only default objects) referenced by types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @def, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.user_type_id = t.object_id
			join sys.objects as o on o.object_id = tp.default_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.object_type = @uddt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
      
		-- rules referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as clmns on clmns.object_id = t.object_id
			join sys.objects as o on o.object_id = clmns.rule_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.relative_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- rules referenced by types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @rule, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.types as tp on tp.user_type_id = t.object_id
			join sys.objects as o on o.object_id = tp.rule_object_id and 0 = isnull(o.parent_object_id, 0)
			where @iter_no = t.rank and t.relative_type = @uddt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- XmlSchemaCollections referenced by tables
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.object_id = t.object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- XmlSchemaCollections referenced by tabletypes
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as c on c.object_id = tt.type_table_object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- XmlSchemaCollections referenced by procedures
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select x.xml_collection_id, x.name, SCHEMA_NAME(x.schema_id), t.object_db, @xml, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as c on c.object_id = t.object_id
			join sys.xml_schema_collections as x on x.xml_collection_id = c.xml_collection_id and x.schema_id != 4
			where @iter_no = t.rank and t.object_type in (@sp, @udf) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.parent_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.referenced_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uddts referenced by uda
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case when tp.is_table_type = 1 then @udtt when tp.is_assembly_type = 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = p.user_type_id
			where @iter_no = t.rank and t.object_type = @uda and t.object_type = @uda and tp.user_type_id>256
		set @rows = @rows + @@rowcount

		-- assembly referenced by assembly
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_references as ar on ((ar.assembly_id = t.object_id) and (ar.referenced_assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = ar.referenced_assembly_id
			where @iter_no = t.rank and t.object_type = @assm and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly referenced by udt
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_types as at on ((at.user_type_id = t.object_id) and (at.is_user_defined = 1))
			join sys.assemblies as asm on asm.assembly_id = at.assembly_id
			where @iter_no = t.rank and t.object_type = @udt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- assembly referenced by udf, sp, uda, trigger
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select asm.assembly_id, asm.name, t.object_db, @assm, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.assembly_modules as am on ((am.object_id = t.object_id) and (am.assembly_id >= 65536))
			join sys.assemblies as asm on asm.assembly_id = am.assembly_id
			where @iter_no = t.rank and t.object_type in ( @udf, @sp, @uda, @tr) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- Partition Schemes referenced by tables/views
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select ps.data_space_id, ps.name, t.object_db, @part_sch, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.indexes as idx on idx.object_id = t.object_id
			join sys.partition_schemes as ps on ps.data_space_id = idx.data_space_id
			where @iter_no = t.rank and t.object_type in (@u, @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- Partition Function referenced by Partition Schemes
		insert #t1 (object_id, object_name, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select pf.function_id, pf.name, t.object_db, @part_func, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.partition_schemes as ps on ps.data_space_id = t.object_id
			join sys.partition_functions as pf on pf.function_id = ps.function_id
			where @iter_no = t.rank and t.object_type = @part_sch and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
        -- sp, udf, triggers referenced by plan guide
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case o.type when 'P' then @sp when 'TR' then @tr else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.plan_guides as pg on pg.plan_guide_id = t.object_id
			join sys.objects as o on o.object_id = pg.scope_object_id
			where @iter_no = t.rank and t.object_type = @pg and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- objects referenced by synonym
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type = 'U' then @u when o.type = 'V' then @v when o.type in ('P', 'RF', 'PC') then @sp when o.type = 'AF' then @uda else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on s.object_id = t.object_id
			join sys.objects as o on o.object_id = OBJECT_ID(s.base_object_name) and o.type in ('U', 'V', 'P', 'RF', 'PC', 'AF', 'TF', 'FN', 'IF', 'FS', 'FT')
			where @iter_no = t.rank and t.object_type = @synonym and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	end
	set @iter_no = @iter_no + 1
end

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
	select count(*) from #t1 t
	where t.relative_id = #t1.object_id and t.object_id != t.relative_id)

-- perform the topological sorting
set @iter_no = 1
while 1 = 1
begin
	update #t1 set rank=@iter_no where degree = 0
	-- end the loop if no more rows left to process
	if (@@rowcount = 0) break
	update #t1 set degree = NULL where rank = @iter_no

	update #t1 set degree = (
		select count(*) from #t1 t
		where t.relative_id = #t1.object_id and t.object_id != t.relative_id
		and t.object_id in (select tt.object_id from #t1 tt where tt.rank = 0))
		where degree is not null

	set @iter_no = @iter_no + 1
end

--correcting naming mistakes of objects present in current database 
--This part need to be removed once SMO's URN comparision gets fixed
		DECLARE @collation sysname;
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t1 as t
			where t.object_id IS NOT NULL and t.object_svr IS NULL
		OPEN db_cursor
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			
			SET @collation = (select convert(sysname,DatabasePropertyEx(@dbname,'Collation')));
			SET @query = 'update #t1 set #t1.object_name = o.name,#t1.object_schema = sch.name from #t1  inner join '+ quotename(@dbname)+ '.sys.objects as o on #t1.object_id = o.object_id inner join '+ quotename(@dbname)+ '.sys.schemas as sch on sch.schema_id = o.schema_id  where o.name = #t1.object_name collate '+  @collation +' and sch.name = #t1.object_schema collate '+ @collation
			EXEC (@query)	


			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor
	
--final select
select ISNULL(t.object_id, 0) as [object_id], t.object_name, ISNULL(t.object_schema, '') as [object_schema], ISNULL(t.object_db, '') as [object_db], ISNULL(t.object_svr, '') as [object_svr], t.object_type, ISNULL(t.relative_id, 0) as [relative_id], t.relative_name, ISNULL(t.relative_schema, '') as [relative_schema], relative_db, ISNULL(t.relative_svr, '') as [relative_svr], t.relative_type, t.schema_bound, ISNULL(CASE WHEN p.type= 'U' then @u when p.type = 'V' then @v end, 0) as [ptype], ISNULL(p.name, '') as [pname], ISNULL(SCHEMA_NAME(p.schema_id), '') as [pschema]
 from #t1 as t
 left join sys.objects as o on (t.object_type = @tr and o.object_id = t.object_id) or (t.relative_type = @tr and o.object_id = t.relative_id)
 left join sys.objects as p on p.object_id = o.parent_object_id
 order by rank desc
 
drop table #t1
drop table #t2
drop table #tempdep

IF @must_set_nocount_off > 0 
   set nocount off
Ix-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
--    contains source objects
-- 2. @find_referencing_objects defines ordering
--    1 order for drop
--    0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1
set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uda int
declare @uddt int
declare @xml int
declare @udt int
declare @assm int
declare @part_sch int
declare @part_func int
declare @synonym int
declare @udtt int
declare @ddltr int
declare @unknown int
declare @pg int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
set @uda = 11
set @synonym = 12
--above 100 -> not in sys.objects
set @uddt = 101
set @xml = 102
set @udt = 103
set @assm = 1000
set @part_sch = 201
set @part_func = 202
set @udtt = 104
set @ddltr = 203
set @unknown = 1001
set @pg = 204

-- variables for referenced type obtained from sys.sql_expression_dependencies
declare @obj int
set @obj = 20
declare @type int
set @type = 21
-- variables for xml and part_func are already there

create table #t1
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL,
	degree int NULL
)

-- we need to create another temporary table to store the dependencies from sys.sql_expression_dependencies till the updated values are inserted finally into #t1
create table #t2
(
	object_id int NULL,
	object_name sysname collate database_default NULL,
	object_schema sysname collate database_default NULL,
	object_db sysname NULL,
	object_svr sysname NULL,
	object_type smallint NOT NULL,
	relative_id int NOT NULL,
	relative_name sysname collate database_default NOT NULL,
	relative_schema sysname collate database_default NULL,
	relative_db sysname NULL,
	relative_svr sysname NULL,
	relative_type smallint NOT NULL,
	schema_bound bit NOT NULL,
	rank smallint NULL
)

-- This index will ensure that we have unique parent-child relationship
create unique clustered index i1 on #t1(object_name, object_schema, object_db, object_svr, object_type, relative_name, relative_schema, relative_type) with (IGNORE_DUP_KEY=ON)

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank) 
   select l.objid, l.objname, l.objschema, l.objdb, l.objtype, l.objid, l.objname, l.objschema, l.objdb, l.objtype, 1, @iter_no from #tempdep l

-- change the object_id of table types to their user_defined_id
update #t1 set object_id = tt.user_type_id, relative_id = tt.user_type_id
from sys.table_types as tt where tt.type_table_object_id = #t1.object_id and object_type = @udtt

while @rows > 0
begin
	set @rows = 0
	if (1 = @find_referencing_objects)
	begin
		-- HARD DEPENDENCIES
		-- these dependencies have to be in the same database only
		-- tables that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.tables as tbl on tbl.object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- udtts that reference uddts or udts
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tt.user_type_id, tt.name, SCHEMA_NAME(tt.schema_id), t.object_db, @udtt, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as c on c.user_type_id = t.object_id
			join sys.table_types as tt on tt.type_table_object_id = c.object_id
			where @iter_no = t.rank and (t.object_type = @uddt OR t.object_type = @udt) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- tables/views that reference triggers
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @tr, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id and o.type = 'TR'
			where @iter_no = t.rank and (t.object_type = @u OR  t.object_type = @v) and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		

		-- table references table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.referenced_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.parent_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- uda references types
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, @uda, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.parameters as p on p.user_type_id = t.object_id
			join sys.objects as o on o.object_id = p.object_id and o.type = 'AF'
			where @iter_no = t.rank and t.object_type in (@udt, @uddt, @udtt) and (t.object_svr IS null and t.object_db = db_name())

		-- synonym refrences object
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select s.object_id, s.name, SCHEMA_NAME(s.schema_id), t.object_db, @synonym, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on object_id(s.base_object_name) = t.object_id
			where @iter_no = t.rank and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	
		-- DatabaseDdlTrigger 
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
        select  obj.object_id ,obj.name ,null,null,@ddltr,t.object_id, t.object_name,t.object_schema,t.object_db, t.object_type, 1,@iter_no + 1
         from #t1 as t
         join sys.sql_expression_dependencies as dp on 
         (dp.referenced_id = t.object_id Or (dp.referenced_entity_name = t.object_name AND dp.is_caller_dependent = 1 ))
         join sys.triggers as obj on obj.object_id = dp.referencing_id and obj.parent_class = 0
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount
      
	  --view, procedure references table, view, procedure
      --procedure references type
      --table(check) references procedure
      --trigger references table, procedure
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
        select  case when obj.type in ('C' , 'D') then obj.parent_object_id else obj.object_id end,case when obj.type in ('C','D' ) then OBJECT_NAME(obj.parent_object_id) else OBJECT_NAME(obj.object_id) end,schema_name(obj.schema_id),t.object_db,
               case when obj.type  in ('U', 'C','D') then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr 
               when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
               when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf
               end,  t.object_id, t.object_name,t.object_schema,t.object_db, t.object_type, dp.is_schema_bound_reference,@iter_no + 1
         from #t1 as t
         join sys.sql_expression_dependencies as dp on 
         (dp.referenced_id = t.object_id Or (dp.referenced_entity_name = t.object_name AND dp.is_caller_dependent = 1 ))
         join sys.objects as obj on obj.object_id = dp.referencing_id and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'FS', 'FT', 'C' , 'D')
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount
      
     


	end
	else
	begin
		-- SOFT DEPENDENCIES
		-- insert all values from sys.sql_expression_dependencies for the corresponding object
		-- first insert them in #t2, update them and then finally insert them in #t1
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as dep on dep.referencing_id = t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- insert all the dependency values in case of a table that references a check
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select 
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.sql_expression_dependencies as d on d.referenced_id = t.object_id
			join sys.objects as o on o.object_id = d.referencing_id and o.type = 'C'
			join sys.sql_expression_dependencies as dep on dep.referencing_id = d.referencing_id and dep.referenced_id != t.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name() and t.object_type = @u

		-- insert all the dependency values in case of an object that belongs to another object whose dependencies are being found
		insert #t2 (object_type, object_name, object_schema, object_db, object_svr, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select
				case dep.referenced_class when 1 then @obj
				when 6 then @type
				when 10 then @xml
				when 21 then @part_func
				end,
			dep.referenced_entity_name,
			dep.referenced_schema_name,
			dep.referenced_database_name,
			dep.referenced_server_name,
			t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type,
			dep.is_schema_bound_reference, @iter_no + 1
			from #t1 as t
			join sys.objects as o on o.parent_object_id = t.object_id
			join sys.sql_expression_dependencies as dep on dep.referencing_id = o.object_id
			where @iter_no = t.rank and t.object_svr IS NULL and t.object_db = db_name()

		-- queries for objects with object_id null and object_svr null - resolve them
		-- we will build the query to resolve the objects 
		-- increase @rows as we bind the objects
		
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t2 as t
			where t.rank = (@iter_no+1) and t.object_id IS NULL and t.object_svr IS NULL
		OPEN db_cursor
		DECLARE @dbname sysname
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			DECLARE @query nvarchar(MAX)
			-- when schema is not null 
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id 
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.object_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NOT NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @part_func - schema is always null
			-- @schema is null
			-- consider schema as 'dbo'
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				where obj.name = #t2.object_name collate database_default
				and SCHEMA_NAME(obj.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				where t.name = #t2.object_name collate database_default
				and SCHEMA_NAME(t.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)
			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				where x.name = #t2.object_name collate database_default
				and SCHEMA_NAME(x.schema_id) = ''dbo''
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- consider schema as t.relative_schema
			-- the parent object will have the default schema of user in case of dynamic schema binding
			-- @obj
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = obj.object_id, object_schema = SCHEMA_NAME(obj.schema_id), object_type = 
							case when obj.type = ''U'' then ' + CAST(@u AS nvarchar(8)) +
							' when obj.type = ''V'' then ' + CAST(@v AS nvarchar(8)) +
							' when obj.type = ''TR'' then ' + CAST(@tr AS nvarchar(8)) +
							' when obj.type in ( ''P'', ''RF'', ''PC'' ) then ' + CAST(@sp AS nvarchar(8)) +
							' when obj.type in ( ''AF'' ) then ' + CAST(@uda AS nvarchar(8)) +
							' when obj.type in ( ''TF'', ''FN'', ''IF'', ''FS'', ''FT'' ) then ' + CAST(@udf AS nvarchar(8)) +
							' when obj.type = ''D'' then ' + CAST(@def AS nvarchar(8)) +
							' when obj.type = ''SN'' then ' + CAST(@synonym AS nvarchar(8)) +
							' else ' + CAST(@unknown AS nvarchar(8)) +
							' end
				from ' + quotename(@dbname) + '.sys.objects as obj 
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = obj.schema_id
				where obj.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@obj AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @type
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = t.user_type_id, object_schema = SCHEMA_NAME(t.schema_id), object_type = case when t.is_assembly_type = 1 then ' + CAST(@udt AS nvarchar(8)) + ' when t.is_table_type = 1 then ' + CAST(@udtt AS nvarchar(8)) + ' else ' + CAST(@uddt AS nvarchar(8)) + ' end
				from ' + quotename(@dbname) + '.sys.types as t
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = t.schema_id
				where t.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@type AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- @xml
			SET @query = 'update #t2 set object_db = N' + quotename(@dbname, '''') + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
				from ' + quotename(@dbname) + '.sys.xml_schema_collections as x
				join ' + quotename(@dbname) + '.sys.schemas as sch on sch.schema_id = x.schema_id
				where x.name = #t2.object_name collate database_default
				and sch.name = #t2.relative_schema collate database_default
				and #t2.object_type = ' + CAST(@xml AS nvarchar(8)) + ' and #t2.object_schema IS NULL 
				and (#t2.object_db IS NULL or #t2.object_db = ''' + @dbname + ''')
				and #t2.rank = (' + CAST(@iter_no AS nvarchar(8)) + '+1) and #t2.object_id IS NULL and #t2.object_svr IS NULL'
			EXEC (@query)

			-- update the shared object if any (schema is not null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_type = @sp
			from sys.objects as o 
			join sys.schemas as sch on sch.schema_id = o.schema_id
			where o.name = #t2.object_name collate database_default and sch.name = #t2.object_schema collate database_default and 
			o.type in ('P', 'RF', 'PC') and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			-- update the shared object if any (schema is null)
			update #t2 set object_db = 'master', object_id = o.object_id, object_schema = SCHEMA_NAME(o.schema_id), object_type = @sp
			from sys.objects as o 
			where o.name = #t2.object_name collate database_default and SCHEMA_NAME(o.schema_id) = 'dbo' collate database_default  and 
			o.type in ('P', 'RF', 'PC') and 
			#t2.object_schema IS null and #t2.object_id IS null and
			#t2.object_name LIKE 'sp/_%' ESCAPE '/' and #t2.object_db IS null and #t2.object_svr IS null

			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor

	update #t2 set object_type = @unknown where object_id IS NULL

		insert #t1 (object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank)
			select object_id, object_name, object_schema, object_db, object_svr, object_type, relative_id, relative_name, relative_schema, relative_db, relative_svr, relative_type, schema_bound, rank 
			from #t2 where @iter_no + 1 = rank
		SET @rows = @rows + @@rowcount


		-- HARD DEPENDENCIES
		-- uddt or udt referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.columns as col on col.object_id = t.object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- uddt or udt referenced by table type
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tp.user_type_id, tp.name, SCHEMA_NAME(tp.schema_id), t.object_db, case tp.is_assembly_type when 1 then @udt else @uddt end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.table_types as tt on tt.user_type_id = t.object_id
			join sys.columns as col on col.object_id = tt.type_table_object_id
			join sys.types as tp on tp.user_type_id = col.user_type_id and tp.schema_id != 4
			where @iter_no = t.rank and t.object_type = @udtt and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount

		-- table or view referenced by trigger
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, case o.type when 'V' then @v else @u end, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.triggers as tr on tr.object_id = t.object_id
			join sys.objects as o on o.object_id = tr.parent_id
			where @iter_no = t.rank and t.object_type = @tr and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	

		-- table referenced by table
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select tbl.object_id, tbl.name, SCHEMA_NAME(tbl.schema_id), t.object_db, @u, t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 1, @iter_no + 1
			from #t1 as t
			join sys.foreign_keys as fk on fk.parent_object_id = t.object_id
			join sys.tables as tbl on tbl.object_id = fk.referenced_object_id
			where @iter_no = t.rank and t.object_type = @u and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
		
		-- objects referenced by synonym
		insert #t1 (object_id, object_name, object_schema, object_db, object_type, relative_id, relative_name, relative_schema, relative_db, relative_type, schema_bound, rank)
			select o.object_id, o.name, SCHEMA_NAME(o.schema_id), t.object_db, (case when o.type = 'U' then @u when o.type = 'V' then @v when o.type in ('P', 'RF', 'PC') then @sp when o.type = 'AF' then @uda else @udf end), t.object_id, t.object_name, t.object_schema, t.object_db, t.object_type, 0, @iter_no + 1
			from #t1 as t
			join sys.synonyms as s on s.object_id = t.object_id
			join sys.objects as o on o.object_id = OBJECT_ID(s.base_object_name) and o.type in ('U', 'V', 'P', 'RF', 'PC', 'AF', 'TF', 'FN', 'IF', 'FS', 'FT')
			where @iter_no = t.rank and t.object_type = @synonym and (t.object_svr IS null and t.object_db = db_name())
		set @rows = @rows + @@rowcount
	end
	set @iter_no = @iter_no + 1
end

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
	select count(*) from #t1 t
	where t.relative_id = #t1.object_id and t.object_id != t.relative_id)

-- perform the topological sorting
set @iter_no = 1
while 1 = 1
begin
	update #t1 set rank=@iter_no where degree = 0
	-- end the loop if no more rows left to process
	if (@@rowcount = 0) break
	update #t1 set degree = NULL where rank = @iter_no

	update #t1 set degree = (
		select count(*) from #t1 t
		where t.relative_id = #t1.object_id and t.object_id != t.relative_id
		and t.object_id in (select tt.object_id from #t1 tt where tt.rank = 0))
		where degree is not null

	set @iter_no = @iter_no + 1
end

--correcting naming mistakes of objects present in current database 
--This part need to be removed once SMO's URN comparision gets fixed
		DECLARE @collation sysname;
		DECLARE db_cursor CURSOR
		FOR
			select distinct ISNULL(object_db, db_name()) from #t1 as t
			where t.object_id IS NOT NULL and t.object_svr IS NULL
		OPEN db_cursor
		FETCH NEXT FROM db_cursor INTO @dbname
		WHILE (@@FETCH_STATUS <> -1)
		BEGIN
			IF (db_id(@dbname) IS NULL) 
			BEGIN
				FETCH NEXT FROM db_cursor INTO @dbname
				CONTINUE
			END
			
			---SET @collation = (select convert(sysname,DatabasePropertyEx(@dbname,'Collation')));
			SET @query = 'update #t1 set #t1.object_name = o.name,#t1.object_schema = sch.name from #t1  inner join '+ quotename(@dbname)+ '.sys.objects as o on #t1.object_id = o.object_id inner join '+ quotename(@dbname)+ '.sys.schemas as sch on sch.schema_id = o.schema_id  where o.name = #t1.object_name collate '+  @collation +' and sch.name = #t1.object_schema collate '+ @collation
			EXEC (@query)	


			FETCH NEXT FROM db_cursor INTO @dbname
		END
		CLOSE db_cursor
		DEALLOCATE db_cursor
	
--final select
select ISNULL(t.object_id, 0) as [object_id], t.object_name, ISNULL(t.object_schema, '') as [object_schema], ISNULL(t.object_db, '') as [object_db], ISNULL(t.object_svr, '') as [object_svr], t.object_type, ISNULL(t.relative_id, 0) as [relative_id], t.relative_name, ISNULL(t.relative_schema, '') as [relative_schema], relative_db, ISNULL(t.relative_svr, '') as [relative_svr], t.relative_type, t.schema_bound, ISNULL(CASE WHEN p.type= 'U' then @u when p.type = 'V' then @v end, 0) as [ptype], ISNULL(p.name, '') as [pname], ISNULL(SCHEMA_NAME(p.schema_id), '') as [pschema]
 from #t1 as t
 left join sys.objects as o on (t.object_type = @tr and o.object_id = t.object_id) or (t.relative_type = @tr and o.object_id = t.relative_id)
 left join sys.objects as p on p.object_id = o.parent_object_id
 order by rank desc
 
drop table #t1
drop table #t2
drop table #tempdep

IF @must_set_nocount_off > 0 
   set nocount off


n-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
--    contains source objects
-- 2. @find_referencing_objects defines ordering
--    1 order for drop
--    0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1
set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uda int
declare @uddt int
declare @xml int
declare @udt int
declare @assm int
declare @part_sch int
declare @part_func int
declare @synonym int
declare @pg int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
set @uda = 11
set @synonym = 12
--above 100 -> not in sys.objects
set @uddt = 101
set @xml = 102
set @udt = 103
set @assm = 1000
set @part_sch = 201
set @part_func = 202
set @pg = 204


/*
 * Create #t1 as temp object holding areas.  Columns are:
 *  object_id     - temp object id
 *  object_type    - temp object type
 *  relative_id      - parent or child object id
 *  relative_type  - parent or child object type
 *  rank  - NULL means dependencies not yet evaluated, else nonNULL.
 *   soft_link - this row should not be used to compute ordering among objects
 *   object_name - name of the temp object
 *   object_schema - name the temp object's schema (if any)
 *   relative_name - name of the relative object
 *   relative_schema - name of the relative object's schema (if any)
 *   degree - the number of relatives that the object has, will be used for computing the rank
 *   object_key - surrogate key that combines object_id and object_type
 *   relative_key - surrogate key that combines relative_id and relative_type
 */
create table #t1(
   object_id         int         NULL,
   object_type       smallint    NULL,
   relative_id       int         NULL,
   relative_type        smallint    NULL,
   rank        smallint    NULL,
   soft_link      bit      NULL,
   object_name       sysname     NULL,
   object_schema        sysname     NULL,
   relative_name     sysname     NULL,
   relative_schema      sysname     NULL,
   degree            int NULL,
   object_key bigint NULL,
   relative_key bigint NULL
)

create unique clustered index i1 on #t1(object_id, object_type, relative_id, relative_type) with IGNORE_DUP_KEY

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

declare @rowcount_ck int
set @rowcount_ck = 0

insert #t1 (relative_id, relative_type, rank) 
   select l.objid, l.objtype, @iter_no from #tempdep l

while @rows > 0
begin
   set @rows = 0
   if( 1 = @find_referencing_objects )
   begin
      --tables that reference uddts or udts (parameters that reference types are in sql_dependencies )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as c on  c.user_type_id = t.relative_id
         join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views
         where @iter_no = t.rank and (t.relative_type=@uddt OR t.relative_type=@udt)
      set @rows = @rows + @@rowcount

      --tables that reference defaults ( only default objects )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, clmns.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as clmns on clmns.default_object_id = t.relative_id
         join sys.objects as o on o.object_id = t.relative_id and 0 = isnull(o.parent_object_id, 0)
         where @iter_no = t.rank and t.relative_type = @def
      set @rows = @rows + @@rowcount

      --types that reference defaults ( only default objects )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, tp.user_type_id, @uddt, @iter_no + 1
         from #t1 as t
         join sys.types as tp on tp.default_object_id = t.relative_id
         join sys.objects as o on o.object_id = t.relative_id and 0 = isnull(o.parent_object_id, 0)
         where @iter_no = t.rank and t.relative_type = @def
      set @rows = @rows + @@rowcount

      --tables that reference rules
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, clmns.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as clmns on clmns.rule_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @rule
      set @rows = @rows + @@rowcount

      --types that reference rules
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, tp.user_type_id, @uddt, @iter_no + 1
         from #t1 as t
         join sys.types as tp on tp.rule_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @rule
      set @rows = @rows + @@rowcount

      --tables that reference XmlSchemaCollections
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.columns as c on c.xml_collection_id = t.relative_id
         join sys.tables as tbl on tbl.object_id = c.object_id -- eliminate views
         where @iter_no = t.rank and t.relative_type = @xml
      set @rows = @rows + @@rowcount

      --procedures that reference XmlSchemaCollections
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.object_id, case when o.type in ( 'P', 'RF', 'PC' ) then @sp else @udf end, @iter_no + 1
         from #t1 as t
         join sys.parameters as c on c.xml_collection_id = t.relative_id
         join sys.objects as o on o.object_id = c.object_id
         where @iter_no = t.rank and t.relative_type = @xml
      set @rows = @rows + @@rowcount

      --udf, sp, uda, trigger all that reference assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, am.object_id, (case o.type when 'AF' then @uda when 'PC' then @sp when 'FS' then @udf when 'FT' then @udf when 'TA' then @tr else @udf end), @iter_no + 1
         from #t1 as t
         join sys.assembly_modules as am on am.assembly_id = t.relative_id
         join sys.objects as o on am.object_id = o.object_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      -- CLR udf, sp, uda that reference udt
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct t.relative_id, 
               t.relative_type, 
               am.object_id, 
               (case o.type 
                  when 'AF' then @uda 
                  when 'PC' then @sp 
                  when 'FS' then @udf 
                  when 'FT' then @udf 
                  when 'TA' then @tr 
                  else @udf end), 
               @iter_no + 1
         from #t1 as t
         join sys.parameters as sp on sp.user_type_id = t.relative_id
         join sys.assembly_modules as am on sp.object_id = am.object_id  
         join sys.objects as o on sp.object_id = o.object_id
         where @iter_no = t.rank and t.relative_type = @udt
      set @rows = @rows + @@rowcount

      --udt that reference assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, at.user_type_id, @udt, @iter_no + 1
         from #t1 as t
         join sys.assembly_types as at on at.assembly_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      --assembly that reference assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, ar.assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_references as ar on ar.referenced_assembly_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      --table references table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, fk.parent_object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.foreign_keys as fk on fk.referenced_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @u
      set @rows = @rows + @@rowcount

      --table,view references partition scheme
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, idx.object_id, case o.type when 'V' then @v else @u end, @iter_no + 1
         from #t1 as t
         join sys.indexes as idx on idx.data_space_id = t.relative_id 
         join sys.objects as o on o.object_id = idx.object_id
         where @iter_no = t.rank and t.relative_type = @part_sch
      set @rows = @rows + @@rowcount

      --partition scheme references partition function
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, ps.data_space_id, @part_sch, @iter_no + 1
         from #t1 as t
         join sys.partition_schemes as ps on ps.function_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @part_func
      set @rows = @rows + @@rowcount

      --non-schema-bound parameter references type
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, p.object_id, 
               case when obj.type in ( 'P', 'PC' ) then @sp else @udf
               end, @iter_no + 1
         from #t1 as t
         join sys.parameters as p on 
             p.user_type_id = t.relative_id and  t.relative_type in (@uddt, @udt)
         join sys.objects as obj on obj.object_id = p.object_id and obj.type in ( 'P',  'PC', 'TF', 'FN', 'IF', 'FS', 'FT')
         and ISNULL(objectproperty(obj.object_id, 'isschemabound'), 0) = 0
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

      -- plan guide references sp, udf, triggers
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, pg.plan_guide_id, @pg, @iter_no + 1
         from #t1 as t
         join sys.plan_guides as pg on pg.scope_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type in (@sp, @udf, @tr)
      set @rows = @rows + @@rowcount

      --view, procedure references table, view, procedure
      --procedure references type
      --table(check) references procedure
      --trigger references table, procedure
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, case when 'C' = obj.type then obj.parent_object_id else dp.object_id end, 
               case when obj.type  in ('U', 'C') then @u when 'V' = obj.type then @v when 'TR' = obj.type then @tr 
               when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
               when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf
               end, @iter_no + 1
         from #t1 as t
         join sys.sql_dependencies as dp on 
            -- reference table, view procedure
            ( class < 2 and dp.referenced_major_id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf) )
            --reference type
             or ( 2 = class  and dp.referenced_major_id = t.relative_id and  t.relative_type in (@uddt, @udt))
            --reference xml namespace ( not supported by server right now )
            --or ( 3 = class  and dp.referenced_major_id = t.relative_id and @xml = t.relative_type )
         join sys.objects as obj on obj.object_id = dp.object_id and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'FS', 'FT', 'C')
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

   end -- 1 = @find_referencing_objects
   else
   begin -- find referenced objects
      --check references table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, dp.object_id, 77 /*place holder for check*/, @iter_no
         from #t1 as t
         join sys.sql_dependencies as dp on 
            -- reference table
            class < 2 and dp.referenced_major_id = t.relative_id and t.relative_type = @u
         join sys.objects as obj on obj.object_id = dp.object_id and obj.type  = 'C'
         where @iter_no = t.rank
      set @rowcount_ck = @@rowcount

      --non-schema-bound parameter references type
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct 
            t.relative_id,	-- object_id
            t.relative_type,	-- object_type
            p.user_type_id,	-- relative_id
            case p.system_type_id when 240 then @udt else @uddt end,
            @iter_no + 1
         from #t1 as t
         join sys.parameters as p on
             p.object_id = t.relative_id and p.user_type_id > 256 and t.relative_type in ( @sp, @udf ,@uda )
             and ISNULL(objectproperty(p.object_id, 'isschemabound'), 0) = 0
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

      --view, procedure referenced by table, view, procedure
      --type referenced by procedure
      --check referenced by table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct 
            case when 77 = t.relative_type then obj2.parent_object_id else t.relative_id end,   -- object_id
            case when 77 = t.relative_type then @u else relative_type end,                -- object_type
            dp.referenced_major_id,                                              -- relative_id
            case                                                           -- relative_type
               when dp.class < 2 then 
                  case when 'U' = obj.type then @u 
                  when 'V' = obj.type then @v 
                  when 'TR' = obj.type then @tr 
				  when 'AF' = obj.type then @uda 
                  when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
                  when obj.type in ( 'TF', 'FN', 'IF', 'FS', 'FT' ) then @udf
                  when exists (select * from sys.synonyms syn where syn.object_id = dp.referenced_major_id ) then @synonym
                  end
               when dp.class = 2 then (case 
                                    when exists (select * from sys.assembly_types sat where sat.user_type_id = dp.referenced_major_id) then @udt 
                                    else @uddt 
                                 end) 
            end, 
            @iter_no + 1
         from #t1 as t
         join sys.sql_dependencies as dp on 
            -- reference table, view procedure
            ( class < 2 and dp.object_id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf, @tr, @uda, 77) )
            --reference type
             or ( 2 = class  and dp.object_id = t.relative_id ) -- t.relative_type?
            --reference xml namespace ( not supported by server right now )
            --or ( 3 = class  and dp.referenced_major_id = t.relative_id and @xml = t.relative_type )
         left join sys.objects as obj on obj.object_id = dp.referenced_major_id and dp.class < 2 and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TF', 'FN', 'IF', 'FS', 'FT', 'TR', 'AF')
         left join sys.objects as obj2 on obj2.object_id = t.relative_id and 77 = t.relative_type
         where @iter_no = t.rank
      set @rows = @rows + @@rowcount

      if @rowcount_ck > 0 
      begin
         delete from #t1 where relative_type = 77
      end
      
      --table or view referenced by trigger
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, tr.parent_id, case o.type when 'V' then @v else @u end, @iter_no + 1
         from #t1 as t
         join sys.triggers as tr on tr.object_id = t.relative_id
		 join sys.objects as o on o.object_id = tr.parent_id
         where @iter_no = t.rank and t.relative_type = @tr
      set @rows = @rows + @@rowcount
      
      --table referenced by table
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, fk.referenced_object_id, @u, @iter_no + 1
         from #t1 as t
         join sys.foreign_keys as fk on fk.parent_object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @u
      set @rows = @rows + @@rowcount

      --assembly referenced by assembly
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, ar.referenced_assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_references as ar on ar.assembly_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @assm
      set @rows = @rows + @@rowcount

      --assembly referenced by udt
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, at.assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_types as at on at.user_type_id = t.relative_id
         where @iter_no = t.rank and t.relative_type = @udt
      set @rows = @rows + @@rowcount

      -- assembly referenced by udf, sp, uda, trigger
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, am.assembly_id, @assm, @iter_no + 1
         from #t1 as t
         join sys.assembly_modules as am on am.object_id = t.relative_id
         where @iter_no = t.rank and t.relative_type in ( @udf, @sp, @uda, @tr)
      set @rows = @rows + @@rowcount

      -- udt referenced by CLR udf, sp, uda
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select distinct 
               t.relative_id, 
               t.relative_type, 
               at.user_type_id, 
               @udt, 
               @iter_no + 1
         from #t1 as t
         join sys.parameters as sp on sp.object_id = t.relative_id
         join sys.assembly_modules as am on am.object_id = sp.object_id
         join sys.assembly_types as at on sp.user_type_id = at.user_type_id
         where @iter_no = t.rank and t.relative_type in (@udf, @sp, @uda)
      set @rows = @rows + @@rowcount

      --clr types referenced by tables ( types referenced by parameters are in sql_dependencies )
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)
         select t.relative_id, t.relative_type, c.user_type_id, @udt, @iter_no + 1
         from #t1 as t
         join sys.columns as c on  c.object_id = t.relative_id
         join sys.assembly_types as tp on tp.user_type_id = c.user_type_id
         where @iter_no = t.rank and t.relative_type = @u
      set @rows = @rows + @@rowcount
      
      -- sp, udf, triggers referenced by plan guide
      insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
         select t.relative_id, t.relative_type, pg.scope_object_id, (case o.type when 'P' then @sp when 'TR' then @tr else @udf end), @iter_no + 1
         from #t1 as t
         join sys.plan_guides as pg on pg.plan_guide_id = t.relative_id
	     join sys.objects as o on o.object_id = pg.scope_object_id
         where @iter_no = t.rank and t.relative_type = @pg
      set @rows = @rows + @@rowcount
         
   end
   set @iter_no = @iter_no + 1
end --main loop

--objects that don't need to be in the loop because they don't reference anybody
if( 0 = @find_referencing_objects )
begin
   --alias types referenced by tables ( types referenced by parameters are in sql_dependencies )
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, c.user_type_id, @uddt, @iter_no + 1
      from #t1 as t
      join sys.columns as c on  c.object_id = t.relative_id
      join sys.types as tp on tp.user_type_id = c.user_type_id and tp.is_user_defined = 1
      where t.relative_type = @u and tp.is_assembly_type = 0

   if @@rowcount > 0 
   begin
      set @iter_no = @iter_no + 1
   end
   
   --defaults referenced by types
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, tp.default_object_id, @def, @iter_no + 1
      from #t1 as t
      join sys.types as tp on tp.user_type_id = t.relative_id and tp.default_object_id > 0
      join sys.objects as o on o.object_id = tp.default_object_id and 0 = isnull(o.parent_object_id, 0)
      where t.relative_type = @uddt

   --defaults referenced by tables( only default objects )
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, clmns.default_object_id, @def, @iter_no + 1
      from #t1 as t
      join sys.columns as clmns on clmns.object_id = t.relative_id
      join sys.objects as o on o.object_id = clmns.default_object_id and 0 = isnull(o.parent_object_id, 0)
      where t.relative_type = @u

   --rules referenced by types
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, tp.rule_object_id, @rule, @iter_no + 1
      from #t1 as t
      join sys.types as tp on tp.user_type_id = t.relative_id and tp.rule_object_id > 0
      where t.relative_type = @uddt

   --rules referenced by tables
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, clmns.rule_object_id, @rule, @iter_no + 1
      from #t1 as t
      join sys.columns as clmns on clmns.object_id = t.relative_id and clmns.rule_object_id > 0
      where t.relative_type = @u

   --XmlSchemaCollections referenced by table
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, c.xml_collection_id, @xml, @iter_no + 1
      from #t1 as t
      join sys.columns as c on c.object_id = t.relative_id and c.xml_collection_id > 0
      where t.relative_type = @u

   --XmlSchemaCollections referenced by procedures
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)
      select t.relative_id, t.relative_type, c.xml_collection_id, @xml, @iter_no + 1
      from #t1 as t
      join sys.parameters as c on c.object_id = t.relative_id and c.xml_collection_id > 0
      where t.relative_type in ( @sp, @udf)

   --partition scheme referenced by table,view
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
      select t.relative_id, t.relative_type, ps.data_space_id, @part_sch, @iter_no + 1
      from #t1 as t
      join sys.indexes as idx on idx.object_id = t.relative_id 
      join sys.partition_schemes as ps on ps.data_space_id = idx.data_space_id
      where t.relative_type in (@u, @v)

   --partition function referenced by partition scheme
   insert #t1 (object_id, object_type, relative_id, relative_type, rank)      
      select t.relative_id, t.relative_type, ps.function_id, @part_func, @iter_no + 1
      from #t1 as t
      join sys.partition_schemes as ps on ps.data_space_id = t.relative_id
      where t.relative_type = @part_sch
      
end

--cleanup circular references
delete #t1 where object_id = relative_id and object_type=relative_type

--allow circular dependencies by cuting one of the branches
--mark as soft links dependencies between tables
-- at script time we will need to take care to script fks and checks separately
update #t1 set soft_link = 1 where ( object_type = @u and relative_type = @u )

--add independent objects first in the list
insert #t1 ( object_id, object_type, rank) 
   select t.relative_id, t.relative_type, 1 from #t1 t where t.relative_id not in ( select t2.object_id from #t1 t2 where not t2.object_id is null )

--delete initial objects
delete #t1 where object_id is null

-- compute the surrogate keys to make sorting easier
update #t1 set object_key = object_id + convert(bigint, 0xfFFFFFFF) * object_type
update #t1 set relative_key = relative_id + convert(bigint, 0xfFFFFFFF) * relative_type

create index index_key on #t1 (object_key, relative_key)

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
      select count(*) 
      from #t1 t_alias 
      where t_alias.object_key = #t1.object_key and 
            t_alias.relative_id is not null and 
            t_alias.soft_link is null)

-- perform topological sorting 
set @iter_no=1
while 1=1
begin 
   update #t1 set rank=@iter_no where degree=0
   -- end the loop if no more rows left to process
   if (@@rowcount=0) break
   update #t1 set degree=NULL where rank = @iter_no
   
   update #t1 set degree = (
      select count(*) 
         from #t1 t_alias 
         where t_alias.object_key = #t1.object_key and 
            t_alias.relative_key is not null and 
            t_alias.relative_key in (select t_alias2.object_key from #t1 t_alias2 where t_alias2.rank=0 and t_alias2.soft_link is null) and
            t_alias.rank=0 and t_alias.soft_link is null)
      where degree is not null
      
   set @iter_no=@iter_no+1
end

--add name schema
update #t1 set object_name = o.name, object_schema = schema_name(o.schema_id)
from sys.objects AS o 
where o.object_id = #t1.object_id and object_type in ( @u, @udf, @v, @sp, @def, @rule, @uda)

update #t1 set relative_type = case op.type when 'V' then @v else @u end, object_name = o.name, object_schema = schema_name(o.schema_id), relative_name = op.name, relative_schema = schema_name(op.schema_id)
from sys.objects AS o 
join sys.objects AS op on op.object_id = o.parent_object_id
where o.object_id = #t1.object_id and object_type = @tr

update #t1 set object_name = t.name, object_schema = schema_name(t.schema_id)
from sys.types AS t
where t.user_type_id = #t1.object_id and object_type in ( @uddt, @udt )

update #t1 set object_name = x.name, object_schema = schema_name(x.schema_id)
from sys.xml_schema_collections AS x
where x.xml_collection_id = #t1.object_id and object_type = @xml

update #t1 set object_name = p.name, object_schema = null
from sys.partition_schemes AS p
where p.data_space_id = #t1.object_id and object_type = @part_sch


update #t1 set object_name = p.name, object_schema = null
from sys.partition_functions AS p
where p.function_id = #t1.object_id and object_type = @part_func

update #t1 set object_name = pg.name, object_schema = null
from sys.plan_guides AS pg
where pg.plan_guide_id = #t1.object_id and object_type = @pg

update #t1 set object_name = a.name, object_schema = null
from sys.assemblies AS a
where a.assembly_id = #t1.object_id and object_type = @assm

update #t1 set object_name = syn.name, object_schema = schema_name(syn.schema_id)
from sys.synonyms AS syn
where syn.object_id = #t1.object_id and object_type = @synonym

-- delete objects for which we could not resolve the table name or schema
-- because we may not have enough privileges
delete from #t1 
where 
	object_name is null or 
	(object_schema is null  and object_type not in (@assm, @part_func, @part_sch, @pg))

--final select
select object_id, object_type, relative_id, relative_type, object_name, object_schema, relative_name, relative_schema
 from #t1 
 order by rank, relative_id
 
drop table #t1
drop table #tempdep

IF @must_set_nocount_off > 0 
   set nocount off
1-- parameters:
-- 1. create table #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
-- 	contains source objects
-- 2. @find_referencing_objects defines ordering
-- 	1 order for drop
-- 	0 order for script

declare @must_set_nocount_off bit
set @must_set_nocount_off = 0

IF @@OPTIONS & 512 = 0 
   set @must_set_nocount_off = 1

set nocount on

declare @u int
declare @udf int
declare @v int
declare @sp int
declare @def int
declare @rule int
declare @tr int
declare @uddt int

set @u = 3
set @udf = 0
set @v = 2
set @sp = 4
set @def = 6
set @rule = 7
set @tr = 8
--above 100 -> not in dbo.sysobjects
set @uddt = 101


/*
 * Create #t1 as temp object holding areas.  Columns are:
 *	 object_id		- temp object id
 *	 object_type	 - temp object type
 *	 relative_id		- parent or child object id
 *	 relative_type	 - parent or child object type
 *	 rank	 - NULL means dependencies not yet evaluated, else nonNULL.
 *   soft_link - this row should not be used to compute ordering among objects
 *   object_name - name of the temp object
 *   object_schema - name the temp object's schema (if any)
 *   relative_name - name of the relative object
 *   relative_schema - name of the relative object's schema (if any)
 *   degree - the number of relatives that the object has, will be used for computing the rank
 */
create table #t1(
	object_id			int			NULL,
	object_type			smallint		NULL,
	relative_id			int			NULL,
	relative_type			smallint		NULL,
	rank			smallint		NULL,
	soft_link		bit		NULL,
	object_name			sysname		NULL,
	object_schema			sysname		NULL,
	relative_name		sysname		NULL,
	relative_schema		sysname		NULL,
	degree				int NULL
)

create unique clustered index i1 on #t1(object_id, object_type, relative_id, relative_type) with IGNORE_DUP_KEY

declare @iter_no int
set @iter_no = 1

declare @rows int
set @rows = 1

declare @rowcount_ck int
set @rowcount_ck = 0

insert #t1 (relative_id, relative_type, rank) 
	select l.objid, l.objtype, @iter_no from #tempdep l

while @rows > 0
begin
	set @rows = 0
	if( 1 = @find_referencing_objects )
	begin
		--tables that reference types ( parameters that reference types are in sql_dependencies )
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, c.id, case when o.type  in ('U') then @u 
										when o.type in ( 'P', 'RF', 'PC' ) then @sp 
										when o.type in ( 'TF', 'FN', 'IF' ) then @udf end, @iter_no + 1
			from #t1 as t
			join dbo.syscolumns as c on  c.xusertype = t.relative_id
			join dbo.sysobjects as o on o.id = c.id and o.type in ( 'U', 'P', 'RF', 'PC', 'TF', 'FN', 'IF')
			where @iter_no = t.rank and t.relative_type=@uddt
		set @rows = @rows + @@rowcount

		--tables that reference defaults ( only default objects )
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, clmns.id, @u, @iter_no + 1
			from #t1 as t
			join dbo.syscolumns as clmns on clmns.cdefault = t.relative_id
			join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0
			where @iter_no = t.rank and t.relative_type = @def
		set @rows = @rows + @@rowcount

		--types that reference defaults ( only default objects )
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, tp.xusertype, @uddt, @iter_no + 1
			from #t1 as t
			join dbo.systypes as tp on tp.tdefault = t.relative_id
			join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0
			where @iter_no = t.rank and t.relative_type = @def
		set @rows = @rows + @@rowcount

		--tables that reference rules
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, clmns.id, @u, @iter_no + 1
			from #t1 as t
			join dbo.syscolumns as clmns on clmns.domain = t.relative_id
			where @iter_no = t.rank and t.relative_type = @rule
		set @rows = @rows + @@rowcount

		--types that reference rules
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, tp.xusertype, @uddt, @iter_no + 1
			from #t1 as t
			join dbo.systypes as tp on tp.domain = t.relative_id
			where @iter_no = t.rank and t.relative_type = @rule
		set @rows = @rows + @@rowcount

		--table references table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, fk.fkeyid, @u, @iter_no + 1
			from #t1 as t
			join dbo.sysreferences as fk on fk.rkeyid = t.relative_id
			where @iter_no = t.rank and t.relative_type = @u
		set @rows = @rows + @@rowcount

		--view, procedure references table, view, procedure
		--table(check) references procedure
		--trigger references table, procedure
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, case when 'C' = o.type then o.parent_obj else dp.id end, 
					case when o.type  in ('U', 'C') then @u when 'V' = o.type then @v when 'TR' = o.type then @tr 
					when o.type in ( 'P', 'RF', 'PC' ) then @sp 
					when o.type in ( 'TF', 'FN', 'IF' ) then @udf
					end, @iter_no + 1
			from #t1 as t
			join dbo.sysdepends as dp on dp.depid = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf)
			join dbo.sysobjects as o on o.id = dp.id and o.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TR', 'TF', 'FN', 'IF', 'C')
			where @iter_no = t.rank
		set @rows = @rows + @@rowcount

	end -- 1 = @find_referencing_objects
	else
	begin -- find referenced objects
		--check references table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, dp.id, 77 /*place holder for check*/, @iter_no
			from #t1 as t
			join dbo.sysdepends as dp on dp.depid = t.relative_id and t.relative_type in (@u, @udf)
			join dbo.sysobjects as obj on obj.id = dp.id and obj.type  = 'C'
			where @iter_no = t.rank
		set @rowcount_ck = @@rowcount

		--view, procedure referenced by table, view, procedure
		--type referenced by procedure
		--check referenced by table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select case when 77 = t.relative_type then obj2.parent_obj else t.relative_id end, 
				case when 77 = t.relative_type then @u else relative_type end, 
				dp.depid, case when 'U' = obj.type then @u 
					when 'V' = obj.type then @v 
					when 'TR' = obj.type then @tr 
					when obj.type in ( 'P', 'RF', 'PC' ) then @sp 
					when obj.type in ( 'TF', 'FN', 'IF' ) then @udf
					end, @iter_no + 1
			from #t1 as t
			join dbo.sysdepends as dp on dp.id = t.relative_id and t.relative_type in ( @u, @v, @sp, @udf, @tr, 77)
			join dbo.sysobjects as obj on obj.id = dp.depid and obj.type in ( 'U', 'V', 'P', 'RF', 'PC', 'TF', 'FN', 'IF', 'TR')
			left join dbo.sysobjects as obj2 on obj2.id = t.relative_id and 77 = t.relative_type
			where @iter_no = t.rank
		set @rows = @rows + @@rowcount

		if @rowcount_ck > 0 
		begin
			delete from #t1 where relative_type = 77
		end
		
		--table or view referenced by trigger
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, tr.parent_obj, case o.type when 'V' then @v else @u end, @iter_no + 1
			from #t1 as t
			join dbo.sysobjects as tr on tr.id = t.relative_id
		   join dbo.sysobjects as o on o.id = tr.parent_obj
			where @iter_no = t.rank and t.relative_type = @tr
		set @rows = @rows + @@rowcount
	
		--table referenced by table
		insert #t1 (object_id, object_type, relative_id, relative_type, rank)
			select t.relative_id, t.relative_type, fk.rkeyid, @u, @iter_no + 1
			from #t1 as t
			join dbo.sysreferences as fk on fk.fkeyid = t.relative_id
			where @iter_no = t.rank and t.relative_type = @u
		set @rows = @rows + @@rowcount

	end
	set @iter_no = @iter_no + 1
end --main loop

--objects that don't need to be in the loop because they don't reference anybody
if( 0 = @find_referencing_objects )
begin
	--alias types referenced by tables 
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, c.xusertype, @uddt, @iter_no + 1
		from #t1 as t
		join dbo.syscolumns as c on  c.id = t.relative_id
		join dbo.systypes as tp on tp.xusertype = c.xusertype and tp.xusertype > 256
		where t.relative_type in ( @u, @sp, @udf )

	if @@rowcount > 0 
	begin
		set @iter_no = @iter_no + 1
	end
	
	--defaults referenced by types
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, tp.tdefault, @def, @iter_no + 1
		from #t1 as t
		join dbo.systypes as tp on tp.xusertype = t.relative_id and tp.tdefault > 0
		join dbo.sysobjects as o on o.id = t.relative_id and (o.category & 0x0800) = 0
		where t.relative_type = @uddt

	--defaults referenced by tables( only default objects )
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, clmns.cdefault, @def, @iter_no + 1
		from #t1 as t
		join dbo.syscolumns as clmns on clmns.id = t.relative_id
		join dbo.sysobjects as o on o.id = clmns.cdefault and (o.category & 0x0800) = 0
		where t.relative_type = @u

	--rules referenced by types
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, tp.domain, @rule, @iter_no + 1
		from #t1 as t
		join dbo.systypes as tp on tp.xusertype = t.relative_id and tp.domain != 0
		where t.relative_type = @uddt

	--rules referenced by tables
	insert #t1 (object_id, object_type, relative_id, relative_type, rank)
		select t.relative_id, t.relative_type, clmns.domain, @rule, @iter_no + 1
		from #t1 as t
		join dbo.syscolumns as clmns on clmns.id = t.relative_id and clmns.domain != 0
		where t.relative_type = @u
end

--cleanup circular references
delete #t1 where object_id = relative_id and object_type=relative_type

--allow circular dependencies by cuting one of the branches
--mark as soft links dependencies between tables
-- at script time we will need to take care to script fks and checks separately
update #t1 set soft_link = 1 where ( object_type = @u and relative_type = @u )

--add independent objects first in the list
insert #t1 ( object_id, object_type, rank) 
	select t.relative_id, t.relative_type, 1 from #t1 t where t.relative_id not in ( select t2.object_id from #t1 t2 where not t2.object_id is null )

--delete initial objects
delete #t1 where object_id is null

update #t1 set rank = 0
-- computing the degree of the nodes
update #t1 set degree = (
		select count(*) 
		from #t1 t_alias 
		where t_alias.object_id = #t1.object_id and 
			t_alias.relative_id is not null and
			t_alias.soft_link is null)

-- perform topological sorting 
set @iter_no=1
while 1=1
begin 
	update #t1 set rank=@iter_no where degree=0
	-- end the loop if no more rows left to process
	if (@@rowcount=0) break
	update #t1 set degree=NULL where rank = @iter_no
	
	update #t1 set degree = (
		select count(*) 
			from #t1 t_alias 
			where t_alias.object_id = #t1.object_id and 
				t_alias.relative_id is not null and 
				t_alias.relative_id in (select t_alias2.object_id from #t1 t_alias2 where t_alias2.rank=0 and t_alias2.soft_link is null) and
				t_alias.rank=0 and t_alias.soft_link is null)
		where degree is not null
		
	set @iter_no=@iter_no+1
end

--add name schema
update #t1 set object_name = o.name, object_schema = user_name(o.uid)
from dbo.sysobjects AS o 
where o.id = object_id and object_type in ( @u, @udf, @v, @sp, @def, @rule)

update #t1 set object_name = o.name, relative_type = case op.type when 'V' then @v else @u end, object_schema = user_name(o.uid), relative_name = op.name, relative_schema = user_name(op.uid)
from dbo.sysobjects AS o 
join dbo.sysobjects AS op on op.id = o.parent_obj
where o.id = object_id and object_type = @tr

update #t1 set object_name = t.name, object_schema = user_name(t.uid)
from dbo.systypes AS t
where t.xusertype = object_id and object_type = @uddt

-- delete objects for which we could not resolve the table name or schema
-- because we may not have enough privileges
delete from #t1 where object_name is null or object_schema is null


--final select
select object_id, object_type, relative_id, relative_type, object_name, object_schema, relative_name, relative_schema
 from #t1 
 order by rank, relative_id

drop table #t1 
drop table #tempdep
 
IF @must_set_nocount_off > 0 
   set nocount off
<?xml version="1.0" ?>
<EnumObject type="OwnedObject" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<version min_major='7' max_major='8'>
		<union>
			<settings>
				<parent_link>
					<link parent='ID' local='PrincipalID' />
				</parent_link>

				<property_link table="sysobjects AS ownobj">ownobj.type not in ( 'K', 'S' )</property_link>
				<property_link left_join="sysobjects AS ownobj_parent">ownobj_parent.id = ownobj.parent_obj</property_link>

				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<version min_major='7' max_major='7'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>@@SERVERNAME</property>
				</version>
				<version min_major='8' max_major='8'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				</version>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>ownobj.type</property>
				<property name="Schema" type="sysname" hidden='true'>user_name(ownobj.uid)</property>
				<property name="ParentName" type="sysname" hidden='true'>ownobj_parent.name</property>
				<property name="ParentSchema" type="sysname" hidden='true'>user_name(ownobj_parent.uid)</property>

				<property name="PrincipalID" type="int" cast='true' hidden='true'>ownobj.uid</property>
			</properties>
		</union>
		<union>
			<settings>
				<parent_link>
					<link parent='Name' local='PrincipalID' />
				</parent_link>

				<property_link table="systypes AS ownobj"/>

				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<version min_major='7' max_major='7'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>@@SERVERNAME</property>
				</version>
				<version min_major='8' max_major='8'>
					<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				</version>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>N'UDDT'</property>
				<property name="Schema" type="sysname" hidden='true'>N'dbo'</property>
				<property name="ParentName" type="sysname" hidden='true'>null</property>
				<property name="ParentSchema" type="sysname" hidden='true'>null</property>

				<property name="PrincipalID" type="sysname" hidden='true'>N'dbo'</property>
			</properties>
		</union>
	</version>
	<version min_major='9' matrix_min_major='10'>
		<union>
			<settings>
				<parent_link>
					<link parent='ID' local='PrincipalID' />
				</parent_link>

				<property_link table="sys.assemblies AS ownobj" />
			
				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>N'ASSEMBLY'</property>
				
				<property name="PrincipalID" type="int" hidden='true'>ownobj.principal_id</property>
			</properties>
		</union>
		<union>
			<settings>
				<parent_link>
					<link parent='ID' local='PrincipalID' />
				</parent_link>

				<property_link table="sys.schemas AS ownobj" />
				
				<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
							triggered_fields='#Type#ServerName#DatabaseName#Name#'/>
			</settings>
			<properties>
				<property name="Urn" type="nvarchar" usage='request'>null</property>
				<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
				<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
				<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
				<property name="Type" type="sysname" hidden='true'>N'SCHEMA'</property>
				
				<property name="PrincipalID" type="int" hidden='true'>ownobj.principal_id</property>
			</properties>
		</union>
	</version>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OwnedObject" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<union>
		<settings>
			<parent_link>
				<link parent='ID' local='SchemaID' />
			</parent_link>
		
			<!-- filter out all objects which in their enumerator representation don't have a schema property -->
      <version min_major='9'>
        <property_link table="sys.all_objects AS ownobj">ownobj.type not in ('PK', 'C ', 'F ', 'UQ') and ( ownobj.type != 'D' or 0 = ownobj.parent_object_id)</property_link>
      </version>
      <version matrix_min_major='10'>
        <property_link table="sys.all_objects AS ownobj">ownobj.type not in ('PK', 'C ', 'F ', 'UQ','SQ','AF') and ( ownobj.type != 'D' or 0 = ownobj.parent_object_id)</property_link>
      </version>
			<property_link left_join="sys.all_objects AS ownobj_parent">ownobj_parent.object_id = ownobj.parent_object_id</property_link>
			
			<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
						triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
		</settings>
		<properties>
			<property name="Urn" type="nvarchar">null</property>
			<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
			<property name="Type" type="sysname" hidden='true'>ownobj.type</property>
			<property name="Schema" type="sysname" hidden='true'>schema_name(ownobj.schema_id)</property>
			<property name="ParentName" type="sysname" hidden='true'>ownobj_parent.name</property>
			<property name="ParentSchema" type="sysname" hidden='true'>schema_name(ownobj_parent.schema_id)</property>
			<property name="SchemaID" type="sysname" hidden='true'>ownobj.schema_id</property>
		</properties>
	</union>
	<union>
		<settings>
			<parent_link>
				<link parent='ID' local='SchemaID' />
			</parent_link>
		
			<property_link table="sys.types AS ownobj">ownobj.schema_id != 4</property_link>
			
			<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
						triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
		</settings>
		<properties>
			<property name="Urn" type="nvarchar">null</property>
			<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
			<property name="Type" type="sysname" hidden='true'>CASE ownobj.system_type_id WHEN 240 THEN N'UDT' ELSE N'UDDT' END</property>
			<property name="Schema" type="sysname" hidden='true'>schema_name(ownobj.schema_id)</property>
			<property name="ParentName" type="sysname" hidden='true'>null</property>
			<property name="ParentSchema" type="sysname" hidden='true'>null</property>
			<property name="SchemaID" type="sysname" hidden='true'>ownobj.schema_id</property>
		</properties>
	</union>
	<union>
		<settings>
			<parent_link>
				<link parent='ID' local='SchemaID' />
			</parent_link>
		
			<property_link table="sys.xml_schema_collections AS ownobj">ownobj.schema_id != 4</property_link>
			
			<post_process fields='#Urn#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwnObjects'
						triggered_fields='#Type#ServerName#DatabaseName#Name#Schema#ParentName#ParentSchema#'/>
		</settings>
		<properties>
			<property name="Urn" type="nvarchar">null</property>
			<property name="ServerName" type="sysname" cast='true' hidden='true'>serverproperty(N'Servername')</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			<property name="Name" type="sysname" hidden='true'>ownobj.name</property>
			<property name="Type" type="sysname" hidden='true'>N'XMLSCHCOL'</property>
			<property name="Schema" type="sysname" hidden='true'>schema_name(ownobj.schema_id)</property>
			<property name="ParentName" type="sysname" hidden='true'>null</property>
			<property name="ParentSchema" type="sysname" hidden='true'>null</property>
			<property name="SchemaID" type="sysname" hidden='true'>ownobj.schema_id</property>
		</properties>
	</union>
</EnumObject>
y<?xml version="1.0"?>
<EnumObject type="FullTextLanguage" impl_type="SqlObject" min_major='9' >
	<settings>
		<property_link table="sys.fulltext_languages AS ftl" />
	</settings>
	<properties>
		<property name="Name" type="sysname" access="Read">ftl.name</property>
		<property name="Lcid" type="int" access="Read">ftl.lcid</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='PerfInfo' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='master.dbo.sysperfinfo AS spi'>spi.cntr_type != 1073939459</property_link>
		</version>
		<version min_major='9' max_major='10'>
      <property_link table='sys.dm_os_performance_counters AS spi'>spi.cntr_type != 1073939712</property_link>
    </version>
    <version min_major='11' matrix_min_major='11'>
      <property_link table='msdb.dbo.sysalerts_performance_counters_view AS spi'>spi.cntr_type != 1073939712</property_link>
    </version>
  </settings>
	<properties>
		<property name='ObjectName' type='nchar' size = '256'>spi.object_name</property>
		<property name='CounterName' type='nchar' size = '256'>spi.counter_name</property>
		<property name='InstanceName' type='nchar' size = '256'>ISNULL(spi.instance_name,N'')</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='PerfInfo' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#temp_agent_perf_info AS spi'/>
		<version min_major='7' max_major='7'>
			<prefix>
DECLARE @instance_name sysname
SELECT @instance_name = null
SELECT @instance_name = N'SQLAgent:'
	        </prefix>
		</version>
		<version min_major='8' matrix_min_major='10'>
			<prefix>
				DECLARE @instance_name sysname
				SELECT @instance_name = CONVERT(sysname, SERVERPROPERTY('InstanceName'))

				IF @instance_name IS NULL
				SELECT @instance_name = N'SQLAgent:'
				ELSE
				SELECT @instance_name = N'MSSQLAgent$' + @instance_name + N':'
			</prefix>
		</version>
		<prefix>
			CREATE TABLE #temp_agent_perf_info(object_name nvarchar(256), counter_name nvarchar(256), instance_name nvarchar(256))
			CREATE TABLE #temp_job_instances (instance_name nvarchar(20))

			INSERT INTO #temp_job_instances VALUES(N'_Total')
			INSERT INTO #temp_job_instances VALUES(N'Schedules')
			INSERT INTO #temp_job_instances VALUES(N'Alerts')
			INSERT INTO #temp_job_instances VALUES(N'Others')

			-- Job object
			INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Active Jobs',	s.instance_name FROM #temp_job_instances s
			INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Successful jobs',	s.instance_name FROM #temp_job_instances s
			INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Failed jobs',	s.instance_name FROM #temp_job_instances s
			INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Successful jobs ratio',	s.instance_name FROM #temp_job_instances s
			INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Jobs launched/min',	s.instance_name FROM #temp_job_instances s
			INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'Jobs' , N'Queued jobs',	s.instance_name FROM #temp_job_instances s

			--JobStep object
		</prefix>
		<version min_major='7' max_major='8'>
			<prefix>
				CREATE TABLE #temp_jobstep_instances (subsystem NVARCHAR(40)   NULL)

				insert #temp_jobstep_instances values('ActiveScripting')
				insert #temp_jobstep_instances values('CmdExec')
				insert #temp_jobstep_instances values('TSQL')

				-- Check if replication is installed
				DECLARE @replication_installed int
			</prefix>
		</version>
		<version min_major='7' max_major='7'>
			<prefix>
				EXECUTE master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Replication', N'IsInstalled', @replication_installed OUTPUT, N'no_output'
			</prefix>
		</version>
		<version min_major='8' max_major='8'>
			<prefix>
				EXECUTE master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Replication', N'IsInstalled', @replication_installed OUTPUT, N'no_output'
			</prefix>
		</version>
		<version min_major='7' max_major='8'>
			<prefix>
				SELECT @replication_installed = ISNULL(@replication_installed, 0)
				if 1 = @replication_installed
				begin
				insert #temp_jobstep_instances values('Distribution')
				insert #temp_jobstep_instances values('LogReader')
				insert #temp_jobstep_instances values('Merge')
				insert #temp_jobstep_instances values('Snapshot')
				end
			</prefix>
		</version>
		<version min_major='8' max_major='8'>
			<prefix>
				if 1 = @replication_installed
				begin
				insert #temp_jobstep_instances values('QueueReader')
				end
			</prefix>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<prefix>
CREATE TABLE #temp_jobstep_instances (subsystem          NVARCHAR(40)   NULL, description        NVARCHAR(80)   NULL, subsystem_dll      NVARCHAR(255)  NULL, agent_exe          NVARCHAR(80)   NULL, start_entry_point  NVARCHAR(30)   NULL, event_entry_point  NVARCHAR(30)   NULL, stop_entry_point   NVARCHAR(30)   NULL, max_worker_threads INT           NULL, subsystem_id       INT			  NULL)
INSERT #temp_jobstep_instances EXEC msdb.dbo.sp_enum_sqlagent_subsystems 			
			</prefix>
		</version>
		<prefix>
INSERT #temp_jobstep_instances ( subsystem ) VALUES (N'_Total') 

INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Active steps',	s.subsystem FROM #temp_jobstep_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Queued steps',	s.subsystem FROM #temp_jobstep_instances s 
INSERT INTO #temp_agent_perf_info SELECT @instance_name + N'JobSteps' , N'Total Step Retries',	s.subsystem FROM #temp_jobstep_instances s 

--Alert object
INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Alert' , N'Activated Alerts',	NULL)
INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Alert' , N'Alerts/min',	NULL)

--General object
INSERT INTO #temp_agent_perf_info VALUES(@instance_name + N'Statistics' , N'Server Restarted',	NULL)
		</prefix>
		<postfix>
DROP TABLE #temp_job_instances
DROP TABLE #temp_agent_perf_info
DROP TABLE #temp_jobstep_instances
		</postfix>
	</settings>
	<properties>
		<property name='ObjectName' type='nchar' size = '256'>spi.object_name</property>
		<property name='CounterName' type='nchar' size = '256'>spi.counter_name</property>
		<property name='InstanceName' type='nchar' size = '256'>ISNULL(spi.instance_name,N'')</property>
	</properties>
</EnumObject>
*<?xml version='1.0' ?>
<EnumObject type='ServerActiveDirectory' impl_type='SqlObject' min_major='8' max_major='10' max_minor='50'>
	<settings>
		<property_link table='#temp_ad AS ad'/>
		<prefix fields="#IsRegistered#">
			declare @scmPath sysname
			select @scmPath = N'Software\Microsoft\MSSQLServer\SQLServerSCP'
			declare @SmoActiveDirectory sysname
			exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @scmPath, N'objectGUID', @SmoActiveDirectory OUTPUT
		</prefix>
		<prefix>
		    DECLARE @res INT
			CREATE table #temp_ad(result BIT)
			EXECUTE @res = master.dbo.xp_MSADEnabled
			if @res = 0
			    INSERT INTO #temp_ad VALUES (1)
			else
			    INSERT INTO #temp_ad VALUES (0)
		</prefix>
		<postfix>
			DROP table #temp_ad
		</postfix>
	</settings>
	<properties>
		<property name='IsEnabled' type='bit' cast='true' access='Read'>ad.result</property>
		<property name='IsRegistered' type='bit' cast='true' access='Read'>CASE WHEN (@SmoActiveDirectory IS NULL) THEN 0 ELSE 1 END</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='DatabaseActiveDirectory' impl_type='SqlObject' min_major='8' max_major='10' max_minor='50' >
	<settings>
		<prefix fields="#IsRegistered#">
			declare @SmoActiveDirectory sysname
			declare @RegPath nvarchar(1024)
			select @RegPath = N'Software\Microsoft\MSSQLServer\SQLServerSCP\' + db_name()
			exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @RegPath, N'objectGUID', @SmoActiveDirectory OUTPUT
		</prefix>
	</settings>
	<properties>
		<property name='IsRegistered' type='bit' cast='true' access='Read'>CASE WHEN (@SmoActiveDirectory IS NULL) THEN 0 ELSE 1 END</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<parent_link>
				<link_multiple no="3" expression="(prmssn.protecttype in (204,206) or     /*grant exists without same grant with grant */
(prmssn.protecttype = 205 and not exists(select * from dbo.sysprotects p2 where p2.id = prmssn.id and p2.uid = prmssn.uid and p2.action = prmssn.action and p2.columns = prmssn.columns and p2.grantor = prmssn.grantor and p2.protecttype = 204)))
and prmssn.action in (26,193,197) and prmssn.id = {1}
and	(((convert(tinyint,substring(prmssn.columns,1,1))&amp;1) = 0 and (convert(int,substring(prmssn.columns,{0}/8+1,1))&amp;power(2,{0}&amp;7)) != 0)
or ((convert(tinyint,substring(prmssn.columns,1,1))&amp;1) != 0 and (convert(int,substring(prmssn.columns,{0}/8+1,1))&amp;power(2,{0}&amp;7)) = 0))
and 0 != (permissions({1}, {2}) &amp; case prmssn.action when 26  then 4         /*REFERENCES basebit */ when 193 then 1 /*SELECT basebit */ when 197 then 2 /*UPDATE basebit */end)">
					<link_field type="parent" field="ID" />
					<link_field type="parent" field="ParentID" />
					<link_field type="parent" field="Name" />
				</link_multiple>
			</parent_link>
		</version>
		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>		
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
		
		<property name="ColumnName" type="sysname">
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="Name" />
			</link_multiple>
		</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings distinct='true'>
		<parent_link>
			<link parent="Name" local="Grantee" />
		</parent_link>
		<property_link table='dbo.sysusers usr, master.dbo.spt_values spv'>
			usr.uid &gt;= 16384 and
			usr.uid &lt;= 16393 and
			spv.type = 'DBR' and
			((usr.uid = 16384 and spv.number &gt;= 16384 and spv.number &lt; 16392) or (usr.uid &lt;&gt; 16384 and usr.uid = spv.number)) and
			spv.low &gt; 0		
		</property_link>
	</settings>
	<properties>
		<property name="Grantee" type="sysname">usr.name</property>
		<property name="Description" type="sysname">spv.name</property>		
	</properties>
</EnumObject>\<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major = '7' max_major = '8'>
			<property_link>prmssn.id = 0</property_link>
		</version>		
		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<property_link>prmssn.class = 0</property_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'DatabasePermissionSetValue'>null</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major = '7' max_major = '8'>
			<property_link  table="dbo.sysprotects AS prmssn"/>
			<property_link fields='#CodeDescription#' 
						join='master.dbo.spt_values AS val1'>val1.number = prmssn.protecttype and val1.type = 'T'</property_link>
			<property_link fields='#StateDescription#' 
						join='master.dbo.spt_values AS val2'>val2.number = prmssn.action and val2.type = 'T'</property_link>
			<property_link fields = '#Grantee#GranteeType#Name#' 
					join = 'sysusers AS grantee_principal'>grantee_principal.uid = prmssn.uid</property_link>
			<property_link fields = '#Grantor#GrantorType#Name#' 
					join = 'sysusers AS grantor_principal'>grantor_principal.uid = prmssn.grantor</property_link>
			<post_process fields='#Code#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessPermissionCode'
					triggered_fields='#SqlCodePP#'/>
		</version>

		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table = 'sys.{0}_permissions AS prmssn'/>
			<property_link fields = '#Grantee#GranteeType#Name#' 
					join = 'sys.{0}_principals AS grantee_principal'>grantee_principal.principal_id = prmssn.grantee_principal_id</property_link>
			<property_link fields = '#Grantor#GrantorType#Name#' 
					join = 'sys.{0}_principals AS grantor_principal'>grantor_principal.principal_id = prmssn.grantor_principal_id</property_link>
			<post_process fields='#Code#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessPermissionCode'
					triggered_fields='#SqlCodePP#HiddenObjectClass#'/>
		</version>
		
	</settings>
	<properties>
		<version min_major = '7' max_major = '8'>
			<property name="Name" type="nvarchar" size = '512'>grantee_principal.name + N'_' + 
                    convert(nvarchar(10), (CASE when 1 = grantee_principal.issqlrole THEN 3 WHEN 1 = grantee_principal.isapprole THEN 4 ELSE 2 END)) + N'_' + 
                    grantor_principal.name + N'_' +
                    convert(nvarchar(10), (CASE when 1 = grantor_principal.issqlrole THEN 3 WHEN 1 = grantor_principal.isapprole THEN 4 ELSE 2 END)) + N'_' +
                    convert(nvarchar(10), (prmssn.id)) + N'_' +
                    convert(nvarchar(10), prmssn.protecttype) + N'_' +
                    convert(nvarchar(10), prmssn.action)
            </property>
			<property name="Grantee" type="sysname">grantee_principal.name</property>
			<property name="GranteeType" type="int" report_type='PrincipalType'
>CASE when 1 = grantee_principal.issqlrole THEN 3 WHEN 1 = grantee_principal.isapprole THEN 4 ELSE 2 END</property>
			<property name="Grantor" type="sysname">grantor_principal.name</property>
			<property name="GrantorType" type="int" report_type='PrincipalType'
>CASE when 1 = grantor_principal.issqlrole THEN 3 WHEN 1 = grantor_principal.isapprole THEN 4 ELSE 2 END</property>
			<property name="ObjectClass" type="int"  
								report_type = 'ObjectClass'>CASE prmssn.id WHEN 0 THEN 0 ELSE 1 END </property>		
			<!--	Grant_WGO	204		ascii('W')
					Grant		205		ascii('G')
					Deny		206		ascii('D')	-->
			<property name="PermissionState" type="int" 
				report_type = "PermissionState">CASE prmssn.protecttype WHEN 204 THEN 87 WHEN 205 THEN 71 WHEN 206 THEN 68 END</property>
			
			<!-- mark them expensive, we only want them used in special cases -->
			<property name="IntCode" type="int" expensive='true' cast='true'>prmssn.protecttype</property>			
			<property name="CodeDescription" type="nvarchar" size='100' expensive='true'>val1.name</property>		
			<property name="StateDescription" type="nvarchar" size='100' expensive='true'>val2.name</property>		
			
			<!-- hidden properties -->
			<property name="TrueObjectClass" type="int" hidden='true'>CASE prmssn.id WHEN 0 THEN 0 ELSE 1 END </property>		
			<property name="SqlCodePP" type="int" cast='true'  hidden='true'>prmssn.action</property>
			<property name="MajorID" type="int" hidden='true'>prmssn.id</property>
		</version>
	
		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Name" type="nvarchar" size = '512'>grantee_principal.name + N'_' + 
                    convert(nvarchar(10), (CASE grantee_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END)) + N'_' + 
                    grantor_principal.name + N'_' +
                    convert(nvarchar(10), (CASE grantor_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END)) + N'_' +
                    convert(nvarchar(10), (CASE WHEN (prmssn.class=4 or prmssn.class=100 )THEN CASE (SELECT oc.type FROM sys.{0}_principals AS oc WHERE oc.principal_id = prmssn.major_id) WHEN 'R' THEN 201 WHEN 'A' THEN 202 ELSE 200 END + CASE prmssn.class WHEN 4 THEN 0 ELSE 100 END ELSE prmssn.class END)) + N'_' +
                    convert(nvarchar(10), ascii(prmssn.state)) + N'_' +
                    convert(varchar(10), convert(varbinary(10), prmssn.type))
            </property>
			<property name="Grantee" type="sysname">grantee_principal.name</property>
			<property name="GranteeType" type="int" report_type='PrincipalType'
>CASE grantee_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END</property>
			<property name="Grantor" type="sysname">grantor_principal.name</property>
			<property name="GrantorType" type="int" report_type='PrincipalType'
>CASE grantor_principal.type WHEN 'R' THEN 3 WHEN 'A' THEN 4 ELSE 2 END - CASE '{0}' WHEN  'database' THEN 0 ELSE 2 END</property>
			<property name="ObjectClass" type="int" report_type = 'ObjectClass'
>CASE WHEN (prmssn.class=4 or prmssn.class=101 ) THEN CASE (SELECT oc.type FROM sys.{0}_principals AS oc WHERE oc.principal_id = prmssn.major_id) WHEN 'R' THEN CASE prmssn.class WHEN 4 THEN 201 ELSE 301 END WHEN 'A' THEN 202 ELSE CASE prmssn.class WHEN 4 THEN 200 ELSE 101 END END ELSE prmssn.class END</property>		
			<property name="PermissionState" type="int" report_type = "PermissionState">ascii(prmssn.state)</property>			
			
			<!-- mark them expensive, we only want them used in special cases -->
			<property name="StringCode" type="char" size='4' expensive='true'>prmssn.type</property>
			<property name="StringState" type="char" size='1' expensive='true'>prmssn.state</property>		

			<!-- hidden properties -->
      <property name="HiddenObjectClass" type="int" hidden='true'
>CASE WHEN (prmssn.class=4 or prmssn.class=101 ) THEN CASE (SELECT oc.type FROM sys.{0}_principals AS oc WHERE oc.principal_id = prmssn.major_id) WHEN 'R' THEN CASE prmssn.class WHEN 4 THEN 201 ELSE 301 END WHEN 'A' THEN 202 ELSE CASE prmssn.class WHEN 4 THEN 200 ELSE 101 END END ELSE prmssn.class END</property>
			<property name="TrueObjectClass" type="int" hidden='true'>prmssn.class</property>		
			<property name="SqlCodePP" type="char" size='4' hidden='true'>prmssn.type</property>				
			<property name="MajorID" type="int" hidden='true'>prmssn.major_id</property>
			<property name="MinorID" type="int" hidden='true'>prmssn.minor_id</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
			</parent_link>
		</version>

		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="MajorID" />		
			<link parent="PermissionClass" local="TrueObjectClass" />
		</parent_link>
	</settings>
	<properties>
		<include file='inc_perm.xml'  alias='server'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<version min_major = '9' matrix_min_major='10'>
			<property_link>prmssn.class = 100</property_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='server'/>
		<property name="Code" type="int" report_type = 'ServerPermissionSetValue'>null</property>
		
	</properties>
</EnumObject>
U<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<include file='ShilohYukonPerm.xml' />
		<version min_major = '7' max_major = '8'>
			<property_link table = 'master.dbo.spt_values a'>
				(( prmssn.action in (193, 197) and ((prmssn.columns &amp; 1) = 1) ) or ( prmssn.action in (195, 196, 224, 26) ))
				and (convert(tinyint, substring( isnull(prmssn.columns, 0x01), a.low, 1)) &amp; a.high != 0)
				and a.type = N'P'
				and a.number = 0
			</property_link>
		</version>
		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<property_link>prmssn.minor_id = 0</property_link>
		</version>
	</settings>
	<properties>
		<property name="Dummy" type="nvarchar" size="300" hidden='true'/>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major = '9' matrix_min_major='10' cloud_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
		
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' cloud_min_major='10' matrix_min_major='10'>
<settings>
		<version min_major = '9' cloud_min_major='10' matrix_min_major='10'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
				<link parent="ExtPropMinorID" local="MinorID" />
				<link parent="ExtPropClass" local="TrueObjectClass" />
			</parent_link>
		</version>		
	</settings>
	<properties>
		<include file='inc_perm.xml' alias='database'/>
		<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10' matrix_min_major='10'>
	<union>
		<settings>
			<include file='inc_perm.xml' alias='database'/>
			<version min_major = '9' cloud_min_major='10' matrix_min_major='10'>
				<property_link fields = '#ObjectName#ObjectSchema#ObjectType#' join = 'sys.all_objects AS obj'>obj.object_id = prmssn.major_id and prmssn.class = 1</property_link>
			</version>
      <version min_major = '7' max_major = '8'>
        <property_link fields = '#ObjectName#ObjectSchema#ObjectType#ObjectID#' join = 'dbo.sysobjects AS obj'>obj.id = prmssn.id</property_link>
      </version>
		</settings>
		<properties>
			<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

			<version min_major = '7' max_major = '8'>
				<property name="ObjectName" type="sysname">object_name(obj.id)</property>
				<property name="ObjectSchema" type="sysname">user_name(obj.uid)</property>
				<property name="ColumnName" type="sysname">null</property>
				<property name="ObjectID" type="int">obj.id</property>
				<property name="ObjectType" type="char" size='2'>obj.type</property>
				<property name="IsTableType" type="bit">0</property>
			</version>
			
			<version min_major = '9' cloud_min_major='10' matrix_min_major='10'>
				<property name="ObjectName" type="sysname">obj.name</property>
				<property name="ObjectSchema" type="sysname">schema_name(obj.schema_id)</property>
				<property name="ColumnName" type="sysname">COL_NAME(prmssn.major_id,prmssn.minor_id)</property>
				<property name="ObjectID" type="int">prmssn.major_id</property>
				<property name="ObjectType" type="char" size='2'>obj.type</property>
				<property name="IsTableType" type="bit">0</property>
			</version>
		</properties>
	</union>
  <version min_major = '9' cloud_min_major='10' matrix_min_major='10'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.schemas AS obj'>obj.schema_id = prmssn.major_id and prmssn.class = 3</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.database_principals AS obj'>obj.principal_id = prmssn.major_id and prmssn.class = 4</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
  </version>
  <version min_major='9' matrix_min_major='10'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.assemblies AS obj'>obj.assembly_id = prmssn.major_id and prmssn.class = 5</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
  </version>
  <version min_major = '9' cloud_min_major='10' matrix_min_major='10'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#ObjectSchema#IsTableType#' join = 'sys.types AS obj'>obj.user_type_id = prmssn.major_id and prmssn.class = 6</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">SCHEMA_NAME(obj.schema_id)</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <version min_major = '9' max_major ='9'>
          <property name="IsTableType" type="bit">0</property>
        </version>
        <version min_major = '10' cloud_min_major='10' matrix_min_major='10'>
          <property name="IsTableType" type="bit">obj.is_table_type</property>
        </version>
      </properties>
    </union>
  </version>
  <version min_major='9'>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='database'/>
        <property_link fields = '#ObjectName#' join = 'sys.fulltext_catalogs AS obj'>obj.fulltext_catalog_id = prmssn.major_id and prmssn.class = 23</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>

        <property name="ObjectName" type="sysname">obj.name</property>
        <property name="ObjectSchema" type="sysname">null</property>
        <property name="ColumnName" type="sysname">null</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>null</property>
        <property name="IsTableType" type="bit">0</property>
      </properties>
    </union>
  </version>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<union>
		<settings>
			<include file='inc_perm.xml' alias='server'/>

            <property_link fields = '#ObjectName#' 
					join = 'sys.server_principals' alias = 'sp'>sp.principal_id = prmssn.major_id and prmssn.class = 101</property_link>
      <prefix >
        use [master];
      </prefix>
        </settings>
		<properties>
			<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
			<property name="ObjectName" type="sysname">sp.name</property>
			<property name="ObjectSchema" type="sysname">NULL</property>
			<property name="ColumnName" type="sysname">NULL</property>
			<property name="ObjectID" type="int">prmssn.major_id</property>
            <property name="ObjectType" type="char" size='2'>NULL</property>
		</properties>
	</union>
	<union>
		<settings>
			<include file='inc_perm.xml' alias='server'/>
			
			<property_link fields = '#ObjectName#' 
					join = 'sys.certificates' alias = 'c'>c.certificate_id = prmssn.major_id and prmssn.class = 106</property_link>

        </settings>
		<properties>
			<property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
			
			<property name="ObjectName" type="sysname">c.name</property>
			<property name="ObjectSchema" type="sysname">NULL</property>
			<property name="ColumnName" type="sysname">NULL</property>
			<property name="ObjectID" type="int">prmssn.major_id</property>
            <property name="ObjectType" type="char" size='2'>NULL</property>
        </properties>
    </union>
    <union>
        <settings>
            <include file='inc_perm.xml' alias='server'/>
            <property_link 
                fields = '#ObjectName#' 
                join = 'sys.endpoints' 
                alias = 'e'>e.endpoint_id = prmssn.major_id and prmssn.class = 105</property_link>
        </settings>
        <properties>
            <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
            <property name="ObjectName" type="sysname">e.name</property>
            <property name="ObjectSchema" type="sysname">NULL</property>
            <property name="ColumnName" type="sysname">NULL</property>
            <property name="ObjectID" type="int">prmssn.major_id</property>
            <property name="ObjectType" type="char" size='2'>NULL</property>
		</properties>
	</union>
    <union>
      <settings>
        <include file='inc_perm.xml' alias='server'/>
        <property_link
            fields = '#ObjectName#'
            join = 'sys.servers'
            alias = 'svr'>svr.server_id = prmssn.major_id and prmssn.class = 100</property_link>
      </settings>
      <properties>
        <property name="Code" type="int" report_type = 'ObjectPermissionSetValue'>null</property>
        <property name="ObjectName" type="sysname">svr.name</property>
        <property name="ObjectSchema" type="sysname">NULL</property>
        <property name="ColumnName" type="sysname">NULL</property>
        <property name="ObjectID" type="int">prmssn.major_id</property>
        <property name="ObjectType" type="char" size='2'>NULL</property>
      </properties>
    </union>  
</EnumObject><?xml version="1.0" ?>
<EnumObject type="SystemMessage" impl_type="SqlObject" min_major='7'  matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table = 'master.dbo.sysmessages AS sms'>sms.error &lt; 50001</property_link>
			<property_link fields='#Language#' left_join='syslanguages AS sl '>sms.msglangid = sl.lcid</property_link>
		</version>
		<version min_major='9'  matrix_min_major='10'>
			<property_link table="sys.messages AS sms" >sms.message_id &lt; 50001</property_link>
			<property_link fields='#Language#' left_join='sys.syslanguages AS sl '>sms.language_id = sl.lcid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn_message.xml' />
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" access="Read" key_index="1">sms.error</property>
			<property name="IsLogged" type="bit" cast='true' access="Read">sms.dlevel</property>
			<property name="Severity" type="tinyint" access="Read" cast="true">sms.severity</property>
			<property name="Text" type="nvarchar" size="255"  access="Read">sms.description</property>
			<property name="LanguageID" type="int" access="Read" cast='true'>sms.msglangid</property>
			<property name="Language" type="sysname" access="Read" key_index="0">sl.name</property>
		</version>
		
		<version min_major='9'  matrix_min_major='10'>
			<property name="ID" type="int" access="Read" cast='true' key_index="1">sms.message_id</property>
			<property name="IsLogged" type="bit" cast='true' access="Read">sms.is_event_logged</property>
			<property name="Severity" type="tinyint" access="Read" cast="true">sms.severity</property>
			<property name="Text" type="nvarchar" size="255"  access="Read">sms.text</property>
			<property name="LanguageID" type="int" access="Read" cast='true'>sms.language_id</property>
			<property name="Language" type="sysname" access="Read" key_index="0">sl.name</property>
		</version>
	</properties>
</EnumObject>

Q<?xml version="1.0" ?>
<EnumObject type="UserDefinedMessage" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
  <settings>
    <version min_major='7' max_major='8'>
      <property_link table = 'master.dbo.sysmessages AS sms'>sms.error &gt; 50000</property_link>
      <property_link fields='#Language#' left_join='master.dbo.syslanguages AS sl '>sms.msglangid = sl.lcid</property_link>
    </version>
    <version min_major='9' matrix_min_major='10'>
      <property_link table="sys.messages AS sms" >sms.message_id &gt; 50000</property_link>
      <property_link fields='#Language#' left_join='sys.syslanguages AS sl '>sms.language_id = sl.lcid</property_link>
    </version>
  </settings>
  <properties>
    <include file='inc_urn_message.xml' />
    <version min_major='7' max_major='8'>
      <property name="ID" type="int" access='rw' read_only_after_creation="true" key_index ="1">sms.error</property>
      <property name="IsLogged" type="bit" cast='true' >sms.dlevel</property>
      <property name="Severity" type="int" cast="true">sms.severity</property>
      <property name="Text" type="nvarchar" size="255"  >sms.description</property>
      <property name="LanguageID" type="int" cast="true" read_only_after_creation="true">sms.msglangid</property>
      <property name="Language" type="sysname" read_only_after_creation="true" key_index ="0">sl.name</property>
    </version>

    <version min_major='9' matrix_min_major='10'>
      <property name="ID" type="int" access='rw' read_only_after_creation="true" key_index ="1">sms.message_id</property>
      <property name="IsLogged" type="bit" cast='true' >sms.is_event_logged</property>
      <property name="Severity" type="int" cast="true">sms.severity</property>
      <property name="Text" type="nvarchar" size="255"  >sms.text</property>
      <property name="LanguageID" type="int" cast="true" read_only_after_creation="true">sms.language_id</property>
      <property name="Language" type="sysname" read_only_after_creation="true" key_index ="0">sl.name</property>
    </version>
  </properties>
</EnumObject>


<?xml version="1.0" ?>
<EnumObject type="Collation" impl_type="SqlObject" min_major='9' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<property_link table='sys.synonyms' alias='s' />
		<post_process fields='#BaseServer#BaseDatabase#BaseSchema#BaseObject#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessSplitFourPartName'
			triggered_fields='#BaseObjectName#' />
	</settings>
	<properties>
		<include file='inc_object.xml' alias='s' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#' />

    <version min_major='9'>
      <property name="BaseServer" type="nvarchar" usage='request' read_only_after_creation="true" mode="deploy">N''</property>
    </version>
		<property name="BaseDatabase" type="nvarchar" usage='request' read_only_after_creation="true" mode="design">N''</property>
		<property name="BaseSchema" type="nvarchar" usage='request' read_only_after_creation="true" mode="design">N''</property>
		<property name="BaseObject" type="nvarchar" usage='request' read_only_after_creation="true" mode="design">N''</property>
		<property name="BaseObjectName" type="nvarchar" size='1035' hidden='true'>s.base_object_name</property>
		<property name="BaseType" type="int" access='read' report_type="SynonymBaseType">
			CASE OBJECTPROPERTYEX(s.object_id,'BaseType') 
				WHEN N'U' THEN 1 
				WHEN N'V' THEN 2 
				WHEN N'P' THEN 3 
				WHEN N'FN' THEN 4 
				WHEN N'TF' THEN 5 
				WHEN N'IF' THEN 6 
				WHEN N'X' THEN 7 
				WHEN N'RF' THEN 8 
				WHEN N'PC' THEN 9 
				WHEN N'FS' THEN 10 
				WHEN N'FT' THEN 11 
				WHEN N'AF' THEN 12 ELSE 0 END
		</property>
		<version min_major='10'  matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
~<?xml version="1.0" ?>
<EnumObject type="Sequence" impl_type="SqlObject" min_major='11'>
	<settings>
		<property_link table='sys.sequences' alias='seq' />
	</settings>
	<properties>
		<include file='inc_object.xml' alias='seq' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#' />
    <include file='inc_type.xml' alias='seq' for='#DataType#NumericPrecision#NumericScale#DataTypeSchema#SystemType#' ro_after_creation='#DataType#NumericPrecision#NumericScale#DataTypeSchema#SystemType#'/>
    <property name="StartValue" type="sql_variant" >ISNULL(seq.start_value,N'')</property>
    <property name="IncrementValue" type="sql_variant" >ISNULL(seq.increment,N'')</property>
    <property name="MinValue" type="sql_variant" >ISNULL(seq.minimum_value,N'')</property>
    <property name="MaxValue" type="sql_variant" >ISNULL(seq.maximum_value,N'')</property>
    <property name="IsCycleEnabled" type="bit" cast='true' >seq.is_cycling</property>
    <property name="SequenceCacheType" type="int" report_type="SequenceCacheType" cast='true'>case when seq.is_cached = 0 then 1 when seq.cache_size IS NULL then 0 else 2 end</property>
    <property name="CacheSize" type="int"  >ISNULL(seq.cache_size,0)</property>
    <!--<property name="CurrentPersistedValue" type="sql_variant" >ISNULL(seq.persisted_value,N'')</property>-->
    <property name="CurrentValue" type="sql_variant" access="Read">ISNULL(seq.current_value,N'')</property>
    <property name="IsExhausted" type="bit" cast='true' access="Read">seq.is_exhausted</property>
	
		<include file='inc_policy_health_state.xml'/>		
  </properties>
</EnumObject>



<?xml version="1.0" ?>
<EnumObject type="Federation" impl_type="SqlObject" min_major='11' cloud_min_major='10'>
	<settings>
		<property_link table='sys.federations' alias='fed' />
    <property_link left_join="sys.federation_distributions AS dis">fed.federation_id = dis.federation_id</property_link>
	</settings>
	<properties>
    <include file='inc_urn.xml' />
    <include file='inc_type.xml' alias='dis' for='#DataType#NumericPrecision#NumericScale#DataTypeSchema#SystemType#Length#' ro_after_creation='#DataType#NumericPrecision#NumericScale#DataTypeSchema#SystemType#Length#'/>
    <property name='Name' type='sysname'>fed.name</property>
    <property name="ID" type="int" access='Read'>fed.federation_id</property>
    <property name='DistributionName' type='sysname'>dis.distribution_name</property>    
    <property name="DistributionType" type="int" report_type="DistributionType" cast='true'>case when dis.distribution_type = N'RANGE' then 0 end</property>
  </properties>
</EnumObject>



<?xml version="1.0" ?>
<EnumObject type="Inc_Fragmentation" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='7' max_major='7'>
			<post_process class_name='Microsoft.SqlServer.Management.Smo.PostProcessFragmentation'
						triggered_fields='#IndexID#TableID#DatabaseName#'/>
		</version>

		<version min_major='8' max_major='8'>
			<parent_link>
				<link parent='Name' local='IndexName' />
			</parent_link>

			<request_parent_select>
				<field name='ParentID' />
				<field name='Name' />
			</request_parent_select>
			<property_link table="#contig_tmp as fi" />

			<postfix>
				drop table #contig_tmp
			</postfix>
		</version>

		<version min_major='9' matrix_min_major='10'>
			<parent_link>
				<link parent='TableID' local='TableID' />
				<link parent='IndexID' local='IndexID' />
			</parent_link>
			
			<property_link expression_is_for_table_name='true' alias='fi'>
				<link_multiple no='1' expression="sys.dm_db_index_physical_stats(@database_id, NULL, NULL, NULL, '{0}')">
					<link_field type='local' field="FragmentationLevel" />
				</link_multiple>
			</property_link>

			<prefix>
declare @database_id int
select @database_id = db_id()
			</prefix>

		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='7'>
			<property name="IndexID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ID" />
				</link_multiple>
			</property>
			<property name="TableID" type="int" hidden='true'>
				<link_multiple no='1' expression="{0}">
					<link_field type='parent' field="ParentID" />
				</link_multiple>
			</property>
			<property name="DatabaseName" type="sysname" hidden='true'>db_name()</property>
			
			<property name="Pages" type="int">null</property>
			<property name="Extents" type="int">null</property>
			<property name="ExtentSwitches" type="int">null</property>
			<property name="AverageFreeBytes" type="float">null</property>
			<property name="AveragePageDensity" type="float">null</property>
			<property name="ScanDensity" type="float">null</property>
			<property name="LogicalFragmentation" type="float">null</property>
			<property name="ExtentFragmentation" type="float">null</property>
		</version>
		<version min_major='8' max_major='8'>		
			<property name="IndexName" type="sysname" hidden='true' cast='true'>cast(fi.IndexName as varbinary(256))</property>
			<property name="Depth" type="tinyint">fi.Level</property>
			<property name="Pages" type="bigint">fi.Pages</property>
			<property name="Rows" type="bigint">fi.Rows</property>
			<property name="MinimumRecordSize" type="int">fi.MinimumRecordSize</property>
			<property name="MaximumRecordSize" type="int">fi.MaximumRecordSize</property>
			<property name="AverageRecordSize" type="float">fi.AverageRecordSize</property>
			<property name="ForwardedRecords" type="bigint">fi.ForwardedRecords</property>
			<property name="Extents" type="int">fi.Extents</property>
			<property name="ExtentSwitches" type="int">fi.ExtentSwitches</property>
			<property name="AverageFreeBytes" type="float">fi.AverageFreeBytes</property>			
			<property name="AveragePageDensity" type="float">fi.AvgPageFullness</property>
			<property name="ScanDensity" type="float">fi.ScanDensity</property>
			<property name="BestCount" type="int">fi.BestCount</property>
			<property name="ActualCount" type="int">fi.ActualCount</property>
			<property name="LogicalFragmentation" type="float">fi.LogicalFragmentation</property>
			<property name="ExtentFragmentation" type="float">fi.ExtentFragmentation</property>		
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="IndexID" type="int" hidden='true'>fi.index_id</property>
			<property name="TableID" type="int" hidden='true'>fi.object_id</property>
			<property name="Depth" type="tinyint">fi.index_depth</property>
			<property name="Pages" type="bigint">fi.page_count</property>
			<property name="Rows" type="bigint">fi.record_count</property>
			<property name="MinimumRecordSize" type="int">fi.min_record_size_in_bytes</property>
			<property name="MaximumRecordSize" type="int">fi.max_record_size_in_bytes</property>
			<property name="AverageRecordSize" type="float">fi.avg_record_size_in_bytes</property>
			<property name="ForwardedRecords" type="bigint">fi.forwarded_record_count</property>
			<property name="AveragePageDensity" type="float">fi.avg_page_space_used_in_percent</property>
			<property name="IndexType" type="nvarchar" size="30">fi.index_type_desc</property>
			<property name="PartitionNumber" type="int">fi.partition_number</property>
			<property name="GhostRows" type="bigint">fi.ghost_record_count</property>
			<property name="VersionGhostRows" type="bigint">fi.version_ghost_record_count</property>
			<property name="AverageFragmentation" type="float">fi.avg_fragmentation_in_percent</property>
		</version>
	</properties>
</EnumObject>
P<?xml version="1.0" ?>
<EnumObject type="FragmentationFast" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>

		<version min_major='8' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #contig_tmp(ObjectName char(255) null, ObjectId int null, IndexName sysname null,
		IndexId int null, Level tinyint null, Pages bigint null, Rows bigint null, MinimumRecordSize int null,
		MaximumRecordSize int null, AverageRecordSize float null, ForwardedRecords bigint null, Extents int null,
		ExtentSwitches int null, AverageFreeBytes float null, AvgPageFullness float null, ScanDensity float null, 
		BestCount int null, ActualCount int null, LogicalFragmentation float null, ExtentFragmentation float null)				

declare @IdxName sysname
declare @TableId int
declare @execStr nvarchar(255)

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @TableId, @IdxName
while @@fetch_status &gt;= 0 
begin 
    set @execStr = 'DBCC SHOWCONTIG (' + QUOTENAME(object_name(@TableId), '''') + ',' + QUOTENAME(@IdxName, '''') + ') WITH TABLERESULTS, FAST'
    insert into #contig_tmp exec sp_executesql @execStr
	fetch crs into @TableId, @IdxName
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
	</settings>

	<properties>
		<include file='inc_IndexFrag.xml' />
		<version min_major='9' matrix_min_major='10'>
			<property name="FragmentationLevel" type="sysname" hidden='true'>LIMITED</property>
		</version>
	</properties>
</EnumObject>
K<?xml version="1.0" ?>
<EnumObject type="FragmentationSampled" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #contig_tmp(ObjectName char(255) null, ObjectId int null, IndexName sysname null,
		IndexId int null, Level tinyint null, Pages bigint null, Rows bigint null, MinimumRecordSize int null,
		MaximumRecordSize int null, AverageRecordSize float null, ForwardedRecords bigint null, Extents int null,
		ExtentSwitches int null, AverageFreeBytes float null, AvgPageFullness float null, ScanDensity float null, 
		BestCount int null, ActualCount int null, LogicalFragmentation float null, ExtentFragmentation float null)				

declare @IdxName sysname
declare @TableId int
declare @execStr nvarchar(255)

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @TableId, @IdxName
while @@fetch_status &gt;= 0 
begin 
    set @execStr = 'DBCC SHOWCONTIG (' + QUOTENAME(object_name(@TableId), '''') + ',' + QUOTENAME(@IdxName, '''') + ') WITH TABLERESULTS'
    insert into #contig_tmp exec sp_executesql @execStr
	fetch crs into @TableId, @IdxName
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
	</settings>
	<properties>
		<include file='inc_IndexFrag.xml' />
		<version min_major='9' matrix_min_major='10'>
			<property name="FragmentationLevel" type="sysname" hidden='true'>SAMPLED</property>
		</version>
	</properties>
</EnumObject>

K<?xml version="1.0" ?>
<EnumObject type="FragmentationDetailed" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<prefix>
				<link_multiple no='1' expression="
create table #contig_tmp(ObjectName char(255) null, ObjectId int null, IndexName sysname null,
		IndexId int null, Level tinyint null, Pages bigint null, Rows bigint null, MinimumRecordSize int null,
		MaximumRecordSize int null, AverageRecordSize float null, ForwardedRecords bigint null, Extents int null,
		ExtentSwitches int null, AverageFreeBytes float null, AvgPageFullness float null, ScanDensity float null, 
		BestCount int null, ActualCount int null, LogicalFragmentation float null, ExtentFragmentation float null)				

declare @IdxName sysname
declare @TableId int
declare @execStr nvarchar(255)

declare crs insensitive cursor 
	for ( {0} ) 
for read only 
open crs 
fetch crs into @TableId, @IdxName
while @@fetch_status &gt;= 0 
begin 
    set @execStr = 'DBCC SHOWCONTIG (' + QUOTENAME(object_name(@TableId), '''') + ',' + QUOTENAME(@IdxName, '''') + ') WITH TABLERESULTS'
    insert into #contig_tmp exec sp_executesql @execStr
	fetch crs into @TableId, @IdxName
end 
close crs
deallocate crs">
					<link_field field="ParentSelect" />
				</link_multiple>
			</prefix>
		</version>
	</settings>
	<properties>
		<include file='inc_IndexFrag.xml' />
		<version min_major='9' matrix_min_major='10'>
			<property name="FragmentationLevel" type="sysname" hidden='true'>DETAILED</property>
		</version>
	</properties>
</EnumObject>
T<?xml version="1.0" ?>
<EnumObject type="inc_urn_message" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{1}[@ID=' + cast ({2} as nvarchar(20)) + ' and @Language=' + quotename({3},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field field="NType" />				
				<link_field type='local' field="ID" />
				<link_field type='local' field="Language" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>
%<?xml version="1.0" ?>
<EnumObject type="Database" impl_type="Database" min_major='7' matrix_min_major='10' cloud_min_major='10'>
    <settings>
        <version min_major='9' >
            <property_link fields = '#MirroringRedoQueueMaxSize#MirroringTimeout#'
					left_join='sys.database_mirroring AS dmi'>dmi.database_id = dtb.database_id</property_link>
        </version>
        <version min_major='8' max_major='8'>
            <property_link fields='#DatabaseOwnershipChaining#' join='master.dbo.spt_values AS v'>v.name = 'db chaining'</property_link>
        </version>
        <!-- add this empty prefix to force inclusion of the sysdatabases table from the parent-->
        <prefix>
            <link_multiple no='1' expression="">
                <link_field type='parent' field="ID" />
            </link_multiple>
        </prefix>
        <version min_major='8' max_major='8'>
            <post_process fields = '#DatabaseOwnershipChaining#'
					class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
					triggered_fields='#DatabaseNameOptions#'/>
        </version>
    </settings>
    <properties>
        <version min_major='7' max_major='8'>
            <property name="AutoClose" type="bit" cast='true'>dtb.status &amp; 1</property>
            <property name="AutoShrink" type="bit" cast='true'>dtb.status &amp; 4194304</property>
        </version>

        <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
            <property name="AnsiNullDefault" type="bit">dtb.is_ansi_null_default_on</property>
            <property name="AnsiNullsEnabled" type="bit">dtb.is_ansi_nulls_on</property>
            <property name="AnsiPaddingEnabled" type="bit">dtb.is_ansi_padding_on</property>
            <property name="AnsiWarningsEnabled" type="bit">dtb.is_ansi_warnings_on</property>
            <property name="ArithmeticAbortEnabled" type="bit">dtb.is_arithabort_on</property>
            <property name="AutoCreateStatistics" type="bit">dtb.is_auto_create_stats_on</property>
            <property name="AutoShrink" type="bit">dtb.is_auto_shrink_on</property>
            <property name="AutoUpdateStatistics" type="bit">dtb.is_auto_update_stats_on</property>
            <property name="CloseCursorsOnCommitEnabled" type="bit">dtb.is_cursor_close_on_commit_on</property>
            <property name="ConcatenateNullYieldsNull" type="bit">dtb.is_concat_null_yields_null_on</property>
            <property name="NumericRoundAbortEnabled" type="bit">dtb.is_numeric_roundabort_on</property>
            <property name="QuotedIdentifiersEnabled" type="bit">dtb.is_quoted_identifier_on</property>
            <property name="ReadOnly" type="bit">dtb.is_read_only</property>
            <property name="RecursiveTriggersEnabled" type="bit">dtb.is_recursive_triggers_on</property>
            <property name="LocalCursorsDefault" type="bit">dtb.is_local_cursor_default</property>
            <property name="PageVerify" type="tinyint" report_type = 'PageVerify'>dtb.page_verify_option</property>
            <property name="RecoveryModel" type="int" report_type="RecoveryModel">dtb.recovery_model</property>
            <property name="UserAccess" type="int" report_type = 'DatabaseUserAccess'>dtb.user_access</property>
            <property name="SnapshotIsolationState" type="tinyint" report_type="SnapshotIsolationState" access="Read">dtb.snapshot_isolation_state</property>
            <property name="DatabaseOwnershipChaining" type="bit">dtb.is_db_chaining_on</property>
            <property name="AutoUpdateStatisticsAsync" type="bit">dtb.is_auto_update_stats_async_on</property>
            <property name="DateCorrelationOptimization" type="bit">dtb.is_date_correlation_on</property>
            <property name="BrokerEnabled" type="bit">dtb.is_broker_enabled</property>
            <property name="Trustworthy" type="bit">dtb.is_trustworthy_on</property>
            <property name="IsParameterizationForced" type="bit">dtb.is_parameterization_forced</property>
        </version>
        <version min_major='9' cloud_min_major='10'>
          <property name="AutoClose" type="bit">dtb.is_auto_close_on</property>
	</version>
	<version min_major='9'>
          <property name="MirroringRedoQueueMaxSize" type="int" access="read">ISNULL((case dmi.mirroring_redo_queue_type when N'UNLIMITED' then 0 else dmi.mirroring_redo_queue end),0)</property>
          <property name="MirroringTimeout" type="int">ISNULL(dmi.mirroring_connection_timeout,0)</property>
        </version>
        <version min_major='8' max_major='8'>
            <property name="AnsiNullDefault" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullDefault')</property>
            <property name="AnsiNullsEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiNullsEnabled')</property>
            <property name="AnsiPaddingEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiPaddingEnabled')</property>
            <property name="AnsiWarningsEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAnsiWarningsEnabled')</property>
            <property name="ArithmeticAbortEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsArithmeticAbortEnabled')</property>
            <property name="AutoCreateStatistics" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAutoCreateStatistics')</property>
            <property name="AutoUpdateStatistics" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsAutoUpdateStatistics')</property>
            <property name="CloseCursorsOnCommitEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsCloseCursorsOnCommitEnabled')</property>
            <property name="ConcatenateNullYieldsNull" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsNullConcat')</property>
            <property name="NumericRoundAbortEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsNumericRoundAbortEnabled')</property>
            <property name="QuotedIdentifiersEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsQuotedIdentifiersEnabled')</property>
            <property name="ReadOnly" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsReadOnly')</property>
            <property name="RecursiveTriggersEnabled" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsRecursiveTriggersEnabled')</property>
            <property name="LocalCursorsDefault" type="bit" cast='true'>DATABASEPROPERTYEX(dtb.name, 'IsLocalCursorsDefault')</property>
            <property name="PageVerify" type="tinyint" report_type = 'PageVerify'>CASE WHEN 1=DATABASEPROPERTYEX(dtb.name, 'IsTornPageDetectionEnabled') THEN 1 ELSE 0 END</property>
            <property name="RecoveryModel" type="int"
				report_type="RecoveryModel">CASE DATABASEPROPERTYEX(dtb.name, 'Recovery') WHEN 'SIMPLE' THEN 3 WHEN 'BULK_LOGGED' THEN 2 ELSE /*FULL*/ 1 END</property>
            <property name="UserAccess" type="int"
				report_type = 'DatabaseUserAccess'>CASE CONVERT(sysname,DATABASEPROPERTYEX(dtb.name, 'UserAccess')) WHEN 'SINGLE_USER' THEN 1 WHEN 'RESTRICTED_USER' THEN 2 ELSE /*MULTI_USER*/ 0 END</property>
            <property name="DatabaseOwnershipChaining" type="bit" cast='true' expensive='true'>
                case when (dtb.status2 &amp; v.number != 0) then 1 else 0 end
            </property>
            <property name="DatabaseNameOptions" type="sysname" hidden='true'>dtb.name</property>
        </version>

        <version min_major='7' max_major='7'>
            <property name="AnsiNullDefault" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAnsiNullDefault')</property>
            <property name="AnsiNullsEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAnsiNullsEnabled')</property>
            <property name="AnsiWarningsEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAnsiWarngingsEnabled')</property>
            <property name="AutoCreateStatistics" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAutoCreateStatistics')</property>
            <property name="AutoUpdateStatistics" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsAutoUpdateStatistics')</property>
            <property name="CloseCursorsOnCommitEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsCloseCursorsOnCommitEnabled')</property>
            <property name="QuotedIdentifiersEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsQuotedIdentifiersEnabled')</property>
            <property name="RecursiveTriggersEnabled" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsRecursiveTriggersEnabled')</property>
            <property name="LocalCursorsDefault" type="bit" cast='true'>DATABASEPROPERTY(dtb.name, 'IsLocalCursorsDefault')</property>
            <property name="RecoveryModel" type="int" report_type="RecoveryModel">
                CASE WHEN 1=DATABASEPROPERTY(dtb.name, 'IsTruncLog') THEN CASE WHEN 1=DATABASEPROPERTY(dtb.name, 'IsBulkCopy') THEN NULL ELSE 3/*SIMPLE=trunc. log on chkpt.*/ END
                WHEN 1=DATABASEPROPERTY(dtb.name, 'IsBulkCopy') THEN 2 /*BULK_LOGGED*/
                ELSE 1 END /*FULL*/
            </property>
            <property name="UserAccess" type="int" report_type = 'DatabaseUserAccess'>
                CASE DATABASEPROPERTY(dtb.name, 'IsSingleUser') WHEN 1 THEN 1
                ELSE (CASE DATABASEPROPERTY(dtb.name,'IsDboOnly') WHEN 0 THEN 0/*MULTI_USER*/ ELSE 1 END)
                END
            </property>
        </version>
    </properties>
</EnumObject>
v<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns' alias='param'>param.number = &lt;msparam&gt;1&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property_link table='sys.all_parameters' alias='param'/>
		</version>
	</settings>
	<properties>
		<include file='parameter.xml'/>
			
		<version min_major='7' max_major='8'>
			<property name="IsOutputParameter" type="bit"
			cast='true' mode="design">CASE param.isoutparam WHEN 1 THEN param.isoutparam WHEN 0 THEN CASE param.name WHEN '' THEN 1 ELSE 0 END END</property>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="IsOutputParameter" type="bit" mode="design">param.is_output</property>
			<property name="IsCursorParameter" type="bit" mode="design">param.is_cursor_ref</property>
		</version>
		<version min_major='10' matrix_min_major='10' cloud_min_major='10'>
			<property name="IsReadOnly" type="bit" mode="design">param.is_readonly</property>
		</version>
		<property name="Number" type="int" hidden='true'>1</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="inc_urn_soapmethod" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{1}[@Name=' + quotename(cast(cast({2} as varbinary(256)) as sysname),'''') collate database_default + ' and @Namespace=' + quotename({3},'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field field="NType" />				
				<link_field type='local' field="Name" />
				<link_field type='local' field="Namespace" />
			</link_multiple>
		</property>
	</properties>
</EnumObject>

x<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='msdb.dbo.sysmaintplan_plans' alias='s'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>s.name</property>
		<property name='ID' type='uniqueidentifier'>s.id</property>
		<property name='Description' type='nvarchar' size = '1024'>s.description</property>
		<property name='CreateDate' type='datetime'>s.create_date</property>
		<property name='Owner' type='sysname'>s.owner</property>
		<property name='VersionMajor' type='int'>s.version_major</property>
		<property name='VersionMinor' type='int'>s.version_minor</property>
		<property name='VersionBuild' type='int'>s.version_build</property>
		<property name='VersionComments' type='nvarchar' size = '1024'>s.version_comments</property>
		<!-- Yukon added the from_msx column in SP2. -->
		<version  min_major='9' max_major='9' max_minor='0' max_build='2999'>
			<property name='FromMSX' type='bit'>0</property>
			<property name='HasTargets' type='bit'>0</property>
		</version>
		<version  min_major='9' min_build='3000' matrix_min_major='10'>
			<property name='FromMSX' type='bit'>s.from_msx</property>
			<property name='HasTargets' type='bit'>s.has_targets</property>
		</version>
	</properties>
</EnumObject>
,<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='msdb.dbo.sysmaintplan_subplans' alias='sp'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>sp.subplan_name</property>
		<property name='ID' type='uniqueidentifier'>sp.subplan_id</property>
		<property name='Description' type='nvarchar' size = '512'>sp.subplan_description</property>
		<property name='JobID' type='uniqueidentifier'>sp.job_id</property>
		<!-- Yukon added the msx_job_id column in SP2. -->
		<version  min_major='9' max_major='9' max_minor='0' max_build='2999'>
			<property name='MsxJobID' type='uniqueidentifier'>null</property>
			<property name='FromMSX' type='bit'>0</property>
		</version>
		<version  min_major='9' min_build='3000' matrix_min_major='10'>
			<property name='MsxJobID' type='uniqueidentifier'>sp.msx_job_id</property>
			<property name='FromMSX' type='bit'>sp.msx_plan</property>
		</version>
		<property name='ScheduleID' type='int'>sp.schedule_id</property>

		<property name='ParentID' type='uniqueidentifier' hidden='true'>sp.plan_id</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='msdb.dbo.sysmaintplan_log' alias='spl'/>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ID=''' + cast ({1} as nvarchar(36)) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ID" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	
		<property name='ID' type='uniqueidentifier'>spl.task_detail_id</property>
		<property name='StartTime' type='datetime'>spl.start_time</property>
		<property name='EndTime' type='datetime'>spl.end_time</property>	
		<property name='Succeeded' type='bit'>spl.succeeded</property>		

		<property name='ParentID' type='uniqueidentifier' hidden='true'>spl.subplan_id</property>
	</properties>
</EnumObject>
5<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='msdb.dbo.sysmaintplan_logdetail' alias='ld'/>
	</settings>
	<properties>
		<property name='Line1' type='nvarchar' size = '256'>ld.line1</property>
		<property name='Line2' type='nvarchar' size = '256'>ld.line2</property>		
		<property name='Line3' type='nvarchar' size = '256'>ld.line3</property>
		<property name='Line4' type='nvarchar' size = '256'>ld.line4</property>		
		<property name='Line5' type='nvarchar' size = '256'>ld.line5</property>
		<property name='ServerName' type='sysname'>ld.server_name</property>	
		<property name='StartTime' type='datetime'>ld.start_time</property>
		<property name='EndTime' type='datetime'>ld.end_time</property>	
		<property name='ErrorNo' type='int'>ld.error_number</property>	
		<property name='ErrorMessage' type='nvarchar' size = 'max'>ld.error_message</property>
		<property name='Command' type='nvarchar' size = 'max'>ld.command</property>
		<property name='Succeeded' type='bit'>ld.succeeded</property>			

		<property name='ParentID' type='uniqueidentifier' hidden='true'>ld.task_detail_id</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='Sysdbmaintplans' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='msdb.dbo.sysdbmaintplans' alias='s'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='ID' type='uniqueidentifier'>s.plan_id</property>
		<property name='Name' type='sysname'>s.plan_name</property>
		<property name='DateCreated' type='datetime'>s.date_created</property>
		<property name='Owner' type='sysname'>s.owner</property>
		<property name='MaxHistoryRows' type='int'>s.max_history_rows</property>
		<property name='RemoteHistoryServer' type='sysname'>s.remote_history_server</property>
		<property name='MaxRemoteHistoryRows' type='int'>s.max_remote_history_rows</property>
		<version min_major='8' matrix_min_major='10'>
			<property name='LogShipping' type='bit'>s.log_shipping</property>
		</version>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='RemoteMaintenancePlan' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
  <settings distinct='true'>
    <property_link table='msdb.dbo.sysmaintplan_log' alias='s'>s.logged_remotely = 1</property_link>
  </settings>
  <properties>
    <property name='Name' type='sysname'>s.plan_name</property>
  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='RemoteSubPlan' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
  <settings distinct='true'>
    <property_link table='msdb.dbo.sysmaintplan_log' alias='s'>s.logged_remotely = 1</property_link>
  </settings>
  <properties>
    <property name='PlanName' type='sysname'>s.plan_name</property>
    <property name='SubPlanName' type='sysname'>s.subplan_name</property>
    <property name='ServerName' type='sysname'>s.source_server_name</property>
  </properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='RemotePlanLog' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
  <settings distinct='true'>
    <property_link table='msdb.dbo.sysmaintplan_log' alias='s'>s.logged_remotely = 1</property_link>
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='3' expression="{0} + '/{2}[@ID=''' + cast ({1} as nvarchar(36)) + ''']'">
        <link_field type='parent' field="Urn" />
        <link_field type='local' field="ID" />
        <link_field field="NType" />
      </link_multiple>
    </property>

    <property name='PlanName' type='sysname'>s.plan_name</property>
    <property name='SubPlanName' type='sysname'>s.subplan_name</property>
    <property name='ServerName' type='sysname'>s.source_server_name</property>
    <property name='ID' type='uniqueidentifier'>s.task_detail_id</property>
    <property name='StartTime' type='datetime'>s.start_time</property>
    <property name='EndTime' type='datetime'>s.end_time</property>
    <property name='Succeeded' type='bit'>s.succeeded</property>
  </properties>
</EnumObject>S<?xml version='1.0' ?>
<EnumObject type='RemotePlanLog' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table='msdb.dbo.sysmaintplan_logdetail' alias='ld'/>
  </settings>
  <properties>
    <property name='Line1' type='nvarchar' size = '256'>ld.line1</property>
    <property name='Line2' type='nvarchar' size = '256'>ld.line2</property>
    <property name='Line3' type='nvarchar' size = '256'>ld.line3</property>
    <property name='Line4' type='nvarchar' size = '256'>ld.line4</property>
    <property name='Line5' type='nvarchar' size = '256'>ld.line5</property>
    <property name='ServerName' type='sysname'>ld.server_name</property>
    <property name='StartTime' type='datetime'>ld.start_time</property>
    <property name='EndTime' type='datetime'>ld.end_time</property>
    <property name='ErrorNo' type='int'>ld.error_number</property>
    <property name='ErrorMessage' type='nvarchar' size = 'max'>ld.error_message</property>
    <property name='Command' type='nvarchar' size = 'max'>ld.command</property>
    <property name='Succeeded' type='bit'>ld.succeeded</property>

    <property name='ParentID' type='uniqueidentifier' hidden='true'>ld.task_detail_id</property>
  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='Logmarkhistory' impl_type='SqlObject' min_major='8' matrix_min_major='10'>
	<settings>
		<property_link table='msdb.dbo.logmarkhistory' alias='l'/>
	</settings>
	<properties>
		<property name='DatabaseName' type='nvarchar' size = '128'>l.database_name</property>
		<property name='MarkName' type='nvarchar' size = '128'>l.mark_name</property>
		<property name='Description' type='nvarchar' size = '255'>l.description</property>
		<property name='UserName' type='nvarchar' size = '128'>l.user_name</property>
		<property name='LogSequenceNumber' type='numeric'>l.lsn</property>
		<property name='CommitTime ' type='datetime'>l.mark_time</property>
	</properties>
</EnumObject>
R<?xml version="1.0" ?>
<EnumObject type="ProxyAccount" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
            <property_link table='#tmp_sp_help_proxy' alias='tshp'/>
            <property_link fields='#CredentialName#' join='sys.credentials' alias='sc'>sc.credential_id = tshp.credential_id</property_link>
			<prefix>
create table #tmp_sp_help_proxy(proxy_id int null, name nvarchar(128) null, credential_identity nvarchar(128) null, enabled tinyint null, description nvarchar(1024) null, user_sid varbinary(40) null,  credential_id int null, credential_identity_exists int null)

insert into #tmp_sp_help_proxy(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists) exec msdb.dbo.sp_help_proxy
			</prefix>
			<postfix>
drop table #tmp_sp_help_proxy
			</postfix>
    </settings>
	<properties>
		<include file='inc_urn.xml' />
        <property name='Name' type='sysname'>tshp.name</property>
        <property name='ID' type='int'>tshp.proxy_id</property>
        <property name='IsEnabled' type='bit' cast='true'>tshp.enabled</property>			
        <property name='Description' type='nvarchar' size = '1024'>ISNULL(tshp.description,N'')</property>
        <property name="CredentialID" type="int" access='Read'>tshp.credential_id</property>
        <property name="CredentialName" type="nvarchar" size='300'>ISNULL(sc.name,N'')</property>
        <property name="CredentialIdentity" type="nvarchar" size='128' access='Read'>ISNULL(tshp.credential_identity,N'')</property>
	</properties>
</EnumObject>
j	<?xml version="1.0" ?>
<EnumObject type="AgentSubSystem" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
        <settings>
				<parent_link>
					<link parent="ID" local="ProxyID" />
				</parent_link>
        
                <property_link table='#tmp_sp_help_proxy_subsystem' alias='tsepfs'/>
				<prefix>
create table #tmp_sp_enum_sqlagent_subsystems
(subsystem nvarchar(max) null, description nvarchar(max) null, subsystem_dll nvarchar(max) null, agent_exe nvarchar(max) null, start_entry_point nvarchar(max) null, event_entry_point nvarchar(max) null, stop_entry_point nvarchar(max) null, max_worker_threads int null, subsystem_id int null)
create table #tmp_sp_help_proxy_subsystem(subsystem nvarchar(max) null, proxy_id int null, name nvarchar(128) null, credential_identity nvarchar(128) null, enabled tinyint null, description nvarchar(1024) null, user_sid varbinary(40) null,  credential_id int null, credential_identity_exists int null)

insert into #tmp_sp_enum_sqlagent_subsystems(subsystem, description, subsystem_dll, agent_exe, start_entry_point, event_entry_point, stop_entry_point, max_worker_threads, subsystem_id)
		exec msdb.dbo.sp_enum_sqlagent_subsystems
		
declare @subsystem nvarchar(max)
declare @login sysname
set @login = suser_sname()
		
declare crs insensitive cursor 
	for ( select subsystem from #tmp_sp_enum_sqlagent_subsystems ) 
for read only 
open crs 
fetch crs into @subsystem
while @@fetch_status &gt;= 0 
begin 
	if 'TSQL' != @subsystem
	begin
		insert into #tmp_sp_help_proxy_subsystem(proxy_id, name, credential_identity, enabled, description, user_sid, credential_id, credential_identity_exists) 
			exec msdb.dbo.sp_help_proxy @subsystem_name = @subsystem, @name = @login
		
		update #tmp_sp_help_proxy_subsystem set subsystem = @subsystem where subsystem is null
	end		
	fetch crs into @subsystem
end 
close crs
deallocate crs
               </prefix>
                <postfix>
drop table #tmp_sp_help_proxy_subsystem
                </postfix>
 				<postfix>
drop table #tmp_sp_enum_sqlagent_subsystems
				</postfix>
        </settings>
        <properties>
			<include file='inc_urn.xml' />
            <property name='Name' type='sysname'>tsepfs.subsystem</property>
            <property name='ProxyID' type='int' hidden='true'>tsepfs.proxy_id</property>
        </properties>	
</EnumObject>
2<?xml version="1.0" ?>
<EnumObject type="ProxyAccountPrincipal " impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
    	<version min_major='9' matrix_min_major='10'>
			<parent_link>
				<link parent="ID" local="ParentID" />
			</parent_link>

			<property_link table='#tmp_sp_enum_login_for_proxy' alias='spl'/>
			<prefix>
				create table #tmp_sp_enum_login_for_proxy(proxy_id int null, proxy_name nvarchar(128), flags int null, name nvarchar(128) null, sid varbinary(85) null, principal_id int null )
				insert into #tmp_sp_enum_login_for_proxy(proxy_id, proxy_name, flags, name, sid, principal_id) exec msdb.dbo.sp_enum_login_for_proxy
				delete from #tmp_sp_enum_login_for_proxy where name is NULL
			</prefix>
			<postfix>
				drop table #tmp_sp_enum_login_for_proxy
			</postfix>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="NType" type="sysname" access='Read' hidden='true'>ProxyAccountPrincipal</property>
		<version min_major='9' matrix_min_major='10'>
    		<property name="Name" type="sysname">spl.name</property>
    		<property name="Flag" type="int">spl.flags</property>
            <property name="ParentID" type="int" hidden='true'>spl.proxy_id</property>
        </version>
	</properties>
</EnumObject>


<?xml version='1.0' ?>
<EnumObject type='Certificates' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='sys.certificates' alias='c'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>c.name</property>
		<property name='ID' type='int'>c.certificate_id</property>
		<property name='Owner' type='sysname'>user_name(c.principal_id)</property>
		<property name='PrivateKeyEncryptionType' type='int' report_type = 'PrivateKeyEncryptionType' 
			access='read'>case c.pvt_key_encryption_type when 'NA' then 0 when 'MK' then 1 when 'PW' then 2 end</property>
		<property name='Issuer' type='nvarchar' size = '256' access='read'>c.issuer_name</property>
		<property name='Serial' type='nvarchar' size = '64' access='read'>c.cert_serial_number</property>
		<property name='Sid' type='varbinary' size = '128' access='read'>c.sid</property>
		<property name='Subject' type='nvarchar' size = '4000' read_only_after_creation="true">c.subject</property>
		<property name='ExpirationDate' type='datetime' read_only_after_creation="true">c.expiry_date</property>
		<property name='StartDate' type='datetime' read_only_after_creation="true">c.start_date</property>
		<property name='Thumbprint' type='varbinary' size = '32' access='read'>c.thumbprint</property>
		<property name='ActiveForServiceBrokerDialog' type='bit'>c.is_active_for_begin_dialog</property>		

		<!-- not available
		<property name='CreateDate' type='datetime'>c.create_date</property>
		<property name='DateLastModified' type='datetime'>c.modify_date</property>
		-->
		
		<!-- enable permissions -->
		<property name="ExtPropClass" type="int" hidden='true'>25</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10' matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
		<property name='LastBackupDate' type='datetime' access='read'>c.pvt_key_last_backup_date</property>
    </version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="OLEDBProvider" impl_type="SqlObject" min_major='7' >
	<settings>
		<property_link table="#OLEDBProv" alias="op" />
		<property_link fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'
			join="#oledbprop" alias='o'>o.provider_name=op.Name</property_link>
			<prefix>
create table #OLEDBProv (id int identity(1,1), Name sysname NOT NULL, ParseName sysname NOT NULL,Description sysname NOT NULL )
			</prefix>
			
		<version min_major='7' max_major='7'>
			<prefix>
insert #OLEDBProv (Name, ParseName,Description) EXECUTE master.dbo.xp_enum_oledb_providers
			</prefix>
		</version>
		<version min_major='8' >
			<prefix>
insert #OLEDBProv (Name, ParseName,Description) EXECUTE master.dbo.sp_enum_oledb_providers
			</prefix>
		</version>
		<prefix>
			delete from #OLEDBProv where exists ( select 1 from #OLEDBProv oprov where oprov.Name = #OLEDBProv.Name and oprov.id &lt; #OLEDBProv.id )
		</prefix>
		<version min_major='7' max_major='8'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
create table #oledbprop (allow_in_process bit, disallow_adhoc_access bit, dynamic_parameters bit, index_as_access_path bit,
				level_zero_only bit, nested_queries bit, non_transacted_updates bit, sql_server_like bit, provider_name sysname null) 
		
declare name_cursor cursor local fast_forward
	FOR (select Name from  #OLEDBProv)
open name_cursor 
DECLARE @providername sysname 
FETCH NEXT FROM name_cursor INTO @providername 
WHILE (@@FETCH_STATUS &lt;&gt; -1) 
BEGIN 
	IF (@@FETCH_STATUS &lt;&gt; -2) 
	BEGIN 
		SELECT @providername = RTRIM(@providername) 

		declare @regpath nvarchar(255)
		set @regpath = N'SOFTWARE\Microsoft\MSSQLServer\Providers\' + @providername
		
		declare @allow_in_process int
		declare @disallow_adhoc_access int
		declare @dynamic_parameters int
		declare @index_as_access_path int
		declare @level_zero_only int
		declare @nested_queries int
		declare @non_transacted_updates int
		declare @sql_server_like int

			</prefix>
		</version>
		<version min_major='7' max_major='7'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'AllowInProcess', @allow_in_process OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DisallowAdHocAccess', @disallow_adhoc_access OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DynamicParameters', @dynamic_parameters OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'IndexAsAccessPath', @index_as_access_path OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'LevelZeroOnly', @level_zero_only OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NestedQueries', @nested_queries OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NonTransactedUpdates', @non_transacted_updates OUTPUT
		exec master.dbo.xp_regread N'HKEY_LOCAL_MACHINE', @regpath, 'SqlServerLIKE', @sql_server_like OUTPUT
			</prefix>
		</version>
		<version min_major='8' max_major='8'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'AllowInProcess', @allow_in_process OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DisallowAdHocAccess', @disallow_adhoc_access OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'DynamicParameters', @dynamic_parameters OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'IndexAsAccessPath', @index_as_access_path OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'LevelZeroOnly', @level_zero_only OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NestedQueries', @nested_queries OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'NonTransactedUpdates', @non_transacted_updates OUTPUT
		exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', @regpath, 'SqlServerLIKE', @sql_server_like OUTPUT
			</prefix>
		</version>
		<version min_major='7' max_major='8'>
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
		insert #oledbprop (allow_in_process, disallow_adhoc_access, dynamic_parameters, index_as_access_path, level_zero_only, 
			nested_queries, non_transacted_updates, sql_server_like, provider_name) 
		select IsNull(@allow_in_process, 0), IsNull(@disallow_adhoc_access, 0), IsNull(@dynamic_parameters, 0), IsNull(@index_as_access_path, 0), IsNull(@level_zero_only, 0), 
			IsNull(@nested_queries, 0), IsNull(@non_transacted_updates, 0), IsNull(@sql_server_like, 0), @providername
	END 
	FETCH NEXT FROM name_cursor INTO @providername 
END 
CLOSE name_cursor 
DEALLOCATE name_cursor
			</prefix>
		</version>
		<version min_major='9' >
			<prefix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
create table #oledbprop (allow_in_process bit, disallow_adhoc_access bit, dynamic_parameters bit, index_as_access_path bit,
				level_zero_only bit, nested_queries bit, non_transacted_updates bit, sql_server_like bit, provider_name sysname null) 
		
declare name_cursor cursor local fast_forward
	FOR (select Name from  #OLEDBProv)
open name_cursor 
DECLARE @providername sysname 
FETCH NEXT FROM name_cursor INTO @providername 
WHILE (@@FETCH_STATUS &lt;&gt; -1) 
BEGIN 
	IF (@@FETCH_STATUS &lt;&gt; -2) 
	BEGIN 
		SELECT @providername = RTRIM(@providername) 

		insert #oledbprop (provider_name, allow_in_process, disallow_adhoc_access, dynamic_parameters, index_as_access_path, level_zero_only, 
			nested_queries, non_transacted_updates, sql_server_like) 
		exec master.dbo.sp_MSset_oledb_prop @providername
	END 
	FETCH NEXT FROM name_cursor INTO @providername 
END 
CLOSE name_cursor 
DEALLOCATE name_cursor
		</prefix>
		</version>
		<postfix fields='#AllowInProcess#DisallowAdHocAccess#DynamicParameters#IndexAsAccessPath#LevelZeroOnly#NestedQueries#NonTransactedUpdates#SqlServerLike#'>
drop table #oledbprop
		</postfix>
		<postfix> drop table #OLEDBProv</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" access="Read">op.Name</property>
		<property name="Description" type="sysname" access="Read">op.Description</property>
		<property name='AllowInProcess' type='bit'>o.allow_in_process</property>
		<property name='DisallowAdHocAccess' type='bit'>o.disallow_adhoc_access</property>
		<property name='DynamicParameters' type='bit'>o.dynamic_parameters</property>
		<property name='IndexAsAccessPath' type='bit'>o.index_as_access_path</property>
		<property name='LevelZeroOnly' type='bit'>o.level_zero_only</property>
		<property name='NestedQueries' type='bit'>o.nested_queries</property>
		<property name='NonTransactedUpdates' type='bit'>o.non_transacted_updates</property>
		<property name='SqlServerLike' type='bit'>o.sql_server_like</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='9' >
	<settings>
		<request_parent_select>
			<field name='ID' />
		</request_parent_select>
	
		<property_link table="#fulltext_log_tmp er" />
		<prefix>
			<link_multiple no='1' expression="
create table #fulltext_log_tmp(ArchiveNo int, CreateDate nvarchar(24), Size int, ctlgid int null)
declare @ctlgid int 
declare @dbid int 
set @dbid = db_id()
declare crs_ctlg cursor local fast_forward
	for({0})
for read only 
open crs_ctlg
fetch next from crs_ctlg into @ctlgid
while 0 = @@fetch_status
begin
	insert #fulltext_log_tmp (ArchiveNo, CreateDate, Size) exec master.dbo.xp_enumerrorlogs 3, @dbid, @ctlgid
	update #fulltext_log_tmp set ctlgid = @ctlgid where ctlgid is null
	fetch next from crs_ctlg into @ctlgid
end
close crs_ctlg
deallocate crs_ctlg">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
drop table #fulltext_log_tmp
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@ArchiveNo=''' + CAST({1} AS sysname) + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="ArchiveNo" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	
		<property name="Name" type="sysname" cast='true' access='read'>er.ArchiveNo</property>
		<property name="ArchiveNo" type="int" access='read'>er.ArchiveNo</property>
		<property name="CreateDate" type="datetime" access='read'>CONVERT(datetime, er.CreateDate, 101)</property>
		<property name="Size" type="int" access='read'>er.Size</property>
		
		<property name="CatalogId" type="int" hidden='true'>er.ctlgid</property>		
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent='ArchiveNo' local='ArchiveNo' />
			<link parent='CatalogId' local='CatalogId' />
		</parent_link>
		<request_parent_select>
			<field name='ArchiveNo' />
			<field name='CatalogId' />
		</request_parent_select>
		<property_link table="#err_fulltext_text_tmp ert" />
        <prefix>
            create table #err_fulltext_text_tmp(Text nvarchar(4000), ArchiveNo int null, ctlgid int null, LogDate datetime null, ProcessInfo nvarchar(100) null)
        </prefix>
        <version min_major="7" max_major="8">
            <prefix>
                declare @text_offset int
                declare @process_info_length int

                set @text_offset = 34
                set @process_info_length = 10
            </prefix>
            <prefix>
                <link_multiple no='1' expression="
create table #err_fulltext_text_tmp2(id int IDENTITY(0, 1), Text nvarchar(max), ContinuationRow bit, ArchiveNo int null, ctlgid int null)
declare @ArchiveNo int
declare @cont_row int
set @dbid = db_id()
declare crs cursor  local fast_forward
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo, @ctlgid
while @@fetch_status &gt;= 0 
begin 
		insert #err_fulltext_text_tmp2 (Text, ContinuationRow) exec master.dbo.xp_readerrorlog @ArchiveNo, 3, @dbid, @ctlgid
		update #err_fulltext_text_tmp2 set ArchiveNo = @ArchiveNo, ctlgid = @ctlgid where ctlgid is null
		fetch crs into @ArchiveNo, @ctlgid
end 
close crs
deallocate crs

declare @off int
select @off = 1

while exists ( select ContinuationRow from #err_fulltext_text_tmp2 where ContinuationRow = 1 )
begin
	update #err_fulltext_text_tmp2 set Text = Text + 
		isnull((select t2.Text from #err_fulltext_text_tmp2 t2 where t2.id = #err_fulltext_text_tmp2.id + @off and t2.ContinuationRow = 1), '') where ContinuationRow = 0
	delete from #err_fulltext_text_tmp2 where ContinuationRow = 1 and @off &gt;= 
		id - ( select  max(t2.id) from #err_fulltext_text_tmp2 t2 where t2.ContinuationRow = 0 and t2.id &lt; #err_fulltext_text_tmp2.id)
	set @off = @off + 1
end
	
insert #err_fulltext_text_tmp 
	select 
		Text = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: remove date/spid part */ SUBSTRING(Text, @text_offset, 4000) else /*non structured row*/ Text end,
		ArchiveNo, 
		ctlgid, 
		LogDate = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get date part */ CONVERT(datetime, LEFT(Text, 23), 121) else /*non structured row*/ null end,
		ProcessInfo = CASE WHEN Text like '[1-2][0-9][0-9][0-9]-[0-2][0-9]-[0-3][0-9] [0-6][0-9]:[0-6][0-9]:[0-9][0-9]%'
				then /*structured row: get spid part */ rtrim(SUBSTRING(Text, 24, @process_info_length)) else /*non structured row*/ null end
	from #err_fulltext_text_tmp2 where ContinuationRow = 0
    
drop table #err_fulltext_text_tmp2">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <version min_major="9" >
            <prefix>
                <link_multiple no='1' expression="
declare @ArchiveNo int
declare @cont_row int
set @dbid = db_id()
declare crs cursor  local fast_forward
	for ( {0} ) 
for read only 
open crs 
fetch crs into @ArchiveNo, @ctlgid
while @@fetch_status &gt;= 0 
begin 
		insert #err_fulltext_text_tmp (LogDate, ProcessInfo, Text) exec master.dbo.xp_readerrorlog @ArchiveNo, 3, @dbid, @ctlgid
		update #err_fulltext_text_tmp set ArchiveNo = @ArchiveNo, ctlgid = @ctlgid where ctlgid is null
		fetch crs into @ArchiveNo, @ctlgid
end 
close crs
deallocate crs
">
                    <link_field field="ParentSelect" />
                </link_multiple>
            </prefix>
        </version>
        <postfix>
drop table #err_fulltext_text_tmp
		</postfix>
	</settings>
	<properties>
		<property name="LogDate" type="datetime">ert.LogDate</property>
		<property name="ProcessInfo" type="nvarchar" size = '100'>ert.ProcessInfo</property>
		<property name="Text" type="nvarchar" size='4000'>ert.Text</property>
		
		<property name="ArchiveNo" type="int" hidden='true'>ert.ArchiveNo</property>
		<property name="CatalogId" type="int" hidden='true'>ert.ctlgid</property>		
	</properties>
</EnumObject>
L<?xml version='1.0' ?>
<EnumObject type='DatabaseMirroringWitnesses' impl_type='SqlObject' min_major='9' >
	<settings>
		<property_link table='sys.database_mirroring_witnesses' alias='dmw'/>
	</settings>
	<properties>
		<property name='Database' type='sysname'>dmw.database_name</property>
		<property name='PrincipalServer' type='sysname'>dmw.principal_server_name</property>
		<property name='MirrorServer' type='sysname'>dmw.mirror_server_name</property>
		<property name='MirroringSafetyLevel' type='tinyint'>dmw.safety_level</property>
		<property name='SafetySequenceNumber' type='int'>dmw.safety_sequence_number</property>
		<property name='RoleSequenceNumber' type='int'>dmw.role_sequence_number</property>
		<property name='MirroringID' type='uniqueidentifier'>dmw.mirroring_guid</property>
		<property name='BackupFamilyID' type='uniqueidentifier'>dmw.family_guid</property>
		<property name='IsSuspended' type='bit'>dmw.is_suspended</property>
		<property name='SuspendedSequenceNumber' type='int'>dmw.is_suspended_sequence_number</property>
	</properties>
</EnumObject>
^<?xml version="1.0" ?>
<EnumObject type="XmlSchemaCollection" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table="sys.xml_schema_collections AS xsc">
				xsc.schema_id   &lt;&gt; 4</property_link>
		<property_link fields='#Schema#Text#' 
				join='sys.schemas AS sch'>xsc.schema_id = sch.schema_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn_schema.xml' />
		<property name="Name" type="sysname">xsc.name</property>			
		<property name="ID" type="int" access='Read'>xsc.xml_collection_id</property>
		<property name="Schema" type="sysname">sch.name</property>
		<property name="CreateDate" type="datetime" access='Read'>xsc.create_date</property>
		<property name="DateLastModified" type="datetime" access='Read'>xsc.modify_date</property>
		<property name="Text" type="xml" read_only_after_creation="true">XML_SCHEMA_NAMESPACE(sch.Name, xsc.name)</property>
		
		<!-- extended properties support -->
		<property name="ExtPropClass" type="int" hidden='true'>10</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>xsc.xml_collection_id</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>

		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="XmlNamespace" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings >
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table="sys.xml_schema_namespaces AS xn" />
		<property_link fields='#Text#' 
				join='sys.xml_schema_collections AS xsc2'>xsc2.xml_collection_id = xn.xml_collection_id</property_link>
		<property_link fields='#Text#' 
				join='sys.schemas AS sch2'>xsc.schema_id = sch2.schema_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn_collate_default.xml' />
		<property name="Name" type="sysname">xn.name</property>			
		<property name="ID" type="int" access='Read'>xn.xml_namespace_id</property>
		<property name="Text" type="xml">XML_SCHEMA_NAMESPACE(sch2.Name, xsc2.name, xn.name)</property>
		
		<property name="ParentID" type="int" hidden='true'>xn.xml_collection_id</property>
		
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="XmlType" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings >
		<parent_link>
			<link parent="ID" local="NamespaceID" />
		</parent_link>
		<property_link table="sys.xml_schema_components AS comp" />
	</settings>
	<properties>
		<include file='inc_urn_collate_default.xml' />
		<property name="Name" type="sysname">comp.name</property>			
		<property name="ID" type="int" access='Read'>comp.xml_component_id</property>
		<property name="NamespaceID" type="int" access='Read'>comp.xml_namespace_id</property>
		<property name="IsQualified" type="bit" cast='true' access='Read'>comp.is_qualified</property>
		<property name="XmlTypeKind" type="int" report_type="XmlTypeKind" access='Read'>(case comp.kind
																		when 'N' then 1 
																		when 'Z' then 2 
																		when 'P' then 3 
																		when 'S' then 4 
																		when 'L' then 5 
																		when 'U' then 6 
																		when 'C' then 7 
																		when 'K' then 8 
																		when 'E' then 9 
																		when 'M' then 10 
																		when 'W' then 11 
																		when 'A' then 12 
																		when 'G' then 13 
																		when 'V' then 14 
																		else 1 end) </property>
		<property name="Derivation" type="int" report_type="XmlTypeDerivation" access='Read'>(case comp.derivation when 'N' then 1 when 'X' then 2 when 'R' then 3 when 'S' then 4 else 1 end)</property>
		<property name="BaseComponentId" type="int" access='Read'>comp.base_xml_component_id</property>
		<property name="ScopingComponentId" type="int" access='Read'>comp.scoping_xml_component_id</property>
		
		
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="inc_urn" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Name=' + quotename(cast(cast({1} as varbinary(256)) as sysname),'''') + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Name" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	</properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="Credential" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
        <version min_major='9' matrix_min_major='10'>
            <property_link table='sys.credentials AS s' />
        </version>    
		<version min_major='10'>
			<property_link fields='#ProviderName#' left_join='sys.cryptographic_providers AS cp'>cp.provider_id = s.target_id</property_link>
		</version>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name="Name" type="sysname">s.name</property>
        <property name="ID" type="int" access='Read'>s.credential_id</property>
        <property name="Identity" type="nvarchar" size='4000' access='ReadWrite'>s.credential_identity</property>
        <property name="CreateDate" type="datetime" access='Read'>s.create_date</property>
        <property name="DateLastModified" type="datetime" access='Read'>s.modify_date</property>
		<version min_major='10' matrix_min_major='10'>
			<property name="MappedClassType" type="nvarchar" size='60' report_type='MappedClassType'>CASE WHEN s.target_type = 'CRYPTOGRAPHIC PROVIDER' THEN 1 ELSE 0 END</property>
			<include file='inc_policy_health_state.xml'/>
    </version>
      <version min_major='10'>
        <property name="ProviderName" type="sysname">ISNULL(cp.name, '')</property>
      </version>  
    </properties>
</EnumObject>j	<?xml version="1.0" ?>
<EnumObject type='CryptographicProvider' impl_type='SqlObject' min_major='10'>
	<settings>
		<property_link table='sys.cryptographic_providers' alias='c' />
		<property_link fields='#VersionString#SqlCryptographicVersionString#SymmetricKeySupported#SymmetricKeyExportable#SymmetricKeyImportable#SymmetricKeyPersistable#AsymmetricKeySupported#AsymmetricKeyExportable#AsymmetricKeyImportable#AsymmetricKeyPersistable#' join="sys.dm_cryptographic_provider_properties AS cp">cp.provider_id = c.provider_id</property_link>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>c.name</property>
		<property name='ID' type='int' access='Read'>c.provider_id</property>
		<property name='ProviderGuid' type='uniqueidentifier' access='Read'>c.guid</property>
		<property name='VersionString' type='sysname' access='Read'>cp.provider_version</property>
		<property name='DllPath' type='sysname'>c.dll_path</property>
		<property name='Enabled' type='bit'>c.is_enabled</property>
		<property name='SqlCryptographicVersionString' type='sysname' access='Read'>cp.sqlcrypt_version</property>
		<property name='AuthenticationType' type='tinyint' report_type='ProviderAuthenticationType' access='Read'>case cp.authentication_type when 'WINDOWS' then 0 when 'BASIC' then 1 when 'OTHER' THEN 2 end</property>
		<property name='SymmetricKeySupported' type='bit' access='Read' cast='true'>cp.symmetric_key_support</property>
		<property name='SymmetricKeyExportable' type='bit' access='Read' cast='true'>cp.symmetric_key_export</property>
		<property name='SymmetricKeyImportable' type='bit' access='Read' cast='true'>cp.symmetric_key_import</property>
		<property name='SymmetricKeyPersistable' type='bit' access='Read' cast='true'>cp.symmetric_key_persistance</property>
		<property name='AsymmetricKeySupported' type='bit' access='Read' cast='true'>cp.asymmetric_key_support</property>
		<property name='AsymmetricKeyExportable' type='bit' access='Read' cast='true'>cp.asymmetric_key_export</property>
		<property name='AsymmetricKeyImportable' type='bit' access='Read' cast='true'>cp.asymmetric_key_import</property>
		<property name='AsymmetricKeyPersistable' type='bit' access='Read' cast='true'>cp.asymmetric_key_persistance</property>
              <include file='inc_policy_health_state.xml'/>
	</properties>
</EnumObject>
	<?xml version="1.0" ?>
<EnumObject type="PlanGuide" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
        <property_link table='sys.plan_guides AS pg' />
        <property_link fields = '#ScopeObjectName#ScopeSchemaName#' 
                left_join="sys.objects AS o">pg.scope_object_id = o.object_id</property_link>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name="Name" type="sysname">pg.name</property>
        <property name="ID" type="int" access="Read">pg.plan_guide_id</property>
        <property name="Statement" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.query_text, N'')</property>
        <property name="ScopeType" type="tinyint" report_type="PlanGuideType" read_only_after_creation="true">pg.scope_type</property>
        <property name="ScopeObjectName" type="sysname" read_only_after_creation="true">ISNULL(o.name, N'')</property>
        <property name="ScopeSchemaName" type="sysname" read_only_after_creation="true">ISNULL(schema_name(o.schema_id), N'')</property>        
        <property name="IsDisabled" type="bit">pg.is_disabled</property>
        <property name="Parameters" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.parameters, N'')</property>
        <property name="Hints" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.hints, N'')</property>

        <!-- extended properties support -->
        <property name="ExtPropClass" type="int" hidden='true'>27</property>
        <property name="ExtPropMajorID" type="int" hidden='true'>pg.plan_guide_id</property>
        <property name="ExtPropMinorID" type="int" hidden='true'>0</property>

        <version min_major='9' max_major='9'>
            <property name="ScopeBatch" type="nvarchar" size='max' read_only_after_creation="true">
                ISNULL((case when ((pg.scope_type = 2 and pg.scope_batch is null) or pg.scope_type = 3) then pg.query_text else pg.scope_batch
                end), N'')
            </property>
        </version>

        <version min_major='10' matrix_min_major='10'>
            <property name="ScopeBatch" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.scope_batch, N'')</property>
            <include file='inc_policy_health_state.xml'/>
        </version>
            
    </properties>
</EnumObject>
7<?xml version="1.0" ?>
<EnumObject type="MailProfile" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
	<property_link table='#tmp_sysmail_help_profile' alias='tshp'/>
	<prefix>
create table #tmp_sysmail_help_profile(profile_id int, name nvarchar(128), description nvarchar(256) null)

insert into #tmp_sysmail_help_profile(profile_id, name, description) exec msdb.dbo.sysmail_help_profile_sp
	</prefix>
	<postfix>
drop table #tmp_sysmail_help_profile
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='sysname'>tshp.name</property>
	<property name='ID' type='int'>tshp.profile_id</property>
	<property name='Description' type='nvarchar' size = '256'>ISNULL(tshp.description,N'')</property>
    </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailAccount" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
	<property_link table='#tmp_sysmail_help_account' alias='tsha'/>
	<prefix>
create table #tmp_sysmail_help_account(account_id int, name nvarchar(128), description nvarchar(256) null, email_address nvarchar(128) null, display_name nvarchar(128) null, replyto_address nvarchar(128) null, servertype nvarchar(128), servername nvarchar(128), port int, username nvarchar(128), use_default_credentials bit, enable_ssl bit)

insert into #tmp_sysmail_help_account(account_id, name, description, email_address, display_name, replyto_address, servertype, servername, port, username, use_default_credentials, enable_ssl) exec msdb.dbo.sysmail_help_account_sp
	</prefix>
	<postfix>
drop table #tmp_sysmail_help_account
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='sysname'>tsha.name</property>
	<property name='ID' type='int'>tsha.account_id</property>
	<property name='Description' type='nvarchar' size = '256'>ISNULL(tsha.description, N'')</property>
	<property name='EmailAddress' type='nvarchar' size = '128'>tsha.email_address</property>
	<property name='DisplayName' type='nvarchar' size = '128'>ISNULL(tsha.display_name, N'')</property>
	<property name='ReplyToAddress' type='nvarchar' size = '128'>ISNULL(tsha.replyto_address, N'')</property>
    </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ConfigurationValue" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
	<property_link table='#tmp_sysmail_help_configure' alias='tshc'/>
	<prefix>
create table #tmp_sysmail_help_configure(paramname nvarchar(256), paramvalue nvarchar(256) null, description nvarchar(256) null)

insert into #tmp_sysmail_help_configure(paramname, paramvalue, description) exec msdb.dbo.sysmail_help_configure_sp
	</prefix>
	<postfix>
drop table #tmp_sysmail_help_configure
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='nvarchar' size = '256' access='Read'>tshc.paramname</property>
	<property name='Value' type='nvarchar' size = '256'>tshc.paramvalue</property>
	<property name='Description' type='nvarchar' size = '256'>tshc.description</property>
    </properties>
</EnumObject>
w<?xml version="1.0" ?>
<EnumObject type="Mail" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
    </settings>
   <properties>
	<property name="Urn" type="nvarchar" size="600">
		<link_multiple no='1' expression="{0} + '/Mail'">
			<link_field type='parent' field="Urn" />
		</link_multiple>
	</property>
    </properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
      <property_link fields = '#Owner#' left_join='sys.database_principals AS s{0}'>s{0}.principal_id = ISNULL({0}.principal_id, (OBJECTPROPERTY({0}.object_id, 'OwnerId')))</property_link>
    </version>
 	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<property name="Name" type="sysname" mode="design">{0}.name</property>
			<property name="ID" type="int" access='Read'>{0}.id</property>
			<property name="CreateDate" type="datetime" access='Read'>{0}.crdate</property>
			<property name="ParentID" type="int" hidden='true'>{0}.parent_obj</property>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>3</property>
			-->
			<!-- extended properties support -->
			<property name="ObjectNameFromFilter" type="sysname" hidden='true'>
				<link_multiple no='1' expression="{{0}}">
					<link_field type='filter' field="Name" default_value="null"/>
				</link_multiple>
			</property>
		</version>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="Name" type="sysname" mode="design">{0}.name</property>
			<property name="ID" type="int" access='Read'>{0}.object_id</property>
			<property name="CreateDate" type="datetime" access='Read'>{0}.create_date</property>
			<property name="DateLastModified" type="datetime" access='Read'>{0}.modify_date</property>
			<property name="ParentID" type="int" hidden='true'>{0}.parent_object_id</property>
		      <property name="ExtPropClass" type="int" hidden='true'>1</property>
    </version>
    

		<!-- extended properties support -->
      <property name="ExtPropMajorID" type="int" hidden='true'>
        <link_multiple no='1' expression="{{0}}">
          <link_field type='local' field="ID" />
        </link_multiple>
      </property>
      <property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
      <property name="Owner" type="sysname" mode="design">ISNULL(s{0}.name, N'')</property>
      <property name="IsSchemaOwned" type="bit" access="Read" cast="true" mode="design">case when {0}.principal_id is null then 1 else 0 end</property>
     </version>
    </properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="Trigger" impl_type="SqlObject" min_major='9' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<property_link table='sys.triggers AS tr'>tr.parent_class = 0</property_link>
    <version min_major='9' matrix_min_major='10'>
      <property_link fields='#ExecutionContext#'
              left_join='sys.assembly_modules' alias='am2tr'>am2tr.object_id = tr.object_id</property_link>
    </version>
    <version min_major='9' matrix_min_major='10' cloud_min_major='10'>
      <property_link fields='#AnsiNullsStatus#QuotedIdentifierStatus#'
              left_join='sys.sql_modules' alias='sqlmod'>sqlmod.object_id = tr.object_id</property_link>
    </version>
  </settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_named_object.xml' alias='tr' for="#Name#ID#CreateDate#DateLastModified#ExtPropClass#ExtPropMajorID#ExtPropMinorID#"/>
		<include file='inc_system_object.xml' alias='tr' for="#IsSystemObject#"/>
		<include file='mixed_module_link.xml' alias='tr' 
			for='#ExecutionContextUser#MethodName#ClassName#AssemblyName#Text#TextBody#BodyStartIndex#IsEncrypted#' />
		<include file='inc_ddl_trigger_event.xml' alias='tr' for='#DdlTriggerEvents#' ></include>
    <version min_major='9' matrix_min_major='10'>
      <property name="ExecutionContext" type="int" report_type="DatabaseDdlTriggerExecutionContext">
        <link_multiple no='1' expression="case when am2tr.object_id is null then {0} else case isnull(am2tr.execute_as_principal_id, -1) when -1 then 1 else 2 end end">
          <link_field type='local' field="SqlExecutionContextDdl" />
        </link_multiple>
      </property>
    </version>
    <version cloud_min_major='10'>
      <property name="ExecutionContext" type="int" report_type="DatabaseDdlTriggerExecutionContext">
        <link_multiple no='1' expression="{0}">
          <link_field type='local' field="SqlExecutionContextDdl" />
        </link_multiple>
      </property>
    </version>
    <version min_major='9' cloud_min_major='10'>
		<property name="NotForReplication" type="bit" >tr.is_not_for_replication</property>
		</version>
		<property name="IsEnabled" type="bit">~tr.is_disabled</property>
		<property name="ImplementationType" type="int" report_type="ImplementationType">CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END</property>
		<property name="AnsiNullsStatus" type="bit" cast="true">sqlmod.uses_ansi_nulls</property>
		<property name="QuotedIdentifierStatus" type="bit" cast="true">sqlmod.uses_quoted_identifier</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
	</properties>
</EnumObject>
l<?xml version="1.0" ?>
<EnumObject type="Trigger" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='master.sys.server_triggers AS tr'>tr.parent_class = 100</property_link>
		<property_link fileds='#ClassName#MethodName#AssemblyName#ExecutionContextLogin#ExecutionContext#' 
						left_join='master.sys.server_assembly_modules AS mod'>mod.object_id = tr.object_id</property_link>
		<property_link fields='#ExecutionContext#' 
						left_join='sys.assembly_modules' alias='am2tr'>am2tr.object_id = tr.object_id</property_link>
		<property_link fields='#AnsiNullsStatus#QuotedIdentifierStatus#Definition#ExecutionContextLogin#ExecutionContext#IsEncrypted#' 
						left_join='sys.server_sql_modules' alias='ssmod'>ssmod.object_id = tr.object_id</property_link>
		<property_link fields='#ExecutionContextLogin#'
				left_join='sys.server_principals' alias='sprin'>sprin.principal_id = ISNULL(ssmod.execute_as_principal_id,mod.execute_as_principal_id)</property_link>
		<property_link fields='#AssemblyName#' 
						left_join='master.sys.assemblies AS asmbl'>asmbl.assembly_id = mod.assembly_id</property_link>
		<post_process fields='#DdlTriggerEvents#' triggered_fields = "#DdlTriggerEventsInternal#" class_name='Microsoft.SqlServer.Management.Smo.PostProcessServerDdlTriggerEvents'/>

		<post_process fields='#Text#BodyStartIndex#HasColumnSpecification#TableVariableName#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessBodyText'
						triggered_fields='#Definition#'/>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_named_object.xml' alias='tr' for="#Name#ID#CreateDate#DateLastModified#"/>
		<include file='inc_system_object.xml' alias='tr' for="#IsSystemObject#" />

		<property name="IsEnabled" type="bit">~tr.is_disabled</property>
		<!-- Default to empty string for CLR triggers -->
		<property name="AssemblyName" type="sysname">CASE WHEN tr.type = N'TR' THEN N'' ELSE asmbl.name END</property>
		<property name="ClassName" type="sysname">CASE WHEN tr.type = N'TR' THEN N'' ELSE mod.assembly_class END</property>
		<property name="MethodName" type="sysname">CASE WHEN tr.type = N'TR' THEN N'' ELSE mod.assembly_method END</property>

		<property name="ImplementationType" type="int" report_type="ImplementationType">CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END</property>
		<property name="AnsiNullsStatus" type="bit" cast="true">ssmod.uses_ansi_nulls</property>
		<property name="QuotedIdentifierStatus" type="bit" cast="true">ssmod.uses_quoted_identifier</property>
		<property name="Definition" type="nvarchar" size='max' hidden='true'>ssmod.definition</property>
		<property name="ExecutionContextLogin" type="sysname">ISNULL(sprin.Name,N'')</property>
		<property name="ExecutionContext" type="int" report_type="ServerDdlTriggerExecutionContext">CASE WHEN (ssmod.execute_as_principal_id IS NULL AND mod.execute_as_principal_id IS NULL) THEN 1 ELSE 2 END</property>
		<property name="Text" type="nvarchar" size='max' expensive='true' access="Read">NULL</property>
		<property name="BodyStartIndex" type="int" expensive='true' access="Read">NULL</property>
		<property name="IsEncrypted" type="bit" cast='true'>CASE WHEN ssmod.definition IS NULL THEN 1 ELSE 0 END</property>
		<property name="DdlTriggerEventsInternal" type="nvarchar" size="50" expensive='true' hidden="true"  >
			<link_multiple no='1' expression="cast(db_id() as varchar(20)) + '_' + cast({0} as varchar(20))">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="DdlTriggerEvents" type="sql_variant" cast="true"  expensive="true" report_type2="Microsoft.SqlServer.Management.Smo.ServerDdlTriggerEventSet">null</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject min_major='7' matrix_min_major='10'>
	<settings>
		<version min_major='9' matrix_min_major='10'>
            <!-- 
            here we have to fetch from both sys.server_sql_modules and sys.system_sql_modules
            because user objects are stored in the former, and system objects are 
            stored in the latter
            -->   
			<property_link 
                fields = '#Recompile#IsEncrypted#Definition#'
				left_join='sys.server_sql_modules AS sm{0}'>sm{0}.object_id = {0}.object_id</property_link>
            <property_link 
                fields = '#Recompile#IsEncrypted#Definition#'
				left_join='sys.system_sql_modules AS ssm{0}'>ssm{0}.object_id = {0}.object_id</property_link>
		</version>
	</settings>
	<properties>
		<version min_major='7' max_major='8'>
			<include file='inc_sql_module.xml' alias='{0}'/>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="AnsiNullsStatus" type="bit" cast='true'>ISNULL(sm{0}.uses_ansi_nulls, ssm{0}.uses_ansi_nulls)</property>
			<property name="QuotedIdentifierStatus" type="bit" cast='true'>ISNULL(sm{0}.uses_quoted_identifier, ssm{0}.uses_quoted_identifier)</property>
			<property name="IsSchemaBound" type="bit" cast='true'>OBJECTPROPERTYEX({0}.object_id, N'IsSchemaBound')</property>
		
			<include file='inc_sql_module.xml' alias='sm{0}'/>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="DatabaseDdlTriggerEvent" impl_type="SqlObject" min_major='9' matrix_min_major="10" cloud_min_major="10">
	<settings main_table="sys.trigger_events te">
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
	</settings>
	<properties>
		<property name="EventType" type="int" access="Read">te.type</property>
		<property name="EventTypeDescription" type="nvarchar" size="60"  access="Read">te.type_desc</property>			
		<property name="ParentID" type="int" hidden='true'>te.object_id</property>
    <property name="ObjectIdentifier" type="varchar" size='300'
        access="Read">cast(db_id() as varchar(20)) + '_' + cast(te.object_id as varchar(20))</property>    
  </properties>
</EnumObject>
r<?xml version="1.0" ?>
<EnumObject type="inc_ddl_trigger_event" impl_type="SqlObject" min_major='9' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<post_process fields='#DdlTriggerEvents#' triggered_fields = "#DdlTriggerEventsInternal#" class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseDdlTriggerEvents'/>
	</settings>
  <properties>
    <property name="DdlTriggerEventsInternal" type="nvarchar" size="50" expensive='true' hidden="true"  >
      <link_multiple no='1' expression="cast(db_id() as varchar(20)) + '_' + cast({{0}} as varchar(20))">
        <link_field type='local' field="ID" />
      </link_multiple>
    </property>
    <property name="DdlTriggerEvents" type="sql_variant" cast="true"  expensive="true" report_type2="Microsoft.SqlServer.Management.Smo.DatabaseDdlTriggerEventSet">null</property>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="ServerDdlTriggerEvent" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings main_table="sys.server_trigger_events te">
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
	</settings>
	<properties>
		<property name="EventType" type="int" access="Read">te.type</property>
		<property name="EventTypeDescription" type="nvarchar" size="60"  access="Read">te.type_desc</property>
		<property name="ObjectIdentifier" type="varchar" size='300' 
			access="Read">cast(db_id() as varchar(20)) + '_' + cast(te.object_id as varchar(20))</property>		
		<property name="ParentID" type="int" hidden='true'>te.object_id</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailProfileAccounts" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='Name' local='ProfileName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#profile_account_tmp pat" />
		<prefix>
			<link_multiple no='1' expression="
create table #profile_account_tmp(profile_id int, profile_name sysname, account_id int, account_name sysname, sequence_number int)
declare @ProfileName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @ProfileName
while @@fetch_status &gt;= 0 
begin 
		insert #profile_account_tmp (profile_id,profile_name,account_id,account_name,sequence_number) exec msdb.dbo.sysmail_help_profileaccount_sp @profile_name=@ProfileName
		fetch crs into @ProfileName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #profile_account_tmp
		</postfix>
	</settings>
	<properties>
		<property name="ProfileName" type="sysname">pat.profile_name</property>
		<property name="ProfileID" type="int">pat.profile_id</property>
		<property name="AccountName" type="sysname">pat.account_name</property>
		<property name="AccountID" type="int">pat.account_id</property>
		<property name="SequenceNumber" type="int">pat.sequence_number</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailProfilePrincipals" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent='Name' local='ProfileName' />
		</parent_link>
		<request_parent_select>
			<field name='Name' />
		</request_parent_select>
		<property_link table="#principal_profile_tmp ppt" />
		<prefix>
			<link_multiple no='1' expression="
create table #principal_profile_tmp(
		principal_id int, 
		principal_name sysname, 
		profile_id int, 
		profile_name sysname, 
		is_default bit
)
declare @ProfileName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @ProfileName
while @@fetch_status &gt;= 0 
begin 
		insert #principal_profile_tmp (principal_id,principal_name,profile_id,profile_name,is_default) exec msdb.dbo.sysmail_help_principalprofile_sp @profile_name=@ProfileName
		fetch crs into @ProfileName
end 
close crs
deallocate crs">
				<link_field field="ParentSelect" />
			</link_multiple>
		</prefix>
		<postfix>
			drop table #principal_profile_tmp
		</postfix>
	</settings>
	<properties>
		<property name="PrincipalName" type="sysname">ppt.principal_name</property>
		<property name="PrincipalID" type="int">ppt.principal_id</property>
		<property name="ProfileName" type="sysname">ppt.profile_name</property>
		<property name="ProfileID" type="int">ppt.profile_id</property>
		<property name="IsDefault" type="bit">ppt.is_default</property>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="MailServer" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
	<parent_link>
		<link parent='Name' local='AccountName' />
	</parent_link>
	<request_parent_select>
		<field name='Name' />
	</request_parent_select>

	<property_link table='#account_server_tmp' alias='ast'/>
	<prefix>
		<link_multiple no='1' expression="
create table #account_server_tmp(account_id int, name nvarchar(128), description nvarchar(256) null, email_address nvarchar(128) null, display_name nvarchar(128) null, replyto_address nvarchar(128) null, servertype nvarchar(128), servername nvarchar(128), port int, username nvarchar(128) null, use_default_credentials bit, enable_ssl bit)
declare @AccountName sysname

declare crs cursor local fast_forward
	for ( {0} ) 
open crs 
fetch crs into @AccountName 
while @@fetch_status &gt;= 0 
begin 
	insert #account_server_tmp(account_id, name, description, email_address, display_name, replyto_address, servertype, servername, port, username, use_default_credentials, enable_ssl) exec msdb.dbo.sysmail_help_account_sp @account_name=@AccountName
	fetch crs into @AccountName 
end 
close crs
deallocate crs">
			<link_field field="ParentSelect" />
		</link_multiple>
	</prefix>
	<postfix>
drop table #account_server_tmp
	</postfix>
    </settings>
    <properties>
	<include file='inc_urn.xml' />
	<property name='Name' type='sysname'>ast.servername</property>
	<property name='Port' type='int'>ast.port</property>
	<property name='UserName' type='nvarchar' size = '128'>ISNULL(ast.username, N'')</property>
	<property name='AccountName' type='nvarchar' size = '128' hidden='true'>ast.name</property>
	<property name='ServerType' type='nvarchar' size = '128' access='read'>ast.servertype</property>
	<property name='UseDefaultCredentials' type='bit' cast = 'true'>ast.use_default_credentials</property>
	<property name='EnableSsl' type='bit' cast = 'true'>ast.enable_ssl</property>
    </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='Endpoints' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='sys.endpoints' alias='e'/>
		<property_link fields='#Owner#' join='sys.server_principals AS sp'>sp.principal_id = e.principal_id</property_link>		
	</settings>
	<properties>
		<include file='inc_urn.xml' />	
		<property name='Name' type='sysname'>e.name</property>
		<property name='ID' type='int'>e.endpoint_id</property>
		<property name="Owner" type="nvarchar" size="128" >sp.name</property>
		<property name='EndpointType' type='tinyint' report_type = 'EndpointType'>e.type</property>		
		<property name='ProtocolType' type='tinyint' report_type = 'ProtocolType'>e.protocol</property>
		<property name="EndpointState" type="int" report_type="EndpointState" access="Read">e.state</property>
		<property name='IsAdminEndpoint' type='bit' access='Read'>e.is_admin_endpoint</property>
		
		
		<!-- enable permissions -->
		<property name="PermissionClass" type="int" hidden='true'>105</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when e.endpoint_id &lt; 65536 then 1 else 0 end</property>

    <version min_major ="10" matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SoapEndpoints' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.soap_endpoints' alias='se'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		<property name='DefaultDatabase' type='sysname'>ISNULL(se.default_database, N'')</property>
		<property name='IsSqlBatchesEnabled' type='bit'>se.is_sql_language_enabled</property>
		<property name='DefaultNamespace' type='nvarchar' size = '384'>se.default_namespace</property>
		<property name="XmlFormatOption" type="int" report_type="XmlFormatOption" >2-convert(int, se.is_xml_charset_enforced)</property>
		<property name="XsdSchemaOption" type="int" cast="true" report_type="XsdSchemaOption" >se.default_result_schema</property>
		<property name='WsdlGeneratorProcedure' type='nvarchar' size = '776'>se.wsdl_generator_procedure</property>
		<property name="WsdlGeneratorOption" type="int" cast="true" report_type="WsdlGeneratorOption" >case LEN(ISNULL(se.wsdl_generator_procedure,'')) when 0 then 0 else 2 end</property>
		<property name='IsSessionEnabled' type='bit'>se.is_session_enabled</property>
		<property name='SessionTimeout' type='int'>se.session_timeout</property>
		<property name='SessionNeverTimesOut' type='bit' cast='true'>CASE WHEN se.session_timeout &lt; 0 THEN 1 ELSE 0 END</property>
		
		<property name='EndpointID' type='int' hidden='true'>se.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when se.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="inc_urn_single" impl_type="SqlObject" min_major='7' cloud_min_major='10' matrix_min_major='10'>
	<settings>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='2' expression="{0} + '/{1}'">
				<link_field type='parent' field="Urn" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
	</properties>
</EnumObject>{<?xml version='1.0' ?>
<EnumObject type='DatabaseMirroringEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.database_mirroring_endpoints' alias='dme'/>
		<property_link fields='#Certificate#' left_join='sys.certificates AS cert'>cert.certificate_id = dme.certificate_id</property_link>		
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />	
		<property name='ServerMirroringRole' type='tinyint' report_type = 'ServerMirroringRole'>dme.role</property>
		<property name='Certificate' type='sysname'>ISNULL(cert.name,N'')</property>
		<property name='EndpointEncryption' type='int' report_type='EndpointEncryption'>case 
                            when dme.encryption_algorithm = 0 then 0 
                            when dme.encryption_algorithm in (3,4,7,8) then 1 
                            when dme.encryption_algorithm in (1,2,5,6) then 2 
                            else 0 
                        end
        </property>
		<property name='EndpointEncryptionAlgorithm' type='int' report_type='EndpointEncryptionAlgorithm'>case dme.encryption_algorithm 
                            when 0 then 0
                            when 1 then 1
                            when 2 then 2
                            when 3 then 1
                            when 4 then 2
                            when 5 then 4
                            when 6 then 3
                            when 7 then 4
                            when 8 then 3
                            else 0
                        end
        </property>
		<property name='EndpointAuthenticationOrder' type='int' report_type='EndpointAuthenticationOrder'>dme.connection_auth</property>
		
		<property name='EndpointID' type='int' hidden='true'>dme.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when dme.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='ServiceBrokerEndpoints' impl_type='SqlObject' min_major='9'>
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.service_broker_endpoints' alias='sbe'/>
		<property_link fields='#Certificate#' left_join='sys.certificates AS cert'>cert.certificate_id = sbe.certificate_id</property_link>		
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />	
		<property name='IsMessageForwardingEnabled' type='bit'>sbe.is_message_forwarding_enabled</property>
		<property name='MessageForwardingSize' type='int'>sbe.message_forwarding_size</property>
		<property name='Certificate' type='sysname'>ISNULL(cert.name,N'')</property>
		<property name='EndpointEncryption' type='int' report_type='EndpointEncryption'>
                        case 
                            when sbe.encryption_algorithm = 0 then 0 
                            when sbe.encryption_algorithm in (3,4,7,8) then 1 
                            when sbe.encryption_algorithm in (1,2,5,6) then 2 
                            else 0 
                        end
        </property>
		<property name='EndpointEncryptionAlgorithm' type='int' report_type='EndpointEncryptionAlgorithm'>
                        case sbe.encryption_algorithm 
                            when 0 then 0
                            when 1 then 1
                            when 2 then 2
                            when 3 then 1
                            when 4 then 2
                            when 5 then 4
                            when 6 then 3
                            when 7 then 4
                            when 8 then 3
                            else 0
                        end
        </property>
		<property name='EndpointAuthenticationOrder' type='int' report_type='EndpointAuthenticationOrder'>sbe.connection_auth</property>
		
		<property name='EndpointID' type='int' hidden='true'>sbe.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when sbe.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='ViaEndpoints' impl_type='SqlObject' min_major='9' >
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.via_endpoints' alias='ve'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		<property name='Discriminator' type='nvarchar' size = '128'>ve.discriminator</property>
		
		<property name='EndpointID' type='int' hidden='true'>ve.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when ve.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='HttpEndpoints' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.http_endpoints' alias='he'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		<property name='AuthenticationRealm' type='nvarchar' size = '128'>ISNULL(he.authorization_realm,N'')</property>
		<property name='ClearPort' type='int'>he.clear_port</property>
		<property name='DefaultLogonDomain' type='nvarchar' size = '128'>ISNULL(he.default_logon_domain,N'')</property>
		<property name="HttpPortTypes" type="int" report_type="HttpPortTypes" >1*he.is_ssl_port_enabled + 2*is_clear_port_enabled</property>
		<property name='SslPort' type='int'>he.ssl_port</property>
		<property name='WebSiteUrlPath' type='nvarchar' size = '4000'>he.url_path</property>
		<property name='WebSite' type='nvarchar' size = '128'>he.site</property>
		<property name='IsCompressionEnabled' type='bit'>he.is_compression_enabled</property>
		<property name="HttpAuthenticationModes" type="int" report_type="HttpAuthenticationModes">1*is_anonymous_enabled + 2*is_basic_auth_enabled + 4*is_digest_auth_enabled + 8*is_integrated_auth_enabled + 16*is_ntlm_auth_enabled + 32*is_kerberos_auth_enabled</property>				
		
		<property name='EndpointID' type='int' hidden='true'>he.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when he.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='TcpEndpoints' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="EndpointID" />
		</parent_link>
	
		<property_link table='sys.tcp_endpoints' alias='te'/>
	</settings>
	<properties>
		<include file='inc_urn_single.xml' />
		
		<property name='ListenerPort' type='int'>te.port</property>
		<property name='IsDynamicPort' type='bit' access = 'read'>te.is_dynamic_port</property>
		<property name='ListenerIPAddress' type='varchar' size = '45'>ISNULL(te.ip_address,'')</property>
		
		<property name='EndpointID' type='int' hidden='true'>te.endpoint_id</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when te.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>
X<?xml version="1.0" ?>
<EnumObject type="HttpEndpoint" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="EndpointID" local="EndpointID" />
		</parent_link>
		<property_link table='sys.endpoint_webmethods AS ewm' />
	</settings>
	<properties>
		<include file='inc_urn_soapmethod.xml' />
		<property name="Name" type="sysname">ewm.method_alias</property>
		<property name="Namespace" type="nvarchar" size="384">ISNULL(ewm.namespace,'')</property>
		<property name="ResultFormat" type="int" cast="true" report_type="ResultFormat" >ewm.result_format</property>		
		<property name="SqlMethod" type="nvarchar" size="776" access = "Read">ewm.object_name</property>
		<property name="MethodXsdSchemaOption" type="int" cast="true" report_type="MethodXsdSchemaOption" >ewm.result_schema</property>
		<property name="EndpointID" type="int" hidden="true">ewm.endpoint_id</property>			
		<property name="MethodLoginType" type="int" cast="true" report_type="MethodLoginType">case upper(se.login_type) when 'WINDOWS' then 2 else 1 end</property>

    <!--IsSystemObject An endpoint with an ID less then 65536 is a system endpoint.-->
    <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when ewm.endpoint_id &lt; 65536 then 1 else 0 end</property>

  </properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='SymmetricKey' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='sys.symmetric_keys' alias='c'>c.symmetric_key_id &lt;&gt; 101</property_link>
		<property_link fields = '#IsOpen#' left_join='sys.openkeys AS ok'>ok.key_id=c.symmetric_key_id and ok.database_id=db_id()</property_link>
		<version min_major='10'>
			<property_link fields='#ProviderName#' left_join='sys.cryptographic_providers AS cp'>cp.guid = c.cryptographic_provider_guid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>c.name</property>
		<property name='ID' type='int'>c.symmetric_key_id</property>
		<property name='Owner' type='sysname'>user_name(c.principal_id)</property>
		<property name='CreateDate' type='datetime' access='read'>c.create_date</property>
        <property name='KeyGuid' type='uniqueidentifier' access='read'>c.key_guid</property>
        <property name='KeyLength' type='int' access='read'>c.key_length</property>
		<property name='EncryptionAlgorithm' type='int' report_type='SymmetricKeyEncryptionAlgorithm' access='read'
		>(case c.key_algorithm when 'R2' then 0 when 'R4' then 1 when 'D' then 2 when 'D3' then 3 when 'DX' then 4 when 'A1' then 5 when 'A2' then 6 when 'A3' then 7 when 'DT' then 8 else -1 end)</property>
		<property name='DateLastModified' type='datetime' access='read'>c.modify_date</property>
		<property name='IsOpen' type='bit' access='Read' cast='true'>ISNULL(ok.status, 0)</property>
		<version min_major='10'>
			<property name='ProviderName' type='sysname'>ISNULL(cp.name, '')</property>
		</version>

		<!-- enable permissions -->
		<property name="ExtPropClass" type="int" hidden='true'>24</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
		<version min_major='10' matrix_min_major='10'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
t	<?xml version='1.0' ?>
<EnumObject type='AsymmetricKey' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='sys.asymmetric_keys' alias='a'/>
		<property_link fields = '#Owner#' left_join='sys.server_principals' alias='sp'>sp.principal_id = a.principal_id</property_link>
		<version min_major='10'>
			<property_link fields='#ProviderName#' left_join='sys.cryptographic_providers' alias='cp'>cp.guid = a.cryptographic_provider_guid</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='sysname'>a.name</property>
		<property name='ID' type='int'>a.asymmetric_key_id</property>
		<property name='Owner' type='sysname'>user_name(a.principal_id)</property>
		<property name='KeyEncryptionAlgorithm' type='int' report_type='AsymmetricKeyEncryptionAlgorithm' 
					access='read'>(case a.algorithm when '1R' then 0 when '2R' then 1 when '3R' then 2 else -1 end)</property>
		<property name='KeyLength' type='int' access='read'>a.key_length</property>
		<property name='PrivateKeyEncryptionType' type='int' report_type = 'PrivateKeyEncryptionType' 
			access='read'>case a.pvt_key_encryption_type when 'NA' then 0 when 'MK' then 1 when 'PW' then 2 when 'CP' then 3 end</property>
		<property name='PublicKey' type='varbinary' size='max' access='read'>a.public_key</property>
		<property name='Sid' type='varbinary' size='85' access='read'>a.sid</property>
		<property name='Thumbprint' type='varbinary' size='32' access='read'>a.thumbprint</property>
		<version min_major='10'>
			<property name='ProviderName' type='sysname'>ISNULL(cp.name, '')</property>
		</version>

		<!-- not available
		<property name='CreateDate' type='datetime' access='read'>a.create_date</property>
		<property name='DateLastModified' type='datetime' access='read'>a.modify_date</property>
		-->

		<!-- enable permissions -->
		<property name="ExtPropClass" type="int" hidden='true'>26</property>
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>0</property>
    <version min_major='10' matrix_min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
3<?xml version="1.0" ?>
<EnumObject type="Table" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<property_link>tbl.name like '#%'</property_link>
		<prefix>
			use tempdb
		</prefix>
	</settings>
	<properties>
		<include file='table.xml' />
	</properties>
</EnumObject>
k<?xml version="1.0" ?>
<EnumObject type="parameter" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<post_process fields='#DefaultValue#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessParam' 
			triggered_fields='#IDText#DatabaseName#ParamName#ParentSysObj#Number#' />
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name="Name" type="sysname" mode="design">param.name</property>
	
		<version min_major='7' max_major='8'>
			<property name="ID" type="int" access="Read" cast = 'true'>param.colid</property>
			<property name="ParentID" type="int" hidden='true'>param.id</property>
			<property name="DefaultValue" type='nvarchar' size = '4000' mode="design">null</property>
		</version>
		<version min_major='8' max_major='8'>
			<!-- extended properties support : commented out: sysproperties is not accessible to regular users
			<property name="ExtPropClass" type="int" hidden='true'>5</property>
			-->
			<property name="ObjectTypeName" type="sysname" hidden='true'>N'PARAMETER'</property>
			<include file ="inc_level2SupportProperties.xml"/>
		</version>
		<version min_major='9' matrix_min_major='10' cloud_min_major='10'>
			<property name="ID" type="int">param.parameter_id</property>
			<property name="ParentID" type="int" hidden='true'>param.object_id</property>			
			<property name="DefaultValue" type='nvarchar' size = '4000' mode="design">param.default_value</property>
      <property name="HasDefaultValue" type='bit'>param.has_default_value</property>
      <!-- extended properties support -->
      <property name="ExtPropClass" type="int" hidden='true'>2</property>
    </version>
    
		<include alias = 'param' file='inc_type.xml' />
		
		<!-- default value properties -->
    	<property name="IDText" type='int' hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="ID" />
			</link_multiple>
		</property>
		<property name="DatabaseName" type='sysname' hidden='true'>db_name()</property>
		<property name="ParamName" type='sysname' hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="Name" />
			</link_multiple>
		</property>
		<property name="ParentSysObj" type='bit' hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='parent' field="IsSystemObject" />
			</link_multiple>
		</property>


    <!-- extended properties support -->
		<property name="ExtPropMajorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ParentID" />
			</link_multiple>
		</property>
		<property name="ExtPropMinorID" type="int" hidden='true'>
			<link_multiple no='1' expression="{0}">
				<link_field type='local' field="ID" />
			</link_multiple>
		</property>
        
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7' matrix_min_major='10' cloud_min_major='10'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link>clmns.number = &lt;msparam&gt;0&lt;/msparam&gt; and &lt;msparam&gt;0&lt;/msparam&gt; = OBJECTPROPERTY(clmns.id, N'IsScalarFunction')</property_link>
		</version>
	</settings>
	<properties>
		<include file='Column.xml' />
	</properties>
</EnumObject>
f
<?xml version="1.0" ?>
<EnumObject type="StoredProcedure" impl_type="SqlObject" min_major='7'  matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ID" />
		</parent_link>

		<version min_major='7' max_major='8'>
			<property_link table='syscomments' alias = 'nsp'>nsp.colid = &lt;msparam&gt;1&lt;/msparam&gt; and nsp.number &gt; &lt;msparam&gt;1&lt;/msparam&gt;</property_link>
		</version>
		<version min_major='9'  matrix_min_major='10'>
			<property_link table='sys.numbered_procedures' alias = 'nsp'/>
		</version>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='3' expression="{0} + '/{2}[@Number=' + cast({1} AS nvarchar(20)) + ']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Number" />
				<link_field field="NType" />				
			</link_multiple>
		</property>
		<version min_major='7' max_major='8'>
			<property name="Number" type="smallint" access='Read'>nsp.number</property>
			<property name="Name" type="sysname" read_only_after_creation="true">object_name(nsp.id) + ';' + cast(nsp.number as nvarchar(20))</property>
			<property name="IsEncrypted" type="bit" cast='true'>nsp.encrypted</property>

			<!-- on 7-8 Definition is just a pointer to the text-->
			<property name="Definition" type="nvarchar" size='80' 
				hidden='true'>cast(nsp.id as nvarchar(20)) + N'_' + cast(db_id() as nvarchar(20)) + N'_' + cast(nsp.number as nvarchar(20))</property>
			<property name="ParentNumber" type='smallint' hidden='true'>nsp.number</property>
			<property name="ID" type='int' hidden='true'>nsp.id</property>
		</version>
		
		<version min_major='9' matrix_min_major='10'>
			<property name="Number" type="smallint" access='Read'>nsp.procedure_number</property>		
			<property name="Name" type="sysname" read_only_after_creation="true">object_name(nsp.object_id) + ';' + cast(nsp.procedure_number as nvarchar(20))</property>
			<property name="IsEncrypted" type="bit" cast='true'>CASE WHEN nsp.definition IS NULL THEN 1 ELSE 0 END</property>
			
			<!-- here we just offer support for text, every object will do whatever it sees fit
			take the whole text, parse it, etc -->
			<property name="Definition" type="nvarchar" size='max' hidden='true'>nsp.definition</property>
			<property name="ParentNumber" type='smallint' hidden='true'>nsp.procedure_number</property>
			<property name="ID" type='int' hidden='true'>nsp.object_id</property>
		</version>
		<property name="IsSystemObject" type="int" hidden='true'>0</property>
		<include file='inc_text.xml' />
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
			<link parent="ParentNumber" local="Number" />
		</parent_link>
		<version min_major='7' max_major='8'>
			<property_link table='syscolumns' alias='param'/>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property_link table='mycte' alias='param'/>
		</version>
		<prefix>
			Begin
			With mycte(object_id, procedure_number,
			name, parameter_id,
			system_type_id, user_type_id,
			max_length, precision,
			scale, is_output, is_cursor_ref,default_value)
			as
			(select object_id, procedure_number,
			name, parameter_id,
			system_type_id, user_type_id,
			max_length, precision,
			scale, is_output, is_cursor_ref,null as default_value  FROM sys.numbered_procedure_parameters)
		</prefix>
		<postfix>
			end
		</postfix>
	</settings>
	<properties>
		<include file='parameter.xml' for = '#Urn#Name#ID#DataType#DataTypeSchema#SystemType#Length#NumericPrecision#NumericScale#DefaultValue#'/>
		<version min_major='7' max_major='8'>
			<property name="IsOutputParameter" type="bit" 
			cast='true'>CASE param.isoutparam WHEN 1 THEN param.isoutparam WHEN 0 THEN CASE param.name WHEN '' THEN 1 ELSE 0 END END</property>
			<property name="Number" type="smallint" hidden='true'>param.number</property>
		</version>
		<version min_major='9' matrix_min_major='10'>
			<property name="IsOutputParameter" type="bit">param.is_output</property>
			<property name="Number" type="int" hidden='true' cast='true'>param.procedure_number</property>
		</version>
	</properties>
</EnumObject>
:<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7' >
	<settings>
		<parent_link>
			<link parent="ID" local="GroupID" />
		</parent_link>
		
		<version min_major='9' >
			<property_link table="sys.database_files AS s">((s.type = 4) AND (s.drop_lsn IS NULL))</property_link>
		</version>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<include file='inc_DbFile.xml' for ='#Name#ID#FileName#Size#MaxSize#Growth#GrowthType#GroupID#IsReadOnlyMedia#IsReadOnly#IsOffline#IsSparse#'/>
	</properties>
</EnumObject>
w<?xml version='1.0' ?>
<EnumObject type='KeyEncryption' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.key_encryptions' alias='ke'/>
	</settings>
	<properties>
        <property name='ThumbPrint' type='varbinary' size = '32' access='read' cast='true'>ke.thumbprint</property>
		<property name='SymmetricKeyEncryptionType' type='int' report_type='SymmetricKeyEncryptionType'
>(case ke.crypt_type when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 end)</property>

		<property name='CryptProperty' type='varbinary' size = 'max' access='read' cast='true'>ke.crypt_property</property>

		<property name='ParentID' type='int' access='read' hidden='true'>ke.key_id</property>		
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='SPHelpCategory' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_category' alias='tshc'/>
		
		<prefix>
create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'ALERT'
		</prefix>
		<postfix>
drop table #tmp_sp_help_category
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshc.name</property>
		<property name='ID' type='int'>tshc.category_id</property>
	</properties>
</EnumObject>
n<?xml version='1.0' ?>
<EnumObject type='SPHelpCategory' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_category' alias='tshc'/>
		
		<prefix>
create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'JOB'
		</prefix>
		<postfix>
drop table #tmp_sp_help_category
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshc.name</property>
		<property name='ID' type='int'>tshc.category_id</property>
		<property name='CategoryType' type='tinyint' report_type='Agent.CategoryType' read_only_after_creation="true">tshc.category_type</property>
	</properties>
</EnumObject>

<?xml version='1.0' ?>
<EnumObject type='Transactions' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
<!--
1. we want all transactions normal and snapshot 
2. if it is in dm_tran_active_snapshot_database_transactions we call a transaction versioned 
3. it is possible for a transaction to be in dm_tran_active_snapshot_database_transactions but not in dm_tran_session_transactions we still want to show it then 
4. it is possible for a transaction to be in dm_tran_active_snapshot_database_transactions but not in dm_tran_active_transactions, in this case the tran_begin_time is null and the name is user_transaction
5. it is possible for a transaction to be both in dm_tran_active_snapshot_database_transactions and in dm_tran_session_transactions, in this case we only want to show one row.

We will have one row if the transaction does not have an associated db or a row for every database in which the transaction is involved
-->
	<union>
		<!-- session transaction: normal transactions + some snapshot transactions-->	
		<settings>
			<property_link table='sys.dm_tran_session_transactions' alias='ts'/>
			<property_link left_join='sys.dm_tran_database_transactions' 
				alias='dt'>dt.transaction_id = ts.transaction_id</property_link>
			<property_link fields='#IsVersioned#' left_join='sys.dm_tran_active_snapshot_database_transactions' 
				alias='tsnp'>tsnp.transaction_id = ts.transaction_id</property_link>
			<property_link fields='#Name#BeginTime#' left_join='sys.dm_tran_active_transactions' 
				alias='ta'>ta.transaction_id = ts.transaction_id</property_link>
		</settings>
		<properties>
			<property name='Name' type='sysname'>ta.name</property>
			<property name='TransactionID' type='bigint'>ts.transaction_id</property>
			<property name='BeginTime' type='datetime'>ta.transaction_begin_time</property>
			<property name='Spid' type='int'>ts.session_id</property>
			<property name='DatabaseName' type='sysname'>db_name(dt.database_id)</property>
			<property name='DatabaseID' type='sysname'>dt.database_id</property>						
			<property name='DatabaseBeginTime' type='datetime'>dt.database_transaction_begin_time</property>
			<property name='IsVersioned' type='bit' cast='true'>case when tsnp.transaction_id is null then 0 else 1 end</property>
		</properties>
	</union>
	<union>
		<!-- snapshot transactions-->	
		<settings>
			<property_link table='sys.dm_tran_active_snapshot_database_transactions' alias='tsnp'/>
			<property_link left_join='sys.dm_tran_database_transactions' 
				alias='dt'>dt.transaction_id = tsnp.transaction_id</property_link>
			<property_link fields='#Name#BeginTime#' left_join='sys.dm_tran_active_transactions' 
				alias='ta'>ta.transaction_id = tsnp.transaction_id</property_link>
		</settings>
		<properties>
			<property name='Name' type='sysname'>ta.name</property>
			<property name='TransactionID' type='bigint'>tsnp.transaction_id</property>
			<property name='BeginTime' type='datetime'>ta.transaction_begin_time</property>
			<property name='Spid' type='int'>tsnp.session_id</property>			
			<property name='DatabaseName' type='sysname'>db_name(dt.database_id)</property>			
			<property name='DatabaseID' type='sysname'>dt.database_id</property>						
			<property name='DatabaseBeginTime' type='datetime'>dt.database_transaction_begin_time</property>
			<property name='IsVersioned' type='bit' cast='true'>1</property>
		</properties>
	</union>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='SPHelpCategory' impl_type='SqlObject' min_major='7' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_help_category' alias='tshc'/>
		
		<prefix>
create table #tmp_sp_help_category
(category_id int null, category_type tinyint null, name nvarchar(128) null)
insert into #tmp_sp_help_category (category_id, category_type, name) exec msdb.dbo.sp_help_category 'OPERATOR'
		</prefix>
		<postfix>
drop table #tmp_sp_help_category
		</postfix>
	</settings>
	<properties>
		<include file='inc_urn.xml' />
		<property name='Name' type='nvarchar' size = '128'>tshc.name</property>
		<property name='ID' type='int'>tshc.category_id</property>
	</properties>
</EnumObject>
$<?xml version="1.0" ?>
<EnumObject type="ServerProxyAccount" impl_type="ServerProxyAccount" min_major='8' >
    <settings>
		<version min_major='8' max_major='8'>
    		<property_link>@account_name is not null</property_link>
			<prefix fields="#IsEnabled#"> 
				declare @SysAdminOnly int
				exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent', N'SysAdminOnly', @SysAdminOnly OUTPUT
                set @SysAdminOnly = (case when 0 = @SysAdminOnly then 1 else 0 end)
			</prefix>
			<prefix> 
create table #tmpProxyAccountName ( domain sysname, username sysname)
insert into #tmpProxyAccountName exec master.dbo.xp_sqlagent_proxy_account N'GET'

declare @account_name nvarchar(255)
set @account_name = (select domain + N'\' + username as [UserName] from #tmpProxyAccountName)
if (@account_name is null)
begin
  set @account_name=N''
end
			</prefix>
			<postfix> 
drop table #tmpProxyAccountName
			</postfix>
            </version>
		<version min_major='9' >
    		<property_link>@account_name is not null</property_link>
			<prefix fields="#IsEnabled#"> 
				declare @SysAdminOnly int
                set @SysAdminOnly = (select count(*) from sys.credentials c where c.name = N'##xp_cmdshell_proxy_account##')
			</prefix>
			<prefix> 
declare @account_name nvarchar(4000)
set @account_name = (select top 1 credential_identity from sys.credentials c where c.name = N'##xp_cmdshell_proxy_account##')
if (@account_name is null)
begin
  set @account_name=N''
end
			</prefix>
            </version>
    </settings>
   <properties>
       <property name="Urn" type="nvarchar" size="600">
           <link_multiple no='1' expression="{0} + '/ServerProxyAccount'">
               <link_field type='parent' field="Urn" />
           </link_multiple>
       </property>
           <property name="IsEnabled" type="bit" cast='true'>@SysAdminOnly</property>
    	   <property name="WindowsAccount" type="nvarchar" size='4000'>@account_name</property>
    </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="ServiceMasterKey" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
    <settings>
    </settings>
   <properties>
	<property name="Urn" type="nvarchar" size="600">
		<link_multiple no='1' expression="{0} + '/MasterKey'">
			<link_field type='parent' field="Urn" />
		</link_multiple>
	</property>
    </properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='DatabaseMasterKey' impl_type='SqlObject' min_major='9' matrix_min_major="10">
	<settings>
		<property_link table='sys.symmetric_keys' alias='c'>c.symmetric_key_id = 101</property_link>
		<property_link fields = '#IsOpen#' left_join='sys.openkeys AS ok'>ok.key_id=c.symmetric_key_id and ok.database_id=db_id()</property_link>
		<property_link fields = '#IsEncryptedByServer#' join='sys.databases AS mkdb'>mkdb.database_id=db_id()</property_link>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size="600">
			<link_multiple no='1' expression="{0} + '/MasterKey'">
				<link_field type='parent' field="Urn" />
			</link_multiple>
		</property>
		<property name='ID' type='int' access='Read' hidden='true'>c.symmetric_key_id</property>
		<property name='CreateDate' type='datetime' access='Read'>c.create_date</property>
		<property name='DateLastModified' type='datetime' access='Read'>c.modify_date</property>
		<property name='IsOpen' type='bit' access='Read' cast='true'>ISNULL(ok.status, 0)</property>
		<property name='IsEncryptedByServer' type='bit' access='Read' convert='true'>ISNULL(mkdb.is_master_key_encrypted_by_server, 0)</property>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='MasterKeyEncryption' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<parent_link>
			<link parent="ID" local="ParentID" />
		</parent_link>
		<property_link table='sys.key_encryptions' alias='ke'/>
	</settings>
	<properties>
        <property name="Urn" type="nvarchar" size="600">
			<link_multiple no='4' expression="{0} + '/{3}[@Thumbprint=''' + {1} + ''' and @SymmetricKeyEncryptionType = ''' + {2} + ''']'">
				<link_field type='parent' field="Urn" />
				<link_field type='local' field="Thumbprint_hid" />
                <link_field type='local' field="SymmetricKeyEncryptionType_hid" />
				<link_field field="NType" />
			</link_multiple>
          </property>
		<property name='ParentID' type='int' access='read' hidden='true'>ke.key_id</property>
        <property name='Thumbprint' type='varbinary' size = '32' access='read'>ke.thumbprint</property>
        <property name='Thumbprint_hid' type='nvarchar' size = '64' access='read' hidden='true' cast='true'>ISNULL(ke.thumbprint, 0x00)</property>
		<property name='SymmetricKeyEncryptionType' type='int' report_type='SymmetricKeyEncryptionType' access='read'>(case ke.crypt_type 
						when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 else -1 end)</property>
		<property name='SymmetricKeyEncryptionType_hid' type='nvarchar' size='20' hidden='true' cast='true'>(case ke.crypt_type 
						when 'ESKS' then 0 when 'EPUC' then 1 when 'ESKP' then 2 when 'EPUA' then 3 when 'ESKM' then 4 else -1 end)</property>
        <property name='CryptProperty' type='varbinary' access='read'>ke.crypt_property</property>
	</properties>
</EnumObject>
0<?xml version='1.0' ?>
<EnumObject type='DatabaseDiagram' impl_type='SqlObject' min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table='#tmp_sp_helpdiagrams' alias='tshd'/>
		<prefix>
			declare @DiagramSPPath nvarchar(512)
			select  @DiagramSPPath = quotename(db_name()) + '.dbo.sp_helpdiagrams'
			create table #tmp_sp_helpdiagrams
			([Database] sysname not null, Name sysname not null, ID int not null, Owner sysname null, OwnerID int not null)
			insert into #tmp_sp_helpdiagrams exec @DiagramSPPath
		</prefix>
		<postfix>
drop table #tmp_sp_helpdiagrams
		</postfix>
	</settings>
	<properties>
		<property name="Urn" type="nvarchar" size='900'> 
			'Server[@Name=' + quotename(cast(serverproperty(N'Servername') as sysname),'''') + 
			']/Database[@Name=' + quotename(db_name(),'''') +
			']/DatabaseDiagram[@Name=' +	quotename(tshd.Name,'''') + ' and @OwnerID=' + quotename(cast(tshd.OwnerID as nvarchar(30)),'''') + ']'
		</property>
		<property name='Name' type='nvarchar' size = '256'>tshd.Name</property>
		<property name='DiagramID' type='int' access='Read'>tshd.ID</property>
		<property name='Owner' type='nvarchar' size = '256' access='Read'>tshd.Owner</property>
		<property name='OwnerID' type='int' access='Read'>tshd.OwnerID</property>
	</properties>
</EnumObject>x<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='9' matrix_min_major='10'>
	<settings>
		<property_link table="msdb.dbo.sysmail_event_log er" />
	</settings>
	<properties>
		<property name="LogID" type="int">er.log_id</property>
		<property name="EventType" type="sysname">er.event_type</property>
		<property name="LogDate" type="datetime">er.log_date</property>
		<property name="Description" type="nvarchar" size="max">er.description</property>
		<property name="ProcessID" type="int">er.process_id</property>
		<property name="MailItemID" type="int">er.mailitem_id</property>
		<property name="AccountID" type="int">er.account_id</property>
		<property name="LastModifiedDate" type="datetime">er.last_mod_date</property>
		<property name="LastModifiedUser" type="sysname">er.last_mod_user</property>
	</properties>
</EnumObject>
><?xml version="1.0" ?>
<EnumObject type="inc_policy_health_state" impl_type="SqlObject" min_major='10' matrix_min_major='10'>
  <settings>
    <version min_major='10' matrix_min_major='10'>
      <prefix fields="#PolicyHealthState#">
        DECLARE @is_policy_automation_enabled bit
        SET @is_policy_automation_enabled  = (SELECT CONVERT(bit, current_value)
        FROM msdb.dbo.syspolicy_configuration
        WHERE name = 'Enabled')
      </prefix>
    </version>
  </settings>
  <properties>
    <version min_major='10' matrix_min_major='10'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='3' expression="{0} + '/{2}\[@ID=' + convert(nvarchar(20),{1}) + '\]'">
          <link_field type='parent' field="UrnWithId" />
          <link_field type='local' field="ID" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='3' expression="case when 1=@is_policy_automation_enabled and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like {0}+ '/{2}\[@ID=' + convert(nvarchar(20),{1}) + '\]%' ESCAPE '\') then 1 else 0 end">
          <link_field type='parent' field="UrnWithId" />
          <link_field type='local' field="ID" />
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
  </properties>
</EnumObject>,<?xml version="1.0" ?>
<EnumObject type="inc_policy_health_state" impl_type="SqlObject" min_major='11' matrix_min_major='11'>
  <settings>
    <version min_major='11' matrix_min_major='11'>
      <prefix fields="#PolicyHealthState#">
        DECLARE @is_policy_automation_enabled bit
        SET @is_policy_automation_enabled  = (SELECT CONVERT(bit, current_value)
        FROM msdb.dbo.syspolicy_configuration
        WHERE name = 'Enabled')
      </prefix>
    </version>
  </settings>
  <properties>
    <version min_major='11' matrix_min_major='11'>
      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='3' expression="{0} + '/{2}\[@Name=' + {1} + '\]'">
          <link_field type='parent' field="UrnWithId" />
          <link_field type='local' field="Name" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
        <link_multiple no='3' expression="case when 1=@is_policy_automation_enabled and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like {0}+ '/{2}\[@Name=' + QUOTENAME({1},'''') + '\]%' ESCAPE '\') then 1 else 0 end">
          <link_field type='parent' field="UrnWithId" />
          <link_field type='local' field="Name" />
          <link_field field="NType" />
        </link_multiple>
      </property>
    </version>
  </properties>
</EnumObject>
f<?xml version="1.0" ?>
<EnumObject type="ResourceGovernor" impl_type="ResourceGovernor" min_major='10' >
  <settings>
    <property_link table="sys.resource_governor_configuration AS c"/>
  </settings>
  <properties>
    <include file='inc_urn_single.xml' />
    <property name="ClassifierFunction" type="sysname">
      CASE WHEN OBJECT_NAME(c.classifier_function_id) IS NULL THEN N''  ELSE QUOTENAME(OBJECT_SCHEMA_NAME(c.classifier_function_id, 1)) + N'.' + QUOTENAME(OBJECT_NAME(c.classifier_function_id, 1))  END
    </property>
    <property name='Enabled' type='bit' cast='true'>c.is_enabled</property>
    <property name='ReconfigurePending' type='bit' cast='true' access='Read'>(SELECT is_reconfiguration_pending FROM sys.dm_resource_governor_configuration)</property>
    <!--This object does not have an ID or a  name.
    Note that this has to be consistent with the API implementation of UrnWithId.-->
    <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
      <link_multiple no='1' expression="'Server/{0}'">
        <link_field field="NType" />
      </link_multiple>
    </property>
    <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
      <link_multiple no='1' expression="case when 1=msdb.dbo.fn_syspolicy_is_automation_enabled() and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like 'Server/{0}%' ESCAPE '\') then 1 else 0 end">
        <link_field field="NType" />
      </link_multiple>
    </property>
  </properties>
</EnumObject>I<?xml version="1.0" ?>
<EnumObject type="ResourcePool" impl_type="SqlObject" min_major='10' >
  <settings>
    <property_link table="sys.resource_governor_resource_pools AS p"/>
  </settings>
  <properties>
    <include file='inc_urn.xml'/>
     <property name="ID" type="int" cast='true'>p.pool_id</property>
     <property name="Name" type="sysname">p.name</property>
     <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when p.pool_id &lt; 256 then 1 else 0 end</property>
     <property name="MinimumCpuPercentage" type="int">p.min_cpu_percent</property>
     <property name="MaximumCpuPercentage" type="int">p.max_cpu_percent</property>
     <property name="MinimumMemoryPercentage" type="int">p.min_memory_percent</property>
     <property name="MaximumMemoryPercentage" type="int">p.max_memory_percent</property>
     <version min_major='11' cloud_min_major='11'>
       <property name="CapCpuPercentage" type="int">p.cap_cpu_percent</property>
     </version>
    <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>	

O<?xml version="1.0" ?>
<EnumObject type="WorkloadGroup" impl_type="SqlObject" min_major='10' >
  <settings>
    <parent_link>
      <link parent="ID" local="ResourcePoolID" />
    </parent_link>
    <request_parent_select>
      <field name='ID' />
    </request_parent_select>

    <property_link table="sys.resource_governor_workload_groups AS wkg"/>
  </settings>
  <properties>
    <include file='inc_urn.xml'/>
     <property name="ID" type="int" cast='true'>wkg.group_id</property>
     <property name="ResourcePoolID" type="int" cast='true' hidden='true'>wkg.pool_id</property>
     <property name="Name" type="sysname">wkg.name</property>
     <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when wkg.group_id &lt; 256 then 1 else 0 end</property>
     <property name="GroupMaximumRequests" type="int">wkg.group_max_requests</property>
     <property name="Importance" type="int" report_type="WorkloadGroupImportance" >CASE WHEN N'Low' = wkg.importance THEN 0 WHEN N'Medium' = wkg.importance THEN 1 WHEN N'High' = wkg.importance THEN 2  END</property>
     <property name="RequestMaximumCpuTimeInSeconds" type="int">wkg.request_max_cpu_time_sec</property>
     <property name="RequestMaximumMemoryGrantPercentage" type="int">wkg.request_max_memory_grant_percent</property>
     <property name="RequestMemoryGrantTimeoutInSeconds" type="int">wkg.request_memory_grant_timeout_sec</property>
     <property name="MaximumDegreeOfParallelism" type="int">wkg.max_dop</property>
     <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>	
<?xml version="1.0" ?>
<EnumObject type="DatabaseEncryptionKey" impl_type="SqlObject" min_major='10'>
	<settings>
		<!--joining DEK catalog with itself on database_id to get the DEK object of the current database-->
		<property_link table='sys.dm_database_encryption_keys AS dek'>DB_ID()=dek.database_id</property_link>
		<!--DEK can be created with a certificate or an asymmetric key-->
		<property_link fields='#EncryptorName#EncryptionType#' left_join='master.sys.certificates AS cer'>dek.encryptor_thumbprint=cer.thumbprint</property_link>
		<property_link fields='#EncryptorName#EncryptionType#' left_join='master.sys.asymmetric_keys AS asymkey'>dek.encryptor_thumbprint=asymkey.thumbprint</property_link>
	</settings>
	<properties>
			<property name="Urn" type="nvarchar" size="600">
				<link_multiple no='1' expression="{0} + '/DatabaseEncryptionKey'">
					<link_field type='parent' field="Urn" />
				</link_multiple>
			</property>
			<property name="EncryptionState" type="int" report_type="DatabaseEncryptionState" access="Read">dek.encryption_state</property>
			<property name="CreateDate" type="datetime" access="Read">dek.create_date</property>
			<property name="OpenedDate" type="datetime" access="Read">dek.opened_date</property>
			<property name="RegenerateDate" type="datetime" access="Read">dek.regenerate_date</property>
			<property name="ModifyDate" type="datetime" access="Read">dek.modify_date</property>
			<property name="SetDate" type="datetime" access="Read">dek.set_date</property>
			<!--as of now AES is the only encryption algorithm used for encrypting -->
			<property name="EncryptionAlgorithm" type="int" report_type="DatabaseEncryptionAlgorithm">(case dek.key_algorithm when 'AES' then (case dek.key_length when 128 then 0 when 192 then 1 when 256 then 2 end) when 'TRIPLE_DES_3KEY' then 3 end)</property>
			<property name="Thumbprint" type="varbinary" size="32" access="Read">dek.encryptor_thumbprint</property>
			<property name="EncryptorName" type="sysname">ISNULL(cer.name, asymkey.name)</property>
			<property name="EncryptionType" type="int" report_type="DatabaseEncryptionType">(case when cer.name is null then 1 else 0 end)</property>
	</properties>
</EnumObject>

<?xml version="1.0" ?>
<EnumObject type="AvailabilityGroup" impl_type="SqlObject" min_major='11' >
  <settings>
    <property_link table="#tmpag_availability_groups" alias="AG"/>
    <property_link fields='#PrimaryReplicaServerName#ID#LocalReplicaRole#'
                   left_join="#tmpag_availability_group_states as agstates">AG.group_id = agstates.group_id</property_link>
    <property_link fields='#ID#PrimaryReplicaServerName#LocalReplicaRole#'
                   join="#tmpag_availability_replicas AS AR2">AG.group_id = AR2.group_id</property_link>
    <property_link fields='#ID#PrimaryReplicaServerName#LocalReplicaRole#'
                   join="#tmpag_availability_replica_states AS arstates2">AR2.replica_id = arstates2.replica_id AND arstates2.is_local = 1</property_link>
    <prefix fields="#PrimaryReplicaServerName#ID#LocalReplicaRole#">
      select agstates.group_id, agstates.primary_replica into #tmpag_availability_group_states from master.sys.dm_hadr_availability_group_states as agstates
    </prefix>

    <prefix>
      select * into #tmpag_availability_groups from master.sys.availability_groups
    </prefix>

    <prefix fields="#ID#PrimaryReplicaServerName#LocalReplicaRole#">
      select group_id, replica_id, replica_metadata_id into #tmpag_availability_replicas from master.sys.availability_replicas
      select replica_id, is_local, role into #tmpag_availability_replica_states from master.sys.dm_hadr_availability_replica_states
    </prefix>

    <postfix fields="#PrimaryReplicaServerName#ID#LocalReplicaRole#">
      drop table #tmpag_availability_group_states
    </postfix>
    
    <postfix fields="#ID#PrimaryReplicaServerName#LocalReplicaRole#">
      drop table #tmpag_availability_replicas
      drop table #tmpag_availability_replica_states
    </postfix>
    
    <postfix>
      drop table #tmpag_availability_groups
    </postfix>

  </settings>
  <properties>
        <include file='inc_urn.xml'/>

        <version min_major='11'>
          <property name="Name" type="sysname">AG.name</property>
          <property name="UniqueId" type="uniqueidentifier" access="Read">AG.group_id</property>
          <property name="AutomatedBackupPreference" type="tinyint" report_type="AvailabilityGroupAutomatedBackupPreference">ISNULL(AG.automated_backup_preference, 4)</property>
          <property name="FailureConditionLevel" type="tinyint" report_type="AvailabilityGroupFailureConditionLevel">ISNULL(AG.failure_condition_level, 6)</property>
          <property name="HealthCheckTimeout" type="int">ISNULL(AG.health_check_timeout, -1)</property>
          <property name="PrimaryReplicaServerName" type="nvarchar" access="Read">ISNULL(agstates.primary_replica, '')</property>
          <property name="LocalReplicaRole" type="int" report_type="AvailabilityReplicaRole" access="Read">ISNULL(arstates2.role, 3)</property>

          <!-- enable permissions -->
          <property name="PermissionClass" type="int" hidden='true'>108</property>

          <!--This property is required to link the permission object for the availability group to the object-->
          <!--Since the securable for the AG is attached to the replica, and not an AG wide property, the id is pulled from the AR2 table-->
          <property name="ID" type="int" access="Read">AR2.replica_metadata_id</property>
          <include file='inc_policy_health_state.xml'/>
        </version>      
  </properties>
</EnumObject>
Q+<?xml version="1.0" ?>
<EnumObject type="AvailabilityReplica" impl_type="SqlObject" min_major='11' >
  <settings>
    <parent_link>
      <link parent='UniqueId' local='ParentID'/>
    </parent_link>
    <property_link fields="#RollupSynchronizationState#ReadonlyRoutingListDelimited#ParentID#Name#UniqueId#CreateDate#DateLastModified#EndpointUrl#ReadonlyRoutingConnectionUrl#ConnectionModeInPrimaryRole#ConnectionModeInSecondaryRole#AvailabilityMode#FailoverMode#SessionTimeout#BackupPriority#Owner#QuorumVoteCount#MemberState#" table="#tmpar_availability_replicas" alias="AR">AR.replica_server_name IS NOT NULL</property_link>
    <property_link fields="#Role#OperationalState#RollupRecoveryState#RollupSynchronizationState#ConnectionState#LastConnectErrorNumber#LastConnectErrorDescription#LastConnectErrorTimestamp#" left_join="#tmpar_availability_replica_states AS arstates">AR.replica_id = arstates.replica_id</property_link>
    <property_link fields="#RollupSynchronizationState#" left_join="#tmpar_replica_rollupstate AS arrollupstates">AR.replica_id = arrollupstates.replica_id</property_link>
    <property_link fields="#ReadonlyRoutingListDelimited#" left_join="#ror_list_delimited AS rorlists">AR.replica_id = rorlists.replica_id</property_link>
    <property_link fields="#JoinState#" left_join="#tmpar_availability_replica_cluster_states AS arcs">AR.replica_id = arcs.replica_id</property_link>
    <property_link fields="#QuorumVoteCount#MemberState#" left_join="#tmpar_availability_replica_cluster_info AS arci">UPPER(AR.replica_server_name) = UPPER(arci.replica_server_name) </property_link>

    <prefix fields="#RollupSynchronizationState#ReadonlyRoutingListDelimited#ParentID#Name#UniqueId#CreateDate#DateLastModified#EndpointUrl#ReadonlyRoutingConnectionUrl#ConnectionModeInPrimaryRole#ConnectionModeInSecondaryRole#AvailabilityMode#FailoverMode#SessionTimeout#BackupPriority#Owner#QuorumVoteCount#MemberState#">    
      select group_id, replica_id, replica_server_name,create_date, modify_date, endpoint_url, read_only_routing_url, primary_role_allow_connections, secondary_role_allow_connections, availability_mode,failover_mode, session_timeout, backup_priority, owner_sid into #tmpar_availability_replicas from master.sys.availability_replicas
    </prefix>
    <prefix fields="#ReadonlyRoutingListDelimited#">
      CREATE TABLE #ror_list_delimited (
      replica_id uniqueidentifier,
      read_only_routing_list nvarchar(max)
      )
      select replica_id,read_only_replica_id,routing_priority into #tmp_availability_read_only_routing_lists from sys.availability_read_only_routing_lists

      INSERT INTO #ror_list_delimited
      SELECT DISTINCT ars.replica_id, STUFF(A.delimited, 1, 1, '')
      FROM #tmpar_availability_replicas AS ars
      CROSS APPLY
      (
      SELECT ',' + ars2.replica_server_name
      FROM #tmp_availability_read_only_routing_lists AS rrlists
      INNER JOIN #tmpar_availability_replicas AS ars2
      ON ars2.replica_id = rrlists.read_only_replica_id
      WHERE rrlists.replica_id = ars.replica_id
      ORDER BY rrlists.routing_priority
      FOR XML PATH('')
      ) As A(delimited)

    </prefix>

    <prefix fields="#RollupSynchronizationState#Role#OperationalState#RollupRecoveryState#RollupSynchronizationState#ConnectionState#LastConnectErrorNumber#LastConnectErrorDescription#LastConnectErrorTimestamp#">
      select group_id, replica_id, role,operational_state,recovery_health,synchronization_health,connected_state, last_connect_error_number,last_connect_error_description, last_connect_error_timestamp into #tmpar_availability_replica_states from master.sys.dm_hadr_availability_replica_states
    </prefix>
    <prefix fields="#JoinState#">
      select replica_id,join_state into #tmpar_availability_replica_cluster_states from master.sys.dm_hadr_availability_replica_cluster_states
    </prefix>
    <prefix fields="#RollupSynchronizationState#">
      select * into #tmpar_ags from master.sys.dm_hadr_availability_group_states
      select ar.group_id, ar.replica_id, ar.replica_server_name, ar.availability_mode, (case when UPPER(ags.primary_replica) = UPPER(ar.replica_server_name) then 1 else 0 end) as role, ars.synchronization_health into #tmpar_availabilty_mode from #tmpar_availability_replicas as ar
      left join #tmpar_ags as ags on ags.group_id = ar.group_id
      left join #tmpar_availability_replica_states as ars on ar.group_id = ars.group_id and ar.replica_id = ars.replica_id
      select am1.replica_id, am1.role, (case when (am1.synchronization_health is null) then 3 else am1.synchronization_health end) as sync_state, (case when (am1.availability_mode is NULL) or (am3.availability_mode is NULL) then null when (am1.role = 1) then 1 when (am1.availability_mode = 0 or am3.availability_mode = 0) then 0 else 1 end) as effective_availability_mode
      into #tmpar_replica_rollupstate from #tmpar_availabilty_mode as am1 left join (select group_id, role, availability_mode from #tmpar_availabilty_mode as am2 where am2.role = 1) as am3 on am1.group_id = am3.group_id
      drop table #tmpar_availabilty_mode
      drop table #tmpar_ags
    </prefix>

    <prefix fields="#QuorumVoteCount#MemberState#">
        SELECT
            arrc.replica_server_name, 
            COUNT(cm.member_name) AS node_count,
            SUM(cm.member_state) AS member_state_sum,
            SUM(cm.number_of_quorum_votes) AS quorum_vote_sum
        INTO #tmpar_availability_replica_cluster_info
        FROM 
            (SELECT DISTINCT replica_server_name, node_name FROM master.sys.dm_hadr_availability_replica_cluster_nodes) AS arrc 
        LEFT OUTER JOIN master.sys.dm_hadr_cluster_members AS cm ON UPPER(arrc.node_name) = UPPER(cm.member_name) 
        GROUP BY arrc.replica_server_name
    </prefix>
    
    
    <postfix fields="#ReadonlyRoutingListDelimited#">
      DROP TABLE #ror_list_delimited
      DROP TABLE #tmp_availability_read_only_routing_lists
    </postfix>
    <postfix fields="#RollupSynchronizationState#ReadonlyRoutingListDelimited#ParentID#Name#UniqueId#CreateDate#DateLastModified#EndpointUrl#ReadonlyRoutingConnectionUrl#ConnectionModeInPrimaryRole#ConnectionModeInSecondaryRole#AvailabilityMode#FailoverMode#SessionTimeout#BackupPriority#Owner#QuorumVoteCount#MemberState#">
      DROP TABLE #tmpar_availability_replicas
    </postfix>
    <postfix fields="#Role#OperationalState#RollupRecoveryState#RollupSynchronizationState#ConnectionState#LastConnectErrorNumber#LastConnectErrorDescription#LastConnectErrorTimestamp#">
      DROP TABLE #tmpar_availability_replica_states
    </postfix>
    <postfix fields="#JoinState#">
      DROP TABLE #tmpar_availability_replica_cluster_states
    </postfix>
    <postfix fields="#RollupSynchronizationState#">
      DROP TABLE #tmpar_replica_rollupstate
    </postfix>

    <postfix fields="#QuorumVoteCount#MemberState#">
      DROP TABLE #tmpar_availability_replica_cluster_info
    </postfix>

  </settings>
  <properties>   
    <include file='inc_urn.xml'/>

    <version min_major='11'>
      <property name="ParentID" type="uniqueidentifier" hidden="true">AR.group_id</property>
      <property name="Name" type="nvarchar">AR.replica_server_name</property>
      <property name="UniqueId" type="uniqueidentifier" access="Read">AR.replica_id</property>
      <property name="Role" type="int" report_type="AvailabilityReplicaRole" access="Read">ISNULL(arstates.role, 3)</property>
      <property name="OperationalState" type="tinyint" report_type="AvailabilityReplicaOperationalState" access="Read">ISNULL(arstates.operational_state, 6)</property>
      <property name="RollupRecoveryState" type="tinyint" report_type="AvailabilityReplicaRollupRecoveryState" access="Read">ISNULL(arstates.recovery_health, 2)</property>
      <property name="RollupSynchronizationState" type="tinyint" report_type="AvailabilityReplicaRollupSynchronizationState" access="Read">(case when arrollupstates.sync_state = 3 then 3 when (arrollupstates.effective_availability_mode = 1 or arrollupstates.role = 1) then arrollupstates.sync_state when arrollupstates.sync_state = 2 then 1 else 0 end)</property>
      <property name="ConnectionState" type="int" report_type="AvailabilityReplicaConnectionState" access="Read">ISNULL(arstates.connected_state, 2)</property>
      <property name="CreateDate" type="datetime" access="Read">ISNULL(AR.create_date, 0)</property>
      <property name="DateLastModified" type="datetime" access="Read">ISNULL(AR.modify_date, 0)</property>
      <property name="EndpointUrl" type="nvarchar">ISNULL(AR.endpoint_url, N'')</property>
      <property name="ReadonlyRoutingConnectionUrl" type="nvarchar">ISNULL(AR.read_only_routing_url, '')</property>
      <property name="ReadonlyRoutingListDelimited" type="nvarchar" access="Read">ISNULL(rorlists.read_only_routing_list, '')</property>
      <property name="ConnectionModeInPrimaryRole" type="int" report_type="AvailabilityReplicaConnectionModeInPrimaryRole">ISNULL(AR.primary_role_allow_connections, 4)</property>
      <property name="ConnectionModeInSecondaryRole" type="int" report_type="AvailabilityReplicaConnectionModeInSecondaryRole">ISNULL(AR.secondary_role_allow_connections, 3)</property>
      <property name="AvailabilityMode" type="int" report_type="AvailabilityReplicaAvailabilityMode">ISNULL(AR.availability_mode, 2)</property>
      <property name="FailoverMode" type="int" report_type="AvailabilityReplicaFailoverMode">ISNULL(AR.failover_mode, 2)</property>
      <property name="SessionTimeout" type="int">ISNULL(AR.session_timeout, -1)</property>
      <property name="LastConnectErrorNumber" type="int" access="Read">ISNULL(arstates.last_connect_error_number,-1)</property>
      <property name="LastConnectErrorDescription" type="nvarchar" access="Read">ISNULL(arstates.last_connect_error_description, N'')</property>
      <property name="BackupPriority" type="int">ISNULL(AR.backup_priority, -1)</property>
      <property name="LastConnectErrorTimestamp" type="datetime" access="Read">ISNULL(arstates.last_connect_error_timestamp, 0)</property>
      <property name="Owner" type="sysname" access="Read">suser_sname(AR.owner_sid)</property>
      <property name="JoinState" type="tinyint" report_type="AvailabilityReplicaJoinState" access="Read">ISNULL(arcs.join_state, 99)</property>
      <property name="QuorumVoteCount" type="int" expensive="true" access="Read">ISNULL(arci.quorum_vote_sum, -1)</property>
      <property name="MemberState" type="tinyint" report_type ="ClusterMemberState" expensive="true" access="Read">
CASE 
    WHEN arci.member_state_sum IS NULL OR arci.node_count = 0 THEN 3
    WHEN arci.member_state_sum = 0 THEN 0 
    WHEN arci.member_state_sum &lt; arci.node_count THEN 2
    WHEN arci.member_state_sum = arci.node_count THEN 1
    ELSE 3
END
      </property>
      <include file='inc_hadr_policy_health_state.xml'/>
    </version>
    
  </properties>

</EnumObject>
0
<?xml version="1.0" ?>
<EnumObject type="AvailabilityDatabase" impl_type="SqlObject" min_major='11' >
  <settings>
    <parent_link>
      <link parent='UniqueId' local='ParentID'/>
    </parent_link>
    <property_link fields="#ParentID#" table="#tmpardb_availability_replicas" alias="AR" />
    <property_link join ="#tmpardb_availability_replica_states AS arstates">AR.replica_id = arstates.replica_id AND arstates.is_local = 1</property_link>
    <property_link join ="#tmpardb_database_replica_cluster_states AS dbcs">arstates.replica_id = dbcs.replica_id</property_link>
    <property_link fields="#SynchronizationState#IsSuspended#" left_join="#tmpardb_database_replica_states AS dbrs">dbcs.replica_id = dbrs.replica_id AND dbcs.group_database_id = dbrs.group_database_id</property_link>

    <prefix fields="#ParentID#">
      select replica_id, group_id into #tmpardb_availability_replicas from master.sys.availability_replicas
    </prefix>
    <prefix fields="#SynchronizationState#IsSuspended#">
      select replica_id, group_database_id,synchronization_state, is_suspended into #tmpardb_database_replica_states from master.sys.dm_hadr_database_replica_states
    </prefix>
    <prefix>
      select replica_id, group_database_id, database_name,is_database_joined,is_failover_ready,is_pending_secondary_suspend,recovery_lsn,truncation_lsn into #tmpardb_database_replica_cluster_states from master.sys.dm_hadr_database_replica_cluster_states
    </prefix>
    <prefix>
      select replica_id, is_local into #tmpardb_availability_replica_states from master.sys.dm_hadr_availability_replica_states
    </prefix>

    <postfix fields="#ParentID#">
      DROP TABLE #tmpardb_availability_replicas
    </postfix>
    <postfix fields="#SynchronizationState#UniqueId#IsSuspended#">
      DROP TABLE #tmpardb_database_replica_states
    </postfix>
    <postfix>
      DROP TABLE #tmpardb_database_replica_cluster_states
    </postfix>
    <postfix>
      DROP TABLE #tmpardb_availability_replica_states
    </postfix>

  </settings>
  <properties>
    <include file='inc_urn.xml'/>
    <include file='inc_hadr_policy_health_state.xml'/>

    <version min_major='11'>
      <property name="ParentID" type="uniqueidentifier" hidden="true">AR.group_id</property>
      <property name="Name" type="sysname">dbcs.database_name</property>
      <property name="UniqueId" type="uniqueidentifier" access="Read">dbcs.group_database_id</property>
      <property name="IsJoined" type="bit" access="Read">ISNULL(dbcs.is_database_joined, 0)</property>
      <property name="SynchronizationState" type="tinyint" report_type="AvailabilityDatabaseSynchronizationState" access="Read">ISNULL(dbrs.synchronization_state, 0)</property>
      <property name="IsSuspended" type="bit" access="Read">ISNULL(dbrs.is_suspended, 0)</property>
      <property name="IsFailoverReady" type="bit" access="Read">ISNULL(dbcs.is_failover_ready, 0)</property>
      <property name="IsPendingSecondarySuspend" type="bit" access="Read">ISNULL(dbcs.is_pending_secondary_suspend, 0)</property>
      <property name="RecoveryLSN" type="numeric" size="25" access="Read">dbcs.recovery_lsn</property>
      <property name="TruncationLSN" type="numeric" size="25" access="Read">dbcs.truncation_lsn</property>
    </version>

  </properties>

</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="AvailabilityGroupListener" impl_type="SqlObject" min_major='11' >
  <settings>
    <parent_link>
      <link parent='UniqueId' local='ParentID'/>
    </parent_link>
    <property_link table="master.sys.availability_group_listeners" alias="AGL"/>
  </settings>
  <properties>
        <include file='inc_urn.xml'/>

    <version min_major='11'>
      <property name="ParentID" type="uniqueidentifier" hidden="true">AGL.group_id</property>
      <property name="Name" type="nvarchar">AGL.dns_name</property>
      <property name="UniqueId" type="nvarchar" access="Read">AGL.listener_id</property>
      <property name="PortNumber" type="int">ISNULL(AGL.port, -1)</property>
      <property name="IsConformant" type="bit" access="Read">AGL.is_conformant</property>
      <property name="ClusterIPConfiguration" type="nvarchar" access="Read">ISNULL(AGL.ip_configuration_string_from_cluster, N'')</property>
    </version>
      
    </properties>

</EnumObject>

	<?xml version="1.0" ?>
<EnumObject type="AvailabilityGroupListenerIPAddress" impl_type="SqlObject" min_major='11' >
  <settings>
    <parent_link>
      <link parent='UniqueId' local='ListenerID'/>
    </parent_link>
    <property_link table="master.sys.availability_group_listener_ip_addresses" alias="AGLIP"/>

  </settings>
  <properties>

    <version min_major='11'>
      <property name="ListenerID" type="nvarchar" hidden="true" access="Read">AGLIP.listener_id</property>
      <property name="IPAddress" type="nvarchar">ISNULL(AGLIP.ip_address,'')</property>
      <property name="SubnetMask" type="nvarchar">ISNULL(AGLIP.ip_subnet_mask, '')</property>
      <property name="SubnetIP" type="nvarchar">ISNULL(AGLIP.network_subnet_ip, '')</property>
      <property name="SubnetIPv4Mask" type="nvarchar" access="Read">ISNULL(AGLIP.network_subnet_ipv4_mask, '')</property>
      <property name="SubnetPrefixLength"  type="int" access="Read">AGLIP.network_subnet_prefix_length</property>
      <property name="IsDHCP" type="bit">AGLIP.is_dhcp</property>
      <property name="IPAddressState" type="tinyint" report_type="AvailabilityGroupListenerIPState" access="Read">ISNULL(AGLIP.State, 4)</property>
      <property name="IPAddressStateDescription" type="nvarchar" access="Read">ISNULL(AGLIP.state_desc,'')</property>

      <property name="Urn" type="nvarchar" size="600">
        <link_multiple no='5' expression="{0} + '/{4}[@IPAddress=' + quotename({1},'''') + ' and @SubnetMask=' + quotename({2},'''') + ' and @SubnetIP=' + quotename({3},'''') + ']'">
          <link_field type='parent' field="Urn" />
          <link_field type='local' field="IPAddress" />
          <link_field type='local' field="SubnetMask" />
          <link_field type='local' field="SubnetIP" />
          <link_field field="NType" />
        </link_multiple>
      </property>

      <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
        <link_multiple no='5' expression="{0} + '/{4}[@IPAddress=' + quotename({1},'''') + ' and @SubnetMask=' + quotename({2},'''') + ' and @SubnetIP=' + quotename({3},'''') + ']'">
          <link_field type='parent' field="UrnWithId" />
          <link_field type='local' field="IPAddress" />
          <link_field type='local' field="SubnetMask" />
          <link_field type='local' field="SubnetIP" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      
    </version>
      
    </properties>

</EnumObject>

?<?xml version="1.0" ?>
<EnumObject type="SqlBoot" impl_type="SqlObject" min_major='7' >
  <settings>
    <version min_major="11">      
      <prefix fields="#AlwaysOn#">
        DECLARE @alwayson INT
        EXECUTE @alwayson = master.dbo.xp_qv N'3641190370', @@SERVICENAME;
      </prefix>
      <prefix fields ="#Mirroring#">
        DECLARE @mirroring INT
        EXECUTE @mirroring = master.dbo.xp_qv N'1748503642', @@SERVICENAME;        
      </prefix>
      <prefix fields ="#LogShipping#">
        DECLARE @logshipping INT
        EXECUTE @logshipping = master.dbo.xp_qv N'1182307513', @@SERVICENAME;        
      </prefix>
      <prefix fields ="#Ucp#">
        DECLARE @ucp INT
        EXECUTE @ucp = master.dbo.xp_qv N'1675385081', @@SERVICENAME;        
      </prefix>
      <prefix fields ="#UcpManagedAllowed#">
        DECLARE @ucpmanagedallowed INT
        EXECUTE @ucpmanagedallowed = master.dbo.xp_qv N'3090395820', @@SERVICENAME;        
      </prefix>
    </version>
  </settings>
  <properties>
    <version min_major='11'>
      <property name="AlwaysOn" type="int" access="Read">ISNULL(@alwayson, -1)</property>
      <property name="Mirroring" type="int" access="Read">ISNULL(@mirroring, -1)</property>
      <property name="LogShipping" type="int" access="Read">ISNULL(@logshipping, -1)</property>
      <property name="Ucp" type="int" access="Read">ISNULL(@ucp, -1)</property>
      <property name="UcpManagedAllowed" type="int" access="Read">ISNULL(@ucpmanagedallowed, -1)</property>
    </version>
  </properties>
</EnumObject>
u<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ClusterSubnet" impl_type="SqlObject" min_major='11' >
  <settings>
    <property_link table="master.sys.dm_hadr_cluster_networks hcn"></property_link>
  </settings>
  <properties>
      <include file='inc_urn.xml'/>
      <property name="Name" type="nvarchar" access="Read">hcn.member_name</property>
      <property name="SubnetIP" type="nvarchar" access="Read">hcn.network_subnet_ip</property>
      <property name="SubnetIPv4Mask" type="nvarchar" access="Read">hcn.network_subnet_ipv4_mask</property>
      <property name="SubnetPrefixLength"  type="int" access="Read">hcn.network_subnet_prefix_length</property>
      <property name="IsPublic" type="bit" access="Read">hcn.is_public</property>
      <property name="IsIPv4" type="bit" access="Read">hcn.is_ipv4</property>
    </properties>

</EnumObject>

+<?xml version="1.0" ?>
<EnumObject type="DatabaseReplicaState" impl_type="SqlObject" min_major='11' >
  <settings>
    <parent_link>
      <link parent='UniqueId' local='AvailabilityGroupId'/>
    </parent_link>
    <property_link fields="#AvailabilityReplicaServerName#AvailabilityGroupId#ReplicaAvailabilityMode#AvailabilityReplicaId#" table="#tmpdbr_availability_replicas" alias="AR" />
    <property_link fields="#ReplicaRole#IsLocal#" join="#tmpdbr_availability_replica_states AS arstates">arstates.replica_id = AR.replica_id</property_link>
    <property_link join="#tmpdbr_database_replica_cluster_states AS dbcs">dbcs.replica_id = AR.replica_id</property_link>
    <property_link fields="#DatabaseId#SynchronizationState#IsSuspended#SuspendReason#RecoveryLSN#TruncationLSN#LastSentLSN#LastSentTime#LastReceivedLSN#LastReceivedTime#LastHardenedLSN#LastHardenedTime#LastRedoneLSN#LastRedoneTime#LogSendQueueSize#LogSendRate#RedoQueueSize#FileStreamSendRate#EndOfLogLSN#LastCommitLSN#LastCommitTime#EstimatedRecoveryTime#SynchronizationPerformance#RedoRate#EstimatedDataLoss#" left_join="#tmpdbr_database_replica_states AS dbr">dbcs.replica_id = dbr.replica_id AND dbcs.group_database_id = dbr.group_database_id</property_link>
    <property_link fields="#EstimatedDataLoss#" left_join="#tmpdbr_database_replica_states_primary_LCT AS dbrp">dbr.database_id = dbrp.database_id</property_link>

    <prefix fields="#PolicyHealthState#">
      DECLARE @is_policy_automation_enabled bit
      SET @is_policy_automation_enabled  = (SELECT CONVERT(bit, current_value)
      FROM msdb.dbo.syspolicy_configuration
      WHERE name = 'Enabled')
    </prefix>
    <prefix fields="#AvailabilityReplicaServerName#AvailabilityGroupId#ReplicaAvailabilityMode#AvailabilityReplicaId#">
      select group_id, replica_id,replica_server_name,availability_mode into #tmpdbr_availability_replicas from master.sys.availability_replicas
    </prefix>
    <prefix fields="#ReplicaRole#IsLocal#EstimatedDataLoss#">
      select replica_id,role,is_local into #tmpdbr_availability_replica_states from master.sys.dm_hadr_availability_replica_states
    </prefix>
    <prefix>
      select replica_id,group_database_id,database_name,is_database_joined,is_failover_ready into #tmpdbr_database_replica_cluster_states from master.sys.dm_hadr_database_replica_cluster_states
    </prefix>
    <prefix fields="#DatabaseId#SynchronizationState#IsSuspended#SuspendReason#RecoveryLSN#TruncationLSN#LastSentLSN#LastSentTime#LastReceivedLSN#LastReceivedTime#LastHardenedLSN#LastHardenedTime#LastRedoneLSN#LastRedoneTime#LogSendQueueSize#LogSendRate#RedoQueueSize#FileStreamSendRate#EndOfLogLSN#LastCommitLSN#LastCommitTime#EstimatedRecoveryTime#SynchronizationPerformance#RedoRate#EstimatedDataLoss#">
      select * into #tmpdbr_database_replica_states from master.sys.dm_hadr_database_replica_states
    </prefix>
    <prefix fields="#EstimatedDataLoss#">
      select ars.role, drs.database_id, drs.replica_id, drs.last_commit_time into #tmpdbr_database_replica_states_primary_LCT from  #tmpdbr_database_replica_states as drs left join #tmpdbr_availability_replica_states ars on drs.replica_id = ars.replica_id where ars.role = 1
    </prefix>

    <postfix fields="#AvailabilityReplicaServerName#AvailabilityGroupId#ReplicaAvailabilityMode#AvailabilityReplicaId#">
      DROP TABLE #tmpdbr_availability_replicas
    </postfix>
    <postfix fields="#ReplicaRole#IsLocal#">
      DROP TABLE #tmpdbr_availability_replica_states
    </postfix>
    <postfix>
      DROP TABLE #tmpdbr_database_replica_cluster_states
    </postfix>
    <postfix fields="#DatabaseId#SynchronizationState#IsSuspended#SuspendReason#RecoveryLSN#TruncationLSN#LastSentLSN#LastSentTime#LastReceivedLSN#LastReceivedTime#LastHardenedLSN#LastHardenedTime#LastRedoneLSN#LastRedoneTime#LogSendQueueSize#LogSendRate#RedoQueueSize#FileStreamSendRate#EndOfLogLSN#LastCommitLSN#LastCommitTime#EstimatedRecoveryTime#SynchronizationPerformance#RedoRate#EstimatedDataLoss#">
      DROP TABLE #tmpdbr_database_replica_states
    </postfix>
    <postfix fields="#EstimatedDataLoss#">
      DROP TABLE #tmpdbr_database_replica_states_primary_LCT
    </postfix>

  </settings>
  <properties>
      <version min_major='11'>
        <!--Key fields for the collection go first -->
        <property name="AvailabilityReplicaServerName" type="nvarchar" access="Read">AR.replica_server_name</property>
        <property name="AvailabilityDatabaseName" type="nvarchar" access="Read">dbcs.database_name</property>

        <!--Then the rest of the data fields -->
        <property name="DatabaseId" type="int" access="Read">ISNULL(dbr.database_id, 0)</property>
        <property name="AvailabilityGroupId" type="uniqueidentifier" access="Read">AR.group_id</property>
        <property name="AvailabilityReplicaId" type="uniqueidentifier" access="Read">AR.replica_id</property>
        <property name="AvailabilityDateabaseId" type="uniqueidentifier" access="Read">dbcs.group_database_id</property>
        <property name="AvailabilityGroupName" type="nvarchar" access="Read">AG.name</property>
        <property name="ReplicaAvailabilityMode" type="int" report_type="AvailabilityReplicaAvailabilityMode">ISNULL(AR.availability_mode, 2)</property>
        <property name="ReplicaRole" type="int" report_type="AvailabilityReplicaRole" access="Read">ISNULL(arstates.role, 3)</property>
        <property name="IsJoined" type="bit" access="Read">ISNULL(dbcs.is_database_joined, 0)</property>
        <!--we need to get locality by AR since there is a possibility that the datbase will not be joined yet, in which case the row is infered to be related to a local database
            replica only if we are talking about a local availability replica.-->
        <property name="IsLocal" type="bit" access="Read">arstates.is_local</property>
        <property name="IsFailoverReady" type="bit" access="Read">ISNULL(dbcs.is_failover_ready, 0)</property>
        <property name="SynchronizationState" type="tinyint" report_type="AvailabilityDatabaseSynchronizationState" access="Read">ISNULL(dbr.synchronization_state, 0)</property>
        <property name="IsSuspended" type="bit" access="Read">ISNULL(dbr.is_suspended, 0)</property>
        <property name="SuspendReason" type="tinyint" report_type="DatabaseReplicaSuspendReason" access="Read">ISNULL(dbr.suspend_reason, 7)</property>
        <property name="RecoveryLSN" type="numeric" size="25" access="Read">ISNULL(dbr.recovery_lsn, 0)</property>
        <property name="TruncationLSN" type="numeric" siz="25" access="Read">ISNULL(dbr.truncation_lsn, 0)</property>
        <property name="LastSentLSN" type="numeric" size="25" access="Read">ISNULL(dbr.last_sent_lsn, 0)</property>
        <property name="LastSentTime" type="datetime" access="Read">ISNULL(dbr.last_sent_time, 0)</property>
        <property name="LastReceivedLSN" type="numeric" size="25" access="Read">ISNULL(dbr.last_received_lsn, 0)</property>
        <property name="LastReceivedTime" type="datetime" access="Read">ISNULL(dbr.last_received_time, 0)</property>
        <property name="LastHardenedLSN" type="numeric" size="25" access="Read">ISNULL(dbr.last_hardened_lsn, 0)</property>
        <property name="LastHardenedTime" type="datetime" access="Read">ISNULL(dbr.last_hardened_time, 0)</property>
        <property name="LastRedoneLSN" type="numeric" size="25" access="Read">ISNULL(dbr.last_redone_lsn, 0)</property>
        <property name="LastRedoneTime" type="datetime" access="Read">ISNULL(dbr.last_redone_time, 0)</property>
        <property name="LogSendQueueSize" type="bigint" access="Read">ISNULL(dbr.log_send_queue_size, -1)</property>
        <property name="LogSendRate" type="bigint" access="Read">ISNULL(dbr.log_send_rate, -1)</property>
        <property name="RedoQueueSize" type="bigint" access="Read">ISNULL(dbr.redo_queue_size, -1)</property>
        <property name="RedoRate" type="bigint" access="Read">ISNULL(dbr.redo_rate, -1)</property>
        <property name="FileStreamSendRate" type="bigint" access="Read">ISNULL(dbr.filestream_send_rate, -1)</property>
        <property name="EndOfLogLSN" type="numeric" size="25" access="Read">ISNULL(dbr.end_of_log_lsn, 0)</property>
        <property name="LastCommitLSN" type="numeric" size="25" access="Read">ISNULL(dbr.last_commit_lsn, 0)</property>
        <property name="LastCommitTime" type="datetime" access="Read">ISNULL(dbr.last_commit_time, 0)</property>
        <property name="EstimatedRecoveryTime" type="float" access="Read">ISNULL(CASE dbr.redo_rate WHEN 0 THEN -1 ELSE CAST(dbr.redo_queue_size AS float) / dbr.redo_rate END, -1)</property>
        <property name="SynchronizationPerformance" type="float" access="Read">ISNULL(CASE dbr.log_send_rate WHEN 0 THEN -1 ELSE CAST(dbr.log_send_queue_size AS float) / dbr.log_send_rate END, -1)</property>
        <property name="EstimatedDataLoss" type="int" access="Read">CASE dbcs.is_failover_ready WHEN 1 THEN 0 ELSE ISNULL(DATEDIFF(ss, dbr.last_commit_time, dbrp.last_commit_time), 0) END </property>
        
        <property name="Urn" type="nvarchar" size="600">
          <link_multiple no='4' expression="{0} + '/{3}[@AvailabilityReplicaServerName=' + quotename({1},'''') + ' and @AvailabilityDatabaseName=' + quotename({2},'''') + ']'">
            <link_field type='parent' field="Urn" />
            <link_field type='local' field="AvailabilityReplicaServerName" />
            <link_field type='local' field="AvailabilityDatabaseName" />
            <link_field field="NType" />
          </link_multiple>
        </property>

        <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
          <link_multiple no='4' expression="{0} + '/{3}[@AvailabilityReplicaServerName=' + quotename({1},'''') + ' and @AvailabilityDatabaseName=' + quotename({2},'''') + ']'">
            <link_field type='parent' field="UrnWithId" />
            <link_field type='local' field="AvailabilityReplicaServerName" />
            <link_field type='local' field="AvailabilityDatabaseName" />
            <link_field field="NType" />
          </link_multiple>
        </property>
        <property name="PolicyHealthState" type="int" expensive ="true" report_type2="Microsoft.SqlServer.Management.Dmf.PolicyHealthState">
          <link_multiple no='4' expression="case when 1=@is_policy_automation_enabled and exists (select * from msdb.dbo.syspolicy_system_health_state where target_query_expression_with_id like {0}+ '/{3}\[@AvailabilityReplicaServerName=' + QUOTENAME({1},'''') + ' and @AvailabilityDatabaseName=' + QUOTENAME({2},'''') + '\]%' ESCAPE '\') then 1 else 0 end">
            <link_field type='parent' field="UrnWithId" />
            <link_field type='local' field="AvailabilityReplicaServerName" />
            <link_field type='local' field="AvailabilityDatabaseName" />
            <link_field field="NType" />
          </link_multiple>
        </property>

      </version>
    </properties>
</EnumObject>
<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ClusterMemberState" impl_type="SqlObject" min_major='11'>
  <settings>
      <property_link table="sys.dm_hadr_cluster_members cm"></property_link>
  </settings>

  <properties>
    <include file='inc_urn.xml' />
    <property name="Name" type="sysname">cm.member_name</property>
    <property name="MemberType" type="tinyint" report_type="ClusterMemberType">cm.member_type</property>
    <property name="member_state" type="tinyint" report_type="ClusterMemberState">ISNULL(cm.member_state, 2)</property>
    <property name="NumberOfQuorumVotes" type="int">ISNULL(cm.number_of_quorum_votes, -1)</property>
  </properties>
</EnumObject>
<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ReplicaClusterNode" impl_type="SqlObject" min_major='11'>
  <settings>
    <parent_link>
      <link parent='Name' local='ParentID'/>
    </parent_link>
    <property_link table="master.sys.dm_hadr_availability_replica_cluster_nodes" alias="arcn"></property_link>
    <property_link left_join="master.sys.dm_hadr_cluster_members AS cm">UPPER(arcn.node_name) = UPPER(cm.member_name)</property_link>
  </settings>

  <properties>
    <property name="ReplicaName" type="sysname">arcn.replica_server_name</property>
    <property name="NodeName" type="sysname">cm.member_name</property>
    <property name="ParentID" type="sysname" hidden="true">arcn.group_name</property>
    <property name="MemberType" type="tinyint">cm.member_type</property>
    <property name="MemberState" type="tinyint">cm.member_state</property>
    <property name="NumberOfQuorumVotes" type="int">ISNULL(cm.number_of_quorum_votes, -1)</property>

    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='4' expression="{0} + '/{3}[@ReplicaName=' + quotename({1},'''') + ' and @NodeName=' + quotename({2},'''') + ']'">
        <link_field type='parent' field="Urn" />
        <link_field type='local' field="ReplicaName" />
        <link_field type='local' field="NodeName" />
        <link_field field="NType" />
      </link_multiple>
    </property>

    <property name="UrnWithId" type="nvarchar" size="4000" hidden="true">
      <link_multiple no='4' expression="{0} + '/{3}[@ReplicaName=' + quotename({1},'''') + ' and @NodeName=' + quotename({2},'''') + ']'">
        <link_field type='parent' field="UrnWithId" />
        <link_field type='local' field="ReplicaName" />
        <link_field type='local' field="NodeName" />
        <link_field field="NType" />
      </link_multiple>
    </property>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FullTextSemanticLanguage" impl_type="SqlObject" min_major='11'>
  <settings>
    <property_link table="sys.fulltext_semantic_languages ftsl" />
  </settings>
  <properties>
    <include file='inc_urn.xml' />
    <property name="Lcid" type="int" access="Read">ftsl.lcid</property>
    <property name="Name" type="sysname" access="Read">ftsl.name</property>
  </properties>
</EnumObject>e	<?xml version="1.0" ?>
<EnumObject type="Database" impl_type="Database" min_major='7' matrix_min_major='10' cloud_min_major='10'>
  <settings>    
    <version min_major='11'>
      <prefix fields='#AvailabilityGroupName#'>
        create table #tmp_db_ars (replica_id uniqueidentifier, group_id uniqueidentifier)
        create table #tmp_db_ags (group_id uniqueidentifier, name sysname)
      </prefix>
      <prefix fields='#AvailabilityDatabaseSynchronizationState#'>
        create table #tmp_db_hadr_dbrs (group_database_id uniqueidentifier, synchronization_state tinyint, is_local bit)
      </prefix>
      <prefix fields='#HasDatabaseEncryptionKey#'>
        create table #tmp_db_encryption_keys (database_id int)
      </prefix>
      <prefix fields='#AvailabilityGroupName#AvailabilityDatabaseSynchronizationState#HasDatabaseEncryptionKey#'>
        declare @HasViewPermission int
        select @HasViewPermission = HAS_PERMS_BY_NAME(null, null, 'VIEW SERVER STATE')
      </prefix>
      <prefix fields='#AvailabilityGroupName#'>
        if (@HasViewPermission = 1)
        begin
        insert into #tmp_db_ars select replica_id, group_id  from  master.sys.availability_replicas
        insert into #tmp_db_ags select group_id, name from master.sys.availability_groups            
        end
      </prefix>
      <prefix fields='#AvailabilityDatabaseSynchronizationState#'>
        if (@HasViewPermission = 1)
        begin
        insert into #tmp_db_hadr_dbrs select group_database_id, synchronization_state, is_local from master.sys.dm_hadr_database_replica_states
        end
      </prefix>
      <prefix fields='#HasDatabaseEncryptionKey#'>
        if (@HasViewPermission = 1)
        begin
        insert into #tmp_db_encryption_keys select database_id from master.sys.dm_database_encryption_keys
        end
      </prefix>
    </version>
    <version min_major='11'>
      <postfix fields='#AvailabilityGroupName#'>
        drop table #tmp_db_ars
        drop table #tmp_db_ags        
      </postfix>
      <postfix fields='#AvailabilityDatabaseSynchronizationState#'>        
        drop table #tmp_db_hadr_dbrs
      </postfix>
      <postfix fields='#HasDatabaseEncryptionKey#'>
        drop table #tmp_db_encryption_keys
      </postfix>
    </version>
  </settings>
  <properties>    
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7' matrix_min_major='10' cloud_min_major='10'>
  <settings>
    <!-- Matrix specific -->
	  <version matrix_min_major='10'>
		  <prefix fields="#Status#">
        declare @server_status int
        select @server_status = state from sys.matrix
      </prefix>		  
	  </version>
    <post_process fields = '#ServerType#IsContainedAuthentication#'
       class_name='Microsoft.SqlServer.Management.Smo.PostProcessServerProperties'/>
  </settings>
  <properties>
    <include file='inc_server.xml' />
    <version min_major='10' matrix_min_major='10' cloud_min_major='10'>
      <property name="Name" type="sysname" cast='true'>
        serverproperty(N'Servername')
      </property>
      <property name="InstanceName" type="sysname" access="Read" cast='true'>
        ISNULL(serverproperty(N'instancename'),N'')
      </property>      
    </version>
    <version min_major ='10' cloud_min_major='10'>
      <property name="Status" type="int" report_type="ServerStatus" access="Read" cast='true'>0x0001</property>
    </version>
      <version matrix_min_major='10'>
      <property name="Status" type="int" report_type="ServerStatus" access="Read" cast='true'>
        case @server_status
        when 0 then 0x0003
        when 1 then 0x0001
        when 2 then 0x0030
        when 3 then 0x0010
        else 0x0000
        end
      </property>
    </version>
    <property name="IsContainedAuthentication" type="bit" access="Read">0</property>
    <property name="ServerType" type="int" report_type2="Microsoft.SqlServer.Management.Common.DatabaseEngineType" access="Read" cast='true'>null</property>
    </properties>  
</EnumObject>
BSJBv2.0.50727lR#~ S#StringsLФ#US#GUID#BlobW_	3 e+Z:


)
C
b
s



+@^N54`


 !!h"I"
##
$%$"%$%~&r&v)$)$))n*)*$*)*)`EUEFF
GKQTVVZ
[
\\__fJP_aVhF.j}p}ȸˋϋ!!!!!:!`!y!!Я!!!>!WѸmp}!)o&үFү!ҸҸҸҋҸ/BYNӔ
Ը
%


ԔՔ)$Wոt)
	$JI"
[
֔	׸&OjUE~UEUEUEUEה~$$)$
cPu$$ٸڸ&
PUEڸUET,
|
۸۸-ܯcH!ܪ!!`ݸݸݔ
VVV-V?޸Z)x)޸ާ7F޸$.A߸R$ߊߝF	F
JyPP+!;!N!v!!scP
'fJUE1B!l!*:ftittttt!t-'
t-,
t-0
t-4
t-=
t-A
0t-G
Dt-L
Tt-Q
et-Y
}t-^
t-c
t-g
t-k
t-o
t-v
t-|
t-
t-
t-
t-
.t-
?t-
Rt-
at-
xt-
t-
t-
t-
t-
t-
t-
t-
1t-
Dt-
Zt-
ht-
t-
t-
t-
t-
t-
t-
t-
t-
t-
't-
:t-
Ht-$
at-)
t-4
t-9
t-<
t-B
t-G
t-U
t-X
(t-\
9t-^
Qt-e
]t-
ht-
vt-
t-
t-
t-
t-
t-
t-
t-
t-
t-
 t-
6t-
Jt-
`t-
pt-
t-
t-
t-
t-
t-
t-
t-
t-

t-
 t-
<t-
Xt-
et-#
yt-(
t--
t-1
t-6
t-9
t->
t-B
t-F
t-K
t-O
$t-S
6t-W
Ft-[
Vt-_
it-d
yt-
t-
t-
t-
t-
$	t-
R	t-
j	t-
	t-
	t-
	t-


t-
+
t-
O
t-
o
t-

t-

t-

t-

t-

t-

t-
*t-
Qa-	
a-

a-
a-
a-"
a-'
a-+
a-0
a-7

a-=
a-C
.a-L
Aa-T
La-Z
Za-^
ga-f
oa-i
}a-o
a-u
a-z
a-~
a-
-
	
t

t
t*
t#5
t)G
t,V
t1f
tDv
tS
tV
tX
t\
t_
t-c
tctgtq7tuYtwtyt{ttttt;tK-Tt5ft~ttttt9t=ttt't6tBt ,Rt$5ft >wt Ft It Kt Mt Ot Qt W+t \Ht _at dvt ft0ht0jt lt nt {t @t Zt vt t t tt
tt
t
tt)t=tJ-*VM-	mtM1t?tCt-\t-t-ttt&t3t !Ht'lt*t-t 0t 3tQ5tU7t=t>-t?Dt@]tAtBtCtD&tEGtFstGtHtItJ;tKatLtMtNtOtPtQ5tRPtSltTtUVt-V/tEt^t--d|tdtfkp1w!37<<<A?FQFjJwN%%%N%N&&&&&&&&J&&&F'N'N#'4'N)$)N)J))).
*b+Vj+Vt+V+V+b+V+V+V+b+V+V+V+b+V+	V+	V+	V+	V,	V,	V6,	VH,	b+Vc,!Vi,!Vq,!b+V+%Vv,%V,%V,%V,%b+V+)V,)V,)V,)b+V,<V,<V,<V,<b+V,TV,TV,TV,TV-TV-TV
-Tb+V-]V-]Vc,]V
-]b+V -aV'-aV2-aV
-ab+V8-jV@-jVK-jb+VS-nVZ-nVe-nb+Vj-rVn-rVt-rb+V}-vV,vV-vV-vV-vV-vb+V-V-V-V-V-b+V-V-V-V-V-b+V,V,V-V-b+V.V
.V.b+V.V&.V,.b+V+V2.b+VH.VR.V\.Vg.Vr.b+V}.V.V.VH.VR.V\.Vr.b+V -V.V.V.V.V.V.V.V.V.V.b+V/V/V/V#/b+V+V-/V2/b+V+V8/V</VA/b+VM/VR/V[/b+Vh/Vo/Vu/V/b+Vh/V/V/b+Vh/Vu/V/b+Vo/Vu/V/b+V+V/b+V/V/b+V/
V/
V/
V/
b+V
-V/V/V -V0V0b+V0V+0V70b+VI0VVM0b+VR0!V[0!V`0!Vj0!b+Vu0&Vz0&V0&V0&V.&V.&V0&V0&V0&V0&b+Ve-+V0+b+Ve-0V00V00b+V05V05V05V15b+VR0:V1:V0:V(1:V,1:V<1:b+V+?Ve-?V0?VX1?V/?V_1?b+VI0DVq1DVX1Db+V+IVj+IVt+IV+IV+Ib+V+NV{1NV1NV1NV1NV1Nb+V1SV1SV1SV1Sb+V1XV1XV1XV1XV1XV2XV2XV2XV2XV2Xb+V1]V+2]V22]V:2]b+VB2bVL2bb+VY2gV-gV1gV-gV1gb+V2lV2lV2lV1lb+V+qVc,qVf2qVk2qV~2qV2qV2qV2qV2qV2qV
3qV3qV33qb+VH3VZ3b+Vn3V{3V3b+V3b+V+V3V3V3V3V3b+VR0V3V4V1V1V1V4V4V(4V;4VH4VT4Vd4Vl4V4V4V4VY2V4V{1V4V1V4V-V4V-V4b+V+V4V5b+V+V5V5b+V+V
-VI0Ve-b+VI0V 5V(5V/5V=5VF5b+V+Vd5Vn5V{5V5V5b+V+V
-V5Vn5b+V+V5V5V5b+V+V5V5V}-b+V5V5V/b+V5 V5 b+V+%V5%b+V5*V6*V+*b+V+/V5/V
6/b+V+4V64V&64b+V+9V069V;69VB69b+V+>VI6>b+VQ6CV&.CV[6CV'-CVb6CVg6CV}-Cb+Vp6MVx6MV6MV6MV6MV6MV6MV6MV6MV,.Mb+V6RV6RV6RVS-RV6RV6RV6RV	7RV7RV7RV$7RV47RV>7RVM7Rb+V+aV_7aVp7aV7aV7aV7ab+V+fV7fV7fb+V+kV7kV7kV7kb+V+pV7pV7pV7pb+V8uV	8ub+V
8zV8zV8zV%8zb+V/V78VA8b+V+V1VJ8VN8VU8b+Vb6Vg6V\8V-Vf8Vv8V8V8V8V8b+V8V8V8V8V8b+V+V8V9V}-b+V
9V9V9V&9b+V
6V19V99b+VB9V/VP9V/b+V2-V.b+V+V_9Vg9V}-b+V+Vo9Vz9b+V,V,V,b+V/V9V9V9b+VV	8V9b+V[0V9V9b+V9V9V9b+V9V.V9b+V5V5V:b+V+V:VR0V.b+V:V8:VI:V\:Vm:V:V:V:V:V:V;V,;VC;V`;V~;V;V;V;V;VZ+V;V<V!<VdV/<VH<VT<V\<Vg<V<V<V<V<V<V<V=V<=VQ=Vm=V=V=V=V=V>V>V0V)>VA>b+VI0\VW>\Ve-\b+V`>aVr>aV>aV>aV
-ab+V>fV>fV:fb+V5kV>kV>kV.kV:kV>kV
-kb+V>pV>pV
-pb+V>uV{5uV5uV
-ub+V?zV?zV?zV
-zb+Vn5V5V
-b+V?V1?V
-b+VK?V^?V?V
-b+V}?V?V?V
-b+V.V>V?Vg9V
-b+V?V?V
-b+Vq1VX1V
-b+V>V{5V5V?V?b+V@V@V+@V;@VL@V_@Vr@V@b+V@V@V@V@V@b+V@V@V@V@b+VAVAVAb+V.V>V"AV
-b+V?V2AV?V+V
-b+V@AVMAVbAVyAVAV
-b+VAV+VAb+VAVAVAV}-b+VAVAb+V/VAVBV
BVBVBV1(V*BV6BVDBVTBVYBb+VdBVsBVBVBb+VBVBV+b+VBVBVBVBb+V:VBVBVBV>V
-b+VAVBVCVCVAb+VCVCVBVCV
-b+V$CV.CV4CV<CVLCVTCV
-V[Cb+VbC	VlC	VC	Vu0	Vd5	VC	VC	b+VB	V:	V>	VB	V
-	b+VC	VC	VC	b+V+	VC	VC	VC	VD	V#D	VFD	b+V^D	VdD	b+V+	VpD	V|D	VD	VD	b+V0	V/	Vu0	V -	VD	b+VD)	VD)	VD)	VD)	b+V -.	VD.	VD.	b+VD3	VD3	VD3	VE3	VE3	VE3	V E3	V)E3	V3	V2E3	b+VD=	VD=	VD=	VE=	VE=	VE=	V E=	V)E=	V=	V2E=	b+V
-B	V;EB	VDEB	VLEB	nEG	wEENEL	EQ	F	b+VI
V^D
V<J
VEJ
LNL
&L
JMGMMwEMNMUb+VMUVNUV-/U
NNN%N-N<NNL
NL
NJN
ONOOO
O
ONQFP
$PQ	Q
NR
R#R0RJRRR
RFR>RRARFRNSET>TNT>UDUQUQUQUQUQ VQ7VQKVQYVQ_VQgVQrVQVQVQVQVQVQVQVQVVFVVWW
WNWNWWWXX#X0XNX0XNWY4YYYNYYNY4Z4ZZ(ZJZRwZFZZZZoZrZZIZIR>d[m[x[F1[h[L	ZIZI[N\
\M]]+]E3]G]NV]Nh]v]]b+V_V_Z```%`N5`A`P`]`h`Zo`x```````N`
aaQYVQa1U1U1U1U1'a17V1KV1;a1@a1V1Na1Ta1]a1ka1sa1{a3a1a1b1b1b1%b1<bb+VYb#V_b#Vub#Vb#Vb#Vb#Vb#Vb#Vb#Vc#V(c#V5c#VCc#V`c#Vqc#Vc#Vc#Vc#Vc#Vc#Vc#Vc#Vc#V?*#Vc#Vx6#Vd#Vd#V2d#VAd#VSd#Vbd#Vpd#Vd#Vd#Vd#Vd#Vd#Vd#Vd#Vd#Ve#V#e#V2e#VEe#VRe#V`e#Vne#Vze#Ve#Ve#V;#VZ+#Vd#V\<#V<#Ve#Ve#Ve#V0#Ve#Ve#b+VYbiVciV?*iV;iVZ+iVeiVdiVT<iV\<iV<iV
fiVeiV0iVeiVfiV"fib+V1fnVJfnV]fnVpfnVfnVfnVfnVfnVfnVfnVfnVfnVgnVgnV)gnV4gnVFgnVagnVpgnV.nVgnVgnVgnVgnVgnVgnVgnVhnVhnV7hnVOhnhJhtiZrZVuVuV
vV vV6vVIvVtVtVtVtVtVevVuVuVuvV-uVDuVSuVvV_uVvVvVvVnuV}uVuVuVvVvVvVbCVlCVCVu0Vd5VCVCV
-VwV	wVwVwV'wV0wV7wVCwVRwVbwVtwVwVwVwVwVwVwVwVxVxVxV2xVAxVLxVaxVsxVxVxVxVxVxVxVxVxVxVyVyV-yVIyVUyVfyV|yVyVyVyVyVyVyVyVyVzVzV(zVQzVozVzVzVzVzVzVzV{V{V${V2{VO{Vq{V{V{V{V{V{V{V{V|V|V3|VJ|V^|Vp|V}|V|V|V|V|V|V|V	}V,}V9}VE}VX}Vd}}W2}\2b+V}m2V}m2V}m2V}m2V}m2V~m2V~m2V(~m2VC~m2V\~m2Vs~m2V~m2V~m2V~m2V~m2V~m2V~m2Vm2Vm2V,m2VBm2VWm2Vjm2Vm2Vm2Vm2Vm2Vm2Vm2Vm2Vm2Vm2Vm2Vm2V,m2V;m2VFm2VXm2Vrm2Vm2Vm2Vm2Vm2Vm2Vـm2Vm2Vm2Vm2V&m2V3m2VIm2V[m2Vfm2Vsm2V}m2Vm2Vm2Vm2Vm2Vȁm2V2dm2Vdm2V7hm2Vށm2VAdm2V#em2Vm2Vm2VSdm2V m2VAm2Vbdm2Vagm2V]m2Vum2Vm2Vm2Vdm2Vm2V˂m2Vdm2Vm2Vm2Vm2Vm2V%m2V5m2Vdm2VCm2V[m2Vqm2Vdm2Vdm2Vm2Vem2Vm2Vdm2Vdm2Vdm2VEem2Vm2V"fm2Vm2V҃m2Vhm2V`em2Vm2Vm2V2em2VRem2Vnem2Vm2Vzem2V#m2Vem2V.m2VBm2Vem2VQm2V^m2Vim2V}m2Vm2Vm2Vm2Vńm2VՄm2Vm2Vm2Vm2Vm2V7m2VQm2V]m2Vjm2Vm2Vm2Vm2Vm2VЅm2Vm2Vm2Vm2Vm2Vm2V5m2V?m2VMm2VYm2Vim2Vm2Vm2Vm2Vm2Vm2Vʆm2Vm2Vm2Vm2Vm2Vm2Vm2V*m2VAm2VNm2V^m2V{m2Vm2Vm2Vm2Vm2VӇm2Vm2Vm2Vm2V	m2Vm2Vm2V'm2V0m2VBm2VZm2Vhm2Vtm2Vzm2Vm2Vm2Vm2Vm2Vm2
Nm2˘N444ܩ4S444O44
4i4Ԭ44h4ĭ4,4y4î4444W4b+V}4V}4V}4V}4V~4V~4V(~4Vs~4V~4V~4V~4V,4VB4VW4Vj4V4V4V4V4V4V4V4V,4V;4VX4V4V4V4V4Vـ4V&4VI4V[4Vf4Vs4V}4V4V4V4Vȁ4V2d4Vd4Vށ4VAd4V#e4V 4VA4Vbd4V]4V4Vd4V4V˂4Vd4V4V%4Vd4VC4V[4Vq4Vd4Vd4Ve4Vd4Vd4Vd4VEe4V4V"f4V`e4V4V4V2e4VRe4Vne4V4Vze4V#4Ve4VB4Ve4VQ4Vi4V}4V4V4Vń4VՄ4V4V74VQ4Vj4V4V4VЅ4V4V4V4V?4VY4Vi4V4V4V4V4Vʆ4V4V4V4V4V4V*4VA4V4V4V4VӇ4V4V4V4V	4V4V4V'4VB4VZ4Vz4V4V4V4V4
N4˘N<[5[5[5P[5Ǵ[5;[5[5[5I[5[5.[5[5[56[5[5[5[5[5M[5[5[5=[5[5[5E[5[5[5h[5ӽ[58[5[5þ[5
[5N[5[5[55[5v[5[5[5l[5[5[5S[5[5[5[5p_LF_L_L_L_L_Lk_L_L_L_L;_LO_L }% ) -Y!2!8!)">)"C0"H8"L@"PS"Xg"a{"k"v"""#"P*#v, #1H#2p#	3#	4#5#6#7#7
$80$';P$'<Y$'=b$'?v$'A$.D$.F$EHI$Q
I$QJ$QK$QM$Q O$Q'R%Y.U%Y4V+%Y;X;%dC[c%dK]%kR_%kZa0&p
e>&pfL&pg[&pij&p kz&p'n&|.q&|4r&|;t&w&dy8'k{w'}'d'k'r'{''{'({(3(G(e(x(((((()$)d){w))!)()()0)A)P*Y.*YA*aS*re*rx*w****	+ +L+x+)+Q+V+\+b+i+o+v+v+{,6
,M{,b,w{&,/,7,@,L,,,, ,! 0-4 )-L ).a ?.s L.s . . -@/ -/ 81 L2!2!L30!)Z3H!)v3f!)3!3!)4!4!,4!4	!4!4"45&"l62"7y"t7")7"7"7	"7"8"(8")49#)9)#)9;#):O#:h#);z#M;6U;#^;#)g;#)p;#;#h<#<$S<5%[<B%f<[%t8=|%L=%P@%@A)HA)pA%xA!A!C C&$E5%[E&tF0&)G!G6G! HK&	(H\&
0H)8H)HH'H]'Ho'HHwvI
II'
!I'
4I'<I'EI'qI'-I'-I'-I'-I'-J'-.J'-KJ(-hJ(-J(J(HK("K"($K1(V&,N7('OF('OW('Of()'Py(Q'Q('Q()Q())4R()AR())PR()R(*S).S))0S30S81T*)3HT?*)3TG*)3TR*33mUa*)4U*>4U*6U*F6HV*-7V*M8V+T9<W+_;RWK&f<_W\&l<lW+<|W/+r<W*y>X*@$X*BCXJ+EPXJ+HY*L4Y*NPYZ+QYK&RY\&S.Z+T<Z!UM[)VU[EV	V][E\	Vf[EWn[EWw[ElX[Ec	X[FfY[
Fj	Y[FZ[#F-Z[q	[[x	\\)_#\-F)_9\3F)_P\8F_^RF`_aF	ax_kFb_q	b_)c_Fc_Fc`x	d(`F	g3b-F)iGbFifbF	ibF	ibq	ibF	jbG	jcq	jcGk,c GkDc/G	k[cCG	krcq	k{cGlcGl,dGldGldGldGldGleG	l4eH	leHleHle'H	lf1Hlf;HlfEHlfNHlfWHlfkH	lgq	lgHm.gIm@gmigWHmg
mgI
mg
mgG	mg/I!
mh@I'
mhKI-
m1hWI3
mHh9
m_h?
mvhq	mhI{
nhkH	nhq	nhI
ohq	oiIpiIp(iFpTiq	p]iGqpiFqiq	qiIriJriJ
riq	rjLJ
sdjIsvjUJsjq	sjxJ	tj;Htj GtjJtjJtkJt kJt.kFt;kkH	tWkq	t`kJuhkxJ	ukkH	ukq	ukFvkq	vkFwkq	wkFxkq	xkKykxJ	ylK	y&lFy3lq	y<lIzNl=K	zelFzrlq	z{l_K{llK{l|K
{ToK
|oK
~oK
pK
pK
pK
pK
.qK	8qK
xqK
r)r)2r-L
;rxJ	Cr7LKrBLfrHL~rPLr	ZLrrLr{L)rL)rLrLrLrJLr)sLHsL$ s")xsL+sLVHt4[tM;mtK|t	)MLt`MtiM)tZPuauhuMouLyuLv;HvM-$vMivMvLwaxJx1HxDN-xNNxWNygN_yxNnyNvyN-yNyNHyFy#F-yLyyNyzM!zL0z9zMRzLazjzMzLzzN{J{L{){C|OL|)OU|>O]|Je|SO	m|kO
x|O|}+P	}AP	6}TP
?}gP	Z}P
c}vk}Ps}P|}Q}V}PH}P}P}P}P}!~Q4Q%Q<QRQ8fQ	oQ!o)wLJ
RIR-1HDN-)N*;R8OAJIIQMR-\TRpeR-y)!؅R+K	LEZLHRM1")1SL92S3BESvJSSISaSaioS-r~SzSS	SS)$SOSI܈TX,&TXpQ=T=TaÉDTi	؉WTqiTa
zTyTT)!)8TUUU'US3TKT)[)iT)MUHZUHeU
wU1'U<TS!)!%S!(}%!L
W!|W$W)*W*4T,3W/qT1)4T4͒)7ؒT7):T:)=T=)@ ?W@\ZWBvWCWETFj)ItWIWJWN_TOh)RpTRT)U)U)U QUWVHTWT)ZTZ)]T])`T`\)cdTc)fTf)i)iHSiL9XiJXi
Ji@^XiT)jlXVjD{X)kX)k@XVkTlXoSpT)pXpTq)tTt)wTw))z1Tzp)}x)}S}T}ٳHY[Y	rY%(Y`Y,д)ߴST`YT)%)4S8TT)Y7G/Z-ǷIHϷMR>ط8ZAZ-COZHVZ>]ZHfZ>$y)NXZZ-Z![-*[2![-;GC/Z-L0[HT7[>]LJHeR>p)[Ǻ[к[m([r&\whKK7\H\&"dQ\\\e\m\`\\\\}%[xJ	c)l\t!9)AVQdN]]]]4]d]#^(^)/^)E^)	W^H	a^	n^H-F)t^^^^g^Hy)	^H^)		.^3^8^=T^>d^G!Q_3WW%_^0_e:_jG_qU_v]_}+f_)9o_Gx_^_r_NN__3)}%a0aa|arPHbrp)xdhshz4h9)D!n)v) !4h! 6	$S
|%+h3i<)U
iHi)ix2i3;iDiMii)xii. T@SCT)L)Ti.i)i.i )! !$!!"T"?"i%f"))p"T)$#),,#-,<#j-`#-p#Ej.#Tj0L$oj 3${j 6$j 8%%)<7%)<I%)<[%)<m%)<%)<%)<%)<%)<%)<%)<%)<%)<&)<!&)<3&)<E&)<W&)<i&)<{&)<&)<&)<&)<&)<&)<&)<&j  <&j% <&j+ =
'j+ ='j+ ="'k+ =.'k+ =:'4k+ =F'Tk+ =R'hk+ =^'|k+ =j'k+ =v'k+ ='k+ ='k+ ='k+ ='k+ ='l+ ='#l+ ='>l+ ='Ql+ ='Zl+ ='hl+ ='l+ =(l+ =(l+ =(l+ =*(l+ =6(l+ =B(l+ =N(l+ =Z(l+ =f(m+ =r(m+ =~(2m+ =(Hm+ =([m+ =(um+ =(m+ =(m+ =(m+ =(m+ =(m+ =(m+ =(n+ =)n+ =)2n+ =)En+ =&)Tn+ =2)mn+ =>)n+ =J)n+ =V)n+ =b)n+ =n)n+ =z)n+ =)n+ =)o+ =)!o+ =)0o+ =)>o+ =)Ro+ =)mo+ =)o+ =)o+ =)o+ =)o+ =
*o+ =*o+ ="*	p+ =.*p+ =:*(p+ =F*@p+ =R*Op+ =^*fp+ =j*tp+ =v*p+ =*p+ =*p+ =*p+ =*q+ =*'q+ =*=q+ =*_q+ =*vq+ =*q+ =*q+ =*q+ =+q+ =+q+ =+q+ =*+%r+ =6+>r+ =B+Tr+ =N+ir+ =Z+{r+ =f+r+ =r+r+ =~+r+ =+r+ =+r+ =+s+ =+*s+ =+Bs+ =+Xs+ =+is+ =+s+ =+s+ =+s+ =,s+ =,s+ =,s+ =&,t+ =2,8t+ =>,It+ =J,Yt+ =V,pt+ =b,t+ =n,t
={,t>,t
@,t
A,t
B,uC,u
E,-u
F,DuG,Su
I,_u
J-nu
K
-}u
L-u
M'-u
N4-)O<-j  OC-j% OK-_
P`-_`2Q-_f2S-}%V.4V.1H4W.4W .4X<.L4ZH.Lj4\d.Ԉ4^m.P`.ވ4`.4`.4`.4`.64`.O4`.a4`.x4`.4`.4`.ω4`.牵4`.4`.4`./4`.A4`/e4`/4`/4`!/4`*/Ɗ4`3/ߊ4`</4`E/4`N/"4`W/14``/C4`i/Y4`r/h4`{/{4`/4`/4`/4`/Ջ4`/苵4`/4`/
4`/ 4`/>4`/^4`/t4`/4`/4`/4`04`0ό4`0䌵4`04`&04`/0+4`80E4`A0[4`J0j4`S0{4`\04`e04`n04`w0ˍ4`0ۍ4`0荵4`04`04`0-4`0I4`0b4`0x4`04`04`04`0ӎ4`04`04`0*4`1=4`1Y4`1p4`"14`+14`414`=1ُ4`F14`O14`X14`a1.4`j1J4`s1Z4`|1n4`14`14`14`1̐4`14`14`14`14`1:4`1Q4`1`4`1p4`14`14`24`24`2֑4`24`'24`02 4`9274`B2L4`K2c4`T2u4`]24`f24`o24`x24`2Ē4`2ܒ4`24`2
4`24`2-4`2E4`2V4`2l4`24`24`24`2“4`2Փ4`34`34`3'4`&3E4`23U4`>3f4`J34`V34`b34`n3Ȕ4`z34`34`34`3 4`3.4`3C4`3]4`3k4`3}4`34`34`34`
4ӕ4`4啵4`"44`.44`:44`F474`R4L4`^4Y4`j4l4`v4z4`44`44`44`4–4`4֖4`44`4
4`4#4`434`4E4`4c4`5v4`54`54`*54`654`B5Ɨ4`N5ӗ4`Z54`f54`r54`~5$4`544`5>4`5I4`5\4`5m4`54`54`5)`54`54a64b?6cX6de64dy64e6L4f64g64h6L4j64l6˜4n6iHp6Pp7јp7ۘp7ވq7嘌q7r7r7s8s8t"8 t186u?8=uN8Ov\8Vvk8awy8hw8xx8x8y8y8z8z8ω{8֙{9版|9|9}.9}>9~M9~]9/l96|9A9H9e9l99999::Ɗ&:͚6:ߊE:暌U:d:t:::":):1:8:C:J:Y:`;h;o.;{=;M;\;l;{;;;Û;Ջ;ܛ;苈;;;<
<&< 5<'E<>T<Ed<^s<e<t<{<<<<<<<=Ĝ=ό-=֜==䌈L=뜌\=k=
{==!=+=2=E=L=[=b=j>q>{%>5>D>T>c>s>>>ˍ>ҝ>ۍ>❌>荈>>>	??-?-<?4L?I[?Pk?bz?i?x???????Ǟ@ӎ@ڞ%@4@D@S@c@*r@1@=@D@Y@`@p@w@@@
AA,Aȟ<AُKA[AjAzAAAAA.A5AJAQAZBaBn$Bu4BCBSBbBrBBB̐BӠBB砌BBBB
CC",C:;CAKCQZCXjC`yCgCpCwCCCCCCDDǡ$D֑3DݡCDRDbDqDD D'D7D>DLDSDcDjDuE|E+E;EJEZEiEyEEEĒEˢEܒE㢌EEE
FF#F%3F-BF4RFEaFLqFVF]FlFsFFFFFFG“Gɣ+GՓ=GܣPGbGuGGG'G.GEGLGUG\	HfHm.H@HSHeHxHHHȔHϤHH礌HHII1I CI'VI.hI5{ICIJI]IdIkIrI}IJ!J4JFJYJkJ¥~JӕJڥJ啈	J쥌	J
J
JJK$K!7K7
IK>
\KLnKSKYK`KlKsKzKKLL'L:LLL_L–qLɦL֖LݦLLL
LL#M*M3*M:=MEOMLbMctMjMvM}MMMMM N N!-N!@NƗ"RNͧ"eNӗ#wNڧ#N$N秌$N%N%N&N&N$'O+'O4(0O;(CO>)UOE)hOI*zOP*O\+Oc+Om,Ot,O-O-O.P.$P}%/Wͨ/W/%W<02Wa0GW1TW1iW2vW*2Wk3W3W4Wת4W5W/5Wp6W6Xӫ7 X75X)8BXI8WX9dX9yX鬈:X:X2;XM;X<X<X䭈=X=YC>Y^>#Y?0Y?EYޮ@RY@gYDAtYpAYBY֯BYCY5CYwDYDY4EY1H5FZ	5FZ5G,ZL5I8ZLj5KTZԈ5M]ZPOoZވ5OwZ5OZ5OZ65OZO5OZa5OZx5OZω5OZ5OZA5OZe5OZ5OZƊ5OZߊ5OZ5OZ5OZ"5OZh5O[5O[5O[5O#[Ջ5O,[5O5[5O>[ 5OG[t5OP[5OY[5Ob[5Ok[5Ot[5O}[E5O[[5O[j5O[{5O[5O[5O[ˍ5O[ۍ5O[5O[5O[5O[I5O[b5O[x5O[ӎ5O\5O
\5O\=5O\5O(\5O1\5O:\ُ5OC\5OL\5OU\Z5O^\5Og\5Op\5Oy\̐5O\5O\5O\5O\Q5O\`5O\p5O\5O\5O\5O\5O\ 5O\75O\L5O\c5O]u5O	]5O]5O]5O$]5O-]ܒ5O6]5O?]
5OH]-5OQ]E5OZ]V5Oc]5Ol]5Ou]5O~]5O]'5O]E5O]f5O]5O]Ȕ5O]5O]5O]5O] 5O]k5O]5O]5O]5O]ӕ5O^5O^5O^5O ^L5O)^Y5O2^l5O;^z5OD^5OM^5OV^5O_^#5Oh^35Oq^E5Oz^c5O^v5O^5O^5O^5O^5O^Ɨ5O^ӗ5O^5O^5O^>5O^I5O^m5O^5O^5O
_)O_05O_75P,_>5Qk_R_S_75S_75T_LF5U_F5V_O5W_LO5Y_O5[`˜O5]`iH_$`P_`ј_`ۘ_`ވ``嘌`aaaa#ab1a b@a6cNa=c]aOdkaVdzaaeaheaxfafaωga֙ga版hahaAiaHi
bejblj,bk;bkKbƊlZb͚ljbߊmyb暌mbnbnbobob"pb)pbhqboqcrcr$cs3csCctRcÛtbcՋuqcܛuc苈vcvcwcwc xc'xctyc{yczdzd{+d{;d|Jd|Zd}idĜ}yd~d!~dEdLd[dbdjdqd{ee#e3eBeReˍaeҝqeۍe❌e荈eee	eeeIePfbfi+fx:fJfӎYfڞifxffff=fDffffggȟ#gُ2gBgQgagpggZgaggggggg̐hӠh*h砌:hIhYhhh"xhQhXh`hghphwhhhii"i2iAiQi `i'pi7i>iLiSicijiui|iijj*j9jIjXjhjܒwj㢌jjj
jj-j4jEjLkVk]"k1kAkPk`kokkkk'k.kEkLkfkmk
llȔ)lϤ9lHl礌Xlglwlll l'lklrlllmm!m¥1mӕ@mڥPm啈_m쥌om~mmm!mLmSmYm`mlms
nzn)n8nHnWngnvnn#n*n3n:nEnLncnjovo}!o0o@oOo_ono~oooƗoͧoӗoڧooo	pp>(pE8pIGpPWpmipt|ppppp}%3[@~Ubճw/u봈ȁ݁Vuȵ!.&CfPeҶrGdŷ˂؂[θ18>\S`¹u)eƃ׺ۃ$X
w,һAN(c^p{ؼBɄք
Mf/<Qؾ^s6d~ą̿مH_*?	L	a6
nQ
džˆ
Ԇ8Œ
gˆŒˆŒ-ˆ:ÌOBÈ\iÌYpppppp

###.#.44#4#.##::#.###.#.44#4#.DDODDO##.[ckt::.:}:.}:}:.}##pYYZZZZZo`*Z-;FP[l[p}ZFPY
!Y,l,lZ`*9=HR\cHmvv
*vzvvvv*v*v*vvZvvvY]`)9)9DZZDRZ***`bmrvzmzrzv*rz*z*z*mz$Po`mz*z


*k`````ZkkkZkkZk*/4oZ8B}4**IZkTZZkZkZkZkZk`h``qyZkrZZkZkZkZkZkZkZkZk**ZkZkZkZkZkZkZkkZkkZoZrZZZZZoZrZZZZZoZrZZZrZ}o`WrZZ***```k`Z``` ,3p``@,3p````````````Z``L`SUiSUitUit```P}}ZkZkZkZrZ`"*rZ2:FUUYUY^ccnxnxnxnxccnxnxnxnx	
!!%)1

AEIaTML))1)9A-I-Q-Y-a-i-q-y--------`5g5>)-	)))	66H+6.646)	P	>	B6	H6	O6	W6	`6	i6	s6	~6	B6	`6			6			6	'	'6	'6	.6	.6	EH	Q
	Q	Q	Q	Q 	Q'	Y.	Y4	Y;	d6!)I)		HI6	p
	p	p	p	p 	p'	|.	|4	|;		6		6		6	6		6	6	7	7	7	"7		6		637	(	(97	0)?79n)uF7K7	Y	Y97	a	r	rU7	wU7	U7d7-ӈ1)u7{71ӑ1~S1ӈ7LJ1Ӎ7iGa`M))IxJ7qӫ7M;)LHq7I
7Q7I38IE8IW
8Ig8qw8Q$8I78q>8iX81J^8iQd8	r8Lx8M~8!L1HL1SLLH;f1MHy8aխ8ճ8ճ8H5)L)  88L>8Q#8L1<8M9TM`Mq)I7qӑLH%9)f,9	G91#InM9^91vvq91$S)Lx8x8i֌i'H	iօ91(9P9		9)		91׺A)A8A;:G:L#:AZ-:K
#Aa3:L9:I)y@:)v-Z:	`:f:	1H	G91׈:IH		ׯ:ض:IӾ::I>	#;Q1;QG&;Q],;s؈?*)G*))3;Q9;Q@;AG;I-a\;b;%b;8G;Qp)Qn;Q*|;;QTElوa;f;Y;aElqy)19ڈ[KmKrK1H1HKKK			LڈL1H^cL-)LیP0L--F);FL	pKL)>LpLxLIӇL		x_LG	%L	ܱLdLI>aiM)		Li)i/Z-iR-i܌i܌i݌i
Mi&Mqӈ7I72MyNLyW3LH{KMQMVM	P9bMݬMM;!-.		GM1HM)MaNN1N9!ވA1H5NM;I7HNMNK	KL\NimޜNQNYHY	pNQLHaNNi+NiNiN-	.`2Nqް
I-I66IxO)O߬M߯O-߳OߵOIOI6߈)L-F)u7I=Pu7))ӑLPUgPq);H#K
))-F)iLJ	.f2iG	'QL!QG(QNN^_yYGQ  $OQ`XQooQuQoQW^Ha^^>>))^H_QQ_QMx__3)QAHAH1S1!16	>	ֳ	3	06R	L	3	76R!OR9vRAI|RY+ ւRR	
Ra׽RaM;RiR)EjMSyGYSyX Sjoj j !_RSsYS~!_S	M;

 $-(2,74@8E<J@OHLP
TX\`Xh
lpt|e


z-

 $(048@DLPTX
\dhlptxX|-27




 $(
04
8@DLPX\`d
lptx
|

e
 $
(,48<@
DHPTX`dhlpx|




 $(,
048<@DeHvL{PX\dhlt|

vz-X (,04
<@DH
LPX\`d
hltx|




 (,048-<@HHLPT
X\`dhletx|
ev{W\-


$(,48<@
DLPT
X\`dhlepvx|



						 	$	(	
0	4	8	
@	D	H	P	T	X	`	d	h	p	t	x					
				
						e	v	{		W	\	z	-										







 
$
 (
%,
*0
/4
48
9<
>@
CD
HH
ML
RP
WX
\
`
h
l
p
t

x































 $(048<
@HLPX\`hlpt
x





 (,08<@DLPX\`
dhlptxe|v{



-



2

-
 
$
(
,
4
8
<

@
D
H
L
T

X
\
`
d
l
p
t

|




-

2









$	

z








-28	 (,0
48<@DHeLvTX\`

lptxG
|%RsC^#>OZtx|
(ev{W\z- %*/49 >$C(H,M0R4W8-<2@7D<HALFPKTPXU\Z`_ddhptx|
ev{W\z
ev{W\z- $(,D8 H] L P T X!\F!`m!d!h!l"p)"tH"xo"|"""##I#f#}#####F$$$$$%.%K%T%g%%%%%%&&/&<&S&p&&&&&/'X''' '$'(','0#(4@(8U(<~(@(D(H(L(P)T*)XK)\f)`)d)h)l)p	*t@*xW*|x****++.+U+j+++++A,|,,,,0-U------1.t...../D/q////0B0e0~0 0$0(0,00%14Z181<1@1D2H)2L@2\`dh
lptx|ev{W\z- %*/49>CHMRW- 2$7(<,A0F4K8P<U@ZD_HdLP(TXH\2`dr2hw2l@p|2txJ|222222222E2222O2222222222X22233
333 3$!3(&3,+30034538:3<?3@D3DI3HN3LS3PX3T]3X8	\`b3dg3hl3lq3pv3t{3x3|3333333333333333333333333444444 4%4*4/44494>4C4H4M4 R4$W4(\4,a40f44k48p4<u4@z4D4H4L4P4
ev{W\z- $(,048<@DH L%P*T/X4\9`>dChHlMpRtWx-|27<AFKPUZ_d(H2r2w2@|2J222222222E2222O22 $2(2,2024282<2@2DHXLP2T2X2\`3d3hl
3pt3x3|3!3&3+30353:3?3D3I3N3S3X3]38	b3g3..s|.s6~..sD.s..#o7.3T.;T.CT.KU.S5U.[FU.c|U.kU.sU.s,W.sX.s"Z.s[.s].sy^.s_.sca.sb.sGd.se.s+g.sh.s#j.sk.sm.sn.sp.sq.sr.sit.su.s4w.sx.sy.sc{.s|.s.s.sZ.s.s&.s.sڇ.s6.s.s.sU.s.s?.ső.sA.s.sG.s.s.s.s.s.s.sm.s.sP.sΥ.s..s.s.s[.s.s.s.s.sQ.s.s.s.s.s.s.s.s.s.o7.sr.s.sj.s.st.s.s.s.sm.sK.s.s6.s.s2.s.s-.s.s.s.s.s.s.sV.s.sg.s.s .s{.s.s=.s.s.sy.s.sR.s.s%.s.{o7.o7.o7.|U.C6c#o7#o7#o7#o7#o7C;KK#KK	#	CY<c	K	K
C=
KKK
-<!
;<A
M<cCg=C{>CC?C?Ce@#C@CC_AcCACBCSCCDCDCE#CECCFcCGCEHCHCMICI#KK#KCKcCJKKcKK#o7##o7C#o7c#o7#o7#o7#o7#o7#o7##o7C#o7c#o7#o7#o7#o7#o7##o7C#o7c#o7#o7#o7#o76#o7C#o7#o7#o7#o7#o7#o7##o7C#o7c#o7#o7#o7#o7#o7#o7#o7C6#o7C#o7{R#3	##3	$3	2<2<3<!3<A3<a3<8L=9X=AS=aS=S=S>S2>T?>!T\>ATl>T>T>T>T
?U?!U+?AU2>U?U?U2>V@!V8@AVO@aV2>V@V@V@W2>AW6AaWLAW2>WAWAXSo7X2>AXWBaXnBXBXSo7X2>XBY
C!Y,CAY2>YCYCYCYCZCAZWDaZsDZSo7Z2>ZDZD[2>[So7A[\Ea[vE[E[E[E\F!\3FA\OFa\hF\F\F\F\F!]-GA]BGa]^G]G]G]G^H!^HA^/H^H^H^H_I!_IA_%Ia_=I_I_I_I`I!`2>!`So7a`NJ`dJ`J`J`JaSo7a2>i.Ki=KiYKjmK!jwKAjKajKDl$$6:6666666,7P7[7_7j7777777718E8R8k8888888949>9S9c9w99999H:m:z:::::::::
;;M;i;v;;;;;;;;;;;;KKL7LALRLYLLLLLLLLLLMMM(M8M@MiMMMMMMMMMMMMN#N<NWNeNpN~NNNNNNNOOO$O.O6O<OFOOOXObOfOkOOOOOOP"PSP^PmPzPPPPPPPPQ0Q<QAQQQQQQQQQR
RR(R1R?RERWRdRqRRR)S?SgSmSxSSSSS"$&*<JLMOPSV^adfhnpqrxz}45N%*/!
'$-$-2)$2:$2J$8<S$B^$Fj$M{$8$8>&Bj$M%)6)/:$-J$8M)8Y)^)Bk)B|F	F8"%	F	FBF	F	7	G	[0BWGBbG	rG	M0BW>8|HBH8HBH8H8H	G	H8H8H
7Bc,BHBHBH8H	
gIBqIBJ$8H8E
IK

Q
G	IW
I]
Ic
6i
$o
$u
I
H	
I
^DBIBM0B#JB&JB1J
fJ
IBkJBJ	c,BWGBJBJ8JBEJBH	
	8BJ	H	
#KBJ	-K	IBPK	R0BvKBJ	L8L8L81JM/@oMQc,B1J7BNBNBHBFB1JO81JO	Q	Q	Q	$-Q8Q/QQQ8fJ
IB7BvR81J#JB-K	L8TQT-S$BT84U8T8U/U/U8UBT8T8T8XXB	8BT8T8T8T8M0B#J/7BoZ/rZ/>[BI[BV[BM0Ba[/fJ/\8\J	_/_8_/_/_/^$F[ici/T8^$F"jBu/ u4 u4 
v4  v4 6v4 Iv4 ev4 uv4 v4 v4 v4 v4 v4 v4 v4 bC4 lC4 C4 u04 d54 C4 C4 
-4 w4 	w4 w4 w4 'w4 0w4 7w4 Cw4 Rw4 bw4 tw4 w4 w4 w4 w4 w4 w4 w4 x4 x4 x4 2x4 Ax4 Lx4 ax4 sx4 x4 x4 x4 x4 x4 x4 x4 x4 x4 y4 y4 -y4 Iy4 Uy4 fy4 |y4 y4 y4 y4 y4 y4 y4 y4 y4 z4 z4 (z4 Qz4 oz4 z4 z4 z4 z4 z4 z4 {4 {4 ${4 2{4 O{4 q{4 {4 {4 {4 {4 {4 {4 {4 |4 |4 3|4 J|4 ^|4 p|4 }|4 |4 |4 |4 |4 |4 |4 	}4 ,}4 9}4 E}4 X}4 d}4 u/ 74}4}4}4}4}4~4~4(~4C~4\~4s~4~4~4~4~4~4~444,4B4W4j444444444444,4;4F4X4r444444ـ4444&434I4[4f4s4}44444ȁ42d4d47h4ށ4Ad4#e444Sd4 4A4bd4ag4]4u444d44˂4d44444%454d4C4[4q4d4d44e44d4d4d4Ee44"f44҃4h4`e4442e4Re4ne44ze4#4e4.4B4e4Q4^4i4}4444ń4Մ4444474Q4]4j44444Ѕ44444454?4M4Y4i444444ʆ4444444*4A4N4^4{44444Ӈ4444	444'404B4Z4h4t4z444444ci/8}8}8}8}8}8~8~8(~8C~8\~8s~8~8~8~8~8~8~888,8B8W8j888888888888,8;8F8X8r888888ـ8888&838I8[8f8s8}88888ȁ82d8d87h8ށ8Ad8#e888Sd8 8A8bd8ag8]8u888d88˂8d88888%858d8C8[8q8d8d88e88d8d8d8Ee88"f88҃8h8`e8882e8Re8ne88ze8#8e8.8B8e8Q8^8i8}8888ń8Մ8888878Q8]8j88888Ѕ88888858?8M8Y8i888888ʆ8888888*8A8N8^8{88888Ӈ8888	888'808B8Z8h8t8z888888Ű88	8#8H8`8x888α888 878S8s88888887$5}*5}*5}*5}*5~*5~*5(~*5s~*5~*5~*5~*5,*5B*5W*5j*5*5*5*5*5*5*5*5,*5;*5X*5*5*5*5*5ـ*5&*5I*5[*5f*5s*5}*5*5*5*5ȁ*52d*5d*5ށ*5Ad*5#e*5 *5A*5bd*5]*5*5d*5*5˂*5d*5*5%*5d*5C*5[*5q*5d*5d*5e*5d*5d*5d*5Ee*5*5"f*5`e*5*5*52e*5Re*5ne*5*5ze*5#*5e*5B*5e*5Q*5i*5}*5*5*5ń*5Մ*5*57*5Q*5j*5*5*5Ѕ*5*5*5*5?*5Y*5i*5*5*5*5*5ʆ*5*5*5*5*5*5**5A*5*5*5*5Ӈ*5*5*5*5	*5*5*5'*5B*5Z*5z*5*5*5*5*5ci/8}8}8}8}8~8~8(~8s~8~8~8~8,8B8W8j88888888,8;8X88888ـ8&8I8[8f8s8}8888ȁ82d8d8ށ8Ad8#e8 8A8bd8]88d88˂8d88%8d8C8[8q8d8d8e8d8d8d8Ee88"f8`e8882e8Re8ne88ze8#8e8B8e8Q8i8}888ń8Մ8878Q8j888Ѕ8888?8Y8i88888ʆ888888*8A8888Ӈ8888	888'8B8Z8z888888888	8-8H8`8888888;8\8|8888888:8S8l8888888*8>8T8l88888888%898M8a8	k	j	mln
o
pqrstuvwyx{|~!#%')+-/1135579;
;==??AACC'E(G*I+K-M.O/Q0S2U3W4Y5[6]7_8a9c:e;g<i=k>m?o@qAsBuCwEyF{G}HIJKLMNOPQRTUWYZ]`abdefhijklmnprst|}~		

!!##%%'/)2+7-8/91:3=5?7o9p;q=r?{ACEGIIKKMMOOQQSSUUWWYY[[]]__acegikmoqsuuw%y.{6}WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegiikmoqsuwy{}	

 !"#$%&'()*+,-./0123456789	:;
<=>?@ABCDE!F#G%H'I)J+K-L/M1N3O5P7Q9R;S=T?UAVCWEXGYIZK[M\O]Q^S_U`WaYb[c]d_eafcgehgiijkkmlomqnsoupwqyr{s}tuvwxyz{|}~		

!!##%%''))++--//1133557799
;	;==
??AACCEEGGIIKKMMOO QQ!S"S#U$U&W%W'Y(Y*[)[,]+]-_._/a0a2c1c3e4e5g6g8i7i9k:k;m<m>o=o?q@qAsBsCuDuFwEwHyGyI{J{L}K}NMOPQRTSUVXWZY[\]^`_abcdfeghijlkmnpoqrtsvuwxzy|{}~		

!!##%%''))++--//1133557799
;	;==?
?AACCEEGGIIKKMMOOQ Q"S!S#U$U&W%W'Y(Y*[)[,]+]-_._0a/a2c1c3e4e5g6g9i8i:k;k=m<m?o>o@qAqBsCsEuDuFwGwHyIyK{J{L}M}NOQPRSTUVWYX[Z\]_^a`bcelmnopqrstuvwxyz{|}~	
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}	

 !"#$%&('*)+,.-0/12346578:9<;=>?@BACDEFHGIJKLNMOPQRSTVUXWYZ\[^]_`abdcefhgj	i	klm
n
poqrstvuwxyz|{}~!!##%%''))++--//1133557799;;==??AACCEEGGIIKKMMOOQQSSUUWWYY[[]]__aacceeggiikkmmooqqssuuwwyy{{}}	

! #"$%&')(*+,-/.0123546789:;=<?>@ACBEDFGHIKJLMONQPRSTUWVXYZ[]\^_`acbdeX
hLQQn5d$UE	`1@($Ad
@6=X0c`kmo#r6tEyO0\ihz0 5=lp/B^Hj  h,/309<AXh&(6>HVmhyxHH'6(5E9S@>cXDrXPzZa0e8hksvx(#05Pexn0|@0)>H@XDZxp@vy+({@؀O؅exh`h %h:Uhp#+2H;pj8ЍxȘ6 Ipf| 	=pXs P
))?Pf@0"6K!b'u`,XEP 		b

)(H)]p-jB|F`I0Q TV@s`v@xz)p}7Kepvpȹ`h0(0@DQ`"h'|- 1`6:;=HBG5JHPYHZm_`h8XX+7S8b|0p@P`0
X
*`	
F
`
z

#
X)
p0
(2
:

C
)F
:XM
LQ
]pV
v _
h
i
@u
w

@



3`
L
\
z


`


`

7
LP
]
op
0
"/3=D!G3sLucp}z0<Module>Microsoft.SqlServer.SqlEnum.dllSqlSecureStringMicrosoft.SqlServer.Management.Smo.InternalSqlObjectBaseMicrosoft.SqlServer.Management.SmoSqlObjectDatabaseLevelSqlServerStatementBuilderExecuteSqlDatabaseCategoryFileGrowthTypeIndexKeyTypeIndexTypeLockEscalationTypeSpatialIndexTypeSpatialGeoLevelSizePermissionStateBackupDeviceTypeUserDefinedFunctionTypeServerLoginModeLockRequestStatusRecoveryModelCategoryClassMediaTypesLoginTypeUserTypeWindowsLoginAccessTypeDatabaseUserAccessProviderAuthenticationTypeMappedClassTypeCollationVersionCompatibilityLevelDatabaseStatusSnapshotIsolationStateRangeTypeDataCompressionTypeAssemblySecurityLevelExecutionContextServerDdlTriggerExecutionContextDatabaseDdlTriggerExecutionContextActivationExecutionContextAssemblyAlterOptionsImplementationTypeUserDefinedTypeFormatResourceUsageFullTextCatalogUpgradeOptionStopListOptionRestoreTypeCatalogPopulationStatusCatalogPopulationActionIndexPopulationActionBackupSetFlagBackupSetTypeIndexPopulationStatusChangeTrackingReplicationOptionsPrincipalTypePrivateKeyEncryptionTypeSymmetricKeyEncryptionAlgorithmAsymmetricKeyEncryptionAlgorithmCreateDispositionTypeSymmetricKeyEncryptionTypeDatabaseEncryptionAlgorithmSynonymBaseTypeDatabaseEncryptionTypeSequenceCacheTypeDistributionTypeDatabaseEncryptionStateObjectClassPageVerifyMirroringRoleMirroringSafetyLevelMirroringOptionMirroringStatusMirroringWitnessStatusRetentionPeriodUnitsHttpPortTypesEndpointStateXmlFormatOptionXsdSchemaOptionResultFormatMethodXsdSchemaOptionWsdlGeneratorOptionPasswordHashAlgorithmContainmentTypeHttpAuthenticationModesLogReuseWaitStatusXmlTypeKindRepairOptionsRepairStructureXmlTypeDerivationSecondaryXmlIndexTypeIndexedXmlPathTypeEndpointTypeEndpointEncryptionEndpointEncryptionAlgorithmEndpointAuthenticationOrderProtocolTypeServerMirroringRoleForeignKeyActionXmlDocumentConstraintNSActivationStateMethodLoginTypeAuditLevelPerfMonModeWorkloadGroupImportanceFileStreamLevelPlanGuideTypeAuditDestinationTypeAuditFileSizeUnitOnFailureActionAuditStatusTypeAuthenticationTypeAuditActionTypeFilestreamNonTransactedAccessTypeAvailabilityGroupRollupSynchronizationStateHadrManagerStatusAvailabilityReplicaOperationalStateAvailabilityReplicaRollupRecoveryStateAvailabilityReplicaRollupSynchronizationStateAvailabilityReplicaRoleAvailabilityReplicaConnectionStateAvailabilityReplicaConnectionModeInPrimaryRoleAvailabilityReplicaConnectionModeInSecondaryRoleAvailabilityReplicaJoinStateAvailabilityGroupListenerIPStateAvailabilityReplicaAvailabilityModeAvailabilityReplicaFailoverModeAvailabilityDatabaseSynchronizationStateDatabaseReplicaSuspendReasonClusterQuorumTypeClusterQuorumStateClusterMemberTypeClusterMemberStateAvailabilityGroupAutomatedBackupPreferenceAvailabilityGroupFailureConditionLevelActivationOrderMicrosoft.SqlServer.Management.Smo.AgentAgentLogLevelsAgentMailTypeAgentSubSystemAlertTypeCategoryTypeCompletionActionCompletionResultFrequencyRelativeIntervalsFrequencySubDayTypesFrequencyTypesJobExecutionStatusJobOutcomeJobServerTypeJobStepFlagsJobTypeNotifyMethodsOSRunPriorityStepCompletionActionTargetServerStatusWeekDaysMonthlyRelativeWeekDaysPolicyHealthStateMicrosoft.SqlServer.Management.DmfDiskFileXmlReadXmlReadRepeatedXmlReadDocXmlReadPropertiesXmlReadIncludeXmlReadPropertyXmlReadSettingsXmlReadParentLinkXmlRequestParentSelectXmlReadSimpleParentLinkXmlRequestParentSelectFieldXmlReadMultipleLinkLinkFieldTypeXmlReadLinkFieldsXmlReadPropertyLinkXmlReadConditionedStatementXmlReadConditionedStatementPrefixXmlReadConditionedStatementFailConditionXmlReadConditionedStatementPostfixXmlReadConditionedStatementPostProcessXmlReadOrderByRedirectXmlReadSpecialQueryUtilConditionedSqlConditionedSqlListConditionedSqlListEnumeratorSqlPropertyLinkJoinTypeSqlObjectPropertySqlConditionedStatementSqlConditionedStatementPrefixSqlConditionedStatementPostfixSqlConditionedStatementFailConditionParentLinkSqlRequestSqlEnumResultPrimaryFileLinkFieldLinkMultipleSqlPostProcessPostProcessPostProcessTextPostProcessBodyTextPostProcessParamPostProcessCreateDateTimePostProcessCreateDatePostProcessCreateTimePostProcessCreateDateSeconds1990PostProcessCreateTimeSpanHMSPostProcessPermissionCodePostProcessOwnObjectsPostProcessSplitFourPartNamePostProcessFragmentationPostProcessIPAddressPostProcessIP6AddressPostProcessJobActivityPostProcessStatisticStreamPostProcessCreateSqlSecureStringPostProcessDatabaseInsideAttribsPostProcessAutoClosePropertiesPostProcessContainedDbPropertiesPostProcessFilePropertiesPostProcessServerPropertiesPostProcessAuditPropertiesPostProcessUserPostProcessFileSqlTypeConvertIDKeySqlEnumDependenciesSingletonServerDbSchemaNameSqlEnumDependenciesRequestParentSelectSqlSupportRestorePlanInternalDataProviderRetriveModeColumnDataManipulationDdlTextParserHeaderInfoDdlTextParserSingletonDdlTextParserDatabasePermissionSetValueObjectPermissionSetValueServerPermissionSetValuePermissionDecodeDatabaseOptionSqlObjectUnionEventSetBasePostProcessDdlEventsPostProcessDatabaseDdlTriggerEventsPostProcessServerDdlTriggerEventsAvailableSQLServersPostProcessVersionPostProcessXmlToListLocDisplayNameAttributeEnumToLocResConverterJobExecutionStatusConverterContainmentTypeConverterRecoveryModelConverterMirroringStatusConverterAvailabilityGroupRollupSynchronizationStateConverterAvailabilityReplicaOperationalStateConverterAvailabilityReplicaRollupRecoveryStateConverterAvailabilityReplicaRollupSynchronizationStateConverterAvailabilityReplicaRoleConverterAvailabilityReplicaConnectionStateConverterAvailabilityReplicaConnectionModeInSecondaryRoleConverterAvailabilityReplicaConnectionModeInPrimaryRoleConverterAvailabilityReplicaAvailabilityModeConverterAvailabilityReplicaFailoverModeConverterAvailabilityReplicaJoinStateConverterAvailabilityDatabaseSynchronizationStateConverterAvailabilityGroupListenerIPStateConverterDatabaseReplicaSuspendReasonConverterHADRManagerStatusConverterClusterQuorumTypeConverterClusterQuorumStateConverterClusterMemberTypeConverterClusterMemberStateConverterAvailabilityGroupAutomatedBackupPreferenceConverterAvailabilityGroupFailureConditionLevelConverterStringSqlEnumeratorMicrosoft.SqlServer.Management.Smo.SqlEnumResServerDdlTriggerEventValuesServerDdlTriggerEventServerDdlTriggerEventSetDatabaseDdlTriggerEventValuesDatabaseDdlTriggerEventDatabaseDdlTriggerEventSetmscorlibSystemObjectICloneableIComparableIComparable`1IDisposableMicrosoft.SqlServer.Management.Sdk.SfcEnumObjectISqlFilterDecoderCallbackISupportInitDatabaseEngineDataISupportVersionsISupportDatabaseEngineTypesEnumSystem.CollectionsIEnumeratorObjectPropertyRequestEnumResultIEnumDependenciesSystem.DataIDataReaderIDataRecordValueTypeSystem.ComponentModelDisplayNameAttributeEnumConverterSystem.SecuritySecureStringdatalengthempty.cctor.ctorDisposeget_Itemget_Emptyget_LengthCloneCompareStringComparisonSystem.GlobalizationCultureInfoCompareOrdinalCompareToConcatContainsCopyEndsWithEqualsFormatIFormatProviderGetHashCodeIndexOfIndexOfAnyInsertJoinLastIndexOfLastIndexOfAnyop_Equalityop_Inequalityop_AdditionPadLeftPadRightRemoveReplaceSplitStringSplitOptionsStartsWithStringArrayToSqlSecureStringArraySubstringToBstrToLowerToLowerInvariantToSecureStringToStringToUpperToUpperInvariantTrimTrimEndTrimStartop_Explicitop_ImplicitSystem.Data.SqlTypesSqlStringItemEmptyLengthm_sbm_parentLinkm_conditionedSqlListm_propertyLinkListm_postProcessListm_RequestParentSelectSortedListm_OrderByRedirectm_SpecialQueryArrayListm_LinkFieldsm_distinctget_StatementBuilderset_StatementBuilderget_ParentLinkset_ParentLinkget_RequestParentSelectset_RequestParentSelectget_OrderByRedirectget_SpecialQueryget_ConditionedSqlListset_ConditionedSqlListget_PropertyLinkListset_PropertyLinkListget_PostProcessListset_PostProcessListget_Distinctset_DistinctUrnSetUrnget_SqlRequestget_ObjectNameObjectPropertyUsagesGetSqlPropertyResultTypeget_ResultTypesAddRequestPropertyRegisterPostProcessHitsAddRequestPropertiesAddFilterPropertyAddOrderByPropertyAddLinkPropertyAddConditionalsJustPropDependenciesAddConditionalsRetrieveParentRequestLinksPropagateRequestedParentPropertiesRetrieveParentRequestAddLinkPropertiesAddParentLinkPropertiesAddParentLinkPropertiesParentAddParentLinkPropertiesLocalIntegrateParentResultAddXpathFilterPrepareGetDataGetDataBuildStatementSystem.ReflectionAssemblyget_ResourceAssemblyAddSpecialQueryAddSpecialQueryToResultBuildResultFillDataWithUseFailureSystem.Collections.SpecializedStringCollectionFillDataClearHitsAddPropertyForFilterAddConstantForFilterget_SupportsParameterizationAddLinkFieldsget_CalculateParentRequestResolveLocalLinkLinksAddPostProcessTriggersStoreInitialStateRestoreInitialStateGetRequestedParentSelectFillPrefixPostfixResolveComputedFieldGetAliasPropertyNameAddOrderByInDatabaseAddOrderByAcrossDatabasesAddOrderByDatabaseOrderByDirectionGetFixedFilterValueOrderByRedirectSpecialQueryPropertyLinkListPostProcessListDistinctObjectNameResultTypesResourceAssemblySupportsParameterizationCalculateParentRequestXPathExpressionBlockInitializeMicrosoft.SqlServer.ConnectionInfoMicrosoft.SqlServer.Management.CommonServerVersionDatabaseEngineTypeLoadInitDataLoadInitDataFromAssemblyLoadInitDataFromAssemblyInternalLoadAndStoreLoadIncludeFilem_PropertyNameForDatabasem_XmlAssemblym_bLastDatabaseLevelm_bForChildrenget_NamePropertyDataTableGetRequestedDatabasesIsDatabaseNameOrDerivateCleanupFilterNamePropertyGetServerVersionGetDatabaseEngineTypeSystem.TextStringBuilderm_urnm_prefixm_fieldsm_fromm_wherem_postfixm_orderBym_ParentPropsm_NonTriggeredPropsm_conditionm_postProcessm_bDistinctm_bStoredPropsAddedm_InternalSelectbFirstJoinIsClassicget_ParentPropertiesSetInternalSelectget_NonTriggeredPropertiesget_IsFirstJoinIsEmptyget_Fromset_FromAddElementAddUrnAddPrefixAddConditionAddPostfixAddFieldsAddFromAddJoinAddWhereAddOrderByAddPropertyAddPostProcessMergeInternalSelectget_SqlStatementget_SqlPostfixClearPrefixPostfixMakeCopyStoreParentPropertyGetSqlNoPrefixPostfixAddStoredPropertiesGetOrderByClearOrderByGetCreateTemporaryTableSqlConnectAddColumnSelectAndDropClearFailConditionParentPropertiesNonTriggeredPropertiesIsFirstJoinFromSqlStatementSqlPostfixServerConnectionm_conctxbHasConnectedm_MessagesSqlExecutionModesm_semInitialSystem.Data.SqlClientSqlInfoMessageEventHandlerm_ServerInfoMessagedatabaseNameInitServerConnectionWithDatabaseNameConnectDisconnectInitConnectionStartCaptureSqlInfoMessageEventArgsRecordMessageClearCaptureExecutionFailureExceptionTryToReconnectExecuteImmediateExecuteWithResultsSqlDataReaderSqlCommandGetDataReaderIsContainedAuthenticationExecuteImmediateGetMessageGetDataProviderExecutevalue__PublishedSubscribedMergePublishedMergeSubscribedKBPercentNoneDriPrimaryKeyDriUniqueKeyClusteredIndexNonClusteredIndexPrimaryXmlIndexSecondaryXmlIndexSpatialIndexNonClusteredColumnStoreIndexSelectiveXmlIndexSecondarySelectiveXmlIndexTableDisableAutoGeometryGridGeographyGridGeometryAutoGridGeographyAutoGridLowMediumHighDenyRevokeGrantGrantWithGrantCDRomDiskFloppyAFloppyBPipeTapeUnknownInlineScalarNormalIntegratedMixedGrantedConvertingWaitingSimpleBulkLoggedFullJobAlertOperatorAllFixedDiskFloppySharedFixedDiskWindowsUserWindowsGroupSqlLoginCertificateAsymmetricKeySqlUserNoLoginNonNTLoginUndefinedSingleRestrictedMultipleWindowsBasicOtherCryptographicProviderVersion80Version90Version100Version105Version110Version60Version65Version70RestoringRecoveryPendingRecoveringSuspectOfflineStandbyShutdownEmergencyModeAutoClosedInaccessibleDisabledEnabledPendingOffPendingOnLeftRightRowPageColumnStoreSafeExternalUnrestrictedCallerOwnerExecuteAsUserSelfExecuteAsLoginNoChecksTransactSqlSqlClrNativeUserDefinedSerializedDataSerializedDataWithMetadataBackgroundBelowNormalAboveNormalDedicatedAlwaysRebuildAlwaysResetImportWithRebuildOffNameDatabaseFileFileGroupVerifyOnlyIdleCrawlinProgressPausedThrottledIncrementalUpdatingIndexDiskFullPauseNotificationUpdateMinimalLogDataWithSnapshotReadOnlyDatabaseSingleUserModeDatabaseDifferentialLogFileOrFileGroupFileOrFileGroupDifferentialManualPausedOrThrottledAutomaticLoginServerRoleUserDatabaseRoleApplicationRoleNoKeyMasterKeyPasswordProviderCryptographicProviderDefinedRC2RC4DesTripleDesDesXAes128Aes192Aes256TripleDes3KeyRsa512Rsa1024Rsa2048CreateNewOpenExistingSymmetricKeyViewSqlStoredProcedureSqlScalarFunctionSqlTableValuedFunctionSqlInlineTableValuedFunctionExtendedStoredProcedureReplicationFilterProcedureClrStoredProcedureClrScalarFunctionClrTableValuedFunctionClrAggregateFunctionServerCertificateServerAsymmetricKeyDefaultCacheNoCacheCacheWithSizeRangeUnencryptedEncryptionInProgressEncryptedEncryptionKeyChangesInProgressDecryptionInProgressObjectOrColumnSchemaSqlAssemblyUserDefinedTypeSecurityExpressionXmlNamespaceMessageTypeServiceContractServiceRemoteServiceBindingServiceRouteFullTextCatalogSearchPropertyListServerServerPrincipalEndpointFullTextStopListAvailabilityGroupTornPageDetectionChecksumPrincipalMirrorSuspendResumeRemoveWitnessFailoverForceFailoverAndAllowDataLossSuspendedDisconnectedSynchronizingPendingFailoverSynchronizedConnectedMinutesHoursDaysSslClearStartedStoppedXmlFormatSqlFormatStandardAllResultsRowSetsDefaultDefaultProcedureProcedureSqlServer7ShaOneShaTwoPartialAnonymousDigestNtlmKerberosNothingCheckpointLogBackupBackupOrRestoreTransactionMirroringReplicationSnapshotCreationLogScanAnyAnySimplePrimitiveListUnionComplexSimpleComplexElementModelGroupElementWildcardAttributeAttributeGroupAttributeWildcardAllErrorMessagesExtendedLogicalChecksNoInformationMessagesTableLockEstimateOnlyPhysicalOnlyDataPurityExtensionRestrictionSubstitutionPathValuePropertyXQuerySqlSoapTSqlServiceBrokerDatabaseMirroringSupportedRequiredAesAesRC4RC4AesNegotiateNtlmCertificateKerberosCertificateNegotiateCertificateCertificateNtlmCertificateKerberosCertificateNegotiateHttpTcpNamedPipesSharedMemoryViaPartnerWitnessNoActionCascadeSetNullSetDefaultContentDocumentEnablePendingDisablePendingSuccessFailureContinuousOnDemandTSqlAccessTSqlLocalFileSystemAccessTSqlFullFileSystemAccessTemplateSecurityLogApplicationLogMbGbTbContinueFailOperationFailedInstanceApplicationRoleChangePasswordGroupAuditChangeGroupBackupRestoreGroupBrokerLoginGroupDatabaseChangeGroupDatabaseLogoutGroupDatabaseMirroringLoginGroupDatabaseObjectAccessGroupDatabaseObjectChangeGroupDatabaseObjectOwnershipChangeGroupDatabaseObjectPermissionChangeGroupDatabaseOperationGroupDatabaseOwnershipChangeGroupDatabasePermissionChangeGroupDatabasePrincipalChangeGroupDatabasePrincipalImpersonationGroupDatabaseRoleMemberChangeGroupDbccGroupDeleteFailedDatabaseAuthenticationGroupFailedLoginGroupFullTextGroupLoginChangePasswordGroupLogoutGroupReceiveReferencesSchemaObjectAccessGroupSchemaObjectChangeGroupSchemaObjectOwnershipChangeGroupSchemaObjectPermissionChangeGroupSelectServerObjectChangeGroupServerObjectOwnershipChangeGroupServerObjectPermissionChangeGroupServerOperationGroupServerPermissionChangeGroupServerPrincipalChangeGroupServerPrincipalImpersonationGroupServerRoleMemberChangeGroupServerStateChangeGroupSuccessfulDatabaseAuthenticationGroupSuccessfulLoginGroupTraceChangeGroupUserChangePasswordGroupUserDefinedAuditGroupReadOnlyNoneSynchronizingPartiallySynchronizingAllSynchronizingAllSynchronizedPendingCommunicationRunningPendingOnlineFailedNoQuorumInProgressNotSynchronizingResolvingPrimarySecondaryAllowAllConnectionsAllowReadWriteConnectionsAllowNoConnectionsAllowReadIntentConnectionsOnlyNotJoinedJoinedStandaloneInstanceJoinedFailoverClusterInstanceOnlinePendingAsynchronousCommitSynchronousCommitRevertingInitializingSuspendFromUserSuspendFromPartnerSuspendFromRedoSuspendFromApplySuspendFromCaptureSuspendFromRestartSuspendFromUndoNotApplicableNodeMajorityNodeAndDiskMajorityNodeAndFileshareMajorityDiskOnlyUnknownQuorumStateNormalQuorumForcedQuorumNodeDiskWitnessFileshareWitnessPartiallyOnlineSecondaryOnlyOnServerDownOnServerUnresponsiveOnCriticalServerErrorsOnModerateServerErrorsOnAnyQualifiedFailureConditionFirstLastErrorsWarningsInformationalSqlAgentMailDatabaseMailActiveScriptingCmdExecSnapshotLogReaderDistributionQueueReaderAnalysisQueryAnalysisCommandSsisPowerShellSqlServerEventSqlServerPerformanceConditionNonSqlServerEventWmiEventLocalJobMultiServerJobNeverOnSuccessOnFailureAlwaysSucceededRetryCancelledSecondThirdFourthHourMinuteOnceAutoStartDailyMonthlyMonthlyRelativeOneTimeOnIdleWeeklyExecutingWaitingForWorkerThreadBetweenRetriesWaitingForStepToFinishPerformingCompletionActionStandaloneTsxMsxAppendToLogFileAppendToJobHistoryLogToTableWithOverwriteAppendToTableLogAppendAllCmdExecOutputToJobHistoryProvideStopProcessEventLocalMultiServerNotifyEmailPagerNetSendNotifyAllTimeCriticalQuitWithSuccessQuitWithFailureGoToNextStepGoToStepSuspectedOfflineBlockedSundayMondayTuesdayWednesdayThursdayFridaySaturdayEveryDayWeekEndsCriticalHealthyNoPolicySystem.XmlXmlTextReaderm_readerm_aliasm_closedm_versionm_databaseEngineTypeget_Readerset_Readerget_Closedset_Closedget_DatabaseEngineTypeset_DatabaseEngineTypeget_Versionset_Versionget_Aliasset_AliasCloseSkipIsElementWithCheckVersionGetAliasStringGetFieldsGetTextOfElementReaderClosedVersionAliasNextSystem.IOStreamm_fsLoadFileReadUnionget_Settingsget_PropertiesSettingsPropertiesget_Propertyget_IncludeIncludeget_Fileget_TableAliasget_RequestedFieldsget_ROAfterCreationTableAliasRequestedFieldsROAfterCreationget_Nameget_ReadOnlyget_ClrTypeget_ExtendedTypeget_DbTypeget_Expensiveget_ReadOnlyAfterCreationget_KeyIndexPropertyModeget_PropertyModeget_Castget_Hiddenget_Usageget_Valueget_Tableget_Linkget_Sizeget_HasPropertyLinkget_MultipleLinkClrTypeExtendedTypeDbTypeExpensiveReadOnlyAfterCreationKeyIndexCastHiddenUsageLinkSizeHasPropertyLinkMultipleLinkget_MainTableget_AdditionalFilterget_FailConditionget_PropertyLinkget_Prefixget_Postfixget_PostProcessMainTableAdditionalFilterFailConditionPropertyLinkPrefixPostfixget_SimpleParentLinkSimpleParentLinkget_FieldFieldget_Localget_ParentParentget_Noget_Expressionget_LinkFieldsNoExpressionLinkFieldsComputedFilterget_Typeget_DefaultValueTypeDefaultValueget_Fieldsget_InnerJoinget_ExpressionIsForTableNameget_LeftJoinget_FilterFieldsInnerJoinExpressionIsForTableNameLeftJoinget_Sqlget_ClassNameget_TriggeredFieldsClassNameTriggeredFieldsget_RedirectFieldsRedirectFieldsget_Databaseget_QueryQueryDbTypeToClrTypeDataSetTransformToRequestEscapeStringMakeSqlStringLoadAssemblyCreateObjectInstanceUnEscapeStringSplitNamesEscapeLikePatternm_usedm_LinkMultiplem_colsSetFieldsget_IsUsedIsHitTestHitIsDefaultget_AcceptsMultipleHitsget_UsedMarkHitClearHitget_LinkMultipleset_LinkMultipleAddLinkMultipleAddHitIsUsedAcceptsMultipleHitsUsedget_CountAddAddHitsAddDefaultGetEnumeratorCountbaseEnumeratorSystem.Collections.IEnumerator.get_Currentget_CurrentMoveNextResetSystem.Collections.IEnumerator.Currentm_tablem_filterm_bExpressionIsForTableNamem_joinTypeAddAllset_TableGetTableNameWithAliasGetFilterClassicInnerm_valuem_dbTypem_sizem_Aliasm_SessionValuem_bCastset_ValueGetValueGetTypeWithSizeGetValueWithCastInitSessionValueget_SessionValueset_SessionValueget_DBTypeSessionValueDBTypem_sqlGetLocalSqlInitm_listLinkFieldm_PrefixPostfixFieldsm_bResolveDatabasesSetLinkFieldsset_ResolveDatabasesget_ResolveDatabasesget_PrefixPostfixFieldsset_PrefixPostfixFieldsMergeLinkFiledsResolveDatabasesPrefixPostfixFieldsm_databasesm_SchemaPrefixesm_NamePropertiesm_SchemaPrefixPropertiesm_LastDbLevelSetm_PostProcessFieldsdbTypeget_PostProcessFieldsget_NamePropertiesset_NamePropertiesget_SchemaPrefixPropertiesset_SchemaPrefixPropertiesget_LastDbLevelSetset_LastDbLevelSetget_Levelget_Databasesset_Databasesget_SchemaPrefixesset_SchemaPrefixesDataRowGetSqlGetUseSubstituteSchemaPrefixget_MultipleDatabasesIsDatabaseListEqualBuildSqlGetSingleDatabaseSqlPostProcessFieldsNamePropertiesSchemaPrefixPropertiesLastDbLevelSetLevelDatabasesSchemaPrefixesMultipleDatabasesm_fieldm_typeset_Typeset_Fieldm_nom_expressionm_listLinkget_HasLinkFieldsset_NoGetSqlExpressionSetSqlExpressionHasLinkFieldsm_classNamem_assemblym_triggeredFieldsm_HitFieldsGetPostProcessInstanceRegisterm_cim_objectNamem_reqbLookUpOrdinalDonem_triggeredColumnsIdLookupget_ConnectionInfoset_ConnectionInfoget_HitFieldsset_HitFieldsGetIsFieldHitset_ObjectNameget_Requestset_RequestIsLookupInitget_SupportDataReaderCheckDataReaderSupportInitNameBasedLookupUpdateFromNameBasedToOrdinalLookupDataRowCollectionBinarySearchBinarySearchSetOnFirstIsNullGetTriggeredObjectGetTriggeredInt32GetTriggeredBoolGetTriggeredStringGetColumnDataCleanRowDataConnectionInfoHitFieldsSupportDataReaderm_textm_btextSetm_dtTextGetTextForAllRowsGetTextForObjectget_IsTextSetSetTextGetTextFor90IsTextSetm_idxm_idxEndget_IdxStartget_IdxEndget_HasParantesisget_TableVariableNameIdxStartIdxEndHasParantesisTableVariableNamesSingleLineCommentSqlsSingleLineCommentCsNestedMultiLineCommentsNestedMultiLineCommentOptimizedsSingleQuotedStringSqlsDoubleQuotedStringsBraketedWordsWordsNumbersHexNumbersParamValueQIsParamValuesCommasParanthesissEqsDelimsParamsGrammarQIsGrammarm_textListSystem.Text.RegularExpressionsRegexm_rsRegexQIsRegexParseParamsGetTextIsProcessedGetParamGetDateTimeGetSmoCodeFromSqlCodeYukonGetSmoCodeFromSqlCodeShilohGetSmoCodeFromSqlCodeShilohToYukonPermissionGetDatabaseLevelGetUrnm_listNamescalledUseDBisInitDataRowcontigDataInitRowDatadtm_bytesPerPagem_querydefaultdataPathm_rowResultsnoaccessget_BytesPerPageget_DefaultDataPathGetRowResultsBuildCommonSqlBuildSqlStatementMoreEqual90BuildSqlStatementLess90AddDbChainingGetPathBytesPerPageDefaultDataPathm_rowAutoCloseDataCalculateAutoCloseMissingPropsmaximumFileSizeInAcceptedRangemaximumFileSizeUnitGetMaximumFileSizeGetMaximumFileSizeUnitGetMaximumFileSizeInMegaBytesGetMaxFileSizeValueInAcceptedRangeAndUnitConvertFileSizeToAcceptedFormat1uSidfirstTimestrExecuteQueryusedSpaceavailableSpacem_typeNamem_typeNom_pathset_Nameget_Pathset_Pathm_idget_idset_idget_typeset_typeidtypem_typeConvertTableserverNamedbNameschemaNamenameStringComparersvrComparerdbComparerget_ServerNameset_ServerNameget_DatabaseNameset_DatabaseNameget_SchemaNameset_SchemaNameget_Idset_IdServerNameDatabaseNameSchemaNameIdm_serverm_databasem_tempDependenciessqlEnumDependenciesSingletonm_targetVersionisCloudget_IsDbCloudset_IsDbCloudget_TypeConvertTableTypeToNoDependencyChainCollectionDependencyRequestEnumDependenciesGetStringCultureFindByNoBuildIDKeyBuildKeyDumpRowResolveDeferredLinksGetUrnByQueryBuildUrnGetUseStringIsDbCloudTypeConvertTablem_FieldsCompareOptionsGetCompareOptionsFromCollationm_execSqlm_dataReadernonTriggeredPropertiesCountrowDatarowDataManipulationm_bHasTypeCastm_bHasPostProcessm_RetriveModem_nCurentCachePosm_commandSetConnectionAndQueryInitRowDataManipulationInitSchemaTableGetTrigeredValueGetDataFromStorageSetDataInStorageReadInternalManipulateRowDataPostProcessManipulateRowDataTypeManipulateRowDataget_Depthget_IsClosedget_RecordsAffectedGetSchemaTableNextResultReadGetTableget_TableRowCountget_FieldCountAdjustIndexGetBooleanGetByteGetBytesGetCharGetCharsGetDataTypeNameDateTimeDecimalGetDecimalGetDoubleGetFieldTypeGetFloatGuidGetGuidGetInt16GetInt32GetInt64GetNameGetOrdinalGetStringGetValuesIsDBNullDepthIsClosedRecordsAffectedTableRowCountFieldCountRetriveDataReaderRetriveDataTabletargetTypesourceTypepostProcessscriptForCreateindexCreateindexNameStartindexNameEndobjectTypeschemadatabaseprocedureNumberindexNameStartSecondaryindexNameEndSecondaryschemaSecondarynameSecondarydatabaseSecondaryhasParanthesisreturnTableVariableNameregexm_r_endsProcNumbersSingleQuotedStringsDotsPharanthesissExecsReturnssReturnsTablesReturnsDelim1sDelim2ddlTextParserSingletonMatchReadNameFromDdlReadFullNameFromDdlCheckDdlHeaderParseDdlHeadersNestedMultiLineCommentOptimized_endsSpace_endsWord_endsEol_endsSingleLineComment_endsReject_endParseCheckOptionAlterAlterAnyAsymmetricKeyAlterAnyApplicationRoleAlterAnyAssemblyAlterAnyCertificateAlterAnyDatabaseAuditAlterAnyDataspaceAlterAnyDatabaseEventNotificationAlterAnyFulltextCatalogAlterAnyMessageTypeAlterAnyRoleAlterAnyRouteAlterAnyRemoteServiceBindingAlterAnyContractAlterAnySymmetricKeyAlterAnySchemaAlterAnyServiceAlterAnyDatabaseDdlTriggerAlterAnyUserAuthenticateBackupDatabaseBackupLogControlConnectReplicationCreateAggregateCreateAsymmetricKeyCreateAssemblyCreateCertificateCreateDatabaseCreateDefaultCreateDatabaseDdlEventNotificationCreateFunctionCreateFulltextCatalogCreateMessageTypeCreateProcedureCreateQueueCreateRoleCreateRouteCreateRuleCreateRemoteServiceBindingCreateContractCreateSymmetricKeyCreateSchemaCreateSynonymCreateServiceCreateTableCreateTypeCreateViewCreateXmlSchemaCollectionShowplanSubscribeQueryNotificationsTakeOwnershipViewDefinitionViewDatabaseStateImpersonateSendViewChangeTrackingCreateSequenceAdministerBulkOperationsAlterAnyCredentialAlterAnyConnectionAlterAnyDatabaseAlterAnyEventNotificationAlterAnyEndpointAlterAnyLoginAlterAnyLinkedServerAlterResourcesAlterServerStateAlterSettingsAlterTraceAuthenticateServerControlServerConnectSqlCreateAnyDatabaseCreateDdlEventNotificationCreateEndpointCreateTraceEventNotificationViewAnyDefinitionViewAnyDatabaseViewServerStateExternalAccessAssemblyUnsafeAssemblyAlterAnyServerAuditAlterAnyServerRoleCreateServerRoleAlterAnyAvailabilityGroupCreateAvailabilityGroupAlterAnyEventSessionToDatabasePermissionSetValueEnumToObjectPermissionSetValueEnumToServerPermissionSetValueEnumm_listObjectsProcessStatementBuilderBitArraym_storageget_Storageset_Storageget_NumberOfElementsSetBitAtGetBitAtSetValueFitsMaskHasCommonBitsStorageNumberOfElementsm_dtEventsGetEventsForAllRowsGetTriggerEventsDatabaseDdlTriggerEventOffsetFromEventStringServerDdlTriggerEventOffsetFromEventStringConvertToValidVersionget_DisplayNameDisplayNameITypeDescriptorContextCanConvertFromLocalizedStringToEnumValueConvertFromEnumValueToLocStringConvertToget_Cultureset_Cultureget_IncorectVersionTagget_NullVersionOnLoadingCfgFileget_EnumObjectTagNotFoundget_InvalidConnectionTypeget_OnlyPathOrFullNameget_DatabaseNameMustBeSpecifiedget_UnknownOperatorget_TooManyDbLevelsget_InvalidConfigurationFileget_NotDbObjectget_NotSingleDbget_NoClassNamePostProcessget_SqlServer90Nameget_SqlServer80Nameget_SmoSQLCLRUnAvailableget_Executingget_WaitingForWorkerThreadget_BetweenRetriesget_Idleget_Suspendedget_WaitingForStepToFinishget_PerformingCompletionActionget_Unknownget_ctNoneget_ctPartialget_rmFullget_rmBulkLoggedget_rmSimpleget_msNoneget_msSuspendedget_msDisconnectedget_msSynchronizingget_msPendingFailoverget_msSynchronizedget_agshNoneSynchronizingget_agshPartiallySynchronizingget_agshAllSynchronizingget_agshAllSynchronizedget_arosPendingFailoverget_arosPendingget_arosOnlineget_arosOfflineget_arosFailedget_arosFailedNoQuorumget_arrhInProgressget_arrhOnlineget_arshNotSynchronizingget_arshSynchronizingget_arshSynchronizedget_arrUninitializedget_arrResolvingget_arrSecondaryget_arrPrimaryget_arcsDisconnectedget_arcsConnectedget_hmsPendingCommunicationget_hmsRunningget_hmsFailedget_cqtNodeMajorityget_cqtNodeAndDiskMajorityget_cqtNodeAndFileshareMajorityget_cqtDiskOnlyget_cqtNotApplicableget_cqsUnknownQuorumStateget_cqsNormalQuorumget_cqsForcedQuorumget_cqsNotApplicableget_cmtNodeget_cmtDiskWitnessget_cmtFileshareWitnessget_cmsOfflineget_cmsPartiallyOnlineget_cmsOnlineget_cmsUnknownget_replicaReadModeNoConnectionsget_replicaReadModeReadIntentConnectionsOnlyget_replicaReadModeAllConnectionsget_cmprReadWriteConnectionsget_cmprAllConnectionsget_cmsrNoConnectionsget_cmsrReadIntentConnectionsOnlyget_cmsrAllConnectionsget_aramSynchronousCommitget_aramAsynchronousCommitget_arfmAutomaticget_arfmManualget_arjsNotJoinedget_arjsJoinedStandaloneInstanceget_arjsJoinedFailoverClusterInstanceget_adssNotSynchronizingget_adssSynchronizingget_adssSynchronizedget_adssRevertingget_adssInitializingget_drsrSuspendFromUserget_drsrSuspendFromPartnerget_drsrSuspendFromRedoget_drsrSuspendFromApplyget_drsrSuspendFromCaptureget_drsrSuspendFromRestartget_drsrSuspendFromUndoget_drsrNotApplicableget_agabpPrimaryget_agabpSecondaryOnlyget_agabpSecondaryget_agabpNoneget_agfcOnServerDownget_agfcOnServerUnresponsiveget_agfcOnCriticalServerErrorsget_agfcOnModerateServerErrorsget_agfcOnAnyQualifiedFailureConditionget_aglipOfflineget_aglipOnlineget_aglipOnlinePendingget_agliFailureget_agliUnknownFailedToLoadResFileUnsupportedTypeDepDiscoveryQueryNotSupportedPostProcessFailedToLoadAssemblyFailedToCreateUrnPropMustBeSpecifiedInvalidUrnForDependsCouldNotInstantiateObjNotDerivedFromUnknownTypeMissingSectionInvalidVersionInvalidSqlServerDatabaseNameMustBeSpecifiedinTheUrnCouldNotGetInfoFromDependencyRowCultureIncorectVersionTagNullVersionOnLoadingCfgFileEnumObjectTagNotFoundInvalidConnectionTypeOnlyPathOrFullNameDatabaseNameMustBeSpecifiedUnknownOperatorTooManyDbLevelsInvalidConfigurationFileNotDbObjectNotSingleDbNoClassNamePostProcessSqlServer90NameSqlServer80NameSmoSQLCLRUnAvailablectNonectPartialrmFullrmBulkLoggedrmSimplemsNonemsSuspendedmsDisconnectedmsSynchronizingmsPendingFailovermsSynchronizedagshNoneSynchronizingagshPartiallySynchronizingagshAllSynchronizingagshAllSynchronizedarosPendingFailoverarosPendingarosOnlinearosOfflinearosFailedarosFailedNoQuorumarrhInProgressarrhOnlinearshNotSynchronizingarshSynchronizingarshSynchronizedarrUninitializedarrResolvingarrSecondaryarrPrimaryarcsDisconnectedarcsConnectedhmsPendingCommunicationhmsRunninghmsFailedcqtNodeMajoritycqtNodeAndDiskMajoritycqtNodeAndFileshareMajoritycqtDiskOnlycqtNotApplicablecqsUnknownQuorumStatecqsNormalQuorumcqsForcedQuorumcqsNotApplicablecmtNodecmtDiskWitnesscmtFileshareWitnesscmsOfflinecmsPartiallyOnlinecmsOnlinecmsUnknownreplicaReadModeNoConnectionsreplicaReadModeReadIntentConnectionsOnlyreplicaReadModeAllConnectionscmprReadWriteConnectionscmprAllConnectionscmsrNoConnectionscmsrReadIntentConnectionsOnlycmsrAllConnectionsaramSynchronousCommitaramAsynchronousCommitarfmAutomaticarfmManualarjsNotJoinedarjsJoinedStandaloneInstancearjsJoinedFailoverClusterInstanceadssNotSynchronizingadssSynchronizingadssSynchronizedadssRevertingadssInitializingdrsrSuspendFromUserdrsrSuspendFromPartnerdrsrSuspendFromRedodrsrSuspendFromApplydrsrSuspendFromCapturedrsrSuspendFromRestartdrsrSuspendFromUndodrsrNotApplicableagabpPrimaryagabpSecondaryOnlyagabpSecondaryagabpNoneagfcOnServerDownagfcOnServerUnresponsiveagfcOnCriticalServerErrorsagfcOnModerateServerErrorsagfcOnAnyQualifiedFailureConditionaglipOfflineaglipOnlineaglipOnlinePendingagliFailureagliUnknownSystem.ResourcesResourceManagerresourceManager_cultureAddRoleMemberAddServerRoleMemberAddSignatureAddSignatureSchemaObjectAlterApplicationRoleAlterAssemblyAlterAsymmetricKeyAlterAuthorizationDatabaseAlterAuthorizationServerAlterAvailabilityGroupAlterBrokerPriorityAlterCertificateAlterCredentialAlterCryptographicProviderAlterDatabaseAlterDatabaseAuditSpecificationAlterDatabaseEncryptionKeyAlterEndpointAlterEventSessionAlterExtendedPropertyAlterFulltextCatalogAlterFulltextIndexAlterFulltextStoplistAlterFunctionAlterIndexAlterInstanceAlterLinkedServerAlterLoginAlterMasterKeyAlterMessageAlterMessageTypeAlterPartitionFunctionAlterPartitionSchemeAlterPlanGuideAlterProcedureAlterQueueAlterRemoteServerAlterRemoteServiceBindingAlterResourceGovernorConfigAlterResourcePoolAlterRoleAlterRouteAlterSchemaAlterSearchPropertyListAlterSequenceAlterServerAuditAlterServerAuditSpecificationAlterServerRoleAlterServiceAlterServiceMasterKeyAlterSymmetricKeyAlterTableAlterTriggerAlterUserAlterViewAlterWorkloadGroupAlterXmlSchemaCollectionBindDefaultBindRuleCreateApplicationRoleCreateBrokerPriorityCreateCredentialCreateCryptographicProviderCreateDatabaseAuditSpecificationCreateDatabaseEncryptionKeyCreateEventNotificationCreateEventSessionCreateExtendedProcedureCreateExtendedPropertyCreateFulltextIndexCreateFulltextStoplistCreateIndexCreateLinkedServerCreateLinkedServerLoginCreateLoginCreateMasterKeyCreateMessageCreatePartitionFunctionCreatePartitionSchemeCreatePlanGuideCreateRemoteServerCreateResourcePoolCreateSearchPropertyListCreateServerAuditCreateServerAuditSpecificationCreateSpatialIndexCreateStatisticsCreateTriggerCreateUserCreateWorkloadGroupCreateXmlIndexDenyDatabaseDenyServerDropApplicationRoleDropAssemblyDropAsymmetricKeyDropAvailabilityGroupDropBrokerPriorityDropCertificateDropContractDropCredentialDropCryptographicProviderDropDatabaseDropDatabaseAuditSpecificationDropDatabaseEncryptionKeyDropDefaultDropEndpointDropEventNotificationDropEventSessionDropExtendedProcedureDropExtendedPropertyDropFulltextCatalogDropFulltextIndexDropFulltextStoplistDropFunctionDropIndexDropLinkedServerDropLinkedServerLoginDropLoginDropMasterKeyDropMessageDropMessageTypeDropPartitionFunctionDropPartitionSchemeDropPlanGuideDropProcedureDropQueueDropRemoteServerDropRemoteServiceBindingDropResourcePoolDropRoleDropRoleMemberDropRouteDropRuleDropSchemaDropSearchPropertyListDropSequenceDropServerAuditDropServerAuditSpecificationDropServerRoleDropServerRoleMemberDropServiceDropSignatureDropSignatureSchemaObjectDropStatisticsDropSymmetricKeyDropSynonymDropTableDropTriggerDropTypeDropUserDropViewDropWorkloadGroupDropXmlSchemaCollectionGrantDatabaseGrantServerLogonRenameRevokeDatabaseRevokeServerUnbindDefaultUnbindRuleUpdateStatisticsop_BitwiseOrBitwiseOrget_AddRoleMemberget_AddServerRoleMemberget_AddSignatureget_AddSignatureSchemaObjectget_AlterApplicationRoleget_AlterAssemblyget_AlterAsymmetricKeyget_AlterAuthorizationDatabaseget_AlterAuthorizationServerget_AlterAvailabilityGroupget_AlterBrokerPriorityget_AlterCertificateget_AlterCredentialget_AlterCryptographicProviderget_AlterDatabaseget_AlterDatabaseAuditSpecificationget_AlterDatabaseEncryptionKeyget_AlterEndpointget_AlterEventSessionget_AlterExtendedPropertyget_AlterFulltextCatalogget_AlterFulltextIndexget_AlterFulltextStoplistget_AlterFunctionget_AlterIndexget_AlterInstanceget_AlterLinkedServerget_AlterLoginget_AlterMasterKeyget_AlterMessageget_AlterMessageTypeget_AlterPartitionFunctionget_AlterPartitionSchemeget_AlterPlanGuideget_AlterProcedureget_AlterQueueget_AlterRemoteServerget_AlterRemoteServiceBindingget_AlterResourceGovernorConfigget_AlterResourcePoolget_AlterRoleget_AlterRouteget_AlterSchemaget_AlterSearchPropertyListget_AlterSequenceget_AlterServerAuditget_AlterServerAuditSpecificationget_AlterServerRoleget_AlterServiceget_AlterServiceMasterKeyget_AlterSymmetricKeyget_AlterTableget_AlterTriggerget_AlterUserget_AlterViewget_AlterWorkloadGroupget_AlterXmlSchemaCollectionget_BindDefaultget_BindRuleget_CreateApplicationRoleget_CreateAssemblyget_CreateAsymmetricKeyget_CreateAvailabilityGroupget_CreateBrokerPriorityget_CreateCertificateget_CreateContractget_CreateCredentialget_CreateCryptographicProviderget_CreateDatabaseget_CreateDatabaseAuditSpecificationget_CreateDatabaseEncryptionKeyget_CreateDefaultget_CreateEndpointget_CreateEventNotificationget_CreateEventSessionget_CreateExtendedProcedureget_CreateExtendedPropertyget_CreateFulltextCatalogget_CreateFulltextIndexget_CreateFulltextStoplistget_CreateFunctionget_CreateIndexget_CreateLinkedServerget_CreateLinkedServerLoginget_CreateLoginget_CreateMasterKeyget_CreateMessageget_CreateMessageTypeget_CreatePartitionFunctionget_CreatePartitionSchemeget_CreatePlanGuideget_CreateProcedureget_CreateQueueget_CreateRemoteServerget_CreateRemoteServiceBindingget_CreateResourcePoolget_CreateRoleget_CreateRouteget_CreateRuleget_CreateSchemaget_CreateSearchPropertyListget_CreateSequenceget_CreateServerAuditget_CreateServerAuditSpecificationget_CreateServerRoleget_CreateServiceget_CreateSpatialIndexget_CreateStatisticsget_CreateSymmetricKeyget_CreateSynonymget_CreateTableget_CreateTriggerget_CreateTypeget_CreateUserget_CreateViewget_CreateWorkloadGroupget_CreateXmlIndexget_CreateXmlSchemaCollectionget_DenyDatabaseget_DenyServerget_DropApplicationRoleget_DropAssemblyget_DropAsymmetricKeyget_DropAvailabilityGroupget_DropBrokerPriorityget_DropCertificateget_DropContractget_DropCredentialget_DropCryptographicProviderget_DropDatabaseget_DropDatabaseAuditSpecificationget_DropDatabaseEncryptionKeyget_DropDefaultget_DropEndpointget_DropEventNotificationget_DropEventSessionget_DropExtendedProcedureget_DropExtendedPropertyget_DropFulltextCatalogget_DropFulltextIndexget_DropFulltextStoplistget_DropFunctionget_DropIndexget_DropLinkedServerget_DropLinkedServerLoginget_DropLoginget_DropMasterKeyget_DropMessageget_DropMessageTypeget_DropPartitionFunctionget_DropPartitionSchemeget_DropPlanGuideget_DropProcedureget_DropQueueget_DropRemoteServerget_DropRemoteServiceBindingget_DropResourcePoolget_DropRoleget_DropRoleMemberget_DropRouteget_DropRuleget_DropSchemaget_DropSearchPropertyListget_DropSequenceget_DropServerAuditget_DropServerAuditSpecificationget_DropServerRoleget_DropServerRoleMemberget_DropServiceget_DropSignatureget_DropSignatureSchemaObjectget_DropStatisticsget_DropSymmetricKeyget_DropSynonymget_DropTableget_DropTriggerget_DropTypeget_DropUserget_DropViewget_DropWorkloadGroupget_DropXmlSchemaCollectionget_GrantDatabaseget_GrantServerget_Logonget_Renameget_RevokeDatabaseget_RevokeServerget_UnbindDefaultget_UnbindRuleget_UpdateStatisticsSetBitResetBitop_SubtractionSubtractdirtyget_Dirtyset_Dirtyset_AddRoleMemberset_AddServerRoleMemberset_AddSignatureset_AddSignatureSchemaObjectset_AlterApplicationRoleset_AlterAssemblyset_AlterAsymmetricKeyset_AlterAuthorizationDatabaseset_AlterAuthorizationServerset_AlterAvailabilityGroupset_AlterBrokerPriorityset_AlterCertificateset_AlterCredentialset_AlterCryptographicProviderset_AlterDatabaseset_AlterDatabaseAuditSpecificationset_AlterDatabaseEncryptionKeyset_AlterEndpointset_AlterEventSessionset_AlterExtendedPropertyset_AlterFulltextCatalogset_AlterFulltextIndexset_AlterFulltextStoplistset_AlterFunctionset_AlterIndexset_AlterInstanceset_AlterLinkedServerset_AlterLoginset_AlterMasterKeyset_AlterMessageset_AlterMessageTypeset_AlterPartitionFunctionset_AlterPartitionSchemeset_AlterPlanGuideset_AlterProcedureset_AlterQueueset_AlterRemoteServerset_AlterRemoteServiceBindingset_AlterResourceGovernorConfigset_AlterResourcePoolset_AlterRoleset_AlterRouteset_AlterSchemaset_AlterSearchPropertyListset_AlterSequenceset_AlterServerAuditset_AlterServerAuditSpecificationset_AlterServerRoleset_AlterServiceset_AlterServiceMasterKeyset_AlterSymmetricKeyset_AlterTableset_AlterTriggerset_AlterUserset_AlterViewset_AlterWorkloadGroupset_AlterXmlSchemaCollectionset_BindDefaultset_BindRuleset_CreateApplicationRoleset_CreateAssemblyset_CreateAsymmetricKeyset_CreateAvailabilityGroupset_CreateBrokerPriorityset_CreateCertificateset_CreateContractset_CreateCredentialset_CreateCryptographicProviderset_CreateDatabaseset_CreateDatabaseAuditSpecificationset_CreateDatabaseEncryptionKeyset_CreateDefaultset_CreateEndpointset_CreateEventNotificationset_CreateEventSessionset_CreateExtendedProcedureset_CreateExtendedPropertyset_CreateFulltextCatalogset_CreateFulltextIndexset_CreateFulltextStoplistset_CreateFunctionset_CreateIndexset_CreateLinkedServerset_CreateLinkedServerLoginset_CreateLoginset_CreateMasterKeyset_CreateMessageset_CreateMessageTypeset_CreatePartitionFunctionset_CreatePartitionSchemeset_CreatePlanGuideset_CreateProcedureset_CreateQueueset_CreateRemoteServerset_CreateRemoteServiceBindingset_CreateResourcePoolset_CreateRoleset_CreateRouteset_CreateRuleset_CreateSchemaset_CreateSearchPropertyListset_CreateSequenceset_CreateServerAuditset_CreateServerAuditSpecificationset_CreateServerRoleset_CreateServiceset_CreateSpatialIndexset_CreateStatisticsset_CreateSymmetricKeyset_CreateSynonymset_CreateTableset_CreateTriggerset_CreateTypeset_CreateUserset_CreateViewset_CreateWorkloadGroupset_CreateXmlIndexset_CreateXmlSchemaCollectionset_DenyDatabaseset_DenyServerset_DropApplicationRoleset_DropAssemblyset_DropAsymmetricKeyset_DropAvailabilityGroupset_DropBrokerPriorityset_DropCertificateset_DropContractset_DropCredentialset_DropCryptographicProviderset_DropDatabaseset_DropDatabaseAuditSpecificationset_DropDatabaseEncryptionKeyset_DropDefaultset_DropEndpointset_DropEventNotificationset_DropEventSessionset_DropExtendedProcedureset_DropExtendedPropertyset_DropFulltextCatalogset_DropFulltextIndexset_DropFulltextStoplistset_DropFunctionset_DropIndexset_DropLinkedServerset_DropLinkedServerLoginset_DropLoginset_DropMasterKeyset_DropMessageset_DropMessageTypeset_DropPartitionFunctionset_DropPartitionSchemeset_DropPlanGuideset_DropProcedureset_DropQueueset_DropRemoteServerset_DropRemoteServiceBindingset_DropResourcePoolset_DropRoleset_DropRoleMemberset_DropRouteset_DropRuleset_DropSchemaset_DropSearchPropertyListset_DropSequenceset_DropServerAuditset_DropServerAuditSpecificationset_DropServerRoleset_DropServerRoleMemberset_DropServiceset_DropSignatureset_DropSignatureSchemaObjectset_DropStatisticsset_DropSymmetricKeyset_DropSynonymset_DropTableset_DropTriggerset_DropTypeset_DropUserset_DropViewset_DropWorkloadGroupset_DropXmlSchemaCollectionset_GrantDatabaseset_GrantServerset_Logonset_Renameset_RevokeDatabaseset_RevokeServerset_UnbindDefaultset_UnbindRuleset_UpdateStatisticsddlauthorizationservereventseventsget_DdlAuthorizationServerEventsEventsset_DdlAuthorizationServerEventsEventsddlavailabilitygroupeventseventsget_DdlAvailabilityGroupEventsEventsset_DdlAvailabilityGroupEventsEventsddlcredentialeventseventsget_DdlCredentialEventsEventsset_DdlCredentialEventsEventsddlcryptographicprovidereventseventsget_DdlCryptographicProviderEventsEventsset_DdlCryptographicProviderEventsEventsddldatabaseeventseventsget_DdlDatabaseEventsEventsset_DdlDatabaseEventsEventsddlendpointeventseventsget_DdlEndpointEventsEventsset_DdlEndpointEventsEventsddleventsessioneventseventsget_DdlEventSessionEventsEventsset_DdlEventSessionEventsEventsddlextendedprocedureeventseventsget_DdlExtendedProcedureEventsEventsset_DdlExtendedProcedureEventsEventsddlgdrservereventseventsget_DdlGdrServerEventsEventsset_DdlGdrServerEventsEventsddllinkedservereventseventsget_DdlLinkedServerEventsEventsset_DdlLinkedServerEventsEventsddllinkedserverlogineventseventsget_DdlLinkedServerLoginEventsEventsset_DdlLinkedServerLoginEventsEventsddllogineventseventsget_DdlLoginEventsEventsset_DdlLoginEventsEventsddlmessageeventseventsget_DdlMessageEventsEventsset_DdlMessageEventsEventsddlremoteservereventseventsget_DdlRemoteServerEventsEventsset_DdlRemoteServerEventsEventsddlresourcegovernoreventseventsget_DdlResourceGovernorEventsEventsset_DdlResourceGovernorEventsEventsddlworkloadgroupeventsget_DdlWorkloadGroupEventsset_DdlWorkloadGroupEventsddlresourcepooleventsget_DdlResourcePoolEventsset_DdlResourcePoolEventsddlserverauditeventseventsget_DdlServerAuditEventsEventsset_DdlServerAuditEventsEventsddlserverauditspecificationeventseventsget_DdlServerAuditSpecificationEventsEventsset_DdlServerAuditSpecificationEventsEventsddlserverleveleventseventsget_DdlServerLevelEventsEventsset_DdlServerLevelEventsEventsddlserversecurityeventseventsget_DdlServerSecurityEventsEventsset_DdlServerSecurityEventsEventsddlservicemasterkeyeventseventsget_DdlServiceMasterKeyEventsEventsset_DdlServiceMasterKeyEventsEventsDirtyDdlAuthorizationServerEventsEventsDdlAvailabilityGroupEventsEventsDdlCredentialEventsEventsDdlCryptographicProviderEventsEventsDdlDatabaseEventsEventsDdlEndpointEventsEventsDdlEventSessionEventsEventsDdlExtendedProcedureEventsEventsDdlGdrServerEventsEventsDdlLinkedServerEventsEventsDdlLinkedServerLoginEventsEventsDdlLoginEventsEventsDdlMessageEventsEventsDdlRemoteServerEventsEventsDdlResourceGovernorEventsEventsDdlWorkloadGroupEventsDdlResourcePoolEventsDdlServerAuditEventsEventsDdlServerAuditSpecificationEventsEventsDdlServerLevelEventsEventsDdlServerSecurityEventsEventsDdlServiceMasterKeyEventsEventsddlapplicationroleeventseventsget_DdlApplicationRoleEventsEventsset_DdlApplicationRoleEventsEventsddlassemblyeventseventsget_DdlAssemblyEventsEventsset_DdlAssemblyEventsEventsddlasymmetrickeyeventseventsget_DdlAsymmetricKeyEventsEventsset_DdlAsymmetricKeyEventsEventsddlauthorizationdatabaseeventseventsget_DdlAuthorizationDatabaseEventsEventsset_DdlAuthorizationDatabaseEventsEventsddlremoteservicebindingeventseventsget_DdlRemoteServiceBindingEventsEventsset_DdlRemoteServiceBindingEventsEventsddlcertificateeventseventsget_DdlCertificateEventsEventsset_DdlCertificateEventsEventsddlcontracteventseventsget_DdlContractEventsEventsset_DdlContractEventsEventsddlcryptosignatureeventseventsget_DdlCryptoSignatureEventsEventsset_DdlCryptoSignatureEventsEventsddldatabaseleveleventseventsget_DdlDatabaseLevelEventsEventsset_DdlDatabaseLevelEventsEventsddldatabaseauditspecificationeventseventsget_DdlDatabaseAuditSpecificationEventsEventsset_DdlDatabaseAuditSpecificationEventsEventsddlmasterkeyeventseventsget_DdlMasterKeyEventsEventsset_DdlMasterKeyEventsEventsddldatabasesecurityeventseventsget_DdlDatabaseSecurityEventsEventsset_DdlDatabaseSecurityEventsEventsddldefaulteventseventsget_DdlDefaultEventsEventsset_DdlDefaultEventsEventsddldatabaseencryptionkeyeventseventsget_DdlDatabaseEncryptionKeyEventsEventsset_DdlDatabaseEncryptionKeyEventsEventsddleventnotificationeventseventsget_DdlEventNotificationEventsEventsset_DdlEventNotificationEventsEventsddlextendedpropertyeventseventsget_DdlExtendedPropertyEventsEventsset_DdlExtendedPropertyEventsEventsddlfulltextcatalogeventseventsget_DdlFulltextCatalogEventsEventsset_DdlFulltextCatalogEventsEventsddlfulltextstoplisteventseventsget_DdlFulltextStoplistEventsEventsset_DdlFulltextStoplistEventsEventsddlfunctioneventseventsget_DdlFunctionEventsEventsset_DdlFunctionEventsEventsddlgdrdatabaseeventseventsget_DdlGdrDatabaseEventsEventsset_DdlGdrDatabaseEventsEventsddlindexeventseventsget_DdlIndexEventsEventsset_DdlIndexEventsEventsddlmessagetypeeventseventsget_DdlMessageTypeEventsEventsset_DdlMessageTypeEventsEventsddlsymmetrickeyeventseventsget_DdlSymmetricKeyEventsEventsset_DdlSymmetricKeyEventsEventsddlpartitioneventseventsget_DdlPartitionEventsEventsset_DdlPartitionEventsEventsddlplanguideeventseventsget_DdlPlanGuideEventsEventsset_DdlPlanGuideEventsEventsddlbrokerpriorityeventseventsget_DdlBrokerPriorityEventsEventsset_DdlBrokerPriorityEventsEventsddlsearchpropertylisteventseventsget_DdlSearchPropertyListEventsEventsset_DdlSearchPropertyListEventsEventsddlpartitionfunctioneventseventsget_DdlPartitionFunctionEventsEventsset_DdlPartitionFunctionEventsEventsddlpartitionschemeeventseventsget_DdlPartitionSchemeEventsEventsset_DdlPartitionSchemeEventsEventsddlqueueeventseventsget_DdlQueueEventsEventsset_DdlQueueEventsEventsddlroleeventseventsget_DdlRoleEventsEventsset_DdlRoleEventsEventsddlrouteeventseventsget_DdlRouteEventsEventsset_DdlRouteEventsEventsddlruleeventseventsget_DdlRuleEventsEventsset_DdlRuleEventsEventsddlschemaeventseventsget_DdlSchemaEventsEventsset_DdlSchemaEventsEventsddlsequenceeventseventsget_DdlSequenceEventsEventsset_DdlSequenceEventsEventsddlserviceeventseventsget_DdlServiceEventsEventsset_DdlServiceEventsEventsddlssbeventseventsget_DdlSsbEventsEventsset_DdlSsbEventsEventsddlstatisticseventseventsget_DdlStatisticsEventsEventsset_DdlStatisticsEventsEventsddlprocedureeventseventsget_DdlProcedureEventsEventsset_DdlProcedureEventsEventsddlsynonymeventseventsget_DdlSynonymEventsEventsset_DdlSynonymEventsEventsddltableeventseventsget_DdlTableEventsEventsset_DdlTableEventsEventsddltablevieweventseventsget_DdlTableViewEventsEventsset_DdlTableViewEventsEventsddltriggereventseventsget_DdlTriggerEventsEventsset_DdlTriggerEventsEventsddltypeeventseventsget_DdlTypeEventsEventsset_DdlTypeEventsEventsddlusereventseventsget_DdlUserEventsEventsset_DdlUserEventsEventsddlvieweventseventsget_DdlViewEventsEventsset_DdlViewEventsEventsddlxmlschemacollectioneventseventsget_DdlXmlSchemaCollectionEventsEventsset_DdlXmlSchemaCollectionEventsEventsDdlApplicationRoleEventsEventsDdlAssemblyEventsEventsDdlAsymmetricKeyEventsEventsDdlAuthorizationDatabaseEventsEventsDdlRemoteServiceBindingEventsEventsDdlCertificateEventsEventsDdlContractEventsEventsDdlCryptoSignatureEventsEventsDdlDatabaseLevelEventsEventsDdlDatabaseAuditSpecificationEventsEventsDdlMasterKeyEventsEventsDdlDatabaseSecurityEventsEventsDdlDefaultEventsEventsDdlDatabaseEncryptionKeyEventsEventsDdlEventNotificationEventsEventsDdlExtendedPropertyEventsEventsDdlFulltextCatalogEventsEventsDdlFulltextStoplistEventsEventsDdlFunctionEventsEventsDdlGdrDatabaseEventsEventsDdlIndexEventsEventsDdlMessageTypeEventsEventsDdlSymmetricKeyEventsEventsDdlPartitionEventsEventsDdlPlanGuideEventsEventsDdlBrokerPriorityEventsEventsDdlSearchPropertyListEventsEventsDdlPartitionFunctionEventsEventsDdlPartitionSchemeEventsEventsDdlQueueEventsEventsDdlRoleEventsEventsDdlRouteEventsEventsDdlRuleEventsEventsDdlSchemaEventsEventsDdlSequenceEventsEventsDdlServiceEventsEventsDdlSsbEventsEventsDdlStatisticsEventsEventsDdlProcedureEventsEventsDdlSynonymEventsEventsDdlTableEventsEventsDdlTableViewEventsEventsDdlTriggerEventsEventsDdlTypeEventsEventsDdlUserEventsEventsDdlViewEventsEventsDdlXmlSchemaCollectionEventsEventssecureStringbstrindexstrAstrBignoreCasecomparisonTypecultureInfoindexAindexBobjotherargsParamArrayAttributevalueformatargumentsformatProviderstartIndexcountanyOfseparatortotalWidthpaddingCharoldCharnewCharoldValuenewValueoptionsculturearraytrimCharssqlSecureStringurnfieldusageproptriggeredoverrideFlagssrlftlinkFieldserParentqueryresultsqlresultresultTypesqlconnectionInfosbconstantValuelinkfieldsfieldNameerChildrenbAcrossDatabasesdirbHiddenFieldciblockfileverdatabaseEngineTypeassemblyObjectaliasrequestedFieldsstoreroAfterCreationxrdassemblyxriresserParentinit_dataconnsdelimStartdelimEnddelimElemsorderByValuesopbTriggeredtableNamesqlCreatebFirstbUseAliassOrderByconsenderecommandSystem.Runtime.InteropServicesOutAttributermxmlReaderversionserverAliaselemNamefieldsastrFilestrDBTypedsescapeCharacterassemblyNameescapedValuestartEscapeCharescapeCharpartSeperatorpatternxrmplienumeratorxrplxrpxrslistoisTriggeredxrcsxrsplreqUserreqobdbsdb1db2exprxrppasemblytriggeredFieldstriggeredColumnsAliasNameLookupcolobjectIdentifiercolumnNamedpsObjectIdentifiersKeytextbQIsDatabasenumbersParamNameoDateoTimesqlCodeobjClasssmoCodepermTypebWithSchematentativeParentsFullNamemaxFileSizenopathrdcEscrowforParentdeferredLinkidkxrrpscollationexecSqlparentPropertiespostProcessListidxfieldOffsetbufferbufferoffsetfieldoffsetvaluesmuseQuotedIdentifierheaderInfoobjectTextddlTextsereventSetBasemaskoptionsCompareevtdescmajorminorbuildrevisioncontextenumTypeenumMemberNamedestinationTypefileNameobjTypesuppListpropListobjCodeobjNamesectionproductNamerowInformationkeyarg0arg1eventValueeventLefteventRighteventSetanEventeventsstorageComVisibleAttributeAssemblyVersionAttributeAssemblyProductAttributeAssemblyCopyrightAttributeAssemblyCompanyAttributeAssemblyFileVersionAttributeAssemblyInformationalVersionAttributeAssemblyKeyFileAttributeAssemblyDelaySignAttributeAssemblyTrademarkAttributeSystem.Runtime.CompilerServicesInternalsVisibleToAttributeAssemblyTitleAttributeAssemblyDescriptionAttributeAssemblyConfigurationAttributeAssemblyCultureAttributeCLSCompliantAttributeNeutralResourcesLanguageAttributeAssemblyKeyNameAttributeSqlClientPermissionAttributeSystem.Security.PermissionsSecurityActionSystem.DiagnosticsDebuggableAttributeDebuggingModesCompilationRelaxationsAttributeRuntimeCompatibilityAttributeMicrosoft.SqlServer.SqlEnumDefaultMemberAttributeArgumentNullExceptionStringToCharArrayAppendCharIntPtrZeroMarshalPtrToStringAutoget_CharsArgumentOutOfRangeExceptionAppendSecureStringToBSTRSecurityPermissionSecurityPermissionFlagCodeAccessPermissionAssertPtrToStringBSTRZeroFreeBSTRget_IsNullget_OrdinalIComparerset_Urnget_UrnGetPropertyPropertiesRequestget_ResultTypeget_ParentPropertiesRequestsset_FieldsArrayCopyToPropertyAliasget_PropertyAliasset_PropertyAliasget_OrderByListset_OrderByListset_ParentPropertiesRequestsRequestFieldsTypesset_RequestFieldsTypesset_ResultTypeFilterDecoderFilterNodeGetExecutingAssemblyIDictionaryEnumeratorDictionaryEntryget_KeyConnectionManagerget_ServerVersionget_MajorExceptionget_InnerExceptionSqlExceptionget_Classget_Stateget_Numberget_InvariantCultureset_LocaleDataTableCollectionget_TablesResultTypeNotSupportedEnumeratorExceptionQueryParameterizationModeget_ParameterizationModeGetPropertiesStringEnumeratorEnumeratorProcessget_Dirget_FixedPropertiesFilterNodeConstantObjectTypeget_ObjTypeget_ValueAsStringHashtableset_Itemset_ReadOnlyAfterCreationContainsKeyset_UsageInt32GetFixedStringPropertyDataColumnCollectionget_ColumnsGetTypeDataColumnNewRowget_RowsXmlDocumentLoadXmlXmlElementget_DocumentElementXmlNodeXmlAttributeCollectionget_AttributesXmlAttributeget_ItemOfset_FilterGetRangeICollectionInsertRangeAddRangeset_LengthIsNullOrEmptyGetDatabaseConnectionget_SqlExecutionModesset_SqlExecutionModesget_IsOpenSqlConnectionInfoWithConnectionget_ServerConnectionSqlConnectionInfoSqlConnectionSqlDirectConnectionget_SqlConnectionInternalEnumeratorExceptionadd_InfoMessageremove_InfoMessageget_SqlConnectionObjectSystem.Data.CommonDbConnectionOpenExecutionTypesExecuteNonQueryExecuteReaderget_IsContainedAuthenticationServerInformationRuntimeTypeHandleGetTypeFromHandleIsDefinedTypeConverterAttributeFlagsAttributeBrowsableAttributeComputeFixedPropertiesXmlUtilitySelectNextElementSelectNextElementOnLevelXmlReaderParseget_Minorget_BuildNumberop_LessThanSelectNextSiblingIsElementCharget_IsEmptyElementXmlNodeTypeget_NodeTypeMicrosoft.SqlServer.SqlClrProviderMicrosoft.SqlServer.Smo.UnSafeInternalsManagementUtilLoadResourceFromAssemblyInvalidConfigurationFileEnumeratorExceptionset_ProhibitDtdInvalidVersionEnumeratorExceptionBooleanInt16<PrivateImplementationDetails>{233A5901-3701-40E4-BCAC-2A289195586F}CompilerGeneratedAttributeSystem.Collections.GenericDictionary`2$$method0x6000187-1TryGetValueget_FullNameAssemblyNameSystem.Security.PolicyEvidenceBindingFlagsBinderCreateInstanceset_Expensiveset_ReadOnlyset_ExtendedTypeset_KeyIndexset_PropertyModeget_RequestFieldsTypesget_Dataset_DataInternalDataCollectionBaseget_NowMinValueTimeSpanget_TotalMillisecondsDoubleGetKeyget_KeysIEnumerableQueryNotSupportedEnumeratorExceptionRegexOptionsGroupCollectionget_GroupsGroupget_SuccessCaptureNextMatchDBNull$$method0x6000259-1SqlErrorCollectionget_ErrorsSqlErrorget_Message$$method0x6000262-1Int64System.NetIPAddress$$method0x6000268-1$$method0x6000279-1GetDirectoryNameArgumentException$$method0x6000280-1ConnectionFailureExceptionAppendLineConvertToSingleInvalidArgumentException$$method0x60002b9-1get_ValuesMicrosoft.SqlServer.ServerSqlContextget_IsAvailableget_UrnsGetNameForTypeGetAttributeget_ParentDependenciesStreamReaderTextReaderReadToEndget_InvariantCultureIgnoreCaseAppendFormatDependencyset_IsSchemaBoundget_LinksReverseInvalidCastExceptionget_CaptionComponentDbCommandCancelDbDataReaderGetSqlValueOverflowExceptionget_IsEnumToObjectIConvertibleget_IsPrimitiveget_CurrentCultureToTypeConstructorInfoCallingConventionsParameterModifierGetConstructorInvokeMethodInfoGetMethodMethodBaseRemoveAtMarshalByValueComponentByteget_DataTypeStructLayoutAttributeLayoutKindget_Index$$method0x6000307-1$$method0x6000308-1$$method0x6000309-1OrNotAnd$$method0x6000328-1$$method0x600032b-1System.Data.SqlSqlDataSourceEnumeratorget_InstanceDbDataSourceEnumeratorGetDataSourcesFilterNodeFunctionget_FunctionTypeEnvironmentget_MachineNameXmlNodeListget_ChildNodesAttributeUsageAttributeAttributeTargetsMemberInfoGetMembersGetCustomAttributesModuleget_Moduleget_AssemblyPhysicalPartition.xmlMicrosoft.SqlServer.Management.Smo.SqlEnum.StringSqlEnumerator.resourcesDatabase.xmlFileGroup.xmlFile.xmlLogFile.xmlAudit.xmlServerAuditSpecification.xmlServerAuditSpecificationDetail.xmlDatabaseAuditSpecification.xmlDatabaseAuditSpecificationDetail.xmlServerRole.xmlLogin.xmlDatabaseMappings.xmlUser.xmlDatabaseRole.xmlApplicationRole.xmlFixedDrive.xmlRemoteDrive.xmlRemovableDrive.xmlCdromDrive.xmlDrive.xmlDiskFile.xmlLanguage.xmlLinkedServer.xmltable.xmlView.xmlStoredProcedure.xmlLinkedServerLogin.xmlLinkedServerCatalog.xmlLinkedServerTable.xmlLinkedServerView.xmlMember.xmlJobServer.xmlIndex.xmlIndexedColumn.xmlIndexedXmlPath.xmlIndexedXmlPathNamespace.xmlJobStep.xmlJobStepOutputLog.xmlagent_jobschedule.xmlSchedule.xmlSharedSchedule.xmlPrimaryFile.xmlOLEDBProvider.xmlOLEDBProvProp.xmlPrimaryChildren.xmlCheck.xmlTrigger.xmlUDF.xmlColumn.xmlOrderColumn.xmlJob.xmlAditionalParameters.xmlDatabaseRoleMember.xmlNTGroup.xmlNTLogin.xmlRule.xmlRuleColumn.xmlRuleDataType.xmlConfiguration.xmlAffinityInfo.xmlResourcePoolAffinityInfo.xmlResourcePoolScheduler.xmlDefault.xmlUddt.xmlUserDefinedTableType.xmlForeignKey.xmlUDFParams.xmlBoundColumn.xmlConnection.xmlsdt.xmlBackupDevice.xmlXStoredProcedure.xmlDefaultColumn.xmlDefaultDataType.xmlinc_sql_module_JustText.xmlinc_sql_module.xmlinc_urn_schema.xmlinc_urn.xmlinc_server.xmlinc_ruledef80.xmlinc_objprop_table_view.xmlDefaultConstrain.xmlText.xmlStatistic.xmlCollation.xmlDatabaseLocks.xmlErrorLog.xmlErrorLogText.xmlProcess.xmlLock.xmlTapeDevice.xmlinc_text.xmlinc_DbFile.xmlbackupset.xmlrestorehistory.xmlrestorefile.xmlrestorefilegroup.xmlbackupfile.xmlbackupmediafamily.xmlbackupmediaset.xmlagent_alert.xmlagent_operator.xmlagent_targetserver.xmlagent_alertsystem.xmlagent_targetservergroup.xmlagent_targetservermember.xmlinc_fulltext.xmlagent_jobalert.xmlagent_jobhistory.xmlagent_jobtargetservers.xmlagent_ErrorLog.xmlagent_ErrorLogText.xmlAvailableMedia.xmlStatisticColumn.xmlUserOption.xmlInformation.xmlSettings.xmlFKColumn.xmlComputedText.xmlinc_object.xmlinc_system_object.xmlinc_system_table_view_sp_udf.xmlinc_constraint.xmlPartitionSchemeParameter.xmlPartitionFunction.xmlPartitionFunctionParameter.xmlPartitionFunctionRangeValue.xmlPartitionScheme.xmlPartitionSchemeFileGroup.xmlinc_storage.xmlinc_type.xmlExtendedProperty.xmlinc_shilohExtendedProperty.xmlLevel0ExtendedProperty.xmlLevel1ExtendedProperty.xmlLevel2ExtendedProperty.xmlLevel2IndexExtendedProperty.xmlinc_level2SupportProperties.xmlDbExtendedProperty.xmlinc_type_reference.xmlinc_column_reference.xmlsql_module_link.xmlmixed_module_link.xmlrestore_plan.xmlAlertNotification.xmlOperatorNotification.xmlOperatorJobNotification.xmlSqlAssembly.xmlSqlAssemblyFile.xmlUserDefinedType.xmlUserDefinedAggregate.xmlUserDefinedAggregateParameter.xmlFullTextService.xmlFullTextCatalog.xmlFullTextStopList.xmlSearchPropertyList.xmlSearchProperty.xmlSchema.xmlFullTextIndex.xmlFullTextIndexColumn.xmlSQL11Dependency.sqlKatmaiDependency.sqlCloudDependency.sqlYukonDependency.sqlShilohDependency.sqlYukonuserownedobject.xmlYukonuserownedobjectSchema.xmlFullTextLanguage.xmlPerfInfo.xmlAgentPerfInfo.xmlServerActiveDirectory.xmlDatabaseActiveDirectory.xmlColumnPerm.xmldbfixedroleperm.xmlDBPerm.xmlinc_perm.xmlShilohYukonPerm.xmlSrvYukonObjectPerm.xmlSrvYukonPerm.xmlTablePerm.xmlYukonObjectPerm.xmlYukonSchemaObjectPerm.xmlDBObjectPerm.xmlSrvObjectPerm.xmlsysmessage.xmlusermessage.xmlsynonym.xmlsequence.xmlfederation.xmlinc_IndexFrag.xmlIndexFragFast.xmlIndexFragSampled.xmlIndexFragDetail.xmlinc_urn_message.xmlDatabaseOptions.xmlSPParams.xmlinc_urn_soapmethod.xmlMaintenancePlan.xmlMaintenanceSubPlan.xmlMaintSubPlanLog.xmlMaintSubPlanLogDetail.xmlMaintenancePlanDeprecated.xmlRemoteMaintenancePlan.xmlRemoteSubPlan.xmlRemotePlanLog.xmlRemotePlanLogDetail.xmlLogMarkHistory.xmlProxyAccount.xmlAgentSubsystems.xmlProxyAccountPrincipals.xmlcertificate.xmlOLEDBProviderSetting.xmlfulltext_ErrorLog.xmlfulltext_ErrorLogText.xmlDatabaseMirroringWitnessRole.xmlXmlSchemaCollection.xmlXmlNamespace.xmlXmlType.xmlinc_urn_collate_default.xmlCredential.xmlCryptographicProvider.xmlPlanGuide.xmlMailProfile.xmlMailAccount.xmlConfigurationValue.xmlMail.xmlinc_named_object.xmlDatabaseDdlTrigger.xmlServerDdlTrigger.xmlinc_server_sql_module_link.xmlDatabaseDdlTriggerEvent.xmlinc_ddl_trigger_event.xmlServerDdlTriggerEvent.xmlMailProfileAccounts.xmlMailProfilePrincipals.xmlMailServer.xmlendpoint.xmlsoap_endpoint.xmlinc_urn_single.xmldatabase_mirroring_endpoint.xmlservice_broker_endpoint.xmlvia_endpoint.xmlhttp_endpoint.xmltcp_endpoint.xmlsoap_endpoint_method.xmlsymmetrickey.xmlasymmetrickey.xmltemp_table.xmlparameter.xmludfcolumn.xmlNumberedStoredProcedure.xmlNumberedSPParams.xmlFullTextFile.xmlKeyEncryption.xmlagent_alert_categories.xmlagent_job_categories.xmltransaction.xmlagent_operator_categories.xmlServerProxyAccount.xmlServiceMasterKey.xmlDatabaseMasterKey.xmlMasterKeyEncryption.xmlDatabaseDiagram.xmlMail_ErrorLog.xmlinc_policy_health_state.xmlinc_hadr_policy_health_state.xmlResourceGovernor.xmlResourcePool.xmlWorkloadGroup.xmlDatabaseEncryptionKey.xmlAvailabilityGroup.xmlAvailabilityReplica.xmlAvailabilityDatabase.xmlAvailabilityGroupListener.xmlAvailabilityGroupListenerIPAddress.xmlSqlBoot.xmlClusterSubnet.xmlDatabaseReplicaState.xmlClusterMemberState.xmlReplicaClusterNode.xmlFulltextSemanticLanguage.xmlinc_hadr_setting.xmlServer.xml#empty_resultiselect * from #empty_result
DROP TABLE #empty_resultParentSelectNType
N'{0}'	Name{}db_name()[{}].=System.String<d  />db_namexmlassemly	last+'/'+
()or,
and,	 ASC DESC[{0}]{1} AS [{0}]SELECT
distinct 
FROM

WHERE

ORDER BY
if 
begin

return
end

create table )
[{0}] {1} NULL'[{0}] {1}({2}) NULL*drop table qdeclare @Path nvarchar(255)
declare @Name nvarchar(255)
	PathFullName-select @Path = N'{0}'
-select @Name = N'{0}'
min_majorcloud_min_major!matrix_min_majorcloud_max_majorcloud_min_minorcloud_max_minorcloud_min_buildcloud_max_buildmax_majormin_minormax_minormin_buildmax_buildversionEnumObject unionsettingspropertiespropertyinclude	filealiasfor#ro_after_creation	nameread_only
access	readUrnIDCreateDate
Schemareport_typeGMicrosoft.SqlServer.Management.Smo.report_type2	typeexpensive1read_only_after_creationkey_index	mode
DESIGN
DEPLOY	cast
hiddenusagerequest
filterordernotusagetable	link	sizelink_multiplemain_table!aditional_filterdistinctparent_linkfail_condition+request_parent_selectproperty_link
prefixpostfixpost_process!orderby_redirectspecial_queryfieldlocal
parentnoexpressionlink_fieldcomputeddefault_value
fields	join9expression_is_for_table_nameleft_joinclass_name!triggered_fieldsredirect_fields!redirect_orderbydatabasequerynvarcharvarcharsysnamenchar	charntext	textint
bigintbit	long	realfloatdatetimedatetime2	datedatetimeoffset	timetimespantinyintsmallint!uniqueidentifiernumericdecimal
binaryimagevarbinarysql_variantSystem.Int32System.Int64System.BooleanSystem.DoubleSystem.DateTime+System.DateTimeOffsetSystem.TimeSpanSystem.ByteSystem.Int16System.GuidSystem.DecimalSystem.Byte[]System.ObjectN''

[]	 AS ) AND (!LEFT OUTER JOIN INNER JOIN  ON {0}{0}({1})!CAST({0} AS {1}) AND {{{0}}}={{{1}}}	use [SchemaPrefix][#unify_temptbl insert into PrimaryFileudeclare @fileName nvarchar(255)
select @fileName = N'{0}'
PostProcess ,use [{0}]
System.DBNull/Text!ObjectIdentifier	Text1	ViewTextBodyBodyStartIndex-HasColumnSpecification#TableVariableNameq(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|("(("")|[^"])*")|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))O(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))delimeqcommavalparam7select c.definition,convert(bit,OBJECTPROPERTY(c.object_id,N'ExecIsQuotedIdentOn')) from [{0}].sys.sql_modules c where c.object_id = <msparam>{1}</msparam>}select c.text,convert(bit,OBJECTPROPERTY(c.id,N'ExecIsQuotedIdentOn')) from [{0}].dbo.syscomments c where c.id = <msparam>{1}</msparam> and c.number = <msparam>{2}</msparam> order by c.colid1select c.text,convert(bit,OBJECTPROPERTY(c.id,N'ExecIsQuotedIdentOn')) from [{0}].dbo.syscomments c where c.id = <msparam>{1}</msparam> order by c.colidPermission
ServerDatabaseRF	CRFNSLINDLUP	CRTB	CRDB	CRVW	CRPREX	BADB	CRDF	BALO	CRRUSServer[@Name='{0}']/Database[@Name='{1}']G/{0}[@Name='{1}' and @Schema='{2}']#/{0}[@Name='{1}']ASSEMBLY
SCHEMA	UDDTUDTXMLSCHCOLAFC D F PKP PCFNFSFTR SNSOSQTATRIFTFS U UQV X SqlAssembly'UserDefinedDataTypeUserDefinedType'XmlSchemaCollection)UserDefinedAggregateCheckTableDefaultForeignKeyIndexStoredProcedure'UserDefinedFunction	RuleSynonymSequence5ServiceBroker/ServiceQueueTrigger/ExtendedStoredProcedureBaseSchemaBaseDatabaseBaseServerGUSE [{2}] DBCC SHOWCONTIG({0}, {1})3DBCC SHOWCONTIG({0}, {1})..:PagesExtentsExtentSwitchesScanDensity)LogicalFragmentation'ExtentFragmentation!AverageFreeBytes%AveragePageDensityOexec msdb.dbo.sp_help_job @job_id='{0}'3exec msdb.dbo.sp_help_job-CurrentRunRetryAttempt!CurrentRunStatusCurrentRunStepHasScheduleHasServerHasStepLastRunDateLastRunOutcomeNextRunDate#NextRunScheduleIDJobType+current_retry_attempt1current_execution_status-current_execution_stephas_schedulehas_targethas_steplast_run_datelast_run_time!last_run_outcomenext_run_datenext_run_time)next_run_schedule_id+DBCC SHOW_STATISTICS(, ') WITH STATS_STREAMStats_Streamselect convert(float,low/1024.) from master.dbo.spt_values where number = 1 and type = 'E'aselect SERVERPROPERTY('instancedefaultdatapath')IsDbAccessAdmin9is_member(N'db_accessadmin')%IsDbBackupOperator?is_member(N'db_backupoperator')IsDbDatareader7is_member(N'db_datareader')IsDbDatawriter7is_member(N'db_datawriter')IsDbOwner-is_member(N'db_owner')#IsDbSecurityAdmin=is_member(N'db_securityadmin')IsDbDdlAdmin3is_member(N'db_ddladmin')%IsDbDenyDatareader?is_member(N'db_denydatareader')%IsDbDenyDatawriter?is_member(N'db_denydatawriter')DboLoginUserNameuser_name()SpaceAvailable	Size
DbSize(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in ( 0, 2, 4 ) )SpaceUsed%SUM(a.total_pages)LogSize(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in (1, 3))DataSpaceUsageIndexSpaceUsageGSUM(CASE When it.internal_type IN (202,204,207,211,212,213,214,215,216) Then 0 When a.type <> 1 Then a.used_pages	When p.index_id < 2 Then a.data_pages	Else 0	END)IndexSpaceTotal#SUM(a.used_pages)IsMailHost(select count(1) from sys.services where name ='InternalMailService')DefaultSchema(select default_schema_name from sys.database_principals where name = user_name())sys.partitions p join sys.allocation_units a on p.partition_id = a.container_id left join sys.internal_tables it on p.object_id = it.object_id!DefaultFileGroup(select top 1 ds.name from sys.data_spaces as ds where ds.is_default = 1 and ds.type = 'FG' )3IsManagementDataWarehouse(select count(1) from sys.extended_properties where name = 'Microsoft_DataCollector_MDW_Version')5DefaultFileStreamFileGroup](select case when t1.c1 > 0 then t1.c2 else N'' end from (select top 1 count(*) c1, min(ds.name) c2 from sys.data_spaces as ds where ds.is_default = 1 and ds.type = 'FD') t1)PrimaryFilePath(select ISNULL(df.physical_name, N'') from sys.database_files as df where df.data_space_id = 1 and df.file_id = 1)(select sum(convert(float,size)) from dbo.sysfiles where (status & 64 = 0))(select sum(convert(float,reserved)) from dbo.sysindexes where indid in (0, 1, 255))(select sum(convert(float,size)) from dbo.sysfiles where (status & 64 <> 0))=((select sum(convert(float,dpages)) from dbo.sysindexes where indid < 2) + (select isnull(sum(convert(float,used)), 0) from dbo.sysindexes where indid = 255))(select sum(convert(float,used)) from dbo.sysindexes where indid in (0, 1, 255))(select top 1 fg.groupname from dbo.sysfilegroups as fg where fg.status & 0x10 <> 0)3DatabaseOwnershipChainingscreate table #tmpdbchaining( name sysname , dbc sysname )insert into #tmpdbchaining exec dbo.sp_dboption N'{0}', 'db chaining'
yinsert into #tmpdbchaining SELECT 'db chaining' AS 'OptionName', CASE WHEN (SELECT is_db_chaining_on FROM sys.databases WHERE name=N'{0}') = 1 THEN 'ON' ELSE 'OFF' END AS 'CurrentSetting'
	declare @DBChaining bit
set @DBChaining = null
select @DBChaining = case LOWER(dbc) when 'off' then 0 else 1 end from #tmpdbchaining@DBChaining3drop table #tmpdbchainingSELECT dtb.collation_name AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version], dtb.compatibility_level AS [CompatibilityLevel], CAST(CHARINDEX(N'_CS_', dtb.collation_name) AS bit) AS [CaseSensitive], dtb.target_recovery_time_in_seconds AS [TargetRecoveryTime] FROM master.sys.databases AS dtb where name = db_name()9SELECT dtb.collation_name AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version], dtb.compatibility_level AS [CompatibilityLevel], CAST(CHARINDEX(N'_CS_', dtb.collation_name) AS bit) AS [CaseSensitive] FROM master.sys.databases AS dtb where name = db_name()SELECT CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS sysname) AS [Collation], CAST(DATABASEPROPERTYEX(dtb.name, 'Version') AS int) AS [Version], dtb.cmptlevel AS [CompatibilityLevel], CAST(CHARINDEX(N'_CS_', CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS nvarchar(255))) AS bit) AS [CaseSensitive] FROM master.dbo.sysdatabases AS dtb where name = db_name()select 

case 

	when cfg.configuration_id = 124 -- configuration id for default language

	then (select lcid from sys.syslanguages as sl where sl.langid = cfg.value_in_use) -- getting default language LCID from default language langid

	else cfg.value_in_use

end as value,

case 

	when cfg.configuration_id = 124 -- configuration id for default language

	then (select name collate catalog_default from sys.syslanguages as sl where sl.langid = cfg.value_in_use) -- getting default language name from default language langid

	when cfg.configuration_id = 1126 -- configuration id for default fulltext language

	then ISNULL((select name collate catalog_default from sys.fulltext_languages as fl where fl.lcid = cfg.value_in_use), N'') -- getting default fulltext language name from default fulltext language lcid

	else null

end as name,

cfg.configuration_id as configuration_id

from sys.configurations as cfg

where cfg.configuration_id in (115, 124, 1126, 1127, 1555) 

order by cfg.configuration_id asc+NestedTriggersEnabled'DefaultLanguageLcid'DefaultLanguageName7DefaultFullTextLanguageLcid7DefaultFullTextLanguageName%TwoDigitYearCutoff'TransformNoiseWords  CREATE TABLE #tempspace (value BIGINT) 

 IF (OBJECT_ID(N'msdb.sys.sp_getVolumeFreeSpace',  N'P')) is null 

 INSERT INTO #tempspace VALUES(-1) ELSE 

 INSERT INTO #tempspace EXEC msdb.sys.sp_getVolumeFreeSpace {0},{1} 

 SELECT TOP 1 value  as [freebytes] from #tempspace   as [freebytes] 

 DROP TABLE #tempspace 

freebytesServerType3IsContainedAuthenticationMaximumFileSize'MaximumFileSizeUnitLoginOwnerUserType[Select name from sys.sql_logins where sid={0}
masterUsedSpaceAvailableSpaceuse [{0}];select 

CAST(CASE s.type WHEN 2 THEN s.size * CONVERT(float,8) ELSE dfs.allocated_extent_page_count*convert(float,8) END AS float) AS [UsedSpace],

CASE s.type WHEN 2 THEN 0 ELSE <msparam>{0}</msparam> - dfs.allocated_extent_page_count*convert(float,8) END AS [AvailableSpace] 

from 

sys.filegroups AS g

inner join sys.database_files AS s on ((s.type = 2 or s.type = 0) and (s.drop_lsn IS NULL)) AND (s.data_space_id=g.data_space_id)

left outer join sys.dm_db_file_space_usage as dfs ON dfs.database_id = db_id() AND dfs.file_id = s.file_id

where 

s.name = <msparam>{1}</msparam> and g.data_space_id = <msparam>{2}</msparam>create table #tmpspc (Fileid int, FileGroup int, TotalExtents int, UsedExtents int, Name sysname, FileName nchar(520))

insert #tmpspc EXEC ('dbcc showfilestats');



SELECT

CAST(CASE s.type WHEN 2 THEN s.size * CONVERT(float,8) ELSE tspc.UsedExtents*convert(float,64) END AS float) AS [UsedSpace],

CASE s.type WHEN 2 THEN 0 ELSE <msparam>{0}</msparam> - tspc.UsedExtents*convert(float,64) END AS [AvailableSpace]

FROM

sys.filegroups AS g

INNER JOIN sys.database_files AS s ON ((s.type = 2 or s.type = 0) and (s.drop_lsn IS NULL)) AND (s.data_space_id=g.data_space_id)

LEFT OUTER JOIN #tmpspc tspc ON tspc.Fileid = s.file_id

where 

s.name = <msparam>{1}</msparam> and g.data_space_id = <msparam>{2}</msparam>;



drop table #tmpspc;Table/TriggerPartitionScheme#PartitionFunction)UserDefinedTableType!UnresolvedEntityDdlTriggerPlanGuide
MASTER!CREATE TABLE #tempdep (objid int NOT NULL, objname sysname NOT NULL, objschema sysname NULL, objdb sysname NOT NULL, objtype smallint NOT NULL)
CREATE TABLE #tempdep (objid int NOT NULL, objtype smallint NOT NULL)
#BEGIN TRANSACTION
Column#DefaultConstraint	null+INSERT INTO #tempdep WINSERT INTO #tempdep(objid,objtype) VALUES(%COMMIT TRANSACTION'CloudDependency.sql)ShilohDependency.sql'YukonDependency.sql)KatmaiDependency.sql'SQL11Dependency.sqldeclare @find_referencing_objects int
set @find_referencing_objects = {0}
USE [master]oSELECT collation_name FROM sys.databases where name={0}SELECT CAST(DATABASEPROPERTYEX(dtb.name, 'Collation') AS sysname) AS [collation_name] FROM master.dbo.sysdatabases AS dtb WHERE(dtb.name={0})	_CS_schema_boundrelative_idobject_idobject_typerelative_typerelative_svrobject_svrrelative_dbobject_dbrelative_schemaobject_schemarelative_nameobject_name.mServer[@Name='{0}']/Database[@Name='{1}']/{2}[@ID={3}]SServer/Database[@Name='{0}']/{1}[@ID={2}]UServer[@Name='{0}']/Database[@Name='{1}']/;Server/Database[@Name='{0}']/o{0}[@Name='{1}' and @Schema='{2}']/Trigger[@Name='{3}']!{0}[@Name='{1}']E{0}[@Name='{1}' and @Schema='{2}'])Server[@Name='{0}']/Server/-Database[@Name='{0}']/pschemapnameptypeCIAIKSWSBIN	BIN2DECLARE @db_name              sysname ,@restore_to_datetime  datetime 
DatabaseNameBackupStartDate3select @db_name = N'{0}'
Qselect @restore_to_datetime = GETDATE()
Kselect @restore_to_datetime = N'{0}'
{0}, {1}/Microsoft.SqlServer.SmowMicrosoft.SqlServer.Management.Smo.Internal.SqlSecureStringqMicrosoft.SqlServer.Management.Common.DatabaseEngineTypeParse(--[^
]*)(//[^
]*)(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)U(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|	\*/)!('(('')|[^'])*)'=(?<quoted_word>"(("")|[^"])*")G(?<braket_word>\[((\]\])|[^\]])*\])(?<dot>\.)M(?<parant_open>\()|(?<parant_close>\))Q(?:(?<param>@[\w_@#][\w\d_$$@#]*)((\s)|()|())*(AS){0,1}))(?<exec>\bEXECUTE\b)/(?<returns>\bRETURNS\b)K(?<returns_table>\bRETURNS\s+TABLE\b)+(?<return>\bRETURN\b))(?<delim1>\bAS\b\s*))(?<delim2>\bBEGIN\b)([ \t]+)+(?<word>[a-zA-Z0-9]+)(?<eol>\n)(?<slcomm>--)(?<reject>.)|i|(?<word>[\w_@#][\w\d_$$@#]*)|(?<number_proc>;[\d]+)	wordbraket_wordquoted_wordnumber_procdot
createalterTRIGGERONparant_closeparant_open
delim1
delim2	execreturnsreturns_table
return
optioncheck	with
reject
slcommeolAL	ALAK	ALAR	ALAS	ALCF	ALDA	ALDS	ALED	ALFT	ALMT	ALRL	ALRT	ALSB	ALSC	ALSK	ALSM	ALSV	ALTG	ALUS	AUTHCLCO	CORPCP	CRAG	CRAK	CRAS	CRCF	CRED	CRFT	CRMT	CRQU	CRRL	CRRT	CRSB	CRSC	CRSK	CRSM	CRSN	CRSV	CRTY	CRXS	SPLN	SUQNTOVW	VWDSIMRC	VWCT	CRSO	ADBO	ALCD	ALCO	ALDB	ALES	ALHE	ALLG	ALLS	ALRS	ALSS	ALST	ALTR	COSQ	CRDE	CRHE	CRTE	SHDN	VWAD	VWDB	VWSSXAXU	ALAA	ALSR	CRSR	ALAG	CRAC	AAES
UNION

/Event)EventTypeDescriptionADD_ROLE_MEMBERADD_SIGNATURE7ADD_SIGNATURE_SCHEMA_OBJECT-ALTER_APPLICATION_ROLEALTER_ASSEMBLY)ALTER_ASYMMETRIC_KEY9ALTER_AUTHORIZATION_DATABASE+ALTER_BROKER_PRIORITY#ALTER_CERTIFICATEEALTER_DATABASE_AUDIT_SPECIFICATION;ALTER_DATABASE_ENCRYPTION_KEY/ALTER_EXTENDED_PROPERTY-ALTER_FULLTEXT_CATALOG)ALTER_FULLTEXT_INDEX/ALTER_FULLTEXT_STOPLISTALTER_FUNCTIONALTER_INDEX!ALTER_MASTER_KEY%ALTER_MESSAGE_TYPE1ALTER_PARTITION_FUNCTION-ALTER_PARTITION_SCHEME!ALTER_PLAN_GUIDEALTER_PROCEDUREALTER_QUEUE9ALTER_REMOTE_SERVICE_BINDINGALTER_ROLEALTER_ROUTEALTER_SCHEMA5ALTER_SEARCH_PROPERTY_LISTALTER_SEQUENCEALTER_SERVICE'ALTER_SYMMETRIC_KEYALTER_TABLEALTER_TRIGGERALTER_USERALTER_VIEW7ALTER_XML_SCHEMA_COLLECTIONBIND_DEFAULTBIND_RULE/CREATE_APPLICATION_ROLECREATE_ASSEMBLY+CREATE_ASYMMETRIC_KEY-CREATE_BROKER_PRIORITY%CREATE_CERTIFICATECREATE_CONTRACTGCREATE_DATABASE_AUDIT_SPECIFICATION=CREATE_DATABASE_ENCRYPTION_KEYCREATE_DEFAULT3CREATE_EVENT_NOTIFICATION1CREATE_EXTENDED_PROPERTY/CREATE_FULLTEXT_CATALOG+CREATE_FULLTEXT_INDEX1CREATE_FULLTEXT_STOPLISTCREATE_FUNCTIONCREATE_INDEX#CREATE_MASTER_KEY'CREATE_MESSAGE_TYPE3CREATE_PARTITION_FUNCTION/CREATE_PARTITION_SCHEME#CREATE_PLAN_GUIDE!CREATE_PROCEDURECREATE_QUEUE;CREATE_REMOTE_SERVICE_BINDINGCREATE_ROLECREATE_ROUTECREATE_RULECREATE_SCHEMA7CREATE_SEARCH_PROPERTY_LISTCREATE_SEQUENCECREATE_SERVICE)CREATE_SPATIAL_INDEX#CREATE_STATISTICS)CREATE_SYMMETRIC_KEYCREATE_SYNONYMCREATE_TABLECREATE_TRIGGERCREATE_TYPECREATE_USERCREATE_VIEW!CREATE_XML_INDEX9CREATE_XML_SCHEMA_COLLECTIONDENY_DATABASE+DROP_APPLICATION_ROLEDROP_ASSEMBLY'DROP_ASYMMETRIC_KEY)DROP_BROKER_PRIORITY!DROP_CERTIFICATEDROP_CONTRACTCDROP_DATABASE_AUDIT_SPECIFICATION9DROP_DATABASE_ENCRYPTION_KEYDROP_DEFAULT/DROP_EVENT_NOTIFICATION-DROP_EXTENDED_PROPERTY+DROP_FULLTEXT_CATALOG'DROP_FULLTEXT_INDEX-DROP_FULLTEXT_STOPLISTDROP_FUNCTIONDROP_INDEXDROP_MASTER_KEY#DROP_MESSAGE_TYPE/DROP_PARTITION_FUNCTION+DROP_PARTITION_SCHEMEDROP_PLAN_GUIDEDROP_PROCEDUREDROP_QUEUE7DROP_REMOTE_SERVICE_BINDINGDROP_ROLE!DROP_ROLE_MEMBERDROP_ROUTEDROP_RULEDROP_SCHEMA3DROP_SEARCH_PROPERTY_LISTDROP_SEQUENCEDROP_SERVICEDROP_SIGNATURE9DROP_SIGNATURE_SCHEMA_OBJECTDROP_STATISTICS%DROP_SYMMETRIC_KEYDROP_SYNONYMDROP_TABLEDROP_TRIGGERDROP_TYPEDROP_USERDROP_VIEW5DROP_XML_SCHEMA_COLLECTIONGRANT_DATABASE
RENAMEREVOKE_DATABASEUNBIND_DEFAULTUNBIND_RULE#UPDATE_STATISTICS-ADD_SERVER_ROLE_MEMBER5ALTER_AUTHORIZATION_SERVER1ALTER_AVAILABILITY_GROUP!ALTER_CREDENTIAL9ALTER_CRYPTOGRAPHIC_PROVIDERALTER_DATABASEALTER_ENDPOINT'ALTER_EVENT_SESSIONALTER_INSTANCE'ALTER_LINKED_SERVERALTER_LOGINALTER_MESSAGE'ALTER_REMOTE_SERVER=ALTER_RESOURCE_GOVERNOR_CONFIG'ALTER_RESOURCE_POOL%ALTER_SERVER_AUDITAALTER_SERVER_AUDIT_SPECIFICATION#ALTER_SERVER_ROLE1ALTER_SERVICE_MASTER_KEY)ALTER_WORKLOAD_GROUP3CREATE_AVAILABILITY_GROUP#CREATE_CREDENTIAL;CREATE_CRYPTOGRAPHIC_PROVIDERCREATE_DATABASECREATE_ENDPOINT)CREATE_EVENT_SESSION3CREATE_EXTENDED_PROCEDURE)CREATE_LINKED_SERVER5CREATE_LINKED_SERVER_LOGINCREATE_LOGINCREATE_MESSAGE)CREATE_REMOTE_SERVER)CREATE_RESOURCE_POOL'CREATE_SERVER_AUDITCCREATE_SERVER_AUDIT_SPECIFICATION%CREATE_SERVER_ROLE+CREATE_WORKLOAD_GROUPDENY_SERVER/DROP_AVAILABILITY_GROUPDROP_CREDENTIAL7DROP_CRYPTOGRAPHIC_PROVIDERDROP_DATABASEDROP_ENDPOINT%DROP_EVENT_SESSION/DROP_EXTENDED_PROCEDURE%DROP_LINKED_SERVER1DROP_LINKED_SERVER_LOGINDROP_LOGINDROP_MESSAGE%DROP_REMOTE_SERVER%DROP_RESOURCE_POOL#DROP_SERVER_AUDIT?DROP_SERVER_AUDIT_SPECIFICATION!DROP_SERVER_ROLE/DROP_SERVER_ROLE_MEMBER'DROP_WORKLOAD_GROUPGRANT_SERVERLOGONREVOKE_SERVERInstanceIsClusteredVersionIsLocalInstanceNameMSSQLSERVERServerName\No%IncorectVersionTag7NullVersionOnLoadingCfgFile+EnumObjectTagNotFound+InvalidConnectionType%OnlyPathOrFullName7DatabaseNameMustBeSpecifiedUnknownOperatorTooManyDbLevels1InvalidConfigurationFileNotDbObjectNotSingleDb-NoClassNamePostProcessSqlServer90NameSqlServer80Name)SmoSQLCLRUnAvailableExecuting-WaitingForWorkerThreadBetweenRetries	IdleSuspended-WaitingForStepToFinish5PerformingCompletionActionUnknown
ctNonectPartial
rmFullrmBulkLoggedrmSimple
msNonemsSuspendedmsDisconnectedmsSynchronizing#msPendingFailovermsSynchronized+agshNoneSynchronizing5agshPartiallySynchronizing)agshAllSynchronizing'agshAllSynchronized'arosPendingFailoverarosPendingarosOnlinearosOfflinearosFailed%arosFailedNoQuorumarrhInProgressarrhOnline)arshNotSynchronizing#arshSynchronizing!arshSynchronized!arrUninitializedarrResolvingarrSecondaryarrPrimary!arcsDisconnectedarcsConnected/hmsPendingCommunicationhmsRunninghmsFailedcqtNodeMajority-cqtNodeAndDiskMajority7cqtNodeAndFileshareMajoritycqtDiskOnly!cqtNotApplicable+cqsUnknownQuorumStatecqsNormalQuorumcqsForcedQuorum!cqsNotApplicablecmtNodecmtDiskWitness'cmtFileshareWitnesscmsOffline%cmsPartiallyOnlinecmsOnlinecmsUnknown9replicaReadModeNoConnectionsQreplicaReadModeReadIntentConnectionsOnly;replicaReadModeAllConnections1cmprReadWriteConnections%cmprAllConnections#cmsrNoConnections;cmsrReadIntentConnectionsOnly%cmsrAllConnections+aramSynchronousCommit-aramAsynchronousCommitarfmAutomaticarfmManualarjsNotJoined9arjsJoinedStandaloneInstanceCarjsJoinedFailoverClusterInstance)adssNotSynchronizing#adssSynchronizing!adssSynchronizedadssReverting!adssInitializing'drsrSuspendFromUser-drsrSuspendFromPartner'drsrSuspendFromRedo)drsrSuspendFromApply-drsrSuspendFromCapture-drsrSuspendFromRestart'drsrSuspendFromUndo#drsrNotApplicableagabpPrimary%agabpSecondaryOnlyagabpSecondaryagabpNone!agfcOnServerDown1agfcOnServerUnresponsive5agfcOnCriticalServerErrors5agfcOnModerateServerErrorsEagfcOnAnyQualifiedFailureConditionaglipOfflineaglipOnline%aglipOnlinePendingagliFailureagliUnknown'FailedToLoadResFile7UnsupportedTypeDepDiscovery9QueryNotSupportedPostProcess)FailedToLoadAssembly#FailedToCreateUrn'PropMustBeSpecified)InvalidUrnForDepends-CouldNotInstantiateObjNotDerivedFromUnknownTypeMissingSectionInvalidVersion!InvalidSqlServerGDatabaseNameMustBeSpecifiedinTheUrnACouldNotGetInfoFromDependencyRow: Y:#7@*(Xoz\V4]̀̑Y   Y    	]
a
]
a      a  ]	]	e           	       	 i
 i	 i
 i  a Y  YYmm((qu       q     y  }      9 u = ==   	   u	 ((((q(((((( 
 
        u   
     (u(     
    u	
 $(c,048<@@DRGWDdHL	PTX\`dhlptx|<AFPZn >
e,-il $(,048<@DHLPT?X\
`dhlptx|!"#$%&'()*+,-./ $(,048<@DHLPTX\`dhlptx     
 (((   ((  (( (   } (((}(         ((((((((( ( ( ( (
 =	     (    1(1 1(   			    			   9
     	 ( 	   9 q       (9  (--[^
]*)(//[^
]*)(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/),(N{0,1}'(('')|[^'])*)' ("(("")|[^"])*")*(\[((\]\])|[^\]])*\]) ([\w_][\w;\d_]*)((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1})(0x[0-9a-f]+)B(?<val>(((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))h(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))(?<comma>,)(\([\d, ]*\))(?<eq>=)<(?<delim>\b((AS)|(RETURNS))\b)Z(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})p(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|("(("")|[^"])*")|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\))N(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)|(--[^
]*)|(//[^
]*)|(?<delim>\b((AS)|(RETURNS))\b)|(?:(?<param>@[\w_][\w\d_$$@#]*)((\s)|((--[^
]*))|((/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)\*/)))*(AS){0,1})|(?<val>((("(("")|[^"])*"))|((N{0,1}'(('')|[^'])*)')|((0x[0-9a-f]+))|(((\+|\-){0,1}((\d+\.\d*)|(\d*\.\d+)|(\d+))(e((\+)|(\-))\d+){0,1}))|((\[((\]\])|[^\]])*\]))|(([\w_][\w;\d_]*))))|(?<comma>,)|(?<eq>=)|(\([\d, ]*\)) 	       	  
 
 (
   
 
   	  q	    	 	   y y yq      uq      	 

	 

 E   
     
 (( 8(?<word>[\w_@#][\w\d_$$@#]*),(?<number_proc>;[\d]+)	=0123456789:;        ( x l		 	 
	 a	 
a  
aaaa$IncorectVersionTag6NullVersionOnLoadingCfgFile*EnumObjectTagNotFound*InvalidConnectionType$OnlyPathOrFullName6DatabaseNameMustBeSpecified&FailedToLoadResFile6UnsupportedTypeDepDiscovery8QueryNotSupportedPostProcess(FailedToLoadAssembly"FailedToCreateUrnUnknownOperator&PropMustBeSpecified(InvalidUrnForDependsTooManyDbLevels,CouldNotInstantiateObjNotDerivedFromUnknownType0InvalidConfigurationFileMissingSectionNotDbObjectNotSingleDb,NoClassNamePostProcessInvalidVersion InvalidSqlServerFDatabaseNameMustBeSpecifiedinTheUrn@CouldNotGetInfoFromDependencyRowSqlServer90NameSqlServer80Name(SmoSQLCLRUnAvailableExecuting,WaitingForWorkerThreadBetweenRetriesIdleSuspended,WaitingForStepToFinish4PerformingCompletionActionUnknownctNonectPartialrmFullrmBulkLoggedrmSimplemsNonemsSuspendedmsDisconnectedmsSynchronizing"msPendingFailovermsSynchronized*agshNoneSynchronizing4agshPartiallySynchronizing(agshAllSynchronizing&agshAllSynchronized&arosPendingFailoverarosPendingarosOnlinearosOfflinearosFailed$arosFailedNoQuorumarrhInProgressarrhOnline(arshNotSynchronizing"arshSynchronizing arshSynchronized arrUninitializedarrResolvingarrSecondaryarrPrimary arcsDisconnectedarcsConnected.hmsPendingCommunicationhmsRunninghmsFailedcqtNodeMajority,cqtNodeAndDiskMajority6cqtNodeAndFileshareMajoritycqtDiskOnly cqtNotApplicable*cqsUnknownQuorumStatecqsNormalQuorumcqsForcedQuorum cqsNotApplicablecmtNodecmtDiskWitness&cmtFileshareWitnesscmsOffline$cmsPartiallyOnlinecmsOnlinecmsUnknown8replicaReadModeNoConnectionsPreplicaReadModeReadIntentConnectionsOnly:replicaReadModeAllConnections0cmprReadWriteConnections$cmprAllConnections"cmsrNoConnections:cmsrReadIntentConnectionsOnly$cmsrAllConnections*aramSynchronousCommit,aramAsynchronousCommitarfmAutomaticarfmManualarjsNotJoined8arjsJoinedStandaloneInstanceBarjsJoinedFailoverClusterInstance(adssNotSynchronizing"adssSynchronizing adssSynchronizedadssReverting adssInitializing&drsrSuspendFromUser,drsrSuspendFromPartner&drsrSuspendFromRedo(drsrSuspendFromApply,drsrSuspendFromCapture,drsrSuspendFromRestart&drsrSuspendFromUndo"drsrNotApplicableagabpPrimary$agabpSecondaryOnlyagabpSecondaryagabpNone agfcOnServerDown0agfcOnServerUnresponsive4agfcOnCriticalServerErrors4agfcOnModerateServerErrorsDagfcOnAnyQualifiedFailureConditionaglipOfflineaglipOnline$aglipOnlinePendingagliFailureagliUnknownahBCEHIJKLMNOQSTUVXY[\]^_`abfghjkmopqrstuvwxyz{|}~ h hplplll(hl p l l plpplpt t t|x|xxx(tx | x x |x||x| i q$$RSA1''6n_1:fl/y2}/R4H<=\]Ǽ(k,Q\$+Au2IRmRo{l؂O1
ˢ#V{-Pb왹J|};(	Item  ]a	
]a a ]]e        i	 i i	 iY a  Ymm  y 5}	1  }1
111          1     
    a 	1 5}
5115 1  =9	9 
 
  } 5<1 e= 	    =9  	 


1 
11 u   
	1
1       !  u -   u  151>9Microsoft.SqlServer.Management.Smo.RecoveryModelConverter
rmSimplermBulkLoggedrmFull@;Microsoft.SqlServer.Management.Smo.MirroringStatusConvertermsNonemsSuspendedmsDisconnectedmsSynchronizingmsPendingFailovermsSynchronized@;Microsoft.SqlServer.Management.Smo.ContainmentTypeConverterctNone	ctPartial\WMicrosoft.SqlServer.Management.Smo.AvailabilityGroupRollupSynchronizationStateConverteragshNoneSynchronizingagshPartiallySynchronizingagshAllSynchronizingagshAllSynchronizedUnknownhmsPendingCommunication
hmsRunning	hmsFailedTOMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaOperationalStateConverterarosPendingFailoverarosPending
arosOnlinearosOffline
arosFailedarosFailedNoQuorumWRMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaRollupRecoveryStateConverterarrhInProgress
arrhOnline^YMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaRollupSynchronizationStateConverterarshNotSynchronizingarshSynchronizingarshSynchronizedHCMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaRoleConverterarrResolving
arrPrimaryarrSecondarySNMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaConnectionStateConverterarcsDisconnected
arcsConnected_ZMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaConnectionModeInPrimaryRoleConvertercmprAllConnectionscmprReadWriteConnectionsa\Microsoft.SqlServer.Management.Smo.AvailabilityReplicaConnectionModeInSecondaryRoleConvertercmsrNoConnections"cmsrReadIntentConnectionsOnlycmsrAllConnectionsMHMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaJoinStateConverter
arjsNotJoined!arjsJoinedStandaloneInstance&!arjsJoinedFailoverClusterInstanceQLMicrosoft.SqlServer.Management.Smo.AvailabilityGroupListenerIPStateConverteraglipOfflineaglipOnlineaglipOnlinePendingagliFailureagliUnknownTOMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaAvailabilityModeConverteraramAsynchronousCommitaramSynchronousCommitPKMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaFailoverModeConverter
arfmAutomatic
arfmManualYTMicrosoft.SqlServer.Management.Smo.AvailabilityDatabaseSynchronizationStateConverteradssNotSynchronizingadssSynchronizingadssSynchronized
adssRevertingadssInitializingMHMicrosoft.SqlServer.Management.Smo.DatabaseReplicaSuspendReasonConverterdrsrSuspendFromUserdrsrSuspendFromPartnerdrsrSuspendFromRedodrsrSuspendFromApplydrsrSuspendFromCapturedrsrSuspendFromRestartdrsrSuspendFromUndodrsrNotApplicableB=Microsoft.SqlServer.Management.Smo.ClusterQuorumTypeConvertercqtNodeMajoritycqtNodeAndDiskMajority cqtNodeAndFileshareMajoritycqtDiskOnlycqtNotApplicableC>Microsoft.SqlServer.Management.Smo.ClusterQuorumStateConvertercqsUnknownQuorumStatecqsNormalQuorumcqsForcedQuorumcqsNotApplicableB=Microsoft.SqlServer.Management.Smo.ClusterMemberTypeConvertercmtNodecmtDiskWitnesscmtFileshareWitnessC>Microsoft.SqlServer.Management.Smo.ClusterMemberStateConverter
cmsOffline	cmsOnlinecmsPartiallyOnline
cmsUnknown[VMicrosoft.SqlServer.Management.Smo.AvailabilityGroupAutomatedBackupPreferenceConverteragabpPrimaryagabpSecondaryOnlyagabpSecondary	agabpNoneWRMicrosoft.SqlServer.Management.Smo.AvailabilityGroupFailureConditionLevelConverteragfcOnServerDownagfcOnServerUnresponsiveagfcOnCriticalServerErrorsagfcOnModerateServerErrors'"agfcOnAnyQualifiedFailureConditionC>Microsoft.SqlServer.Management.Smo.JobExecutionStatusConverter	ExecutingWaitingForWorkerThreadBetweenRetries	Idle	SuspendedWaitingForStepToFinishPerformingCompletionAction 							 Q	 e	 ]}mm    q	u	 y}a 	1
1
  	 1
 

1  
 1	1	 y
9     1		  

		   ]	u1
e
e 
	

	1			

P	


e 1 yy 8
y%%y   011
1
19	y!y
q 1  1 e y} 
  



  
		
111 	=9|xpl5 ) &5%1  1  

1 9&T	InheritedT
AllowMultiple = 	a===Q= a A p
ll1Rllllllllllllllllllll|
xx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxMicrosoft SQL Server)$Microsoft Corp. All rights reserved.Microsoft Corporation0+11.0.3000.0 ((SQL11_PCU_Main).121019-1322 )11.0.3000.050e:\sql11_main_t\\sql\Common\SNK\SQL2003SNKEY.snkMHMicrosoft SQL Server is a registered trademark of Microsoft Corporation.ZTBidsMgmt, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.SqlWmiManagement, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.VisualStudio.vspSqlWmiManagement, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.SmoExtended, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.VisualStudio.vspSmoExtended, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icMicrosoft.SqlServer.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.Configuration.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8oiMicrosoft.VisualStudio.vspSmo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgMicrosoft.SqlServer.SqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8smMicrosoft.VisualStudio.vspSqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgMicrosoft.SqlServer.WmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8smMicrosoft.VisualStudio.vspWmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.ServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.VisualStudio.vspServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8rlMicrosoft.SqlServerCe.Enumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServerCe.Express.Enumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.VisualStudio.vspEnumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8tnMicrosoft.SqlServerCe.ManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServerCe.Express.ManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.VisualStudio.vspManagementUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8nhMicrosoft.SqlServer.ReplEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8c]ReplicationDialog, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ReplicationMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_ConfigureDistWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WDBMirroring, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8gaReplication.Utilities, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XNewSubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8qkMicrosoft.SqlServer.Replication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\Vsqllogship, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8YSSqlMgmt, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icSqlWorkbench.Interfaces, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YConnectionDlg, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icSqlToolsVSNativeHelpers, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8[UDTAClient, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8UODTA, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTDTAShell, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\VSQLEditors, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YSQLEditors.VS, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XSqlManagerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^CopyDatabaseWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|Microsoft.SqlServer.TransferSqlServerObjectsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.TransferSqlServerObjectsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.MaintenancePlanTasks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.MaintenancePlanTasksUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.MaintenancePlanWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8jdDBMaintenancePlanHistory, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icDBMaintenanceProperties, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[ManageEndpoints, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ManageLinkedServer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8[UManageSSB, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YMSXTSXDialogs, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^DatabaseMailWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8`ZObjectExplorer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8tnObjectExplorerNotificationServices, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8keObjectExplorerReplication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|vMicrosoft.SqlServer.SqlTools.VSIntegration, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XAppIDPackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_SqlWorkbenchProject, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[LanguagePackage, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[ActivityMonitor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^ObjectExplorerCore, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8\VSQLManager, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8mgUpgradeMaintenancePlanUTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8b\ObjectExplorerXM, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]WXMDocuments, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8VPXMQE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTPROFILER, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Management.UI.RSUserInterface, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.TransferDatabasesTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.SqlServer.TransferDatabasesTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.SqlServer.TransferErrorMessagesTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{Microsoft.SqlServer.TransferErrorMessagesTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8vpMicrosoft.SqlServer.TransferJobsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.TransferJobsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.SqlServer.TransferLoginsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ztMicrosoft.SqlServer.TransferLoginsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ysMicrosoft.SqlServer.TransferObjectsTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8{uMicrosoft.SqlServer.TransferObjectsTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8|Microsoft.SqlServer.TransferStoredProceduresTask, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.TransferStoredProceduresTaskUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.DatatransformationServices.DTSExecUI.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8yMicrosoft.DataTransformationServices.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}wMicrosoft.DataTransformationServices.Design, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8lfMicrosoft.SqlServer.DTEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ysMicrosoft.SqlServer.DtsObjectExplorerUI, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8a[CreatePubWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8c]DisableDistWizard, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8~Microsoft.SqlServer.NotificationServicesEnumerator, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8zMicrosoft.SqlServer.NotificationServices.Rules, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8xrMicrosoft.CompactFramework.Design.Data, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293yMicrosoft.VisualStudio.TeamSystem.Data.Common, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293xrMicrosoft.VisualStudio.TeamSystem.Data, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293xrMicrosoft.SqlServer.Management.Reports, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8icMicrosoft.SqlServer.Dmf, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8wqMicrosoft.SqlServer.Configuration.Dmf, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8}Microsoft.SqlServer.Management.SqlScriptingEngine, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.SqlServer.Management.SqlScriptPublishModel, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]Wenumbvt4sql, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8]Wenumbvt4vsd, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8Microsoft.VisualStudio.Data.Providers.SqlEverywhere, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293Microsoft.SqlServer.Management.ResourceGovernorUITasks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736AD6E5F9586BAC2D531EABC3ACC666C2F8EC879FA94F8F7B0327D2FF2ED523448F83C3D5C5DD2DFC7BC99C5286B2C125117BF5CBE242B9D41750732B2BDFFE649C6EFB8E5526D526FDD130095ECDB7BF210809C6CDAD8824FAA9AC0310AC3CBA2AA0523567B2DFA7FE250B30FACBD62D4EC99B94AC47C7D3B28F1F6E4C8]WSQLEnumTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8XRPerfTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8YSTestAll, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8^XOLAPEnumTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8`ZWMIEnumTest_MC, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8d^WMIEnumTest_SAlias, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8jdWMIEnumTest_SCNetLibInfo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8hbWMIEnumTest_SCProtocol, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8pjWMIEnumTest_SCProtocolProperty, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8e_WMIEnumTest_Service, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8uoWMIEnumTest_ServiceAdvancedProperty, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTBckDevTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8ZTSMOCLRTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8_YDBMirroringTE, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8
en-USTWrapNonExceptionThrows.System.Data.SqlClient.SqlClientPermissionAttribute, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089TUnrestrictedP8RSDSVMfN[fGMicrosoft.SqlServer.SqlEnum.pdb@^ P_CorDllMainmscoree.dll% 10HX 4VS_VERSION_INFO?DVarFileInfo$TranslationStringFileInfo000004b0LCompanyNameMicrosoft Corporation,FileDescription x,FileVersion11.0.3000.0 ((SQL11_PCU_Main).121019-1322 )` InternalNameMicrosoft.SqlServer.SqlEnum.dllp%LegalCopyrightMicrosoft Corp. All rights reserved.ILegalTrademarksMicrosoft SQL Server is a registered trademark of Microsoft Corporation.h OriginalFilenameMicrosoft.SqlServer.SqlEnum.dllLProductNameMicrosoft SQL Server<ProductVersion11.0.3000.0<	Assembly Version11.0.0.0p5=0=	*H
=0=10	+0L
+7>0<0
+70	0!0	+6/5Kdi
jf/003'80
	*H
0y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Code Signing PCA0
120904214209Z
130304214209Z010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR10UMicrosoft Corporation0"0
	*H
0
Il"e;abt)qX^W
ibn6N"ya%X,12>tW6SAiimVn&Msdqa!hX[I50Szk+!gtxa|*gٺc<N>}~H=uc )9AT8Td@7
"0# kYୟ`L
bZxvlL8G
0	0U%0
+0UQJ?óe,0U#0ҴX7.3L
0VUO0M0KIGEhttp://crl.microsoft.com/pki/crl/products/MicCodSigPCA_08-31-2010.crl0Z+N0L0J+0>http://www.microsoft.com/pki/certs/MicCodSigPCA_08-31-2010.crt0
	*H
*&zbx[ħxS(B?8d5HzOGڇLږdρ3x|mqaNds?{'4R?GCpSK*w{nF(1Ji]3<GEʋO	&n_ډZ^_|FGX+FQb_i\qV ,:Nh~;yB9I^pBułUUa003+92HH+0
	*H
0w10	UUS10U
Washington10URedmond10U
Microsoft Corporation1!0UMicrosoft Time-Stamp PCA0
120904211234Z
131204211234Z010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR1'0%UnCipher DSE ESN:C0F4-3086-DEF81%0#UMicrosoft Time-Stamp Service0"0
	*H
0
0ePZkH^Ip|_b_&Ӌ9".K:^92{x78:bhh@,6b`p9`b8o@

x6k&M)\HpF6&454\}1MW|֕
f2>,Հ_89]d7\;Q[]_4_(UpT|UF[((VL	H*03 lióN07ԘRԩ#E\AIObh	00U3S?`CƯ+X0U#0#4RFp
@v+50TUM0K0IGEChttp://crl.microsoft.com/pki/crl/products/MicrosoftTimeStampPCA.crl0X+L0J0H+0<http://www.microsoft.com/pki/certs/MicrosoftTimeStampPCA.crt0U%0
+0
	*H
~̰{/Vs۪R9ƴeHFfj&^Xc8F|+sAǪ7d9Ϋ%iFf2<ח2!%^B,3:Α%qrbpJP/"dMk,y짣1ڐ`n
?,$
j&QJucDiV:r
""rĜ(9f0FYz
cM#O-;G00
a3&10
	*H
0_10
	&,dcom10
	&,d	microsoft1-0+U$Microsoft Root Certificate Authority0
100831221932Z
200831222932Z0y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Code Signing PCA0"0
	*H
0
rY\0d`  BvSl>ok:t/2BN#r5W
ʮ IhMKyKqG%ߝuϪsDׁ6\Eܯ=(hrsV5rv_wE8s[gRi/t)v/T0Yҍb_F1P'@0r)("7N=2=͡8\NV(*2KOc-bE=F[&SzJF7<8w\V<	_^0Z0U00UҴX7.3L
0U0	+70#	+71N&`;1o<-0	+7
SubCA0U#0`@V'%*
SY0PUI0G0ECA?http://crl.microsoft.com/pki/crl/products/microsoftrootcert.crl0T+H0F0D+08http://www.microsoft.com/pki/certs/MicrosoftRootCert.crt0
	*H
Y9>&Fo@2j/nI_uL;-C-1#|P!]=/LVpyIr>Ai˥ -PV-JҼp
VชKWB4<VS#*NNҏr*qmSg"\͢'ycVDQXVݛED/_ڮԂ2ni穢,+e&	e8zJVx\5_ݓI-4D]5[!Θ	OmN=|)HrlpWW}HZϣg
t6-/r7o<gR3edoFy,
'@F`Ge`@NBNvy
4	m1TGdP.|!zA'iÓɍ؛!
\𢮆hj-vk{$jG1/q=~bGΈɸr=@ji7P=00
ah40
	*H
0_10
	&,dcom10
	&,d	microsoft1-0+U$Microsoft Root Certificate Authority0
070403125309Z
210403130309Z0w10	UUS10U
Washington10URedmond10U
Microsoft Corporation1!0UMicrosoft Time-Stamp PCA0"0
	*H
0
lH*|k.řQ#PN$ѧLt0 TIB\0&k{3$g,{N#SʍE	^аBlg(FS(F.'OUR,j0nY0~֗!~SmREHJGf')fJG	UxP0F#F-TxA1w̛;a
"KT 00U00U#4RFp
@v+50U0	+70U#0`@V'%*
SY䤡ca0_10
	&,dcom10
	&,d	microsoft1-0+U$Microsoft Root Certificate AuthorityyJLsX.e0PUI0G0ECA?http://crl.microsoft.com/pki/crl/products/microsoftrootcert.crl0T+H0F0D+08http://www.microsoft.com/pki/certs/MicrosoftRootCert.crt0U%0
+0
	*H
\D6鴭wyQM.tq[mξ{.mbWN Pz@WXx;⾏
ȍHSOjՀ/*$"px.
pNk
r9g-Qb\? ?21Jv1=+rp=

a׸N5+^}B{Sr!0ʻxe\[
<fX-/QVpl9Lyzb))4wb=m,C}㤨t5Nq#&v<RqZFCMgȟBy!0fB^Ȟ"!C+H,2L&*H$_ZVޙ:o'tv!'Tj=vanGo2lQȌ#fd=-Y!嵰cxTA.Pxuْu"/2n[%!OɚIeo}in꧗1)[\M/?.Uk1(D0(@00y10	UUS10U
Washington10URedmond10U
Microsoft Corporation1#0!UMicrosoft Code Signing PCA3'80	+0	*H
	1
+70
+710
+70#	*H
	1򰺟vzF?/P}0R
+71D0B SQL Server 2012http://www.microsoft.com/sql0
	*H
 yoWqWu36|WϨ_<:uSN
N+d)x<7#RDj:&n%~yƛޚ]J3?w?p
]xqc-*a4(ҋ`އIśD[PkENTP-}n)֧pޞ'䯎ښP\YWn~GR/4JfJ=R6KQ?8$+6}H;3-8W^%0$	*H
	1000w10	UUS10U
Washington10URedmond10U
Microsoft Corporation1!0UMicrosoft Time-Stamp PCA3+92HH+0	+]0	*H
	1	*H
0	*H
	1
121019214858Z0#	*H
	1w88,JG2Q0
	*H
*-qjـzq l4g	0Yyn2h
]~Kji;kd;^IZqBEnnGXM!qgiC.fsV?$xň)ٚN^-{c5EWrs7gFfKmBP^G!\>5gDTH27,kBPH ZDdžקڌ,t+]0#
+71#0#	*H
#0#10
	`He0\
+7N0L0
+70	010
	`He W]qYU_'ub'_S+=<
?003y
%XE0
	*H
0~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20110
120707001432Z
131007001432Z010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR10UMicrosoft Corporation0"0
	*H
0
Qs/ΰ=X?,˹]::HlT~ܸ*
m;Y%N`t۴UO?;A|GKaI aD<o`N3QPٲ>Fvͫr9q'ٟCT!cnHzܝP䶃"G*D>8.0+Asp)&9L/*Z6>)P@2'c:Ӝr5Ex(kdtE@o\-,0(0U%0+
+7L0Ua??P.Cqc\BF0U#0HndPӂ77"mu0TUM0K0IGEChttp://www.microsoft.com/pkiops/crl/MicCodSigPCA2011_2011-07-08.crl0a+U0S0Q+0Ehttp://www.microsoft.com/pkiops/certs/MicCodSigPCA2011_2011-07-08.crt0U00
	*H
Ck]dRoP(tqO'CMf`a;W~/=E3]v`yN^|#qzA"L̊WC֮3=f;vdbWC;GujHN2
Lf÷>LH92
x[+07wo\CR,Gasrc3aI_,5O}k>YڞְHa뀱F5i?r~#Cܶ	zե:ւMxK<J
DK݀/d=ͱJ&4p|
LL+E^s{B.>[
4RNq㑹sy
64,I`0 &d<BQp9JDr^B,,}ߍ^Dεblz0(@X^W/rWY4Jj`RA'MPW+`0z0b
a0
	*H
010	UUS10U
Washington10URedmond10U
Microsoft Corporation1200U)Microsoft Root Certificate Authority 20110
110708205909Z
260708210909Z0~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20110"0
	*H
0
r.nM4X!B*kZP8I7k8™91BӉ
yd~`$lIh^ߛS
,ï٩+z	זY`fv2R&/PϳD].uhm:\F8dnd5xc-@
\yI)
w=+ZMV(zr:I^C{{>]O/Y;-3Xŷ>2ӳ=8~ҝ,NV!5%9ndS#_R!t%_('(8%9J6|#faj(I_%]!K>RĵW?$z[/#p]QFwἬ_UK9#ID|Erzr$߿FWۃMI0[ݰf{KI)(}gbx_/W\w((m(,@7OD	LԥC/tnx X,]`>O3ڰޞNFlֈ00	+70UHndPӂ77"mu0	+7
SubCA0U0U00U#0r-:1CN1#40ZUS0Q0OMKIhttp://crl.microsoft.com/pki/crl/products/MicRooCerAut2011_2011_03_22.crl0^+R0P0N+0Bhttp://www.microsoft.com/pki/certs/MicRooCerAut2011_2011_03_22.crt0U 00	+7.00?+3http://www.microsoft.com/pkiops/docs/primarycps.htm0@+042 Legal_policy_statement. 0
	*H
g򆥘Ty.tg"cB}ye_.,>rm?
;Gic"5]e}FPU|K<BRаk>.)=Եw9dD=xz#}t&F*Šhh.*?*kXIc	inZF+;н5n%'(M=2-[I9

ƭQEX82q'',: iYhnot@*(>?MfMo}Ev@*e]Rbc6'ͥ]cA[>wuaaA(e/\֡FY	KH)ű?Ew5Ңzz"HG#kKux7yKֳ#hui;0Lumc=ѝVNOW"x2!zA
?̤]WqVNHEBɛv[
HkymmjRs
zP1000~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20113y
%XE0
	`He0
*H
	10	*H
	1
+70
+710
+70/	*H
	1" XRSC	#!s9]mpc>Me0R
+71D0B SQL Server 2012http://www.microsoft.com/sql0
	*H
T*r+ʾ2,!n=M_mȧ%TI<ڷp/R087ws 	q/}$/ޏTE&&/e3uwr;==r P
wFK?a}p]^9P?{lMRȠkrR#}Տo-9ޒi`C?$,ǦU&X2n2 RJڰj)j}e~#GWס.0*
+710	*H
010
	`He0<*H
	+'0#
+Y
010
	`He 4_`}[N(EwSx7"ĝPda20121019214859.09Z0010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR1'0%UnCipher DSE ESN:C0F4-3086-DEF81%0#UMicrosoft Time-Stamp Service0q0Y
a	*0
	*H
010	UUS10U
Washington10URedmond10U
Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100
100701213655Z
250701214655Z0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100"0
	*H
0

w: iktTե
|hK,_av>f+[S'1A	|a0Y0D`TCM8Bݓs0W&E
GͿ$`2X`FXG2tag_TϓLĦ]an(aF'$gr!KdPb]w=WuBM@Q>gfD~Knʱz*
1N5x</Dd 	xD]^O"M00	+70Uc:\1C{|F3hZmU0	+7
SubCA0U0U00U#0Vˏ\bh=[Κ0VUO0M0KIGEhttp://crl.microsoft.com/pki/crl/products/MicRooCerAut_2010-06-23.crl0Z+N0L0J+0>http://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0U 00	+7.00=+1http://www.microsoft.com/PKI/docs/CPS/default.htm0@+042 Legal_Policy_Statement. 0
	*H
Q
?q=!o1Wm0fjxǨ%kTW+QDS`v@@A\\^5$VKtBȯ7}Z?yJR8/ye٩kzoK0D$"<Y)p2J'U/3b_W@ΙfjbJ&9Jqc{!mÜ<}jxm8ؔƥ
B"8 %d~cY%z.9Wvqa˚Gͧ};q	]t"aڰPo1:eGxHr~akow˧	9؂r*T9[
Uzs;-3.)/T'!ȬN(ۖBAM*f0ӻt2Kc{/!YD<PqסUiW0M
]O8/X.
P5	'ճ~56_tI00
a 0
	*H
0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100
120220222922Z
130520223922Z010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR1'0%UnCipher DSE ESN:C0F4-3086-DEF81%0#UMicrosoft Time-Stamp Service0"0
	*H
0
7cEb7H[yyxe϶n)>) IHV?mv\7WyL'}*L|J:SzU\m @eE$
Cp`GY>K!gc":%Tz6SjV"D.QEHh2t^EF
+NIA2`<<9
pمB9jm
-ک'ۈ+.*1IG|ƥ_[4k9y9h{\dLߺ_00Uٚu<`0U#0c:\1C{|F3hZmU0VUO0M0KIGEhttp://crl.microsoft.com/pki/crl/products/MicTimStaPCA_2010-07-01.crl0Z+N0L0J+0>http://www.microsoft.com/pki/certs/MicTimStaPCA_2010-07-01.crt0U00U%0
+0
	*H
n 
A(kNѡh<5ȵBC(/dy}hP9lc9hJBV܍ǯGFo>P^woT&LG^6b.wtlhz_V#:%zoMBirZ<AD7zMԾ3;}NCmstlmax߹7pEr?U @I]i;0oPnpqkv(9V}v0^0㡁010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR1'0%UnCipher DSE ESN:C0F4-3086-DEF81%0#UMicrosoft Time-Stamp Service%
0	+]Rdv]kdܠ0010	UUS10U
Washington10URedmond10U
Microsoft Corporation1
0UMOPR1'0%UnCipher NTS ESN:B027-C6F8-1D881+0)U"Microsoft Time Source Master Clock0
	*H
+z0"20121019113522Z20121020113522Z0t0:
+Y
1,0*0
+z0
00
-
06
+Y
1(0&0
+Y

0`
0 0
	*H
wzU\<#5ru6[y67\ӪisE
•y*Bo63ۊR6򕙸Jmt6$co܀u./Qh/*IS@DO_gixL-{*:'UUy>ޗY`	<Ǎ)4onQ,}zTDLvʯ05f*T"rzby-p3f?(r!@1R(;G)9rFH21000|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 2010
a 0
	`He)0	*H
	1
*H
	0/	*H
	1" ^>ݐrXy
XUS/S]"^$70*H
	1000]Rdv]kd00~0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 2010
a 0v?q30
	*H
[&	UPv2>x\`A!G8C
iٞ8EL9ETN
[^#i{g/K=d=T8n)eTnP|MՌ'R֢dF<˪tUhSUc@I`Ec^ŇmE@*},4,8OR"|:ctҢ袵ޏtrz/X##OG*
[b"Z}\!D^K7
ݝ9Mt]	

Anon7 - 2022
AnonSec Team