From 1afc2191406cea817ef710aa15647bf2003ebabc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B8rgen?= <fugla-gutt@hotmail.com>
Date: Mon, 1 Oct 2018 01:35:12 +0200
Subject: [PATCH] Add files

---
 META-INF/MANIFEST.MF                            |  16 ++++++++++++++++
 bin/modelling/Course.class                      | Bin 0 -> 490 bytes
 bin/modelling/CourseInstance.class              | Bin 0 -> 1220 bytes
 bin/modelling/DayKind.class                     | Bin 0 -> 3311 bytes
 bin/modelling/Department.class                  | Bin 0 -> 471 bytes
 bin/modelling/Employee.class                    | Bin 0 -> 341 bytes
 bin/modelling/EvaluationForm.class              | Bin 0 -> 413 bytes
 bin/modelling/EvaluationFormKind.class          | Bin 0 -> 3062 bytes
 bin/modelling/ModellingFactory.class            | Bin 0 -> 1080 bytes
 bin/modelling/ModellingPackage$Literals.class   | Bin 0 -> 6009 bytes
 bin/modelling/ModellingPackage.class            | Bin 0 -> 6166 bytes
 bin/modelling/Person.class                      | Bin 0 -> 463 bytes
 bin/modelling/PointReduction.class              | Bin 0 -> 371 bytes
 bin/modelling/Role.class                        | Bin 0 -> 342 bytes
 bin/modelling/RoleKind.class                    | Bin 0 -> 2975 bytes
 bin/modelling/Student.class                     | Bin 0 -> 499 bytes
 bin/modelling/StudyProgram.class                | Bin 0 -> 411 bytes
 bin/modelling/TeachingFormKind.class            | Bin 0 -> 2714 bytes
 bin/modelling/TimeTableRow.class                | Bin 0 -> 530 bytes
 bin/modelling/impl/CourseImpl.class             | Bin 0 -> 4766 bytes
 bin/modelling/impl/CourseInstanceImpl.class     | Bin 0 -> 12034 bytes
 bin/modelling/impl/DepartmentImpl.class         | Bin 0 -> 4563 bytes
 bin/modelling/impl/EmployeeImpl.class           | Bin 0 -> 4056 bytes
 bin/modelling/impl/EvaluationFormImpl.class     | Bin 0 -> 4182 bytes
 bin/modelling/impl/ModellingFactoryImpl.class   | Bin 0 -> 7876 bytes
 bin/modelling/impl/ModellingPackageImpl.class   | Bin 0 -> 16150 bytes
 bin/modelling/impl/PersonImpl.class             | Bin 0 -> 6013 bytes
 bin/modelling/impl/PointReductionImpl.class     | Bin 0 -> 3526 bytes
 bin/modelling/impl/RoleImpl.class               | Bin 0 -> 5185 bytes
 bin/modelling/impl/StudentImpl.class            | Bin 0 -> 5654 bytes
 bin/modelling/impl/StudyProgramImpl.class       | Bin 0 -> 4587 bytes
 bin/modelling/impl/TimeTableRowImpl.class       | Bin 0 -> 5262 bytes
 .../util/ModellingAdapterFactory$1.class        | Bin 0 -> 4621 bytes
 .../util/ModellingAdapterFactory.class          | Bin 0 -> 2674 bytes
 bin/modelling/util/ModellingSwitch.class        | Bin 0 -> 5315 bytes
 35 files changed, 16 insertions(+)
 create mode 100644 META-INF/MANIFEST.MF
 create mode 100644 bin/modelling/Course.class
 create mode 100644 bin/modelling/CourseInstance.class
 create mode 100644 bin/modelling/DayKind.class
 create mode 100644 bin/modelling/Department.class
 create mode 100644 bin/modelling/Employee.class
 create mode 100644 bin/modelling/EvaluationForm.class
 create mode 100644 bin/modelling/EvaluationFormKind.class
 create mode 100644 bin/modelling/ModellingFactory.class
 create mode 100644 bin/modelling/ModellingPackage$Literals.class
 create mode 100644 bin/modelling/ModellingPackage.class
 create mode 100644 bin/modelling/Person.class
 create mode 100644 bin/modelling/PointReduction.class
 create mode 100644 bin/modelling/Role.class
 create mode 100644 bin/modelling/RoleKind.class
 create mode 100644 bin/modelling/Student.class
 create mode 100644 bin/modelling/StudyProgram.class
 create mode 100644 bin/modelling/TeachingFormKind.class
 create mode 100644 bin/modelling/TimeTableRow.class
 create mode 100644 bin/modelling/impl/CourseImpl.class
 create mode 100644 bin/modelling/impl/CourseInstanceImpl.class
 create mode 100644 bin/modelling/impl/DepartmentImpl.class
 create mode 100644 bin/modelling/impl/EmployeeImpl.class
 create mode 100644 bin/modelling/impl/EvaluationFormImpl.class
 create mode 100644 bin/modelling/impl/ModellingFactoryImpl.class
 create mode 100644 bin/modelling/impl/ModellingPackageImpl.class
 create mode 100644 bin/modelling/impl/PersonImpl.class
 create mode 100644 bin/modelling/impl/PointReductionImpl.class
 create mode 100644 bin/modelling/impl/RoleImpl.class
 create mode 100644 bin/modelling/impl/StudentImpl.class
 create mode 100644 bin/modelling/impl/StudyProgramImpl.class
 create mode 100644 bin/modelling/impl/TimeTableRowImpl.class
 create mode 100644 bin/modelling/util/ModellingAdapterFactory$1.class
 create mode 100644 bin/modelling/util/ModellingAdapterFactory.class
 create mode 100644 bin/modelling/util/ModellingSwitch.class

diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..39da80b
--- /dev/null
+++ b/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: modelling;singleton:=true
+Automatic-Module-Name: modelling
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: modelling,
+ modelling.impl,
+ modelling.util
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.core.runtime
+Bundle-ActivationPolicy: lazy
diff --git a/bin/modelling/Course.class b/bin/modelling/Course.class
new file mode 100644
index 0000000000000000000000000000000000000000..9071551c0692f32198c408ab668a0e7f461e4e5b
GIT binary patch
literal 490
zcmX^0Z`VEs1_l!bF?I$fMh1c0{FKz3oXos*edqkrqT*C`1{OvJfvm)`ME#t^ymWp4
zq^#8B5_SeQMh4mZqICV#<ebcc;#B?A+%)~v<ou#keOHJQMh5ou)Dq|XlvG9r5e-cr
zgb~3dMVWc&){G47#V`e;8kq8$VGtwy5_3}_Y9TBxu(5e1sd*)g3|wF%pd8Wk)RLgo
z<ow*+)V!3`6o?0k85vYHG=0$B3R0Dyr(ar<nWOLOlUZD1&B(wRoSB}NSW;S)%E(|z
zj2;^w^x(3#vu0!v0=uKIG_wfF5nRFfrA5i9Zkai$j11fmx9Ncbg^iJck%5_kk%5(g
zfq{dCk%66og8>xkoD5uGnj6aJf%18wd_E|jpFx0ukwK7wfq{uZh=q|s7@5z&$RGli
G5d{Emw0z$H

literal 0
HcmV?d00001

diff --git a/bin/modelling/CourseInstance.class b/bin/modelling/CourseInstance.class
new file mode 100644
index 0000000000000000000000000000000000000000..bc41c756c65ec3013a2cbb6b333df907f6124eb4
GIT binary patch
literal 1220
zcmX^0Z`VEs1_l!bU3La0Mh1!8{FKz3oXos*edqkrqT*D~yyB9?yyR4N1{OvJfvm)`
zME#t^ymWp4q^#8B5_SeQMh4mZqICV#<ebcc;#B?A+%)~v<ou#keOHJQMh5=$)RN%T
z+|=Td)S}4L#3Dup5e-crgi*mIMVWc&){G4N#pnt}H89m_hA}d5rKgrS7p10TmJ~BG
zFl%VKF*0x!BMGr+xPg>$r>B<qBqn))d;(VI$;iN6j4Z~Y;R#X*a-vUaa!F}XDpWDZ
zEvO=#AUi=Or7|+8YH0eP`#L#4H#a{|zqBMXN8i;av$({Xk%2QfGd(X6WGo|tB{6zz
ze9$An+RmDhfddqTC5dTij11<a8WWVClL|IOFg>*-AU`v&q$o9|G`S=*KaY{YkyO*b
z1_Z$jfSc=DmY7qT2r@G*zbKasa}fr(<rn3G%>_kDNM>$oNn%n?YEgbUBZEDut_5ii
z0cj7)F9(~+o1R+Yl3I{hRFa#TSHj33p`nQs;s_aQMh4zuRHc#{*j0kkk4SoINl<Ef
zCMb!grUaLirhrWsMKK*JY|Y3ZQjAr(7_tp8)ga>qKrxqCT#RJ2KyhkG0ICpIaDHh~
za;jTqPAVgVFlzSI17$ZhMg~R(W(GzERt5$JVHQRPb_NaxP`>75-~!X!3_M_(mw^vV
z^D_v5X+Z`dFf9z_i$M9J3}Ot74B`w73``6XEQ}12NPH<4Mh0mlz6=W^gDetXj)jpy
q9*M8O!pNY=paix@nL!0it1_s8X>|q-Fs%vYYk~L-j11afn{@yM{!+&P

literal 0
HcmV?d00001

diff --git a/bin/modelling/DayKind.class b/bin/modelling/DayKind.class
new file mode 100644
index 0000000000000000000000000000000000000000..5ac11b1a9b2766c17360502f057a748d0d2ee4c6
GIT binary patch
literal 3311
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
TAo(9j9}~lLaKO%h7Oyh_IM9^#

literal 0
HcmV?d00001

diff --git a/bin/modelling/Department.class b/bin/modelling/Department.class
new file mode 100644
index 0000000000000000000000000000000000000000..fc09a9a953831c6042d31b6ba43c578369ddff78
GIT binary patch
literal 471
zcmX^0Z`VEs1_l!bVRi;4Mh21G{FKz3oXos*eV5dN#G;bi)VvaQ1{OvJfvm)`ME#t^
zymWp4q^#8B5_SeQMh4mZqICV#<ebcc;#B?A+%)~v<ou#keOHJQMh5ou)DpkM+*C#e
z5e-crgb~3dMVWc&){G47#V`e;8kq8$VT=s?>8T~bC8a5q1x5MkMTxnL45}KMKIrx)
z=jZ0;=joT0Waj9*`eYWDSTizk24|+{C6<&Hr7|+u6Qjq*2jP9Nl>rbdt?fXjrKgqz
zq!tzD=P@!^l4=@6BiJ0S;QZ2}<W#rJoK!{zencqifkKCkk%5tcnSqgkm4ShQg@uuU
qoq>Y^6#SeFTwt1;fro*SftP`Sfr){Sg^__Di7&vw$RG%o5dr{C0)s68

literal 0
HcmV?d00001

diff --git a/bin/modelling/Employee.class b/bin/modelling/Employee.class
new file mode 100644
index 0000000000000000000000000000000000000000..5e5ae9258e21c97c8052054eaaa181cf09837ebb
GIT binary patch
literal 341
zcmX^0Z`VEs1_l!bL3RcvMh2nW{FKz3oXos*eb?NAoczkvRCWdyMh1bb#Ii*FoW#6z
zegCAa)Z`L&1~x_p+5Dn({nX@~%!1-n{nXqv{nX_AqEvlXh!REy-t^QGm@%F%j10^g
znx2ddyv3-ZEE=AgVT=sy>8T|_`8lbK45}KMKIkSV=jZ0;=joT0Waj9*`eYWDSTizk
z24|+{C6<&Hr7|*@6Qjq*2jM-CRn~Uaj0{}C`K3k4scxAdt9fD0)dP8$jgf(ofti7k
sft7)QftiJoft`Va0TdjZ3|wHEn}LUck%5<ifq{vEkAabaAIuT}0C*``a{vGU

literal 0
HcmV?d00001

diff --git a/bin/modelling/EvaluationForm.class b/bin/modelling/EvaluationForm.class
new file mode 100644
index 0000000000000000000000000000000000000000..c7ee0b5d8987b253d1e8d4e439c497e68dc7072e
GIT binary patch
literal 413
zcmX^0Z`VEs1_l!bQFaC<Mh1!8{FKz3oXos*eb=(YoYKUS%=|pJ{GwcT1{OvJfvm)`
zME#t^ymWp4q^#8B5_SeQMh4mZqICV#<ebcc;#B?A+%)~v<ou#keOHJQMh4#W)RKVI
zqU6-PlEm~>Mh0dLO;1J!-eOcy77b6$Fh&Nh^wbjP{JfIXyb?wR5e-crgq6W1MVWc&
z){G2X#Yk#IH87Qc3}R1DEeWYCNM&SD(9rb3<t^{bycBCj2KHi@Vnq%7YC%SG1?QI*
zC8xS&=A<$*2&0CR9>~3Hj0}tn%nXbStPBhcY%Gin><k<XpaA4#-~!X!3_M_(mw^vV
Y^D_v5X+Z`d1_lO324MyU1||j(0NCzqApigX

literal 0
HcmV?d00001

diff --git a/bin/modelling/EvaluationFormKind.class b/bin/modelling/EvaluationFormKind.class
new file mode 100644
index 0000000000000000000000000000000000000000..77ddbb2413f53af10eed5cf0fcdfa0d87b293090
GIT binary patch
literal 3062
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

literal 0
HcmV?d00001

diff --git a/bin/modelling/ModellingFactory.class b/bin/modelling/ModellingFactory.class
new file mode 100644
index 0000000000000000000000000000000000000000..a91a0209979b13d0db0e8039be81744296b1c7e9
GIT binary patch
literal 1080
zcmX^0Z`VEs1_l!b19k=`Mh2<e{FKz3oXos*eP0;MEit(yzo?R(frXJlAS<yfQ9ma!
zFJ0e1DJwO(gq?wnkwGrMC|y4_IVZEAI8{G2H%&h^Ilm}X-xaEpk%2SS(=Ry0(a+hH
zkwL}>w;k4u3>-GeIhlExC3cJq%o>_uj0`N!`6;Pf47?2d><oO249W=InYjfy7|!&}
zEy&?v5MU5wWMBcA!^j|~p^48*P6kE>VIBr{1`b9BexJ;|RKL>Pq|~C2#H5^5Mg}3D
z{N%)(u*9NF5FaYYlU$UVSd!|TUs_b0%E%ysVgW?dnvp>WqAIwgG^H}2C_lX@F_)1+
z3PmlloHZkZ2t)_O1kb$UlEl2^R7M6F6g{Z22zx>@b5p_Y3(7A?w+C4cVUKHBVoqsd
zNoIbYTYgb4x;?0}){G1S5ZAe+79<vx<fi78FfvG>xC|kKup=NpGp{5lHKjBeWDmL>
zsIu0K3|tU9g7U#(k77DV%$kt_8ukIHMaB7f=wS~LwPs}Cg_r{hU$8?(QH+8LTQf57
zLDaeC7UbktrlvA7h@mKiiCZ%=2&bo(z_Ua^Vsdt3dMeJe1(gSRC^)~gC^^+F6XYRL
zxB<|dp$E!NY>W(y49pCS46F={43eOP$iTqB%fP|F$-u?H$iU6Oz@W~+$N&QDI~aI2
zGYD;DU|?Wk5Mf|oU;|5tF^GaiKsi*5L7V|ZOE5@+X(<M2FfGF%3#R25<iWH8gCdw#
nVo(OtDh#S%T8%*+OlvS`f@v)VZ7{9Fpv%C(z{sEnwn-lVN8BkL

literal 0
HcmV?d00001

diff --git a/bin/modelling/ModellingPackage$Literals.class b/bin/modelling/ModellingPackage$Literals.class
new file mode 100644
index 0000000000000000000000000000000000000000..41c633a15a9b926b850ceded945a69bb96e1a334
GIT binary patch
literal 6009
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
B)II<J

literal 0
HcmV?d00001

diff --git a/bin/modelling/ModellingPackage.class b/bin/modelling/ModellingPackage.class
new file mode 100644
index 0000000000000000000000000000000000000000..9228b209505acb952a55960a4f0ba7ce550e4926
GIT binary patch
literal 6166
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

literal 0
HcmV?d00001

diff --git a/bin/modelling/Person.class b/bin/modelling/Person.class
new file mode 100644
index 0000000000000000000000000000000000000000..972bb9847c345bbb739e412634d631c5b147fed3
GIT binary patch
literal 463
zcmX^0Z`VEs1_l!badrkKMh1c0{FKz3oXos*{eaY>;`}^z1{OvJfvm)`ME#t^ymWp4
zq^#8B5_SeQMh4mZqICV#<ebcc;#B?A+%)~v<ou#keOHJQMh2er)DpMMqT&+2#N1Ry
z1`!QSAA~u<B}JKe>DG)4JjE!gL^UuKX@)T}aHpr1_$0#2;x0z!aiyo01ecViq~?_{
zGKgwu`XD?36}Dz%;3`H^B&LBy4a^$X+=86^%G6Xw1~C+~VB*${3?TbqTt)_QWYb{6
z)*$1!g7Zs@l2hF>b5a=@xFI2`2MPo>Mg~R(W(GzERt5$J4i-iRb_NaxP*8I+aDi!V
mD4z$)=Vjmni}N!GfN4PnAuuh>Ai}`Fz{nuVz`(%7AO-*k8h3gC

literal 0
HcmV?d00001

diff --git a/bin/modelling/PointReduction.class b/bin/modelling/PointReduction.class
new file mode 100644
index 0000000000000000000000000000000000000000..0749f9b0df144f08fd9d60346f99e116444a4c77
GIT binary patch
literal 371
zcmX^0Z`VEs1_l!bL3RcvMh1!8{FKz3oXos*{eb+;ypo{Ql+xsq%=|od1{OvJfvm)`
zME#t^ymWp4q^#8B5_SeQMh4mZqICV#<ebcc;#B?A+%)~v<ou#keOHJQMh2erRD?N<
z49psuZj1~(#VCR-8g80lj0}S5sU^<&rA5W5nR&$}iFwJXj0~z8nm*_@B<JVm=I7~`
zmSpDWyZU4nmsm40a0X|l=Ovbu7Ns&WI1;1B#s}e9h^3xTORep!85y{O^Gl18Q{6Ii
zQW+V9QA0xy6cB8T42%rS42%q{3=9m+EQ}273>*xgVB%!p0@K_KJPeEsybKHsObmPs
Kj12r>mH+?>GiHGR

literal 0
HcmV?d00001

diff --git a/bin/modelling/Role.class b/bin/modelling/Role.class
new file mode 100644
index 0000000000000000000000000000000000000000..135825ff84d76c19524540bb250bcfb3b7f9424d
GIT binary patch
literal 342
zcmX^0Z`VEs1_l!bL3RcvMh3pz{FKz3oXos*{h<7uRCWdyMh1bb#Ii*FoW#6zegCAa
z)Z`L&1~x_p+5Dn({nX@~%!1-n{nXqv{nX_AqEvlXh!REy_Vm;ekP(awVj7x0sK$C{
z=A~FOGO!oJl!$9!Q=u8g$RL=WTH>5vT2!2xnO9trn3tT&$RLAaAVk&^Dr?QiAXtp4
zMHbltG#wyoxPtRbi;`2_GILTH88|`i)&u#Pjgf(ofti7kft7)QfrW*Uft`Va0Td>j
c3|wHEn}G*R^D^);FfcGO@G~$lFfj-K0BMO^!T<mO

literal 0
HcmV?d00001

diff --git a/bin/modelling/RoleKind.class b/bin/modelling/RoleKind.class
new file mode 100644
index 0000000000000000000000000000000000000000..0d80eeb6c50ca9144c0ac340effbf6c55e2b4d9a
GIT binary patch
literal 2975
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
Kwhmf;)dK)sd|rtF

literal 0
HcmV?d00001

diff --git a/bin/modelling/Student.class b/bin/modelling/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..1d45eed77e3cf26f0141ad025fea5ba0b6081a39
GIT binary patch
literal 499
zcmX^0Z`VEs1_l!bF?I$fMh3y${FKz3oXos*{os<)l+?Tub_Nzk27#=^vPAuy#JqHU
z|D>$c<PvrUHbw^7{GxRI)a0DZg5p&D)Z8@v)a3l4RDD;75=I7|^wbilDV{Ej49psu
zo{S7U#VCR-8lIYAj0^(lsU<<F>6yhPsYR(NZuv!w45}KMKIj%C=jZ0;=joT0Waj9*
z`eYWDSTizk24|+{C6<&Hr7|)&5~Ih)2jNNQ{L-T0RL{KPlEl2^RBJnHMh4#W)DqW<
z#N2?y;^Nd4Mh1SUFDeU)^3#hFa~T<=G&GTn0Qs;o03v72$iNTvA40jb1}@bgpK}H0
zmlh?bx@G31GBWUh3`@-`(F27y8zTcF12Y3711kdq0~-q?13Lo;11L5)8MweSHv<m?
kBLgo30|OHS9}6P`KN??vK@hA?h(VZvfq{`h1gugN0E*d$ZvX%Q

literal 0
HcmV?d00001

diff --git a/bin/modelling/StudyProgram.class b/bin/modelling/StudyProgram.class
new file mode 100644
index 0000000000000000000000000000000000000000..c3e39d509908d876c11ed88696b5d40309352da9
GIT binary patch
literal 411
zcmX^0Z`VEs1_l!bVRi;4Mh3Cm{FKz3oXos*{os<)l*)jj{Pd#4Ty_Q)Mh1bb#Ii*F
zoW#6zegCAa)Z`L&1~x_p+5Dn({nX@~%!1-n{nXqv{nX_AqEvlXh!REy&h*q0=ls&5
z;#5WkRSiuabmhtUxw-jy`lThAIr^?XnZ+g6j0~K?ndy0nC8b5Fj0~2<=&|uZxEo@b
zwVgF11ABUEiC<!FDkFo4hNcg~`N1VcnR)3T1;sE0q8ga;nqd$lobyvs85!7%K^_6I
zxPtRbi;`2_GILTH83d8TNe^TP8zTcF12Y3711kdq11k$713Lo;10w?`0|NsS0~ZS;
d12+Q?11Law8Ti07Ka?*3;xjNZ2!d4#0RWpoY^VSL

literal 0
HcmV?d00001

diff --git a/bin/modelling/TeachingFormKind.class b/bin/modelling/TeachingFormKind.class
new file mode 100644
index 0000000000000000000000000000000000000000..f6b4d5002c8ef43c54b495b274ac8f5203174096
GIT binary patch
literal 2714
zcmX^0Z`VEs1_l#`5_SeAMh2<e{FKz3oXos*{gBke<c!R`bhrGXT<^@h6m|v{Mh3pD
z#Ii*FoW#6zeb>CwTy_RFMh3O~qICV#<ebcc;#B?A+%)~<{M_99JpIy=%p9<))S|?a
z{31pMb{|*gkkBAkMg|!l-1b;AGBEo%Ix#ZvLY2pdIr@aUGBPlFGBWTw=jRodB<7Wb
zCFYc-GBYqRFfcN3`Zzj46oCX785wxMI)dXJgMu6*85v}w@mt3RQO?L9-~;v^*x^2z
z#U<8^44lE4>3NAIrA4WX40>qNHu#LSvu0#qEd#ldk%1*IF*lWwK?tHB9D2beMVWc&
z){G47IhiG?MTt3#4BW1Mp}s0Gw{X}b=Vaz(me?^eFl%UrF*2|?=clA{FtBqlD1d@8
zH5ue64hAJg1`ZzxM}dohkwJxrL6t#`k%7$ys@qxv(^^kYOfgIm%`i>|Mg|QY26hGx
z4hBvR25nH(Bqnh%=rS^}_#`GNfaLXg7&sX?KrBNZ1}O$X5X+c{L4ZM!i@}t^oSngp
zkwE|vu8u`TiIv4X3>FNQj0|jv#h`FzWKh+JMzY^ODJwO(#99*~goq9<25Saeb_N?p
z22q58&iOexsmUdo`FX`W40a6mj0^&$dAa#1nQ57cNja$y^Oc~1fG`WgaFDwlc^HHk
zgc%w5eKPY>{YrC_Qj0=BhJfNOKRGccEU^e|C{&O+J+*|9!2oJDa=dEdOB$ePa_3?2
zVDMyQ;3&z5Bn3tW5e=xDkPYHu@MiF3XYhfAA(9*qgCB!GBLiD%VQFGcF(ZR0vO8cw
z7{$oIn90b%R+L&?np48az#CkWn4ImKSOE0`XL@RhQ>9;GZYs!Cp*##>AXl-cr<Q=k
z7#ZX>JPG)PnIRIC<f0fE#E=~T@s+hFBoW2%Fo-d5gMv7Yhe4b{0>nz-VUT2yU}Rt^
z$;d2bWZ+0oh2&~*g7;)(;7U&|@quLyHgHxd202I*Z+7Nl$Y97~XUIeiu*%|+)Lb5h
zY=#_02F^rK5=_o7sAOc&LUuAV%#ia2Ovn?I1KGiD@K57nU}nhYVaR1DU}P{wHo!S2
zvAEb8l4_A63YL(;LZD*PnvsDkIKQ+gIn^yQCzX*w6uqp~10`=phA<?fK>7$2I6lM`
z#MTam42%rS42%q{3|tP9pxn*C;2;Ug#S9D#k_=o7+zgBiJPZsBObomXk_>!Ee0~Ng
zP|gOc6Jii%U}O*hs}p4q0!1(b1A`DKdcm|Lg9HPEfE1`qU|?Y2X5e6uW{_cEWRPWG
zVCZIG2bJ9n;ky|aBZcIcnT6zq6t^=dZ)Q*ji)ga22x$rFfJO9J_cAa>GH+r~4~}Hn
z#Gn_vnZW>4$Y>LT(GCWa9Sl~R85}l(9p%Kpz#zrI#=yWJ%D~Pb%OJ!c&mhU5&S1{q
z%izTj%HRxE#lXPH;KJYvbyzC{69cFgQDwGS&LFvo!ARQ3S7#f8o7Of4ubB+2IvZLT
z8KpNd80}m5|0&}J1_lOZ281;U46F=^4BQM!3}Ot)3=#|p49W~?U~3d0hJq42*iuD?
z0C1>sGw?D5GH@_3F$6I%FmNz1|6yQd6k=lFWC$kYq!6N<RK&o_P|U#1P{JU_P|6^|
zP{g3jP=VqkaZofdFfkBzk_$sPG?bDV7#SED7#NhKR)M2Y9!!GjVg?3r1_lP{O$_QA
zHZkaJKnfxu1{MYeh86}1hBgKnh7JY=hAyx>cpxT0lMg5uSQ(fln3)-vKouF(!U6_n
za70RIY0GS9h|rSV$`Gw3$+DFpR!fp~D?>aY!o?U^85kH=Ft9PKWZ-64#URMAnn9dl
z4cICzuoEO05*awa4we903W{zCaH<74Py!rBtPG3{Nem!wf>NtK)Vr)&TNt9(fFlqT
z>1<$^Zvh((@dYUQK}IuziczT3ku}GHQVbI~#XvOg#i}`l!4r$-cy!Ijuxj=oPV+@9
znmHL#8PcFOn=!D0)2!Gg27^d%X03gZHlS?i%PhTvAzcUEDU4v#m>58rDHon{wHTPd
gLBu7*sI`M3?*IchIUxHVp^u575FD^Y&=RE>06$46`~Uy|

literal 0
HcmV?d00001

diff --git a/bin/modelling/TimeTableRow.class b/bin/modelling/TimeTableRow.class
new file mode 100644
index 0000000000000000000000000000000000000000..8967e88c65c77d53f3860263bb4fb0863f6fdd12
GIT binary patch
literal 530
zcmX^0Z`VEs1_l!bX?6xCMh3Cm{FKz3oXos*{gBMu)R4raoYbKFa&`t5Mh1bb#Ii*F
zoW#6zegCAa)Z`L&1~x_p+5Dn({nX@~%!1-n{nXqv{nX_AqEvlXh!REyuJqKB@YK}o
zl*CF#22l-7AA}7qiIv`&c`4S63|z%Xio`UqsL>2#WZ+3pEeS43EGhvxjgf&_L(`Ly
zfu|TnkVV52q!eVUYhDUOA;@$%hdn*DB&4z+m61UX#W5kNiOCt6dFgKXMY&K{u@}RX
z$|E}oLnX*Ukg-Ae`MHb?A{v@Lh>!{{Day=Cw`ODj83s`xs(~pFGJ-2OzqBYh)h#n8
zm61UZ<aAi@>w(N;V`N}tU}j)sU}a!n;9_B9U}xZ90L2R@0~eU)X5azSybOF`njgv+
kfbs<yguvp$3?g7!ltBzki!(?tFfcGONHQ=mFfm9002q{oCjbBd

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/CourseImpl.class b/bin/modelling/impl/CourseImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..ab1111afd8b18a7160d2f9c8d1a13f92eeec78c1
GIT binary patch
literal 4766
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
M%nVx@wli=7062*1-~a#s

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/CourseInstanceImpl.class b/bin/modelling/impl/CourseInstanceImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..a886c41fdfbfd21a119ed189ad00d288788c50ea
GIT binary patch
literal 12034
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

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/DepartmentImpl.class b/bin/modelling/impl/DepartmentImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..064079efff47cf70bdb3ad637c89edcb910be6d5
GIT binary patch
literal 4563
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
BH0}TZ

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/EmployeeImpl.class b/bin/modelling/impl/EmployeeImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..884a6a3c799d10b165583c6e6c58c81a9b571b9e
GIT binary patch
literal 4056
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
a3=BdHObl`i3mF!(aWXJ7EMZv2zzG1_8@9{<

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/EvaluationFormImpl.class b/bin/modelling/impl/EvaluationFormImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..7882b9ac4ad9c0d1f8a2f649775600eab8644d77
GIT binary patch
literal 4182
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
b7#J9Y7?>FJ7*;Z@X5(aFW>~|pj)4;Zm}h#Y

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/ModellingFactoryImpl.class b/bin/modelling/impl/ModellingFactoryImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..c06fde7ade95613390470710f19da0fd8a83996d
GIT binary patch
literal 7876
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
PhAtxmH={VCBpW9H(_XD%

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/ModellingPackageImpl.class b/bin/modelling/impl/ModellingPackageImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..f5a3d579a7186614abd5d026396b5802228a811c
GIT binary patch
literal 16150
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
C>SFZ(

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/PersonImpl.class b/bin/modelling/impl/PersonImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..ad7c96f48a473f5ec682e272ef96de2bfdd7ed69
GIT binary patch
literal 6013
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
NlYyDx2*WW3P5@vDN^JlD

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/PointReductionImpl.class b/bin/modelling/impl/PointReductionImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..d71686923bec122983216ad67f174f83c2ac549f
GIT binary patch
literal 3526
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

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/RoleImpl.class b/bin/modelling/impl/RoleImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..fa0a4fea169dd19f8471036e1a3987cc16f8de41
GIT binary patch
literal 5185
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
RGpuFfWMF1k$FPBc69A6Dn{ogE

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/StudentImpl.class b/bin/modelling/impl/StudentImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..bf6e02746c5387de1c05f0f198df840a4f0b4afd
GIT binary patch
literal 5654
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
Mftlef!+8cy05*Xp`Tzg`

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/StudyProgramImpl.class b/bin/modelling/impl/StudyProgramImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..b3d35e7bc62f3e447544b0030ab57749b24204f7
GIT binary patch
literal 4587
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
X#K6R$%CLrE9UCVDGsAj@jSQRs=rtEJ

literal 0
HcmV?d00001

diff --git a/bin/modelling/impl/TimeTableRowImpl.class b/bin/modelling/impl/TimeTableRowImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..3b55dff9337021d7035ebc97df1d6308c6f7e4d8
GIT binary patch
literal 5262
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
SaGv2J8z%!Z!zG3*44eQfWJ^i_

literal 0
HcmV?d00001

diff --git a/bin/modelling/util/ModellingAdapterFactory$1.class b/bin/modelling/util/ModellingAdapterFactory$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..2093eba43ae9db0e7c79c2e24356f6fecdc73120
GIT binary patch
literal 4621
zcmX^0Z`VEs1_l#`PId++Mh1=C{FKz3oXos*{nC=m9DQFH*D)orpd_`(Eit(yzo=5h
zkez{rkwFfZ>frLslH?3V2DXxn%wiP-Mg|QZTuM<5wq|5tv&qcMEU{x`&?Z`wW*8#_
zi*tTTDklRY12+!?D+3!B12Y3J4+A>`A0q>^21o(FPi9`KUukYqYEejHQcfx(gOE>t
za$-(cVo@fD4;5qqIhm0`i%18n7+Nzja3v=er#k1C78R#5GFT%!8zN|}>62fSuAiEm
zlUY!ls-K#hrk|Xjo134fpO;^fnO3O}4Fqd01~CQ+b_Q`q1~uZsi-$pyL5h(<IJqb_
zu>|S_s9}r@ni|B~%gDf%pOlrFTmlLdgw0UbGcpK(JQ!S3no=21l%HOdn9IoEi0n;d
zDUv*^z{8*j@_;171IXsUy&-`V703##85x8??t-||Gq1QLF)ullk--_+WvG%QxlN6S
zK^^2aX^7iUO@g~l3dwb-O01#b7Lu8p3Qk->`Q>QghAc&r+jMvsbU|)|h8wauaF-#6
z8?pjexVe@k=9DIuWaj6&<rn3mg&V3QNp3UZVK4@{4H|B!Cc#~Y9B!yetQi^jK=JC5
zT98;&lAD@W!pLBc9H$5glH6s%!(a(=mpCLo5vIW1B!(212x(Y&1>|Sul?0`xlqQ41
z3@yA+B}sCZ9S?&&$X(FzLNy8QHstU^RbtJ^zyS)cpnOoFW{Dh9AR&_6;=;q=3UZ4e
zB#c1%;VuwB3LTIHtl$esEh^5>Lo4_of+X4P#lzqYvKv~MK}>+#E`($|M9P|xfg9v+
zP?-QuBsR!ihl-Nqf&d<dK#&VWAijqh0e6Bhk`thE){G21AUC+?7UbktrlvA7*djXu
zCQOnm!gv_ML9P&mxB_Md+!-QB&VWgR!XhO#EwMDG#5oaE3wdZ@R5_{1`9-PvuKwVH
zo+KB=@G!)JTm%gls1a}n$rG@OkwFVNP>^z#rcYL4S)zVUVqUsF)LmQ*j0}l945kcb
zj0`%++CU)=tA4C;XiVW@kY$i#WY9y_h*m1&(3;M}pv<6xrWGxt;n14J!(h!|!^mJv
zILxtnH<yPYk|BzbK?B*<@R-G6X#o#IFhd9<g9@@HaJIyup_qrkk--TqP*Lgy92(1b
z7&IBQ7#Y-&Z34wcYF-Jhh^XXY@MZ90WKcua1I@NLtf}E)aA)v9(*lV*T(;EnFbFe<
zpv4(lWrD-DCLRWT1_MS0uHgLAqU2P!Oi<Y=gQK~t2Z}aE2F~Ej^t{B9(xOyG22Z3+
zh}u$yw0&(b@&xu4pPe-$1HWrta!!76W?s5)YDq?Z3L^uLXI@@vk#kOBadB!fg8~C1
z12Y2y1EYWdsA<c<z#z%Mz`)MH!NADC32wYIF)%SOFmP#UZ)M=p+RnhUk%57MiGiPi
zfq{*Ik%581g+YLUfq@6i=3)?J5CWM73OlF?HVlkl6F9WCFmP>S5Z!>L-yN)9459|A
zpMimcL7G8^fsug`l<BaWB#&;A4^ESmz$Pg(s9-lq72TvjoF-|2P10o0!fui_x=CR;
zP0|CKq|ac0-6TVFlcI5&WCAwHl)((UN#^J#CEzs43T%=!11Qcwu@9m_u@8+qTXd6B
zahl`+Hp!8}3A>w|(M`(2X_6b*BzFc6>?V1lo0N~!Bp<Lzz6^fYP4Y)KsRXA<L12@D
z8A7m|6pC(AB~Ftfz$Qg9L}5268r`HioF>IFFbX&_m@>peO;Tfk<Xko_?QIMR=;knj
z&0%6-5O8FWWk|xNCmEj}WrkF2deZRev1Z7?rY94ho=AplY<hC==?P}Y!=@)6pB_hs
zLTq}9@afTHD8Z(u6rUbnhH`9rD)8xXXQ;xary8FgVTM|4dg}1$(PwDDrl%379tIYM
hW^ifV!q5t)+Zfsz7#LU>#26SDIzY7sICV3C001*WFAe|z

literal 0
HcmV?d00001

diff --git a/bin/modelling/util/ModellingAdapterFactory.class b/bin/modelling/util/ModellingAdapterFactory.class
new file mode 100644
index 0000000000000000000000000000000000000000..5d5d3fbf0d97933f5a2d55f0786d09a1c8bfe4e3
GIT binary patch
literal 2674
zcmX^0Z`VEs1_l!be|82YMh3Oq{FKz3oXos*{nC=m9DQFH*D)orpd_`(Eit(yzo?R(
zfrXL5G`}caKQ%cgv!FOtKQ%W^KRG`)H$P85FTW%+tx`WTw;)F!RhwsSK@KAW57>@?
z#N_P6^i)O$86PkoY$x10sH`<312<SUxID8YIfIcw0ZB2c10gD`85uZ(Gt=`DOG=AU
z85ukYD7W#!?+2*!t?jHC8Q5$x^D;~97#Wx~G{YDfSe)}yQn?tI8Tfe^xEXlZ83Y*_
zG{9~J`vlc-P;;Q6r((#(Aiy9D(kH^mpsj(^k*M0NHN!X=7#YNP7}yy&Kr9I!237_(
zP6jCk8FmI~Mg}Q__2>b~!ywDR#>l{#>gg98;^^n>%E-X)lbM(5SDKrYS`?C)l#|NH
zAmo#uoR|}qSd<CkLj_q%GBS%98HjcyBLi=6Nn&!gZ(;$|1cA(AsK?#%i$W?3QW+UU
zHGHxX%M$f-67$ma{gbj%lS`~Mqu3eL7#U>IV<a^>zbIAT6{3opL6t#+he4A;i;;mX
z)j21zxR{YaK|>QG9-+FxDy+E~bQtv58FU#LWN?@cR>#Aj&tSmFz@462;tEZGj0{S+
z4Tq`$rHy>BA3#Bf;V(u8-sGax#FA8KY%($gYG61QHS73+a!_V!ku|2jP!&RrwB}+k
zW3XUnFlS_tL!<%JBnZhLJPei$R*VcBDftjSBZD!fW1wLN32|#p%&1~#uwi6SMGs1>
zPGe+XD@iO$Pb~o@A^bYvzGh?)hJ=`NerZuLBHT2wL<Lq$tr;04AtnTul%`Y$6y>KE
zCFVi{i;+PZA_p<uGq1QLF)tZm3sh%FW^O7t0SD!mqw91nOUx-vEXmBzbIUJ6m@5u3
z*Cn+ev8W_BHLnC+UqF6lUP(}DN@+4kFI-j-qAw^v2jL262n3`S73b%{Rf<4Vf_#N+
zyeLH2HMbxqzcLkJ2vj*V@4!vr3eGPrN=|jl1Z8>|cu@hBhvrp1P(o&8;PK4MODzIt
zkJMrYMFvI&W(EcZCI)cP!@$760xFCc7#TRhqFfC842+=Skb#kbmw|yHlYxbSk%56h
zR%<&0pVn>$fk>_G3_@EOL^m;rA7|j)#2~quL3|?v0|PUI90LP`7y~N<1A{693xf-T
z0D~HX7=t>441*?vJOcv*55yn_1qMY11_mXF$bSYI21a(U3?qXwg9_BzN(LqdCI$uu
zE$vMV;>#FVS=MMDWKf;SAgz6XL3JmCIwQkQ25m+Lm?ZNW<~3+;FlAt8Fk|3kuwW2i
zuw>9+um-z93}PzO4Gaug42BFw42)pcure@n$}lo8G8i+MK%L<Xbq2rI76ws})!P_M
z4=`A700$MwzieQa_aK?g4>y~i!Ir^}0c4;(g9Fq+9WbAPfr$~_j9FkaAYsG=HG`4C
zkqDhDu<CRoLgzNDI-QBoc?7FY7b0|C!m87i2%QhG>U1MQ=R2%A-HFio2dhpG!a5nb
uu<G<ALZ<{)onA!fRKu#%n+TmoSadQm_<+;7FM}Tg0|OTWBZB|~7ytnB&_!eb

literal 0
HcmV?d00001

diff --git a/bin/modelling/util/ModellingSwitch.class b/bin/modelling/util/ModellingSwitch.class
new file mode 100644
index 0000000000000000000000000000000000000000..5662a9cff87ca4006cd03f5d0b65be41c26b8395
GIT binary patch
literal 5315
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

literal 0
HcmV?d00001

-- 
GitLab