
    jhz                     4   S SK r S SKrS SKrS SKrS SK7  S SK7  S SK7  S SKJ	r
Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKrS SK r \ RB                  " S5        S SK"r"S S	K#J$r$J%r%J&r&  S S
K'J(r(  \RR                  RU                  SSSSSS.5         " S S\+5      r,\-S:X  aa  \" SSS9r.\.R_                  5       r0\1" \Rd                  5      r3\," 5       r4\4Rk                  5         \Rl                  " \3Ro                  5       5        gg)    N)*)FigureCanvasQTAggNavigationToolbar2QT)Figure)odeint)ArgumentParser)dateignore)PALETTES	SEQUENCEScolor_palette)set_palettez#434343white)zfigure.facecolorzaxes.facecolorzaxes.labelcolorzxtick.colorzytick.colorc                       \ rS rSrS#S jrS rS rS rS rS$S jr	S	 r
S
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S  r!S! r"S"r#g)%MainGUI   Nc                     [         R                  X5        [        R                  " 5       S:  a  [        S5        [        eU R                  5         U R                  5         g )Ni|izKPlease download a new version from https://streubel.unl.edu/STARTSMART.html)QMainWindow__init__timeprint
SystemExitinitUIUpdateDataVisualization)selfparents     Pendulum.pyr   MainGUI.__init__   sB    T*99;#_`$$&    c                 v   [        5       U l        U R                  [        S5      5        U R	                  S5        U R                  5         U R                  5         U R                  U R                  5        U R                  5         U R                  R                  S5        [        5       nUR                  U R                  5        UR                  U R                  5        U R                  R                  U5        U R!                  S5        U R#                  U R                  5        U R%                  SS5        g )Nzicon.pngzQTextEdit, QLineEdit {background: '#707070'; color: white;} QGroupBox {border: 1px solid gray; border-radius: 5px; margin-top: 8px;} QGroupBox:title { subcontrol-origin: margin; subcontrol-position: top center; padding: 0 3px 0 3px; }i,  u   ⌘ Streubel Lab Pendulum ⌘  i   )QWidgetMainsetWindowIconQIconsetStyleSheetinitParametersCreateParameterTabCalcCartesianCoordindexCreateDataVisualizationParameterTabsetFixedWidthQHBoxLayout	addWidgetDataVisualization	setLayoutsetWindowTitlesetCentralWidgetsetMinimumSize)r   hboxs     r   r   MainGUI.initUI"   s    I	5,-  H  	I!

+$$&'',}t(()t--.		D!;<dii(D%r   c                    / SQU l         SS/U l        [        R                  " SU R                  S   U R                  S   -   U R                  S   5      U l        SU l        SU l        SU l        SU l        SU l	        SU l
        SU l        SU l        SU l        SU l        SU l        S	U l        S
U l        / U l        / U l        / U l        / U l        / U l        / U l        SU l        SU l        SU l        SU l        SU l        SU l        g )N)zSimple pendulumzDouble pendulumzTriple pendulumd   g{Gz?r         
   F            ?g&1#@g?)PresetsListXnparangetr*   l1l2l3m1m2m3c1c2theta01theta02theta03
deltathetat1t2t3p1p2p3g	EnergyTol
SliderSteptrailshowPendulumshowChaoticMotionr   s    r   r'   MainGUI.initParameters6   s    Rc1TVVAYtvvay0;

!"r   c                 %   [        5       U l        [        5       n[        5       U l        U R                  R                  U R                  5        U R                  R                  S5        U R                  R                  S5        [        S5      U l
        U R                  R                  S5        U R                  R                  S5        UR                  U R                  5        UR                  U R                  5        [        S5      U l        U R                  R                  U R                   5        [        5       n[#        S5      n[%        ['        U R(                  S   5      5      U l        U R*                  R-                  [/        SS	5      5        U R*                  R1                  S
5        UR                  U5        UR                  U R*                  5        [        5       n[#        S5      n[%        ['        U R(                  S   5      5      U l        U R2                  R-                  [5        SSS5      5        U R2                  R1                  S
5        UR                  U5        UR                  U R2                  5        [        5       n[#        S5      n[%        ['        U R6                  5      5      U l        U R8                  R-                  [/        SS5      5        U R8                  R1                  S
5        [        S5      U l        U R:                  R                  U R<                  5        UR                  U5        UR                  U R8                  5        UR                  U R:                  5        [        5       n[#        S5      n	[?        [@        RB                  RD                  5      U l#        U RF                  RI                  S[K        U RL                  5      S-
  5        U RF                  RO                  S5        U RF                  RQ                  S5        UR                  U	5        UR                  U RF                  5        [        5       n
[#        S5      n[?        [@        RB                  RD                  5      U l)        U RR                  RI                  SS5        U RR                  RO                  U RT                  5        U RR                  RQ                  S5        U
R                  U5        U
R                  U RR                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l+        U RV                  RI                  SS5        U RV                  RO                  U RX                  5        U RV                  RQ                  S5        UR                  U5        UR                  U RV                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l-        U RZ                  RI                  SS5        U RZ                  RO                  U R\                  5        U RZ                  RQ                  S5        UR                  U5        UR                  U RZ                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l/        U R^                  RI                  SS5        U R^                  RO                  U R`                  5        U R^                  RQ                  S5        UR                  U5        UR                  U R^                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l1        U Rb                  RI                  SS5        U Rb                  RO                  U Rd                  5        U Rb                  RQ                  S5        UR                  U5        UR                  U Rb                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l3        U Rf                  RI                  SS5        U Rf                  RO                  U Rh                  5        U Rf                  RQ                  S5        UR                  U5        UR                  U Rf                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l5        U Rj                  RI                  SS5        U Rj                  RO                  U Rl                  5        U Rj                  RQ                  S5        UR                  U5        UR                  U Rj                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l7        U Rn                  RI                  SS5        U Rn                  RO                  U Rp                  5        U Rn                  RQ                  S5        UR                  U5        UR                  U Rn                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l9        U Rr                  RI                  SS5        U Rr                  RO                  U Rt                  5        U Rr                  RQ                  S5        U Rr                  Rw                  S5        UR                  U5        UR                  U Rr                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l<        U Rx                  RI                  SS5        U Rx                  RO                  U Rz                  5        U Rx                  RQ                  S5        U Rx                  Rw                  S5        UR                  U5        UR                  U Rx                  5        [        5       n[#        S5      n[?        [@        RB                  RD                  5      U l>        U R|                  RI                  SS5        U R|                  RO                  U R~                  5        U R|                  RQ                  S5        U R|                  Rw                  S5        UR                  U5        UR                  U R|                  5        [        U R                  5      n U R                  U5        U R                  U R                  5        U R                  U5        U R                  U5        U R                  U5        U R                  U5        U R                  [        SS[        R                  R                  [        R                  R                  5      5        [        S5      n![        5       n"U"R                  U
5        U"R                  U5        U"R                  U5        U"R                  U5        U!R                  U"5        U R                  U!5        [        S5      n#[        5       n$U$R                  U5        U$R                  U5        U$R                  U5        U$R                  U5        U#R                  U$5        U R                  U#5        [        S5      n%[        5       n&U&R                  U5        U&R                  U5        U&R                  U5        U%R                  U&5        U R                  U%5        U R                  R                  R                  U R                  5        U R                  R                  R                  U R                  5        U R*                  R                  R                  U R                  5        U R2                  R                  R                  U R                  5        U R8                  R                  R                  U R                  5        U R:                  R                  R                  U R                  5        U R                  R                  R                  U R                  5        U RF                  R                  R                  U R                  5        U RR                  R                  R                  U R                  5        U RV                  R                  R                  U R                  5        U RZ                  R                  R                  U R                  5        U R^                  R                  R                  U R                  5        U Rb                  R                  R                  U R                  5        U Rf                  R                  R                  U R                  5        U Rj                  R                  R                  U R                  5        U Rn                  R                  R                  U R                  5        U Rr                  R                  R                  U R                  5        U Rx                  R                  R                  U R                  5        U R|                  R                  R                  U R                  5        g )N   r9   	Calculater8   TzShow chaotic motionzSimulation time [s]:r   r!   (   zResolution [s]:   z
Trail [s]:zShow pendulumzTime step [s]:zLength:   zMass:zResistance:zInitial angle:ih  FzBob 1zBob 2zBob 3)b	QGroupBoxr,   r.   	QComboBoxComboPresetsaddItemsr?   setMaximumWidthsetCurrentIndexQPushButton	RunButtonsetCheckabler/   	QCheckBoxButtonShowChaoticMotion
setCheckedr[   QLabel	QLineEditstrr@   X1EditsetValidatorQIntValidatorr-   dXEditQDoubleValidatorrY   	TrailEditButtonShowPendulumrZ   QSliderQtOrientation
HorizontalSlidersetRangelenrC   setValuesetSingleStepSliderL1rD   SliderM1rG   SliderC1rJ   SliderTheta01rL   SliderL2rE   SliderM2rH   SliderC2rK   SliderTheta02rM   SliderL3rF   
setEnabledSliderM3rI   SliderTheta03rN   QVBoxLayout	addLayoutaddSpacerItemQSpacerItemQSizePolicyPolicyMinimum	Expandingr1   currentIndexChangedconnectComboPresets_changedclickedRuntextChanged
X1_changed
dX_changedTrail_changedtoggledUpdateShowPendulumUpdateShowChaoticMotionvalueChangedIndex_changed
L1_changed
M1_changed
C1_changedTheta01_changed
L2_changed
M2_changed
C2_changedTheta02_changed
L3_changed
M3_changedTheta03_changed)'r   hbox0hbox2X1Labelhbox3dXLabelhbox4
TrailLabelhbox5TLabelhbox00L1Labelhbox01M1Labelhbox03C1Labelhbox02Theta01Labelhbox10L2Labelhbox11M2Labelhbox13C2Labelhbox12Theta02Labelhbox20L3Labelhbox21M3Labelhbox22Theta03LabelvboxG1ghbox1G2ghbox2G3ghbox3s'                                          r   r(   MainGUI.CreateParameterTabT   s   %K%K""4#3#34))#.))!,$[1&&s+##D)))*''01F'G$$$//0F0FG/0DFF1I/  q!67!!"% $*+DFF1I/  !1!Aa!89!!"% $L)
"3tzz?3##M!C$89$$R("+O"<**4+<+<=
#'//0()bnn778Qs466{1}-Q!!!$$# 9 9:q$tww'##A&!'/ 9 9:q%tww'##A&!'' 9 9:q%tww'##A&!'./$R^^%>%>?##Ac*##DLL1((+&++,# 9 9:q$tww'##A&!'/ 9 9:q%tww'##A&!'' 9 9:q%tww'##A&!'./$R^^%>%>?##Ac*##DLL1((+&++,# 9 9:q$tww'##A&  '!'/ 9 9:q%tww'##A&  '!'./$R^^%>%>?##Ac*##DLL1((+%%e,&++,4,,-ut334uuuu;r#{/A/A/I/I;K]K]KgKghiw    
Vrw    
Vrw   
Vr--55d6O6OP&&txx0''8''8""**4+=+=>''//0G0GH$$,,44T5Q5QR  ((););<""**4??;""**4??;""**4??;''//0D0DE""**4??;""**4??;""**4??;''//0D0DE""**4??;""**4??;''//0D0DEr   c           	         [        5       U l        [        5       n[        5       U l        U R                  R                  SSSSSSS9  U R                  R                  R                  S5        [        U R                  5      U l	        U R                  R                  U5        U R                  R                  / SQ5      U l        U R                  R                  S5        U R                  R                  S5        U R                  R                  5         U R!                  5         U R                  R#                  5         [%        U R                  5      nUR'                  U R                  5        g )Nr   r9   leftbottomrighttopwspacehspacez#000r   r   r9   r9   offequal)rd   r0   r"   r   figsubplots_adjustpatchset_facecolorFigureCanvascanvas	setParentadd_axesaxaxis
set_aspecttight_layoutr   drawr   r/   )r   dVr   s      r   r+   MainGUI.CreateDataVisualization'  s    !*Y8  a!TU V$$V,"488,b!((##I.U7#$$&4112t{{#r   c                 L   US:X  a  U R                   nU R                  R                   H  nUR                  5         M     U R                  R                   H  nUR                  5         M     US:X  aF  U R
                  U R                  pCU R                  U R                  peU R                  U R                  pOoU R
                  S S 2U4   U R                  S S 2U4   pCU R                  S S 2U4   U R                  S S 2U4   peU R                  S S 2U4   U R                  S S 2U4   pUS:X  d  U R                  (       ay  U R                  R                  [        R                  " SSSSS95        [        X45       H:  u  pU R                  R                  [         R"                  " SU	/SU
/SSS	S
95        M<     [        X45       HL  u  pU R                  R                  [        R                  " X4U R$                  S-  S/US:     SSSS95        MN     U R&                  S-  U R$                  S-  -   nU R(                  R+                  5       S:  Ga  U R                   S:X  d  U R                  (       aI  [        X4XV5       H9  u  ppU R                  R                  [         R"                  " X/X/SSS	S
95        M;     [        XV5       HL  u  pU R                  R                  [        R                  " X4U R,                  S-  S/US:     SSSS95        MN     U R&                  S-  U R.                  S-  -   U R,                  S-  -   nU R(                  R+                  5       S:  Ga  U R                   S:X  d  U R                  (       aI  [        XVXx5       H9  u  ppU R                  R                  [         R"                  " X/X/SSS	S
95        M;     [        Xx5       HL  u  pU R                  R                  [        R                  " X4U R0                  S-  S/US:     SSSS95        MN     U R&                  S-  U R.                  S-  -   U R2                  S-  -   U R0                  S-  -   nUS:  Gab  [5        U R6                  U R8                  S   -  5      nSnUU-  n[        U R
                  U R                  U R                  U R                  U R                  U R                  5       H  u  ppp[;        U5       H  nUUU-
  U-  -
  nUS:  a  M  UU-   S-   nUU-  S-  nU R                  R=                  U	UU U
UU SS	SUS9  U R(                  R+                  5       S:  a$  U R                  R=                  UUU UUU SS	SUS9  U R(                  R+                  5       S:  d  M  U R                  R=                  UUU UUU SS	SUS9  M     M     U R                  R?                  U* U5        U R                  RA                  U* U5        U RB                  RE                  5         g )Nr   )r   r   g{Gz?wr:   )fczorderr9   butt)clwsolid_capstyler!   br;   )r   ecr   rrV         )r   r   r   alpha)#r*   r   linesremovepatchesx1y1x2y2x3y3rZ   	add_patchCirclezipadd_linemlinesLine2DrG   rD   rf   currentIndexrH   rE   rI   rF   intrY   r@   rangeplotset_xlimset_ylimr   r   )r   r*   pr  r  r  r  r  r  xx1yy1ddxx2yy2xx3yy3railMaxNsji0i1r   s                          r   r   MainGUI.UpdateDataVisualization:  s"   B;JJEAHHJ AHHJ ! A:GGDGGrGGDGGrGGDGGrGGAeG$TWWQuW%5rGGAeG$TWWQuW%5rGGAeG$TWWQuW%5rA:**GGgnnU33qIJr:  #w#wY_!`a & 2zGCGGgnncYS7I%PQ'7RWZ_bkmno "WWRZ$))+a/zzQ$"3"3'*2'7OCCGG$$V]]C9cYPQag%hi (8 r:!!'..#DGGDL;MeTUg;V[^cfoq"rs &DGGBJ&twwt|3B  --/!3::?d&7&7+.rR+;((y#STUek)lm ,<  #2zGCGG%%gnncYS?QRWXYRY?Z_bgjsu&vw  *WWRZ
*4772:5dggdlB19$**TVVAY./GA
A+.twwtwwtwwtwwtwwW[W^W^+_'qA1aBAv AaBqS1HEGGLLRC2J#fXYafLg((557!;SBZBr
cRX\]ejk((557!;SBZBr
cRX\]ejk " ,` 	"R "R r   c           	         Sn [         R                  R                  SR                  U5      5      (       a  US-  nOOM<  [        R
                  " U R                  U R                  [        R                  " [        U R                  5      S-
  5      S-   SS9n[        R                  S   " SS9nUR                  SR                  U5      US	S
9  g )Nr   zdata/Movie{}.mp4r9   F)repeatffmpeg<   )fpsr8   )writerdpi)ospathexistsformat	animationFuncAnimationr   r   rA   rB   r   rC   writerssave)r   nanir)  s       r   SaveDataMainGUI.SaveData}  s    ww~~077:;;Q	 
 %%dhht/K/KBIIVYZ^Z`Z`VabcVcLdefLfnst""8,4#**1-VDr   c                 X   / U l         / U l        / U l        US:X  Gab  U R                  R	                  5       (       a  SU R
                  U R
                  * 4 Vs/ s H%  o R                  U-   S-  [        R                  -  PM'     nnSU R
                  U R
                  * 4 Vs/ s H%  o R                  U-   S-  [        R                  -  PM'     nnSU R
                  U R
                  * 4 Vs/ s H%  o R                  U-   S-  [        R                  -  PM'     nnOU R                  S-  [        R                  -  /nU R                  S-  [        R                  -  /nU R                  S-  [        R                  -  /nO$U R                  nU R                  nU R                  n[        R                  " U5      n[        R                  " U5      n[        R                  " U5      nU R                  S-  [        R                   " U5      -  U l         U R                  * S-  [        R"                  " U5      -  U l        U R                   U R&                  S-  [        R                   " U5      -  -   U l        U R$                  U R&                  S-  [        R"                  " U5      -  -
  U l        U R                  U R*                  S-  [        R                   " U5      -  -   U l        U R(                  U R*                  S-  [        R"                  " U5      -  -
  U l        g s  snf s  snf s  snf )Nr      r;   )r  r  r  rn   	isCheckedrO   rL   rA   pirM   rN   rP   rQ   rR   arrayrD   sincosr  rE   r  rF   r  )r   idtrP   rQ   rR   s         r   r)   MainGUI.CalcCartesianCoord  s\   6++5577=>tPTP_P_O_<`a<`b||B+BEE1<`a=>tPTP_P_O_<`a<`b||B+BEE1<`a=>tPTP_P_O_<`a<`b||B+BEE1<`all3&ruu,-ll3&ruu,-ll3&ruu,-BBBXXb\XXb\XXb\''"*RVVBZ'77(2+bffRj(''4772:bffRj00''4772:bffRj00''4772:bffRj00''4772:bffRj00' baas   ,L",L",,L'c                    [        U5      S:X  ar  UR                  u  p#U R                  * U R                  -  U R                  -  [
        R                  " U5      -  nSU R                  -  U R                  U-  S-  -  nXT-   $ [        U5      S:X  Ga0  UR                  u  p#pgU R                  U R                  -   * U R                  -  U R                  -  [
        R                  " U5      -  U R                  U R                  -  U R                  -  [
        R                  " U5      -  -
  nSU R                  -  U R                  U-  S-  -  SU R                  -  U R                  U-  S-  U R                  U-  S-  -   SU R                  -  U R                  -  U-  U-  [
        R                  " X&-
  5      -  -   -  -   nXT-   $ [        U5      S:X  Ga-  UR                  u  p#pgpU R                  U R                  -   * U R                  -  U R                  -  [
        R                  " U5      -  U R                  U R                  -  U R                  -  [
        R                  " U5      -  -
  nSU R                  -  U R                  U-  S-  -  SU R                  -  U R                  U-  S-  U R                  U-  S-  -   SU R                  -  U R                  -  U-  U-  [
        R                  " X&-
  5      -  -   -  -   nWW-   $ )Nr   r>         )	r   TrG   rD   rV   rA   r=  rH   rE   )
r   yrP   dt1VrD  rQ   dt2rR   dt3s
             r   calcEnergyXPMainGUI.calcEnergyXP  s   q6Q;SSFB 'r
2A477
DGGCK!++A s
 Vq[CCMB2''$''/"477*4661"&&*<dggdggodff>TUWU[U[\^U_>__A477
DGGCK!++RZ$''#+9IDGGTWKZ[K[9[]^_c_f_f]fgkgngn]nor]rsv]vwyw}w}  A  D  xE  ^E  :E  .F  FA
 s
	 Vq[#$33 B2"''$''/"477*4661"&&*<dggdggodff>TUWU[U[\^U_>__A477
DGGCK!++RZ$''#+9IDGGTWKZ[K[9[]^_c_f_f]fgkgngn]nor]rsv]vwyw}w}  A  D  xE  ^E  :E  .F  FAs
r   c                    S nS nS nU R                   R                  5       (       a  SU R                  U R                  * 4 Vs/ s H  n[        R                  " U R
                  U-   S-  [        R                  -  SU R                  U-   S-  [        R                  -  SU R                  U-   S-  [        R                  -  S/5      PM     nnOw[        R                  " U R
                  S-  [        R                  -  SU R                  S-  [        R                  -  SU R                  S-  [        R                  -  S/5      /n/ U l	        / U l
        / U l        / U l        / U l        / U l        U GH  nU R                  R!                  5       S:X  Ga%  [#        XS S U R$                  U R&                  U R(                  S-  U R*                  S-  U R,                  4S	9nU R                  R/                  US S 2S4   5        U R                  R/                  US S 2S4   S-  5        U R                  R/                  US S 2S4   S-  5        U R                  R/                  US S 2S
4   5        U R                  R/                  US S 2S
4   S-  5        U R                  R/                  US S 2S
4   S-  5        GMH  U R                  R!                  5       S
:X  GaF  [#        X&S S U R$                  U R&                  U R0                  U R(                  S-  U R2                  S-  U R*                  S-  U R4                  S-  U R,                  4S	9nU R                  R/                  US S 2S4   5        U R                  R/                  US S 2S4   5        U R                  R/                  US S 2S4   S-  5        U R                  R/                  US S 2S
4   5        U R                  R/                  US S 2S4   5        U R                  R/                  US S 2S
4   S-  5        GM  U R                  R!                  5       S:X  d  GM  [#        X6S S U R$                  U R&                  U R0                  U R6                  U R(                  S-  U R2                  S-  U R8                  S-  U R,                  4S	9nU R                  R/                  US S 2S4   5        U R                  R/                  US S 2S4   5        U R                  R/                  US S 2S4   5        U R                  R/                  US S 2S
4   5        U R                  R/                  US S 2S4   5        U R                  R/                  US S 2S4   5        GM     g s  snf )Nc                 v    U u  pgUnU* U-  [         R                  " U5      -  XC-  U-  [        U5      -  -
  n	X4$ N)rA   r<  abs)
rE  rC   rD   rG   rJ   rV   rP   z1rF  dz1s
             r   Derivatives1P-MainGUI.CalcTrajectory.<locals>.Derivatives1P  sA    EBC"R%r
"BE"HSW$44C7Nr   c	                 8   U u  pp[         R                  " X-
  5      [         R                  " X-
  5      p[         R                  " U	5      [         R                  " U5      nnU
nXX-  U-  U-  X^-  X*S-  -  U-  X<S-  -  -   -  -
  XE-   U-  U-  -
  Xb-  U
-  [        U
5      -  -
  XrS-  -  U-  U-  U
-  [        U
5      -  -   SU-  U-  US-  -  U
-  U-  -   Xs-  U-  U-  [        U5      -  -   X$X^S-  -  -   -  -  nUnXE-   X*S-  -  U-  UU-  -
  X-  U-  -   -  XS-  US-  -  U-  U-  -   Xb-  U-  U
-  [        U
5      -  -   SXE-  -   SU-  U-  U-  U
-  U-  Xs-  U-  [        U5      -  -   XrS-  -  U-  U
-  [        U
5      -  -   -  -
  X4X^S-  -  -   -  -  nUUUU4$ )Nr   r9   )rA   r=  r<  rO  )rE  rC   rD   rE   rG   rH   rJ   rK   rV   rP   rP  rQ   z2c12s12s1s2rF  rQ  rH  dz2s                        r   Derivatives2P-MainGUI.CalcTrajectory.<locals>.Derivatives2P  s1   KB"ffRUmRVVBE]FF2Jr
rBC473;q5bQh(> ??"%2MruUWxX[\^X_O__achidiaijlalmpapqsastwxzt{a{{}~  @B  ~B  CE  ~E  FI  KL  FL  ~L  MO  ~O  PR  ~R  R  TV  TY  Z]  T]  ^`  T`  ad  eg  ah  Th  h  km  rt  z{  u{  r{  o{  k|  }CCEB1uHSL!B$.S8925Q;s?3;NNPRPUVYPYZ\P\]`ac]dPddghikingnqrsuquvxqxy|q|}q  AC  rC  EG  EJ  KM  EM  NQ  RT  NU  EU  rU  WY  ^_  Z_  W_  `b  Wb  ce  We  fi  jl  fm  Wm  rm  gn  n  qs  xz  @A  {A  xA  uA  qB  CCs3s?"r   c	                 p%   U u  ppp[         R                  " X-
  5      [         R                  " X-
  5      nn[         R                  " X-
  5      [         R                  " X-
  5      nn[         R                  " X-
  5      [         R                  " X-
  5      nn[         R                  " U	5      [         R                  " U5      [         R                  " U5      nnnU
nX-  U-  U-  X-  U-  U-  US-  -  -
  X-  U-  U-  -   XS-  -  U-  -   XS-  -  U-  U-  -
  X-  U-  U-  US-  -  -
  SU-  U-  U-  U-  -   SU-  U-  U-  U-  U-  -
  X-  U-  U-  U-  U-  -   X-  U-  U-  U-  U-  -   X-  U-  U-  U-  -
  XS-  -  U-  US-  -  -
  XS-  -  U-  -   XS-  -  U-  U-  -
  XS-  -  U-  U-  U-  -   XS-  -  U-  U-  U-  -   XS-  -  U-  U-  -
  X&S-  -  [         R                  " SU	-  SU-  -
  5      -  U
S-  -  S-  -   X&-  U-  U-  U-  U-  U
S-  -  -
  X&-  U-  U-  U-  U-  U
S-  -  -
  X&-  U-  [         R                  " SU	-  SU-  -
  5      -  U
S-  -  -   X&-  U-  [         R                  " SU	-  SU-  -
  5      -  U
S-  -  S-  -   X'S-  -  U-  U-  U-  U
S-  -  -
  X'S-  -  U-  U-  U-  U
S-  -  -
  X'S-  -  [         R                  " SU	-  SU-  -
  5      -  U
S-  -  S-  -   X'S-  -  [         R                  " SU	-  SU-  -
  5      -  U
S-  -  S-  -   X6S-  -  U-  US-  -  -   X6-  U-  [         R                  " U	SU-  -
  SU-  -   5      * [         R                  " X-   SU-  -
  5      -   -  US-  -  S-  -
  X6-  U-  U-  US-  -  US-  -  -
  SU-  U-  U-  U-  US-  -  -   X6-  U-  U-  U-  US-  -  -   X7S-  -  [         R                  " U	SU-  -
  SU-  -   5      * [         R                  " X-   SU-  -
  5      -   -  US-  -  S-  -
  X7S-  -  U-  US-  -  US-  -  -
  X7S-  -  U-  US-  -  -   X7S-  -  U-  U-  US-  -  -   XF-  U-  U-  US-  -  -   XF-  U-  U-  U-  US-  -  -
  XGS-  -  [         R                  " U	SU-  -
  U-   5      * [         R                  " U	SU-  -   SU-  -
  5      -   -  US-  -  S-  -   XGS-  -  U-  US-  -  US-  -  -
  XGS-  -  U-  US-  -  -   XGS-  -  U-  U-  US-  -  -
  X%* U-  XW-  US-  -  -   XW-  -
  US-  US-  -  -   US-  -
  SU-  U-  US-  -  -   SU-  U-  U-  U-  U-  -
  Xg-  US-  -  -   Xg-  US-  -  -   SU-  U-  -
  US-  US-  -  -   SUS-  -  U-  U-  U-  -
  US-  US-  -  -   US-  US-  -  -   US-  -
  -  -  nUnU* U-  U-  U-  U-  X-  U-  U-  -   X-  U-  U-  U-  -
  X-  U-  U-  U-  U-  -   X-  U-  U-  -   X-  U-  U-  U-  -
  XS-  -  U-  U-  -
  XS-  -  U-  -   SU-  U-  U-  U-  U-  -
  X-  U-  U-  U-  U-  -   X-  U-  U-  US-  -  -
  SU-  U-  U-  U-  -   X-  U-  U-  U-  U-  -   X-  U-  U-  U-  -
  XS-  -  U-  U-  -
  XS-  -  U-  U-  U-  -   XS-  -  U-  US-  -  -
  XS-  -  U-  -   XS-  -  U-  U-  U-  -   XS-  -  U-  U-  -
  X%-  U-  U-  U
S-  -  -
  X%-  U-  U-  U
S-  -  -
  X%-  U-  U-  U-  U
S-  -  -   X&S-  -  U-  U
S-  -  -
  X&-  U-  [         R                  " SU	-  U-   SU-  -   5      * [         R                  " X-   SU-  -
  5      -   -  U
S-  -  S-  -
  X&-  U-  U-  US-  -  U
S-  -  -   SU-  U-  U-  U-  U
S-  -  -
  X&-  U-  U-  U-  U
S-  -  -   X'S-  -  [         R                  " SU	-  U-   SU-  -   5      * [         R                  " X-   SU-  -
  5      -   -  U
S-  -  S-  -
  X'S-  -  U-  US-  -  U
S-  -  -   X'S-  -  U-  U
S-  -  -
  X'S-  -  U-  U-  U
S-  -  -   X5-  U-  [         R                  " SU-  SU-  -
  5      -  US-  -  S-  -   X6S-  -  [         R                  " SU	-  SU-  -
  5      -  US-  -  S-  -
  X6-  U-  U-  U-  U-  US-  -  -   X6-  U-  [         R                  " SU	-  SU-  -
  5      -  US-  -  -
  X6-  U-  U-  U-  U-  US-  -  -
  X6-  U-  [         R                  " SU-  SU-  -
  5      -  US-  -  S-  -   X7S-  -  U-  U-  U-  US-  -  -   X7S-  -  [         R                  " SU	-  SU-  -
  5      -  US-  -  S-  -
  X7S-  -  U-  U-  U-  US-  -  -
  X7S-  -  [         R                  " SU-  SU-  -
  5      -  US-  -  S-  -   XE-  U-  U-  US-  -  -   XF-  U-  U-  U-  US-  -  -
  XF-  U-  U-  US-  -  -   XGS-  -  [         R                  " SU	-  U-   U-   5      * [         R                  " SU	-  U-   SU-  -
  5      -   -  US-  -  S-  -   XGS-  -  U-  U-  US-  -  -
  XGS-  -  U-  US-  -  US-  -  -
  XGS-  -  U-  US-  -  -   X5* U-  XW-  US-  -  -   XW-  -
  US-  US-  -  -   US-  -
  SU-  U-  US-  -  -   SU-  U-  U-  U-  U-  -
  Xg-  US-  -  -   Xg-  US-  -  -   SU-  U-  -
  US-  US-  -  -   SUS-  -  U-  U-  U-  -
  US-  US-  -  -   US-  US-  -  -   US-  -
  -  -  nUnX-  U-  U-  U-  U-  X-  U-  U-  U-  -
  X-  U-  U-  U-  -
  X-  U-  U-  -   X-  U-  U-  U-  U-  -   X-  U-  U-  U-  -
  X-  U-  U-  U-  -
  X-  U-  U-  -   XS-  -  U-  U-  U-  -   XS-  -  U-  U-  -
  XS-  -  U-  U-  U-  -   XS-  -  U-  U-  -
  XS-  -  U-  US-  -  -
  XS-  -  U-  -   SU-  U-  U-  U-  U-  U-  -   SU-  U-  U-  U-  U-  -
  SU-  U-  U-  U-  U-  U-  -   SU-  U-  U-  U-  U-  -
  SU-  U-  U-  U-  US-  -  -
  SU-  U-  U-  U-  -   XS-  -  U-  U-  U-  -   XS-  -  U-  U-  -
  XS-  -  U-  U-  U-  -   XS-  -  U-  U-  -
  XS-  -  U-  US-  -  -
  XS-  -  U-  -   X%-  U-  U-  U-  U
S-  -  -   X%-  U-  U-  U
S-  -  -
  X%-  U-  U-  U-  U
S-  -  -   X%-  U-  U-  U
S-  -  -
  X&S-  -  [         R                  " SU	-  SU-  -   U-   5      * [         R                  " U	SU-  -
  U-   5      -   -  U
S-  -  S-  -
  X&S-  -  U-  U-  U
S-  -  -   X&S-  -  U-  US-  -  U
S-  -  -   X&S-  -  U-  U
S-  -  -
  X&-  U-  [         R                  " SU	-  SU-  -   U-   5      * [         R                  " U	SU-  -
  U-   5      -   -  U
S-  -  S-  -
  SU-  U-  U-  U-  U-  U
S-  -  -   SU-  U-  U-  U-  US-  -  U
S-  -  -   SU-  U-  U-  U-  U
S-  -  -
  X'S-  -  [         R                  " SU	-  SU-  -   U-   5      * [         R                  " U	SU-  -
  U-   5      -   -  U
S-  -  S-  -
  X'S-  -  U-  U-  U
S-  -  -   X'S-  -  U-  US-  -  U
S-  -  -   X'S-  -  U-  U
S-  -  -
  X5-  U-  U-  US-  -  -
  X5-  U-  U-  US-  -  -
  X6S-  -  [         R                  " SU	-  U-   U-   5      * [         R                  " SU	-  SU-  -
  U-   5      -   -  US-  -  S-  -   X6S-  -  U-  U-  US-  -  -
  X6S-  -  U-  US-  -  US-  -  -   X6S-  -  U-  US-  -  -
  X6-  U-  [         R                  " SU	-  U-   U-   5      * [         R                  " SU	-  SU-  -
  U-   5      -   -  US-  -  S-  -   SU-  U-  U-  U-  U-  US-  -  -
  SU-  U-  U-  U-  US-  -  US-  -  -   SU-  U-  U-  U-  US-  -  -
  X7S-  -  [         R                  " SU	-  U-   U-   5      * [         R                  " SU	-  SU-  -
  U-   5      -   -  US-  -  S-  -   X7S-  -  U-  U-  US-  -  -
  X7S-  -  U-  US-  -  US-  -  -   X7S-  -  U-  US-  -  -
  XE-  U-  [         R                  " SU-  SU-  -
  5      -  US-  -  S-  -
  XF-  U-  U-  U-  U-  US-  -  -   XF-  U-  [         R                  " SU	-  SU-  -
  5      -  US-  -  S-  -
  XF-  U-  U-  U-  U-  US-  -  -   XF-  U-  [         R                  " SU-  SU-  -
  5      -  US-  -  S-  -
  XGS-  -  U-  U-  U-  US-  -  -   XGS-  -  [         R                  " SU	-  SU-  -
  5      -  US-  -  S-  -
  XGS-  -  U-  U-  U-  US-  -  -   XGS-  -  [         R                  " SU-  SU-  -
  5      -  US-  -  S-  -
  XE* U-  XW-  US-  -  -   XW-  -
  US-  US-  -  -   US-  -
  SU-  U-  US-  -  -   SU-  U-  U-  U-  U-  -
  Xg-  US-  -  -   Xg-  US-  -  -   SU-  U-  -
  US-  US-  -  -   SUS-  -  U-  U-  U-  -
  US-  US-  -  -   US-  US-  -  -   US-  -
  -  -  nUUUUUU4$ )Nr   rb   rB  )rA   r=  r<  )rE  rC   rD   rE   rF   rG   rH   rI   rV   rP   rP  rQ   rU  rR   z3rV  rW  c23s23c13s13rX  rY  s3rF  rQ  rH  rZ  rI  dz3s                                 r   Derivatives3P-MainGUI.CalcTrajectory.<locals>.Derivatives3P  svD    !B"ffRUmRVVBE]CffRUmRVVBE]CffRUmRVVBE]Cvvbz266":rvvbz"rBC472:ad2gbja//b;Q1uWRZGa%PR
SVVWXW[\^W^_aWabeghbhWhhjklmjmnpjpqsjstvjvvwxyzwz{}w}  A  xA  BD  xD  EH  xH  H  JK  JN  OQ  JQ  RT  JT  UX  JX  Y\  J\  \  ^_  ^b  ce  ^e  fh  ^h  il  ^l  mp  ^p  p  qr  qu  vx  qx  y{  q{  |  q    @A  FG  BG  @G  HJ  @J  KN  PQ  KQ  @Q  Q  ST  YZ  UZ  SZ  []  S]  ]  ^_  de  `e  ^e  fh  ^h  il  ^l  l  no  tu  pu  nu  vx  nx  y|  n|  }@  n@  @  BC  HI  DI  BI  JL  BL  MP  BP  QT  BT  T  UV  [\  W\  U\  ]_  U_  `c  Uc  c  eg  lm  hm  em  np  nt  nt  uv  wy  uy  z{  |~  z~  u~  n  e  @B  DE  @E  eE  FG  eG  G  HJ  HM  NP  HP  QT  HT  UX  HX  Y\  H\  ]_  ab  ]b  Hb  b  ce  ch  ik  ck  lo  co  ps  cs  tw  cw  xz  |}  x}  c}  }  A  D  EG  G  HJ  HN  HN  OP  QS  OS  TU  VX  TX  OX  HY  Y  Z\  ^_  Z_  _  _  ac  af  gi  ai  jl  jp  jp  qr  su  qu  vw  xz  vz  qz  j{  a{  |~  @A  |A  aA  BC  aC  C  DF  KL  GL  DL  MP  DP  QT  DT  UX  DX  Y[  ]^  Y^  D^  ^  _a  fg  bg  _g  hk  _k  lo  _o  ps  _s  tv  xy  ty  _y  y  {}  BC  ~C  {C  DF  DJ  DJ  KL  MO  KO  PQ  RT  PT  KT  DU  {U  VX  Z[  V[  {[  \]  {]  ]  _a  fg  bg  _g  hj  hn  hn  op  qs  os  tu  vx  tx  ox  hy  _y  z|  ~  z  _  @	A	  _A	  A	  C	E	  J	K	  F	K	  C	K	  L	O	  C	O	  P	R	  T	U	  P	U	  C	U	  U	  V	X	  V	[	  \	^	  V	^	  a	c	  a	g	  a	g	  h	j	  k	l	  m	o	  k	o	  h	o	  q	r	  s	u	  q	u	  h	u	  a	v	  `	v	  x	z	  x	~	  x	~	  	A
  	E
  F
G
  H
J
  F
J
  	J
  x	K
  `	K
  V	L
  M
O
  Q
R
  M
R
  V	R
  S
T
  V	T
  T
  U
W
  U
Z
  [
]
  U
]
  ^
a
  U
a
  b
e
  g
h
  b
h
  U
h
  i
k
  m
n
  i
n
  U
n
  n
  p
q
  r
t
  p
t
  u
w
  p
w
  x
z
  p
z
  {
~
  p
~
  
A  CD  
D  p
D  D  FH  FK  LN  FN  OR  FR  SV  FV  WY  [\  W\  F\  \  ]_  de  `e  ]e  hj  hn  hn  oq  rs  tv  rv  ov  xy  z|  x|  o|  h}  g}  A  E  E  FH  FL  MN  OQ  MQ  FQ  R  gR  ]S  TV  XY  TY  ]Y  Z[  ][  [  \^  cd  _d  \d  eh  \h  il  no  io  \o  pr  tu  pu  \u  u  wy  ~  z  w  @C  wC  DF  HI  DI  wI  I  KM  RS  NS  KS  TW  KW  X[  K[  \^  `a  \a  Ka  a  ce  ch  ik  ck  lo  co  pr  tu  pu  cu  u  vx  v{  |~  v~  B  vB  CF  vF  GI  KL  GL  vL  L  NP  UV  QV  NV  Y[  Y_  Y_  `b  cd  eg  cg  `g  ik  `k  Yl  Xl  np  nt  nt  uw  yz  {}  y}  u}  ~  @B  ~B  uB  nC  XC  ND  EG  IJ  EJ  NJ  KL  NL  L  MO  TU  PU  MU  VY  MY  Z]  _`  Z`  M`  ac  ef  af  Mf  f  hj  op  kp  hp  qt  ht  uw  yz  uz  hz  z  {}  BC  ~C  {C  DG  {G  HK  {K  LN  PQ  LQ  {Q  Q  TV  X[  \^  X^  `b  `e  fi  kl  fl  `l  Xl  mo  mr  Xr  tv  xy  ty  z}  @  z@  t@  X@  AC  EF  AF  XF  HI  JL  HL  MO  HO  PS  UV  PV  HV  XV  WX  Y[  W[  \^  W^  _b  Wb  cf  Wf  gj  Wj  Xj  ln  lq  ru  wx  rx  lx  Xx  z|  z  @C  EF  @F  zF  XF  GH  IK  GK  LN  GN  XN  PR  TU  PU  VY  [\  V\  P\  X\  ]^  _a  cd  _d  ]d  eh  ]h  il  ]l  mp  ]p  Xp  rt  vw  rw  x{  }~  x~  r~  X~  @B  DE  @E  FI  KL  FL  @L  XL  MO  QR  MR  XR  TS  TCC2b58B;s?ADGBJ.qtBwrz#~=qtBwrz#~c?QQSTSWXZSZ[]S]]^_^bce^efh^hil^llmnstotmtuwmwx{m{{}~  DE  @E  ~E  FH  ~H  H  IJ  KL  IL  MO  IO  PR  IR  SU  IU  VY  IY  Y  [\  [_  `b  [b  ce  [e  fi  [i  jm  [m  m  no  nr  su  nu  vx  nx  y|  ~  y  n    AB  CD  AD  EG  AG  HJ  AJ  KM  AM  M  OP  OS  TV  OV  WY  OY  Z]  O]  ^a  Oa  a  bc  bf  gi  bi  jl  bl  mp  bp  p  qr  wx  sx  qx  y{  q{  |  q    AB  GH  CH  AH  IK  AK  LO  AO  PS  AS  S  TU  Z[  V[  T[  \^  T^  _b  de  _e  Te  e  gh  mn  in  gn  oq  gq  q  st  yz  uz  sz  {}  s}  ~A  sA  BE  sE  E  FG  LM  HM  FM  NP  FP  QT  FT  T  UW  UZ  []  U]  ^a  Ua  bd  fg  bg  Ug  g  hj  hm  np  hp  qt  ht  uw  yz  uz  hz  z  |~  |A  BD  |D  EH  |H  IL  |L  MO  QR  MR  |R  R  SU  Z[  V[  S[  \_  S_  `b  de  `e  Se  e  fh  fk  ln  fn  qs  qw  qw  xz  {}  x}  A  xA  CD  EG  CG  xG  qH  pH  JL  JP  JP  QS  QW  XY  Z\  X\  Q\  J]  p]  f^  _a  cd  _d  fd  ef  ff  f  hj  hm  np  hp  qt  ht  ux  z{  u{  h{  |~  @A  |A  hA  A  BC  DF  BF  GI  BI  JL  BL  MP  BP  QS  UV  QV  BV  V  XZ  X]  ^`  X`  ad  Xd  eh  Xh  ik  mn  in  Xn  n  oq  vw  rw  ow  z|  z@	  z@	  A	C	  D	F	  A	F	  H	J	  A	J	  L	M	  N	P	  L	P	  A	P	  zQ	  yQ	  S	U	  S	Y	  S	Y	  Z	\	  Z	`	  a	b	  c	e	  a	e	  Z	e	  S	f	  yf	  og	  h	j	  l	m	  h	m	  om	  n	o	  oo	  o	  q	s	  x	y	  t	y	  q	y	  z	}	  q	}	  ~	A
  C
D
  ~	D
  q	D
  E
G
  I
J
  E
J
  q	J
  J
  K
M
  R
S
  N
S
  K
S
  T
W
  K
W
  X
Z
  \
]
  X
]
  K
]
  ]
  _
a
  f
g
  b
g
  _
g
  h
k
  _
k
  l
o
  _
o
  p
r
  t
u
  p
u
  _
u
  u
  w
y
  w
|
  }

  w

  @B  @F  @F  GH  IK  GK  LM  NP  LP  GP  @Q  w
Q  RT  VW  RW  w
W  XY  w
Y  Y  Z\  ab  ]b  Zb  ce  ci  ci  jk  ln  jn  op  qs  os  js  ct  Zt  uw  yz  uz  Zz  {|  Z|  |  ~@  ~C  DF  ~F  GJ  ~J  KN  ~N  OR  ~R  SU  WX  SX  ~X  X  Y[  Y^  _a  Ya  bd  bh  bh  ij  km  im  no  pr  nr  ir  bs  Ys  tv  xy  ty  Yy  y  z|  z  @B  zB  CF  zF  GJ  zJ  KN  zN  OQ  ST  OT  zT  T  VX  V[  \^  V^  _a  _e  _e  fg  hj  fj  kl  mo  ko  fo  _p  Vp  qs  uv  qv  Vv  wx  Vx  x  z|  AB  }B  zB  CF  zF  GJ  zJ  KN  zN  OQ  ST  OT  zT  T  UW  \]  X]  U]  ^`  ^d  ^d  ef  gi  ei  jk  ln  jn  en  ^o  Uo  pr  tu  pu  Uu  vw  Uw  w  xz  @  {@  x@  AD  xD  EH  xH  IL  xL  MO  QR  MR  xR  R  TV  [\  W\  T\  ]_  ]c  ]c  de  fh  dh  ij  km  im  dm  ]n  Tn  oq  st  ot  Tt  uv  Tv  v  xz  x}  ~@  x@  AD  xD  EG  IJ  EJ  xJ  J  KM  KP  QS  KS  TW  KW  X[  K[  \^  `a  \a  Ka  a  ce  ch  ik  ck  lo  co  pr  tu  pu  cu  u  wy  ~  z  w  BD  BH  BH  IK  LN  IN  PR  IR  TV  IV  BW  AW  Y[  Y_  Y_  `a  bd  `d  fh  `h  ij  km  im  `m  Yn  An  wo  pr  tu  pu  wu  vw  ww  w  xz  @  {@  x@  AD  xD  EH  xH  IK  MN  IN  xN  N  OQ  VW  RW  OW  X[  O[  \_  ab  \b  Ob  ce  gh  ch  Oh  h  jl  qr  mr  jr  sv  jv  wy  {|  w|  j|  |  A  CF  GI  CI  KM  KP  QT  VW  QW  KW  CW  XZ  X]  C]  _a  cd  _d  eh  jk  ek  _k  Ck  ln  pq  lq  Cq  st  uw  sw  xz  sz  {~  @A  {A  sA  CA  BC  DF  BF  GI  BI  JM  BM  NQ  BQ  RU  BU  CU  WY  W\  ]`  bc  ]c  Wc  Cc  eg  ej  kn  pq  kq  eq  Cq  rs  tv  rv  wy  ry  Cy  {}  @  {@  AD  FG  AG  {G  CG  HI  JL  NO  JO  HO  PS  HS  TW  HW  X[  H[  C[  ]_  ab  ]b  cf  hi  ci  ]i  Ci  km  op  kp  qt  vw  qw  kw  Cw  xz  |}  x}  C}  ~  CC472:c>#%ad2gbjn4QT"WRZ^CQT"WRZOQRQUVXQXY[Q[\_Q_`cQccdedhikdklndnordrrstswxzsz{}s}  B  tB  B  DE  DH  IK  DK  LN  DN  N  PQ  VW  RW  PW  XZ  PZ  [^  P^  _b  Pb  b  cd  ij  ej  cj  km  cm  nq  cq  q  st  yz  uz  sz  {}  s}  ~A  sA  BE  sE  E  FG  LM  HM  FM  NP  FP  QT  FT  T  UV  [\  W\  U\  ]_  U_  `c  ef  `f  Uf  f  hi  no  jo  ho  pr  hr  r  tu  vw  tw  xz  tz  {}  t}  ~@  t@  AD  tD  EH  tH  H  IJ  KL  IL  MO  IO  PR  IR  SU  IU  VY  IY  Y  [\  ]^  [^  _a  [a  bd  [d  eg  [g  hk  [k  lo  [o  o  pq  rs  ps  tv  pv  wy  py  z|  p|  }@  p@  @  AB  CD  AD  EG  AG  HJ  AJ  KM  AM  NQ  ST  NT  AT  T  VW  XY  VY  Z\  V\  ]_  V_  `b  Vb  b  de  jk  fk  dk  ln  dn  or  dr  sv  dv  v  wx  }~  y~  w~  A  wA  BE  wE  E  GH  MN  IN  GN  OQ  GQ  RU  GU  VY  GY  Y  Z[  `a  \a  Za  bd  Zd  eh  Zh  h  ij  op  kp  ip  qs  is  tw  yz  tz  iz  z  |}  BC  ~C  |C  DF  |F  F  HJ  HM  NP  HP  QT  HT  UX  HX  Y[  ]^  Y^  H^  ^  _a  _d  eg  _g  hk  _k  ln  pq  lq  _q  q  su  sx  y{  s{  |  s  @C  sC  DF  HI  DI  sI  I  JL  JO  PR  JR  SV  JV  WY  [\  W\  J\  \  ]_  de  `e  ]e  hj  hn  hn  oq  rt  ot  vw  xz  vz  oz  |~  o~  h  g  A	C	  A	G	  A	G	  H	J	  K	L	  M	O	  K	O	  H	O	  Q	S	  H	S	  A	T	  gT	  ]U	  V	X	  Z	[	  V	[	  ][	  \	]	  ]]	  ]	  _	a	  f	g	  b	g	  _	g	  h	k	  _	k	  l	o	  _	o	  p	r	  t	u	  p	u	  _	u	  u	  w	y	  ~		  z		  w		  @
C
  w	C
  D
G
  I
J
  D
J
  w	J
  K
M
  O
P
  K
P
  w	P
  P
  Q
S
  X
Y
  T
Y
  Q
Y
  Z
]
  Q
]
  ^
`
  b
c
  ^
c
  Q
c
  c
  d
f
  d
i
  j
l
  d
l
  o
q
  o
u
  o
u
  v
x
  y
{
  v
{
  }
~
  
A  }
A  v
A  CE  v
E  o
F  n
F  HJ  HN  HN  OQ  RS  TV  RV  OV  XZ  OZ  H[  n
[  d
\  ]_  ab  ]b  d
b  cd  d
d  d  fg  hj  fj  km  fm  np  fp  qt  ft  ux  fx  y{  }~  y~  f~  ~  @A  BD  @D  EG  @G  HJ  @J  KN  @N  OR  TU  OU  @U  VX  Z[  V[  @[  [  \]  ^`  \`  ac  \c  df  \f  gj  \j  km  op  kp  \p  p  qs  xy  ty  qy  |~  |B  |B  CE  FH  CH  JK  LN  JN  CN  PR  CR  |S  {S  UW  U[  U[  \^  _`  ac  _c  \c  eg  \g  Uh  {h  qi  jl  no  jo  qo  pq  qq  q  su  z{  v{  s{  |  s  @C  sC  DF  HI  DI  sI  I  KM  RS  NS  KS  TW  KW  X[  ]^  X^  K^  _a  cd  _d  Kd  d  eg  lm  hm  em  nq  eq  rt  vw  rw  ew  w  xz  x}  ~@  x@  AD  xD  EG  IJ  EJ  xJ  J  KM  KP  QS  KS  TW  KW  XZ  \]  X]  K]  ]  _a  fg  bg  _g  jl  jp  jp  qs  tv  qv  xz  qz  |~  q~  j  i  AC  AG  AG  HI  JL  HL  MN  OQ  MQ  HQ  SU  HU  AV  iV  _W  XZ  \]  X]  _]  ^_  __  _  `b  gh  ch  `h  il  `l  mp  `p  qs  uv  qv  `v  v  xz  @  {@  x@  AD  xD  EH  JK  EK  xK  LN  PQ  LQ  xQ  Q  RT  YZ  UZ  RZ  [^  R^  _a  cd  _d  Rd  d  fh  fk  ln  fn  qs  qw  qw  xz  {}  x}  A  xA  CE  xE  qF  pF  HJ  HN  HN  OP  QS  OS  TU  VX  TX  OX  Z\  O\  H]  p]  f^  _a  cd  _d  fd  ef  ff  f  gh  ik  gk  ln  gn  oq  gq  ru  gu  vy  gy  z|  ~  z  g    AB  CE  AE  FH  AH  IK  AK  LO  AO  PS  UV  PV  AV  WY  [\  W\  A\  \  ]^  _a  ]a  bd  ]d  eg  ]g  hk  ]k  ln  pq  lq  ]q  q  su  z{  v{  s{  ~@  ~D  ~D  EG  HJ  EJ  LN  EN  PR  ER  ~S  }S  UW  U[  U[  \]  ^`  \`  ab  ce  ae  \e  gi  \i  Uj  }j  sk  ln  pq  lq  sq  rs  ss  s  tv  {|  w|  t|  }@  t@  AD  tD  EG  IJ  EJ  tJ  J  LN  ST  OT  LT  UX  LX  Y\  ^_  Y_  L_  `b  de  `e  Le  e  fh  mn  in  fn  or  fr  su  wx  sx  fx  x  y{  y~  A  yA  BD  BH  BH  IJ  KM  IM  NO  PR  NR  IR  BS  yS  TV  XY  TY  yY  Z[  y[  [  ]_  ]b  ce  ]e  fi  ]i  jm  ]m  nq  ]q  rt  vw  rw  ]w  w  xz  x}  ~@  x@  AC  AG  AG  HI  JL  HL  MN  OQ  MQ  HQ  AR  xR  SU  WX  SX  xX  YZ  xZ  Z  \^  \a  bd  \d  eh  \h  il  \l  mp  \p  qs  uv  qv  \v  v  wy  w|  }  w  @B  @F  @F  GH  IK  GK  LM  NP  LP  GP  @Q  wQ  RT  VW  RW  wW  XY  wY  Y  []  bc  ^c  [c  dg  [g  hk  [k  lo  [o  pr  tu  pu  [u  u  vx  }~  y~  v~  A  E  E  FG  HJ  FJ  KL  MO  KO  FO  P  vP  QS  UV  QV  vV  WX  vX  X  Z\  ab  ]b  Zb  cf  Zf  gj  Zj  kn  Zn  oq  st  ot  Zt  t  uw  |}  x}  u}  ~@  ~D  ~D  EF  GI  EI  JK  LN  JN  EN  ~O  uO  PR  TU  PU  uU  VW  uW  W  Z\  ^a  bd  ^d  fh  fk  lo  qr  lr  fr  ^r  su  sx  ^x  z|  ~  z  @C  EF  @F  zF  ^F  GI  KL  GL  ^L  NO  PR  NR  SU  NU  VY  [\  V\  N\  ^\  ]^  _a  ]a  bd  ]d  eh  ]h  il  ]l  mp  ]p  ^p  rt  rw  x{  }~  x~  r~  ^~  @B  @E  FI  KL  FL  @L  ^L  MN  OQ  MQ  RT  MT  ^T  VX  Z[  V[  \_  ab  \b  Vb  ^b  cd  eg  ij  ej  cj  kn  cn  or  cr  sv  cv  ^v  xz  |}  x}  ~A  CD  ~D  xD  ^D  FH  JK  FK  LO  QR  LR  FR  ^R  SU  WX  SX  ^X  ZY  ZCs3s3s**r   r   r8  r   r;   i  )argsr9   rB  rb   rC  r:   )rn   r9  rO   rA   r;  rL   r:  rM   rN   rP   rQ   rR   rS   rT   rU   rf   r  r   rC   rD   rG   rJ   rV   appendrE   rH   rK   rF   rI   )r   rR  r[  rg  r?  y0yy0rE  s           r   CalcTrajectoryMainGUI.CalcTrajectory  s   			#	+ ''1133 DE  FJ  FU  FU  W[  Wf  Wf  Vf  Cg  h  Cg|~"((T\\"_c1"%%74<<?C:OPRPUPU:UVWY]YeYefhYhjmXmnpnsnsXstuvw  CgB  hB((DLL,RUU21T\\#5Ebee5KAdll[^N^_a_d_dNdefghiB C  --/14=RadggdggbjQUQXQXY\Q\]a]c]c=deq1v&q1vax(q1vax(q1v&q1vax(q1vax(""//1Q6=RadggdggdggVXjY]Y`Y`acYcdhdkdklodoptpwpwx{p{  }A  }C  }C  >D  Eq1v&q1v&q1vax(q1v&q1v&q1vax(""//1Q6=RadggdggdggVZV]V]^`V`aeahahikaklplslstvlvw{w}w}=~q1v&q1v&q1v&q1v&q1v&q1v&1  hs   B	Vc           	      Z   [        5       nUR                  SSSSSSS9  UR                  / SQ5      nUR                  S5        UR	                  S5        [
        R                  " U R                  S   [        R                  -  S-
  S-  S-
  S-  U R                  S   S	S
S9  [
        R                  " U R                  S   [        R                  -  S-
  S-  S-
  S-  U R                  S   S	SS9  [
        R                  " U R                  S   [        R                  -  S-
  S-  S-
  S-  U R                  S   S	SS9  [
        R                  " SS/5        [
        R                   " S5        [
        R"                  " S5        [
        R$                  " 5         [
        R&                  " 5         g )Nr   r9   r   r   r   r   r   r8  .r   )r   r   rV   iLzAngular momentum [radians]zAngular coordinate [degrees])r   r   r   r   r   ppr  rP   rA   r:  rS   rQ   rT   rR   rU   xlimylabelxlabelr   show)r   r   r   s      r   PlotPhaseSpaceMainGUI.PlotPhaseSpace  sC   h1A1QqQ\\)$

g
$''!*RUU"1$a')3.twwqz#D
$''!*RUU"1$a')3.twwqz#D
$''!*RUU"1$a')3.twwqz#D
c

		./
		01

	r   c                    US:X  a  U R                   R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R
                  R                  S5        U R                  R                  S5        GOQUS:X  a  U R                   R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R
                  R                  S5        U R                  R                  S5        OUS:X  a  U R                   R                  S5        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5        U R
                  R                  S5        U R                  R                  S5        U R                  R                  S5        / U l	        U R                  U R                  5        U R                  5         g )Nr   Fr9   Tr   )r   r   r   r   r   r   r   r~   r   rP   r)   r*   r   r   rC   s     r   r   MainGUI.ComboPresets_changed  s   6MM$$U+MM$$U+))%0MM$$U+MM$$U+))%0!VMM$$T*MM$$T*))$/MM$$U+MM$$U+))%0!VMM$$T*MM$$T*))$/MM$$T*MM$$T*))$/Q

+$$&r   c                     U R                   R                  5       (       aW  U R                  R                  S5        U R	                  5         U R                   R                  S5        U R                  5         g g )Nr   F)rk   r9  r~   r   rm  ro   rv  r\   s    r   r   MainGUI.Run*  sV    >>##%%KK  #!NN%%e,!	 &r   c                    [        U5      U R                  S'   [        R                  " SU R                  S   U R                  S   -   U R                  S   5      U l        U R
                  R                  S[        U R                  5      S-
  5        U R
                  R                  S5        / U l	        U R                  U R                  5        U R                  5         g )Nr   r9   )r  r@   rA   rB   rC   r~   r   r   r   rP   r)   r*   r   ry  s     r   r   MainGUI.X1_changed1  s    Fq	1TVVAYtvvay0;Qs466{1}-Q

+$$&r   c                    US;  a  [        U5      U R                  S'   [        R                  " SU R                  S   U R                  S   -   U R                  S   5      U l        U R
                  R                  S[        U R                  5      S-
  5        U R
                  R                  S5        / U l	        U R                  U R                  5        U R                  5         g )N) -rp  r9   r   )floatr@   rA   rB   rC   r~   r   r   r   rP   r)   r*   r   ry  s     r   r   MainGUI.dX_changed:  s    L aDFF1IYYq466!9!4TVVAY?DFKK  3tvv;q=1KK  #

+$$&r   c                 D    [        U5      U l        U R                  5         g rN  )r  rY   r   ry  s     r   r   MainGUI.Trail_changedD  s    V
$$&r   c                 R    U R                   S-   S-  U l         U R                  5         g Nr9   r   )rZ   r   r\   s    r   r   MainGUI.UpdateShowPendulumH  s&    !..114$$&r   c                 R    U R                   S-   S-  U l         U R                  5         g r  )r[   r   r\   s    r   r   MainGUI.UpdateShowChaoticMotionL  s&    "&"8"8!";Q!>$$&r   c                 B   U R                   R                  5       U l        U R                  S:  aE  [        U R                  5      S:X  a  U R                  5         U R                  U R                  5        OU R                  U R                  5        U R                  5         g )Nr   )r~   valuer*   r   rP   rm  r)   r   r\   s    r   r   MainGUI.Index_changedP  sm    [[&&(
::>477|q ##%##DJJ/##DJJ/$$&r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rD   rP   r)   r*   r   r\   s    r   r   MainGUI.L1_changedZ  ;    --%%'

+$$&r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rE   rP   r)   r*   r   r\   s    r   r   MainGUI.L2_changeda  r  r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rF   rP   r)   r*   r   r\   s    r   r   MainGUI.L3_changedg  r  r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rG   rP   r)   r*   r   r\   s    r   r   MainGUI.M1_changedm  r  r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rH   rP   r)   r*   r   r\   s    r   r   MainGUI.M2_changeds  r  r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rI   rP   r)   r*   r   r\   s    r   r   MainGUI.M3_changedy  r  r   c                 B    U R                   R                  5       U l        g rN  )r   r  rJ   r\   s    r   r   MainGUI.C1_changed      --%%'r   c                 B    U R                   R                  5       U l        g rN  )r   r  rK   r\   s    r   r   MainGUI.C2_changed  r  r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rL   rP   r)   r*   r   r\   s    r   r   MainGUI.Theta01_changed  =    ))//1

+$$&r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rM   rP   r)   r*   r   r\   s    r   r   MainGUI.Theta02_changed  r  r   c                     U R                   R                  5       U l        / U l        U R	                  U R
                  5        U R                  5         g rN  )r   r  rN   rP   r)   r*   r   r\   s    r   r   MainGUI.Theta03_changed  r  r   c                    UR                  5       [        R                  R                  :X  aw  [	        U R
                  5      S:  a]  U R                  U R                  -   [	        U R                  5      S-
  -  U l        U R                  R                  U R                  5        g g UR                  5       [        R                  R                  :X  aw  [	        U R
                  5      S:  a]  U R                  U R                  -
  [	        U R                  5      S-
  -  U l        U R                  R                  U R                  5        g g UR                  5       [        R                  R                  :X  d,  UR                  5       [        R                  R                  :X  a.  U R                  S:X  a  SU l        g U =R                  S-  sl        g UR                  5       [        R                  R                  :X  a>  U R                  S:  a  U =R                  S-  sl        U R                  S:X  a  SU l        g g UR                  5       [        R                  R                  :X  a+  [	        U R
                  5      S:  a  U R!                  5         g g g )Nr   r9   r:   )keyr{   Key
Key_Periodr   rP   r*   rX   rC   r~   r   	Key_CommaKey_Plus	Key_Equal	Key_MinusKey_Sr5  )r   es     r   keyPressEventMainGUI.keyPressEvent  s   557bff'''477|a"jj$//9CKMJ
$$TZZ0   UUW(((477|a"jj$//9CKMJ
$$TZZ0   eeg(AEEGrvv7G7G,G!#"#1$UUW(((!#1$!#"# $UUW$477|a   %r   );rn   ry   rf   r0   rW   r#   r,   r?   rk   r~   r   r   r   r   r   r   r   r   rX   r   r   r   rx   r@   rs   r   rJ   rK   r   rv   rO   r   rV   r*   rD   rE   rF   rG   rH   rI   rS   rT   rU   r[   rZ   rC   rP   rQ   rR   rL   rM   rN   rY   r  r  r  r  r  r  rN  )r   )$__name__
__module____qualname____firstlineno__r   r   r'   r(   r+   r   r5  r)   rJ  rm  rv  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  __static_attributes__ r   r   r   r      s    '&(#<QFf$&AF	E16F'V'<"''''''''''''((''' r   r   __main__rp  zUsage: %prog [options] files)descriptionusage)8r+  sysnumpyrA   
matplotlibPyQt6.QtGuiPyQt6.QtCorePyQt6.QtWidgets!matplotlib.backends.backend_qtaggr   r   r   NavigationToolbarmatplotlib.figurer   matplotlib.pyplotpyplotrq  matplotlib.animationr/  scipy.integrater   matplotlib.patchesr  matplotlib.linesr   r  argparser   datetimer	   r   warningsfilterwarnings	itertoolsyellowbrick.style.palettesr   r   r   yellowbrick.styler   rcParamsupdater   r   r  r  
parse_argsri  QApplicationargvappformru  exitexecr  r   r   <module>r     s          | $  ( " $ ! #       !  I I )   y9`gw~  OV  W  XS
 k S
 j z3-KLA<<>D
sxx
 C9DIIKHHSXXZ r   