本帖最后由 1五湖四海1 于 2016-8-25 22:44 编辑
- j7 }+ v6 z) P8 v' T, Y: h7 R, B" p9 _9 {" G; q0 g
这个defaults.h文件作为一个中央默认设置配置不同的机器类型,从DIY米尔斯数控CNC转换的现成的机器。这里的设置所列出的文件是由用户提供的,
% p" S% H) {2 [+ I0 f所以您的你的需求可能不同。所以应该你了解你的机器和调整设置根据你的个性的需求,制造机器。' b# _4 |: w6 q4 N, M# P) O
defaults_h文件是选择是否将一些参数设置为默认值! }0 h, Y. [3 i/ {
定义各种参数
1 s$ y, }6 K( U% l) o- j! E1.defaults/defaults_generic.h //Grbl通过通用默认设置就可以在不同的机器上工作。8 V8 Y) B Q. s1 @4 l4 r5 R" ]
2.defaults/defaults_sherline.h //描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机
# R- H; _* l8 M, h6 u/ l3.defaults/defaults_shapeoko.h // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的
4 v8 d) h( y: d3 P4.defaults/defaults_shapeoko3 //描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的* B3 L8 w$ ]; ~; T/ I1 h$ ]
5.defaults/defaults_x_carve_500mm //描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。: Q2 J$ o k( B% v) x: M3 B( K) x
6.defaults/defaults_zen_toolworks_7x7 //描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。由30 v 6电源和TI DRV8811步进电机驱动程序/ V% X: J9 |- C- w$ {7 u: }
7.defaults/defaults_oxcnc // Grbl设置OpenBuilds牛数控机床. S; G4 J( D3 U8 l9 I1 j
8.defaults/defaults_simulator
1 L6 m% V4 u2 G$ }, @7 |) ^2 k& t8 X* d7 z) M' q y* _
/*3 P! p- o: _6 V6 L$ a
defaults.h - defaults settings configuration file
) d/ ]) U" P! K7 |0 h' x# K Part of Grbl; J/ l ?9 x7 @& [* g
; A, ^# Q2 H# H* @" Z
Copyright (c) 2012-2015 Sungeun K. Jeon
* Q9 @5 K4 D$ G8 Z4 q% g
! Q+ k6 L' M) G2 d Grbl is free software: you can redistribute it and/or modify1 Y# O' [! I1 p1 P# i& r
it under the terms of the GNU General Public License as published by; _/ e1 l8 c: h
the Free Software Foundation, either version 3 of the License, or' n g# M% P, E( @7 X
(at your option) any later version.
0 _, O% |! Y: t1 M6 h# q6 E6 |% \% ]: I
Grbl is distributed in the hope that it will be useful,
, {3 d2 q4 S5 ]! M# [ but WITHOUT ANY WARRANTY; without even the implied warranty of
9 I( e/ F1 c/ M9 k( \( w" k$ r; U MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1 H- E0 |) x5 t3 G GNU General Public License for more details.
5 l+ T' p! L" N" H' [5 _: m- ?3 F- O* c6 |
You should have received a copy of the GNU General Public License( x" l( D! H9 x6 @# m' n8 L2 Q
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
H6 j1 X3 S. V2 |& x+ q*/
3 v2 i! _ Q& Z! y1 ^1 O7 m- C9 z& N6 ]& M
/* The defaults.h file serves as a central default settings selector for different machine
; x9 A5 {9 Z0 z types, from DIY CNC mills to CNC conversions of off-the-shelf machines. The settings 9 c( }% `7 o& S8 I1 `
files listed here are supplied by users, so your results may vary. However, this should
- y0 r9 N! w' V give you a good starting point as you get to know your machine and tweak the settings for
$ x, Q7 C" R2 Q; z4 { your nefarious needs.
- q3 t' J. t$ h) t Ensure one and only one of these DEFAULTS_XXX values is defined in config.h
$ N/ _2 |6 P) W0 w3 M4 n0 @: d6 Y" O/ {+ G# p+ \
The defaults.h文件作为一个中央默认设置选择不同的机器
8 ?! h( O9 ^# e; Z 类型,从DIY米尔斯数控CNC转换的现成的机器。的设置/ n. R6 z6 l- r( d4 ^6 S$ l
这里列出的文件是由用户提供的,所以您的结果可能不同。然而,这应该* H/ a# a5 {3 q1 S, l3 c2 e
给你一个很好的起点,你了解你的机器和调整设置
, _$ s# T, i5 k! u6 E/ e 你的个性的需求。6 ^2 R2 m8 H+ f4 ^" P
确保一个且只有一个这些DEFAULTS_XXX config.h中定义的值
Q5 b. a" O; D2 D; F; w. K */
" P0 w+ ^0 p0 I+ }! Y1 ? ^8 e8 o7 r9 v% M2 W4 @
#ifndef defaults_h
) z/ y) W! h+ G
# i2 e2 T% P6 S, Y2 \// Only define the DEFAULT_XXX with where to find the corresponding default_XXX.h file.
5 \, r: H$ Q# N4 |. n2 ?// Don't #define defaults_h here, let the selected file do it. Prevents including more than one.
3 Q( h% v0 F9 P A' G; |0 N//只有定义DEFAULT_XXX在哪里可以找到相应的DEFAULT_XXX。h文件。+ h! B! M4 M) k; K7 y1 \! N
//别在这里# define defaults_h,让选中的文件。防止包括不止一个。
' d+ {/ v! Q3 O( M; ~) I$ I* g L+ o) x4 g- a
#ifdef DEFAULTS_GENERIC
4 q# ^; @8 N, y* q% j# ^: ] // Grbl generic default settings. Should work across different machines.
3 j% Y1 g1 z3 {' ` // Grbl通过通用默认设置就可以在不同的机器上工作。
9 N* \ L" [& k7 k9 G0 z+ h* t9 ^ #include "defaults/defaults_generic.h"
- ?1 `1 w! @! h1 b" _#endif
8 A* A1 j& t- M" D, K
' M4 D3 j5 D3 A1 d/ c4 f#ifdef DEFAULTS_SHERLINE_5400/ z) {3 p! c4 ?1 v3 `
// Description: Sherline 5400 mill with three NEMA 23 Keling KL23H256-21-8B 185 oz-in stepper motors,
G* X+ G- `4 d: v5 b" Z // driven by three Pololu A4988 stepper drivers with a 30V, 6A power supply at 1.5A per winding.
# Y) D8 f! e, j* s" K% p //描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机,
! C8 H2 a5 M) `/ B; M! f, B //由三个Pololu A4988步进驱动30 v,6在每1.5绕组供电。
4 {) j9 ]+ o q, I3 L- W! R
* ^( d8 L/ W5 S: p1 [4 _ #include "defaults/defaults_sherline.h"
. R9 M7 n" x3 N! L! g#endif/ R9 b2 m; q) C. t v& G' {- H5 I
% o) T7 I7 Y' x& x#ifdef DEFAULTS_SHAPEOKO
+ P. e9 N7 T4 Y! v1 Q7 X // Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos/ b$ M* V9 X# U2 Y
// grblShield with a 24V, 4.2A power supply.
$ J- e$ d) N: J3 U; ^6 j$ n // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的
A/ e! { I3 e) O, K c // grblShield 24 v,4.2电源。
* x6 i" t' i v8 F% } F, E3 B% P2 {7 m2 T
#include "defaults/defaults_shapeoko.h"
3 `& M; u( g- I' k- T0 [1 N! r' _#endif% C- \: i8 Y+ ]3 ?
" ?8 a- x( |1 y! C% f+ }#ifdef DEFAULTS_SHAPEOKO_27 a( O7 R, @' a% I$ L- x6 b/ P
// Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos4 K- T# x) _. I/ k; B! y
// grblShield at 28V.
2 e! t9 V0 S9 c; d // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的
/ K* _6 v3 q; R- s f5 { // grblShield 28 v。
* B' B/ Y1 l. Z m2 b, k, H, }& z0 h+ O9 ?. {. l
#include "defaults/defaults_shapeoko2.h"
0 x: [: K; u& C Z#endif" a, T* F) V2 A+ h3 {% F4 H9 w4 S, \
* T& ~2 j8 x O1 _( p; K7 w#ifdef DEFAULTS_SHAPEOKO_3
5 c& g7 h7 o0 i) N4 C9 r // Description: Shapeoko CNC mill with three NEMA 23 stepper motors, driven by CarbideMotion) j3 Q2 i2 {+ B* f! t
// 描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的 D% a' |1 P; P U
1 w5 a7 X+ {- }) L, `( G2 t
#include "defaults/defaults_shapeoko3.h"
0 B, R8 u/ G. z$ C9 a9 }#endif9 y$ S7 _$ B1 x. h
1 r& B7 M' ?, \6 V+ J( I8 T+ B
#ifdef DEFAULTS_X_CARVE_500MM. z! H. p9 {' R6 l
// Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos$ O( W' t# ]; u
// grblShield at 24V.
1 @4 D/ s `4 S6 s5 F2 [ // 描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。4 L3 `0 R# x) M" h' k
#include "defaults/defaults_x_carve_500mm.h"
. c6 A: m3 W! C: r h1 A6 U6 ^#endif7 V8 U! k3 Y. a
0 N5 Y! j2 Y7 ~7 B4 z
#ifdef DEFAULTS_X_CARVE_1000MM% F) J, G) N9 i% {
// Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos; \3 A" R' a$ d6 _' [1 G0 f% E* |
// grblShield at 24V.& Y8 h# @/ v+ A6 j2 [
#include "defaults/defaults_x_carve_1000mm.h"
9 ^. _' Z! o+ a. K5 m! F2 k#endif4 G# K0 Z; u3 U% K2 G) X; ~
, S0 N9 c) Q/ m5 f3 s Z r- z
#ifdef DEFAULTS_ZEN_TOOLWORKS_7x7
8 n$ R+ }" j( Y // Description: Zen Toolworks 7x7 mill with three Shinano SST43D2121 65oz-in NEMA 17 stepper motors.
8 b- f& \5 E/ m. c2 E. F // Leadscrew is different from some ZTW kits, where most are 1.25mm/rev rather than 8.0mm/rev here.3 z# s! K8 N) \0 d- T
// Driven by 30V, 6A power supply and TI DRV8811 stepper motor drivers.5 O' R: j9 H7 m4 p/ V) v
//描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。
$ A8 Q; g; T- S7 N0 S! R8 Z //导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。
% I. ~" ]3 h$ a/ Z" [+ h //由30 v 6电源和TI DRV8811步进电机驱动程序。. j5 n4 E$ f( T
2 R( [% O; l) w5 K #include "defaults/defaults_zen_toolworks_7x7.h"
4 }) P6 _. z4 h# W) Z#endif
9 K, N/ J: S, l
# |* a1 q; [9 R8 D6 a, t4 @#ifdef DEFAULTS_OXCNC
5 m" G( n- ?! H5 s; V& Q) S( V // Grbl settings for OpenBuilds OX CNC Machine
# j/ Y; {# Q D! h' O: m" O // http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/
, Z4 _" K: Q8 q( y7 F* V
Z: v7 P* C( q! w; ~7 E // http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/ 4 J! r& p! q& V: p- E9 m) L
#include "defaults/defaults_oxcnc.h" // Grbl设置OpenBuilds牛数控机床
- N% l! h6 F/ W#endif
: R9 H- Z' i4 {: U. J
: r6 L, X! V7 {# u" g5 z. V#ifdef DEFAULTS_SIMULATOR
5 |3 c7 q+ o7 R* {# u8 X, y // Settings only for Grbl Simulator (www.github.com/grbl/grbl-sim)
8 ]7 p% S; e! c. p) |) x0 [; U: v: k #include "defaults/defaults_simulator.h" //设置只对Grbl模拟器(www.github.com/grbl/grbl-sim)+ P9 H3 U) K. H6 k( y0 p; P
#endif$ o: u+ D Q! c$ @( L& o1 C" H6 V6 @
; ]3 n7 l) y" o5 ]
#endif
# x6 s. t7 _ o6 s0 s# B7 n
8 Z3 x% D1 [, [* e: v__________________________________________________________________________________________________________________0 Z* D* W- O( h' q+ Y
/*
: f" e: E* N7 _9 y+ ~defaults_generic.h -默认设置配置文件Grbl的一部分
6 `! u/ `2 H( x" N7 n' b+ O- z版权(c)2012 - 2015 Sungeun k全6 Q$ `5 |3 Q) J7 t
Grbl是免费软件:可以重新分配和/或修改* B7 W* |0 X% |* P u
GNU通用公共许可证的条款下发布的6 n/ ~6 q/ \ `& e7 l' H9 F
自由软件基金会,版本3的许可,或
% ~7 [( J! S# B7 e0 {/ [(任您选)其后的版本。( H1 V8 S, ~8 A" D
5 P/ A; P! C: |; E& f6 f
Grbl分布,希望这将是有用的,
/ P2 F7 C$ i" ^' Q" g! H但是没有任何保证;没有即使的默示保证
! F" T) U3 ?8 f! K; S8 z' L: S适销性或健身为特定目的。看到
, s4 ~5 |/ u5 x& u# I2 O6 {% l4 m0 xGNU通用公共许可证的更多细节。( B1 O5 H! _9 p' Q% x$ J
8 I6 v% f8 l y! f& Z/ c* w$ u! H- X
你应该收到了GNU通用公共许可证的副本. E9 e1 ?" H1 r( {7 Q
连同Grbl。如果没有,看< http://www.gnu.org/licenses/ >。* ]% a5 z" V7 ?+ Y4 [. @7 ^
* /
4 W7 P; l; ]* W! E
! `% N U% `( V- B6 u/ *默认值。h文件作为一个中央默认设置文件不同的机器. H0 X# c9 p" A% L6 F; m# C) J
类型,从DIY米尔斯数控CNC转换的现成的机器。的设置" J& p _- C* O: G
这是由用户提供,所以您的结果可能不同。然而,这应该给你
5 U, ?+ c$ X) B+ P. t0 m" A' e一个好的起点,你了解你的机器和调整的设置
0 o' y; ]9 m9 {9 ~' k邪恶的需求。*/
1 v0 T7 ]% p7 a
5 ?; T6 O, I X Q( P7 _9 J, H1 g/ A5 W; p7 ]9 f9 _& U, M
#ifndef defaults_h
+ L& D. a" j- j1 z* `/ W6 F7 n$ O" L#define defaults_h
E& k3 f9 d6 v4 V# Q* D# s! S% N( i: s4 V* y- Y5 M3 B5 V- I- k" e
// Grbl generic default settings. Should work across different machines.
7 d1 }" P* l1 `# O; \- e #define DEFAULT_X_STEPS_PER_MM 250.0 //X轴每mm脉冲当量 & W6 R5 s" h1 s0 b9 \
#define DEFAULT_Y_STEPS_PER_MM 250.0- E) e9 O# w; S# z" A( f$ u
#define DEFAULT_Z_STEPS_PER_MM 250.0
9 D/ G" {; y- Y0 y W" ?% o #define DEFAULT_X_MAX_RATE 500.0 // mm/min 最大速度
( Q" O; @6 m6 o% |* z #define DEFAULT_Y_MAX_RATE 500.0 // mm/min
" @, t4 M9 _1 |4 `% ] #define DEFAULT_Z_MAX_RATE 500.0 // mm/min% B. L7 n- X2 P# j! R2 p
/*这是毫米/秒/秒的加速度。+ ]2 z0 [* s( j5 \1 O3 I) \, M
你不需要理解这是什么意思,我只想说,一个较低的值给smooooother加速度而价值更高的收益率更严格的措施,达到所需的进料速度更快。
: a% F2 z7 n$ `8 w& F+ a. \/ `从技术角度讲,这是您的机器的点对点的加速度,独立于轴。设置加速度值高达你最限制轴可以让你在不丢失任何步骤。
8 f: G, n `& W9 x9 }- W通常你想给自己一些缓冲,因为如果你失去了步骤,Grbl不知道这发生了(开环控制步进),并将继续。*/2 C' u9 c) H! w# `: R+ p
#define DEFAULT_X_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 加速度: L3 Z* L+ F7 ?
#define DEFAULT_Y_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2% E5 ] g! W2 Q# Q/ V* U! b
#define DEFAULT_Z_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2
( o* h2 |* T0 p c #define DEFAULT_X_MAX_TRAVEL 200.0 // mm 最大步行
% W1 \+ i/ f9 Z/ y- j #define DEFAULT_Y_MAX_TRAVEL 200.0 // mm ' ?' K- ?) A) g1 Q
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm
. ]; w# T7 ^7 q6 G2 k3 h+ N: Q #define DEFAULT_STEP_PULSE_MICROSECONDS 10 //步进驱动脉冲长度: [% z0 [) l6 ? D0 g9 M
#define DEFAULT_STEPPING_INVERT_MASK 0 //步进是否反转
! [6 v0 T+ v% u1 ~( ~/ \# N9 K# h #define DEFAULT_DIRECTION_INVERT_MASK 0 //方向是否反转
$ R1 s, ^0 m- ^ /*
' w6 }' C3 i% K: C7 L& b3 u 每次你完成步进运动和停止,Grbl将禁用默认步进。8 p/ _, Y) o' U) _6 Y
锁步进空闲时间时间长度Grbl将步进锁之前禁用。( m/ C& f+ x" O4 |, c& t
根据系统中,您可以将这个参数设置为零,禁用它。对他人,你可能需要25 - 50毫秒来确保你的斧子来完成禁用前停止。(我的机器往往漂移稍微如果我没有启用。)5 d7 P% q8 |( \8 o
或者,你可以让你的轴在任何时候启用通过将这个值设置为最大255毫秒。再次重复,你总是可以保持所有轴通过设置启用7美元= 255。*/
0 y5 k6 u* U2 { #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)步进闲着时间& a' E4 x9 P9 `' u8 s2 T
#define DEFAULT_STATUS_REPORT_MASK ((BITFLAG_RT_STATUS_MACHINE_POSITION)|(BITFLAG_RT_STATUS_WORK_POSITION)) //是否打印状态报告
* ?+ r) ?0 s. w% D3 i/*一些高低cnc-stepper控制器需要输入反方向和步骤。/ u* @' {, e: O
信号线路通常是高或低信号方向或高,低了几微秒一步事件信号。为了达到这个目标,Grbl可以反转输出比特来满足特定的需求。1 {1 m5 U0 B/ r% }) U
反掩码值是一个字节,xor的步骤和方向步进港数据之前发送。这样你可以使用这两个转化步骤脉冲或转化的一个或多个方向的轴。: ]3 [/ m* {; r8 Y
这个字节对应的比特分配给介入config.h别针。请注意,不用于反演位0和1。默认比特分配是这样的:*/
3 N; R( M! p q( U) Z+ j3 c [# Y6 U# B! z; i
/* 转弯路口偏差使用加速度经理决定它如何快速穿过一条路径。 ` |% o7 w$ O z
数学有点复杂,但总的来说,更高的价值给一般快,可能的波动运动。低价值使得加速度经理更加谨慎,将导致小心和慢转弯。; Y* s+ G( V' ]
如果你遇到问题,你的机器试图把一个角落太快,降低此值使它慢下来。1 R2 ] ^$ A( p1 r8 Q. N
如果你想让你的机器通过连接移动得更快,增加这个值速度。& N3 [7 U/ r5 R8 ]. j. `
为技术人员,点击这个链接阅读关于Grbl转弯算法,速度和结角占一个很简单,高效和可靠的方法。*/
7 @1 o, Y# q" K
4 B" p7 `- u/ l# D8 C3 O #define DEFAULT_JUNCTION_DEVIATION 0.01 // mm //偏差
2 G/ Z. a. O! I, b+ n3 _& c% ^ #define DEFAULT_ARC_TOLERANCE 0.002 // mm //圆弧公差8 e0 E3 M* D0 b3 V( p% @
#define DEFAULT_REPORT_INCHES 0 // false //打印英寸
- N: |1 {" {# K z /*默认情况下,步进使销是启用禁用高和低。如果您的设置需要相反的,只是反步进使销通过输入15美元= 1。禁用与15美元= 0。(可能需要一个动力循环加载的变化。)*/
5 I* }0 @1 d' Y* ~1 {; a #define DEFAULT_INVERT_ST_ENABLE 0 // false8 x) j) p+ O/ t! N* K3 [! k
#define DEFAULT_INVERT_LIMIT_PINS 0 // false //反转限位引脚. S# B& x% Q1 J; t: T6 E6 [( z
#define DEFAULT_SOFT_LIMIT_ENABLE 0 // false //软件限位
9 x f: Z+ W# C* @: h/ v, l) d, E #define DEFAULT_HARD_LIMIT_ENABLE 0 // false //硬件限位
- j# n; ~1 ^$ s& G #define DEFAULT_HOMING_ENABLE 0 // false //回原点使能
9 K7 ?# p- ]: ?* Y. ?0 ^ #define DEFAULT_HOMING_DIR_MASK 0 // move positive dir
' l7 J" p2 E: Q" w7 } i3 S, E: t #define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min8 K) [* m8 o' B* p5 `, f P
#define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min0 @8 g; `3 ^2 s* a
#define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)防抖动延时 Z" ^2 C7 H% y- j
#define DEFAULT_HOMING_PULLOFF 1.0 // mm
1 U. `/ b7 s0 Z" [$ |$ D9 q- u2 g& G& ?9 w L& q# F
#endif
* W M" W5 P, {, B6 n% g7 I C1 Z$ J
8 C# D/ v) ?& R% p
! U8 @ p) E8 G: i5 L' p4 i$ s* _; g! i" l. Z; E1 o x
% A7 ^0 l$ H6 v
' O( L; R, ?1 {; c
( l) }- i: [, m1 z
- h% D6 y ^- I0 y2 \, ?
0 ^" x4 ?! }6 J5 u# ?" B, `9 `& Z
7 Z+ h5 Q' Q. v7 t8 X8 C9 }* `( P1 Y
) z% Y3 C3 j* V4 q$ h6 d; ~* S z
! P _# _" A4 u" h e: [
% q4 n. q+ u5 C; k% o% X0 M, G- @
' k' F- ?; V8 K$ I7 j
: v* J+ u% O2 \
2 `' G1 y) T" D9 o$ `% T
( z0 s# y4 w2 ]; f' U# L. ]3 Y# s1 d/ V" z# a' J# z8 i! G
0 ^. N7 j7 ~# N% D5 Q! c
8 u# P( U: g# f0 m) d7 l2 ?& U- N8 q3 M2 S9 t- h
4 \& U" S- {/ v* w) v, l+ a% W. V3 {
) z0 K; k4 L. i
. ~& A6 w; U5 e% L, U) K2 W
/ X3 G, T2 J8 `- G, j9 A1 B: @7 s6 F" M
- I5 U/ n% V) n6 f
|