????

Your IP : 18.221.238.5


Current Path : C:/inetpub/vhost/donthu.nextform.vn/
Upload File :
Current File : C:/inetpub/vhost/donthu.nextform.vn/Microsoft.SqlServer.SqlEnum.dll

MZ����@���	�!�L�!This program cannot be run in DOS mode.

$PELEh?��" 0Z"x � ���`��wO��d�#��vT  H.text(X Z `.rsrc��\@@.reloc�b@BxH���	L��Lv�f(
}s
}*"}*{*{*jo-
{,*(*^(-
{o
**>{o
�*
*{*"}*"}*{*"}*n,s�}{o�*Z{-*{o�*J(
s 
}	*2{	o!
*:{	o"
&*0:{	o#

+o
too$
-��u,o%
�*(0S
{	o#
+&o
to,
o
oo$
-��u
	,	o%
�*2@0D{	o#

+o
to,o
o$
-��u,o%
�*&2J{	o&
t*F{	o#
s�	*�(�rp}
}}
}*{
*�('
o(
.('
o(
3}
(�*0�('
o(
3*('
o(
.(�*(�o<-}
(�*t�
(o�o�(o)
&(!(
(�o
o�Y{-)rpZ(*
(+
rp(,
o+rpoo�o�1ss

+Y(�ot�	o3o)
&r'pZY(*
(+
r-po3(-
o4X(�o2�(�t�o�om	(�	oo,o�r5po
(,
oX
�Ko	,9+%(�ot�	o.
o4X(�o2�}
�
*QT�K�{
,$( ,(�(/
t�o*(�*0{
r9p(0
((1

,Gs2
%(*
o3
%o4
rpr�p(5
o6
&%o7

	o8
%o9
	o:
*s;
o<
o=
(>
o?
��%(�o@
o�o
1R�moA
+<oB
sC
�oB
���%o�YYo.
�o@
X2�sD
(E
(F
(G
*0�sH
%r�pr�p(,
oI
oJ
%oK
r�poL

,oM
}
%oK
r�poL

,oM
%oK
r�poL

,oM
}oK
r�poL

,}(�*0�{
r9p(0
((N
,*(�
o-*oo#
+,o
t�o�3(o�(O
,
� o$
-��u,o%
�*	*?8w0{
r9p(0
(�oP
,(�oP
�,(�oP
�i1:(�o=,%(�o=o!
,(�o=o!
1(Q
*(�oP
,)(�oP

+�( ,pX�i2�+\(�o=,O(�o=o#

+	o
t�o�( -�&	o$
-��	u,o%
�(Q
**�*�n{-(�*{(�*>}
(*0	(�t�
-s8
o;*(�*>(
((*>(
((*0y}}}}oF}{3oDo!
�}+{�}oDoG(*oD(+*0
}{|oy}}{@�+](1{o7

++{�-~R
o8
+{�o8
X{�i2�{o9
o:
(/-�{oS
}�X}{,{oT
{oS
}{oU
}}{oq}�*2{�X0�{�[}},oV
�+}
{,>(W
sX

{+!o&
t�o��oY
Xo!
2�o#

8�	o
t�o(�oZ
(O
,soZ
(5
�'r	poZ
rp([
(5
�&z�{�[}b{�[o(�(5
}c}{,Koo\
t�,3{�[o]
}a{�[}do�X%{2�!	o$
:�����	u,o%
�*AL��,��',~�0�s2
}{(*
o3

o#
8�o
t�oZ

o^
, oZ
rKpo_
,r�p
+r�p
	r�p(`
-'{o4
o�"(a
sb
oc
+"{o4
o	(d
sb
oc
{-X%
{2�!o$
:L����u,o%
�*$���{3{o9
{oe
of
*{og
*�{3{o9
{oe
of
*{�*�{3{o9
{oe
o8
*{�*0i
{oh

,X{{oi
&�D&+2{{og
��&{{oj
��X{�i2��*)?-#D-0�{-*
+O{�[{d,8{�[{d{�[{a(-o�(.X
{2�+-{�[{d,{�[{do�X{2�*0{-*
8�{�[{b(k
9�{�u�:�{�[{b(�,+{{�[{b{�(l
�8z{�u.,A{�[{b(�,){{�[{b(m
on
�8(�+%{�[{c�{�[{b oo

	(p
,${	�%{��oq
�8�Џ(a
{�[{c(r
9�{�[{b �+oo

	(p
,q	�oq
,_{�[{brOp�+%Џ(a
�os
(t
,%�%{��ou
&{�X
{?���*6(1(0*2{ov
*2{ow
*
*0\}{,2{ow
-%{,{oT
{oU
}{,{oq}*0e{-V{ox
}+"{o9
{o9
oy
Yoz
{2{o9
oy
{0�{*
*B(/%,(2*0q{o9
oy

}+(0{X}{2�{o4
oy
Y+{o4
o{
Y{/�{*F{o9
oy
*0A{,{o|
{,{oS
{,{oU
}*{*�{1{1{o}
X*&{�*N{o~
(?*6(?��*6(?��*0,(?t
�i1�i+jj(
j*6(?��*0+(?t
�i1�i+i(�
j*
*Z(>{o�
*6(?�1*6(?�2*6(?��*�(>(7o4
o�
o�
*6(?��*6(?�3*6(?��*6(?��*6(?��*Z(>{o�
*N{o~
(>*6(?t�*"(?*0D�i
{2+{+(?�X2�
+	�	X
	{2�*Z(>{o�
*(
*0�r[p�/rqp�0r�p�1r
p~1rfp(,
�2rjp�3r�p�4r�p�6rp�8r(p�9��%rvp�%~/�%r�p�%~2�%r�p�(�
�:r�p�;rp�<rFp�=r�p�>r�p�?r�p�@sW�A~2�Brp�Cr$p�DrPp�Erfp�Fr�p�G��%~2�%r�p�%~/�%r�p�%~3�%r�p�%~4�%r�p�%~6�%	r�p�%
~0�%r�p�%~:�%
r�p�%~?�%r�p�%~@�%r�p�%~9�%r�p�%~;�%r�p�%~=�%r�p�%~<�%r�p�%~>�%r�p�%~8�%r�p�(�

~As�
}-��%~B�%r�p�%~C�%r�p�%~D�%r�p�%~E�%r�p�%~F�%	r�p�%
~G�(�
~ADs�
}.*0FPo�
Q8�Po�
r
po�
o�
,vrpPo�
r
po�
o�
](�rp(,
}#Po�
r
po�
o�
}{Po�
r
po�
o�
X} 82Po�
rpo�
o�
,`Po�
rpo�
o�
}#Po�
rpo�
o�
}{Po�
rpo�
o�
X} 8�Po�
r4po�
o�
9�-*Po�
r4po�
o�
}#Po�
r4po�
o�
}{Po�
r4po�
o�
X} 
rp{#""(�rp(,
}#+Po�
QPo�
:@���Po�
,`Po�
QPo�
rLpo�
o�
,?Po�
rLpo�
o�
}%{ Po�
rLpo�
o�
X} {#o�
�*0�(Y-*Po�
rdpo�
o�
9�{#}"~�
}#{
~�
}%(Y-*}Po�
rdpo�
o�
,A{"}${#}"~�
}#~�
}%(Y-*}{#o�
1{1{ {�+(�
**(\*0g�}}}}} }rlp}#rlp}!rlp}%rlp}"}}'}&rlp})rlp}(~A{-o�

8�o�
r
po�
o�
9k{9�{.9�rnpo�
r
po�
o�
(`
- o�
r
po�
o�
}89�{;�r|po�
r
po�
o�
(`
- o�
r
po�
o�
}8�r�po�
r
po�
o�
(`
-/{.$o�
r
po�
o�
}}+l*{3{;�{:�*r�po�
r
po�
o�
(`
-$}o�
r
po�
o�
}+*o�

o�
:i���8�o�
r
po�
o�
,fo�
r
po�
o�

	r�po�
,9o�

o�
r
po�
o�
r�po�
-*}!+	}!+o�

o�
:q���(Z,r�p{!(`
9�{!o�
19{#o�
1+{2"{1{ {1{&�+(�
*o�
r
po�
o�
,$r�po�
r
po�
o�
(`
,*o�

o�
-��}} rlp}"rlp}#(Z{}&{ }'{"}({#}){$}*{!o�
1U{#o�
1G{2>{15{ {1'{)o�
1{&1{'{&�+(�
*0�
~A}+~A},
~A{-o�
8�1Ao�
r�po�
o�
,Y
+o�
r�po�
o�
,X
=7o�
r�po�
o�
,-o�
o�
X*8o�
rpo�
o�
,o�
*o�
rpo�
o�
,8�o�
r�po�
o�
,X
~A}+8�o�
r po�
o�
,+~,<o�
r0po�
o�
,$~Ao�
r0po�
o�
},+?o�
r<po�
o�
,
+#	, o�
rXpo�
o�
,o�
*o�
o�
:o���*0
��%rfp�%rtp�%r�p�

~A{.o�
8�-/o�
r�po�
o�
,-A1=o�
r
po�
o�
,%%X�o�
(`
,3o�

o�
r�po�
o�
,o�
r�po�
o�
,,*3	*o�
o�
:@���,*3	**(
*0�t�
o�r�poR(�
&r 	p(1
r*	p(1
-,,,(�s�
z,o�(*
r<	p(�
oR+o�rj	poR,o�(*
r�	p(�
oR+o�r�	poR(Q
(�*(�*{�*"}�*b(
ofs�
}�*N(
ob}�*:{�o�
*6{�o�
*0:,{�{�o�
&*{�o�
t:
{�o�
o�
&*01
+"{�o�
,{�o�
-*X
of2�*0K-*{�o�
t:{�o�

+o�
{�o�
.*Xof2�*V(
}�(r*�(
}�(r}�(o*�{�,%{�(�
-{�{�o�
}�*0S{�o�
}�{�o�
{�o�
-({�o�
�&{�{�o�
�}�**
7�{�{�o�
{�,{�o�
*0�u;}�{�,*u>
,
o�
}�*u?,
s�
}�*u@,
s�
}�*uA
	,	o�
s�
}�*(�s�
z�s 
}��ts�
}�{�{�o�
*:{�o"
&*�{�,{�{�o�
}�{�}�*0\-*o�
tDo�
2&{�o�
-{�o�
o�
�&
�*o�
tDo�
 ��3***&8D0/{�o�
&�
(v,{�o�
&+��*C0V
{�o�

�(v,{�o�

+��,#o�
,o�
oy
1
o�
o�
**C02 
{�o�

�(v,{�o�

+��*C0
!(y*2{�o�
*2{�o�
*2{�o�
*2{�o�
*0,"sm
oposow�ouoq�*
0#sm
opow�oq�*
	Rs
%o)
&(�*Zs
%o)
&(�*>(�o:**(�*0�$sm
ops'
+	o.
ow	X
	o
Y2�	o.
o)�Ao�
tDo�
/obo�
1obow�&��,	-o6�*(lzC:K4Cn
6smo�*0�%u;9�o�
(�
-(`
-sm
o�*o�
3bo�
,Zsm
(*
r�	p](�(�
owo�
�=o�
,(*
r�	p](�(�
ow�&��sn
o�*	*u'�,j
t,0?&(p
+o.
(wX
o
Y2�o.
(x�(q�*060)'u!
,*uF,o�
*sm({*0>(u�,�"(a
(�
,�"*uF
,o�
*sm(|*0>(u�,�#(a
(�
,�#*uF
,o�
*sm(}*2sm(~*0N
(�.:r
p'(�rD
p(,
(�o9
oe
of
o�
(�
+
�&�*GI0�)�(a
%-&+o�
(�

~Ho�
,~Ho�
�*�(a
(�
o�
+so
��(a
�o�
(�
�Ъ(a
(�(+u�
	,+	o� o�
o_
,~H�o�
�*o$
-��u,o%
�(�	s�
z*P�0n�(a
��(�
,�(a
(�
�(+*r�
p @r�
p�%���%�(a
�(�
(�	s�
z0n�(a
��(�
,�(a
(�
�(+*rpp @r�
p�%���%�(a
�(�
(�	s�
z0l*�(a
�o�
(�
�Ы(a
(�(+u�
r�p @r0p�%��(�
,o�*~�
*0p+�(a
�o�
(�
�Ъ(a
(�(+u�
-$r�p @r�p�(�
(+(�
,o�*~�
*.s�
�H*:(�
}I*{I*"(�*"(�*:(
}N*{J*"}J*{M*"}M*2{MoV
*6{Mo�
*{K*"}K*{L*"}L**{O�*
*0s,o�-j~�

(�o�
o�
+%o
t�
-r
p(�

	(�

o$
-��u,o%
�(�	s�
z*!1R0R-o
�}O
o�
+o�
{O%X
o�o�
-��u
	,	o%
�*&@0:{N,*}N
+{O{O�o\
�X
{O�i2�*0H
oy
Y+5X[oe
o�
o�
o�

	3Y+	3X
+*1�*06(�
/*Y
1Yoe
o�
o�
(N
-�*Zo�
r
p(5
(r
*>(�(�*R{O���o,*:(���*:(���*0.(�
(�,*t�**:}P(�*
*�,:r"
p(N
-rB
p(N
-+(���+(��}*^{P/(�{P*^{P/(�{Q*n(�,(���*j*0)/j
}Q(�
(�}Qi}P*0d0L
L ���j1U j[ljULl4LjXUL ���j1. j[lijULl4LjXUL ���j1jU****0i(�,~R
*��
(�,~R
*��1/~R
* '[d[d]d] '[d[d]d]s�
�1*^(�(�(�*(�*0-(�
1 '[d[d]d]s�
�1*(�*0-(�
1 '[d[d]d]s�
�M*(�*0e1
(�(�-��
0~�
�1* �(�
 [ ]<[<](�
	(�
�1*(�*0n1
(�(�-��
0* �(�
 [ ]<[<](�
(��1	(�
(�
�M*(�*0(o�
(�-d.,	(+
+
*0o�
(�-(+
*0]2
Trj
p(�(N
,D(�o�
o�
o�
r�
p(N
,

(+Tr�
p(N
,

(+T*0 �0e �0;� �;�8� �YE\�bhnt����z �.x8� �0 �.i �.g8� �.` �YEJ\PV+Zr�
p*r�
p*r�
p*r�
p*r�
p*r�
p*r�
p*r�
p*r�
p*r�
p*r�
p*r�
p*rp*r
p*rp*rlp*0J(�(�o�
	/(�(�(���*(�(�(���*(�*�(*
rp(�'(�(�'(�(�
*0�3(�
,@(�-6(*
rrp(�'(�(�'(�(�
(�

-((*
r�p(�'(�(�
(�

+5(*
rrp(�'(�(�'(�(�
(�

*0�4(�
9�(�	 $.B� �f5l �
�5& E; }�;{ �
�;�8f IF�5 &T�;* IF�;8C �X�;N �f;�8( �k�&5& [��$;� ���%;� �k�&;�8� f��)5 >�(;� f��);c8� 6�-; $.;�8� �Z�x5l ��b5& ���X;� �a;. ��b;88� 	�h5 3��c;� 	�h;*8c �U�u;� �Z�x;�8H X���5; Ujӂ5 ��{;� Ujӂ;Q8 �|��;| X���.|8 T�I�5 �Eږ;� T�I�.G8� eY��. &��;�8�r�p(N
:Q8�r�p(N
:K8�r�p(N
:E8�rp(N
:?8yrp(N
:98dr$p(N
:38Or*p(N
:-8:r0p(N
:+8%r6p(N
:B8r<p(N
:@8�rBp(N
:>8�rHp(N
:)8�rNp(N
:#8�rTp(N
:8�rZp(N
:�8�r`p(N
:�8}r�
p(N
:�8hrfp(N
:�8Srlp(N
:�8>rrp(N
:�8)rxp(N
:�8r~p(N
:�8�r�p(N
:Q8�r�p(N
:<8�r�p(N
:�8�r�p(N
:p8�r�p(N
:j8�r�p(N
:h8�r�p(N
:b8lr�p(�*r�p(�*r�p(�*r�p(�*rp(�*rDp(�*rnprzp(�*(�-r�przp(�*r�p(�*r�przp(�*r�przp(�*r�p(�*r�p(�*rp(�*r
p(�*rp(�*r,p(�*rbprzp(�*rzp(�*r�przp(�*rrp(�*r|p(�*(�(�	s�
z"(�*(�*0r{R-(�.(�}R
,3r�p(N
-r�p(N
-r�p(N
-
+

+
+
{Ro
2*{Ro.
*"}R*(�*r(�}S}T}U*0j5(�
(�(�{S,$(*
r�p����](�(�
*}S(*
r:p����(�
*0^6{T,*}T	��}U(�(�(o#

8�o
tB
8�o�
	o�
o�
 	@�o�
	o�
o�
rnpo�
o�
Yo�
2iXo�
%o�
0o�
o�
{U%Xo�
Yo�
�	X
	o�
o�
/{U�i?b���	X
	o�
o�
/{U�i?'���{U�i2�(o$
:�����u,o%
�}U*A5
B07(�{U9�9�(�	
 *��G5> �C�	5 (	;� �C�	;�8� ]y�!;� *��G;�8� 	�Ay5 ~�>P.: 	�Ay.G8� ��}. �i6�;�8hrvp(N
:�8Sr�p(N
:�8>r�p(N
:�8)r�p(N
:�8r�p(N
:�8�r�p(N
:�8�rp(N
:�8�r<p(N
:�8�{U�(*
(�
��*{U�(*
(�
��*{U�(*
(�
��*{U�(*
(�
��*{U�(*
(�
��*{U�(*
(�
��*{U�(*
(�
��*{U�(*
(�
��**>}U}T*0v8(�,~�
*t�j
��%.�o�
�i.~�
*
+*	�(*
(�
j%XZ_bjZX
X	�i2�s�
*(�*z(�,*t�&t�(�
*(�*0(9
(�(�
{V-Bo;3#rbp�3(�
(�(�}V+r�p(�(�}V{Vo9
o�
+$o
t 
	of
�3(�
,	
�o$
-��u,o%
�-~R
*9g(�	 ���Z5L �Ů05 !�F;� �Ů0;J80 �&�;; )�]?; ���Z.|8
 �C��5& B%c;� �<�;� �C��.b8� @��.i ���.! ���@�r�p(N
:�8�rp(N
:�8�r6p(N
:�8~rTp(N
:�8irlp(N
:�8Tr�p(N
:�8?r�p(N
:�8*r�p(N
:�8r�p(N
:�8r�p(N
:�8�rp(N
:�8�rpo�
*r>po�
*rppo�
*r�po�
��-+��*r�po�
��-+��*r�po�
��-+��*r�po�
r�po�
(�*rpo�
*r:po�
rVpo�
(�*rrpo�
*r�po�
**l0�(�*0z:(�
(���%r�p�%(��%r�p�%(��%r�p�(�
(�(�o9
oy
1o9
oe
rpo�
**(�*N(�o�
sV*(�*
**# @*0a;{Y(�
,Mrp(�(�
o9
oe
of
t�}Y{Y{Yo�
Yo�
}Y{Y*0Z{X-K(�(�o�
	2(�+(�}X(*
{X{W'(�(�
}X{X*�r|p(�,(�3(�(���+,*(;*0@r�p(�,r�pr�po\r
p(�,r
pr0po\rpp(�,rppr�po\r�p(�,r�pr�po\rp(�,rpr0po\r^p(�,r^pr�po\r�p(�,r�pr�po\rp(�,rpr4po\rtp(�,rtpr�po\r�p(�,r�pr0po\r�p(�,r�pr�po\*0j<sC
(�rp(�-
r4p(�,r>prLpo\rp(�,rpr#po\r4p(�,.rpr&po\(�(�3r�prpo\r|p(�,M(�(�(�03(3r|pr�po\+r|prpo\+r�po\r� p(�,r� pr,!po\r1#p(�,r1#pr#po\rb%p(�,rb%pr�%po\r�&p(�-
r'p(�,r�&pr='po\r'p(�,r�(pr�(po\r�(p(�,r�(pr�(po\rm)p(�,rm)pr�)po\r�&p(�-r'p(�-
rp(�,r�)poVr�*p(�,r�*pr�*po\r�+p(�,r�+pr�+po\r�,p(�,r�,pr�,po\rC.p(�,(�(�,rC.prc.po\rJ/p(�,rJ/prX/po\r	0p(�,r	0pr/0po\r�0p(�,r�0pr41po\r2p(�,r2prc2po\rt3p(�,rt3pr�3po\ra4p(�,ra4pr�4po\r�5p(�,r�5pr�5po\r�6p(�,r�6pr�6po\(�oa*0"=sC
(�rp(�-
r4p(�,r>pr�7po\rp(�,rpr�8po\r4p(�,rpr,9po\r�&p(�-
r'p(�,r�&pr�9po\r'p(�,r�(pr;po\rm)p(�,rm)pr�po\r�*p(�,r�*pr�;po\(�(�o�
2o�
 �2(�oa*0krT<p(�,]r�<poR(�(�o�
	/
r�<poR+r�=poRr?poRrT<pr@po\r)@poT*0Z
>(�(�
(�}W{W(9{�-rC.p(`
,~R
8
9	
(�	 l���B6 /�:B� �ʩ5C ��05 扒;� ��0;C8�	 8�g;� �ʩ;i8�	 ��,5 �3�;� ��,;*8w	 sJ7;C /�:;�8Z	 ��\5C �xFX5 s�kK;� �xFX;!8+	 }�xY;� ��\;�8	 J27m5 ���`;� J27m;�8� #�rv;6 |T�~;� l���;�8� |�G�B� [$�5C d�>�5 �H�;� d�>�;e8� ئߊ;� [$�;r8g �1R�5 � 5�;q �1R�;�8A Ы��; |�G�;�8$ ��ҹ5C c�g�5 F��;y c�g�;�8� 誓�;� ��ҹ;�8� F6x�5 �l��;! F6x�;�8� �	��;� x��;3 �r�;8�rp(N
:�8tr4p(N
:�8_r�&p(N
:.8Jr|p(N
:�85r� p(N
:8 r1#p(N
:8rb%p(N
:+8�r'p(N
:=8�r�p(N
:�8�r�(p(N
:�8�r�p(N
:�8�rm)p(N
:�8�rp(N
:s8xr�p(N
:^8crpp(N
:I8Nr�p(N
:489r�p(N
:8$r^p(N
:
8r
p(N
:�8�rp(N
:�8�rtp(N
:�8�r�*p(N
:�8�rJ/p(N
:�8�r	0p(N
:�8�r�0p(N
:w8|r2p(N
:b8grt3p(N
:M8Rra4p(N
:88=r�5p(N
:#8(r�6p(N
:8r�,p(N
:8�rT<p(N
:'8�r�+p(N
:K8�rC.p(N
:]8�#(�-��o�
	/I{�oe
r>po�
��{�oe
rpo�
��Y(�ZX��+H{�oe
r>po�
��{�oe
rpo�
��lY(�ZX����#A�#��8�#{�oe
rpo�
u�,
��
	{�oe
o�
o4
r�po�
,{�oe
r�po�
(
+{�oe
r>po�
��-+	#X(�Z#�@[��8!o�
	/.{�oe
r�&po�
��(�Z��8�{�oe
r�&po�
��l(�Z��8�(�0(�(�3'{�oe
r|po�
(
��8|+4{�oe
r|po�
o�
{W(N
,+X{�oy
2�(
��8{�oe
r� po�
�2�28�{�oe
r1#po�
�2�28�{�oe
rb%po�
(
��8�o�
	/J{�oe
r�(po�
��{�oe
r�&po�
��Y(�Z��8U{�oe
r�(po�
��{�oe
r�&po�
��Yl(�Z��8
{�oe
o�
8�o�

?�{�oe
r�,po�
8�o�
?�o�
 �?�{�oe
rT<po�
8�o�

?�{�oe
r�+po�
+go�
	/(�,*t�(�+B(�(�,{�oe
rC.po�
(�,~�
*t�(�*0)3,o�
-~�
*~�

(�
�(
�*	 Ov~�
}W~�
}Y(<*
*0L?
(�(�o�
2r]@p
+*o�
2rpCp
+o�
	2r%Fp
+r`Hp
*�(�,.(�(9{�,{�oe
o�
+*(<*0�4(�,*{Z-r9Kp
(�(�}Z9�(�	 �%d5# Q�<;� ���^;� �%d.78� �)��5 ��~.7 �)��.Y8i Wo6�.7 �|c�.n8TrPSp(N
:�8?r|Sp(N
:�8*r�Sp(N
:�8r�Sp(N
:�8rTp(N
:�8�r<Tp(N
:�8�rbTp(N
:�8�{Zo9
oe
of
8�{Zo9
oe
of
8�{Zo9
oe
of
+j{Zo9
oe
of
+O{Zo9
oe
of
+4{Zo9
oe
of
+{Zo9
oe
of
*(�*0o@
(�(�-'(*
r�Tp(���(�
(�(�
o9
oy
1!o9
oe
r�Wpo�
����**(�*�r�Wp(N
,(�(��"*r�Wp(N
,(�(���**(�*:(�}[*0�A{[:�s;

(�o�
o
rXp(�
(
o?
o=
o<
��%r%Xp�%rGXp�o@
�r%r%Xps
�o
(�(
(G
}[{[*~(�,~R
*(�o�*
*"}[*(�*0�B(�
o9
r%Xp(�1~R
*s�o9
oe
rGXpo�
o�
(
	o	ohX%o9
oy
/#o9
oe
r%Xpo�
o�
(N
-�*0�79�(�	
 5�B� ��6Bh õ&B) ��o
B� ��"5> �-�5 _�;� �-�;�8x L=�;�
 ��";88] Dź5 Y��;' Dź;8: 6�;� at.;�
 ��o
;d8 q��
5> 2s�5 ���
;� 2s�;�8� p�;� q��
;�8� 06/5 �);�	 06/;�8� $;
 ?Q;� õ&;8� uc*B� S�; 5> �9&5 $&;� �9&;[8O ��;� S�; ;F84 R�R!5 �*L!;_
 R�R!;8  o�!;V C�O); uc*;/8� ���15I �-5 ���*;R �-;�
8� }�5-;� ��I-;� ���1;�8� ��35 �F2;� ��3;�8w UH�3;5 |�6;� ��6;f
8Q ��YB4 ��LB� �O95> NQA85 ZW�7;V NQA8;�8 8�8;� �O9;=8� C�<5 }��9;� C�<;�
8� ���A;� %,[J; ��L;
8� ʒV5I $PEP5 �55O;� $PEP;�8� ��P; :`�T;� ʒV;�8[ �~YW5 �!�V;v �~YW;�88 a�W;E
 �x?Y;� ��Y;f8 �֦qB� ^=lb5> �3�]5 ��];S �3�];8� >�];` ^=lb;'8� E��f5 �R�c;
 E��f;|	8� �$�h;q
 [��i;. �֦q;%8x JF|5I ��v5 '�s;l ��v;�8M d�y;W ͩ8y;; JF|;�8' ��|5 3��|;� ��|;�8 ���};U
 �K�~;� 5�;�8� �Am�Bs n��B4 hŗB� ��p�5> �㮊5 [�ނ;] �㮊;z8� nE;�; ��p�;�8w Z�x�5 �o�;�
 Z�x�;�8T �9�;� ��9�;0 hŗ;8. Z�:�5I ��5 ñ�;4 ��;�8 ��ՙ;L �W�;�
 Z�:�;K8� F#��5 hpd�;i F#��;$8� ���;� j�
�;!	 n��;@	8� ��J�B� v��5> �,�5 �V�;� �,�;�8^ ����;s v��;�8C �_�5 {>M�;i �_�;$8  ��Ʒ;�	 �;�	 ��J�;�8� 3=�5I �4�5 ^�:�;� �4�;]8� �lY�;�
 ��8�;> 3=�;�
8� �&��5 N=�;� �&��;
8� ���;� @��;� �Am�;O8` Զ��B4 9?��B� (�5> �F��5 ���;"
 �F��;�8 �	��;� (�;u8 �$x�5 �[*�;� �$x�;�8� ax��;� �F��;� 9?��;�8� w���5I q��5 ���;� q��;�8� ���;� ]Tr�;� w���;&8j ���5 �0�;R ���;8G ��#�;d 0�;� Զ��;S8! �^~�B� k���5> �-�5 �j��;� �-�;	
8� ���;� k���;�8� -��5 ����;� -��;�	8� i��;0 ����;i �^~�;�8� ��+�5I o���5 d��;� o���;�
8\ dO��;� ����;� ��+�;_86 �u�5 �uH�;� �u�;�8 �?�;� ���;� -��;8�rqXp(N
:S8�r�Xp(N
:D8�r�Xp(N
:58�r�Xp(N
:&8�r#Yp(N
:8�rQYp(N
:8oroYp(N
:�8Zr�Yp(N
:�8Er�Yp(N
:�80r�Yp(N
:�8rZp(N
:�8r;Zp(N
:�8�rsZp(N
:�8�r�Zp(N
:�8�r�Zp(N
:�8�r=[p(N
:r8�rm[p(N
:c8�r�[p(N
:T8sr�[p(N
:E8^r�[p(N
:68Ir#\p(N
:'84rS\p(N
:8rq\p(N
:	8
r�\p(N
:�
8�
r�\p(N
:�
8�
r�\p(N
:�
8�
r]p(N
:�
8�
r1]p(N
:�
8�
rS]p(N
:�
8�
rs]p(N
:�
8w
r�]p(N
:�
8b
r�]p(N
:�
8M
r�]p(N
:s
88
r�]p(N
:d
8#
r
^p(N
:U
8
rC^p(N
:F
8�ro^p(N
:7
8�r�^p(N
:(
8�r�^p(N
:
8�r�^p(N
:

8�r�^p(N
:�	8�r_p(N
:�	8{r_p(N
:�	8fr1_p(N
:�	8Qri_p(N
:�	8<r�_p(N
:�	8'r�_p(N
:�	8r�_p(N
:�	8�r�_p(N
:�	8�r`p(N
:t	8�r-`p(N
:e	8�r[`p(N
:V	8�r�`p(N
:G	8�r�`p(N
:8	8r�`p(N
:)	8jr
ap(N
:	8UrUap(N
:	8@r�ap(N
:�8+r�ap(N
:�8r�ap(N
:�8rbp(N
:�8�
rIbp(N
:�8�
rybp(N
:�8�
r�bp(N
:�8�
r�bp(N
:�8�
rcp(N
:�8�
r'cp(N
:u8n
rAcp(N
:f8Y
recp(N
:W8D
r�cp(N
:H8/
r�cp(N
:98
r�cp(N
:*8
rdp(N
:8�	r7dp(N
:8�	rQdp(N
:�8�	r�dp(N
:�8�	r�dp(N
:�8�	r�dp(N
:�8�	r�dp(N
:�8r	r�dp(N
:�8]	r+ep(N
:�8H	rYep(N
:�83	ryep(N
:�8	r�ep(N
:v8		r�ep(N
:g8�r�ep(N
:X8�rfp(N
:I8�r-fp(N
::8�rGfp(N
:+8�refp(N
:8�r}fp(N
:
8vr�fp(N
:�8ar�fp(N
:�8Lr�fp(N
:�87r	gp(N
:�8"r%gp(N
:�8
rQgp(N
:�8�rmgp(N
:�8�r�gp(N
:�8�r�gp(N
:�8�r�gp(N
:w8�r�gp(N
:h8�r-hp(N
:Y8zr[hp(N
:J8erwhp(N
:;8Pr�hp(N
:,8;r�hp(N
:8&rip(N
:8r?ip(N
:�8�rmip(N
:�8�r�ip(N
:�8�r�ip(N
:�8�r�ip(N
:�8�rjp(N
:�8�rIjp(N
:�8~rejp(N
:�8ir{jp(N
:�8Tr�jp(N
:x8?r�jp(N
:i8*r�jp(N
:Z8rkp(N
:K8r;kp(N
:<8�rYkp(N
:-8�rokp(N
:8�r�kp(N
:8�r�kp(N
:8�r�kp(N
:�8�r�kp(N
:�8mrlp(N
:�8Xrlp(N
:�8CrSlp(N
:�8.r}lp(N
:�8r�lp(N
:�8r�lp(N
:�8�r�lp(N
:y8�rmp(N
:j8�rKmp(N
:[8�rkmp(N
:L8�r�mp(N
:=8�r�mp(N
:.8qr�mp(N
:8\r�mp(N
:8Gr�mp(N
:82rnp(N
:�8rnp(N
:�8rMnp(N
:�8�rknp(N
:�8�rynp(N
:�8�r�np(N
:�8�r�np(N
:�8�r�np(N
:�8�(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*( *(!*("*(#*($*(%*(&*('*((*()*(**(+*(,*(-*(.*(/*(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*({*(|*(}*(~*(*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(g*(�*0�C(�
o9
r%Xp(�1~R
*so9
oe
rGXpo�
o�
(
	oAohX%o9
oy
/#o9
oe
r%Xpo�
o�
(N
-�*0$$79$(�	
 [�ނB� �O9BY $&B� {<�	B� o��5T L=�5& _�;� �-�;_ L=�;O8�# ��; ��";) o��;�8�# N�85& ��;� Y��; N�8;�8[# 6�5 Dź;G 6�;�88# at.;F {<�	;q8# ���5T 2s�5& ��o
;� ���
;� 2s�;g8�" p�;� q��
;\ ���;�
8�" $5& �);H
 06/; $;8�" ?Q5 �.;b ?Q;�8p" õ&; $&;8U" }�5-B� �*L!5T ���5& �9&;� �V�;. ���;�8" ��;� S�; ;� �*L!;8�! C�O)5& R�R!;�  o�!;X C�O);�8�! ���*5 uc*;� ���*;�8�! �-;� }�5-;�8�! ���35l ���15& ��I-;�
 t0;� ���1;�8L! �F25 i�02;$ �F2;�8)! ��3;� ���3;�8! ��65& UH�3;m |�6; ��6; 8�  NQA85 ZW�7;� NQA8;8�  8�8;� �O9;P8�  �t�`B� :`�TB� ��L5T ���A5& }��9;� C�<;� ���A;a8V  :�FI;j %,[J;
 ��L;�80  $PEP5& �55O;Q kd�O; $PEP;�8  u�Q5 ��P;� u�Q;{8� q8S;/
 :`�T;.8� �x?Y5T �!�V5& ʒV;i �5
V;� �!�V;'8� �~YW;T a�W;� �x?Y;/8h ��]5& ��Y;� �+^Z;9 ��];1	8: >�]5 �3�];� >�];�8 �`;7 �t�`;�8� �
�qB� E��f5T 0Cc5& �(�a;� ^=lb;� 0Cc;�8� �R�c;� F�d;� E��f;�
8� [��i5& ��fg;6
 �$�h; [��i;�8g �b$m5 t�oj;d �b$m;8D �֦q;� �
�q;I8) JF|5l '�s5& d/Fr;� a�s;� '�s;�8� d�y5 ��v;v	 d�y;�8� ͩ8y; JF|;�8� ���}5& 3��|;�
 ��|;� ���};�8� mf�5 �K�~;g mf�;�8d 5�;$ [�ނ;�8I �&��BY ���B� hŗB� nE;�5T �㮊5& �F�;� ��/�;^ �㮊;'8� |��;V ��ƍ;	 nE;�;�8� �o�5& �XҎ; ��p�;� �o�;a8� �9�5 Z�x�;T �9�;f	8{ ��9�;(
 hŗ;�8` !Y��5T ��ՙ5& ñ�;� ��; ��ՙ;g8* �W�;[ �*�;�
 !Y��;�8 ���5& Z�:�;> hpd�;. ���;�8� T�U�5 �
�;� T�U�;;8� F#��;E ���;L8� �wm�B� ����5T [��5& j�
�;� n��;9
 [��;8W �V�;$ �,�; ����;�81 X���5& ��;� v��;� X���;8 {>M�5 �ů;' {>M�;8� �_�;� �wm�;�8� v��5l �5& ��Ʒ;  �q��;� �;�
8� �&Һ5 ��J�;�	 �&Һ;8l ^�:�;r v��;�8Q �lY�5& �4�;c �m�;
 �lY�;�8# 3=�5 ��8�;� 3=�;
8 N=�;� �&��;a8� Զ��B� ax��B� ���5T �Q��5& ���;�
 JG(�;� �Q��;L8� @��; �Am�;/
 ���;)8s �	��5& ����;� �F��;3 �	��;�8E �[*�5 (�;� �[*�;�	8" �$x�;� ax��;�8 ���5l �F��5& �|��;C 3'�;2 �F��;�	8� ���5 9?��;� ���;�	8� q��;H ���;8� �0�5& ]Tr�;y w���;_ �0�;�
8e ��#�5 ���;9
 ��#�;�8B 0�;� Զ��;�8' �^~�B� 'v��5T ���5& �j��;�	 �-�;` ���;r8� ���;8 �p�;�	 'v��;�8� �M��5& k���;� ����;
 �M��;�8� i��5 -��;�
 i��;W
8o ����; �^~�;s8T �uH�5l dO��5& d��;B o���;� dO��;�8 ��+�5 ����; ��+�;8� KZ�;� �uH�;>8� ���5# �u�;�	 ��;+ ���.m8� ���5 �?�;�
 ���;�8� -��;� 5��;s8wrqXp(N
:i8br�Xp(N
:Z8Mr�np(N
:K88r�Xp(N
:<8#r�Xp(N
:-8r#Yp(N
:8�rQYp(N
:8�roYp(N
:8�r�Yp(N
:�8�r�Yp(N
:�8�r!op(N
:�8�rWop(N
:�8{r�Yp(N
:�8frZp(N
:�8Qr;Zp(N
:�8<r�op(N
:�8'r�op(N
:y8r�op(N
:j8�rsZp(N
:[8�r�Zp(N
:L8�r�Zp(N
:=8�rpp(N
:.8�r!pp(N
:8�r=[p(N
:8rm[p(N
:8jr�[p(N
:�8UrIpp(N
:�8@r�[p(N
:�8+r�[p(N
:�8r#\p(N
:�8rS\p(N
:�8�rq\p(N
:�8�r�pp(N
:�8�r�pp(N
:z8�r�pp(N
:k8�r�\p(N
:\8�r�pp(N
:M8nr�\p(N
:>8Yr�\p(N
:/8Dr]p(N
: 8/r1]p(N
:8rS]p(N
:8rs]p(N
:�8�r�pp(N
:�8�r�]p(N
:�8�r%qp(N
:�8�rcqp(N
:�8�r�]p(N
:�8�r�]p(N
:�8rr�]p(N
:�8]r
^p(N
:{8HrC^p(N
:l83ro^p(N
:]8r�qp(N
:N8	r�qp(N
:?8�r�qp(N
:08�r�^p(N
:!8�rrp(N
:8�r�^p(N
:8�r�^p(N
:�
8�r�^p(N
:�
8vr_p(N
:�
8ar_p(N
:�
8LrIrp(N
:�
87r1_p(N
:�
8"ri_p(N
:�
8
r�_p(N
:�
8�r�_p(N
:|
8�r�_p(N
:m
8�r�_p(N
:^
8�r`p(N
:O
8�rsrp(N
:@
8�r-`p(N
:1
8zr[`p(N
:"
8er�`p(N
:
8Pr�`p(N
:
8;r�`p(N
:�8&r�rp(N
:�8r�rp(N
:�8�rsp(N
:�8�r
ap(N
:�8�rUap(N
:�8�r�ap(N
:�8�r'sp(N
:�8�r�ap(N
:}8~rGsp(N
:n8irqsp(N
:_8Tr�ap(N
:P8?rbp(N
:A8*rIbp(N
:28r�sp(N
:#8rybp(N
:8�r�bp(N
:8�r�bp(N
:�8�rcp(N
:�8�r'cp(N
:�8�r�sp(N
:�8�rtp(N
:�8mrAtp(N
:�8XrAcp(N
:�8Cr[tp(N
:�8.recp(N
:~8r�cp(N
:o8r�cp(N
:`8�
r�cp(N
:Q8�
rdp(N
:B8�
r7dp(N
:38�
rytp(N
:$8�
rQdp(N
:8�
r�tp(N
:8q
r�dp(N
:�
8\
r�dp(N
:�
8G
r�dp(N
:�
82
r�dp(N
:�
8
r�dp(N
:�
8
r+ep(N
:�
8�rYep(N
:�
8�r�tp(N
:�
8�r�tp(N
:
8�r9up(N
:p
8�ryep(N
:a
8�r�ep(N
:R
8ur�ep(N
:C
8`r�ep(N
:4
8Krfp(N
:%
86r-fp(N
:
8!rGfp(N
:
8refp(N
:�	8�r}fp(N
:�	8�r�fp(N
:�	8�r_up(N
:�	8�r�fp(N
:�	8�r�fp(N
:�	8�r	gp(N
:�	8yr�up(N
:�	8dr%gp(N
:�	8OrQgp(N
:q	8:rmgp(N
:b	8%r�gp(N
:S	8r�up(N
:D	8�
r�gp(N
:5	8�
r�gp(N
:&	8�
r�gp(N
:	8�
r-hp(N
:	8�
r[hp(N
:�8�
r�up(N
:�8}
r�up(N
:�8h
r+vp(N
:�8S
rwhp(N
:�8>
r�hp(N
:�8)
r�hp(N
:�8
rGvp(N
:�8�	rip(N
:�8�	rcvp(N
:r8�	r�vp(N
:c8�	r?ip(N
:T8�	rmip(N
:E8�	r�ip(N
:68�	r�vp(N
:'8l	r�ip(N
:8W	r�ip(N
:	8B	rjp(N
:�8-	rIjp(N
:�8	rejp(N
:�8	r�vp(N
:�8�rwp(N
:�8�rIwp(N
:�8�r{jp(N
:�8�r_wp(N
:�8�r�jp(N
:�8�r�jp(N
:s8pr�jp(N
:d8[rkp(N
:U8Fr;kp(N
:F81rYkp(N
:78rywp(N
:(8rokp(N
:8�r�wp(N
:
8�r�kp(N
:�8�r�kp(N
:�8�r�kp(N
:�8�r�kp(N
:�8�rlp(N
:�8trlp(N
:�8_rSlp(N
:�8Jr}lp(N
:�85r�lp(N
:�8 r�wp(N
:t8r�wp(N
:e8�r)xp(N
:V8�rKxp(N
:G8�r�lp(N
:88�r�lp(N
:)8�rmp(N
:8�rKmp(N
:8xrkmp(N
:�8cr�mp(N
:�8Nr�mp(N
:�89r�mp(N
:�8$r�mp(N
:�8r�mp(N
:�8�rnp(N
:�8�r{xp(N
:�8�rnp(N
:�8�rMnp(N
:u8�r�xp(N
:f8�r�xp(N
:W8|rknp(N
:H8grynp(N
:98Rr�xp(N
:*8=r�np(N
:8(r�np(N
:8r�np(N
:�8�(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*({*(|*(}*(~*(*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(�*(*(*(*(*(*(*(*(*(*(	*(
*(*(*(
*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(*(�*:}\(�*
*0P{\,(}\,4r�xp(N
-r�xp(N
-+{]��*{^��**"}\*0�D(*
r�	p(�](�(�
(�(�,ryp+r�~p
(*
(�(�(���(�
(�
(�(�o9
oe
r�xpo�
(*
(
}]o9
oe
r�xpo�
(*
(
}^*:}`(�*
*�{`,(}a}`,rӃp(N
,{a**0�E(�}_(*
r߃p{_(�

s
o)
&(�rr�p(��&~�

�4&~�

�+o9
oy
-~�
*o9
oe
of
o�
*	*2G	C2P	P"}`*J(�s	
}b*
*�r��ps�
�wr�ps�
�x*0#F{bs	
oY
{v-,
~w}v+~x}v
{vo�
8�o�
rD�po�
o�
:�o�
rP�po�
o�
,o�
rV�po�
o�
,
,H,Eo�
rb�po�
o�
,.{bo\
t*o�
rb�po�
o�
oY
o�
r0po�
o�
,o�
r0po�
o�

o�
o�
:(���*0G
(�o�
	2 (*
rj�p](���(�

+H1&(*
r��p](�����(�

+(*
r"�p](���(�

(�~�
o9
o�

+!	o
t of
o�
(�
	o$
-��	u,o%
�o9
oy
1,o9
oe
of
u�-o�
(�
R*�-�B{bo\
�*0(3{bo\
t*o\
t�
-~�
**0�H,
u�-*(�,~�
*(�
(�(�(�
	u�,
	��+	��(*
(+
(*
(+
(,
(-#(�(((*0|sC%rU�pr��po\%r��prߔpo\%r�pr�po\%rK�pr��po\%r�pr�po\%r��poV%r��poW%r��poWoa*f
 �s

(
,**09I(�
:(�(�
o�
o
o�
s

(,XrU�po�
-8r�po�
-*r��po�
-rK�po�
-r�po�
+,(�(9~R
,mrU�p(N
-4r��p(N
-'r�p(N
-rK�p(N
-
r�p(N
,,{�,:{�oy
1,{�oe
o�
+(*
rf�p(�
(0
*(*
r�p(+(

(0
*(<*�(�}~~�
}~�
}�~�
}�~�
}�*0w;{~-n(�}(�}�(�}�
({�(�{(�
, o9
oy
1o9
oe
}~*"}~*0�Js

sCr~�p(�,6(*
r��p{�](�{�](�(�

r~�p	o\oao
&(*
rǛp{�'(�{�'(�(�
o
&o�
}�*0F({~-	~R
+,,)r~�p(N
,{~r~�po�
(
��*R(�o�}�*0�As;

(�o�
o
rh�p(�
(
o?
o=
o<
��%r%Xp�%rt�p�%rz�p�o@
�r%r%Xps
�%rt�ps
�o
sD
(�(F
(G
*0�K{�o9
r%Xp(�
1~�
*~�
{�o9
%X
oe
rz�po�
t�(�
{�o9
oy
/,r��p{�o9
oe
rt�po�
o�
(O
-�*{�*0z}�(�,~�
}�*(�(�o�
	/({�-( }�t�(!}�+o$}�{�-~�
}�*t�*b(�(�o�
	/**^("-(#{�*>}�}�*6(o�*^('�}��}�*��{�3{�t�(]}�{�*�rrp(�(N
, �{�3{�t�(^}�{�*��{�3{�t�(]&~A{+*��{�3{�t�(]&~A{,*&(�*0�.("-(�
(#{�(�,{�*9�rz�p(N
-6r��p(N
-0r��p(N
-;r��p(N
-:r�p(N
-9+L{�*{�t�(*o�
*(*��*(,��*(-,(-*~�
**
*:}�(�*
*0m{�,(4}�}�,Kr
�p(N
-rӃp(N
-r�p(N
-	+"{�*{�(�
,��*��**0�E(�}�{�(�
-&{�r(�po�
-{�r2�po�
,~�
*(*
r<�p{�(�

s
o)
&(�rr�p(��&~�

�4&~�

�+o9
oy
-~�
*o9
oe
of
o�
*	*k�	Ck�	P"}�*�(�(�(�(�(7*�.+.+.+.+s
*(�*0�Ls

{�o
-
{�o
{�o
9�{�:�{�(�(�o
{�o
,o:o)
&(�(��Nr��pr̝p�%o
�(
uP-uC,}�}�{�o
��,o9
}�}�*?D�N,j}�}�{�o
*^(W
s
}�(�*0�Ms

(�(�
,*sH
%oI
o
o
,Vo
o

+*	o
tToK
o
,oM
o)
&	o$
-��	u,o%
�*@6v(�*0r3t�%o�r�poR(�
&rp(1

-rpr.�p(�	s�
zo�(*
rF�p'(�(�
oR(Q
(�*(�*0E��%r��p�%rޞp�%r��p�%r�p�%r(�p�������(B*�~�-rH�p(C��rV�p(C��*0*3~�

~�o
(+-~�
*rf�p(�
*B(
o 
(!
*�(B~�(�
-~�(�
,~�
*~�*�(B~�(�
-~�(�
,~�
*~�*03N(
s
}�o
{�oo)
&o�-�*{�*0�t�
o�r��poR(�
&rA�p(1
r[�p(1
-(�s�
zo�(*
r{�p(�
oR-o�r��poR+o�(*
r�p(�
oR(Q
(�*(�*0TO(Q
('
-=sC(�(�~�
(�o&(E
(�
(�s�*(�*(�*(�*(�*(�*�(o+(o*}�o,(*r{�,{�*(o�*"(P*b,sRoo�-�*:(QoR*"(P*b,sUoo�-�*:(QoT*"(P*b,sXoo�-�*:(QoS*r(
(](_(a*{�*"}�*{�*"}�*{�*"}�*V(
}�}�*{�*"}�*{�*"}�*0IPt�
(eoe1*(eoe/*(coc3*(coc0**(
*�(
}�}�}�}�}�}�*0D(
}�}�}�}�}�}�}�}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*00Qu�
-s"
z{�-{�{�(`
+{�{�{�o#
,*{�-{�{�(`
+{�{�{�o#
,*{�{�/*{�{�1*{�{�3
{�,*{�-0{�{�(`
,*{�{�(`
,<*{�{�{�o#
,*{�{�{�o#
,**J(
s	
}�*{�*"}�*0r~�{�:X~�s	
}�~�{���rzprzps[oY
~�{���r�pr�ps[oY
~�{���rrprrps[oY
~�{���r�pr�ps[oY
~�{���r�pr�ps[oY
~�{���rprps[oY
~�{���rbprM�ps[oY
~�{���rDprDps[oY
~�{���r
pr
ps[oY
~�{�e��r�per�ps[oY
~�{�f��rpfrps[oY
~�{�g��r�pgr�ps[oY
~�{� ���r�p �r�ps[oY
~�{� ���ri�p �ri�ps[oY
~�{� ���r��p �r��ps[oY
~�{�h��r��phr��ps[oY
~�{� ���rסp �rסps[oY
~�{� ���r��p �r��ps[oY
~�{� ���r�p �r�ps[oY
~�{�
��rp
rps[oY
~�{���r#�pr#�ps[oY
~�{�*0�R93(�	 *y��B� SoS_5I ~0�5 BG�
;� ~0�;g8� ���Q;� �K^;" SoS_;�8� "��f5 ���d;U "��f;;8� ŏr; �Z|; *y��;L8� K�ʷ5I ��5 �
�; ��;�8\ 
쬱;� Mߵ;� K�ʷ;86 ��5# eֻ;v ~��;A ��.(8 Si��; �K�;� k�.8�rzp(N
:�8�r�p(N
:{8�rrp(N
:h8�r�p(N
:U8�r�p(N
:B8rp(N
:/8jrbp(N
:8UrDp(N
:	8@r
p(N
:�8+r�p(N
:�8rp(N
:�8r�p(N
:�8�r�p(N
:�8�ri�p(N
:�8�r��p(N
:�8�r��p(N
:�8�rסp(N
-s8�r��p(N
-g+wr�p(N
-^+hrp(N
-U+Yr#�p(N
-I+J*********e*f*g* �* �* �*h* �* �* �*
**s

({o$
o�

+/	o
t�%X1r�po
&o\o
&	o$
-��	u,o%
�o�
(�	s�
zQ;�0�S~%
,(�s&
z}�{�(�}�(��(zs8
o=
sD
o'
�r�
po(
}�o'
�r�
po(
}�{�-+o'
�o�
(|&o'
�()
(�	s�
z{�(�}�rA�p(�}�s
(y-{�(�o)
&{�o�

2rO�po)
&+rr�po)
&r�po)
&j
s
 �o'
8�

o?

o�
r�p(N
,
o�
o�
r%�p(N
,r3�p(|{�o�

?zrbp(|.Fri�p(|.8r��p(|.*r�p(|.r��p(|.r�p(|3��%rt�p�%rp�o@
+$��%rt�p�%rp�%r�p�o@
oF
t�o�ogrbp(|.Fri�p(|.8r��p(|.*r�p(|.r��p(|.r�p(|3o�rW�poUo�rpoUo�(*
(+
oUo�ra�poRo�o
&�
()
(�	s*
z
rt�p
o�
o+
,ao�
1Wr��po
&(*
(�
&o
&r�po
&(,
o
&rfpo
&o-
&+��%rt�p�o@
oF
t�o�ogo�(*
(+
oUo�ra�poRo�o
&�
()
(�	s*
z	jX
	j1	j]-o�
o)
&o.
X�i?����	j1	j],o�
o)
&r�po)
&~�
(y,	r�p+]{�o�
0	r7�p+F{�o�
	3	ra�p+.{�o�

3	r��p+{�o�
2r��p(*
rۥpo/
-+��(�
��(a
(�o0
o1
rr�p(,
o2
%-
&o2
s3
		o4
(�
	o5
o)
&(y,{�(�
+	(�

(�(y-rv�p(�*�
`�`f(*
r��p'((�
*0AT-*s

+ o6

	o7
&	3	o7
&Xo�
2�o�
*0�U(8

s
{�o�
1r��p(~o9
&+r�p(~o9
&o�
{�(�o9
oy
,+o9
oe
of
t�r+�po:
,(;

+(;

*Z({��o\
t�*0�Vs<

s<
З(a
{�o�

?Bo9
o�

8	o
t (�{�o\
ta-@(�()
s=
(
o>
{�oY
o?
&r5�po�
��o@
(�ow,g{�o\
ta		,	oA
o?
&+>s=
		(�o>
{�	oY
	o?
&	oA
o?
&	o$
:��	u

,
o%
�oB
8o9
o�

8�	o
t (�{�o\
ta

-Foe(�()
s=


(
o>
{�
oY

o?
&rO�po�
o�
(k
,L(�{�o\
ta,
oA
o?
&+
oA
o"
&
o?
&	o$
:����	u

,
o%
�(�*A45Lw�d0_W-
rg�po�
+rO�po�
��-
r{�po�
+r��po�
��
sb�(�(�	s*
z*JJb0�X-
r��po�
+rɨpo�
t�-
rߨpo�
+r��po�
t�
-
r�po�
+r+�po�
t�-
rG�po�
+rc�po�
t�-
rO�po�
+rg�po�
��
-
r��po�
+r{�po�
��	{�{�sj�(�(�	s*
z*��b0�Ys

o�
o4
o�
+to
tcoC
o
&r{�po
&oC
o�
o�
oD
&rfpo
&r�po
&oC
o�
oD
&rr�po
&o$
-��u
	,	o%
�o�
*��0�Z{�o�

�r��p(0
o#

+Oo
ta+1oA
o&
u�
	,oA
{�	o\
oE
XoA
o!
2�o$
-��u,o%
�* [{0�[oe(�
s;
��%r�p�o@
o=
{�,U(*
r�p�%{�(F
�%{�(F
�%o`�%oc���(

(
o?
+6(*
r|�p{�(F
o`oc��(�
(
o?
sD
{�oF
(G
o9
oe
of
t�(
*0�\{�o�

�rЪp(0
(�
{�,((*
rH�p{�(F
{�(F
(�
+(*
r��p{�(F
(�
rbpo\(N
9�(*
rګp�%r��po�
��(�o\�%rG�po�
t�(F
�%r�po�
t�(F
�%rc�po�
t�(F
�(

(�
(
ݽЗ(a
r+�po�
o�
(r
,:(*
rJ�po\rc�po�
t�(F
(�
(�
(
�b(*
rl�po\rc�po�
t�(F
r+�po�
t�(F
(�
(�
�
(�(�		s*
z(
**AnE�b0�]{�o�

��r��p(0

-r��po�
t�+rɨpo�
t�-rߨpo�
t�+r��po�
t�-r�po�
t�+r+�po�
t�
-rG�po�
t�+rc�po�
t�-r��po�
��+r{�po�
��(�~�
(O
,(*
r(�p(F
(�

+:{�,(*
r(�p{�(F
(�

+(*
rR�p(+(


~�
(O
,(*
rb�p(F
(�
(�

+!(*
rb�p{�(F
(�
(�

rbpo\(N
9�r��po�
t�r��po�
t�r��po�
��(*
rګp�%(�o\�%(F
�%(F
�%(F
�(

(�

(
	݃~�
	(N
,.(*
rJ�po\(F
(�
(�

(
	�H(*
rl�po\(F
	(F
(�
(�

�
(�(�	
s*
z(
*	*A�	�bb(*
r��p](�(�
*.sh��*^(G
}�}�*j{�-s
}�{�*j{�-s
}�{�*"}�*j{�-s
}�{�*"}�*{�*{�*{�*"}�*2(H
t�*"(I
*�{�-*{�o9
oy
2*{�o4
oy
*{�*"}�*{�*"}�*�{�-(W
sX
}�{�oJ
*"}�*0�(�-s(�
..+W(*
rp(�
*(*
rέpof
o�
'(�rέp(,
of
o�
](�rp(�
*(�s�
z(�
..+C*(*
rέpof
o�
'(�rέp(,
of
o�
](�(�
*(�s�
z�rҭp(*
rܭp(�Yof
o�
](�(�
(�
*�-*r�p(*
rܭp(�Yof
o�
](�(�
oK
*�{�,{�o9
oy
��**06
+%of
o�
of
o�
(O
,*X
(�Y2�*0�^(�ogs

(E(�
-o)
&(�2(�oao)
&8/~�

(�,vr�p(L
~�
(�
(M
		(*
(N
rp(,

(�	ojo)
&(�r&�p	(�
oR(�oh(�oi{�(�
-(�{�o^(�oa
8@{�o9

oe
{�,(
{�o9
oy
/{�o9

oe
{�.(�o)
&{�9�{�oV
@�(�3z{�oO
t�(�Yof
t�(`
-M(�od

{�(�Yof
o\
t�oX
oa(�+',-(�-(�(�o)
&
X

{�o9
oy
?����(�,	(lo)
&(F(�
-'o
YrB�po
Yo.
([
oP
*0T{�-(�s�
z{�o9
oy
.(�s�
z{�o9
oe
(�oa(�*6(�oQ
*.(�oR
*^~�-
sS
��~�*(�*{�*"}�*{�*"}�*{�*"}�*(
*0j_s 
}�o}�o}�o
s�oo�oo�oo�{�o"
&o�-�**{��*"}�*{�*{�*"}�*0�`(�-{�*{�o#
+ao
t�
	o�3		o�oo�+8	o�3/	o�o
,
	o�+	o�-	~�
o�o$
-��u,o%
�{�(*
(�

�+!{�o&
t�o��X2�(*
{�(

*m�"}�*(
*&(T
*Jo�(�*0o�(�*0(�*0Ha	s�

-
o�+
o�,o�+o�o�*Jo�(�*0�bo�
sU
9�o�(�(�(2o,s"(�o�o,(�(Yo�o,sG(�o�o,(�o,(�(0o�o		,(�	(S	o�o

,(�
(V
o�o9�(�o�(,o�(�o+Mo
too�
+o�
oV
o�
-��u,o%
�o$
-��u,o%
�o	,)(�o9o:oY
o�-�o�o


,(
o=
o>(�
o?(�
o�o�
	o�	o�	o�9�,o�o
-	o�,r(�(1s,o]
o
,oW
o]
oX
, %oY
�_oZ
%oY
�_oZ
([
o�+o�+,(�:?���:9���*P p6Z�0�co�
,6o�
+o�

	o)
&o�
-��u,o%
�o
-
o�,9o�
+o�
o)
&o�
-��u,o%
�o
-o�o�o�o�o�(�o�*,]z(�*�(\
s}�s}�s}�*{�*"}�*{�*"}�*{�*"}�*~{�-(W
sX
}�{�*{�*{�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*"(]
*09	('
-s8
+'('
u�,('
t�
+('
s9
*2(>
o�
*:(/
t�*>�d%�%�*0Q(�,!o(�(�o]
o&*o]
(ooo]
o�&*0Ed(�o
+o
t�o	,o+o$
-��u,o%
�*'30ae('
,
('
oP
-*('
oP

+.�('
o(
.+
	(�(�X�i2�(�*0/f(�
(�,o(�+o�&o*&o�*0=f,(�
+	(�
(�,o(�+o�&o*Z(�o�o*0fg{�-*(�
o,Koo#
+"o
t�o�3
o�o�&o$
-��u
	,	o%
�*&.T0M{�-*(�{�o&(�{�o&(�{�o&(�*0Whs 
}�(�,(�o$(�(�o
+%o
to,oo�(�o$
-��u,o%
�(�o
+%o
t
	o,	oo�(�o$
-��u,o%
�(�(�,n(�o=,a(�o=o#

+3o
t�o�-o�(�o(�o$
-��u,o%
�{�o!
1{�o:*(01a~1��?+0i('
9�('
oB
9�('
oB
�9�('
oB
�
,voP
,9oP
-oP
�i��o@
oP
oP
o^
o_
o`
oa
,-oa
-oa
�i�ro
oa
oa
o^
('
oB
�i1;('
oB
�iY�moA
('
oB
oB
oB
�i(�
*oA
*0g	s8
o<
('
o(
3	o=
+o=
(�(�((�,(�oHo?(�}�*0oj,ko#

+Go
t�o�32o�(/
t�o(�o�o�o�o$
-��u
	,	o%
�*
S]6(�(�*n(�,(�o=(�*n{�,{�o$(�*0(k,$t�
(�o�o_(�o�*0/3sb
(c
od

o�
,(�-(�oX*V(�o�(�*>(�(�*0UsC}�(�(�((�(�,(�oI,t�o�,(*(*(e
*�{�-(W
sX
}�{�oJ
*0\l(�,S(�of

+*o
�o(g
t�(h
t�o�o$
-��u,o%
�*6J"}�*j{�(�
-{�o�*0_m(E
(�
-(�s�t�(�(�('
,('
o(
.('
o(
3*('
o(
('
o(
-(�oGoV
>�(�oGof
+Ho
�o(h
u�-,(h
u�,(E
t;o�
o�
	/� o$
-��u,o%
�,3rR�p rV�p(+(�
(i

(�	oj
sG
%	ok
ol
%om
on
*�U�0�no�
s�	s
}e(	+��	sp
(
+on
(E
o�o��po�
uD
	, 	o�
3	or
3
	o�
 �.�os
o�r��pojo)
&r�po)
&(E
o�o��*ELpC0J;3
(�*.3-(�
3*st
%(*
ou
%o�
ov
*sw
z�(�o(�o(�o*"o�*
*2(x
��*0Jo-*o#

+!o
t�o�-
{�o"
&o$
-��u,o%
�*-8*{��*0�p(�,(�o$(�(�o
+o
to(�o$
-��u,o%
�(�o
+o
t
	o(�o$
-��u,o%
�(y
+ �t�o(�X�i2�*&%Kh%�0�q(�o
+Zo
t�o	,Fo(o�
+o�

	(�(�o�
-��u,o%
�o$
-��u,o%
�*.&Tfr:}�(�*R}�(�(�*0�As;

o<
o=
(>
o�
o?
(�oHo
��o@
(�oHoP
oz
sD
(E
(F
t�o�%og%ocoa*0Sr(�-*(�oHo�

+o�
(�{�o&o�
-��u,o%
�*'A�,*r}�p(N
-r��p(N
-	+(*(�**(*"({
*"(*"(*0Qs('
,('
oa
,(�-*('
oa

+�o|
o}
(	X�i2�*0zto�(�o\
t,;o�

+	o�
(		o�
-��	u,o%
�*,(
+
(�o[*&E0=u(~
o\
tt
-*o
3(*
r��po�
(�
*o�
*0�v(�
o�(�
o�(�
o�(�
o�(�
o�(�
o�(W
o�(�
o�(�
o�}�o�}�o�(Z
o�}�o�}�o�
,s�}�{�o�*Z{�-*{�o�*{�*"}�*�{�,{�*{�,
{�o�**�(-(*(*
r��p(((�
*�{�,(*
r��p(((�
*(*:(}�*{�*"}�*{�*{�*{�*"}�*V(o�oe*J(�s 
}�*>�d%�%�*0lw(�t�
{�o#
+5o
t�('
o�
(>
o�o�
t�o@o$
-��u
	,	o%
�*AY0?xo�
odo�o�o�o�ogo�o`o�
&*0�ys

t�({�o#
+!o
t�
rׯpo
&	(o$
-��u,o%
�(�oE(�o�(�*"-O0B({�o#

+o
t�o�
o$
-��u,o%
�*00D(�{�o#

+o
t�oT
o$
-��u,o%
�*20;zo�&(�+s�
o�{�o"
&o�-�*0:{(
s�}�o
,(#*o
,{�o�*0�|{�s 
o�~�

s�o�oo�{�o�o"
&s�o�oo�{�o�o"
&1r�p(�

(*
r�p%X��%X��(�
(�

o�:e���{�o�{�(*
(+
o�*2{�o�*{�*0E(o5(o6}�o4-(�s�
zo4}�}�*02}{�{�(�u�
-{�r��p(�	s�
z*{�*�{�-(W
sX
}�{�oY
*
*0�~{�9�('
o�o�oE
o�o'
o�((o�{�o�{�o�
o�
+o
t�o�oo]o$
-��u
	,	o%
�}�*`+�f,s&oo�-�*0�(o (o!}�o"}�o$}�{�-I{�,	}�+8o#}�{�,	}�+o%}�{�,}�o&}�o((*0@(s

o�o)
&(o�}�}�o�}�*�(s
(o�}�}�o�}�*Vs-oo�-�*Vo�,s.o*Vo,s/o*{�*"}�*093{�-{�+(o�
{�-*r�p{�(,
*�(,{�,{�*(o�*0��(o�(6
(5,	o�
0oX*oL9�o�,^,	o�
0o�o%o�
+a��%r{�p�%�%r�p�%o�o%o��%rfp�(�

+#{�-oV,o�
1oX*{�3r-�p+rO�p(*
rg�p(�
(,

	oW*:(;
}�*0C(;
o�
(?
oP
(@
oa
(
o(
(=
o�
(<
*"}�*"}�*{�*{�*{�*"}�*0S�{�-
o=}�*o=o#

+o
{�o"
&o$
-��u,o%
�*! A(
*0��
o�
-	`
8���%_�o�
9�
+|�		,k	rw�p(N
-H	r}�p(N
->	r��p(N
-4	r��p(N
-+	r��p(N
-"	r��p(N
-++
+
++X�i?y���, @
+-`
	-`
-`
-`
*0�(
s
}�s
}�s
}�s
}�s
}�s
}�s
}�s
}�s
}�s 
}�(W
sX
}�}�(I}�}�}�}�*{�*"}�*{�*{�*{�*"}�*{�*"}�*6{�(M*J,
o�
��**{�*"}�*�o�
1	o
&o
&o
&o
&*r{�~�
~�
r��p(P*r{�~�
r��pr��p(P*r{�r{�prfpr|p(P*r{�~�
r��pr��p(P*r{�~�
~�
r��p(P*�(L,}�{�~�
~�
r��p(P*r{�~�
~�
r��p(P*r{�r{�prfpr��p(P*r{�~�
~�
r�p(P*�-r��p(�
+
rɰp(�
(Y*0q�(Do#

+?o
t�o]
(N
,%(*
rܭpo](�(�
(Z�#o$
-��u,o%
�(Z*KW�,),(*
rհp](�(�
(U*(U*:{�oY
*6s�
}�*0��{�(M-{�o�
oR{�}�{�(M-({�{�}�(M-o�
(U{�o!
{�Y
{�oFX}�1C{�{�{�o�
o�
{�{�{�{�o�
o�
+{�{�o�
{�of

+&	o
�o{�(g
(h
oY
	o$
-��	u,o%
�s
{�(M--{�o�
&{�,r�po
&r��po
&{�(M-
{�o�
&}�{�}�{�(M-3{�(M,{�{�o�
&+{�o�
(X{�(M-+{�{�}�(M-
o�
(Y{�(M-{�o�
(T{�{�o�
&{�(M-{�o�
(S{�(M-{�o�
(^*�20�{�,{�*s

{�(M,*r�po
&{�,r��po
&{�1!(*
r�p{���(�
o
&{�o�
&{�(M-r)�po
&{�o�
&{�(M-r7�po
&{�o�
&{�(M-rG�po
&{�o�
&{�(M-r]�p{�o�
o9
&*0�s

{�(M-er{�po
&{�o�
&r��po
&r��p(jo
&r��po
&r��p~�
(lo
&r��po
&{�(M-{�o�
&r��po
&(`o�
&{�(M-r��po
&{�o�
&o�
(�o�
+o�

(�
(�
oK
o$
-��
,o%
�*�(
2{�o�
*Z}�}�}�*0`�sC
{�{�o�
&{�{�o�
&{�{�o�
&{�}�{�o!
{�Y1B{�{�{�{�o�
o�
{�{�{�o�
o�
+{�{�o�
%{�(FX}�{�of
+%o
�o
{�(g
(h
oY
o$
-��u,o%
�{�{�o�
&{�{�o�
&{�{�o�
&{�{�o�
&*�1~{�o"
&-{�X}�*N(g(c(a*0W�{�-N}�{�o#

+o
t�oo(\o$
-��u,o%
�**E2{�o�
*6{�o.
*0��s

r��po
&o
&r{�po
&(D,C(Do#
+o
t�
	(ko$
-��u,o%
�r˱po
&o�
*<#_0q3G,R+r�po
&o]

,o
o-(*
rѱpo(�
o
&*(*
r�poo(�
o
&*�sC%r�poU%oV%r�p(�
oT%oYoa*2s
}�*:(�
}�*03{�(�	
-{�
*:(�
}�*{�*>(�
}�*vЏ(a
(r
,*(�
*0��(m

,
o�
+w�
	o�
(�
-	o�
(�
*	��(a
(�+1�t�o�
(�
-	o�
(�
*X�i2�X�i2�(�
*0(3u�
(�
-{�(t*(�
*0X�o�

+E�o�
(N
,/��(a
(�
+	�t�o�
*	�i2�+
X�i2�*0X�o�

+E�o�
(N
,/��(a
(�
+	�t�o�
*	�i2�+
X�i2�*0R3Џ(a
(r
,3(*
3o�
{�(w
,*o�
{�(v*(�
*F�M(a
(r*F�c(a
(r*F�!(a
(r*F�X(a
(r*FЄ(a
(r*FІ(a
(r*FЇ(a
(r*FЈ(a
(r*FЉ(a
(r*FЊ(a
(r*FЌ(a
(r*FЍ(a
(r*FЋ(a
(r*FА(a
(r*FБ(a
(r*F�(a
(r*FВ(a
(r*FЏ(a
(r*FГ(a
(r*FЅ(a
(r*FД(a
(r*FЕ(a
(r*FЖ(a
(r*FЗ(a
(r*FИ(a
(r*FЙ(a
(r*FК(a
(r*FЛ(a
(r*FМ(a
(r*FН(a
(r*FО(a
(r*FП(a
(r*F�2(a
(r*F�(a
(r*F�(a
(r*F�(a
(r*F�(a
(r*F�(a
(r*F�(a
(r*F�(a
(r*F�(a
(r*F�0(a
(r*FР(a
(r*F�E(a
(r*FС(a
(r*F�|(a
(r*F�~(a
(r*FЂ(a
(r*FЀ(a
(r*FТ(a
(r*0�49�(�	 �]ĦB� h��h5l �
75& L�;� DŽ,;M �
7;�8i �<]5 �t�[;� �<];�8F 0��`;= h��h;C8+ 2��5& 1�{;� u�g�;| 2��;�8� ��A�5 ʥg�;� ��A�;t8� ^~�;� �]Ħ;8� �m��5l >N�5& L�;= �5Q�;� >N�;Q8� �h��5 S���;� �h��;�8f u���;Y �m��;�8K �l��5; ]���5 Y�r�;� ]���;Q8  �np�.H �l��;J8 ׋�5 i03�.| ׋�;�8� ���;� 2�-�./8�r�p(N
:H8�r3�p(N
:38�rE�p(N
:8�rU�p(N
:	8|re�p(N
:�8grq�p(N
:�8Rr{�p(N
:�8=r��p(N
:�8(r��p(N
:�8r��p(N
:�8�r��p(N
:�8�r��p(N
:�8�r��p(N
:t8�ròp(N
:_8�rϲp(N
:R8�r�p(N
:=8�r��p(N
:(8kr��p(N
:8Vr�p(N
:8Ar'�p(N
:�8,r9�p(N
:�8rI�p(N
:�8r[�p(N
:�8�r}�p(N
:�8�r��p(N
:�8�r��p(N
:�8�r��p(N
:�8�r��p(N
-|8�r˳p(N
-r+xr�p
+|r�p
+tr�p
+lr��p
+dr�p
+\r�p
+Tr7�p
+LrW�p
+Dr��p
+<r��p
+4r��p
+,rմp
+$r�p
+r�p
+r'�p
+(�	s�
z*�-3sG
*3o�
o�
sG
*sw
z0<Ts

+ o6

	o7
&	3	o7
&Xo�
2�o�
*�s
%rC�po
&%'(�o
&%rέpo
&o�
*0v�
� (a
(�o�
� (a
(�o0
o1
oK
s�
(�

�(�	rI�po�
(,
s�
z(�
,(�	s�
z*@B,0$.4(*
(�
-(�	s�
z*.(�*0_�s

+AJo6

-	3+$	3-++
,-"	3,	o7
&JXTJo�
2�o�
*"(�*04�-*s

+X[](�o�
o�
2�*0��
8�o6

	%.
	[.	_3, -o�
Zs�

o�
o
&,�+(�
,rpo
&,o6
o7
&,rpo
&Xo�
?t���,o�
**0(-*
+o6
(�
-*X
o�
2�*(
*zo�
rO�p(N
-r[�p*r_�p*&(�*0��-rc�ps�
z-ro�ps�
z3r_�po�
-+(�
,(�,
r_�p(,
*-(�
*o�
o�
,
r_�po�
,*r{�p/o�
([
*"(�*0��3r_�po�
-+(�
,(�,r_�po�
o�
*-(�
*,
o�
o�
-r��ps�
zr_�p(N
,*r_�po�
/~�
*o�
Y3	/o�
*-r_�p*o�
*0�(�
,
(�,**"(�*�3r_�po�
-+,r_�po�
*(�
*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*0J(
o�(�o�(�o�(�o�(�o�(�(�*�(
(�(�(�(�(�(�*:(
(�*V(�-(�(�
&*V(�-(�(�
&*0��(�:�(�s�
z(�r��po�

(�r��po�
(�rŵpo�
(�
,&(�
,(�
,(�o�
(�	s�
z
(�31, (�
-(�rŵp([
s�
z�
8�~�
~�
~�
~�
~�
	(�3^
(�r�po�
(�r�po�
(�r1�po�
(�rQ�po�
(�rq�po�
	+Z(�r��po�
(�r��po�
(�r��po�
(�rͶpo�
(�r�po�
	(�
-(�
+ ���(�
-	(�
+
(�
-	(�
+
s

(�
-	(�
+ ���(�
-	(�
+ ���
	(�
-		(�
+ ���
s

(�o�
(�o
(�o�
s

(
-(
,
	,(�(�
-(�(�
&*(�(�
&(�r��p(�
:b���(�(�
*~(�,-*(*
(�(�
*0Z�~�

s
,I
+:	o6
#3o�
/o)
&~�

+(�
(�

	X
	o�
2�*0U(�o�
,**(�o�
.6(�o�
3(�o�
*(�o�
,(�o�
3�*"(�*(�*N(�(�(�
*z(�(�(�
-*(�*2(�*0No0
o1
rr�p(,
o2
%-&o2
}
{
-o�
(�	s�
z(�*:}
(�*0&�{
s�
%o�
(�(�(�
9�(�r�p(�
-(�s�
z(�r��po�

(�r��po�
(�rŵpo�
(�
,&(�
,(�
,(�o�
(�	s�
z(�36
, (�
-(�rŵp([
s�
z	:3(�s�
z~�
(�3(�r�po�
+(�r��po�
(�
, ���(,
(�
, ���(,
(*
(�
(�o�
0(*
(�
(�o�
<�(�o�
.	3 (�(�	s�
z(�(�	s�
z(�3(�o�
(�	s�
z(�o�
r�p(��"o�
(,
(�	s�
z(�(�
,*(�s�
zN(�{
o�
*zr�p(�,(�(�
,**�r'�p(�-r'�p(�	s�
zs�*0Br9�p(�-"(�r9�p(�
-r9�p(�	s�
z(�(�
&s�*"(�*ZrO�p(�,s�**Zra�p(�,s�**"(�*F(�rq�po�
*^(�r{�po�
(�*Z(�r��po�
(�*Z(�r��po�
(�*"(�*F(�r��po�
*0�(�r��po�

,(�
*(�rѷpo�

,r߷p(`
-**(�r�p(N
-4rt�p(N
-'rp(N
-r�p(N
-
r�p(N
,**0L3(�r��po�

,r�p(�
*(�r_�po�

,*(�r�po�
(�*R(�r��po�
�*F(�r�po�
*03(�ry�po�

-*(�
*03(�r��po�

-*(�
*03(�r��po�

-*(�
*0E�(�rӸpo�

,-o�

rݸpo�
.`r�po�
.`*03(�r��po�

-*(�
*R(�r�po�
�*0��(�r�po�

,Do

r�po�
.`r-�po�
.`r;�po�
.`*(�rG�po�

,Ho

r�po�
.�_r-�po�
.�_r;�po�
.�_*(�,**6(�(�*F(�rY�po�
*F(�re�po�
*F(�ro�po�
*R(�-
(��**n(�ry�p(�
,s**"(�*F(�r��po�
*F(�r��po�
*03(�r͹po�

-*(�
*R(�-
(��**�(�(�
-*r߹p(�,s**Zr��p(�,s/**Zr�p(�,s**Zra�p(�,s�**ZrA�p(�,s**Zr]�p(�,s-**Zrk�p(�,s1**Zr{�p(�,s3**Zr��p(�,s8**Zr��p(�,s<**"(�*�(�(�
-*(�re�p(�
,s**n(�ry�p(�
,s**"(�*�(�(�
-*(�rӺp(�
,s**"(�*F(�rߺpo�
*F(�r�po�
*z(�,(�re�p(�
,**"(�*F(�r��po�
*z(�,(�rӺp(�
,**"(�*F(�r��po�
*^(�r��po�
(�*�(�(�
-*(�r�p(�
,s**"(�*0T3(�r�po�

,>r�p(N
-)rߺp(N
-r+�p(N
-r-�p(N
-+*****F(�rӺpo�
*F(�r=�po�
*"(�*Z(�rY�po�
(�*^(�rY�po�
(�*^(�r{�po�
(�*^(�rg�po�
(�*R(�rq�po�
�*^(�r��po�
(�*6(�(�*2rA�p(�*n(�ry�p(�
,s**"(�*(�*Z(�rY�po�
(�*n(�ry�p(�
,s**"()*2r]�p(�*"()*2r��p(�*"()*2rk�p(�*"(�*F(�r��po�
*Z(�rY�po�
(�*Z(�rջpo�
(�*2r{�p(�*"(�*F(�rӺpo�
*Z(�r��po�
(�*2r�p(�*"(�*F(�r9�po�
*F(�rK�po�
*F(�rW�po�
*:(
}�*{�*s*:s%o#*"(C*:s%o#*"(E*J|��9o�
*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@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*. �s@*(d*"(e*:(d(#*03�(dofs�
(c
+�(#X�i2�*b(do�
t:(c*2(bs!*N(boAo�
*N(boAo�
*&(#*&($*:s%o#*"('*:s%o$*"()* �*0��s

(�
o�
ra�p(�
o
&(bo�

+;	o
��,*,+r�po
&�9o�
o
&X	o$
-��	u,o%
�o�
*2Gy{�*"}�*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*:(b	o�
*>(b	o�
*:(b
o�
*>(b
o�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(b
o�
*>(b
o�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(b o�
*>(b o�
*:(b!o�
*>(b!o�
*:(b"o�
*>(b"o�
*:(b#o�
*>(b#o�
*:(b$o�
*>(b$o�
*:(b%o�
*>(b%o�
*:(b&o�
*>(b&o�
*:(b'o�
*>(b'o�
*:(b(o�
*>(b(o�
*:(b)o�
*>(b)o�
*:(b*o�
*>(b*o�
*:(b+o�
*>(b+o�
*:(b,o�
*>(b,o�
*:(b-o�
*>(b-o�
*:(b.o�
*>(b.o�
*:(b/o�
*>(b/o�
*:(b0o�
*>(b0o�
*:(b1o�
*>(b1o�
*:(b2o�
*>(b2o�
*:(b3o�
*>(b3o�
*:(b4o�
*>(b4o�
*:(b5o�
*>(b5o�
*:(b6o�
*>(b6o�
*:(b7o�
*>(b7o�
*:(b8o�
*>(b8o�
*:(b9o�
*>(b9o�
*:(b:o�
*>(b:o�
*:(b;o�
*>(b;o�
*:(b<o�
*>(b<o�
*:(b=o�
*>(b=o�
*:(b>o�
*>(b>o�
*:(b?o�
*>(b?o�
*:(b@o�
*>(b@o�
*:(bAo�
*>(bAo�
*:(bBo�
*>(bBo�
*:(bCo�
*>(bCo�
*:(bDo�
*>(bDo�
*:(bEo�
*>(bEo�
*:(bFo�
*>(bFo�
*:(bGo�
*>(bGo�
*:(bHo�
*>(bHo�
*:(bIo�
*>(bIo�
*:(bJo�
*>(bJo�
*:(bKo�
*>(bKo�
*:(bLo�
*>(bLo�
*:(bMo�
*>(bMo�
*:(bNo�
*>(bNo�
*:(bOo�
*>(bOo�
*:(bPo�
*>(bPo�
*:(bQo�
*>(bQo�
*:(bRo�
*>(bRo�
*:(bSo�
*>(bSo�
*:(bTo�
*>(bTo�
*:(bUo�
*>(bUo�
*:(bVo�
*>(bVo�
*:(bWo�
*>(bWo�
*:(bXo�
*>(bXo�
*:(bYo�
*>(bYo�
*:(bZo�
*>(bZo�
*:(b[o�
*>(b[o�
*:(b\o�
*>(b\o�
*:(b]o�
*>(b]o�
*:(b^o�
*>(b^o�
*:(b_o�
*>(b_o�
*:(b`o�
*>(b`o�
*:(bao�
*>(bao�
*:(bbo�
*>(bbo�
*:(bco�
*>(bco�
*:(bdo�
*>(bdo�
*:(beo�
*>(beo�
*:(bfo�
*>(bfo�
*:(bgo�
*>(bgo�
*:(bho�
*>(bho�
*:(bio�
*>(bio�
*:(bjo�
*>(bjo�
*:(bko�
*>(bko�
*:(blo�
*>(blo�
*:(bmo�
*>(bmo�
*:(bno�
*>(bno�
*:(boo�
*>(boo�
*:(bpo�
*>(bpo�
*:(bqo�
*>(bqo�
*:(bro�
*>(bro�
*:(bso�
*>(bso�
*:(bto�
*>(bto�
*:(buo�
*>(buo�
*:(bvo�
*>(bvo�
*:(bwo�
*>(bwo�
*:(bxo�
*>(bxo�
*:(byo�
*>(byo�
*:(bzo�
*>(bzo�
*:(b{o�
*>(b{o�
*:(b|o�
*>(b|o�
*:(b}o�
*>(b}o�
*:(b~o�
*>(b~o�
*:(bo�
*>(bo�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*0g(Rs���:%(��%(S�%(��s ���:%(��%(W�%(��s ���:%(��%(X�%(��s ���:%(��%(Y�%(��s ���:%(��%(]�%(��s ���:%(��%(^�%(��s ���:%(��%(��s ���:%(��%(b�%(��s ���:%(�%(��%(�s ���:%(��%(��%(i�%(��%(��s ���:%(��%(��s ���:%(��%(j�%(��s ���:%(l�%(��%(��s ���:%(s�%(��%(��s ��
�:%(��%(v�%(��%(��%(b�%(��%(��%(��%(�%	(u�s ���:%(��%(��%(�s ���:%(��%(v�%(��s ���:%(��%(}�%(�s ���:%(��%(~�%(�s ��=�:%(��%(]�%(��%(��%(Y�%(��%(��%(j�%(��%	(�%
(��%(�%(R�%
(��%(W�%(��%(��%(X�%(��%(��%(��%(}�%(�%(��%(~�%(�%(J�%(�%(��%(�%(�%(��% (��%!(��%"(��%#(i�%$(��%%(��%&(l�%'(��%((��%)(s�%*(��%+(��%,(��%-(^�%.(��%/(��%0(v�%1(��%2(��%3(b�%4(��%5(��%6(��%7(�%8(u�%9(��%:(S�%;(��%<(h�s ���:%(��%(j�%(��%(�%(��%(�%(R�%(��%(W�%	(��%
(��%(X�%(��%
(��%(��%(}�%(�%(��%(~�%(�%(J�%(�%(��%(�%(�s ��(�s��*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*:(
}�*{�*s�*:s�%o�*"(*:s�%o�*"(
*J|��<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*(d*"(e*:(d(�*03�(dofs�
(c
+�(�X�i2�*b(do�
t:(c*2(bs�*N(bo	o�
*N(bo	o�
*&(�*&(�*:s�%o�*"(�*:s�%o�*"(�* �*0��s

(�
o�
ra�p(�
o
&(bo�

+;	o
��,*,+r�po
&�<o�
o
&X	o$
-��	u,o%
�o�
*2Gy{�*"}�*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*6(bo�
*:(bo�
*:(b	o�
*>(b	o�
*:(b
o�
*>(b
o�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(b
o�
*>(b
o�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(bo�
*>(bo�
*:(b o�
*>(b o�
*:(b!o�
*>(b!o�
*:(b"o�
*>(b"o�
*:(b#o�
*>(b#o�
*:(b$o�
*>(b$o�
*:(b%o�
*>(b%o�
*:(b&o�
*>(b&o�
*:(b'o�
*>(b'o�
*:(b(o�
*>(b(o�
*:(b)o�
*>(b)o�
*:(b*o�
*>(b*o�
*:(b+o�
*>(b+o�
*:(b,o�
*>(b,o�
*:(b-o�
*>(b-o�
*:(b.o�
*>(b.o�
*:(b/o�
*>(b/o�
*:(b0o�
*>(b0o�
*:(b1o�
*>(b1o�
*:(b2o�
*>(b2o�
*:(b3o�
*>(b3o�
*:(b4o�
*>(b4o�
*:(b5o�
*>(b5o�
*:(b6o�
*>(b6o�
*:(b7o�
*>(b7o�
*:(b8o�
*>(b8o�
*:(b9o�
*>(b9o�
*:(b:o�
*>(b:o�
*:(b;o�
*>(b;o�
*:(b<o�
*>(b<o�
*:(b=o�
*>(b=o�
*:(b>o�
*>(b>o�
*:(b?o�
*>(b?o�
*:(b@o�
*>(b@o�
*:(bAo�
*>(bAo�
*:(bBo�
*>(bBo�
*:(bCo�
*>(bCo�
*:(bDo�
*>(bDo�
*:(bEo�
*>(bEo�
*:(bFo�
*>(bFo�
*:(bGo�
*>(bGo�
*:(bHo�
*>(bHo�
*:(bIo�
*>(bIo�
*:(bJo�
*>(bJo�
*:(bKo�
*>(bKo�
*:(bLo�
*>(bLo�
*:(bMo�
*>(bMo�
*:(bNo�
*>(bNo�
*:(bOo�
*>(bOo�
*:(bPo�
*>(bPo�
*:(bQo�
*>(bQo�
*:(bRo�
*>(bRo�
*:(bSo�
*>(bSo�
*:(bTo�
*>(bTo�
*:(bUo�
*>(bUo�
*:(bVo�
*>(bVo�
*:(bWo�
*>(bWo�
*:(bXo�
*>(bXo�
*:(bYo�
*>(bYo�
*:(bZo�
*>(bZo�
*:(b[o�
*>(b[o�
*:(b\o�
*>(b\o�
*:(b]o�
*>(b]o�
*:(b^o�
*>(b^o�
*:(b_o�
*>(b_o�
*:(b`o�
*>(b`o�
*:(bao�
*>(bao�
*:(bbo�
*>(bbo�
*:(bco�
*>(bco�
*:(bdo�
*>(bdo�
*:(beo�
*>(beo�
*:(bfo�
*>(bfo�
*:(bgo�
*>(bgo�
*:(bho�
*>(bho�
*:(bio�
*>(bio�
*:(bjo�
*>(bjo�
*:(bko�
*>(bko�
*:(blo�
*>(blo�
*:(bmo�
*>(bmo�
*:(bno�
*>(bno�
*:(boo�
*>(boo�
*:(bpo�
*>(bpo�
*:(bqo�
*>(bqo�
*:(bro�
*>(bro�
*:(bso�
*>(bso�
*:(bto�
*>(bto�
*:(buo�
*>(buo�
*:(bvo�
*>(bvo�
*:(bwo�
*>(bwo�
*:(bxo�
*>(bxo�
*:(byo�
*>(byo�
*:(bzo�
*>(bzo�
*:(b{o�
*>(b{o�
*:(b|o�
*>(b|o�
*:(b}o�
*>(b}o�
*:(b~o�
*>(b~o�
*:(bo�
*>(bo�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*F(b �o�
*J(b �o�
*0w�=%(>�%(�%(o�s����=%(?�%(�%(p�s����=%(@�%(�%(q�s���(s����=%(Z�%(.�%(��s����=%(C�%(�%(t�s����=%(D�%(�%(u�s����=%(E�%(v�s����=%(F�%(w�s����=%(�%(��%(�%(��s��� ��=%(g�%(7�%(��%(k�%(:�%(��%(R�%(&�%(��%	(l�%
(#�%(O�%(��%
(c�%(d�%(��%(��%(f�%(��%(Q�%(%�%(��%(X�%(,�%(��%(h�%(8�%(��%(J�%({�%(?�%(�% (p�%!(i�%"(��%#(a�%$(4�%%(��%&(M�%'(!�%((~�%)(�%*(��%+(L�%,( �%-(}�%.(C�%/(�%0(t�%1(j�%2(9�%3(��%4(�%5(��%6([�%7(/�%8(��%9(>�%:(�%;(o�%<(^�%=(1�%>(��%?(��%@(n�%A(��%B(�%C(e�%D(6�%E(��%F(@�%G(�%H(q�%I(�%J(��%K(�%L(��%M(S�%N('�%O(��%P(H�%Q(�%R(y�%S(G�%T(�%U(x�%V(A�%W(r�%X(�%Y(T�%Z((�%[(��%\(F�%](w�%^(Y�%_(-�%`(��%a(b�%b(5�%c(��%d(\�%e(0�%f(��%g(Z�%h(.�%i(��%j(B�%k(�%l(s�%m(m�%n(;�%o(��%p(U�%q()�%r(��%s(V�%t(*�%u(��%v(<�%w(I�%x(z�%y(��%z(�%{(K�%|(|�%}("�%~(N�%(�% �(+�% �(W�% �(��% �(=�% �(]�% �(��% �(��% �(P�% �($�% �(��% �(_�% �(2�% �(��% �(`�% �(3�% �(��% �(E�% �(v�% �(D�% �(�% �(u�% �(��% �(�s����=%(A�%(r�%(�s����=%(G�%(�%(x�s����=%(S�%('�%(��s���+�=%(C�%(�%(t�%(j�%(9�%(��%(�%(��%([�%	(/�%
(��%(>�%(�%
(o�%(^�%(1�%(��%(��%(n�%(��%(�%(e�%(6�%(��%(@�%(�%(q�%(�%(��%(�%(��%(S�% ('�%!(��%"(H�%#(�%$(y�%%(G�%&(�%'(x�%((A�%)(r�%*(�s����=%(<�%(I�%(z�%(��s����=%(H�%(�%(y�s����=%(J�%({�s����=%(�%(K�%(|�s����=%(L�%( �%(}�s����=%("�%(N�%(�s����=%(P�%($�%(��s����=%(Q�%(%�%(��s����=%(��%(n�%(��s����=%(R�%(&�%(��%(l�%(#�%(O�%(��%(c�s����=%(M�%(!�%(~�s����=%(T�%((�%(��s����=%(e�%(6�%(��s����=%(U�%()�%(��%(V�%(*�%(��s����=%(+�%(W�%(��s����=%(B�%(�%(s�s����=%(_�%(2�%(��s����=%(U�%()�%(��s����=%(V�%(*�%(��s����=%(Y�%(-�%(��s����=%(�%(��%([�%(/�%(��s����=%(\�%(0�%(��s����=%(=�%(]�%(��%(��s����=%(^�%(1�%(��s����=%(`�%(3�%(��s����=%(�%(��s����=%(a�%(4�%(��s����=%(b�%(5�%(��s����=%(T�%((�%(��%(F�%(w�%(Y�%(-�%(��%(b�%	(5�%
(��%(\�%(0�%
(��%(Z�%(.�%(��%(B�%(�%(s�s����=%(d�%(��%(��s����=%(X�%(,�%(��s����=%(f�%(��s����=%(g�%(7�%(��s����=%(g�%(7�%(��%(k�%(:�%(��%(R�%(&�%(��%	(l�%
(#�%(O�%(��%
(c�%(d�%(��%(��s����=%(h�%(8�%(��s����=%(i�%(��s����=%(j�%(9�%(��s����=%(k�%(:�%(��s����=%(m�%(;�%(��s���*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*2~�(k*R~�(j}�*.sU��*f(
s�
}�}�*0U�(
-s�
zs�
}�}�o�

+"�{�o�
{�X}�X�i2�*�(
-s�
zo�
}�o�
}�*0e�(
~�
(�
,s�
z(�
s�
}�}�o�

+"�{�o�
{�X}�X�i2�*�{�,~�.{�o�
}�*6o�
o6
*~�*{�*(n*J(�(�(�
*N(�(�(�
*N(�(�(`
*R(�(�(�
*Z(�(�(�
*b(�(�(�
*b(�(�(�
*j(�(�(�
*J(�(�(�
*Z(�(�(�
*0
,o�
o�
o�

*0
,o�
o�
o�

*0�,o�
sV
+sU
*2(�
sV*Z-s�
zo�
o:
*�(�,s�
zo�
o�
o:
*2{�sW*�(�,s�
zo�
o�
o�
*�(�,s�
zo�
o�
o�
*0
,
o�
o�

*"(�*"(�*No�
(�o�
*N(�(�(�
*6(�
sV*:(

sV*2o�
o�
*6o�
o�
*6o�
o�
*:o�
o�
*:o�
o�
*>o�
o�
*>o�
o�
*6o�
o�
*:o�
o�
*>o�
o�
*�(�,s�
zo�
o�
o�
sV*r-s�
zo�
o�
sV*2�i(�*0��-s�
z2�iX/s�
zs

/`-~�
+o�
o�
�
	�,	�o�
o
&	X
+#	�,,o
&	�o�
o
&	X
	Y2�o�
sV*6o�
o�
*6o�
o�
*:o�
o�
*:o�
o�
*>o�
o�
*>o�
o�
*6o�
o�
*:o�
o�
*>o�
o�
*02�
��_,
+--o�
o�
(�
�
*02�
��_,
+--o�
o�
(�
�
*02�
��_,
+--o�
o�
(�
�
*.(��*.(��*.(��*R�%�%�(k*Jo�
o�
sV*No�
o�
sV*Jo�
o�
sV*No�
o�
sV*Jo�
o�
sV*No�
o�
sV*No�
o�
sV*vo�
o�
o�
oK
sV*Jo�
o�
(�*No�
o�
(�*No�
o�
(�*Ro�
o�
(�*No�
o�
(�*Ro�
o�
(�*�(�,s�
zo�
o�
o�
*�(�,s�
zo�
o�
o�
*04�
,-�i�?
+�,
�sV�+�X�i2�*Jo�
o�
sV*No�
o�
sV*2{�(
*Fo�
o
sV*Jo�
o
sV*Fo�
o
sV*2{�o�
*0'3~�

(\,{�(
%(

(
*Fo�
o
sV*Jo�
o
sV*Fo�
o�
sV*Fo�
o�
sV*Jo�
o
sV*Jo�
o
sV*Jo�
o	
sV*03
(�,o�

*0�
,sV
*0�
(�,{�o�

*0�
,sW
*0�(


(�,
o�
(
*0 �
(
-��o�
sV
*Fo

~
(N
*o
*o
*"o
*o
*"o
*o
*Jo
*"o
*&o
*&o
*"o
*"o
**(�
*"(
*(
*"o�
*(
*(�	*(�	*.rg�p(�	*.r��p(�	*.rǼp(�	*.r��p(�	*.r+�p(�	*.rW�p(�	*.r}�p(�	*.r��p(�	*.r߽p(�	*.r��p(�	*.r�p(�	*.rQ�p(�	*.ri�p(�	*.r��p(�	*.r��p(�	*.rϾp(�	*.r�p(�	*.r�p(�	*.r-�p(�	*.r[�p(�	*.ry�p(�	*.r��p(�	*.r��p(�	*.rſp(�	*.r��p(�	*.r�p(�	*.r�p(�	*.r-�p(�	*.r;�p(�	*.rU�p(�	*.rg�p(�	*.ru�p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r�p(�	*.r
�p(�	*.r9�p(�	*.ro�p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r�p(�	*.r�p(�	*.r/�p(�	*.rE�p(�	*.rk�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r1�p(�	*.rK�p(�	*.re�p(�	*.r{�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r3�p(�	*.ra�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r?�p(�	*.r_�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r
�p(�	*.r3�p(�	*.rG�p(�	*.r]�p(�	*.r��p(�	*.r��p(�	*.r%�p(�	*.rW�p(�	*.r}�p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r-�p(�	*.rQ�p(�	*.r}�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r	�p(�	*.r#�p(�	*.r?�p(�	*.ry�p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r-�p(�	*.rI�p(�	*.rk�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.rA�p(�	*.ro�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r-�p(�	*.rO�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r3�p(�	*.rM�p(�	*.re�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.rQ�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r;�p(�	*.r��p(�	*.r��p(�	*.r!�p(�	*.ro�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r
�p(�	*.r/�p(�	*.rI�p(�	*.ru�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r-�p(�	*.rO�p(�	*.rc�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.rU�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r#�p(�	*.r3�p(�	*.r[�p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r��p(�	*.r�p(�	*.r�p(�	*.r#�p(�	*.r+�p(�	*.r5�p(�	*.r?�p(�	*2rM�p(�	*6ru�p(�	*6r��p(�	*6r��p(�	*2r'�p(�	*2ra�p(�	*2r��p(�	*6r��p(�	*2r��p(�	*2r�p(�	*6r/�p(�	*2rM�p(�	*2re�p(�	*2r��p(�	*2r��p(�	*2r��p(�	*2r�p(�	*2rM�p(�	*Fry�p��(�	*0,�,' ŝ�
+o6
a �Z
Xo�
2�*:(
}]*2{]o
*2{]o$
*2{]o
*(
*J{eo
o�
*(
*~k*�k*F~j~ko
*r(m
~j~ko
(�
*v(m
~j~ko
(�
*n�A(a
s
�j�k*BSJBv4.0.30319lX�#~ĔD�#Strings���#US�X#GUID�X�#BlobW�	�3�^3�	�I�@��/

]H5Q�6Q��6Q�4
��
�3|��g��5g�f6ua�4�<�6�nY5�nK6�nx5�n5�n35�n%6�nO4�n�5Q�cua;42���ua�o�����5�nѓ��ua��UԚP͚�S��S�f�w�#�wAs�w"�4�H��nȃS�S&�9�&�
9�*]��#)uawua
wua0ua`z�n�y�n\ uaXEua�uaW$ua.C�x�.Ax�2�5�F�5ua6(4�F:p���p�w&��w&j�9�qp�wz�w&�p9��p�w&̟9��u�w&�u9��S�l�w��x�ua�3ua�6ua쓠
pS�cua&��9��vua�u�w�fua���:��"��Hg�����墚�ua�ua����o�KԚG��z�|�x��v�7ޚ�vuaneS�(��3ua���B�:a|
�pǚrB�G��Ԛ<��(��A
����ܚ�0q�͚�3Q���m6���6�4�F>���F>��F�y�m2z�nKBua"���H��|6uaua�uaB�=g��wuah�ua\�ua�=؜pz�nk��nޅ�n�0ua
D�|��ua�>ua����oS��"SϳH"�γH"�o�H���Hua6m��F�
owԃowއ�Wua��n��n(,�n@,S>_��F�cuaN7uas�uax�ua@ua}ua8uaua.o�x�.�ox�.��x�.,x�d��wpow휂woS���wF����uua�n���Pv�&�o9�J��
���ua"�"hԳHN.�
��A|�v�w��;�)�n��|D��셚�ua&v��w�(uv��uuaZuad�"f��H"�"�H"�>�H�v���uaBcD2�tuuag01�:Q��_}zY��}zY	&G}z�
�t}z�$��}zY&	=z}z�W�w}zY+WΈ}zY/X�}z�H`��}zQHb�$}zQMb�(}zQQb�(}zQUb)}zQaba$}zQdb�%}zQnbu}zQrb�"}zQub(}zQ{b4(}zQ�b�&}zQ�b�&}zQ�b�&}zQ�b�(}zQ�bG:}zQ�b�1}zQ�b|"}zQ�b&}zQ�b�}zQ�b;�}zQ�b�F}zQ�b��}zQ�b��}zQ�b�$}zQ�bO'}zQ�b�'}zQ�b�}zQ�bs%}zQ�b�'}zQ�b{f}zQ�b]&}zQ�b�G}zQ�b��}zQb�1}zQbR�}zQbh#}zQb%}zQba�}zQ!b�G}zQ%b�(}zQ)b��}zQ,b��}zQ1b��}zQ5b��}zQ9b9�}zQ=b�%}zQ@b��}zQCbV}zQHb�t}zQObYu}zQSb�#}zQWb��}zQ\b
n}zQgb%n}zQjb�:}zQnbT(}zQsb��}zQzb�<}zQ�b&�}zQ�b�$}zQ�b�&}zQ�b�a}zQ�b�a}zQ�b0&}zQ�br&}zQ�b�a}zQ�b�#}zQ�bF&}zQ�br#}zQ�b�2}zQ�b��}zQ�b��}zQ�bq}zQ�b�G}zQ�b�t}zQ�b��}zQb�}zQb٧}zQb:�}zQb3}zQbIu}zQb�t}zQ"b>�}zQ%b�t}zQ)b5u}zQ-b|a}zQ1b�(}zQ6b�}zQ9b(�}zQAbN}zQLbN�}zQ[b�+}zQbb�m}zQfb�(}zQkbk$}zQpb�(}zQsbw}zQxb�a}zQ|b��}zQ�b�$}zQ�bk}zQ�bxn}zQ�b�m}zQ�b��}zQ�b�1}zQ�b�$}zQ�b�G}zQ�b�}zQ�b}zQ�b4G}zQ�b�"}zQ�b�%}zQ�bJ�}zQ�b�m}zQ�b�'}zQ�b�B}zQ�b{%}zQ�b�%}zQ�b�'}zQbf2}zQb��}zQ!bh1}zQ%b3}zQ-b82}zQ1b(}zQ6b�2}zQ;b,}zQ?b�}zQCb�}zQHb�1}zQKb�0}zQPbI}zQVb}zQ[b2}zQ`b�w}zQfb�$}zQob�1}zQvb='}zQ{b�2}zQ�b�}zQ�boG}zQ�bX'}zQ�b/'}zQ�b�#}zQ�b�l}zQ�b�:}zQ�b-$}zQ�b��}zQ�b�%}zQ�b7}zQ�b�i,}zY�b`}zY�m�8}zQ���8}zQ��8}zQ%���}zYH���4}z)I��4}z�J�f4}z�J���}zYJ���}z�P�? }z�R�/}z�R�e }z�R�a}z�R��}z�R�n}z�R�L�}z�R��}z�R��m}z�S���}z�V���}z�V�w�}z�V�a}z�W��=}z�W�^�}z4W�1�}z4Z�$�}z�Z���}z�[�z�}z�[��D�}z�[�è}z\��}z\}z�\��}z�_	Aa}z�b�}z4y$}z�~H�}z��|�}z$�(��}z��1�f}z��6�m<}z��9��}z��=}z��?�{l}zY�AA�}zY�G�E}z��I�}z��K��}z�P��}zP�R?�}zP�Ut}zP�X��}zY�[U�}zY�bx}zY�h�}zY�i��}zY�xM�}zy����C}zY���}zY���}zY��f�}z���[,}z�����}z���e}z��vC}zY�"�}z�&�C}z�-��}zu�8�}zY�Aƅ}zY�C~4}z��n�4}z��p�*�}z��r��}z��y5�}z��zS�}z��{��}z��|c�}z��}��}z��~�}z��,�}z�����}z�����}z�����}z����}z����}z���j�}z���A�}z���ԍ}z�����}z���a�}z���p�}z���ː}z�����}z�����}z�����}z���Ď}z����}z���j�}z�����}z���l�}z�����}z�����}z����}z�����}z����}z����}z���i�}z����}z����}z���Č}z���7�}z���T�}z���N�}z�����}z����}z����}z����}z���5�}z���̏}z���S�}z���:�}z�����}z���H}zY��u$}zQ���҇}zY���}zY��p
}z�
�Z}z�
�E�}z���}z����}z����}z��BC}z�>�}z�iC}z��}z�C}z�a"}zQ��}z��C}z���}z�)��}z�-�s}z�/�}z�1�}z�3��}z�8B�}z�<Ǟ}zQ@S�}zY�@�}z����}zQ�;�}zY�d�}z����=�EY�T��e�bY�����bY����Q��	���Q��	�$�Q��	ma�Q��	�(�Q��	)�Q��	^n�Q��	[��Q��	Ơ�Q�	H��Q�	]��Q�	���Q�	� �Q�	u'�Q#�	x��Q'�	'"�Q/�	��Q2�	o��Q8�	Zn�Q>�	���QC�	���QG�	���QR�	pY]�	�Y]�	�Q^�	�l�a�	�Ye�	%Qf�	��Yj�	�DV�yDV�3DDV���DV���DM
[D�D��D�-3�Gd�_DD%�!D�D��D%&D�l*D6���0D��D�
5Ds0�0D���Di
DU�DA
D)(Ez�.j���Df�DV�|����I�:D:D1x`1�1;�1�1j=1V=Q��1�Q�N�1�1 �1Ka1�1��11�x1S1�3�w?D1�
11�
11(1�DV��CDV��CDV��CDV��CD�DV��GDV��GDV��!GD�DV��!KDV���KDV���KD�DV�<�ODV�9�ODV�-�ODV��ODV���ODV�K�ODV���ODV�	�ODV��ODV�N�ODV�=�OD�DV� �SDV��SD�DV��!WDV��WDV�NWDV��WDV��WDV�^WDV��WDV��WDV�rWD�DV�`[DV��[DV��z[D�DV��:_DV��c_D�DV�{cDV�'�cDV�v�cDV�cDV��cD�DV��!gDV��gDV��gDV�egDV���gD�DV�F9kDV�<kDV��!kD�DV�poDV�e
oDV�doDV��!oD�DV�}	sDV��!sDV�lAsDV��/sDV�dsD�DV�}	wDV�lAwDV�dwD�DV��!{DV��{DV��{DV�{DV�m{D�DV��!DV���DV��bDV�)AD�DV�A�DV�C�DV��̓DV��̓D�DV�'b�DV�*D�DV���DV���DV��!�DV��!�DV��`�DV�y�D�DV�!�DV�}��DV�`�DV�y�D�DV�qE�DV��
�DV���DV�y�D�DV��
�DV��>�DV��>�D�DV���DV�~�DV��H�D�DV��DV��ҝDV�h��D�DV�YH�DV�'b�DV�%D�DV�O�DV�D�DV��!�D�DV����DV���DV�Sd�DV��/�DV��ߧDV�,��DV�z�D�DV�Sd�DV�9��DV��/�DV��߬DV�\d�DV�@F�D�DV�A�DV��ͱDV�(d�DV�}	�D�DV�}�DV��
�DV���D�DV�|ŻDV��DV���D�DV��!�DV�R��D�DV�W�DV���DV��DV� �DV��DV��DV�"�DV�-�DV�8�D�DV�L�DV���D�DV�C�DV�+�DV�M�DV�W�DV���DV��DV��DV��DV�"�DV�-�DV�8�D�DV�qE�DV�$=�DV��;�DV�=�DV����DV�� �DV���DV��x�DV�;�DV�
�DV�#�D�DV���DV���DV��:�DV��c�D�DV���DV���DV� �D�DV��!�DV���DV���D�DV��!�DV����DV���DV��)�DV�x9�D�DV��!�DV�?��DV��:�D�DV���DV�@F�DV��
�D�DV���DV��A�D�DV����DV����DV����DV��:�D�DV���EV�
eEV��:E�DV���EV���EV��:E�DV���EV���EV��:E�DV��!EV�V�E�DV�Z`EV���E�DV��9EV�g	EV�qEV�7E�DV�yEV��EV�lEEV�qEEV�`EEV�[
E�DV�/
$EV���$EV�
$E�DV��:)EV�ua)EV�d)E�DV��..EV�.EV�N.EV���.E�DV�R3EV��3EV�T
3EV� 	3EV�=3EV��x3EV�YF3EV���3EV��.3EV�ok3E�DV��H8EV�YF8E�DV��H=EV�YF=EV�b0=E�DV��BEV��BEV�S.BEV��,BE�DV��.GEV�:EGEV�YFGEV�;@GEV�3GEV�+EGE�DV��!LEV��HLEV�YFLEV��FLEV��LEV�	LE�DV��:QEV�BQEV��FQE�DV��!VEV��VEV��VEV��VEV��VE�DV��![EV�5e[EV��[EV�Ɉ[EV�@[EV�[E�DV�J�`EV�h�`EV��`EV�~�`E�DV�J	eEV��eEV�eEV�.�eEV�(�eEV��eEV�XeEV��eEV�>eEV�B�eE�DV�J	jEV�jEV�jEV�_jEV��jEV�EjE�DV�C�oEV�?oE�DV���tEV��/tEV��tEV���tEV�h�tE�DV�XyEV��yEV�>yEV�(�yE�DV��!~EV�`~EV���~EV�7*~EV��r~EV�}q~EV�`q~EV�*~EV��*~EV�J*~EV��r~EV��q~EV��q~E�DV��/�EV��߃E�DV�6�EV�.�EV�):�E�DV��!�EV�'�EV�ꦍEV��EV����EV�զ�E�DV��.�EV��e�EV�>�EV�Ɉ�EV�@�EV��EV�A�EV�Q"�EV��g�EV���EV�\#�EV�dƒEV��EV�X<�EV��6�EV�?@�EV�0֒EV��ޒEV�b��EV�5e�EV�IF�EV���EV�yђEV��/�EV�ՒEV��ߒEV�EV���EV��ŒE�DV��!�EV�Bq�EV�Tc�E�DV��!�EV�OF�EV����E�DV��!�EV�y�EV��:�EV��H�E�DV��:�EV�F�EV�� �EV�v��EV�2��EV�.��E�DV��!�EV�f�EV��
�EV��?�EV�+��EV�H�E�DV��!�EV�y�EV��
�EV��
�E�DV��!�EV�e��EV����EV��ŵE�DV��!�EV��`�EV�-��EV�YH�E�DV�3�EV��	�EV���E�DV���EV�$��E�DV��!�EV���E�DV���EV�p��EV��!�E�DV��!�EV���EV�9��E�DV��!�EV��*�EV��*�E�DV��!�EV�M�EV�� �EV��z�E�DV��!�EV�ME�E�DV�w��EV��EV����EV��
�EV�"b�EV����EV�YH�E�DV��<�EV����EV�9{�EV��)�EV��n�EV�=�EV��k�EV�!l�EV��c�EV���E�DV�=��EV���EV��9�EV���EV�>��EV��e�EV���EV�O��EV����EV���EV���EV��6�EV�k�EV���E�DV��!�EV�}��EV�@��EV�g��EV��B�EV�E�E�DV��!�EV�b�EV�\�E�DV��!FV��eFV�TqFV�GwF�DV��!FV��AFV�F9FV�!�F�DV���
FV��`
F�DV��zFV��_FV�\�FV�=F�DV��FV�DFV��	F�DV��!FV�FV�$�FV�FV�!�F�DV�"bFV���FV��0FV��/FV�a/FV��/FV�L/FV�bFV���FV��0F�DV�4{#FV��z#FV���#FV���#FV��#F�DV��!(FV���(FV���(FV�YH(F�DV�on-FV��-FV��H-FV�6�-F�DV�on2FV��2F�DV�9�7FV�"�7FV�V�7F�<FV�H;?FV��?FV�V;?FV��?F�<FV��DFV�|�DF�DV��!IFV�7�IFV�4+IFV�YHIF�DV��!NFV���NFV��
NF�DV���SFV��bSFV�)ASF�DV��XFV�ȤXFV�ӤXFV��XF�DV���]FV��`]FV��0]F�DV�bFV�3@bFV�@bFV��`bFV���bFV�ybF�DV�egFV�bgFV�hgF�DV�g9lFV��xlFV�	mlF�DV�3qFV��	qFV�	qF�DV�}	vFV��!vFV���vFV��bvFV�)AvFV�3DvF�DV��!{FV��{FV��.{FV�|�{FV�@F{F�DV�o|�FV��~�FV�X�FV�I|�FV�]|�FV���FV��|�FV�#��FV���FV�怀FV��~�FV�~�FV��}�FV����FV��}�FV�7}�FV��|�FV�K��FV�[~�FV��{�FV�s3�FV��6�FV���FV���FV�7��FV���FV��ҀFV��|�FV�+��FV�p9�FV�q��FV�΀�FV��~�FV��}�FV�q}�FV�NȀFV��~�FV�:~�FV��}�FV����FV�U}�FV�}�FV�o��FV�y~�FV��|�FV�%��FV���FV��|�FV�b0�FV��|�FV�
��FV����F�DV��:�FV�<�FV��H�F�DV�M?�FV��?�FV�}?�FV��FV�y�F�DV��k�FV��<�FV�	�F�DV�+��FV��;�FV�Z!�FV�� �FV�	�FV�Ec�FV�y�F�DV���FV�Z!�FV�y�F�DV��?�FV��?�FV�H�FV�y�F�DV�&?�FV���FV���FV�y�F�DV��
�FV��
�FV�y�F�DV����FV���FV�y�F�DV�Ң�FV���FV����FV�y�F�DV�B�FV��F�F�DV��	�FV�\�FV���FV�y�F�DV�� �FV�Z!�FV�n;�FV�4+�FV�y�F�DV����FV����FV�w��FV�y�F�DV�B�FV��F�FV�@F�FV�y�F�DV��?�FV��?�FV�H�FV��>�FV�8?�F�DV�I��FV����FV�ry�FV�!��FV��+�FV����FV��y�FV���F�DV���FV�H��FV�(��FV�Y��FV���FV�Q��F�DV��1�FV�0c�FV�c�FV���F�DV���FV����FV�e��FV�Q��F�DV�� �FV�Z!�FV�Q!�FV�y�F�DV����FV���FV����FV��!�FV�y�F�DV��x�FV��9�FV�z��FV�[��FV��s�FV�y�F�DV���FV��!�FV�@F�F�DV�J�FV��FV��~�F�DV���GV��BG�DV�YHGV���GV�]0GV�20GV�m3G�DV��:GV��cGV���G�DV��<GV�T
GV��!G�DV�}	GV�z3GV��GV��BGV�/BGV�(�G�DV���GV�2lGV�FG�DV��� GV�lE GV�qE GV�`E GV�)A G8%G��*G�
\�DwD/G�4G��DV��9GV���9GV�9GV���9GV��/9GV�z9GV��j9GV��@9GV�T#9GV��9GV�=79GV�P<9GV���9GV���9GV�69GV�
9GV���9GV���9GV�09GV��-9GV�)@9GV��_9GV�o�9GV�|k9GV���9GV��09GV��9GV��9GV�:/9GV�-9GV���9GV��j9GV��q9GV�m@9GV��"9GV�u*9GV�g79GV�`9GV��69GV�9GV��;9GV���9GV�~�9GV��9GV�sc9GV��9GV��9GV�"$9GV�i�9GV��n9GV�s39GV��69GV���9GV�q�9GV�N�9GV��c9GV���9GV��z9GV�b09GV�Jt9GV�19GV���9GV� �9GV��9GV���9GV�D9GV�D9GV�Yt9GV�~t9GV��f9GV�.�9GV��9GV�am9GV���9GV���9GV�<�9GV�Dp9GV�S�9GV�6j9GV�Xj9G�DV��>GV��_>GV�o�>GV�s3>GV��6>GV��0>GV���>GV�p9>GV�q�>GV�N�>GV��
>GV��z>GV�b0>GV�Jt>GV��<>GV�<>G�DV�ԡCGV�ECGV�qCGV�v.CGV�bkCGV�q�CGV�-eCGV���CGV���CGV��2CGV���CGV��CGV�/�CGV�ҒCGV�f`CGV�d.CGV�kCGV��CGV�yjCGV��xCGV��tCGV��.CGV��2CGV���CGV���CGV�v�CGV��CGV�|CGV��CGV�e�CGV��gCGV�w�CGV��.CGV�eCG�<HG!M9FBQG��TG]�XGa!C{&D�D6�gF��D����]G�D�s��A�DԻD� AaGKaGU� Qf�XGQ�x`Q��Q�;�Q��Q�$`Q�V=Q��Q��Q�z�Q���Q�AQ�8Q�LQ��Q��Q�bQ�KaQ�OQ���$�:DZ:DB�:DQ��Q�oQ���Q���Q��D�dG����Q�����QG��c�D)�D�
DU� ”�iGnG�S��Q�&9Q�29Q�.��]G����2�D�`B4yD�AZD()DSXGy��z�D<)D�wG�wGFBQGi��.��XG1!x|G�f�G�wG�wG$!�D!�D˚D�D-�"�XG���D "�G�G
L9()�G�z�g�CD��G�C�G�ԣG�ԣGTգG�ǧG��XG"�XG����D��L9"f:הG8.�[Db�D[D��Go�D]�XG��R��%�G�D��D��x�G�۶G˗�Gvb�GY)�G�ܶG�ܶG�жGУD��D>t�G(�XG��uD'�ǶG
z�><)�G�DV�|�GV���GV���G���GR�,
�f�G�r�G�#�GT��T��T��T�T�
T�.T��T��T��T��T��T�T��X��G�DV��ϔGV�]D�GV�{�GV����G�DV����GV��i�GV���GV�Q+�GV����GV��GV����GV�s��GV����GV�U-�GV���GV�Ё�GV����GV��/�GV���GV�E�GV�M��GV��-�GV��h�GV�e��GV�@m�GV�c��GV�|g�GV�c��GV���GV����GV�L_�GV��@�GV���GV����GV��r�GV�v��GV���GV���GV��d�GV�c��GV��GV�C#�GV�qr�GV� �GV��GV��*�GV��7�GV����GV�6<�GV�,;�GV��_�GV�Y�GV�27�GV�*�GV�+��GV���GV���GV�e��GV��i�GV���GV���GV�n��GV����GV��GV����GV����GV����GV�6|�GV�fo�GV����GV���GV���GV���GV���GV����GV�e��GV����GV�:/�GV����GV����GV����GV��D�GV�҄�GV�-�GV�5h�GV����GV����GV���GV��j�GV�%g�GV��)�GV����GV�f�GV�S��GV��^�GV�m@�GV����GV�b��GV��q�GV�|��GV�q��GV��d�GV�Gd�GV����GV���GV��"�GV�r�GV���GV���GV�u*�GV�g7�GV�]��GV��;�GV��^�GV�`�GV��6�GV��GV���GV����GV����GV�<�GV���GV�i�GV�|�GV���GV����GV�ӕ�GV�~��GV�sc�GV���GV����GV�"$�GV�!��GV�i��GV��{�GV����GV��n�GV��.�GV�^��GV���GV����GV�F��GV����GV����GV����GV��/�GV����GV����GV����GV��D�GV���GV��-�GV�}h�GV�(��GV���GV�@��GV�Lk�GV�Qg�GV�	*�GV�0��GV���GV����GV�_�GV��@�GV����GV����GV��r�GV�Y��GV����GV��d�GV�vd�GV�>��GV���GV�#�GV�<r�GV���GV���GV��*�GV��7�GV����GV��;�GV�_�GV�>�GV�Ȃ�GV�7�GV�(�GV��GV����GV����GV�j�GV�`�GV�<��GV�Oi�GV���GV�$��GV���GV�t+�GV�)��GV����GV����GV��c�GV���GV�ن�GV�&'�GV�j��GV����GV�	|�GV�-o�GV�.�GV�?��GV��e�GV�x�GV��,�GV�"��GV����GV���GV����GL9�G>���G^��G���G��G���G��GZ��G^��G��G*��G��G9��G$��G}��G��GC��G���G߻�G���G���Gξ�G���G��G�DV����GV��i�GV�Q+�GV����GV��GV����GV�s��GV����GV�U-�GV����GV��/�GV���GV��h�GV�e��GV�@m�GV�c��GV���GV����GV��@�GV���GV����GV��r�GV�v��GV�c��GV�C#�GV�qr�GV� �GV��GV��*�GV��7�GV�6<�GV�Y�GV�27�GV�*�GV�+��GV���GV���GV���GV����GV��GV����GV����GV����GV�fo�GV����GV���GV���GV���GV���GV����GV����GV�:/�GV����GV����GV����GV�5h�GV����GV����GV��j�GV����GV�f�GV�S��GV�m@�GV����GV�b��GV��q�GV�|��GV����GV��"�GV�r�GV���GV���GV�u*�GV�g7�GV��;�GV�`�GV��6�GV��GV���GV����GV����GV�<�GV���GV����GV�ӕ�GV�~��GV�sc�GV���GV����GV�"$�GV�!��GV�i��GV����GV��n�GV��.�GV���GV����GV�F��GV����GV����GV��/�GV����GV����GV����GV�}h�GV�(��GV���GV�Lk�GV�0��GV���GV����GV��@�GV����GV����GV��r�GV�Y��GV�>��GV�#�GV�<r�GV���GV���GV��*�GV��7�GV��;�GV�>�GV�Ȃ�GV�7�GV�(�GV��GV����GV����GV�j�GV�`�GV���GV�t+�GV�)��GV����GV����GV��c�GV���GV�ن�GV�&'�GV�j��GV����GV�-o�GV�.�GV�x�GV��,�GV����GV���GV����GL9�G>�ݼ�Gw��G���GϽ�GT��G��G���GX��G}��G���G���G���Gv��G?��G���G��G���Gȿ�G��G���Gx��G���G��G��Gk��G���G/��G���GE��Gd��G���G��G$��G��G?��Gɼ�G*��G���G��G���G��GL��G5��G"��Gc��G��G
��G���G>��G���GJ��G���GW��G��GM�GBD1���G�DV����GV��!�GV�V��G�DV����GV����GV��E�GV�YH�G�DV�H�GV��G�G�DV�Z`HV��>HV��HV�3�HV�\�HV�:wHV�(HV�H�HV���HV��
HV��HV��HH�DV�l�HV��sHV�i�HV�*�H�DV�kHV�tHV��!H�DV��HV�5�HV�2+HV���H�DV�	HV�HHV�"�HV�	HV��HV�yH�DV���HV�bHV��HV�?BHV�V�H�DV�ҔHV��6HV�bHV�HV�yH�DV�y�$HV��$HV��$HV��9$HV�7 $HV�P$HV�y$HV��$H�DV�?)HV��)HV��)HV�R)HV�f)HV�uA)HV�?n)H�DV�	.HV�	.HV��.HV�H.HV�y.H�DV��!3HV���3HV���3H�DV��!8HV��8HV���8HV��38HV�	@8HV���8HV�{�8H�DV�]D=HV�ƒ=H�DV��!BHV�HBHV�-�BHV��
BHV�SHBH�DV�`EGHV�lEGHV�RGHV�qEGHV�/DGH�DV�%�LHV�+LHV��zLHV��zLH�DV�qEQHV�� QHV��QH�DV��VHV��VHV�1�VHV�'�VHV�9�VHV�	�VHV��VHV��VHV���VHV�ߗVH�DV��[HV��[HV�1�[HV�'�[HV�9�[HV�	�[HV��[HV��[HV���[HV�ߗ[Hݓ`H�DV��0DV��0Dzb(�G�"�G*�dH��G�DV��GV����GV�ʱGT�iH�+nHV��:V�)�V��7V��V�V�&V��V��AV��V��V�f�V���V���V���V��xV�a�V��V��V��V�WBV�GbV�'V��V��nV�G�V�VV�ɥV�3fV��V�^xV���V�IV�5V��V�/%V�XV�?V��V��V�RV�fV�uAV�?nV�yV��!V�KEV��HV�|V��V��!V�dV��
V��?V��V�1V�I?V��?V�y?V�V�'�V��;V�?!V�� V�	V�AcV�ƦV�!V��?V�c?V�V��V�#?V���V���V��
V��
V��kV��<V��V��V�E�V�%�V�V�V��V�N�V��1V�-cV�cV��V��V���V�b�V�:�V�� V�N!V�1!V�yV���V���V�;�V��V�]�V���V���V�t�V�%V�iFV���V���V�s�V�>V�FV�+FV��	V�XV��V��?V��?V�DV��>V�4?V�E�V���V�nyV��V��+V���V��yV�jV���V��V���V��!V��xV��9V�v�V�W�V��sV�� V�!!V�i;V�&+V�yV�<FV��!V��V�GV�V��~V�4�V��BV�5HV���V�C0V�0V�S3V��	V��	V�IV�IV�oDV��)V�NAV��HV��HV��)V��zV�Z`V��>V��V��
V���V�6wV�$V�D�V�/�V�X�V��V��HV���V�.	V�bV���V�_�V���V�l�V���V���V�X9V��xV��GV��:V��cV�<�V��3V���V�YHV��zV��!V��bP ��j �S�sHs �;�yH{ ��	U� �S�;� �Y�;� �,�U� �	��U� ��	U� �B�� �J�� �j~H� �{�H� ���H!����H�-ʗH'!��	:!���@	G!���H	X!���
�!����H
 "�d̳H
�"�[a�H�"��P�"���"�y�l�"�5�q#���H%���H%����Hl&���H'�63;�'�t��(���5)��� )�5�qJ)��R)���Hb)���Ht)����H�)����H +��l�H-��H!,.��7l"`.�l#�.�'$�.��EU&X/�|�&0��!&2��&*2�	5B@&72�	
U&D2�	�
@&H2��.&�2�p�&!3���U&$3��U&83�5�&�3���@&�3��.&4�	��@&4���H&A4�	[al'K4�	[a6(_4��c�)m4�K7I*|4���I+�4�m�O0�4��I1�4��I6�4�2�75�Y #I8#5�UE*I915�=1I:?5�o"6I;`5�R�=I<n5��BI=|5�5II>�5���H?�5�NI@�5���A�5��E�B�5�.>�C�5��8lD�5���(E86��H�FO6��GX6���SIG$9��FWIGx;��FWIJo<���cIM|<���lIP�@���y
T�B�uy
U�C��V�C���HV�D��W�D��|W�D��vIW�D��X�D��}IX�
%�@Y�J�IY�D���gYE����[E��8�I\`E�D�I^�E����I_�E��	`
F���Ia1F��d`F�o�e�F���e�F�q	e�G�,f�G�p�If�G�,�Hh�G�wȨIhlH��0i�H�Ij,I��k|I���Im�I��f+n�I��#1n�I�>s7n�I��kUn�I��InJ��0�IpLJ���IraJ���ItxJ���Ix�J����I{�J����I~XK��I�hK��J�DL��6J��L��fJ��L��#J�$M�>s$J�nM��kq�|M���+J��M��b1J��N�8J�tO�E%8J��O�$>J�hP�U%>J��P���SI��P����P��7l�Q���Q���Q���(Q��y �0Q��y	�9Q�i�E�AQ�w�EJ�JQ���@�WQ�4�;�eQ��l�mQ���vQ���q�~Q���p��Q���U��Q�	�U��Q���(R�^{LJ��R��{EJ��R��@UJ�4S���UJ�vS��H��S��H^J��S�S�eJ��S��lJ��S�s^^J��S�C=sJ���zJ��S���S���T��U�T��zJ�KT�
:�J�cT�̈J�{T�m��J��T��˖J��T�^�J�@U�Y �J��U��zJ��U����U��zJ�V���V��zJ�UV���`V��zJ��V����V��zJ�VW���`W�Tw�J��W�.A���W�:�J�(X��g��DY��zJ��Y����Y�G�J��Y��x�J��Z��x�J�l`��zJ�u`����`��zJ��`��a���a���,a�q`�J��a��J�,c��zJ�<e��Le��zJ��e����e��zJ��e���f��zJ�Di���Li��zJ��i����i��zJ��i����i��U��i��:	�j��Al�tj�f�l��j��k�G`�H�\l��l��o��l�q��<�H�|q��zJ��{��A�,|���J|��U�P|�f�l��|��zJ��|����|��zJ��~���~��zJg��o��zJ��������Vť�	�6l���zJ����U����������	�6<��J>�J*���
4��	�6
�w>�J������U���zJp��|����JF���U���UX���zJ�����J@��I���\���U_����SI�����J���l��J���A
;!���Ra&",���zJ$���f�l'x��\f�J'����zJ(����+����+����J+���,�����,P���zJ,����/���jť/`����/����U0��t��J0�����J2����U4����zJ4���7����7���7�����@7%��y
@7_��.�U7����l7�����J7����zJ9����U<����<����U<����zJ<����J?��A
���zJA4��f�JD[���Hd���-KH�
f�lJh��J����J����zJJD���ML����HM����N�����SIN%��;SINL��]G�N���
KO�����
KO�����
KO����KO'��;�yHP0����HP����Q�����HQD���fKRL���#KST��>s&KT\���Ud���-KU���;`4KV����-KW���*H;KX���-ʗHZ����-K]���*HDK^��-ʗH`���-Kc��*HMKd1��-ʗHf@���VKi]��Ylle��bln��&y@mv��-ym���Aln����An����]Ko���_@q���fq���/)@r���8)r���OyDs���t%���cKt\���mKz���[l����j����Ml����^����kl����z����Yl����b����v@����}����!@�	���!���OyD�P����c��U�k���t��>}K����=yy
�������K�����=�����=�K����+�K����Fy�K����A͡K����PީK����߳K� ���ؽK����i��K�������K����Ux�K����Ux�K�p���=������SI������K���� �yH����ܚyH�����sH����6�yH���Q�sH���1�E�����l� ��>�U�(��Q��1�����K�>�����H�G��G@�x��p������~��
����2������E��
����V�K����������q`�K����!,L����b�K�"����U�D���FL�����_yH�D��`l����R�L����-�SI������L����(L����!2L����!8L����l����������7l����7��������ˋH�����U�����H�������H����&yl����-y�����g4K����g�������[:d	�����H�����?L� ��M�OL�@��F`L����a)zL�����zL������L����������������K������H���$C�L���3C�L����ȣL��&ȩL����E�,�1�E�4���l�<��԰L�D��ԵL�M�t԰L�U��ԵL�^�,հL�f�@յL�o���U�w�������x'����ӻL����l�����L���*��L����L�`��������4����o���|�����������Ǚ�`���������L�H�ԛ�L�\�5�q���P��L�\�b��j������FD����͕���P������)���H�<�ϕ���	��5���V�K������L�D	����M	�l��Lh	�A�H�
��*�L����L���9���B���	E�	�mU
T�Ӗ�H
���U��~��
�(�x�B1��T1����l,�^����������T
��-�����@.P�@.M���84��M����H��7l#��7,��84KS�7:l�E�4K��x8M��V8l��g8���!l��:l��ߔl������ M���*��L(�5�q����(M����H ����!��[:d	"\�a)zL$���5M(����<M)�����H*��j~H*���CM*8��MM,v�[�yH,~�-ʗH,����U/����M/h�*HSM0���_M30��M4|��fM5��*HmM6���vM8���M:��\l<��f<��4K=I���4K>p�-ʗH?x��B���pB���HC��͝D����UE�����HE����yHE���sHE�"��LF|��G��Rl�MG���H?����HHG��ǏMHP�W�@IX�,�EI`���UIh���Iq�c@Jy�lJ��^eUK����MK��-b,L��6b�ML��uΝMM��NxR��y�S�ysT7���UT�Q�Vq�?bW��;eX��P)Y����Z���ܜ[ ��ܨM]� ���K`� ����Mb� ���d� �(�He�#���,f�$�*�lf�%�
�lf	&���f &�F��Kf�'����Lf�'�p�lh�'�r�hD(���lhQ(���h`(�U�h)�ye�Mi�)�{�m�)��so�)��o�)�
lp�)��p*�
lq*��$q*�gb�r@*�#8�Mt�*�jb�w+�.=�Mz�+���M|�+�Yy�~B,���T,���f,���x,����,����,����,����,����,����,����,���-���-���,-���>-���P-���b-���t-����-����-����-����-����-����-����-���.���.���(.���:.���L.���^.���p.����.����.����.����.����.����.����.���/���/���$/���6/���H/���Z/���l/���~/����/����/����/����/��'���4����M��4��=�M�5��=��H5����M��5���M�6�~=�M�6�~=N��6���N��6���N��6��x��|7�Z���7����7��pN��7�� ���7��  N�~8�C���8�C)N�H9��A��k9���t9�1N��9���9N��9���?N��9��	U��9�	
��9��#1��9��#FN��9�f+��9�fMN��9�
s7��9�$sTN��9�ߔl��9���:��[N�^:��bN��:����:��.��:�{��:�Bf;��=�>��=�I�N�$>���l��>��[N��>����>��U��>��;��>��bN��>��pN�2?��H?�D?��E�vA��.��A��eU��A���xN��A��~N�B��[N�'B���N�>B���N�UB��[N�^B��l�pB��l��B���yH��B��kyH��B��[N��B�Yl��B�+�U�pC��'l��C�/"U��C�"l��C��9U�D��kU�HD�"ېN�tD�m�N��D�%�U��D��cU�E�B�	��E��7l��E�\l��E��Bl�	F�:l�F��CU�0F��B�N�LF��[N�UF��l�gF�_�l�|F���U��F��CU��F�$C�N��F��s�N��F�ȬN�G���N�%G��C�N�<G�W۸N�SG��۾N�jG�l��N��G����N��G�1��N��G��[N��G�TC�N��G��B�N��G��[N�H���N�3H��[N�<H�<Dl�NH�w�l�`H��U�H��[N��H�Yl��H��U��H��[N��H�&yl��H��gl��H����N�I��[N� I��!2L��I��l��I��8l��I��[N��I�;�yH��I�\l��I��l��I�Cel�J��U�!J�Qel�9J��l�GJ��U�TJ��B�N�pJ��[N�yJ��_l��J�;�yH��J��B�N��J��[N��J��U��J��[N��J��U��J��[N��J��U��J��[N��J��l�K�;�yH�(K�[�yH�?K��U�LK��[N�UK��l�gK�6�yH�~K��U��K��[N��K��,l��K���l��K���l��K���N��K��7�N��K�p�N��K�ms�N��K���N�L���N�L���N�L�>l�,L���
O�4L��i
O�<L�ׂ
O�DL�<+
O�LL���
O�TL��
O�\L���
O�dL�X�
O�lL���
O�tL�2-
O�}L��
O��L���
O��L���
O��L��/
O��L���
O��L��D
O��L�*�
O��L��-
O��L��h
O��L�B�
O��L�m
O��L�M�
O��L�bg
O��L�E�
O��L��
O�M���
O�
M�*_
O�M��@
O�M���
O�(M���
O�1M��r
O�:M�c�
O�CM��
O�LM�̑
O�UM��d
O�^M�L�
O�gM��
O�pM�*#
O�yM�Rr
O��M��
O��M�
O��M��*
O��M��7
O��M���
O��M�<
O��M�;
O��M��_
O��M�G
O��M�7
O��M�
O��M��
O��M���
O��M�m
O�N�L�
O�	N�li
O�N��
O�N��
O�$N�P�
O�-N���
O�6N��
O�?N��
O�HN�{�
O�QN���
O�ZN�|
O�cN�Eo
O�lN�o�
O�uN��
O�~N�
O��N���
O��N���
O��N���
O��N�E�
O��N�}�
O��N� /
O��N���
O��N���
O��N�t�
O��N��D
O��N���
O��N��,
O��N�h
O��N���
O�O���
O�O���
O�O��j
O� O�
g
O�)O��)
O�2O���
O�;O�G
O�DO�5�
O�MO��^
O�VO�O@
O�_O���
O�hO�C�
O�qO��q
O�zO�h�
O��O�V�
O��O��d
O��O�3d
O��O���
O��O�~
O��O��"
O��O��q
O��O��
O��O��
O��O�]*
O��O�S7
O��O�B�
O��O��;
O��O��^
O�P�M
O�
P��6
O�P��
O�P��
O�%P���
O�.P���
O�7P�%
O�@P���
O�IP��h
O�RP�c
O�[P��
O�dP���
O�mP���
O�vP�c�
O�P�]c
O��P��
O��P���
O��P�$
O��P��
O��P�V�
O��P��{
O��P���
O��P��n
O��P��.
O��P�K�
O��P��
O�Q���
O�Q�,�
O�Q���
O�'Q�}�
O�3Q���
O�?Q�q/
O�KQ���
O�WQ���
O�cQ���
O�oQ��D
O�{Q��
O��Q�p-
O��Q�Vh
O��Q��
O��Q���
O��Q�+�
O��Q�.k
O��Q�8g
O��Q��)
O��Q��
O��Q�}
O��Q�i�
O�R��^
O�R��@
O�#R���
O�/R�y�
O�;R��r
O�GR�G�
O�SR���
O�_R��d
O�kR�dd
O�wR�(�
O��R��
O��R�#
O��R�r
O��R��
O��R��
O��R��*
O��R�s7
O��R�p�
O��R��;
O��R�f_
O��R�-
O�S���
O�S�7
O�S�
O�+S��
O�7S���
O�CS���
O�OS��i
O�[S�K
O�gS�$�
O�sS�*i
O�S��
O��S��
O��S��
O��S�^+
O��S��
O��S��
O��S���
O��S��c
O��S��
O��S�ņ
O��S�'
O�T�Y�
O�T�t�
O�T��{
O�'T�
o
O�3T�.
O�?T�+�
O�KT��e
O�WT�i
O�cT��,
O�oT�
�
O�{T���
O��T��
O��T���
O��T����T��O��T��O��T��O��T��vI�U�J�I�%U��O�9U�$�O�MU��&O�WU��9&O�aU�ms/O�pU��/O�yU��n/O��U�[�/O��U�%�@��U�>l�HV�*�U�PV�4��YV���U�gV����vV��iU��V��i��V�ׂU��V����V�<+U��V�M+��V���U��V�����V��U��V���W���U�W����$W�X�U�2W�o��AW���U�OW����^W�2-U�mW�Q-�}W��U��W����W���U��W�́��W���U��W�����W��/U��W��/��W���U�X���X��DU�'X�E�7X�*�U�FX�I��VX��-U�eX��-�uX��hU��X��h��X�B�U��X�a���X�mU��X�<m��X�M�U��X�_���X�bgUY�xgY�E�UY�_�/Y��U>Y��NY���U]Y���mY�*_U|Y�H_�Y��@U�Y��@�Y���U�Y���Y���U�Y����Y��rU�Y��rZ�c�U	Z�r�	'Z��U
6Z��
FZ�̑UUZ��eZ��dUtZ��d�Z�L�U
�Z�_�
�Z��U�Z�
�Z�*#U�Z�?#�Z�RrU�Z�mr[��U[� [�U.[�>[��*UM[��*][��7Ul[��7|[���U�[����[�<U�[�2<�[�;U�[�(;�[��_U�[��_�[�GU\�U\�7U&\�.76\�UE\�&U\��Ud\�'�t\���U�\���\�mU�\��\�L�U�\�a��\�liU �\��i �\��U!�\��!]��U"]��".]�P�U#=]�j�#M]���U$\]���$l]��U%{]�%�]��U&�]���&�]�{�U'�]���'�]���U(�]���(�]�|U)�]�2|)^�EoU*^�bo*&^�o�U+5^��+E^��U,T^��,d^�U-s^��-�^���U.�^��.�^���U/�^��/�^���U0�^���0�^�E�U1�^�a�1�^�}�U2_���2_� /U3-_�6/3=_���U4L_���4\_���U5k_���5{_�t�U6�_���6�_��DU7�_��D7�_���U8�_�΄8�_��,U9�_�
-9�_�hU:`�1h:`���U;%`���;5`���U<D`���<T`���U=c`���=s`��jU>�`��j>�`�
gU?�`�!g?�`��)U@�`��)@�`���UA�`���A�`�GUB�`�bBa�5�UCa�O�C-a��^UD<a��^DLa�O@UE[a�i@Eka���UFza���F�a�C�UG�a�^�G�a��qUH�a��qH�a�h�UI�a�x�I�a�V�UJ�a�m�Jb��dUKb��dK%b�3dUL4b�CdLDb���UMSb���Mcb�~UNrb��N�b��"UO�b��"O�b��qUP�b�rP�b��UQ�b��Q�b��UR�b��R�b�]*US
c�q*Sc�S7UT,c�c7T<c�B�UUKc�Y�U[c��;UVjc��;Vzc��^UW�c��^W�c�MUX�c�\X�c��6UY�c��6Y�c��UZ�c�Z�c��U[d��[d���U\$d���\4d���U]Cd���]Sd�%U^bd�8^rd���U_�d��_�d��hU`�d�i`�d�cUa�d�xa�d��Ub�d��b�d���Uc�d���c
e���Ude�ϕd,e�c�Ue;e�z�eKe�]cUfZe�ocfje��Ugye��g�e���Uh�e���h�e�$Ui�e�$i�e��Uj�e��j�e�V�Uk�e�e�kf��{Ul#f��{l6f���UmHf���m[f��nUnmf��nn�f��.Uo�f��.o�f�K�Up�f�Z�p�f��Uq�f��q�f���Urg���rg�,�Us&g�B�s9g���UtKg���t^g�}�Uupg���u�g���Uv�g���v�g�q/Uw�g��/w�g���Ux�g���x�g���Uyh���yh���Uz)h���z<h��DU{Nh��D{ah��U|sh��|�h�p-U}�h��-}�h�VhU~�h�yh~�h��U�h�$��h���U�i�
��i�+�U�,i�<��?i�.kU�Qi�Hk�di�8gU�vi�Mg��i��)U��i�*��i��U��i�,���i�}U��i����i�i�U�
j����j��^U�/j�
_�Bj��@U�Tj��@�gj���U�yj�����j�y�U��j�����j��rU��j��r��j�G�U��j�U���j���U�
k���� k��dU�2k��d�Ek�ddU�Wk�rd�jk�(�U�|k�:���k��U��k����k�#U��k�#��k�rU��k�8r��k��U�l���#l��U�5l���Hl��*U�Zl��*�ml�s7U�l��7��l�p�U��l�����l��;U��l��;��l�f_U��l�{_�m�-U�m�:�&m���U�8m�Ă�Km�7U�]m�7�pm�U��m�$��m��U��m���m���U��m�����m���U��m����n��iU�n�j�)n�KU�;n�\�Nn�$�U�`n�8��sn�*iU��n�Ki��n��U��n����n��U��n� ���n��U��n���o�^+U�o�p+�,o��U�>o�%��Qo��U�co����vo���U��o�����o��cU��o��c��o��U��o����o�ņU��o�Ն�
p�'U�p�"'�/p�Y�U�Ap�f��Tp�t�U�fp����yp��{U��p�|��p�
oU��p�)o��p�.U��p�.��p�+�U��p�;��
q��eU�q��e�2q�iU�Dq�t�Wq��,U�iq��,�|q�
�U��q����q���U��q�����q��U��q����q���U��q����r���SI��x���U��x�����x���U��x�#���x���U��x����x�H�U��x�q��y���U�y���-y�z�U�:y����Oy���U�\y�ְ�qy�.�U�~y�S���y���U��y�ܯ��y�δU��y����y��U��y� ���y�l�U�z����z�:�U�(z�S��=z�$�U�Jz�?��_z�@�U�lz�`���z��U��z�,���z���U��z�����z�Y�U��z�s���z��U��z�%��	{�R�U�{�~��+{�v�U�8{����M{�
�U�Z{�,��o{�H�U�|{�l���{��;O��{��7BO��{�p�HO��{�msQO��{��QO��{��QO��{��QO��{�>l��{���]O��{��i]O�|�<+]O�|���]O�|��]O�|���]O�#|�X�]O�+|���]O�3|�2-]O�;|���]O�D|��/]O�M|���]O�V|��h]O�_|�B�]O�h|�m]O�q|�E�]O�z|��]O��|���]O��|��@]O��|���]O��|���]O��|��r]O��|�c�]O��|�L�]O��|�*#]O��|�Rr]O��|��]O��|�]O��|��*]O��|��7]O��|�<]O�}�G]O�
}�7]O�}�]O�}��]O�%}���]O�.}�m]O�7}��]O�@}���]O�I}��]O�R}��]O�[}�{�]O�d}���]O�m}�Eo]O�v}�o�]O�}��]O��}�]O��}���]O��}���]O��}���]O��}�}�]O��}� /]O��}���]O��}���]O��}�t�]O��}�h]O��}���]O��}���]O��}��j]O��}���]O�~�G]O�~�5�]O�~�O@]O�!~���]O�*~�C�]O�3~��q]O�<~�h�]O�E~���]O�N~��"]O�W~��q]O�`~��]O�i~��]O�r~�]*]O�{~�S7]O��~��;]O��~�M]O��~��6]O��~��]O��~��]O��~���]O��~���]O��~�%]O��~��]O��~���]O��~���]O��~�c�]O��~�]c]O��~��]O����]O��$]O���]O��V�]O�&���]O�/��n]O�8��.]O�A��]O�J���]O�S�,�]O�\���]O�e���]O�n�q/]O�w���]O�����]O�����]O���Vh]O����]O�����]O���.k]O����]O���}]O���i�]O����@]O�����]O���y�]O����r]O���G�]O���(�]O���#]O���r]O����]O�"���]O�+���*]O�4��s7]O�=���;]O�F��-]O�O����]O�X��7]O�a��]O�j���]O�v����]O������]O�����i]O����K]O�����]O����^+]O�����]O�ʀ��]O�ր���]O����c]O����]O����ņ]O���']O���Y�]O���t�]O�*��
o]O�6��.]O�B��i]O�N���,]O�Z����]O�f���]O�r����]O�~��������cO�����jO�����qO�߁��vI����J�I����jO���$�jO�-���yO�7���9yO�A��ms�O�P����O�Y���n�O�h��[ƂO�q��%�@�x��>l�(��*�U�0��4��9����U�G�����V���iU�d���i�s��<+U����M+������U�����������U������ʃ���U�؃������X�U����o������U������!��2-U�/��Q-�>����U�M�����]���/U�l���/�|����U����������hU�����h����B�U�Ʉ�a��ل�mU���<m����E�U��_����U&���6����UE����U���@Ud���@t����U���������U���������rU����rх�c�U��r���L�U���_���*#U	��?#	.��RrU
=��mr
M���U\�� l��U{������*U
����*
����7U����7Ɇ�<U؆�2<��GU���U��7U��.7&��U5��&E���UT��'�d����Us������mU�������U���������UЇ������U������U������{�U-����=����UL����\��EoUk��bo{��o�U��������U�������UȈ��؈���U ��� �����U!���!����U"%����"5��}�U#D����#T�� /U$c��6/$s����U%�����%�����U&�����&���t�U'�����'Љ�hU(߉�1h(����U)�����)����U*����*-���jU+<���j+L����U,[����,k��GU-z��b-���5�U.���O�.���O@U/���i@/Ȋ���U0׊���0��C�U1���^�1���qU2���q2%��h�U34��x�3D����U4S����4c���"U5r���"5����qU6���r6����U7����7����U8ϋ��8ߋ�]*U9��q*9���S7U:
��c7:���;U;,���;;<��MU<K��\<[���6U=j���6=z���U>���>����U?����?�����U@nj���@׌���UA����A���%UB��8B���UC$���C4����UDC����DS����UEb��ϕEr��c�UF���z�F���]cUG���ocG����UH����Hύ���UIލ���I��$UJ���$J
���UK���K,��V�UL;��e�LK����UMZ����Mj���nUNy���nN����.UO����.O����UP����Pǎ���UQ֎���Q��,�UR���B�R����US����S$����UT3����TC��q/UUR���/Ub����UVq����V�����UW�����W�����UX�����X���VhUYΏ�yhYޏ��UZ��$�Z�����U[��
�[��.kU\+��Hk\;���U]J��,�]Z��}U^i���^y��i�U_�����_����@U`����@`�����UaƐ���a֐�y�Ub����b����rUc���rc��G�Ud#��U�d3��(�UeB��:�eR��#Ufa��#fq��rUg���8rg����Uh����h����Ui����iΑ��*Ujݑ��*j��s7Uk����7k���;Ul���;l+��-Um:��:mJ����UnY��Ăni��7Uox��7o���Up���$p����Uq���q̒���Urޒ���r����Us����s���iUt(��jt;��KUuM��\u`���Uvr���v���^+Uw���p+w����Ux���%�xϓ��Uy����y����Uz����z���cU{+���c{>���U|P���|c��ņU}u��Ն}���'U~���"'~���Y�U���f�Ҕ�t�U���������
oU�	��)o���.U�.��.�A��iU�S��t�f���,U�x���,������U�����������U�•���Օ���U�����������SI����U����'������U����,��æ�f�U�Ц������0�U���Y����b�U������)����U�6��߭�K����U�X��!��m��ʹU�z���������U������������U����լ�ӧ�4�U���U�����ĵU���������U�$��$��9����U�F�����[��ºU�h����}��D�U����_�������U����Ѹ������U�Ψ�ϱ�����U��������Z�U���~��'����U�4��ծ�I����U�V��"��k��B�U�x��^�������U������������U����ɷ�ѩ�H�U�ީ�c������U���߫���&�U�"��F��7��IJU�D����Y���U�f����{��~�U������������U����ض����z�U�̪������z�U��������0�U���I��%��ԪU�2����G����U�T����i��J�U�v��b������U����4������U������ϫ�N�U�ܫ�m������U����Ω���|�U� �����5��N�U�B��e��W��P�U�d��n��y��x�U�����������U�����������U�ʬ����߬�F�U���c������U������#����U�0����E��гU�R����g����U�t���������U�����������SI������ԭ���5����O�`����O�Ѯ��.����[aO�����O�
���A@����! ���H)�O�-��H)�O�A��H)�O�U��H)�O�j��H)�O����H)�O����H)�O����H)�O���E�O����E�O����OyD� ��Oy
P�H����P�m����P�z��8�;����8�#P����J�*P����B#P���B0P������(����#P�1����;P�:����EP�N����OP�b��D�\Pp��D�eP��&@���|:����|:����|:s���|:y
Ʊ�|:ֱ�|:���6���6���6�����qP;����{PX��ie�Ph��ie�P��x:�"��x:�#!��x:s$0��x:y&?��x:(O��x:�+_��2�.m��2�/|��2�1���8�;P4̳�8�P6��8�P8J��D�;P:V��D�P<b��D�P>n��ms�P@����ɳPB����ɺPC���	ʳPE���	ʺPFѴ��9�PH���9�PI���9�PK��9�PM*�����PO=�����PPQ�����PRe����PTz����
QW�����QY���$B#P\ŵ�$B0P]��B�#Q`,���>�Pa?���>�PbS����,Qd`��r�*Pdr��r�0Qd�����*Pe����=e���>le׶�ʇ*Pe��ʇ0Qe�����*Pf��b*Pf ��b9Qf3��W
9QgF��o�9Qh\��|�AQi|��p�HQj���p�OQk���p�XQlܷ�|�aQm��p�jQn4���sQoF���9zQpN��czQqV��VbFr_����wtg��,�Qup�����Qwx��u�Qx���<��Q����<��Q����<��Q����<��Q����<��Q����H)��Ÿ��0�Q�θ���w�ָ�9��Q�߸������+�����+�Q����%�
K����7
K����
K���{
K�&���%
K�2���
K�>���A
K�J���
K�V��]�
K�b���
K�n���
K�z��C�
K����R
K����ť
K����E
K����1
K�����
K�¹�?
K��
K�ڹ��
K���G
K���R
K����qA
K�
��;n
K����x
K�"���!
K�.��GE
K�:���H
K�F��x
K�R���
K�^���!
K�j��`
K�v���

K�����?
K����
�
K����-
K����E?
K�����?
K����u?
K�ʺ�
K�ֺ�#�
K���|;
K���;!
K����� 
K����
K���=c
K���¦
K�*��!
K�6���?
K�B��_?
K�N��
K�Z���
K�f��?
K�r����
K�~����
K�����

K�����

K�����k
K�����<
K�����
K�ƻ�
�
K�һ�A�
K�޻�!�
K���R�
K�����
K���J�
K����1
K���)c
K�&��c
K�2��|
K�>���
K�J����
K�V��^�
K�b��6�
K�n��� 
K�z��J!
K����-!
K����y
K������
K������
K����7�
K�¼��
K�μ�Y�
K�ڼ���
K�����
K���p�
K����!
K�
��eF
K�����
K�"����
K�.��o�
K�:��:
K�F��{F
K�R��'F
K�^���	
K�j��T
K�v���
K�����?
K�����?
K����@
K�����>
K����0?
K����A�
K�ʽ���
K�ֽ�jy
K����
K����+
K������
K����y
K���f
K�����
K�*���
K�6����
K�B��}!
K�N���x
K�Z���9
K�f��r�
K�r��S�
K�~���s
K����� 
K����!
K����e;
K����"+
K����y
K�ƾ�8F
K�Ҿ��!
K�޾��
K���C
K����
K����~
K���0�
K����B
K�&��1H
K�2����
K�>��?0
K�J��0
K�V��O3
K�b���	
K�n���	
K�z��I
K����I
K����kD
K�����)
K����JA
K�����H
K�¿��H
K�ο�n)
K�ڿ��z
K���V`
K����>
K�����
K�
���

K�����
K�"��2w
K�.�� 
K�:��@�
K�F��+�
K�R��T�
K�^���
K�j��}H
K�v����
K����*	
K����^
K������
K����[�
K�����
K����h�
K�����
K�����
K���T9
K����x
K�����G
K����:
K����c
K���+�
K�*���3
K�6����
K�B��"H
K�N���z
K�Z��t!
K�f��}b
K�r���:����韐����f������������������������x���������藤���WB�����Gb����'�����n�� ��3f��-����:��^x��G���ؤ�T��/%��a��X�Q�t��_AR�����R����	�� ������U����������������&���������+�����+�Q���.>��&��.>��C��.>��a����SI�ؗ

N9�_
nB�nBnB
��UBl�z��-n��#Ws�d���b��b�_����V���UBUBUBMUB+�zUBUBUB��&���BUBUB��&���BUBUBUBUBUBUBUBUBUBUBUBUBzUBUB�UB�c%�Uz�c%�UzX�%�UzX�%�;UzX�@���N9v,+�N9+�|�N9DA)�e�e��p�p�eׅk:k:�������
�����e���e���e���e�.�p���e����e����e��b���e���e��p���e�e�e�e�e�d%���F�FN9d%3N9N9
N9N9nBq�r{o^K�	o^K�	M�zUB�zUB�zUB�zUB�zUBzM�zzM�z�z�z�z�z:/{ zM�zzM�zzM�zzM�zzM�zP��PP��$zM�z�z�z<)����zzM�zzM�z�z�zzM�zzM�zzM�zzM�zzM�zzM�z��zM�z�zM�zzM�zzM�zzM�zK�zM�zK�nK�nzM�zM�zzM�zM�zy� �=��-��HB=y�y��zM�z�fzM�z�zzM�z9�M�zM�zzM�zM�zzM�zzM�zM�zzM�z����7
�e�z�zM�z��8ޣ�����e�e�e�nB����
nB�����
nB�����
nB�z�z�AN9N9N9�<)N9N9�zy��z�<)y��z�<)��N9N9N9N9N9N9nBN9<)HB����i�.�z���������B�B<)����z��( "N9N9N9N9N9N9�.����Z��`Z�Z��`D��=8>N9N9N9�_��N9nB��HB�B#n��#Wsk^n��#Ws��#n��#Ws��#n�T����)�k�#	Ws
�H�����k����kSB����kN9N9N9N9N9N9N9�x
6{�	zzz]�zz
���������������.�������������(�(�`#z�z9ԗ�d{��
�����
0{N9�z�z�zN9N9�z�	؈�z�`��dHB�B����k�_�_+{��
nB�nB������_0{�����_��0{����N9nBnB
nB�s���N9N9�ql�`N9N9��N9”N9d�N
-�N9N9N9N9N9N9N9N9”?9��{?9��zN9
*����"{�	i0{�����z�><)��"N9�$�+��+N9B�$B�$��+N9�%�!�l�N9܈N96�)(�7F�V�<��7F�V�q�<�zzq��xN9�pM�M�~$[[~$[�A�A~$N9N9N9N9N9N9p��f"��#Ws”ؗp��f"��#WsP�7ap�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�p�99��������������3�6�:3�3�3�3���3���3���3���3�N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N999��������������3�6�:3�3�3�3���3���3���3���3�N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9N9”�=��B<������,���&���,�y����B����B�,����B�&����B�,�y������BnB
�nB�N9N9N9N9�,�ynB
���
��&���&K�:�x�K�:�N9N9N9��N9��N9���N9����:�:���:�����N9��N9ǓN9ǓN9���N9N9N9��N9��N9���N9����:�:���:������������������A�Aa��A�Aa������3�u��79ǓǓ�Ǔ|�Ǔ�|�Ǔ|�Ǔ�|�N9N9�,�+y�����B�+�+
�
�
��=”�=�=�=”OB<)<)<)t<)<)z<)�D�,Ɣ���+P���\���I$\���I$\���\���\����,�+�y<)<)<)zN9�)�)��$#�	��2{nB�x�$�$�<):q�f��x�ld%���R����N9������Hq��m�U�Y�]�a�a�i�q��?a??m?
Yi	���!�
1�A�I�Q�Y�a�i�q�y��������������
� ��$����I�+)���	������8�;���@�����@��D��P���U��.�[alQ��q�m(v�����+�q>�y�ŧy�Ů�[a�Q������Q������Q��A��YL(�������da�M�a���i��|(Q>x!�Fx'iF�.�Z�4�=�<i���Q�y �.�C�p�K����H���Y�-�_�m:e��7ly8�~yD�~i;��Q%���F9���.��F��.Q��@�xE�Q��Qda���!lyD��Q[a��Yl�/"Uy��;yH)�Yi����
YL(a[a[al��8l��U���(A8lYD�F���P��+�q'XY��byD�yyJ�Y8�FY���D��J��5B@�
U�p���@a�����	�.���@��E�!J�!J���2��[a��!������H�y������A���Y[aa�Ui�7li/�@i�A@y�A@y�����!�A1y��8Q��U�yD�^���dag�[a��!�s��! ��|�=
sy���[p�����"��q�cUqo�q����p�������	�p����q��q��av�!���q{��y�c!C�@�|����)l��[a�2�q�f+q�#1q
s7q�kUq,.l�,pU1�f+�s	v1�#11
s7�>l�.�y�Ő,r�,[a�����!�PY9���ͼyW
�,da�y����������yD�!��4�Q�Qr�Q�� ��P����0Y
�lY��U[a6yOy��L(���H��Ri�R�>8d��i��nryW
l�>x!�w�!��!l	��@yDƕyDƣH���[a�qC�@qdlyx:�yx:�y�>����@I�.�q�.�1�.���!y������.#���P�8�;y�9�	Z�@\��8�;��cq��cv�
A{��7l�pʕ���i�դ����{�Q���R��c	��@yD����?*�1��;<r�<da�<[a�a�u���U<-�<�]�8�x�m:~��P�m:�y��l�8���Z����l��e���H)�Q�� 	�a������'�p���>6&q>l�� ,�	B��U)�2Yl)a8��?_
l�.y�O�?T��,����fy8�;��+���	�	Fx'���	i	_����.hul�?��da��=���	�_ �h	Q��y9&���4	i��:	1>�Q~�l�da>	Dda�D-�D�Q[:d	I�I���lIr��B�	�L�	Q��	Q�QFx'!cy
i.�
i@�
iq�"
)�<
Q�C
)q`I
)�P
Q�a
y[� y�7 �M�
�&{�5
�
�  �
� �l�0��QӞ
L����0�
!1��-�)�)Q����
9����
Q���
�cyQT��l�z�,Q��E��$K�
>l���b��!��9�8��@"�/�W�~\Q��pQ5�q�?|Q��i�����A@���
�T�I\
�`d[�`d�7m�������$�gb�Y���YlyH)���.��
l�jb��Yy�Q�)�l�)��)8�
���>	��)m*
q�blY�y$B;��05
�� �yblyx:I
�C���i��Q
iDGQ
q[aq�Hl�.r
q�.y
i�<Q
i��~
)>lq��Uq�"�
q�7lq�U)3,l��?��>�
��A�.A�.�
y��l��P!�Y�yd�
!;��
!J�!�A@��z�8�	��z!�.yH)yH)yH)"yH)+yH)5yH)Ay�Ey�E"y��TyB;yBZ���y��cyD�l�&@y|:�y|:�y|:sy|:yy|:y|:�y6�y6�y6�y�Ң��yx:�yx:syx:yyx:yx:�y2�y2�y2�y�ɶy�ɷy	ʶy	ʷy�9�y9�y���y���y���y���y���y$BZy�>��3�yr�lyr��#�yʇlyʇybyW
yo�Ap�'A�A�HU�l��Y�9UYcUYVb.Y��5Y,;Y��B)uI)<�\�<�b�<�\a�0k)��w����� *i.>�i�$JOTY�^��$O(T,�0�8J<O@�HJLOPTXJ\O`TdYh�l�p�t�x�|����J�O�����J�O�T�Y�����������J�O�T�J�O�J�O���T�������J�O�TYJO�JO� T$�,J0O4T8Y<�DJHTL�TJXO\T`Yd�lJp�t�x��
�����T�Y����������Y�O�T�J�J�O�T���O�T�Y�Y�T�OOTY�TO �$�,J0O4T8Y<�@�D�LJPJTOXT\Y`�hTlOp�tJ|O�T�J�J�O�T�J�O�J�O�T�Y�����������O�T�#�(�-�2�7��<�A�FKPOT��� U$�(Z,0_4d<J@ODTHYPJTOXT`�dJhOpJtOxT|Y���J�O�T�O�T�Y�J�O�O�T�Y���O�T�Y�O�T�Y�T�Y���J�TOTJOTY$J(O,T0Y4�8�@JDOHTPJTOXT`OdThYl�tJxO|T�Y�������������O�T�O�T�Y�O�T�����O�T�T�Y�����J�O�T�Y���JTOJO T$�(�0�4J8O<T@YD�LJPOTTXY`�dJhOlTpYt�x�|��������J�O�T�Y���O�T�J�O�T�Y���J�O�T�Y�J�O�T�Y�����������inJO$J(O,T4J8O<T@YD�H�PJQJTOXY\s`xd}h�l�p�t�x|�����������������������������������J�O�T�J�O�T�J�O�T�Y�JOTY��JO T$Y(�,�4J8O<T@YHJLOPTTY\J`OdThYpJtOxT�O�T�J�O�O�T�Y�J�O�T�J�O�T�J�O�T�Y�J�O�O�T�������U	�	J	O	T	Y	�	� 	�$	�(	�,	�4	O8	T<	Y@	�D	�H	�L	�P	�T	�X	�\	i`	nd	�h	�p	Jt	Ox	T|	��	��	��	J�	O�	T�	O�	T�	Y�	��	J�	O�	T�	Y�	J�	O�	O�	T�	Y�	��	J�	O�	T�	J�	O�	T
Y
�
O
T
Y
�
� 
�$
�(
�,
�0
�8
O<
T@
YD
�H
�P
JT
OX
T\
Yd
Jh
Ol
Tp
Yx
J|
O�
J�
O�
T�
��
��
��
��
��
��
J�
O�
T�
Y�
��
J�
O�
J�
O�
T�
J�
O�
T�
Y�
OTYJOTY� (J,O0T8J<O@THJLOPTX�\J`�d�h�l�tJxO|T�Y���J�O�T�Y���������������i�n�������������������������������U  %$*(/,�04498><C@HDMHRLWP\TaXf`JdOhTpJtOxT|Y���J�O�T�J�O�T�Y�������J�O�T�J�O�T�Y�J�O�T�Y�J�O�T
T
Y
�
J
O
T
Y$
J(
O0
J4
O8
T<
�D
JH
OL
TP
YT
�\
J`
Od
�h
Tp
Jt
Ox
T|
Y�
J�
O�
T�
Y�
��
J�
O�
T�
Y�
��
��
��
��
J�
O�
T�
Y�
��
��
J�
O�
T�
Y�
J�
O�
T�
YJOTYJO T$Y(�0O4T8Y<�@�D�LJPOTT\J`TdYlJpOxJ|O�T�Y���J�O�T�J�O�T�k���Y�������J�O�T�J�O�T�Y��JOTY �$�(�,�0�4�8�<i@nD�H�LP�T�X�\�`�d�hl�p�t�x�|��������U���� �%�*�/���4�9�>�C�H�M�R�W�\�a�f�p�u�z���������#�d��(�� $�(-,0�4�8�<�@�D�H�L�TJXO\T`Yd�h�l�p�t�x�|��i�n������J�O�T�Y���������������i�n����������������������������U�������|�Z���������x�����A�X�s���������"�#�7#�r#��#$<$@�$D�$H�$�J�O�T��$�%�%,%?%R%e%�%�%�%�% &$&0J4O8T<YDJHOLTPYT�X�\�`�d�h�l�pitnx�|��������������������������������U���� �%�*�/���4�9�>�C�H�MRW\afpuz $�(�,�0�4#8�<d@�D�H(L�P�TX�\-`d�h�l�p�t�x�|����2�J&�
�O&�T&�Y&�^&��c&�h&�7�m&�r&�w&�|&��&��&��&��&�������&��&��&����&��&����&�<�&�&�&�&�&�&�&�& �&$A(�&,�&0�&4�&8�&<�&@�&DZH'LFP'T
'X'\'`'d!'h&'l+'p0'tKx5'|:'�?'�D'�I'�N'�S'�X'�]'�P�b'�g'�l'�q'�v'�{'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'��'�'�'�'�'�'�'�'�' ($(((,(0(4(8 (<%(@*(D/(H4(L9(P>(TC(XH(\M(`R(dshxl}pW(t\(xa(|f(�k(�p(�u(�z(�(��(JOTY���� �$�(�,i0n4�8�<@�D�H�L�P�T�X\�`�d�h�lpt�x�|��U���� �%�*�/���4�9�>�C�H�M�R�W�\�a�f�p�u�z����������#���d���(���- �$�(�,�0�4�8�<�@2DJ&H
LO&PT&TY&X^&\`c&dh&h7lm&pr&tw&x|&|�&��&��&��&�������&��&��&����&��&����&�<��&��&��&��&��&��&��&��&��&�A��&��&��&��&��&��&��&Z'F'
'''' !'$&'(+',0'0K45'8:'<?'@D'DI'HN'LS'PX'T]'XPLJPOTT\O`Td�h�pJtO|O�T�Y���������������i�n�O�T�Y���O�T�Y�J�O�T�Y�J�O�T�Y����OT���� �$T(O,J4�8�<�@UDOHZLJP�XO\T`Yd�h�l�p�xY|J���O���O�T�Y�J�T�������U���O�T�J�O�T�����O����(�J��OTY�OT� O$T(�,�0�4U8�<�&@dD(LOPTTYX�\�`�d�h�l�p�|J�O�J�O�T��(��(��(�)�J)�u)��)��)��)�%*�^*��*��*�
+�6+�Y+�x+��+��+��+,1,H,y,�,�,�,�, -$/-(v-,�-0�-4�-8.<I.@t.D�.H�.L�.P�.T�.X/\O/`^/dk/h~/l�/p�/t�/x�/|�/��/�0�80�U0��0��0��0�1�,1�C1�X1�o1��1��1��1��1�2�'2�H2�i2��2��2��2��2��2�3�03�C3�b3��3��3��3�34H4g4�4�4�4�4 �4$5(.5,S50f54{58�5<6@@6Dq6H�6L�6P�6T7XB7\e7`�7d�7h�7l8p8t18xL8|�8��8��8�9�59�P9�q9��9��9��9�:�B:�o:��:��:��:��:�;�';�H;�y;��;��;�(<�A<�X<�}<��<��<��<��<��<�= <= {= �= �= "> m> �> ?  R?$ e?( ~?, �?0 �?4 �?8 �?< @@ $@D O@H x@L �@P �@T �@X �@\ �@` Ad !Ah 4Al SAp lAt �Ax �A| �A� �A� B� |B� �B� �B� �B� �B� �B� C� MC� |C� �C� �C� �C� �C� �C� �C� �C� �C� �C.O.aS.jS.#�S.+�S.3�S.;�S.C�S.K�S.S�S.[T.c5T.k�T.sU.{$U.�$U.�EU.��V.�X.��Y.�[.�z\.��].�X_.��`.�?b.��c.�(ec��g��Q����g���g��Q�C��g��[�c�����萣�0���x�������#�Q�#���c�O��O�ԒC��#�O��O�
��f�
r�f�
��f�
r�f��fr�f�O�!��f!rgA� gAr3gC�Oa�@gardgc�O���g�r�g���g�r�g���g�r�g��h�r!h�;hrEhc�����O��Oa�Oh��Xh��`h��lh��O�wh!��h��ѓ���h���h������h��h�]�A��hC���a��h��ߔ���h��<����h�����
i��#�H�C���c�喃�E���i������(i������
i��E���� O#��@OA�iC�=�a�
ic�����噣�(���l�������#�O�C���c�����4���{���ǜ����f�#���C�����gO#�R��r7i�rEi�rWi#��g���g���g���g���g���g���g���g��g#��gC��gc��g���g���g���g��g#��gC��gc�[���[�#��g!#�ciA#�miA$�xia$��ic$��g�$��i�$��g�$��g�$��g�$��g%��g#%��gC%��gc%��g�%��g�%��g�%��g&��g#&��gC&��gc&��g�&��g�&��g�&��g�&��g'��g�'�Q�(O#(�Oc(�O�(���C)�Oc)�O�)�O�)�ƞ*�OC*�O�*�O�*�O+�O�+�O�+�O�@r�i�@r�iAr�i!Ar�iAAr�iaAr�i�FrjGrjaXr&jaX�4j�Xr>j�X�Sj�Xrej�X�}j�Xr�j�X��j�Xr�j�X��jYr�jY��j�Yr�j�Y�k�Yr k�Y�=kZrKkZ�dk�Zrxk�Zr�k�Z�xi[r�k[��k![r�k![��kA[r�kA[��ka[r�ka[��kd[�Oa\��k�\�l�\�/l�\�Il�\�dl]�}l!]��lA]��la]��l�]��l�]�m�]�3m�]�_m^��m!^��mA^��ma^��m�^�n�^�Fn�^�mn�^�}n_��n!_��nA_��na_��n�_��n�_�o�_�o�_�>o`�Po!`�]oA`�moa`��o�`��o�`��o�`�p�`�pa�.p!a�XpAa��paa��p�a��p�a��p�a�q�a�5qb�Tq!b��qAb��qab��q�b��q�b��q�b�r�crr�cr2r�crRr�crlrdr�rAdr�radr�r�dr�r�dr�r�dr�rer�r!ersAersaer)s�er�r�erAs�erUsfr�rAfresafrs�fr�s�fr�r�fr�sgr�s!gr�sAgr�r�gr�s�gr�s�gr�rhr	th�!t!hr*t!h�HtAh��gAhr�r�hrXt�h�ot�hrwt�h��t�hr�t�h�!t�h��g�hr�r!i��t!ir�tAi��tAir�t�ir
u�ir u�irBu�ir�r!jriuAjr{uajr�u�jr�u�jr�u�j��u�jr�uk��ukrv!k�.v!krFvAk��gAkr�r�krav�k��t�krtv�k��t�kr�v�k��v�k��g�kr�r!lr�vAlr�valr�v�lr�v�lr�v�lrwmr-w!mrIwAmrbwamr|w�mr�w�mr�w�mr�wnr�w!nr�wAnrxanr6x�nrGx�nr]x�nrrxor�x!or�xAor�x�or�x�or�x�or�x�ory!pryApr,yapr;y�prSy�prcy�pruyqr�y!qr�yAq��gAqr�r�qr�y�qr�y�qr�y�qrzrr$z!r��g!rr�rarrLz�rrZz�rrhz�rrzzsr�z!sr�zasr�zas��z�sr{�s�"{�sr-{�s��g�srP{�s�{{tr�{t��{!tr�{!t��{Atr	|At�5|�trH|�t�Oh�trf|�t�Xh�tr�|�t��|ur�|u��|!ur�|!u�}Aur}Au�xi�u�?}�urxk�u�N}�ur\}�u�j}�urs}�u�|}�ur�}v��}vr�}!v��}!vr�}avr�}av��}�vr�}�v�~�vr?~�v�s~�v��kw��~!w��~Aw��~aw��k�x��~�x��~�x��~�x��~�x��x�
�x�*�x�4y�Ly�V!y�q!y�{Ay��Ay��ay��ay���y���y���y���y�#��y�7��y�A��y�V��y�`�z���z���!z���!z���Az�πAz�ـaz��az����z���z���z�>��z�H��z�\��z�f��z�x��z���{���{���!{���!{���A{�ƁA{�΁a{�ہa{�偁{����{���{���{� ��{�6��{�@��{�[��{�e�|�z�|���!|���!|���A|���A|�łD|�Oa|�قa|�め|���|���|�.��|�8��|�U��|�_��|�x��|���}���}���!}���!}���A}�σA}�كa}��a}����}���}���}�3��}�=��}�R��}�\��}�v��}���~���~���!~���!~���A~�τA~�لa~��a~����~���~���~�!��~�+��~�M��~�}n�~�U��~��n�]��o!�e�!�]oA�m�A�pa�u�a����������������…��օ���q��ޅ����������!���!��(�A��F�A��P�a��o�a��y��������������ˆ���Ն�������������	���8���B�!��m�!��w�A����A����a��̇a��և������������.����8����X����b�����������������!��ވ!���A���A���a��9�a��C�����~����~������������Ɓ��΁��M���}n!��U�!���nA��l�A��t�a��]�a��o��������Po���e����]o���m����p��������������…!��օ!���qA��ޅA���a����a�������É���͉���������������0���:�!��T�!��^�A��v�A����a����a�������Ċ���Ί���㊡�����
�������)���3���K���U�!��i�!��s�A��\�A����a����a����������������������̋���������������1���;�!��`�!��=kA��j�A��t�a����a�����������������ό���׌������������������8���B�!��]�!��g�A���A����a����a�������ԍ���ލ������������$����.���H���Q���O$��OD��O���O��rl����}��r������!�r��!����A�r��A����a�rɎa��܎��r뎁�����r����"���r-����B���rS����f��ry�����!�r��!����A�r��A������r����ȑ�r�!�r��A�r�a�r���r1��O�O�O�OO O@O O@O`O�OIYc|�Rp�����#.4�����&@JVm�����%=EKUagp~��&;?CY������*ELQZc����������6Ch������F[n�������	L	U	l	r	�	�	�	�	�	�	
)
6
V
g
�
�
�
!2?Qcv������������"r����

!
/
A
X
�
�
�
�
�
�
�
�
�
N���!�	�������!�"�#�$�%�&�(�-�.�/�0�1�4�6�<�>�I�K�N�Q�a�g�h�j�l�m�p�y�z#{%�&�'�(�)�*�+�,�-�.�0�1�2�6�7�8�:�;�=�>$?�A�Y�^�ėR�	R��R�	R�R��R�� Rha$R}�*R��.R9B R#
R�
 R�� R�� Rha4Rha9R0>R)� RF9*RzDR{�HR�*RU�NR�R�R�R�SR�A*Rj�*R�Rj�*R�R�R�R�Rj�*R��R�R�� R}
 R2�R
*R�R�Rj�*RWRėRd*RLy R�A*R� R<) Rn*R�*R�*Rd*R� R#) RRB[R$�R�RU�RY�HR��*RU�RƅaR�G R�gRI�gR��R"�lR�vR#)�R
*RF9*R�R��RLy*RƅaRvC�RAȌR��HRY�HR��*R�ԒR�ԒRDՒR��R�ӗR�*R.��R��.R�mR�R��RF9*R|8*R�!*RV:*RL�*R.��R��R�R_�R��R`*R�R��R��R�R[� RD�HR��Rp RbeRqb�R.�*R�*R*R*R���R%
R�#�R�f�RAs�RL�*R�Ra��R!��R��R*R��*R��R�kRd*R<�R�'*RD"R"*R�9RlR3��R��RQ�R�cR^�RF9*R`*R�C*RV:*R�CRC�R�*Rc�*R��R�CRvC�R0t�RA�R��R�CS��S��S�S��SY� SpC&SC�R
,S]D*R��*Rd*RLy*R�g*R��2S#)�R
*R�8*RėR`*R��*RGe*R�RUe*R��*RC�R�`*RėRC�R�*RėR_�R
*R:�R�.*R��*R��*RF98S��>S�i>S�>SQ+>S��>S>S��>Ss�>S��>SU->S�>SЁ>S��>S�/>S�>SE>SM�>S�->S�h>Se�>S@m>Sc�>S|g>Sc�>S�>S��>SL_>S�@>S�>S��>S�r>Sv�>S�>S�>S�d>Sc�>S>SC#>Sqr>S >S>S�*>S�7>S��>S6<>S,;>S�_>SY>S27>S*>S+�>S�>S�>Se�>S�i>S�>S�>Sn�>S��>S>S��>S��>S��>S6|>Sfo>S��>S�>S�>S�>S�>S��>Se�>S��>S:/>S��>S��>S��>S�D>S҄>S->S5h>S��>S��>S�>S�j>S%g>S�)>S��>Sf>SS�>S�^>Sm@>S��>Sb�>S�q>S|�>Sq�>S�d>SGd>S��>S�>S�">Sr>S�>S�>Su*>Sg7>S]�>S�;>S�^>S`>S�6>S>S�>S��>S��>S<>S�>Si>S|>S�>S��>Sӕ>S~�>Ssc>S�>S��>S"$>S!�>Si�>S�{>S��>S�n>S�.>S^�>S�>S��>SF�>S��>S��>S��>S�/>S��>S��>S��>S�D>S�>S�->S}h>S(�>S�>S@�>SLk>SQg>S	*>S0�>S�>S��>S_>S�@>S��>S��>S�r>SY�>S��>S�d>Svd>S>�>S�>S#>S<r>S�>S�>S�*>S�7>S��>S�;>S_>S>>SȂ>S7>S(>S>S��>S��>Sj>S`>S<�>SOi>S�>S$�>S�>St+>S)�>S��>S��>S�c>S�>Sن>S&'>Sj�>S��>S	|>S-o>S.>S?�>S�e>Sx>S�,>S"�>S��>S�>S��>S)� R8�R��R�iR�RQ+R��RR��Rs�R��RU-R�RЁR��R�/R�RERM�R�-R�hRe�R@mRc�R|gRc�R�R��RL_R�@R�R��R�rRv�R�R�R�dRc�RRC#RqrR RR�*R�7R��R6<R,;R�_RYR27R*R+�R�R�Re�R�iR�R�Rn�R��RR��R��R��R6|RfoR��R�R�R�R�R��Re�R��R:/R��R��R��R�DR҄R-R5hR��R��R�R�jR%gR�)R��RfRS�R�^Rm@R��Rb�R�qR|�Rq�R�dRGdR��R�R�"RrR�R�Ru*Rg7R]�R�;R�^R`R�6RR�R��R��R<R�RiR|R�R��RӕR~�RscR�R��R"$R!�Ri�R�{R��R�nR�.R^�R�R��RF�R��R��R��R�/R��R��R��R�DR�R�-R}hR(�R�R@�RLkRQgR	*R0�R�R��R_R�@R��R��R�rRY�R��R�dRvdR>�R�R#R<rR�R�R�*R�7R��R�;R_R>RȂR7R(RR��R��RjR`R<�ROiR�R$�R�Rt+R)�R��R��R�cR�RنR&'Rj�R��R	|R-oR.R?�R�eRxR�,R"�R��R�R��R��R'�R�Ru�R�R��RڰRW�R�R�R$�R��RW�RC�Rd�R0�R��Rw�R)�R��R��R0�Rp�RF9DS��JS�iJSQ+JS��JSJS��JSs�JS��JSU-JS��JS�/JS�JS�hJSe�JS@mJSc�JS�JS��JS�@JS�JS��JS�rJSv�JSc�JSC#JSqrJS JSJS�*JS�7JS6<JSYJS27JS*JS+�JS�JS�JS�JS��JSJS��JS��JS��JSfoJS��JS�JS�JS�JS�JS��JS��JS:/JS��JS��JS��JS5hJS��JS��JS�jJS��JSfJSS�JSm@JS��JSb�JS�qJS|�JS��JS�"JSrJS�JS�JSu*JSg7JS�;JS`JS�6JSJS�JS��JS��JS<JS�JS��JSӕJS~�JSscJS�JS��JS"$JS!�JSi�JS��JS�nJS�.JS�JS��JSF�JS��JS��JS�/JS��JS��JS��JS}hJS(�JS�JSLkJS0�JS�JS��JS�@JS��JS��JS�rJSY�JS>�JS#JS<rJS�JS�JS�*JS�7JS�;JS>JSȂJS7JS(JSJS��JS��JSjJS`JS�JSt+JS)�JS��JS��JS�cJS�JSنJS&'JSj�JS��JS-oJS.JSxJS�,JS��JS�JS��JS)� R8�R��R�iRQ+R��RR��Rs�R��RU-R��R�/R�R�hRe�R@mRc�R�R��R�@R�R��R�rRv�Rc�RC#RqrR RR�*R�7R6<RYR27R*R+�R�R�R�R��RR��R��R��RfoR��R�R�R�R�R��R��R:/R��R��R��R5hR��R��R�jR��RfRS�Rm@R��Rb�R�qR|�R��R�"RrR�R�Ru*Rg7R�;R`R�6RR�R��R��R<R�R��RӕR~�RscR�R��R"$R!�Ri�R��R�nR�.R�R��RF�R��R��R�/R��R��R��R}hR(�R�RLkR0�R�R��R�@R��R��R�rRY�R>�R#R<rR�R�R�*R�7R�;R>RȂR7R(RR��R��RjR`R�Rt+R)�R��R��R�cR�RنR&'Rj�R��R-oR.RxR�,R��R�R��R+�R0�R��R]�R��R�R%�R�R��R٬RY�R�R(�R��R�Rc�RոRӱR��R��RٮR&�Rb�R��RͷRg�R�RJ�R�R�R��RܶR��R��RM�R�R�Rf�R8�R�Rq�RҩR��Ri�Rr�R��R#�R��Rg�R��R�R�R��R�RhaPS��US
B R�+[S)�WR�7WR�WRWR&WR�WR�AWR�WRa�WR�WR�WRG�WRVWRɥWRIWR5WR�WR?WR�WR�WRRWRfWRuAWR?nWRyWR�!WRKEWR�HWR|WR�WR�!WRdWR�
WR�?WR�WR1WRI?WR�?WRy?WRWR'�WR�;WR?!WR� WR	WRAcWRƦWR!WR�?WRc?WRWR�WR#?WR��WR��WR�
WR�
WR�kWR�<WR�WR�WRE�WR%�WRV�WR�WRN�WR�1WR-cWRcWR�WR�WR��WRb�WR:�WR� WRN!WR1!WRyWR��WR��WR;�WR�WR]�WR��WR��WRt�WR%WRiFWR��WR��WRs�WR>WRFWR+FWR�	WRXWR�WR�?WR�?WRDWR�>WR4?WRE�WR��WRnyWR�WR�+WR��WR�yWRjWR��WR�WR��WR�!WR�xWR�9WRv�WRW�WR�sWR� WR!!WRi;WR&+WRyWR<FWR�!WR�WRGWRWR�~WR4�WR�BWR5HWR��WRC0WR0WRS3WR�	WR�	WRIWRIWRoDWR�)WRNAWR�HWR�HWR�)WR�zWRZ`WR�>WR�WR�
WR��WR6wWR$WRD�WR/�WRX�WR�WR�HWR��WR.	WRbWR��WR_�WR��WRl�WR��WR��WRX9WR�xWR�GWR�:WR�cWR<�WR�3WR��WRYHWR�zWR�!WR�bWR��DR�+[S		

"345;=?!@#b%c%f'�)�+�+�-�-�/�/�1�1�3�5�7�9�;�=�?�A�CE
GIK"M%O*Q+S,U-W0Y2[:]D_Ha\c]c^e_e`gagcidiekfkkmlmmonooqpqqsrssutuuwvwyyzy{{�}�����������������������������������������������������������������������������������������������������
���������$�%�(�*�3�4�<�;�=�>�?�D�F�G�H�I�J�K�L�N�O�a�b�o�q���������������������������	��
����������!�#�%�'�)�+�-�/�1�3�5�7�9�;=?ACEGIKM	O
QS
UWY[]_acegi k!m"o#q$s%u&w(y*{+},4�5�6�9�:�=�>�?�A�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�{�|�}�~�����	��
����������!�#�%�'�)�+�-�/�1�3�5�7�9�;�=�?�A�C�E�G�I�K�M�O�Q�S�U�W�Y�[�]�_�a�c�e�g�i�k�m�o�q�s�u�w�y�{�}����������������������������������������������������������������������������������������������������������������������������������	
	

!#%')+-/13579;+=-?.?/A0A1C2C3E4E5G6G7I8I9K:K;M<M=O>O?Q@QASBSCUDUEWFWGYHYI[J[K]L]M_N_OaPaQcRcSeTeUgVgWiXiYkZk[m\m]o^o_q`qasbscuduewfwgyhyi{j{k}l}mno�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�	���
�
���	

!!##%%''))++--//1 1!3"3#5$5%7&7'9(9);*;+=,=-?.?/A0A1C2C3E4E5G6G7I8I9K:K;M<M=O>O?Q@QASBSCUDUEWFWGYHYI[J[K]L]M_N_OaPaQcRcSeTeUgVgWiXiYkZk[m\m]o^o_q`qasbscuduewfwgyhyi{j{k}l}mno�p�q�r�s�t�u�v�w�x�y�z�{�|�}�~�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������	�	���
�
��	!#%')+-/13579 ;!="?#A$C%E&G'I(K)M*O+Q,S-U.W/Y0[1]2_3a4c5e6g7i8k9m:o;q<s=u>w?y@{A}BC�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�{�|�}�~�������������	��
����������!�#�%�'�)�+�-�/�1�3�5�7�9�;�=�?�A�C�E�G�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�q�q�s�s�u�u�w�w�y�y�{�{�}�}�������������������������������������������������	�
���
������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�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�mnopqrstu	v	wxy
z
{|}~��������������!�!�#�#�%�%�'�'�)�)�+�+�-�-�/�/�1�1�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�q�q�s�s�u�u�w�w�y�y�{�{�}�}�����������������������������������������������	�
���
������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�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�Z�[�\����������������������������	��
����������!�#�%�'�)�+�-�/�1�3�5�7�9�;�=�?�A�C�E�G�I�K�M	O	Q	S	U	W	Y	[	]	_		a
	c	e	g
	i	k	m	o	q	s	u	w	y	{	}		�	�	�	�	�	�	� 	�!	�"	�#	�$	�%	�&	�'	�(	�)	�*	�+	�,	�-	�.	�/	�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	1	r	3	s	5	t	7	u	9	v	;	w	=	x	?	y	A	z	C	{	E	|	G	}	I	~	K		M	�	O	�	Q	�	S	�	U	�	W	�	Y	�	[	�	[	Y4)2����	MD	�
<Se����b�� �3����M�����ow���y���N�9����x���F�����E��2������?����7�X <U�A�T�V�X(`i[pv?Q���WX��O��[��y[���]���L���X���WX��W`�W8eW��Up�U`�S�TL@'.] 0ZH>�M�KU \�V(`Y jBI�ZI�TJ(�4L��P]���Y���Y��S���N��M��P���Zx��M��NX��Y�	T8�iS�[�\�^�Nf]0k^PhrRVz�[�}5T���N �oT �lP��Vh��Mx`�Spe�P�m&Vx>Z{+Q8��\�8X��X�]��wLH��X���M�CL "�U`8^H;Z`?JS�B�R�MM�P�K�a#S�e�NPp�Z�x)[P~[�[��Z��I8��Z؝�Zؠ�O0��[��G^��W��^���]X��]���]�<^���J �^Yx�f]��K��QX�TL�qU#�N�'�R@/�\�A�O�W�K8Zv\t\SH�RK�5K��eJ��[@��O`��[�)PX�W��JP���JH��Z���K��tZP�5\��JN�LO�!O�Y8"uY�&[\1.N 6(I:VW@�?P���L�\p��J��Y��O�(\0�OMPyJ �T0
"ZHK��IX�KJ�~\�y�R�Px�JȔ�P��[��I@�T�I@!(W�OU�m�OHv�T�yZK�6W`��OX��RP�gK�F\�� PH	�K`	�R�3	z]�6	{P 8	6[�=	$LA	FY�F	JX�L	GW�T	�OX	RRP]	�I�`	#R�e	aO�i	�Po	�T�u	�UH}	2U��	�RX�	�X�	qM�	�U�	3O�	 U�	�S��	�S��	:S��	~T�	�V0�	kNx�	�L�	bU �	�V��	�Tp�	nQP�	R(�	�Q
UQ�
�QX/
}Q�2
�Q�?
�QXA
�Q�B
`QhF
�Q�H
�Q(K
�T�W
�J�a
wRHe
�K�h
Y@u
L[�{
dXx�
�X��
�N�
LR`�
uOВ
�P�
:R �
�NP�
�J�
|W�
Q(�
�T��
{V��
L��
�U��
�]P�
fR�c�\�i�L�mS@q�L�s�L���I؆�Y�\^��[(��\���MH�'T���J`�KW���SH��Ph�=V��ZZ��F[��hLX��\��+X��LP�RX�X�@]�&�K�)][�/�I @�R�FyM�R/]([Rb&K�i�Kx�EJ8�}K`�\��GT��FV
�Y-
:I�@
tS�B
X�F
�V�d
�M@j
�V�n
*M�w
M`�
Kx�
�TX�
R\��
PU��
>U �
4J�
WT@�
CM �
\MH�
�Y(�
mI��
�`8g�`h0�`@b�`pL�`YZ[\�]�^A��!�#�%���"�$���~��=���������������Version100Version110Version120Version130Version140Version150Version60Version70Version80PostProcessCreateDateSeconds1990BuildSqlStatementMoreEqual90Version90GetTextFor90BuildSqlStatementLess90<>c__DisplayClass75_0<FillDataWithUseFailure>b__0arg0IComparable`1IEnumerable`1IEqualityComparer`1IEnumerator`1db1arg1path1sDelim1s1ConvertFileSizeToAcceptedFormat1Rsa512GetTriggeredInt32GetInt32Rsa3072Aes192RC2KeyValuePair`2IDictionary`2IReadOnlyDictionary`2db2path2sDelim2Func`3Rsa1024ToInt64GetInt64AesRC4Version105Version65GetInt16Aes256Rsa4096SqlServer7Aes128Rsa2048<Module><PrivateImplementationDetails>strAindexAFloppyAcalledUseDBKBstrBindexBFloppyBsSingleLineCommentCATTR_DATAWAREHOUSE_ENABLEDATTR_CLOUD_MIN_BUILDATTR_MIN_BUILDATTR_CLOUD_MAX_BUILDATTR_MAX_BUILDbQIsParamValueQIsGrammarQIsRegexQIget_TopNset_TopNm_topNSystem.IOATTR_CLOUD_MIN_MAJORATTR_MIN_MAJORATTR_CLOUD_MAX_MAJORATTR_MAX_MAJORATTR_CLOUD_MIN_MINORATTR_MIN_MINORATTR_CLOUD_MAX_MINORATTR_MAX_MINORZeroFreeBSTRPtrToStringBSTRSecureStringToBSTRSQLLatin1GeneralCP1CIASget_dbCatalogCollationSQL_Latin1_General_CP1_CI_ASget_SSISPostProcessCreateTimeSpanHMSTDesXvalue__Viaget_CreateSchemaset_CreateSchemabWithSchemaget_DropSchemaset_DropSchemaget_AlterSchemaset_AlterSchemaAlterAnySchemaschemasCommaSystem.Dataget_Dataset_DataSerializedDataSchemaAndDataISupportInitDatabaseEngineDatacontigDataMinimalLogDataFillDataGetColumnDataPrepareGetDataLoadInitDataManipulateRowDataCleanRowDataInitRowDatarowDatainit_dataSerializedDataWithMetadataget_NotSingleDbGbMbTbLocalJobMultiServerJobm_sbget_CmdExecsExecMicrosoft.SqlServer.Management.Sdk.Sfcget_agctWsfcSystem.Collections.GenericSystem.Collections.NonGenericBasicbFirstJoinIsClassicget_seedingModeAutomaticget_arfmAutomaticDeterministicXmlReadDocOrccEscevtdescget_Idset_IdGraphIdGraphFromObjIdGraphToObjIdGraphFromIdGraphToIdXmlReadget_WaitingForWorkerThreadLoadAddMergeSubscribedget_SqlStatementFragmentsToBeReplacedForcedm_bStoredPropsAddedInitIfNeededSucceededget_Suspendedget_msSuspendedShardedget_rmBulkLoggedMergePublishedget_DatabaseNameMustBeSpecifiedPropMustBeSpecifiedUnspecifiedBlockedEnabledDisabledget_hmsFailedget_arosFailedCancelledPausedOrThrottledget_dbCatalogCollationContainedCryptographicProviderDefinedUserDefinedIsDefinedUndefinedget_arjsNotJoinedStoppedbTriggeredisTriggeredtriggeredget_Clusteredget_NonClusteredRequiredget_Usedget_IsUsedget_Closedset_ClosedAutoClosedget_IsClosedm_closedget_ElapsedIsProcessedm_usedPausedDedicatedReplicatedXmlReadRepeatedIntegratedget_RecordsAffectedbHasConnectedget_arcsConnectedget_arcsDisconnectedget_msDisconnectedRestrictedUnrestrictedGrantedIsPathRootedIsRootedEncryptedUnencryptedStartedisOrAlterSupportedGraphIdComputedGraphFromIdComputedGraphToIdComputedrowsRetrievedAllowedMixedSystem.Collections.Specializedget_arrUninitializedsNestedMultiLineCommentOptimizedRandomizedget_arshSynchronizedget_agshAllSynchronizedget_msSynchronizedget_adssSynchronizeduSidm_idget_idset_idGeographyAutoGridGeometryAutoGridGeographyGridGeometryGridGetGuidget_Fieldset_FieldResolveComputedFieldm_listLinkFieldbHiddenFieldXmlRequestParentSelectFieldm_fieldImportWithRebuildAlwaysRebuildAndindexNameEnddelimEndTrimEndReadToEndindexOrAlterEndget_IdxEndm_idxEndOnDemandDbCommandSqlCommandget_AnalysisCommandm_commandNetSendsNestedMultiLineCommentOptimized_endsWord_endsSpace_endsEol_endm_r_endsReject_endsSingleLineComment_endAppendSuspendXmlTypeKindUriKindSecondset_IsSchemaBoundget_EnumObjectTagNotFoundBackgroundGetMethodAttributeWildcardElementWildcardStandardThirdsBraketedWordsWordIDataRecordPasswordxrdget_IsDbCloudset_IsDbCloudisCloudGetInterfaceReplaceusedSpaceavailableSpaceIsNullOrWhiteSpaceIsWhiteSpaceAlterAnyDataspaceXmlNamespaceAlterTraceget_CreateServiceset_CreateServiceget_DropServiceset_DropServiceget_AlterServiceset_AlterServiceAlterAnyServiceOnceWorkloadGroupImportanceWorkloadManagementImportanceget_arjsJoinedStandaloneInstanceCreateInstanceget_AlterInstanceset_AlterInstanceget_arjsJoinedFailoverClusterInstanceGetPostProcessInstanceCreateObjectInstanceAvailabilityGroupAutomatedBackupPreferenceget_CreateSequenceset_CreateSequenceget_DropSequenceset_DropSequenceget_AlterSequenceset_AlterSequenceAlterAnyExternalDataSourceCascadeget_CreatePlanGuideset_CreatePlanGuideget_DropPlanGuideset_DropPlanGuideget_AlterPlanGuideset_AlterPlanGuideGetHashCodeobjCodeGetSmoCodeFromSqlCodesqlCodeUnknownPermissionCodePostProcessPermissionCodepermissionCodesmoCodem_RetriveModeAvailabilityReplicaSeedingModeServerLoginModePerfMonModeget_ParameterizationModeQueryParameterizationModeAvailabilityReplicaFailoverModeEmergencyModeAvailabilityReplicaAvailabilityModeget_PropertyModeset_PropertyModeXmlNodeFilterNodeget_cmtNodePermissionDecodeget_IncludeXmlReadIncludeSafeget_BytesPerPageget_Storageset_StorageBlobStorageGetDataFromStorageSetDataInStoragem_storageget_Usageset_UsageResourceUsageget_MessageRecordMessageget_CreateMessageset_CreateMessageadd_InfoMessageremove_InfoMessagem_ServerInfoMessageget_DropMessageset_DropMessageget_AlterMessageset_AlterMessageExecuteImmediateGetMessageusagePercentageget_CreateExternalLanguageset_CreateExternalLanguageget_DropExternalLanguageset_DropExternalLanguageget_AlterExternalLanguageset_AlterExternalLanguageAddRangemaximumFileSizeInAcceptedRangeGetRangeInsertRangeget_ReplMergeNoCacheDefaultCacheRevokeInvokeset_Localeget_Tableset_TableGetSchemaTableInitSchemaTablem_schemaTableRetriveDataTableget_CreateTableset_CreateTableget_MainTableget_DropTableset_DropTableget_AlterTableset_AlterTablesReturnsTablePostProcessTableGetTableget_TypeConvertTablem_typeConvertTableget_drsrNotApplicableget_cqsNotApplicableget_cqtNotApplicableICloneableget_SmoSQLCLRUnAvailableIsAvailableIComparableIEnumerableDisableIDisposablem_tableHashtabledbIsAccessibleInaccessibleIConvertibleGetDoubleget_IdleOnIdleRuntimeTypeHandleGetTypeFromHandleToSingleget_FileRcFileLoadFileIncludeFileget_NullVersionOnLoadingCfgFileAppendToLogFileDiskFileget_InvalidConfigurationFilestrFilePostProcessFilePrimaryFilefileAvailabilityReplicaRoleDatabaseRoleget_CreateRoleset_CreateRoleServerMirroringRoleget_CreateApplicationRoleset_CreateApplicationRoleget_DropApplicationRoleset_DropApplicationRoleget_AlterApplicationRoleset_AlterApplicationRoleAlterAnyApplicationRoleget_DropRoleset_DropRoleget_AlterRoleset_AlterRoleget_CreateServerRoleset_CreateServerRoleget_DropServerRoleset_DropServerRoleget_AlterServerRoleset_AlterServerRoleAlterAnyServerRoleAlterAnyRoleAvailabilityReplicaConnectionModeInSecondaryRoleAvailabilityReplicaConnectionModeInPrimaryRolem_LinkMultipleget_LinkMultipleset_LinkMultipleAddLinkMultipleget_rmSimpleComplexSimpleAnySimpleget_BindRuleset_BindRuleget_UnbindRuleset_UnbindRuleget_CreateRuleset_CreateRuleget_DropRuleset_DropRuleget_SqlServer80Nameget_SqlServer90Nameget_Nameset_Nameget_SchemaNameset_SchemaNameServerDbSchemaNameschemaNamedbNamefieldNameget_ExpressionIsForTableNamem_bExpressionIsForTableNameget_TableVariableNamereturnTableVariableNametableNamefileNameGetDataTypeNamem_typeNameget_DatabaseNameset_DatabaseNameremoteDataArchiveDatabaseNameInitServerConnectionWithDatabaseNamedatabaseNameobjNameget_FullNameget_OnlyPathOrFullNamesFullNamesParamNameelemNamecolumnNamePermissionCodeToPermissionNamepermissionNameenumMemberNameownerNameget_ServerNameset_ServerNameserverNameget_ClassNamem_classNameget_ProcessNameget_ObjectNameset_ObjectNamem_objectNameproductNameGetNamePostProcessSplitFourPartNameget_DisplayNameget_RegKeyNameAssemblyNameassemblyNameGetDirectoryNameGetAliasPropertyNameget_Renameset_Renameget_Schemeget_CreatePartitionSchemeset_CreatePartitionSchemeget_DropPartitionSchemeset_DropPartitionSchemeget_AlterPartitionSchemeset_AlterPartitionSchemeset_CommandElapsedTimeOneTimePostProcessCreateDateTimeGetDateTimePostProcessCreateTimeoTimefirstTimeSystem.RuntimeJobOutcomeResumeShaOneAppendLineCombineSuspectedOfflineget_aglipOfflineget_cmsOfflineget_arosOfflineInlineget_arrhOnlineget_aglipOnlineget_cmsOnlineget_arosOnlineget_cmsPartiallyOnlinebLookUpOrdinalDoneget_Noneget_agabpNoneget_msNoneget_ctNoneget_agctNoneCloneStandaloneTapePipeget_DBTypestrDBTypeget_Typeset_Typeget_DataTypeManipulateRowDataTypeget_DbTypem_dbTypeJobTypeget_ExtendedTypeset_ExtendedTypeUserDefinedTypeLinkFieldTypeGetFieldTypeBackupDeviceTypeExternalDataSourceTypesourceTypePlanGuideTypeget_NodeTypeXmlNodeTypeget_CreateMessageTypeset_CreateMessageTypeget_DropMessageTypeset_DropMessageTypeget_AlterMessageTypeset_AlterMessageTypeAlterAnyMessageTypeRangeTypeSequenceCacheTypeget_DatabaseEngineTypeset_DatabaseEngineTypeGetDatabaseEngineTypem_databaseEngineTypeRestoreTypeSynonymBaseTypeSecurityPredicateTypeget_CreateTypeset_CreateTypeResumableOperationStateTypeattributeTypeValueTypeGraphTypeIndexedXmlPathTypepathTypeFileGrowthTypeget_ObjTypeobjTypePrincipalTypeAgentMailTypeProtocolTypepermTypeenumTypeClusterQuorumTypeMethodLoginTypeJoinTypem_joinTypeDataCompressionTypeUnknownPermissionTypePermissionCodeToPermissionTypepermissionTypeProviderAuthenticationTypeLockEscalationTypeCatalogCollationTypeAuditDestinationTypedestinationTypeImplementationTypeAuditActionTypeget_InvalidConnectionTypeUserDefinedFunctionTypeCreateDispositionTypeDatabaseEncryptionTypeColumnEncryptionTypeSymmetricKeyEncryptionTypePrivateKeyEncryptionTypeExternalTableDistributionTypeDwTableDistributionTypeDwViewDistributionTypecomparisonTypeUnknownTypeToTypeget_DropTypeset_DropTypeFileGroupTypeClusterMemberTypeUserTypeAvailabilityGroupClusterTypeJobServerTypeget_ClrTypeDbTypeToClrTypeGetNameForTypeMappedClassTypeFilestreamNonTransactedAccessTypeWindowsLoginAccessTypeAuditStatusTypeExternalFileFormatTypeObjectTypeobjectTypeExternalTableRejectTypeGetTypeBackupSetTypetargetTypeget_ResultTypeset_ResultTyperesultTypeContainmentTypeExternalLibraryContentTypeEndpointTypeAlertTypeSpatialIndexTypeSecondaryXmlIndexTypeIndexKeyTypeCategoryTypeDurabilityTypem_typeget_typeset_typeoptionsCompareAddWherem_whereLoadAndStoreget_ClusteredColumnStoreget_NonClusteredColumnStoreBackupOrRestoreget_CreateExtendedProcedureset_CreateExtendedProcedureget_DropExtendedProcedureset_DropExtendedProcedureExtendedStoredProcedureSqlStoredProcedureClrStoredProcedureget_CreateProcedureset_CreateProcedureget_DropProcedureset_DropProcedureget_AlterProcedureset_AlterProcedureReplicationFilterProcedureDefaultProcedureFillDataWithUseFailureQuitWithFailureget_agliFailureOnFailureget_AddSignatureset_AddSignatureget_DropSignatureset_DropSignatureRepairStructureget_Cultureset_CultureGetStringCultureget_InvariantCultureget_CurrentCulture_cultureget_drsrSuspendFromCaptureClearCaptureStartCaptureGetUseMethodBaseget_CodeBaseInternalDataCollectionBaseSqlObjectBaseEventSetBaseeventSetBaseget_InvariantCultureIgnoreCaseignoreCaseget_DatabaseSingleUserModeDatabaseget_RevokeDatabaseset_RevokeDatabaseget_CreateDatabaseset_CreateDatabaseAddOrderByInDatabaseget_AlterAuthorizationDatabaseset_AlterAuthorizationDatabaseget_DropDatabaseset_DropDatabaseBackupDatabaseget_AlterDatabaseset_AlterDatabasem_PropertyNameForDatabaseGetCachedRowResultsForDatabasesDatabaseget_GrantDatabaseset_GrantDatabaseget_CurrentDatabaseAddOrderByDatabaseReadOnlyDatabaseCreateAnyDatabaseAlterAnyDatabaseConnectAnyDatabaseViewAnyDatabaseget_DenyDatabaseset_DenyDatabasem_databaseCloseDisposeTryParseReverseDiskFullPausePostProcessCreateDateoDateget_CreateCertificateset_CreateCertificateNegotiateCertificateNtlmCertificateget_DropCertificateset_DropCertificateget_AlterCertificateset_AlterCertificateServerCertificateKerberosCertificateAlterAnyCertificateReplicateAuthenticateget_securityPredicateOperationBeforeUpdateget_securityPredicateOperationAfterUpdatesqlCreatescriptForCreateindexCreateTryCreateCreateDelegateCreateAggregateExecuteImmediateCertificateNegotiateTemplateImpersonateAvailabilityGroupListenerIPStateget_StateViewDatabaseStatePolicyHealthStateStoreInitialStateRestoreInitialStateAvailabilityReplicaOperationalStateget_cqsUnknownQuorumStateClusterQuorumStateAvailabilityReplicaJoinStatePermissionStateSnapshotIsolationStateNSActivationStateAvailabilityDatabaseSynchronizationStateAvailabilityReplicaRollupSynchronizationStateAvailabilityGroupRollupSynchronizationStateAvailabilityReplicaConnectionStateDatabaseEncryptionStateClusterMemberStateAlterServerStateViewServerStateEndpointStateAvailabilityReplicaRollupRecoveryStateIsDatabaseNameOrDerivateget_securityPredicateOperationBeforeDeleteInfiniteget_ReadWriteLogToTableWithOverwriteThreadStaticAttributeCompilerGeneratedAttributeAttributeUsageAttributeNeutralResourcesLanguageAttributeDebuggableAttributeBrowsableAttributeComVisibleAttributeAssemblyTitleAttributePermissionNameAttributeLocDisplayNameAttributePermissionTypeAttributeStringValueAttributeTsqlSyntaxStringAttributeTargetFrameworkAttributeXmlAttributeExtensionAttributeAssemblyFileVersionAttributeAssemblyInformationalVersionAttributeAssemblyConfigurationAttributeAssemblyDescriptionAttributeInternalsVisibleToAttributeDefaultMemberAttributeTypeConverterAttributeSecurityRulesAttributeFlagsAttributeCompilationRelaxationsAttributeAssemblyProductAttributeGetAttributeAssemblyCopyrightAttributeCLSCompliantAttributeParamArrayAttributeAssemblyCompanyAttributeRuntimeCompatibilityAttributeExecuteMinuteServiceRouteget_CreateRouteset_CreateRouteget_DropRouteset_DropRouteget_AlterRouteset_AlterRouteAlterAnyRouteGetByteget_CreateQueueset_CreateQueueget_DropQueueset_DropQueueget_AlterQueueset_AlterQueueget_Valueset_ValueescapedValueGetTrigeredValueoldValueget_InvalidAttributeValueregValueGetSqlValuesParamValueLocalizedStringToEnumValueMinValuem_SessionValueget_SessionValueset_SessionValueInitSessionValueGetFixedFilterValueGetValueDatabasePermissionSetValueServerPermissionSetValueObjectPermissionSetValueget_DefaultValueconstantValueeventValuenewValuePrefixValuePostfixValueorderByValuem_valueget_OnFailureActionContinueReceiveColumnStoreArchiveget_Expensiveset_Expensiveget_agfcOnServerUnresponsiveNativeMonthlyRelativeget_IsPrimitiveGetIsPrimitiveRemoveget_SizeGetMaximumFileSizemaxFileSizeCacheWithSizeGetTypeWithSizeSpatialGeoLevelSizeInitializem_sizeget_ItemOfLastIndexOfanyOfget_OffPendingOffDatabaseScopedConfigurationOnOffSelfMicrosoft.SqlServer.Management.DmfIncorrectVersionTagBackupSetFlagget_AlterResourceGovernorConfigset_AlterResourceGovernorConfigEnablePendingDisablePendingget_aglipOnlinePendingget_arosPendingRecoveryPendingget_CreateRemoteServiceBindingset_CreateRemoteServiceBindingget_DropRemoteServiceBindingset_DropRemoteServiceBindingget_AlterRemoteServiceBindingset_AlterRemoteServiceBindingAlterAnyRemoteServiceBindingPostProcessWithRowCachingNothingViewChangeTrackingSelectNextSiblingAddDbChainingget_hmsRunningSystem.Runtime.VersioningpermissionTypeToEnumMappingRecoveringDatabaseMirroringRestoringEnumValueToLocStringGetTriggeredStringsDoubleQuotedStringsSingleQuotedStringUnEscapeStringPostProcessCreateSqlSecureStringsqlSecureStringToSecureStringsecureStringGetUseStringoriginalStringMakeSqlStringToStringget_ValueAsStringGetAliasStringGetStringreplacementStringDatabaseDdlTriggerEventOffsetFromEventStringServerDdlTriggerEventOffsetFromEventStringsyntaxStringSubstringset_DtdProcessingWaitingget_ActiveScriptingget_adssRevertingConvertingOpenExistingget_Executingget_arrResolvingget_adssInitializingget_agshNoneSynchronizingget_arshSynchronizingget_agshAllSynchronizingget_msSynchronizingget_adssSynchronizingget_arshNotSynchronizingget_adssNotSynchronizingget_agshPartiallySynchronizingAppendToTableLogApplicationLogBackupLogSecurityLogFullTextCatalogget_CreateFulltextCatalogset_CreateFulltextCatalogget_DropFulltextCatalogset_DropFulltextCatalogget_AlterFulltextCatalogset_AlterFulltextCatalogAlterAnyFulltextCatalogBinarySearchLogExCatchNextMatchStopwatchHighGetSmoCodeFromSqlCodeShilohget_NonClusteredHashComputeStringHashget_WaitingForStepToFinishIsXIPathget_Pathset_Pathget_DefaultDataPathdefaultdataPathget_FileNameMustHavePathGetPathm_pathtotalWidthget_Lengthset_LengthlengthEndsWithStartsWithMonthget_DepthFourthm_ciUriurixriCouldNotInstantiateObjobjISqlFilterDecoderCallbackTableLockget_securityPredicateTypeBlockXPathExpressionBlockblockidkWeekSensitivityRankget_LinkdeferredLinkget_MultipleLinkXmlReadMultipleLinkget_ParentLinkset_ParentLinkXmlReadParentLinkget_SimpleParentLinkXmlReadSimpleParentLinkm_parentLinkm_listLinkget_PropertyLinkXmlReadPropertyLinkSqlPropertyLinkget_HasPropertyLinkSqlEnumStatementBuilderTestHookFitsMaskAlterAnyMaskUnmaskSharedFixedDiskTimeCriticalget_LocalAddParentLinkPropertiesLocalMarshalget_Spatialm_semInitialget_CreateCredentialset_CreateCredentialremoteDataArchiveCredentialget_DropCredentialset_DropCredentialget_AlterCredentialset_AlterCredentialAlterAnyCredentialFileOrFileGroupDifferentialget_ctPartialGetDecimalAboveNormalBelowNormalget_OrdinalCompareOrdinalGetOrdinalInformationalMicrosoft.SqlServer.Management.Smo.InternalReadInternalLoadInternalRestorePlanInternalLoadInitDataFromAssemblyInternalget_arfmExternalget_agctExternalServerPrincipalIncrementalget_seedingModeManualget_arfmManualIsDatabaseListEqualvalReadNameFromDdlReadFullNameFromDdlCancelSystem.ObjectModelSystem.ComponentModelRecoveryModelget_LevelGetDatabaseLevelm_bLastDatabaseLevelFileStreamLevelSelectNextElementOnLevelGetIsolationLevelAvailabilityGroupFailureConditionLevelAuditLevelMirroringSafetyLevelCompatibilityLevelAssemblySecurityLevelget_OnFailureActionFailDatabaseMailSqlAgentMailNotifyEmailUtilget_AllAddAllget_securityPredicateOperationAllNotifyAllMicrosoft.SqlServer.SqlEnum.dllget_PowerShellget_rmFullIsDBNullget_IsNullSetNullSystem.XmlLoadXmlget_SelectiveXmlget_SecondarySelectiveXmlconfigXmlReadOuterXmlget_SecondaryXmlget_PrimaryXmlinc_ruledef80.xmlUDF.xmlAvailabilityReplica.xmlAvailableMedia.xmlYukonuserownedobjectSchema.xmlinc_urn_schema.xmlJob.xmlStatistic.xmlIndexFragSampled.xmlMaintenancePlanDeprecated.xmlsoap_endpoint_method.xmlinc_urn_soapmethod.xmlIndexedXmlPathNamespace.xmlXmlNamespace.xmlTapeDevice.xmlBackupDevice.xmlFullTextService.xmlinc_type_reference.xmlinc_column_reference.xmlsequence.xmlExternalDataSource.xmlPlanGuide.xmlReplicaClusterNode.xmlinc_storage.xmlinc_urn_message.xmlusermessage.xmlsysmessage.xmlFulltextSemanticLanguage.xmlFullTextLanguage.xmlLinkedServerTable.xmltemp_table.xmlinc_urn_single.xmlinc_DbFile.xmlLogFile.xmlDiskFile.xmlFullTextFile.xmlSqlAssemblyFile.xmlPrimaryFile.xmlExternalLibraryFile.xmlrestorefile.xmlMailProfile.xmlbackupfile.xmlDatabaseRole.xmlApplicationRole.xmlServerRole.xmlDatabaseMirroringWitnessRole.xmlRule.xmlSharedSchedule.xmlagent_jobschedule.xmlinc_sql_module.xmlPartitionScheme.xmlRuleDataType.xmlDefaultDataType.xmlUserDefinedType.xmlUserDefinedTableType.xmlXmlType.xmlinc_type.xmlXStoredProcedure.xmlNumberedStoredProcedure.xmlAvailabilityDatabase.xmlEdgeConstraintClause.xmlSecurityPredicate.xmlcertificate.xmlUserDefinedAggregate.xmlDatabaseReplicaState.xmlClusterMemberState.xmlinc_policy_health_state.xmlinc_hadr_policy_health_state.xmlPartitionFunctionRangeValue.xmlConfigurationValue.xmlColumnEncryptionKeyValue.xmlFixedDrive.xmlRemovableDrive.xmlRemoteDrive.xmlCdromDrive.xmlinc_system_table_view_sp_udf.xmlinc_IndexFrag.xmlOLEDBProviderSetting.xmlinc_hadr_setting.xmlMaintSubPlanLog.xmlRemotePlanLog.xmlMail_ErrorLog.xmlagent_ErrorLog.xmlfulltext_ErrorLog.xmlJobStepOutputLog.xmlLinkedServerCatalog.xmlFullTextCatalog.xmlIndexedXmlPath.xmlCheck.xmlLock.xmlmixed_module_link.xmlinc_server_sql_module_link.xmlDatabaseScopedCredential.xmlMail.xmlIndexFragDetail.xmlMaintSubPlanLogDetail.xmlRemotePlanLogDetail.xmlDatabaseAuditSpecificationDetail.xmlServerAuditSpecificationDetail.xmlExternalResourcePool.xmlDatabaseDiagram.xmlagent_alertsystem.xmlDBPerm.xmlTablePerm.xmlColumnPerm.xmlShilohYukonPerm.xmlSrvYukonPerm.xmlDBObjectPerm.xmlYukonSchemaObjectPerm.xmlSrvYukonObjectPerm.xmlSrvObjectPerm.xmlinc_perm.xmldbfixedroleperm.xmlsynonym.xmlMaintenanceSubPlan.xmlRemoteSubPlan.xmlRemoteMaintenancePlan.xmlrestore_plan.xmlPrimaryChildren.xmlDefaultConstrain.xmlNTLogin.xmlLinkedServerLogin.xmlSmartAdmin.xmlFKColumn.xmlStatisticColumn.xmlIndexedColumn.xmlBoundColumn.xmlRuleColumn.xmlDistributionColumn.xmlOrderColumn.xmlDefaultColumn.xmlFullTextIndexColumn.xmludfcolumn.xmlDatabaseAuditSpecification.xmlServerAuditSpecification.xmlOperatorJobNotification.xmlOperatorNotification.xmlAlertNotification.xmlCollation.xmlInformation.xmlDatabaseScopedConfiguration.xmltransaction.xmlXmlSchemaCollection.xmlConnection.xmlPartitionFunction.xmlPhysicalPartition.xmlUserOption.xmlMasterKeyEncryption.xmlinc_urn.xmlAgentPerfInfo.xmlExternalResourcePoolAffinityInfo.xmlJobStep.xmlOLEDBProvProp.xmlNTGroup.xmlWorkloadManagementWorkloadGroup.xmlPartitionSchemeFileGroup.xmlAvailabilityGroup.xmlrestorefilegroup.xmlagent_targetservergroup.xmlDatabaseRoleMember.xmlagent_targetservermember.xmlOLEDBProvider.xmlCryptographicProvider.xmlDatabaseDdlTrigger.xmlServerDdlTrigger.xmlWorkloadManagementWorkloadClassifier.xmlResourcePoolScheduler.xmlAvailabilityGroupListener.xmlUser.xmlPartitionSchemeParameter.xmlUserDefinedAggregateParameter.xmlPartitionFunctionParameter.xmlparameter.xmlJobServer.xmlLinkedServer.xmlMailServer.xmlinc_server.xmlagent_targetserver.xmlResourceGovernor.xmlagent_operator.xmlagent_job_categories.xmlagent_operator_categories.xmlagent_alert_categories.xmlinc_level2SupportProperties.xmlDatabaseMappings.xmlSettings.xmlDatabaseLocks.xmlMailProfilePrincipals.xmlProxyAccountPrincipals.xmlUDFParams.xmlNumberedSPParams.xmlAgentSubsystems.xmlQueryStoreOptions.xmlDatabaseOptions.xmlAditionalParameters.xmlagent_jobtargetservers.xmlProcess.xmlAvailabilityGroupListenerIPAddress.xmlMailProfileAccounts.xmlExternalFileFormat.xmlinc_object.xmlinc_named_object.xmlinc_system_object.xmlYukonuserownedobject.xmlUddt.xmlsdt.xmlClusterSubnet.xmlbackupmediaset.xmlbackupset.xmlAudit.xmlDefault.xmlinc_urn_collate_default.xmlDatabaseDdlTriggerEvent.xmlServerDdlTriggerEvent.xmlinc_ddl_trigger_event.xmlEdgeConstraint.xmlinc_constraint.xmlvia_endpoint.xmldatabase_mirroring_endpoint.xmlsoap_endpoint.xmltcp_endpoint.xmlhttp_endpoint.xmlservice_broker_endpoint.xmlMailAccount.xmlServerProxyAccount.xmlSqlBoot.xmlagent_alert.xmlagent_jobalert.xmlIndexFragFast.xmlFullTextStopList.xmlSearchPropertyList.xmlComputedText.xmlagent_ErrorLogText.xmlfulltext_ErrorLogText.xmlinc_sql_module_JustText.xmlinc_text.xmlinc_fulltext.xmlLinkedServerView.xmlinc_objprop_table_view.xmlFullTextIndex.xmlresumableindex.xmlSecurityPolicy.xmlForeignKey.xmlDatabaseEncryptionKey.xmlColumnEncryptionKey.xmlServiceMasterKey.xmlDatabaseMasterKey.xmlColumnMasterKey.xmlasymmetrickey.xmlSqlAssembly.xmlbackupmediafamily.xmlExternalLibrary.xmlLogMarkHistory.xmlagent_jobhistory.xmlrestorehistory.xmlLevel0ExtendedProperty.xmlLevel1ExtendedProperty.xmlLevel2ExtendedProperty.xmlDbExtendedProperty.xmlinc_shilohExtendedProperty.xmlLevel2IndexExtendedProperty.xmlSearchProperty.xmlcolGetTriggeredBoolget_CreateResourcePoolset_CreateResourcePoolget_CreateExternalResourcePoolset_CreateExternalResourcePoolget_DropExternalResourcePoolset_DropExternalResourcePoolget_AlterExternalResourcePoolset_AlterExternalResourcePoolget_DropResourcePoolset_DropResourcePoolget_AlterResourcePoolset_AlterResourcePoolControlxrmplxrplxrsplTSqlget_Sqlm_execSqlConditionedSqlBuildSqlGetSingleDatabaseSqlExecuteSqlsSingleQuotedStringSqlGetLocalSqlBuildCommonSqlget_TransactSqlConnectSqlGetSqlsSingleLineCommentSqlSQL11Dependency.sqlCloudDependency.sqlShilohDependency.sqlKatmaiDependency.sqlYukonDependency.sqlm_sqlUrlSslPostProcessStatisticStreamGetManifestResourceStreamxmlStreamPostProcessParamGetParamget_Itemset_ItemAgentSubSystemPasswordHashAlgorithmDatabaseEncryptionAlgorithmEndpointEncryptionAlgorithmSymmetricKeyEncryptionAlgorithmAsymmetricKeyEncryptionAlgorithmsDelimTrimCertificateNtlmCDRomget_Fromset_FromAddFromNotDerivedFromIsAssignableFromCanConvertFromm_fromget_Customget_HostPlatformMediumToPermissionSetValueEnumMicrosoft.SqlServer.Management.Smo.SqlEnumMicrosoft.SqlServer.SqlEnumget_IsEnumGetIsEnumget_cqsForcedQuorumget_cqsNormalQuorumget_arosFailedNoQuorumChecksumget_CreateSynonymset_CreateSynonymget_DropSynonymset_DropSynonymget_OnPendingOnLogScanToBooleanGetBooleanop_LessThanShowplanTimeSpanget_Hiddenget_IsOpenerChildrenm_bForChildrenRoundRobinNonNTLoginget_CreateLoginset_CreateLoginSqlLoginNoLoginget_DropLoginset_DropLoginget_AlterLoginset_AlterLoginget_CreateLinkedServerLoginset_CreateLinkedServerLoginget_DropLinkedServerLoginset_DropLinkedServerLoginExecuteAsLoginImpersonateAnyLoginAlterAnyLoginAddJoinget_InnerJoinget_LeftJoinget_IsFirstJoinDataColumnAddColumnObjectOrColumnconnconget_Logonset_LogonReadUnionSqlObjectUnionrevisionSqlEnumNetCoreExtensionGetFileNameWithoutExtensionget_Versionset_VersionConvertToValidVersionInvalidVersionIsElementWithCheckVersionIsStretchSmoSupportedOnVersionCollationVersionget_ServerVersionsqlServerVersionGetServerVersionPostProcessVersionm_targetVersionm_versionAlterAnyDatabaseEventSessionget_CreateEventSessionset_CreateEventSessionget_DropEventSessionset_DropEventSessionget_AlterEventSessionset_AlterEventSessionAlterAnyEventSessionget_ExpressionGetSqlExpressionSetSqlExpressionSecurityExpressionm_expressionShilohToYukonPermissionget_CreateDatabaseAuditSpecificationset_CreateDatabaseAuditSpecificationget_DropDatabaseAuditSpecificationset_DropDatabaseAuditSpecificationget_AlterDatabaseAuditSpecificationset_AlterDatabaseAuditSpecificationget_CreateServerAuditSpecificationset_CreateServerAuditSpecificationget_DropServerAuditSpecificationset_DropServerAuditSpecificationget_AlterServerAuditSpecificationset_AlterServerAuditSpecificationget_AddSensitivityClassificationset_AddSensitivityClassificationget_DropSensitivityClassificationset_DropSensitivityClassificationAlterAnySensitivityClassificationViewAnySensitivityClassificationCreateTraceEventNotificationAlterAnyDatabaseEventNotificationget_CreateEventNotificationset_CreateEventNotificationCreateDatabaseDdlEventNotificationCreateDdlEventNotificationget_DropEventNotificationset_DropEventNotificationAlterAnyEventNotificationConnectReplicationget_hmsPendingCommunicationget_IsContainedAuthenticationget_ROAfterCreationroAfterCreationget_ReadOnlyAfterCreationset_ReadOnlyAfterCreationSnapshotCreationContainedDatabaseFixedCollationGetCompareOptionsFromCollationcollationQueryIsolationColumnDataManipulationInitRowDataManipulationrowDataManipulationServerInformationrowInformationSecurityPredicateOperationFailOperationget_AlterDatabaseScopedConfigurationset_AlterDatabaseScopedConfigurationAlterAnyDatabaseScopedConfigurationPostProcessFragmentationXmlTypeDerivationSystem.Globalizationget_SupportsParameterizationOnFailureActionEdgeConstraintDeleteActionCatalogPopulationActionIndexPopulationActionget_PerformingCompletionActionStepCompletionActionNoActionForeignKeyActionop_SubtractionTransactionMissingSectionSystem.ReflectionICollectionget_CreateXmlSchemaCollectionset_CreateXmlSchemaCollectionget_DropXmlSchemaCollectionset_DropXmlSchemaCollectionget_AlterXmlSchemaCollectionset_AlterXmlSchemaCollectionDataTableCollectionXmlAttributeCollectionStringCollectionDependencyChainCollectionDataColumnCollectionGroupCollectionSqlErrorCollectionDataRowCollectionDbConnectionget_NonPooledConnectionKillDatabaseConnectionGetDatabaseConnectionSqlConnectionInfoWithConnectionpoolConnectionget_SqlConnectionget_ServerConnectionPathSeparatorFromServerConnectionserverConnectionSqlDirectConnectionInitConnectionAlterAnyConnectionDirectionsectionTornPageDetectionRestrictionSqlInlineTableValuedFunctionSqlTableValuedFunctionClrTableValuedFunctionget_CreateFunctionset_CreateFunctionClrAggregateFunctionget_CreatePartitionFunctionset_CreatePartitionFunctionget_DropPartitionFunctionset_DropPartitionFunctionget_AlterPartitionFunctionset_AlterPartitionFunctionget_DropFunctionset_DropFunctionSqlScalarFunctionClrScalarFunctionget_AlterFunctionset_AlterFunctionm_DatabaseEngineEditionget_DatabaseEngineEditionset_DatabaseEngineEditionGetDatabaseEngineEditiondatabaseEngineEditionop_AdditionAddConditionSqlServerPerformanceConditionget_agfcOnAnyQualifiedFailureConditionget_FailConditionClearFailConditionXmlReadConditionedStatementFailConditionSqlConditionedStatementFailConditionm_conditionViewDefinitionViewAnyColumnEncryptionKeyDefinitionViewAnyColumnMasterKeyDefinitionViewAnyDefinitionMethodXsdSchemaOptionFullTextCatalogUpgradeOptionDatabaseOptionMirroringOptionParseCheckOptionExternalDataSourcePushdownOptionWsdlGeneratorOptionXmlFormatOptionStopListOptionget_CaptionArgumentOutOfRangeExceptionConnectionFailureExceptionExecutionFailureExceptionGetBaseExceptionArgumentNullExceptionSqlExceptionInvalidOperationExceptionget_InnerExceptionResultTypeNotSupportedEnumeratorExceptionQueryNotSupportedEnumeratorExceptionInvalidConfigurationFileEnumeratorExceptionInternalEnumeratorExceptionInvalidVersionEnumeratorExceptionInvalidArgumentExceptionInvalidCastExceptionOverflowExceptionEndpointEncryptionget_ReplDistributionSubstitutionGetSmoCodeFromSqlCodeYukonSystem.Data.CommonMicrosoft.SqlServer.Management.CommonDatabaseReplicaSuspendReasonStringComparisonDdlTextParserSingletonddlTextParserSingletonSqlEnumDependenciesSingletonsqlEnumDependenciesSingletonget_Urnset_UrnAddUrnBuildUrnDatabaseNameMustBeSpecifiedinTheUrnFailedToCreateUrnGetUrnSetUrnEscapeLikePatternpatternm_urnsReturnget_agfcOnServerDownget_OnFailureActionShutdownget_Unknownget_agliUnknownget_cmsUnknownget_Noset_Nom_typeNoTypeToNoFindByNoCompareToConvertToCopyToget_drsrSuspendFromRedoget_drsrSuspendFromUndoMethodInfomethodInfoCultureInfocultureInfoMicrosoft.SqlServer.ConnectionInfoget_ConnectionInfoset_ConnectionInfoSqlConnectionInfoconnectionInfoMemberInfoDdlTextParserHeaderInfoheaderInfoConstructorInfoPropertyInfoMicrosoft.SqlServer.Management.Smom_noZeroget_AutoPtrToStringAutoShaTwoget_HeapSoapTcpdpGoToStepGoToNextStepTakeOwnershipSkipHadoopSelectAndDroppropsopStopxrppxrpHttpLogBackupm_triggeredColumnsIdLookupInitNameBasedLookuptriggeredColumnsAliasNameLookupUpdateFromNameBasedToOrdinalLookupDbccGroupget_CreateWorkloadGroupset_CreateWorkloadGroupget_DropWorkloadGroupset_DropWorkloadGroupget_AlterWorkloadGroupset_AlterWorkloadGroupBatchCompletedGroupBatchStartedGroupApplicationRoleChangePasswordGroupLoginChangePasswordGroupUserChangePasswordGroupTraceChangeGroupDatabaseChangeGroupServerStateChangeGroupDatabasePrincipalChangeGroupServerPrincipalChangeGroupDatabasePermissionChangeGroupServerPermissionChangeGroupSchemaObjectPermissionChangeGroupDatabaseObjectPermissionChangeGroupServerObjectPermissionChangeGroupDatabaseOwnershipChangeGroupSchemaObjectOwnershipChangeGroupDatabaseObjectOwnershipChangeGroupServerObjectOwnershipChangeGroupDatabaseRoleMemberChangeGroupServerRoleMemberChangeGroupSchemaObjectChangeGroupDatabaseObjectChangeGroupServerObjectChangeGroupAuditChangeGroupget_fgtMemoryOptimizedDataFileGroupget_fgtFileStreamDataFileGroupFileOrFileGroupget_fgtRowsFileGroupBackupRestoreGroupAttributeGroupExternalGroupModelGroupFailedLoginGroupDatabaseMirroringLoginGroupSuccessfulLoginGroupBrokerLoginGroupGlobalTransactionsLoginGroupFailedDatabaseAuthenticationGroupSuccessfulDatabaseAuthenticationGroupDatabasePrincipalImpersonationGroupServerPrincipalImpersonationGroupDatabaseOperationGroupServerOperationGroupTransactionGroupSchemaObjectAccessGroupDatabaseObjectAccessGroupWindowsGroupUserDefinedAuditGroupDatabaseLogoutGroupFullTextGroupget_CreateAvailabilityGroupset_CreateAvailabilityGroupget_DropAvailabilityGroupset_DropAvailabilityGroupget_AlterAvailabilityGroupset_AlterAvailabilityGroupAlterAnyAvailabilityGroupsEqm_reqSystem.Linqop_BitwiseOrm_rYearClearoldCharAppendCharstartEscapeCharescapeCharpaddingCharGetCharnewCharScalarsGrammarget_AddRoleMemberset_AddRoleMemberget_DropRoleMemberset_DropRoleMemberget_AddServerRoleMemberset_AddServerRoleMemberget_DropServerRoleMemberset_DropServerRoleMemberGetMemberget_NumbersProcNumberget_BuildNumberprocedureNumbersNumbersHexNumbernumberParseDdlHeaderCheckDdlHeaderget_Readerset_ReaderIDataReaderDbDataReaderRetriveDataReaderSqlDataReaderGetDataReaderget_SupportDataReaderm_dataReaderExecuteReaderget_ReplQueueReaderget_ReplLogReaderXmlReaderxmlReaderStreamReaderXmlTextReaderm_readerGetDataProviderget_CreateCryptographicProviderset_CreateCryptographicProviderget_DropCryptographicProviderset_DropCryptographicProviderget_AlterCryptographicProviderset_AlterCryptographicProviderIFormatProviderformatProviderStringBuilderget_StatementBuilderset_StatementBuilderProcessStatementBuildersenderBinderbinderFilterDecoderEndpointAuthenticationOrderActivationOrderbufferPagerSystem.Resources.ResourceManagerresourceManagerConnectionManagerShardMapManagerget_CreateTriggerset_CreateTriggerAlterAnyDatabaseDdlTriggerget_DropTriggerset_DropTriggerget_AlterTriggerset_AlterTriggerOtherotherParameterModifieruseQuotedIdentifiersObjectIdentifierobjectIdentifierServiceBrokerSqlInfoMessageEventHandlerCallerInnerget_drsrSuspendFromPartnerPostProcessOwnerTraceHelperToUpperPathWrapperIComparerdbComparerStringComparersvrComparerget_CreateUserset_CreateUserExternalUserSqlUserget_drsrSuspendFromUserget_DropUserset_DropUserreqUserget_AlterUserset_AlterUserExecuteAsUserPostProcessUserWindowsUserAlterAnyUserDdlTextParserescapeCharacterSystem.Xml.ReaderWriterscriptContainsOrAlterget_Filterset_Filterget_securityPredicateTypeFilterAddXpathFilterget_AdditionalFilterCleanupFilterAddConstantForFilterAddPropertyForFilterGetFilterm_filterWorkloadManagementImportanceConverterAvailabilityGroupAutomatedBackupPreferenceConverterAvailabilityReplicaSeedingModeConverterAvailabilityReplicaFailoverModeConverterAvailabilityReplicaAvailabilityModeConverterAvailabilityReplicaRoleConverterAvailabilityReplicaConnectionModeInSecondaryRoleConverterAvailabilityReplicaConnectionModeInPrimaryRoleConverterEnumToDisplayNameConverterSystem.ComponentModel.TypeConverterExternalDataSourceTypeConverterRangeTypeConverterSecurityPredicateTypeConverterResumableOperationStateTypeConverterAgentSubSystemTypeConverterClusterQuorumTypeConverterCatalogCollationTypeConverterAuditDestinationTypeConverterAuditActionTypeConverterFileGroupTypeConverterClusterMemberTypeConverterAvailabilityGroupClusterTypeConverterExternalFileFormatTypeConverterExternalTableRejectTypeConverterTemporalHistoryRetentionPeriodUnitTypeConverterContainmentTypeConverterIndexTypeConverterAvailabilityGroupListenerIPStateConverterAvailabilityReplicaOperationalStateConverterClusterQuorumStateConverterAvailabilityReplicaJoinStateConverterAvailabilityDatabaseSynchronizationStateConverterAvailabilityReplicaRollupSynchronizationStateConverterAvailabilityGroupRollupSynchronizationStateConverterAvailabilityReplicaConnectionStateConverterClusterMemberStateConverterAvailabilityReplicaRollupRecoveryStateConverterDatabaseScopedConfigurationOnOffConverterSensitivityRankConverterRecoveryModelConverterAvailabilityGroupFailureConditionLevelConverterEnumConverterSecurityPredicateOperationConverterAuditOnFailureActionConverterExternalDataSourcePushdownOptionConverterExternalTableDistributionConverterDwTableDistributionConverterDwViewDistributionConverterDatabaseReplicaSuspendReasonConverterMirroringStatusConverterJobExecutionStatusConverterHADRManagerStatusConverterAbortAfterWaitConverterRegisterNeverget_msPendingFailoverget_arosPendingFailoverMicrosoft.SqlServer.Serverget_CreateLinkedServerset_CreateLinkedServerremoteDataArchiveLinkedServerget_DropLinkedServerset_DropLinkedServerget_AlterLinkedServerset_AlterLinkedServerAlterAnyLinkedServerget_RevokeServerset_RevokeServerAuthenticateServerget_CreateRemoteServerset_CreateRemoteServerget_DropRemoteServerset_DropRemoteServerget_AlterRemoteServerset_AlterRemoteServerMultiServerControlServerInvalidSqlServerget_AlterAuthorizationServerset_AlterAuthorizationServerget_GrantServerset_GrantServerget_DenyServerset_DenyServerm_serverToLowerget_DirdirSqlClrget_Majormajorget_Minorminorget_ErrorSqlErrorMirrorseparatorIEnumeratorbaseEnumeratorStringEnumeratorStringSqlEnumeratorGetEnumeratorConditionedSqlListEnumeratorIDictionaryEnumeratorenumeratorget_UnknownOperatorpartSeperator.ctor.cctorGetConstructorExternalMonitorexprsrIntPtrToBstrbstrbindingAttrHourm_Aliasget_Aliasset_Aliasget_TableAliasbUseAliasGetTableNameWithAliasserverAliasget_PropertyAliasset_PropertyAliasm_aliasdbsPostProcessDatabaseInsideAttribsExternalGenericsget_UpdateStatisticsset_UpdateStatisticsget_CreateStatisticsset_CreateStatisticsget_DropStatisticsset_DropStatisticsSystem.DiagnosticsxrcsMergeLinkFiledsm_Fieldsget_Fieldsset_FieldsAddFieldsget_TriggeredFieldsm_triggeredFieldsget_RequestedFieldsrequestedFieldsm_LinkFieldsget_LinkFieldsXmlReadLinkFieldsAddLinkFieldsget_HasLinkFieldsSetLinkFieldslinkFieldsm_PostProcessFieldsget_PostProcessFieldsget_RedirectFieldsGetFieldsSetFieldsm_HitFieldsget_HitFieldsset_HitFieldsm_PrefixPostfixFieldsget_PrefixPostfixFieldsset_PrefixPostfixFieldsm_fieldslinkfieldsWeekEndsInvalidUrnForDependsget_TotalMillisecondsNotifyMethodsRC4AesTripleDesSystem.Runtime.InteropServicesSystem.Runtime.CompilerServicesReferencesSystem.ResourcesAlterResourcesMicrosoft.SqlServer.Management.Smo.SqlEnum.StringSqlEnumerator.resourcesDebuggingModesHttpAuthenticationModesget_SqlExecutionModesset_SqlExecutionModesget_ChildNodesObjectPropertyUsagesm_MessagesNoInformationMessagesAllErrorMessagesIEnumDependenciesSqlEnumDependenciesm_tempDependenciesAddConditionalsJustPropDependenciesget_ParentDependenciesget_BetweenRetriesget_PropertiesPostProcessContainedDbPropertiesXmlReadPropertiesget_NonTriggeredPropertiesAddStoredPropertiesget_FixedPropertiesComputeFixedPropertiesPostProcessFilePropertiesm_NamePropertiesget_NamePropertiesset_NamePropertiesPostProcessRemoteDataArchiveDatabasePropertiesPostProcessAutoClosePropertiesAddLinkPropertiesAddParentLinkPropertiesPostProcessServerPropertiesGetPropertiesPostProcessAuditPropertiesget_ParentPropertiesPropagateRequestedParentPropertiesparentPropertiesAddRequestPropertiesm_SchemaPrefixPropertiesget_SchemaPrefixPropertiesset_SchemaPrefixPropertiesget_TablesSelectAllUserSecurablesSplitNamesm_listNamesNamedPipesMediaTypesISupportDatabaseEngineTypesSystem.Data.SqlTypesExecutionTypesget_RequestFieldsTypesset_RequestFieldsTypesget_ResultTypesHttpPortTypesFrequencySubDayTypesFrequencyTypesresget_Databasesset_DatabasesGetRequestedDatabasesget_MultipleDatabasesget_ResolveDatabasesset_ResolveDatabasesm_bResolveDatabasesbAcrossDatabasesAddOrderByAcrossDatabasesm_databasesget_AttributesGetCustomAttributesactivationAttributesMinutesGetMaximumFileSizeInMegaBytesGetBytesget_ValuesGetValuesDatabaseDdlTriggerEventValuesServerDdlTriggerEventValuesvaluesSystem.ComponentModel.PrimitivesSystem.Net.Primitivesm_SchemaPrefixesget_SchemaPrefixesset_SchemaPrefixesm_fsoverrideFlagsBindingFlagsJobStepFlagsWarningsget_SettingsXmlReadSettingsConnectionSettingsAlterSettingsSqlInfoMessageEventArgsargsFailedToLoadResFileFromPathspathsSsishasParanthesissPharanthesisget_HasParantesisExtendedLogicalChecksNoChecksget_LinksResolveDeferredLinksResolveLocalLinkLinksRetrieveParentRequestLinksAddConditionalsEqualsFrequencyRelativeIntervalsget_TooManyDbLevelsAgentLogLevelsIsolationLevelsm_colsParseParamsRdbmsdelimElemsContainsget_ColumnsSystem.Runtime.ExtensionsISupportVersionsSystem.Text.RegularExpressionsSubscribeQueryNotificationsAdministerDatabaseBulkOperationsAdministerBulkOperationsSystem.Collectionsget_cmprReadWriteConnectionsAllowReadWriteConnectionsget_replicaReadModeAllConnectionsget_cmprAllConnectionsget_cmsrAllConnectionsAllowAllConnectionsget_replicaReadModeNoConnectionsget_cmsrNoConnectionsAllowNoConnectionsISupportDatabaseEngineEditionsCallingConventionsCompareOptionsReplicationOptionsAssemblyAlterOptionsRepairOptionsStringSplitOptionsRegexOptionsoptionsget_UrnssReturnsm_nCurentCachePosCertificateKerberosm_NonTriggeredPropsm_ParentPropsxrrpsIsUriSchemeHttpsget_Groupsget_CharstrimCharsGetCharsGetMembersAddPostProcessTriggersBlockersget_Errorsget_agfcOnModerateServerErrorsget_agfcOnCriticalServerErrorsHoursxrsget_ClassobjClassObjectClassCategoryClassTSqlAccessTSqlLocalFileSystemAccessTSqlFullFileSystemAccessDatabaseUserAccessget_SuccessQuitWithSuccessOnSuccessSystem.Diagnostics.ProcessGetCurrentProcessget_PostProcessManipulateRowDataPostProcessAddPostProcessQueryNotSupportedPostProcessget_NoClassNamePostProcessSqlPostProcessm_bHasPostProcessXmlReadConditionedStatementPostProcessm_postProcessget_cmtCloudWitnessget_cqtCloudWitnessget_cmtFileshareWitnessRemoveWitnessget_cmtDiskWitnessPostProcessIP6AddressPostProcessIPAddressget_arrhInProgressDecryptionInProgressEncryptionInProgressEncryptionKeyChangesInProgressCrawlinProgressForceFailoverAndAllowDataLossPostProcessOwnObjectsm_listObjectsRowSetsAttributeTargetsHasCommonBitsAddHitsget_AcceptsMultipleHitsClearHitsRegisterPostProcessHitsRetentionPeriodUnitsExecuteWithResultsAllResultsGetRowResultsrowResultsget_NumberOfElementsargumentsPostProcessDdlEventsget_DdlResourcePoolEventsset_DdlResourcePoolEventsget_DdlWorkloadGroupEventsset_DdlWorkloadGroupEventsPostProcessDatabaseDdlTriggerEventsPostProcessServerDdlTriggerEventsGetTriggerEventsget_DdlSchemaEventsEventsset_DdlSchemaEventsEventsget_DdlSsbEventsEventsset_DdlSsbEventsEventsget_DdlServiceEventsEventsset_DdlServiceEventsEventsget_DdlSequenceEventsEventsset_DdlSequenceEventsEventsget_DdlPlanGuideEventsEventsset_DdlPlanGuideEventsEventsget_DdlMessageEventsEventsset_DdlMessageEventsEventsget_DdlExternalLanguageEventsEventsset_DdlExternalLanguageEventsEventsget_DdlTableEventsEventsset_DdlTableEventsEventsget_DdlRoleEventsEventsset_DdlRoleEventsEventsget_DdlApplicationRoleEventsEventsset_DdlApplicationRoleEventsEventsget_DdlRuleEventsEventsset_DdlRuleEventsEventsget_DdlPartitionSchemeEventsEventsset_DdlPartitionSchemeEventsEventsget_DdlMessageTypeEventsEventsset_DdlMessageTypeEventsEventsget_DdlTypeEventsEventsset_DdlTypeEventsEventsget_DdlExtendedProcedureEventsEventsset_DdlExtendedProcedureEventsEventsget_DdlProcedureEventsEventsset_DdlProcedureEventsEventsget_DdlCryptoSignatureEventsEventsset_DdlCryptoSignatureEventsEventsget_DdlDatabaseEventsEventsset_DdlDatabaseEventsEventsget_DdlAuthorizationDatabaseEventsEventsset_DdlAuthorizationDatabaseEventsEventsget_DdlGdrDatabaseEventsEventsset_DdlGdrDatabaseEventsEventsget_DdlCertificateEventsEventsset_DdlCertificateEventsEventsget_DdlRouteEventsEventsset_DdlRouteEventsEventsget_DdlQueueEventsEventsset_DdlQueueEventsEventsget_DdlRemoteServiceBindingEventsEventsset_DdlRemoteServiceBindingEventsEventsget_DdlFulltextCatalogEventsEventsset_DdlFulltextCatalogEventsEventsget_DdlCredentialEventsEventsset_DdlCredentialEventsEventsget_DdlDatabaseLevelEventsEventsset_DdlDatabaseLevelEventsEventsget_DdlServerLevelEventsEventsset_DdlServerLevelEventsEventsget_DdlExternalResourcePoolEventsEventsset_DdlExternalResourcePoolEventsEventsget_DdlSynonymEventsEventsset_DdlSynonymEventsEventsget_DdlLoginEventsEventsset_DdlLoginEventsEventsget_DdlLinkedServerLoginEventsEventsset_DdlLinkedServerLoginEventsEventsget_DdlEventSessionEventsEventsset_DdlEventSessionEventsEventsget_DdlDatabaseAuditSpecificationEventsEventsset_DdlDatabaseAuditSpecificationEventsEventsget_DdlServerAuditSpecificationEventsEventsset_DdlServerAuditSpecificationEventsEventsget_DdlEventNotificationEventsEventsset_DdlEventNotificationEventsEventsget_DdlXmlSchemaCollectionEventsEventsset_DdlXmlSchemaCollectionEventsEventsget_DdlFunctionEventsEventsset_DdlFunctionEventsEventsget_DdlPartitionFunctionEventsEventsset_DdlPartitionFunctionEventsEventsget_DdlPartitionEventsEventsset_DdlPartitionEventsEventsget_DdlAvailabilityGroupEventsEventsset_DdlAvailabilityGroupEventsEventsget_DdlCryptographicProviderEventsEventsset_DdlCryptographicProviderEventsEventsget_DdlTriggerEventsEventsset_DdlTriggerEventsEventsget_DdlUserEventsEventsset_DdlUserEventsEventsget_DdlLinkedServerEventsEventsset_DdlLinkedServerEventsEventsget_DdlRemoteServerEventsEventsset_DdlRemoteServerEventsEventsget_DdlAuthorizationServerEventsEventsset_DdlAuthorizationServerEventsEventsget_DdlGdrServerEventsEventsset_DdlGdrServerEventsEventsget_DdlResourceGovernorEventsEventsset_DdlResourceGovernorEventsEventsget_DdlStatisticsEventsEventsset_DdlStatisticsEventsEventsget_DdlContractEventsEventsset_DdlContractEventsEventsget_DdlDatabaseAuditEventsEventsset_DdlDatabaseAuditEventsEventsget_DdlServerAuditEventsEventsset_DdlServerAuditEventsEventsget_DdlDefaultEventsEventsset_DdlDefaultEventsEventsget_DdlEndpointEventsEventsset_DdlEndpointEventsEventsget_DdlSearchPropertyListEventsEventsset_DdlSearchPropertyListEventsEventsget_DdlFulltextStoplistEventsEventsset_DdlFulltextStoplistEventsEventsget_DdlTableViewEventsEventsset_DdlTableViewEventsEventsget_DdlViewEventsEventsset_DdlViewEventsEventsget_DdlIndexEventsEventsset_DdlIndexEventsEventsget_DdlSecurityPolicyEventsEventsset_DdlSecurityPolicyEventsEventsget_DdlSymmetricKeyEventsEventsset_DdlSymmetricKeyEventsEventsget_DdlAsymmetricKeyEventsEventsset_DdlAsymmetricKeyEventsEventsget_DdlDatabaseEncryptionKeyEventsEventsset_DdlDatabaseEncryptionKeyEventsEventsget_DdlColumnEncryptionKeyEventsEventsset_DdlColumnEncryptionKeyEventsEventsget_DdlServiceMasterKeyEventsEventsset_DdlServiceMasterKeyEventsEventsget_DdlMasterKeyEventsEventsset_DdlMasterKeyEventsEventsget_DdlColumnMasterKeyEventsEventsset_DdlColumnMasterKeyEventsEventsget_DdlAssemblyEventsEventsset_DdlAssemblyEventsEventsget_DdlLibraryEventsEventsset_DdlLibraryEventsEventsget_DdlBrokerPriorityEventsEventsset_DdlBrokerPriorityEventsEventsget_DdlDatabaseSecurityEventsEventsset_DdlDatabaseSecurityEventsEventsget_DdlServerSecurityEventsEventsset_DdlServerSecurityEventsEventsget_DdlSensitivityEventsEventsset_DdlSensitivityEventsEventsget_DdlExtendedPropertyEventsEventsset_DdlExtendedPropertyEventsEventsm_dtEventsddlresourcepooleventsddlworkloadgroupeventsddlschemaeventseventsddlssbeventseventsddlserviceeventseventsddlsequenceeventseventsddlplanguideeventseventsddlmessageeventseventsddlexternallanguageeventseventsddltableeventseventsddlroleeventseventsddlapplicationroleeventseventsddlruleeventseventsddlpartitionschemeeventseventsddlmessagetypeeventseventsddltypeeventseventsddlextendedprocedureeventseventsddlprocedureeventseventsddlcryptosignatureeventseventsddldatabaseeventseventsddlauthorizationdatabaseeventseventsddlgdrdatabaseeventseventsddlcertificateeventseventsddlrouteeventseventsddlqueueeventseventsddlremoteservicebindingeventseventsddlfulltextcatalogeventseventsddlcredentialeventseventsddldatabaseleveleventseventsddlserverleveleventseventsddlexternalresourcepooleventseventsddlsynonymeventseventsddllogineventseventsddllinkedserverlogineventseventsddleventsessioneventseventsddldatabaseauditspecificationeventseventsddlserverauditspecificationeventseventsddleventnotificationeventseventsddlxmlschemacollectioneventseventsddlfunctioneventseventsddlpartitionfunctioneventseventsddlpartitioneventseventsddlavailabilitygroupeventseventsddlcryptographicprovidereventseventsddltriggereventseventsddlusereventseventsddllinkedservereventseventsddlremoteservereventseventsddlauthorizationservereventseventsddlgdrservereventseventsddlresourcegovernoreventseventsddlstatisticseventseventsddlcontracteventseventsddldatabaseauditeventseventsddlserverauditeventseventsddldefaulteventseventsddlendpointeventseventsddlfulltextstoplisteventseventsddlsearchpropertylisteventseventsddltablevieweventseventsddlvieweventseventsddlindexeventseventsddlsecuritypolicyeventseventsddlasymmetrickeyeventseventsddlsymmetrickeyeventseventsddldatabaseencryptionkeyeventseventsddlcolumnencryptionkeyeventseventsddlservicemasterkeyeventseventsddlmasterkeyeventseventsddlcolumnmasterkeyeventseventsddlassemblyeventseventsddllibraryeventseventsddlbrokerpriorityeventseventsddldatabasesecurityeventseventsddlserversecurityeventseventsddlsensitivityeventseventsddlextendedpropertyeventseventsget_ParentPropertiesRequestsset_ParentPropertiesRequestsAnonymousContinuousDatabaseStatusMirroringStatusCatalogPopulationStatusIndexPopulationStatusJobExecutionStatusHadrManagerStatusTargetServerStatusMirroringWitnessStatusLogReuseWaitStatusLockRequestStatusget_RowsGetEventsForAllRowsGetTextForAllRowsWindowsMonthlyRelativeWeekDaysAlwaysget_KeysRemoveAtGetBitAtSetBitAtConcatAppendFormatAlterAnyExternalFileFormatUserDefinedTypeFormatRegPathFormatXmlFormatSqlFormatIsolationFormatResultFormatformatGetFloatSubtractServiceContractget_CreateContractset_CreateContractget_DropContractset_DropContractAlterAnyContractget_AddSignatureSchemaObjectset_AddSignatureSchemaObjectget_DropSignatureSchemaObjectset_DropSignatureSchemaObjectget_NotDbObjectGetTriggeredObjectSqlObjectEnumObjectget_SqlConnectionObjectToObjectGetTextForObjectassemblyObjectm_InternalSelectSetInternalSelectGetRequestedParentSelectm_RequestParentSelectget_RequestParentSelectset_RequestParentSelectXmlRequestParentSelectGetCreateTemporaryTableSqlConnectTryToReconnectDisconnectSuspectm_OrderByRedirectget_OrderByRedirectXmlReadOrderByRedirectget_Distinctset_Distinctm_bDistinctm_distinctdtSystem.NetDataSetSecurityRuleSetm_LastDbLevelSetget_LastDbLevelSetset_LastDbLevelSetDatabaseDdlTriggerEventSetServerDdlTriggerEventSeteventSetget_IsTextSetm_btextSetAlwaysResetfieldOffsetfieldoffsetbufferoffsetParquetPadLefteventLeftlftPadRighteventRightSetBitResetBitAddHitGetIsFieldHitMarkHitClearHitIsHitTestHitAbortAfterWaitop_Implicitop_ExplicitAlterAnyDatabaseAuditget_CreateAuditset_CreateAuditget_DropAuditset_DropAuditget_AlterAuditset_AlterAuditget_CreateServerAuditset_CreateServerAuditget_DropServerAuditset_DropServerAuditget_AlterServerAuditset_AlterServerAuditAlterAnyServerAuditSplitget_aramSynchronousCommitget_aramAsynchronousCommitIsLookupInitGetMaxFileSizeValueInAcceptedRangeAndUnitTemporalHistoryRetentionPeriodUnitGetMaximumFileSizeUnitmaximumFileSizeUnitAuditFileSizeUnitinheritAddDefaultget_BindDefaultset_BindDefaultget_UnbindDefaultset_UnbindDefaultget_dbCatalogCollationDatabaseDefaultget_CreateDefaultset_CreateDefaultget_DropDefaultset_DropDefaultFirstOrDefaultIsDefaultSetDefaultBuildResultSqlEnumResultCompletionResultAddQueryHintToResultAddSpecialQueryToResultIntegrateParentResultNextResultsqlresultToUpperInvariantToLowerInvariantGrantWithGrantFilterNodeConstantPercentMicrosoft.SqlServer.Management.Smo.AgentMicrosoft.Data.SqlClientAddSqlStatementFragmentReplacementAddElementGetTextOfElementXmlElementIsElementget_DocumentElementSelectNextElementget_IsEmptyElementelementXmlReadConditionedStatementSqlConditionedStatementBuildStatementget_SqlStatementsNestedMultiLineCommentXmlDocumentMarshalByValueComponentget_ParenttentativeParentserParentforParentAddParentLinkPropertiesParentSystem.Collections.IEnumerator.CurrentSystem.Collections.IEnumerator.get_CurrentcurrentelemContentWmiEventanEventDatabaseDdlTriggerEventServerDdlTriggerEventNonSqlServerEventProvideStopProcessEventget_Hintm_optionHintm_QueryHintget_QueryHintAddQueryHintXmlDocumentConstrainthintget_CreateEndpointset_CreateEndpointremoteDataArchiveEndpointget_DropEndpointset_DropEndpointget_AlterEndpointset_AlterEndpointAlterAnyEndpointCheckpointget_Countget_FieldCountHitFieldsCountnonTriggeredPropertiesCountget_TableRowCountrowCountremoteDataArchiveFederatedServiceAccountsDotNotWithSnapshotget_ReplSnapshotExecuteAnyExternalScriptindexNameStartdelimStartTrimStartAutoStartindexOrAlterStartget_IdxStartget_drsrSuspendFromRestartAlertget_securityPredicateOperationAfterInsertAssertSqlTypeConvertSqlSupportCheckDataReaderSupportget_Castm_bCastm_bHasTypeCastGetValueWithCastLastget_FileDestget_ApplicationLogDestget_SecurityLogDestget_UrlDestget_UnknownDestget_ExternalMonitorDestDigestget_Requestset_Requestget_SqlRequestTransformToRequestPropertiesRequestget_CalculateParentRequestRetrieveParentRequestDependencyRequestSortedListXmlNodeListget_PropertyLinkListset_PropertyLinkListm_propertyLinkListget_ConditionedSqlListset_ConditionedSqlListm_conditionedSqlListPostProcessXmlToListpropListFullTextStopListsuppListget_PostProcessListset_PostProcessListm_postProcessListm_textListget_OrderByListset_OrderByListArrayListget_CreateSearchPropertyListset_CreateSearchPropertyListget_DropSearchPropertyListset_DropSearchPropertyListget_AlterSearchPropertyListset_AlterSearchPropertyListget_CreateFulltextStoplistset_CreateFulltextStoplistget_DropFulltextStoplistset_DropFulltextStoplistget_AlterFulltextStoplistset_AlterFulltextStoplistbFirstBinarySearchSetOnFirstMoveNextSystem.TextDelimitedTextget_CommandTextset_CommandTextddlTextPostProcessTextobjectTextm_dtTextGetTextSetTextPostProcessBodyTextnextm_textSqlContextActivationExecutionContextDatabaseDdlTriggerExecutionContextServerDdlTriggerExecutionContextITypeDescriptorContextcontextget_ObjectNotSupportedOnSqlDwCreateNewStartNewget_CreateViewset_CreateViewget_DropViewset_DropViewget_AlterViewset_AlterViewLowget_NowisInitDataRowDumpRowNewRowCouldNotGetInfoFromDependencyRowGetIsDatabaseAccessibleNoThrowEnumValueToTsqlSyntaxm_idxget_IndexNonClusteredIndexNonClusteredColumnStoreIndexget_CreateIndexset_CreateIndexUpdatingIndexNonClusteredHashIndexget_CreateSpatialIndexset_CreateSpatialIndexget_CreateXmlIndexset_CreateXmlIndexSecondarySelectiveXmlIndexSecondaryXmlIndexPrimaryXmlIndexHeapIndexget_DropIndexset_DropIndexget_AlterIndexset_AlterIndexstartIndexAdjustIndexget_CreateFulltextIndexset_CreateFulltextIndexget_DropFulltextIndexset_DropFulltextIndexget_AlterFulltextIndexset_AlterFulltextIndexget_KeyIndexset_KeyIndexindexsRegexregexComplexget_PrefixSubstituteSchemaPrefixAddPrefixcachedPrefixXmlReadConditionedStatementPrefixSqlConditionedStatementPrefixGetQueryPrefixm_prefixget_PostfixAddPostfixcachedPostfixget_SqlPostfixXmlReadConditionedStatementPostfixSqlConditionedStatementPostfixFillPrefixPostfixGetSqlNoPrefixPostfixClearPrefixPostfixGetQueryPostfixm_postfixMsxTsxm_conctxLinuxAddOrderByClearOrderBysOrderByGetOrderBym_orderByEveryDayFridayMondaySundaySaturdayWednesdayTuesdayThursdayStringArrayToSqlSecureStringArrayToCharArrayBitArrayarrayStandbyNoPolicyget_CreateSecurityPolicyset_CreateSecurityPolicyget_DropSecurityPolicyset_DropSecurityPolicyget_AlterSecurityPolicyset_AlterSecurityPolicyAlterAnySecurityPolicyDependencyTripleDes3KeyBuildIDKeyget_Keyget_CreateSymmetricKeyset_CreateSymmetricKeyget_DropSymmetricKeyset_DropSymmetricKeyget_AlterSymmetricKeyset_AlterSymmetricKeyAlterAnySymmetricKeyget_CreateAsymmetricKeyset_CreateAsymmetricKeyget_DropAsymmetricKeyset_DropAsymmetricKeyget_AlterAsymmetricKeyset_AlterAsymmetricKeyServerAsymmetricKeyAlterAnyAsymmetricKeyBuildKeyDriUniqueKeyget_CreateDatabaseEncryptionKeyset_CreateDatabaseEncryptionKeyget_DropDatabaseEncryptionKeyset_DropDatabaseEncryptionKeyget_AlterDatabaseEncryptionKeyset_AlterDatabaseEncryptionKeyget_CreateColumnEncryptionKeyset_CreateColumnEncryptionKeyget_DropColumnEncryptionKeyset_DropColumnEncryptionKeyget_AlterColumnEncryptionKeyset_AlterColumnEncryptionKeyAlterAnyColumnEncryptionKeyNoKeyget_AlterServiceMasterKeyset_AlterServiceMasterKeyget_CreateMasterKeyset_CreateMasterKeyget_CreateColumnMasterKeyset_CreateColumnMasterKeyget_DropColumnMasterKeyset_DropColumnMasterKeyAlterAnyColumnMasterKeyget_DropMasterKeyset_DropMasterKeyget_AlterMasterKeyset_AlterMasterKeyContainsKeyGetKeyDriPrimaryKeykeyPageVerifyHealthyasemblyget_AssemblyFailedToLoadAssemblyget_ResourceAssemblyUnsafeAssemblyget_CreateAssemblyset_CreateAssemblyGetExecutingAssemblym_XmlAssemblySqlAssemblyLoadInitDataFromAssemblyFailedToLoadResFileFromAssemblyget_DropAssemblyset_DropAssemblyget_AlterAssemblyset_AlterAssemblyExternalAccessAssemblyGetAssemblyAlterAnyAssemblym_assemblyMonthlyDailyWeeklySchemaOnlyget_ReadOnlyset_ReadOnlyEstimateOnlyget_cqtDiskOnlyPhysicalOnlyget_aramConfigurationOnlyget_replicaReadModeReadIntentConnectionsOnlyget_cmsrReadIntentConnectionsOnlyAllowReadIntentConnectionsOnlyVerifyOnlyget_agabpSecondaryOnlyget_drsrSuspendFromApplyLastIndexOfAnyDenyMakeCopyFloppyschemaSecondaryindexNameEndSecondarynameSecondarydatabaseSecondaryget_agabpSecondaryget_arrSecondaryindexNameStartSecondaryget_agabpPrimaryget_arrPrimaryBinaryget_FragmentDictionarysqlStatementFragmentDictionaryget_CreateExternalLibraryset_CreateExternalLibraryget_DropExternalLibraryset_DropExternalLibraryget_AlterExternalLibraryset_AlterExternalLibraryAlterAnyExternalLibraryXQueryget_QueryBuildQuerySetConnectionAndQueryExecuteQuerym_SpecialQueryget_SpecialQueryXmlReadSpecialQueryAddSpecialQueryget_SqlQuerysqlQueryExecuteNonQueryget_AnalysisQueryGetUrnByQueryqueryUnsupportedTypeDepDiscoveryDatabaseCategorySharedMemoryAppendToJobHistoryAppendAllCmdExecOutputToJobHistoryRetryDictionaryEntryop_Equalityop_InequalityDelayedDurabilityXmlUtilityOSRunPriorityget_CreateBrokerPriorityset_CreateBrokerPriorityget_DropBrokerPriorityset_DropBrokerPriorityget_AlterBrokerPriorityset_AlterBrokerPriorityget_cqtNodeMajorityget_cqtNodeAndFileshareMajorityget_cqtNodeAndDiskMajorityDataPuritySystem.SecurityPostProcessJobActivityget_EmptyIsNullOrEmptyIsEmptyemptyget_PropertyXmlReadPropertyAddPropertyget_CreateExtendedPropertyset_CreateExtendedPropertyget_DropExtendedPropertyset_DropExtendedPropertyget_AlterExtendedPropertyset_AlterExtendedPropertyget_NamePropertyGetFixedStringPropertyAddLinkPropertyGetSqlPropertyAddFilterPropertySqlObjectPropertyGetPropertyStoreParentPropertyAddRequestPropertyAddOrderByPropertyget_Dirtyset_Dirtydirty	Name{}db_name()[{}].=qshould only be called when this is an intermediate levelSystem.String<d  />db_namexmlassemly	last{0}, {1}/Microsoft.SqlServer.SmowMicrosoft.SqlServer.Management.Smo.Internal.SqlSecureStringSystem.Int32qMicrosoft.SqlServer.Management.Common.DatabaseEngineTypeParse(--[^

]*)(//[^

]*)��(/\*(?>/\*(?<DEPTH>)|\*/(?<-DEPTH>)|(.|[
])?)*(?(DEPTH)(?!))\*/)[(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*\*/|)!('(('')|[^'])*)'=(?<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]+)	word[]braket_wordquoted_wordnumber_procdot
createoraltermaterialized	viewTRIGGERONparant_closeparant_open
delim1
delim2	execreturnsparamreturns_table
return
optioncheck	with
reject
slcommeolqdeclare @Path nvarchar(255)
declare @Name nvarchar(255)
	PathFullName-select @Path = N'{0}'
)select @Path = null;-select @Name = N'{0}'
)select @Name = null;use [{0}];ASELECT CASE WHEN has_dbaccess(N'G') = 1 THEN 'true' ELSE 'false' ENDoSqlEnum.PermissionDecode.PermissionCodeToPermissionNamesUndefined permission code {0} - has it been added to {1}?oSqlEnum.PermissionDecode.PermissionCodeToPermissionTypeOSqlEnum.PermissionDecode.PermissionNameg{0} doesn't have a PermissionName attribute definedg{0} doesn't have a PermissionType attribute defined ,System.DBNullMaximumFileSize'MaximumFileSizeUnitPermission
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
Schema'UserDefinedDataTypeUserDefinedType'XmlSchemaCollection)UserDefinedAggregateCheckTableDefaultForeignKeyIndexStoredProcedure'UserDefinedFunction	RuleSynonymSequence5ServiceBroker/ServiceQueueTrigger	View/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	type+DBCC SHOW_STATISTICS(, ') WITH STATS_STREAMStats_Streamaselect SERVERPROPERTY('instancedefaultdatapath')3HasMemoryOptimizedObjectsIsDbAccessAdmin9is_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) + (SELECT ISNULL(SUM(CAST(df.size as bigint)), 0) FROM sys.database_files AS df WHERE df.type = 2 ))LogSize��(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in (1, 3))'IsHyperscaleEdition��(SELECT IIF(databasepropertyex(db_name(),'Edition') = 'Hyperscale', 1, 0))o(SELECT databasepropertyex(db_name(),'IsXTPSupported'))��ISNULL((select top 1 1 from sys.filegroups FG where FG.[type] = 'FX'), 0)�1db.name as HasMemoryOptimizedObjects from master.sys.master_files mf join master.sys.databases db on mf.database_id = db.database_id where mf.[type] = 2WMemoryAllocatedToMemoryOptimizedObjectsInKB�isnull((select convert(decimal(18,2),(sum(tms.memory_allocated_for_table_kb) + sum(tms.memory_allocated_for_indexes_kb))) 

                                                                                from [sys].[dm_db_xtp_table_memory_stats] tms), 0.00)MMemoryUsedByMemoryOptimizedObjectsInKB��isnull((select convert(decimal(18,2),(sum(tms.memory_used_by_table_kb) + sum(tms.memory_used_by_indexes_kb))) 

                                                                           from [sys].[dm_db_xtp_table_memory_stats] tms), 0.00)HasFileInCloud�}ISNULL ((select top 1 1 from sys.database_files

                                                    where state = 0 and physical_name like 'https%' collate SQL_Latin1_General_CP1_CI_AS), 0)DataSpaceUsageIndexSpaceUsage�GSUM(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 schema_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)
MaxDop��(select value from sys.database_scoped_configurations as dsc where dsc.name = 'MAXDOP')%MaxDopForSecondary��(select value_for_secondary from sys.database_scoped_configurations as dsc where dsc.name = 'MAXDOP')7LegacyCardinalityEstimation��(select value from sys.database_scoped_configurations as dsc where dsc.name = 'LEGACY_CARDINALITY_ESTIMATION')OLegacyCardinalityEstimationForSecondary�(select ISNULL(value_for_secondary, 2) from sys.database_scoped_configurations as dsc where dsc.name = 'LEGACY_CARDINALITY_ESTIMATION')#ParameterSniffing��(select value from sys.database_scoped_configurations as dsc where dsc.name = 'PARAMETER_SNIFFING');ParameterSniffingForSecondary��(select ISNULL(value_for_secondary, 2) from sys.database_scoped_configurations as dsc where dsc.name = 'PARAMETER_SNIFFING')-QueryOptimizerHotfixes��(select value from sys.database_scoped_configurations as dsc where dsc.name = 'QUERY_OPTIMIZER_HOTFIXES')EQueryOptimizerHotfixesForSecondary�(select ISNULL(value_for_secondary, 2) from sys.database_scoped_configurations as dsc where dsc.name = 'QUERY_OPTIMIZER_HOTFIXES')��(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 #tmpdbchaining�SELECT 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], dtb.delayed_durability AS [DelayedDurability] FROM master.sys.databases AS dtb where name = db_name()��SELECT 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 (SERVERPROPERTY('EngineEdition') = 11) 

 INSERT INTO #tempspace VALUES(-1) 

 ELSE 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 

freebytesServerType3IsContainedAuthentication
/Event!ObjectIdentifier)EventTypeDescriptionADD_ROLE_MEMBER=ADD_SENSITIVITY_CLASSIFICATIONADD_SIGNATURE7ADD_SIGNATURE_SCHEMA_OBJECT-ALTER_APPLICATION_ROLEALTER_ASSEMBLY)ALTER_ASYMMETRIC_KEYALTER_AUDIT9ALTER_AUTHORIZATION_DATABASE+ALTER_BROKER_PRIORITY#ALTER_CERTIFICATE7ALTER_COLUMN_ENCRYPTION_KEYEALTER_DATABASE_AUDIT_SPECIFICATION;ALTER_DATABASE_ENCRYPTION_KEYGALTER_DATABASE_SCOPED_CONFIGURATION/ALTER_EXTENDED_PROPERTY/ALTER_EXTERNAL_LANGUAGE-ALTER_EXTERNAL_LIBRARY-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_LIST+ALTER_SECURITY_POLICYALTER_SEQUENCEALTER_SERVICE'ALTER_SYMMETRIC_KEYALTER_TABLEALTER_TRIGGERALTER_USERALTER_VIEW7ALTER_XML_SCHEMA_COLLECTIONBIND_DEFAULTBIND_RULE/CREATE_APPLICATION_ROLECREATE_ASSEMBLY+CREATE_ASYMMETRIC_KEYCREATE_AUDIT-CREATE_BROKER_PRIORITY%CREATE_CERTIFICATE9CREATE_COLUMN_ENCRYPTION_KEY1CREATE_COLUMN_MASTER_KEYCREATE_CONTRACTGCREATE_DATABASE_AUDIT_SPECIFICATION=CREATE_DATABASE_ENCRYPTION_KEYCREATE_DEFAULT3CREATE_EVENT_NOTIFICATION1CREATE_EXTENDED_PROPERTY1CREATE_EXTERNAL_LANGUAGE/CREATE_EXTERNAL_LIBRARY/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_LIST-CREATE_SECURITY_POLICYCREATE_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_KEYDROP_AUDIT)DROP_BROKER_PRIORITY!DROP_CERTIFICATE5DROP_COLUMN_ENCRYPTION_KEY-DROP_COLUMN_MASTER_KEYDROP_CONTRACTCDROP_DATABASE_AUDIT_SPECIFICATION9DROP_DATABASE_ENCRYPTION_KEYDROP_DEFAULT/DROP_EVENT_NOTIFICATION-DROP_EXTENDED_PROPERTY-DROP_EXTERNAL_LANGUAGE+DROP_EXTERNAL_LIBRARY+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_LIST)DROP_SECURITY_POLICY?DROP_SENSITIVITY_CLASSIFICATIONDROP_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_SESSION9ALTER_EXTERNAL_RESOURCE_POOLALTER_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_EXTERNAL_RESOURCE_POOL)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_PROCEDURE7DROP_EXTERNAL_RESOURCE_POOL%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_SERVERUsedSpaceAvailableSpace��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;��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>Owner��DECLARE @sid varbinary(max) 

                DECLARE @name varchar(max)

                SET @sid = {0}

                set @name = CAST(@sid as UNIQUEIDENTIFIER)

                select @name = name from sys.database_principals WITH (NOLOCK) where sid=@sid

                IF @@ROWCOUNT = 0

                BEGIN

                  select @name = name from sys.sql_logins WITH (NOLOCK) where sid=@sid

                END

                select @name
master�q(/\*(([^/\*])|(\*(?=[^/]))|(/(?=[^\*])))*|(/\*(?>/\*(?<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, ]*\))delimeqcommaval�7select 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.colid�1select c.text,convert(bit,OBJECTPROPERTY(c.id,N'ExecIsQuotedIdentOn')) from [{0}].dbo.syscomments c where c.id = <msparam>{1}</msparam> order by c.colid3RemoteDataArchiveEndpointeds.location;RemoteDataArchiveLinkedServereds.name%RemoteDatabaseName3rdad.remote_database_nameWRemoteDataArchiveUseFederatedServiceAccount=rdad.federated_service_account7RemoteDataArchiveCredential��case when rdad.federated_service_account = 1 then null else cred.name endMsys.remote_data_archive_databases rdad��INNER JOIN sys.external_data_sources eds ON rdad.data_source_id = eds.data_source_id��LEFT OUTER JOIN sys.database_scoped_credentials cred ON eds.credential_id = cred.credential_id��PostProcessRemoteDataArchiveDatabaseProperties - Unknown property {0}��PostProcessRemoteDataArchiveDatabaseProperties - Column name is nullRowCount�5(CASE WHEN (tbl.is_memory_optimized=0) 

                            THEN ISNULL((SELECT SUM (spart.rows) FROM sys.partitions spart WHERE spart.object_id = tbl.object_id AND spart.index_id < 2), 0)

                            ELSE ISNULL((SELECT COUNT(*) FROM [{0}].[{1}]), 0) END)��FROM sys.tables tbl WHERE SCHEMA_NAME(tbl.schema_id)=N'{0}' AND tbl.name=N'{1}'/TextID	Text1TextBodyBodyStartIndex-HasColumnSpecification#TableVariableNameLoginUserType	0x00	0x01wSelect name from sys.sql_logins WITH (NOLOCK) where sid={0}PostProcessaException in GetCachedRowResultsForDatabase: {0}PrimaryFileudeclare @fileName nvarchar(255)
select @fileName = N'{0}'
!read uncommittedread committedserializablesnapshotrepeatable read
PrefixPostfixISET TRANSACTION ISOLATION LEVEL {0};��DECLARE @db_name              sysname ,@restore_to_datetime  datetime 
DatabaseNameBackupStartDate3select @db_name = N'{0}'
Qselect @restore_to_datetime = GETDATE()
Kselect @restore_to_datetime = N'{0}'
Table/TriggerPartitionScheme#PartitionFunction)UserDefinedTableType!UnresolvedEntityDdlTriggerPlanGuideSecurityPolicy
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.sql��declare @find_referencing_objects int
set @find_referencing_objects = {0}
.USE [master]
N'{0}'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( ��ResolvedDeferredLinks should not be called for version >= KatmaiUrnmServer[@Name='{0}']/Database[@Name='{1}']/{2}[@ID={3}]SServer/Database[@Name='{0}']/{1}[@ID={2}]wBuildUrn should never be called by server version >= KatmaiUServer[@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}']uBuildUrn should be called by server version >= Katmai only)Server[@Name='{0}']/Server/-Database[@Name='{0}']/pschemapnameptypeuse [{0}]
'	use [{0}][SchemaPrefix][#unify_temptbl insert into {0}
{1}w��IDataReader will be returned from a DataTable because post processing is needed#empty_resultiselect * from #empty_result
DROP TABLE #empty_resultParentSelectNType{0}({1})!CAST({0} AS {1})
UNION
 AND {{{0}}}={{{1}}}	 AS ) AND (!LEFT OUTER JOIN INNER JOIN  ON {0}CIAIKSWSBIN	BIN2+'/'+
,
and	 ASC DESC{1} AS [{0}]SELECT
distinct TOP ({0}) 
FROM

WHERE

ORDER BY

OPTION ({0})
if 
begin

return
end

create table )
[{0}] {1} NULL'[{0}] {1}({2}) NULL*drop table nvarcharvarcharsysnamenchar	charntext	textint
bigintbit	long	realfloatdatetimedatetime2	datedatetimeoffset	timetimespantinyintsmallint!uniqueidentifiernumericdecimal
binaryimagevarbinarysql_variantSystem.Int64System.BooleanSystem.DoubleSystem.DateTime+System.DateTimeOffsetSystem.TimeSpanSystem.ByteSystem.Int16System.GuidSystem.DecimalSystem.Byte[]System.ObjectN'

Linux\/path1path2{0}/{1}s1min_majorcloud_min_major+datawarehouse_enabledcloud_max_majorcloud_min_minorcloud_max_minorcloud_min_buildcloud_max_buildmax_majormin_minormax_minormin_buildmax_buildversionEnumObjectunionsettingspropertiespropertyinclude	filealiasfor#ro_after_creation	nameread_only
access	readCreateDatereport_typeGMicrosoft.SqlServer.Management.Smo.report_type2expensive1read_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_orderbydatabasequery	hint: 3ObjectNotSupportedOnSqlDw+InvalidAttributeValue7NullVersionOnLoadingCfgFile+EnumObjectTagNotFound+InvalidConnectionType%OnlyPathOrFullName)FileNameMustHavePath7DatabaseNameMustBeSpecifiedUnknownOperatorTooManyDbLevels1InvalidConfigurationFileNotDbObjectNotSingleDb-NoClassNamePostProcessSqlServer90NameSqlServer80Name)SmoSQLCLRUnAvailableExecuting-WaitingForWorkerThreadBetweenRetries	IdleSuspended-WaitingForStepToFinish5PerformingCompletionActionUnknown
ctNonectPartial
rmFullrmBulkLoggedrmSimple
msNonemsSuspendedmsDisconnectedmsSynchronizing#msPendingFailovermsSynchronized+agshNoneSynchronizing5agshPartiallySynchronizing)agshAllSynchronizing'agshAllSynchronized'arosPendingFailoverarosPendingarosOnlinearosOfflinearosFailed%arosFailedNoQuorumarrhInProgressarrhOnline)arshNotSynchronizing#arshSynchronizing!arshSynchronized!arrUninitializedarrResolvingarrSecondaryarrPrimary!arcsDisconnectedarcsConnected/hmsPendingCommunicationhmsRunninghmsFailedcqtNodeMajority-cqtNodeAndDiskMajority7cqtNodeAndFileshareMajoritycqtDiskOnly!cqtNotApplicablecqtCloudWitness+cqsUnknownQuorumStatecqsNormalQuorumcqsForcedQuorum!cqsNotApplicablecmtNodecmtDiskWitness'cmtFileshareWitnesscmtCloudWitnesscmsOffline%cmsPartiallyOnlinecmsOnlinecmsUnknown9replicaReadModeNoConnectionsQreplicaReadModeReadIntentConnectionsOnly;replicaReadModeAllConnections1cmprReadWriteConnections%cmprAllConnections#cmsrNoConnections;cmsrReadIntentConnectionsOnly%cmsrAllConnections)seedingModeAutomatic#seedingModeManual+aramSynchronousCommit-aramAsynchronousCommit+aramConfigurationOnlyarfmAutomaticarfmManualarfmExternalarjsNotJoined9arjsJoinedStandaloneInstanceCarjsJoinedFailoverClusterInstance)adssNotSynchronizing#adssSynchronizing!adssSynchronizedadssReverting!adssInitializing'drsrSuspendFromUser-drsrSuspendFromPartner'drsrSuspendFromRedo)drsrSuspendFromApply-drsrSuspendFromCapture-drsrSuspendFromRestart'drsrSuspendFromUndo#drsrNotApplicableagabpPrimary%agabpSecondaryOnlyagabpSecondaryagabpNone!agfcOnServerDown1agfcOnServerUnresponsive5agfcOnCriticalServerErrors5agfcOnModerateServerErrorsEagfcOnAnyQualifiedFailureConditionaglipOfflineaglipOnline%aglipOnlinePendingagliFailureagliUnknownagctExternalagctNoneagctWsfc!fgtRowsFileGroup5fgtFileStreamDataFileGroup?fgtMemoryOptimizedDataFileGroup7securityPredicateTypeFilter5securityPredicateTypeBlock;securityPredicateOperationAllKsecurityPredicateOperationAfterInsertKsecurityPredicateOperationAfterUpdateMsecurityPredicateOperationBeforeUpdateMsecurityPredicateOperationBeforeDeleteClusteredNonClusteredPrimaryXmlSecondaryXmlSpatial/NonClusteredColumnStore!NonClusteredHashSelectiveXml+SecondarySelectiveXml)ClusteredColumnStore	HeapTransactSqlActiveScriptingCmdExecAnalysisCommandAnalysisQuery!ReplDistributionReplMergeReplQueueReaderReplSnapshotReplLogReader	SSISPowerShellCdbCatalogCollationDatabaseDefault7dbCatalogCollationContained]dbCatalogCollationSQL_Latin1_General_CP1_CI_ASUnknownDestFileDestSecurityLogDest%ApplicationLogDestUrlDest'ExternalMonitorDest/OnFailureActionContinue/OnFailureActionShutdown'OnFailureActionFailOffOnReadOnlyReadWriteErrorAll	Auto	None
Custom'IncorrectVersionTag9FailedToLoadResFileFromPaths?FailedToLoadResFileFromAssembly7UnsupportedTypeDepDiscovery9QueryNotSupportedPostProcess)FailedToLoadAssembly#FailedToCreateUrn'PropMustBeSpecified)InvalidUrnForDepends-CouldNotInstantiateObjNotDerivedFromUnknownTypeMissingSectionInvalidVersion!InvalidSqlServerGDatabaseNameMustBeSpecifiedinTheUrnACouldNotGetInfoFromDependencyRow+UnknownPermissionType+UnknownPermissionCode�:E��J�{g���8        �� �!�	��   im i 	imim  u ���t��]���ty �� � 	 ����
u��  �� �E��	 ���� ��  �1 �� �I �� �} �}  �� �� yu}y�� �Q �U �� 
��i�|m
i�|m  �Y�����]	��i��������m�e �m  i��m����q �� ���� �� ��������	������	 ��� ���)�-�u���y	���� 
 ����	����  }��
��

���� �� ��  �� �� �� ��
��  �� �	�����t� �� ���� ���� �� �� �������� �� �� � �  �� �� �
 ����
 � �� }���
 ������ �� �� ����a��	������}}������i��m�  ���� ����
  ��
	�����M 	im ��	�-m �- 


	  
���5�� ���5�5����
��
��
��	�
�	i�	�9m �� �9 �  	
��
�


��  
������i��m		����}}��������
	��


	����}u�} �� ��yu}����}����}�]}��}i��m
	�E�E��	�
�I�� �I
 	]}���M
 ��]�Qi��m �� �Q ��
��
�������d�l �I	i�`m0���u]
�I���y}�}�}�t���t�� �} �} ��  �I �	 �� ���I  �I
�e�I} �I,�m�m��i���l���l��m���d���� �� �m	�d��
�l���Ii��m �I
i���dm�`u�`�}���`�}�� �� ]���5
�������� 
 �M���|i�|m ����7����������������������������i�-m�� �� �� ��
]]�-m	i��m��������i�|mim�|���� �� � � ��i�|��m�t �� �Y �Y��
����m �����t��������m�� �5 �5]�p�
�������� }�!	i�|mim����	 ����i���-��m �-m
���� ��]�-m�� �� �%��  ���i��m u�� �I�I�I�ti��m y�������|��
��im] �Iim
��	i��m�I�I����m�I a ���I�I����������	 ������ �� ������m ��
�Ii��m	 ������������ ��	����
 ����
����
 �������������		�����I]�I���1���� ����E�E�E��] �=�� �A���
�����Ii��m
�����Ii��m   �	����� ���        �I   	 �
 �	 �
 ���� �� ��!�! �� �� �� �% �)�-��  ���1��������	 ���?_�
:��]̀�̑#���ꤥ��$��$RSA1''6�n_�����1�:�fl/��y�����2}/��R4H�<=\]��Ǽ��(k,Q�\�$+�Au2����I���RmRo����{���l�؂O���1
�ˢ�#V{-��P���b�왹J�|};(���8(?<word>[\w_@#][\w\d_$$@#]*),(?<number_proc>;[\d]+)c	
�����@DRGWd<AFPZnx��� �>���e,-il./?
�(!"#$%&')*+,-./0123����456789:;=BCEHIJKLMNO(--[^
]*)(//[^
]*)��(/\*(?>/\*(?<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, ]*\))2RemoteDataArchiveEndpoint$RemoteDatabaseName:RemoteDataArchiveLinkedServerVRemoteDataArchiveUseFederatedServiceAccount6RemoteDataArchiveCredentialRowCount|Software\Microsoft\Microsoft SQL Server\SMO\QueryIsolation\{0}PrefixPostfixHSET TRANSACTION ISOLATION LEVEL {0};min_majormax_majormin_minormax_minormin_buildmax_buildcloud_min_majorcloud_max_majorcloud_min_minorcloud_max_minorcloud_min_buildcloud_max_build*datawarehouse_enabledQSTUVXY[\]^_`abfghjkmopqrstuvwyz{|}~�������������������������������������������������������������������������������&IncorrectVersionTag2ObjectNotSupportedOnSqlDw*InvalidAttributeValue6NullVersionOnLoadingCfgFile*EnumObjectTagNotFound*InvalidConnectionType$OnlyPathOrFullName(FileNameMustHavePath6DatabaseNameMustBeSpecified8FailedToLoadResFileFromPaths>FailedToLoadResFileFromAssembly6UnsupportedTypeDepDiscovery8QueryNotSupportedPostProcess(FailedToLoadAssembly"FailedToCreateUrnUnknownOperator&PropMustBeSpecified(InvalidUrnForDependsTooManyDbLevels,CouldNotInstantiateObjNotDerivedFromUnknownType0InvalidConfigurationFileMissingSectionNotDbObjectNotSingleDb,NoClassNamePostProcessInvalidVersion InvalidSqlServerFDatabaseNameMustBeSpecifiedinTheUrn@CouldNotGetInfoFromDependencyRowSqlServer90NameSqlServer80Name(SmoSQLCLRUnAvailable*UnknownPermissionType*UnknownPermissionCodeExecuting,WaitingForWorkerThreadBetweenRetriesIdleSuspended,WaitingForStepToFinish4PerformingCompletionActionUnknownctNonectPartialrmFullrmBulkLoggedrmSimplemsNonemsSuspendedmsDisconnectedmsSynchronizing"msPendingFailovermsSynchronized*agshNoneSynchronizing4agshPartiallySynchronizing(agshAllSynchronizing&agshAllSynchronized&arosPendingFailoverarosPendingarosOnlinearosOfflinearosFailed$arosFailedNoQuorumarrhInProgressarrhOnline(arshNotSynchronizing"arshSynchronizing arshSynchronized arrUninitializedarrResolvingarrSecondaryarrPrimary arcsDisconnectedarcsConnected.hmsPendingCommunicationhmsRunninghmsFailedcqtNodeMajority,cqtNodeAndDiskMajority6cqtNodeAndFileshareMajoritycqtDiskOnly cqtNotApplicablecqtCloudWitness*cqsUnknownQuorumStatecqsNormalQuorumcqsForcedQuorum cqsNotApplicablecmtNodecmtDiskWitness&cmtFileshareWitnesscmtCloudWitnesscmsOffline$cmsPartiallyOnlinecmsOnlinecmsUnknown8replicaReadModeNoConnectionsPreplicaReadModeReadIntentConnectionsOnly:replicaReadModeAllConnections0cmprReadWriteConnections$cmprAllConnections"cmsrNoConnections:cmsrReadIntentConnectionsOnly$cmsrAllConnections(seedingModeAutomatic"seedingModeManual*aramSynchronousCommit,aramAsynchronousCommit*aramConfigurationOnlyarfmAutomaticarfmManualarfmExternalarjsNotJoined8arjsJoinedStandaloneInstanceBarjsJoinedFailoverClusterInstance(adssNotSynchronizing"adssSynchronizing adssSynchronizedadssReverting adssInitializing&drsrSuspendFromUser,drsrSuspendFromPartner&drsrSuspendFromRedo(drsrSuspendFromApply,drsrSuspendFromCapture,drsrSuspendFromRestart&drsrSuspendFromUndo"drsrNotApplicableagabpPrimary$agabpSecondaryOnlyagabpSecondaryagabpNone agfcOnServerDown0agfcOnServerUnresponsive4agfcOnCriticalServerErrors4agfcOnModerateServerErrorsDagfcOnAnyQualifiedFailureConditionaglipOfflineaglipOnline$aglipOnlinePendingagliFailureagliUnknownagctExternalagctNoneagctWsfc fgtRowsFileGroup4fgtFileStreamDataFileGroup>fgtMemoryOptimizedDataFileGroup6securityPredicateTypeFilter4securityPredicateTypeBlock:securityPredicateOperationAllJsecurityPredicateOperationAfterInsertJsecurityPredicateOperationAfterUpdateLsecurityPredicateOperationBeforeUpdateLsecurityPredicateOperationBeforeDeleteClusteredNonClusteredPrimaryXmlSecondaryXmlSpatial.NonClusteredColumnStore NonClusteredHashSelectiveXml*SecondarySelectiveXml(ClusteredColumnStoreHeapTransactSqlActiveScriptingCmdExecAnalysisCommandAnalysisQuery ReplDistributionReplMergeReplQueueReaderReplSnapshotReplLogReaderSSISPowerShellBdbCatalogCollationDatabaseDefault6dbCatalogCollationContained\dbCatalogCollationSQL_Latin1_General_CP1_CI_ASUnknownDestFileDestSecurityLogDest$ApplicationLogDestUrlDest&ExternalMonitorDest.OnFailureActionContinue.OnFailureActionShutdown&OnFailureActionFailOffOnReadOnlyReadWrite
ErrorAllAutoNoneCustom��]a��}���l�h����$048<@DHLPTX\`dhlptx|������������������������������������������������������������������������� �$�(�,�0�4�8�<�@�D�H�L�P�T�X�\�`�d�h�l�p�t�x�|������������������������������������������������������������������������� �$�(�,�0�4�8�<�@�D�H�L�P�T�X�\�`�d�h�l�p�t�x�|���������������������u�����1�M�e�h�����M�������D���t�I���������������������������� �$�(�,�0�4�8�<�@�D�H�L�P�T�X�\i���5�� ] ] �� �� �� a
 ���� 
 ���� ��  yy }�t
 ������	 ���h �� a�� a  	 

	 

 �� �� �� 
 ��  ��  
��  	  �� �� �� �� ��  �	 �
 } ��a}}
}]��
]��
]���h}]	}] }]������ �� ��] �1       �� 
  ��
  �L    �� ��   	  �E	�E  �� �� �� �� �� ��������  	  �e�e��	 �m�q  �e�` �m}	 �d��	 �l���� �m �}�d	 �}��	 �}��
 ���� ��  �� ��	 ����	�M	�� �� �� �������� �������� 
����]]������
 ����]]
 ����]] �� �� �D �D   ��	 ���� �� �� �� ��a �t	 �t�� ��]��	 �� �� �� �� �t���I �� ��	 ���� ������ �� ���������� �I �I
�I �� �� �I��
 ���� ��
 y�������	]]�������� �� �� �� �� �� ��
 ������ �� �� �� �� ��  � �� �� �� �� �� �� �� �� �� �� �� �� �� �� �������������� �� �� �� ���������� �� �������������� �� �� �� ���������� � ��	����
���������
����������
��������������� ������ �� ��
 ����	����	 �������������	 ���� ����
������������ �� �� �� �� ������ ��	 �� ��� ��� ��� �����  ���� �������������!�����!����	����	�%�����)�-�����������������1����
������	 i(]((��(a((((��(((��((��(u(
��(��(}	�M	��(��(��(�D((��(��(�I(��(��(��(��(��(��(��(��((�(��(��(��(��(��(��(��(��(��(��(��(��(��(��(����(����(����TWrapNonExceptionThrows
en-US5.NETCoreApp,Version=v3.1TFrameworkDisplayNameMicrosoft CorporationRelease3.© Microsoft Corporation. All rights reserved.����
  The SQL Server Management Objects (SMO) Framework is a set of objects designed for programmatic management of Microsoft SQL Server and Microsoft Azure SQL Database.
    #16.200.46041.41 (SMO-master-A)16.200.46041.41 Microsoft.SqlServer.SqlEnum�i�cMicrosoft.SqlServer.Dmf, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�l�fMicrosoft.SqlServer.DTEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�n�hMicrosoft.SqlServer.ReplEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�q�kMicrosoft.SqlServer.Replication, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�w�qMicrosoft.SqlServer.ServiceBrokerEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�i�cMicrosoft.SqlServer.Smo, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�q�kMicrosoft.SqlServer.SmoExtended, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�m�gMicrosoft.SqlServer.SqlEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�v�pMicrosoft.SqlServer.SqlWmiManagement, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�n�hMicrosoft.SqlServer.Test.SMO, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�w�qMicrosoft.SqlServer.Test.SmoUnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8�m�gMicrosoft.SqlServer.WmiEnum, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8CLUSTERED INDEX	Clustered
INDEXNonClusteredPRIMARY XML INDEX
PrimaryXml	XML INDEXSecondaryXml
SPATIAL INDEXSpatial#NONCLUSTERED COLUMNSTORE INDEXNonClusteredColumnStoreNONCLUSTERED HASH INDEXNonClusteredHashSELECTIVE XML INDEXSelectiveXmlSecondarySelectiveXml CLUSTERED COLUMNSTORE INDEXClusteredColumnStore	HEAP	HeapOFFONHADOOP
RDBMSSHARD_MAP_MANAGERBLOB_STORAGE
DELIMITEDTEXTRCFILEORCPARQUET
VALUE
PERCENTAGESHARDED
REPLICATEDROUND_ROBIN	HASH	REPLICATE
rmSimplermBulkLoggedrmFull	LEFT
RIGHT	NONE
BLOCKERS	SELFmsNonemsSuspendedmsDisconnectedmsSynchronizingmsPendingFailovermsSynchronizedctNone	ctPartial
FileDest	FILESecurityLogDestSECURITY_LOGApplicationLogDestAPPLICATION_LOGUrlDestURLExternalMonitorDestEXTERNAL_MONITORUnknownDestUNKNOWNOnFailureActionContinue
CONTINUEOnFailureActionShutdown
SHUTDOWNOnFailureActionFailFAIL_OPERATION	Undefined	NoneLowLOWMediumMEDIUM	High	HIGH
Critical
CRITICAL+&APPLICATION_ROLE_CHANGE_PASSWORD_GROUPAUDIT_CHANGE_GROUPBACKUP_RESTORE_GROUPBATCH_COMPLETED_GROUPBATCH_STARTED_GROUPBROKER_LOGIN_GROUPDATABASE_CHANGE_GROUPDATABASE_LOGOUT_GROUP#DATABASE_MIRRORING_LOGIN_GROUP!DATABASE_OBJECT_ACCESS_GROUP!DATABASE_OBJECT_CHANGE_GROUP+&DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP,'DATABASE_OBJECT_PERMISSION_CHANGE_GROUPDATABASE_OPERATION_GROUP$DATABASE_OWNERSHIP_CHANGE_GROUP% DATABASE_PERMISSION_CHANGE_GROUP$DATABASE_PRINCIPAL_CHANGE_GROUP+&DATABASE_PRINCIPAL_IMPERSONATION_GROUP&!DATABASE_ROLE_MEMBER_CHANGE_GROUP
DBCC_GROUPDELETEEXECUTE)$FAILED_DATABASE_AUTHENTICATION_GROUPFAILED_LOGIN_GROUPFULLTEXT_GROUP$GLOBAL_TRANSACTIONS_LOGIN_GROUPINSERT LOGIN_CHANGE_PASSWORD_GROUPLOGOUT_GROUPRECEIVE
REFERENCESSCHEMA_OBJECT_ACCESS_GROUPSCHEMA_OBJECT_CHANGE_GROUP)$SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP*%SCHEMA_OBJECT_PERMISSION_CHANGE_GROUPSELECTSERVER_OBJECT_CHANGE_GROUP)$SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP*%SERVER_OBJECT_PERMISSION_CHANGE_GROUPSERVER_OPERATION_GROUP#SERVER_PERMISSION_CHANGE_GROUP"SERVER_PRINCIPAL_CHANGE_GROUP)$SERVER_PRINCIPAL_IMPERSONATION_GROUP$SERVER_ROLE_MEMBER_CHANGE_GROUPSERVER_STATE_CHANGE_GROUP-(SUCCESSFUL_DATABASE_AUTHENTICATION_GROUPSUCCESSFUL_LOGIN_GROUPTRACE_CHANGE_GROUPUPDATEUSER_CHANGE_PASSWORD_GROUPUSER_DEFINED_AUDIT_GROUPTRANSACTION_GROUPagshNoneSynchronizingagshPartiallySynchronizingagshAllSynchronizingagshAllSynchronizedUnknownhmsPendingCommunication
hmsRunning	hmsFailedarosPendingFailoverarosPending
arosOnlinearosOffline
arosFailedarosFailedNoQuorumarrhInProgress
arrhOnlinearshNotSynchronizingarshSynchronizingarshSynchronizedarrResolving
arrPrimaryarrSecondaryarcsDisconnected
arcsConnectedcmprAllConnectionsALLcmprReadWriteConnections
READ_WRITEcmsrNoConnectionsNO"cmsrReadIntentConnectionsOnly	READ_ONLYcmsrAllConnections	AUTOMATICseedingModeAutomaticMANUALseedingModeManual
arjsNotJoined!arjsJoinedStandaloneInstance&!arjsJoinedFailoverClusterInstanceaglipOfflineaglipOnlineaglipOnlinePendingagliFailureagliUnknownASYNCHRONOUS_COMMITaramAsynchronousCommitSYNCHRONOUS_COMMITaramSynchronousCommitCONFIGURATION_ONLYaramConfigurationOnly
arfmAutomatic
arfmManualarfmExternal
EXTERNALadssNotSynchronizingadssSynchronizingadssSynchronized
adssRevertingadssInitializingdrsrSuspendFromUserdrsrSuspendFromPartnerdrsrSuspendFromRedodrsrSuspendFromApplydrsrSuspendFromCapturedrsrSuspendFromRestartdrsrSuspendFromUndodrsrNotApplicablecqtNodeMajoritycqtNodeAndDiskMajority cqtNodeAndFileshareMajoritycqtDiskOnlycqtNotApplicablecqtCloudWitnesscqsUnknownQuorumStatecqsNormalQuorumcqsForcedQuorumcqsNotApplicablecmtNodecmtDiskWitnesscmtFileshareWitnesscmtCloudWitness
cmsOffline	cmsOnlinecmsPartiallyOnline
cmsUnknownagabpPrimaryagabpSecondaryOnlyagabpSecondary	agabpNoneagfcOnServerDownagfcOnServerUnresponsiveagfcOnCriticalServerErrorsagfcOnModerateServerErrors'"agfcOnAnyQualifiedFailureCondition
agctWsfc
agctNoneagctExternalfgtRowsFileGroupfgtFileStreamDataFileGroup$fgtMemoryOptimizedDataFileGroup securityPredicateTypeFilterFILTERsecurityPredicateTypeBlock
BLOCK"securityPredicateOperationAll*%securityPredicateOperationAfterInsertAFTER INSERT*%securityPredicateOperationAfterUpdateAFTER UPDATE+&securityPredicateOperationBeforeUpdate
BEFORE UPDATE+&securityPredicateOperationBeforeDelete
BEFORE DELETEdbScopedConfigurationOffdbScopedConfigurationOn!dbScopedConfigurationPrimaryPRIMARY'"ResumableOperationStateTypeRunningRUNNING&!ResumableOperationStateTypePausedPAUSED$ResumableOperationStateTypeNone	UNDEFINED
INFINITE
InfiniteDAYDay	WEEK	Week
MONTH
Month	YEAR	Year&!dbCatalogCollationDatabaseDefaultDATABASE_DEFAULT dbCatalogCollationContained&!Latin1_General_100_CI_AS_KS_WS_SC3.dbCatalogCollationSQL_Latin1_General_CP1_CI_AS!SQL_Latin1_General_CP1_CI_ASBELOW_NORMALNORMALABOVE_NORMALAL
ALTER	ALAKALTER ANY ASYMMETRIC KEY	ALARALTER ANY APPLICATION ROLE	ALASALTER ANY ASSEMBLY	ALCFALTER ANY CERTIFICATE	ALDSALTER ANY DATASPACE	ALED*%ALTER ANY DATABASE EVENT NOTIFICATION	ALFTALTER ANY FULLTEXT CATALOG	ALMTALTER ANY MESSAGE TYPE	ALRLALTER ANY ROLE	ALRTALTER ANY ROUTE	ALSB% ALTER ANY REMOTE SERVICE BINDING	ALSCALTER ANY CONTRACT	ALSKALTER ANY SYMMETRIC KEY	ALSMALTER ANY SCHEMA	ALSVALTER ANY SERVICE	ALTG#ALTER ANY DATABASE DDL TRIGGER	ALUSALTER ANY USER	AUTHAUTHENTICATE	BADBBACKUP DATABASE	BALO
BACKUP LOGCLCONTROLCOCONNECT	CORPCONNECT REPLICATIONCP
CHECKPOINT	CRAGCREATE AGGREGATE	CRAKCREATE ASYMMETRIC KEY	CRASCREATE ASSEMBLY	CRCFCREATE CERTIFICATE	CRDBCREATE DATABASE	CRDFCREATE DEFAULT	CRED+&CREATE DATABASE DDL EVENT NOTIFICATION	CRFNCREATE FUNCTION	CRFTCREATE FULLTEXT CATALOG	CRMTCREATE MESSAGE TYPE	CRPRCREATE PROCEDURE	CRQUCREATE QUEUE	CRRLCREATE ROLE	CRRTCREATE ROUTE	CRRUCREATE RULE	CRSB"CREATE REMOTE SERVICE BINDING	CRSCCREATE CONTRACT	CRSKCREATE SYMMETRIC KEY	CRSM
CREATE SCHEMA	CRSNCREATE SYNONYM	CRSVCREATE SERVICE	CRTBCREATE TABLE	CRTYCREATE TYPE	CRVWCREATE VIEW	CRXS!CREATE XML SCHEMA COLLECTIONDLEXINRFSL	SPLN
SHOWPLAN	SUQN"SUBSCRIBE QUERY NOTIFICATIONSTOTAKE OWNERSHIPUPVWVIEW DEFINITION	VWDSVIEW DATABASE STATE	ALDAALTER ANY DATABASE AUDIT	ALSPALTER ANY SECURITY POLICY	AEDS#ALTER ANY EXTERNAL DATA SOURCE	AEFF#ALTER ANY EXTERNAL FILE FORMAT	AAMKALTER ANY MASK	UMSKUNMASK	VWCK.)VIEW ANY COLUMN ENCRYPTION KEY DEFINITION	VWCM*%VIEW ANY COLUMN MASTER KEY DEFINITION	AADS% ALTER ANY DATABASE EVENT SESSION	ALCK$ALTER ANY COLUMN ENCRYPTION KEY	ALCM ALTER ANY COLUMN MASTER KEY	ALDC,'ALTER ANY DATABASE SCOPED CONFIGURATION	ALELALTER ANY EXTERNAL LIBRARY	DABO(#ADMINISTER DATABASE BULK OPERATIONS	EAES EXECUTE ANY EXTERNAL SCRIPT	KIDCKILL DATABASE CONNECTION	CRELCREATE EXTERNAL LIBRARY	AASC)$ALTER ANY SENSITIVITY CLASSIFICATION	VASC(#VIEW ANY SENSITIVITY CLASSIFICATIONIMIMPERSONATERCSN	SEND	VWCTVIEW CHANGE TRACKING	CRSOCREATE SEQUENCE	ADBOADMINISTER BULK OPERATIONS	ALCDALTER ANY CREDENTIAL	ALCOALTER ANY CONNECTION	ALDBALTER ANY DATABASE	ALES!ALTER ANY EVENT NOTIFICATION	ALHEALTER ANY ENDPOINT	ALLGALTER ANY LOGIN	ALLSALTER ANY LINKED SERVER	ALRSALTER RESOURCES	ALSSALTER SERVER STATE	ALSTALTER SETTINGS	ALTRALTER TRACEAUTHENTICATE SERVERCONTROL SERVER	COSQCONNECT SQLCREATE ANY DATABASE	CRDE"CREATE DDL EVENT NOTIFICATION	CRHECREATE ENDPOINT	CRTE$CREATE TRACE EVENT NOTIFICATION	SHDN	VWADVIEW ANY DEFINITION	VWDBVIEW ANY DATABASE	VWSSVIEW SERVER STATEXAEXTERNAL ACCESS ASSEMBLYXUUNSAFE ASSEMBLY	ALAAALTER ANY SERVER AUDIT	ALSRALTER ANY SERVER ROLE	CRSRCREATE SERVER ROLE	ALAG!ALTER ANY AVAILABILITY GROUP	CRACCREATE AVAILABILITY GROUP	AAESALTER ANY EVENT SESSIONSUSSELECT ALL USER SECURABLES	CADBCONNECT ANY DATABASEIALIMPERSONATE ANY LOGINTransactSql	TSQLActiveScriptingCmdExecReplSnapshot
Snapshot
ReplLogReader	LogReaderReplDistributionDistribution	ReplMerge
MergeReplQueueReaderQueueReader
AnalysisQuery
ANALYSISQUERYAnalysisCommandANALYSISCOMMAND	SSIS
PowerShell	ExecutingWaitingForWorkerThreadBetweenRetries	Idle	SuspendedWaitingForStepToFinishPerformingCompletionAction	Item:5Microsoft.SqlServer.Management.Smo.IndexTypeConverterQLMicrosoft.SqlServer.Management.Smo.ExternalDataSourcePushdownOptionConverterGBMicrosoft.SqlServer.Management.Smo.ExternalDataSourceTypeConverterGBMicrosoft.SqlServer.Management.Smo.ExternalFileFormatTypeConverterHCMicrosoft.SqlServer.Management.Smo.ExternalTableRejectTypeConverterJEMicrosoft.SqlServer.Management.Smo.ExternalTableDistributionConverterD?Microsoft.SqlServer.Management.Smo.DwTableDistributionConverterC>Microsoft.SqlServer.Management.Smo.DwViewDistributionConverter>9Microsoft.SqlServer.Management.Smo.RecoveryModelConverter:5Microsoft.SqlServer.Management.Smo.RangeTypeConverter?:Microsoft.SqlServer.Management.Smo.AbortAfterWaitConverter@;Microsoft.SqlServer.Management.Smo.MirroringStatusConverter@;Microsoft.SqlServer.Management.Smo.ContainmentTypeConverterE@Microsoft.SqlServer.Management.Smo.AuditDestinationTypeConverterE@Microsoft.SqlServer.Management.Smo.AuditOnFailureActionConverter@;Microsoft.SqlServer.Management.Smo.SensitivityRankConverter@;Microsoft.SqlServer.Management.Smo.AuditActionTypeConverter\WMicrosoft.SqlServer.Management.Smo.AvailabilityGroupRollupSynchronizationStateConverterTOMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaOperationalStateConverterWRMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaRollupRecoveryStateConverter^YMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaRollupSynchronizationStateConverterHCMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaRoleConverterSNMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaConnectionStateConverter_ZMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaConnectionModeInPrimaryRoleConvertera\Microsoft.SqlServer.Management.Smo.AvailabilityReplicaConnectionModeInSecondaryRoleConverterOJMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaSeedingModeConverterMHMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaJoinStateConverterQLMicrosoft.SqlServer.Management.Smo.AvailabilityGroupListenerIPStateConverterTOMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaAvailabilityModeConverterPKMicrosoft.SqlServer.Management.Smo.AvailabilityReplicaFailoverModeConverterYTMicrosoft.SqlServer.Management.Smo.AvailabilityDatabaseSynchronizationStateConverterMHMicrosoft.SqlServer.Management.Smo.DatabaseReplicaSuspendReasonConverterB=Microsoft.SqlServer.Management.Smo.ClusterQuorumTypeConverterC>Microsoft.SqlServer.Management.Smo.ClusterQuorumStateConverterB=Microsoft.SqlServer.Management.Smo.ClusterMemberTypeConverterC>Microsoft.SqlServer.Management.Smo.ClusterMemberStateConverter[VMicrosoft.SqlServer.Management.Smo.AvailabilityGroupAutomatedBackupPreferenceConverterWRMicrosoft.SqlServer.Management.Smo.AvailabilityGroupFailureConditionLevelConverterMHMicrosoft.SqlServer.Management.Smo.AvailabilityGroupClusterTypeConverter>9Microsoft.SqlServer.Management.Smo.FileGroupTypeConverterFAMicrosoft.SqlServer.Management.Smo.SecurityPredicateTypeConverterKFMicrosoft.SqlServer.Management.Smo.SecurityPredicateOperationConverterQLMicrosoft.SqlServer.Management.Smo.DatabaseScopedConfigurationOnOffConverterLGMicrosoft.SqlServer.Management.Smo.ResumableOperationStateTypeConverterWRMicrosoft.SqlServer.Management.Smo.TemporalHistoryRetentionPeriodUnitTypeConverterE@Microsoft.SqlServer.Management.Smo.CatalogCollationTypeConverterMHMicrosoft.SqlServer.Management.Smo.WorkloadManagementImportanceConverter&�T	InheritedT
AllowMultipleC>Microsoft.SqlServer.Management.Smo.AgentSubSystemTypeConverterC>Microsoft.SqlServer.Management.Smo.JobExecutionStatusConverter~7����lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet�PADPADP�uQ�����a�k����#�%�*��Fb�É�C���Wl�����A9�����T��h3玽���ta�Оs�I
��kS��d�DM����n���l
d�Z���V���Ǭ��Sy�����p��4���T�\����ì��H
��j��?��!�L�~������G���/{������Y���Խ�G3�y萾*�ſ��ѿbz���#	��r�#o�@�^ȕ�\Ȍ>��⯯ʀ?e̍���8�1�L���ѣ�9��TӟX��P)��E���Fa�e�)�.ј�@��+���;��,��B�*�.�C�`��4mD�a��(�񼌧��|�y�
��#^|�w�t�:�>�"�v�DsY>�c�(}X�͉�X
�/���O�˒	�@s
Ka�
��
d���܇������l
���3h�T�.��L{Fɯ��yM����۰��g���(��`�#�\$��a$�A&T�N(�:�)�?k+1&,4�,wS�.u��.�/�o3�N3kj:3�c�3)��4�ޚ5r�a7�=;f�>2/{?��?'�uBe|�C�;aDфZH���Hҭ�Je��L�\�O�%�Ojc0VQ��X͟�XPp�ZN��[&\Xb�\�'`�[�`�%Qb�b/:"e��f3��g!�g���hP��h2%i?F%i^t%i�X�j�Qgk��5m�T�m��Wn���n�{�o�Sbp)�ip�@�p+��q-3�vm6�x8y·jy�<�{��{�<~|�`�|oт|��|K�|�h�|)��������z�	>:O4�p� ���i��	��
��G
��j

_,�	-I7|t����c=�
4
�NO5\�
}j	��7mV�ap�!�B�0
�
^���&orl
W
X�MS��������#�Zk���.��
���jo��${Jxv��Bj-.��
���Q+�M	��;����-���<owXB����
��T)	����	��:
���
��Q�����	)�%ActiveScriptingAllAnalysisCommandAnalysisQuery;$ApplicationLogDest_AutopBetweenRetriesvClustered�(ClusteredColumnStore�CmdExec�@CouldNotGetInfoFromDependencyRow�,CouldNotInstantiateObj�Custom6DatabaseNameMustBeSpecified"FDatabaseNameMustBeSpecifiedinTheUrnD*EnumObjectTagNotFoundy
Error�Executing�&ExternalMonitorDest�"FailedToCreateUrn�(FailedToLoadAssembly�>FailedToLoadResFileFromAssembly
8FailedToLoadResFileFromPaths�FileDestD(FileNameMustHavePathJHeapuIdle{&IncorrectVersionTag�*InvalidAttributeValue�0InvalidConfigurationFileB*InvalidConnectionTyped InvalidSqlServer�(InvalidUrnForDepends�InvalidVersion�MissingSection�,NoClassNamePostProcess/NonClusteredW.NonClusteredColumnStoref NonClusteredHash�None�NotDbObject�NotDerivedFrom�NotSingleDb�6NullVersionOnLoadingCfgFile�2ObjectNotSupportedOnSqlDw9OffsOnx.OnFailureActionContinue|&OnFailureActionFail�.OnFailureActionShutdown�$OnlyPathOrFullName�4PerformingCompletionAction�PowerShellPrimaryXml
&PropMustBeSpecified8QueryNotSupportedPostProcess9ReadOnlysReadWrite~ ReplDistribution�ReplLogReader�ReplMerge�ReplQueueReader�ReplSnapshot�SSIS
*SecondarySelectiveXml3SecondaryXmlLSecurityLogDest[SelectiveXmli(SmoSQLCLRUnAvailablexSpatial)	SqlServer80Name2	SqlServer90NameC	SuspendedT	TooManyDbLevels_	TransactSqlz	Unknown�	UnknownDest�	UnknownOperator�	*UnknownPermissionCode�	*UnknownPermissionType�	UnknownType�	6UnsupportedTypeDepDiscovery
UrlDests
,WaitingForStepToFinishx
,WaitingForWorkerThread�
 adssInitializing�
(adssNotSynchronizing�
adssReverting�
 adssSynchronized�
"adssSynchronizing�
agabpNone�
agabpPrimary�
agabpSecondary$agabpSecondaryOnlyagctExternal"agctNone,agctWsfc2DagfcOnAnyQualifiedFailureConditionS4agfcOnCriticalServerErrorsw4agfcOnModerateServerErrors� agfcOnServerDown�0agfcOnServerUnresponsive�agliFailure�agliUnknown�aglipOffline�aglipOnline�$aglipOnlinePending�&agshAllSynchronized(agshAllSynchronizing*agshNoneSynchronizing-4agshPartiallySynchronizingA,aramAsynchronousCommitZ*aramConfigurationOnlyo*aramSynchronousCommit�arcsConnected� arcsDisconnected�arfmAutomatic�arfmExternal�arfmManual�BarjsJoinedFailoverClusterInstance�8arjsJoinedStandaloneInstance�arjsNotJoined
arosFailed"
$arosFailedNoQuorum*
arosOffline<
arosOnlineE
arosPendingM
&arosPendingFailoverV
arrPrimaryh
arrResolvingq
arrSecondary|
 arrUninitialized�
arrhInProgress�
arrhOnline�
(arshNotSynchronizing�
 arshSynchronized�
"arshSynchronizing�
$cmprAllConnections�
0cmprReadWriteConnections�
cmsOfflinecmsOnline$cmsPartiallyOnline!cmsUnknown3$cmsrAllConnections<"cmsrNoConnectionsA:cmsrReadIntentConnectionsOnlyEcmtCloudWitnessWcmtDiskWitnessf&cmtFileshareWitnesstcmtNode�cqsForcedQuorum�cqsNormalQuorum� cqsNotApplicable�*cqsUnknownQuorumState�cqtCloudWitness�cqtDiskOnly�,cqtNodeAndDiskMajority�6cqtNodeAndFileshareMajoritycqtNodeMajority  cqtNotApplicable/ctNone?ctPartialE6dbCatalogCollationContainedNBdbCatalogCollationDatabaseDefaultq\dbCatalogCollationSQL_Latin1_General_CP1_CI_AS�"drsrNotApplicable�(drsrSuspendFromApply�,drsrSuspendFromCapture�,drsrSuspendFromPartner�&drsrSuspendFromRedo�,drsrSuspendFromRestart&drsrSuspendFromUndo&drsrSuspendFromUser-4fgtFileStreamDataFileGroup@>fgtMemoryOptimizedDataFileGroupf fgtRowsFileGroup�hmsFailed�.hmsPendingCommunication�hmsRunning�msDisconnected�msNone�"msPendingFailover�msSuspended�msSynchronized
msSynchronizing:replicaReadModeAllConnections'8replicaReadModeNoConnections>PreplicaReadModeReadIntentConnectionsOnlyTrmBulkLoggedxrmFull�rmSimple�JsecurityPredicateOperationAfterInsert�JsecurityPredicateOperationAfterUpdate�:securityPredicateOperationAll�LsecurityPredicateOperationBeforeDelete�LsecurityPredicateOperationBeforeUpdate�4securityPredicateTypeBlock�6securityPredicateTypeFilter�(seedingModeAutomatic�"seedingModeManual�ActiveX ScriptAll$SQL Server Analysis Services Command"SQL Server Analysis Services QueryApplication LogAutoBetween retries	ClusteredClustered ColumnstoreOperating system (CmdExec)0Failed to retrieve dependency information ({0}).!could not instantiate object {0}.Custom Database name must be specified.3The database name must be specified in the urn: {0}%Enumeration object tag was not found.Error	ExecutingExternal Monitor)failed to create Urn for object code: {0}failed to load assembly {0}.�File '{0}' was not found in Assembly {1}.
The file might be missing in sources or misspelled in config.xml, or case sensitivity may not be preserved.�File '{0}' was not found. Search paths were:
{1}
The file might be missing in sources or misspelled in config.xml, or case sensitivity may not be preserved.File)A Path must be specified with a FileName.HeapNot runninguIncorrect version tag. You must specify either a min_major, cloud_min_major or datawarehouse_enabled attribute. 

{0}AValue '{0}' on attribute '{1}' was unable to be parsed correctly. 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.
Non-ClusteredNon-Clustered ColumnstoreNon-Clustered HashNoneobject 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.8This object is not supported on Datawarehouse databases.OffOnContinueFail operationShutdown SQL Server instance-Only Path or only FullName must be specified.Performing completion action
PowerShellPrimary XML{0} must be specified on {1}.8Cannot provide DataReader because of the properties: {0}	Read only
Read writeReplication Distributor"Replication Transaction-Log ReaderReplication MergeReplication Queue ReaderReplication Snapshot'SQL Server Integration Services PackageSecondary Selective XML
Secondary XMLSecurity Log
Selective XML�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.SpatialSQL Server 2000SQL Server 2005	Suspendedtoo many database levels.Transact-SQL script (T-SQL)UnknownUnknownUnknown operator.Undefined permission code {0}Unknown Permission type {0}Unknown type: {0}.e{0} is not supported in dependency discovery. Only objects of the following types are supported: {1}.URLWaiting for step to finishWaiting for worker threadInitializingNot Synchronizing	RevertingSynchronized
SynchronizingNonePrimary	SecondarySecondary OnlyEXTERNALNONEWindows Server Failover Cluster"On Any Qualified Failure ConditionOn Critical Server ErrorsOn Moderate Server ErrorsOn Server DownOn Server UnresponsiveFailureUnknownOfflineOnlineOnline PendingAll SynchronizedAll SynchronizingNone SynchronizingPartially SynchronizingAsynchronous commitConfiguration onlySynchronous commit	ConnectedDisconnected	AutomaticExternalManual+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
Cloud WitnessDisk WitnessFileshare WitnessNode
Forced Quorum
Normal QuorumNot ApplicableUnknown Quorum State
Cloud Witness	Disk OnlyNode and Disk MajorityNode and Fileshare Majority
Node MajorityNot ApplicableNonePartial!Latin1_General_100_CI_AS_KS_WS_SCDatabase DefaultSQL_Latin1_General_CP1_CI_ASNot ApplicableSuspend From ApplySuspend From CaptureSuspend From PartnerSuspend From RedoSuspend From RestartSuspend From UndoSuspend From User$A filegroup used for filestream data*A filegroup used for memory optimized dataA filegroup used for row dataFailedPending communicationRunningDisconnectedNonePending Failover	SuspendedSynchronized
SynchronizingAllow all connectionsDisallow connections"Allow only read-intent connectionsBulk LoggedFullSimpleAfter InsertAfter UpdateAll
Before Delete
Before UpdateBlockFilter	AutomaticManual�<?xml version="1.0" ?>
<EnumObject type="AditionalParameters" impl_type="SqlObject" min_major='7'>
	<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'>
			<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>	�<?xml version="1.0" ?>
<EnumObject type="AffinityInfo" impl_type="SqlObject" min_major='10' min_minor ='50'>
  <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>
�<?xml version='1.0' ?>
<EnumObject type='PerfInfo' impl_type='SqlObject' min_major='7'>
	<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'>
			<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'>
			<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>
T	<?xml version="1.0" ?>
<EnumObject type="AgentSubSystem" impl_type="SqlObject" min_major='9'>
        <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>
@<?xml version='1.0' ?>
<EnumObject type='SPHelpAlert' impl_type='SqlObject' min_major='7'>
	<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'>
			<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'>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'>
			<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='AlertSystem' impl_type='SqlObject' min_major='7'>
	<settings>
		<version min_major = '8'>
			<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='SPHelpCategory' impl_type='SqlObject' min_major='7'>
	<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>
�<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='7'>
	<settings>
		<property_link table="#err_log_tmp er" />
		<version min_major='9'>
			<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'>
			<property name="CreateDate" type="datetime">CONVERT(datetime, er.CreateDate, 101)</property>
		</version>
		<version min_major='8'>
			<property name="Size" type="int">er.Size</property>
		</version>
	</properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7'>
	<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'>
			<request_parent_select>
				<field name='ArchiveNo' />
			</request_parent_select>
		</version>
		<property_link table="#err_log_text_tmp ert" />
		<version min_major='9' >
			<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='sysalerts' impl_type='SqlObject' min_major='7'>
	<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'>
	<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='sysjobschedules' impl_type='SqlObject' min_major='7' >
    <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' >
            <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' >
            <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='SPHelpJobserver' impl_type='SqlObject' min_major='7'>
	<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>
X<?xml version='1.0' ?>
<EnumObject type='SPHelpCategory' impl_type='SqlObject' min_major='7'>
	<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='SPHelpOperator' impl_type='SqlObject' min_major='7'>
	<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='SPHelpCategory' impl_type='SqlObject' min_major='7'>
	<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='SPHelpTargetserver' impl_type='SqlObject' min_major='7'>
	<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='SPHelpTargetservergroup' impl_type='SqlObject' min_major='7'>
	<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'>
	<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>
k<?xml version="1.0" ?>
<EnumObject type="AlertNotification" impl_type="SqlObject" min_major='7'>
	<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>
k<?xml version="1.0" ?>
<EnumObject min_major='7'  cloud_min_major='12' datawarehouse_enabled='true'>
	<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'  cloud_min_major='12' datawarehouse_enabled='true'>
			<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'  cloud_min_major='12' datawarehouse_enabled='true'>
			<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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
�<?xml version='1.0' ?>
<EnumObject type='AsymmetricKey' impl_type='SqlObject' min_major='9'  cloud_min_major='12'>
	<settings>
		<property_link table='sys.asymmetric_keys' alias='a'/>
		<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'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
$<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="Audit" impl_type="SqlObject" 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>
    
    <version min_major='12'>
      <prefix fields='#IsOperator#'>
        create table #temp_server_audits (audit_id int not null, is_operator_audit bit)

        if serverproperty('engineedition') = 8
        exec sp_executesql N'insert into #temp_server_audits
        select sa.audit_id, sa.is_operator_audit
        from sys.server_audits sa'
      </prefix>

      <postfix fields='#IsOperator#'>
        drop table #temp_server_audits
      </postfix>
    </version>
    
    <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 when au.type='UL' then 3 when au.type='EM' then 4 else 100 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>

    <version min_major='12'>
      <property name='IsOperator' type="bit" cast="true">ISNULL((select is_operator_audit from #temp_server_audits as tsa where tsa.audit_id = au.audit_id),0)</property>
    </version>

    <version min_major='15'>
      <property name='RetentionDays' type='int'>ISNULL(fileau.retention_days,0)</property>
    </version>

    <include file='inc_policy_health_state.xml'/>
  </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="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>

    <version min_major='13'>
      <property name="BasicAvailabilityGroup" type="bit" cast="true">ISNULL(AG.basic_features, 0)</property>
      <property name="DatabaseHealthTrigger" type="bit" cast="true">ISNULL(AG.db_failover, 0)</property>
      <property name="DtcSupportEnabled" type="bit" cast="true">ISNULL(AG.dtc_support, 0)</property>
      <property name="IsDistributedAvailabilityGroup" type="bit" cast="true">ISNULL(AG.is_distributed, 0)</property>
    </version>

    <version min_major='14'>
      <property name="ClusterType" type="tinyint" report_type="AvailabilityGroupClusterType">ISNULL(AG.cluster_type, 0)</property>
      <property name="RequiredSynchronizedSecondariesToCommit" type="int">ISNULL(AG.required_synchronized_secondaries_to_commit, 0)</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>

�3<?xml version="1.0" ?>
<EnumObject type="AvailabilityReplica" impl_type="SqlObject" min_major='11' >
  <settings>
    <parent_link>
      <link parent='UniqueId' local='ParentID'/>
    </parent_link>
    <version min_major='11' max_major='12'>
      <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>
    </version>
    <version min_major='13'>
      <property_link fields="#RollupSynchronizationState#ReadonlyRoutingListDelimited#ParentID#Name#UniqueId#CreateDate#DateLastModified#EndpointUrl#ReadonlyRoutingConnectionUrl#ConnectionModeInPrimaryRole#ConnectionModeInSecondaryRole#AvailabilityMode#FailoverMode#SessionTimeout#BackupPriority#Owner#QuorumVoteCount#MemberState#SeedingMode#" table="#tmpar_availability_replicas" alias="AR">AR.replica_server_name IS NOT NULL</property_link>
    </version>
    <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>
    <version min_major='11' max_major='12'>
      <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>
    </version>
    <version min_major='13'>
      <prefix fields="#RollupSynchronizationState#ReadonlyRoutingListDelimited#ParentID#Name#UniqueId#CreateDate#DateLastModified#EndpointUrl#ReadonlyRoutingConnectionUrl#ConnectionModeInPrimaryRole#ConnectionModeInSecondaryRole#AvailabilityMode#FailoverMode#SessionTimeout#BackupPriority#Owner#QuorumVoteCount#MemberState#SeedingMode#">
        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, seeding_mode into #tmpar_availability_replicas from master.sys.availability_replicas
      </prefix>
    </version>
    <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, a.delimited
      FROM #tmpar_availability_replicas AS ars
      CROSS APPLY
      (
        SELECT STUFF(final_list.read_only_routing_list,1,1,'') FROM (
        SELECT CASE 
        WHEN CHARINDEX(',', STUFF(priority_grouped_list.priority_group, 1, 1, '')) = 0 THEN priority_grouped_list.priority_group
        ELSE ',(' + STUFF(priority_grouped_list.priority_group, 1, 1, '') + ')' 
          END 
        FROM (
        SELECT (SELECT  ',N'''+ 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.routing_priority = prioritylist.routing_priority
        AND rrlists.replica_id = ars.replica_id
        FOR XML PATH('') ) AS priority_group
        FROM
        (SELECT  distinct(routing_priority)
        FROM #tmp_availability_read_only_routing_lists where replica_id = ars.replica_id) AS prioritylist(routing_priority)) priority_grouped_list
        FOR XML PATH('') ) AS final_list(read_only_routing_list) ) 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, 3)</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>
    <version min_major='13'>
      <property name="SeedingMode" type="tinyint" report_type="AvailabilityReplicaSeedingMode">ISNULL(AR.seeding_mode, 1)</property>
    </version>
  </properties>

</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="AvailableMedia" impl_type="SqlObject" min_major='7'>
	<settings main_table="#avmed am">
		<version min_major='8'>
			<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' max_major='11'>
			<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>
		<version min_major='12'>
			<prefix fields='#SharedDrive#' comment="make temp table to avoid collation conflict">
create table #tmpsrdDrive ( DriveName nvarchar(512) )
insert #tmpsrdDrive	select path_name from sys.dm_io_cluster_valid_path_names
			</prefix>
		</version>
		<postfix>
drop table #avmed
		</postfix>
		<version min_major='8'>
			<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'>
			<property name="SharedDrive" type="bit" cast='true'>case when srddrv.DriveName is null then 0 else 1 end</property>
		</version>
	</properties>
</EnumObject>
;
<?xml version="1.0" ?>
<EnumObject type="BackupDevice" impl_type="SqlObject" min_major='7'>
  <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'>
      <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'>
      <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'>
      <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='backupfile' impl_type='SqlObject' min_major='7'>
	<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'>
	<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'>
	<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'>
			<property name='IsCompressed' type='bit' cast='true'>bkpms.is_compressed</property>
		</version>
		<!--Specifying the minimum build number for now. Need to update version when vBump is done.-->
		<version min_major='11'  min_build='9143'>
			<property name='IsEncrypted' type='bit' cast='true'>bkpms.is_encrypted</property>
		</version>
	</properties>
</EnumObject><?xml version='1.0' ?>
<EnumObject type='backupset' impl_type='SqlObject' min_major='7'>
	<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'>
			<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'>
      			<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'>
			<property name='CompressedBackupSize' type='numeric' size='20'>bkps.compressed_backup_size</property>
		</version>
		<!--Specifying the minimum build number for now. Need to update version when vBump is done.-->
		<version min_major='11'  min_build='9143'>
			<property name='KeyAlgorithm' type='nvarchar' size='32'>bkps.key_algorithm</property>
			<property name='EncryptorThumbprint' type='varbinary' size='20'>bkps.encryptor_thumbprint</property>
			<property name='EncryptorType' type='nvarchar' size='32'>bkps.encryptor_type</property>
		</version>
	</properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="BoundColumn" impl_type="SqlObject" min_major='7'>
	<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'>
			<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'>
			<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>
M<?xml version="1.0" ?>
<EnumObject type="CdromDrive" impl_type="SqlObject" min_major='9'>
	<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='Certificates' impl_type='SqlObject' min_major='9'  cloud_min_major='12' datawarehouse_enabled='true'>
	<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'>
      <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="Check" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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>
�<?xml version="1.0" ?>
<EnumObject type="EdgeConstraint" impl_type="SqlObject" min_major='15'  cloud_min_major='12' datawarehouse_enabled='false'>
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <version min_major='15'  cloud_min_major='12' datawarehouse_enabled='false'>
      <property_link table="sys.edge_constraints AS cstr" />
    </version>
  </settings>

  <properties>
    <include file='inc_urn.xml' />
    <include alias = 'cstr' file='inc_named_object.xml' for='#Name#ID#CreateDate#DateLastModified#'/>
    <property name="IsSystemNamed" type="bit" cast='true' access='Read'>cstr.is_system_named &amp; 4</property>
    <property name="DeleteAction" type="tinyint" report_type='EdgeConstraintDeleteAction' read_only_after_creation="true" mode="design">cstr.delete_referential_action</property>
  </properties>

</EnumObject><?xml version="1.0" ?>
<EnumObject type="EdgeConstraintClause" impl_type="SqlObject" min_major='15'  cloud_min_major='12' datawarehouse_enabled='false'>
  <settings>
    <version min_major='15'  cloud_min_major='12' datawarehouse_enabled='false'>
      <property_link join="sys.edge_constraint_clauses AS ec">
        (cstr.object_id = ec.object_id)
      </property_link>
      <property_link join="sys.tables AS f">
        (ec.from_object_id = f.object_id)
      </property_link>
      <property_link join="sys.tables AS t">
        (ec.to_object_id = t.object_id)
      </property_link>
    </version>
  </settings>
  <properties>
    <include file='inc_urn.xml' />
    <property name="Name" type="nvarchar" mode="design" access="Read">CONCAT(f.object_id, '_', t.object_id)</property>
    <property name="ExtPropClass" type="int" hidden='true'>1</property>
    <property name="From" type="nvarchar">f.name</property>
    <property name="To" type="nvarchar">t.name</property>
  </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>
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="Collation" impl_type="SqlObject" min_major='8'  cloud_min_major='10'>
	<settings>
		<version min_major='8' max_major='8'>
			<property_link table = '::fn_helpcollations() cl'/>
		</version>
		<version min_major='9'  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'  cloud_min_major='10'>
				  <property name="CollationVersion" type="int" report_type="CollationVersion" cast='true'>COLLATIONPROPERTY(name, 'Version')</property>
		</version>
	</properties>
</EnumObject>
 
�\<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
  <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>
      <property_link fields='#DefaultConstraintName#' left_join='dbo.sysobjects AS dc'>dc.xtype='D' and dc.name not like N'#%%' and 0!=convert(bit,cstr.category &amp; 0x0800)</property_link>
      <post_process fields='#ComputedText#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessText' />      
    </version>
    <version min_major='9'  cloud_min_major='10' datawarehouse_enabled='true'>
      <property_link table='sys.all_columns AS clmns' />
      <property_link fields='#IdentitySeed#IdentityIncrement#IdentitySeedAsDecimal#IdentityIncrementAsDecimal#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>
      <property_link fields='#DefaultConstraintName#' left_join='sys.default_constraints as dc'>clmns.default_object_id = dc.object_id</property_link>      
    </version>
    <version min_major='13' cloud_min_major='12'>
      <property_link fields="#ColumnEncryptionKeyName#" left_join="sys.column_encryption_keys AS ceks">(ceks.column_encryption_key_id = clmns.column_encryption_key_id)</property_link>
    </version>
    <version min_major='10' max_major='14'>
      <property_link fields='#IsClassified#SensitivityLabelName#SensitivityLabelId#SensitivityInformationTypeName#SensitivityInformationTypeId#' left_join='sys.tables t'>t.object_id = clmns.object_id</property_link>
      <property_link fields='#IsClassified#SensitivityLabelName#SensitivityLabelId#SensitivityInformationTypeName#SensitivityInformationTypeId#' left_join='sys.schemas AS s'>s.schema_id = t.schema_id</property_link>
      <property_link fields='#IsClassified#SensitivityLabelName#' left_join='sys.extended_properties AS ep1'>clmns.object_id = ep1.major_id AND clmns.column_id = ep1.minor_id and ep1.name = 'sys_sensitivity_label_name'</property_link>
      <property_link fields='#IsClassified#SensitivityLabelId#' left_join='sys.extended_properties AS ep2'>clmns.object_id = ep2.major_id AND clmns.column_id = ep2.minor_id and ep2.name = 'sys_sensitivity_label_id'</property_link>
      <property_link fields='#IsClassified#SensitivityInformationTypeName#' left_join='sys.extended_properties AS ep3'>clmns.object_id = ep3.major_id AND clmns.column_id = ep3.minor_id and ep3.name = 'sys_information_type_name'</property_link>
      <property_link fields='#IsClassified#SensitivityInformationTypeId#' left_join='sys.extended_properties AS ep4'>clmns.object_id = ep4.major_id AND clmns.column_id = ep4.minor_id and ep4.name = 'sys_information_type_id'</property_link>
    </version>
    <version min_major='15' cloud_min_major='12' datawarehouse_enabled='true'>
      <property_link fields='#IsClassified#SensitivityLabelId#SensitivityLabelName#SensitivityInformationTypeId#SensitivityInformationTypeName#SensitivityRank#' left_join='sys.sensitivity_classifications AS sc'>sc.major_id = clmns.object_id and sc.minor_id = clmns.column_id</property_link>
    </version>
    <version datawarehouse_enabled='true'>
      <property_link fields='#DistributionColumnName#IsDistributedColumn#' left_join="sys.pdw_column_distribution_properties as cdp">cdp.object_id = clmns.object_id and cdp.column_id = clmns.column_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" expensive="true">
          <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" expensive="true">
          <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>
        <property name="IdentitySeedAsDecimal" type="numeric" size="38" 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="IdentityIncrementAsDecimal" type="numeric" size="38" 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" expensive="true">
          <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" expensive="true">
          <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>
        <property name="IdentitySeedAsDecimal" type="numeric" size="38" 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="IdentityIncrementAsDecimal" type="numeric" size="38" 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>
      <!-- "Default" refers to a default bound by sp_bindefault. "DefaultConstraintName" refers to the name of a modern default constraint.
        We have this property to enable the DefaultConstraint property to short circuit its value to null during scripting and avoid a SQL query
      -->
      <property name="DefaultConstraintName" type="sysname" read_only_after_creation='true'>ISNULL(dc.Name, N'')</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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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="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" expensive="true">ISNULL(ic.seed_value,0)</property>
      <property name="IdentityIncrement" type="bigint" cast='true' read_only_after_creation="true" mode="design" expensive="true">ISNULL(ic.increment_value,0)</property>
      <property name="IdentitySeedAsDecimal" type="numeric" size="38" cast='true' read_only_after_creation="true" mode="design">ISNULL(ic.seed_value,0)</property>
      <property name="IdentityIncrementAsDecimal" type="numeric" size="38" 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>
      <property name="DefaultConstraintName" type="sysname" read_only_after_creation='true'>ISNULL(dc.Name, N'')</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="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>
    </version>
    <version min_major='9' cloud_min_major='10' datawarehouse_enabled='true'>
      <property name="NotForReplication" type="bit" read_only_after_creation="true" mode="deploy">ISNULL(ic.is_not_for_replication, 0)</property>
    </version>
    <version min_major='9' cloud_min_major='10'>
      <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='13' cloud_min_major='12'>
      <!--TCE specific props-->
      <property name="EncryptionType" type="int" report_type="ColumnEncryptionType" cast='true' read_only_after_creation="true">clmns.encryption_type</property>
      <property name="EncryptionAlgorithm" type="sysname" read_only_after_creation="true">clmns.encryption_algorithm_name</property>
      <property name="ColumnEncryptionKeyID" type="int" read_only_after_creation="true">clmns.column_encryption_key_id</property>
      <property name="ColumnEncryptionKeyName" type="sysname" read_only_after_creation="true">ceks.name</property>
    </version>
    <version min_major='10'  cloud_min_major='10' datawarehouse_enabled='true'>
      <!-- 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' datawarehouse_enabled='true'>
      <!-- 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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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>

    <!-- temporal support -->
    <version min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="GeneratedAlwaysType" type="tinyint" report_type="GeneratedAlwaysType">clmns.generated_always_type</property>
      <property name="IsHidden" type="bit" cast="true" read_only_after_creation="false">clmns.is_hidden</property>
    </version>

    <!-- data masking support -->
    <version min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="IsMasked" type="bit" cast="true" read_only_after_creation="false" mode="design">clmns.is_masked</property>
      <property name="MaskingFunction" type="nvarchar" size='max' expensive='true' read_only_after_creation="false" mode="design">ISNULL((SELECT ms.masking_function FROM sys.masked_columns ms WHERE ms.object_id = clmns.object_id AND ms.column_id = clmns.column_id), N'')</property>
    </version>

    <!-- data classification support -->
    <version min_major='10' max_major='14'>
      <property name="IsClassified" type="bit" access="read" cast="true" read_only_after_creation="false" mode="design">
        CASE
        WHEN ep1.value IS NOT NULL or ep2.value IS NOT NULL or ep3.value IS NOT NULL or ep4.value IS NOT NULL THEN 1
        ELSE 0
        END
      </property>
      <property name="SensitivityLabelName" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL(ep1.value, N'')</property>
      <property name="SensitivityLabelId" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL(ep2.value, N'')</property>
      <property name="SensitivityInformationTypeName" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL(ep3.value, N'')</property>
      <property name="SensitivityInformationTypeId" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL(ep4.value, N'')</property>
    </version>

    <version min_major='15' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="IsClassified" type="bit" access="read" cast="true" mode="design">
        CASE
        WHEN [sc].[label] IS NOT NULL or [sc].[label_id] IS NOT NULL or [sc].[information_type] IS NOT NULL or [sc].[information_type_id] IS NOT NULL or [sc].[rank] IS NOT NULL THEN 1
        ELSE 0
        END
      </property>
      <property name="SensitivityLabelName" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL([sc].[label], N'')</property>
      <property name="SensitivityLabelId" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL([sc].[label_id], N'')</property>
      <property name="SensitivityInformationTypeName" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL([sc].[information_type], N'')</property>
      <property name="SensitivityInformationTypeId" type="sysname" expensive="true" read_only_after_creation="false" mode="design">ISNULL([sc].[information_type_id], N'')</property>
      <property name="SensitivityRank" type="int" report_type="SensitivityRank" expensive="true" read_only_after_creation="false" mode="design">ISNULL([sc].[rank], -1)</property>
    </version>

    <!-- SQL DW hash distribution column. -->
    <version datawarehouse_enabled='true'>
      <property name="DistributionColumnName" type="sysname">
        CASE
          WHEN cdp.distribution_ordinal IS NOT NULL AND cdp.distribution_ordinal > 0 THEN ISNULL(clmns.name, N'')
          ELSE N'0'
        END
      </property>
      <property name="IsDistributedColumn" type="bit" cast="true">
        CASE
          WHEN cdp.distribution_ordinal IS NOT NULL AND cdp.distribution_ordinal > 0 THEN N'1'
          ELSE N''
        END
      </property>
    </version>

    <!--SQL GraphDB properties.-->
    <version min_major="14" cloud_min_major="12">
      <property name="GraphType" type="int" report_type="GraphType">ISNULL(clmns.graph_type, 0)</property>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="ColumnEncryptionKey" impl_type="SqlObject" min_major='13' cloud_min_major='12'>
  <settings>
    <property_link table='sys.column_encryption_keys AS cek' />
  </settings>
  <properties>
    <include file='inc_urn.xml'/>
    <property name="Name" type="sysname">cek.name</property>
    <property name="ID" type="int" read_only_after_creation="true">cek.column_encryption_key_id</property>
    <property name="CreateDate" type="datetime" read_only_after_creation="true">cek.create_date</property>
    <property name="DateLastModified" type="datetime" read_only_after_creation="true">cek.modify_date</property>
  </properties>
</EnumObject>�<?xml version="1.0" ?>
<EnumObject type="ColumnEncryptionKeyValue" impl_type="SqlObject" min_major='13' cloud_min_major='12'>
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table='sys.column_encryption_key_values AS cekvals' />
    <property_link fields="#ColumnEncryptionKeyName#"
      left_join="sys.column_encryption_keys AS ceks">(ceks.column_encryption_key_id = cekvals.column_encryption_key_id)</property_link>
    <property_link fields="#ColumnMasterKeyName#"
      left_join="sys.column_master_keys AS cmks">(cmks.column_master_key_id = cekvals.column_master_key_id)</property_link>
  </settings>
  <properties>
    <!-- Construct the URN using the TargetObjectID as the key identifier -->
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='3' expression="{0} + '/{2}[@ColumnMasterKeyID=' + cast({1} AS nvarchar(20)) + ']'">
        <link_field type='parent' field="Urn" />
        <link_field type='local' field="ColumnMasterKeyName" />
        <link_field field="NType" />
      </link_multiple>
    </property>
    <property name="ColumnEncryptionKeyName" type="sysname" read_only_after_creation="true">ceks.name</property>
    <property name="ColumnMasterKeyName" type="sysname" read_only_after_creation="true">cmks.name</property>
    <property name="ColumnMasterKeyID" type="int" read_only_after_creation="true">cekvals.column_master_key_id</property>
    <property name="EncryptionAlgorithm" type="nvarchar" size="128" read_only_after_creation="true">cekvals.encryption_algorithm_name</property>
    <property name="EncryptedValue" type="varbinary" size="8000" read_only_after_creation="true">cekvals.encrypted_value</property>
    <property name="ParentID" type="int" read_only_after_creation="true" hidden="true">cekvals.column_encryption_key_id</property>
  </properties>
</EnumObject><?xml version="1.0" ?>
<EnumObject type="ColumnMasterKey" impl_type="SqlObject" min_major='13' cloud_min_major='12'>
  <settings>
    <property_link table='sys.column_master_keys AS cmk' />
  </settings>
  <properties>
    <include file='inc_urn.xml'/>
    <property name="Name" type="sysname">cmk.name</property>
    <property name="ID" type="int" read_only_after_creation="true">cmk.column_master_key_id</property>
    <property name="KeyStoreProviderName" type="sysname" read_only_after_creation="true">cmk.key_store_provider_name</property>
    <property name="KeyPath" type="nvarchar" size='4000' read_only_after_creation="true">cmk.key_path</property>
    <property name="CreateDate" type="datetime" read_only_after_creation="true">cmk.create_date</property>
    <property name="DateLastModified" type="datetime" read_only_after_creation="true">cmk.modify_date</property>
  </properties>
  <version min_major='15' cloud_min_major='12'>
    <property name="Signature" type="varbinary" cast='true' size='4000' read_only_after_creation="true">ISNULL(cmk.signature, CONVERT(varbinary(4000), N''))</property>
    <property name="AllowEnclaveComputations" type="bit" cast='true' read_only_after_creation="true">cmk.allow_enclave_computations</property>
  </version>
</EnumObject>0<?xml version="1.0" ?>
<EnumObject type="DatabaseScopedCredential" impl_type="SqlObject" min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
    <settings>
        <property_link table='sys.database_scoped_credentials AS dbscopeCred' />
    </settings>
    <properties>
        <property name="Urn" type="nvarchar" size="600">
            <link_multiple no='2' expression="{0} + '/DatabaseScopedCredential[@Name=' + quotename({1},'''') + ']'">
                <link_field type='parent' field="Urn" />
                <link_field type='local' field="Name" />
            </link_multiple>
        </property>
        <property name="Name" type="sysname">dbscopeCred.name</property>
        <property name="ID" type="int" access='Read'>dbscopeCred.credential_id</property>
        <property name="Identity" type="nvarchar" size='4000' access='ReadWrite'>dbscopeCred.credential_identity</property>
        <property name="CreateDate" type="datetime" access='Read'>dbscopeCred.create_date</property>
        <property name="DateLastModified" type="datetime" access='Read'>dbscopeCred.modify_date</property>
        <!-- ExtPropMajorID and ExtPropMinorID are needed to enumerate permissions on the object. They map to major_id and minor_id in sys.database_permissions -->
        <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>
        <!-- ExtPropClass matches "select class from sys.securable_classes where class_desc='DATABASE SCOPED CREDENTIAL'"-->
        <property name="ExtPropClass" type="int" hidden="true">32</property>
    </properties>
</EnumObject>�<?xml version="1.0" ?>
<EnumObject type="WorkloadManagementWorkloadClassifier" impl_type="SqlObject" datawarehouse_enabled='true'>
  <settings>
    <property_link table="#tmp_pivot_classifier_details_table" alias="wc"/>
    <prefix>
      CREATE TABLE #tmp_pivot_classifier_details_table WITH (DISTRIBUTION = ROUND_ROBIN) AS SELECT * FROM
        (SELECT c.classifier_id, name, group_name, importance, classifier_type, classifier_value FROM sys.workload_management_workload_classifiers c
        INNER JOIN sys.workload_management_workload_classifier_details cd
        ON c.classifier_id = cd.classifier_id) AS src
        PIVOT
        (
          MAX(classifier_value)
          for classifier_type in (membername, wlm_context, wlm_label, start_time, end_time)
        ) AS piv;
    </prefix>
    <postfix>DROP TABLE #tmp_pivot_classifier_details_table</postfix>
  </settings>

  <properties>
    <version datawarehouse_enabled='true'>
      <property name="Id" type="int" cast='true'>wc.classifier_id</property>
      <property name="GroupName" type="sysname">wc.group_name</property>
      <property name="Name" type="sysname">wc.name</property>
      <property name="Importance" type="int" report_type="WorkloadManagementImportance">CASE WHEN N'Low' = wc.importance THEN 0 WHEN N'Below_Normal' = wc.importance THEN 1 WHEN N'Normal' = wc.importance THEN 2 WHEN N'Above_Normal' = wc.importance THEN 3 WHEN N'High' = wc.importance THEN 4 ELSE 2 END</property>
      <property name="MemberName" type="sysname">wc.membername</property>
      <property name="WlmLabel" type="sysname">ISNULL(wc.wlm_label, '')</property>
      <property name="WlmContext" type="sysname">ISNULL(wc.wlm_context, '')</property>
      <property name="StartTime" type="sysname">ISNULL(wc.start_time, '')</property>
      <property name="EndTime" type="sysname">ISNULL(wc.end_time, '')</property> 
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="ComputedText" impl_type="SqlObject" min_major='7'>
	<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="Configuration" impl_type="SqlObject" min_major='7'  cloud_min_major='12'>
  <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'  cloud_min_major='12'>
		<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'  cloud_min_major='12'>
		<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>u<?xml version="1.0" ?>
<EnumObject type="ConfigurationValue" impl_type="SqlObject" min_major='9'>
    <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>
�<?xml version="1.0" ?>
<EnumObject type="ServerOption" impl_type="SqlObject" min_major='7'>
	<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="Credential" impl_type="SqlObject" min_major='9'>
    <settings>
        <version min_major='9'>
            <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>
		<version cloud_min_major='12'>
			<property_link table='sys.database_scoped_credentials AS s' />
		</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'>
			<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="Database" impl_type="Database" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
  <settings>
    <version min_major ='10'>
      <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' datawarehouse_enabled='true'>
      <property_link table="sys.databases AS dtb"/>
    </version>


    <version min_major='9'>
      <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>

    <!-- SLO information in sys.database_service_objectives -->

    <version cloud_min_major='12'>
      <property_link fields='#IsSqlDwEdition#' left_join="#dso dso">dso.database_id = dtb.database_id</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>

    <!--  Change tracking info for databases exist in sys.change_tracking_databases-->
    <version min_major='10' cloud_min_major='12'>
      <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='10'>
      <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>

    <version min_major='15'>
      <property_link fields="#PersistentVersionStoreFileGroup#PersistentVersionStoreSizeKB#" 
             left_join="#pvsfilegroups as pfg">pfg.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 cloud_min_major='12'>
      <!-- sys.database_service_objectives may fail sometimes and raise an exception. We just assume non-DW in that case.-->
      <prefix fields='#IsSqlDwEdition#'>
        create table #dso (database_id int primary key, isDw bit)
        BEGIN TRY
            insert into #dso select database_id, CAST(
            case
            when Edition = 'DataWarehouse' then cast(1 as bit)
            else cast(0 as bit)
            end
            AS bit) from sys.database_service_objectives
        END TRY
        BEGIN CATCH
            insert into #dso select database_id, cast(0 as bit) from sys.databases
        END CATCH
      </prefix>
      <postfix fields='#IsSqlDwEdition#'>
        drop table #dso
      </postfix>
    </version>

    <version min_major='15' >
      <prefix fields="#PersistentVersionStoreFileGroup#PersistentVersionStoreSizeKB#">
       create table #pvsfilegroups (name sysname, persistent_version_store_size_kb bigint, database_id int primary key)
       insert into #pvsfilegroups select fg.name, tvs.persistent_version_store_size_kb, d.database_id from sys.databases d 
           join sys.dm_tran_persistent_version_store_stats tvs on tvs.database_id = d.database_id 
           join sys.filegroups fg on fg.data_space_id = tvs.pvs_filegroup_id
      </prefix>
      <prefix fields='#DataRetentionEnabled#'>
        create table #temp_data_retention_property (db_id int not null, is_data_retention_enabled bit)
        if serverproperty('engineedition') = 9
        exec sp_executesql N'insert into #temp_data_retention_property
        select dr_db.database_id, dr_db.is_data_retention_enabled
        from sys.databases dr_db'
      </prefix>
    </version>

    <version min_major='9'>

      <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') AND SERVERPROPERTY('EngineEdition') != 11
        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='15' >
      <postfix fields="#PersistentVersionStoreFileGroup#PersistentVersionStoreSizeKB#">
        drop table #pvsfilegroups
      </postfix>
      <postfix fields='#DataRetentionEnabled#'>
        drop table #temp_data_retention_property
      </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'>
      <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#DelayedDurability#'
              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>

    <!--Hekaton memory usage properties have post processing calculations-->
    <version min_major='12' cloud_min_major='12'>
      <post_process fields = '#HasMemoryOptimizedObjects#MemoryAllocatedToMemoryOptimizedObjectsInKB#MemoryUsedByMemoryOptimizedObjectsInKB#'
                    class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
                    triggered_fields='#DatabaseName3#'/>
    </version>

    <!--SQL-XI property have post processing calculations, need to update version when vBump is done.-->
    <version min_major='12' cloud_min_major='12'>
      <post_process fields = '#HasFileInCloud#'
                    class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
                    triggered_fields='#DatabaseName4#'/>
    </version>

    <version cloud_min_major='10' datawarehouse_enabled='true'>
      <post_process fields = '#IsDbDenyDatawriter#IsDbDenyDatareader#IsDbDdlAdmin#IsDbSecurityAdmin#IsDbOwner#IsDbDatawriter#IsDbDatareader#IsDbBackupOperator#IsDbAccessAdmin#UserName#DefaultFileGroup#'
        class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
        triggered_fields='#DatabaseName#'/>
      <post_process fields = '#Owner#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessOwner' triggered_fields='#Sid1#'></post_process>
    </version>

    <version min_major='13'>
      <post_process fields = '#RemoteDataArchiveEndpoint#RemoteDataArchiveLinkedServer#RemoteDatabaseName#RemoteDataArchiveUseFederatedServiceAccount#RemoteDataArchiveCredential#'  class_name='Microsoft.SqlServer.Management.Smo.PostProcessRemoteDataArchiveDatabaseProperties' triggered_fields='#DatabaseName5#'/>
    </version>

    <!--DB Scoped configurations have post processing calculations.-->
    <version min_major='13' cloud_min_major='12'>
      <post_process fields = '#MaxDop#MaxDopForSecondary#LegacyCardinalityEstimation#LegacyCardinalityEstimationForSecondary#ParameterSniffing#ParameterSniffingForSecondary#QueryOptimizerHotfixes#QueryOptimizerHotfixesForSecondary#'
                    class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
                    triggered_fields='#DatabaseName6#'/>
    </version>

    <version cloud_min_major='12'>
      <post_process fields = '#Size#'
                    class_name='Microsoft.SqlServer.Management.Smo.PostProcessDatabaseInsideAttribs'
                    triggered_fields='#DatabaseName7#'/>
    </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' datawarehouse_enabled='true'>
      <!--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 schema_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="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 cloud_min_major = '12'>
      <property name="IsSqlDwEdition" type="bit" access="read" cast="true">ISNULL(dso.isDw, 0)</property>
    </version>
    <version cloud_min_major='12'>
      <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>
    </version>

    <version min_major='9'>
      <property name="MirroringRedoQueueMaxSize" type="int" access="read" expensive="true">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" expensive="true">ISNULL(dmi.mirroring_connection_timeout,0)</property>
      <property name='MirroringPartner' type='nvarchar' size = '128' expensive="true"
                                            >ISNULL(dmi.mirroring_partner_name,'')</property>
      <property name='MirroringPartnerInstance' type='nvarchar' size = '128' access='Read' expensive="true"
                                            >ISNULL(dmi.mirroring_partner_instance,'')</property>
      <property name='MirroringRole' type='tinyint' report_type = 'MirroringRole'
                                            access='Read' expensive="true">ISNULL(dmi.mirroring_role,0)</property>
      <property name='MirroringSafetyLevel' type='int' report_type = 'MirroringSafetyLevel' expensive="true"
                                            >ISNULL(dmi.mirroring_safety_level + 1, 0)</property>
      <property name='MirroringStatus' type='tinyint' report_type = 'MirroringStatus'
                access='Read' expensive="true">ISNULL(dmi.mirroring_state + 1, 0)</property>
      <property name='MirroringWitness' type='nvarchar' size = '128' expensive="true"
                                            >ISNULL(dmi.mirroring_witness_name,'')</property>
      <property name='MirroringWitnessStatus' type='int' report_type = 'MirroringWitnessStatus'
                access='Read' expensive="true">ISNULL(dmi.mirroring_witness_state + 1, 0)</property>
      <property name='IsMirroringEnabled' type='bit' cast='true'
                access='Read' expensive="true">case when dmi.mirroring_partner_name is null then 0 else 1 end</property>
      <property name='MirroringID' type='uniqueidentifier'
                access='Read' expensive="true">ISNULL(dmi.mirroring_guid,'00000000-0000-0000-0000-0000000000000000')</property>
      <property name='MirroringRoleSequence' type='int'
                access='Read' expensive="true">ISNULL(dmi.mirroring_role_sequence,0)</property>
      <property name='MirroringSafetySequence' type='int'
                access='Read' expensive="true">ISNULL(dmi.mirroring_safety_sequence,0)</property>
      <property name='MirroringFailoverLogSequenceNumber' type='numeric'
                access='Read' expensive="true">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="7" max_major="8" cloud_min_major='12' datawarehouse_enabled='true'>
      <property name='IsMirroringEnabled' type='bit' cast='true' access='Read' expensive="true">0</property>
    </version>
    <!-- Azure DB doesn't support recovery models or local cursors default-->
    <version min_major='9'   cloud_min_major='10' datawarehouse_enabled='true'>
      <!--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="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' datawarehouse_enabled='true'>
      <!--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 min_major='9'>
      <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="AutoClose" type="bit" mode="deploy">dtb.is_auto_close_on</property>
      <property name="BrokerEnabled" type="bit">dtb.is_broker_enabled</property>
      <property name="Owner" type="sysname" access="Read">ISNULL(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'>
      <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' cloud_min_major='12'>
      <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='10'>
      <property name="HasDatabaseEncryptionKey" type="bit" access='Read' cast='true' expensive ='true'>(case when dek.database_id is not null then 1 else 0 end)</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>

    <!-- Hekaton properties -->
    <version min_major='12' cloud_min_major='12'>
      <!--Property indicates whether the database has any hekaton objects-->
      <!--TODO: this property is pending on engine to provide data in sys.databases-->
      <property name="HasMemoryOptimizedObjects" type="bit" access='Read' expensive='true'>0</property>

      <!--Property specifies the amount of memory allocated to Hekaton tables in db-->
      <property name="MemoryAllocatedToMemoryOptimizedObjectsInKB" type="float" cast='true' access='Read' expensive='true'>0</property>

      <!--Property specifies the amount of memory used by Hekaton tables in db -->
      <property name="MemoryUsedByMemoryOptimizedObjectsInKB" type="float" cast='true' access='Read' expensive='true'>0</property>
      <property name="DatabaseName3" type="sysname" hidden='true'>dtb.name</property>

      <property name="HasFileInCloud" type="bit" access='Read' expensive='true'>0</property>
      <property name="DatabaseName4" type="sysname" hidden='true'>dtb.name</property>

    </version>

    <version min_major='12'>
      <property name="DelayedDurability" type="int" report_type="DelayedDurability">dtb.delayed_durability</property>
    </version>

    <version min_major='12' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="AutoCreateIncrementalStatisticsEnabled" type="bit" mode="deploy">dtb.is_auto_create_stats_incremental_on</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 cloud_min_major='10' datawarehouse_enabled='true'>
      <property name="AzureEdition" type="nvarchar" cast='true'>DATABASEPROPERTYEX(dtb.name, 'Edition')</property>
      <!-- Size should be returned in MB -->
      <property name="Size" type="float" access="Read">CONVERT(float, DATABASEPROPERTYEX(dtb.Name, 'MaxSizeInBytes')) / 1024.0 / 1024.0</property>
      <!-- MaxSize may be settable on Azure -->
      <property name="MaxSizeInBytes" type="float">CONVERT(float, DATABASEPROPERTYEX(dtb.Name, 'MaxSizeInBytes'))</property>
      <!-- IsMaxSizeApplicable is to check if MaxSize is required/applicable in scripts -->
      <property name="IsMaxSizeApplicable" type="bit" access="Read" cast='true'>(CASE WHEN 0 > CONVERT(float, DATABASEPROPERTYEX(dtb.Name, 'MaxSizeInBytes')) THEN 0 ELSE 1 END)</property>
    </version>
    <version cloud_min_major='10'>
      <property name="SpaceAvailable" type="float" access="Read" cast='true' expensive='true'>(SELECT IIF(databasepropertyex(dtb.name,'Edition') = 'Hyperscale', 0, (SELECT ((CAST(DATABASEPROPERTYEX(dtb.Name, 'MaxSizeInBytes') AS float) / 1024.0) - (SUM(reserved_page_count)*8.0 )) / 1024.0 FROM sys.dm_db_partition_stats)))</property>
    </version>

    <version datawarehouse_enabled='true'>
      <property name="SpaceAvailable" type="float" access="Read" cast='true' expensive='true'>0</property>
    </version>

    <version cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="AzureServiceObjective" type="nvarchar">DATABASEPROPERTYEX(dtb.name, 'ServiceObjective')</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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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'>
      <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 = '12' datawarehouse_enabled='true'>
      <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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <property name="DatabaseName" type="sysname" hidden='true'>dtb.name</property>
      <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="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="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="UserName" type="sysname" expensive='true' access='Read'>''</property>
      <property name="IsSqlDw" type="bit" cast="true">
        case
        when SERVERPROPERTY('EngineEdition') = 6 then cast(1 as bit)
        else cast(0 as bit)
        end
      </property>
    </version>

    <version min_major='7'  cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="IsAccessible" type="bit" cast='true' access = 'Read'>has_dbaccess(dtb.name)</property>
      <property name="DefaultFileGroup" type="sysname" expensive='true' access='Read'>N''</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'>
      <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'>
      <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 min_major='13'>
      <!-- Halligan (Stretch DB) properties -->

      <property name="RemoteDataArchiveEnabled" type="bit" cast="true" read_only_after_creation="false">dtb.is_remote_data_archive_enabled</property>
      <!--Value populated in post-processing since we have to query sys.servers (which is per-DB but doesn't map values to a DB)-->
      <property name="RemoteDataArchiveEndpoint" type="nvarchar" size="4000" read_only_after_creation="false" expensive="true">NULL</property>
      <property name="RemoteDataArchiveLinkedServer" type="sysname" read_only_after_creation="true" expensive="true">NULL</property>
      <property name="RemoteDatabaseName" type="sysname" read_only_after_creation="true" expensive="true">NULL</property>
      <property name="RemoteDataArchiveUseFederatedServiceAccount" type="bit" read_only_after_creation="false" expensive="true">0</property>
      <property name="RemoteDataArchiveCredential" type="sysname" read_only_after_creation="false" expensive="true">NULL</property>
      <!--Used for post-process trigger -->
      <property name="DatabaseName5" type="sysname" hidden='true'>dtb.name</property>
    </version>

    <version min_major='13' cloud_min_major='12'>
      <property name="MaxDop" type="int">0</property>
      <property name="MaxDopForSecondary" type="int">NULL</property>
      <property name="LegacyCardinalityEstimation" type="int" report_type="DatabaseScopedConfigurationOnOff">0</property>
      <property name="LegacyCardinalityEstimationForSecondary" type="int" report_type="DatabaseScopedConfigurationOnOff">2</property>
      <property name="ParameterSniffing" type="int" report_type="DatabaseScopedConfigurationOnOff">0</property>
      <property name="ParameterSniffingForSecondary" type="int" report_type="DatabaseScopedConfigurationOnOff">2</property>
      <property name="QueryOptimizerHotfixes" type="int" report_type="DatabaseScopedConfigurationOnOff">0</property>
      <property name="QueryOptimizerHotfixesForSecondary" type="int" report_type="DatabaseScopedConfigurationOnOff">2</property>
      <property name="DatabaseName6" type="sysname" hidden='true'>dtb.name</property>
    </version>

    <version cloud_min_major='12'>
      <!-- Temporal properties -->
      <property name="TemporalHistoryRetentionEnabled" type="bit" cast="true">dtb.is_temporal_history_retention_enabled</property>
      <!-- Used to compute 'Size' property in PostProcessing -->
      <property name="DatabaseName7" type="sysname" hidden='true'>dtb.name</property>
    </version>

    <version min_major ='15' cloud_min_major='12'>
      <!-- Catalog Collation properties -->
      <property name="CatalogCollation" type="int" report_type="CatalogCollationType" read_only_after_creation="true">dtb.catalog_collation_type</property>
    </version>

    <version min_major="8" cloud_min_major="12"  datawarehouse_enabled='true'>
      <property name='LastGoodCheckDbTime' type='datetime' cast='true' access='read'>ISNULL(DATABASEPROPERTYEX(dtb.name, 'lastgoodcheckdbtime'), 0)</property>
    </version>

    <version min_major="15">
      <property name="AcceleratedRecoveryEnabled" type="bit" cast="true">dtb.is_accelerated_database_recovery_on</property>
      <property name="PersistentVersionStoreFileGroup" expensive="true" type="sysname">ISNULL(pfg.name, N'')</property>
      <property name="PersistentVersionStoreSizeKB" expensive="true" type="bigint" access="read">ISNULL(pfg.persistent_version_store_size_kb, 0)</property>
      <!--  Property only available on SQL EDGE i.e EngineEdition == 9 -->
      <property name="DataRetentionEnabled" type="bit" cast="true">ISNULL((select is_data_retention_enabled from #temp_data_retention_property as tdrp where tdrp.db_id = dtb.database_id),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" encoding="utf-8" ?>
<EnumObject type="DatabaseAuditSpecification" impl_type="SqlObject" 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>
Z
<?xml version="1.0" ?>
<EnumObject type="Trigger" impl_type="SqlObject" min_major='9'  cloud_min_major='10'>
	<settings>
		<property_link table='sys.triggers AS tr'>tr.parent_class = 0</property_link>
    <version min_major='9'>
      <property_link fields='#ExecutionContext#'
              left_join='sys.assembly_modules' alias='am2tr'>am2tr.object_id = tr.object_id</property_link>
    </version>
    <version min_major='9'  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'>
      <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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
	</properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="DatabaseDdlTriggerEvent" impl_type="SqlObject" min_major='9'  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>
0<?xml version='1.0' ?>
<EnumObject type='DatabaseDiagram' impl_type='SqlObject' min_major='9'  cloud_min_major="12">
	<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>�<?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="Lock" impl_type="SqlObject" min_major='7' cloud_min_major='12' >
    <settings>
        <property_link table='#t AS l' />
        <version min_major='7'>
          <property_link fields='#LockType#' join='master.dbo.spt_values AS v'>v.number = l.mode AND v.type = N'L'</property_link>
        </version>
        <version cloud_min_major='12'>
          <property_link fields='#LockType#' join='#v AS v'>v.number = l.mode</property_link>
        </version>
        <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 + 1, 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>
        <!-- For azure we hard code the equivalent of select name, number from master.dbo.spt_values where type = N'L' -->
        <version cloud_min_major='12'>
          <prefix>
            CREATE TABLE #v(name nvarchar(36), number int)
            INSERT #v VALUES  (N'LOCK TYPES', 0),
                            (N'NULL', 1),
                            (N'Sch-S', 2),
                            (N'Sch-M', 3),
                            (N'S', 4),
                            (N'U', 5),
                            (N'X', 6),
                            (N'IS', 7),
                            (N'IU', 8),
                            (N'IX', 9),
                            (N'SIU', 10),
                            (N'SIX', 11),
                            (N'UIX', 12),
                            (N'BU', 13),
                            (N'RangeS-S', 14),
                            (N'RangeS-U', 15),
                            (N'RangeIn-Null', 16),
                            (N'RangeIn-S', 17),
                            (N'RangeIn-U', 18),
                            (N'RangeIn-X', 19),
                            (N'RangeX-S', 20),
                            (N'RangeX-U', 21),
                            (N'RangeX-X', 22);
          </prefix>
        </version>
        <version min_major='9' cloud_min_major='12'>
            <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 1
                when N'SCH_S'		then 2
                when N'SCH_M'		then 3
                when N'S'			then 4
                when N'U'			then 5
                when N'X'			then 6
                when N'IS'			then 7
                when N'IU'			then 8
                when N'IX'			then 9
                when N'SIU'			then 10
                when N'SIX'			then 11
                when N'UIX'			then 12
                when N'BU'			then 13
                when N'RS_S'		then 14
                when N'RS_U'		then 15
                when N'RI_NL'		then 16
                when N'RI_S'		then 17
                when N'RI_U'		then 18
                when N'RI_X'		then 19
                when N'RX_S'		then 20
                when N'RX_U'		then 21
                when N'RX_X'		then 22
                when N'LAST_MODE'	then 23
                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 sys.dm_tran_locks l WHERE resource_database_id = db_id() and 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' cloud_min_major='12'>
            <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' cloud_min_major='12'>
            <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>
        <version cloud_min_major='12'>
          <postfix>
            drop table #v
          </postfix>
        </version>
    </settings>
    <properties>
        <property name="RequestorSpid" type="int">l.spid</property>
        <property name="LockType" type="nvarchar" size='36'>v.name</property>
        <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>
B<?xml version="1.0" ?>
<EnumObject type="DatabaseMapping" impl_type="SqlObject" min_major='7' >
	<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'>
			<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' >
			<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='DatabaseMasterKey' impl_type='SqlObject' min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
  <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>
    <version min_major='9'>
      <property_link fields = '#IsEncryptedByServer#' join='sys.databases AS mkdb'>mkdb.database_id=db_id()</property_link>
    </version>
    <!--It's preferable to use db_id() but on Azure SQL DB and Azure SQL DW the ID in sys.databases and the one from db_id() may
        not match up. So as a special case we use db_name() on Azure instead -->
    <version cloud_min_major='12' datawarehouse_enabled='true'>
      <property_link fields = '#IsEncryptedByServer#' join='sys.databases AS mkdb'>mkdb.name=db_name()</property_link>
    </version>
  </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>
    <!--Though we have DML to open/close master key for Azure SQL DW, currently no catalog view(sys.openkeys not supported)
        was provided for getting its "open" status, so we don't support retrieving this property here-->
    <version min_major='9' cloud_min_major='12'>
      <property name='IsOpen' type='bit' access='Read' cast='true'>ISNULL(ok.status, 0)</property>
    </version>
    <property name='IsEncryptedByServer' type='bit' access='Read' convert='true'>ISNULL(mkdb.is_master_key_encrypted_by_server, 0)</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>
J*<?xml version="1.0" ?>
<EnumObject type="Database" impl_type="Database" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
    <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='15'>
        <prefix fields='#DataRetentionEnabled#'>
          create table #temp_data_retention_property2 (db_id int not null, is_data_retention_enabled bit)

          if serverproperty('engineedition') = 9
          exec sp_executesql N'insert into #temp_data_retention_property2
          select dr_db.database_id, dr_db.is_data_retention_enabled
          from sys.databases dr_db'
        </prefix>

        <postfix fields='#DataRetentionEnabled#'>
          drop table #temp_data_retention_property2
        </postfix>
      </version>
        <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='15'>
            <!--  Property only available on SQL EDGE i.e EngineEdition == 9 -->
            <property name="DataRetentionEnabled" type="bit" cast='true'>ISNULL((select is_data_retention_enabled from #temp_data_retention_property2 as tdrp where tdrp.db_id = dtb.database_id),0)</property>
        </version>
        <version min_major='12'>
            <property name="AutoCreateStatisticsIncremental" type="bit">dtb.is_auto_create_stats_incremental_on</property>
        </version>

        <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'  cloud_min_major='10' datawarehouse_enabled='true'>
            <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' datawarehouse_enabled='true'>
          <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>
C2<?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 where availability_mode &lt;&gt; 4
    </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="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="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>
    <version min_major='11' max_major='11'>
      <property name="EstimatedRecoveryTime" type="float" access="Read">ISNULL(CASE dbr.redo_rate WHEN 0 THEN -2 ELSE CAST(dbr.redo_queue_size AS float) / dbr.redo_rate END, -2)</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>
    </version>
    <version min_major='12'>
      <!--Estimated Recovery Time(RTO) calculation: 
            1) if db is in primary replica, dont calculate its RTO, return -1 and display empty value in frontend 
            2) else if redo_queue_size is null, return -2 and display Not Available in frontend 
            3) else if redo_queue_size is 0, then RTO is 0 
            4) else if redo_rate is null or 0, return -2 and display Not Available in frontend
            5) else if redo_queue_size/redo_rate is 0, return -2 and display Not Available in frontend
            6  else return redo_queue_size/redo_rate as float value -->
      <property name="EstimatedRecoveryTime" type="float" access="Read">ISNULL(CASE WHEN dbr.is_primary_replica = 1 THEN -1 WHEN dbr.redo_queue_size is null THEN -2 WHEN dbr.redo_queue_size = 0 THEN 0 WHEN dbr.redo_rate is null or dbr.redo_rate = 0 THEN -2 ELSE CAST(dbr.redo_queue_size AS float) / dbr.redo_rate END, -2)</property>
      <!--Estimated Data Loss(RPO) calculation: 
            1) if db is in primary replica, dont calculate its RPO, return -1 and display empty value in frontend
            2) else if db is failover ready, then RPO is 0
            3) else if datediff between db's last commmit time and its correlated primary db's last commit time is null, then return -2 and display Not Available in frontend
            4) else return datediff(in seconds) between db's last commmit time and its correlated primary db's last commit time as int value-->
      <property name="EstimatedDataLoss" type="int" access="Read">CASE WHEN dbr.is_primary_replica = 1 THEN -1 WHEN dbcs.is_failover_ready = 1 THEN 0 ELSE ISNULL(DATEDIFF(ss, dbr.last_commit_time, dbrp.last_commit_time), -2) END </property>
    </version>
  </properties>
</EnumObject>
5
<?xml version="1.0" ?>
<EnumObject min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
<<?xml version="1.0" ?>
<EnumObject type="Member" impl_type="SqlObject" min_major='7' cloud_min_major="10" datawarehouse_enabled='true'>
  <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' cloud_min_major="10" datawarehouse_enabled='true'>
      <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>
        <!--
        For below sql statements we need to replace @@ROWCOUNT since it's not currently supported by Azure
        SQL DW database. Here we use @@ROWCOUNT mainly to count if there's any rows being inserted into the
        temporary table in each iteration, if no insertions found, then end the while loop. According to
        this, we can rewrite @@ROWCOUNT by recording temp table row count for both before and after each
        insertion, and use the difference of these 2 row counts to represent number of rows being inserted.
        -->
        <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
declare @row_count_previous int
declare @row_count_current int
set @row_count_previous = (SELECT COUNT(*) FROM #tmp_role_member_ids)
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
  set @row_count_current = (SELECT COUNT(*) FROM #tmp_role_member_ids)
  if @row_count_current - @row_count_previous &lt;= 0
    break
  set @generation = @generation + 1
  set @row_count_previous = @row_count_current
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' cloud_min_major="10" datawarehouse_enabled='true'>
      <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' datawarehouse_enabled='true'>
      <property name="Login" type="sysname">0</property>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' cloud_min_major='12'>
  <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' cloud_min_major='12'>
      <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='false'>p.value</property>
  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="Default" impl_type="SqlObject" min_major='7'  cloud_min_major='12'>
	<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'  cloud_min_major='12'>
			<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'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
]<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7'>
	<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'>
			<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'>
			<!--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 type="DefaultConstrain" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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>
    <version min_major='7' max_major='10' cloud_min_major='12'  datawarehouse_enabled='true'>
      <property name="IsFileTableDefined" type="bit" cast='true' access="read">0</property>
    </version>
	</properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject min_major='7'>
	<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'>
			<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'>
			<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 type="File" impl_type="SqlObject" min_major='7'>
  <settings main_table="#filetmpfin">
    <version min_major='7' max_major='13'>
      <prefix >        
        create table #filetmpfin (Name nvarchar(255) NOT NULL, IsFile bit NULL, FullName nvarchar(300) not NULL)
        if(@Name is null)
        begin
          if (right(@Path, 1) = '\')
            select @Path= substring(@Path, 1, len(@Path) - charindex('\', reverse(@Path)))
          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, @Path + '\' + Name 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
          if (right(@FullName, 1) = '\')
            select @Path= substring(@Path, 1, len(@FullName) - charindex('\', reverse(@FullName)))
          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, @FullName from #filetmp2 where Exist = 1 or IsDir = 1
          drop table #filetmp2
        end
      </prefix>
    </version>
    <version min_major='14'>
      <prefix >
        create table #filetmpfin (Name nvarchar(255) NOT NULL, IsFile bit NULL, FullName nvarchar(300) not NULL)
        declare @FullName nvarchar(300)  
        if exists (select 1 from sys.all_objects where name = 'dm_os_enumerate_filesystem' and type = 'IF' and is_ms_shipped = 1)
        begin 
          if (@Name is null)
          begin 
              insert #filetmpfin select file_or_directory_name, 1 - is_directory, full_filesystem_path from sys.dm_os_enumerate_filesystem(@Path, '*') where [level] = 0
          end 
          if (NOT @Name is null)
          begin 
            if(@Path is null) 
              select @FullName = @Name 
            else
              select @FullName = @Path 	+ convert(nvarchar(1), serverproperty('PathSeparator')) + @Name 
              create table #filetmp3 ( Exist bit NOT NULL, IsDir bit NOT NULL, DirExist bit NULL ) 
              insert #filetmp3 select file_exists, file_is_a_directory, parent_directory_exists from sys.dm_os_file_exists(@FullName) 
              insert #filetmpfin select @Name, 1-IsDir, @FullName from #filetmp3 where Exist = 1 or IsDir = 1 
              drop table #filetmp3 
          end
        end 
        else      
        begin         
          if(@Name is null)
          begin
            if (right(@Path, 1) = '\')
              select @Path= substring(@Path, 1, len(@Path) - charindex('\', reverse(@Path)))
            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, @Path + '\' + Name from #filetmp f
            drop table #filetmp
          end 
          if(NOT @Name is null)
          begin
            if(@Path is null)
              select @FullName = @Name
            else
              select @FullName = @Path +  '\' + @Name
            if (right(@FullName, 1) = '\')
              select @Path= substring(@Path, 1, len(@FullName) - charindex('\', reverse(@FullName)))
            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, @FullName from #filetmp2 where Exist = 1 or IsDir = 1 
            drop table #filetmp2
          end 
        end 
      </prefix>
    </version>
    <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">FullName</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="DistributionColumn" impl_type="SqlObject" min_major='11'>
  <settings>
    <parent_link>
      <link parent="ID" local="IndexID" />
      <link parent="ParentID" local="TableID" />
    </parent_link>
      <property_link table = "sys.index_columns AS dc_ic">((dc_ic.distribution_ordinal !=0) AND (dc_ic.index_id = i.index_id) AND (dc_ic.object_id = i.object_id))</property_link>
      <property_link fields = '#Name#' join="sys.columns AS clmns">((clmns.object_id = dc_ic.object_id) AND (clmns.column_id = dc_ic.column_id))</property_link>
  </settings>
  <properties>
    <include file='inc_urn.xml' />
      <property name="Name" type="sysname">clmns.name</property>
      <property name="ID" type="int" access="Read" cast='true'>dc_ic.distribution_ordinal</property>
      <property name="TableID" type="int" hidden='true'>dc_ic.object_id</property>
      <property name="IndexID" type="int" hidden='true'>dc_ic.index_id</property>
  </properties>
</EnumObject>
  
N
<?xml version="1.0" ?>
<EnumObject type="FixedDrive" impl_type="SqlObject" min_major='7'>
  <settings main_table="#fixdrv">
    <version min_major="7" max_major="13">
      <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>
    <version min_major='9' max_major='13'>
        <prefix>
            insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 3
            update #fixdrv set Type = 'CD-ROM' where Type IS NULL
        </prefix>
    </version>
    <version min_major="7" max_major='13'>
      <prefix >
          update #fixdrv set Name = Name + ':'
      </prefix>
    </version>
    <version min_major='14'>
      <prefix>
          create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL, Type sysname NULL )
          if exists (select 1 from sys.all_objects where name='dm_os_enumerate_fixed_drives' and type ='V' and is_ms_shipped = 1)
            begin
              insert #fixdrv select fixed_drive_path, free_space_in_bytes/(1024*1024), drive_type_desc from sys.dm_os_enumerate_fixed_drives      
            end
          else
            begin
              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   
              insert #fixdrv (Name, Size) EXECUTE master.dbo.xp_fixeddrives 3
              update #fixdrv set Type = 'CD-ROM' where Type IS NULL
              update #fixdrv set Name = Name + ':'
            end
      </prefix>
    </version>
    <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='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>
z<?xml version='1.0' ?>
<EnumObject type='Endpoints' impl_type='SqlObject' min_major='9'>
	<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">
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
�<?xml version='1.0' ?>
<EnumObject type='HttpEndpoints' impl_type='SqlObject' min_major='9'>
	<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='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='SoapEndpoints' impl_type='SqlObject' min_major='9'>
	<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>
B<?xml version="1.0" ?>
<EnumObject type="HttpEndpoint" impl_type="SqlObject" min_major='9'>
	<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='TcpEndpoints' impl_type='SqlObject' min_major='9'>
	<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>
�<?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>
P<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='7'>
    <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'>
            <prefix>
                create table #err_log_tmp(ArchiveNo int, CreateDate nvarchar(44), 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">CASE WHEN ISDATE(er.CreateDate) = 1 THEN CONVERT(datetime, er.CreateDate, 101) ELSE NULL END </property>
        <version min_major='8'>
            <property name="Size" type="int">er.Size</property>
        </version>
    </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="ErrorLogText" impl_type="SqlObject" min_major='7'>
	<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">
            <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>
7<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' cloud_min_major='12'>
	<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' cloud_min_major='12'>
			<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='false'>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' cloud_min_major='12'>
			<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="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' cloud_min_major='12'>
	<settings>
		<version min_major='9' cloud_min_major='12'>
			<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' cloud_min_major='12'>
	<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>
O<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' cloud_min_major='12'>
	<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>
Q
<?xml version="1.0" ?>
<EnumObject type="ExtendedProperty" impl_type="SqlObject" min_major='8' cloud_min_major='12'>
	<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' cloud_min_major='12'>
	<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="ExternalDataSource" impl_type="SqlObject" min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
  <settings>
    <property_link table="sys.external_data_sources" alias="eds"/>
    <property_link fields="#Credential#" left_join="sys.database_scoped_credentials AS c">c.credential_id = eds.credential_id</property_link>
  </settings>
  <properties>
    <include file="inc_urn.xml"/>
    <include file='inc_named_object.xml' alias='eds' for="#ExtPropClass#ExtPropMajorID#ExtPropMinorID#"/>
    <property name="Name" type="sysname">eds.name</property>
    <property name="ID" type="int" access="read">eds.data_source_id</property>
    <property name="DataSourceType" type="tinyint" report_type="ExternalDataSourceType">eds.type</property>
    <property name="Location" type="nvarchar" size="4000">ISNULL(eds.location,N'')</property>
    <property name="Credential" type="sysname">ISNULL(c.name,N'')</property>
    <version min_major='13'>
      <property name="ResourceManagerLocation" type="nvarchar" size="4000">ISNULL(eds.resource_manager_location,N'')</property>
    </version>
    <version cloud_min_major='12'>
      <property name="DatabaseName" type="sysname">ISNULL(eds.database_name,N'')</property>
      <property name="ShardMapName" type="sysname">ISNULL(eds.shard_map_name,N'')</property>
    </version>
    <!--  External Generics is only available on prem. -->
    <version min_major='15'>
      <property name="ConnectionOptions" access="read" type="sysname">ISNULL(eds.connection_options,N'')</property>
      <property name="PushdownOption"    access="read" type="tinyint" report_type="ExternalDataSourcePushdownOption">case when ISNULL(eds.pushdown,N'OFF') = 'OFF' then 0 else 1 end</property>
    </version>
  </properties>
</EnumObject>N<?xml version="1.0" ?>
<EnumObject type="ExternalFileFormat" impl_type="SqlObject" min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
  <settings>
    <property_link table="sys.external_file_formats" alias="eff"/>
  </settings>
  <properties>
    <include file="inc_urn.xml"/>
    <include file='inc_named_object.xml' alias='eff' for="#ExtPropClass#ExtPropMajorID#ExtPropMinorID#"/>
    <property name="Name" type="sysname">eff.name</property>
    <property name="ID" type="int" access="read">eff.file_format_id</property>
    <property name="FormatType" type="tinyint" report_type="ExternalFileFormatType">CASE eff.format_type when 'DELIMITEDTEXT' then 0 when 'RCFILE' then 1 when 'ORC' then 2 when 'PARQUET' then 3 END</property>
    <property name="FieldTerminator" type="nvarchar" size="10">ISNULL(eff.field_terminator,N'')</property>
    <property name="StringDelimiter" type="nvarchar" size="10">ISNULL(eff.string_delimiter,N'')</property>
    <property name="DateFormat" type="nvarchar" size="50">ISNULL(eff.date_format,N'')</property>
    <property name="UseTypeDefault" type="bit" cast="true">CASE eff.use_type_default when 'FALSE' then 0 when NULL then 0 when 'TRUE' then 1 END</property>
    <property name="SerDeMethod" type="nvarchar" size="255">ISNULL(eff.serde_method,N'')</property>
    <property name="RowTerminator" type="nvarchar" size="10" access="read">ISNULL(eff.row_terminator,N'')</property>
    <property name="Encoding" type="nvarchar" size="10" access="read">ISNULL(eff.encoding,N'')</property>
    <property name="DataCompression" type="nvarchar" size="255">ISNULL(eff.data_compression,N'')</property>
    <version datawarehouse_enabled='true'>
      <property name="FirstRow" type="int" read_only_after_creation ="true">ISNULL(eff.first_row, 0)</property>
    </version>
  </properties>
</EnumObject>�<?xml version="1.0" ?>
<EnumObject type="ExternalLibrary" impl_type="SqlObject" min_major='14'>
    <settings>
        <property_link table='sys.external_libraries AS library' />
        <property_link fields='#Owner#' join='sys.database_principals AS princip'>princip.principal_id = library.principal_id</property_link>
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name="Name" type="sysname">library.name</property>
        <property name="ID" type="int" access='Read'>library.external_library_id</property>
        <property name="Owner" type="sysname">princip.name</property>            
        <property name="ExternalLibraryLanguage"  type="sysname">library.language</property>
    </properties>

    <!-- 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>	
</EnumObject>�<?xml version="1.0" ?>
<EnumObject type="ExternalLibraryFile" impl_type="SqlObject" min_major='14'>
    <settings>
        <parent_link>
            <link parent="ID" local="ParentID" />
        </parent_link>
        <property_link table='sys.external_library_files AS lfiles' />
        <property_link fields='#Owner#' join='sys.external_libraries AS library'>lfiles.external_library_id = library.external_library_id</property_link>      
    </settings>
    <properties>
        <include file='inc_urn.xml' />
        <property name="ParentID" type="int" hidden="true">lfiles.external_library_id</property>
        <property name="Platform" type="nvarchar" size='120'>lfiles.platform_desc</property>
        <property name="Name" type="sysname">library.name</property>
        <property name="Content" type="image" access='Read'>lfiles.content</property>
    </properties>
</EnumObject>�<?xml version="1.0" ?>
<EnumObject type="ExternalResourcePool" impl_type="SqlObject" min_major='13' >
    <settings>
        <property_link table="sys.resource_governor_external_resource_pools AS p"/>
    </settings>
    <properties>
        <include file='inc_urn.xml'/>
        <property name="ID" type="int" cast='true'>p.external_pool_id</property>
        <property name="Name" type="sysname">p.name</property>
        <property name="IsSystemObject" type="bit" access='Read' cast='true'>case when p.external_pool_id &lt; 256 then 1 else 0 end</property>
        <property name="MaximumCpuPercentage" type="int">p.max_cpu_percent</property>
        <property name="MaximumMemoryPercentage" type="int">p.max_memory_percent</property>
        <property name="MaximumProcesses" type="bigint" cast='true'>p.max_processes</property>
        <include file='inc_policy_health_state.xml'/>
    </properties>
</EnumObject>

�<?xml version="1.0" ?>
<EnumObject type="ExternalResourcePoolAffinityInfo" impl_type="SqlObject" min_major='13'>
    <settings>
        <property_link table="sys.resource_governor_external_resource_pools" alias= "[pls]"/>
        <property_link join="[sys].[dm_os_memory_nodes] AS [mn]">
                        [mn].[memory_node_id] &lt; (CASE WHEN @@version like '%(X64)%' THEN 64 ELSE 32 END)
        </property_link>
        <property_link left_join="[sys].[resource_governor_external_resource_pool_affinity] AS [plaff]">
                        [pls].[external_pool_id] = [plaff].[external_pool_id]
                        AND [mn].[processor_group] = [plaff].[processor_group]
        </property_link>
    </settings>
    <properties>
        <property name="PoolID" type="int" access="Read">[pls].[external_pool_id]</property>
        <property name="CpuIds" type="bigint" access="Read">[mn].[cpu_affinity_mask]</property>
        <property name="GroupID" type="int" access="Read">[mn].[processor_group]</property>
        <property name="NumaNodeId" type="int" access="Read">[mn].[memory_node_id]</property>
        <property name="AffinityType" type="int">
            CASE WHEN [plaff].[external_pool_id] IS NULL
            THEN 2 ELSE 1
            END
        </property>
        <property name="CpuAffinityMask" type="bigint" access="Read">ISNULL([plaff].[cpu_mask], 0)</property>
    </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' 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='s'/>              
        </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>
      <!-- snapshots do not have .ss files listed in sys.database_files, only in sys.master_files. 
      To allow db_owner privilege to script a database, use sys.database_files for non-snapshots -->
    <version min_major='10'>
        <prefix>  with s as (
select df.[type] as [type],
df.name collate database_default as name,
df.drop_lsn as drop_lsn,
dtb.database_id as database_id, 
df.[file_id] as [file_id],
df.max_size as max_size, 
df.growth as growth,
df.is_percent_growth as is_percent_growth,
df.is_media_read_only as is_media_read_only,
df.is_read_only as is_read_only,
df.[state] as [state],
df.is_sparse as is_sparse,
df.data_space_id as data_space_id,
df.physical_name collate database_default as physical_name,
df.size as size
    from sys.database_files as df inner join sys.databases as dtb 
         on (db_id() = dtb.database_id) 
              and (df.type = 2 or df.type = 0) 
              and (df.drop_lsn is null) 
         where
              (dtb.source_database_id is null)
union
select 
mf.[type] as [type],
mf.name collate database_default as name,
mf.drop_lsn as drop_lsn,
mf.database_id as database_id,
mf.[file_id] as [file_id],
mf.max_size as max_size,
mf.growth as growth,
mf.is_percent_growth as is_percent_growth,
mf.is_media_read_only as is_media_read_only,
mf.is_read_only as is_read_only,
mf.[state] as [state],
mf.is_sparse as is_sparse,
mf.data_space_id as data_space_id,
mf.physical_name collate database_default as physical_name,
mf.size as size 
    from sys.master_files as mf inner join sys.databases as db
       on (mf.database_id = db.database_id)
          and (mf.type = 2 or mf.type = 0) 
          and (mf.drop_lsn is null)           
          and (db.source_database_id is not null)
       where mf.database_id = db_id()) 
            </prefix>     
    </version>                    
    <version min_major='11'>
      <post_process fields = '#AvailableSpace#UsedSpace#' class_name='Microsoft.SqlServer.Management.Smo.PostProcessFile' triggered_fields='#Name2#GroupID2#FileDatabaseName#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'>
            <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 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'>
      <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="FileGroup" impl_type="SqlObject" min_major='7'  cloud_min_major='12' >
	<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'  cloud_min_major='12'>
			<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' cloud_min_major='12' >
			<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>
			<property name="IsFileStream" type="bit" cast='true' read_only_after_creation="true">CASE WHEN 'FD'=g.type THEN 1 ELSE 0 END</property>
			<property name="FileGroupType" type="int" report_type="FileGroupType" read_only_after_creation="true">CASE g.type WHEN 'FG' THEN 0 WHEN 'PS' THEN 1 WHEN 'FD' THEN 2 WHEN 'FX' THEN 3 END</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" >
			<include file='inc_policy_health_state.xml'/>
		</version>
		<version min_major='13'>
			<property name="AutogrowAllFiles" type="bit" cast='true'>g.is_autogrow_all_files</property>
		</version>
	</properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="FixedDrive" impl_type="SqlObject" min_major='7'>
  <settings main_table="#fixdrv">
    <version min_major="7" max_major="13">
      <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>
    </version>
    <version min_major="14">
      <prefix>
        create table #fixdrv ( Name sysname NOT NULL, Size int NOT NULL )
        if exists (select 1 from sys.all_objects where name='dm_os_enumerate_fixed_drives' and type ='V' and is_ms_shipped = 1)
          begin
             insert #fixdrv select fixed_drive_path, free_space_in_bytes/(1024*1024) from sys.dm_os_enumerate_fixed_drives
          end
        else
          begin
            insert #fixdrv EXECUTE master.dbo.xp_fixeddrives
            update #fixdrv set Name = Name + ':'
          end
      </prefix>
    </version>
    <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>T<?xml version="1.0" ?>
<EnumObject type="FKColumn" impl_type="SqlObject" min_major='7'  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'  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'  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>
d<?xml version="1.0" ?>
<EnumObject type="ForeignKey" impl_type="SqlObject" min_major='7'  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' max_major='11' cloud_min_major='10' cloud_max_major='11'>
			<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='12' cloud_min_major='12'>
			<property_link table="sys.foreign_keys AS cstr" />
			<property_link fields="#ReferencedKey#IsMemoryOptimized#"
					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'  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>

    <!--Hekaton properties-->
    <version min_major ='12' cloud_min_major='12'>
      <!--This returns true for indexes in memory optimized table or table type. -->
      <property name="IsMemoryOptimized" type="bit" cast="true" read_only_after_creation="true" expensive="true">
        CASE WHEN ((SELECT o.type FROM sys.objects o WHERE o.object_id=ki.object_id)='U')
        THEN
        CASE WHEN ((SELECT tbl.is_memory_optimized FROM sys.tables tbl WHERE tbl.object_id = ki.object_id)=1) THEN 1 ELSE 0 END
        ELSE
        CASE WHEN ((SELECT tt.is_memory_optimized FROM sys.table_types tt WHERE tt.type_table_object_id = ki.object_id)=1) THEN 1 ELSE 0 END
        END
      </property>
    </version>
  </properties>
</EnumObject>
K<?xml version="1.0" ?>
<EnumObject type="FullTextCatalog" impl_type="SqlObject" min_major='7' cloud_min_major='12'>
	<settings>
		<version min_major='9' cloud_min_major='12'>
			<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' cloud_min_major='12'>
			<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' cloud_min_major='12'>
			<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' cloud_min_major='12'>
      <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="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>
�<?xml version="1.0" ?>
<EnumObject type="FullTextIndex" impl_type="SqlObject" min_major='7' cloud_min_major='12'>
	<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' cloud_min_major='12'>
			<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' cloud_min_major='12'>
			<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' cloud_min_major='12'>
      <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' cloud_min_major='12'>
			<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' cloud_min_major='12'>
			<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' cloud_min_major='12'>
      <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>
    </version>
    <version min_major='10'>
      <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' cloud_min_major='12'>
      <property name="SearchPropertyListName" type="nvarchar" size='128'>ISNULL(spl.name,N'')</property>
    </version>
  </properties>
</EnumObject>
?<?xml version="1.0" ?>
<EnumObject type="FullTextIndexColumn" impl_type="SqlObject" min_major='7' cloud_min_major='12' >
  <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' cloud_min_major='12' >
      <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' cloud_min_major='12' >
      <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' cloud_min_major='12' >
      <property name="StatisticalSemantics" type="int" read_only_after_creation="true">icol.statistical_semantics</property>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0"?>
<EnumObject type="FullTextLanguage" impl_type="SqlObject" min_major='9' cloud_min_major='12' >
	<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="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>Z<?xml version="1.0"?>
<EnumObject type="FullTextService" impl_type="SqlObject" min_major='7' cloud_min_major='12' >
  <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>
    <version cloud_min_major='12'>
      <prefix fields="#DefaultPath#" >
        DECLARE @FullTextDefaultPath NVARCHAR(512)
        SET @FullTextDefaultPath = NULL
      </prefix>
    </version>
  </settings>
  <properties>
    <include file='inc_urn.xml'/>
    <version min_major = '7' max_major = '7' cloud_min_major='12' >
      <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' cloud_min_major='12' >
      <property name="ConnectTimeout" type="int" report_type2='System.TimeSpan'>ISNULL(FULLTEXTSERVICEPROPERTY('ConnectTimeout'),0) * 10000000</property>
      <property name="DefaultPath" type="nvarchar" size="512" access="Read">ISNULL(@FullTextDefaultPath, N'')</property>
      <property name="ResourceUsage" type="int" report_type="ResourceUsage">ISNULL(FULLTEXTSERVICEPROPERTY('ResourceUsage'), 0)</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' cloud_min_major='12' >
      <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' cloud_min_major='12'>
      <property name="CatalogUpgradeOption" type="int" report_type="FullTextCatalogUpgradeOption">FULLTEXTSERVICEPROPERTY('UpgradeOption')</property>
    </version>
  </properties>
</EnumObject>
8<?xml version="1.0" ?>
<EnumObject type="FullTextStopList" impl_type="SqlObject" min_major='10' cloud_min_major='12'>
	<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>
    <version min_major='10'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </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>
><?xml version="1.0" ?>
<EnumObject min_major='7' cloud_min_major='10' datawarehouse_enabled='true'>
	<settings>
		<version min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
			<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' cloud_min_major='12' datawarehouse_enabled='true'>		
			<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 ISNULL(user_name(am{0}.execute_as_principal_id), N'') 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 ISNULL(user_name(am{0}.execute_as_principal_id), N'') 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 ISNULL(user_name(am{0}.execute_as_principal_id), N'') end">
					<link_field type='local' field="SqlExecutionContextPrincipal" />
				</link_multiple>
			</property>
		</version>

    <version cloud_min_major='10' cloud_max_major='11'>
      <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>
y<?xml version="1.0" ?>
<EnumObject type="parameter" impl_type="SqlObject" min_major='7' cloud_min_major='10' datawarehouse_enabled='true'>
	<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' cloud_min_major='10' datawarehouse_enabled='true'>
			<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 min_major='7' cloud_min_major='10' datawarehouse_enabled='true'>
	<settings>
		<version min_major='9' cloud_min_major='10' datawarehouse_enabled='true'>
            <!-- 
            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' cloud_min_major='10' datawarehouse_enabled='true'>
			<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 type="Column" impl_type="SqlObject" min_major='7'>
	<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'>
			<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'>
			<property name="TableSchema" type="sysname">schema_name(tbl.schema_id)</property>
		</version>
	</properties>
</EnumObject>
Q<?xml version="1.0" ?>
<EnumObject type="inc_object" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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' datawarehouse_enabled='true'>
			<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>
A<?xml version="1.0" ?>
<EnumObject type="DbFile" impl_type="SqlObject" min_major='7'>
	<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'>
			<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*CONVERT(float,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'>
			<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 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>
      <property name="FileDatabaseName" type="nvarchar" size="520" hidden="true">db_name()</property>
    </version>
	</properties>
</EnumObject>
]<?xml version="1.0" ?>
<EnumObject type="inc_ddl_trigger_event" impl_type="SqlObject" min_major='9'  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="inc_text" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<property name="Text" type="nvarchar" size='max' expensive='true' mode="design">{0}.definition</property>
		</version>
	</properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="inc_policy_health_state" impl_type="SqlObject" min_major='11' >
  <settings>
    <version 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' >
      <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>
�	<?xml version="1.0" ?>
<EnumObject type="Database" impl_type="Database" min_major='7'  cloud_min_major='10'>
  <settings>
    <version min_major='10'>
	  <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='#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'>
      <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='#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>
    </version>
	<version min_major='10'>
	  <postfix fields='#HasDatabaseEncryptionKey#'>
        drop table #tmp_db_encryption_keys
      </postfix>
	</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>
      
    </version>
  </settings>
  <properties>    
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="Inc_Fragmentation" impl_type="SqlObject" min_major='7'>
	<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'>
			<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'>
			<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>
'
<?xml version="1.0" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<settings>
    <version min_major='9'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'  cloud_min_major='10'  datawarehouse_enabled='true'>
      <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>
o<?xml version="1.0" ?>
<EnumObject type="inc_object" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<property name="Schema" type="sysname" mode="design">SCHEMA_NAME({0}.schema_id)</property>
		</version>
	</properties>
</EnumObject>
K
<?xml version="1.0" ?>
<EnumObject min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
  <settings/>
  <properties>
    <version min_major='8'  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>
    </version>
        
    <version min_major='8'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <!-- 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="inc_policy_health_state" impl_type="SqlObject" min_major='10'>
  <settings>
    
  </settings>
  <properties>
    <version 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=(SELECT CONVERT(bit, current_value)
        FROM msdb.dbo.syspolicy_configuration
        WHERE name = '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="RuleDefault" impl_type="SqlObject" min_major='7'>
	<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 type="Server" impl_type="Server" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
  <settings>
    <version min_major='8'>
      <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#ErrorLogSizeKb#'>
        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">
      <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>
    </version>

    <version min_major='10' min_minor='50'>
      <prefix fields="#ProcessorUsage#">
        create table #tempproc(value int)
        insert #tempproc exec msdb.sys.sp_getProcessorUsage
      </prefix>
    </version>

    <!-- Setup Properties-->
    <version min_major="9">
      <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'>
      <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>
      <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="13">
      <!--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>
    </version>

    <version min_major="14" max_major="14">
      <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#">
        create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
        insert #SVer exec master.dbo.xp_msver
        insert #SVer select t.*
        from sys.dm_os_host_info
        CROSS APPLY (
        VALUES
        (1001, 'host_platform', 0, host_platform),
        (1002, 'host_distribution', 0, host_distribution),
        (1003, 'host_release', 0, host_release),
        (1004, 'host_service_pack_level', 0, host_service_pack_level),
        (1005, 'host_sku', host_sku, '')
        ) t(id, [name], internal_value, [value])
      </prefix>
    </version>
    <!-- In addition to v14 section, properties specific to Managed Instances are added here.
         We're detecting Managed Instances by checking if  SERVERPROPERTY('EngineEdition') equals to 8.
         
         The following properties are new additons: HardwareGeneration, ServiceTier, ReservedStorageSizeMB and UsedStorageSizeMB
         The following properties are adjusted to reflect reality for Managed Instances: PhysicalMemory and ProcessorCount.
    -->
    <version min_major='15'>
      <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#HardwareGeneration#ServiceTier#ReservedStorageSizeMB#UsedStorageSizeMB#">
        create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
        insert #SVer exec master.dbo.xp_msver
        insert #SVer select t.*
        from sys.dm_os_host_info
        CROSS APPLY (
        VALUES
        (1001, 'host_platform', 0, host_platform),
        (1002, 'host_distribution', 0, host_distribution),
        (1003, 'host_release', 0, host_release),
        (1004, 'host_service_pack_level', 0, host_service_pack_level),
        (1005, 'host_sku', host_sku, ''),
        (1006, 'HardwareGeneration', '', ''),
        (1007, 'ServiceTier', '', ''),
        (1008, 'ReservedStorageSizeMB', '0', '0'),
        (1009, 'UsedStorageSizeMB', '0', '0')
        ) t(id, [name], internal_value, [value])
        
        -- Managed Instance-specific properties
        if (SERVERPROPERTY('EngineEdition') = 8)
        begin
          DECLARE @gen4memoryPerCoreMB float = 7168.0
          DECLARE @gen5memoryPerCoreMB float = 5100.0
          DECLARE @physicalMemory float
          DECLARE @virtual_core_count int
          DECLARE @reservedStorageSize bigint
          DECLARE @usedStorageSize decimal(18,2)
          DECLARE @hwGeneration nvarchar(128)
          DECLARE @serviceTier nvarchar(128)
          SET @physicalMemory = (SELECT TOP 1 [virtual_core_count] *
            (
              CASE WHEN [hardware_generation] = 'Gen4' THEN @gen4memoryPerCoreMB
              WHEN [hardware_generation] = 'Gen5' THEN @gen5memoryPerCoreMB
              ELSE 0 END
             )
             FROM master.sys.server_resource_stats 
             ORDER BY start_time DESC)
    
          IF (@physicalMemory &lt;&gt; 0) 
          BEGIN
            UPDATE #SVer SET [Internal_Value] =  @physicalMemory WHERE Name = N'PhysicalMemory'
            UPDATE #SVer SET [Value] = CONCAT( @physicalMemory, ' (',  @physicalMemory * 1024, ')') WHERE Name = N'PhysicalMemory'
          END
          UPDATE #SVer SET [Internal_Value] = (SELECT TOP 1 [virtual_core_count] FROM master.sys.server_resource_stats ORDER BY start_time desc) WHERE Name = N'ProcessorCount'
          UPDATE #SVer SET [Value] = [Internal_Value] WHERE Name = N'ProcessorCount'

          SELECT TOP 1
            @hwGeneration = [hardware_generation],
            @serviceTier =[sku],
            @virtual_core_count = [virtual_core_count],
            @reservedStorageSize = [reserved_storage_mb],
            @usedStorageSize = [storage_space_used_mb]
          FROM master.sys.server_resource_stats
          ORDER BY [start_time] DESC

          UPDATE #SVer SET [Value] = @hwGeneration WHERE Name = N'HardwareGeneration'
          UPDATE #SVer SET [Value] = @serviceTier WHERE Name = N'ServiceTier'
          UPDATE #SVer SET [Value] = @reservedStorageSize WHERE Name = N'ReservedStorageSizeMB'
          UPDATE #SVer SET [Value] = @usedStorageSize WHERE Name = N'UsedStorageSizeMB'
        end
      </prefix>
    </version>
    <version min_major="8" max_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="#ErrorLogSizeKb#">
        declare @ErrorLogSizeKb int
        exec master.dbo.xp_instance_regread @HkeyLocal, @InstanceRegPath, N'ErrorLogSizeInKb', @ErrorLogSizeKb OUTPUT
      </prefix>
    </version>
    <version min_major="11" max_major="13">
      <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
        --Querying this DMV using a contained auth connection throws error 15562 (Module is untrusted)
        --because of lack of trustworthiness by the server. This is expected so we just leave the
        --values as default
        IF(ERROR_NUMBER() NOT IN (297,300, 15562))
        BEGIN
        THROW
        END
        END CATCH
      </prefix>
    </version>
    
    <version min_major="14" max_major="14">
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLog nvarchar(512)
        declare @ErrorLogPath nvarchar(512)
        declare @Slash varchar = convert(varchar, serverproperty('PathSeparator'))
        select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'master'
        select @LogPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'mastlog'
        select @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512))
        select @ErrorLogPath=IIF(@ErrorLog IS NULL, N'', substring(@ErrorLog, 1, len(@ErrorLog) - charindex(@Slash, 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() NOT IN (297,300, 15562))
        BEGIN
        THROW
        END
        END CATCH
      </prefix>
    </version>

    <version min_major="15">
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLog nvarchar(512)
        declare @ErrorLogPath nvarchar(512)
        declare @Slash varchar = convert(varchar, serverproperty('PathSeparator'))
        if (SERVERPROPERTY('EngineEdition') = 8 /* SQL Managed Instance */) 
        begin
          select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where file_id = 1
          select @LogPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where file_id = 2
        end
        else
        begin
          select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'master'
          select @LogPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'mastlog'
        end
        select @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512))
        select @ErrorLogPath=IIF(@ErrorLog IS NULL, N'', substring(@ErrorLog, 1, len(@ErrorLog) - charindex(@Slash, 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() NOT IN (297,300, 15562))
        BEGIN
        THROW
        END
        END CATCH
      </prefix>
    </version>
      
    <version min_major="8" max_major="14" >
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#">
        drop table #SVer
      </postfix>
    </version>
    <version min_major="15" >
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#ProcessorUsage#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#HardwareGeneration#ServiceTier#ReservedStorageSizeMB#UsedStorageSizeMB#">
        drop table #SVer
      </postfix>
      </version>
    <version min_major="10" min_minor="50" >
      <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">
      <!--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' cloud_min_major='12' >
      <property name="IsFullTextInstalled" type="bit" cast='true' access="Read">FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')</property>
    </version>
    <version min_major='8'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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="ProductUpdateLevel" type="sysname" access="Read" cast='true'>ISNULL(SERVERPROPERTY(N'ProductUpdateLevel'), N'')</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' max_major='13'>
      <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='14'>
      <!-- Managed Instance specifics - NULLs are returned for all of these properties, unlike other box editions -->
      <property name="IsClustered" type="bit" access="Read" cast='true'>ISNULL(SERVERPROPERTY('IsClustered'), 0)</property>
      <property name="NetName" type="sysname" access="Read" cast = 'true'>ISNULL(SERVERPROPERTY(N'MachineName'), N'')</property>
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">ISNULL(SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS'),N'')</property>
      <property name="ServiceStartMode" type="int" report_type="ServiceStartMode" access="Read">ISNULL(@ServiceStartMode,2)</property>
      <property name="BrowserStartMode" type="int" report_type="ServiceStartMode" access="Read" expensive="true">ISNULL(@BrowserStartMode,4)</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 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'>
      <property name="DefaultFile" type="nvarchar" size="512">SERVERPROPERTY('instancedefaultdatapath')</property>
      <property name="DefaultLog" type="nvarchar" size="512">SERVERPROPERTY('instancedefaultlogpath')</property>
      <property name="ErrorLogSizeKb" type="int" expensive="true">ISNULL(@ErrorLogSizeKb, 0)</property>
    </version>
    <version min_major='8' max_major='9'>
      <property name="TapeLoadWaitTime" type="int">@SmoTapeLoadWaitTime</property>
    </version>
    <version min_major='9'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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'>
      <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="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="BrowserServiceAccount" type="nvarchar" size="512" access="Read" expensive="true">ISNULL(@BrowserServiceAccount,N'')</property>
    </version>
    <version min_major='9' max_major='13'>
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS')</property>
      <property name="ServiceStartMode" type="int" report_type="ServiceStartMode" access="Read">@ServiceStartMode</property>
      <property name="BrowserStartMode" type="int" report_type="ServiceStartMode" access="Read" expensive="true">ISNULL(@BrowserStartMode,4)</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" min_minor="50">
      <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'>
      <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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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>

    <!-- Polybase properties -->
    <version min_major='13'>
      <property name="IsPolyBaseInstalled" type="bit" cast='true' access="Read">SERVERPROPERTY('IsPolyBaseInstalled')</property>
    </version>

    <property name="IsXTPSupported" type="bit" cast="true" access="Read" expensive='true'>ISNULL(SERVERPROPERTY(N'IsXTPSupported'), 0)</property>

    <version min_major="7" max_major="13" cloud_min_major="11" datawarehouse_enabled='true'>
      <property name="HostPlatform" type="nvarchar" size="512" access="Read">N'Windows'</property>
    </version>

    <version min_major='14'>
      <property name="HostPlatform" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_platform')</property>
      <property name="HostDistribution" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_distribution')</property>
      <property name="HostRelease" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_release')</property>
      <property name="HostServicePackLevel" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_service_pack_level')</property>
      <property name="HostSku" type="int" access="Read" expensive='true'>( select Internal_Value from #SVer where Name =N'host_sku')</property>
    </version>

    <!-- Managed-instance specific properties -->
    <version min_major='15'>
     <property name="HardwareGeneration" type="nvarchar" size="128" access="Read" expensive='true'>( select Value from #SVer where Name = N'HardwareGeneration')</property>
     <property name="ServiceTier" type="nvarchar" size="128" access="Read" expensive='true'>( select Value from #SVer where Name = N'ServiceTier')</property>
     <property name="ReservedStorageSizeMB" type="int" access="Read" expensive='true'>( select cast(cast(Value as numeric(19,4)) as int) from #SVer where Name = N'ReservedStorageSizeMB' )</property>
     <property name="UsedStorageSizeMB" type="int" access="Read" expensive='true'>( select cast(cast(Value as numeric(19,4)) as int) from #SVer where Name = N'UsedStorageSizeMB' )</property>
    </version>
  </properties>
</EnumObject>
n<?xml version="1.0" ?>
<EnumObject min_major='7'>
	<settings>
		<version min_major='9'>
            <!-- 
            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'>
			<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>
D<?xml version="1.0" ?>
<EnumObject min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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">ISNULL(OBJECTPROPERTY({0}.id, N'IsSchemaBound'), 0)</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'   cloud_min_major='10' datawarehouse_enabled='true'>
			<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>
i<?xml version="1.0" ?>
<EnumObject min_major='7'>
	<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'>
			<!-- 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 type="Table" impl_type="SqlObject" min_major='7'  cloud_min_major='12' datawarehouse_enabled='true'>
  <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'  cloud_min_major='12' datawarehouse_enabled='true'>
      <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'>
      <property_link fields='#FileStreamFileGroup#FileStreamPartitionScheme#' left_join='sys.tables AS t'>t.object_id = {0}.object_id</property_link>
    </version>
    <version min_major='10' max_major='10'>
      <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>
    <version min_major='11'>
      <property_link fields='#FileStreamFileGroup#FileStreamPartitionScheme#' left_join='sys.data_spaces AS dstbl'>
        <!--Consideration for Hekaton objects where index type is hash(7) -->
        <link_multiple no='1' expression="dstbl.data_space_id = t.Filestream_data_space_id and ({0}.index_id &lt; 2 or ({0}.type = 7 and {0}.index_id &lt; 3))">
          <!--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'  max_major='11'>
      <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='12' cloud_min_major='12'>
      <property name="FileGroup" type="sysname" read_only_after_creation="true" expensive="true">
        CASE WHEN ((SELECT tbl{0}.is_memory_optimized FROM sys.tables tbl{0} WHERE tbl{0}.object_id = {0}.object_id)=1 or
        (SELECT tt{0}.is_memory_optimized FROM sys.table_types tt{0} WHERE tt{0}.type_table_object_id = {0}.object_id)=1)
        THEN ISNULL((SELECT ds.name FROM sys.data_spaces AS ds WHERE ds.type='FX'), N'')
        ELSE CASE WHEN 'FG'=ds{0}.type THEN ds{0}.name ELSE N'' END
        END
      </property>
    </version>
    <version datawarehouse_enabled='true'>
      <property name="FileGroup" type="sysname" read_only_after_creation="true" expensive="true">
        CASE WHEN 'FG'=ds{0}.type 
        THEN ds{0}.name ELSE N'' 
        END
      </property>
    </version>
    <version min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
      <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>
    <version cloud_min_major='12'>
      <property name="FileStreamFileGroup" type="sysname">N''</property>
      <property name="FileStreamPartitionScheme" type="sysname">N''</property>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0"  encoding="us-ascii" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7'   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'   cloud_min_major='10'>
			<property name="IsSystemObject" type="bit" access='Read' cast = 'true'>
                {0}.is_ms_shipped
           </property>
		</version>
	</properties>
</EnumObject>
9<?xml version="1.0"  encoding="us-ascii" ?>
<EnumObject type="inc_named_object" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'>
			<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' datawarehouse_enabled='true'>
      <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_text" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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><?xml version="1.0" ?>
<EnumObject min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
            <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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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>
    </version>
    <version min_major='9'  cloud_min_major='10'>
			<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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>
		</version>

    <version min_major='9'  cloud_min_major='10'>
      <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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <property name="UserType" type="sysname" access='Read'>CASE WHEN usrt.is_table_type = 1 THEN N'structured' ELSE N'' END</property>
    </version>
    </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7'   cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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="inc_urn" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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><?xml version="1.0" ?>
<EnumObject type="inc_urn" impl_type="SqlObject" min_major='7'  cloud_min_major='12'>
	<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="inc_urn_message" impl_type="SqlObject" min_major='7'>
	<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="inc_procedures" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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_single" impl_type="SqlObject" min_major='7' cloud_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="inc_urn_soapmethod" impl_type="SqlObject" min_major='7'>
	<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>

Oc<?xml version="1.0" ?>
<EnumObject type="Index" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
  <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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <!-- 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='14' cloud_min_major='12'>
      <property_link fields='#ResumableOperationState#' left_join="sys.index_resumable_operations AS op">op.index_id = i.index_id AND op.object_id = i.object_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" cloud_min_major='12' >
      <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' cloud_min_major='12' datawarehouse_enabled='true'>
      <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' cloud_min_major='12' datawarehouse_enabled='true'>
      <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>

    <version min_major ="12" cloud_min_major='12'>
      <property_link fields='#BucketCount#' left_join="sys.hash_indexes AS hi">i.object_id = hi.object_id AND i.index_id = hi.index_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' cloud_min_major='12'>
      <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'>
      <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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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">ISNULL(INDEXPROPERTY(i.object_id, i.name, N'IsPadIndex'), 0)</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'>
      <!-- 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>
    </version>
    <version min_major='9' cloud_min_major='10' datawarehouse_enabled='true'>
      <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>
      <property name="DataSpaceID" type="int" hidden='true'>i.data_space_id</property>
    </version>
    <version min_major='9' cloud_min_major='12'>
      <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>
      <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="7" cloud_min_major='10' max_major='9' cloud_max_major='11'>
        <property name="HasSparseColumn" type="bit" cast='true' access='Read'>0</property>
    </version>
    <version min_major='10' cloud_min_major='12' datawarehouse_enabled='true'>
      <!-- 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>
      <!-- whether any source columns for the index are sparse -->
      <property name="HasSparseColumn" type="bit" cast='true' access='Read'>
        ISNULL ((select distinct 1 from sys.index_columns ic 
                 join sys.columns c on ic.object_id = c.object_id and c.column_id = ic.column_id 
                 where c.is_sparse = 1 and c.object_id = i.object_id and ic.index_id = i.index_id), 0)
      </property>
    </version>
    <version min_major='10'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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' cloud_max_major='11'>
      <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 min_major='7'  cloud_min_major='12' datawarehouse_enabled='true'>
      <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>
    

     <!-- IndexType: Looks up sys.indexes.type and returns an SMO index type
      		SMO Index Type				SMO Value	Sys.indexes.type
      		ClusteredIndex				0			1
      		NonClusteredIndex 			1			2
      		PrimaryXmlIndex				2			3
      		SecondaryXmlIndex			3			3 (note special case to distinguish xml indexes)
      		SpatialIndex				4			4
      		NonClusteredColumnStoreIndex		5			6
      		HashIndex				6			7
		(selective xml index)			7			3
		(selective xml index)			8			3
      		ClusteredColumnStoreIndex		9			5-->

    <!-- 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 WHEN 7 THEN 6 ELSE 1 END
       </property>
    </version>

    <!-- We must specify max_minor, otherwise XmlReader will fail to distinguish the following from the one above it-->
    <version min_major='11' max_major='11' min_minor='0' max_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 7 WHEN 3 THEN 8 END
                      WHEN 4 THEN 4 WHEN 6 THEN 5 ELSE 1 END
       </property>
    </version>

    <!-- Hash Indexes and Clustered Columnstore indexes added in SQL2014 (version 12) -->
    <version min_major='12' cloud_min_major='12'>
       <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 7 WHEN 3 THEN 8 END
                      WHEN 4 THEN 4 WHEN 6 THEN 5 WHEN 7 THEN 6 WHEN 5 THEN 9 ELSE 1 END
       </property>
    </version>

    <!-- Hash Indexes and Clustered Columnstore indexes added in SQL2014 (version 12) 
         SQL DW does not support xml indexes. -->
    <!-- IndexType: Looks up sys.indexes.type and returns an SMO index type
          SMO Index Type                SMO Value Sys.indexes.type
          HeapIndex                     10        0
          ClusteredIndex                0         1
          NonClusteredIndex             1         2
          PrimaryXmlIndex               2         3 (not supported for SQL DW)
          SecondaryXmlIndex             3         3 (note special case to distinguish xml indexes) (not supported for SQL DW)
          SpatialIndex                  4         4 (not supported for SQL DW)
          NonClusteredColumnStoreIndex  5         6
          HashIndex                     6         7
          (selective xml index)         7         3 (not supported for SQL DW)
          (selective xml index)         8         3 (not supported for SQL DW)
          ClusteredColumnStoreIndex     9         5 -->
          
    <version datawarehouse_enabled='true'>
      <property name="IndexType" type="tinyint" report_type="IndexType" read_only_after_creation="true" cast='true'>
        CASE i.type
        WHEN 0 THEN 10
        WHEN 1 THEN 0
        WHEN 2 THEN 1
        WHEN 6 THEN 5
        WHEN 7 THEN 6
        WHEN 5 THEN 9
        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'>
      <include file='inc_policy_health_state.xml'/>
    </version>

    <version min_major ='10' max_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' cloud_min_major='12' datawarehouse_enabled='true'>
      <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>
      
     <!--Hekaton properties-->
    <version min_major ='12' cloud_min_major='12'>
      <property name="BucketCount" type="int" cast="true" read_only_after_creation="true">case when (i.type=7) then hi.bucket_count else 0 end</property>
      <!--This returns true for indexes in memory optimized table or table type. -->  
      <property name="IsMemoryOptimized" type="bit" cast="true" read_only_after_creation="true" expensive="true">
          CASE WHEN ((SELECT o.type FROM sys.objects o WHERE o.object_id=i.object_id)='U')
          THEN
          CASE WHEN ((SELECT tbl.is_memory_optimized FROM sys.tables tbl WHERE tbl.object_id = i.object_id)=1) THEN 1 ELSE 0 END
          ELSE
          CASE WHEN ((SELECT tt.is_memory_optimized FROM sys.table_types tt WHERE tt.type_table_object_id = i.object_id)=1) THEN 1 ELSE 0 END
          END
      </property>
    </version>

    <version min_major="13" cloud_min_major="12">
       <property name='CompressionDelay' type='int' cast='true' read_only_after_creation='false' mode="design#deploy" default_value="0">i.compression_delay</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' cloud_min_major='12'>
      <property name="IndexedXmlPathName" type="sysname" read_only_after_creation="true">
        ISNULL(indexedpaths.name, N'')
      </property>
    </version>

    <version min_major='14' cloud_min_major='12'>
      <property name="ResumableOperationState" type="int" access='Read' report_type="ResumableOperationStateType">
        <!-- op.state=0 for RUNNING, op.state=1 for PAUSED, op.state=2 for NONE -->
        ISNULL(op.state, 2)
      </property>
    </version>

    <version min_major='15' cloud_min_major='12'>
      <property name="IsOptimizedForSequentialKey" type="bit" cast="true" mode="design#deploy">ISNULL(INDEXPROPERTY(i.object_id, i.name, N'IsOptimizedForSequentialKey'), 0)</property>
    </version>

  </properties>
</EnumObject>
%<?xml version="1.0" ?>
<EnumObject type="IndexedColumn" impl_type="SqlObject" min_major='7' cloud_min_major='10' datawarehouse_enabled='true'>
  <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' cloud_min_major='10' datawarehouse_enabled='true'>
      <!-- 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' cloud_min_major='10' datawarehouse_enabled='true'>
      <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="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>
    <version min_major='15' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="ColumnStoreOrderOrdinal" type="int" access="Read" cast = 'true'>ISNULL(ic.column_store_order_ordinal,0)</property>
    </version>
    <version min_major='9' cloud_min_major='10'>
      <property name="IsComputed" type="bit" access="Read"
                cast = 'true'>COLUMNPROPERTY(ic.object_id, clmns.name, N'IsComputed')</property>
    </version>
  </properties>
</EnumObject>`
<?xml version="1.0" ?>
<EnumObject type="IndexedXmlPath" impl_type="SqlObject" min_major='11'   cloud_min_major='12'>
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>
	
		<version min_major='11'   cloud_min_major='12'>		
			<!-- 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'  cloud_min_major='12' >	
			<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>
G<?xml version="1.0" ?>
<EnumObject type="IndexedXmlPathNamespace" impl_type="SqlObject" min_major='11' cloud_min_major='12'>
	<settings >
		<parent_link>
			<link parent="ID" local="IndexID" />
			<link parent="ParentID" local="TableID" />
		</parent_link>

		<version min_major='11' cloud_min_major='12'>		
			<property_link table = "sys.selective_xml_index_namespaces as xmlTable" />
		</version>		
	</settings>
	<properties>
		<version min_major='11' cloud_min_major='12'>	
            <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>
<?xml version="1.0" ?>
<EnumObject type="FragmentationDetailed" impl_type="SqlObject" min_major='7'>
	<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'>
			<property name="FragmentationLevel" type="sysname" hidden='true'>DETAILED</property>
		</version>
	</properties>
</EnumObject>
$<?xml version="1.0" ?>
<EnumObject type="FragmentationFast" impl_type="SqlObject" min_major='7'>
	<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'>
			<property name="FragmentationLevel" type="sysname" hidden='true'>LIMITED</property>
		</version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="FragmentationSampled" impl_type="SqlObject" min_major='7'>
	<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'>
			<property name="FragmentationLevel" type="sysname" hidden='true'>SAMPLED</property>
		</version>
	</properties>
</EnumObject>

�Z<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
  <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'>
      <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' max_major='13'>
      <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>
    </version>

    <version min_major='8'>
      <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='14' max_major='14'>
      <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#">
        create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
        insert #SVer exec master.dbo.xp_msver
        insert #SVer select t.*
        from sys.dm_os_host_info
        CROSS APPLY (
        VALUES
        (1001, 'host_platform', 0, host_platform),
        (1002, 'host_distribution', 0, host_distribution),
        (1003, 'host_release', 0, host_release),
        (1004, 'host_service_pack_level', 0, host_service_pack_level),
        (1005, 'host_sku', host_sku, '')
        ) t(id, [name], internal_value, [value])
        
      </prefix>
    </version>

    <!-- In addition to v14 section, properties specific to Managed Instances are added here.
         We're detecting Managed Instances by checking if  SERVERPROPERTY('EngineEdition') equals to 8.
         
         The following properties are new additons: HardwareGeneration, ServiceTier, ReservedStorageSizeMB and UsedStorageSizeMB
         The following properties are adjusted to reflect reality for Managed Instances: PhysicalMemory and ProcessorCount.
    -->
    <version min_major='15'>
      <prefix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#HardwareGeneration#ServiceTier#ReservedStorageSizeMB#UsedStorageSizeMB#">
          create table #SVer(ID int,  Name  sysname, Internal_Value int, Value nvarchar(512))
          insert #SVer exec master.dbo.xp_msver
          insert #SVer select t.*
          from sys.dm_os_host_info
          CROSS APPLY (
          VALUES
          (1001, 'host_platform', 0, host_platform),
          (1002, 'host_distribution', 0, host_distribution),
          (1003, 'host_release', 0, host_release),
          (1004, 'host_service_pack_level', 0, host_service_pack_level),
          (1005, 'host_sku', host_sku, ''),
          (1006, 'HardwareGeneration', '', ''),
          (1007, 'ServiceTier', '', ''),
          (1008, 'ReservedStorageSizeMB', '0', '0'),
          (1009, 'UsedStorageSizeMB', '0', '0')
          ) t(id, [name], internal_value, [value])

          -- Managed Instance-specific properties
          if (SERVERPROPERTY('EngineEdition') = 8)
          begin
            DECLARE @gen4memoryPerCoreMB float = 7168.0
            DECLARE @gen5memoryPerCoreMB float = 5100.0
            DECLARE @physicalMemory float
            DECLARE @virtual_core_count int
            DECLARE @reservedStorageSize bigint
            DECLARE @usedStorageSize decimal(18,2)
            DECLARE @hwGeneration nvarchar(128)
            DECLARE @serviceTier nvarchar(128)

            SET @physicalMemory = (SELECT TOP 1 [virtual_core_count] *
              (
                CASE WHEN [hardware_generation] = 'Gen4' THEN @gen4memoryPerCoreMB
                WHEN [hardware_generation] = 'Gen5' THEN @gen5memoryPerCoreMB
                ELSE 0 END
               )
               FROM master.sys.server_resource_stats 
               ORDER BY start_time DESC)
      
            IF (@physicalMemory &lt;&gt; 0) 
            BEGIN
              UPDATE #SVer SET [Internal_Value] =  @physicalMemory WHERE Name = N'PhysicalMemory'
              UPDATE #SVer SET [Value] = CONCAT( @physicalMemory, ' (',  @physicalMemory * 1024, ')') WHERE Name = N'PhysicalMemory'
            END

            UPDATE #SVer SET [Internal_Value] = (SELECT TOP 1 [virtual_core_count] FROM master.sys.server_resource_stats ORDER BY start_time desc) WHERE Name = N'ProcessorCount'
            UPDATE #SVer SET [Value] = [Internal_Value] WHERE Name = N'ProcessorCount'

            SELECT TOP 1
              @hwGeneration = [hardware_generation],
              @serviceTier =[sku],
              @virtual_core_count = [virtual_core_count],
              @reservedStorageSize = [reserved_storage_mb],
              @usedStorageSize = [storage_space_used_mb]
            FROM master.sys.server_resource_stats
            ORDER BY [start_time] DESC

            UPDATE #SVer SET [Value] = @hwGeneration WHERE Name = N'HardwareGeneration'
            UPDATE #SVer SET [Value] = @serviceTier WHERE Name = N'ServiceTier'
            UPDATE #SVer SET [Value] = @reservedStorageSize WHERE Name = N'ReservedStorageSizeMB'
            UPDATE #SVer SET [Value] = @usedStorageSize WHERE Name = N'UsedStorageSizeMB'
          end
      </prefix>
    </version>

    <version min_major='11' max_major='13'>
      <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='14' max_major='14'>
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLog nvarchar(512)
        declare @ErrorLogPath nvarchar(512)
        declare @Slash varchar = convert(varchar, serverproperty('PathSeparator'))
        select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'master'
        select @LogPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'mastlog'
        select @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512))
        select @ErrorLogPath=IIF(@ErrorLog IS NULL, N'', substring(@ErrorLog, 1, len(@ErrorLog) - charindex(@Slash, reverse(@ErrorLog))))
      </prefix>
      <prefix fields="#FullyQualifiedNetName#">
        declare @FullyQualifiedNetName nvarchar(255)
        exec master.dbo.xp_getnetname @FullyQualifiedNetName OUTPUT, 1
      </prefix>
    </version>
    <version min_major='15'>
      <prefix fields="#MasterDBPath#MasterDBLogPath#ErrorLogPath#">
        declare @MasterPath nvarchar(512)
        declare @LogPath nvarchar(512)
        declare @ErrorLog nvarchar(512)
        declare @ErrorLogPath nvarchar(512)
        declare @Slash varchar = convert(varchar, serverproperty('PathSeparator'))
        if (SERVERPROPERTY('EngineEdition') = 8 /* SQL Managed Instance */)
        begin
          select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where file_id = 1
          select @LogPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where file_id = 2
        end
        else
        begin
          select @MasterPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'master'
          select @LogPath=substring(physical_name, 1, len(physical_name) - charindex(@Slash, reverse(physical_name))) from master.sys.database_files where name=N'mastlog'
        end
        select @ErrorLog=cast(SERVERPROPERTY(N'errorlogfilename') as nvarchar(512))
        select @ErrorLogPath=IIF(@ErrorLog IS NULL, N'', substring(@ErrorLog, 1, len(@ErrorLog) - charindex(@Slash, reverse(@ErrorLog))))
      </prefix>
      <prefix fields="#FullyQualifiedNetName#">
        declare @FullyQualifiedNetName nvarchar(255)
        exec master.dbo.xp_getnetname @FullyQualifiedNetName OUTPUT, 1
      </prefix>
    </version> 
    <version min_major='8' max_major='13'>
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#">
       drop table #SVer
      </postfix>
    </version>
    <version min_major='14' max_major='14'>
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#">
        drop table #SVer
      </postfix>
    </version>
    <version min_major="15" >
      <postfix fields="#PhysicalMemory#ProcessorType#Product#Platform#Processors#OSVersion#Language#HostPlatform#HostDistribution#HostSku#HostServicePackLevel#HostRelease#HardwareGeneration#ServiceTier#ReservedStorageSizeMB#UsedStorageSizeMB#">
        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'>
      <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" max_major="13" cloud_min_major="11" datawarehouse_enabled='true'>
      <property name="HostPlatform" type="nvarchar" size="512" access="Read">N'Windows'</property>
      <property name="PathSeparator" type="nvarchar" size="1" access="Read">N'\'</property>
    </version>

    <version min_major='14'>
      <property name="HostPlatform" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_platform')</property>
      <property name="HostDistribution" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_distribution')</property>
      <property name="HostRelease" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_release')</property>
      <property name="HostServicePackLevel" type="nvarchar" size="512" access="Read" expensive='true'>( select Value from #SVer where Name =N'host_service_pack_level')</property>
      <property name="HostSku" type="int" access="Read" expensive='true'>( select Internal_Value from #SVer where Name =N'host_sku')</property>
      <property name="PathSeparator" type="nvarchar" size="1" access="Read">SERVERPROPERTY('PathSeparator')</property>
    </version>

    <version min_major='7' cloud_min_major='12' >
      <property name="IsFullTextInstalled" type="bit" cast='true' access="Read">FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')</property>
    </version>
    <version datawarehouse_enabled='true' >
      <property name="IsFullTextInstalled" type="bit" cast='true' access="Read">0</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 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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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' max_major='13'>
      <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='14'>
      <!-- Managed Instance specifics - NULLs are returned for all of these properties, unlike other box editions -->
      <property name="NetName" type="sysname" access="Read" cast = 'true'>ISNULL(SERVERPROPERTY(N'MachineName'),N'')</property>
      <property name="IsClustered" type="bit" access="Read" cast='true'>ISNULL(SERVERPROPERTY('IsClustered'),N'')</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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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'>
      <property name="HasNullSaPassword" type="bit" access='Read' cast='true' expensive='true'>null</property>
      <property name="BuildClrVersionString" type="sysname" access="Read">SERVERPROPERTY(N'BuildClrVersion')</property>
    </version>
    <version min_major='9' max_major='13'>
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS')</property>
    </version>
    <version min_major='14'>
      <!-- Managed Instance specifics - NULLs are returned for all of these properties, unlike other box editions -->
      <property name="ComputerNamePhysicalNetBIOS" type="sysname" access="Read">ISNULL(SERVERPROPERTY(N'ComputerNamePhysicalNetBIOS'),N'')</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>

    <!-- Polybase properties -->
    <version min_major='13'>
      <property name="IsPolyBaseInstalled" type="bit" cast='true' access="Read">SERVERPROPERTY('IsPolyBaseInstalled')</property>
    </version>

    <property name="IsXTPSupported" type="bit" cast="true" access="Read" expensive='true'>ISNULL(SERVERPROPERTY(N'IsXTPSupported'), 0)</property>

  <!-- Managed-instance specific properties -->
    <version min_major='15'>
      <property name="HardwareGeneration" type="nvarchar" size="128" access="Read" expensive='true'>( select Value from #SVer where Name = N'HardwareGeneration' )</property>
      <property name="ServiceTier" type="nvarchar" size="128" access="Read" expensive='true'>( select Value from #SVer where Name = N'ServiceTier' )</property>
      <property name="ReservedStorageSizeMB" type="int" access="Read" expensive='true'>( select cast(cast(Value as numeric(19,4)) as int) from #SVer where Name = N'ReservedStorageSizeMB' )</property>
      <property name="UsedStorageSizeMB" type="int" access="Read" expensive='true'>( select cast(cast(Value as numeric(19,4)) as int) from #SVer where Name = N'UsedStorageSizeMB' )</property>
    </version>
  </properties>
</EnumObject>
/<?xml version='1.0' ?>
<EnumObject type='SysjobsView' impl_type='SqlObject' min_major='7'>
	<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'>
			<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>
�.  <EnumObject type='SPGetSqlagentProperties' impl_type='SqlObject' min_major='7' >
  <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' >
      <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
        set @ServiceStartMode = 2
        EXEC master.sys.xp_instance_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT', N'Start', @ServiceStartMode OUTPUT
      </prefix>
    </version>
    <version 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' >
      <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' >
            <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" >
      <property name="AgentDomainGroup" type="nvarchar" size="128" access="Read">ISNULL(suser_sname(sid_binary(ISNULL(@AgtGroup,N''))),N'')</property>
    </version>
	</properties>
</EnumObject>
�<?xml version='1.0' ?>
<EnumObject type='SPHelpJobstep' impl_type='SqlObject' min_major='7' >
	<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' > 
            <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' >
			<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' >
			<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' >
			<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'>
	<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>
a<?xml version='1.0' ?>
<EnumObject type='KeyEncryption' impl_type='SqlObject' min_major='9'>
	<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="Language" impl_type="SqlObject" min_major='7' cloud_min_major='12'>
    <settings>
        <version min_major='7' max_major='8'>
            <property_link table="master.dbo.syslanguages s" />
        </version>
        <version min_major='9' cloud_min_major='12'>
          <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="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="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="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="Lock" impl_type="SqlObject" min_major='7' cloud_min_major='12' >
    <settings>
        <property_link table='#t AS l' />
        <version min_major='7'>
          <property_link fields='#LockType#' join='master.dbo.spt_values AS v'>v.number = l.mode AND v.type = N'L'</property_link>
        </version>
        <version cloud_min_major='12'>
          <property_link fields='#LockType#' join='#v AS v'>v.number = l.mode</property_link>
        </version>
        <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 + 1, 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>
        <!-- For azure we hard code the equivalent of select name, number from master.dbo.spt_values where type = N'L' -->
        <version cloud_min_major='12'>
          <prefix>
            CREATE TABLE #v(name nvarchar(36), number int)
            INSERT #v VALUES  (N'LOCK TYPES', 0),
                            (N'NULL', 1),
                            (N'Sch-S', 2),
                            (N'Sch-M', 3),
                            (N'S', 4),
                            (N'U', 5),
                            (N'X', 6),
                            (N'IS', 7),
                            (N'IU', 8),
                            (N'IX', 9),
                            (N'SIU', 10),
                            (N'SIX', 11),
                            (N'UIX', 12),
                            (N'BU', 13),
                            (N'RangeS-S', 14),
                            (N'RangeS-U', 15),
                            (N'RangeIn-Null', 16),
                            (N'RangeIn-S', 17),
                            (N'RangeIn-U', 18),
                            (N'RangeIn-X', 19),
                            (N'RangeX-S', 20),
                            (N'RangeX-U', 21),
                            (N'RangeX-X', 22);
          </prefix>
        </version>
        <version min_major='9' cloud_min_major='12'>
            <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 1
                when N'SCH_S'		then 2
                when N'SCH_M'		then 3
                when N'S'			then 4
                when N'U'			then 5
                when N'X'			then 6
                when N'IS'			then 7
                when N'IU'			then 8
                when N'IX'			then 9
                when N'SIU'			then 10
                when N'SIX'			then 11
                when N'UIX'			then 12
                when N'BU'			then 13
                when N'RS_S'		then 14
                when N'RS_U'		then 15
                when N'RI_NL'		then 16
                when N'RI_S'		then 17
                when N'RI_U'		then 18
                when N'RI_X'		then 19
                when N'RX_S'		then 20
                when N'RX_U'		then 21
                when N'RX_X'		then 22
                when N'LAST_MODE'	then 23
                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 sys.dm_tran_locks l WHERE resource_database_id != isnull(db_id('tempdb'), -1) 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' cloud_min_major='12'>
            <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'>
            <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>
        <version cloud_min_major='12'>
            <prefix fields='#Database#Schema#Table#Index#'>
                SELECT @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>
        <version cloud_min_major='12'>
          <postfix>
            drop table #v
          </postfix>
        </version>
    </settings>
    <properties>
        <property name="RequestorSpid" type="int">l.spid</property>
        <property name="LockType" type="nvarchar" size='36'>v.name</property>
        <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="LogFile" impl_type="SqlObject" min_major='7' >
	<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>

  </settings>
	<properties>
		<include file='inc_urn.xml' />
		<version min_major='9' >
			<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" >
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="Login" impl_type="SqlObject" min_major='7'   cloud_min_major='10' datawarehouse_enabled='true'>
	<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' >
			<property_link table='sys.server_principals AS log'>log.type in ('U', 'G', 'S', 'C', 'K', 'E', 'X') 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' datawarehouse_enabled='true'>
      <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' >
      <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  WHEN N'E' = log.type THEN 5 WHEN N'X' = log.type THEN 6 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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <!-- 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' datawarehouse_enabled='true'>
      <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' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
�<?xml version='1.0' ?>
<EnumObject type='Logmarkhistory' impl_type='SqlObject' min_major='8'>
	<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>
a<?xml version="1.0" ?>
<EnumObject type="Mail" impl_type="SqlObject" min_major='9'>
    <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="MailAccount" impl_type="SqlObject" min_major='9'>
    <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="MailProfile" impl_type="SqlObject" min_major='9'>
    <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="MailProfileAccounts" impl_type="SqlObject" min_major='9'>
	<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'>
	<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'>
    <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>
b<?xml version="1.0" ?>
<EnumObject type="ErrorLog" impl_type="SqlObject" min_major='9'>
	<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>
L<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9'>
	<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'>
			<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='Sysdbmaintplans' impl_type='SqlObject' min_major='7'>
	<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'>
			<property name='LogShipping' type='bit'>s.log_shipping</property>
		</version>
	</properties>
</EnumObject>
<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9'>
	<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'>
			<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'>
	<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>
<?xml version='1.0' ?>
<EnumObject type='MaintenancePlan' impl_type='SqlObject' min_major='9'>
	<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='MasterKeyEncryption' impl_type='SqlObject' min_major='9'>
	<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>
�<?xml version="1.0" ?>
<EnumObject type="Member" impl_type="SqlObject" min_major='7'>
    <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'>
            <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'>
      <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'>
      <property name="IsLogin" type="bit" cast='true' access='Read'>CASE p.type WHEN N'R' THEN 0 ELSE 1 END</property>
    </version>
  </properties>

</EnumObject>�<?xml version="1.0" ?>
<EnumObject type="WindowsGroup" impl_type="SqlObject" min_major='7'>
	<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>
\<?xml version="1.0" ?>
<EnumObject type="NTLogin" impl_type="SqlObject" min_major='7'>
	<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="Param" impl_type="SqlObject" min_major='7'  cloud_min_major='12'>
	<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'  cloud_min_major='12'>
			<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'  cloud_min_major='12'>
			<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="StoredProcedure" impl_type="SqlObject" min_major='7' cloud_min_major='12'>
  <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' cloud_min_major='12'>
      <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'  cloud_min_major='12'>
      <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="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="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="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="OperatorJobNotification" impl_type="SqlObject" min_major='7'>
	<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="OperatorNotification" impl_type="SqlObject" min_major='7'>
	<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="OrderColumn" impl_type="SqlObject" 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="PartitionFunction" impl_type="SqlObject" min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
	<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' cloud_min_major='12' datawarehouse_enabled='true'>
	<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>
C<?xml version="1.0" ?>
<EnumObject type="RangeValue" impl_type="SqlObject" min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
	<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>

�<?xml version="1.0" ?>
<EnumObject type="PartitionScheme" impl_type="SqlObject" min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
    <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>
        <!-- "sys.destination_data_spaces" is not supported on Azure SQL DW database -->
        <version min_major='9' cloud_min_major='12'>
          <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>
        </version>
        <!-- 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' cloud_min_major='12'>
	<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="PartitionSchemeParameter" min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
	<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='PerfInfo' impl_type='SqlObject' min_major='7'>
	<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' >
      <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="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10' datawarehouse_enabled='true'>
	<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' cloud_min_major='10'  datawarehouse_enabled='true'>
			<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'>
	<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' cloud_min_major='10'  datawarehouse_enabled='true'>
	<union>
		<settings>
			<include file='inc_perm.xml' alias='database'/>
			<version min_major = '9' cloud_min_major='10'  datawarehouse_enabled='true'>
				<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'  datawarehouse_enabled='true'>
				<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'  datawarehouse_enabled='true'>
    <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'>
    <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'  datawarehouse_enabled='true'>
    <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'>
          <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>l<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'  datawarehouse_enabled='true'>
	<settings>
		<version min_major = '7' max_major = '8'>
			<property_link>prmssn.id = 0</property_link>
		</version>		
		<version min_major = '9' cloud_min_major='10'  datawarehouse_enabled='true'>
			<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' cloud_min_major='10'  datawarehouse_enabled='true'>
	<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' cloud_min_major='10'  datawarehouse_enabled='true'>
			<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' cloud_min_major='10'  datawarehouse_enabled='true'>
			<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' cloud_min_major='10'  datawarehouse_enabled='true'>
	<settings>
		<version min_major='7' max_major='8'>
			<parent_link>
				<link parent="ExtPropMajorID" local="MajorID" />
			</parent_link>
		</version>

		<version min_major = '9' cloud_min_major='10'  datawarehouse_enabled='true'>
			<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'>
	<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="Permission" impl_type="SqlObject" min_major='9'>
	<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'>
	<settings>
		<version min_major = '9'>
			<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>
e<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='7' cloud_min_major='10'  datawarehouse_enabled='true'>
	<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' cloud_min_major='10'  datawarehouse_enabled='true'>
			<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' cloud_min_major='10'>
	<settings>
		<version min_major = '9' 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>V<?xml version="1.0" ?>
<EnumObject type="Permission" impl_type="SqlObject" min_major='9' cloud_min_major='10'>
<settings>
		<version min_major = '9' 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="PhysicalPartition" impl_type="SqlObject" min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
  <settings>
    <version min_major='9' max_major='9'>
      <parent_link>
        <link parent="TableID" local="TableID" />
        <link parent="IndexID" local="IndexID" />
      </parent_link>
    </version>
    <version min_major='10' cloud_min_major='12' datawarehouse_enabled='true'>
      <parent_link>
        <link parent="TableIDForPartition" local="TableID" />
        <link parent="IndexIDForPartition" local="IndexID" />
      </parent_link>
    </version>
    <version min_major ='9' cloud_min_major='12' datawarehouse_enabled='true'>
      <property_link table="sys.partitions AS p"></property_link>
    </version>
    <version min_major='9'  cloud_min_major='12'>
      <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>
    </version>
    <version min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
      <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'  cloud_min_major='12'>
      <property name="FileGroupName" type="sysname" >fg.name</property>
    </version>
    <version min_major='9'  cloud_min_major='12' datawarehouse_enabled='true'>
      <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="RangeType" type="int" report_type="RangeType" cast='true' >pf.boundary_value_on_right</property>
    </version>
    <version min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="RowCount" type="float" access='Read' cast='true'>p.rows</property>
    </version>
    <version min_major='10'  cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="DataCompression" type="int" report_type="DataCompressionType" >p.data_compression</property>
    </version>
  </properties>
</EnumObject>�	<?xml version="1.0" ?>
<EnumObject type="PlanGuide" impl_type="SqlObject" min_major='9'  cloud_min_major='12'>
    <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'  cloud_min_major='12'>
            <property name="ScopeBatch" type="nvarchar" size='max' read_only_after_creation="true">ISNULL(pg.scope_batch, N'')</property>
        </version>
        <version min_major='10'>
            <include file='inc_policy_health_state.xml'/>
        </version>
            
    </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="File" impl_type="SqlObject" min_major='7'>
	<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>
X<?xml version="1.0" ?>
<EnumObject type="PrimaryFile" impl_type="PrimaryFile" min_major='7'>
	<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="Process" impl_type="SqlObject" min_major='7'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table = 'master.dbo.sysprocesses p'/>
		</version>
		<version min_major='9'>
			<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'>
			<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'>
			<property name="ExecutionContextID" type="smallint">pr.ecid</property>
		</version>

	</properties>
</EnumObject>
 <<?xml version="1.0" ?>
<EnumObject type="ProxyAccount" impl_type="SqlObject" min_major='9'>
    <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>
�<?xml version="1.0" ?>
<EnumObject type="ProxyAccountPrincipal " impl_type="SqlObject" min_major='9'>
    <settings>
    	<version min_major='9'>
			<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'>
    		<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="QueryStoreOptions" impl_type="SqlObject" min_major='13' cloud_min_major='12'>
  <settings>
    <property_link table="sys.database_query_store_options AS dqso" />
  </settings>
  <properties>
    <include file='inc_urn_single.xml'/>
    <version min_major='13' cloud_min_major='12'>
      <property name="ActualState" type="smallint" report_type="QueryStoreOperationMode" access="read">dqso.actual_state</property>
      <property name="DesiredState" type="smallint" report_type="QueryStoreOperationMode" mode="deploy">dqso.desired_state</property>
      <property name="ReadOnlyReason" type="int" mode="read">dqso.readonly_reason</property>
      <property name="CurrentStorageSizeInMB" type="bigint" mode="deploy">dqso.current_storage_size_mb</property>
      <property name="MaxStorageSizeInMB" type="bigint" mode="deploy">dqso.max_storage_size_mb</property>
      <property name="StaleQueryThresholdInDays" type="bigint" mode="deploy">dqso.stale_query_threshold_days</property>
      <property name="DataFlushIntervalInSeconds" type="bigint" mode="deploy">dqso.flush_interval_seconds</property>
      <property name="StatisticsCollectionIntervalInMinutes" type="bigint" mode="deploy">dqso.interval_length_minutes</property>
      <property name="QueryCaptureMode" type="smallint" report_type="QueryStoreCaptureMode" mode="deploy">dqso.query_capture_mode</property>
      <property name="SizeBasedCleanupMode" type="smallint" report_type="QueryStoreSizeBasedCleanupMode" mode="deploy">dqso.size_based_cleanup_mode</property>
      <property name="MaxPlansPerQuery" type="bigint" mode="deploy">dqso.max_plans_per_query</property>
    </version>

    <version min_major='14' cloud_min_major='12'>
      <property name="WaitStatsCaptureMode" type="smallint" report_type="QueryStoreWaitStatsCaptureMode" mode="deploy">dqso.wait_stats_capture_mode</property>
    </version>

    <version min_major='15'>
      <property name="CapturePolicyExecutionCount" type="int" mode="deploy">ISNULL(dqso.capture_policy_execution_count,30)</property>
      <property name="CapturePolicyTotalCompileCpuTimeInMS" type="bigint" mode="deploy">ISNULL(dqso.capture_policy_total_compile_cpu_time_ms,1000)</property>
      <property name="CapturePolicyTotalExecutionCpuTimeInMS" type="bigint" mode="deploy">ISNULL(dqso.capture_policy_total_execution_cpu_time_ms,100)</property>
      <property name="CapturePolicyStaleThresholdInHrs" type="int" mode="deploy">ISNULL(dqso.capture_policy_stale_threshold_hours,1)</property>
    </version>

  </properties>
</EnumObject>
!<?xml version="1.0" ?>
<EnumObject type="RemoteDrive" impl_type="SqlObject" min_major='7'>
	<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>n<?xml version='1.0' ?>
<EnumObject type='RemoteMaintenancePlan' impl_type='SqlObject' min_major='9'>
  <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>
k<?xml version='1.0' ?>
<EnumObject type='RemotePlanLog' impl_type='SqlObject' min_major='9'>
  <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>=<?xml version='1.0' ?>
<EnumObject type='RemotePlanLog' impl_type='SqlObject' min_major='9'>
  <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='RemoteSubPlan' impl_type='SqlObject' min_major='9'>
  <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="RemovableDrive" impl_type="SqlObject" min_major='7'>
	<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>�<?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="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>
    <version min_major='12'>
      <property name='MaxOutstandingIOPerVolume' type='int'>c.max_outstanding_io_per_volume</property>
    </version>
    <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>><?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>
    <version min_major='12' cloud_min_major='12'>
      <property name="MinimumIopsPerVolume" type="int">p.min_iops_per_volume</property>
      <property name="MaximumIopsPerVolume" type="int">p.max_iops_per_volume</property>
    </version>
    <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>	

l<?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; (CASE WHEN @@version like '%(X64)%' THEN 64 ELSE 32 END)
      </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>
Y<?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; (CASE WHEN @@version like '%(X64)%' THEN 64 ELSE 32 END)) 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] / (CASE WHEN @@version like '%(X64)%' THEN 64 ELSE 32 END)) = [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='restorefile' impl_type='SqlObject' min_major='7'>
	<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'>
	<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='restorehistory' impl_type='SqlObject' min_major='7'>
	<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'>		
			<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>j�<?xml version='1.0' ?>
<EnumObject type='backupset' impl_type='SqlObject' min_major='7'>
  <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'>
      <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'>
      <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'>
      <property name='IsCopyOnly' type='bit'>bkps.is_copy_only</property>
    </version>
  </properties>
</EnumObject>4<?xml version="1.0" ?>
<EnumObject type="ResumableIndex" impl_type="SqlObject" min_major='14' cloud_min_major='12' datawarehouse_enabled='false'>
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table="sys.index_resumable_operations as ri"/>
  </settings>
  <properties>
    <include file="inc_urn.xml" />
    <property name="Name" type="sysname" access="Read">ri.name</property>
    <property name="ParentID" type="int" hidden='true'>ri.object_id</property>
    <property name="ID" type ="int" access="Read">ri.index_id</property>
    <property name="PartitionNumber" type="int" access="Read">ISNULL(ri.partition_number, 0)</property>
    <property name="SqlText" type="nvarchar" access="Read">ri.sql_text</property>
    <property name="ResumableOperationState" type="tinyint" report_type="ResumableOperationStateType" access="Read">ri.state</property>
    <property name="StartTime" type="datetime" access="Read">ri.start_time</property>
    <property name="LastPauseTime" type="datetime" access="Read">ri.last_pause_time</property>
    <property name="TotalExecutionTime" type="int" access="Read">ri.total_execution_time</property>
    <property name="PageCount" type="bigint" access="Read">ri.page_count</property>
    <property name="PercentComplete" type="real" access="Read">ri.percent_complete</property>

    <!-- Only MaxDOP should be modifiable for resume. -->
    <property name="MaxDOP" type ="smallint" access="ReadWrite">ri.last_max_dop_used</property>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="Rule" impl_type="SqlObject" min_major='7'  cloud_min_major='12'>
	<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'  cloud_min_major='12'>
			<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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
L<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7'>
	<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'>
			<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'>
			<!--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'>
	<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'>
			<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'>
			<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='SPHelpSchedule' impl_type='SqlObject' min_major='9'>
	<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>
F<?xml version="1.0" ?>
<EnumObject type="Schema" impl_type="SqlObject" min_major='9'  cloud_min_major='10'  datawarehouse_enabled='true'>
	<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' >
			<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="SystemDataType" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'   cloud_min_major='10' datawarehouse_enabled='true'>
			<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="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>
<?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="SecurityPolicy" impl_type="SqlObject" min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
  <settings>
    <property_link table='sys.security_policies AS sp' />
  </settings>
  <properties>
      <include file='inc_object.xml' alias='sp' for='#Urn#Name#Schema#ID#CreateDate#DateLastModified#Owner#IsSchemaOwned#' />
      <!-- extended properties support -->
      <property name="ObjectTypeName" type="sysname" hidden="true">N'SECURITY POLICY'</property>
      <property name="NotForReplication" type="bit" cast="true">sp.is_not_for_replication</property>
      <property name="Enabled" type="bit" cast="true">sp.is_enabled</property>
      <property name="IsSchemaBound" type="bit" cast="true" read_only_after_creation="true">sp.is_schema_bound</property>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="SecurityPredicate" impl_type="SqlObject" min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
  <settings>
    <parent_link>
      <link parent="ID" local="ParentID" />
    </parent_link>
    <property_link table='sys.security_predicates AS secpreds' />
    <property_link fields="#TargetObjectName#"
      left_join="sys.objects AS obj">(obj.object_id = secpreds.target_object_id)</property_link>
    <property_link fields="#TargetObjectSchema#"
      left_join="sys.schemas AS sch">(sch.schema_id = obj.schema_id)</property_link>
  </settings>
  <properties>
      <!-- Construct the URN using the SecurityPredicateID as the key identifier -->
      <property name="Urn" type="nvarchar" size="600">
        <link_multiple no='3' expression="{0} + '/{2}[@SecurityPredicateID=' + cast({1} AS nvarchar(20)) + ']'">
          <link_field type='parent' field="Urn" />
          <link_field type='local' field="SecurityPredicateID" />
          <link_field field="NType" />
        </link_multiple>
      </property>
      <property name="PredicateDefinition" type="nvarchar" size="128">RIGHT(LEFT(predicate_definition, LEN(predicate_definition) -1), LEN(predicate_definition) -2)</property>
      <property name="SecurityPredicateID" type="int" read_only_after_creation="true">secpreds.security_predicate_id</property>
      <property name="TargetObjectID" type="int" read_only_after_creation="true">secpreds.target_object_id</property>
      <property name="TargetObjectName" type="nvarchar" size="128" read_only_after_creation="true">obj.name</property>
      <property name="TargetObjectSchema" type="nvarchar" size="128" read_only_after_creation="true">sch.name</property>
      <property name="ParentID" type="int" read_only_after_creation="true" hidden="true">secpreds.object_id</property>
      <property name="PredicateType" type="int" report_type="SecurityPredicateType" read_only_after_creation="true">secpreds.predicate_type</property>
      <property name="PredicateOperation" type="int" report_type="SecurityPredicateOperation" read_only_after_creation="true">ISNULL(secpreds.operation, 0)</property>
    </properties>
</EnumObject>
K<?xml version="1.0" ?>
<EnumObject type="DatabaseScopedConfiguration" impl_type="SqlObject" min_major='13' cloud_min_major='12'>
  <settings>
    <property_link table='sys.database_scoped_configurations AS sp' />
  </settings>
  <properties>
    <property name="Urn" type="nvarchar" size="600">
      <link_multiple no='2' expression="{0} + '/DatabaseScopedConfiguration[@Name=' + quotename({1},'''') + ']'">
        <link_field type='parent' field="Urn" />
        <link_field type='local' field="Name" />
      </link_multiple>
    </property>
    <property name="Name" type="sysname">sp.name</property>
    <property name="Id" type="int" access='Read'>sp.configuration_id</property>
    <property name="Value" type="nvarchar" size="200" cast = "true" access='ReadWrite'>
      CASE
        WHEN SQL_VARIANT_PROPERTY(value,'BaseType') = 'bit' THEN 
          CASE value
            WHEN 1 THEN 'ON'
            WHEN 0 THEN 'OFF'
          END
        ELSE ISNULL(value, 'NULL')
      END
    </property>
    <property name="ValueForSecondary" type="nvarchar" size="200" cast = "true" access='ReadWrite'>
      CASE
        WHEN SQL_VARIANT_PROPERTY(value_for_secondary,'BaseType') = 'bit' THEN
          CASE value_for_secondary
            WHEN 1 THEN 'ON'
            WHEN 0 THEN 'OFF'
          END
        ELSE ISNULL(value_for_secondary, 'PRIMARY')
      END
    </property>
    <version min_major='14' cloud_min_major='12'>
      <property name="IsValueDefault" type="bit" access="read">sp.is_value_default</property>
    </version>
  </properties>
</EnumObject>�<?xml version="1.0" ?>
<EnumObject type="Sequence" impl_type="SqlObject" min_major='11' cloud_min_major='12'>
	<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>

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



I<?xml version="1.0" ?>
<EnumObject type="Server" impl_type="Server" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
  <settings>
    <post_process fields = '#ServerType#IsContainedAuthentication#'
       class_name='Microsoft.SqlServer.Management.Smo.PostProcessServerProperties'/>
  </settings>
  <properties>
    <include file='inc_server.xml' />
    <version min_major='10'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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' datawarehouse_enabled='true'>
      <property name="Status" type="int" report_type="ServerStatus" access="Read" cast='true'>0x0001</property>
    </version>
    <version min_major="7" max_major="13" cloud_min_major="11" datawarehouse_enabled='true'>
      <property name="PathSeparator" type="nvarchar" size="1" access="Read">N'\'</property>      
    </version>
    <version min_major='14'>
      <property name="PathSeparator" type="nvarchar" size="1" access="Read">SERVERPROPERTY('PathSeparator')</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>
�<?xml version="1.0" encoding="utf-8" ?>
<EnumObject type="ServerAuditSpecification" impl_type="SqlObject" 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" ?>
<EnumObject type="Trigger" impl_type="SqlObject" min_major='9'>
	<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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="ServerDdlTriggerEvent" impl_type="SqlObject" min_major='9'>
	<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="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="Role" impl_type="SqlObject" min_major='7'>
  <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'>
      <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'>
      <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'>
      <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'>
      <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>
r<?xml version="1.0" ?>
<EnumObject type="ServiceMasterKey" impl_type="SqlObject" min_major='9'>
    <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="Server" impl_type="Server" min_major='7'>
    <!--
    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'>
      <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>
    <version min_major="11">
      <prefix fields="#ErrorLogSizeKb#">
        declare @ErrorLogSizeKb int
        exec master.dbo.xp_instance_regread  N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'ErrorLogSizeInKb', @ErrorLogSizeKb 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'>
      <property name="DefaultFile" type="nvarchar" size="512">ISNULL(SERVERPROPERTY('instancedefaultdatapath'),'')</property>
      <property name="DefaultLog" type="nvarchar" size="512">SERVERPROPERTY('instancedefaultlogpath')</property>
      <property name="ErrorLogSizeKb" type="int">ISNULL(@ErrorLogSizeKb, 0)</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>
l<?xml version='1.0' ?>
<EnumObject type='sysjobschedules' impl_type='SqlObject' min_major='7'>
	<settings>
		<version min_major='7' max_major='8'>
			<property_link table='msdb.dbo.sysjobschedules sjs' />
		</version>
		<version min_major='9'>
			<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>
�<?xml version="1.0" ?>
<EnumObject type="SmartAdmin" impl_type="SmartAdmin" min_major='12' >
  <settings>
    <property_link table="msdb.smart_admin.fn_backup_instance_config () AS ic"/>
  </settings>
  <properties>
    <include file='inc_urn_single.xml' />
    <property name="MasterSwitch" type="bit">(SELECT ISNULL(msdb.smart_admin.fn_is_master_switch_on (), 0))</property>
    ISNULL(msdb.smart_admin.fn_is_master_switch_on (), 0)
    <property name='BackupEnabled' type='bit' cast='true'>ISNULL(ic.is_managed_backup_enabled, 0)</property>
    <property name="CredentialName" type="sysname">ISNULL(ic.credential_name, N'')</property>
    <property name="BackupRetentionPeriodInDays" type="int">ISNULL(ic.retention_days, 0)</property>
    <property name='StorageUrl' type='nvarchar' size='1024'>ISNULL(ic.storage_url, N'')</property>
    <property name='EncryptionAlgorithm' type='sysname'>ISNULL(ic.encryption_algorithm, N'')</property>
    <property name='EncryptorType' type='nvarchar' size='32'>ISNULL(ic.encryptor_type, N'')</property>
    <property name='EncryptorName' type='sysname'>ISNULL(ic.encryptor_name, N'')</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>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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="SqlAssembly" impl_type="SqlObject" min_major='9'  cloud_min_major='12'>
	<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'  cloud_min_major='12'>
	<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="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>
H<?xml version="1.0" ?>
<EnumObject type="Index" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
 <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'  cloud_min_major='10' datawarehouse_enabled='true'>
   <property_link table="sys.stats st" />
  
  </version>    
   <version min_major='9' cloud_min_major='10'>
      <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'   cloud_min_major='10' datawarehouse_enabled='true'>
   <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="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='9' cloud_min_major='10'>
      <property name="Stream" type="varbinary" expensive='true' access='Read'>null</property>
    </version>
    <version min_major='10'  cloud_min_major='10' datawarehouse_enabled='true'>
   <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'>

      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="StatisticColumn" impl_type="SqlObject" min_major='7' cloud_min_major='10' datawarehouse_enabled='true'>
  <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' cloud_min_major='10' datawarehouse_enabled='true'>
      <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' cloud_min_major='10' datawarehouse_enabled='true'>
      <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="StoredProcedure" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'   cloud_min_major='10' datawarehouse_enabled='true'>
			<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>
		    <property_link fields='#IsNativelyCompiled#' left_join='sys.all_sql_modules AS sm'>sm.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#IsSchemaBound#'/>
		<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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' datawarehouse_enabled='true'>
			<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' >
			<include file='inc_policy_health_state.xml'/>
		</version>
        
        <!-- Hekaton properties -->
		<version min_major='12' cloud_min_major='12' datawarehouse_enabled='true'>
		    <property name="IsNativelyCompiled" type="bit" read_only_after_creation="true">ISNULL(sm.uses_native_compilation,0)</property>         
		</version>
  </properties>
</EnumObject>
�<?xml version='1.0' ?>
<EnumObject type='SymmetricKey' impl_type='SqlObject' min_major='9'  cloud_min_major='12'>
	<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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="Collation" impl_type="SqlObject" min_major='9'  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' >
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="SystemMessage" impl_type="SqlObject" min_major='7' >
	<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' >
			<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' >
			<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>

ɀ<?xml version="1.0" ?>
<EnumObject type="Table" impl_type="SqlObject" min_major='7' cloud_min_major='10' datawarehouse_enabled='true'>
  <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#HasPrimaryClusteredIndex#IndexID#RowCount#' join="dbo.sysindexes AS idx">idx.id = tbl.id and idx.indid &lt; 2</property_link>
    </version>
    <version min_major='9' cloud_min_major='10' datawarehouse_enabled='true'>
      <property_link table="sys.tables AS tbl" />
    </version>
    <version min_major='9' max_major='11' cloud_min_major='10' cloud_max_major='11'>
      <property_link fields='#DataSpaceID#HasClusteredIndex#HasPrimaryClusteredIndex#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='12' cloud_min_major='12' datawarehouse_enabled='true'>
      <!--For an index of Hekaton table, index_id is different-->
      <!--The index_id selected below for memory optimized tables is either the clustered index in the HKCS case or the index with the smallest id.
          This is because tables that are memory optimized will always have an index, but if the table has a clustered index we need to populate the
          'HasClusteredIndex' and 'HasClusteredColumnStoreIndex' properties correctly.-->
      <property_link fields='#DataSpaceID#HasClusteredIndex#HasPrimaryClusteredIndex#IndexID#IndexIDForPartition#FileStreamFileGroup#FileStreamPartitionScheme#DistributionPolicy#HasClusteredColumnStoreIndex#HasHeapIndex#' join="sys.indexes AS idx">
        idx.object_id = tbl.object_id and (idx.index_id &lt; &lt;msparam&gt;2&lt;/msparam&gt;  or (tbl.is_memory_optimized = 1 and idx.index_id = (select min(index_id) from sys.indexes where object_id = tbl.object_id)))
      </property_link>
    </version>
    <!--Polybase and GQ external tables are available using sys.external_tables -->
    <version min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
      <property_link
          fields='#DataSourceName#FileFormatName#FileFormatNameOd#ShardingColumnName#Location#LocationOd#RejectType#RejectValue#RejectSampleValue#ExternalTableDistribution#RemoteSchemaName#RemoteObjectName#'
          left_join='#external_data AS edt'>edt.object_id = tbl.object_id</property_link>
    </version>
    <version min_major='13'>
      <property_link fields='#RemoteTableName#RemoteDataArchiveDataMigrationState#RemoteTableProvisioned#RemoteDataArchiveFilterPredicate#' left_join="#tmp_extended_remote_data_archive_tables AS rdat">rdat.object_id = tbl.object_id</property_link>
    </version>
    <version datawarehouse_enabled='true'>
      <property_link fields='#RejectedRowLocation#' left_join="sys.external_tables as et">et.object_id = tbl.object_id</property_link>
      <property_link fields='#DwTableDistribution#' left_join="sys.pdw_table_distribution_properties as tdp">tdp.object_id = tbl.object_id</property_link>
    </version>
    <version min_major='13' cloud_min_major='12'>
      <!-- Temporal Tables -->
      <property_link fields='#HasSystemTimePeriod#SystemTimePeriodStartColumn#SystemTimePeriodEndColumn# ' left_join='sys.periods as periods'>periods.object_id = tbl.object_id</property_link>
      <property_link fields='#HistoryTableName#HistoryTableSchema#HistoryTableID#' left_join='sys.tables as historyTable'>historyTable.object_id = tbl.history_table_id</property_link>
    </version>
    <version min_major='9' cloud_min_major='12' datawarehouse_enabled='true'>
      <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' cloud_min_major='12'>
      <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='13' cloud_min_major='12' datawarehouse_enabled='true'>
      <prefix fields='#DataSourceName#FileFormatName#FileFormatNameOd#ShardingColumnName#Location#LocationOd#RejectType#RejectValue#RejectSampleValue#ExternalTableDistribution#RemoteSchemaName#RemoteObjectName#' >
        create table #external_data (object_id int not null, data_source_id int , file_format_id int , [location] nvarchar(4000), reject_type nvarchar(20), reject_value float, reject_sample_value float, datasource_name nvarchar(128), fileformat_name nvarchar(128), sharding_col_id int, distribution_type tinyint, remote_schema_name nvarchar(128), remote_object_name nvarchar(128))
        insert into #external_data
        select tbl.object_id, eds.data_source_id, eff.file_format_id, et.location, et.reject_type, et.reject_value, et.reject_sample_value, eds.name, eff.name, et.sharding_col_id, et.distribution_type, et.remote_schema_name, et.remote_object_name
        from sys.tables tbl
        LEFT OUTER JOIN sys.external_tables AS et ON et.object_id = tbl.object_id
        LEFT OUTER JOIN sys.external_data_sources AS eds ON eds.data_source_id = et.data_source_id
        LEFT OUTER JOIN sys.external_file_formats AS eff ON eff.file_format_id = et.file_format_id
        WHERE
        (tbl.is_external = 1)
      </prefix>
    </version>
    <version min_major='7'>
      <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 min_major='13'>
      <!-- We created this temp table to make Stretch related properties backward compatible. -->
      <prefix fields='#RemoteTableName#RemoteDataArchiveDataMigrationState#RemoteTableProvisioned#RemoteDataArchiveFilterPredicate#'>
        CREATE TABLE #tmp_extended_remote_data_archive_tables
        (object_id int not null, remote_table_name nvarchar(128) null, filter_predicate nvarchar(max) null, migration_state tinyint null)

        IF EXISTS(SELECT 1 FROM master.sys.syscolumns WHERE Name = N'remote_data_archive_migration_state' AND ID = Object_ID(N'sys.tables'))
        EXECUTE(N'INSERT INTO #tmp_extended_remote_data_archive_tables SELECT rdat.object_id, rdat.remote_table_name,
        SUBSTRING(rdat.filter_predicate, 2, LEN(rdat.filter_predicate) - 2) as filter_predicate,
        CASE
        WHEN tbl.remote_data_archive_migration_state_desc = N''PAUSED'' THEN 1
        WHEN tbl.remote_data_archive_migration_state_desc = N''OUTBOUND'' THEN 3
        WHEN tbl.remote_data_archive_migration_state_desc = N''INBOUND'' THEN 4
        WHEN tbl.remote_data_archive_migration_state_desc = N''DISABLED'' THEN 0
        ELSE 0
        END AS migration_state
        FROM sys.tables tbl LEFT JOIN sys.remote_data_archive_tables rdat ON rdat.object_id = tbl.object_id
        WHERE rdat.object_id IS NOT NULL')
        ELSE
        EXECUTE(N'INSERT INTO #tmp_extended_remote_data_archive_tables SELECT rdat.object_id, rdat.remote_table_name,
        SUBSTRING(rdat.filter_predicate, 2, LEN(rdat.filter_predicate) - 2) as filter_predicate,
        CASE
        WHEN rdat.is_migration_paused = 1 AND rdat.migration_direction_desc = N''OUTBOUND'' THEN 1
        WHEN rdat.is_migration_paused = 1 AND rdat.migration_direction_desc = N''INBOUND'' THEN 2
        WHEN rdat.is_migration_paused = 0 AND rdat.migration_direction_desc = N''OUTBOUND'' THEN 3
        WHEN rdat.is_migration_paused = 0 AND rdat.migration_direction_desc = N''INBOUND'' THEN 4
        ELSE 0
        END AS migration_state
        FROM sys.tables tbl LEFT JOIN sys.remote_data_archive_tables rdat ON rdat.object_id = tbl.object_id
        WHERE rdat.object_id IS NOT NULL')
      </prefix>
      <postfix fields='#RemoteTableName#RemoteDataArchiveDataMigrationState#RemoteTableProvisioned#RemoteDataArchiveFilterPredicate#'>
        DROP TABLE #tmp_extended_remote_data_archive_tables
      </postfix>
    </version>
    <!-- Since we have a postfix above, we can't introduce anymore prefix tags from here on in the file -->
    <version min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
      <postfix fields='#DataSourceName#FileFormatName#FileFormatNameOd#ShardingColumnName#Location#LocationOd#RejectType#RejectValue#RejectSampleValue#ExternalTableDistribution#RemoteSchemaName#RemoteObjectName#' >
        drop table #external_data
      </postfix>
    </version>
    <!--Hekaton memory usage properties have post processing calculations-->
    <version min_major='12' cloud_min_major='12' datawarehouse_enabled='true'>
      <post_process fields = '#RowCount#'
                    class_name='Microsoft.SqlServer.Management.Smo.PostProcessTable'
                    triggered_fields='#DatabaseName#SchemaName#TableName#'/>
    </version>
    <version cloud_min_major='12' datawarehouse_enabled='true' min_major='7'>
      <special_query database = 'tempdb' query = "tbl.name not like '#%'" hint=""/>
    </version>
  </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="HasNonClusteredIndex" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from dbo.sysindexes ind where ind.id = tbl.id and ind.indid &gt; 1 and 1 != INDEXPROPERTY(ind.id,ind.name,N'IsStatistics') and 1 != INDEXPROPERTY(ind.id,ind.name,N'IsHypothetical')), 0)</property>
      <property name="HasPrimaryClusteredIndex" type="bit" access='Read' cast='true'>case idx.indid WHEN 1 THEN case when (0 != idx.status&amp;0x800) then 1 else 0 end 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'  cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="HasClusteredIndex" type="bit" access='Read' cast='true'>CASE idx.index_id WHEN 1 THEN 1 ELSE 0 END</property>
      <property name="HasNonClusteredIndex" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from sys.indexes ind where ind.object_id = tbl.object_id and ind.type &gt; 1 and ind.is_hypothetical = 0 ), 0)</property>
      <property name="HasPrimaryClusteredIndex" type="bit" access='Read' cast='true'>case idx.index_id when 1 then case when (idx.is_primary_key + 2*idx.is_unique_constraint = 1) then 1 else 0 end else 0 end</property>
      <property name="HasNonClusteredColumnStoreIndex" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from sys.indexes ind where ind.object_id = tbl.object_id and ind.type = 6 and ind.is_hypothetical = 0 ), 0)</property>
      <property name="HasXmlIndex" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from sys.indexes ind where ind.object_id = tbl.object_id and ind.type = 3 and ind.is_hypothetical = 0 ), 0)</property>
      <property name="HasHeapIndex" type="bit" access='Read' cast='true'>CASE idx.type WHEN 0 THEN 1 ELSE 0 END</property>
      <property name="HasXmlData" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from sys.all_columns as clmns join sys.types as usrt on usrt.user_type_id = clmns.user_type_id where clmns.object_id = tbl.object_id and usrt.name = N'xml'), 0)</property>
      <property name="HasSpatialData" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from sys.all_columns as clmns join sys.types as usrt on usrt.user_type_id = clmns.user_type_id where clmns.object_id = tbl.object_id and usrt.name in (N'geometry', N'geography')), 0)</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">ISNULL(OBJECTPROPERTY(tbl.object_id,N'IsQuotedIdentOn'),0)</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' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="TextFileGroup" type="sysname" read_only_after_creation="true">ISNULL(dstext.name,N'')</property>
      <property name="DataSpaceID" type="int" hidden='true'>idx.data_space_id</property>
    </version>

    <version min_major='9' >
      <property name='IsVarDecimalStorageFormatEnabled' type='bit' cast='true' expensive ='true' mode="deploy">
        case
        when databasepropertyex(DB_NAME(), 'version') &lt; 612 then 0
        else ISNULL(objectproperty(tbl.object_id, 'TableHasVarDecimalStorageFormat'),0)
        end
      </property>
    </version>

    <version min_major='9' max_major='11'>
      <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>
    </version>

    <!-- data classification support -->
    <version min_major='10' max_major='14'>
      <property name="HasClassifiedColumn" type="bit" access='Read' expensive='true' cast='true'>ISNULL((select top 1 1 from sys.extended_properties where major_id = tbl.object_id and name in ('sys_sensitivity_label_name', 'sys_sensitivity_label_id', 'sys_information_type_name', 'sys_information_type_id') and value is not null), 0)</property>
    </version>

    <version min_major='15' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="HasClassifiedColumn" type="bit" access='Read' expensive='true' cast='true'>ISNULL((select top 1 1 from sys.sensitivity_classifications where major_id = tbl.object_id), 0)</property>
    </version>
    <!--Following properties are shared between Hekaton tables and regular tables-->
    <!--based on the is_memory_optimized property we need to perform different calculations-->
    <version min_major='12'>
      <!--when modify check datatabase.xml DataSpaceUsed for consistency -->
      <property name="DataSpaceUsed" type="float" access='Read' expensive='true'>
        case
        when (tbl.is_memory_optimized=0) then
        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)
        else
        isnull((select (tms.[memory_used_by_table_kb])
        from [sys].[dm_db_xtp_table_memory_stats] tms
        where tms.object_id = tbl.object_id), 0.0)
        end
      </property>

      <!--when modify check datatabase.xml IndexSpaceUsed and index.xml SpaceUsed for consistency -->
      <!--Index space usage calculation is based on following query that matches sp_spaceused (VSTS#1202674)-->
      <!--we are fixing the query in SQL14 only, that is why the query here doesn't match (min_major='9' max_major='10')-->
      <property name="IndexSpaceUsed" type="float" access='Read' expensive='true'>
        case
        when (tbl.is_memory_optimized=0) then
        ISNULL((
        (SELECT SUM (used_page_count) FROM sys.dm_db_partition_stats ps WHERE ps.object_id = tbl.object_id)
        + ( CASE (SELECT count(*) FROM sys.internal_tables WHERE parent_id = tbl.object_id AND internal_type IN (202,204,207,211,212,213,214,215,216,221,222))
        WHEN 0 THEN 0
        ELSE (
        SELECT sum(p.used_page_count)
        FROM sys.dm_db_partition_stats p, sys.internal_tables it
        WHERE it.parent_id = tbl.object_id AND it.internal_type IN (202,204,207,211,212,213,214,215,216,221,222) AND p.object_id = it.object_id)
        END )
        - (SELECT SUM (CASE WHEN(index_id &lt; 2) THEN (in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count) ELSE 0 END)
        FROM sys.dm_db_partition_stats WHERE object_id = tbl.object_id)
        ) * @PageSize, 0.0)
        else
        isnull((select (tms.[memory_used_by_indexes_kb])
        from [sys].[dm_db_xtp_table_memory_stats] tms
        where tms.object_id = tbl.object_id), 0.0)
        end
      </property>
    </version>

    <version min_major='12' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="DatabaseName" type="sysname" hidden='true'>DB_NAME()</property>
      <property name="SchemaName" type="sysname" hidden='true'>SCHEMA_NAME(tbl.schema_id)</property>
      <property name="TableName" type="sysname" hidden='true'>tbl.name</property>
      <property name="RowCount" type="bigint" access='Read' expensive='true'> 0 </property>

      <!--Hekaton properties-->
      <property name="IsMemoryOptimized" type="bit" cast="true" read_only_after_creation="true">tbl.is_memory_optimized</property>
      <property name="Durability" type="bit" report_type="DurabilityType" read_only_after_creation="true">case when (tbl.durability=1) then 0 else 1 end</property>
    </version>

    <version cloud_min_major='10' cloud_max_major='11'>
      <!-- Azure V1 doesn't have the sys.partitions view so we use sys.dm_db_partition_stats instead -->
      <property name="RowCount" type="bigint" access='Read' expensive='true'>
        ISNULL((SELECT SUM(ps.row_count)
        FROM sys.dm_db_partition_stats as ps
        WHERE ps.object_id = tbl.object_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'  cloud_min_major='10' datawarehouse_enabled='true'>
      <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' cloud_min_major='12'>
      <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="7" cloud_min_major='10' max_major='9' cloud_max_major='11'>
      <property name="HasSparseColumn" type="bit" cast='true' access='Read'>0</property>
    </version>

    <version min_major='10' cloud_min_major='12' datawarehouse_enabled='true'>
      <!-- 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>
      <!-- sparse columns -->
      <property name="HasSparseColumn" type="bit" cast='true' access='Read' expensive='true'>
        ISNULL((SELECT distinct 1 from sys.all_columns
        WHERE object_id = tbl.object_id
        AND is_sparse = 1), 0)
      </property>
    </version>

    <version min_major='10'  cloud_min_major='12' datawarehouse_enabled='true'>
      <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 cloud_min_major='12'>
      <property name="IsFileTable" type="bit" read_only_after_creation="true">CAST(0 as bit)</property>
      <property name="FileTableDirectoryName" type="nvarchar" size="256">N''</property>
      <property name="FileTableNameColumnCollation" type="nvarchar" size="129" read_only_after_creation="true">N''</property>
      <property name="FileTableNamespaceEnabled" type="bit" cast="true">0</property>
    </version>

    <version min_major='7'  cloud_min_major='12' datawarehouse_enabled='true'>
      <include alias='idx' file='inc_storage.xml'/>
    </version>

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

    <version min_major='12' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="HasClusteredColumnStoreIndex" type="bit" access='Read' cast='true'>CASE idx.type WHEN 5 THEN 1 ELSE 0 END</property>
    </version>

    <version min_major='13' cloud_min_major='12'>
      <!-- Temporal Properties -->
      <property name="IsSystemVersioned" type="bit" cast="true" read_only_after_creation="false">CASE tbl.temporal_type WHEN 2 THEN 1 ELSE 0 END</property>
      <property name="HistoryTableName" type="sysname" cast="true" read_only_after_creation="false">ISNULL(historyTable.name, N'')</property>
      <property name="HistoryTableSchema" type="sysname" cast="true" read_only_after_creation="false">ISNULL(SCHEMA_NAME(historyTable.schema_id), N'')</property>
      <property name="HistoryTableID" type="int" cast="true" read_only_after_creation="false" access="read">ISNULL(historyTable.object_id, 0)</property>
      <property name="HasSystemTimePeriod" type="bit" cast='true' access='Read'>CASE WHEN periods.start_column_id IS NULL THEN 0 ELSE 1 END</property>
      <property name="SystemTimePeriodStartColumn" type="sysname" cast='true' access='Read'>
        ISNULL((SELECT cols.name
        FROM sys.columns cols
        WHERE periods.object_id = tbl.object_id
        AND cols.object_id = tbl.object_id
        AND cols.column_id = periods.start_column_id), N'')
      </property>
      <property name="SystemTimePeriodEndColumn" type="sysname" cast='true' access='Read'>
        ISNULL((SELECT cols.name
        FROM sys.columns cols
        WHERE periods.object_id = tbl.object_id
        AND cols.object_id = tbl.object_id
        AND cols.column_id = periods.end_column_id), N'')
      </property>
    </version>

    <version cloud_min_major='12'>
      <property name="HistoryRetentionPeriod" type="int" cast="true">ISNULL(tbl.history_retention_period, 0)</property>
      <property name="HistoryRetentionPeriodUnit" type="int" report_type="TemporalHistoryRetentionPeriodUnit">ISNULL(tbl.history_retention_period_unit, -2)</property>
    </version>

    <!-- Common Temporal Properties -->
    <version min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="TemporalType" type="tinyint" report_type="TableTemporalType" read_only_after_creation="false" access='Read'>tbl.temporal_type</property>
    </version>

    <version min_major='13'>
      <!-- Halligan (Stretch DB) Properties -->
      <property name="RemoteDataArchiveEnabled" type="bit" cast="true" read_only_after_creation="false">tbl.is_remote_data_archive_enabled</property>
      <property name="RemoteDataArchiveDataMigrationState" type="tinyint" report_type="RemoteDataArchiveMigrationState" cast="true" read_only_after_creation="false">
        ISNULL(rdat.migration_state, 0)
      </property>
      <property name="RemoteDataArchiveFilterPredicate" type="varchar" size="4000" cast="true" read_only_after_creation="false">rdat.filter_predicate</property>
      <property name="RemoteTableName" type="sysname" cast="true" read_only_after_creation="true">rdat.remote_table_name</property>
      <property name="RemoteTableProvisioned" type="bit" cast="true" read_only_after_creation="true">CASE WHEN rdat.remote_table_name IS NULL THEN 0 ELSE 1 END</property>
    </version>

    <version min_major='13' cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="IsExternal" type="bit" cast="true">tbl.is_external</property>
      <property name="DataSourceName" type="sysname" expensive="true">ISNULL(edt.datasource_name, N'')</property>
    </version>
    <version cloud_min_major="12">
      <property name="FileFormatNameOd" type="sysname" access="read" expensive="true">ISNULL(edt.fileformat_name,N'')</property>
      <property name="LocationOd" type="nvarchar" access="read" size="4000" expensive="true">ISNULL(edt.location,N'')</property>
    </version>
    <version min_major='13' datawarehouse_enabled='true'>
      <property name="FileFormatName" type="sysname" expensive="true">ISNULL(edt.fileformat_name,N'')</property>
      <property name="Location" type="nvarchar" size="4000" expensive="true">ISNULL(edt.location,N'')</property>
      <property name="RejectType" type="tinyint" report_type="ExternalTableRejectType" expensive="true">
        CASE WHEN edt.reject_type IS NULL THEN 255
        ELSE CASE edt.reject_type
        WHEN 'VALUE'      THEN 0
        WHEN 'PERCENTAGE' THEN 1
        ELSE 255
        END
        END
      </property>
      <property name="RejectValue" type="float" expensive="true">ISNULL(edt.reject_value,0)</property>
      <property name="RejectSampleValue" type="float" expensive="true">ISNULL(edt.reject_sample_value,-1)</property>
    </version>
    <version datawarehouse_enabled='true'>
      <property name="RejectedRowLocation" type="nvarchar" size="4000" expensive="true" read_only_after_creation="true">ISNULL(et.rejected_row_location,N'')</property>
    </version>
    <!-- these properties support elastic DB query on sql server -->
    <version min_major="13" cloud_min_major="12">
      <property name="ExternalTableDistribution" type="tinyint" report_type="ExternalTableDistributionType" expensive="true">
        CASE
        WHEN edt.distribution_type IS NOT NULL THEN edt.distribution_type
        ELSE 255
        END
      </property>
      <property name="ShardingColumnName" type="sysname" expensive="true">
        CASE WHEN edt.sharding_col_id IS NULL THEN N''
        ELSE (select name from sys.columns sc where sc.object_id = tbl.object_id AND sc.column_id = edt.sharding_col_id)
        END
      </property>
      <property name="RemoteSchemaName" type="sysname" expensive="true">ISNULL(edt.remote_schema_name,'')</property>
      <property name="RemoteObjectName" type="sysname" expensive="true">ISNULL(edt.remote_object_name,'')</property>
    </version>

    <!-- SQL DW table type.-->
    <version datawarehouse_enabled='true'>
      <property name="DwTableDistribution" type="tinyint" report_type="DwTableDistributionType">ISNULL(tdp.distribution_policy, 0)</property>
    </version>

    <!--SQL GraphDB properties.-->
    <version min_major="7" max_major="13">
      <!-- Default to false for versions that don't support graph -->
      <property name="IsNode" type="bit" cast="true" read_only_after_creation="true">0</property>
      <property name="IsEdge" type="bit" cast="true" read_only_after_creation="true">0</property>
    </version>
    <version min_major="14" cloud_min_major="12" datawarehouse_enabled="true">
      <property name="IsNode" type="bit" cast="true" read_only_after_creation="true">tbl.is_node</property>
      <property name="IsEdge" type="bit" cast="true" read_only_after_creation="true">tbl.is_edge</property>
    </version>
  </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="Table" impl_type="SqlObject" min_major='7'>
	<settings>
		<property_link>tbl.name like '#%'</property_link>
		<prefix>
			use tempdb
		</prefix>
	</settings>
	<properties>
		<include file='table.xml' />
	</properties>
</EnumObject>
t<?xml version="1.0" ?>
<EnumObject type="Text" impl_type="SqlObject" min_major='7' cloud_min_major='12'>
	<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='Transactions' impl_type='SqlObject' min_major='9' cloud_min_major='12'>
<!--
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>
�<EnumObject type="Trigger" impl_type="SqlObject" min_major='7'  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'  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>
		<version min_major="13">
			<property_link fields="#IsNativelyCompiled#IsSchemaBound#" left_join="sys.all_sql_modules AS sm">sm.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#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'   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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
		<version min_major='13'>
			<property name="IsNativelyCompiled" type="bit">ISNULL(sm.uses_native_compilation,0)</property>
            <property name="IsSchemaBound" type="bit">ISNULL(sm.is_schema_bound,0)</property>
        </version>
	</properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedDataType" impl_type="SqlObject" min_major='7' cloud_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'>
			<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'>
			<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'>
			<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'>
      <include file='inc_policy_health_state.xml'/>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="UserDefinedFunction" impl_type="SqlObject" min_major='8'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'   cloud_min_major='10' datawarehouse_enabled='true'>
			<!--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>
		<version min_major="13" cloud_min_major='12' datawarehouse_enabled='true'>
			<property_link fields="#IsNativelyCompiled#InlineType#IsInlineable#" left_join="sys.all_sql_modules AS sm">sm.object_id = udf.object_id</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'   cloud_min_major='10' datawarehouse_enabled='true'>
			<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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' >
			<include file='inc_policy_health_state.xml'/>
		</version>

		<version min_major='7' max_major='14'>
			<property name="IsInlineable" type="bit" access="Read" cast= 'true'>0</property>
		</version>
		<version min_major ='13' cloud_min_major='12' datawarehouse_enabled='true'>
			<property name='IsNativelyCompiled' type="bit" read_only_after_creation="true">ISNULL(sm.uses_native_compilation,0)</property>
		</version>
			<version min_major ='15' cloud_min_major='12' datawarehouse_enabled='true'>
			<property name="InlineType" type="bit" read_only_after_creation='true' cast='true'>ISNULL(sm.inline_type,0)</property>
			<property name="IsInlineable" type="bit" access="Read" cast= 'true' >ISNULL(sm.is_inlineable,0)</property>
		</version>
	</properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="Column" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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>
�<?xml version="1.0" ?>
<EnumObject type="Param" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<property name="IsReadOnly" type="bit" mode="design">param.is_readonly</property>
		</version>
		<include file='parameter.xml'/>	
	</properties>
</EnumObject>
P<?xml version="1.0" ?>
<EnumObject type="User" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
	<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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<property_link table = 'sys.database_principals AS u'>u.type in ('U', 'S', 'G', 'C', 'K' ,'E', 'X')</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"  cloud_min_major='12'>
      <property_link fields="#AsymmetricKey#" left_join="sys.asymmetric_keys AS ak">ak.sid = u.sid</property_link>
    </version>
    <version min_major ="9"  cloud_min_major='12' datawarehouse_enabled='true'>
      <property_link fields="#Certificate#" left_join="sys.certificates AS cert">cert.sid = u.sid</property_link>
    </version>
    <version cloud_min_major='10' datawarehouse_enabled='true'>
      <post_process fields = '#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'  cloud_min_major='10' datawarehouse_enabled='true'>
			<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 WHEN N'E' = u.type THEN 5 WHEN N'X' = u.type THEN 6 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'  cloud_min_major='12'>
      <property name="AsymmetricKey" type="sysname" read_only_after_creation="true">ISNULL(ak.name,N'')</property>
    </version>
    <version min_major='9'  cloud_min_major='12' datawarehouse_enabled='true'>
      <property name="Certificate" type="sysname" read_only_after_creation="true">ISNULL(cert.name,N'')</property>
    </version>
    <version min_major='9'>
      <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'>
      <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' datawarehouse_enabled='true'>
      <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 cloud_min_major='12' datawarehouse_enabled='true'>
      <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 u.authentication_type != 2 AND u.authentication_type != 1 THEN 3
        WHEN N'E' = u.type or N'X' = u.type THEN 4
        ELSE 0 END
      </property>
     <property name="AuthenticationType" type="int" report_type="AuthenticationType" access='Read'>u.authentication_type</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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>
D<?xml version="1.0" ?>
<EnumObject type="UserDefinedAggregate" impl_type="SqlObject" min_major='9' cloud_min_major='12'>
	<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' cloud_min_major='12'>
        <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>
9<?xml version="1.0" ?>
<EnumObject type="UserDefinedAggregateParameter" impl_type="SqlObject" min_major='9' cloud_min_major='12'>
	<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' cloud_min_major='12'>
			<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="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>
    
    <!-- Hekaton properties -->        
    <version min_major='12' cloud_min_major='12'>        
        <property name="IsMemoryOptimized" type="bit" cast="true" read_only_after_creation="true">tt.is_memory_optimized</property>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="UserDefinedType" impl_type="SqlObject" min_major='9'  cloud_min_major='12'>
  <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'>
			<include file='inc_policy_health_state.xml'/>
		</version>

  </properties>
</EnumObject>
<?xml version="1.0" ?>
<EnumObject type="UserDefinedMessage" impl_type="SqlObject" min_major='7'>
  <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'>
      <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'>
      <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="UserOption" impl_type="UserOption" min_major='7' cloud_min_major='12'>
    <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' cloud_min_major='12'>
            <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>
6<?xml version="1.0" ?>
<EnumObject type="View" impl_type="SqlObject" min_major='7'  cloud_min_major='10' datawarehouse_enabled='true'>
    <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>
            <property_link fields='#HasClusteredIndex#HasPrimaryClusteredIndex#' left_join="dbo.sysindexes AS idx">idx.id = v.id and idx.indid &lt; 2</property_link>
        </version>
        <version min_major='9'  cloud_min_major='10' datawarehouse_enabled='true'>
            <property_link table="sys.all_views AS v">v.type = &lt;msparam&gt;V&lt;/msparam&gt;</property_link>
            <property_link fields='#HasClusteredIndex#HasPrimaryClusteredIndex#' left_join="sys.indexes AS idx">idx.object_id = v.object_id and (idx.index_id &lt; &lt;msparam&gt;2&lt;/msparam&gt;)</property_link>
        </version>
       <version datawarehouse_enabled='true'>
         <property_link fields='#DwMaterializedViewDistribution#' left_join="sys.pdw_materialized_view_distribution_properties as tmvp">tmvp.object_id = v.object_id</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>
          <property name="HasNonClusteredIndex" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from dbo.sysindexes ind where ind.id = v.id and ind.indid &gt; 1 and 1 != INDEXPROPERTY(ind.id,ind.name,N'IsStatistics') and 1 != INDEXPROPERTY(ind.id,ind.name,N'IsHypothetical')), 0)</property>
          <property name="HasClusteredIndex" type="bit" access='Read' cast='true'>CASE idx.indid WHEN  1 THEN 1 ELSE 0 END</property>
          <property name="HasPrimaryClusteredIndex" type="bit" access='Read' cast='true'>case idx.indid WHEN 1 THEN case when (0 != idx.status&amp;0x800) then 1 else 0 end else 0 end</property>
        </version>  
        <version min_major='9'   cloud_min_major='10' datawarehouse_enabled='true'>
            <property name="ReturnsViewMetadata" type="bit" mode="design">v.has_opaque_metadata</property>
            <property name="HasNonClusteredIndex" type="bit" access='Read' cast='true'>ISNULL((select top 1 1 from sys.indexes ind where ind.object_id = v.object_id and ind.type &gt; 1 and ind.is_hypothetical = 0 ), 0)</property>
            <property name="HasClusteredIndex" type="bit" access='Read' cast='true'>CASE idx.index_id WHEN 1 THEN 1 ELSE 0 END</property>
            <property name="HasPrimaryClusteredIndex" type="bit" access='Read' cast='true'>case idx.index_id when 1 then case when (idx.is_primary_key + 2*idx.is_unique_constraint = 1) then 1 else 0 end else 0 end</property>
        </version>
        <version min_major='10'  cloud_min_major='10' datawarehouse_enabled='true'>
        <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>
        <!-- SQL DW materialized view distribution-->
        <version datawarehouse_enabled='true'>
          <property name="DwMaterializedViewDistribution" type="tinyint" report_type="DwViewDistributionType">ISNULL(tmvp.distribution_policy, 0)</property>
        </version>
        <version min_major='10'>
            <include file='inc_policy_health_state.xml'/>
        </version>
  </properties>
</EnumObject>
Z<?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"/>
    <version min_major='13'>
      <property_link join="sys.resource_governor_external_resource_pools AS pls">wkg.external_pool_id = pls.external_pool_id</property_link>
    </version>
  </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>
     <version min_major='13'>
        <property name="ExternalResourcePoolName" type="nvarchar" size = '128'>[pls].[name]</property>
     </version>
    <version min_major='15'>
      <property name="RequestMaximumMemoryGrantPercentageAsDouble" type="float">wkg.request_max_memory_grant_percent_numeric</property>
    </version>
     <include file='inc_policy_health_state.xml'/>
  </properties>
</EnumObject>	
!<?xml version="1.0" ?>
<EnumObject type="WorkloadManagementWorkloadGroup" impl_type="SqlObject" datawarehouse_enabled='true'>
  <settings>
    <property_link table="sys.workload_management_workload_groups AS wkg"/>
    <property_link fields="#HasClassifier" left_join="sys.workload_management_workload_classifiers AS wkc">wkg.name = wkc.group_name</property_link>
  </settings>

  <properties>
    <version datawarehouse_enabled='true'>
      <property name="Name" type="sysname">wkg.name</property>
      <property name="CapPercentageResource" type="int" cast='true'>wkg.cap_percentage_resource</property>
      <property name="GroupId" type="int" cast='true'>wkg.group_id</property>
      <property name="HasClassifier" type="bit" cast='true' expensive='true'>CASE WHEN wkc.group_name IS NULL THEN 0 ELSE 1 END</property>
      <property name="Importance" type="int" report_type="WorkloadManagementImportance">CASE WHEN N'Low' = wkg.importance THEN 0 WHEN N'Below_Normal' = wkg.importance THEN 1 WHEN N'Normal' = wkg.importance THEN 2 WHEN N'Above_Normal' = wkg.importance THEN 3 WHEN N'High' = wkg.importance THEN 4 ELSE 2 END</property>
      <property name="IsSystemObject" type="bit" access='Read' cast='true'>CASE WHEN wkg.group_id &lt; 13 THEN 1 ELSE 0 END</property>
      <property name="MinPercentageResource" type="int" cast='true'>wkg.min_percentage_resource</property>
      <property name="QueryExecutionTimeoutSec" type="int" cast='true'>wkg.query_execution_timeout_sec</property>
      <property name="RequestMaxResourceGrantPercent" type="float" cast='true'>wkg.request_max_resource_grant_percent</property>
      <property name="RequestMinResourceGrantPercent" type="float" cast='true'>wkg.request_min_resource_grant_percent</property>
    </version>
  </properties>
</EnumObject>
�<?xml version="1.0" ?>
<EnumObject type="XmlNamespace" impl_type="SqlObject" min_major='9'  cloud_min_major='12'>
	<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>

H<?xml version="1.0" ?>
<EnumObject type="XmlSchemaCollection" impl_type="SqlObject" min_major='9'  cloud_min_major='12'>
	<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'>
			<include file='inc_policy_health_state.xml'/>
		</version>
  </properties>
</EnumObject>

�<?xml version="1.0" ?>
<EnumObject type="XmlType" impl_type="SqlObject" min_major='9'>
	<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="StoredProcedure" impl_type="SqlObject" min_major='7'   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'  cloud_min_major='10'>
			<property_link table='sys.all_objects AS xproc'>xproc.type='X'</property_link>
		</version>
    <version min_major='10'  cloud_min_major='12'>
      <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'>
      <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'  cloud_min_major='12'>
      <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="OwnedObject" impl_type="SqlObject" min_major='7'>
	<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'>
		<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'>
	<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>

            <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>
{x-- 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 collate database_default 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 collate database_default 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


'�-- 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
�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
&�-- 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
        DECLARE @quote_quoted_dbname sysname
        DECLARE @bracket_quoted_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
            SET @quote_quoted_dbname = quotename(@dbname, '''')
            SET @bracket_quoted_dbname = quotename(@dbname, ']')
            DECLARE @query nvarchar(MAX)
            -- when schema is not null 
            -- @obj
            SET @query = 'update #t2 set object_db = N' + @quote_quoted_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 ' + @bracket_quoted_dbname + '.sys.objects as obj 
                join ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_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 ' + @bracket_quoted_dbname + '.sys.types as t
                join ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_dbname + ', object_id = x.xml_collection_id 
                from ' + @bracket_quoted_dbname + '.sys.xml_schema_collections as x
                join ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_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 ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_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 ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_dbname + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
                from ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_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 ' + @bracket_quoted_dbname + '.sys.objects as obj 
                join ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_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 ' + @bracket_quoted_dbname + '.sys.types as t
                join ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_dbname + ', object_id = x.xml_collection_id, object_schema = SCHEMA_NAME(x.schema_id)
                from ' + @bracket_quoted_dbname + '.sys.xml_schema_collections as x
                join ' + @bracket_quoted_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 = N' + @quote_quoted_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' + @quote_quoted_dbname + ', object_id = p.function_id
                from ' + @bracket_quoted_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 = N' + @quote_quoted_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
�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
s�����%�L�-��cD�����O�{��~L�Z�k��Ėa��̎)�^�GB���
jr{4�A��r����O6��ᬮiC��S-5�ij����o��Ϊ��|�����]��@h���Ў�MP� w Y'�w�YRSDS��W��SE�1<��?�C:\source\obj\src\Microsoft\SqlServer\Management\SqlEnum\Release\netcoreapp3.1\Microsoft.SqlServer.SqlEnum.pdbSHA256��W��S%�1<��?�Ўkn[�p�	;s�k�wx x_CorDllMainmscoree.dll�% �0�HX���4VS_VERSION_INFO���)ٳ�)ٳ?DVarFileInfo$Translation��StringFileInfo�000004b0v�Comments

  The SQL Server Management Objects (SMO) Framework is a set of objects designed for programmatic management of Microsoft SQL Server and Microsoft Azure SQL Database.

    LCompanyNameMicrosoft Corporation`FileDescriptionMicrosoft.SqlServer.SqlEnum^FileVersion16.200.46041.41 (SMO-master-A)` InternalNameMicrosoft.SqlServer.SqlEnum.dll�.LegalCopyright� Microsoft Corporation. All rights reserved.h OriginalFilenameMicrosoft.SqlServer.SqlEnum.dllXProductNameMicrosoft.SqlServer.SqlEnumDProductVersion16.200.46041.41>Assembly Version16.200.0.0p$8�#0�#y	*�H��
��#j0�#f10
	`�He0\
+�7�N0L0
+�70	���010
	`�He ���j-�/�-�|�'$s���]�j�-�a��
�0�0��3��Rֹ�m��0
	*�H��
0~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20110
200304183948Z
210303183948Z0t10	UUS10U
Washington10URedmond10U
Microsoft Corporation10UMicrosoft Corporation0�"0
	*�H��
�0�
������-������/XO�? ��?�%�6�'��[�}O����ؔnj���'��6a!D<�\;m��3���Ҽ��Dh0�H�x�D"e�D6F�qI&G#��e�;F�@8�Tv���0�v��Q��
�]�{[rV	1S���o��s@*޷�~}�h3_J\ ���U��.h�8M���oW�h�uaqSd�1���iوn�t.�ntF�Ƹ��P���~b��K�}V2�i~me��e?OJ��8"����0�~0U%0
+�7L+0U��I/�ͬ��DYt�]�{0o0TUM0K�I0G1-0+U$Microsoft Ireland Operations Limited10U
230012+4583860U#0�Hnd�Pӂ�77"�m��u�0TUM0K0I�G�E�Chttp://www.microsoft.com/pkiops/crl/MicCodSigPCA2011_2011-07-08.crl0a+U0S0Q+0�Ehttp://www.microsoft.com/pkiops/certs/MicCodSigPCA2011_2011-07-08.crt0U�00
	*�H��
�)ף�c��^O�	U�'�D��))���6���U�Uo���(n����:12>���(�ƄMl�h�7)�,�p�(zU���-"�Oޝ�^M��E�s屍,AbK:?8��GV���7�٣N�]�C�!{�x�������Ȱ�̥)�h�P�`��ηJW����{������
��w���C�Ȑ̔���Kl�����M������!U��������I��,�Q����I�Y����@3�\�*��'�gͺ����{}g<�B3,��Sj�`-�
�;�)#`l�����;��w��a���
�9�m5�I������ᕇʺ^9�q�ZO�-	�iiV�Yܟ�h�/V��`���򻇂=�$X���\���Ǚ�R����I���Z���cQ���p���_��h�*MZ�T#�^pV�It��j^9] Ȋ�A�f��t�]��04���vо�~F~�|A\��v�e��]����܄�0�bnS*%�0�z0�b�
a��0
	*�H��
0��10	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.��n��M4��X!�B*k�ZP��8I���7k���8™��9�1BӉ
yd�~�`$l��I��h^�ߛS�
,ï٩+�z	�זY�`�fv�2R&/�PϳD�]��.u�h��m�:\��F��8d�nd5x��c-�@����
�\y�I)�
��w��=��+ZMV(�zr�:�I^���C���{�{��>��]�O��/Y�;-�3Xŷ>�2ӳ=����8~ҝ�,�NV�!5%�9ndS���#������_��R������!t%_(��'(8%�9J6�|���#��f�aj�(I�_��%]�!K>RĵW?$��z[/�#�p]QFw��Ἤ�_����UK�9��#I��D|E��rz�r�$߿F����Wۃ��MI0�����[���ݰf��{���K�I)�(��}g��bx_�/��W�\�w((��m�(�,�@7O��D��	L�ԥC/t��n�x X,]`��>O3�ڰ�ޞN�F�l���ֈ����0��0	+�70UHnd�Pӂ�77"�m��u�0	+�7
SubCA0U�0U�0�0U#0�r-:1�C�N���1�#�40ZUS0Q0O�M�K�Ihttp://crl.microsoft.com/pki/crl/products/MicRooCerAut2011_2011_03_22.crl0^+R0P0N+0�Bhttp://www.microsoft.com/pki/certs/MicRooCerAut2011_2011_03_22.crt0��U ��0��0��	+�7.0��0?+3http://www.microsoft.com/pkiops/docs/primarycps.htm0@+042 Legal_policy_statement. 0
	*�H��
�g򆥘�Ty.��tg"���c��B�}�y��e_.,>��r�m���?�
�;�G���i�c�"5��]e��}�FPU��|�K�<B�Rа�k�>.)��=�Եw�9��d�D=xz#�}��t����&F*Š�����h�h.��*?*kXIc	inZ�����F+�;н5�n%��'������(��M=����2���-�[��I9
�
�ƭ�����QEX82q'��'��,: i��Y�hno��t�@�*(>�?Mf��M��o}E�v�@*e��]Rb��c6��������'�ͥ���]cA�[��>w��u�aa������A�(��e/��\��֡F�Y�	KH���)ű��?Ew5�Ң��zz"�H���G#�����k�K���ux��7�yK�ֳ#hu������i;��0�L���umc�=ѝVNO��W"�x2!z�A
�?��̤]����WqVNHE�Bɛv[
�Hk�y���mmj�Rs
zP�1�g0�c0��0~10	UUS10U
Washington10URedmond10U
Microsoft Corporation1(0&UMicrosoft Code Signing PCA 20113��Rֹ�m��0
	`�He���0	*�H��
	1
+�70
+�710
+�70/	*�H��
	1" �ɮ�=e�|wy�֩��\?������"m�0B
+�71402��Microsoft��http://www.microsoft.com0
	*�H��
�,J�V�s���+_'��Q�<�����f���t�
\6�l>��[�!c�`���.h�Y@�4�0
iW3x�M5p���	K�{c�J�fN3��I�I	}�t���w+9p��6R�rV�6��]xi���� ;#|�6؞2Z�l�:L-/
����.ݳx:p`��
6�HN�Fh��h}!"y+2@��GsU8��W��ε�~;�����.�;���'���
��x[Ӽ{��)�P��?TOh�-3�������0��
+�71��0��	*�H��
���0��10
	`�He0�U*�H��
	��D�@0�<
+�Y
010
	`�He �"��!��T���;����b��ah�mX��=\_�Ӻ��20201209154050.005Z0��Ԥ��0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1)0'U Microsoft Operations Puerto Rico1&0$UThales TSS ESN:7880-E390-80141%0#UMicrosoft Time-Stamp Service��D0��0�ݠ3(���6�O�(0
	*�H��
0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100
191219011500Z
210317011500Z0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1)0'U Microsoft Operations Puerto Rico1&0$UThales TSS ESN:7880-E390-80141%0#UMicrosoft Time-Stamp Service0�"0
	*�H��
�0�
�����Tۆ>Ϳ
\�{챴$��U��BK���L�~F�_��
�%�>�$�H��;�����ˏx�� ��sT$�p�79�Ë��(�
�H����l�3������3��>���-��H�$�f���ڮK���!t��Q�û����H�u]�t��*P�S`�#O6���㕁f7
���!�|��*�K߳R1�#(xg�Ă�H�[U�m<!*R���C����$�@�����/=��B�ӆϕ�{5�?g,���0�0U����~�7���NtP˦�0U#0��c:\�1��C{|F�3hZ�mU0VUO0M0K�I�G�Ehttp://crl.microsoft.com/pki/crl/products/MicTimStaPCA_2010-07-01.crl0Z+N0L0J+0�>http://www.microsoft.com/pki/certs/MicTimStaPCA_2010-07-01.crt0U�00U%0
+0
	*�H��
��_fG��9?��YL��<���I��x�Wp/wM�F�e��I�~sb�����e(����i�Q��7@^R���sw� b�����U2yX��&%VmwP��1�Z�~�0< �����a��8$�TM�e�N������8�*�.#�,��ӟn����f���q0�@���%EDZEiaYgՃ,���޼i��ɂ�.8�$h�ۆa�ףf1�I���VE�����2�r���<�X��e�L�0�q0�Y�
a	�*0
	*�H��
0��10	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�: ����i�ktTե
����|hK,_���a�v�>f+[�S'1A��	�|a0Y�0D�`��TC�M�8�Bݓ��s0W&��E
��G�Ϳ$`2X`F�XG�2�tag�_�T�ϓL��Ħ]�an(������a�F�'$gr!��Kd�Pb�]�w=�Wu���BM@Q��>g�f��D~��K�n�ʱ��z*
1��N���5�x���<�/D����d��� 	�x����D]^�O"M���0��0	+�70U�c:\�1��C{|F�3hZ�mU0	+�7
SubCA0U�0U�0�0U#0��Vˏ�\bh�=��[�Κ�0VUO0M0K�I�G�Ehttp://crl.microsoft.com/pki/crl/products/MicRooCerAut_2010-06-23.crl0Z+N0L0J+0�>http://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0��U ���0��0��	+�7.0��0=+1http://www.microsoft.com/PKI/docs/CPS/default.htm0@+042 Legal_Policy_Statement. 0
	*�H��
��Q
���?�q=���!o���1����Wm0���f�j���x�Ǩ�%��kTW+Q�D��S���`�v�@@A��\�\�^5�$VKt�Bȯ���7}Z?�yJ�R�8�/y�e٩�k����zoK0D$"<�����Y)����p�2J'�U�/���3�b_��W@��Ιf���jb��J�&�9�Jqc�{!mÜ��<�}�j�x�m���8ؔ�ƥ
������B�����"8 �%�d��~cY%z.9Wv�q����a�˚�G����ͧ��}���;q	�]t�"aڰPo�����1��:�eGx�H���r~akow��˧	�9����؂�r�����*T9�[��
U�z�s;�-��3.)��/T'!�ȬN�(���ۖ��B���AM�*��f0ӻt2K�c{���/�!�Y���D<�Pqס��U�i�W���0����M�
�]O�8/��X.�
�P5��	'ճ~5��6��_��t�I���0�;0����Ԥ��0��10	UUS10U
Washington10URedmond10U
Microsoft Corporation1)0'U Microsoft Operations Puerto Rico1&0$UThales TSS ESN:7880-E390-80141%0#UMicrosoft Time-Stamp Service�#
0+1=K�=�"�����}Z}����0���~0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20100
	*�H��
�{h�0"20201209191547Z20201210191547Z0w0=
+�Y
1/0-0
�{h�0
Q�0�0
�|�#06
+�Y
1(0&0
+�Y
�
0� �
0��0
	*�H��
���TJ���Z�8����;�>p/�_u̜l�c/S�|��ʞb�ʺO0<_��ڊ�x�$ť�p�~�g��z���'��!������
y�}�tZYul?K7��WZf������ʡ��*j ���1�
0�	0��0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103(���6�O�(0
	`�He��J0	*�H��
	1
*�H��
	0/	*�H��
	1" �;�%}N��z�mF<��<��2o)���b=�i0��*�H��
	/1��0��0��0�� �Ej��Rw�����o[O^��כ����0��0���~0|10	UUS10U
Washington10URedmond10U
Microsoft Corporation1&0$UMicrosoft Time-Stamp PCA 20103(���6�O�(0" >^j��N<��Vq�WY:6�Y	����Q�,k�{�0
	*�H��
�i3�����z����o��)�GS�H�v��j|w���A9qyf#N	�h9���{[�����N�_^��T,���_G$�g��=*�p�!�5�&�ĸ�!3��ï�HP�y�'$ۚ׍��V�Ʃ��&��n�:���>=��R�r��l�q"iR���3��鱳�H��ۓ-b�lh�&4Δ�5�Tߍ�83b��:�A�N^�����VtN�G�hŋ��r�r�I��������&�Lh-����