diff --git a/README.md b/README.md index 0da542a7d5865de28a432ceb9e5f385526bb916c..3a627f50ad81be7068295bb0f7c3a3364a13f773 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +README.md内容如下: + +```markdown +# PikaPython +

logo

@@ -20,7 +25,7 @@ Forum | Documents | Videos | - BSP | + BSP | Package Manager | Contribute | Business @@ -36,11 +41,11 @@ PikaPython also known as PikaScript and PikaPy. -It's very easy to bind C function to python module with the help of Pika Pre-compiler.Only write the API of python in `.pyi` and the bindings are autoly generated by Pre-compiler. +It's very easy to bind C function to python module with the help of Pika Pre-compiler. Only write the API of python in `.pyi` and the bindings are auto generated by Pre-compiler. ![image-20220520233540245](document/image/image-20220520233540245.png) -# Get pikapython: +# Get PikaPython: ## Use Online Project Generator Generator url: @@ -50,8 +55,8 @@ Note: You need the [Community Edition license (Now Free)](https://www.keil.com/p [![](assets/1644129110261-049ad5bb-21af-40e2-9533-a1c8c86790f1.jpg)](http://pikascript.com) -## PikaPython studio -PikaPython serial terminal, script download and package menage tool. +## PikaPython Studio +PikaPython serial terminal, script download and package manage tool. [![](assets/115.png)](https://gitee.com/Lyon1998/pikapython/attach_files/1285327/download) @@ -61,19 +66,19 @@ You can use [simulation project](https://pikadoc-en.readthedocs.io/en/latest/Kei ![image](https://user-images.githubusercontent.com/88232613/141252834-93011ca7-f84b-4192-8e61-0e242796f62c.png) -The board based on STM32G030C8T6 MCU, only 64kB Flash, 8kB RAM can run pikapython with total peripheral device (GPIO、TIME、IIC、RGB、KEY、LCD、RGB). -CH340 is deployed to support USB to serial with Type-C USB, support download python script py serial, there are 4 RGB on the board and support the [LCD](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-23991764791.12.16f97c58fsLjVk&id=660745643102). +The board based on STM32G030C8T6 MCU, only 64kB Flash, 8kB RAM can run PikaPython with total peripheral device (GPIO、TIME、IIC、RGB、KEY、LCD、RGB). +CH340 is deployed to support USB to serial with Type-C USB, support download python script via serial, there are 4 RGB on the board and support the [LCD](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-23991764791.12.16f97c58fsLjVk&id=660745643102). # Related Projects - 🎮 [MicroLink](https://github.com/Aladdin-Wang/MicroLink) 一款集多功能于一体的嵌入式系统开发工具 -- ▶️ [pikapython Binding For LVGL](https://github.com/lvgl/lv_binding_pikascript) +- ▶️ [PikaPython Binding For LVGL](https://github.com/lvgl/lv_binding_pikascript) -- ⭐ [pikapython Bluepill Demo In PlatformIO — Python-like REPL 🐍🔌](https://github.com/maxgerhardt/pikascript-pio-bluepill) +- ⭐ [PikaPython Bluepill Demo In PlatformIO — Python-like REPL 🐍🔌](https://github.com/maxgerhardt/pikascript-pio-bluepill) -- ⭐ [pikapython Bluepill Demo In GCC 🐍](https://github.com/Chandler-Kluser/pikascript_gcc_bluepill) +- ⭐ [PikaPython Bluepill Demo In GCC 🐍](https://github.com/Chandler-Kluser/pikascript_gcc_bluepill) -- ⏩ [pika_startup_demo](https://gitee.com/kcfkwok/pika_startup_demo) This program demonstrate the 5 startup methods of pikapython. +- ⏩ [pika_startup_demo](https://gitee.com/kcfkwok/pika_startup_demo) This program demonstrate the 5 startup methods of PikaPython. - 🎮 [PikaPython-OpenHardware](https://gitee.com/Lyon1998/pikapython_openhardware) PikaPython 开源硬件 @@ -96,17 +101,17 @@ https://pikadoc-en.readthedocs.io/en/latest/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E [test](../../tree/master/port/linux/test) - unit test -[document](../../tree/master/document) - developt document +[document](../../tree/master/document) - development document [examples](../../tree/master/examples) - example scripts -[package](../../tree/master/package) - packages and moudles +[package](../../tree/master/package) - packages and modules -[pikaCompiler](../../tree/master/tools/pikaCompiler) - pre-compiler write by Rust, used to bind C function to python moudle. +[pikaCompiler](../../tree/master/tools/pikaCompiler) - pre-compiler written by Rust, used to bind C function to python module. -[pikaPackageManager](../../tree/master/tools/pikaPackageManager) - pacakge manager +[pikaPackageManager](../../tree/master/tools/pikaPackageManager) - package manager -# 2.Platform support +# 2. Platform support ## MCU support @@ -131,7 +136,7 @@ https://pikadoc-en.readthedocs.io/en/latest/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E |w806 |√ |√ |√ |√ |√ |√ |√ | | |apm32f030r8 |√ | | | | | | | | |apm32e103vb |√ | | | | | | | | -|bl-602 |√ |√ | | |√ |√ | |√ | +|bl-602 |√ |√ | | |√ |√ |√ |√ | |bl-706 |√ | | | | | | | | |[bl-618](https://verimake.com/d/285-bl618-pikapython-led)|√ | √ | √ | √ | √ | √ | √ | √ | |Raspberry Pico |√ | | | | | | | | @@ -147,7 +152,7 @@ https://pikadoc-en.readthedocs.io/en/latest/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E ## Board support |Board|bsp|gpio|uart|pwm|adc|i2c|rgb|lcd|arm-2d| |---|---|---|---|---|---|---|---|---|---| -|[Pika-Pi-Zero](https://item.taobao.com/item.htm?spm=a230r.1.14.1.4f2e27a8R0qWJn&id=654947372034&ns=1&abbucket=15#detail)|√|√|√|√|√|√|√|√|√| +|[Pika-Pi-Zero](https://item.taobao.com/item.htm?spm=a230r.1.14.1&id=654947372034&ns=1&abbucket=15#detail)|√|√|√|√|√|√|√|√|√| |Board|bsp|pika_lvgl| |---|---|---| @@ -171,12 +176,12 @@ https://pikadoc-en.readthedocs.io/en/latest/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E |---|---|---|---| |linux|√|√|√| -# 3.Characteristic +# 3. Characteristic ### (1)Run environment -Support run in mcu without OS or file system. Can run in everywhere with **RAM ≥ 4kB** and **FLASH ≥ 64kB**,such as stm32g030, stm32f103c8t6,esp8266. +Support run in mcu without OS or file system. Can run everywhere with **RAM ≥ 4kB** and **FLASH ≥ 64kB**, such as stm32g030, stm32f103c8t6, esp8266. -### (2)Develop enviroment +### (2)Develop environment #### Support REPL by serial. @@ -186,13 +191,13 @@ Support run in mcu without OS or file system. Can run in everywhere with **RAM 微信交流群
-Support IDEs like Keil, IAR, RT-Thread studio and segger embedded studio to develop C moudle. +Support IDEs like Keil, IAR, RT-Thread studio and segger embedded studio to develop C module. Support build tools like CMake, makeFile and Scons. -Zero dependencies, zero configuration, out-of-the-box, easy to integrated into privious C projcet. +Zero dependencies, zero configuration, out-of-the-box, easy to integrated into previous C project. -Eazy to extern customized C moudles. +Easy to extern customized C modules. Support linux. @@ -200,7 +205,7 @@ Support linux. Support subaggregate of python 3 standard syntax. -Support class and method define, encapsulation-inheritance-polymorphism and moudles in `.pyi ` of C module. +Support class and method define, encapsulation-inheritance-polymorphism and modules in `.pyi ` of C module.
More Details About Syntax Support @@ -223,8 +228,8 @@ Support class and method define, encapsulation-inheritance-polymorphism and moud #### Operator | + | - | * | / | == | > | < | >= | <= | % | ** | // | != | & | >> | << | and | or | not | in | += | -= | *= | /= | -|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| -|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√| +|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√|√| #### Control flow @@ -245,8 +250,8 @@ Support class and method define, encapsulation-inheritance-polymorphism and moud | --- | --- | --- | | import [module] | √ | √ | | import [module] as | √ | - | -| from [module] import [class/function>]| √ | - | -| from [module] import [class/function>] as | √ | - | +| from [module] import [class/function>| √ | - | +| from [module] import [class/function> as | √ | - | | from [module] import * | - | PikaObj Module Only | #### List/Dict @@ -289,13 +294,13 @@ Support class and method define, encapsulation-inheritance-polymorphism and moud Readability first, nearly never use macro function and global argument. -Complete unit testes based on google test. +Complete unit tests based on Google Test. -# 4.Both talk and show the code: +# 4. Both talk and show the code: ## E-mail: liang6516@outlook.com -# 5.Demo +# 5. Demo The scripts in demos are in the [examples](examples) folder. @@ -303,7 +308,7 @@ The scripts in demos are in the [examples](examples) folder.
View Code -``` python +```python import PikaStdLib import STM32G0 @@ -338,7 +343,7 @@ while True:
View Code -``` python +```python import PikaStdLib import STM32G0 @@ -362,11 +367,9 @@ while True: ## Demo 03 ADC -
- -View Code +
View Code -``` python +```python import PikaStdLib import STM32G0 @@ -388,12 +391,11 @@ while True: ![mmexport1631351523907](document/image/132944185-0a01b1ba-8cf7-4f9f-9d73-fe9cbcd52f0b.png) - ## Demo 04 PWM output
View Code -``` python +```python import PikaStdLib import STM32G0 @@ -418,7 +420,7 @@ while True:
View Code -``` python +```python import STM32G0 import PikaPiZero import PikaStdLib @@ -443,11 +445,9 @@ while True: ## Demo 06 Snake(Need LCD) -
- -View Code +
View Code -``` python +```python from PikaObj import * import PikaStdLib import PikaPiZero @@ -556,11 +556,11 @@ while True: s.prev = b_new s = b_new len = len + 1 - print('snake lengh') + print('snake lengh:') print(len) print('mem used max:') mem.max() - # drow the snake and fruit + # draw the snake and fruit # clear last body lcd.fill(s.prev.x, s.prev.y, w, h, 'white') # new body @@ -585,8 +585,6 @@ while True: elif key_val == 3: d = 3 isUpdate = 1 - - ```
@@ -605,7 +603,7 @@ In addition to device drivers, developing custom Python modules for MCU is very ## Rotating suns~ ![Hnet-image (6)](document/image/132945107-e473a2cc-9fbc-47f9-aaed-a28d3ad1048c.gif) -# 6.Test and develop Core +# 6. Test and Develop Core ## Test core in docker (recommend) [get start with docker](https://pikadoc-en.readthedocs.io/en/latest/get-start_linux.html) @@ -616,20 +614,21 @@ In addition to device drivers, developing custom Python modules for MCU is very -## [How to contribute](https://pikadoc-en.readthedocs.io/en/latest/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E%E7%A4%BE%E5%8C%BA%E8%B4%A1%E7%8C%AE.html) +## [How to contribute](https://pikadoc-en.readthedocs.io/en/latest/%E5%A6%82%E4%BD%95%E5%8F%82%E7%A4%BA%E5%8C%BA%E8%B4%A1%E7%8C%AE.html)
### Contribute Log On 2023 -| Contribute log | Contributer | +| Contribute log | Contributor | | --- | --- | |fix REPL echo for '\b' and 0x7F|[versaloon](https://github.com/versaloon)| |pika_hal support for ESP32|[geekheart](https://gitee.com/geekheart)| |Driver Design for PIKA-OPEN-HARDWARE|[Kirin](https://gitee.com/ztqkirin)| |bsp support for `Makefile-win-mingw` |[unsigned_0](https://gitee.com/unsigned0)| |Fix bug for STM32F4 `delay_unit()`|[MrLeekon](https://gitee.com/MrLeekon)| -|bsp support for `air780e`|[Kirin](https://gitee.com/ztqkirin)| +|bsp support for `air780e` |[Kirin](https://gitee.com/ztqkirin)| +|Driver Design for PIKA-OPEN-HARDWARE|[Kirin](https://gitee.com/ztqkirin)| |Component Selection, Schematic Diagram, PCB Design for PIKA-OPEN-HARDWARE| 冰点 (WeChat Name)| |Driver Design for PIKA-OPEN-HARDWARE|[Kirin](https://gitee.com/ztqkirin)| |Product Design, Component Selection for PIKA-OPEN-HARDWARE| 方海钰 | @@ -652,14 +651,15 @@ In addition to device drivers, developing custom Python modules for MCU is very |implement shell filter | [GorgonMeducer](https://github.com/GorgonMeducer) | |修复socket模块在lwip中fcntl的参数数量错误|[梦程MI](https://gitee.com/dreamcmi) | |support GPIO pika_hal for BLMCU|[codercmd](https://gitee.com/codercmd)| -|Fix Typo on PikaVM.c|[Ikko Eltociear Ashimine](https://gitee.com/eltociear)| +|Fix Typo on PikaVM.c|[Ikko Eltociear Ashimine](https://gitee.com/eltociear) | |Fix type assert on dataArgs.c|[itschina](https://gitee.com/itschina)| |add examples/Device/KEY_POLL.PY|[codercmd](https://gitee.com/codercmd)| -| hmac hashlib base64 aes modules | [梦程MI](https://gitee.com/dreamcmi) | +|hmac hashlib base64 aes modules | [梦程MI](https://gitee.com/dreamcmi) | |fix pikaCompiler build error on macos|[梦程MI](https://gitee.com/dreamcmi) | +
Contribute Log On 2022 -| Contribute log | Contributer | +| Contribute log | Contributor | | --- | --- | | request module | [onceday](https://gitee.com/onceday) | | mqtt module | [FlintJ](https://gitee.com/flintj) | @@ -670,27 +670,28 @@ In addition to device drivers, developing custom Python modules for MCU is very |PikaNN module| [Renzhihan](https://github.com/Renzhihan) | | re module | [eglwang](https://gitee.com/eglwang) | | PikaMath.Quaternion() | [purewind7](https://gitee.com/purewind7) | -| contrubute to PikaCV | [purewind7](https://gitee.com/purewind7) | +| contribute to PikaCV | [purewind7](https://gitee.com/purewind7) | | xr806(openharmony) bsp |[sjy](https://gitee.com/shanjiayang)| | ESP32 package |沧御| -| MM32F5277E9P package |[unsigned](https://gitee.com/unsigned0)| -| mm32f5277e9p BSP |[unsigned](https://gitee.com/unsigned0)| +| MM32F5277E9P package |[unsigned_0](https://gitee.com/unsigned0)| +| mm32f5277e9p BSP |[unsigned_0](https://gitee.com/unsigned0)| | Add [CMSIS-PACK](https://pikadoc-en.readthedocs.io/en/latest/get-start_cmsis-pack.html) | [GorgonMeducer](https://github.com/GorgonMeducer) | | donate: air32f103 board * 20 | 合宙 [xinxi204](https://gitee.com/xinxi204) | -| contrubute to PikaMath.Math() | [onceday](https://gitee.com/onceday) | +| contribute to PikaMath.Math() | [onceday](https://gitee.com/onceday) | | add support for Unix Time | [onceday](https://gitee.com/onceday) | -| contrubute to PikaStdLib.String() | [purewind7](https://gitee.com/purewind7) | -| Add [PLOOC](https://github.com/GorgonMeducer/PLOOC) support for pikapython Core | [GorgonMeducer](https://github.com/GorgonMeducer) | +| contribute to PikaStdLib.String() | [purewind7](https://gitee.com/purewind7) | +| Add [PLOOC](https://github.com/GorgonMeducer/PLOOC) support for PikaPython Core | [GorgonMeducer](https://github.com/GorgonMeducer) | | Donate:500¥ (ctypes 相关) | 蒋太平 | +| add support for Unix Time | [onceday](https://gitee.com/onceday) | | fix linux install script | [Maximilian Gerhardt](https://github.com/maxgerhardt) | | ch582 package | [梦程MI](https://gitee.com/dreamcmi) | | ch582 BSP | [梦程MI](https://gitee.com/dreamcmi) | | Donate:EC600X QuecPython Develop board| 移远通信 武加玉 | | Performance Point: 900->1400 | [GorgonMeducer](https://github.com/GorgonMeducer) | -| stm32f051r8 BSP |[unsigned](https://gitee.com/unsigned0)| -| stm32f407ze BSP |[unsigned](https://gitee.com/unsigned0)| -| devc BSP |[unsigned](https://gitee.com/unsigned0)| -| TC264D BSP |[unsigned](https://gitee.com/unsigned0)| +| stm32f051r8 BSP |[unsigned_0](https://gitee.com/unsigned0)| +| stm32f407ze BSP |[unsigned_0](https://gitee.com/unsigned0)| +| devc BSP |[unsigned_0](https://gitee.com/unsigned0)| +| TC264D BSP |[unsigned_0](https://gitee.com/unsigned0)| | PikaVM improvement | [GorgonMeducer](https://github.com/GorgonMeducer) | | W801Device package | 刘延(微信名) | | W806 bsp | 刘延(微信名) | @@ -703,23 +704,23 @@ In addition to device drivers, developing custom Python modules for MCU is very
Contribute Log On 2021 -| Contribute log | Contributer | +| Contribute log | Contributor | | --- | --- | | Donate:ESP32 board、ink lcd*4 | name(微信名) | | Donate:smartloong board | 龙芯俱乐部 石南 | | package/STM32F1 | [sjy](https://gitee.com/shanjiayang) | | package/STM32F103RBBooter | [sjy](https://gitee.com/shanjiayang) | | bsp/stm32f103rb | [sjy](https://gitee.com/shanjiayang) | -| QEMU ARM-2D simulation proejct | [liuduanfei](https://github.com/liuduanfei) | +| QEMU ARM-2D simulation project | [liuduanfei](https://github.com/liuduanfei) | | Donate:GD32E103TB2 2 pic | 信息牛(微信名) | | Rt-thread bsp、port、module| [Meco Jianting Man](https://github.com/mysterywolf) | | Donate:EC600S-CN 4G| 移远模块 | -| Donate:BL706 board|博流智能 [bouffalolab](https://github.com/bouffalolab)| +| Donate:BL706 board|博流智能 [bouffalolab](https://github.com/bouffalolab) | | Donate:CM32M101A 开发板| 孟巍(微信名) | | Donate:APM32F030R8 board | 极海半导体 陈成 | | Donate:APM32E103VB board | 极海半导体 陈成 | | Donate:APEX-Link| 极海半导体 陈成 | -| corde format,add gitattributes| [Meco Jianting Man](https://github.com/mysterywolf) | +| code format,add gitattributes| [Meco Jianting Man](https://github.com/mysterywolf) | | demo/simulation-keil | 千帆(微信名) | | demo/stm32f103zet6/demo01-led-stm32f103zet6 | [甜航](https://github.com/easyzoom) | | demo/stm32f103zet6/demo02-led-stm32f103zet6_tworoot | [甜航](https://github.com/easyzoom) | @@ -730,3 +731,16 @@ In addition to device drivers, developing custom Python modules for MCU is very ## Star History [![Star History Chart](https://api.star-history.com/svg?repos=pikastech/pikascript&type=Date)](https://star-history.com/#pikastech/pikascript&Date) + +# 6. Test and develop Core + +## Test core in docker (recommend) +[get start with docker](https://pikadoc-en.readthedocs.io/en/latest/get-start_linux.html) + +## ✨ Contributors + + + + + +## [How to contribute](https://pikadoc-en.readthedocs.io/en/latest/%E5%A6%82%E5%8F%82%E7%A4%BA%E5%8C81%E7%9A%84%E7%94%9F|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| \ No newline at end of file