From 35a9fe95cbc4bd9bc5461f7d1ef3582b0da7a3db Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Fri, 15 Aug 2025 11:49:11 +0200 Subject: [PATCH 1/8] corrects tasks in tasks.json --- .vscode/tasks.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 1d8974f..5b079fd 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -32,7 +32,7 @@ { "label": "Run 32bit VP", "type": "shell", - "command": "build/Debug/src/riscv-vp --isa 'rv32gc|msu_vp' -f fw/hello-world/hello.elf -p pctrace=contrib/TGC_C_cycles.json", + "command": "build/Debug/src/riscv-vp --isa 'rv32gc|msu_vp' -f fw/hello-world/hello.elf", "problemMatcher": [], "presentation": { "echo": true, @@ -46,7 +46,7 @@ { "label": "Run 64bit VP", "type": "shell", - "command": "build/Debug/src/riscv-vp --isa 'rv64gc|msu_vp' -f fw/hello-world/hello.elf -p pctrace=contrib/TGC_C_cycles.json", + "command": "build/Debug/src/riscv-vp --isa 'rv64gc|msu_vp' -f fw/hello-world/hello.elf", "problemMatcher": [], "presentation": { "echo": true, From 0eba95df19618bfaa19ab5024af051bb1b6a8d8f Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Sat, 13 Sep 2025 15:41:54 +0200 Subject: [PATCH 2/8] updates submodules --- .gitignore | 1 + dbt-rise-core | 2 +- dbt-rise-riscv | 2 +- scc | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 371559b..8c518be 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ CMakeSettings.json /.envrc.* .clangd /install +.gdb_history diff --git a/dbt-rise-core b/dbt-rise-core index b0fd676..e60892d 160000 --- a/dbt-rise-core +++ b/dbt-rise-core @@ -1 +1 @@ -Subproject commit b0fd6762be2a39e4b05667f71778be4fb1bd6019 +Subproject commit e60892d2f9645231d24b02c864b6583ffda0c327 diff --git a/dbt-rise-riscv b/dbt-rise-riscv index c99d195..1260c9d 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit c99d195faa93daaa9f00f52ee13408c76443e302 +Subproject commit 1260c9db5ec97242d07b20254654a057db3e7288 diff --git a/scc b/scc index badc373..214d4fc 160000 --- a/scc +++ b/scc @@ -1 +1 @@ -Subproject commit badc373aae58a9745dac803862edb522e6674321 +Subproject commit 214d4fc7b0faad1918ef42ecda34b046569c6642 From 8581509357386c09f0ec1b00186a7caea24007c1 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Sun, 14 Sep 2025 14:57:26 +0200 Subject: [PATCH 3/8] adds standalone FW Debug launch --- .vscode/launch.json | 27 +++++++++++++++++++++++++-- dbt-rise-riscv | 2 +- fw/hello-world/hello.elf | Bin 66276 -> 66392 bytes 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 488d4f1..2254b56 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,6 +1,29 @@ { "version": "0.2.0", "configurations": [ + { + "type": "gdbtarget", + "request": "launch", + "name": "Debug hello world 32bit", + "program": "fw/hello-world/hello.elf", + "imageAndSymbols": { + "symbolFileName": "fw/hello-world/hello.elf" + }, + "target": { + "server": "${workspaceFolder}/build/RelWithDebInfo/src/riscv-vp", + "serverParameters": ["--isa", "rv32gc|msu_vp", "-v", "INFO", "--disass", "-f", "fw/hello-world/hello.elf", "-g", "10000"], + "watchServerProcess": true, + "port": "10000" + }, + "cwd": "${workspaceRoot}", + "gdb": "riscv64-unknown-elf-gdb", + "openGdbConsole": true, + "presentation": { + "hidden": false, + "group": "FW Debug", + "order": 2 + },"initCommands": ["b main"] + }, { "type": "gdbtarget", "request": "attach", @@ -61,11 +84,11 @@ "compounds": [ { "name": "FW-Debug 32bit", - "configurations": ["32bit VP with gdbserver", "Attach to VP"] + "configurations": ["32bit VP with gdbserver", "Attach GDB to VP"] }, { "name": "FW-Debug 64bit", - "configurations": ["64bit VP with gdbserver", "Attach to VP"] + "configurations": ["64bit VP with gdbserver", "Attach GDB to VP"] } ] } \ No newline at end of file diff --git a/dbt-rise-riscv b/dbt-rise-riscv index 1260c9d..45dc8bd 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit 1260c9db5ec97242d07b20254654a057db3e7288 +Subproject commit 45dc8bd3fd093207b6d11c97c0de2fb85a2fe627 diff --git a/fw/hello-world/hello.elf b/fw/hello-world/hello.elf index 416242266bdf2f932188900192ae481d1a8ac09a..2dcce5411fe1f2283e1919d4b52270e607e2821c 100755 GIT binary patch delta 20172 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
    9d$5x!b`K*1 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 delta 19646 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 From 1ab0672b75aa1cfe4f30fc2a8f377c8d7b3d1162 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Mon, 15 Sep 2025 12:49:29 +0200 Subject: [PATCH 4/8] updates dbt-rise-core --- .gitignore | 1 + .vscode/launch.json | 18 ++++++++++++++++++ CMakeLists.txt | 6 +++++- dbt-rise-riscv | 2 +- src/sc_main.cpp | 2 +- 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 8c518be..14352b6 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ CMakeSettings.json .clangd /install .gdb_history +/dbt-rise-custom diff --git a/.vscode/launch.json b/.vscode/launch.json index 2254b56..caf1d61 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -79,6 +79,24 @@ "program": "${workspaceFolder}/build/Debug/src/riscv-vp", "arguments": "-v DEBUG --isa 'tgc5c|mu_p' --backend asmjit -f fw/hello-world/hello.elf", "openGdbConsole": true + }, + { + "type": "gdb", + "request": "launch", + "name": "RISCV-VP report ISA", + "cwd": "${workspaceRoot}", + "program": "${workspaceFolder}/build/Debug/src/riscv-vp", + "arguments": "--isa ?", + "openGdbConsole": true + }, + { + "type": "gdb", + "request": "launch", + "name": "RISCV-SIM report ISA", + "cwd": "${workspaceRoot}", + "program": "${workspaceFolder}/build/Debug/dbt-rise-riscv/riscv-sim", + "arguments": "--isa ?", + "openGdbConsole": true } ], "compounds": [ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7418014..77bd66b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ project(riscv-vp LANGUAGES C CXX VERSION 1.0.0) option(LIBS_ONLY "Just build the shared libraries needed to build the VP" OFF) option(ENABLE_COVERAGE "Enable code coverage" OFF) option(ENABLE_SANITIZER "Enable address sanitizer" OFF) +option(ENABLE_CLANGFORMAT "Enable code formatting using clang-format." OFF) option(ENABLE_CLANGTIDY "Enable static analysis with clang-tidy." OFF) option(ENABLE_FW_BUILD "Enable build of firmware of MIRES Firmware repo." OFF) option(ENABLE_GPROF "Enable gprof profiling" OFF) @@ -77,7 +78,10 @@ if(NOT LIBS_ONLY) add_subdirectory(src) endif() -find_package(ClangFormat) +if(ENABLE_CLANGFORMAT) + set(CLANG_FORMAT_EXCLUDE_PATTERNS "/scc/" "/build/" "/.direnv/") + find_package(ClangFormat) +endif() if(FW_BUILD) include(FetchContent) diff --git a/dbt-rise-riscv b/dbt-rise-riscv index 45dc8bd..054ef54 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit 45dc8bd3fd093207b6d11c97c0de2fb85a2fe627 +Subproject commit 054ef548d79856e482b62902c0aad262122f5280 diff --git a/src/sc_main.cpp b/src/sc_main.cpp index 21c2276..e5094bb 100644 --- a/src/sc_main.cpp +++ b/src/sc_main.cpp @@ -143,7 +143,7 @@ int sc_main(int argc, char* argv[]) { sc_core::sc_start(scc::parse_from_string(parser.get("max_time"))); } else sc_core::sc_start(); - if(!sc_core::sc_end_of_simulation_invoked()) + if(sc_core::sc_start_of_simulation_invoked() && !sc_core::sc_end_of_simulation_invoked()) sc_core::sc_stop(); } catch(sc_core::sc_report& rep) { sc_core::sc_report_handler::get_handler()(rep, sc_core::SC_DISPLAY | sc_core::SC_STOP); From 51d9b9b97bdac2d4d0b60bd9f2bec39a008e63ae Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Mon, 15 Sep 2025 12:52:11 +0200 Subject: [PATCH 5/8] updates submodules --- dbt-rise-riscv | 2 +- scc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dbt-rise-riscv b/dbt-rise-riscv index 054ef54..de00067 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit 054ef548d79856e482b62902c0aad262122f5280 +Subproject commit de0006785ab1b8ef562c143803f3c152ab493a60 diff --git a/scc b/scc index 214d4fc..323dcb3 160000 --- a/scc +++ b/scc @@ -1 +1 @@ -Subproject commit 214d4fc7b0faad1918ef42ecda34b046569c6642 +Subproject commit 323dcb3bf3cb3a1bb4668d0f0b6ee4ffb4455c85 From 68d6aab4c53891b16c26af4f1bb75b0f0acaf6d5 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Mon, 15 Sep 2025 20:54:39 +0200 Subject: [PATCH 6/8] updates dbt-rise-riscv --- .vscode/launch.json | 19 ++++++++++++++----- dbt-rise-riscv | 2 +- fw/hello-world/Makefile | 4 ++-- fw/hello-world/hello.elf | Bin 66392 -> 63440 bytes 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index caf1d61..14723ae 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -11,7 +11,7 @@ }, "target": { "server": "${workspaceFolder}/build/RelWithDebInfo/src/riscv-vp", - "serverParameters": ["--isa", "rv32gc|msu_vp", "-v", "INFO", "--disass", "-f", "fw/hello-world/hello.elf", "-g", "10000"], + "serverParameters": ["--isa", "rv32gc_msu", "-v", "INFO", "-f", "fw/hello-world/hello.elf", "-g", "10000"], "watchServerProcess": true, "port": "10000" }, @@ -50,7 +50,16 @@ "name": "32bit VP with gdbserver", "cwd": "${workspaceRoot}", "program": "${workspaceFolder}/build/Debug/src/riscv-vp", - "arguments": "--isa 'rv32gc|msu_vp' -v INFO --disass -f fw/hello-world/hello.elf -g 10000", + "arguments": "--isa 'rv32gc_msu' -v INFO --disass -f fw/hello-world/hello.elf -g 10000", + "openGdbConsole": true + }, + { + "type": "gdb", + "request": "launch", + "name": "32bit VP", + "cwd": "${workspaceRoot}", + "program": "${workspaceFolder}/build/Debug/src/riscv-vp", + "arguments": "--isa 'rv32gc_msu' -v INFO --disass -f fw/hello-world/hello.elf", "openGdbConsole": true }, { @@ -59,7 +68,7 @@ "name": "64bit VP with gdbserver", "cwd": "${workspaceRoot}", "program": "${workspaceFolder}/build/Debug/src/riscv-vp", - "arguments": "--isa 'rv64gc|msu_vp' -v INFO --disass -f fw/hello-world/hello.elf -g 10000", + "arguments": "--isa 'rv64gc_msu' -v INFO --disass -f fw/hello-world/hello.elf -g 10000", "openGdbConsole": true }, { @@ -68,7 +77,7 @@ "name": "TGC5 VP", "cwd": "${workspaceRoot}", "program": "${workspaceFolder}/build/Debug/src/riscv-vp", - "arguments": "-v DEBUG -t 3 --isa 'tgc5c|mu_p' -f fw/hello-world/hello.elf", + "arguments": "-v DEBUG -t 3 --isa 'tgc5c_mu' -f fw/hello-world/hello.elf", "openGdbConsole": true }, { @@ -77,7 +86,7 @@ "name": "TGC5 VP (asmjit)", "cwd": "${workspaceRoot}", "program": "${workspaceFolder}/build/Debug/src/riscv-vp", - "arguments": "-v DEBUG --isa 'tgc5c|mu_p' --backend asmjit -f fw/hello-world/hello.elf", + "arguments": "-v DEBUG --isa 'tgc5c_mu' --backend asmjit -f fw/hello-world/hello.elf", "openGdbConsole": true }, { diff --git a/dbt-rise-riscv b/dbt-rise-riscv index de00067..29aac88 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit de0006785ab1b8ef562c143803f3c152ab493a60 +Subproject commit 29aac88dbd62e59814430fec38a0397549b978a6 diff --git a/fw/hello-world/Makefile b/fw/hello-world/Makefile index f980993..47ca309 100644 --- a/fw/hello-world/Makefile +++ b/fw/hello-world/Makefile @@ -2,10 +2,10 @@ TARGET = hello C_SRCS = $(wildcard *.c) HEADERS = $(wildcard *.h) -CFLAGS += -O0 -g +CFLAGS += -Og -g BOARD=riscv_vp -LINK_TARGET=flash +LINK_TARGET=rom RISCV_ARCH:=rv32imc RISCV_ABI:=ilp32 #RISCV_ARCH:=rv64imc diff --git a/fw/hello-world/hello.elf b/fw/hello-world/hello.elf index 2dcce5411fe1f2283e1919d4b52270e607e2821c..6ecfd97b9b84fa5a965096fd689277a4c427220c 100755 GIT binary patch literal 63440 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 O?T-FQyDE@^?fwO|*E@g! literal 66392 zcmeFa3w%}8l|R1EJ@?*oZ{Eqx6M0+`2#5lKfG8k@5E5P@<*h}p;U~ro-0zPX0Gyl&J zJ?HGT_F8MNz1G@m@AJ5u4O3>88-^kDpGW*f*id*Bkb6%G36BzC;S+;Jj>s0K5G!9S z)*M1iwToU{$t(HOBr=S1_{9PtcvwUM&-(o=_w=Xuy49p52;m2|q+3lqf;yb}J7a+} z7C2*pGZr{wfio63V}UakIAeh`7C2*pGZr{wfio6}x4;UqS6nn}&fHquT<C}*G$A>Wj-Z9ZH<8~yZYu_fOp(tQQH=Zo#W!|y)b z8A2WE`$t#*L==QscX;_vI&IFo-%ESB*L!J2XBksAO}V6SMcSLbHarlx^Vu;2ML6WE zzJEp9%ek93=3VW7Dq&yBGa1iiztHQ&zAxp!T=>e6{lgB7JapdcV}CQ@ji>fL^VAFb zUV7%0=MKE^`ipP8^oN(1L6B}1Ire%$~ ztt5ZaLz7BNUnyNO`Gd)xdAH5Wpa0PO(gm+9ShDbgh5o5KrWQ_nWLo+31Ji3}d^E$q zc*o+x%O1I`{PF{r*F-*wG>UMMvD-+`e@Ubj6yDou4%*kbed%L6+b2(GX(;nmZrCh=8{TMoJ`F`ukQ){IuD2-)GD|qlo zXV01`>SsSw-m@p;2ud{m0 zmOSLYuPxdp@SJ>F7LFyLq>&V@%iN8FFTcA~GH9o8`q z@hrDktfPl$g~Pu)a(oM@CbW#4H^u3_NIQE<^O!xYq$JPdE%u20*Z0z{n5)W9qr7|0 zriuwI+COg8Q~LHZBLY^?V}=%SM%bAVaf(s=)r|-hi+>rEwpYh+d=^B_b6sn?kJTkF z)x5Y-d@`m0S?1a?1q1Fq{`{CBtr!u<5AQg_k#T&&jhkk+if-)QYA$283R!%XIxN$L5|h`@K3V&s)gGBo_?kq>=styWq*))0!u9bq~{D=BWh z%CBR5X4V2K$Kike^%wm(${mWZS}#`naJ(%sA* zOHnYu&ifb<(cfAgSg|v7?AXMAtcYeF6TXSp@79=aOU&poKIE}|osU{#Z7e?V5@J+dt&c8^0ZhJTF|bc@|l~Jly;Y0_}@!IEmpYs!b>nS=#2Kg zE$^k3_;(&Vd9tnb$lAtR7ZxEhid3%L+Szu@@@#+h&ZUjFT1Absi!j@GJAF#O)*L`@ zb%reAy}^2HXAagaA?wJ0-SG?R`Y#oS-#BvIz*`NiMOQzaSvzP8Fdk^LGnw*#X6@kS zlpnU<<5Tl}`{d9u>-{Yi4|iU63rAK@YgOXgC;!WqmT$V5)y)G+mLW{6nf@Cqi9i01 z($t!6ZOoc(?bZGR`TNz{rQqC$j~5Kt$MwhwjzI99xZvzPtv~%&j=Kw;)eKg(&syT~ zmN8i(?dmb6y~e@n71#$VqS?p9Po}W0Wg>NqUGJ2gI9z}1Q>@@lr0;IQ%H^Ti`Sz+u zMY{BQE=|P#|wrbCxy|w{Qa=QTb)}DK5G~h= zT0#Y&YqR!s`d|UJ^uTD<0$XG0$-i>#qqU4({b?@Wl)MXvw8CRq#}GC9>?qKyCHH=o zu}B**;-r;Mz)HA_r{Pp85W#jH6FyUpen=+=X0n^|k|d?|O>5$y{+r?w#2f)!W{F{npa`rM#!RXyB06AGYc?*u&UW#@0^` zmmNFaW^Mf|?DnaaK|b6!ojYV(o3HGzn<|Wo2g-B!oB%5W!aZDv|K*ZLcA6EIh|jfXfl>F#;VH*3F3SE2_>*Gm&63Ap&=A^4t@4j{CL`mN$vh+NFYTi2U&g+GLP;v?JY087-pM>NyKr9iCEG5kh9^`m zEqs0YA(cQlH~8dh_4XGFtba2wAgz(dEYqLpuivmC>yq zJht&Oi0}VdzyI0 zd1AyRl1^)4K46Jxc2MNxA+Cb&+(`|hbKm!y6%U`F6{5+57J@2P2XbT9KpjhmC%xZ!HpjN(O$6DEaV97QKD~ywaY)ylNeH zdGSsF<1dDn(o5g(d`7IT*~b8p(ddHZsoTl`$XxnAV! zOamHt_=Fl`_{8=c_KE#_d>dLnv1y9R5d&|(dIZ-poKq{iNGv$_;p1IpLV}z#rEH8U z#N3JR=E%D$<`oN(5BXaW1-ATKM~{#^8!<${OAXWrCH>O;)ds2G-zQU)* z3=rW*akRB=9Ut;;9pC51>3jXp1h=+r-8$Zw7R|Zd!&*`)ihZDPYWrL-pB~*-=9$K4 zU+pEn;CAoko$oxVOP@S3DgDtwBAmaE5<;!dqK$py^KLABO11Iq`1H5<{OLCN1nSz% zwwwXtzMbupH}Cu-MwJjluDkOH;w(@Q-i_Ht1P)C;G4L<0d&@s=E; zV8AZ|=J#52edWd3Z;P+pRB-S2a|;IiI_>)MXwD&l`6~BUHy7M@FxO`t`o%LlZ+zC6 zvU%g$t7pA5=fwptT>2dETnk^B{_^F|47uTl*ZXE{86d=_=k}I_f=5p#cnfcjUKW&V zpxfqoF8N^ElIgEZFP-tw3_fL#ULQp4l%+*m#u(S;U7h*b6NgF`mt30@%^qYH+&#ef z@ZgsFw&oV+oMUYHL7DjE=Ij5wdFP=L_Umxp)t?-0J$n3WPar3X-#@YCzJ0kEF@fe= zj3aZ9H{N+-7|y?XV(rxnUTAxLia`yj@1@VR-Tt)jAE35vpMJVw$kvhHeB}BcZw$Tu zp%LAb(6`Nce?zq8)BKygZ3|yDp1$Q#??&<48$)@cMcWO%_HLRHIylV;-Tu75T4=+F zjcu=eVnl_NFS*QPg(=|rcjL)h#(?Xx8{7Ojd)sox38UhXyV`b~BVN1t?D9}cFA<$| zpeR`0F=ea~oqk}ziELkawD~~cq-ZGRFDF9_gGSpS%P3y^yit7eS);>x$LvTsVupy@ zHrQOXW8@tj{v0#fc*wYGN86l$QM~3kqvP1KMreW8C|cv%`AUEDjc$ z#pbh~33rALrWn(AMw^a_CznoWn^e`d&@$RmkDi>+*0K7S(b3syJY{v9JZgNjv+WJ9 z(P5r6AHS{mmOq=JgQn53^^nz6c*_y=t$55|MBDFDjpB|P(YEsrv3^JK(xqbL&WnD<57p*2RK723bb=s1#N+~&b=a<8uWg9Utvr0fRHu+-qLaVe$lb;sCfF8j?Dd{E#c+8 zh1Yl7u&3nlts{OiZNQ$^Q0qeDzso~DpXczww~zlmrz7X6c;^Wz@2sHMRMwX8{)X#k z{9DJSvQ5)lX1w#WA=eXg(~Kv7*0Hq8c;J^=`|?|cp4;Z1f3mrv&1yNBbxU#PQBl0` zPht{Ee-&;1m-pV?di~8~w?6-~OIwU{_q4WcTWDNeAzNH{5G@wx{1q)y+V(#gWo`cV zHv}uHJB+eT<-Uq39j~_%lU#Ah&p3t;h_+S!xlg|xTH_xO?H9-ht=bkiEc~y()PfQ1 zIhb)%c{Jf*MoW1#@nA;C|KY^w+`WO&vDL!(C7wWw?d8$HLBYASAU3Sj-`)? z_%VMT)_xrK7nVnFcqUa8#YbJdX(i&<^T2sYcG;#U-<=(h7L|K z#st!kT|Yj_tPt|QIq|=4*|Y7$rs!Ps;F&D&zdb3`^5Mzo;%7a^l$+iO`HLp!-F#vS zBRTrQ(|BHf@bQkFM?~?f&xp%z+PtyNUo@$>_3e`4SC0t1Lr1QCa%ptchn}`EzO=SS zbHvTo7|aN5e&PA{&BgOSM9Zz`?%8QRZHeNR`${%%gqMupR~%md$Ky{{y!M0;<(1K< z6%DnOb>Z5^@W3kkT0n>?^;O{&HR0+t)zRjr+7V}5qm9f~ShRT(!jIL;?4%akPUmdP&3JCgs;k1Q zYnzsZqbsVa$D+PyjSz$Do9pV%7Gl_kCr>_wHxCct;5GL6xm`!xGL&Do;RamSeU2km z*8kSB=cAJ+Gwgo%MY$(EKeqeLx&=5cx9JI&+dQ*ka2rvEnejKEL>L~Ai9fIX=j-z4 z|BOHDZ~P1V5C5$bB0Q-Arf8^bjII*Kg(!N{d=0CLN7jy9IU=%r$4!wmAeUV<${DwTCm$%xz z^aLHL=;c>g{`*N*dTRNuMYaCKm_1wWE9j$c_p7v()|@hxd>ISy2mJgl&h+y_`md*G z#`kVQ)^5V}`#A8rTdc+*quaWe)vp0Gc=AZ_4=9;`!O439C!enZAyH@`@QV%KGE)Q- zgyCCdU+1du_w~Xx1^7%G&tXBh0>;K5`NDiy z@_9YJDdrO!q^iRqDifl7s%b#%FdLu(7r+OE`vcC!HAi^71}NFdv340T=DWx)`%#{Z zvd5-LvCE`Mf($B6+2o%J*_7$CWskJ+J!>)^)HHEVnp_y8$?Or1Bg>avE{A%I_5j1VKgI;d!zLVz`11hAMSa4{c%G>Oo>6Z~kWufw zhr@}X?|+vk#=rF-aDF)m&i9@f1pk)?0YXm=M~@774p$CSh9m>kFCiZW2nR&hS{3La zHKf5onpFFWTO64*I9Q0I)ZTW2C{P286n+$Ce(*yITTBY}24#XR#U2`Vri{f>UM6^y zwo*Su1sn(ED5p;8HQI(bsL5mD%G6@wIs{j?M0ljlPrQReY{jy*2>_;6^dA#p$mUK!5@Z5ne8ASw0x}gZ z^g-JCE`Ec~B-Vt~)MFB}P;ts6Ca3MB7m$-;64(KN9-d5D(Nik>6Z4sy%9aGrq_Y1@ zsm%8^^JO8k8K+*3o&omgnSd+fc(i@Zz?Jc=<9!<9onw6g@XQ@tk#QW<+H_o*f!^!& zm74de6%yE(bGWfvgY_8>C8a=KQ&Ox&0ng4I@gZtYFrt|%W-AgPdB|XmKWOfQM>+1 zTsc0jR#yzj^UOVJKxR5aL*2}%A)(0i5}ZRKFJ`!LJ);LHh93s$Nb@Q=&{)Gk%3A^s zOb%8m7CTru81-N!O$O#c!f7!Bkn^}2*z2X-5?QCp6)|)JZ93vSm|e+}WLi>Q?A#Ce zYVa<{pydoZ>G&LQ=ZqmeTmEDvJi67go z&OKE(ahJm6K{3+Nnz#Z7#ey&agXZ+se6dGs?xk|_bZToB($P>e2lnvF8JOdT zGqGvgiz`Zwk+YS(eEBy1EL<7$V{Ev{z9!=e`+^#01`QXk=${-Wat=hv3mp53@KU3+ zm#khVr^pbw6cdc$r`JFXW88{0D2-8bs?d^;l^9wKscw&z5==gXl&2(=Jkn(}je4xa z81rWFUY>zwKV`~-eP(AM+7j_F!B%>TtskN)zHcx4nZlI{24bi|}qNx$@q8Nm1CE1pq2AJB| z4~4LDR1b+Pq`(2d2cR9bqztxB?I=rIE@py;6Mop;TYcXs^>6oQ>H2 zILM`Z^7Bghq)oB$da0QWm~s-BukSYVtJ=9SMlC|AdfwgR=K)=7x5!MN&0Jz?TCoQ>xigt?%n z9Nw9*7rdh;UVDR9haR9JRzGB?97v5B{k|T?2F-D-)FSgxeWew*R5Om;VOK$8dI1PA8;WHoB+p`*?#*J2bfiPR9 z?-Z58FkD;tAJJXgwMqX)Qa#9|>l4!PWkQGd&RKzep zRfakn2uk1@3E2Z@9dpc0I$rsVjTRz1Gq(KWF{S<%#}F+1d7|@U>*KFHpwqBoMw%&F&rP-t%VqnHE>*LI*Qw@CxQ5a6^iIY(&Lu4=e`V`vXxIndi zHf33!xrB}Ju&w@T>2p6OIx1_?xh$k?NlcrQ8CsP*bZLBF`k;@5PGJW1a$S(wr{{6NDT?zqM$4Z~*P z5%qFGx=ckA^OaOXvi3a-tozjRonz96xt1OAo5^~xR@3TnPLB-$Rrbm-@JW_#VW4>B z#6qRGh@?c7UedJ*Q(!{6yPr-Tj0(j6Q_8Yfuag5;jk+K-?Ympitl_e$X?^{A>bZbrZknJje$7|r$ zVtLz*SLw`~2SvvlSLIKZTpUs~c!^USUtP&Nu_tlh?e(~~LoLf>6 z=IUqP2tq5am{dPlQd)hHlJZPEhiW$-r>xP7gLi;5M<$C38&CPgb@<=Rk>yyGOKhd7 zTXJjp7+ux&>Y>C(q^g#;?p;eg)k^ca0$oEZ=M01x<#q~maVk*aaW0*b5~k-A(rvlF zqgR1bVk1h0uclN8c}i85lw_8Ww_TNn+r{oPHlqC;`^FbVEb7+V()f@&wv&!LMisb09g97v^=Kq6Hm66v}|jkH0iR=Ber7M7IbT%7$_ z4mz-;M7t$7+UP+g&-G#`i_ZrvFtfONxbSXmo|rlzGolRX8hBdx~=4 zb5*_aj$Cb`Xg^p-sVASfxc|-GQQiM?-ch#vyLv}8@j1PNfrVhhO@LY?>02N8XE@x4 zXy|d|as8s^L6(&J85nL!#SvGWN*%rSR5Eo8Ga6K^v!r<9OKP0BI0l)bb4!eW)u2-=Czh1tFJ0n2gL*!0!hoyQQyrFQ8`TqAc6Y1V_q>pxZbnT!)Zsnt zdUg$!DvQWR5K0o){YqbEk-tyLjd8oAT5{TBkg1kGZ)u#v!IJXOc$Ad?CZMF^WwL8B zA{F6el$0H&IJhZp+|6*1EGfNaqNF6U1YGPHu9*c`MIcLxC%&Yt?cy$S=-kp}z^NXv zq@=``RPBXSR`p<_tM^p5uY6Cb>MKxEy`GMeVxLYzr7Z@ktjEaZ_|@rkF|ddl(Bl>z zyJ^UWNuT!?y_A~E(>w9E=!N0GUhrD>E8xFS=g<9wpbNpY&=uAoC?QFiB>E5$5VMyg1pk|QY9Uz74{@s2I&EGQh_@SwMy0R0Rswek1QD=F2l_mLLfzOEqgM^bZy~R&jy5$8zi8U5IaB5ipEGUl z$d7jpDkry8iP~is36(HVtoFR@qQpHC+CzZ76@& z7F||ZTMseO=!oLslcB@KbBA9rZ1iyX3%c`04Q;N!s(!`l`k~czH9g`Q*ESAyRI7|G ztF5p8|DYwb`uA@|R7UIYtJq=7M8y8VY@})J%IZcU8k?$A6$>kXiSekiQ)Jaj_^h_6 zizlUBQTG+7UstL-diXb@vn=mOMiuCGP;RQe(&BdZ(m8(t{g%&0s?zev|m zU0KzoZ?FM$T8$qK4~K(>Ye})Di6@D(T71>;+Q!PJrnRSUA;KRVpPpo8b5rA~DVF1R zqDs%mvg$Rbr#qdpD;p3EHQd|qkMxKYlm_2(}{-AYvba-vu%Hom3>#J9T@{2aq*bucj^+h&^4&XYxvdK2> z7gYbWQctI%%Q$q@u;O7w!$ua3EG`-`vM5eFJJSeTJ(`*7esMFq&Be)=@nDbIucqge zc)EV~lxL;)nVcIro<8pw|LXJ|UIP;#n71f#M$CxT2FQ0JOS%2)TDcTn5aZxvm(Bi#A)6>i6FifC|_=9C>bk&_Z4N%M>%jm5wju5 zH$Iae4ndb>RA)Sma>9!^g~VPXH8>Wy#O(mnvL41+BwhlR^hBb)z7`-d6u!h4K}ARc z-V$FkYBCdNfGSYptHC8p)_nYgZy`umvY8>#$4wEIpPaP+5J>-zS(BN1J?K2!>qPEm zC~5{I>eXM-(pDOe`RmiSXZ#S$11*HU1j zZpr#*uv82N%Sg$BCt-@ks2CT^VpL3HEP1vs6Txj@DJPTww!V^Wgu_-o(Pk6Ye}it) zAq);By2_!M6fb&`E4m08mr(R$U{j)Rbl6H<(JLT&+>M}-KecFo!l4;AAx`UYGaapm zfn_YAm0;^FwLapojV*Pw=I$P&OC8a@c#}yl8>8bzk9I_#brtPADwo2U3zTrhG|CYy z=HpujCXn}_NbYXX_K_QjpuiuL^ZT2hV??8?mGBJ6?ACpJ? zDvzZ76SS0h#IN#**#uszEoU?E3BSdumz`P8dV`oh;?!GambqvsU1gS^0V&c|W+B?^ zZvi4BOX5rXDzgyqmiSd>sRC7?#IG_7Yd(I$uQCe(W|n(!B~=DH!OTKLvqr>ZmiK^9 zV}*&wD#FZ7I|M`$Bl&I|*xwK1RP>$4y1YKO0afBNOMvY6C-~M(NKR%#3aEs%AJx8h zQ5hEfZ$)?nGyHE8MPrEMrNkV`V{-L_S7Lp#gjof)Ndz)K`EgJM4$I1XQc;{pxf`Fk zT<4#MALXV1G}=>lp{~*YQb2^aNklzht5$5VHUmVS3w5F@3FSmQ#l);*RZ9FaWYCX5 z8l~UnfMgx6MtcWP-sL2W_G1kM@HH>MA_Xop8dn0EsGus5if3XX(z^%}@}-1dK|+Df zu>YkNNc%MUP!OfDek3*O(r;@!OyBuUHw@(0>O4PaMvy7=E z(Vj|3D5sK5P$WlAC28QB1+>w=%HhixrTCnwMDblAvgK4lXpc`f_m2)+^60qcQc@J# zB9SAfk~*+V0ISjdro$2#5!X^+qGGv11UQu#6`5nfq%wXM#*9jX72{%=Fqzo#rX~}k zJeP29FseA3=rEQ~v>8Q!(}^)D^IfkN-{eqDiWfi070(I9D3Rh{1fvrF9fz^R70)Tf z7?=4SPz{q^{)<7PVAb5b$JO7WY)s51WvhjDDFqdjxIF*sn8{KTR~iv?(p6H7IGq*kUsL1X+|f=qHNVs%pjf+%KX>i?W8Q~xPf zrv9E*rm+)?)qP?KsEH-x9%v?4sR1>+Byi0sXP1DQUDTo!Tb>Iarw$`6YcDRs$GO8u zPh^FjJY@$%6nUk7VjWsuX+jkcdk(B4+a7;xmC2nVI-*^(QF! z{sUGuwO-#RkS>+<`W_~bA%TGJAc2qsl6?CJWJ(}SnAZ`?GOvWR1d5bXYEVt7_GD@{ zgC^mTjAu}t)dcS*-W=QvU9erf$Yw$0Bm?UU2DyJtU6P(9YH6pMDpcf>3hP{BWm5yd z!K^_xG3xN(*%ut8a_hXrU!omfLdFVNyDaxMNMeG?yYfomOG?)nSOhrz^a?N>ldc7e zHIC!uEW18|xv==0uSRxy20Gn*^Q zY-VBILc**5oTvvRUInNY%&RWcEig-(S53diZXxwWw2=EWpzFYgI)^i3l;U*KtKz&uq{{S4Xn%rku)|?X9v#P7{2hP3l*Z#R_jQwj_|b((WG&4!Y8@HRd%KDkC17U@Vgzp5?8oNuFru;<<75^?9Xld4>Jd+nquD?W2YJ{jyz zQtfF)E^{cU;*#n-jfhFATp%Z~BE+QnBNV)LQdN4{NtJ-tYbR9#0k54@2_$*#q)Na| zsvOP<6d9XTGre(X^=lc-MzLx2W59M=U4S_AS-}Iq98DGB>mc1|zl=$WY1NYVJx*G+ z`u`i~oV02UwbN=qrqw_a`H&3*d_>_3CQ>MeX5u~UKrUMH=H{^c2wGCffD2-kOLIrE zjHYt&-cWe+?3HPqNc=g(SlCosnDun^U0_yG{Jds1>!&E@I$?3KU|vbW^$wxjdxW>P z=9QB)VG_lQWu(wRm-T7l6<}14I$lW82{h{PWsFjMbw0_L zQOX89+piEwOrV}**5N29RQz7apyREunDCB`iRjmn;nIW*%Y#L0G7rk2W{lsz7NDl!f`d}B);y_r2nWA{^Ac6Lni zjFasyOY>rurOboz$x{m!+}M`Mb02PMeY*klIf175$1OD2lf&t-txBGTdPr)hhopvj zNQ&J?@azpD~~4RTKt%4S>6_GGb7B zxv)Bq0zBKRglI>BCRi8%VmE+3_)4bnalTR(32!L0Yf=hII<$M#&DHy{&{$tw05Lu$E{s6B0uf2GVHR3oP6B47-5~07ua0zB;65O7GpU?>JL35UrKo#Q z=<5YAy^6A&W6*9>`e;lxaWywcj(@Pk!w+tn!Ab(y*!0 zF!BsMOg_G!vg{XAcN3*@G5&ERcz=B64xlWKUVmFo8Om8+zl<#vlG!Z#f63D?aLS>* z14r_Hf-=WXfE)o?nt_tQ*L(y68z^4N#4qp;=RQ40eZGi#XjmnydNYj7A_)jHNdwhat=h!!PRKLi6SZEt$s?z z&y|cn+A?N};CI2bI5|ICgp1Haqy3xcv+)l^_T7ylBpbg%j~0(pOR1?+++_t6=hpvAr)0Ez}^de8Q+Cmiw$(PZvGClXRovCB6#M}+g1 zRAO5Ajc*9dkuU=2SACtiC=N&Q*SGHYC`56nYbT<5smg8 zv<~euVKD7tZhvrtG|U9K7&W)wzrn+vO&m-@bNlWM2GyT9f(o14+cy}$hmI4+EAWmD zX9bKBvp-0atHh)v@+3El(v$~4ExgTQGJlwkt}XH|X|55o0^gQG|9OM&ZAh7w@e3*R z;SDL?EDp(Tt(cKS`J4k&)}f{Zzy?+GwG>seO!WQ@YR*Fq+_fl$lH{Cj2E6$g zkf}83gWyTym=eJjbYe*6!yyrV3!u?{0os>l7&1Va;Wz808HUKEwz>V#dTEAp&Y^?N z?fcgo^zb|St6yk8eNM$ z^&(|3i4ZQn-}~W1d)(EDekY(%@DD!f$K=XnYP7S_q;#b-GGI31n{(WINx0^MzfUW; z`r_a=8kqRRPq7rX*QfT(u9vCy+VzW0@Rm2=g_V}388@cyCq1GAWz%Zwsa{~3o|M<#<*T86`cmZ5+e)Sin~(id6R_?Cjn zHYK(&)S^5P^ z*(@b&LdocBXl=3Dd4QO30w=!7IFf3G(O*K)>0ZXkQ5U zk~cShLyz}Ejr473-*W_|43-k)I=7dhHPgN8E&KEDpkVL%NazS4A^vDb`d`tzMCs4h zAdJ1+i{4!his}8(J2m^;eo3;u^d%!b*_$#F5$Va!qse`ERfm7b8oqbo4fG(b0oh zjlVyHAtlbyiGQ1;lf23Q8yzigeY!Z>OGl^Jj!vbcJ+`OQuBCC)rME=-IUwUQ1YT?> zzA$+JFhLHxP)wR#4P++WCbAZgtjyrHDE9$2+K0js+47FFEQgMM6=XSBm6a9HpNXh7 zSBi4!zDWRbcThk@CfV>S3;gZMlm4DsFcPRmq^}p#(kQB#K&_Z=5#alA69F_Mfr>l^ zsMk`8n&UZ(3E!-(uM&{}DSv~y-am(eeT+*zTY(T>29I|WN_|(5XSlHr2|g3B(cW(} zij*LG9ljY*C8+VY8>5LKmXiTn?gd|;d5C9j=)v7OmcT|g7J$NDRjJs*kKg>@_NiRr zQ#U0(b>HGs!I)M9DW2&@b`{$2sT-AaZV_UZr4|B}5in<%9VjGh1#&K*G=xRM4JglJ zIWrupUW0EP=BE%!9F?#iH49kAKk}3LP7q_=oN94Nl2udJB+TgvSD~EUj9K1XDW#3j3+Rx9{u_|l zAO=aJc`MN2ESSQx1Lz_2iSXWu(?sBmhaq7I+gbwVz?*$U_$~l}gubdEybpqMuI4^R zadY;)R&$?2?pw$`$7TwwbGZKtlrvx%&ms_idM8R*wVfsntL-sGL>@5OP{A0wlbbqt$=~FQfDcdXZ834rLu?C83W9CFnX6Yc1nrU6)4aYpi2{_5p;yq)x;& z3@WM+(PkvFMhrDsEv)9Qh;3aEUOu(C3bdZ{Aap2ovjo8?L2Bda=ajewpu*jcbTE`n zcs?YKCF}QHL|Y$pK_thjCX#;CPbr-T=GYo*NLR$Tu85gk5tnsA#5X0s!SdV+8xECu zLg1-$9eRqHgHNvVs6MkxuW3M<;;e({6A$qKYB@)>htNMcM;(U{&QXP75v~Ho@M8Ew z%~ATHqrJAb*Sl(t3jP5>foG4|3&3M9jP>eC%~1(4b5x?9qdansB2QR&C>5pYNgSPlV)TM97nhr4ODE4@_js#-*97 z5Pr?5@N*6rEWMM}Lim?x?`$?GvKPVD!%#3C+<1rqd)#XvF%xWbRwq^-Ug@lhA(PI! z0RqN@;a#j>wAJlJ!{4@MwU>aNsmRIS$ev9duffT47|L%<D8rMv`8d{?4F$VfAff!+w4SwPCS?!O18MfQ`z{1q;NMAUfvo@`bG8KuS#J#xKy zgWXG`Jz))z8Q%iMd{`=xUnCko@&s=HBI!G@c(R{uKIAb;vJoUH_#uyj_<^*p{VyRJ z-siH=tvGu=KN=RcEvM}GH@>K_?dYQ&jc;U6f>s{+O!o_$Y&}@_;jjkcbW(U8#zmUU zfXP@9d>$vycRZ;+^SOKx#$sKh<)j-Ksbgi7%!FldrtObby^a(@Wo!`l=k$^(7+r@Nxo$>vgH zDwDM)swyqrfQ1sxerNS#<7qia7q%6UCNc`8o}rMD=u^gEqnX2uiFvxOY-_x11)qRY z+iX}zCc5@-aih}NA8%pU6L(N( zzrX1QM<7;#SVt)@cGHZOit%CB=x|-w)gH>4DZ_*`vQj}i?V3D1j<6ZxYixI_z)Fwr z47U>lRY}T}RWMyJ0-!gc*qaZE(@#B)CS)IWuYdRKp#mW>)>!Omk|Q@! z$CUDSvQ8-}I#Ob@MmHyask{M?Cc0@PE8aCajo_;krjfV|;zplRHdhC6o*bsOCE34T z^y^oXE4n%fuNHOEQ&DqTuXXbXp0vcX$7cU7^FxB|J;&8?Zqsr2c^ube0Dgws;)fj5 zevH2|p$%g7Z*f~!Z{@{Cqwba(UhY)viJyv16(5|Dk)Vxn{r!6S_I1xLemA>dI__!K z3b0plGG^o?bR}|A0anP)>cG>zCDU!m+p`e%i!l^8t;I=IJ?pyk=-!skZOgAB#Zoyl zF2*Jz)yXwRY`0bR>()($PSmzYqAil+lOly-l@TjU8;4UJ-Z96AHy%jFBhr~+^h|_6 zitBpMK6c{&GhA!;K3+SWP=cS~*u<_rN$MJ=pF`6gqESkbE5!cx`cf?s^`epK%Ifai zfa_djh*)#$4slf>LpG5;Lu!a6(msLzbdr>FmAhDFyB@8tv-Z{Ti?y%U)!bGbuMXkM zSjGL0Ypi(J1ym5nB)2XTO+tbzE8W2A*4AHH%GWj3CqY|$Dq|0JsV?GBbxp>dp10EE zywx8stI}mwQQErV)B-c3yTL;=C)fO$uI00c!#YO=R=2rG4Hx;qk7)L$SC%nI zu7=ObiA$cnwKMv}raa{=rCHy2Kf2kFz3kU>C6_31!D(lZY51;pJq+g^3|sd`M?Pcx zsNTA%P%Xp~u)$Nxgha-gJ8NrqIqO|zi!M> zc1!H;y(HIr$tvzr;+>ePqA#td=u00ZD&&eiBi@&8ys-3G_oZ#BZ@I9jDVDeKoO2Ug6VAs|4c?(Ax+Y9gCQObu zVTv*#9#=^_#P}#~R%T{!EgEYQ<{u9 zaycSV{R=Lj!Fw~eb48+-{{tkFgfYu2(tYOYD&CF>@pep%w_{SQjg%deyV?=ItZ;)I zE{nHgTGzo8JNc(~9UmF8e~uGEu^@*_rVh+36?)k^e+%ymRK5ODcYOT>e8HpYKfq6N_|ruFr})2tr~9g2 z|BNNRetovC*FP7DukTCKN|gSYM0|Y>jHT-JPX^-ammvkKdi~{meErXR>3V*D`3&CX z=s%_Z%&@N4Un|Df*B}8X`T8Ti`1(cpx?X<<7hiu~fv(qIU+MY*D0oCaI9SQoAMLDz zpYaOH`BQps9;E5?HzArp)fW!a_4<8WeEqM7>-rn)_dL3uZFxk&2wku7u{$*C?MT1G zuBH{U=7%TE4UZf)swi%=M7^_V-HQ69VR_=mm^HO^bt6P1(hT7INRzl|-n5IROulG# z(aej*MRTXkF0%LEL=^>39x*1YcC`!-U0%7Q_CmS&AOJ4We<`iiW1JgQLDuzsS^SVrg|#L~RWkS>9B;ygIskWfAuOP(3Lg34I&8P>AK& zWYrdc-gT|E1$31gfl$|Eak}7_oXz;AsH-4ybd>_(-EiF*v1LhDVbrQ;bT@es(n*Wa zP|6VJje;TQ<099yr!XG4Ybv8nD;jDm>!fU2wINc|P<^%BhBU$*8D&LuWwSyrtE{i8 ztBx$k4xmk_ZmMo*XkOVQ95f}w;FnZ3S4FT5XSHa;?xYbJkeZkn;fRPR5e;H_^~$Kw z`@TBJwXV=eO>=#;sdhzu1V7(HUn7wwn3}3aR@T+QbJ#*~+T1xY9a>dc*IX@@M=P5f ztFeV_W9>E7;NwQCYS&d&RBn~nhBc9e}rLRQRK6q&b3mKY^nnm|ji zI23bsfmQl&qgUC9F7!~Ya#dxm@>rKTsjd_xxg+Qw%q};Cg`Fgz_IHJu8yhQ^!Y?b9 zt!ShXWhFNs6_T9$vI2|k_@WVROBtzbXsBE(q8Rg_oKz9PuTYj$H$djn`sS!3u&$=Aa;d1RY;20~_dtzmbJ&P%hcYN)NhL!-byn4* zRaEeIEi3uMq?$OcRSJT%m6cWK2}vVr6GrYdThHH&+S2Ui0IK~q)tGSSqZDT|l ztfpRW0S(&uGclW?f^FB-yWB+tZFzDNQEgdnRjPXH7@g`k&B7NLxQ(@|kk*>9{jQ9l zm8f=NUqs4hM`ll&JR>rB(yWVTO`AMvW@KKZrsym16XrnY|BFW|pUJCTu917vVn<_c zN{sC`l}FK?=v6}zHci;{d_@D0t1w=c)YjEDt-WwrE%uydST_~H+m_KzPjVF77 z)HFFVch20%DEOu}devG{(@+^Ll4mRmbU)`zS{NA_slfzMRxWu3N-cTHn0 zY=wy8PO!GfX&29ml=a*ytqW-v&7T>$Xv(B{kuusJ*{?c+^s6-OxsG1ZYD_9Cixfwq z%0~{lE$5mDlkl1%v7{DhyBpIf+h1~;_E87Enug_cy^=8R;s~cpY)8KaOA9f7?lcv9 zm_+nmvzSDdudJ(H6Sfm6v|=uY%_2>eOPpG{1hYvrN2I)NMP<{7^Bf|CDCV2_UsJ8{ z1Iv^6Gw}~48_6CKwinvGZ{r%iG$mYmol%+;5ObbO@`OwI1Vhu5f(8rx7@DeXG%G)c zoEtxfoX0@ZH?FOD-P$??8vd5e)p=Pr8oi6BOVeGB-XPSaapmy-h<|$DQP7laGOqK` zLMxvvb=n)R$eb-rOH)c_lkPUN&3n7=TmBu^&H#BlC6cM6^p(M(p#tyqPZv|9(Obs3wvUe~(ro@5a=rta)5Rv`=soh>w&G)fH19&r>0*jB zdMm%v$9mxFe0;Zn7tuGMffJRSVan3_a%Qv7pD&9l<*jPC1?qmA=OK)os;aD@;5=5k8c7@)z00OcGqW3w-ksB>DeFd~xA}DYHMLvc_2!^G$>Erzee^D)kmJOLXSzG+ zG@ag_6tWz;*^*54Pt)mLPGjZGbH&NA&UWVn)PAb5be@>OuI0T1x^2>?G5W1>1%~Z@ z=T6GV<3>MzEMxCk=GriRE+UQI5Y45D&l{xCJFB@g-R0NF(&&BlK;!tl>s&-S{JJMx1D-EBj+r;e zulEW>JD-_1NUwJ#{G#oJ?e_F$h;HAz`$F%k=+d}8)%MZbHpbeg#tlsw>(p28DT%qy zv7<-Du$=#TiqCWLtva7UpKe|wjox$0)ib^?q|tjqwS-&!i$YNWgi)KGCrxV-kdL%&U1|n=xLdHD7S<4oxHC9tXE>#nras|rZ{?j){16Hecs zcJS$UDsg;woStt#`1D>Ev3976u><`|I=!t1~X!>@^(Ydk#pg_8M||BkwCH zPj6vUnzAx(te8!Pq+cm-NKzbny%iArD(SB`Z}W1!W%e>9eM#x_;7F0NO8I)Xq0*Gu zWt)Q6acvg%lu6Rr)I{4+Z*&w#r<@|`AS&+ul<;ow>-S<^>uHOD4jUj(t)m458-TnD+ax>~_4>VCF<_tl&d{QB z`rTx0CASYRlC{GVdGN8F3VUuy9}?;BSLi|C_7FSdB;#9^+w&ahY@4b7D# zccIy(h`nUI%;F^j2Z-@wOB6J5vL=2T5?JBgaGe3(eE^@sVMHum_T%uI8=>JYi{)HU z8WH}R9qRTXAKTvDA7H7unCHVgZJt6C=cB^oB(*ZS#J;&1e)vm7LB*Rz}-Q_pgFOg+mSn>IhZs})$>=Dnh5!2YcwaI)7fr_P3j^`Ca9trn4Rk`y%iOdLkF)S(kiId!^0 z)Un+n98Mj9Q8u$Wp~0YAE_CaK zBe+JS52*Sz>BA+GO_ny08{O3+bdwEnZ~bs-@lEr9PKhyo_Z-i=BpmWdltL%gb&S zFSqvL@)8bq=@nc*R%l*6#bG6Sj$b2s?{bIyrQ&o^6XWucU}rxO!R@%bz+%LD5f`=x z>_@n;4Pg7~?jaC9mnVC06x$m`ahF@{+heNub6jM5mpkpTt85VWS#ltAyPUUhz(%~t zoO8LA1S4iEd-B30!%@%OaTX{vFDqHR%vz7jbqdQ1hl6n$_6C8tDoRGT-iFt%V0nSC zM&eq>a;31sxJnn+3yY)jhd5vnUY^0>-z;txeKFgy?sg(JiOoP*EbqVpC-c%CQ^oQg zR$XE7LQ#PYqGaGYk-tj{eh3)+vwRS2BZ+t%N4gYl*W}+sdZMXFrmR{|rhH8RwQjUI zjpdT^Wq?Q~N@eP?nB9aaICRupgoP2xpP7IZ8RgOJ>u^o8Ek=$0O#E`;Xy;$2tU^s+ zWZe?$6Xh2D5m%#S1wCtKptaFgLcP1lX6gh=(Lx^I1mjId!U5jZGjOEW()6mO2mR zMZ`lPmZ>N#B^6?MD(e%Y1;Rvh~MZ*;JtpM4w=K`=gKt(Jt!UmWkJQ}!*Vm65j z25jU!Kxj7(3?W|bjja?P$KEzEozBLgSH>)FBW$m%S-vi&o@L&ZIxFK609O$44YdFu zgCtNe><2_04mg^ZH8{NM+XA~RmNu#i&BQ2OWfLJ0ZAFn)2GT9XtYkUjP%wp22+4rf z)I>W1BbX^ry$lEN;>y^*Q_cIyd#T0CKjVnK=_34$tQOW6AiWDL50Wh+#>BMdKM(6c z-naRAFICTizEu)_-qZ0G17V4OWebNm2XBY;?T?>Tvidm`UL@TCoL*<)O`P6h;a!}# zqW5#v#|5{46i!@K`}I27zXa1j6%OI&f|Cnl|LX`1W_95wSV$CC0=vn_1=am5a9!{a z3$NhB30(NO0O6w1KNBD`z3?-+Jp^(7M{r_rD%1@`F_L-6!VVS~qU|^o5wo-Z5uBJw zgr6WGKf#YAN}kEcq0O-;{5;Plil<9i;5g)X^KZt9gIUNrNkjtH`$@o2=O`uo1j*tj z&u1!30;e;wz#g$fe)gz~4L*Z<57~Z*(~nqiO{XVv|M_rOnRFW0E%YJS8~d=@`_ERzFV#2AS6 ze4^(5nIhQ*P%;G`Ove0~0uTIR{!GC)+U}nz(p>;0Q(#BRm_HN$7_!n_A-&?iPud!X z6~>Us0akHfZuAQ+9r!}Pc%JFND*@|2%G(G)KlAk9YyO*USkWk$c}2qys)9U|pYmm@ zkr2HMyF9WQ<3nIK0u>L2F3Eu!%f6qhsJAn1~I)onrtpC`5_D_E^ z!+Q3Qu%c1@)8EUmp8eC`#t>%z^mj0X*+2cw3t{$8f8Row{nOvF5N7}McPoV1KmCmg zVfIgdi$a+F)8Cd5X8-iJBZLb8>u*5_bE`%D-3Q^H0@mM45dH;V{ip4rzXf1D?Lk=4 zD0}Gd09a3ZJZOJAK$!N>@AnDQ9{OEAVcJ8#wqizq=-k&-0u=Z4dqKnf0^>VMV0uq2D{R zp7zl1m^t)cdv`3ZwuUrwPJ@h+T z!nB8e2TM2?{nPJM3G-i!((g|R&jhUBl@fjy{Q6Jl3%=`AIFDG+#a^@z-)ZXlNDuXV zf2r%2_E67vmb#w*K&1ZD?epEF!g<6sJ=F6Zq^{qBdi@@e{n-v!zb_=b3$T7SNcj7J z^?N|VKLo7b`4N5;uzs&ccpqT>-i|Q;-AVmNeVLE>sz%|u=O5OGW9nb(fuHY7H2%e8|f@Cg1R&-zd6&lQ5gb+6a7ypkT1pwRO>G3j040bStH zfc5%-^wYY)i@U%Lfaza;FPH&)UjtY#3)0a3jezyLc-G$uSbsxC`0g(B|3ujSOT+r( z3BdZDJn8=pu>LMAAMhUmA5B&NlojjW1FYL){RzPOyEfJ*U~<>rcM;A8OnXNqbzY3Y-d&FggsW2CZMK+K(5pTAe*>BG^M=)LHS3VI z2Z(w;8drM`DSv~k{SA!wC*+EslNGf88!{75j0cZ8GMwLa6tF)>A?y2Y`r8*QF@+!Cr~+Jt)W{m`~yLKZIVduL>6Xk0EOx0R8iqsKfDj0r?C{c(A`-L)KnM z#{U7b<~wEZLm+UXt{J;)0m+HpvA8|a8+Vwb%Q#Zf=G!0%j`haP*gPr>)oJ{@A~x99 zlElMFQ3FtnCy*=*Qw+j6RHF_g?V6=#l5|nGgmv5mS!8jUHGs)7?y-cUw2Whc>ttEc zD;dn9%d)beibJ)^$W4}!io(TP3OEEdm~`v4B<^)_ zY0Y#DZUauzHc65+W)zLvF?mr4GZ)Uzo{i52EL z%frSYCo@dv6}i|P-_2>n3|sTaroT9Hko|lf-~uv8sesFA5P==_Ni^BMv9(LN#q3pJ zugW3Bj<{9J9)3JGGZRl;yI?!dgN`{MvWkMr<2)I0+!~=MJND7wTT)>^UeC5 zMWBkEW|&9UrIK5ng|70odOdBfWKvq|EYh2E64U_{*v=hx8w7SUyR@_DWW3Y;U)l>Z zENgVvsmj|sxR;V8>X`Q9kR9|@toO{7Dm5BG=RL6Xab)oRt)#nGM^P|} zgDS3l*RionK4{B4kCQm)kH-e=Hn;&SNGxYMk3)8pH?zA69b*VW%GMUFcZPqErg3C; zzkDkS9y+x{>q0?qJ$;9G{t7*8WxODJ0dQViI=SC#{M7Bi(&S z%*)^DTgH41ZUxF8KU=8|9qe1iGn4qi!6)gSLROxtgIN5Yz|%{Vq1hX=ZtH5{CK41--7&XwQz&WJxkr6hm63mV#e{$tD!8R0CuzYu;y AY5)KL From 3ef72aa4341225adddfb46117b43d7e392c9fcb1 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Tue, 16 Sep 2025 07:50:29 +0200 Subject: [PATCH 7/8] updates dnt-rise-riscv --- dbt-rise-riscv | 2 +- fw/hello-world/hello.elf | Bin 63440 -> 63440 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/dbt-rise-riscv b/dbt-rise-riscv index 29aac88..bfce933 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit 29aac88dbd62e59814430fec38a0397549b978a6 +Subproject commit bfce933b60ad4cf999e1d73d4f581c658d1ee560 diff --git a/fw/hello-world/hello.elf b/fw/hello-world/hello.elf index 6ecfd97b9b84fa5a965096fd689277a4c427220c..719abb960a1703f0ede923033b49381c6ec0d034 100755 GIT binary patch delta 14058 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 Zr_Vb8J+L$Ud{6|T{McWL_x$C6{r~a9)Y||6 delta 14059 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 Date: Sun, 5 Oct 2025 19:52:42 +0200 Subject: [PATCH 8/8] updates submodules --- .vscode/launch.json | 7 +++---- .vscode/settings.json | 9 +++++++-- CMakeLists.txt | 4 ++-- dbt-rise-core | 2 +- dbt-rise-riscv | 2 +- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 14723ae..5d591bc 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -17,7 +17,7 @@ }, "cwd": "${workspaceRoot}", "gdb": "riscv64-unknown-elf-gdb", - "openGdbConsole": true, + "openGdbConsole": false, "presentation": { "hidden": false, "group": "FW Debug", @@ -37,7 +37,7 @@ }, "cwd": "${workspaceRoot}", "gdb": "riscv64-unknown-elf-gdb", - "openGdbConsole": true, + "openGdbConsole": false, "presentation": { "hidden": false, "group": "FW Debug", @@ -59,8 +59,7 @@ "name": "32bit VP", "cwd": "${workspaceRoot}", "program": "${workspaceFolder}/build/Debug/src/riscv-vp", - "arguments": "--isa 'rv32gc_msu' -v INFO --disass -f fw/hello-world/hello.elf", - "openGdbConsole": true + "arguments": "--isa 'rv32gc_msu' -v INFO --disass -f fw/hello-world/hello.elf" }, { "type": "gdb", diff --git a/.vscode/settings.json b/.vscode/settings.json index 347762a..a1543ea 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,6 +9,7 @@ "comment": "clang-format" } ], + "editor.formatOnSave": true, "clangd.arguments": [ "--pretty", "--background-index", @@ -17,7 +18,11 @@ "cmake.copyCompileCommands": "${workspaceFolder}/build/compile_commands.json", "cmake.options.statusBarVisibility": "hidden", "cmake.options.advanced": { - "configure": {"projectStatusVisibility": "visible"}, - "build": {"statusBarVisibility": "visible"} + "configure": { + "projectStatusVisibility": "visible" + }, + "build": { + "statusBarVisibility": "visible" + } } } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 77bd66b..b81526c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,8 +21,8 @@ include(GNUInstallDirs) # add address sanitizer if(ENABLE_SANITIZER) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address,thread") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address,thread") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address") endif() diff --git a/dbt-rise-core b/dbt-rise-core index e60892d..83eb45b 160000 --- a/dbt-rise-core +++ b/dbt-rise-core @@ -1 +1 @@ -Subproject commit e60892d2f9645231d24b02c864b6583ffda0c327 +Subproject commit 83eb45bb3e393eb979b44e97ba08da8460eedea4 diff --git a/dbt-rise-riscv b/dbt-rise-riscv index bfce933..8a884ed 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit bfce933b60ad4cf999e1d73d4f581c658d1ee560 +Subproject commit 8a884edb80f04a75a78658bef6ec63e455d1c530