Coverage for sqlmodel/main.py: 93%

353 statements  

« prev     ^ index     » next       coverage.py v7.6.8, created at 2024-12-02 00:02 +0000

1import ipaddress 1fabcde

2import uuid 1fabcde

3import weakref 1fabcde

4from datetime import date, datetime, time, timedelta 1fabcde

5from decimal import Decimal 1fabcde

6from enum import Enum 1fabcde

7from pathlib import Path 1fabcde

8from typing import ( 1fabcde

9 TYPE_CHECKING, 

10 AbstractSet, 

11 Any, 

12 Callable, 

13 ClassVar, 

14 Dict, 

15 List, 

16 Mapping, 

17 Optional, 

18 Sequence, 

19 Set, 

20 Tuple, 

21 Type, 

22 TypeVar, 

23 Union, 

24 cast, 

25 overload, 

26) 

27 

28from pydantic import BaseModel, EmailStr 1fabcde

29from pydantic.fields import FieldInfo as PydanticFieldInfo 1fabcde

30from sqlalchemy import ( 1fabcde

31 Boolean, 

32 Column, 

33 Date, 

34 DateTime, 

35 Float, 

36 ForeignKey, 

37 Integer, 

38 Interval, 

39 Numeric, 

40 inspect, 

41) 

42from sqlalchemy import Enum as sa_Enum 1fabcde

43from sqlalchemy.orm import ( 1fabcde

44 Mapped, 

45 RelationshipProperty, 

46 declared_attr, 

47 registry, 

48 relationship, 

49) 

50from sqlalchemy.orm.attributes import set_attribute 1fabcde

51from sqlalchemy.orm.decl_api import DeclarativeMeta 1fabcde

52from sqlalchemy.orm.instrumentation import is_instrumented 1fabcde

53from sqlalchemy.sql.schema import MetaData 1fabcde

54from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid 1fabcde

55from typing_extensions import Literal, TypeAlias, deprecated, get_origin 1fabcde

56 

57from ._compat import ( # type: ignore[attr-defined] 1fabcde

58 IS_PYDANTIC_V2, 

59 PYDANTIC_VERSION, 

60 BaseConfig, 

61 ModelField, 

62 ModelMetaclass, 

63 Representation, 

64 SQLModelConfig, 

65 Undefined, 

66 UndefinedType, 

67 _calculate_keys, 

68 finish_init, 

69 get_annotations, 

70 get_config_value, 

71 get_field_metadata, 

72 get_model_fields, 

73 get_relationship_to, 

74 get_sa_type_from_field, 

75 init_pydantic_private_attrs, 

76 is_field_noneable, 

77 is_table_model_class, 

78 post_init_field_info, 

79 set_config_value, 

80 sqlmodel_init, 

81 sqlmodel_validate, 

82) 

83from .sql.sqltypes import AutoString 1fabcde

84 

85if TYPE_CHECKING: 1fabcde

86 from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass 

87 from pydantic._internal._repr import Representation as Representation 

88 from pydantic_core import PydanticUndefined as Undefined 

89 from pydantic_core import PydanticUndefinedType as UndefinedType 

90 

91_T = TypeVar("_T") 1fabcde

92NoArgAnyCallable = Callable[[], Any] 1fabcde

93IncEx: TypeAlias = Union[ 1fabcde

94 Set[int], 

95 Set[str], 

96 Mapping[int, Union["IncEx", Literal[True]]], 

97 Mapping[str, Union["IncEx", Literal[True]]], 

98] 

99OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"] 1fabcde

100 

101 

102def __dataclass_transform__( 1abcde

103 *, 

104 eq_default: bool = True, 

105 order_default: bool = False, 

106 kw_only_default: bool = False, 

107 field_descriptors: Tuple[Union[type, Callable[..., Any]], ...] = (()), 

108) -> Callable[[_T], _T]: 

109 return lambda a: a 1fabcde

110 

111 

112class FieldInfo(PydanticFieldInfo): 1fabcde

113 def __init__(self, default: Any = Undefined, **kwargs: Any) -> None: 1fabcde

114 primary_key = kwargs.pop("primary_key", False) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

115 nullable = kwargs.pop("nullable", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

116 foreign_key = kwargs.pop("foreign_key", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

117 ondelete = kwargs.pop("ondelete", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

118 unique = kwargs.pop("unique", False) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

119 index = kwargs.pop("index", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

120 sa_type = kwargs.pop("sa_type", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

121 sa_column = kwargs.pop("sa_column", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

122 sa_column_args = kwargs.pop("sa_column_args", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

123 sa_column_kwargs = kwargs.pop("sa_column_kwargs", Undefined) 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

124 if sa_column is not Undefined: 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

125 if sa_column_args is not Undefined: 2JkfmloEmroDoxo~lxmBltkgmmoFmsoEoyoamymwlukhmnoGmtoFozobmzmxlvkimooHmuoGoAocmAmylwkjmpoImvoHoBodmBmzlxkkmqoJmwoIoCoemCmAl

126 raise RuntimeError( 2DoEoFoGoHoIo

127 "Passing sa_column_args is not supported when " 

128 "also passing a sa_column" 

129 ) 

130 if sa_column_kwargs is not Undefined: 2JkfmloEmroxo~lxmBltkgmmoFmsoyoamymwlukhmnoGmtozobmzmxlvkimooHmuoAocmAmylwkjmpoImvoBodmBmzlxkkmqoJmwoCoemCmAl

131 raise RuntimeError( 2xoyozoAoBoCo

132 "Passing sa_column_kwargs is not supported when " 

133 "also passing a sa_column" 

134 ) 

135 if primary_key is not Undefined: 2JkfmloEmro~lxmBltkgmmoFmsoamymwlukhmnoGmtobmzmxlvkimooHmuocmAmylwkjmpoImvodmBmzlxkkmqoJmwoemCmAl

136 raise RuntimeError( 2rosotouovowo

137 "Passing primary_key is not supported when " 

138 "also passing a sa_column" 

139 ) 

140 if nullable is not Undefined: 2JkfmloEm~lxmBltkgmmoFmamymwlukhmnoGmbmzmxlvkimooHmcmAmylwkjmpoImdmBmzlxkkmqoJmemCmAl

141 raise RuntimeError( 2lomonooopoqo

142 "Passing nullable is not supported when also passing a sa_column" 

143 ) 

144 if foreign_key is not Undefined: 2JkfmEm~lxmBltkgmFmamymwlukhmGmbmzmxlvkimHmcmAmylwkjmImdmBmzlxkkmJmemCmAl

145 raise RuntimeError( 2Jktkukvkwkxk

146 "Passing foreign_key is not supported when " 

147 "also passing a sa_column" 

148 ) 

149 if ondelete is not Undefined: 2fmEm~lxmBlgmFmamymwlhmGmbmzmxlimHmcmAmyljmImdmBmzlkmJmemCmAl

150 raise RuntimeError( 2EmFmGmHmImJm

151 "Passing ondelete is not supported when also passing a sa_column" 

152 ) 

153 if unique is not Undefined: 2fm~lxmBlgmamymwlhmbmzmxlimcmAmyljmdmBmzlkmemCmAl

154 raise RuntimeError( 2xmymzmAmBmCm

155 "Passing unique is not supported when also passing a sa_column" 

156 ) 

157 if index is not Undefined: 2fm~lBlgmamwlhmbmxlimcmyljmdmzlkmemAl

158 raise RuntimeError( 2fmgmhmimjmkm

159 "Passing index is not supported when also passing a sa_column" 

160 ) 

161 if sa_type is not Undefined: 2~lBlamwlbmxlcmyldmzlemAl

162 raise RuntimeError( 2~lambmcmdmem

163 "Passing sa_type is not supported when also passing a sa_column" 

164 ) 

165 if ondelete is not Undefined: 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

166 if foreign_key is Undefined: 2^l|cYc6cZc0c1c_l[c* Tb+ 2 , `l]c; = 4b5b? @ 3 4 [ ] {l^c~ abbb/b:b;bcbdbeb5 6 7 fbgbhb|l_cobpbqbgchcicrbsbtb8 9 ! ubvbwb}l`cDbEbFbBcCcDcGbHbIb# $ % JbKbLb

167 raise RuntimeError("ondelete can only be used with foreign_key") 2^l_l`l{l|l}l

168 super().__init__(default=default, **kwargs) 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

169 self.primary_key = primary_key 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

170 self.nullable = nullable 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

171 self.foreign_key = foreign_key 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

172 self.ondelete = ondelete 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

173 self.unique = unique 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

174 self.index = index 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

175 self.sa_type = sa_type 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

176 self.sa_column = sa_column 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

177 self.sa_column_args = sa_column_args 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

178 self.sa_column_kwargs = sa_column_kwargs 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

179 

180 

181class RelationshipInfo(Representation): 1fabcde

182 def __init__( 1abcde

183 self, 

184 *, 

185 back_populates: Optional[str] = None, 

186 cascade_delete: Optional[bool] = False, 

187 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

188 link_model: Optional[Any] = None, 

189 sa_relationship: Optional[RelationshipProperty] = None, # type: ignore 

190 sa_relationship_args: Optional[Sequence[Any]] = None, 

191 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

192 ) -> None: 

193 if sa_relationship is not None: 2;l+l{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c=l,l/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb?l-l:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b@l.l;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b[l/l=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc]l:l?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

194 if sa_relationship_args is not None: 2;l+l{c=l,l/c?l-l:c@l.l;c[l/l=c]l:l?c

195 raise RuntimeError( 2;l=l?l@l[l]l

196 "Passing sa_relationship_args is not supported when " 

197 "also passing a sa_relationship" 

198 ) 

199 if sa_relationship_kwargs is not None: 2+l{c,l/c-l:c.l;c/l=c:l?c

200 raise RuntimeError( 2+l,l-l.l/l:l

201 "Passing sa_relationship_kwargs is not supported when " 

202 "also passing a sa_relationship" 

203 ) 

204 self.back_populates = back_populates 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

205 self.cascade_delete = cascade_delete 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

206 self.passive_deletes = passive_deletes 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

207 self.link_model = link_model 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

208 self.sa_relationship = sa_relationship 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

209 self.sa_relationship_args = sa_relationship_args 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

210 self.sa_relationship_kwargs = sa_relationship_kwargs 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

211 

212 

213# include sa_type, sa_column_args, sa_column_kwargs 

214@overload 1fabcde

215def Field( 1abcde

216 default: Any = Undefined, 1fabcde

217 *, 

218 default_factory: Optional[NoArgAnyCallable] = None, 1fabcde

219 alias: Optional[str] = None, 1fabcde

220 title: Optional[str] = None, 1fabcde

221 description: Optional[str] = None, 1fabcde

222 exclude: Union[ 1abcde

223 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

224 ] = None, 1fabcde

225 include: Union[ 1abcde

226 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

227 ] = None, 1fabcde

228 const: Optional[bool] = None, 1fabcde

229 gt: Optional[float] = None, 1fabcde

230 ge: Optional[float] = None, 1fabcde

231 lt: Optional[float] = None, 1fabcde

232 le: Optional[float] = None, 1fabcde

233 multiple_of: Optional[float] = None, 1fabcde

234 max_digits: Optional[int] = None, 1fabcde

235 decimal_places: Optional[int] = None, 1fabcde

236 min_items: Optional[int] = None, 1fabcde

237 max_items: Optional[int] = None, 1fabcde

238 unique_items: Optional[bool] = None, 1fabcde

239 min_length: Optional[int] = None, 1fabcde

240 max_length: Optional[int] = None, 1fabcde

241 allow_mutation: bool = True, 1fabcde

242 regex: Optional[str] = None, 1fabcde

243 discriminator: Optional[str] = None, 1fabcde

244 repr: bool = True, 1fabcde

245 primary_key: Union[bool, UndefinedType] = Undefined, 1fabcde

246 foreign_key: Any = Undefined, 1fabcde

247 unique: Union[bool, UndefinedType] = Undefined, 1fabcde

248 nullable: Union[bool, UndefinedType] = Undefined, 1fabcde

249 index: Union[bool, UndefinedType] = Undefined, 1fabcde

250 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1fabcde

251 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1fabcde

252 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1fabcde

253 schema_extra: Optional[Dict[str, Any]] = None, 1fabcde

254) -> Any: ... 1fabcde

255 

256 

257# When foreign_key is str, include ondelete 

258# include sa_type, sa_column_args, sa_column_kwargs 

259@overload 1fabcde

260def Field( 1abcde

261 default: Any = Undefined, 1fabcde

262 *, 

263 default_factory: Optional[NoArgAnyCallable] = None, 1fabcde

264 alias: Optional[str] = None, 1fabcde

265 title: Optional[str] = None, 1fabcde

266 description: Optional[str] = None, 1fabcde

267 exclude: Union[ 1abcde

268 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

269 ] = None, 1fabcde

270 include: Union[ 1abcde

271 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

272 ] = None, 1fabcde

273 const: Optional[bool] = None, 1fabcde

274 gt: Optional[float] = None, 1fabcde

275 ge: Optional[float] = None, 1fabcde

276 lt: Optional[float] = None, 1fabcde

277 le: Optional[float] = None, 1fabcde

278 multiple_of: Optional[float] = None, 1fabcde

279 max_digits: Optional[int] = None, 1fabcde

280 decimal_places: Optional[int] = None, 1fabcde

281 min_items: Optional[int] = None, 1fabcde

282 max_items: Optional[int] = None, 1fabcde

283 unique_items: Optional[bool] = None, 1fabcde

284 min_length: Optional[int] = None, 1fabcde

285 max_length: Optional[int] = None, 1fabcde

286 allow_mutation: bool = True, 1fabcde

287 regex: Optional[str] = None, 1fabcde

288 discriminator: Optional[str] = None, 1fabcde

289 repr: bool = True, 1fabcde

290 primary_key: Union[bool, UndefinedType] = Undefined, 1fabcde

291 foreign_key: str, 1abcde

292 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 1fabcde

293 unique: Union[bool, UndefinedType] = Undefined, 1fabcde

294 nullable: Union[bool, UndefinedType] = Undefined, 1fabcde

295 index: Union[bool, UndefinedType] = Undefined, 1fabcde

296 sa_type: Union[Type[Any], UndefinedType] = Undefined, 1fabcde

297 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 1fabcde

298 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 1fabcde

299 schema_extra: Optional[Dict[str, Any]] = None, 1fabcde

300) -> Any: ... 1fabcde

301 

302 

303# Include sa_column, don't include 

304# primary_key 

305# foreign_key 

306# ondelete 

307# unique 

308# nullable 

309# index 

310# sa_type 

311# sa_column_args 

312# sa_column_kwargs 

313@overload 1fabcde

314def Field( 1abcde

315 default: Any = Undefined, 1fabcde

316 *, 

317 default_factory: Optional[NoArgAnyCallable] = None, 1fabcde

318 alias: Optional[str] = None, 1fabcde

319 title: Optional[str] = None, 1fabcde

320 description: Optional[str] = None, 1fabcde

321 exclude: Union[ 1abcde

322 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

323 ] = None, 1fabcde

324 include: Union[ 1abcde

325 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 1abcde

326 ] = None, 1fabcde

327 const: Optional[bool] = None, 1fabcde

328 gt: Optional[float] = None, 1fabcde

329 ge: Optional[float] = None, 1fabcde

330 lt: Optional[float] = None, 1fabcde

331 le: Optional[float] = None, 1fabcde

332 multiple_of: Optional[float] = None, 1fabcde

333 max_digits: Optional[int] = None, 1fabcde

334 decimal_places: Optional[int] = None, 1fabcde

335 min_items: Optional[int] = None, 1fabcde

336 max_items: Optional[int] = None, 1fabcde

337 unique_items: Optional[bool] = None, 1fabcde

338 min_length: Optional[int] = None, 1fabcde

339 max_length: Optional[int] = None, 1fabcde

340 allow_mutation: bool = True, 1fabcde

341 regex: Optional[str] = None, 1fabcde

342 discriminator: Optional[str] = None, 1fabcde

343 repr: bool = True, 1fabcde

344 sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore 1fabcde

345 schema_extra: Optional[Dict[str, Any]] = None, 1fabcde

346) -> Any: ... 1fabcde

347 

348 

349def Field( 1abcde

350 default: Any = Undefined, 

351 *, 

352 default_factory: Optional[NoArgAnyCallable] = None, 

353 alias: Optional[str] = None, 

354 title: Optional[str] = None, 

355 description: Optional[str] = None, 

356 exclude: Union[ 

357 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

358 ] = None, 

359 include: Union[ 

360 AbstractSet[Union[int, str]], Mapping[Union[int, str], Any], Any 

361 ] = None, 

362 const: Optional[bool] = None, 

363 gt: Optional[float] = None, 

364 ge: Optional[float] = None, 

365 lt: Optional[float] = None, 

366 le: Optional[float] = None, 

367 multiple_of: Optional[float] = None, 

368 max_digits: Optional[int] = None, 

369 decimal_places: Optional[int] = None, 

370 min_items: Optional[int] = None, 

371 max_items: Optional[int] = None, 

372 unique_items: Optional[bool] = None, 

373 min_length: Optional[int] = None, 

374 max_length: Optional[int] = None, 

375 allow_mutation: bool = True, 

376 regex: Optional[str] = None, 

377 discriminator: Optional[str] = None, 

378 repr: bool = True, 

379 primary_key: Union[bool, UndefinedType] = Undefined, 

380 foreign_key: Any = Undefined, 

381 ondelete: Union[OnDeleteType, UndefinedType] = Undefined, 

382 unique: Union[bool, UndefinedType] = Undefined, 

383 nullable: Union[bool, UndefinedType] = Undefined, 

384 index: Union[bool, UndefinedType] = Undefined, 

385 sa_type: Union[Type[Any], UndefinedType] = Undefined, 

386 sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore 

387 sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined, 

388 sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined, 

389 schema_extra: Optional[Dict[str, Any]] = None, 

390) -> Any: 

391 current_schema_extra = schema_extra or {} 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

392 field_info = FieldInfo( 2f XexeyeakPkQk-k{kJkfmloEmroDoxo~lxmBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkgmmoFmsoEoyoamymwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukhmnoGmtoFozobmzmxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkimooHmuoGoAocmAmyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkjmpoImvoHoBodmBmzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkkmqoJmwoIoCoemCmAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

393 default, 

394 default_factory=default_factory, 

395 alias=alias, 

396 title=title, 

397 description=description, 

398 exclude=exclude, 

399 include=include, 

400 const=const, 

401 gt=gt, 

402 ge=ge, 

403 lt=lt, 

404 le=le, 

405 multiple_of=multiple_of, 

406 max_digits=max_digits, 

407 decimal_places=decimal_places, 

408 min_items=min_items, 

409 max_items=max_items, 

410 unique_items=unique_items, 

411 min_length=min_length, 

412 max_length=max_length, 

413 allow_mutation=allow_mutation, 

414 regex=regex, 

415 discriminator=discriminator, 

416 repr=repr, 

417 primary_key=primary_key, 

418 foreign_key=foreign_key, 

419 ondelete=ondelete, 

420 unique=unique, 

421 nullable=nullable, 

422 index=index, 

423 sa_type=sa_type, 

424 sa_column=sa_column, 

425 sa_column_args=sa_column_args, 

426 sa_column_kwargs=sa_column_kwargs, 

427 **current_schema_extra, 

428 ) 

429 post_init_field_info(field_info) 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

430 return field_info 2f XexeyeakPkQk-k{kJkBl;l+l1lbk2l{cckdkeknl~j,k|k^l|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwl=l,lHltjIl/cujvjwj}knjKk/k_l[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxl?l-lLlEjMl:cFjGjHjblojLk;k`l]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkyl@l.lPlPjQl;cQjRjSjelpjMk?k{l^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl[l/lTl5jUl=c6j7j8jhlqjNk[k|l_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl]l:lXl.jYl?c/j:j;jklrjOk^k}l`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

431 

432 

433@overload 1fabcde

434def Relationship( 1abcde

435 *, 

436 back_populates: Optional[str] = None, 1fabcde

437 cascade_delete: Optional[bool] = False, 1fabcde

438 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1fabcde

439 link_model: Optional[Any] = None, 1fabcde

440 sa_relationship_args: Optional[Sequence[Any]] = None, 1fabcde

441 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 1fabcde

442) -> Any: ... 1fabcde

443 

444 

445@overload 1fabcde

446def Relationship( 1abcde

447 *, 

448 back_populates: Optional[str] = None, 1fabcde

449 cascade_delete: Optional[bool] = False, 1fabcde

450 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 1fabcde

451 link_model: Optional[Any] = None, 1fabcde

452 sa_relationship: Optional[RelationshipProperty[Any]] = None, 1fabcde

453) -> Any: ... 1fabcde

454 

455 

456def Relationship( 1abcde

457 *, 

458 back_populates: Optional[str] = None, 

459 cascade_delete: Optional[bool] = False, 

460 passive_deletes: Optional[Union[bool, Literal["all"]]] = False, 

461 link_model: Optional[Any] = None, 

462 sa_relationship: Optional[RelationshipProperty[Any]] = None, 

463 sa_relationship_args: Optional[Sequence[Any]] = None, 

464 sa_relationship_kwargs: Optional[Mapping[str, Any]] = None, 

465) -> Any: 

466 relationship_info = RelationshipInfo( 2;l+l{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c=l,l/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb?l-l:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b@l.l;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b[l/l=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc]l:l?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

467 back_populates=back_populates, 

468 cascade_delete=cascade_delete, 

469 passive_deletes=passive_deletes, 

470 link_model=link_model, 

471 sa_relationship=sa_relationship, 

472 sa_relationship_args=sa_relationship_args, 

473 sa_relationship_kwargs=sa_relationship_kwargs, 

474 ) 

475 return relationship_info 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

476 

477 

478@__dataclass_transform__(kw_only_default=True, field_descriptors=(Field, FieldInfo)) 1fabcde

479class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta): 1fabcde

480 __sqlmodel_relationships__: Dict[str, RelationshipInfo] 1fabcde

481 model_config: SQLModelConfig 1fabcde

482 model_fields: Dict[str, FieldInfo] 1fabcde

483 __config__: Type[SQLModelConfig] 1fabcde

484 __fields__: Dict[str, ModelField] # type: ignore[assignment] 1fabcde

485 

486 # Replicate SQLAlchemy 

487 def __setattr__(cls, name: str, value: Any) -> None: 1fabcde

488 if is_table_model_class(cls): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

489 DeclarativeMeta.__setattr__(cls, name, value) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

490 else: 

491 super().__setattr__(name, value) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

492 

493 def __delattr__(cls, name: str) -> None: 1fabcde

494 if is_table_model_class(cls): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

495 DeclarativeMeta.__delattr__(cls, name) 1fabcde

496 else: 

497 super().__delattr__(name) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

498 

499 # From Pydantic 

500 def __new__( 1abcde

501 cls, 

502 name: str, 

503 bases: Tuple[Type[Any], ...], 

504 class_dict: Dict[str, Any], 

505 **kwargs: Any, 

506 ) -> Any: 

507 relationships: Dict[str, RelationshipInfo] = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

508 dict_for_pydantic = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

509 original_annotations = get_annotations(class_dict) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

510 pydantic_annotations = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

511 relationship_annotations = {} 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

512 for k, v in class_dict.items(): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

513 if isinstance(v, RelationshipInfo): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

514 relationships[k] = v 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

515 else: 

516 dict_for_pydantic[k] = v 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

517 for k, v in original_annotations.items(): 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

518 if k in relationships: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

519 relationship_annotations[k] = v 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

520 else: 

521 pydantic_annotations[k] = v 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

522 dict_used = { 2a MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

523 **dict_for_pydantic, 

524 "__weakref__": None, 

525 "__sqlmodel_relationships__": relationships, 

526 "__annotations__": pydantic_annotations, 

527 } 

528 # Duplicate logic from Pydantic to filter config kwargs because if they are 

529 # passed directly including the registry Pydantic will pass them over to the 

530 # superclass causing an error 

531 allowed_config_kwargs: Set[str] = { 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

532 key 

533 for key in dir(BaseConfig) 

534 if not ( 

535 key.startswith("__") and key.endswith("__") 

536 ) # skip dunder methods and attributes 

537 } 

538 config_kwargs = { 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

539 key: kwargs[key] for key in kwargs.keys() & allowed_config_kwargs 

540 } 

541 new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

542 new_cls.__annotations__ = { 2a MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

543 **relationship_annotations, 

544 **pydantic_annotations, 

545 **new_cls.__annotations__, 

546 } 

547 

548 def get_config(name: str) -> Any: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

549 config_class_value = get_config_value( 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

550 model=new_cls, parameter=name, default=Undefined 

551 ) 

552 if config_class_value is not Undefined: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

553 return config_class_value 2Mf6e7e8e9e!e#e$e%e'e(e)e*e

554 kwarg_value = kwargs.get(name, Undefined) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

555 if kwarg_value is not Undefined: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

556 return kwarg_value 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

557 return Undefined 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

558 

559 config_table = get_config("table") 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

560 if config_table is True: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkeknl~j,k|k|c3l4l5lfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwj}knjKk/k[cJlKlClxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjblojLk;k]cNlOlDlIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjelpjMk?k^cRlSlElTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jhlqjNk[k_cVlWlFl9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jklrjOk^k`cZl0lGl=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

561 # If it was passed by kwargs, ensure it's also set in config 

562 set_config_value(model=new_cls, parameter="table", value=config_table) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

563 for k, v in get_model_fields(new_cls).items(): 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

564 col = get_column_from_field(v) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

565 setattr(new_cls, k, col) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

566 # Set a config flag to tell FastAPI that this should be read with a field 

567 # in orm_mode instead of preemptively converting it to a dict. 

568 # This could be done by reading new_cls.model_config['table'] in FastAPI, but 

569 # that's very specific about SQLModel, so let's have another config that 

570 # other future tools based on Pydantic can use. 

571 set_config_value( 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

572 model=new_cls, parameter="read_from_attributes", value=True 

573 ) 

574 # For compatibility with older versions 

575 # TODO: remove this in the future 

576 set_config_value(model=new_cls, parameter="read_with_orm_mode", value=True) 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

577 

578 config_registry = get_config("registry") 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

579 if config_registry is not Undefined: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

580 config_registry = cast(registry, config_registry) 1fabcde

581 # If it was passed by kwargs, ensure it's also set in config 

582 set_config_value(model=new_cls, parameter="registry", value=config_table) 1fabcde

583 setattr(new_cls, "_sa_registry", config_registry) # noqa: B010 1fabcde

584 setattr(new_cls, "metadata", config_registry.metadata) # noqa: B010 1fabcde

585 setattr(new_cls, "__abstract__", True) # noqa: B010 1fabcde

586 return new_cls 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

587 

588 # Override SQLAlchemy, allow both SQLAlchemy and plain Pydantic models 

589 def __init__( 1abcde

590 cls, classname: str, bases: Tuple[type, ...], dict_: Dict[str, Any], **kw: Any 

591 ) -> None: 

592 # Only one of the base classes (or the current one) should be a table model 

593 # this allows FastAPI cloning a SQLModel for the response_model without 

594 # trying to create a new SQLAlchemy, for a new table, with the same name, that 

595 # triggers an error 

596 base_is_table = any(is_table_model_class(base) for base in bases) 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

597 if is_table_model_class(cls) and not base_is_table: 2f XexeyeakPkQk-k{kJkBl1lbk2l{cckdkek~j,k|k|c3l4l5lfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#la MdwdxdsjzkAkRk.ktkwlHltjIl/cujvjwjnjKk/k[cJlKlClxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6lb VdydzdDjBkCkSk:kukxlLlEjMl:cFjGjHjojLk;k]cNlOlDlIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7lc 4d5dAdBdCdDdOjDkEkUk=kvkylPlPjQl;cQjRjSjpjMk?k^cRlSlElTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8ld /d:dEdFdGdHd4jFkGkXk@kwkzlTl5jUl=c6j7j8jqjNk[k_cVlWlFl9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9le deeeIdJdKdLd-jHkIk0k]kxkAlXl.jYl?c/j:j;jrjOk^k`cZl0lGl=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

598 for rel_name, rel_info in cls.__sqlmodel_relationships__.items(): 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

599 if rel_info.sa_relationship: 2{c|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

600 # There's a SQLAlchemy relationship declared, that takes precedence 

601 # over anything else, use that and continue with the next attribute 

602 setattr(cls, rel_name, rel_info.sa_relationship) # Fix #315 2{c/c:c;c=c?c

603 continue 2{c/c:c;c=c?c

604 raw_ann = cls.__annotations__[rel_name] 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

605 origin = get_origin(raw_ann) 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

606 if origin is Mapped: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

607 ann = raw_ann.__args__[0] 

608 else: 

609 ann = raw_ann 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

610 # Plain forward references, for models not yet defined, are not 

611 # handled well by SQLAlchemy without Mapped, so, wrap the 

612 # annotations in Mapped here 

613 cls.__annotations__[rel_name] = Mapped[ann] # type: ignore[valid-type] 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

614 relationship_to = get_relationship_to( 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

615 name=rel_name, rel_info=rel_info, annotation=ann 

616 ) 

617 rel_kwargs: Dict[str, Any] = {} 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

618 if rel_info.back_populates: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

619 rel_kwargs["back_populates"] = rel_info.back_populates 2|c2c3cMbNbOb' WcXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( ) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . / : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` { | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkblbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

620 if rel_info.cascade_delete: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

621 rel_kwargs["cascade"] = "all, delete-orphan" 2Yc* ; = ~ abbbobpbqbDbEbFb

622 if rel_info.passive_deletes: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

623 rel_kwargs["passive_deletes"] = rel_info.passive_deletes 2|cZc0c1c[c+ 2 , ]c? @ 3 4 [ ] ^ccbdbeb5 6 7 fbgbhb_crbsbtb8 9 ! ubvbwb`cGbHbIb# $ % JbKbLb

624 if rel_info.link_model: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

625 ins = inspect(rel_info.link_model) 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

626 local_table = getattr(ins, "local_table") # noqa: B009 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

627 if local_table is None: 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

628 raise RuntimeError( 

629 "Couldn't find the secondary table for " 

630 f"model {rel_info.link_model}" 

631 ) 

632 rel_kwargs["secondary"] = local_table 2Ob' u g z A h i H I J j k l Q R S m n o Z 0 1 p q r

633 rel_args: List[Any] = [] 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

634 if rel_info.sa_relationship_args: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

635 rel_args.extend(rel_info.sa_relationship_args) 

636 if rel_info.sa_relationship_kwargs: 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

637 rel_kwargs.update(rel_info.sa_relationship_kwargs) 

638 rel_value = relationship(relationship_to, *rel_args, **rel_kwargs) 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

639 setattr(cls, rel_name, rel_value) # Fix #315 2|c2c3cMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c[cPbQbs t u g ( Kc) !cRbSb* Tb+ 2 , UbVb]cWbXbYbZbv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b^c!b#b$b%b'b(bB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b_c_b`b{b|b}b~bK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc`cpcqcrcsctcucT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

640 # SQLAlchemy no longer uses dict_ 

641 # Ref: https://github.com/sqlalchemy/sqlalchemy/commit/428ea01f00a9cc7f85e435018565eb6da7af1b77 

642 # Tag: 1.4.36 

643 DeclarativeMeta.__init__(cls, classname, bases, dict_, **kw) 2f XexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

644 else: 

645 ModelMetaclass.__init__(cls, classname, bases, dict_, **kw) 2f PkQk1l2l3l4l5lLf9i!i#i$iMbMfNfNbvewe*l#la zkAkHlIlJlKlClze+e,e-e.es 6eAet }c~c$l6lb BkCkLlMlNlOlDlTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEex y adbdcddd%l7lc DkEkPlQlRlSlElVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeE F G edfdgdhdidjd'l8ld FkGkTlUlVlWlFlYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeN O P kdldmdndodpd(l9le HkIkXlYlZl0lGl1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeW X Y qdrdsdtdudvd)l!l

646 

647 

648def get_sqlalchemy_type(field: Any) -> Any: 1fabcde

649 if IS_PYDANTIC_V2: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

650 field_info = field 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

651 else: 

652 field_info = field.field_info 2f XexeyePkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

653 sa_type = getattr(field_info, "sa_type", Undefined) # noqa: B009 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

654 if sa_type is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

655 return sa_type 

656 

657 type_ = get_sa_type_from_field(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

658 metadata = get_field_metadata(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

659 

660 # Check enums first as an enum can also be a str, needed by Pydantic/FastAPI 

661 if issubclass(type_, Enum): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

662 return sa_Enum(type_) 2f PkQka zkAkb BkCkc DkEkd FkGke HkIk

663 if issubclass( 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

664 type_, 

665 ( 

666 str, 

667 ipaddress.IPv4Address, 

668 ipaddress.IPv4Network, 

669 ipaddress.IPv6Address, 

670 ipaddress.IPv6Network, 

671 Path, 

672 EmailStr, 

673 ), 

674 ): 

675 max_length = getattr(metadata, "max_length", None) 2f Xexeye-kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSkukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUkvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXkwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

676 if max_length: 2f Xexeye-kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSkukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUkvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXkwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

677 return AutoString(length=max_length) 

678 return AutoString 2f Xexeye-kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSkukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUkvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXkwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

679 if issubclass(type_, float): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

680 return Float 

681 if issubclass(type_, bool): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

682 return Boolean 2Wc( - . ^ _ ` ibjbkbxbybzb

683 if issubclass(type_, int): 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

684 return Integer 2f Xexeye-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

685 if issubclass(type_, datetime): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

686 return DateTime 

687 if issubclass(type_, date): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

688 return Date 

689 if issubclass(type_, timedelta): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

690 return Interval 

691 if issubclass(type_, time): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

692 return Time 

693 if issubclass(type_, bytes): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

694 return LargeBinary 

695 if issubclass(type_, Decimal): 2f XexeyeakPkQknlolpla MdwdxdsjzkAk}k~kalb VdydzdDjBkCkblcldlc 4d5dAdBdCdDdOjDkEkelflgld /d:dEdFdGdHd4jFkGkhliljle deeeIdJdKdLd-jHkIkklllml

696 return Numeric( 2XeMdVd4d5d/d:ddeee

697 precision=getattr(metadata, "max_digits", None), 

698 scale=getattr(metadata, "decimal_places", None), 

699 ) 

700 if issubclass(type_, uuid.UUID): 2f xeyeakPkQknlolpla wdxdsjzkAk}k~kalb ydzdDjBkCkblcldlc AdBdCdDdOjDkEkelflgld EdFdGdHd4jFkGkhliljle IdJdKdLd-jHkIkklllml

701 return Uuid 2f xeyeakPkQka wdxdsjzkAkb ydzdDjBkCkc AdBdCdDdOjDkEkd EdFdGdHd4jFkGke IdJdKdLd-jHkIk

702 raise ValueError(f"{type_} has no matching SQLAlchemy type") 2nlolpl}k~kalblcldlelflglhliljlklllml

703 

704 

705def get_column_from_field(field: Any) -> Column: # type: ignore 1fabcde

706 if IS_PYDANTIC_V2: 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

707 field_info = field 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

708 else: 

709 field_info = field.field_info 2f XexeyePkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

710 sa_column = getattr(field_info, "sa_column", Undefined) 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

711 if isinstance(sa_column, Column): 2f XexeyeakPkQk-k{kJkBlbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktkwltj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukxlEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

712 return sa_column 2BlwlxlylzlAl

713 sa_type = get_sqlalchemy_type(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

714 primary_key = getattr(field_info, "primary_key", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

715 if primary_key is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

716 primary_key = False 2f XexeyePkQk-k{kJkbk{cckdkek~j,k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktktj/cujvjwjnjKk[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukEj:cFjGjHjojLk]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkPj;cQjRjSjpjMk^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwk5j=c6j7j8jqjNk_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxk.j?c/j:j;jrjOk`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

717 index = getattr(field_info, "index", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

718 if index is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

719 index = False 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

720 nullable = not primary_key and is_field_noneable(field) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

721 # Override derived nullability if the nullable property is set explicitly 

722 # on the field 

723 field_nullable = getattr(field_info, "nullable", Undefined) # noqa: B009 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

724 if field_nullable is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

725 assert not isinstance(field_nullable, UndefinedType) 2~j,k|knjKk/kojLk;kpjMk?kqjNk[krjOk^k

726 nullable = field_nullable 2~j,k|knjKk/kojLk;kpjMk?kqjNk[krjOk^k

727 args = [] 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

728 foreign_key = getattr(field_info, "foreign_key", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

729 if foreign_key is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

730 foreign_key = None 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

731 unique = getattr(field_info, "unique", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

732 if unique is Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

733 unique = False 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

734 if foreign_key: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

735 if field_info.ondelete == "SET NULL" and not nullable: 2{c|c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/c[cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:c]cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c^c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?c`cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

736 raise RuntimeError('ondelete="SET NULL" requires nullable=True') 2|c[c]c^c_c`c

737 assert isinstance(foreign_key, str) 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

738 ondelete = getattr(field_info, "ondelete", Undefined) 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

739 if ondelete is Undefined: 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

740 ondelete = None 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSbUbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcEcFcGcHcIcJc

741 assert isinstance(ondelete, (str, type(None))) # for typing 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

742 args.append(ForeignKey(foreign_key, ondelete=ondelete)) 2{c2c3cykYeZe0e1e2e3e4e5eMbNbOb' Wc9cXc@c4c5cYc6cZc0c1c7c8c/cPbQblkNdOdPdQdRdSdTdUds t u g ( Kc) !cRbSb* Tb+ 2 , UbVb:cWbXbYbZbmkWdXdYdZd0d1d2d3dv w x y z A h i - . LcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9b;c!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dB C D E F G H I J j k l ^ _ ` NcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b=c_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebeceK L M N O P Q R S m n o ibjbkbQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncoc?cpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteueT U V W X Y Z 0 1 p q r xbybzbTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJc

743 kwargs = { 2a MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

744 "primary_key": primary_key, 

745 "nullable": nullable, 

746 "index": index, 

747 "unique": unique, 

748 } 

749 sa_default = Undefined 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

750 if field_info.default_factory: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

751 sa_default = field_info.default_factory 2xeyeakwdxdsjydzdDjAdBdCdDdOjEdFdGdHd4jIdJdKdLd-j

752 elif field_info.default is not Undefined: 2f XexeyePkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLdHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

753 sa_default = field_info.default 2f Xexeye-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHdXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

754 if sa_default is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

755 kwargs["default"] = sa_default 2f Xexeyeak-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-j0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

756 sa_column_args = getattr(field_info, "sa_column_args", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

757 if sa_column_args is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

758 args.extend(list(cast(Sequence[Any], sa_column_args))) 2-kRkSkUkXk0k

759 sa_column_kwargs = getattr(field_info, "sa_column_kwargs", Undefined) 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

760 if sa_column_kwargs is not Undefined: 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

761 kwargs.update(cast(Dict[Any, Any], sa_column_kwargs)) 2{k.k:k=k@k]k

762 return Column(sa_type, *args, **kwargs) # type: ignore 2f XexeyeakPkQk-k{kJkbk{cckdkeknl~j,k|k|cfkolplvl'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja MdwdxdsjzkAkRk.ktktj/cujvjwj}knjKk/k[cxj~kalqlOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb VdydzdDjBkCkSk:kukEj:cFjGjHjblojLk;k]cIjcldlrl;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc 4d5dAdBdCdDdOjDkEkUk=kvkPj;cQjRjSjelpjMk?k^cTjflglslxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd /d:dEdFdGdHd4jFkGkXk@kwk5j=c6j7j8jhlqjNk[k_c9jiljltlghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he deeeIdJdKdLd-jHkIk0k]kxk.j?c/j:j;jklrjOk^k`c=jllmlul?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

763 

764 

765class_registry = weakref.WeakValueDictionary() # type: ignore 1fabcde

766 

767default_registry = registry() 1fabcde

768 

769_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1fabcde

770 

771 

772class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry): 1fabcde

773 # SQLAlchemy needs to set weakref(s), Pydantic will set the other slots values 

774 __slots__ = ("__weakref__",) 1fabcde

775 __tablename__: ClassVar[Union[str, Callable[..., str]]] 1fabcde

776 __sqlmodel_relationships__: ClassVar[Dict[str, RelationshipProperty[Any]]] 1fabcde

777 __name__: ClassVar[str] 1fabcde

778 metadata: ClassVar[MetaData] 1fabcde

779 __allow_unmapped__ = True # https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-20-step-six 1fabcde

780 

781 if IS_PYDANTIC_V2: 1fabcde

782 model_config = SQLModelConfig(from_attributes=True) 1fabcde

783 else: 

784 

785 class Config: 1fabcde

786 orm_mode = True 1fabcde

787 

788 def __new__(cls, *args: Any, **kwargs: Any) -> Any: 1fabcde

789 new_object = super().__new__(cls) 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o3o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4o5oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6o7oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8o9oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!o#oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$o%oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

790 # SQLAlchemy doesn't call __init__ on the base class when querying from DB 

791 # Ref: https://docs.sqlalchemy.org/en/14/orm/constructors.html 

792 # Set __fields_set__ here, that would have been set when calling __init__ 

793 # in the Pydantic model so that when SQLAlchemy sets attributes that are 

794 # added (e.g. when querying from DB) to the __fields_set__, this already exists 

795 init_pydantic_private_attrs(new_object) 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o3o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4o5oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6o7oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8o9oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!o#oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$o%oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

796 return new_object 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o3o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l#l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4o5oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l6l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6o7oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l7l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8o9oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l8l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!o#oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(l9lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$o%oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l!l

797 

798 def __init__(__pydantic_self__, **data: Any) -> None: 1fabcde

799 # Uses something other than `self` the first arg to allow "self" as a 

800 # settable attribute 

801 

802 # SQLAlchemy does very dark black magic and modifies the __init__ method in 

803 # sqlalchemy.orm.instrumentation._generate_init() 

804 # so, to make SQLAlchemy work, it's needed to explicitly call __init__ to 

805 # trigger all the SQLAlchemy logic, it doesn't work using cls.__new__, setting 

806 # attributes obj.__dict__, etc. The __init__ method has to be called. But 

807 # there are cases where calling all the default logic is not ideal, e.g. 

808 # when calling Model.model_validate(), as the validation is done outside 

809 # of instance creation. 

810 # At the same time, __init__ is what users would normally call, by creating 

811 # a new instance, which should have validation and all the default logic. 

812 # So, to be able to set up the internal SQLAlchemy logic alone without 

813 # executing the rest, and support things like Model.model_validate(), we 

814 # use a contextvar to know if we should execute everything. 

815 if finish_init.get(): 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l

816 sqlmodel_init(self=__pydantic_self__, data=data) 2'oKm(o)oOoLmMmDmNmOmPmQmRmSmXexeyeakPo2o1lbk2l{cckdkek~j3l4l5lfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj*l*oZm+o,oQo0m1mlm2m3m4m5m6m7mMdwdxdsjJo4oHltjIl/cujvjwjnjJlKlClxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f$l-o'm.o/oRo(m)mmm*m+m,m-m.m/m:o:m;o=oSo;m=mnm?m@m[m]m^m_mVdydzdDjKo6oLlEjMl:cFjGjHjojNlOlDlIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg%l?obn@o[oTocndnomenfngnhninjn]okn^o_oUolnmnpmnnonpnqnrnsn`otn{o|oVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjLo8oPlPjQl;cQjRjSjpjRlSlElTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh'l}oIn~oapWoJnKnrmLnMnNnOnPnQnbpRncpdpXoSnTnsmUnVnWnXnYnZnep0nfpgpYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4jMo!oTl5jUl=c6j7j8jqjVlWlFl9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(lhp(nipjpZo)n*num+n,n-n.n/n:nkp;nlpmp0o=n?nvm@n[n]n^n_n`nnp{noppp1o|n}nwm~naobocodoeodeeeIdJdKdLd-jNo$oXl.jYl?c/j:j;jrjZl0lGl=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i)l

817 

818 def __setattr__(self, name: str, value: Any) -> None: 1fabcde

819 if name in {"_sa_instance_state"}: 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

820 self.__dict__[name] = value 2KmOoLmMmDmNmOmPmQmRmSmXexeyeakbk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZmQo0m1mlm2m3m4m5m6m7mMdwdxdsjtj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDjEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

821 return 2KmOoLmMmDmNmOmPmQmRmSmXexeyeakbk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZmQo0m1mlm2m3m4m5m6m7mMdwdxdsjtj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDjEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

822 else: 

823 # Set in SQLAlchemy, before Pydantic to trigger events and updates 

824 if is_table_model_class(self.__class__) and is_instrumented(self, name): # type: ignore[no-untyped-call] 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

825 set_attribute(self, name, value) 2KmOoLmMmDmNmOmPmQmRmSmXexeyeakbk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZmQo0m1mlm2m3m4m5m6m7mMdwdxdsjtj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDjEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOjPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

826 # Set in Pydantic model to trigger possible validation changes, only for 

827 # non relationship values 

828 if name not in self.__sqlmodel_relationships__: 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

829 super().__setattr__(name, value) 2KmOoLmMmDmNmOmPmQmRmSmXexeyeak2o3obk{cckdkek~jfk'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmj#lZmQo0m1mlm2m3m4m5m6m7mMdwdxdsj4o5otj/cujvjwjnjxjOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f6l'mRo(m)mmm*m+m,m-m.m/m:mSo;m=mnm?m@m[m]m^m_mVdydzdDj6o7oEj:cFjGjHjojIj;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwg7lbnTocndnomenfngnhninjnknUolnmnpmnnonpnqnrnsntnVounvnqmwnxnynznAnBn4d5dAdBdCdDdOj8o9oPj;cQjRjSjpjTjxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfh8lInWoJnKnrmLnMnNnOnPnQnRnXoSnTnsmUnVnWnXnYnZn0nYo1n2ntm3n4n5n6n7n8n/d:dEdFdGdHd4j!o#o5j=c6j7j8jqj9jghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h9l(nZo)n*num+n,n-n.n/n:n;n0o=n?nvm@n[n]n^n_n`n{n1o|n}nwm~naobocodoeodeeeIdJdKdLd-j$o%o.j?c/j:j;jrj=j?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i!l

830 

831 def __repr_args__(self) -> Sequence[Tuple[Optional[str], Any]]: 1fabcde

832 # Don't show SQLAlchemy private attributes 

833 return [ 2Cl2 Dl3 4 El5 6 7 Fl8 9 ! Gl# $ %

834 (k, v) 

835 for k, v in super().__repr_args__() 

836 if not (isinstance(k, str) and k.startswith("_sa_")) 

837 ] 

838 

839 @declared_attr # type: ignore 1fabcde

840 def __tablename__(cls) -> str: 1fabcde

841 return cls.__name__.lower() 2f qpXexeyeakPkQk-k{kJkBlbk{cckdkek~j,k|k|cfk'i(i2c3cykYeZe0e1e2e3e4e5e_k`k)i*iLf9i!i#i$iMbMfNf%iNbvewe+i,igkhkik-i.i/i:iOb' Wc;ijk=i?i@i[i]i^ikk9cXc@c4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmja rpMdwdxdsjzkAkRk.ktkwltj/cujvjwjnjKk/k[cxjOfPfPbQblkNdOdPdQdRdSdTdUd3k4kQfRfze+e,e-e.es 6eAeDft }c~cSfTfyjzjAjUfVfWfXfu g ( YfBjZf0f1f2f3f4fCjKc) !cRbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fb sptpVdydzdDjBkCkSk:kukxlEj:cFjGjHjojLk;k]cIj;f=fWbXbYbZbmkWdXdYdZd0d1d2d3d5k6k?f@fTkBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]fJjKjLj^f_f`f{fz A h i - . |fMj}f~fagbgcgdgNjLcMc/ : #c$c0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgc upvpwp4d5dAdBdCdDdOjDkEkUk=kvkylPj;cQjRjSjpjMk?k^cTjxgygzgAg!b#b$b%b'b(bnkok6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d7k8k9k!kBgCgDgEgVkWkFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgUjVjWjXjYjZjJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSg0j1jTgUgVgWgXgYgZg0g1g2g3g4g2j3jNcOcPc{ | } %c'c(c)b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhd xpypzp/d:dEdFdGdHd4jFkGkXk@kwkzl5j=c6j7j8jqjNk[k_c9jghhhihjh_b`b{b|b}b~bpkqk;d=d?d@d[d]d^d_d`d{d|d}d~daebece#k$k%k'kkhlhmhnhYkZkLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrh!j#j$j%j'j(jshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBh)j*jChDhEhFhGhHhIhJhKhLhMhNh+j,jQcRcSclbmbnb)c*c+cacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=he ApBpCpdeeeIdJdKdLd-jHkIk0k]kxkAl.j?c/j:j;jrjOk^k`c=j?h@h[h]hpcqcrcsctcucrkskfegeheiejekelemeneoepeqereseteue(k)k*k+k^h_h`h{h1k2kReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~hai?j@j[j]j^j_jbicidieifigihiiiZ 0 1 p q r xbybzbjiki`j{jliminioipiqirisitiuiviwi|j}jTcUcVcAbBbCb,c-c.cvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

842 

843 @classmethod 1fabcde

844 def model_validate( 1abcde

845 cls: Type[_TSQLModel], 

846 obj: Any, 

847 *, 

848 strict: Union[bool, None] = None, 

849 from_attributes: Union[bool, None] = None, 

850 context: Union[Dict[str, Any], None] = None, 

851 update: Union[Dict[str, Any], None] = None, 

852 ) -> _TSQLModel: 

853 return sqlmodel_validate( 2KmLmMmDmNmOmPmQmRmSm2o3oTmUmVmWmXmYmLf9i!i#i$iMbMfNfNbvewe#lZm0m1mlm2m3m4m5m6m7m4o5o8m9m!m#m$m%mze+e,e-e.es 6eAet }c~c6l'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_m6o7o`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEex y adbdcddd7lbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn8o9oCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeE F G edfdgdhdidjd8lInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n!o#o9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeN O P kdldmdndodpd9l(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeo$o%ofogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeW X Y qdrdsdtdudvd!l

854 cls=cls, 

855 obj=obj, 

856 strict=strict, 

857 from_attributes=from_attributes, 

858 context=context, 

859 update=update, 

860 ) 

861 

862 def model_dump( 1abcde

863 self, 

864 *, 

865 mode: Union[Literal["json", "python"], str] = "python", 

866 include: Union[IncEx, None] = None, 

867 exclude: Union[IncEx, None] = None, 

868 context: Union[Dict[str, Any], None] = None, 

869 by_alias: bool = False, 

870 exclude_unset: bool = False, 

871 exclude_defaults: bool = False, 

872 exclude_none: bool = False, 

873 round_trip: bool = False, 

874 warnings: Union[bool, Literal["none", "warn", "error"]] = True, 

875 serialize_as_any: bool = False, 

876 ) -> Dict[str, Any]: 

877 if PYDANTIC_VERSION >= "2.7.0": 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

878 extra_kwargs: Dict[str, Any] = { 2lmMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRfzes AeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fmmnmVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@fBeCev w DeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgompmqm4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgFeGeHeB C D IeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhrmsmtm/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnhLeMeNeK L M OePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=humvmwmdeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hReSeTeT U V UeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

879 "context": context, 

880 "serialize_as_any": serialize_as_any, 

881 } 

882 else: 

883 extra_kwargs = {} 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

884 if IS_PYDANTIC_V2: 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

885 return super().model_dump( 2DmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iLfMbNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjlmMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRfzes AeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fmmnmVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@fBeCev w DeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgompmqm4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgFeGeHeB C D IeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhrmsmtm/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnhLeMeNeK L M OePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=humvmwmdeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hReSeTeT U V UeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

886 mode=mode, 

887 include=include, 

888 exclude=exclude, 

889 by_alias=by_alias, 

890 exclude_unset=exclude_unset, 

891 exclude_defaults=exclude_defaults, 

892 exclude_none=exclude_none, 

893 round_trip=round_trip, 

894 warnings=warnings, 

895 **extra_kwargs, 

896 ) 

897 else: 

898 return super().dict( 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

899 include=include, 

900 exclude=exclude, 

901 by_alias=by_alias, 

902 exclude_unset=exclude_unset, 

903 exclude_defaults=exclude_defaults, 

904 exclude_none=exclude_none, 

905 ) 

906 

907 @deprecated( 1fabcde

908 """ 

909 🚨 `obj.dict()` was deprecated in SQLModel 0.0.14, you should 

910 instead use `obj.model_dump()`. 

911 """ 

912 ) 

913 def dict( 1abcde

914 self, 

915 *, 

916 include: Union[IncEx, None] = None, 

917 exclude: Union[IncEx, None] = None, 

918 by_alias: bool = False, 

919 exclude_unset: bool = False, 

920 exclude_defaults: bool = False, 

921 exclude_none: bool = False, 

922 ) -> Dict[str, Any]: 

923 return self.model_dump( 2KmLmMmDmNmOmPmQmRmSmPoTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe' XcZm0m1mlm2m3m4m5m6m7mJo8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cg ) 'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mKo`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcdddh i / : bncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBnLoCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdj k l { | } InJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8nMo9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdm n o lbmbnb(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeoNofogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvdp q r AbBbCb

924 include=include, 

925 exclude=exclude, 

926 by_alias=by_alias, 

927 exclude_unset=exclude_unset, 

928 exclude_defaults=exclude_defaults, 

929 exclude_none=exclude_none, 

930 ) 

931 

932 @classmethod 1fabcde

933 @deprecated( 1fabcde

934 """ 

935 🚨 `obj.from_orm(data)` was deprecated in SQLModel 0.0.14, you should 

936 instead use `obj.model_validate(data)`. 

937 """ 

938 ) 

939 def from_orm( 1abcde

940 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

941 ) -> _TSQLModel: 

942 return cls.model_validate(obj, update=update) 2KmLmMmDmNmOmPmQmRmSm2oTmUmVmWmXmYmLf9i!i#i$iMbMfNfNbveweZm0m1mlm2m3m4m5m6m7m4o8m9m!m#m$m%mze+e,e-e.es 6eAet }c~c'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_m6o`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEex y adbdcdddbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn8oCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeE F G edfdgdhdidjdInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n!o9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeN O P kdldmdndodpd(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeo$ofogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeW X Y qdrdsdtdudvd

943 

944 @classmethod 1fabcde

945 @deprecated( 1fabcde

946 """ 

947 🚨 `obj.parse_obj(data)` was deprecated in SQLModel 0.0.14, you should 

948 instead use `obj.model_validate(data)`. 

949 """ 

950 ) 

951 def parse_obj( 1abcde

952 cls: Type[_TSQLModel], obj: Any, update: Optional[Dict[str, Any]] = None 

953 ) -> _TSQLModel: 

954 if not IS_PYDANTIC_V2: 23o5o7o9o#o%o

955 obj = cls._enforce_dict_if_root(obj) # type: ignore[attr-defined] # noqa 23o5o7o9o#o%o

956 return cls.model_validate(obj, update=update) 23o5o7o9o#o%o

957 

958 # From Pydantic, override to only show keys from fields, omit SQLAlchemy attributes 

959 @deprecated( 1fabcde

960 """ 

961 🚨 You should not access `obj._calculate_keys()` directly. 

962 

963 It is only useful for Pydantic v1.X, you should probably upgrade to 

964 Pydantic v2.X. 

965 """, 

966 category=None, 

967 ) 

968 def _calculate_keys( 1abcde

969 self, 

970 include: Optional[Mapping[Union[int, str], Any]], 

971 exclude: Optional[Mapping[Union[int, str], Any]], 

972 exclude_unset: bool, 

973 update: Optional[Dict[str, Any]] = None, 

974 ) -> Optional[AbstractSet[str]]: 

975 return _calculate_keys( 2KmLmMmDmNmOmPmQmRmSmXexeyePo'i(i2c3cYeZe0e1e2e3e4e5e)i*iTmUmVmWmXmYmLf9i!i#i$iMbMfNf%iNbvewe+i,i-i.i/i:iOb' Wc;i=i?i@i[i]i^i9cXc4c5cYc6cZc0c1c7c8c_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjZm0m1mlm2m3m4m5m6m7mMdwdxdJoOfPfPbQbNdOdPdQdRdSdTdUdQfRf8m9m!m#m$m%mze+e,e-e.es 6eAeDft }c~cSfTfUfVfWfXfu g ( YfZf0f1f2f3f4fKc) RbSb* Tb+ 2 , UbVb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f'm(m)mmm*m+m,m-m.m/m:m;m=mnm?m@m[m]m^m_mVdydzdKo;f=fWbXbYbZbWdXdYdZd0d1d2d3d?f@f`m{m|m}m~manBeCe/e:e;e=e?e@e[e]ev w 7e8eDeEeEfx y adbdcddd[f]f^f_f`f{fz A h i - . |f}f~fagbgcgdgLcMc/ : 0b1b2b3b; = 4b5b? @ 3 4 [ ] 6b7b8b9begfggghgigjgkglgmgngogpgqgrgsgtgugvgwgbncndnomenfngnhninjnknlnmnpmnnonpnqnrnsntnunvnqmwnxnynznAnBn4d5dAdBdCdDdLoxgygzgAg!b#b$b%b'b(b6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.dBgCgDgEgCnDnEnFnGnHnFeGeHe^e_e`e{e|e}e~eafbfcfdfefB C D 9e!e#eIeJeKeFfGfE F G edfdgdhdidjdFgGgHgIgJgKgLgMgNgOgPgQgH I J j k l ^ _ ` RgSgTgUgVgWgXgYgZg0g1g2g3g4gNcOcPc{ | } )b*b+b,b-b.b~ abbb/b:b;bcbdbeb5 6 7 fbgbhb=b?b@b[b]b^b5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhInJnKnrmLnMnNnOnPnQnRnSnTnsmUnVnWnXnYnZn0n1n2ntm3n4n5n6n7n8n/d:dEdFdGdHdMoghhhihjh_b`b{b|b}b~b;d=d?d@d[d]d^d_d`d{d|d}d~daebecekhlhmhnh9n!n#n$n%n'nLeMeNeffgfhfifjfkflfmfnfofpfqfK L M $e%e'eOePeQeHfIfN O P kdldmdndodpdohphqhrhshthuhvhwhxhyhzhQ R S m n o ibjbkbAhBhChDhEhFhGhHhIhJhKhLhMhNhQcRcSclbmbnbacbcccdcecfcobpbqbgchcicrbsbtb8 9 ! ubvbwbjckclcmcncocOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h(n)n*num+n,n-n.n/n:n;n=n?nvm@n[n]n^n_n`n{n|n}nwm~naobocodoeodeeeIdJdKdLdNo?h@h[h]hpcqcrcsctcucfegeheiejekelemeneoepeqereseteue^h_h`h{hfogohoiojokoReSeTerfsftfufvfwfxfyfzfAfBfCfT U V (e)e*eUeVeWeJfKfW X Y qdrdsdtdudvd|h}h~haibicidieifigihiiiZ 0 1 p q r xbybzbjikiliminioipiqirisitiuiviwiTcUcVcAbBbCbvcwcxcyczcAcDbEbFbBcCcDcGbHbIb# $ % JbKbLbEcFcGcHcIcJcxiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8i

976 self, 

977 include=include, 

978 exclude=exclude, 

979 exclude_unset=exclude_unset, 

980 update=update, 

981 ) 

982 

983 def sqlmodel_update( 1abcde

984 self: _TSQLModel, 

985 obj: Union[Dict[str, Any], BaseModel], 

986 *, 

987 update: Union[Dict[str, Any], None] = None, 

988 ) -> _TSQLModel: 

989 use_update = (update or {}).copy() 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

990 if isinstance(obj, dict): 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

991 for key, value in {**obj, **use_update}.items(): 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

992 if key in get_model_fields(self): 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

993 setattr(self, key, value) 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd

994 elif isinstance(obj, BaseModel): 

995 for key in get_model_fields(obj): 

996 if key in use_update: 

997 value = use_update.pop(key) 

998 else: 

999 value = getattr(obj, key) 

1000 setattr(self, key, value) 

1001 for remaining_key in use_update: 

1002 if remaining_key in get_model_fields(self): 

1003 value = use_update.pop(remaining_key) 

1004 setattr(self, remaining_key, value) 

1005 else: 

1006 raise ValueError( 

1007 "Can't use sqlmodel_update() with something that " 

1008 f"is not a dict or SQLModel or Pydantic model: {obj}" 

1009 ) 

1010 return self 2vewe}c~cadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvd