diff --git a/cscope.out b/cscope.out
new file mode 100644
index 000000000..1241e87cc
--- /dev/null
+++ b/cscope.out
@@ -0,0 +1,419870 @@
+cscope 15 $HOME/DevCurrent/ems-esp/EMS-ESP               0002356847
+	@.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h
+
+5 
+	~"¤c/ArdušoJsÚ.h
+"
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h
+
+5 #´agm¨
+Úû
+
+
+7 #ifdeà
+__ýlu¥lus
+
+
+9 
+	~"ArdušoJsÚ.hµ
+"
+
+11 
+usšg
+ 
+Çme¥aû
+ 
+	gArdušoJsÚ
+;
+
+15 #”rÜ 
+ArdušoJsÚ
+ 
+»quœes
+ 
+a
+ 
+C
+++ 
+compž”
+, 
+¶—£
+ 
+chªge
+ 
+fže
+ 
+ex‹nsiÚ
+ 
+to
+ .
+cc
+ 
+Ü
+ .
+ýp
+
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+"
+
+9 #ià!
+ARDUINOJSON_DEBUG
+
+
+10 #ifdeà
+__þªg__
+
+
+11 #´agm¨
+þªg
+ 
+sy¡em_h—d”
+
+
+12 #–ià
+defšed
+ 
+__GNUC__
+
+
+13 #´agm¨
+GCC
+ 
+sy¡em_h—d”
+
+
+17 
+	~"ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+"
+
+18 
+	~"ArdušoJsÚ/Objeù/ObjeùRef.hµ
+"
+
+19 
+	~"ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+"
+
+21 
+	~"ArdušoJsÚ/Docum’t/DyÇmicJsÚDocum’t.hµ
+"
+
+22 
+	~"ArdušoJsÚ/Docum’t/S�ticJsÚDocum’t.hµ
+"
+
+24 
+	~"ArdušoJsÚ/A¼ay/A¼ayIm¶.hµ
+"
+
+25 
+	~"ArdušoJsÚ/A¼ay/EËm’tProxy.hµ
+"
+
+26 
+	~"ArdušoJsÚ/A¼ay/Utž™›s.hµ
+"
+
+27 
+	~"ArdušoJsÚ/CÞËùiÚ/CÞËùiÚIm¶.hµ
+"
+
+28 
+	~"ArdušoJsÚ/Objeù/Memb”Proxy.hµ
+"
+
+29 
+	~"ArdušoJsÚ/Objeù/ObjeùIm¶.hµ
+"
+
+30 
+	~"ArdušoJsÚ/V¬ŸÁ/V¬ŸÁAsIm¶.hµ
+"
+
+31 
+	~"ArdušoJsÚ/V¬ŸÁ/V¬ŸÁCom·».hµ
+"
+
+32 
+	~"ArdušoJsÚ/V¬ŸÁ/V¬ŸÁIm¶.hµ
+"
+
+34 
+	~"ArdušoJsÚ/JsÚ/JsÚDe£rŸliz”.hµ
+"
+
+35 
+	~"ArdušoJsÚ/JsÚ/JsÚS”Ÿliz”.hµ
+"
+
+36 
+	~"ArdušoJsÚ/JsÚ/P»‰yJsÚS”Ÿliz”.hµ
+"
+
+37 
+	~"ArdušoJsÚ/MsgPack/MsgPackDe£rŸliz”.hµ
+"
+
+38 
+	~"ArdušoJsÚ/MsgPack/MsgPackS”Ÿliz”.hµ
+"
+
+40 
+	~"ArdušoJsÚ/com·tibž™y.hµ
+"
+
+42 
+Çme¥aû
+ 
+	gArdušoJsÚ
+ {
+
+43 
+	gARDUINOJSON_NAMESPACE
+::
+	tA¼ayCÚ¡Ref
+ 
+	tJsÚA¼ayCÚ¡
+;
+
+44 
+	gARDUINOJSON_NAMESPACE
+::
+	tA¼ayRef
+ 
+	tJsÚA¼ay
+;
+
+45 
+	gARDUINOJSON_NAMESPACE
+::
+	tFlßt
+ 
+	tJsÚFlßt
+;
+
+46 
+	gARDUINOJSON_NAMESPACE
+::
+	tIÁeg”
+ 
+	tJsÚIÁeg”
+;
+
+47 
+	gARDUINOJSON_NAMESPACE
+::
+	tObjeùCÚ¡Ref
+ 
+	tJsÚObjeùCÚ¡
+;
+
+48 
+	gARDUINOJSON_NAMESPACE
+::
+	tObjeùRef
+ 
+	tJsÚObjeù
+;
+
+49 
+	gARDUINOJSON_NAMESPACE
+::
+	tPaœ
+ 
+	tJsÚPaœ
+;
+
+50 
+	gARDUINOJSON_NAMESPACE
+::
+	tPaœCÚ¡
+ 
+	tJsÚPaœCÚ¡
+;
+
+51 
+	gARDUINOJSON_NAMESPACE
+::
+	tSŒšg
+ 
+	tJsÚSŒšg
+;
+
+52 
+	gARDUINOJSON_NAMESPACE
+::
+	tUIÁ
+ 
+	tJsÚUIÁ
+;
+
+53 
+	gARDUINOJSON_NAMESPACE
+::
+	tV¬ŸÁCÚ¡Ref
+ 
+	tJsÚV¬ŸÁCÚ¡
+;
+
+54 
+	gARDUINOJSON_NAMESPACE
+::
+	tV¬ŸÁRef
+ 
+	tJsÚV¬ŸÁ
+;
+
+55 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+BasicJsÚDocum’t
+;
+
+56 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+cÝyA¼ay
+;
+
+57 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+De£rŸliz©iÚE¼Ü
+;
+
+58 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+de£rŸlizeJsÚ
+;
+
+59 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+de£rŸlizeMsgPack
+;
+
+60 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+DyÇmicJsÚDocum’t
+;
+
+61 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+JsÚDocum’t
+;
+
+62 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+m—su»JsÚ
+;
+
+63 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlized
+;
+
+64 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlizeJsÚ
+;
+
+65 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlizeJsÚP»‰y
+;
+
+66 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlizeMsgPack
+;
+
+67 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+S�ticJsÚDocum’t
+;
+
+69 
+Çme¥aû
+ 
+	gDe£rŸliz©iÚO±iÚ
+ {
+
+70 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+Fž‹r
+;
+
+71 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+Ne¡šgLim™
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+šlše
+ 
+V¬ŸÁD©a
+ *
+¬¿yAdd
+(
+CÞËùiÚD©a
+ *
+¬r
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+12  
+	g¬r
+ ?‡¼->
+addEËm’t
+(
+poÞ
+) : 0;
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+16 
+šlše
+ 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+¬¿yAcû±
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+¬r
+,
+
+17 
+TVis™Ü
+ &
+vis™Ü
+) {
+
+18 ià(
+	g¬r
+)
+
+19  
+	gvis™Ü
+.
+vis™A¼ay
+(*
+¬r
+);
+
+21  
+	gvis™Ü
+.
+vis™NuÎ
+();
+
+24 
+šlše
+ 
+boÞ
+ 
+¬¿yEqu®s
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+lhs
+, cÚ¡ CÞËùiÚD©¨*
+rhs
+) {
+
+25 ià(
+	glhs
+ =ð
+rhs
+)
+
+26  
+Œue
+;
+
+27 ià(!
+	glhs
+ || !
+	grhs
+)
+
+28  
+	gçl£
+;
+
+29  
+	glhs
+->
+equ®sA¼ay
+(*
+rhs
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+13 
+šlše
+ 
+A¼ayRef
+ 
+	gA¼ayShÜtcuts
+<
+	gTA¼ay
+>::
+ü—‹Ne¡edA¼ay
+() const {
+
+14  
+im¶
+()->
+addEËm’t
+().
+‹m¶©e
+ 
+to
+<
+A¼ayRef
+>();
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+18 
+šlše
+ 
+ObjeùRef
+ 
+	gA¼ayShÜtcuts
+<
+	gTA¼ay
+>::
+ü—‹Ne¡edObjeù
+() const {
+
+19  
+im¶
+()->
+addEËm’t
+().
+‹m¶©e
+ 
+to
+<
+ObjeùRef
+>();
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+23 
+šlše
+ 
+	gEËm’tProxy
+<
+	gTA¼ay
+> 
+	gA¼ayShÜtcuts
+<TA¼ay>::
+Ý”©Ü
+[](
+
+24 
+size_t
+ 
+šdex
+) const {
+
+25  
+EËm’tProxy
+<
+TA¼ay
+>(*
+im¶
+(), 
+	gšdex
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/V¬ŸÁ/SlÙFunùiÚs.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cV¬ŸÁPŒ
+ {
+
+13 
+	gpublic
+:
+
+14 
+V¬ŸÁPŒ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁD©a
+ *
+d©a
+è: 
+_v¬ŸÁ
+(pool, data) {}
+
+16 
+V¬ŸÁRef
+ *
+	gÝ”©Ü
+->() {
+
+17  &
+	g_v¬ŸÁ
+;
+
+20 
+	gV¬ŸÁRef
+ &
+	gÝ”©Ü
+*() {
+
+21  
+	g_v¬ŸÁ
+;
+
+24 
+	g´iv©e
+:
+
+25 
+V¬ŸÁRef
+ 
+_v¬ŸÁ
+;
+
+28 þas 
+	cA¼ayI‹¿tÜ
+ {
+
+29 
+	gpublic
+:
+
+30 
+A¼ayI‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+31 
+ex¶ic™
+ 
+A¼ayI‹¿tÜ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁSlÙ
+ *
+¦Ù
+)
+
+32 : 
+_poÞ
+(
+poÞ
+), 
+_¦Ù
+(
+¦Ù
+) {}
+
+34 
+V¬ŸÁRef
+ 
+	gÝ”©Ü
+*() const {
+
+35  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_¦Ù
+->
+d©a
+());
+
+37 
+V¬ŸÁPŒ
+ 
+	gÝ”©Ü
+->() {
+
+38  
+V¬ŸÁPŒ
+(
+_poÞ
+, 
+_¦Ù
+->
+d©a
+());
+
+41 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+A¼ayI‹¿tÜ
+ &
+Ùh”
+) const {
+
+42  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+45 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+A¼ayI‹¿tÜ
+ &
+Ùh”
+) const {
+
+46  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+49 
+	gA¼ayI‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+50 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+51  *
+	gthis
+;
+
+54 
+	gA¼ayI‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+55 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+56  *
+	gthis
+;
+
+59 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+60  
+	g_¦Ù
+;
+
+63 
+	g´iv©e
+:
+
+64 
+MemÜyPoÞ
+ *
+_poÞ
+;
+
+65 
+V¬ŸÁSlÙ
+ *
+	g_¦Ù
+;
+
+68 þas 
+	cV¬ŸÁCÚ¡PŒ
+ {
+
+69 
+	gpublic
+:
+
+70 
+V¬ŸÁCÚ¡PŒ
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+d©a
+è: 
+_v¬ŸÁ
+(data) {}
+
+72 
+V¬ŸÁCÚ¡Ref
+ *
+Ý”©Ü
+->() {
+
+73  &
+_v¬ŸÁ
+;
+
+76 
+	gV¬ŸÁCÚ¡Ref
+ &
+	gÝ”©Ü
+*() {
+
+77  
+	g_v¬ŸÁ
+;
+
+80 
+	g´iv©e
+:
+
+81 
+V¬ŸÁCÚ¡Ref
+ 
+_v¬ŸÁ
+;
+
+84 þas 
+	cA¼ayCÚ¡RefI‹¿tÜ
+ {
+
+85 
+	gpublic
+:
+
+86 
+A¼ayCÚ¡RefI‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+87 
+ex¶ic™
+ 
+A¼ayCÚ¡RefI‹¿tÜ
+(cÚ¡ 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_¦Ù
+(slot) {}
+
+89 
+V¬ŸÁCÚ¡Ref
+ 
+Ý”©Ü
+*() const {
+
+90  
+V¬ŸÁCÚ¡Ref
+(
+_¦Ù
+->
+d©a
+());
+
+92 
+V¬ŸÁCÚ¡PŒ
+ 
+	gÝ”©Ü
+->() {
+
+93  
+V¬ŸÁCÚ¡PŒ
+(
+_¦Ù
+->
+d©a
+());
+
+96 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+A¼ayCÚ¡RefI‹¿tÜ
+ &
+Ùh”
+) const {
+
+97  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+100 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+A¼ayCÚ¡RefI‹¿tÜ
+ &
+Ùh”
+) const {
+
+101  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+104 
+	gA¼ayCÚ¡RefI‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+105 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+106  *
+	gthis
+;
+
+109 
+	gA¼ayCÚ¡RefI‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+110 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+111  *
+	gthis
+;
+
+114 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+115  
+	g_¦Ù
+;
+
+118 
+	g´iv©e
+:
+
+119 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+_¦Ù
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayFunùiÚs.hµ
+>
+
+8 
+	~<ArdušoJsÚ/A¼ay/A¼ayI‹¿tÜ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+13 
+	#JSON_ARRAY_SIZE
+(
+NUMBER_OF_ELEMENTS
+) \
+
+14 ((
+NUMBER_OF_ELEMENTS
+è* (
+ARDUINOJSON_NAMESPACE
+::
+V¬ŸÁSlÙ
+))
+
+	)
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+þass
+ 
+	gObjeùRef
+;
+
+19 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+20 
+þass
+ 
+	gEËm’tProxy
+;
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTD©a
+>
+
+23 þas 
+	cA¼ayRefBa£
+ {
+
+24 
+	gpublic
+:
+
+25 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+26 cÚ¡ * 
+d©a
+ = 
+_d©a
+;
+
+27  
+V¬ŸÁCÚ¡Ref
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+31 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(
+TVis™Ü
+& 
+vis™Ü
+) const {
+
+32  
+¬¿yAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+35 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+36  
+	g_d©a
+ == 0;
+
+39 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+boÞ
+() const {
+
+40  
+	g_d©a
+ != 0;
+
+43 
+FORCE_INLINE
+ 
+size_t
+ 
+memÜyU§ge
+() const {
+
+44  
+	g_d©a
+ ? _d©a->
+memÜyU§ge
+() : 0;
+
+47 
+FORCE_INLINE
+ 
+size_t
+ 
+Ã¡šg
+() const {
+
+48  
+	g_d©a
+ ? _d©a->
+Ã¡šg
+() : 0;
+
+51 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+52  
+	g_d©a
+ ? _d©a->
+size
+() : 0;
+
+55 
+	g´Ùeùed
+:
+
+56 
+A¼ayRefBa£
+(
+TD©a
+* 
+d©a
+è: 
+_d©a
+(data) {}
+
+57 
+TD©a
+* 
+_d©a
+;
+
+60 
+þass
+ 
+	gA¼ayCÚ¡Ref
+ : 
+public
+ 
+A¼ayRefBa£
+<cÚ¡ 
+CÞËùiÚD©a
+>,
+
+61 
+public
+ 
+	gVis™abË
+ {
+
+62 
+ä›nd
+ 
+þass
+ 
+	gA¼ayRef
+;
+
+63 
+	gA¼ayRefBa£
+<cÚ¡ 
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+65 
+	gpublic
+:
+
+66 
+A¼ayCÚ¡RefI‹¿tÜ
+ 
+	t™”©Ü
+;
+
+68 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+69 ià(!
+	g_d©a
+)
+
+70  
+™”©Ü
+();
+
+71  
+™”©Ü
+(
+_d©a
+->
+h—d
+());
+
+74 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+75  
+™”©Ü
+();
+
+78 
+FORCE_INLINE
+ 
+A¼ayCÚ¡Ref
+(è: 
+ba£_ty³
+(0) {}
+
+79 
+FORCE_INLINE
+ 
+A¼ayCÚ¡Ref
+(cÚ¡ 
+CÞËùiÚD©a
+* 
+d©a
+è: 
+ba£_ty³
+(data) {}
+
+81 
+FORCE_INLINE
+ 
+boÞ
+ 
+Ý”©Ü
+==(
+A¼ayCÚ¡Ref
+ 
+rhs
+) const {
+
+82  
+¬¿yEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+85 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) const {
+
+86  
+g‘EËm’t
+(
+šdex
+);
+
+89 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+90  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+ ? _d©a->
+g‘EËm’t
+(
+šdex
+) : 0);
+
+94 
+þass
+ 
+	gA¼ayRef
+ : 
+public
+ 
+A¼ayRefBa£
+<
+CÞËùiÚD©a
+>,
+
+95 
+public
+ 
+	gA¼ayShÜtcuts
+<
+	gA¼ayRef
+>,
+
+96 
+public
+ 
+	gVis™abË
+ {
+
+97 
+	gA¼ayRefBa£
+<
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+99 
+	gpublic
+:
+
+100 
+A¼ayI‹¿tÜ
+ 
+	t™”©Ü
+;
+
+102 
+FORCE_INLINE
+ 
+A¼ayRef
+(è: 
+ba£_ty³
+(0), 
+_poÞ
+(0) {}
+
+103 
+FORCE_INLINE
+ 
+A¼ayRef
+(
+MemÜyPoÞ
+* 
+poÞ
+, 
+CÞËùiÚD©a
+* 
+d©a
+)
+
+104 : 
+ba£_ty³
+(
+d©a
+), 
+_poÞ
+(
+poÞ
+) {}
+
+106 
+Ý”©Ü
+ 
+V¬ŸÁRef
+() {
+
+107 * 
+	gd©a
+ = 
+_d©a
+;
+
+108  
+V¬ŸÁRef
+(
+_poÞ
+, 
+»š‹½»t_ÿ¡
+<
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+111 
+Ý”©Ü
+ 
+A¼ayCÚ¡Ref
+() const {
+
+112  
+A¼ayCÚ¡Ref
+(
+_d©a
+);
+
+115 
+V¬ŸÁRef
+ 
+addEËm’t
+() const {
+
+116  
+V¬ŸÁRef
+(
+_poÞ
+, 
+¬¿yAdd
+(
+_d©a
+, _pool));
+
+119 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+120 ià(!
+	g_d©a
+)
+
+121  
+™”©Ü
+();
+
+122  
+™”©Ü
+(
+_poÞ
+, 
+_d©a
+->
+h—d
+());
+
+125 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+126  
+™”©Ü
+();
+
+130 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+A¼ayCÚ¡Ref
+ 
+¤c
+) const {
+
+131 ià(!
+	g_d©a
+ || !
+	g¤c
+._data)
+
+132  
+	gçl£
+;
+
+133  
+	g_d©a
+->
+cÝyFrom
+(*
+¤c
+.
+_d©a
+, 
+_poÞ
+);
+
+136 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+A¼ayRef
+ 
+rhs
+) const {
+
+137  
+¬¿yEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+141 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+142  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ ? _d©a->
+g‘OrAddEËm’t
+(
+šdex
+, _pool) : 0);
+
+146 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+147  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ ? _d©a->
+g‘EËm’t
+(
+šdex
+) : 0);
+
+151 
+FORCE_INLINE
+ 
+»move
+(
+™”©Ü
+ 
+™
+) const {
+
+152 ià(!
+	g_d©a
+)
+
+154 
+	g_d©a
+->
+»moveSlÙ
+(
+™
+.
+š‹º®
+());
+
+158 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+159 ià(!
+	g_d©a
+)
+
+161 
+	g_d©a
+->
+»moveEËm’t
+(
+šdex
+);
+
+164 
+	g´iv©e
+:
+
+165 
+MemÜyPoÞ
+* 
+_poÞ
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+13 
+þass
+ 
+	gEËm’tProxy
+;
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+16 þas 
+	cA¼ayShÜtcuts
+ {
+
+17 
+	gpublic
+:
+
+19 
+FORCE_INLINE
+ 
+EËm’tProxy
+<
+TA¼ay
+> 
+Ý”©Ü
+[](
+size_t
+ 
+šdex
+) const;
+
+21 
+FORCE_INLINE
+ 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+() const;
+
+23 
+FORCE_INLINE
+ 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+() const;
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+31 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(cÚ¡ 
+T
+ &
+v®ue
+) const {
+
+32  
+im¶
+()->
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+37 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+38 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(
+T
+ *
+v®ue
+) const {
+
+39  
+im¶
+()->
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+42 
+	g´iv©e
+:
+
+43 cÚ¡ 
+TA¼ay
+ *
+im¶
+() const {
+
+44  
+¡©ic_ÿ¡
+<cÚ¡ 
+TA¼ay
+ *>(
+this
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁO³¿tÜs.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁShÜtcuts.hµ
+>
+
+10 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁTo.hµ
+>
+
+12 #ifdeà
+_MSC_VER
+
+
+13 #´agm¨
+w¬nšg
+(
+push
+)
+
+14 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4522)
+
+17 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+20 
+þass
+ 
+	gEËm’tProxy
+ : 
+public
+ 
+V¬ŸÁO³¿tÜs
+<
+EËm’tProxy
+<
+TA¼ay
+> >,
+
+21 
+public
+ 
+	gV¬ŸÁShÜtcuts
+<
+	gEËm’tProxy
+<
+	gTA¼ay
+> >,
+
+22 
+public
+ 
+	gVis™abË
+ {
+
+23 
+	gEËm’tProxy
+<
+	tTA¼ay
+> 
+	tthis_ty³
+;
+
+25 
+	gpublic
+:
+
+26 
+FORCE_INLINE
+ 
+EËm’tProxy
+(
+TA¼ay
+ 
+¬¿y
+, 
+size_t
+ 
+šdex
+)
+
+27 : 
+_¬¿y
+(
+¬¿y
+), 
+_šdex
+(
+šdex
+) {}
+
+29 
+FORCE_INLINE
+ 
+EËm’tProxy
+(cÚ¡ EËm’tProxy& 
+¤c
+)
+
+30 : 
+_¬¿y
+(
+¤c
+._¬¿y), 
+_šdex
+(src._index) {}
+
+32 
+FORCE_INLINE
+ 
+	gthis_ty³
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+this_ty³
+& 
+¤c
+) {
+
+33 
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+¤c
+.
+as
+<
+V¬ŸÁCÚ¡Ref
+>());
+
+34  *
+	gthis
+;
+
+42 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+43 
+FORCE_INLINE
+ 
+	gthis_ty³
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+T
+& 
+¤c
+) {
+
+44 
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+¤c
+);
+
+45  *
+	gthis
+;
+
+50 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+51 
+FORCE_INLINE
+ 
+	gthis_ty³
+& 
+	gÝ”©Ü
+=(
+T
+* 
+¤c
+) {
+
+52 
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+¤c
+);
+
+53  *
+	gthis
+;
+
+56 
+FORCE_INLINE
+ 
+þ—r
+() const {
+
+57 
+g‘Up¡»amEËm’t
+().
+þ—r
+();
+
+60 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+61  
+g‘Up¡»amEËm’t
+().
+isNuÎ
+();
+
+64 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+65 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gT
+>::
+ty³
+ 
+as
+() const {
+
+66  
+g‘Up¡»amEËm’t
+().
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+69 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+70 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+T
+() const {
+
+71  
+g‘Up¡»amEËm’t
+();
+
+74 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+75 
+FORCE_INLINE
+ 
+boÞ
+ 
+is
+() const {
+
+76  
+g‘Up¡»amEËm’t
+().
+‹m¶©e
+ 
+	gis
+<
+	gT
+>();
+
+79 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+80 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁTo
+<
+	gT
+>::
+ty³
+ 
+to
+() const {
+
+81  
+g‘OrAddUp¡»amEËm’t
+().
+‹m¶©e
+ 
+to
+<
+T
+>();
+
+89 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+90 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(cÚ¡ 
+TV®ue
+& 
+v®ue
+) const {
+
+91  
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+v®ue
+);
+
+96 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+97 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+TV®ue
+* 
+v®ue
+) const {
+
+98  
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+v®ue
+);
+
+101 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+102 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(
+TVis™Ü
+& 
+vis™Ü
+) const {
+
+103  
+g‘Up¡»amEËm’t
+().
+acû±
+(
+vis™Ü
+);
+
+106 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+107  
+g‘Up¡»amEËm’t
+().
+size
+();
+
+110 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+111 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TNe¡edKey
+* 
+key
+) const {
+
+112  
+g‘Up¡»amEËm’t
+().
+g‘Memb”
+(
+key
+);
+
+115 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+116 
+V¬ŸÁRef
+ 
+g‘Memb”
+(cÚ¡ 
+TNe¡edKey
+& 
+key
+) const {
+
+117  
+g‘Up¡»amEËm’t
+().
+g‘Memb”
+(
+key
+);
+
+120 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+121 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TNe¡edKey
+* 
+key
+) const {
+
+122  
+g‘OrAddUp¡»amEËm’t
+().
+g‘OrAddMemb”
+(
+key
+);
+
+125 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+126 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TNe¡edKey
+& 
+key
+) const {
+
+127  
+g‘OrAddUp¡»amEËm’t
+().
+g‘OrAddMemb”
+(
+key
+);
+
+130 
+V¬ŸÁRef
+ 
+addEËm’t
+() const {
+
+131  
+g‘OrAddUp¡»amEËm’t
+().
+addEËm’t
+();
+
+134 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+135  
+g‘OrAddUp¡»amEËm’t
+().
+g‘EËm’t
+(
+šdex
+);
+
+138 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+139  
+g‘OrAddUp¡»amEËm’t
+().
+g‘OrAddEËm’t
+(
+šdex
+);
+
+142 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+143 
+g‘Up¡»amEËm’t
+().
+»move
+(
+šdex
+);
+
+148 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+149 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+150 
+TCh¬
+* 
+key
+) const {
+
+151 
+g‘Up¡»amEËm’t
+().
+»move
+(
+key
+);
+
+155 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+156 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+157 cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+158 
+g‘Up¡»amEËm’t
+().
+»move
+(
+key
+);
+
+161 
+	g´iv©e
+:
+
+162 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Up¡»amEËm’t
+() const {
+
+163  
+_¬¿y
+.
+g‘EËm’t
+(
+_šdex
+);
+
+166 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddUp¡»amEËm’t
+() const {
+
+167  
+	g_¬¿y
+.
+g‘OrAddEËm’t
+(
+_šdex
+);
+
+170 
+TA¼ay
+ 
+	g_¬¿y
+;
+
+171 cÚ¡ 
+size_t
+ 
+	g_šdex
+;
+
+176 #ifdeà
+_MSC_VER
+
+
+177 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Docum’t/JsÚDocum’t.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+14 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_¬¿y
+<
+	gT
+>::
+v®ue
+ &&
+
+15 !
+is_ba£_of
+<
+JsÚDocum’t
+, 
+	gTDe¡š©iÚ
+>::
+v®ue
+,
+
+16 
+	gboÞ
+>::
+ty³
+
+
+17 
+cÝyA¼ay
+(
+T
+ (&
+¤c
+)[
+N
+], cÚ¡ 
+TDe¡š©iÚ
+& 
+d¡
+) {
+
+18  
+cÝyA¼ay
+(
+¤c
+, 
+N
+, 
+d¡
+);
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN
+>
+
+23 
+šlše
+ 
+boÞ
+ 
+cÝyA¼ay
+(
+T
+ (&
+¤c
+)[
+N
+], 
+JsÚDocum’t
+& 
+d¡
+) {
+
+24  
+cÝyA¼ay
+(
+¤c
+, 
+d¡
+.
+to
+<
+A¼ayRef
+>());
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+29 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_¬¿y
+<
+	gT
+>::
+v®ue
+ &&
+
+30 !
+is_ba£_of
+<
+JsÚDocum’t
+, 
+	gTDe¡š©iÚ
+>::
+v®ue
+,
+
+31 
+	gboÞ
+>::
+ty³
+
+
+32 
+cÝyA¼ay
+(
+T
+* 
+¤c
+, 
+size_t
+ 
+Ën
+, cÚ¡ 
+TDe¡š©iÚ
+& 
+d¡
+) {
+
+33 
+boÞ
+ 
+	gok
+ = 
+Œue
+;
+
+34 
+size_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; i++) {
+
+35 
+	gok
+ &ð
+d¡
+.
+add
+(
+¤c
+[
+i
+]);
+
+37  
+	gok
+;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+42 
+šlše
+ 
+boÞ
+ 
+cÝyA¼ay
+(
+T
+* 
+¤c
+, 
+size_t
+ 
+Ën
+, 
+JsÚDocum’t
+& 
+d¡
+) {
+
+43  
+cÝyA¼ay
+(
+¤c
+, 
+Ën
+, 
+d¡
+.
+to
+<
+A¼ayRef
+>());
+
+47 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN1
+, size_ˆ
+	gN2
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+48 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_ba£_of
+<
+	gJsÚDocum’t
+, 
+	gTDe¡š©iÚ
+>::
+v®ue
+,
+
+49 
+	gboÞ
+>::
+ty³
+
+
+50 
+cÝyA¼ay
+(
+T
+ (&
+¤c
+)[
+N1
+][
+N2
+], cÚ¡ 
+TDe¡š©iÚ
+& 
+d¡
+) {
+
+51 
+boÞ
+ 
+	gok
+ = 
+Œue
+;
+
+52 
+size_t
+ 
+	gi
+ = 0; i < 
+	gN1
+; i++) {
+
+53 
+A¼ayRef
+ 
+	gÃ¡edA¼ay
+ = 
+d¡
+.
+ü—‹Ne¡edA¼ay
+();
+
+54 
+size_t
+ 
+	gj
+ = 0; j < 
+	gN2
+; j++) {
+
+55 
+	gok
+ &ð
+Ã¡edA¼ay
+.
+add
+(
+¤c
+[
+i
+][
+j
+]);
+
+58  
+	gok
+;
+
+62 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN1
+, size_ˆ
+	gN2
+>
+
+63 
+šlše
+ 
+boÞ
+ 
+cÝyA¼ay
+(
+T
+ (&
+¤c
+)[
+N1
+][
+N2
+], 
+JsÚDocum’t
+& 
+d¡
+) {
+
+64  
+cÝyA¼ay
+(
+¤c
+, 
+d¡
+.
+to
+<
+A¼ayRef
+>());
+
+67 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+68 
+þass
+ 
+	gA¼ayCÝ›r1D
+ : 
+public
+ 
+Vis™Ü
+<
+size_t
+> {
+
+69 
+public
+:
+
+70 
+A¼ayCÝ›r1D
+(
+T
+* 
+de¡š©iÚ
+, 
+size_t
+ 
+ÿ·c™y
+)
+
+71 : 
+_de¡š©iÚ
+(
+de¡š©iÚ
+), 
+_ÿ·c™y
+(
+ÿ·c™y
+) {}
+
+73 
+size_t
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+¬¿y
+) {
+
+74 
+size_t
+ 
+	gsize
+ = 0;
+
+75 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+¬¿y
+.
+h—d
+();
+
+77 
+	g¦Ù
+ !ð0 && 
+size
+ < 
+_ÿ·c™y
+) {
+
+78 
+_de¡š©iÚ
+[
+size
+++] = 
+v¬ŸÁAs
+<
+T
+>(
+¦Ù
+->
+d©a
+());
+
+79 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+81  
+	gsize
+;
+
+84 
+size_t
+ 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+&) {
+
+88 
+size_t
+ 
+vis™Flßt
+(
+Flßt
+) {
+
+92 
+size_t
+ 
+vis™SŒšg
+(const *) {
+
+96 
+size_t
+ 
+vis™RawJsÚ
+(const *, size_t) {
+
+100 
+size_t
+ 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+) {
+
+104 
+size_t
+ 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+) {
+
+108 
+size_t
+ 
+vis™BoÞ—n
+(
+boÞ
+) {
+
+112 
+size_t
+ 
+vis™NuÎ
+() {
+
+116 
+	g´iv©e
+:
+
+117 
+T
+* 
+_de¡š©iÚ
+;
+
+118 
+size_t
+ 
+	g_ÿ·c™y
+;
+
+121 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN1
+, size_ˆ
+	gN2
+>
+
+122 
+þass
+ 
+	gA¼ayCÝ›r2D
+ : 
+public
+ 
+Vis™Ü
+<> {
+
+123 
+public
+:
+
+124 
+A¼ayCÝ›r2D
+(
+T
+ (*
+de¡š©iÚ
+)[
+N1
+][
+N2
+]è: 
+_de¡š©iÚ
+(destination) {}
+
+126 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+¬¿y
+) {
+
+127 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+¬¿y
+.
+h—d
+();
+
+128 
+size_t
+ 
+	gn
+ = 0;
+
+129 
+	g¦Ù
+ !ð0 && 
+n
+ < 
+N1
+) {
+
+130 
+A¼ayCÝ›r1D
+<
+T
+> 
+cÝ›r
+((*
+_de¡š©iÚ
+)[
+n
+++], 
+N2
+);
+
+131 
+v¬ŸÁAcû±
+(
+¦Ù
+->
+d©a
+(), 
+cÝ›r
+);
+
+132 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+135 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+&) {}
+
+136 
+vis™Flßt
+(
+Flßt
+) {}
+
+137 
+vis™SŒšg
+(const *) {}
+
+138 
+vis™RawJsÚ
+(cÚ¡ *, 
+size_t
+) {}
+
+139 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+) {}
+
+140 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+) {}
+
+141 
+vis™BoÞ—n
+(
+boÞ
+) {}
+
+142 
+vis™NuÎ
+() {}
+
+144 
+	g´iv©e
+:
+
+145 
+T
+ (*
+_de¡š©iÚ
+)[
+N1
+][
+N2
+];
+
+146 
+size_t
+ 
+	g_ÿ·c™y1
+, 
+	g_ÿ·c™y2
+;
+
+150 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gT
+, 
+size_t
+ 
+	gN
+>
+
+151 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_¬¿y
+<
+	gT
+>::
+v®ue
+, 
+	gsize_t
+>::
+ty³
+ 
+cÝyA¼ay
+(
+
+152 cÚ¡ 
+TSourû
+& 
+¤c
+, 
+T
+ (&
+d¡
+)[
+N
+]) {
+
+153  
+cÝyA¼ay
+(
+¤c
+, 
+d¡
+, 
+N
+);
+
+157 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gT
+>
+
+158 
+šlše
+ 
+size_t
+ 
+cÝyA¼ay
+(cÚ¡ 
+TSourû
+& 
+¤c
+, 
+T
+* 
+d¡
+, size_ˆ
+Ën
+) {
+
+159 
+	gA¼ayCÝ›r1D
+<
+	gT
+> 
+cÝ›r
+(
+d¡
+, 
+Ën
+);
+
+161  
+	g¤c
+.
+acû±
+(
+cÝ›r
+);
+
+165 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gT
+, 
+size_t
+ 
+	gN1
+, size_ˆ
+	gN2
+>
+
+166 
+šlše
+ 
+cÝyA¼ay
+(cÚ¡ 
+TSourû
+& 
+¤c
+, 
+T
+ (&
+d¡
+)[
+N1
+][
+N2
+]) {
+
+167 
+	gA¼ayCÝ›r2D
+<
+	gT
+, 
+	gN1
+, 
+	gN2
+> 
+cÝ›r
+(&
+d¡
+);
+
+168 
+	g¤c
+.
+acû±
+(
+cÝ›r
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+	~<¡ddef.h
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+þass
+ 
+	gMemÜyPoÞ
+;
+
+15 
+þass
+ 
+	gV¬ŸÁD©a
+;
+
+16 
+þass
+ 
+	gV¬ŸÁSlÙ
+;
+
+18 þas 
+	cCÞËùiÚD©a
+ {
+
+19 
+V¬ŸÁSlÙ
+ *
+	g_h—d
+;
+
+20 
+V¬ŸÁSlÙ
+ *
+	g_�ž
+;
+
+22 
+	gpublic
+:
+
+31 
+V¬ŸÁD©a
+ *
+addEËm’t
+(
+MemÜyPoÞ
+ *
+poÞ
+);
+
+33 
+V¬ŸÁD©a
+ *
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const;
+
+35 
+V¬ŸÁD©a
+ *
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+37 
+»moveEËm’t
+(
+size_t
+ 
+šdex
+);
+
+39 
+boÞ
+ 
+equ®sA¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+Ùh”
+) const;
+
+43 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+44 
+V¬ŸÁD©a
+ *
+addMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+46 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+47 
+V¬ŸÁD©a
+ *
+g‘Memb”
+(
+TAd­‹dSŒšg
+ 
+key
+) const;
+
+49 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+50 
+V¬ŸÁD©a
+ *
+g‘OrAddMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+52 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+53 
+»moveMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+) {
+
+54 
+»moveSlÙ
+(
+g‘SlÙ
+(
+key
+));
+
+57 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+58 
+boÞ
+ 
+cÚ�šsKey
+(cÚ¡ 
+TAd­‹dSŒšg
+ &
+key
+) const;
+
+60 
+boÞ
+ 
+equ®sObjeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+Ùh”
+) const;
+
+64 
+þ—r
+();
+
+65 
+size_t
+ 
+memÜyU§ge
+() const;
+
+66 
+size_t
+ 
+Ã¡šg
+() const;
+
+67 
+size_t
+ 
+size
+() const;
+
+69 
+V¬ŸÁSlÙ
+ *
+addSlÙ
+(
+MemÜyPoÞ
+ *);
+
+70 
+»moveSlÙ
+(
+V¬ŸÁSlÙ
+ *
+¦Ù
+);
+
+72 
+boÞ
+ 
+cÝyFrom
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+¤c
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+74 
+V¬ŸÁSlÙ
+ *
+h—d
+() const {
+
+75  
+	g_h—d
+;
+
+78 
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,…Œdiff_ˆ
+v¬ŸÁDi¡ªû
+);
+
+80 
+	g´iv©e
+:
+
+81 
+V¬ŸÁSlÙ
+ *
+g‘SlÙ
+(
+size_t
+ 
+šdex
+) const;
+
+83 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+84 
+V¬ŸÁSlÙ
+ *
+g‘SlÙ
+(
+TAd­‹dSŒšg
+ 
+key
+) const;
+
+86 
+V¬ŸÁSlÙ
+ *
+g‘P»viousSlÙ
+(VariantSlot *) const;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁEqu®s
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+a
+, cÚ¡ V¬ŸÁD©a* 
+b
+) {
+
+13  
+v¬ŸÁCom·»
+(
+a
+, 
+b
+è=ð
+COMPARE_RESULT_EQUAL
+;
+
+16 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+addSlÙ
+(
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+17 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+poÞ
+->
+®locV¬ŸÁ
+();
+
+18 ià(!
+	g¦Ù
+)
+
+21 ià(
+	g_�ž
+) {
+
+22 
+	g_�ž
+->
+£tNextNÙNuÎ
+(
+¦Ù
+);
+
+23 
+	g_�ž
+ = 
+¦Ù
+;
+
+25 
+	g_h—d
+ = 
+¦Ù
+;
+
+26 
+	g_�ž
+ = 
+¦Ù
+;
+
+29 
+	g¦Ù
+->
+þ—r
+();
+
+30  
+	g¦Ù
+;
+
+33 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+addEËm’t
+(
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+34  
+¦ÙD©a
+(
+addSlÙ
+(
+poÞ
+));
+
+37 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+38 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+addMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+,
+
+39 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+40 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+addSlÙ
+(
+poÞ
+);
+
+41 ià(!
+¦ÙS‘Key
+(
+¦Ù
+, 
+key
+, 
+poÞ
+)) {
+
+42 
+»moveSlÙ
+(
+¦Ù
+);
+
+45  
+	g¦Ù
+->
+d©a
+();
+
+48 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+þ—r
+() {
+
+49 
+_h—d
+ = 0;
+
+50 
+	g_�ž
+ = 0;
+
+53 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+54 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+cÚ�šsKey
+(cÚ¡ 
+TAd­‹dSŒšg
+& 
+key
+) const {
+
+55  
+g‘SlÙ
+(
+key
+) != 0;
+
+58 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+cÝyFrom
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+¤c
+,
+
+59 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+60 
+þ—r
+();
+
+61 
+V¬ŸÁSlÙ
+* 
+	gs
+ = 
+¤c
+.
+_h—d
+; s; s = 
+s
+->
+Ãxt
+()) {
+
+62 
+V¬ŸÁD©a
+* 
+v¬
+;
+
+63 ià(
+	gs
+->
+key
+() != 0) {
+
+64 ià(
+s
+->
+ownsKey
+())
+
+65 
+v¬
+ = 
+addMemb”
+(
+RamSŒšgAd­‹r
+(
+s
+->
+key
+()), 
+poÞ
+);
+
+67 
+	gv¬
+ = 
+addMemb”
+(
+CÚ¡RamSŒšgAd­‹r
+(
+s
+->
+key
+()), 
+poÞ
+);
+
+69 
+	gv¬
+ = 
+addEËm’t
+(
+poÞ
+);
+
+71 ià(!
+	gv¬
+)
+
+72  
+	gçl£
+;
+
+73 ià(!
+	gv¬
+->
+cÝyFrom
+(*
+s
+->
+d©a
+(), 
+poÞ
+))
+
+74  
+	gçl£
+;
+
+76  
+	gŒue
+;
+
+79 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+equ®sObjeù
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+Ùh”
+) const {
+
+80 
+size_t
+ 
+couÁ
+ = 0;
+
+81 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+_h—d
+; slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+()) {
+
+82 
+V¬ŸÁD©a
+* 
+v1
+ = 
+¦Ù
+->
+d©a
+();
+
+83 
+V¬ŸÁD©a
+* 
+	gv2
+ = 
+Ùh”
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+¦Ù
+->
+key
+()));
+
+84 ià(!
+v¬ŸÁEqu®s
+(
+v1
+, 
+v2
+))
+
+85  
+	gçl£
+;
+
+86 
+	gcouÁ
+++;
+
+88  
+	gcouÁ
+ =ð
+Ùh”
+.
+size
+();
+
+91 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+equ®sA¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+Ùh”
+) const {
+
+92 
+V¬ŸÁSlÙ
+* 
+s1
+ = 
+_h—d
+;
+
+93 
+V¬ŸÁSlÙ
+* 
+	gs2
+ = 
+Ùh”
+.
+_h—d
+;
+
+95 ià(
+	gs1
+ =ð
+s2
+)
+
+96  
+Œue
+;
+
+97 ià(!
+	gs1
+ || !
+	gs2
+)
+
+98  
+	gçl£
+;
+
+99 ià(!
+v¬ŸÁEqu®s
+(
+s1
+->
+d©a
+(), 
+s2
+->data()))
+
+100  
+	gçl£
+;
+
+101 
+	gs1
+ = 
+s1
+->
+Ãxt
+();
+
+102 
+	gs2
+ = 
+s2
+->
+Ãxt
+();
+
+106 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+107 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+g‘SlÙ
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+108 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+_h—d
+;
+
+109 
+	g¦Ù
+) {
+
+110 ià(
+	gkey
+.
+equ®s
+(
+¦Ù
+->
+key
+()))
+
+112 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+114  
+	g¦Ù
+;
+
+117 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+g‘SlÙ
+(
+size_t
+ 
+šdex
+) const {
+
+118  
+_h—d
+->
+Ãxt
+(
+šdex
+);
+
+121 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+g‘P»viousSlÙ
+(V¬ŸÁSlÙ* 
+�rg‘
+) const {
+
+122 
+V¬ŸÁSlÙ
+* 
+cu¼’t
+ = 
+_h—d
+;
+
+123 
+	gcu¼’t
+) {
+
+124 
+V¬ŸÁSlÙ
+* 
+	gÃxt
+ = 
+cu¼’t
+->
+Ãxt
+();
+
+125 ià(
+	gÃxt
+ =ð
+�rg‘
+)
+
+126  
+cu¼’t
+;
+
+127 
+	gcu¼’t
+ = 
+Ãxt
+;
+
+132 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+133 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘Memb”
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+134 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+g‘SlÙ
+(
+key
+);
+
+135  
+	g¦Ù
+ ? slÙ->
+d©a
+() : 0;
+
+138 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+139 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘OrAddMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+,
+
+140 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+142 ià(
+	gkey
+.
+isNuÎ
+())
+
+146 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+g‘SlÙ
+(
+key
+);
+
+147 ià(
+	g¦Ù
+)
+
+148  
+	g¦Ù
+->
+d©a
+();
+
+150  
+addMemb”
+(
+key
+, 
+poÞ
+);
+
+153 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+154 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+g‘SlÙ
+(
+šdex
+);
+
+155  
+	g¦Ù
+ ? slÙ->
+d©a
+() : 0;
+
+158 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+,
+
+159 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+160 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+_h—d
+;
+
+161 
+	g¦Ù
+ && 
+	gšdex
+ > 0) {
+
+162 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+163 
+	gšdex
+--;
+
+165 ià(!
+	g¦Ù
+)
+
+166 
+	gšdex
+++;
+
+167 
+	gšdex
+ > 0) {
+
+168 
+	g¦Ù
+ = 
+addSlÙ
+(
+poÞ
+);
+
+169 
+	gšdex
+--;
+
+171  
+¦ÙD©a
+(
+¦Ù
+);
+
+174 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+»moveSlÙ
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+175 ià(!
+¦Ù
+)
+
+177 
+V¬ŸÁSlÙ
+* 
+	g´ev
+ = 
+g‘P»viousSlÙ
+(
+¦Ù
+);
+
+178 
+V¬ŸÁSlÙ
+* 
+	gÃxt
+ = 
+¦Ù
+->
+Ãxt
+();
+
+179 ià(
+	g´ev
+)
+
+180 
+	g´ev
+->
+£tNext
+(
+Ãxt
+);
+
+182 
+	g_h—d
+ = 
+Ãxt
+;
+
+183 ià(!
+	gÃxt
+)
+
+184 
+	g_�ž
+ = 
+´ev
+;
+
+187 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+»moveEËm’t
+(
+size_t
+ 
+šdex
+) {
+
+188 
+»moveSlÙ
+(
+g‘SlÙ
+(
+šdex
+));
+
+191 
+šlše
+ 
+size_t
+ 
+	gCÞËùiÚD©a
+::
+memÜyU§ge
+() const {
+
+192 
+size_t
+ 
+tÙ®
+ = 0;
+
+193 
+V¬ŸÁSlÙ
+* 
+	gs
+ = 
+_h—d
+; s; s = 
+s
+->
+Ãxt
+()) {
+
+194 
+tÙ®
+ +ð(
+V¬ŸÁSlÙ
+è+ 
+s
+->
+d©a
+()->
+memÜyU§ge
+();
+
+195 ià(
+	gs
+->
+ownsKey
+())
+
+196 
+	gtÙ®
+ +ð
+¡¾’
+(
+s
+->
+key
+()) + 1;
+
+198  
+	gtÙ®
+;
+
+201 
+šlše
+ 
+size_t
+ 
+	gCÞËùiÚD©a
+::
+Ã¡šg
+() const {
+
+202 
+size_t
+ 
+maxChždNe¡šg
+ = 0;
+
+203 
+V¬ŸÁSlÙ
+* 
+	gs
+ = 
+_h—d
+; s; s = 
+s
+->
+Ãxt
+()) {
+
+204 
+size_t
+ 
+chždNe¡šg
+ = 
+s
+->
+d©a
+()->
+Ã¡šg
+();
+
+205 ià(
+	gchždNe¡šg
+ > 
+	gmaxChždNe¡šg
+)
+
+206 
+	gmaxChždNe¡šg
+ = 
+chždNe¡šg
+;
+
+208  
+	gmaxChždNe¡šg
+ + 1;
+
+211 
+šlše
+ 
+size_t
+ 
+	gCÞËùiÚD©a
+::
+size
+() const {
+
+212  
+¦ÙSize
+(
+_h—d
+);
+
+215 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+216 
+šlše
+ 
+movePoš‹r
+(
+T
+*& 
+p
+, 
+±rdiff_t
+ 
+off£t
+) {
+
+217 ià(!
+	gp
+)
+
+219 
+	gp
+ = 
+»š‹½»t_ÿ¡
+<
+T
+*>(
+
+220 
+»š‹½»t_ÿ¡
+<*>Ôeš‹½»t_ÿ¡<*>(
+p
+è+ 
+off£t
+));
+
+221 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+p
+));
+
+224 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,
+
+225 
+±rdiff_t
+ 
+v¬ŸÁDi¡ªû
+) {
+
+226 
+movePoš‹r
+(
+_h—d
+, 
+v¬ŸÁDi¡ªû
+);
+
+227 
+movePoš‹r
+(
+_�ž
+, 
+v¬ŸÁDi¡ªû
+);
+
+228 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+_h—d
+; slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+())
+
+229 
+¦Ù
+->
+movePoš‹rs
+(
+¡ršgDi¡ªû
+, 
+v¬ŸÁDi¡ªû
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp
+
+5 #´agm¨
+Úû
+
+
+7 #ià
+__ýlu¥lus
+ >= 201103L
+
+8 
+	#ARDUINOJSON_HAS_LONG_LONG
+ 1
+
+	)
+
+9 
+	#ARDUINOJSON_HAS_NULLPTR
+ 1
+
+	)
+
+10 
+	#ARDUINOJSON_HAS_RVALUE_REFERENCES
+ 1
+
+	)
+
+12 
+	#ARDUINOJSON_HAS_LONG_LONG
+ 0
+
+	)
+
+13 
+	#ARDUINOJSON_HAS_NULLPTR
+ 0
+
+	)
+
+14 
+	#ARDUINOJSON_HAS_RVALUE_REFERENCES
+ 0
+
+	)
+
+17 #ià
+defšed
+(
+_MSC_VER
+è&& !
+ARDUINOJSON_HAS_LONG_LONG
+
+
+18 
+	#ARDUINOJSON_HAS_INT64
+ 1
+
+	)
+
+20 
+	#ARDUINOJSON_HAS_INT64
+ 0
+
+	)
+
+24 #iâdeà
+ARDUINOJSON_EMBEDDED_MODE
+
+
+25 #ià
+defšed
+(
+ARDUINO
+) \
+
+26 || 
+defšed
+(
+__IAR_SYSTEMS_ICC__
+) \
+
+27 || 
+defšed
+(
+__XC
+) \
+
+28 || 
+defšed
+(
+__ARMCC_VERSION
+) \
+
+29 || 
+	$defšed
+(
+__AVR
+)
+
+30 
+	#ARDUINOJSON_EMBEDDED_MODE
+ 1
+
+	)
+
+32 
+	#ARDUINOJSON_EMBEDDED_MODE
+ 0
+
+	)
+
+38 #ià!
+	`defšed
+(
+ARDUINOJSON_ENABLE_STD_STREAM
+è&& defšed(
+__has_šþude
+)
+
+39 #ià
+	`__has_šþude
+(<
+i¡»am
+>) && \
+
+40 
+	`__has_šþude
+(<
+o¡»am
+>) && \
+
+41 !
+	`defšed
+(
+mš
+) && \
+
+42 !
+	$defšed
+(
+max
+)
+
+43 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 1
+
+	)
+
+45 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 0
+
+	)
+
+51 #ià!
+	`defšed
+(
+ARDUINOJSON_ENABLE_STD_STRING
+è&& defšed(
+__has_šþude
+)
+
+52 #ià
+	`__has_šþude
+(<
+¡ršg
+>è&& !
+	`defšed
+(
+mš
+è&& !defšed(
+max
+)
+
+53 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 1
+
+	)
+
+55 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 0
+
+	)
+
+59 #ià
+ARDUINOJSON_EMBEDDED_MODE
+
+
+62 #iâdeà
+ARDUINOJSON_USE_DOUBLE
+
+
+63 
+	#ARDUINOJSON_USE_DOUBLE
+ 0
+
+	)
+
+67 #iâdeà
+ARDUINOJSON_USE_LONG_LONG
+
+
+68 
+	#ARDUINOJSON_USE_LONG_LONG
+ 0
+
+	)
+
+72 #iâdeà
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+73 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 0
+
+	)
+
+77 #iâdeà
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+78 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 0
+
+	)
+
+82 #iâdeà
+ARDUINOJSON_DEFAULT_NESTING_LIMIT
+
+
+83 
+	#ARDUINOJSON_DEFAULT_NESTING_LIMIT
+ 10
+
+	)
+
+89 #iâdeà
+ARDUINOJSON_USE_DOUBLE
+
+
+90 
+	#ARDUINOJSON_USE_DOUBLE
+ 1
+
+	)
+
+94 #iâdeà
+ARDUINOJSON_USE_LONG_LONG
+
+
+95 #ià
+ARDUINOJSON_HAS_LONG_LONG
+ || 
+ARDUINOJSON_HAS_INT64
+
+
+96 
+	#ARDUINOJSON_USE_LONG_LONG
+ 1
+
+	)
+
+98 
+	#ARDUINOJSON_USE_LONG_LONG
+ 0
+
+	)
+
+103 #iâdeà
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+104 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 1
+
+	)
+
+108 #iâdeà
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+109 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 1
+
+	)
+
+113 #iâdeà
+ARDUINOJSON_DEFAULT_NESTING_LIMIT
+
+
+114 
+	#ARDUINOJSON_DEFAULT_NESTING_LIMIT
+ 50
+
+	)
+
+119 #ifdeà
+ARDUINO
+
+
+121 
+	~<Ardušo.h
+>
+
+124 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+125 
+	#ARDUINOJSON_ENABLE_ARDUINO_STRING
+ 1
+
+	)
+
+129 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STREAM
+
+
+130 
+	#ARDUINOJSON_ENABLE_ARDUINO_STREAM
+ 1
+
+	)
+
+134 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_PRINT
+
+
+135 
+	#ARDUINOJSON_ENABLE_ARDUINO_PRINT
+ 1
+
+	)
+
+141 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+142 
+	#ARDUINOJSON_ENABLE_ARDUINO_STRING
+ 0
+
+	)
+
+146 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STREAM
+
+
+147 
+	#ARDUINOJSON_ENABLE_ARDUINO_STREAM
+ 0
+
+	)
+
+151 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_PRINT
+
+
+152 
+	#ARDUINOJSON_ENABLE_ARDUINO_PRINT
+ 0
+
+	)
+
+157 #iâdeà
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+158 #ifdeà
+PROGMEM
+
+
+159 
+	#ARDUINOJSON_ENABLE_PROGMEM
+ 1
+
+	)
+
+161 
+	#ARDUINOJSON_ENABLE_PROGMEM
+ 0
+
+	)
+
+166 #iâdeà
+ARDUINOJSON_DECODE_UNICODE
+
+
+167 
+	#ARDUINOJSON_DECODE_UNICODE
+ 1
+
+	)
+
+171 #iâdeà
+ARDUINOJSON_ENABLE_COMMENTS
+
+
+172 
+	#ARDUINOJSON_ENABLE_COMMENTS
+ 0
+
+	)
+
+176 #iâdeà
+ARDUINOJSON_ENABLE_NAN
+
+
+177 
+	#ARDUINOJSON_ENABLE_NAN
+ 0
+
+	)
+
+181 #iâdeà
+ARDUINOJSON_ENABLE_INFINITY
+
+
+182 
+	#ARDUINOJSON_ENABLE_INFINITY
+ 0
+
+	)
+
+187 #iâdeà
+ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD
+
+
+188 
+	#ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD
+ 1e7
+
+	)
+
+192 #iâdeà
+ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD
+
+
+193 
+	#ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD
+ 1e-5
+
+	)
+
+196 #iâdeà
+ARDUINOJSON_LITTLE_ENDIAN
+
+
+197 #ià
+	`defšed
+(
+_MSC_VER
+) || \
+
+198 (
+	`defšed
+(
+__BYTE_ORDER__
+è&& __BYTE_ORDER__ =ð
+__ORDER_LITTLE_ENDIAN__
+) || \
+
+199 
+	`defšed
+(
+__LITTLE_ENDIAN__
+è|| defšed(
+__i386
+è|| 
+	$defšed
+(
+__x86_64
+)
+
+200 
+	#ARDUINOJSON_LITTLE_ENDIAN
+ 1
+
+	)
+
+202 
+	#ARDUINOJSON_LITTLE_ENDIAN
+ 0
+
+	)
+
+206 #iâdeà
+ARDUINOJSON_ENABLE_ALIGNMENT
+
+
+207 #ià
+	`defšed
+(
+__AVR
+)
+
+208 
+	#ARDUINOJSON_ENABLE_ALIGNMENT
+ 0
+
+	)
+
+210 
+	#ARDUINOJSON_ENABLE_ALIGNMENT
+ 1
+
+	)
+
+214 #iâdeà
+ARDUINOJSON_TAB
+
+
+215 
+	#ARDUINOJSON_TAB
+ " "
+
+	)
+
+218 #iâdeà
+ARDUINOJSON_ENABLE_STRING_DEDUPLICATION
+
+
+219 
+	#ARDUINOJSON_ENABLE_STRING_DEDUPLICATION
+ 1
+
+	)
+
+222 #iâdeà
+ARDUINOJSON_STRING_BUFFER_SIZE
+
+
+223 
+	#ARDUINOJSON_STRING_BUFFER_SIZE
+ 32
+
+	)
+
+226 #iâdeà
+ARDUINOJSON_DEBUG
+
+
+227 #ifdeà
+__PLATFORMIO_BUILD_DEBUG__
+
+
+228 
+	#ARDUINOJSON_DEBUG
+ 1
+
+	)
+
+230 
+	#ARDUINOJSON_DEBUG
+ 0
+
+	)
+
+234 #ià
+ARDUINOJSON_HAS_NULLPTR
+ && 
+	`defšed
+(
+nuÎ±r
+)
+
+235 
+nuÎ±r
+ 
+is
+ 
+defšed
+ 
+as
+ 
+a
+ 
+maüo
+. 
+Remove
+ 
+the
+ 
+çuÉy
+ #defš�
+	#Ü
+ #undeà
+	)
+nullptr
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/´•roûssÜ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/¡©ic_¬¿y.hµ
+>
+
+11 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+12 
+	~<o¡»am
+>
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 þas 
+	cDe£rŸliz©iÚE¼Ü
+ {
+
+19 (
+	gDe£rŸliz©iÚE¼Ü
+::*
+	tboÞ_ty³
+)() const;
+
+20 
+§ãBoÞH–³r
+() const {}
+
+22 
+	gpublic
+:
+
+23 
+	eCode
+ {
+
+24 
+Ok
+,
+
+25 
+	gEm±yIÅut
+,
+
+26 
+	gIncom¶‘eIÅut
+,
+
+27 
+	gInv®idIÅut
+,
+
+28 
+	gNoMemÜy
+,
+
+29 
+	gNÙSuµÜ‹d
+,
+
+30 
+	gTooD“p
+
+
+33 
+De£rŸliz©iÚE¼Ü
+() {}
+
+34 
+De£rŸliz©iÚE¼Ü
+(
+Code
+ 
+c
+è: 
+_code
+(c) {}
+
+37 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+==(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+,
+
+38 cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+39  
+	glhs
+.
+	g_code
+ =ð
+rhs
+.
+_code
+;
+
+41 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+,
+
+42 cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+43  
+	glhs
+.
+	g_code
+ !ð
+rhs
+.
+_code
+;
+
+47 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+, 
+Code
+ 
+	grhs
+) {
+
+48  
+	glhs
+.
+	g_code
+ =ð
+rhs
+;
+
+50 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+Code
+ 
+lhs
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+51  
+	glhs
+ =ð
+rhs
+.
+_code
+;
+
+53 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+, 
+Code
+ 
+	grhs
+) {
+
+54  
+	glhs
+.
+	g_code
+ !ð
+rhs
+;
+
+56 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+Code
+ 
+lhs
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+57  
+	glhs
+ !ð
+rhs
+.
+_code
+;
+
+61 
+Ý”©Ü
+ 
+boÞ_ty³
+() const {
+
+62  
+	g_code
+ !ð
+Ok
+ ? &
+De£rŸliz©iÚE¼Ü
+::
+§ãBoÞH–³r
+ : 0;
+
+64 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(boÞ 
+v®ue
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	g”r
+) {
+
+65  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è=ð
+v®ue
+;
+
+67 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+”r
+, boÞ 
+	gv®ue
+) {
+
+68  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è=ð
+v®ue
+;
+
+70 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(boÞ 
+v®ue
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	g”r
+) {
+
+71  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è!ð
+v®ue
+;
+
+73 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+”r
+, boÞ 
+	gv®ue
+) {
+
+74  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è!ð
+v®ue
+;
+
+78 
+Code
+ 
+code
+() const {
+
+79  
+	g_code
+;
+
+82 cÚ¡ * 
+c_¡r
+() const {
+
+83 cÚ¡ * 
+	gmes§ges
+[] = {
+
+86 
+ARDUINOJSON_ASSERT
+(
+¡©ic_ÿ¡
+<
+size_t
+>(
+_code
+) <
+
+87 (
+mes§ges
+) / (messages[0]));
+
+88  
+	gmes§ges
+[
+_code
+];
+
+91 #ià
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+92 cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+f_¡r
+() const {
+
+93 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(, 
+s0
+, "Ok");
+
+94 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(, 
+s1
+, "EmptyInput");
+
+95 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(, 
+s2
+, "IncompleteInput");
+
+96 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(, 
+s3
+, "InvalidInput");
+
+97 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(, 
+s4
+, "NoMemory");
+
+98 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(, 
+s5
+, "NotSupported");
+
+99 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(, 
+s6
+, "TooDeep");
+
+100 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+
+101 cÚ¡ *, 
+mes§ges
+,
+
+102 
+ARDUINOJSON_EXPAND7
+({
+s0
+, 
+s1
+, 
+s2
+, 
+s3
+, 
+s4
+, 
+s5
+, 
+s6
+}));
+
+103  
+ARDUINOJSON_READ_STATIC_ARRAY
+(cÚ¡ 
+__FÏshSŒšgH–³r
+*, 
+mes§ges
+,
+
+104 
+_code
+);
+
+108 
+	g´iv©e
+:
+
+109 
+Code
+ 
+_code
+;
+
+112 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+113 
+šlše
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+<<(
+¡d
+::o¡»am& 
+s
+,
+
+114 cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	ge
+) {
+
+115 
+	gs
+ << 
+	ge
+.
+c_¡r
+();
+
+116  
+	gs
+;
+
+119 
+šlše
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+<<(
+¡d
+::o¡»am& 
+s
+, 
+	gDe£rŸliz©iÚE¼Ü
+::
+Code
+ 
+c
+) {
+
+120 
+s
+ << 
+De£rŸliz©iÚE¼Ü
+(
+c
+).
+c_¡r
+();
+
+121  
+	gs
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cFž‹r
+ {
+
+12 
+	gpublic
+:
+
+13 
+ex¶ic™
+ 
+Fž‹r
+(
+V¬ŸÁCÚ¡Ref
+ 
+v
+è: 
+_v¬ŸÁ
+(v) {}
+
+15 
+boÞ
+ 
+®low
+() const {
+
+16  
+_v¬ŸÁ
+;
+
+19 
+boÞ
+ 
+®lowA¼ay
+() const {
+
+20  
+	g_v¬ŸÁ
+ =ð
+Œue
+ || 
+_v¬ŸÁ
+.
+is
+<
+A¼ayRef
+>();
+
+23 
+boÞ
+ 
+®lowObjeù
+() const {
+
+24  
+	g_v¬ŸÁ
+ =ð
+Œue
+ || 
+_v¬ŸÁ
+.
+is
+<
+ObjeùRef
+>();
+
+27 
+boÞ
+ 
+®lowV®ue
+() const {
+
+28  
+	g_v¬ŸÁ
+ =ð
+Œue
+;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTKey
+>
+
+32 
+Fž‹r
+ 
+	gÝ”©Ü
+[](cÚ¡ 
+	gTKey
+& 
+	gkey
+) const {
+
+33 ià(
+	g_v¬ŸÁ
+ =ð
+Œue
+)
+
+34  *
+this
+;
+
+36  
+Fž‹r
+(
+_v¬ŸÁ
+[
+key
+] | _variant["*"]);
+
+39 
+	g´iv©e
+:
+
+40 
+V¬ŸÁCÚ¡Ref
+ 
+_v¬ŸÁ
+;
+
+43 
+	sAÎowAÎFž‹r
+ {
+
+44 
+boÞ
+ 
+®low
+() const {
+
+45  
+	gŒue
+;
+
+48 
+boÞ
+ 
+®lowA¼ay
+() const {
+
+49  
+	gŒue
+;
+
+52 
+boÞ
+ 
+®lowObjeù
+() const {
+
+53  
+	gŒue
+;
+
+56 
+boÞ
+ 
+®lowV®ue
+() const {
+
+57  
+	gŒue
+;
+
+60 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTKey
+>
+
+61 
+AÎowAÎFž‹r
+ 
+	gÝ”©Ü
+[](cÚ¡ 
+	gTKey
+&) const {
+
+62  
+AÎowAÎFž‹r
+();
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cNe¡šgLim™
+ {
+
+13 
+	gpublic
+:
+
+14 
+Ne¡šgLim™
+(è: 
+_v®ue
+(
+ARDUINOJSON_DEFAULT_NESTING_LIMIT
+) {}
+
+15 
+ex¶ic™
+ 
+Ne¡šgLim™
+(
+ušt8_t
+ 
+n
+è: 
+_v®ue
+(n) {}
+
+17 
+Ne¡šgLim™
+ 
+deüem’t
+() const {
+
+18 
+ARDUINOJSON_ASSERT
+(
+_v®ue
+ > 0);
+
+19  
+Ne¡šgLim™
+(
+¡©ic_ÿ¡
+<
+ušt8_t
+>(
+_v®ue
+ - 1));
+
+22 
+boÞ
+ 
+»ached
+() const {
+
+23  
+	g_v®ue
+ == 0;
+
+26 
+	g´iv©e
+:
+
+27 
+ušt8_t
+ 
+_v®ue
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡dlib.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gEÇbË
+ = >
+
+15 
+	sR—d”
+ {
+
+16 
+public
+:
+
+17 
+R—d”
+(
+TSourû
+& 
+sourû
+è: 
+_sourû
+(&source) {}
+
+19 
+»ad
+() {
+
+20  
+_sourû
+->
+»ad
+();
+
+23 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+24  
+	g_sourû
+->
+»adBy‹s
+(
+bufãr
+, 
+Ëngth
+);
+
+27 
+	g´iv©e
+:
+
+28 
+TSourû
+* 
+_sourû
+;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gEÇbË
+ = >
+
+32 
+	sBoundedR—d”
+ {
+
+38 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/I‹¿tÜR—d”.hµ
+>
+
+39 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/RamR—d”.hµ
+>
+
+40 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/V¬ŸÁR—d”.hµ
+>
+
+42 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STREAM
+
+
+43 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/ArdušoSŒ—mR—d”.hµ
+>
+
+46 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+47 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/ArdušoSŒšgR—d”.hµ
+>
+
+50 #ià
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+51 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/FÏshR—d”.hµ
+>
+
+54 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+55 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/StdSŒ—mR—d”.hµ
+>
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<Ardušo.h
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+12 
+	gR—d”
+<
+	gTSourû
+,
+
+13 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+<
+	gSŒ—m
+, 
+	gTSourû
+>::
+v®ue
+>::
+ty³
+> {
+
+14 
+public
+:
+
+15 
+ex¶ic™
+ 
+R—d”
+(
+SŒ—m
+& 
+¡»am
+è: 
+_¡»am
+(&stream) {}
+
+17 
+»ad
+() {
+
+19 
+c
+;
+
+20  
+	g_¡»am
+->
+»adBy‹s
+(&
+c
+, 1è? 
+	g¡©ic_ÿ¡
+<>(
+	gc
+) : -1;
+
+23 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+24  
+	g_¡»am
+->
+»adBy‹s
+(
+bufãr
+, 
+Ëngth
+);
+
+27 
+	g´iv©e
+:
+
+28 
+SŒ—m
+* 
+_¡»am
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+10 
+	gR—d”
+<
+	gTSourû
+,
+
+11 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+< ::
+SŒšg
+, 
+	gTSourû
+>::
+v®ue
+>::
+ty³
+>
+
+12 : 
+BoundedR—d”
+<const *> {
+
+13 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ ::
+SŒšg
+& 
+s
+)
+
+14 : 
+BoundedR—d”
+<cÚ¡ *>(
+s
+.
+c_¡r
+(), 
+	gs
+.
+Ëngth
+()) {}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <>
+
+10 
+	gR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*, > {
+
+11 cÚ¡ * 
+	g_±r
+;
+
+13 
+	gpublic
+:
+
+14 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+±r
+)
+
+15 : 
+_±r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+±r
+)) {}
+
+17 
+»ad
+() {
+
+18  
+pgm_»ad_by‹
+(
+_±r
+++);
+
+21 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+22 
+memýy_P
+(
+bufãr
+, 
+_±r
+, 
+Ëngth
+);
+
+23 
+	g_±r
+ +ð
+Ëngth
+;
+
+24  
+	gËngth
+;
+
+28 
+	g‹m¶©e
+ <>
+
+29 
+	gBoundedR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*, > {
+
+30 cÚ¡ * 
+	g_±r
+;
+
+31 cÚ¡ * 
+	g_’d
+;
+
+33 
+	gpublic
+:
+
+34 
+ex¶ic™
+ 
+BoundedR—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+±r
+, 
+size_t
+ 
+size
+)
+
+35 : 
+_±r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+±r
+)), 
+_’d
+(_±¸+ 
+size
+) {}
+
+37 
+»ad
+() {
+
+38 ià(
+	g_±r
+ < 
+	g_’d
+)
+
+39  
+pgm_»ad_by‹
+(
+_±r
+++);
+
+44 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+45 
+size_t
+ 
+	gavažabË
+ = 
+¡©ic_ÿ¡
+<size_t>(
+_’d
+ - 
+_±r
+);
+
+46 ià(
+	gavažabË
+ < 
+	gËngth
+)
+
+47 
+	gËngth
+ = 
+avažabË
+;
+
+48 
+memýy_P
+(
+bufãr
+, 
+_±r
+, 
+Ëngth
+);
+
+49 
+	g_±r
+ +ð
+Ëngth
+;
+
+50  
+	gËngth
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTI‹¿tÜ
+>
+
+10 þas 
+	cI‹¿tÜR—d”
+ {
+
+11 
+TI‹¿tÜ
+ 
+	g_±r
+, 
+	g_’d
+;
+
+13 
+	gpublic
+:
+
+14 
+ex¶ic™
+ 
+I‹¿tÜR—d”
+(
+TI‹¿tÜ
+ 
+begš
+, TI‹¿tÜ 
+’d
+)
+
+15 : 
+_±r
+(
+begš
+), 
+_’d
+(
+’d
+) {}
+
+17 
+»ad
+() {
+
+18 ià(
+	g_±r
+ < 
+	g_’d
+)
+
+19  
+	g¡©ic_ÿ¡
+<>(*
+	g_±r
+++);
+
+24 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+25 
+size_t
+ 
+	gi
+ = 0;
+
+26 
+	gi
+ < 
+	gËngth
+ && 
+	g_±r
+ < 
+	g_’d
+è
+	gbufãr
+[
+i
+++] = *
+_±r
+++;
+
+27  
+	gi
+;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+32 
+	svoid_
+ {
+
+33 
+	tty³
+;
+
+36 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+37 
+	gR—d”
+<
+	gTSourû
+, 
+ty³Çme
+ 
+	gvoid_
+<ty³Çm�TSourû::
+cÚ¡_™”©Ü
+>::
+ty³
+>
+
+38 : 
+I‹¿tÜR—d”
+<
+ty³Çme
+ 
+TSourû
+::
+cÚ¡_™”©Ü
+> {
+
+39 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ 
+TSourû
+& 
+sourû
+)
+
+40 : 
+I‹¿tÜR—d”
+<
+ty³Çme
+ 
+TSourû
+::
+cÚ¡_™”©Ü
+>(
+sourû
+.
+begš
+(),
+
+41 
+	gsourû
+.
+’d
+()) {}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	sIsCh¬OrVoid
+ {
+
+13 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ =
+
+14 
+is_§me
+<
+T
+, >::
+v®ue
+ || is_same<T, >::value ||
+
+15 
+is_§me
+<
+T
+, >::
+v®ue
+ || is_same<T, signed >::value;
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+19 
+	gIsCh¬OrVoid
+<cÚ¡ 
+	gT
+> : 
+IsCh¬OrVoid
+<
+T
+> {};
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+22 
+	gR—d”
+<
+	gTSourû
+*,
+
+23 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsCh¬OrVoid
+<
+	gTSourû
+>::
+v®ue
+>::
+ty³
+> {
+
+24 cÚ¡ * 
+_±r
+;
+
+26 
+	gpublic
+:
+
+27 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ * 
+±r
+)
+
+28 : 
+_±r
+(
+±r
+ ? 
+»š‹½»t_ÿ¡
+<const *>(ptr) : "") {}
+
+30 
+»ad
+() {
+
+31  
+¡©ic_ÿ¡
+<>(*
+_±r
+++);
+
+34 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+35 
+size_t
+ 
+	gi
+ = 0; i < 
+	gËngth
+; i++è
+	gbufãr
+[
+i
+] = *
+_±r
+++;
+
+36  
+	gËngth
+;
+
+40 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+41 
+	gBoundedR—d”
+<
+	gTSourû
+*,
+
+42 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsCh¬OrVoid
+<
+	gTSourû
+>::
+v®ue
+>::
+ty³
+>
+
+43 : 
+public
+ 
+I‹¿tÜR—d”
+<const *> {
+
+44 
+public
+:
+
+45 
+ex¶ic™
+ 
+BoundedR—d”
+(cÚ¡ * 
+±r
+, 
+size_t
+ 
+Ën
+)
+
+46 : 
+I‹¿tÜR—d”
+<cÚ¡ *>(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+±r
+),
+
+47 
+	g»š‹½»t_ÿ¡
+<cÚ¡ *>(
+	g±r
+è+ 
+	gËn
+) {}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<i¡»am
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+12 
+	gR—d”
+<
+	gTSourû
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+
+13 
+	gis_ba£_of
+<
+	g¡d
+::
+i¡»am
+, 
+	gTSourû
+>::
+v®ue
+>::
+ty³
+> {
+
+14 
+public
+:
+
+15 
+ex¶ic™
+ 
+R—d”
+(
+¡d
+::
+i¡»am
+& 
+¡»am
+è: 
+_¡»am
+(&stream) {}
+
+17 
+»ad
+() {
+
+18  
+_¡»am
+->
+g‘
+();
+
+21 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+22 
+	g_¡»am
+->
+»ad
+(
+bufãr
+, 
+¡©ic_ÿ¡
+<
+¡d
+::
+¡»amsize
+>(
+Ëngth
+));
+
+23  
+	g¡©ic_ÿ¡
+<
+	gsize_t
+>(
+	g_¡»am
+->
+gcouÁ
+());
+
+26 
+	g´iv©e
+:
+
+27 
+¡d
+::
+i¡»am
+* 
+_¡»am
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Objeù/Memb”Proxy.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+13 
+	gR—d”
+<
+	gEËm’tProxy
+<
+	gTA¼ay
+>, > : 
+R—d”
+<*, > {
+
+14 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ 
+EËm’tProxy
+<
+TA¼ay
+>& 
+x
+)
+
+15 : 
+R—d”
+<*, >(
+	gx
+.
+‹m¶©e
+ 
+	gas
+<const *>()) {}
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+,�y³Çm�
+	gTSŒšgRef
+>
+
+19 
+	gR—d”
+<
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšgRef
+>, > : 
+R—d”
+<*, > {
+
+20 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ 
+Memb”Proxy
+<
+TObjeù
+, 
+TSŒšgRef
+>& 
+x
+)
+
+21 : 
+R—d”
+<*, >(
+	gx
+.
+‹m¶©e
+ 
+	gas
+<const *>()) {}
+
+24 
+	g‹m¶©e
+ <>
+
+25 
+	gR—d”
+<
+	gV¬ŸÁRef
+, > : 
+R—d”
+<*, > {
+
+26 
+ex¶ic™
+ 
+R—d”
+(
+V¬ŸÁRef
+ 
+x
+è: R—d”<*, >(
+	gx
+.
+	gas
+<const *>()) {}
+
+29 
+	g‹m¶©e
+ <>
+
+30 
+	gR—d”
+<
+	gV¬ŸÁCÚ¡Ref
+, > : 
+R—d”
+<*, > {
+
+31 
+ex¶ic™
+ 
+R—d”
+(
+V¬ŸÁCÚ¡Ref
+ 
+x
+)
+
+32 : 
+R—d”
+<*, >(
+	gx
+.
+	gas
+<const *>()) {}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/De£rŸliz©iÚE¼Ü.hµ
+>
+
+8 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/Fž‹r.hµ
+>
+
+9 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/Ne¡šgLim™.hµ
+>
+
+10 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgStÜage/SŒšgStÜage.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTR—d”
+,
+
+16 
+ty³Çme
+ 
+	gTWr™”
+>
+
+17 
+	gTDe£rŸliz”
+<
+	gTR—d”
+, 
+	gTWr™”
+> 
+makeDe£rŸliz”
+(
+MemÜyPoÞ
+ &
+poÞ
+,
+
+18 
+TR—d”
+ 
+»ad”
+,
+
+19 
+TWr™”
+ 
+wr™”
+) {
+
+20  
+	gTDe£rŸliz”
+<
+	gTR—d”
+, 
+	gTWr™”
+>(
+	gpoÞ
+, 
+	g»ad”
+, 
+	gwr™”
+);
+
+28 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTSŒšg
+,
+
+29 
+ty³Çme
+ 
+	gTFž‹r
+>
+
+30 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_¬¿y
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gDe£rŸliz©iÚE¼Ü
+>::
+ty³
+
+
+31 
+de£rŸlize
+(
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+, 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+32 
+TFž‹r
+ 
+fž‹r
+) {
+
+33 
+	gR—d”
+<
+	gTSŒšg
+> 
+»ad”
+(
+šput
+);
+
+34 
+	gdoc
+.
+þ—r
+();
+
+35  
+	gmakeDe£rŸliz”
+<
+	gTDe£rŸliz”
+>(
+
+36 
+	gdoc
+.
+memÜyPoÞ
+(), 
+	g»ad”
+,
+
+37 
+makeSŒšgStÜage
+(
+šput
+, 
+doc
+.
+memÜyPoÞ
+()))
+
+38 .
+·r£
+(
+doc
+.
+d©a
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+44 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTCh¬
+,
+
+45 
+ty³Çme
+ 
+	gTFž‹r
+>
+
+46 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlize
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+47 
+size_t
+ 
+šputSize
+, 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+48 
+TFž‹r
+ 
+fž‹r
+) {
+
+49 
+	gBoundedR—d”
+<
+	gTCh¬
+ *> 
+»ad”
+(
+šput
+, 
+šputSize
+);
+
+50 
+	gdoc
+.
+þ—r
+();
+
+51  
+	gmakeDe£rŸliz”
+<
+	gTDe£rŸliz”
+>(
+
+52 
+	gdoc
+.
+memÜyPoÞ
+(), 
+	g»ad”
+,
+
+53 
+makeSŒšgStÜage
+(
+šput
+, 
+doc
+.
+memÜyPoÞ
+()))
+
+54 .
+·r£
+(
+doc
+.
+d©a
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+59 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTSŒ—m
+,
+
+60 
+ty³Çme
+ 
+	gTFž‹r
+>
+
+61 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlize
+(
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+,
+
+62 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+TFž‹r
+ 
+fž‹r
+) {
+
+63 
+	gR—d”
+<
+	gTSŒ—m
+> 
+»ad”
+(
+šput
+);
+
+64 
+	gdoc
+.
+þ—r
+();
+
+65  
+	gmakeDe£rŸliz”
+<
+	gTDe£rŸliz”
+>(
+
+66 
+	gdoc
+.
+memÜyPoÞ
+(), 
+	g»ad”
+,
+
+67 
+makeSŒšgStÜage
+(
+šput
+, 
+doc
+.
+memÜyPoÞ
+()))
+
+68 .
+·r£
+(
+doc
+.
+d©a
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Docum’t/JsÚDocum’t.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAÎoÿtÜ
+>
+
+14 þas 
+	cAÎoÿtÜOwÃr
+ {
+
+15 
+	gpublic
+:
+
+16 
+AÎoÿtÜOwÃr
+() {}
+
+17 
+AÎoÿtÜOwÃr
+(cÚ¡ AÎoÿtÜOwÃr& 
+¤c
+è: 
+_®loÿtÜ
+(src._allocator) {}
+
+18 
+AÎoÿtÜOwÃr
+(
+TAÎoÿtÜ
+ 
+a
+è: 
+_®loÿtÜ
+(a) {}
+
+20 * 
+®loÿ‹
+(
+size_t
+ 
+size
+) {
+
+21  
+_®loÿtÜ
+.
+®loÿ‹
+(
+size
+);
+
+24 
+d—Îoÿ‹
+(* 
+±r
+) {
+
+25 ià(
+	g±r
+)
+
+26 
+	g_®loÿtÜ
+.
+d—Îoÿ‹
+(
+±r
+);
+
+29 * 
+»®loÿ‹
+(* 
+±r
+, 
+size_t
+ 
+Ãw_size
+) {
+
+30  
+	g_®loÿtÜ
+.
+»®loÿ‹
+(
+±r
+, 
+Ãw_size
+);
+
+33 
+	gTAÎoÿtÜ
+& 
+®loÿtÜ
+() {
+
+34  
+	g_®loÿtÜ
+;
+
+37 
+	g´iv©e
+:
+
+38 
+TAÎoÿtÜ
+ 
+_®loÿtÜ
+;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAÎoÿtÜ
+>
+
+42 
+þass
+ 
+	gBasicJsÚDocum’t
+ : 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>, 
+public
+ 
+	gJsÚDocum’t
+ {
+
+43 
+	gpublic
+:
+
+44 
+ex¶ic™
+ 
+BasicJsÚDocum’t
+(
+size_t
+ 
+ÿ·
+, 
+TAÎoÿtÜ
+ 
+®loc
+ = TAllocator())
+
+45 : 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>(
+®loc
+), 
+JsÚDocum’t
+(
+®locPoÞ
+(
+ÿ·
+)) {}
+
+48 
+BasicJsÚDocum’t
+(cÚ¡ BasicJsÚDocum’t& 
+¤c
+)
+
+49 : 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>(
+¤c
+), 
+JsÚDocum’t
+() {
+
+50 
+cÝyAssignFrom
+(
+¤c
+);
+
+54 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+55 
+BasicJsÚDocum’t
+(BasicJsÚDocum’t&& 
+¤c
+è: 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>(src) {
+
+56 
+moveAssignFrom
+(
+¤c
+);
+
+60 
+BasicJsÚDocum’t
+(cÚ¡ 
+JsÚDocum’t
+& 
+¤c
+) {
+
+61 
+cÝyAssignFrom
+(
+¤c
+);
+
+65 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+66 
+BasicJsÚDocum’t
+(
+
+67 cÚ¡ 
+T
+& 
+¤c
+,
+
+68 
+ty³Çme
+ 
+’abË_if
+<
+
+69 
+is_§me
+<
+T
+, 
+V¬ŸÁRef
+>::
+v®ue
+ || is_§me<T, 
+V¬ŸÁCÚ¡Ref
+>::value ||
+
+70 
+is_§me
+<
+T
+, 
+A¼ayRef
+>::
+v®ue
+ || is_§me<T, 
+A¼ayCÚ¡Ref
+>::value ||
+
+71 
+is_§me
+<
+T
+, 
+ObjeùRef
+>::
+v®ue
+ ||
+
+72 
+is_§me
+<
+T
+, 
+ObjeùCÚ¡Ref
+>::
+v®ue
+>::
+ty³
+* = 0)
+
+73 : 
+JsÚDocum’t
+(
+®locPoÞ
+(
+¤c
+.
+memÜyU§ge
+())) {
+
+74 
+£t
+(
+¤c
+);
+
+78 
+BasicJsÚDocum’t
+(
+V¬ŸÁRef
+ 
+¤c
+)
+
+79 : 
+JsÚDocum’t
+(
+®locPoÞ
+(
+¤c
+.
+memÜyU§ge
+())) {
+
+80 
+£t
+(
+¤c
+);
+
+83 ~
+BasicJsÚDocum’t
+() {
+
+84 
+ä“PoÞ
+();
+
+87 
+	gBasicJsÚDocum’t
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+BasicJsÚDocum’t
+& 
+¤c
+) {
+
+88 
+cÝyAssignFrom
+(
+¤c
+);
+
+89  *
+	gthis
+;
+
+92 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+93 
+	gBasicJsÚDocum’t
+& 
+	gÝ”©Ü
+=(
+BasicJsÚDocum’t
+&& 
+¤c
+) {
+
+94 
+moveAssignFrom
+(
+¤c
+);
+
+95  *
+	gthis
+;
+
+99 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+100 
+	gBasicJsÚDocum’t
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+T
+& 
+¤c
+) {
+
+101 
+»®locPoÞIfTooSm®l
+(
+¤c
+.
+memÜyU§ge
+());
+
+102 
+£t
+(
+¤c
+);
+
+103  *
+	gthis
+;
+
+106 
+shrškToF™
+() {
+
+107 
+±rdiff_t
+ 
+	gby‹s_»þaimed
+ = 
+_poÞ
+.
+squash
+();
+
+108 ià(
+	gby‹s_»þaimed
+ == 0)
+
+111 * 
+	gÞd_±r
+ = 
+_poÞ
+.
+bufãr
+();
+
+112 * 
+	gÃw_±r
+ = 
+this
+->
+»®loÿ‹
+(
+Þd_±r
+, 
+_poÞ
+.
+ÿ·c™y
+());
+
+114 
+±rdiff_t
+ 
+	g±r_off£t
+ =
+
+115 
+¡©ic_ÿ¡
+<*>(
+Ãw_±r
+è- s�tic_ÿ¡<*>(
+Þd_±r
+);
+
+117 
+	g_poÞ
+.
+movePoš‹rs
+(
+±r_off£t
+);
+
+118 
+	g_d©a
+.
+movePoš‹rs
+(
+±r_off£t
+,…Œ_off£ˆ- 
+by‹s_»þaimed
+);
+
+121 
+boÞ
+ 
+g¬bageCÞËù
+() {
+
+123 
+BasicJsÚDocum’t
+ 
+tmp
+(*
+this
+);
+
+124 ià(!
+	gtmp
+.
+ÿ·c™y
+())
+
+125  
+	gçl£
+;
+
+126 
+	gtmp
+.
+£t
+(*
+this
+);
+
+127 
+moveAssignFrom
+(
+tmp
+);
+
+128  
+	gŒue
+;
+
+131 
+usšg
+ 
+	gAÎoÿtÜOwÃr
+<
+	gTAÎoÿtÜ
+>::
+®loÿtÜ
+;
+
+133 
+	g´iv©e
+:
+
+134 
+MemÜyPoÞ
+ 
+®locPoÞ
+(
+size_t
+ 
+»quœedSize
+) {
+
+135 
+size_t
+ 
+ÿ·
+ = 
+addPaddšg
+(
+»quœedSize
+);
+
+136  
+MemÜyPoÞ
+(
+»š‹½»t_ÿ¡
+<*>(
+this
+->
+®loÿ‹
+(
+ÿ·
+)), capa);
+
+139 
+»®locPoÞIfTooSm®l
+(
+size_t
+ 
+»quœedSize
+) {
+
+140 ià(
+	g»quœedSize
+ <ð
+ÿ·c™y
+())
+
+142 
+ä“PoÞ
+();
+
+143 
+»¶aûPoÞ
+(
+®locPoÞ
+(
+addPaddšg
+(
+»quœedSize
+)));
+
+146 
+ä“PoÞ
+() {
+
+147 
+	gthis
+->
+d—Îoÿ‹
+(
+memÜyPoÞ
+().
+bufãr
+());
+
+150 
+cÝyAssignFrom
+(cÚ¡ 
+JsÚDocum’t
+& 
+¤c
+) {
+
+151 
+»®locPoÞIfTooSm®l
+(
+¤c
+.
+ÿ·c™y
+());
+
+152 
+£t
+(
+¤c
+);
+
+155 
+moveAssignFrom
+(
+BasicJsÚDocum’t
+& 
+¤c
+) {
+
+156 
+ä“PoÞ
+();
+
+157 
+	g_d©a
+ = 
+¤c
+.
+_d©a
+;
+
+158 
+	g_poÞ
+ = 
+¤c
+.
+_poÞ
+;
+
+159 
+	g¤c
+.
+	g_d©a
+.
+£tNuÎ
+();
+
+160 
+	g¤c
+.
+	g_poÞ
+ = 
+MemÜyPoÞ
+(0, 0);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Docum’t/BasicJsÚDocum’t.hµ
+>
+
+9 
+	~<¡dlib.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	sDeçuÉAÎoÿtÜ
+ {
+
+14 * 
+®loÿ‹
+(
+size_t
+ 
+size
+) {
+
+15  
+m®loc
+(
+size
+);
+
+18 
+d—Îoÿ‹
+(* 
+±r
+) {
+
+19 
+ä“
+(
+±r
+);
+
+22 * 
+»®loÿ‹
+(* 
+±r
+, 
+size_t
+ 
+Ãw_size
+) {
+
+23  
+»®loc
+(
+±r
+, 
+Ãw_size
+);
+
+27 
+	gBasicJsÚDocum’t
+<
+	tDeçuÉAÎoÿtÜ
+> 
+	tDyÇmicJsÚDocum’t
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/EËm’tProxy.hµ
+>
+
+8 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/Objeù/Memb”Proxy.hµ
+>
+
+10 
+	~<ArdušoJsÚ/Objeù/ObjeùRef.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+12 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁTo.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 þas 
+	cJsÚDocum’t
+ : 
+public
+ 
+Vis™abË
+ {
+
+17 
+public
+:
+
+18 
+‹m¶©e
+ <
+ty³Çme
+ 
+TVis™Ü
+>
+
+19 
+ty³Çme
+ 
+TVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(TVis™Ü& 
+vis™Ü
+) const {
+
+20  
+g‘V¬ŸÁ
+().
+acû±
+(
+vis™Ü
+);
+
+23 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+24 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gT
+>::
+ty³
+ 
+as
+() {
+
+25  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+29 
+ty³Çme
+ 
+	gV¬ŸÁCÚ¡As
+<
+	gT
+>::
+ty³
+ 
+as
+() const {
+
+30  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+33 
+þ—r
+() {
+
+34 
+	g_poÞ
+.
+þ—r
+();
+
+35 
+	g_d©a
+.
+£tNuÎ
+();
+
+38 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+39 
+boÞ
+ 
+is
+() const {
+
+40  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+	gis
+<
+	gT
+>();
+
+43 
+boÞ
+ 
+isNuÎ
+() const {
+
+44  
+g‘V¬ŸÁ
+().
+isNuÎ
+();
+
+47 
+size_t
+ 
+memÜyU§ge
+() const {
+
+48  
+	g_poÞ
+.
+size
+();
+
+51 
+boÞ
+ 
+ov”æowed
+() const {
+
+52  
+	g_poÞ
+.
+ov”æowed
+();
+
+55 
+size_t
+ 
+Ã¡šg
+() const {
+
+56  
+	g_d©a
+.
+Ã¡šg
+();
+
+59 
+size_t
+ 
+ÿ·c™y
+() const {
+
+60  
+	g_poÞ
+.
+ÿ·c™y
+();
+
+63 
+size_t
+ 
+size
+() const {
+
+64  
+	g_d©a
+.
+size
+();
+
+67 
+boÞ
+ 
+£t
+(cÚ¡ 
+JsÚDocum’t
+& 
+¤c
+) {
+
+68  
+	gto
+<
+	gV¬ŸÁRef
+>().
+£t
+(
+¤c
+.
+as
+<
+V¬ŸÁRef
+>());
+
+71 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+72 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_ba£_of
+<
+	gJsÚDocum’t
+, 
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+£t
+(
+
+73 cÚ¡ 
+T
+& 
+¤c
+) {
+
+74  
+to
+<
+V¬ŸÁRef
+>().
+£t
+(
+¤c
+);
+
+77 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+78 
+ty³Çme
+ 
+	gV¬ŸÁTo
+<
+	gT
+>::
+ty³
+ 
+to
+() {
+
+79 
+þ—r
+();
+
+80  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+	gto
+<
+	gT
+>();
+
+84 
+	gMemÜyPoÞ
+& 
+memÜyPoÞ
+() {
+
+85  
+	g_poÞ
+;
+
+89 
+	gV¬ŸÁD©a
+& 
+d©a
+() {
+
+90  
+	g_d©a
+;
+
+93 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+() {
+
+94  
+addEËm’t
+().
+	gto
+<
+	gA¼ayRef
+>();
+
+100 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+101 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(
+TCh¬
+* 
+key
+) {
+
+102  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gA¼ayRef
+>();
+
+107 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+108 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+109  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gA¼ayRef
+>();
+
+112 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+() {
+
+113  
+addEËm’t
+().
+	gto
+<
+	gObjeùRef
+>();
+
+119 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+120 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(
+TCh¬
+* 
+key
+) {
+
+121  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gObjeùRef
+>();
+
+126 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+127 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+128  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gObjeùRef
+>();
+
+134 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+135 
+boÞ
+ 
+cÚ�šsKey
+(
+TCh¬
+* 
+key
+) const {
+
+136  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+141 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+142 
+boÞ
+ 
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+143  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+148 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+149 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+,
+
+150 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, 
+	gTSŒšg
+> >::
+ty³
+
+
+151 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+152  
+Memb”Proxy
+<
+JsÚDocum’t
+&, 
+	gTSŒšg
+>(*
+	gthis
+, 
+	gkey
+);
+
+158 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+159 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+,
+
+160 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, 
+	gTCh¬
+*> >::
+ty³
+
+
+161 
+Ý”©Ü
+[](
+TCh¬
+* 
+key
+) {
+
+162  
+Memb”Proxy
+<
+JsÚDocum’t
+&, 
+	gTCh¬
+*>(*
+	gthis
+, 
+	gkey
+);
+
+167 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+168 
+FORCE_INLINE
+
+
+169 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+170 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+171  
+g‘Memb”
+(
+key
+);
+
+177 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+178 
+FORCE_INLINE
+
+
+179 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+180 
+Ý”©Ü
+[](
+TCh¬
+* 
+key
+) const {
+
+181  
+g‘Memb”
+(
+key
+);
+
+184 
+FORCE_INLINE
+ 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) {
+
+185  
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&>(*
+	gthis
+, 
+	gšdex
+);
+
+188 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) const {
+
+189  
+g‘EËm’t
+(
+šdex
+);
+
+192 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) {
+
+193  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘EËm’t
+(
+šdex
+));
+
+196 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+197  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+.
+g‘EËm’t
+(
+šdex
+));
+
+200 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) {
+
+201  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘OrAddEËm’t
+(
+šdex
+, &_pool));
+
+207 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+208 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) const {
+
+209  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+214 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+215 
+FORCE_INLINE
+
+
+216 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+217 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+218  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+224 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+225 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) {
+
+226  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+231 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+232 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁRef
+>::
+ty³
+
+
+233 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+234  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+240 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+241 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+* 
+key
+) {
+
+242  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), &_pool));
+
+247 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+248 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+249  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), &_pool));
+
+252 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+addEËm’t
+() {
+
+253  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+addEËm’t
+(&_pool));
+
+256 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+257 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(cÚ¡ 
+TV®ue
+& 
+v®ue
+) {
+
+258  
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+264 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+265 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(
+TCh¬
+* 
+v®ue
+) {
+
+266  
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+269 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) {
+
+270 
+	g_d©a
+.
+»move
+(
+šdex
+);
+
+275 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+276 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+277 
+TCh¬
+* 
+key
+) {
+
+278 
+_d©a
+.
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+282 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+283 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+284 cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+285 
+_d©a
+.
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+288 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+289  
+V¬ŸÁCÚ¡Ref
+(&
+_d©a
+);
+
+292 
+boÞ
+ 
+	gÝ”©Ü
+==(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+293  
+g‘V¬ŸÁ
+(è=ð
+rhs
+;
+
+296 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+297  
+g‘V¬ŸÁ
+(è!ð
+rhs
+;
+
+300 
+	g´Ùeùed
+:
+
+301 
+JsÚDocum’t
+(è: 
+_poÞ
+(0, 0) {
+
+302 
+	g_d©a
+.
+£tNuÎ
+();
+
+305 
+JsÚDocum’t
+(
+MemÜyPoÞ
+ 
+poÞ
+è: 
+_poÞ
+(pool) {
+
+306 
+_d©a
+.
+£tNuÎ
+();
+
+309 
+JsÚDocum’t
+(* 
+buf
+, 
+size_t
+ 
+ÿ·
+è: 
+_poÞ
+(buf, capa) {
+
+310 
+	g_d©a
+.
+£tNuÎ
+();
+
+313 
+»¶aûPoÞ
+(
+MemÜyPoÞ
+ 
+poÞ
+) {
+
+314 
+	g_poÞ
+ = 
+poÞ
+;
+
+317 
+V¬ŸÁRef
+ 
+g‘V¬ŸÁ
+() {
+
+318  
+V¬ŸÁRef
+(&
+_poÞ
+, &
+_d©a
+);
+
+321 
+V¬ŸÁCÚ¡Ref
+ 
+g‘V¬ŸÁ
+() const {
+
+322  
+V¬ŸÁCÚ¡Ref
+(&
+_d©a
+);
+
+325 
+MemÜyPoÞ
+ 
+	g_poÞ
+;
+
+326 
+V¬ŸÁD©a
+ 
+	g_d©a
+;
+
+328 
+	g´iv©e
+:
+
+329 
+JsÚDocum’t
+(const JsonDocument&);
+
+330 
+	gJsÚDocum’t
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+JsÚDocum’t
+&);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Docum’t/JsÚDocum’t.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+size_t
+ 
+	gdesœedC­ac™y
+>
+
+12 þas 
+	cS�ticJsÚDocum’t
+ : 
+public
+ 
+JsÚDocum’t
+ {
+
+13 cÚ¡ 
+size_t
+ 
+_ÿ·c™y
+ =
+
+14 
+AddPaddšg
+<
+Max
+<1, 
+	gdesœedC­ac™y
+>::
+v®ue
+>::value;
+
+16 
+	gpublic
+:
+
+17 
+S�ticJsÚDocum’t
+(è: 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {}
+
+19 
+S�ticJsÚDocum’t
+(cÚ¡ S�ticJsÚDocum’t& 
+¤c
+)
+
+20 : 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {
+
+21 
+£t
+(
+¤c
+);
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+25 
+S�ticJsÚDocum’t
+(cÚ¡ 
+T
+& 
+¤c
+,
+
+26 
+ty³Çme
+ 
+’abË_if
+<
+IsVis™abË
+<
+T
+>::
+v®ue
+>::
+ty³
+* = 0)
+
+27 : 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {
+
+28 
+£t
+(
+¤c
+);
+
+32 
+S�ticJsÚDocum’t
+(
+V¬ŸÁRef
+ 
+¤c
+è: 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {
+
+33 
+£t
+(
+¤c
+);
+
+36 
+S�ticJsÚDocum’t
+ 
+	gÝ”©Ü
+=(cÚ¡ S�ticJsÚDocum’t& 
+¤c
+) {
+
+37 
+£t
+(
+¤c
+);
+
+38  *
+	gthis
+;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+42 
+S�ticJsÚDocum’t
+ 
+	gÝ”©Ü
+=(cÚ¡ 
+T
+& 
+¤c
+) {
+
+43 
+£t
+(
+¤c
+);
+
+44  *
+	gthis
+;
+
+47 
+g¬bageCÞËù
+() {
+
+48 
+S�ticJsÚDocum’t
+ 
+tmp
+(*
+this
+);
+
+49 
+£t
+(
+tmp
+);
+
+52 
+	g´iv©e
+:
+
+53 
+_bufãr
+[
+_ÿ·c™y
+];
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cEsÿ³Sequ’û
+ {
+
+12 
+	gpublic
+:
+
+14 
+esÿ³Ch¬
+(
+c
+) {
+
+15 cÚ¡ *
+p
+ = 
+esÿ³TabË
+(
+Œue
+);
+
+16 
+	gp
+[0] &&…[1] !ð
+c
+) {
+
+17 
+p
+ += 2;
+
+19  
+	gp
+[0];
+
+23 
+uÃsÿ³Ch¬
+(
+c
+) {
+
+24 cÚ¡ *
+	gp
+ = 
+esÿ³TabË
+(
+çl£
+);
+
+26 ià(
+	gp
+[0] == '\0')
+
+28 ià(
+	gp
+[0] =ð
+c
+)
+
+29  
+p
+[1];
+
+30 
+	gp
+ += 2;
+
+34 
+	g´iv©e
+:
+
+35 cÚ¡ *
+esÿ³TabË
+(
+boÞ
+ 
+exþudeSÞidus
+) {
+
+36  &"//\"\"\\\\b\bf\â\Ä\¹\t"[
+exþudeSÞidus
+ ? 2 : 0];
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/de£rŸlize.hµ
+>
+
+8 
+	~<ArdušoJsÚ/JsÚ/Esÿ³Sequ’û.hµ
+>
+
+9 
+	~<ArdušoJsÚ/JsÚ/L©ch.hµ
+>
+
+10 
+	~<ArdušoJsÚ/JsÚ/Utf16.hµ
+>
+
+11 
+	~<ArdušoJsÚ/JsÚ/Utf8.hµ
+>
+
+12 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+13 
+	~<ArdušoJsÚ/Numb”s/·r£Numb”.hµ
+>
+
+14 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+15 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+16 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+18 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTR—d”
+,�y³Çm�
+	gTSŒšgStÜage
+>
+
+21 þas 
+	cJsÚDe£rŸliz”
+ {
+
+22 
+	gpublic
+:
+
+23 
+JsÚDe£rŸliz”
+(
+MemÜyPoÞ
+ &
+poÞ
+, 
+TR—d”
+ 
+»ad”
+,
+
+24 
+TSŒšgStÜage
+ 
+¡ršgStÜage
+)
+
+25 : 
+_¡ršgStÜage
+(
+¡ršgStÜage
+),
+
+26 
+_foundSom‘hšg
+(
+çl£
+),
+
+27 
+_Ïtch
+(
+»ad”
+),
+
+28 
+_poÞ
+(&
+poÞ
+),
+
+29 
+_”rÜ
+(
+De£rŸliz©iÚE¼Ü
+::
+Ok
+) {}
+
+31 
+‹m¶©e
+ <
+ty³Çme
+ 
+TFž‹r
+>
+
+32 
+De£rŸliz©iÚE¼Ü
+ 
+·r£
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+33 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+34 
+·r£V¬ŸÁ
+(
+v¬ŸÁ
+, 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+36 ià(!
+	g_”rÜ
+ && 
+	g_Ïtch
+.
+Ï¡
+(è!ð0 && !
+v¬ŸÁ
+.
+isEnþo£d
+()) {
+
+38  
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+41  
+	g_”rÜ
+;
+
+44 
+	g´iv©e
+:
+
+45 
+JsÚDe£rŸliz”
+ &
+Ý”©Ü
+=(const JsonDeserializer &);
+
+47 
+cu¼’t
+() {
+
+48  
+	g_Ïtch
+.
+cu¼’t
+();
+
+51 
+move
+() {
+
+52 
+	g_Ïtch
+.
+þ—r
+();
+
+55 
+boÞ
+ 
+—t
+(
+ch¬ToSk�
+) {
+
+56 ià(
+cu¼’t
+(è!ð
+ch¬ToSk�
+)
+
+57  
+çl£
+;
+
+58 
+move
+();
+
+59  
+	gŒue
+;
+
+62 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+63 
+boÞ
+ 
+·r£V¬ŸÁ
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+64 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+65 ià(!
+sk�S·ûsAndComm’ts
+())
+
+66  
+	gçl£
+;
+
+68 
+cu¼’t
+()) {
+
+70 ià(
+fž‹r
+.
+®lowA¼ay
+())
+
+71  
+·r£A¼ay
+(
+v¬ŸÁ
+.
+toA¼ay
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+73  
+sk�A¼ay
+(
+Ã¡šgLim™
+);
+
+76 ià(
+fž‹r
+.
+®lowObjeù
+())
+
+77  
+·r£Objeù
+(
+v¬ŸÁ
+.
+toObjeù
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+79  
+sk�Objeù
+(
+Ã¡šgLim™
+);
+
+83 ià(
+fž‹r
+.
+®lowV®ue
+())
+
+84  
+·r£SŒšgV®ue
+(
+v¬ŸÁ
+);
+
+86  
+sk�SŒšg
+();
+
+89 ià(
+fž‹r
+.
+®lowV®ue
+())
+
+90  
+·r£Num”icV®ue
+(
+v¬ŸÁ
+);
+
+92  
+sk�Num”icV®ue
+();
+
+96 
+boÞ
+ 
+sk�V¬ŸÁ
+(
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+97 ià(!
+sk�S·ûsAndComm’ts
+())
+
+98  
+	gçl£
+;
+
+100 
+cu¼’t
+()) {
+
+102  
+sk�A¼ay
+(
+Ã¡šgLim™
+);
+
+105  
+sk�Objeù
+(
+Ã¡šgLim™
+);
+
+109  
+sk�SŒšg
+();
+
+112  
+sk�Num”icV®ue
+();
+
+116 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+117 
+boÞ
+ 
+·r£A¼ay
+(
+CÞËùiÚD©a
+ &
+¬¿y
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+118 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+119 ià(
+	gÃ¡šgLim™
+.
+»ached
+()) {
+
+120 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+121  
+	gçl£
+;
+
+125 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '[');
+
+126 
+move
+();
+
+129 ià(!
+sk�S·ûsAndComm’ts
+())
+
+130  
+	gçl£
+;
+
+133 ià(
+—t
+(']'))
+
+134  
+	gŒue
+;
+
+136 
+TFž‹r
+ 
+	gmemb”Fž‹r
+ = 
+fž‹r
+[0UL];
+
+140 ià(
+	gmemb”Fž‹r
+.
+®low
+()) {
+
+142 
+V¬ŸÁD©a
+ *
+	gv®ue
+ = 
+¬¿y
+.
+addEËm’t
+(
+_poÞ
+);
+
+143 ià(!
+	gv®ue
+) {
+
+144 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+145  
+	gçl£
+;
+
+149 ià(!
+·r£V¬ŸÁ
+(*
+v®ue
+, 
+memb”Fž‹r
+, 
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+150  
+	gçl£
+;
+
+152 ià(!
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+153  
+	gçl£
+;
+
+157 ià(!
+sk�S·ûsAndComm’ts
+())
+
+158  
+	gçl£
+;
+
+161 ià(
+—t
+(']'))
+
+162  
+	gŒue
+;
+
+163 ià(!
+—t
+(',')) {
+
+164 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+165  
+	gçl£
+;
+
+170 
+boÞ
+ 
+sk�A¼ay
+(
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+171 ià(
+	gÃ¡šgLim™
+.
+»ached
+()) {
+
+172 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+173  
+	gçl£
+;
+
+177 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '[');
+
+178 
+move
+();
+
+183 ià(!
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+184  
+	gçl£
+;
+
+187 ià(!
+sk�S·ûsAndComm’ts
+())
+
+188  
+	gçl£
+;
+
+191 ià(
+—t
+(']'))
+
+192  
+	gŒue
+;
+
+193 ià(!
+—t
+(',')) {
+
+194 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+195  
+	gçl£
+;
+
+200 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+201 
+boÞ
+ 
+·r£Objeù
+(
+CÞËùiÚD©a
+ &
+objeù
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+202 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+203 ià(
+	gÃ¡šgLim™
+.
+»ached
+()) {
+
+204 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+205  
+	gçl£
+;
+
+209 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '{');
+
+210 
+move
+();
+
+213 ià(!
+sk�S·ûsAndComm’ts
+())
+
+214  
+	gçl£
+;
+
+217 ià(
+—t
+('}'))
+
+218  
+	gŒue
+;
+
+223 ià(!
+·r£Key
+())
+
+224  
+	gçl£
+;
+
+227 ià(!
+sk�S·ûsAndComm’ts
+())
+
+228  
+	gçl£
+;
+
+231 ià(!
+—t
+(':')) {
+
+232 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+233  
+	gçl£
+;
+
+236 cÚ¡ *
+	gkey
+ = 
+_¡ršgStÜage
+.
+c_¡r
+();
+
+238 
+TFž‹r
+ 
+	gmemb”Fž‹r
+ = 
+fž‹r
+[
+key
+];
+
+240 ià(
+	gmemb”Fž‹r
+.
+®low
+()) {
+
+241 
+V¬ŸÁD©a
+ *
+	gv¬ŸÁ
+ = 
+objeù
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+));
+
+242 ià(!
+	gv¬ŸÁ
+) {
+
+245 
+	gkey
+ = 
+_¡ršgStÜage
+.
+§ve
+();
+
+248 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+.
+addSlÙ
+(
+_poÞ
+);
+
+249 ià(!
+	g¦Ù
+) {
+
+250 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+251  
+	gçl£
+;
+
+254 
+	g¦Ù
+->
+£tKey
+(
+key
+, 
+ty³Çme
+ 
+TSŒšgStÜage
+::
+¡Üage_pÞicy
+());
+
+256 
+	gv¬ŸÁ
+ = 
+¦Ù
+->
+d©a
+();
+
+260 ià(!
+·r£V¬ŸÁ
+(*
+v¬ŸÁ
+, 
+memb”Fž‹r
+, 
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+261  
+	gçl£
+;
+
+263 ià(!
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+264  
+	gçl£
+;
+
+268 ià(!
+sk�S·ûsAndComm’ts
+())
+
+269  
+	gçl£
+;
+
+272 ià(
+—t
+('}'))
+
+273  
+	gŒue
+;
+
+274 ià(!
+—t
+(',')) {
+
+275 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+276  
+	gçl£
+;
+
+280 ià(!
+sk�S·ûsAndComm’ts
+())
+
+281  
+	gçl£
+;
+
+285 
+boÞ
+ 
+sk�Objeù
+(
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+286 ià(
+	gÃ¡šgLim™
+.
+»ached
+()) {
+
+287 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+288  
+	gçl£
+;
+
+292 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '{');
+
+293 
+move
+();
+
+296 ià(!
+sk�S·ûsAndComm’ts
+())
+
+297  
+	gçl£
+;
+
+300 ià(
+—t
+('}'))
+
+301  
+	gŒue
+;
+
+306 ià(!
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+307  
+	gçl£
+;
+
+310 ià(!
+sk�S·ûsAndComm’ts
+())
+
+311  
+	gçl£
+;
+
+314 ià(!
+—t
+(':')) {
+
+315 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+316  
+	gçl£
+;
+
+320 ià(!
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+321  
+	gçl£
+;
+
+324 ià(!
+sk�S·ûsAndComm’ts
+())
+
+325  
+	gçl£
+;
+
+328 ià(
+—t
+('}'))
+
+329  
+	gŒue
+;
+
+330 ià(!
+—t
+(',')) {
+
+331 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+332  
+	gçl£
+;
+
+337 
+boÞ
+ 
+·r£Key
+() {
+
+338 
+	g_¡ršgStÜage
+.
+¡¬tSŒšg
+();
+
+339 ià(
+isQuÙe
+(
+cu¼’t
+())) {
+
+340  
+·r£QuÙedSŒšg
+();
+
+342  
+·r£NÚQuÙedSŒšg
+();
+
+346 
+boÞ
+ 
+·r£SŒšgV®ue
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+347 
+	g_¡ršgStÜage
+.
+¡¬tSŒšg
+();
+
+348 ià(!
+·r£QuÙedSŒšg
+())
+
+349  
+	gçl£
+;
+
+350 cÚ¡ *
+	gv®ue
+ = 
+_¡ršgStÜage
+.
+§ve
+();
+
+351 
+	gv¬ŸÁ
+.
+£tSŒšgPoš‹r
+(
+v®ue
+, 
+ty³Çme
+ 
+TSŒšgStÜage
+::
+¡Üage_pÞicy
+());
+
+352  
+	gŒue
+;
+
+355 
+boÞ
+ 
+·r£QuÙedSŒšg
+() {
+
+356 #ià
+ARDUINOJSON_DECODE_UNICODE
+
+
+357 
+	gUtf16
+::
+Cod•ošt
+ 
+cod•ošt
+;
+
+359 cÚ¡ 
+	g¡ÝCh¬
+ = 
+cu¼’t
+();
+
+361 
+move
+();
+
+363 
+	gc
+ = 
+cu¼’t
+();
+
+364 
+move
+();
+
+365 ià(
+	gc
+ =ð
+¡ÝCh¬
+)
+
+368 ià(
+	gc
+ == '\0') {
+
+369 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+370  
+	gçl£
+;
+
+373 ià(
+	gc
+ == '\\') {
+
+374 
+c
+ = 
+cu¼’t
+();
+
+376 ià(
+	gc
+ == '\0') {
+
+377 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+378  
+	gçl£
+;
+
+381 ià(
+	gc
+ == 'u') {
+
+382 #ià
+ARDUINOJSON_DECODE_UNICODE
+
+
+383 
+move
+();
+
+384 
+ušt16_t
+ 
+	gcodeun™
+;
+
+385 ià(!
+·r£Hex4
+(
+codeun™
+))
+
+386  
+	gçl£
+;
+
+387 ià(
+	gcod•ošt
+.
+­³nd
+(
+codeun™
+))
+
+388 
+	gUtf8
+::
+’codeCod•ošt
+(
+cod•ošt
+.
+v®ue
+(), 
+_¡ršgStÜage
+);
+
+391 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+;
+
+392  
+	gçl£
+;
+
+397 
+	gc
+ = 
+Esÿ³Sequ’û
+::
+uÃsÿ³Ch¬
+(
+c
+);
+
+398 ià(
+	gc
+ == '\0') {
+
+399 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+400  
+	gçl£
+;
+
+402 
+move
+();
+
+405 
+	g_¡ršgStÜage
+.
+­³nd
+(
+c
+);
+
+408 
+	g_¡ršgStÜage
+.
+­³nd
+('\0');
+
+410 ià(!
+	g_¡ršgStÜage
+.
+isV®id
+()) {
+
+411 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+412  
+	gçl£
+;
+
+415  
+	gŒue
+;
+
+418 
+boÞ
+ 
+·r£NÚQuÙedSŒšg
+() {
+
+419 
+	gc
+ = 
+cu¼’t
+();
+
+420 
+ARDUINOJSON_ASSERT
+(
+c
+);
+
+422 ià(
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+)) {
+
+424 
+move
+();
+
+425 
+	g_¡ršgStÜage
+.
+­³nd
+(
+c
+);
+
+426 
+	gc
+ = 
+cu¼’t
+();
+
+427 } 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+));
+
+429 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+430  
+	gçl£
+;
+
+433 
+	g_¡ršgStÜage
+.
+­³nd
+('\0');
+
+435 ià(!
+	g_¡ršgStÜage
+.
+isV®id
+()) {
+
+436 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+437  
+	gçl£
+;
+
+440  
+	gŒue
+;
+
+443 
+boÞ
+ 
+sk�SŒšg
+() {
+
+444 cÚ¡ 
+	g¡ÝCh¬
+ = 
+cu¼’t
+();
+
+446 
+move
+();
+
+448 
+	gc
+ = 
+cu¼’t
+();
+
+449 
+move
+();
+
+450 ià(
+	gc
+ =ð
+¡ÝCh¬
+)
+
+452 ià(
+	gc
+ == '\0') {
+
+453 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+454  
+	gçl£
+;
+
+456 ià(
+	gc
+ == '\\') {
+
+457 ià(
+cu¼’t
+() != '\0')
+
+458 
+move
+();
+
+462  
+	gŒue
+;
+
+465 
+boÞ
+ 
+·r£Num”icV®ue
+(
+V¬ŸÁD©a
+ &
+»suÉ
+) {
+
+466 
+ušt8_t
+ 
+	gn
+ = 0;
+
+468 
+	gc
+ = 
+cu¼’t
+();
+
+469 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+è&& 
+	gn
+ < 63) {
+
+470 
+move
+();
+
+471 
+	g_bufãr
+[
+n
+++] = 
+c
+;
+
+472 
+	gc
+ = 
+cu¼’t
+();
+
+474 
+	g_bufãr
+[
+n
+] = 0;
+
+476 
+	gc
+ = 
+_bufãr
+[0];
+
+477 ià(
+	gc
+ == 't') {
+
+478 
+»suÉ
+.
+£tBoÞ—n
+(
+Œue
+);
+
+479 ià(
+	gn
+ != 4) {
+
+480 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+481  
+	gçl£
+;
+
+483  
+	gŒue
+;
+
+485 ià(
+	gc
+ == 'f') {
+
+486 
+»suÉ
+.
+£tBoÞ—n
+(
+çl£
+);
+
+487 ià(
+	gn
+ != 5) {
+
+488 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+489  
+	gçl£
+;
+
+491  
+	gŒue
+;
+
+493 ià(
+	gc
+ == 'n') {
+
+495 ià(
+n
+ != 4) {
+
+496 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+497  
+	gçl£
+;
+
+499  
+	gŒue
+;
+
+502 ià(!
+·r£Numb”
+(
+_bufãr
+, 
+»suÉ
+)) {
+
+503 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+504  
+	gçl£
+;
+
+507  
+	gŒue
+;
+
+510 
+boÞ
+ 
+sk�Num”icV®ue
+() {
+
+511 
+	gc
+ = 
+cu¼’t
+();
+
+512 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+)) {
+
+513 
+move
+();
+
+514 
+	gc
+ = 
+cu¼’t
+();
+
+516  
+	gŒue
+;
+
+519 
+boÞ
+ 
+·r£Hex4
+(
+ušt16_t
+ &
+»suÉ
+) {
+
+520 
+	g»suÉ
+ = 0;
+
+521 
+ušt8_t
+ 
+	gi
+ = 0; i < 4; ++i) {
+
+522 
+	gdig™
+ = 
+cu¼’t
+();
+
+523 ià(!
+	gdig™
+) {
+
+524 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+525  
+	gçl£
+;
+
+527 
+ušt8_t
+ 
+	gv®ue
+ = 
+decodeHex
+(
+dig™
+);
+
+528 ià(
+	gv®ue
+ > 0x0F) {
+
+529 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+530  
+	gçl£
+;
+
+532 
+	g»suÉ
+ = 
+ušt16_t
+((
+»suÉ
+ << 4è| 
+v®ue
+);
+
+533 
+move
+();
+
+535  
+	gŒue
+;
+
+538 
+šlše
+ 
+boÞ
+ 
+isB‘w“n
+(
+c
+, 
+mš
+, 
+max
+) {
+
+539  
+	gmš
+ <ð
+c
+ && c <ð
+max
+;
+
+542 
+šlše
+ 
+boÞ
+ 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+) {
+
+543  
+isB‘w“n
+(
+c
+, '0', '9') || isBetween(c, '_', 'z') ||
+
+544 
+isB‘w“n
+(
+c
+, 'A', 'Z'è|| 
+	gc
+ == '+' || c == '-' || c == '.';
+
+547 
+šlše
+ 
+boÞ
+ 
+isQuÙe
+(
+c
+) {
+
+548  
+	gc
+ =ð'\'' || 
+c
+ == '\"';
+
+551 
+šlše
+ 
+ušt8_t
+ 
+decodeHex
+(
+c
+) {
+
+552 ià(
+	gc
+ < 'A')
+
+553  
+ušt8_t
+(
+c
+ - '0');
+
+554 
+	gc
+ = (
+c
+ & ~0x20);
+
+555  
+ušt8_t
+(
+c
+ - 'A' + 10);
+
+558 
+boÞ
+ 
+sk�S·ûsAndComm’ts
+() {
+
+560 
+cu¼’t
+()) {
+
+563 
+_”rÜ
+ = 
+_foundSom‘hšg
+ ? 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+
+
+564 : 
+De£rŸliz©iÚE¼Ü
+::
+Em±yIÅut
+;
+
+565  
+	gçl£
+;
+
+572 
+move
+();
+
+575 #ià
+ARDUINOJSON_ENABLE_COMMENTS
+
+
+578 
+move
+();
+
+579 
+cu¼’t
+()) {
+
+582 
+move
+();
+
+583 
+boÞ
+ 
+	gwasS�r
+ = 
+çl£
+;
+
+585 
+	gc
+ = 
+cu¼’t
+();
+
+586 ià(
+	gc
+ == '\0') {
+
+587 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+588  
+	gçl£
+;
+
+590 ià(
+	gc
+ =ð'/' && 
+wasS�r
+) {
+
+591 
+move
+();
+
+594 
+	gwasS�r
+ = 
+c
+ == '*';
+
+595 
+move
+();
+
+604 
+move
+();
+
+605 
+	gc
+ = 
+cu¼’t
+();
+
+606 ià(
+	gc
+ == '\0') {
+
+607 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+608  
+	gçl£
+;
+
+610 ià(
+	gc
+ == '\n')
+
+617 
+_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+618  
+	gçl£
+;
+
+624 
+_foundSom‘hšg
+ = 
+Œue
+;
+
+625  
+	gŒue
+;
+
+630 
+TSŒšgStÜage
+ 
+	g_¡ršgStÜage
+;
+
+631 
+boÞ
+ 
+	g_foundSom‘hšg
+;
+
+632 
+	gL©ch
+<
+	gTR—d”
+> 
+	g_Ïtch
+;
+
+633 
+MemÜyPoÞ
+ *
+	g_poÞ
+;
+
+634 
+	g_bufãr
+[64];
+
+637 
+De£rŸliz©iÚE¼Ü
+ 
+	g_”rÜ
+;
+
+644 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+645 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+646 
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+,
+
+647 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+648  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+649 
+	`AÎowAÎFž‹r
+());
+
+650 
+	}
+}
+
+652 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+653 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+654 
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+655 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+656  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+657 
+	}
+}
+
+659 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+660 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+,
+
+661 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+662  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+663 
+	}
+}
+
+669 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒ—m
+>
+
+670 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+671 
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+,
+
+672 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+673  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+674 
+	`AÎowAÎFž‹r
+());
+
+675 
+	}
+}
+
+677 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒ—m
+>
+
+678 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+679 
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+680 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+681  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+682 
+	}
+}
+
+684 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒ—m
+>
+
+685 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+,
+
+686 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+687  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+688 
+	}
+}
+
+694 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+695 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+696 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+697 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+698  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+699 
+	`AÎowAÎFž‹r
+());
+
+700 
+	}
+}
+
+702 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+703 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+704 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+705 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+706  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+707 
+	}
+}
+
+709 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+710 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+711 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+712  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+713 
+	}
+}
+
+719 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+720 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+721 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+size_t
+ 
+šputSize
+,
+
+722 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+723  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+724 
+	`AÎowAÎFž‹r
+());
+
+725 
+	}
+}
+
+727 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+728 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+729 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+size_t
+ 
+šputSize
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+730 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+731  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+732 
+fž‹r
+);
+
+733 
+	}
+}
+
+735 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+736 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+737 
+size_t
+ 
+šputSize
+,
+
+738 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+739  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+740 
+fž‹r
+);
+
+741 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/JsÚ/TextFÜm©‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Misc/Vis™abË.hµ
+>
+
+9 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/m—su».hµ
+>
+
+10 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/£rŸlize.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+15 
+þass
+ 
+	gJsÚS”Ÿliz”
+ : 
+public
+ 
+Vis™Ü
+<
+size_t
+> {
+
+16 
+public
+:
+
+17 
+JsÚS”Ÿliz”
+(
+TWr™”
+ 
+wr™”
+è: 
+_fÜm©‹r
+(writer) {}
+
+19 
+FORCE_INLINE
+ 
+size_t
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+¬¿y
+) {
+
+20 
+wr™e
+('[');
+
+22 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+¬¿y
+.
+h—d
+();
+
+24 
+	g¦Ù
+ != 0) {
+
+25 
+¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+27 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+28 ià(
+	g¦Ù
+ == 0)
+
+31 
+wr™e
+(',');
+
+34 
+wr™e
+(']');
+
+35  
+by‹sWr™‹n
+();
+
+38 
+size_t
+ 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+objeù
+) {
+
+39 
+wr™e
+('{');
+
+41 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+.
+h—d
+();
+
+43 
+	g¦Ù
+ != 0) {
+
+44 
+_fÜm©‹r
+.
+wr™eSŒšg
+(
+¦Ù
+->
+key
+());
+
+45 
+wr™e
+(':');
+
+46 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+48 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+49 ià(
+	g¦Ù
+ == 0)
+
+52 
+wr™e
+(',');
+
+55 
+wr™e
+('}');
+
+56  
+by‹sWr™‹n
+();
+
+59 
+size_t
+ 
+vis™Flßt
+(
+Flßt
+ 
+v®ue
+) {
+
+60 
+	g_fÜm©‹r
+.
+wr™eFlßt
+(
+v®ue
+);
+
+61  
+by‹sWr™‹n
+();
+
+64 
+size_t
+ 
+vis™SŒšg
+(cÚ¡ *
+v®ue
+) {
+
+65 
+	g_fÜm©‹r
+.
+wr™eSŒšg
+(
+v®ue
+);
+
+66  
+by‹sWr™‹n
+();
+
+69 
+size_t
+ 
+vis™RawJsÚ
+(cÚ¡ *
+d©a
+, size_ˆ
+n
+) {
+
+70 
+	g_fÜm©‹r
+.
+wr™eRaw
+(
+d©a
+, 
+n
+);
+
+71  
+by‹sWr™‹n
+();
+
+74 
+size_t
+ 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+75 
+	g_fÜm©‹r
+.
+wr™eNeg©iveIÁeg”
+(
+v®ue
+);
+
+76  
+by‹sWr™‹n
+();
+
+79 
+size_t
+ 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+80 
+	g_fÜm©‹r
+.
+wr™ePos™iveIÁeg”
+(
+v®ue
+);
+
+81  
+by‹sWr™‹n
+();
+
+84 
+size_t
+ 
+vis™BoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+85 
+	g_fÜm©‹r
+.
+wr™eBoÞ—n
+(
+v®ue
+);
+
+86  
+by‹sWr™‹n
+();
+
+89 
+size_t
+ 
+vis™NuÎ
+() {
+
+90 
+	g_fÜm©‹r
+.
+wr™eRaw
+("null");
+
+91  
+by‹sWr™‹n
+();
+
+94 
+	g´Ùeùed
+:
+
+95 
+size_t
+ 
+by‹sWr™‹n
+() const {
+
+96  
+_fÜm©‹r
+.
+by‹sWr™‹n
+();
+
+99 
+wr™e
+(
+c
+) {
+
+100 
+	g_fÜm©‹r
+.
+wr™eRaw
+(
+c
+);
+
+103 
+wr™e
+(cÚ¡ *
+s
+) {
+
+104 
+	g_fÜm©‹r
+.
+wr™eRaw
+(
+s
+);
+
+107 
+	g´iv©e
+:
+
+108 
+TextFÜm©‹r
+<
+TWr™”
+> 
+_fÜm©‹r
+;
+
+111 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+112 
+size_t
+ 
+£rŸlizeJsÚ
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TDe¡š©iÚ
+ &
+de¡š©iÚ
+) {
+
+113  
+	g£rŸlize
+<
+	gJsÚS”Ÿliz”
+>(
+	gsourû
+, 
+	gde¡š©iÚ
+);
+
+116 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+117 
+size_t
+ 
+£rŸlizeJsÚ
+(cÚ¡ 
+TSourû
+ &
+sourû
+, *
+bufãr
+, size_ˆ
+bufãrSize
+) {
+
+118  
+	g£rŸlize
+<
+	gJsÚS”Ÿliz”
+>(
+	gsourû
+, 
+	gbufãr
+, 
+	gbufãrSize
+);
+
+121 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+122 
+size_t
+ 
+m—su»JsÚ
+(cÚ¡ 
+TSourû
+ &
+sourû
+) {
+
+123  
+	gm—su»
+<
+	gJsÚS”Ÿliz”
+>(
+	gsourû
+);
+
+126 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+127 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+128 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	g¡d
+::
+o¡»am
+ &>::
+ty³
+
+
+129 
+Ý”©Ü
+<<(
+¡d
+::
+o¡»am
+ &
+os
+, cÚ¡ 
+	gT
+ &
+	gsourû
+) {
+
+130 
+£rŸlizeJsÚ
+(
+sourû
+, 
+os
+);
+
+131  
+	gos
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTR—d”
+>
+
+12 þas 
+	cL©ch
+ {
+
+13 
+	gpublic
+:
+
+14 
+L©ch
+(
+TR—d”
+ 
+»ad”
+è: 
+_»ad”
+Ô—d”), 
+_lßded
+(
+çl£
+) {
+
+15 #ià
+ARDUINOJSON_DEBUG
+
+
+16 
+	g_’ded
+ = 
+çl£
+;
+
+20 
+þ—r
+() {
+
+21 
+	g_lßded
+ = 
+çl£
+;
+
+24 
+Ï¡
+() const {
+
+25  
+	g_cu¼’t
+;
+
+28 
+FORCE_INLINE
+ 
+cu¼’t
+() {
+
+29 ià(!
+	g_lßded
+) {
+
+30 
+lßd
+();
+
+32  
+	g_cu¼’t
+;
+
+35 
+	g´iv©e
+:
+
+36 
+lßd
+() {
+
+37 
+ARDUINOJSON_ASSERT
+(!
+_’ded
+);
+
+38 
+	gc
+ = 
+_»ad”
+.
+»ad
+();
+
+39 #ià
+ARDUINOJSON_DEBUG
+
+
+40 ià(
+	gc
+ <= 0)
+
+41 
+_’ded
+ = 
+Œue
+;
+
+43 
+	g_cu¼’t
+ = 
+¡©ic_ÿ¡
+<>(
+c
+ > 0 ? c : 0);
+
+44 
+	g_lßded
+ = 
+Œue
+;
+
+47 
+TR—d”
+ 
+	g_»ad”
+;
+
+48 
+	g_cu¼’t
+;
+
+49 
+boÞ
+ 
+	g_lßded
+;
+
+50 #ià
+ARDUINOJSON_DEBUG
+
+
+51 
+boÞ
+ 
+	g_’ded
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/JsÚ/JsÚS”Ÿliz”.hµ
+>
+
+9 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/m—su».hµ
+>
+
+10 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/£rŸlize.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+15 
+þass
+ 
+	gP»‰yJsÚS”Ÿliz”
+ : 
+public
+ 
+JsÚS”Ÿliz”
+<
+TWr™”
+> {
+
+16 
+JsÚS”Ÿliz”
+<
+	tTWr™”
+> 
+	tba£
+;
+
+18 
+	gpublic
+:
+
+19 
+P»‰yJsÚS”Ÿliz”
+(
+TWr™”
+ &
+wr™”
+è: 
+ba£
+(wr™”), 
+_Ã¡šg
+(0) {}
+
+21 
+size_t
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+¬¿y
+) {
+
+22 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+¬¿y
+.
+h—d
+();
+
+23 ià(
+	g¦Ù
+) {
+
+24 
+	gba£
+::
+wr™e
+("[\r\n");
+
+25 
+	g_Ã¡šg
+++;
+
+26 
+	g¦Ù
+ != 0) {
+
+27 
+šd’t
+();
+
+28 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+30 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+31 
+	gba£
+::
+wr™e
+(
+¦Ù
+ ? ",\r\n" : "\r\n");
+
+33 
+	g_Ã¡šg
+--;
+
+34 
+šd’t
+();
+
+35 
+	gba£
+::
+wr™e
+("]");
+
+37 
+	gba£
+::
+wr™e
+("[]");
+
+39  
+	gthis
+->
+by‹sWr™‹n
+();
+
+42 
+size_t
+ 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+objeù
+) {
+
+43 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+.
+h—d
+();
+
+44 ià(
+	g¦Ù
+) {
+
+45 
+	gba£
+::
+wr™e
+("{\r\n");
+
+46 
+	g_Ã¡šg
+++;
+
+47 
+	g¦Ù
+ != 0) {
+
+48 
+šd’t
+();
+
+49 
+	gba£
+::
+vis™SŒšg
+(
+¦Ù
+->
+key
+());
+
+50 
+	gba£
+::
+wr™e
+(": ");
+
+51 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+53 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+54 
+	gba£
+::
+wr™e
+(
+¦Ù
+ ? ",\r\n" : "\r\n");
+
+56 
+	g_Ã¡šg
+--;
+
+57 
+šd’t
+();
+
+58 
+	gba£
+::
+wr™e
+("}");
+
+60 
+	gba£
+::
+wr™e
+("{}");
+
+62  
+	gthis
+->
+by‹sWr™‹n
+();
+
+65 
+	g´iv©e
+:
+
+66 
+šd’t
+() {
+
+67 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	g_Ã¡šg
+; i++è
+	gba£
+::
+wr™e
+(
+ARDUINOJSON_TAB
+);
+
+70 
+ušt8_t
+ 
+	g_Ã¡šg
+;
+
+73 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+74 
+size_t
+ 
+£rŸlizeJsÚP»‰y
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TDe¡š©iÚ
+ &
+de¡š©iÚ
+) {
+
+75  
+	g£rŸlize
+<
+	gP»‰yJsÚS”Ÿliz”
+>(
+	gsourû
+, 
+	gde¡š©iÚ
+);
+
+78 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+79 
+size_t
+ 
+£rŸlizeJsÚP»‰y
+(cÚ¡ 
+TSourû
+ &
+sourû
+, *
+bufãr
+,
+
+80 
+size_t
+ 
+bufãrSize
+) {
+
+81  
+	g£rŸlize
+<
+	gP»‰yJsÚS”Ÿliz”
+>(
+	gsourû
+, 
+	gbufãr
+, 
+	gbufãrSize
+);
+
+84 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+85 
+size_t
+ 
+m—su»JsÚP»‰y
+(cÚ¡ 
+TSourû
+ &
+sourû
+) {
+
+86  
+	gm—su»
+<
+	gP»‰yJsÚS”Ÿliz”
+>(
+	gsourû
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡dšt.h
+>
+
+8 
+	~<¡ršg.h
+>
+
+10 
+	~<ArdušoJsÚ/JsÚ/Esÿ³Sequ’û.hµ
+>
+
+11 
+	~<ArdušoJsÚ/Numb”s/FlßtP¬ts.hµ
+>
+
+12 
+	~<ArdušoJsÚ/Numb”s/IÁeg”.hµ
+>
+
+13 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+14 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+15 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/CouÁšgDecÜ©Ü.hµ
+>
+
+17 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+20 þas 
+	cTextFÜm©‹r
+ {
+
+21 
+	gpublic
+:
+
+22 
+ex¶ic™
+ 
+TextFÜm©‹r
+(
+TWr™”
+ 
+wr™”
+è: 
+_wr™”
+(writer) {}
+
+25 
+size_t
+ 
+by‹sWr™‹n
+() const {
+
+26  
+_wr™”
+.
+couÁ
+();
+
+29 
+wr™eBoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+30 ià(
+	gv®ue
+)
+
+31 
+wr™eRaw
+("true");
+
+33 
+wr™eRaw
+("false");
+
+36 
+wr™eSŒšg
+(cÚ¡ *
+v®ue
+) {
+
+37 
+ARDUINOJSON_ASSERT
+(
+v®ue
+ !ð
+NULL
+);
+
+38 
+wr™eRaw
+('\"');
+
+39 *
+	gv®ue
+è
+wr™eCh¬
+(*
+v®ue
+++);
+
+40 
+wr™eRaw
+('\"');
+
+43 
+wr™eCh¬
+(
+c
+) {
+
+44 
+	g¥ecŸlCh¬
+ = 
+Esÿ³Sequ’û
+::
+esÿ³Ch¬
+(
+c
+);
+
+45 ià(
+	g¥ecŸlCh¬
+) {
+
+46 
+wr™eRaw
+('\\');
+
+47 
+wr™eRaw
+(
+¥ecŸlCh¬
+);
+
+49 
+wr™eRaw
+(
+c
+);
+
+53 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+54 
+wr™eFlßt
+(
+T
+ 
+v®ue
+) {
+
+55 ià(
+i¢ª
+(
+v®ue
+))
+
+56  
+wr™eRaw
+(
+ARDUINOJSON_ENABLE_NAN
+ ? "NaN" : "null");
+
+58 #ià
+ARDUINOJSON_ENABLE_INFINITY
+
+
+59 ià(
+	gv®ue
+ < 0.0) {
+
+60 
+wr™eRaw
+('-');
+
+61 
+	gv®ue
+ = -
+v®ue
+;
+
+64 ià(
+isšf
+(
+v®ue
+))
+
+65  
+wr™eRaw
+("Infinity");
+
+67 ià(
+isšf
+(
+v®ue
+))
+
+68  
+wr™eRaw
+("null");
+
+70 ià(
+	gv®ue
+ < 0.0) {
+
+71 
+wr™eRaw
+('-');
+
+72 
+	gv®ue
+ = -
+v®ue
+;
+
+76 
+	gFlßtP¬ts
+<
+	gT
+> 
+·¹s
+(
+v®ue
+);
+
+78 
+wr™ePos™iveIÁeg”
+(
+·¹s
+.
+š‹g¿l
+);
+
+79 ià(
+	g·¹s
+.
+	gdecim®PÏûs
+)
+
+80 
+wr™eDecim®s
+(
+·¹s
+.
+decim®
+,…¬ts.
+decim®PÏûs
+);
+
+82 ià(
+	g·¹s
+.
+	gexpÚ’t
+ < 0) {
+
+83 
+wr™eRaw
+("e-");
+
+84 
+wr™ePos™iveIÁeg”
+(-
+·¹s
+.
+expÚ’t
+);
+
+87 ià(
+	g·¹s
+.
+	gexpÚ’t
+ > 0) {
+
+88 
+wr™eRaw
+('e');
+
+89 
+wr™ePos™iveIÁeg”
+(
+·¹s
+.
+expÚ’t
+);
+
+93 
+wr™eNeg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+94 
+wr™eRaw
+('-');
+
+95 
+wr™ePos™iveIÁeg”
+(
+v®ue
+);
+
+98 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+99 
+wr™ePos™iveIÁeg”
+(
+T
+ 
+v®ue
+) {
+
+100 
+	gbufãr
+[22];
+
+101 *
+	g’d
+ = 
+bufãr
+ + (buffer);
+
+102 *
+	gbegš
+ = 
+’d
+;
+
+106 *--
+	gbegš
+ = (
+v®ue
+ % 10 + '0');
+
+107 
+	gv®ue
+ = 
+T
+(
+v®ue
+ / 10);
+
+108 } 
+	gv®ue
+);
+
+111 
+wr™eRaw
+(
+begš
+, 
+’d
+);
+
+114 
+wr™eDecim®s
+(
+ušt32_t
+ 
+v®ue
+, 
+št8_t
+ 
+width
+) {
+
+116 
+	gbufãr
+[16];
+
+117 *
+	g’d
+ = 
+bufãr
+ + (buffer);
+
+118 *
+	gbegš
+ = 
+’d
+;
+
+121 
+	gwidth
+--) {
+
+122 *--
+	gbegš
+ = (
+v®ue
+ % 10 + '0');
+
+123 
+	gv®ue
+ /= 10;
+
+125 *--
+	gbegš
+ = '.';
+
+128 
+wr™eRaw
+(
+begš
+, 
+’d
+);
+
+131 
+wr™eRaw
+(cÚ¡ *
+s
+) {
+
+132 
+	g_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+s
+), 
+¡¾’
+(s));
+
+135 
+wr™eRaw
+(cÚ¡ *
+s
+, 
+size_t
+ 
+n
+) {
+
+136 
+	g_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+s
+), 
+n
+);
+
+139 
+wr™eRaw
+(cÚ¡ *
+begš
+, cÚ¡ *
+’d
+) {
+
+140 
+	g_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+begš
+),
+
+141 
+¡©ic_ÿ¡
+<
+size_t
+>(
+’d
+ - 
+begš
+));
+
+144 
+	g‹m¶©e
+ <
+size_t
+ 
+	gN
+>
+
+145 
+wr™eRaw
+(cÚ¡ (&
+s
+)[
+N
+]) {
+
+146 
+	g_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+s
+), 
+N
+ - 1);
+
+148 
+wr™eRaw
+(
+c
+) {
+
+149 
+	g_wr™”
+.
+wr™e
+(
+¡©ic_ÿ¡
+<
+ušt8_t
+>(
+c
+));
+
+152 
+	g´Ùeùed
+:
+
+153 
+CouÁšgDecÜ©Ü
+<
+TWr™”
+> 
+_wr™”
+;
+
+154 
+size_t
+ 
+	g_Ëngth
+;
+
+156 
+	g´iv©e
+:
+
+157 
+TextFÜm©‹r
+ &
+Ý”©Ü
+=(const TextFormatter &);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡dšt.h
+>
+
+14 #ià
+defšed
+(
+__GNUC__
+)
+
+15 #ià
+__GNUC__
+ >= 7
+
+16 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+17 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wmaybe-uninitialized"
+
+21 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+23 
+Çme¥aû
+ 
+	gUtf16
+ {
+
+24 
+šlše
+ 
+boÞ
+ 
+isHighSu¼og©e
+(
+ušt16_t
+ 
+codeun™
+) {
+
+25  
+	gcodeun™
+ >ð0xD800 && 
+codeun™
+ < 0xDC00;
+
+28 
+šlše
+ 
+boÞ
+ 
+isLowSu¼og©e
+(
+ušt16_t
+ 
+codeun™
+) {
+
+29  
+	gcodeun™
+ >ð0xDC00 && 
+codeun™
+ < 0xE000;
+
+32 þas 
+	cCod•ošt
+ {
+
+33 
+	gpublic
+:
+
+34 
+Cod•ošt
+(è: 
+_highSu¼og©e
+(0) {}
+
+36 
+boÞ
+ 
+­³nd
+(
+ušt16_t
+ 
+codeun™
+) {
+
+37 ià(
+isHighSu¼og©e
+(
+codeun™
+)) {
+
+38 
+_highSu¼og©e
+ = 
+codeun™
+ & 0x3FF;
+
+39  
+	gçl£
+;
+
+42 ià(
+isLowSu¼og©e
+(
+codeun™
+)) {
+
+43 
+	g_cod•ošt
+ =
+
+44 
+ušt32_t
+(0x10000 + ((
+_highSu¼og©e
+ << 10è| (
+codeun™
+ & 0x3FF)));
+
+45  
+	gŒue
+;
+
+48 
+	g_cod•ošt
+ = 
+codeun™
+;
+
+49  
+	gŒue
+;
+
+52 
+ušt32_t
+ 
+v®ue
+() const {
+
+53  
+	g_cod•ošt
+;
+
+56 
+	g´iv©e
+:
+
+57 
+ušt16_t
+ 
+_highSu¼og©e
+;
+
+58 
+ušt32_t
+ 
+	g_cod•ošt
+;
+
+63 #ià
+defšed
+(
+__GNUC__
+)
+
+64 #ià
+__GNUC__
+ >= 8
+
+65 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+Çme¥aû
+ 
+	gUtf8
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšgBužd”
+>
+
+13 
+šlše
+ 
+’codeCod•ošt
+(
+ušt32_t
+ 
+cod•ošt32
+, 
+TSŒšgBužd”
+& 
+¡r
+) {
+
+17 
+	gbuf
+[5];
+
+18 * 
+	gp
+ = 
+buf
+;
+
+20 *(
+	gp
+++) = 0;
+
+21 ià(
+	gcod•ošt32
+ < 0x80) {
+
+22 *(
+	gp
+++èð((
+cod•ošt32
+));
+
+24 *(
+	gp
+++èð((
+cod•ošt32
+ | 0x80) & 0xBF);
+
+25 
+ušt16_t
+ 
+	gcod•ošt16
+ = ušt16_t(
+cod•ošt32
+ >> 6);
+
+26 ià(
+	gcod•ošt16
+ < 0x20) {
+
+27 *(
+	gp
+++èð(
+cod•ošt16
+ | 0xC0);
+
+29 *(
+	gp
+++èð((
+cod•ošt16
+ | 0x80) & 0xBF);
+
+30 
+	gcod•ošt16
+ = 
+ušt16_t
+(
+cod•ošt16
+ >> 6);
+
+31 ià(
+	gcod•ošt16
+ < 0x10) {
+
+32 *(
+	gp
+++èð(
+cod•ošt16
+ | 0xE0);
+
+34 *(
+	gp
+++èð((
+cod•ošt16
+ | 0x80) & 0xBF);
+
+35 
+	gcod•ošt16
+ = 
+ušt16_t
+(
+cod•ošt16
+ >> 6);
+
+36 *(
+	gp
+++èð(
+cod•ošt16
+ | 0xF0);
+
+41 *(--
+	gp
+)) {
+
+42 
+	g¡r
+.
+­³nd
+(*
+p
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡ddef.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 #ià
+ARDUINOJSON_ENABLE_ALIGNMENT
+
+
+15 
+šlše
+ 
+boÞ
+ 
+isAligÃd
+(
+size_t
+ 
+v®ue
+) {
+
+16 cÚ¡ 
+size_t
+ 
+	gmask
+ = (*) - 1;
+
+17 
+size_t
+ 
+	gaddr
+ = 
+v®ue
+;
+
+18  (
+	gaddr
+ & 
+	gmask
+) == 0;
+
+21 
+šlše
+ 
+size_t
+ 
+addPaddšg
+(size_ˆ
+by‹s
+) {
+
+22 cÚ¡ 
+size_t
+ 
+	gmask
+ = (*) - 1;
+
+23  (
+	gby‹s
+ + 
+	gmask
+) & ~mask;
+
+26 
+	g‹m¶©e
+ <
+size_t
+ 
+	gby‹s
+>
+
+27 
+	sAddPaddšg
+ {
+
+28 cÚ¡ 
+size_t
+ 
+	gmask
+ = (*) - 1;
+
+29 cÚ¡ 
+size_t
+ 
+	gv®ue
+ = (
+by‹s
+ + 
+mask
+) & ~mask;
+
+34 
+šlše
+ 
+boÞ
+ 
+isAligÃd
+(
+size_t
+) {
+
+35  
+	gŒue
+;
+
+38 
+šlše
+ 
+size_t
+ 
+addPaddšg
+(size_ˆ
+by‹s
+) {
+
+39  
+	gby‹s
+;
+
+42 
+	g‹m¶©e
+ <
+size_t
+ 
+	gby‹s
+>
+
+43 
+	sAddPaddšg
+ {
+
+44 cÚ¡ 
+size_t
+ 
+	gv®ue
+ = 
+by‹s
+;
+
+49 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+50 
+šlše
+ 
+boÞ
+ 
+isAligÃd
+(
+T
+ *
+±r
+) {
+
+51  
+isAligÃd
+(
+»š‹½»t_ÿ¡
+<
+size_t
+>(
+±r
+));
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+55 
+šlše
+ 
+T
+ *
+addPaddšg
+(T *
+p
+) {
+
+56 
+size_t
+ 
+	gadd»ss
+ = 
+addPaddšg
+(
+»š‹½»t_ÿ¡
+<size_t>(
+p
+));
+
+57  
+	g»š‹½»t_ÿ¡
+<
+	gT
+ *>(
+	gadd»ss
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/Alignm’t.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/m¶/max.hµ
+>
+
+10 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁSlÙ.hµ
+>
+
+12 
+	~<¡ršg.h
+>
+
+14 
+	#JSON_STRING_SIZE
+(
+SIZE
+è(SIZE + 1)
+
+	)
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+26 þas 
+	cMemÜyPoÞ
+ {
+
+27 
+	gpublic
+:
+
+28 
+MemÜyPoÞ
+(* 
+buf
+, 
+size_t
+ 
+ÿ·
+)
+
+29 : 
+_begš
+(
+buf
+),
+
+30 
+_Ëá
+(
+buf
+),
+
+31 
+_right
+(
+buf
+ ? buà+ 
+ÿ·
+ : 0),
+
+32 
+_’d
+(
+buf
+ ? buà+ 
+ÿ·
+ : 0),
+
+33 
+_ov”æowed
+(
+çl£
+) {
+
+34 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_begš
+));
+
+35 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_right
+));
+
+36 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_’d
+));
+
+39 * 
+bufãr
+() {
+
+40  
+	g_begš
+;
+
+44 
+size_t
+ 
+ÿ·c™y
+() const {
+
+45  
+size_t
+(
+_’d
+ - 
+_begš
+);
+
+48 
+size_t
+ 
+size
+() const {
+
+49  
+size_t
+(
+_Ëá
+ - 
+_begš
+ + 
+_’d
+ - 
+_right
+);
+
+52 
+boÞ
+ 
+ov”æowed
+() const {
+
+53  
+	g_ov”æowed
+;
+
+56 
+V¬ŸÁSlÙ
+* 
+®locV¬ŸÁ
+() {
+
+57  
+	g®locRight
+<
+	gV¬ŸÁSlÙ
+>();
+
+60 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+61 cÚ¡ * 
+§veSŒšg
+(cÚ¡ 
+TAd­‹dSŒšg
+& 
+¡r
+) {
+
+62 ià(
+	g¡r
+.
+isNuÎ
+())
+
+65 #ià
+ARDUINOJSON_ENABLE_STRING_DEDUPLICATION
+
+
+66 cÚ¡ * 
+	gexi¡šgCÝy
+ = 
+fšdSŒšg
+(
+¡r
+.
+begš
+());
+
+67 ià(
+	gexi¡šgCÝy
+)
+
+68  
+	gexi¡šgCÝy
+;
+
+71 
+size_t
+ 
+	gn
+ = 
+¡r
+.
+size
+();
+
+73 * 
+	gÃwCÝy
+ = 
+®locSŒšg
+(
+n
+ + 1);
+
+74 ià(
+	gÃwCÝy
+) {
+
+75 
+	g¡r
+.
+cÝyTo
+(
+ÃwCÝy
+, 
+n
+);
+
+76 
+	gÃwCÝy
+[
+n
+] = 0;
+
+78  
+	gÃwCÝy
+;
+
+81 
+g‘F»eZÚe
+(** 
+zÚeS�¹
+, 
+size_t
+* 
+zÚeSize
+) const {
+
+82 *
+	gzÚeS�¹
+ = 
+_Ëá
+;
+
+83 *
+	gzÚeSize
+ = 
+size_t
+(
+_right
+ - 
+_Ëá
+);
+
+86 cÚ¡ * 
+§veSŒšgFromF»eZÚe
+(
+size_t
+ 
+Ën
+) {
+
+87 #ià
+ARDUINOJSON_ENABLE_STRING_DEDUPLICATION
+
+
+88 cÚ¡ * 
+	gdup
+ = 
+fšdSŒšg
+(
+_Ëá
+);
+
+89 ià(
+	gdup
+)
+
+90  
+	gdup
+;
+
+93 cÚ¡ * 
+	g¡r
+ = 
+_Ëá
+;
+
+94 
+	g_Ëá
+ +ð
+Ën
+;
+
+95 
+checkInv¬ŸÁs
+();
+
+96  
+	g¡r
+;
+
+99 
+m¬kAsOv”æowed
+() {
+
+100 
+	g_ov”æowed
+ = 
+Œue
+;
+
+103 
+þ—r
+() {
+
+104 
+	g_Ëá
+ = 
+_begš
+;
+
+105 
+	g_right
+ = 
+_’d
+;
+
+106 
+	g_ov”æowed
+ = 
+çl£
+;
+
+109 
+boÞ
+ 
+ÿnAÎoc
+(
+size_t
+ 
+by‹s
+) const {
+
+110  
+	g_Ëá
+ + 
+	gby‹s
+ <ð
+_right
+;
+
+113 
+boÞ
+ 
+owns
+(* 
+p
+) const {
+
+114  
+	g_begš
+ <ð
+p
+ &&… < 
+_’d
+;
+
+118 * 
+Ý”©Ü
+ 
+Ãw
+(
+size_t
+, * 
+p
+) {
+
+119  
+	gp
+;
+
+133 
+±rdiff_t
+ 
+squash
+() {
+
+134 * 
+	gÃw_right
+ = 
+addPaddšg
+(
+_Ëá
+);
+
+135 ià(
+	gÃw_right
+ >ð
+_right
+)
+
+138 
+size_t
+ 
+	gright_size
+ = 
+¡©ic_ÿ¡
+<size_t>(
+_’d
+ - 
+_right
+);
+
+139 
+memmove
+(
+Ãw_right
+, 
+_right
+, 
+right_size
+);
+
+141 
+±rdiff_t
+ 
+	gby‹s_»þaimed
+ = 
+_right
+ - 
+Ãw_right
+;
+
+142 
+	g_right
+ = 
+Ãw_right
+;
+
+143 
+	g_’d
+ = 
+Ãw_right
+ + 
+right_size
+;
+
+144  
+	gby‹s_»þaimed
+;
+
+149 
+movePoš‹rs
+(
+±rdiff_t
+ 
+off£t
+) {
+
+150 
+	g_begš
+ +ð
+off£t
+;
+
+151 
+	g_Ëá
+ +ð
+off£t
+;
+
+152 
+	g_right
+ +ð
+off£t
+;
+
+153 
+	g_’d
+ +ð
+off£t
+;
+
+156 
+	g´iv©e
+:
+
+157 
+checkInv¬ŸÁs
+() {
+
+158 
+ARDUINOJSON_ASSERT
+(
+_begš
+ <ð
+_Ëá
+);
+
+159 
+ARDUINOJSON_ASSERT
+(
+_Ëá
+ <ð
+_right
+);
+
+160 
+ARDUINOJSON_ASSERT
+(
+_right
+ <ð
+_’d
+);
+
+161 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_right
+));
+
+164 #ià
+ARDUINOJSON_ENABLE_STRING_DEDUPLICATION
+
+
+165 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTI‹¿tÜ
+>
+
+166 cÚ¡ * 
+fšdSŒšg
+(
+TI‹¿tÜ
+ 
+¡r
+) {
+
+167 * 
+	gÃxt
+ = 
+_begš
+;‚exˆ< 
+	g_Ëá
+; ++next) {
+
+168 * 
+	gbegš
+ = 
+Ãxt
+;
+
+171 
+TI‹¿tÜ
+ 
+	g™
+ = 
+¡r
+; *™ =ð*
+Ãxt
+; ++it) {
+
+172 ià(*
+	gÃxt
+++ == 0)
+
+173  
+begš
+;
+
+177 *
+	gÃxt
+) ++next;
+
+183 * 
+®locSŒšg
+(
+size_t
+ 
+n
+) {
+
+184 ià(!
+ÿnAÎoc
+(
+n
+)) {
+
+185 
+	g_ov”æowed
+ = 
+Œue
+;
+
+188 * 
+	gs
+ = 
+_Ëá
+;
+
+189 
+	g_Ëá
+ +ð
+n
+;
+
+190 
+checkInv¬ŸÁs
+();
+
+191  
+	gs
+;
+
+194 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+195 
+T
+* 
+®locRight
+() {
+
+196  
+	g»š‹½»t_ÿ¡
+<
+	gT
+*>(
+®locRight
+((
+T
+)));
+
+199 * 
+®locRight
+(
+size_t
+ 
+by‹s
+) {
+
+200 ià(!
+ÿnAÎoc
+(
+by‹s
+)) {
+
+201 
+	g_ov”æowed
+ = 
+Œue
+;
+
+204 
+	g_right
+ -ð
+by‹s
+;
+
+205  
+	g_right
+;
+
+208 *
+	g_begš
+, *
+	g_Ëá
+, *
+	g_right
+, *
+	g_’d
+;
+
+209 
+boÞ
+ 
+	g_ov”æowed
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/SŒšgAd­‹rs.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 þas 
+	cS”ŸlizedV®ue
+ {
+
+14 
+	gpublic
+:
+
+15 
+ex¶ic™
+ 
+S”ŸlizedV®ue
+(
+T
+ 
+¡r
+è: 
+_¡r
+(str) {}
+
+16 
+Ý”©Ü
+ 
+T
+() const {
+
+17  
+_¡r
+;
+
+20 cÚ¡ * 
+d©a
+() const {
+
+21  
+	g_¡r
+.
+c_¡r
+();
+
+24 
+size_t
+ 
+size
+() const {
+
+26  
+	g_¡r
+.
+Ëngth
+();
+
+29 
+	g´iv©e
+:
+
+30 
+T
+ 
+_¡r
+;
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+34 
+þass
+ 
+	gS”ŸlizedV®ue
+<
+	gTCh¬
+*> {
+
+35 
+	gpublic
+:
+
+36 
+ex¶ic™
+ 
+S”ŸlizedV®ue
+(
+TCh¬
+* 
+p
+, 
+size_t
+ 
+n
+è: 
+_d©a
+Õ), 
+_size
+(n) {}
+
+37 
+Ý”©Ü
+ 
+	gTCh¬
+*() const {
+
+38  
+	g_d©a
+;
+
+41 
+TCh¬
+* 
+d©a
+() const {
+
+42  
+	g_d©a
+;
+
+45 
+size_t
+ 
+size
+() const {
+
+46  
+	g_size
+;
+
+49 
+	g´iv©e
+:
+
+50 
+TCh¬
+* 
+_d©a
+;
+
+51 
+size_t
+ 
+	g_size
+;
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+55 
+šlše
+ 
+	gS”ŸlizedV®ue
+<
+	gT
+> 
+	$£rŸlized
+(
+T
+ 
+¡r
+) {
+
+56  
+S”ŸlizedV®ue
+<
+T
+>(
+¡r
+);
+
+57 
+	}
+}
+
+59 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+60 
+šlše
+ 
+	gS”ŸlizedV®ue
+<
+	gTCh¬
+*> 
+	$£rŸlized
+(
+TCh¬
+* 
+p
+) {
+
+61  
+S”ŸlizedV®ue
+<
+TCh¬
+*>(
+p
+, 
+	`ad­tSŒšg
+Õ).
+	`size
+());
+
+62 
+	}
+}
+
+64 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+65 
+šlše
+ 
+	gS”ŸlizedV®ue
+<
+	gTCh¬
+*> 
+	$£rŸlized
+(
+TCh¬
+* 
+p
+, 
+size_t
+ 
+n
+) {
+
+66  
+S”ŸlizedV®ue
+<
+TCh¬
+*>(
+p
+, 
+n
+);
+
+67 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTResuÉ
+>
+
+12 
+	sVis™Ü
+ {
+
+13 
+TResuÉ
+ 
+	t»suÉ_ty³
+;
+
+16 
+	sVis™abË
+ {
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+22 
+	gIsVis™abË
+ : 
+is_ba£_of
+<
+Vis™abË
+, 
+	gT
+> {};
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+25 
+	gIsVis™abË
+<
+	gT
+&> : 
+IsVis™abË
+<
+T
+> {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/de£rŸlize.hµ
+>
+
+8 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/MsgPack/’dŸÃss.hµ
+>
+
+10 
+	~<ArdušoJsÚ/MsgPack/›“754.hµ
+>
+
+11 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+12 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTR—d”
+,�y³Çm�
+	gTSŒšgStÜage
+>
+
+17 þas 
+	cMsgPackDe£rŸliz”
+ {
+
+18 
+	gpublic
+:
+
+19 
+MsgPackDe£rŸliz”
+(
+MemÜyPoÞ
+ &
+poÞ
+, 
+TR—d”
+ 
+»ad”
+,
+
+20 
+TSŒšgStÜage
+ 
+¡ršgStÜage
+)
+
+21 : 
+_poÞ
+(&
+poÞ
+),
+
+22 
+_»ad”
+(
+»ad”
+),
+
+23 
+_¡ršgStÜage
+(
+¡ršgStÜage
+),
+
+24 
+_”rÜ
+(
+De£rŸliz©iÚE¼Ü
+::
+Ok
+),
+
+25 
+_foundSom‘hšg
+(
+çl£
+) {}
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+28 
+De£rŸliz©iÚE¼Ü
+ 
+·r£
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+29 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+30 
+·r£V¬ŸÁ
+(
+v¬ŸÁ
+, 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+31  
+	g_foundSom‘hšg
+ ? 
+	g_”rÜ
+ : 
+De£rŸliz©iÚE¼Ü
+::
+Em±yIÅut
+;
+
+34 
+	g´iv©e
+:
+
+36 
+MsgPackDe£rŸliz”
+ &
+Ý”©Ü
+=(const MsgPackDeserializer &);
+
+38 
+boÞ
+ 
+šv®idIÅut
+() {
+
+39 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+40  
+	gçl£
+;
+
+43 
+boÞ
+ 
+nÙSuµÜ‹d
+() {
+
+44 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+;
+
+45  
+	gçl£
+;
+
+48 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+49 
+boÞ
+ 
+·r£V¬ŸÁ
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+50 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+51 
+ušt8_t
+ 
+	gcode
+ = 0;
+
+52 ià(!
+»adBy‹
+(
+code
+))
+
+53  
+	gçl£
+;
+
+55 
+	g_foundSom‘hšg
+ = 
+Œue
+;
+
+57 
+boÞ
+ 
+	g®lowV®ue
+ = 
+fž‹r
+.
+®lowV®ue
+();
+
+59 
+	gcode
+) {
+
+62  
+Œue
+;
+
+65  
+šv®idIÅut
+();
+
+68 ià(
+®lowV®ue
+)
+
+69 
+v¬ŸÁ
+.
+£tBoÞ—n
+(
+çl£
+);
+
+70  
+	gŒue
+;
+
+73 ià(
+®lowV®ue
+)
+
+74 
+v¬ŸÁ
+.
+£tBoÞ—n
+(
+Œue
+);
+
+75  
+	gŒue
+;
+
+78 ià(
+®lowV®ue
+)
+
+79  
+nÙSuµÜ‹d
+();
+
+81  
+	gsk�SŒšg
+<
+	gušt8_t
+>();
+
+84 ià(
+®lowV®ue
+)
+
+85  
+nÙSuµÜ‹d
+();
+
+87  
+	gsk�SŒšg
+<
+	gušt16_t
+>();
+
+90 ià(
+®lowV®ue
+)
+
+91  
+nÙSuµÜ‹d
+();
+
+93  
+	gsk�SŒšg
+<
+	gušt32_t
+>();
+
+96 ià(
+®lowV®ue
+)
+
+97  
+nÙSuµÜ‹d
+();
+
+99  
+	gsk�Ext
+<
+	gušt8_t
+>();
+
+102 ià(
+®lowV®ue
+)
+
+103  
+nÙSuµÜ‹d
+();
+
+105  
+	gsk�Ext
+<
+	gušt16_t
+>();
+
+108 ià(
+®lowV®ue
+)
+
+109  
+nÙSuµÜ‹d
+();
+
+111  
+	gsk�Ext
+<
+	gušt32_t
+>();
+
+114 ià(
+®lowV®ue
+)
+
+115  
+»adFlßt
+<>(
+v¬ŸÁ
+);
+
+117  
+sk�By‹s
+(4);
+
+120 ià(
+®lowV®ue
+)
+
+121  
+»adDoubË
+<>(
+v¬ŸÁ
+);
+
+123  
+sk�By‹s
+(8);
+
+126 ià(
+®lowV®ue
+)
+
+127  
+»adIÁeg”
+<
+ušt8_t
+>(
+v¬ŸÁ
+);
+
+129  
+sk�By‹s
+(1);
+
+132 ià(
+®lowV®ue
+)
+
+133  
+»adIÁeg”
+<
+ušt16_t
+>(
+v¬ŸÁ
+);
+
+135  
+sk�By‹s
+(2);
+
+138 ià(
+®lowV®ue
+)
+
+139  
+»adIÁeg”
+<
+ušt32_t
+>(
+v¬ŸÁ
+);
+
+141  
+sk�By‹s
+(4);
+
+144 ià(
+®lowV®ue
+)
+
+145 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+146  
+»adIÁeg”
+<
+ušt64_t
+>(
+v¬ŸÁ
+);
+
+148  
+nÙSuµÜ‹d
+();
+
+151  
+sk�By‹s
+(8);
+
+154 ià(
+®lowV®ue
+)
+
+155  
+»adIÁeg”
+<
+št8_t
+>(
+v¬ŸÁ
+);
+
+157  
+sk�By‹s
+(1);
+
+160 ià(
+®lowV®ue
+)
+
+161  
+»adIÁeg”
+<
+št16_t
+>(
+v¬ŸÁ
+);
+
+163  
+sk�By‹s
+(2);
+
+166 ià(
+®lowV®ue
+)
+
+167  
+»adIÁeg”
+<
+št32_t
+>(
+v¬ŸÁ
+);
+
+169  
+sk�By‹s
+(4);
+
+172 ià(
+®lowV®ue
+)
+
+173 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+174  
+»adIÁeg”
+<
+št64_t
+>(
+v¬ŸÁ
+);
+
+176  
+nÙSuµÜ‹d
+();
+
+179  
+sk�By‹s
+(8);
+
+182 ià(
+®lowV®ue
+)
+
+183  
+nÙSuµÜ‹d
+();
+
+185  
+sk�By‹s
+(2);
+
+188 ià(
+®lowV®ue
+)
+
+189  
+nÙSuµÜ‹d
+();
+
+191  
+sk�By‹s
+(3);
+
+194 ià(
+®lowV®ue
+)
+
+195  
+nÙSuµÜ‹d
+();
+
+197  
+sk�By‹s
+(5);
+
+200 ià(
+®lowV®ue
+)
+
+201  
+nÙSuµÜ‹d
+();
+
+203  
+sk�By‹s
+(9);
+
+206 ià(
+®lowV®ue
+)
+
+207  
+nÙSuµÜ‹d
+();
+
+209  
+sk�By‹s
+(17);
+
+212 ià(
+®lowV®ue
+)
+
+213  
+»adSŒšg
+<
+ušt8_t
+>(
+v¬ŸÁ
+);
+
+215  
+	gsk�SŒšg
+<
+	gušt8_t
+>();
+
+218 ià(
+®lowV®ue
+)
+
+219  
+»adSŒšg
+<
+ušt16_t
+>(
+v¬ŸÁ
+);
+
+221  
+	gsk�SŒšg
+<
+	gušt16_t
+>();
+
+224 ià(
+®lowV®ue
+)
+
+225  
+»adSŒšg
+<
+ušt32_t
+>(
+v¬ŸÁ
+);
+
+227  
+	gsk�SŒšg
+<
+	gušt32_t
+>();
+
+230  
+»adA¼ay
+<
+ušt16_t
+>(
+v¬ŸÁ
+, 
+	gfž‹r
+, 
+	gÃ¡šgLim™
+);
+
+233  
+»adA¼ay
+<
+ušt32_t
+>(
+v¬ŸÁ
+, 
+	gfž‹r
+, 
+	gÃ¡šgLim™
+);
+
+236  
+»adObjeù
+<
+ušt16_t
+>(
+v¬ŸÁ
+, 
+	gfž‹r
+, 
+	gÃ¡šgLim™
+);
+
+239  
+»adObjeù
+<
+ušt32_t
+>(
+v¬ŸÁ
+, 
+	gfž‹r
+, 
+	gÃ¡šgLim™
+);
+
+242 
+	gcode
+ & 0xf0) {
+
+244  
+»adObjeù
+(
+v¬ŸÁ
+, 
+code
+ & 0x0F, 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+247  
+»adA¼ay
+(
+v¬ŸÁ
+, 
+code
+ & 0x0F, 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+250 ià((
+	gcode
+ & 0xe0) == 0xa0) {
+
+251 ià(
+®lowV®ue
+)
+
+252  
+»adSŒšg
+(
+v¬ŸÁ
+, 
+code
+ & 0x1f);
+
+254  
+sk�By‹s
+(
+code
+ & 0x1f);
+
+257 ià(
+	g®lowV®ue
+)
+
+258 
+	gv¬ŸÁ
+.
+£tIÁeg”
+(
+¡©ic_ÿ¡
+<
+št8_t
+>(
+code
+));
+
+260  
+	gŒue
+;
+
+263 
+boÞ
+ 
+»adBy‹
+(
+ušt8_t
+ &
+v®ue
+) {
+
+264 
+	gc
+ = 
+_»ad”
+.
+»ad
+();
+
+265 ià(
+	gc
+ < 0) {
+
+266 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+267  
+	gçl£
+;
+
+269 
+	gv®ue
+ = 
+¡©ic_ÿ¡
+<
+ušt8_t
+>(
+c
+);
+
+270  
+	gŒue
+;
+
+273 
+boÞ
+ 
+»adBy‹s
+(
+ušt8_t
+ *
+p
+, 
+size_t
+ 
+n
+) {
+
+274 ià(
+	g_»ad”
+.
+»adBy‹s
+(
+»š‹½»t_ÿ¡
+<*>(
+p
+), 
+n
+) ==‚)
+
+275  
+Œue
+;
+
+276 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+277  
+	gçl£
+;
+
+280 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+281 
+boÞ
+ 
+»adBy‹s
+(
+T
+ &
+v®ue
+) {
+
+282  
+»adBy‹s
+(
+»š‹½»t_ÿ¡
+<
+ušt8_t
+ *>(&
+v®ue
+), (value));
+
+285 
+boÞ
+ 
+sk�By‹s
+(
+size_t
+ 
+n
+) {
+
+286 ; 
+	gn
+; --n) {
+
+287 ià(
+	g_»ad”
+.
+»ad
+() < 0) {
+
+288 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+289  
+	gçl£
+;
+
+292  
+	gŒue
+;
+
+295 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+296 
+boÞ
+ 
+»adIÁeg”
+(
+T
+ &
+v®ue
+) {
+
+297 ià(!
+»adBy‹s
+(
+v®ue
+))
+
+298  
+	gçl£
+;
+
+299 
+fixEndŸÃss
+(
+v®ue
+);
+
+300  
+	gŒue
+;
+
+303 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+304 
+boÞ
+ 
+»adIÁeg”
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+305 
+T
+ 
+	gv®ue
+;
+
+306 ià(!
+»adIÁeg”
+(
+v®ue
+))
+
+307  
+	gçl£
+;
+
+308 
+	gv¬ŸÁ
+.
+£tIÁeg”
+(
+v®ue
+);
+
+309  
+	gŒue
+;
+
+312 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+313 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð4, 
+	gboÞ
+>::
+ty³
+ 
+»adFlßt
+(
+
+314 
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+315 
+T
+ 
+v®ue
+;
+
+316 ià(!
+»adBy‹s
+(
+v®ue
+))
+
+317  
+	gçl£
+;
+
+318 
+fixEndŸÃss
+(
+v®ue
+);
+
+319 
+	gv¬ŸÁ
+.
+£tFlßt
+(
+v®ue
+);
+
+320  
+	gŒue
+;
+
+323 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+324 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð8, 
+	gboÞ
+>::
+ty³
+ 
+»adDoubË
+(
+
+325 
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+326 
+T
+ 
+v®ue
+;
+
+327 ià(!
+»adBy‹s
+(
+v®ue
+))
+
+328  
+	gçl£
+;
+
+329 
+fixEndŸÃss
+(
+v®ue
+);
+
+330 
+	gv¬ŸÁ
+.
+£tFlßt
+(
+v®ue
+);
+
+331  
+	gŒue
+;
+
+334 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+335 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð4, 
+	gboÞ
+>::
+ty³
+ 
+»adDoubË
+(
+
+336 
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+337 
+ušt8_t
+ 
+i
+[8];
+
+338 
+T
+ 
+	gv®ue
+;
+
+339 
+ušt8_t
+ *
+	go
+ = 
+»š‹½»t_ÿ¡
+<ušt8_ˆ*>(&
+v®ue
+);
+
+340 ià(!
+»adBy‹s
+(
+i
+, 8))
+
+341  
+	gçl£
+;
+
+342 
+doubËToFlßt
+(
+i
+, 
+o
+);
+
+343 
+fixEndŸÃss
+(
+v®ue
+);
+
+344 
+	gv¬ŸÁ
+.
+£tFlßt
+(
+v®ue
+);
+
+345  
+	gŒue
+;
+
+348 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+349 
+boÞ
+ 
+»adSŒšg
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+350 
+T
+ 
+	gsize
+;
+
+351 ià(!
+»adIÁeg”
+(
+size
+))
+
+352  
+	gçl£
+;
+
+353  
+»adSŒšg
+(
+v¬ŸÁ
+, 
+size
+);
+
+356 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+357 
+boÞ
+ 
+»adSŒšg
+() {
+
+358 
+T
+ 
+	gsize
+;
+
+359 ià(!
+»adIÁeg”
+(
+size
+))
+
+360  
+	gçl£
+;
+
+361  
+»adSŒšg
+(
+size
+);
+
+364 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+365 
+boÞ
+ 
+sk�SŒšg
+() {
+
+366 
+T
+ 
+	gsize
+;
+
+367 ià(!
+»adIÁeg”
+(
+size
+))
+
+368  
+	gçl£
+;
+
+369  
+sk�By‹s
+(
+size
+);
+
+372 
+boÞ
+ 
+»adSŒšg
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+size_t
+ 
+n
+) {
+
+373 ià(!
+»adSŒšg
+(
+n
+))
+
+374  
+	gçl£
+;
+
+375 
+	gv¬ŸÁ
+.
+£tSŒšgPoš‹r
+(
+_¡ršgStÜage
+.
+§ve
+(),
+
+376 
+ty³Çme
+ 
+TSŒšgStÜage
+::
+¡Üage_pÞicy
+());
+
+377  
+	gŒue
+;
+
+380 
+boÞ
+ 
+»adSŒšg
+(
+size_t
+ 
+n
+) {
+
+381 
+	g_¡ršgStÜage
+.
+¡¬tSŒšg
+();
+
+382 ; 
+	gn
+; --n) {
+
+383 
+ušt8_t
+ 
+	gc
+;
+
+384 ià(!
+»adBy‹s
+(
+c
+))
+
+385  
+	gçl£
+;
+
+386 
+	g_¡ršgStÜage
+.
+­³nd
+(
+¡©ic_ÿ¡
+<>(
+c
+));
+
+388 
+	g_¡ršgStÜage
+.
+­³nd
+('\0');
+
+389 ià(!
+	g_¡ršgStÜage
+.
+isV®id
+()) {
+
+390 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+391  
+	gçl£
+;
+
+394  
+	gŒue
+;
+
+397 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSize
+,�y³Çm�
+	gTFž‹r
+>
+
+398 
+boÞ
+ 
+»adA¼ay
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+399 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+400 
+TSize
+ 
+	gsize
+;
+
+401 ià(!
+»adIÁeg”
+(
+size
+))
+
+402  
+	gçl£
+;
+
+403  
+»adA¼ay
+(
+v¬ŸÁ
+, 
+size
+, 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+406 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+407 
+boÞ
+ 
+»adA¼ay
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+size_t
+ 
+n
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+408 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+409 ià(
+	gÃ¡šgLim™
+.
+»ached
+()) {
+
+410 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+411  
+	gçl£
+;
+
+414 
+boÞ
+ 
+	g®lowA¼ay
+ = 
+fž‹r
+.
+®lowA¼ay
+();
+
+416 
+CÞËùiÚD©a
+ *
+	g¬¿y
+ = 
+®lowA¼ay
+ ? &
+v¬ŸÁ
+.
+toA¼ay
+() : 0;
+
+418 
+TFž‹r
+ 
+	gmemb”Fž‹r
+ = 
+fž‹r
+[0U];
+
+420 ; 
+	gn
+; --n) {
+
+421 
+V¬ŸÁD©a
+ *
+	gv®ue
+;
+
+423 ià(
+	gmemb”Fž‹r
+.
+®low
+()) {
+
+424 
+	gv®ue
+ = 
+¬¿y
+->
+addEËm’t
+(
+_poÞ
+);
+
+425 ià(!
+	gv®ue
+) {
+
+426 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+427  
+	gçl£
+;
+
+430 
+	gv®ue
+ = 0;
+
+433 ià(!
+·r£V¬ŸÁ
+(*
+v®ue
+, 
+memb”Fž‹r
+, 
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+434  
+	gçl£
+;
+
+437  
+	gŒue
+;
+
+440 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSize
+,�y³Çm�
+	gTFž‹r
+>
+
+441 
+boÞ
+ 
+»adObjeù
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+442 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+443 
+TSize
+ 
+	gsize
+;
+
+444 ià(!
+»adIÁeg”
+(
+size
+))
+
+445  
+	gçl£
+;
+
+446  
+»adObjeù
+(
+v¬ŸÁ
+, 
+size
+, 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+449 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+450 
+boÞ
+ 
+»adObjeù
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+size_t
+ 
+n
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+451 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+452 ià(
+	gÃ¡šgLim™
+.
+»ached
+()) {
+
+453 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+454  
+	gçl£
+;
+
+457 
+CÞËùiÚD©a
+ *
+	gobjeù
+ = 
+fž‹r
+.
+®lowObjeù
+(è? &
+v¬ŸÁ
+.
+toObjeù
+() : 0;
+
+459 ; 
+	gn
+; --n) {
+
+460 ià(!
+»adKey
+())
+
+461  
+	gçl£
+;
+
+463 cÚ¡ *
+	gkey
+ = 
+_¡ršgStÜage
+.
+c_¡r
+();
+
+464 
+TFž‹r
+ 
+	gmemb”Fž‹r
+ = 
+fž‹r
+[
+key
+];
+
+465 
+V¬ŸÁD©a
+ *
+	gmemb”
+;
+
+467 ià(
+	gmemb”Fž‹r
+.
+®low
+()) {
+
+470 
+	gkey
+ = 
+_¡ršgStÜage
+.
+§ve
+();
+
+472 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+->
+addSlÙ
+(
+_poÞ
+);
+
+473 ià(!
+	g¦Ù
+) {
+
+474 
+	g_”rÜ
+ = 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+475  
+	gçl£
+;
+
+478 
+	g¦Ù
+->
+£tKey
+(
+key
+, 
+ty³Çme
+ 
+TSŒšgStÜage
+::
+¡Üage_pÞicy
+());
+
+480 
+	gmemb”
+ = 
+¦Ù
+->
+d©a
+();
+
+482 
+	gmemb”
+ = 0;
+
+485 ià(!
+·r£V¬ŸÁ
+(*
+memb”
+, 
+memb”Fž‹r
+, 
+Ã¡šgLim™
+.
+deüem’t
+()))
+
+486  
+	gçl£
+;
+
+489  
+	gŒue
+;
+
+492 
+boÞ
+ 
+»adKey
+() {
+
+493 
+ušt8_t
+ 
+	gcode
+;
+
+494 ià(!
+»adBy‹
+(
+code
+))
+
+495  
+	gçl£
+;
+
+497 ià((
+	gcode
+ & 0xe0) == 0xa0)
+
+498  
+»adSŒšg
+(
+code
+ & 0x1f);
+
+500 
+	gcode
+) {
+
+502  
+»adSŒšg
+<
+ušt8_t
+>();
+
+505  
+»adSŒšg
+<
+ušt16_t
+>();
+
+508  
+»adSŒšg
+<
+ušt32_t
+>();
+
+511  
+nÙSuµÜ‹d
+();
+
+515 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+516 
+boÞ
+ 
+sk�Ext
+() {
+
+517 
+T
+ 
+	gsize
+;
+
+518 ià(!
+»adIÁeg”
+(
+size
+))
+
+519  
+	gçl£
+;
+
+520  
+sk�By‹s
+(
+size
+ + 1);
+
+523 
+MemÜyPoÞ
+ *
+	g_poÞ
+;
+
+524 
+TR—d”
+ 
+	g_»ad”
+;
+
+525 
+TSŒšgStÜage
+ 
+	g_¡ršgStÜage
+;
+
+526 
+De£rŸliz©iÚE¼Ü
+ 
+	g_”rÜ
+;
+
+527 
+boÞ
+ 
+	g_foundSom‘hšg
+;
+
+534 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+535 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+536 
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+,
+
+537 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+538  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+539 
+	`AÎowAÎFž‹r
+());
+
+540 
+	}
+}
+
+542 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+543 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+544 
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+545 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+546  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+547 
+	}
+}
+
+549 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+550 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeMsgPack
+(
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+,
+
+551 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+552 
+Fž‹r
+ 
+fž‹r
+) {
+
+553  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+554 
+	}
+}
+
+560 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒ—m
+>
+
+561 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+562 
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+,
+
+563 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+564  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+565 
+	`AÎowAÎFž‹r
+());
+
+566 
+	}
+}
+
+568 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒ—m
+>
+
+569 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+570 
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+571 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+572  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+573 
+	}
+}
+
+575 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒ—m
+>
+
+576 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeMsgPack
+(
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+,
+
+577 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+578 
+Fž‹r
+ 
+fž‹r
+) {
+
+579  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+580 
+	}
+}
+
+586 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+587 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+588 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+589 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+590  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+591 
+	`AÎowAÎFž‹r
+());
+
+592 
+	}
+}
+
+594 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+595 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+596 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+597 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+598  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+599 
+	}
+}
+
+601 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+602 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeMsgPack
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+603 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+604 
+Fž‹r
+ 
+fž‹r
+) {
+
+605  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+606 
+	}
+}
+
+612 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+613 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+614 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+size_t
+ 
+šputSize
+,
+
+615 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+616  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+617 
+	`AÎowAÎFž‹r
+());
+
+618 
+	}
+}
+
+620 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+621 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+622 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+size_t
+ 
+šputSize
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+623 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+624  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+625 
+fž‹r
+);
+
+626 
+	}
+}
+
+628 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+629 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeMsgPack
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+630 
+size_t
+ 
+šputSize
+,
+
+631 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+632 
+Fž‹r
+ 
+fž‹r
+) {
+
+633  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+634 
+fž‹r
+);
+
+635 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MsgPack/’dŸÃss.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/CouÁšgDecÜ©Ü.hµ
+>
+
+11 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/m—su».hµ
+>
+
+12 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/£rŸlize.hµ
+>
+
+13 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+18 
+þass
+ 
+	gMsgPackS”Ÿliz”
+ : 
+public
+ 
+Vis™Ü
+<
+size_t
+> {
+
+19 
+public
+:
+
+20 
+MsgPackS”Ÿliz”
+(
+TWr™”
+ 
+wr™”
+è: 
+_wr™”
+(writer) {}
+
+22 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+23 
+ty³Çme
+ 
+’abË_if
+<(
+T
+è=ð4, 
+	gsize_t
+>::
+ty³
+ 
+vis™Flßt
+(T 
+v®ue32
+) {
+
+24 
+wr™eBy‹
+(0xCA);
+
+25 
+wr™eIÁeg”
+(
+v®ue32
+);
+
+26  
+by‹sWr™‹n
+();
+
+29 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+30 
+ARDUINOJSON_NO_SANITIZE
+("float-cast-overflow")
+
+31 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð8, 
+	gsize_t
+>::
+ty³
+ 
+vis™Flßt
+(
+T
+ 
+v®ue64
+) {
+
+32 
+v®ue32
+ = (
+v®ue64
+);
+
+33 ià(
+	gv®ue32
+ =ð
+v®ue64
+) {
+
+34 
+wr™eBy‹
+(0xCA);
+
+35 
+wr™eIÁeg”
+(
+v®ue32
+);
+
+37 
+wr™eBy‹
+(0xCB);
+
+38 
+wr™eIÁeg”
+(
+v®ue64
+);
+
+40  
+by‹sWr™‹n
+();
+
+43 
+size_t
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+¬¿y
+) {
+
+44 
+size_t
+ 
+	gn
+ = 
+¬¿y
+.
+size
+();
+
+45 ià(
+	gn
+ < 0x10) {
+
+46 
+wr™eBy‹
+(
+ušt8_t
+(0x90 + 
+¬¿y
+.
+size
+()));
+
+47 } ià(
+	gn
+ < 0x10000) {
+
+48 
+wr™eBy‹
+(0xDC);
+
+49 
+wr™eIÁeg”
+(
+ušt16_t
+(
+n
+));
+
+51 
+wr™eBy‹
+(0xDD);
+
+52 
+wr™eIÁeg”
+(
+ušt32_t
+(
+n
+));
+
+54 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+¬¿y
+.
+h—d
+(); slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+()) {
+
+55 
+¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+57  
+by‹sWr™‹n
+();
+
+60 
+size_t
+ 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+objeù
+) {
+
+61 
+size_t
+ 
+	gn
+ = 
+objeù
+.
+size
+();
+
+62 ià(
+	gn
+ < 0x10) {
+
+63 
+wr™eBy‹
+(
+ušt8_t
+(0x80 + 
+n
+));
+
+64 } ià(
+	gn
+ < 0x10000) {
+
+65 
+wr™eBy‹
+(0xDE);
+
+66 
+wr™eIÁeg”
+(
+ušt16_t
+(
+n
+));
+
+68 
+wr™eBy‹
+(0xDF);
+
+69 
+wr™eIÁeg”
+(
+ušt32_t
+(
+n
+));
+
+71 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+objeù
+.
+h—d
+(); slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+()) {
+
+72 
+vis™SŒšg
+(
+¦Ù
+->
+key
+());
+
+73 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+75  
+by‹sWr™‹n
+();
+
+78 
+size_t
+ 
+vis™SŒšg
+(cÚ¡ * 
+v®ue
+) {
+
+79 
+ARDUINOJSON_ASSERT
+(
+v®ue
+ !ð
+NULL
+);
+
+81 
+size_t
+ 
+	gn
+ = 
+¡¾’
+(
+v®ue
+);
+
+83 ià(
+	gn
+ < 0x20) {
+
+84 
+wr™eBy‹
+(
+ušt8_t
+(0xA0 + 
+n
+));
+
+85 } ià(
+	gn
+ < 0x100) {
+
+86 
+wr™eBy‹
+(0xD9);
+
+87 
+wr™eIÁeg”
+(
+ušt8_t
+(
+n
+));
+
+88 } ià(
+	gn
+ < 0x10000) {
+
+89 
+wr™eBy‹
+(0xDA);
+
+90 
+wr™eIÁeg”
+(
+ušt16_t
+(
+n
+));
+
+92 
+wr™eBy‹
+(0xDB);
+
+93 
+wr™eIÁeg”
+(
+ušt32_t
+(
+n
+));
+
+95 
+wr™eBy‹s
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+*>(
+v®ue
+), 
+n
+);
+
+96  
+by‹sWr™‹n
+();
+
+99 
+size_t
+ 
+vis™RawJsÚ
+(cÚ¡ * 
+d©a
+, size_ˆ
+size
+) {
+
+100 
+wr™eBy‹s
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+*>(
+d©a
+), 
+size
+);
+
+101  
+by‹sWr™‹n
+();
+
+104 
+size_t
+ 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+105 
+UIÁ
+ 
+	gÃg©ed
+ = UIÁ(~
+v®ue
+ + 1);
+
+106 ià(
+	gv®ue
+ <= 0x20) {
+
+107 
+wr™eIÁeg”
+(
+št8_t
+(
+Ãg©ed
+));
+
+108 } ià(
+	gv®ue
+ <= 0x80) {
+
+109 
+wr™eBy‹
+(0xD0);
+
+110 
+wr™eIÁeg”
+(
+št8_t
+(
+Ãg©ed
+));
+
+111 } ià(
+	gv®ue
+ <= 0x8000) {
+
+112 
+wr™eBy‹
+(0xD1);
+
+113 
+wr™eIÁeg”
+(
+št16_t
+(
+Ãg©ed
+));
+
+114 } ià(
+	gv®ue
+ <= 0x80000000) {
+
+115 
+wr™eBy‹
+(0xD2);
+
+116 
+wr™eIÁeg”
+(
+št32_t
+(
+Ãg©ed
+));
+
+118 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+120 
+wr™eBy‹
+(0xD3);
+
+121 
+wr™eIÁeg”
+(
+št64_t
+(
+Ãg©ed
+));
+
+124  
+by‹sWr™‹n
+();
+
+127 
+size_t
+ 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+128 ià(
+	gv®ue
+ <= 0x7F) {
+
+129 
+wr™eIÁeg”
+(
+ušt8_t
+(
+v®ue
+));
+
+130 } ià(
+	gv®ue
+ <= 0xFF) {
+
+131 
+wr™eBy‹
+(0xCC);
+
+132 
+wr™eIÁeg”
+(
+ušt8_t
+(
+v®ue
+));
+
+133 } ià(
+	gv®ue
+ <= 0xFFFF) {
+
+134 
+wr™eBy‹
+(0xCD);
+
+135 
+wr™eIÁeg”
+(
+ušt16_t
+(
+v®ue
+));
+
+137 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+138 ià(
+	gv®ue
+ <= 0xFFFFFFFF)
+
+143 
+wr™eBy‹
+(0xCE);
+
+144 
+wr™eIÁeg”
+(
+ušt32_t
+(
+v®ue
+));
+
+146 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+148 
+wr™eBy‹
+(0xCF);
+
+149 
+wr™eIÁeg”
+(
+ušt64_t
+(
+v®ue
+));
+
+152  
+by‹sWr™‹n
+();
+
+155 
+size_t
+ 
+vis™BoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+156 
+wr™eBy‹
+(
+v®ue
+ ? 0xC3 : 0xC2);
+
+157  
+by‹sWr™‹n
+();
+
+160 
+size_t
+ 
+vis™NuÎ
+() {
+
+161 
+wr™eBy‹
+(0xC0);
+
+162  
+by‹sWr™‹n
+();
+
+165 
+	g´iv©e
+:
+
+166 
+size_t
+ 
+by‹sWr™‹n
+() const {
+
+167  
+_wr™”
+.
+couÁ
+();
+
+170 
+wr™eBy‹
+(
+ušt8_t
+ 
+c
+) {
+
+171 
+	g_wr™”
+.
+wr™e
+(
+c
+);
+
+174 
+wr™eBy‹s
+(cÚ¡ 
+ušt8_t
+* 
+p
+, 
+size_t
+ 
+n
+) {
+
+175 
+	g_wr™”
+.
+wr™e
+(
+p
+, 
+n
+);
+
+178 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+179 
+wr™eIÁeg”
+(
+T
+ 
+v®ue
+) {
+
+180 
+fixEndŸÃss
+(
+v®ue
+);
+
+181 
+wr™eBy‹s
+(
+»š‹½»t_ÿ¡
+<
+ušt8_t
+*>(&
+v®ue
+), (value));
+
+184 
+	gCouÁšgDecÜ©Ü
+<
+	gTWr™”
+> 
+	g_wr™”
+;
+
+187 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+188 
+šlše
+ 
+size_t
+ 
+£rŸlizeMsgPack
+(cÚ¡ 
+TSourû
+& 
+sourû
+, 
+TDe¡š©iÚ
+& 
+ou�ut
+) {
+
+189  
+	g£rŸlize
+<
+	gMsgPackS”Ÿliz”
+>(
+	gsourû
+, 
+	gou�ut
+);
+
+192 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+193 
+šlše
+ 
+size_t
+ 
+£rŸlizeMsgPack
+(cÚ¡ 
+TSourû
+& 
+sourû
+, * 
+ou�ut
+,
+
+194 
+size_t
+ 
+size
+) {
+
+195  
+	g£rŸlize
+<
+	gMsgPackS”Ÿliz”
+>(
+	gsourû
+, 
+	gou�ut
+, 
+	gsize
+);
+
+198 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+199 
+šlše
+ 
+size_t
+ 
+m—su»MsgPack
+(cÚ¡ 
+TSourû
+& 
+sourû
+) {
+
+200  
+	gm—su»
+<
+	gMsgPackS”Ÿliz”
+>(
+	gsourû
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/utž™y.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 #ià
+ARDUINOJSON_LITTLE_ENDIAN
+
+
+13 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *
+p
+, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 8>) {
+
+14 
+sw­
+(
+p
+[0],…[7]);
+
+15 
+sw­
+(
+p
+[1],…[6]);
+
+16 
+sw­
+(
+p
+[2],…[5]);
+
+17 
+sw­
+(
+p
+[3],…[4]);
+
+20 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *
+p
+, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 4>) {
+
+21 
+sw­
+(
+p
+[0],…[3]);
+
+22 
+sw­
+(
+p
+[1],…[2]);
+
+25 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *
+p
+, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 2>) {
+
+26 
+sw­
+(
+p
+[0],…[1]);
+
+29 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 1>) {}
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+32 
+šlše
+ 
+fixEndŸÃss
+(
+T
+ &
+v®ue
+) {
+
+33 
+fixEndŸÃss
+(
+»š‹½»t_ÿ¡
+<
+ušt8_t
+ *>(&
+v®ue
+),
+
+34 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, (
+T
+)>());
+
+37 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+38 
+šlše
+ 
+fixEndŸÃss
+(
+T
+ &) {}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+šlše
+ 
+doubËToFlßt
+(cÚ¡ 
+ušt8_t
+ 
+d
+[8], ušt8_ˆ
+f
+[4]) {
+
+12 
+	gf
+[0] = 
+ušt8_t
+((
+d
+[0] & 0xC0) | (d[0] << 3 & 0x3f) | (d[1] >> 5));
+
+13 
+	gf
+[1] = 
+ušt8_t
+((
+d
+[1] << 3) | (d[2] >> 5));
+
+14 
+	gf
+[2] = 
+ušt8_t
+((
+d
+[2] << 3) | (d[3] >> 5));
+
+15 
+	gf
+[3] = 
+ušt8_t
+((
+d
+[3] << 3) | (d[4] >> 5));
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/´•roûssÜ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/v”siÚ.hµ
+>
+
+11 #iâdeà
+ARDUINOJSON_NAMESPACE
+
+
+13 
+	#ARDUINOJSON_NAMESPACE
+ \
+
+14 
+	`ARDUINOJSON_CONCAT4
+( \
+
+15 
+	`ARDUINOJSON_CONCAT4
+(
+ArdušoJsÚ
+, 
+ARDUINOJSON_VERSION_MAJOR
+, \
+
+16 
+ARDUINOJSON_VERSION_MINOR
+, \
+
+17 
+ARDUINOJSON_VERSION_REVISION
+), \
+
+18 
+_
+, \
+
+19 
+	`ARDUINOJSON_HEX_DIGIT
+(
+ARDUINOJSON_ENABLE_PROGMEM
+, \
+
+20 
+ARDUINOJSON_USE_LONG_LONG
+, 
+ARDUINOJSON_USE_DOUBLE
+, \
+
+21 
+ARDUINOJSON_ENABLE_STRING_DEDUPLICATION
+), \
+
+22 
+	`ARDUINOJSON_HEX_DIGIT
+( \
+
+23 
+ARDUINOJSON_ENABLE_NAN
+, 
+ARDUINOJSON_ENABLE_INFINITY
+, \
+
+24 
+ARDUINOJSON_ENABLE_COMMENTS
+, 
+ARDUINOJSON_DECODE_UNICODE
+))
+
+	)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 #ià
+ARDUINOJSON_USE_DOUBLE
+
+
+13 
+	tFlßt
+;
+
+15 
+	tFlßt
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/FlßtT¿™s.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/m©h.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFlßt
+>
+
+14 
+	sFlßtP¬ts
+ {
+
+15 
+ušt32_t
+ 
+	gš‹g¿l
+;
+
+16 
+ušt32_t
+ 
+	gdecim®
+;
+
+17 
+št16_t
+ 
+	gexpÚ’t
+;
+
+18 
+št8_t
+ 
+	gdecim®PÏûs
+;
+
+20 
+FlßtP¬ts
+(
+TFlßt
+ 
+v®ue
+) {
+
+21 
+ušt32_t
+ 
+	gmaxDecim®P¬t
+ = (
+TFlßt
+) >= 8 ? 1000000000 : 1000000;
+
+22 
+	gdecim®PÏûs
+ = (
+TFlßt
+) >= 8 ? 9 : 6;
+
+24 
+	gexpÚ’t
+ = 
+nÜm®ize
+(
+v®ue
+);
+
+26 
+	gš‹g¿l
+ = 
+ušt32_t
+(
+v®ue
+);
+
+28 
+ušt32_t
+ 
+	gtmp
+ = 
+š‹g¿l
+;�mp >= 10;�mp /= 10) {
+
+29 
+maxDecim®P¬t
+ /= 10;
+
+30 
+	gdecim®PÏûs
+--;
+
+33 
+TFlßt
+ 
+	g»mašd”
+ = (
+v®ue
+ - TFlßt(
+š‹g¿l
+)è* TFlßt(
+maxDecim®P¬t
+);
+
+35 
+	gdecim®
+ = 
+ušt32_t
+(
+»mašd”
+);
+
+36 
+	g»mašd”
+ = 
+»mašd”
+ - 
+TFlßt
+(
+decim®
+);
+
+40 
+	gdecim®
+ +ð
+ušt32_t
+(
+»mašd”
+ * 2);
+
+41 ià(
+	gdecim®
+ >ð
+maxDecim®P¬t
+) {
+
+42 
+decim®
+ = 0;
+
+43 
+	gš‹g¿l
+++;
+
+44 ià(
+	gexpÚ’t
+ && 
+	gš‹g¿l
+ >= 10) {
+
+45 
+expÚ’t
+++;
+
+46 
+	gš‹g¿l
+ = 1;
+
+51 
+	gdecim®
+ % 10 =ð0 && 
+decim®PÏûs
+ > 0) {
+
+52 
+decim®
+ /= 10;
+
+53 
+	gdecim®PÏûs
+--;
+
+57 
+št16_t
+ 
+nÜm®ize
+(
+TFlßt
+& 
+v®ue
+) {
+
+58 
+	gFlßtT¿™s
+<
+	tTFlßt
+> 
+	tŒa™s
+;
+
+59 
+št16_t
+ 
+	gpow”sOf10
+ = 0;
+
+61 
+št8_t
+ 
+	gšdex
+ = (
+TFlßt
+) == 8 ? 8 : 5;
+
+62 
+	gb™
+ = 1 << 
+šdex
+;
+
+64 ià(
+	gv®ue
+ >ð
+ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD
+) {
+
+65 ; 
+	gšdex
+ >= 0; index--) {
+
+66 ià(
+	gv®ue
+ >ð
+Œa™s
+::
+pos™iveBš¬yPow”OfT’
+(
+šdex
+)) {
+
+67 
+v®ue
+ *ð
+Œa™s
+::
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+);
+
+68 
+	gpow”sOf10
+ = 
+št16_t
+(
+pow”sOf10
+ + 
+b™
+);
+
+70 
+	gb™
+ >>= 1;
+
+74 ià(
+	gv®ue
+ > 0 && v®u�<ð
+ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD
+) {
+
+75 ; 
+	gšdex
+ >= 0; index--) {
+
+76 ià(
+	gv®ue
+ < 
+	gŒa™s
+::
+Ãg©iveBš¬yPow”OfT’PlusOÃ
+(
+šdex
+)) {
+
+77 
+v®ue
+ *ð
+Œa™s
+::
+pos™iveBš¬yPow”OfT’
+(
+šdex
+);
+
+78 
+	gpow”sOf10
+ = 
+št16_t
+(
+pow”sOf10
+ - 
+b™
+);
+
+80 
+	gb™
+ >>= 1;
+
+84  
+	gpow”sOf10
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+8 
+	~<¡dšt.h
+>
+
+10 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+11 
+	~<ArdušoJsÚ/PÞyfžls/®Ÿs_ÿ¡.hµ
+>
+
+12 
+	~<ArdušoJsÚ/PÞyfžls/m©h.hµ
+>
+
+13 
+	~<ArdušoJsÚ/PÞyfžls/´•roûssÜ.hµ
+>
+
+14 
+	~<ArdušoJsÚ/PÞyfžls/¡©ic_¬¿y.hµ
+>
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gsize_t
+ = (
+T
+)>
+
+19 
+	sFlßtT¿™s
+ {};
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+22 
+	gFlßtT¿™s
+<
+	gT
+, 8 > {
+
+23 
+ušt64_t
+ 
+	tmªtis§_ty³
+;
+
+24 cÚ¡ 
+	gmªtis§_b™s
+ = 52;
+
+25 cÚ¡ 
+mªtis§_ty³
+ 
+	gmªtis§_max
+ =
+
+26 (
+mªtis§_ty³
+(1è<< 
+mªtis§_b™s
+) - 1;
+
+28 
+št16_t
+ 
+	texpÚ’t_ty³
+;
+
+29 cÚ¡ 
+expÚ’t_ty³
+ 
+	gexpÚ’t_max
+ = 308;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTExpÚ’t
+>
+
+32 
+T
+ 
+make_æßt
+(T 
+m
+, 
+TExpÚ’t
+ 
+e
+) {
+
+33 ià(
+	ge
+ > 0) {
+
+34 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+35 ià(
+	ge
+ & 1)
+
+36 
+	gm
+ *ð
+pos™iveBš¬yPow”OfT’
+(
+šdex
+);
+
+37 
+	ge
+ >>= 1;
+
+40 
+	ge
+ = 
+TExpÚ’t
+(-
+e
+);
+
+41 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+42 ià(
+	ge
+ & 1)
+
+43 
+	gm
+ *ð
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+);
+
+44 
+	ge
+ >>= 1;
+
+47  
+	gm
+;
+
+50 
+T
+ 
+pos™iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+51 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+
+52 
+ušt32_t
+, 
+çùÜs
+,
+
+53 
+ARDUINOJSON_EXPAND18
+({
+
+64  
+fÜge
+(
+
+65 
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+ušt32_t
+, 
+çùÜs
+, 2 * 
+šdex
+),
+
+66 
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+ušt32_t
+, 
+çùÜs
+, 2 * 
+šdex
+ + 1));
+
+69 
+T
+ 
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+70 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+
+71 
+ušt32_t
+, 
+çùÜs
+,
+
+72 
+ARDUINOJSON_EXPAND18
+({
+
+83  
+fÜge
+(
+
+84 
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+ušt32_t
+, 
+çùÜs
+, 2 * 
+šdex
+),
+
+85 
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+ušt32_t
+, 
+çùÜs
+, 2 * 
+šdex
+ + 1));
+
+88 
+T
+ 
+Ãg©iveBš¬yPow”OfT’PlusOÃ
+(
+šdex
+) {
+
+89 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+
+90 
+ušt32_t
+, 
+çùÜs
+,
+
+91 
+ARDUINOJSON_EXPAND18
+({
+
+102  
+fÜge
+(
+
+103 
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+ušt32_t
+, 
+çùÜs
+, 2 * 
+šdex
+),
+
+104 
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+ušt32_t
+, 
+çùÜs
+, 2 * 
+šdex
+ + 1));
+
+107 
+T
+ 
+Çn
+() {
+
+108  
+fÜge
+(0x7ff80000, 0x00000000);
+
+111 
+T
+ 
+šf
+() {
+
+112  
+fÜge
+(0x7ff00000, 0x00000000);
+
+115 
+T
+ 
+highe¡
+() {
+
+116  
+fÜge
+(0x7FEFFFFF, 0xFFFFFFFF);
+
+119 
+T
+ 
+lowe¡
+() {
+
+120  
+fÜge
+(0xFFEFFFFF, 0xFFFFFFFF);
+
+126 
+T
+ 
+fÜge
+(
+ušt32_t
+ 
+msb
+, ušt32_ˆ
+lsb
+) {
+
+127  
+	g®Ÿs_ÿ¡
+<
+	gT
+>((
+ušt64_t
+(
+msb
+è<< 32è| 
+	glsb
+);
+
+131 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+132 
+	gFlßtT¿™s
+<
+	gT
+, 4 > {
+
+133 
+ušt32_t
+ 
+	tmªtis§_ty³
+;
+
+134 cÚ¡ 
+	gmªtis§_b™s
+ = 23;
+
+135 cÚ¡ 
+mªtis§_ty³
+ 
+	gmªtis§_max
+ =
+
+136 (
+mªtis§_ty³
+(1è<< 
+mªtis§_b™s
+) - 1;
+
+138 
+št8_t
+ 
+	texpÚ’t_ty³
+;
+
+139 cÚ¡ 
+expÚ’t_ty³
+ 
+	gexpÚ’t_max
+ = 38;
+
+141 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTExpÚ’t
+>
+
+142 
+T
+ 
+make_æßt
+(T 
+m
+, 
+TExpÚ’t
+ 
+e
+) {
+
+143 ià(
+	ge
+ > 0) {
+
+144 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+145 ià(
+	ge
+ & 1)
+
+146 
+	gm
+ *ð
+pos™iveBš¬yPow”OfT’
+(
+šdex
+);
+
+147 
+	ge
+ >>= 1;
+
+150 
+	ge
+ = -
+e
+;
+
+151 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+152 ià(
+	ge
+ & 1)
+
+153 
+	gm
+ *ð
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+);
+
+154 
+	ge
+ >>= 1;
+
+157  
+	gm
+;
+
+160 
+T
+ 
+pos™iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+161 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+
+162 
+T
+, 
+çùÜs
+,
+
+163 
+ARDUINOJSON_EXPAND6
+({1e1f, 1e2f, 1e4f, 1e8f, 1e16f, 1e32f}));
+
+164  
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+T
+, 
+çùÜs
+, 
+šdex
+);
+
+167 
+T
+ 
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+168 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+
+169 
+T
+, 
+çùÜs
+,
+
+170 
+ARDUINOJSON_EXPAND6
+({1e-1f, 1e-2f, 1e-4f, 1e-8f, 1e-16f, 1e-32f}));
+
+171  
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+T
+, 
+çùÜs
+, 
+šdex
+);
+
+174 
+T
+ 
+Ãg©iveBš¬yPow”OfT’PlusOÃ
+(
+šdex
+) {
+
+175 
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+
+176 
+T
+, 
+çùÜs
+,
+
+177 
+ARDUINOJSON_EXPAND6
+({1e0f, 1e-1f, 1e-3f, 1e-7f, 1e-15f, 1e-31f}));
+
+178  
+ARDUINOJSON_READ_STATIC_ARRAY
+(
+T
+, 
+çùÜs
+, 
+šdex
+);
+
+181 
+T
+ 
+fÜge
+(
+ušt32_t
+ 
+b™s
+) {
+
+182  
+	g®Ÿs_ÿ¡
+<
+	gT
+>(
+	gb™s
+);
+
+185 
+T
+ 
+Çn
+() {
+
+186  
+fÜge
+(0x7fc00000);
+
+189 
+T
+ 
+šf
+() {
+
+190  
+fÜge
+(0x7f800000);
+
+193 
+T
+ 
+highe¡
+() {
+
+194  
+fÜge
+(0x7f7fffff);
+
+197 
+T
+ 
+lowe¡
+() {
+
+198  
+fÜge
+(0xFf7fffff);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+10 
+	~<¡dšt.h
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+15 
+št64_t
+ 
+	tIÁeg”
+;
+
+16 
+ušt64_t
+ 
+	tUIÁ
+;
+
+18 
+	tIÁeg”
+;
+
+19 
+	tUIÁ
+;
+
+24 #ià
+ARDUINOJSON_HAS_LONG_LONG
+ && !
+ARDUINOJSON_USE_LONG_LONG
+
+
+25 
+	#ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED
+(
+T
+) \
+
+26 
+	`¡©ic_as£¹
+((
+T
+è<ð(
+ARDUINOJSON_NAMESPACE
+::
+IÁeg”
+), \
+
+29 "h‰ps://¬dušojsÚ.Üg/v6/­i/cÚfig/u£_lÚg_lÚg/");
+
+	)
+
+31 
+	#ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED
+(
+T
+)
+
+	)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Numb”s/IÁeg”.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	eCom·»ResuÉ
+ {
+
+13 
+	gCOMPARE_RESULT_DIFFER
+ = 0,
+
+14 
+	gCOMPARE_RESULT_EQUAL
+ = 1,
+
+15 
+	gCOMPARE_RESULT_GREATER
+ = 2,
+
+16 
+	gCOMPARE_RESULT_LESS
+ = 4,
+
+18 
+	gCOMPARE_RESULT_GREATER_OR_EQUAL
+ = 3,
+
+19 
+	gCOMPARE_RESULT_LESS_OR_EQUAL
+ = 5
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+23 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»
+(cÚ¡ 
+T
+ &
+lhs
+, cÚ¡ T &
+rhs
+) {
+
+24 ià(
+	glhs
+ < 
+	grhs
+)
+
+25  
+	gCOMPARE_RESULT_LESS
+;
+
+26 ià(
+	glhs
+ > 
+	grhs
+)
+
+27  
+	gCOMPARE_RESULT_GREATER
+;
+
+29  
+	gCOMPARE_RESULT_EQUAL
+;
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+33 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»
+(
+
+34 cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+,
+
+35 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T1
+>::
+v®ue
+ && is_š‹g¿l<
+T2
+>::value &&
+
+36 (
+T1
+è< (
+T2
+),
+
+39 >::
+ty³
+ * = 0) {
+
+40  
+¬™hm‘icCom·»
+<
+T2
+>(
+¡©ic_ÿ¡
+<T2>(
+lhs
+), 
+rhs
+);
+
+43 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+44 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»
+(
+
+45 cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+,
+
+46 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T1
+>::
+v®ue
+ && is_š‹g¿l<
+T2
+>::value &&
+
+47 (
+T2
+è< (
+T1
+)>::
+ty³
+ * = 0) {
+
+48  
+¬™hm‘icCom·»
+<
+T1
+>(
+lhs
+, 
+¡©ic_ÿ¡
+<T1>(
+rhs
+));
+
+51 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+52 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»
+(
+
+53 cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+,
+
+54 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T1
+>::
+v®ue
+ && is_š‹g¿l<
+T2
+>::value &&
+
+55 
+is_sigÃd
+<
+T1
+>::
+v®ue
+ =ðis_sigÃd<
+T2
+>::value &&
+
+56 (
+T2
+è=ð(
+T1
+)>::
+ty³
+ * = 0) {
+
+57  
+¬™hm‘icCom·»
+<
+T1
+>(
+lhs
+, 
+¡©ic_ÿ¡
+<T1>(
+rhs
+));
+
+60 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+61 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»
+(
+
+62 cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+,
+
+63 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T1
+>::
+v®ue
+ && is_š‹g¿l<
+T2
+>::value &&
+
+64 
+is_unsigÃd
+<
+T1
+>::
+v®ue
+ && 
+is_sigÃd
+<
+T2
+>::value &&
+
+65 (
+T2
+è=ð(
+T1
+)>::
+ty³
+ * = 0) {
+
+66 ià(
+rhs
+ < 0)
+
+67  
+COMPARE_RESULT_GREATER
+;
+
+68  
+	g¬™hm‘icCom·»
+<
+	gT1
+>(
+	glhs
+, 
+	g¡©ic_ÿ¡
+<T1>(
+	grhs
+));
+
+71 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+72 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»
+(
+
+73 cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+,
+
+74 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T1
+>::
+v®ue
+ && is_š‹g¿l<
+T2
+>::value &&
+
+75 
+is_sigÃd
+<
+T1
+>::
+v®ue
+ && 
+is_unsigÃd
+<
+T2
+>::value &&
+
+76 (
+T2
+è=ð(
+T1
+)>::
+ty³
+ * = 0) {
+
+77 ià(
+lhs
+ < 0)
+
+78  
+COMPARE_RESULT_LESS
+;
+
+79  
+	g¬™hm‘icCom·»
+<
+	gT2
+>(
+	g¡©ic_ÿ¡
+<T2>(
+	glhs
+), 
+	grhs
+);
+
+82 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+83 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»
+(
+
+84 cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+,
+
+85 
+ty³Çme
+ 
+’abË_if
+<
+is_æßtšg_pošt
+<
+T1
+>::
+v®ue
+ ||
+
+86 
+is_æßtšg_pošt
+<
+T2
+>::
+v®ue
+>::
+ty³
+ * = 0) {
+
+87  
+¬™hm‘icCom·»
+<>(
+¡©ic_ÿ¡
+<>(
+lhs
+),
+
+88 
+¡©ic_ÿ¡
+<>(
+rhs
+));
+
+91 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT2
+>
+
+92 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»Neg©eLeá
+(
+
+93 
+UIÁ
+, cÚ¡ 
+T2
+ &, 
+ty³Çme
+ 
+’abË_if
+<
+is_unsigÃd
+<T2>::
+v®ue
+>::
+ty³
+ * = 0) {
+
+94  
+COMPARE_RESULT_LESS
+;
+
+97 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT2
+>
+
+98 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»Neg©eLeá
+(
+
+99 
+UIÁ
+ 
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+,
+
+100 
+ty³Çme
+ 
+’abË_if
+<
+is_sigÃd
+<
+T2
+>::
+v®ue
+>::
+ty³
+ * = 0) {
+
+101 ià(
+rhs
+ > 0)
+
+102  
+COMPARE_RESULT_LESS
+;
+
+103  
+¬™hm‘icCom·»
+(-
+rhs
+, 
+¡©ic_ÿ¡
+<
+T2
+>(
+lhs
+));
+
+106 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+>
+
+107 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»Neg©eRight
+(
+
+108 cÚ¡ 
+T1
+ &, 
+UIÁ
+, 
+ty³Çme
+ 
+’abË_if
+<
+is_unsigÃd
+<T1>::
+v®ue
+>::
+ty³
+ * = 0) {
+
+109  
+COMPARE_RESULT_GREATER
+;
+
+112 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+>
+
+113 
+Com·»ResuÉ
+ 
+¬™hm‘icCom·»Neg©eRight
+(
+
+114 cÚ¡ 
+T1
+ &
+lhs
+, 
+UIÁ
+ 
+rhs
+,
+
+115 
+ty³Çme
+ 
+’abË_if
+<
+is_sigÃd
+<
+T1
+>::
+v®ue
+>::
+ty³
+ * = 0) {
+
+116 ià(
+lhs
+ > 0)
+
+117  
+COMPARE_RESULT_GREATER
+;
+
+118  
+¬™hm‘icCom·»
+(
+¡©ic_ÿ¡
+<
+T1
+>(
+rhs
+), -
+lhs
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp
+
+5 #´agm¨
+Úû
+
+
+7 #ià
+defšed
+(
+__þªg__
+)
+
+8 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+9 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wconversion"
+
+10 #–ià
+defšed
+(
+__GNUC__
+)
+
+11 #ià
+__GNUC__
+ > 4 || (__GNUC__ =ð4 && 
+__GNUC_MINOR__
+ >= 6)
+
+12 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+14 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wconversion"
+
+17 
+	~<ArdušoJsÚ/Numb”s/Flßt.hµ
+>
+
+18 
+	~<ArdušoJsÚ/Numb”s/FlßtT¿™s.hµ
+>
+
+19 
+	~<ArdušoJsÚ/Numb”s/IÁeg”.hµ
+>
+
+20 
+	~<ArdušoJsÚ/PÞyfžls/lim™s.hµ
+>
+
+22 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+25 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && (
+TOut
+è<ð(
+TIn
+),
+
+26 
+	gboÞ
+>::
+ty³
+
+
+27 
+ÿnStÜePos™iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+28  
+v®ue
+ <ð
+TIn
+(
+num”ic_lim™s
+<
+TOut
+>::
+highe¡
+());
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+32 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && (
+TIn
+è< (
+TOut
+),
+
+33 
+	gboÞ
+>::
+ty³
+
+
+34 
+ÿnStÜePos™iveIÁeg”
+(
+TIn
+) {
+
+35  
+Œue
+;
+
+38 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+39 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+40 
+ÿnStÜePos™iveIÁeg”
+(
+TIn
+) {
+
+41  
+Œue
+;
+
+44 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+45 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+46 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+) {
+
+47  
+Œue
+;
+
+50 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+51 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && 
+is_sigÃd
+<
+TOut
+>::value &&
+
+52 (
+TOut
+è<ð(
+TIn
+),
+
+53 
+	gboÞ
+>::
+ty³
+
+
+54 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+55  
+v®ue
+ <ð
+TIn
+(
+num”ic_lim™s
+<
+TOut
+>::
+highe¡
+()) + 1;
+
+58 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+59 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && 
+is_sigÃd
+<
+TOut
+>::value &&
+
+60 (
+TIn
+è< (
+TOut
+),
+
+61 
+	gboÞ
+>::
+ty³
+
+
+62 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+) {
+
+63  
+Œue
+;
+
+66 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+67 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && 
+is_unsigÃd
+<
+TOut
+>::value,
+
+68 
+	gboÞ
+>::
+ty³
+
+
+69 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+) {
+
+70  
+çl£
+;
+
+73 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+74 
+TOut
+ 
+cÚv”tPos™iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+75  
+	gÿnStÜePos™iveIÁeg”
+<
+	gTOut
+>(
+	gv®ue
+è? 
+TOut
+(
+v®ue
+) : 0;
+
+78 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+79 
+TOut
+ 
+cÚv”tNeg©iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+80  
+	gÿnStÜeNeg©iveIÁeg”
+<
+	gTOut
+>(
+	gv®ue
+è? 
+TOut
+(~
+v®ue
+ + 1) : 0;
+
+83 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+84 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, TOut>::
+ty³
+ 
+cÚv”tFlßt
+(
+
+85 
+TIn
+ 
+v®ue
+) {
+
+86  
+TOut
+(
+v®ue
+);
+
+89 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+90 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, TOut>::
+ty³
+ 
+cÚv”tFlßt
+(
+
+91 
+TIn
+ 
+v®ue
+) {
+
+92  
+v®ue
+ >ð
+num”ic_lim™s
+<
+TOut
+>::
+lowe¡
+() &&
+
+93 
+v®ue
+ <ð
+num”ic_lim™s
+<
+TOut
+>::
+highe¡
+()
+
+94 ? 
+TOut
+(
+v®ue
+)
+
+99 #ià
+defšed
+(
+__þªg__
+)
+
+100 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+101 #–ià
+defšed
+(
+__GNUC__
+)
+
+102 #ià
+__GNUC__
+ > 4 || (__GNUC__ =ð4 && 
+__GNUC_MINOR__
+ >= 6)
+
+103 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Numb”s/FlßtT¿™s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+	~<ArdušoJsÚ/PÞyfžls/ùy³.hµ
+>
+
+11 
+	~<ArdušoJsÚ/PÞyfžls/m©h.hµ
+>
+
+12 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+13 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁAs.hµ
+>
+
+14 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gA
+,�y³Çm�
+	gB
+>
+
+19 
+	gchoo£_Ïrge¡
+ : 
+cÚd™iÚ®
+<((
+A
+è> (
+B
+)), 
+	gA
+, 
+	gB
+> {};
+
+21 
+šlše
+ 
+boÞ
+ 
+·r£Numb”
+(cÚ¡ * 
+s
+, 
+V¬ŸÁD©a
+& 
+»suÉ
+) {
+
+22 
+	gFlßtT¿™s
+<
+	tFlßt
+> 
+	tŒa™s
+;
+
+23 
+	gchoo£_Ïrge¡
+<
+	tŒa™s
+::
+	tmªtis§_ty³
+, 
+	tUIÁ
+>::
+	tty³
+ 
+	tmªtis§_t
+;
+
+24 
+	gŒa™s
+::
+	texpÚ’t_ty³
+ 
+	texpÚ’t_t
+;
+
+26 
+ARDUINOJSON_ASSERT
+(
+s
+ != 0);
+
+28 
+boÞ
+ 
+	gis_Ãg©ive
+ = 
+çl£
+;
+
+29 *
+	gs
+) {
+
+31 
+is_Ãg©ive
+ = 
+Œue
+;
+
+32 
+	gs
+++;
+
+35 
+s
+++;
+
+39 #ià
+ARDUINOJSON_ENABLE_NAN
+
+
+40 ià(*
+	gs
+ =ð'n' || *
+s
+ == 'N') {
+
+41 
+»suÉ
+.
+£tFlßt
+(
+Œa™s
+::
+Çn
+());
+
+42  
+	gŒue
+;
+
+46 #ià
+ARDUINOJSON_ENABLE_INFINITY
+
+
+47 ià(*
+	gs
+ =ð'i' || *
+s
+ == 'I') {
+
+48 
+»suÉ
+.
+£tFlßt
+(
+is_Ãg©ive
+ ? -
+Œa™s
+::
+šf
+() :�raits::inf());
+
+49  
+	gŒue
+;
+
+53 ià(!
+isdig™
+(*
+s
+è&& *
+	gs
+ != '.')
+
+54  
+çl£
+;
+
+56 
+mªtis§_t
+ 
+	gmªtis§
+ = 0;
+
+57 
+expÚ’t_t
+ 
+	gexpÚ’t_off£t
+ = 0;
+
+58 cÚ¡ 
+mªtis§_t
+ 
+	gmaxUšt
+ = 
+UIÁ
+(-1);
+
+60 
+isdig™
+(*
+s
+)) {
+
+61 
+ušt8_t
+ 
+	gdig™
+ = ušt8_t(*
+s
+ - '0');
+
+62 ià(
+	gmªtis§
+ > 
+	gmaxUšt
+ / 10)
+
+64 
+	gmªtis§
+ *= 10;
+
+65 ià(
+	gmªtis§
+ > 
+	gmaxUšt
+ - 
+	gdig™
+)
+
+67 
+	gmªtis§
+ +ð
+dig™
+;
+
+68 
+	gs
+++;
+
+71 ià(*
+	gs
+ == '\0') {
+
+72 ià(
+is_Ãg©ive
+)
+
+73 
+»suÉ
+.
+£tNeg©iveIÁeg”
+(
+UIÁ
+(
+mªtis§
+));
+
+75 
+	g»suÉ
+.
+£tPos™iveIÁeg”
+(
+UIÁ
+(
+mªtis§
+));
+
+76  
+	gŒue
+;
+
+80 
+	gmªtis§
+ > 
+	gŒa™s
+::
+mªtis§_max
+) {
+
+81 
+mªtis§
+ /= 10;
+
+82 
+	gexpÚ’t_off£t
+++;
+
+86 
+isdig™
+(*
+s
+)) {
+
+87 
+	gexpÚ’t_off£t
+++;
+
+88 
+	gs
+++;
+
+91 ià(*
+	gs
+ == '.') {
+
+92 
+s
+++;
+
+93 
+isdig™
+(*
+s
+)) {
+
+94 ià(
+	gmªtis§
+ < 
+	gŒa™s
+::
+mªtis§_max
+ / 10) {
+
+95 
+mªtis§
+ = mªtis§ * 10 + 
+ušt8_t
+(*
+s
+ - '0');
+
+96 
+	gexpÚ’t_off£t
+--;
+
+98 
+	gs
+++;
+
+102 
+	gexpÚ’t
+ = 0;
+
+103 ià(*
+	gs
+ =ð'e' || *
+s
+ == 'E') {
+
+104 
+s
+++;
+
+105 
+boÞ
+ 
+	gÃg©ive_expÚ’t
+ = 
+çl£
+;
+
+106 ià(*
+	gs
+ == '-') {
+
+107 
+Ãg©ive_expÚ’t
+ = 
+Œue
+;
+
+108 
+	gs
+++;
+
+109 } ià(*
+	gs
+ == '+') {
+
+110 
+s
+++;
+
+113 
+isdig™
+(*
+s
+)) {
+
+114 
+	gexpÚ’t
+ = 
+expÚ’t
+ * 10 + (*
+s
+ - '0');
+
+115 ià(
+	gexpÚ’t
+ + 
+	gexpÚ’t_off£t
+ > 
+	gŒa™s
+::
+expÚ’t_max
+) {
+
+116 ià(
+Ãg©ive_expÚ’t
+)
+
+117 
+»suÉ
+.
+£tFlßt
+(
+is_Ãg©ive
+ ? -0.0f : 0.0f);
+
+119 
+	g»suÉ
+.
+£tFlßt
+(
+is_Ãg©ive
+ ? -
+Œa™s
+::
+šf
+() :�raits::inf());
+
+120  
+	gŒue
+;
+
+122 
+	gs
+++;
+
+124 ià(
+	gÃg©ive_expÚ’t
+)
+
+125 
+	gexpÚ’t
+ = -
+expÚ’t
+;
+
+127 
+	gexpÚ’t
+ +ð
+expÚ’t_off£t
+;
+
+130 ià(*
+	gs
+ != '\0')
+
+131  
+çl£
+;
+
+133 
+Flßt
+ 
+	gfš®_»suÉ
+ =
+
+134 
+Œa™s
+::
+make_æßt
+(
+¡©ic_ÿ¡
+<
+Flßt
+>(
+mªtis§
+), 
+expÚ’t
+);
+
+136 
+	g»suÉ
+.
+£tFlßt
+(
+is_Ãg©ive
+ ? -
+fš®_»suÉ
+ : final_result);
+
+137  
+	gŒue
+;
+
+140 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+141 
+šlše
+ 
+T
+ 
+·r£Numb”
+(cÚ¡ * 
+s
+) {
+
+142 
+V¬ŸÁD©a
+ 
+	gv®ue
+;
+
+143 
+	gv®ue
+.
+š™
+();
+
+144 
+·r£Numb”
+(
+s
+, 
+v®ue
+);
+
+145  
+	gv¬ŸÁAs
+<
+	gT
+>(&
+	gv®ue
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁO³¿tÜs.hµ
+>
+
+10 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁShÜtcuts.hµ
+>
+
+12 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁTo.hµ
+>
+
+14 #ifdeà
+_MSC_VER
+
+
+15 #´agm¨
+w¬nšg
+(
+push
+)
+
+16 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4522)
+
+19 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+,�y³Çm�
+	gTSŒšgRef
+>
+
+22 
+þass
+ 
+	gMemb”Proxy
+ : 
+public
+ 
+V¬ŸÁO³¿tÜs
+<
+Memb”Proxy
+<
+TObjeù
+, 
+	gTSŒšgRef
+> >,
+
+23 
+public
+ 
+	gV¬ŸÁShÜtcuts
+<
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšgRef
+> >,
+
+24 
+public
+ 
+	gVis™abË
+ {
+
+25 
+	gMemb”Proxy
+<
+	tTObjeù
+, 
+	tTSŒšgRef
+> 
+	tthis_ty³
+;
+
+27 
+	gpublic
+:
+
+28 
+FORCE_INLINE
+ 
+Memb”Proxy
+(
+TObjeù
+ 
+v¬ŸÁ
+, 
+TSŒšgRef
+ 
+key
+)
+
+29 : 
+_objeù
+(
+v¬ŸÁ
+), 
+_key
+(
+key
+) {}
+
+31 
+FORCE_INLINE
+ 
+Memb”Proxy
+(cÚ¡ Memb”Proxy &
+¤c
+)
+
+32 : 
+_objeù
+(
+¤c
+._objeù), 
+_key
+(src._key) {}
+
+34 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+35  
+g‘Up¡»amMemb”
+();
+
+38 
+FORCE_INLINE
+ 
+	gthis_ty³
+ &
+	gÝ”©Ü
+=(cÚ¡ 
+this_ty³
+ &
+¤c
+) {
+
+39 
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+¤c
+);
+
+40  *
+	gthis
+;
+
+43 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+44 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_¬¿y
+<
+	gTV®ue
+>::
+v®ue
+, 
+	gthis_ty³
+ &>::
+ty³
+
+
+45 
+Ý”©Ü
+=(cÚ¡ 
+TV®ue
+ &
+¤c
+) {
+
+46 
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+¤c
+);
+
+47  *
+	gthis
+;
+
+53 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+54 
+FORCE_INLINE
+ 
+	gthis_ty³
+ &
+	gÝ”©Ü
+=(
+TCh¬
+ *
+¤c
+) {
+
+55 
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+¤c
+);
+
+56  *
+	gthis
+;
+
+59 
+FORCE_INLINE
+ 
+þ—r
+() const {
+
+60 
+g‘Up¡»amMemb”
+().
+þ—r
+();
+
+63 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+64  
+g‘Up¡»amMemb”
+().
+isNuÎ
+();
+
+67 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+68 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gTV®ue
+>::
+ty³
+ 
+as
+() const {
+
+69  
+g‘Up¡»amMemb”
+().
+‹m¶©e
+ 
+as
+<
+TV®ue
+>();
+
+72 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+73 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+T
+() const {
+
+74  
+g‘Up¡»amMemb”
+();
+
+77 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+78 
+FORCE_INLINE
+ 
+boÞ
+ 
+is
+() const {
+
+79  
+g‘Up¡»amMemb”
+().
+‹m¶©e
+ 
+	gis
+<
+	gTV®ue
+>();
+
+82 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+83  
+g‘Up¡»amMemb”
+().
+size
+();
+
+86 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+87 
+g‘Up¡»amMemb”
+().
+»move
+(
+šdex
+);
+
+92 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+93 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+94 
+TCh¬
+ *
+key
+) const {
+
+95 
+g‘Up¡»amMemb”
+().
+»move
+(
+key
+);
+
+99 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+100 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+101 cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+102 
+g‘Up¡»amMemb”
+().
+»move
+(
+key
+);
+
+105 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+106 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁTo
+<
+	gTV®ue
+>::
+ty³
+ 
+to
+() {
+
+107  
+g‘OrAddUp¡»amMemb”
+().
+‹m¶©e
+ 
+to
+<
+TV®ue
+>();
+
+110 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+111 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(cÚ¡ 
+TV®ue
+ &
+v®ue
+) {
+
+112  
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+v®ue
+);
+
+118 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+119 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+TCh¬
+ *
+v®ue
+) {
+
+120  
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+v®ue
+);
+
+123 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+124 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(
+TVis™Ü
+ &
+vis™Ü
+) const {
+
+125  
+g‘Up¡»amMemb”
+().
+acû±
+(
+vis™Ü
+);
+
+128 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+addEËm’t
+() const {
+
+129  
+g‘OrAddUp¡»amMemb”
+().
+addEËm’t
+();
+
+132 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+133  
+g‘Up¡»amMemb”
+().
+g‘EËm’t
+(
+šdex
+);
+
+136 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+137  
+g‘OrAddUp¡»amMemb”
+().
+g‘OrAddEËm’t
+(
+šdex
+);
+
+143 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+144 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+ *
+key
+) const {
+
+145  
+g‘Up¡»amMemb”
+().
+g‘Memb”
+(
+key
+);
+
+150 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+151 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+152  
+g‘Up¡»amMemb”
+().
+g‘Memb”
+(
+key
+);
+
+158 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+159 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+ *
+key
+) const {
+
+160  
+g‘OrAddUp¡»amMemb”
+().
+g‘OrAddMemb”
+(
+key
+);
+
+165 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+166 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+167  
+g‘OrAddUp¡»amMemb”
+().
+g‘OrAddMemb”
+(
+key
+);
+
+170 
+	g´iv©e
+:
+
+171 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Up¡»amMemb”
+() const {
+
+172  
+_objeù
+.
+g‘Memb”
+(
+_key
+);
+
+175 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddUp¡»amMemb”
+() const {
+
+176  
+	g_objeù
+.
+g‘OrAddMemb”
+(
+_key
+);
+
+179 
+TObjeù
+ 
+	g_objeù
+;
+
+180 
+TSŒšgRef
+ 
+	g_key
+;
+
+185 #ifdeà
+_MSC_VER
+
+
+186 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+12 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+objeùAcû±
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+obj
+,
+
+13 
+TVis™Ü
+ &
+vis™Ü
+) {
+
+14 ià(
+	gobj
+)
+
+15  
+	gvis™Ü
+.
+vis™Objeù
+(*
+obj
+);
+
+17  
+	gvis™Ü
+.
+vis™NuÎ
+();
+
+20 
+šlše
+ 
+boÞ
+ 
+objeùEqu®s
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+lhs
+, cÚ¡ CÞËùiÚD©¨*
+rhs
+) {
+
+21 ià(
+	glhs
+ =ð
+rhs
+)
+
+22  
+Œue
+;
+
+23 ià(!
+	glhs
+ || !
+	grhs
+)
+
+24  
+	gçl£
+;
+
+25  
+	glhs
+->
+equ®sObjeù
+(*
+rhs
+);
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+29 
+šlše
+ 
+V¬ŸÁD©a
+ *
+objeùG‘Memb”
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+obj
+,
+
+30 
+TAd­‹dSŒšg
+ 
+key
+) {
+
+31 ià(!
+	gobj
+)
+
+33  
+	gobj
+->
+g‘Memb”
+(
+key
+);
+
+36 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+37 
+objeùRemove
+(
+CÞËùiÚD©a
+ *
+obj
+, 
+TAd­‹dSŒšg
+ 
+key
+) {
+
+38 ià(!
+	gobj
+)
+
+40 
+	gobj
+->
+»moveMemb”
+(
+key
+);
+
+43 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+44 
+šlše
+ 
+V¬ŸÁD©a
+ *
+objeùG‘OrAddMemb”
+(
+CÞËùiÚD©a
+ *
+obj
+,
+
+45 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+46 ià(!
+	gobj
+)
+
+49  
+	gobj
+->
+g‘OrAddMemb”
+(
+key
+, 
+poÞ
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+14 
+šlše
+ 
+A¼ayRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edA¼ay
+(
+
+15 cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+16  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+A¼ayRef
+>();
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+21 
+šlše
+ 
+A¼ayRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edA¼ay
+(
+TCh¬
+* 
+key
+) const {
+
+22  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+A¼ayRef
+>();
+
+25 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+26 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+27 
+šlše
+ 
+ObjeùRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edObjeù
+(
+
+28 cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+29  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+ObjeùRef
+>();
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+34 
+šlše
+ 
+ObjeùRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edObjeù
+(
+
+35 
+TCh¬
+* 
+key
+) const {
+
+36  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+ObjeùRef
+>();
+
+39 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+40 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+41 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+42 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+43  !
+im¶
+()->
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+46 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+47 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+48 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+49 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+cÚ�šsKey
+(
+TCh¬
+* 
+key
+) const {
+
+50  !
+im¶
+()->
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+53 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+55 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+*>::
+v®ue
+,
+
+56 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšg
+*> >::
+ty³
+
+
+57 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+Ý”©Ü
+[](
+TSŒšg
+* 
+key
+) const {
+
+58  
+Memb”Proxy
+<
+TObjeù
+, 
+	gTSŒšg
+*>(*
+im¶
+(), 
+	gkey
+);
+
+61 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+62 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+63 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+,
+
+64 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšg
+> >::
+ty³
+
+
+65 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+66  
+Memb”Proxy
+<
+TObjeù
+, 
+	gTSŒšg
+>(*
+im¶
+(), 
+	gkey
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Objeù/Paœ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/SlÙFunùiÚs.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cPaœPŒ
+ {
+
+13 
+	gpublic
+:
+
+14 
+PaœPŒ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_·œ
+(pool, slot) {}
+
+16 cÚ¡ 
+Paœ
+ *
+	gÝ”©Ü
+->() const {
+
+17  &
+	g_·œ
+;
+
+20 cÚ¡ 
+	gPaœ
+ &
+	gÝ”©Ü
+*() const {
+
+21  
+	g_·œ
+;
+
+24 
+	g´iv©e
+:
+
+25 
+Paœ
+ 
+_·œ
+;
+
+28 þas 
+	cObjeùI‹¿tÜ
+ {
+
+29 
+	gpublic
+:
+
+30 
+ObjeùI‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+32 
+ex¶ic™
+ 
+ObjeùI‹¿tÜ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁSlÙ
+ *
+¦Ù
+)
+
+33 : 
+_poÞ
+(
+poÞ
+), 
+_¦Ù
+(
+¦Ù
+) {}
+
+35 
+Paœ
+ 
+	gÝ”©Ü
+*() const {
+
+36  
+Paœ
+(
+_poÞ
+, 
+_¦Ù
+);
+
+38 
+PaœPŒ
+ 
+	gÝ”©Ü
+->() {
+
+39  
+PaœPŒ
+(
+_poÞ
+, 
+_¦Ù
+);
+
+42 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+ObjeùI‹¿tÜ
+ &
+Ùh”
+) const {
+
+43  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+46 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+ObjeùI‹¿tÜ
+ &
+Ùh”
+) const {
+
+47  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+50 
+	gObjeùI‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+51 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+52  *
+	gthis
+;
+
+55 
+	gObjeùI‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+56 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+57  *
+	gthis
+;
+
+60 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+61  
+	g_¦Ù
+;
+
+64 
+	g´iv©e
+:
+
+65 
+MemÜyPoÞ
+ *
+_poÞ
+;
+
+66 
+V¬ŸÁSlÙ
+ *
+	g_¦Ù
+;
+
+69 þas 
+	cPaœCÚ¡PŒ
+ {
+
+70 
+	gpublic
+:
+
+71 
+PaœCÚ¡PŒ
+(cÚ¡ 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_·œ
+(slot) {}
+
+73 cÚ¡ 
+PaœCÚ¡
+ *
+Ý”©Ü
+->() const {
+
+74  &
+_·œ
+;
+
+77 cÚ¡ 
+	gPaœCÚ¡
+ &
+	gÝ”©Ü
+*() const {
+
+78  
+	g_·œ
+;
+
+81 
+	g´iv©e
+:
+
+82 
+PaœCÚ¡
+ 
+_·œ
+;
+
+85 þas 
+	cObjeùCÚ¡I‹¿tÜ
+ {
+
+86 
+	gpublic
+:
+
+87 
+ObjeùCÚ¡I‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+89 
+ex¶ic™
+ 
+ObjeùCÚ¡I‹¿tÜ
+(cÚ¡ 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_¦Ù
+(slot) {}
+
+91 
+PaœCÚ¡
+ 
+Ý”©Ü
+*() const {
+
+92  
+PaœCÚ¡
+(
+_¦Ù
+);
+
+94 
+PaœCÚ¡PŒ
+ 
+	gÝ”©Ü
+->() {
+
+95  
+PaœCÚ¡PŒ
+(
+_¦Ù
+);
+
+98 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+ObjeùCÚ¡I‹¿tÜ
+ &
+Ùh”
+) const {
+
+99  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+102 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+ObjeùCÚ¡I‹¿tÜ
+ &
+Ùh”
+) const {
+
+103  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+106 
+	gObjeùCÚ¡I‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+107 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+108  *
+	gthis
+;
+
+111 
+	gObjeùCÚ¡I‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+112 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+113  *
+	gthis
+;
+
+116 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+117  
+	g_¦Ù
+;
+
+120 
+	g´iv©e
+:
+
+121 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+_¦Ù
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Objeù/ObjeùFunùiÚs.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùI‹¿tÜ.hµ
+>
+
+12 
+	#JSON_OBJECT_SIZE
+(
+NUMBER_OF_ELEMENTS
+) \
+
+13 ((
+NUMBER_OF_ELEMENTS
+è* (
+ARDUINOJSON_NAMESPACE
+::
+V¬ŸÁSlÙ
+))
+
+	)
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTD©a
+>
+
+18 þas 
+	cObjeùRefBa£
+ {
+
+19 
+	gpublic
+:
+
+20 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+21 cÚ¡ * 
+d©a
+ = 
+_d©a
+;
+
+22  
+V¬ŸÁCÚ¡Ref
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+25 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+26 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(
+TVis™Ü
+& 
+vis™Ü
+) const {
+
+27  
+objeùAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+30 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+31  
+	g_d©a
+ == 0;
+
+34 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+boÞ
+() const {
+
+35  
+	g_d©a
+ != 0;
+
+38 
+FORCE_INLINE
+ 
+size_t
+ 
+memÜyU§ge
+() const {
+
+39  
+	g_d©a
+ ? _d©a->
+memÜyU§ge
+() : 0;
+
+42 
+FORCE_INLINE
+ 
+size_t
+ 
+Ã¡šg
+() const {
+
+43  
+	g_d©a
+ ? _d©a->
+Ã¡šg
+() : 0;
+
+46 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+47  
+	g_d©a
+ ? _d©a->
+size
+() : 0;
+
+50 
+	g´Ùeùed
+:
+
+51 
+ObjeùRefBa£
+(
+TD©a
+* 
+d©a
+è: 
+_d©a
+(data) {}
+
+52 
+TD©a
+* 
+_d©a
+;
+
+55 
+þass
+ 
+	gObjeùCÚ¡Ref
+ : 
+public
+ 
+ObjeùRefBa£
+<cÚ¡ 
+CÞËùiÚD©a
+>,
+
+56 
+public
+ 
+	gVis™abË
+ {
+
+57 
+ä›nd
+ 
+þass
+ 
+	gObjeùRef
+;
+
+58 
+	gObjeùRefBa£
+<cÚ¡ 
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+60 
+	gpublic
+:
+
+61 
+ObjeùCÚ¡I‹¿tÜ
+ 
+	t™”©Ü
+;
+
+63 
+ObjeùCÚ¡Ref
+(è: 
+ba£_ty³
+(0) {}
+
+64 
+ObjeùCÚ¡Ref
+(cÚ¡ 
+CÞËùiÚD©a
+* 
+d©a
+è: 
+ba£_ty³
+(data) {}
+
+66 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+67 ià(!
+_d©a
+)
+
+68  
+™”©Ü
+();
+
+69  
+™”©Ü
+(
+_d©a
+->
+h—d
+());
+
+72 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+73  
+™”©Ü
+();
+
+78 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+79 
+FORCE_INLINE
+ 
+boÞ
+ 
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+80  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+86 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+87 
+FORCE_INLINE
+ 
+boÞ
+ 
+cÚ�šsKey
+(
+TCh¬
+* 
+key
+) const {
+
+88  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+93 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+94 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+95  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+101 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+102 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) const {
+
+103  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+108 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+109 
+FORCE_INLINE
+
+
+110 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+111 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+112  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+118 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+119 
+FORCE_INLINE
+
+
+120 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+121 
+Ý”©Ü
+[](
+TCh¬
+* 
+key
+) const {
+
+122  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+125 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+ObjeùCÚ¡Ref
+ 
+rhs
+) const {
+
+126  
+objeùEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+129 
+	g´iv©e
+:
+
+130 
+‹m¶©e
+ <
+ty³Çme
+ 
+TAd­‹dSŒšg
+>
+
+131 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘_im¶
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+132  
+V¬ŸÁCÚ¡Ref
+(
+objeùG‘Memb”
+(
+_d©a
+, 
+key
+));
+
+136 
+þass
+ 
+	gObjeùRef
+ : 
+public
+ 
+ObjeùRefBa£
+<
+CÞËùiÚD©a
+>,
+
+137 
+public
+ 
+	gObjeùShÜtcuts
+<
+	gObjeùRef
+>,
+
+138 
+public
+ 
+	gVis™abË
+ {
+
+139 
+	gObjeùRefBa£
+<
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+141 
+	gpublic
+:
+
+142 
+ObjeùI‹¿tÜ
+ 
+	t™”©Ü
+;
+
+144 
+FORCE_INLINE
+ 
+ObjeùRef
+(è: 
+ba£_ty³
+(0), 
+_poÞ
+(0) {}
+
+145 
+FORCE_INLINE
+ 
+ObjeùRef
+(
+MemÜyPoÞ
+* 
+buf
+, 
+CÞËùiÚD©a
+* 
+d©a
+)
+
+146 : 
+ba£_ty³
+(
+d©a
+), 
+_poÞ
+(
+buf
+) {}
+
+148 
+Ý”©Ü
+ 
+V¬ŸÁRef
+() const {
+
+149 * 
+	gd©a
+ = 
+_d©a
+;
+
+150  
+V¬ŸÁRef
+(
+_poÞ
+, 
+»š‹½»t_ÿ¡
+<
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+153 
+Ý”©Ü
+ 
+ObjeùCÚ¡Ref
+() const {
+
+154  
+ObjeùCÚ¡Ref
+(
+_d©a
+);
+
+157 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+158 ià(!
+	g_d©a
+)
+
+159  
+™”©Ü
+();
+
+160  
+™”©Ü
+(
+_poÞ
+, 
+_d©a
+->
+h—d
+());
+
+163 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+164  
+™”©Ü
+();
+
+167 
+þ—r
+() const {
+
+168 ià(!
+	g_d©a
+)
+
+170 
+	g_d©a
+->
+þ—r
+();
+
+173 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+ObjeùCÚ¡Ref
+ 
+¤c
+) {
+
+174 ià(!
+	g_d©a
+ || !
+	g¤c
+._data)
+
+175  
+	gçl£
+;
+
+176  
+	g_d©a
+->
+cÝyFrom
+(*
+¤c
+.
+_d©a
+, 
+_poÞ
+);
+
+181 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+182 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+183  
+V¬ŸÁRef
+(
+_poÞ
+, 
+objeùG‘Memb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+)));
+
+189 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+190 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) const {
+
+191  
+V¬ŸÁRef
+(
+_poÞ
+, 
+objeùG‘Memb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+)));
+
+196 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+197 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+198  
+V¬ŸÁRef
+(
+_poÞ
+,
+
+199 
+objeùG‘OrAddMemb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+), 
+_poÞ
+));
+
+205 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+206 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+* 
+key
+) const {
+
+207  
+V¬ŸÁRef
+(
+_poÞ
+,
+
+208 
+objeùG‘OrAddMemb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+), 
+_poÞ
+));
+
+211 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+ObjeùRef
+ 
+rhs
+) const {
+
+212  
+objeùEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+215 
+FORCE_INLINE
+ 
+»move
+(
+™”©Ü
+ 
+™
+) const {
+
+216 ià(!
+	g_d©a
+)
+
+218 
+	g_d©a
+->
+»moveSlÙ
+(
+™
+.
+š‹º®
+());
+
+223 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+224 
+FORCE_INLINE
+ 
+»move
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+225 
+objeùRemove
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+));
+
+231 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+232 
+FORCE_INLINE
+ 
+»move
+(
+TCh¬
+* 
+key
+) const {
+
+233 
+objeùRemove
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+));
+
+236 
+	g´iv©e
+:
+
+237 
+MemÜyPoÞ
+* 
+_poÞ
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/SŒšgAd­‹rs.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTP¬’t
+,�y³Çm�
+	gTSŒšgRef
+>
+
+13 
+þass
+ 
+	gMemb”Proxy
+;
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+16 þas 
+	cObjeùShÜtcuts
+ {
+
+17 
+	gpublic
+:
+
+20 
+‹m¶©e
+ <
+ty³Çme
+ 
+TSŒšg
+>
+
+21 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+’abË_if
+<
+IsSŒšg
+<
+TSŒšg
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+22 
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+28 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+29 
+cÚ�šsKey
+(
+TCh¬
+ *
+key
+) const;
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+34 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+,
+
+35 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšg
+> >::
+ty³
+
+
+36 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+42 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+,
+
+43 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTCh¬
+ *> >::
+ty³
+
+
+44 
+Ý”©Ü
+[](
+TCh¬
+ *
+key
+) const;
+
+48 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+49 
+FORCE_INLINE
+ 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+55 
+FORCE_INLINE
+ 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(
+TCh¬
+ *
+key
+) const;
+
+59 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+60 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+65 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+66 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(
+TCh¬
+ *
+key
+) const;
+
+68 
+	g´iv©e
+:
+
+69 cÚ¡ 
+TObjeù
+ *
+im¶
+() const {
+
+70  
+¡©ic_ÿ¡
+<cÚ¡ 
+TObjeù
+ *>(
+this
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/Pair.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/SŒšg.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cPaœ
+ {
+
+13 
+	gpublic
+:
+
+14 
+Paœ
+(
+MemÜyPoÞ
+* 
+poÞ
+, 
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+15 ià(
+	g¦Ù
+) {
+
+16 
+	g_key
+ = 
+SŒšg
+(
+¦Ù
+->
+key
+(), !¦Ù->
+ownsKey
+());
+
+17 
+	g_v®ue
+ = 
+V¬ŸÁRef
+(
+poÞ
+, 
+¦Ù
+->
+d©a
+());
+
+21 
+SŒšg
+ 
+key
+() const {
+
+22  
+	g_key
+;
+
+25 
+V¬ŸÁRef
+ 
+v®ue
+() const {
+
+26  
+	g_v®ue
+;
+
+29 
+	g´iv©e
+:
+
+30 
+SŒšg
+ 
+_key
+;
+
+31 
+V¬ŸÁRef
+ 
+	g_v®ue
+;
+
+34 þas 
+	cPaœCÚ¡
+ {
+
+35 
+	gpublic
+:
+
+36 
+PaœCÚ¡
+(cÚ¡ 
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+37 ià(
+¦Ù
+) {
+
+38 
+_key
+ = 
+SŒšg
+(
+¦Ù
+->
+key
+(), !¦Ù->
+ownsKey
+());
+
+39 
+	g_v®ue
+ = 
+V¬ŸÁCÚ¡Ref
+(
+¦Ù
+->
+d©a
+());
+
+43 
+SŒšg
+ 
+key
+() const {
+
+44  
+	g_key
+;
+
+47 
+V¬ŸÁCÚ¡Ref
+ 
+v®ue
+() const {
+
+48  
+	g_v®ue
+;
+
+51 
+	g´iv©e
+:
+
+52 
+SŒšg
+ 
+_key
+;
+
+53 
+V¬ŸÁCÚ¡Ref
+ 
+	g_v®ue
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡dšt.h
+>
+
+8 
+	~<¡dlib.h
+>
+
+10 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+11 
+	~"m©h.hµ
+"
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gF
+>
+
+16 
+	s®Ÿs_ÿ¡_t
+ {
+
+18 
+F
+ 
+	g¿w
+;
+
+19 
+T
+ 
+	gd©a
+;
+
+23 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gF
+>
+
+24 
+T
+ 
+®Ÿs_ÿ¡
+(
+F
+ 
+¿w_d©a
+) {
+
+25 
+	g®Ÿs_ÿ¡_t
+<
+	gT
+, 
+	gF
+> 
+	gac
+;
+
+26 
+	gac
+.
+	g¿w
+ = 
+¿w_d©a
+;
+
+27  
+	gac
+.
+	gd©a
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+9 #ià
+ARDUINOJSON_DEBUG
+
+
+10 
+	~<as£¹.h
+>
+
+11 
+	#ARDUINOJSON_ASSERT
+(
+X
+è
+	`as£¹
+(X)
+
+	)
+
+13 
+	#ARDUINOJSON_ASSERT
+(
+X
+è(()0)
+
+	)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp
+
+5 #´agm¨
+Úû
+
+
+7 #ifdeà
+_MSC_VER
+
+
+9 
+	#FORCE_INLINE
+
+
+10 
+	#NO_INLINE
+ 
+	`__deþ¥ec
+(
+nošlše
+)
+
+	)
+
+11 
+	#DEPRECATED
+(
+msg
+è
+	`__deþ¥ec
+(
+	`d•»ÿ‹d
+(msg))
+
+	)
+
+13 #–ià
+defšed
+(
+__GNUC__
+)
+
+15 
+	#FORCE_INLINE
+ 
+	`__©Œibu‹__
+((
+®ways_šlše
+))
+
+	)
+
+16 
+	#NO_INLINE
+ 
+	`__©Œibu‹__
+((
+nošlše
+))
+
+	)
+
+17 #ià
+__GNUC__
+ > 4 || (__GNUC__ =ð4 && 
+__GNUC_MINOR__
+ >= 5)
+
+18 
+	#DEPRECATED
+(
+msg
+è
+	`__©Œibu‹__
+((
+	`d•»ÿ‹d
+(msg)))
+
+	)
+
+20 
+	#DEPRECATED
+(
+msg
+è
+	`__©Œibu‹__
+((
+d•»ÿ‹d
+))
+
+	)
+
+25 
+	#FORCE_INLINE
+
+
+	)
+
+26 
+	#NO_INLINE
+
+
+	)
+
+27 
+	#DEPRECATED
+(
+msg
+)
+
+	)
+
+31 #ià
+__ýlu¥lus
+ >= 201103L
+
+32 
+	#NOEXCEPT
+ 
+nÛxû±
+
+
+	)
+
+34 
+	#NOEXCEPT
+ 
+	`throw
+()
+
+	)
+
+37 #ià
+defšed
+(
+__has_©Œibu‹
+)
+
+38 #ià
+__has_©Œibu‹
+(
+no_§n™ize
+)
+
+39 
+	#ARDUINOJSON_NO_SANITIZE
+(
+check
+è
+	`__©Œibu‹__
+((
+	`no_§n™ize
+(check)))
+
+	)
+
+41 
+	#ARDUINOJSON_NO_SANITIZE
+(
+check
+)
+
+	)
+
+44 
+	#ARDUINOJSON_NO_SANITIZE
+(
+check
+)
+
+	)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+šlše
+ 
+boÞ
+ 
+isdig™
+(
+c
+) {
+
+12  '0' <ð
+c
+ && c <= '9';
+
+15 
+šlše
+ 
+boÞ
+ 
+issign
+(
+c
+) {
+
+16  '-' =ð
+c
+ || c == '+';
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_Œa™s.hµ
+"
+
+9 #ifdeà
+_MSC_VER
+
+
+10 #´agm¨
+w¬nšg
+(
+push
+)
+
+11 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4310)
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gEÇbË
+ = >
+
+18 
+num”ic_lim™s
+;
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+21 
+	gnum”ic_lim™s
+<
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_unsigÃd
+<T>::
+v®ue
+>::
+ty³
+> {
+
+22 
+T
+ 
+lowe¡
+() {
+
+25 
+T
+ 
+highe¡
+() {
+
+26  
+T
+(-1);
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+31 
+	gnum”ic_lim™s
+<
+
+32 
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<T>::
+v®ue
+ && 
+is_sigÃd
+<
+T
+>::v®ue>::
+ty³
+> {
+
+33 
+T
+ 
+lowe¡
+() {
+
+34  
+T
+(T(1) << ((T) * 8 - 1));
+
+36 
+T
+ 
+highe¡
+() {
+
+37  
+T
+(~
+lowe¡
+());
+
+43 #ifdeà
+_MSC_VER
+
+
+44 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 #iâdeà
+i¢ª
+
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+boÞ
+ 
+i¢ª
+(
+T
+ 
+x
+) {
+
+17  
+	gx
+ !ð
+x
+;
+
+21 #iâdeà
+isšf
+
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+23 
+boÞ
+ 
+isšf
+(
+T
+ 
+x
+) {
+
+24  
+	gx
+ !ð0.0 && 
+x
+ * 2 == x;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡ddef.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+size_t
+ 
+	gX
+, size_ˆ
+	gY
+, 
+boÞ
+ 
+	gMaxIsX
+ = (
+X
+ > 
+Y
+)>
+
+15 
+	sMax
+ {};
+
+17 
+	g‹m¶©e
+ <
+size_t
+ 
+	gX
+, size_ˆ
+	gY
+>
+
+18 
+	gMax
+<
+	gX
+, 
+	gY
+, 
+	gŒue
+> {
+
+19 cÚ¡ 
+size_t
+ 
+	gv®ue
+ = 
+X
+;
+
+22 
+	g‹m¶©e
+ <
+size_t
+ 
+	gX
+, size_ˆ
+	gY
+>
+
+23 
+	gMax
+<
+	gX
+, 
+	gY
+, 
+	gçl£
+> {
+
+24 cÚ¡ 
+size_t
+ 
+	gv®ue
+ = 
+Y
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	spgm_p
+ {
+
+15 
+pgm_p
+(cÚ¡ * 
+p
+è: 
+add»ss
+(p) {}
+
+16 cÚ¡ * 
+add»ss
+;
+
+20 #iâdeà
+¡¾’_P
+
+
+21 
+šlše
+ 
+size_t
+ 
+	$¡¾’_P
+(
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+s
+) {
+
+22 cÚ¡ * 
+p
+ = 
+s
+.
+add»ss
+;
+
+23 
+	`ARDUINOJSON_ASSERT
+(
+p
+ !ð
+NULL
+);
+
+24 
+	`pgm_»ad_by‹
+(
+p
+))…++;
+
+25  
+	`size_t
+(
+p
+ - 
+s
+.
+add»ss
+);
+
+26 
+	}
+}
+
+29 #iâdeà
+¡ºcmp_P
+
+
+30 
+šlše
+ 
+	$¡ºcmp_P
+(cÚ¡ * 
+a
+, 
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+b
+, 
+size_t
+ 
+n
+) {
+
+31 cÚ¡ * 
+s1
+ = 
+a
+;
+
+32 cÚ¡ * 
+s2
+ = 
+b
+.
+add»ss
+;
+
+33 
+	`ARDUINOJSON_ASSERT
+(
+s1
+ !ð
+NULL
+);
+
+34 
+	`ARDUINOJSON_ASSERT
+(
+s2
+ !ð
+NULL
+);
+
+35 
+n
+-- > 0) {
+
+36 
+c1
+ = *
+s1
+++;
+
+37 
+c2
+ = 
+¡©ic_ÿ¡
+<>(
+	`pgm_»ad_by‹
+(
+s2
+++));
+
+38 ià(
+c1
+ < 
+c2
+)
+
+40 ià(
+c1
+ > 
+c2
+)
+
+42 ià(
+c1
+ == 0 )
+
+46 
+	}
+}
+
+49 #iâdeà
+¡rcmp_P
+
+
+50 
+šlše
+ 
+	$¡rcmp_P
+(cÚ¡ * 
+a
+, 
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+b
+) {
+
+51 cÚ¡ * 
+s1
+ = 
+a
+;
+
+52 cÚ¡ * 
+s2
+ = 
+b
+.
+add»ss
+;
+
+53 
+	`ARDUINOJSON_ASSERT
+(
+s1
+ !ð
+NULL
+);
+
+54 
+	`ARDUINOJSON_ASSERT
+(
+s2
+ !ð
+NULL
+);
+
+56 
+c1
+ = *
+s1
+++;
+
+57 
+c2
+ = 
+¡©ic_ÿ¡
+<>(
+	`pgm_»ad_by‹
+(
+s2
+++));
+
+58 ià(
+c1
+ < 
+c2
+)
+
+60 ià(
+c1
+ > 
+c2
+)
+
+62 ià(
+c1
+ == 0 )
+
+65 
+	}
+}
+
+68 #iâdeà
+memýy_P
+
+
+69 
+šlše
+ * 
+	$memýy_P
+(* 
+d¡
+, 
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+¤c
+, 
+size_t
+ 
+n
+) {
+
+70 
+ušt8_t
+* 
+d
+ = 
+»š‹½»t_ÿ¡
+<ušt8_t*>(
+d¡
+);
+
+71 cÚ¡ * 
+s
+ = 
+¤c
+.
+add»ss
+;
+
+72 
+	`ARDUINOJSON_ASSERT
+(
+d
+ !ð
+NULL
+);
+
+73 
+	`ARDUINOJSON_ASSERT
+(
+s
+ !ð
+NULL
+);
+
+74 
+n
+-- > 0) {
+
+75 *
+d
+++ = 
+	`pgm_»ad_by‹
+(
+s
+++);
+
+77  
+d¡
+;
+
+78 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_poš‹r
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+pgm_»ad
+(cÚ¡ * 
+p
+) {
+
+14  
+»š‹½»t_ÿ¡
+<
+T
+>(
+pgm_»ad_±r
+(
+p
+));
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+18 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gT
+>::
+v®ue
+ &&
+
+19 (
+T
+) == (),
+
+21 
+	gT
+>::
+ty³
+
+
+22 
+pgm_»ad
+(cÚ¡ * 
+p
+) {
+
+23  
+pgm_»ad_æßt
+(
+p
+);
+
+26 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+27 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gušt32_t
+>::
+v®ue
+, T>::
+ty³
+ 
+pgm_»ad
+(
+
+28 cÚ¡ * 
+p
+) {
+
+29  
+pgm_»ad_dwÜd
+(
+p
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	#ARDUINOJSON_EXPAND6
+(
+a
+, 
+b
+, 
+c
+, 
+d
+, 
+e
+, 
+f
+èa, b, c, d,ƒ, 
+	)
+f
+
+8 
+	#ARDUINOJSON_EXPAND7
+(
+a
+, 
+b
+, 
+c
+, 
+d
+, 
+e
+, 
+f
+, 
+g
+èa, b, c, d,ƒ, f, 
+	)
+g
+
+9 
+	#ARDUINOJSON_EXPAND9
+(
+a
+, 
+b
+, 
+c
+, 
+d
+, 
+e
+, 
+f
+, 
+g
+, 
+h
+, 
+i
+èa, b, c, d,ƒ, f, g, h, 
+	)
+i
+
+10 
+	#ARDUINOJSON_EXPAND18
+(
+a
+, 
+b
+, 
+c
+, 
+d
+, 
+e
+, 
+f
+, 
+g
+, 
+h
+, 
+i
+, 
+j
+, 
+k
+, 
+l
+, 
+m
+, 
+n
+, 
+o
+, 
+p
+, \
+
+11 
+q
+, 
+r
+) \
+
+12 
+a
+, 
+b
+, 
+c
+, 
+d
+, 
+e
+, 
+f
+, 
+g
+, 
+h
+, 
+i
+, 
+j
+, 
+k
+, 
+l
+, 
+m
+, 
+n
+, 
+o
+, 
+p
+, 
+q
+, 
+r
+
+
+	)
+
+14 
+	#ARDUINOJSON_CONCAT_
+(
+A
+, 
+B
+èA##
+	)
+B
+
+15 
+	#ARDUINOJSON_CONCAT2
+(
+A
+, 
+B
+è
+	`ARDUINOJSON_CONCAT_
+(A, B)
+
+	)
+
+16 
+	#ARDUINOJSON_CONCAT4
+(
+A
+, 
+B
+, 
+C
+, 
+D
+) \
+
+17 
+	`ARDUINOJSON_CONCAT2
+(ARDUINOJSON_CONCAT2(
+A
+, 
+B
+), ARDUINOJSON_CONCAT2(
+C
+, 
+D
+))
+
+	)
+
+19 
+	#ARDUINOJSON_HEX_DIGIT_0000
+(è0
+
+	)
+
+20 
+	#ARDUINOJSON_HEX_DIGIT_0001
+(è1
+
+	)
+
+21 
+	#ARDUINOJSON_HEX_DIGIT_0010
+(è2
+
+	)
+
+22 
+	#ARDUINOJSON_HEX_DIGIT_0011
+(è3
+
+	)
+
+23 
+	#ARDUINOJSON_HEX_DIGIT_0100
+(è4
+
+	)
+
+24 
+	#ARDUINOJSON_HEX_DIGIT_0101
+(è5
+
+	)
+
+25 
+	#ARDUINOJSON_HEX_DIGIT_0110
+(è6
+
+	)
+
+26 
+	#ARDUINOJSON_HEX_DIGIT_0111
+(è7
+
+	)
+
+27 
+	#ARDUINOJSON_HEX_DIGIT_1000
+(è8
+
+	)
+
+28 
+	#ARDUINOJSON_HEX_DIGIT_1001
+(è9
+
+	)
+
+29 
+	#ARDUINOJSON_HEX_DIGIT_1010
+(è
+A
+
+
+	)
+
+30 
+	#ARDUINOJSON_HEX_DIGIT_1011
+(è
+B
+
+
+	)
+
+31 
+	#ARDUINOJSON_HEX_DIGIT_1100
+(è
+C
+
+
+	)
+
+32 
+	#ARDUINOJSON_HEX_DIGIT_1101
+(è
+D
+
+
+	)
+
+33 
+	#ARDUINOJSON_HEX_DIGIT_1110
+(è
+E
+
+
+	)
+
+34 
+	#ARDUINOJSON_HEX_DIGIT_1111
+(è
+F
+
+
+	)
+
+35 
+	#ARDUINOJSON_HEX_DIGIT_
+(
+A
+, 
+B
+, 
+C
+, 
+D
+è
+ARDUINOJSON_HEX_DIGIT_
+##A##B##C##
+	`D
+()
+
+	)
+
+36 
+	#ARDUINOJSON_HEX_DIGIT
+(
+A
+, 
+B
+, 
+C
+, 
+D
+è
+	`ARDUINOJSON_HEX_DIGIT_
+(A, B, C, D)
+
+	)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡dšt.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+šlše
+ 
+§ã_¡rcmp
+(cÚ¡ * 
+a
+, cÚ¡ * 
+b
+) {
+
+14 ià(
+	ga
+ =ð
+b
+)
+
+16 ià(!
+	ga
+)
+
+18 ià(!
+	gb
+)
+
+20  
+¡rcmp
+(
+a
+, 
+b
+);
+
+23 
+šlše
+ 
+§ã_¡ºcmp
+(cÚ¡ * 
+a
+, cÚ¡ * 
+b
+, 
+size_t
+ 
+n
+) {
+
+24 ià(
+	ga
+ =ð
+b
+)
+
+26 ià(!
+	ga
+)
+
+28 ià(!
+	gb
+)
+
+30  
+¡ºcmp
+(
+a
+, 
+b
+, 
+n
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/static_array.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+9 #ià
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+11 
+	~<ArdušoJsÚ/PÞyfžls/pgm¥aû_g’”ic.hµ
+>
+
+13 #iâdeà
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+
+
+14 
+	#ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+ty³
+, 
+Çme
+, 
+v®ue
+) \
+
+15 
+ty³
+ cÚ¡ 
+Çme
+[] 
+PROGMEM
+ = 
+v®ue
+;
+
+	)
+
+18 #iâdeà
+ARDUINOJSON_READ_STATIC_ARRAY
+
+
+19 
+	#ARDUINOJSON_READ_STATIC_ARRAY
+(
+ty³
+, 
+Çme
+, 
+šdex
+) \
+
+20 
+pgm_»ad
+<
+ty³
+>(
+Çme
+ + 
+šdex
+)
+
+	)
+
+25 #iâdeà
+ARDUINOJSON_DEFINE_STATIC_ARRAY
+
+
+26 
+	#ARDUINOJSON_DEFINE_STATIC_ARRAY
+(
+ty³
+, 
+Çme
+, 
+v®ue
+) \
+
+27 
+ty³
+ cÚ¡ 
+Çme
+[] = 
+v®ue
+;
+
+	)
+
+30 #iâdeà
+ARDUINOJSON_READ_STATIC_ARRAY
+
+
+31 
+	#ARDUINOJSON_READ_STATIC_ARRAY
+(
+ty³
+, 
+Çme
+, 
+šdex
+èÇme[šdex]
+
+	)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_Œa™s/cÚd™iÚ®.hµ
+"
+
+8 
+	~"ty³_Œa™s/’abË_if.hµ
+"
+
+9 
+	~"ty³_Œa™s/š‹g¿l_cÚ¡ªt.hµ
+"
+
+10 
+	~"ty³_Œa™s/is_¬¿y.hµ
+"
+
+11 
+	~"ty³_Œa™s/is_ba£_of.hµ
+"
+
+12 
+	~"ty³_Œa™s/is_þass.hµ
+"
+
+13 
+	~"ty³_Œa™s/is_cÚ¡.hµ
+"
+
+14 
+	~"ty³_Œa™s/is_cÚv”tibË.hµ
+"
+
+15 
+	~"ty³_Œa™s/is_’um.hµ
+"
+
+16 
+	~"ty³_Œa™s/is_æßtšg_pošt.hµ
+"
+
+17 
+	~"ty³_Œa™s/is_š‹g¿l.hµ
+"
+
+18 
+	~"ty³_Œa™s/is_poš‹r.hµ
+"
+
+19 
+	~"ty³_Œa™s/is_§me.hµ
+"
+
+20 
+	~"ty³_Œa™s/is_sigÃd.hµ
+"
+
+21 
+	~"ty³_Œa™s/is_unsigÃd.hµ
+"
+
+22 
+	~"ty³_Œa™s/make_unsigÃd.hµ
+"
+
+23 
+	~"ty³_Œa™s/»move_cÚ¡.hµ
+"
+
+24 
+	~"ty³_Œa™s/»move_»ã»nû.hµ
+"
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+boÞ
+ 
+	gCÚd™iÚ
+, 
+þass
+ 
+	gTrueTy³
+, cÏs 
+	gF®£Ty³
+>
+
+12 
+	scÚd™iÚ®
+ {
+
+13 
+TrueTy³
+ 
+	tty³
+;
+
+16 
+	g‹m¶©e
+ <
+þass
+ 
+	gTrueTy³
+, cÏs 
+	gF®£Ty³
+>
+
+17 
+	gcÚd™iÚ®
+<
+	gçl£
+, 
+	gTrueTy³
+, 
+	gF®£Ty³
+> {
+
+18 
+F®£Ty³
+ 
+	tty³
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+T
+ 
+deþv®
+();
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+boÞ
+ 
+	gCÚd™iÚ
+, 
+ty³Çme
+ 
+	gT
+ = >
+
+13 
+	s’abË_if
+ {};
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	g’abË_if
+<
+	gŒue
+, 
+	gT
+> {
+
+17 
+T
+ 
+	tty³
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+T
+ 
+	gv
+>
+
+12 
+	sš‹g¿l_cÚ¡ªt
+ {
+
+13 cÚ¡ 
+T
+ 
+	gv®ue
+ = 
+v
+;
+
+16 
+	gš‹g¿l_cÚ¡ªt
+<
+	tboÞ
+, 
+	tŒue
+> 
+	tŒue_ty³
+;
+
+17 
+	gš‹g¿l_cÚ¡ªt
+<
+	tboÞ
+, 
+	tçl£
+> 
+	tçl£_ty³
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡ddef.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+	gis_¬¿y
+ : 
+çl£_ty³
+ {};
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	gis_¬¿y
+<
+	gT
+[]> : 
+Œue_ty³
+ {};
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN
+>
+
+20 
+	gis_¬¿y
+<
+	gT
+[
+N
+]> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTBa£
+,�y³Çm�
+	gTD”ived
+>
+
+14 þas 
+	cis_ba£_of
+ {
+
+15 
+	g´Ùeùed
+:
+
+16 
+	tYes
+[1];
+
+17 
+	tNo
+[2];
+
+19 
+	gYes
+ &
+´obe
+(cÚ¡ 
+TBa£
+ *);
+
+20 
+	gNo
+ &
+´obe
+(...);
+
+22 
+	gpublic
+:
+
+23 cÚ¡ 
+boÞ
+ 
+v®ue
+ =
+
+24 (
+´obe
+(
+»š‹½»t_ÿ¡
+<
+TD”ived
+ *>(0))è=ð(
+Yes
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"deþv®.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	sis_þass
+ {
+
+13 
+	g´Ùeùed
+:
+
+14 
+	tYes
+[1];
+
+15 
+	tNo
+[2];
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gU
+>
+
+18 
+	gYes
+ &
+´obe
+((
+U
+::*)());
+
+19 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+20 
+	gNo
+ &
+´obe
+(...);
+
+22 
+	gpublic
+:
+
+23 cÚ¡ 
+boÞ
+ 
+v®ue
+ = (
+´obe
+<
+T
+>(0)è=ð(
+Yes
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+	gis_cÚ¡
+ : 
+çl£_ty³
+ {};
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	gis_cÚ¡
+<cÚ¡ 
+	gT
+> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"deþv®.hµ
+"
+
+9 #ifdeà
+_MSC_VER
+
+
+10 #´agm¨
+w¬nšg
+(
+push
+)
+
+12 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4244)
+
+15 #ifdeà
+__ICCARM__
+
+
+17 #´agm¨
+dŸg_suµ»ss
+=
+Pa093
+
+
+20 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gFrom
+,�y³Çm�
+	gTo
+>
+
+23 
+	sis_cÚv”tibË
+ {
+
+24 
+	g´Ùeùed
+:
+
+25 
+	tYes
+[1];
+
+26 
+	tNo
+[2];
+
+28 
+	gYes
+ &
+´obe
+(
+To
+);
+
+29 
+	gNo
+ &
+´obe
+(...);
+
+31 
+	gpublic
+:
+
+32 cÚ¡ 
+boÞ
+ 
+v®ue
+ = (
+´obe
+(
+deþv®
+<
+From
+>())è=ð(
+Yes
+);
+
+37 #ifdeà
+_MSC_VER
+
+
+38 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+41 #ifdeà
+__ICCARM__
+
+
+42 #´agm¨
+dŸg_deçuÉ
+=
+Pa093
+
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"is_þass.hµ
+"
+
+8 
+	~"is_cÚv”tibË.hµ
+"
+
+9 
+	~"is_æßtšg_pošt.hµ
+"
+
+10 
+	~"is_š‹g¿l.hµ
+"
+
+11 
+	~"is_§me.hµ
+"
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	sis_’um
+ {
+
+17 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ = 
+is_cÚv”tibË
+<
+T
+, >::
+v®ue
+ &&
+
+18 !
+is_þass
+<
+T
+>::
+v®ue
+ && !
+is_š‹g¿l
+<T>::value &&
+
+19 !
+is_æßtšg_pošt
+<
+T
+>::
+v®ue
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+12 
+	gis_æßtšg_pošt
+ : 
+çl£_ty³
+ {};
+
+14 
+	g‹m¶©e
+ <>
+
+15 
+	gis_æßtšg_pošt
+<> : 
+Œue_ty³
+ {};
+
+17 
+	g‹m¶©e
+ <>
+
+18 
+	gis_æßtšg_pošt
+<> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~"is_§me.hµ
+"
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+	sis_š‹g¿l
+ {
+
+15 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ =
+
+16 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+17 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+18 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+19 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+20 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+21 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ ||
+
+22 
+is_§me
+<
+T
+, >::
+v®ue
+ ||
+
+24 #ià
+ARDUINOJSON_HAS_INT64
+
+
+25 
+is_§me
+<
+T
+, sigÃd 
+	g__št64
+>::
+v®ue
+ ||
+
+26 
+is_§me
+<
+T
+, 
+	g__št64
+>::
+v®ue
+ ||
+
+28 
+is_§me
+<
+T
+, >::
+v®ue
+ || is_§me<T, 
+	gboÞ
+>::value;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+32 
+	gis_š‹g¿l
+<cÚ¡ 
+	gT
+> : 
+is_š‹g¿l
+<
+T
+> {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	gis_poš‹r
+ : 
+çl£_ty³
+ {};
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+15 
+	gis_poš‹r
+<
+	gT
+*> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gU
+>
+
+13 
+	gis_§me
+ : 
+çl£_ty³
+ {};
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	gis_§me
+<
+	gT
+, T> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+11 
+	gis_sigÃd
+ : 
+çl£_ty³
+ {};
+
+13 
+	g‹m¶©e
+ <>
+
+14 
+	gis_sigÃd
+<> : 
+Œue_ty³
+ {};
+
+16 
+	g‹m¶©e
+ <>
+
+17 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+19 
+	g‹m¶©e
+ <>
+
+20 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+22 
+	g‹m¶©e
+ <>
+
+23 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+25 
+	g‹m¶©e
+ <>
+
+26 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+28 
+	g‹m¶©e
+ <>
+
+29 
+	gis_sigÃd
+<> : 
+Œue_ty³
+ {};
+
+31 
+	g‹m¶©e
+ <>
+
+32 
+	gis_sigÃd
+<> : 
+Œue_ty³
+ {};
+
+34 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+35 
+	g‹m¶©e
+ <>
+
+36 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+39 #ià
+ARDUINOJSON_HAS_INT64
+
+
+40 
+	g‹m¶©e
+ <>
+
+41 
+	gis_sigÃd
+<sigÃd 
+	g__št64
+> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+11 
+	gis_unsigÃd
+ : 
+çl£_ty³
+ {};
+
+13 
+	g‹m¶©e
+ <>
+
+14 
+	gis_unsigÃd
+<
+	gboÞ
+> : 
+Œue_ty³
+ {};
+
+16 
+	g‹m¶©e
+ <>
+
+17 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+19 
+	g‹m¶©e
+ <>
+
+20 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+22 
+	g‹m¶©e
+ <>
+
+23 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+25 
+	g‹m¶©e
+ <>
+
+26 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+28 #ià
+ARDUINOJSON_HAS_INT64
+
+
+29 
+	g‹m¶©e
+ <>
+
+30 
+	gis_unsigÃd
+<
+	g__št64
+> : 
+Œue_ty³
+ {};
+
+33 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+34 
+	g‹m¶©e
+ <>
+
+35 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_id’t™y.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+11 
+	gmake_unsigÃd
+;
+
+13 
+	g‹m¶©e
+ <>
+
+14 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+16 
+	g‹m¶©e
+ <>
+
+17 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+18 
+	g‹m¶©e
+ <>
+
+19 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+21 
+	g‹m¶©e
+ <>
+
+22 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+23 
+	g‹m¶©e
+ <>
+
+24 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+26 
+	g‹m¶©e
+ <>
+
+27 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+28 
+	g‹m¶©e
+ <>
+
+29 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+31 
+	g‹m¶©e
+ <>
+
+32 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+33 
+	g‹m¶©e
+ <>
+
+34 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+36 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+37 
+	g‹m¶©e
+ <>
+
+38 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+39 
+	g‹m¶©e
+ <>
+
+40 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+43 #ià
+ARDUINOJSON_HAS_INT64
+
+
+44 
+	g‹m¶©e
+ <>
+
+45 
+	gmake_unsigÃd
+<sigÃd 
+	g__št64
+> : 
+ty³_id’t™y
+<
+__št64
+> {};
+
+46 
+	g‹m¶©e
+ <>
+
+47 
+	gmake_unsigÃd
+<
+	g__št64
+> : 
+ty³_id’t™y
+<
+__št64
+> {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+	s»move_cÚ¡
+ {
+
+14 
+T
+ 
+	tty³
+;
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	g»move_cÚ¡
+<cÚ¡ 
+	gT
+> {
+
+18 
+T
+ 
+	tty³
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+	s»move_»ã»nû
+ {
+
+14 
+T
+ 
+	tty³
+;
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	g»move_»ã»nû
+<
+	gT
+&> {
+
+18 
+T
+ 
+	tty³
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	sty³_id’t™y
+ {
+
+13 
+T
+ 
+	tty³
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_Œa™s.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+11 
+šlše
+ 
+sw­
+(
+T
+& 
+a
+, T& 
+b
+) {
+
+12 
+T
+ 
+t
+(
+a
+);
+
+13 
+	ga
+ = 
+b
+;
+
+14 
+	gb
+ = 
+t
+;
+
+17 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+19 
+ty³Çme
+ 
+	g»move_»ã»nû
+<
+	gT
+>::
+ty³
+&& 
+move
+(
+T
+&& 
+t
+) {
+
+20  
+¡©ic_ÿ¡
+<
+ty³Çme
+ 
+»move_»ã»nû
+<
+T
+>::
+ty³
+&&>(
+t
+);
+
+23 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+24 
+	gT
+& 
+move
+(
+T
+& 
+t
+) {
+
+25  
+	gt
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+12 þas 
+	cCouÁšgDecÜ©Ü
+ {
+
+13 
+	gpublic
+:
+
+14 
+ex¶ic™
+ 
+CouÁšgDecÜ©Ü
+(
+TWr™”
+& 
+wr™”
+è: 
+_wr™”
+(wr™”), 
+_couÁ
+(0) {}
+
+16 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+17 
+	g_couÁ
+ +ð
+_wr™”
+.
+wr™e
+(
+c
+);
+
+20 
+wr™e
+(cÚ¡ 
+ušt8_t
+* 
+s
+, 
+size_t
+ 
+n
+) {
+
+21 
+	g_couÁ
+ +ð
+_wr™”
+.
+wr™e
+(
+s
+, 
+n
+);
+
+24 
+size_t
+ 
+couÁ
+() const {
+
+25  
+	g_couÁ
+;
+
+28 
+	g´iv©e
+:
+
+29 
+TWr™”
+ 
+_wr™”
+;
+
+30 
+size_t
+ 
+	g_couÁ
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+,�y³Çm�
+	gEÇbË
+ = >
+
+13 þas 
+	cWr™”
+ {
+
+14 
+public
+:
+
+15 
+ex¶ic™
+ 
+Wr™”
+(
+TDe¡š©iÚ
+& 
+de¡
+è: 
+_de¡
+(&dest) {}
+
+17 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+18  
+_de¡
+->
+wr™e
+(
+c
+);
+
+21 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+* 
+s
+, size_ˆ
+n
+) {
+
+22  
+	g_de¡
+->
+wr™e
+(
+s
+, 
+n
+);
+
+25 
+	g´iv©e
+:
+
+26 
+TDe¡š©iÚ
+* 
+_de¡
+;
+
+31 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/S�ticSŒšgWr™”.hµ
+>
+
+33 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+34 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/StdSŒšgWr™”.hµ
+>
+
+37 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+38 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/ArdušoSŒšgWr™”.hµ
+>
+
+41 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+42 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/StdSŒ—mWr™”.hµ
+>
+
+45 #ià
+ARDUINOJSON_ENABLE_ARDUINO_PRINT
+
+
+46 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/PrštWr™”.hµ
+>
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<Ardušo.h
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <>
+
+12 
+þass
+ 
+	gWr™”
+< ::
+SŒšg
+, > {
+
+13 cÚ¡ 
+size_t
+ 
+	gbufãrC­ac™y
+ = 
+ARDUINOJSON_STRING_BUFFER_SIZE
+;
+
+15 
+	gpublic
+:
+
+16 
+ex¶ic™
+ 
+Wr™”
+(::
+SŒšg
+ &
+¡r
+è: 
+_de¡š©iÚ
+(&str) {
+
+17 
+_size
+ = 0;
+
+20 ~
+Wr™”
+() {
+
+21 
+æush
+();
+
+24 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+25 
+ARDUINOJSON_ASSERT
+(
+_size
+ < 
+bufãrC­ac™y
+);
+
+26 
+	g_bufãr
+[
+_size
+++] = 
+¡©ic_ÿ¡
+<>(
+c
+);
+
+27 ià(
+	g_size
+ + 1 >ð
+bufãrC­ac™y
+)
+
+28 
+æush
+();
+
+32 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+s
+, size_ˆ
+n
+) {
+
+33 
+size_t
+ 
+	gi
+ = 0; i < 
+	gn
+; i++) {
+
+34 
+wr™e
+(
+s
+[
+i
+]);
+
+36  
+	gn
+;
+
+39 
+	g´iv©e
+:
+
+40 
+æush
+() {
+
+41 
+ARDUINOJSON_ASSERT
+(
+_size
+ < 
+bufãrC­ac™y
+);
+
+42 
+	g_bufãr
+[
+_size
+] = 0;
+
+43 *
+	g_de¡š©iÚ
+ +ð
+_bufãr
+;
+
+44 
+	g_size
+ = 0;
+
+47 ::
+SŒšg
+ *
+_de¡š©iÚ
+;
+
+48 
+	g_bufãr
+[
+bufãrC­ac™y
+];
+
+49 
+size_t
+ 
+	g_size
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cDummyWr™”
+ {
+
+12 
+	gpublic
+:
+
+13 
+size_t
+ 
+wr™e
+(
+ušt8_t
+) {
+
+17 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+*, size_ˆ
+n
+) {
+
+18  
+	gn
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+10 
+þass
+ 
+	gWr™”
+<
+
+11 
+	gTDe¡š©iÚ
+,
+
+12 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+< ::
+Pršt
+, 
+	gTDe¡š©iÚ
+>::
+v®ue
+>::
+ty³
+> {
+
+13 
+public
+:
+
+14 
+ex¶ic™
+ 
+Wr™”
+(::
+Pršt
+& 
+´št
+è: 
+_´št
+(&print) {}
+
+16 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+17  
+_´št
+->
+wr™e
+(
+c
+);
+
+20 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+* 
+s
+, size_ˆ
+n
+) {
+
+21  
+	g_´št
+->
+wr™e
+(
+s
+, 
+n
+);
+
+24 
+	g´iv©e
+:
+
+25 ::
+Pršt
+* 
+_´št
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cS�ticSŒšgWr™”
+ {
+
+13 
+	gpublic
+:
+
+14 
+S�ticSŒšgWr™”
+(*
+buf
+, 
+size_t
+ 
+size
+è: 
+’d
+(buà+ siz�- 1), 
+p
+(buf) {
+
+15 *
+	gp
+ = '\0';
+
+18 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+19 ià(
+	gp
+ >ð
+’d
+)
+
+21 *
+	gp
+++ = 
+¡©ic_ÿ¡
+<>(
+c
+);
+
+22 *
+	gp
+ = '\0';
+
+26 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+s
+, size_ˆ
+n
+) {
+
+27 *
+	gbegš
+ = 
+p
+;
+
+28 
+	gp
+ < 
+	g’d
+ && 
+	gn
+ > 0) {
+
+29 *
+	gp
+++ = 
+¡©ic_ÿ¡
+<>(*
+s
+++);
+
+30 
+	gn
+--;
+
+32 *
+	gp
+ = '\0';
+
+33  
+size_t
+(
+p
+ - 
+begš
+);
+
+36 
+	g´iv©e
+:
+
+37 *
+’d
+;
+
+38 *
+	gp
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<o¡»am
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+12 
+þass
+ 
+	gWr™”
+<
+
+13 
+	gTDe¡š©iÚ
+,
+
+14 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+<
+	g¡d
+::
+o¡»am
+, 
+	gTDe¡š©iÚ
+>::
+v®ue
+>::
+ty³
+> {
+
+15 
+public
+:
+
+16 
+ex¶ic™
+ 
+Wr™”
+(
+¡d
+::
+o¡»am
+& 
+os
+è: 
+_os
+(&os) {}
+
+18 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+19 
+_os
+->
+put
+(
+¡©ic_ÿ¡
+<>(
+c
+));
+
+23 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+* 
+s
+, size_ˆ
+n
+) {
+
+24 
+	g_os
+->
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+),
+
+25 
+¡©ic_ÿ¡
+<
+¡d
+::
+¡»amsize
+>(
+n
+));
+
+26  
+	gn
+;
+
+29 
+	g´iv©e
+:
+
+30 
+¡d
+::
+o¡»am
+* 
+_os
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+	~<¡ršg
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+15 
+	gis_¡d_¡ršg
+ : 
+çl£_ty³
+ {};
+
+17 
+	g‹m¶©e
+ <
+þass
+ 
+	gTCh¬T¿™s
+, cÏs 
+	gTAÎoÿtÜ
+>
+
+18 
+	gis_¡d_¡ršg
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >
+
+19 : 
+Œue_ty³
+ {};
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+22 
+þass
+ 
+	gWr™”
+<
+	gTDe¡š©iÚ
+,
+
+23 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_¡d_¡ršg
+<
+	gTDe¡š©iÚ
+>::
+v®ue
+>::
+ty³
+> {
+
+24 
+public
+:
+
+25 
+Wr™”
+(
+TDe¡š©iÚ
+ &
+¡r
+è: 
+_¡r
+(&str) {}
+
+27 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+28 
+_¡r
+->
+Ý”©Ü
++=(
+¡©ic_ÿ¡
+<>(
+c
+));
+
+32 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+s
+, size_ˆ
+n
+) {
+
+33 
+	g_¡r
+->
+­³nd
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+), 
+n
+);
+
+34  
+	gn
+;
+
+37 
+	g´iv©e
+:
+
+38 
+TDe¡š©iÚ
+ *
+_¡r
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/DummyWr™”.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+>
+
+12 
+size_t
+ 
+m—su»
+(cÚ¡ 
+TSourû
+ &
+sourû
+) {
+
+13 
+DummyWr™”
+ 
+	gdp
+;
+
+14 
+	gTS”Ÿliz”
+<
+	gDummyWr™”
+> 
+£rŸliz”
+(
+dp
+);
+
+15  
+	gsourû
+.
+acû±
+(
+£rŸliz”
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+,
+
+12 
+ty³Çme
+ 
+	gTWr™”
+>
+
+13 
+size_t
+ 
+doS”Ÿlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TWr™”
+ 
+wr™”
+) {
+
+14 
+	gTS”Ÿliz”
+<
+	gTWr™”
+> 
+£rŸliz”
+(
+wr™”
+);
+
+15  
+	gsourû
+.
+acû±
+(
+£rŸliz”
+);
+
+18 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+,
+
+19 
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+20 
+size_t
+ 
+£rŸlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TDe¡š©iÚ
+ &
+de¡š©iÚ
+) {
+
+21 
+	gWr™”
+<
+	gTDe¡š©iÚ
+> 
+wr™”
+(
+de¡š©iÚ
+);
+
+22  
+	gdoS”Ÿlize
+<
+	gTS”Ÿliz”
+>(
+	gsourû
+, 
+	gwr™”
+);
+
+25 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+>
+
+26 
+size_t
+ 
+£rŸlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, *
+bufãr
+, size_ˆ
+bufãrSize
+) {
+
+27 
+S�ticSŒšgWr™”
+ 
+wr™”
+(
+»š‹½»t_ÿ¡
+<*>(
+bufãr
+), 
+bufãrSize
+);
+
+28  
+	gdoS”Ÿlize
+<
+	gTS”Ÿliz”
+>(
+	gsourû
+, 
+	gwr™”
+);
+
+31 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+,
+
+32 
+ty³Çme
+ 
+	gTCh¬
+, 
+size_t
+ 
+	gN
+>
+
+33 #ià
+defšed
+ 
+_MSC_VER
+ && _MSC_VER < 1900
+
+34 
+ty³Çme
+ 
+	g’abË_if
+<(
+	g»move_»ã»nû
+<
+	gTCh¬
+>::
+ty³
+è=ð1, 
+	gsize_t
+>::type
+
+36 
+ty³Çme
+ 
+’abË_if
+<(
+TCh¬
+è=ð1, 
+	gsize_t
+>::
+ty³
+
+
+38 
+£rŸlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TCh¬
+ (&
+bufãr
+)[
+N
+]) {
+
+39 
+S�ticSŒšgWr™”
+ 
+wr™”
+(
+»š‹½»t_ÿ¡
+<*>(
+bufãr
+), 
+N
+);
+
+40  
+	gdoS”Ÿlize
+<
+	gTS”Ÿliz”
+>(
+	gsourû
+, 
+	gwr™”
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cSŒšgCÝ›r
+ {
+
+12 
+	gpublic
+:
+
+13 
+SŒšgCÝ›r
+(
+MemÜyPoÞ
+& 
+poÞ
+è: 
+_poÞ
+(&pool) {}
+
+15 
+¡¬tSŒšg
+() {
+
+16 
+_poÞ
+->
+g‘F»eZÚe
+(&
+_±r
+, &
+_ÿ·c™y
+);
+
+17 
+	g_size
+ = 0;
+
+20 cÚ¡ * 
+§ve
+() {
+
+21 
+ARDUINOJSON_ASSERT
+(
+_±r
+);
+
+22  
+	g_poÞ
+->
+§veSŒšgFromF»eZÚe
+(
+_size
+);
+
+25 
+­³nd
+(cÚ¡ * 
+s
+) {
+
+26 *
+	gs
+è
+­³nd
+(*
+s
+++);
+
+29 
+­³nd
+(cÚ¡ * 
+s
+, 
+size_t
+ 
+n
+) {
+
+30 
+	gn
+-- > 0è
+­³nd
+(*
+s
+++);
+
+33 
+­³nd
+(
+c
+) {
+
+34 ià(!
+	g_±r
+)
+
+37 ià(
+	g_size
+ >ð
+_ÿ·c™y
+) {
+
+38 
+_±r
+ = 0;
+
+39 
+	g_poÞ
+->
+m¬kAsOv”æowed
+();
+
+43 
+	g_±r
+[
+_size
+++] = 
+c
+;
+
+46 
+boÞ
+ 
+isV®id
+() {
+
+47  
+	g_±r
+ != 0;
+
+50 cÚ¡ * 
+c_¡r
+() {
+
+51  
+	g_±r
+;
+
+54 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+56 
+	g´iv©e
+:
+
+57 
+MemÜyPoÞ
+* 
+_poÞ
+;
+
+58 * 
+	g_±r
+;
+
+59 
+size_t
+ 
+	g_size
+;
+
+60 
+size_t
+ 
+	g_ÿ·c™y
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cSŒšgMov”
+ {
+
+13 
+	gpublic
+:
+
+14 
+SŒšgMov”
+(* 
+±r
+è: 
+_wr™ePŒ
+(ptr) {}
+
+16 
+¡¬tSŒšg
+() {
+
+17 
+_¡¬tPŒ
+ = 
+_wr™ePŒ
+;
+
+20 cÚ¡ * 
+§ve
+() const {
+
+21  
+	g_¡¬tPŒ
+;
+
+24 
+­³nd
+(
+c
+) {
+
+25 *
+	g_wr™ePŒ
+++ = 
+c
+;
+
+28 
+boÞ
+ 
+isV®id
+() const {
+
+29  
+	gŒue
+;
+
+32 cÚ¡ * 
+c_¡r
+() const {
+
+33  
+	g_¡¬tPŒ
+;
+
+36 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_add»ss
+ 
+	t¡Üage_pÞicy
+;
+
+38 
+	g´iv©e
+:
+
+39 * 
+_wr™ePŒ
+;
+
+40 * 
+	g_¡¬tPŒ
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgStÜage/SŒšgCÝ›r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgStÜage/SŒšgMov”.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+13 
+SŒšgCÝ›r
+ 
+makeSŒšgStÜage
+(
+TIÅut
+&, 
+MemÜyPoÞ
+& 
+poÞ
+) {
+
+14  
+SŒšgCÝ›r
+(
+poÞ
+);
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+18 
+SŒšgMov”
+ 
+makeSŒšgStÜage
+(
+
+19 
+TCh¬
+* 
+šput
+, 
+MemÜyPoÞ
+&,
+
+20 
+ty³Çme
+ 
+’abË_if
+<!
+is_cÚ¡
+<
+TCh¬
+>::
+v®ue
+>::
+ty³
+* = 0) {
+
+21  
+SŒšgMov”
+(
+»š‹½»t_ÿ¡
+<*>(
+šput
+));
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<Ardušo.h
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/§ã_¡rcmp.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 þas 
+	cArdušoSŒšgAd­‹r
+ {
+
+16 
+	gpublic
+:
+
+17 
+ArdušoSŒšgAd­‹r
+(cÚ¡ ::
+SŒšg
+& 
+¡r
+è: 
+_¡r
+(&str) {}
+
+19 
+cÝyTo
+(* 
+p
+, 
+size_t
+ 
+n
+) const {
+
+20 
+memýy
+(
+p
+, 
+_¡r
+->
+c_¡r
+(), 
+n
+);
+
+23 
+boÞ
+ 
+isNuÎ
+() const {
+
+25  !
+	g_¡r
+->
+c_¡r
+();
+
+28 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+30 cÚ¡ * 
+	gme
+ = 
+_¡r
+->
+c_¡r
+();
+
+31  
+§ã_¡rcmp
+(
+me
+, 
+Ùh”
+);
+
+34 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+35  
+com·»
+(
+ex³ùed
+) == 0;
+
+38 
+size_t
+ 
+size
+() const {
+
+39  
+	g_¡r
+->
+Ëngth
+();
+
+42 cÚ¡ * 
+begš
+() const {
+
+43  
+	g_¡r
+->
+c_¡r
+();
+
+46 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+48 
+	g´iv©e
+:
+
+49 cÚ¡ ::
+SŒšg
+* 
+_¡r
+;
+
+52 
+	g‹m¶©e
+ <>
+
+53 
+	gIsSŒšg
+< ::
+SŒšg
+> : 
+Œue_ty³
+ {};
+
+55 
+	g‹m¶©e
+ <>
+
+56 
+	gIsSŒšg
+< ::
+SŒšgSumH–³r
+> : 
+Œue_ty³
+ {};
+
+58 
+šlše
+ 
+ArdušoSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ ::
+SŒšg
+& 
+¡r
+) {
+
+59  
+	`ArdušoSŒšgAd­‹r
+(
+¡r
+);
+
+60 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+8 
+	~<¡ršg.h
+>
+
+10 
+	~<ArdušoJsÚ/PÞyfžls/§ã_¡rcmp.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+12 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 þas 
+	cCÚ¡RamSŒšgAd­‹r
+ {
+
+17 
+	gpublic
+:
+
+18 
+CÚ¡RamSŒšgAd­‹r
+(cÚ¡ * 
+¡r
+ = 0è: 
+_¡r
+(str) {}
+
+20 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+21  
+§ã_¡rcmp
+(
+_¡r
+, 
+Ùh”
+);
+
+24 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+25  
+com·»
+(
+ex³ùed
+) == 0;
+
+28 
+boÞ
+ 
+isNuÎ
+() const {
+
+29  !
+	g_¡r
+;
+
+32 
+size_t
+ 
+size
+() const {
+
+33 ià(!
+	g_¡r
+)
+
+35  
+¡¾’
+(
+_¡r
+);
+
+38 cÚ¡ * 
+d©a
+() const {
+
+39  
+	g_¡r
+;
+
+42 cÚ¡ * 
+begš
+() const {
+
+43  
+	g_¡r
+;
+
+46 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_add»ss
+ 
+	t¡Üage_pÞicy
+;
+
+48 
+	g´Ùeùed
+:
+
+49 cÚ¡ * 
+_¡r
+;
+
+52 
+	g‹m¶©e
+ <>
+
+53 
+	gIsSŒšg
+<cÚ¡ *> : 
+Œue_ty³
+ {};
+
+55 
+	g‹m¶©e
+ <
+	gN
+>
+
+56 
+	gIsSŒšg
+<cÚ¡ [
+N
+]> : 
+Œue_ty³
+ {};
+
+58 
+šlše
+ 
+CÚ¡RamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ * 
+¡r
+) {
+
+59  
+	`CÚ¡RamSŒšgAd­‹r
+(
+¡r
+);
+
+60 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/pgm¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/FÏshSŒšgI‹¿tÜ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 þas 
+	cFÏshSŒšgAd­‹r
+ {
+
+15 
+	gpublic
+:
+
+16 
+FÏshSŒšgAd­‹r
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+è: 
+_¡r
+(str) {}
+
+18 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+19 ià(!
+Ùh”
+ && !
+_¡r
+)
+
+21 ià(!
+	g_¡r
+)
+
+23 ià(!
+	gÙh”
+)
+
+25  -
+¡rcmp_P
+(
+Ùh”
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+));
+
+28 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+29  
+com·»
+(
+ex³ùed
+) == 0;
+
+32 
+boÞ
+ 
+isNuÎ
+() const {
+
+33  !
+	g_¡r
+;
+
+36 
+cÝyTo
+(* 
+p
+, 
+size_t
+ 
+n
+) const {
+
+37 
+memýy_P
+(
+p
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+), 
+n
+);
+
+40 
+size_t
+ 
+size
+() const {
+
+41 ià(!
+	g_¡r
+)
+
+43  
+¡¾’_P
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+));
+
+46 
+FÏshSŒšgI‹¿tÜ
+ 
+begš
+() const {
+
+47  
+FÏshSŒšgI‹¿tÜ
+(
+_¡r
+);
+
+50 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+52 
+	g´iv©e
+:
+
+53 cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+_¡r
+;
+
+56 
+šlše
+ 
+FÏshSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+) {
+
+57  
+	`FÏshSŒšgAd­‹r
+(
+¡r
+);
+
+58 
+	}
+}
+
+60 
+	g‹m¶©e
+ <>
+
+61 
+	gIsSŒšg
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringIterator.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 þas 
+	cFÏshSŒšgI‹¿tÜ
+ {
+
+10 
+	gpublic
+:
+
+11 
+ex¶ic™
+ 
+FÏshSŒšgI‹¿tÜ
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+±r
+)
+
+12 : 
+_±r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+±r
+)) {}
+
+14 
+ex¶ic™
+ 
+FÏshSŒšgI‹¿tÜ
+(cÚ¡ * 
+±r
+è: 
+_±r
+(ptr) {}
+
+16 
+FÏshSŒšgI‹¿tÜ
+ 
+Ý”©Ü
++(
+±rdiff_t
+ 
+d
+) const {
+
+17  
+FÏshSŒšgI‹¿tÜ
+(
+_±r
+ + 
+d
+);
+
+20 
+±rdiff_t
+ 
+	gÝ”©Ü
+-(
+FÏshSŒšgI‹¿tÜ
+ 
+	gÙh”
+) const {
+
+21  
+	g_±r
+ - 
+	gÙh”
+._ptr;
+
+24 
+FÏshSŒšgI‹¿tÜ
+ 
+	gÝ”©Ü
+++() {
+
+25  
+FÏshSŒšgI‹¿tÜ
+(
+_±r
+++);
+
+28 
+FÏshSŒšgI‹¿tÜ
+ 
+	gÝ”©Ü
+++() {
+
+29  
+FÏshSŒšgI‹¿tÜ
+(++
+_±r
+);
+
+32 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+FÏshSŒšgI‹¿tÜ
+ 
+Ùh”
+) const {
+
+33  
+_±r
+ !ð
+Ùh”
+._ptr;
+
+36 
+	gÝ”©Ü
+*() const {
+
+37  (
+pgm_»ad_by‹
+(
+_±r
+));
+
+40 
+	g´iv©e
+:
+
+41 cÚ¡ * 
+_±r
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+11 
+	gIsSŒšg
+ : 
+çl£_ty³
+ {};
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+	gIsSŒšg
+<cÚ¡ 
+	gT
+> : 
+IsSŒšg
+<
+T
+> {};
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	gIsSŒšg
+<
+	gT
+&> : 
+IsSŒšg
+<
+T
+> {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+11 
+	~<Ardušo.h
+>
+
+14 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+15 
+	~<¡ršg
+>
+
+18 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+20 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+21 
+	gIsWr™—bËSŒšg
+ : 
+çl£_ty³
+ {};
+
+23 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+25 
+	g‹m¶©e
+ <>
+
+26 
+	gIsWr™—bËSŒšg
+< ::
+SŒšg
+> : 
+Œue_ty³
+ {};
+
+30 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬T¿™s
+,�y³Çm�
+	gTAÎoÿtÜ
+>
+
+33 
+	gIsWr™—bËSŒšg
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >
+
+34 : 
+Œue_ty³
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/CÚ¡RamSŒšgAd­‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 þas 
+	cRamSŒšgAd­‹r
+ : 
+public
+ 
+CÚ¡RamSŒšgAd­‹r
+ {
+
+14 
+public
+:
+
+15 
+RamSŒšgAd­‹r
+(cÚ¡ * 
+¡r
+è: 
+CÚ¡RamSŒšgAd­‹r
+(str) {}
+
+17 
+cÝyTo
+(* 
+p
+, 
+size_t
+ 
+n
+) const {
+
+18 
+memýy
+(
+p
+, 
+_¡r
+, 
+n
+);
+
+21 
+	gARDUINOJSON_NAMESPACE
+::
+	t¡Üage_pÞic›s
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+25 
+šlše
+ 
+RamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+TCh¬
+* 
+¡r
+) {
+
+26  
+	`RamSŒšgAd­‹r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+¡r
+));
+
+27 
+	}
+}
+
+29 
+šlše
+ 
+RamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(* 
+¡r
+) {
+
+30  
+	`RamSŒšgAd­‹r
+(
+¡r
+);
+
+31 
+	}
+}
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+34 
+	gIsSŒšg
+<
+	gTCh¬
+*> {
+
+35 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ = (
+TCh¬
+) == 1;
+
+38 
+	g‹m¶©e
+ <>
+
+39 
+	gIsSŒšg
+<*> {
+
+40 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ = 
+çl£
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/FÏshSŒšgI‹¿tÜ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 þas 
+	cSizedFÏshSŒšgAd­‹r
+ {
+
+15 
+	gpublic
+:
+
+16 
+SizedFÏshSŒšgAd­‹r
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+, 
+size_t
+ 
+sz
+)
+
+17 : 
+_¡r
+(
+¡r
+), 
+_size
+(
+sz
+) {}
+
+19 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+20 ià(!
+	gÙh”
+ && !
+	g_¡r
+)
+
+22 ià(!
+	g_¡r
+)
+
+24 ià(!
+	gÙh”
+)
+
+26  -
+¡ºcmp_P
+(
+Ùh”
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+), 
+_size
+);
+
+29 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+30  
+com·»
+(
+ex³ùed
+) == 0;
+
+33 
+boÞ
+ 
+isNuÎ
+() const {
+
+34  !
+	g_¡r
+;
+
+37 
+cÝyTo
+(* 
+p
+, 
+size_t
+ 
+n
+) const {
+
+38 
+memýy_P
+(
+p
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+), 
+n
+);
+
+41 
+size_t
+ 
+size
+() const {
+
+42  
+	g_size
+;
+
+45 
+FÏshSŒšgI‹¿tÜ
+ 
+begš
+() const {
+
+46  
+FÏshSŒšgI‹¿tÜ
+(
+_¡r
+);
+
+49 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+51 
+	g´iv©e
+:
+
+52 cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+_¡r
+;
+
+53 
+size_t
+ 
+	g_size
+;
+
+56 
+šlše
+ 
+SizedFÏshSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+,
+
+57 
+size_t
+ 
+sz
+) {
+
+58  
+	`SizedFÏshSŒšgAd­‹r
+(
+¡r
+, 
+sz
+);
+
+59 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+	~<¡ršg.h
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 þas 
+	cSizedRamSŒšgAd­‹r
+ {
+
+16 
+	gpublic
+:
+
+17 
+SizedRamSŒšgAd­‹r
+(cÚ¡ * 
+¡r
+, 
+size_t
+ 
+n
+è: 
+_¡r
+(¡r), 
+_size
+(n) {}
+
+19 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+20  
+§ã_¡ºcmp
+(
+_¡r
+, 
+Ùh”
+, 
+_size
+);
+
+23 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+24  
+com·»
+(
+ex³ùed
+) == 0;
+
+27 
+boÞ
+ 
+isNuÎ
+() const {
+
+28  !
+	g_¡r
+;
+
+31 
+cÝyTo
+(* 
+p
+, 
+size_t
+ 
+n
+) const {
+
+32 
+memýy
+(
+p
+, 
+_¡r
+, 
+n
+);
+
+35 
+size_t
+ 
+size
+() const {
+
+36  
+	g_size
+;
+
+39 cÚ¡ * 
+begš
+() const {
+
+40  
+	g_¡r
+;
+
+43 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+45 
+	g´iv©e
+:
+
+46 cÚ¡ * 
+_¡r
+;
+
+47 
+size_t
+ 
+	g_size
+;
+
+50 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+51 
+šlše
+ 
+SizedRamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+TCh¬
+* 
+¡r
+, 
+size_t
+ 
+size
+) {
+
+52  
+	`SizedRamSŒšgAd­‹r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+¡r
+), 
+size
+);
+
+53 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StdStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+	~<¡ršg
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+16 þas 
+	cStdSŒšgAd­‹r
+ {
+
+17 
+	gpublic
+:
+
+18 
+StdSŒšgAd­‹r
+(cÚ¡ 
+TSŒšg
+& 
+¡r
+è: 
+_¡r
+(&str) {}
+
+20 
+cÝyTo
+(* 
+p
+, 
+size_t
+ 
+n
+) const {
+
+21 
+memýy
+(
+p
+, 
+_¡r
+->
+c_¡r
+(), 
+n
+);
+
+24 
+boÞ
+ 
+isNuÎ
+() const {
+
+25  
+	gçl£
+;
+
+28 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+29 ià(!
+	gÙh”
+)
+
+31  
+	g_¡r
+->
+com·»
+(
+Ùh”
+);
+
+34 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+35 ià(!
+	gex³ùed
+)
+
+36  
+	gçl£
+;
+
+37  *
+	g_¡r
+ =ð
+ex³ùed
+;
+
+40 
+size_t
+ 
+size
+() const {
+
+41  
+	g_¡r
+->
+size
+();
+
+44 cÚ¡ * 
+begš
+() const {
+
+45  
+	g_¡r
+->
+c_¡r
+();
+
+48 
+	g¡Üage_pÞic›s
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+50 
+	g´iv©e
+:
+
+51 cÚ¡ 
+TSŒšg
+* 
+_¡r
+;
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬T¿™s
+,�y³Çm�
+	gTAÎoÿtÜ
+>
+
+55 
+	gIsSŒšg
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> > : 
+Œue_ty³
+ {
+
+58 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬T¿™s
+,�y³Çm�
+	gTAÎoÿtÜ
+>
+
+59 
+šlše
+ 
+	gStdSŒšgAd­‹r
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >
+
+60 
+ad­tSŒšg
+(cÚ¡ 
+¡d
+::
+basic_¡ršg
+<, 
+TCh¬T¿™s
+, 
+TAÎoÿtÜ
+>& 
+¡r
+) {
+
+61  
+	gStdSŒšgAd­‹r
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >(
+
+62 
+	g¡r
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+Çme¥aû
+ 
+	g¡Üage_pÞic›s
+ {
+
+10 
+	s¡Üe_by_add»ss
+ {};
+
+11 
+	s¡Üe_by_cÝy
+ {};
+
+12 
+	sdecide_©_ruÁime
+ {};
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/String.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/CÚ¡RamSŒšgAd­‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 þas 
+	cSŒšg
+ {
+
+14 
+	gpublic
+:
+
+15 
+SŒšg
+(è: 
+_d©a
+(0), 
+_isS�tic
+(
+Œue
+) {}
+
+16 
+SŒšg
+(cÚ¡ * 
+d©a
+, 
+boÞ
+ 
+isS�ticD©a
+ = 
+Œue
+)
+
+17 : 
+_d©a
+(
+d©a
+), 
+_isS�tic
+(
+isS�ticD©a
+) {}
+
+19 cÚ¡ * 
+c_¡r
+() const {
+
+20  
+	g_d©a
+;
+
+23 
+boÞ
+ 
+isNuÎ
+() const {
+
+24  !
+	g_d©a
+;
+
+27 
+boÞ
+ 
+isS�tic
+() const {
+
+28  
+	g_isS�tic
+;
+
+31 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+SŒšg
+ 
+lhs
+, SŒšg 
+	grhs
+) {
+
+32 ià(
+	glhs
+.
+	g_d©a
+ =ð
+rhs
+.
+_d©a
+)
+
+33  
+Œue
+;
+
+34 ià(!
+	glhs
+.
+	g_d©a
+)
+
+35  
+	gçl£
+;
+
+36 ià(!
+	grhs
+.
+	g_d©a
+)
+
+37  
+	gçl£
+;
+
+38  
+¡rcmp
+(
+lhs
+.
+_d©a
+, 
+rhs
+._data) == 0;
+
+41 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+SŒšg
+ 
+lhs
+, SŒšg 
+	grhs
+) {
+
+42 ià(
+	glhs
+.
+	g_d©a
+ =ð
+rhs
+.
+_d©a
+)
+
+43  
+çl£
+;
+
+44 ià(!
+	glhs
+.
+	g_d©a
+)
+
+45  
+	gŒue
+;
+
+46 ià(!
+	grhs
+.
+	g_d©a
+)
+
+47  
+	gŒue
+;
+
+48  
+¡rcmp
+(
+lhs
+.
+_d©a
+, 
+rhs
+._data) != 0;
+
+51 
+	g´iv©e
+:
+
+52 cÚ¡ * 
+_d©a
+;
+
+53 
+boÞ
+ 
+	g_isS�tic
+;
+
+56 þas 
+	cSŒšgAd­‹r
+ : 
+public
+ 
+RamSŒšgAd­‹r
+ {
+
+57 
+public
+:
+
+58 
+SŒšgAd­‹r
+(cÚ¡ 
+SŒšg
+& 
+¡r
+)
+
+59 : 
+RamSŒšgAd­‹r
+(
+¡r
+.
+c_¡r
+()), 
+_isS�tic
+(¡r.
+isS�tic
+()) {}
+
+61 
+boÞ
+ 
+isS�tic
+() const {
+
+62  
+	g_isS�tic
+;
+
+65 
+	g¡Üage_pÞic›s
+::
+	tdecide_©_ruÁime
+ 
+	t¡Üage_pÞicy
+;
+
+67 
+	g´iv©e
+:
+
+68 
+boÞ
+ 
+_isS�tic
+;
+
+71 
+	g‹m¶©e
+ <>
+
+72 
+	gIsSŒšg
+<
+	gSŒšg
+> : 
+Œue_ty³
+ {};
+
+74 
+šlše
+ 
+SŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+SŒšg
+& 
+¡r
+) {
+
+75  
+	`SŒšgAd­‹r
+(
+¡r
+);
+
+76 
+	}
+}
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/CÚ¡RamSŒšgAd­‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/RamSŒšgAd­‹r.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/SizedRamSŒšgAd­‹r.hµ
+>
+
+11 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+12 
+	~<ArdušoJsÚ/SŒšgs/StdSŒšgAd­‹r.hµ
+>
+
+15 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+16 
+	~<ArdušoJsÚ/SŒšgs/ArdušoSŒšgAd­‹r.hµ
+>
+
+19 #ià
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+20 
+	~<ArdušoJsÚ/SŒšgs/FÏshSŒšgAd­‹r.hµ
+>
+
+21 
+	~<ArdušoJsÚ/SŒšgs/SizedFÏshSŒšgAd­‹r.hµ
+>
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+13 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+14 ià(!
+	gv¬
+)
+
+15  
+	gçl£
+;
+
+16  
+¦ÙS‘Key
+(
+v¬
+, 
+key
+, 
+poÞ
+, 
+ty³Çme
+ 
+TAd­‹dSŒšg
+::
+¡Üage_pÞicy
+());
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+20 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+* 
+poÞ
+,
+
+21 
+¡Üage_pÞic›s
+::
+decide_©_ruÁime
+) {
+
+22 ià(
+key
+.
+isS�tic
+()) {
+
+23  
+¦ÙS‘Key
+(
+v¬
+, 
+key
+, 
+poÞ
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+());
+
+25  
+¦ÙS‘Key
+(
+v¬
+, 
+key
+, 
+poÞ
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+());
+
+29 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+30 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+*,
+
+31 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+) {
+
+32 
+ARDUINOJSON_ASSERT
+(
+v¬
+);
+
+33 
+	gv¬
+->
+£tKey
+(
+key
+.
+d©a
+(), 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+());
+
+34  
+	gŒue
+;
+
+37 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+38 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+* 
+poÞ
+,
+
+39 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+) {
+
+40 cÚ¡ * 
+dup
+ = 
+poÞ
+->
+§veSŒšg
+(
+key
+);
+
+41 ià(!
+	gdup
+)
+
+42  
+	gçl£
+;
+
+43 
+ARDUINOJSON_ASSERT
+(
+v¬
+);
+
+44 
+	gv¬
+->
+£tKey
+(
+dup
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+());
+
+45  
+	gŒue
+;
+
+48 
+šlše
+ 
+size_t
+ 
+¦ÙSize
+(cÚ¡ 
+V¬ŸÁSlÙ
+* 
+v¬
+) {
+
+49 
+size_t
+ 
+	gn
+ = 0;
+
+50 
+	gv¬
+) {
+
+51 
+	gn
+++;
+
+52 
+	gv¬
+ = 
+v¬
+->
+Ãxt
+();
+
+54  
+	gn
+;
+
+57 
+šlše
+ 
+V¬ŸÁD©a
+* 
+¦ÙD©a
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+58  
+	g»š‹½»t_ÿ¡
+<
+	gV¬ŸÁD©a
+*>(
+	g¦Ù
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/IsWr™—bËSŒšg.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+þass
+ 
+	gA¼ayRef
+;
+
+13 
+þass
+ 
+	gA¼ayCÚ¡Ref
+;
+
+14 
+þass
+ 
+	gObjeùRef
+;
+
+15 
+þass
+ 
+	gObjeùCÚ¡Ref
+;
+
+16 
+þass
+ 
+	gV¬ŸÁRef
+;
+
+17 
+þass
+ 
+	gV¬ŸÁCÚ¡Ref
+;
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+22 
+	sV¬ŸÁAs
+ {
+
+23 
+T
+ 
+	tty³
+;
+
+26 
+	g‹m¶©e
+ <>
+
+27 
+	gV¬ŸÁAs
+<*> {
+
+28 cÚ¡ * 
+	tty³
+;
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+34 
+	sV¬ŸÁCÚ¡As
+ {
+
+35 
+ty³Çme
+ 
+	tV¬ŸÁAs
+<
+	tT
+>::
+	tty³
+�ype;
+
+38 
+	g‹m¶©e
+ <>
+
+39 
+	gV¬ŸÁCÚ¡As
+<
+	gV¬ŸÁRef
+> {
+
+40 
+V¬ŸÁCÚ¡Ref
+ 
+	tty³
+;
+
+43 
+	g‹m¶©e
+ <>
+
+44 
+	gV¬ŸÁCÚ¡As
+<
+	gObjeùRef
+> {
+
+45 
+ObjeùCÚ¡Ref
+ 
+	tty³
+;
+
+48 
+	g‹m¶©e
+ <>
+
+49 
+	gV¬ŸÁCÚ¡As
+<
+	gA¼ayRef
+> {
+
+50 
+A¼ayCÚ¡Ref
+ 
+	tty³
+;
+
+55 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+56 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gT
+>::
+v®ue
+ && !
+is_§me
+<
+boÞ
+, T>::value,
+
+57 
+	gT
+>::
+ty³
+
+
+58 
+v¬ŸÁAs
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+) {
+
+59 
+ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED
+(
+T
+);
+
+60  
+	gd©a
+ !ð0 ? 
+d©a
+->
+asIÁeg¿l
+<
+T
+>() : T(0);
+
+63 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+64 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_’um
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+65 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+) {
+
+66  
+d©a
+ !ð0 ? 
+¡©ic_ÿ¡
+<
+T
+>(d©a->
+asIÁeg¿l
+<>()) : T();
+
+69 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+70 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gboÞ
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+71 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+) {
+
+72  
+d©a
+ !ð0 ? d©a->
+asBoÞ—n
+(è: 
+çl£
+;
+
+75 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+76 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+77 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+) {
+
+78  
+d©a
+ !ð0 ? d©a->
+asFlßt
+<
+T
+>() : T(0);
+
+81 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+82 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, cÚ¡ *>::
+v®ue
+ ||
+
+83 
+is_§me
+<
+T
+, *>::
+v®ue
+,
+
+84 cÚ¡ *>::
+ty³
+
+
+85 
+v¬ŸÁAs
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+) {
+
+86  
+d©a
+ !ð0 ? d©a->
+asSŒšg
+() : 0;
+
+89 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+90 
+T
+ 
+v¬ŸÁAs
+(
+V¬ŸÁD©a
+* 
+d©a
+, 
+MemÜyPoÞ
+*) {
+
+94  
+	gv¬ŸÁAs
+<
+	gT
+>(
+	gd©a
+);
+
+97 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+98 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gA¼ayCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+99 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+);
+
+101 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+102 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gObjeùCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+103 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+);
+
+105 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+106 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gV¬ŸÁCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+
+
+107 
+v¬ŸÁAs
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+);
+
+109 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+110 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsWr™—bËSŒšg
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+111 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/IsWr™—bËSŒšg.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁFunùiÚs.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gA¼ayCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+15 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+16  
+A¼ayCÚ¡Ref
+(
+v¬ŸÁAsA¼ay
+(
+_d©a
+));
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+20 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gObjeùCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+21 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+22  
+ObjeùCÚ¡Ref
+(
+v¬ŸÁAsObjeù
+(
+_d©a
+));
+
+25 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+26 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gV¬ŸÁCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+
+
+27 
+v¬ŸÁAs
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+28  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+);
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+32 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsWr™—bËSŒšg
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+33 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+34 cÚ¡ * 
+c¡r
+ = 
+_d©a
+ !ð0 ? _d©a->
+asSŒšg
+() : 0;
+
+35 ià(
+	gc¡r
+)
+
+36  
+T
+(
+c¡r
+);
+
+37 
+T
+ 
+	gs
+;
+
+38 
+£rŸlizeJsÚ
+(
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+), 
+s
+);
+
+39  
+	gs
+;
+
+42 
+	g‹m¶©e
+ <>
+
+43 
+šlše
+ 
+A¼ayRef
+ 
+	gv¬ŸÁAs
+<
+	gA¼ayRef
+>(
+V¬ŸÁD©a
+* 
+	gd©a
+, 
+MemÜyPoÞ
+* 
+	gpoÞ
+) {
+
+44  
+A¼ayRef
+(
+poÞ
+, 
+d©a
+ !ð0 ? d©a->
+asA¼ay
+() : 0);
+
+47 
+	g‹m¶©e
+ <>
+
+48 
+šlše
+ 
+ObjeùRef
+ 
+	gv¬ŸÁAs
+<
+	gObjeùRef
+>(
+V¬ŸÁD©a
+* 
+	gd©a
+, 
+MemÜyPoÞ
+* 
+	gpoÞ
+) {
+
+49  
+ObjeùRef
+(
+poÞ
+, 
+d©a
+ !ð0 ? d©a->
+asObjeù
+() : 0);
+
+52 
+	g‹m¶©e
+ <>
+
+53 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gv¬ŸÁAs
+<
+	gV¬ŸÁRef
+>(
+V¬ŸÁD©a
+* 
+	gd©a
+, 
+MemÜyPoÞ
+* 
+	gpoÞ
+) {
+
+54  
+V¬ŸÁRef
+(
+poÞ
+, 
+d©a
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Misc/Vis™abË.hµ
+>
+
+9 
+	~<ArdušoJsÚ/Numb”s/¬™hm‘icCom·».hµ
+>
+
+10 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+þass
+ 
+	gCÞËùiÚD©a
+;
+
+17 
+	gCom·»rBa£
+ : 
+Vis™Ü
+<
+Com·»ResuÉ
+> {
+
+18 
+Com·»ResuÉ
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {
+
+19  
+COMPARE_RESULT_DIFFER
+;
+
+21 
+Com·»ResuÉ
+ 
+vis™BoÞ—n
+(
+boÞ
+) {
+
+22  
+	gCOMPARE_RESULT_DIFFER
+;
+
+24 
+Com·»ResuÉ
+ 
+vis™Flßt
+(
+Flßt
+) {
+
+25  
+	gCOMPARE_RESULT_DIFFER
+;
+
+27 
+Com·»ResuÉ
+ 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+) {
+
+28  
+	gCOMPARE_RESULT_DIFFER
+;
+
+30 
+Com·»ResuÉ
+ 
+vis™NuÎ
+() {
+
+31  
+	gCOMPARE_RESULT_DIFFER
+;
+
+33 
+Com·»ResuÉ
+ 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {
+
+34  
+	gCOMPARE_RESULT_DIFFER
+;
+
+36 
+Com·»ResuÉ
+ 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+) {
+
+37  
+	gCOMPARE_RESULT_DIFFER
+;
+
+39 
+Com·»ResuÉ
+ 
+vis™RawJsÚ
+(cÚ¡ *, 
+size_t
+) {
+
+40  
+	gCOMPARE_RESULT_DIFFER
+;
+
+42 
+Com·»ResuÉ
+ 
+vis™SŒšg
+(const *) {
+
+43  
+	gCOMPARE_RESULT_DIFFER
+;
+
+47 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gEÇbË
+ = >
+
+48 
+Com·»r
+;
+
+50 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+51 
+	gCom·»r
+<
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<T>::
+v®ue
+>::
+ty³
+>
+
+52 : 
+Com·»rBa£
+ {
+
+53 
+T
+ 
+rhs
+;
+
+55 
+ex¶ic™
+ 
+Com·»r
+(
+T
+ 
+v®ue
+è: 
+rhs
+(value) {}
+
+57 
+Com·»ResuÉ
+ 
+vis™SŒšg
+(cÚ¡ *
+lhs
+) {
+
+58 
+i
+ = 
+ad­tSŒšg
+(
+rhs
+).
+com·»
+(
+lhs
+);
+
+59 ià(
+	gi
+ < 0)
+
+60  
+	gCOMPARE_RESULT_GREATER
+;
+
+61 ià(
+	gi
+ > 0)
+
+62  
+	gCOMPARE_RESULT_LESS
+;
+
+64  
+	gCOMPARE_RESULT_EQUAL
+;
+
+67 
+Com·»ResuÉ
+ 
+vis™NuÎ
+() {
+
+68 ià(
+ad­tSŒšg
+(
+rhs
+).
+isNuÎ
+())
+
+69  
+	gCOMPARE_RESULT_EQUAL
+;
+
+71  
+	gCOMPARE_RESULT_DIFFER
+;
+
+75 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+76 
+	gCom·»r
+<
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<T>::
+v®ue
+ ||
+
+77 
+is_æßtšg_pošt
+<
+T
+>::
+v®ue
+>::
+ty³
+>
+
+78 : 
+Com·»rBa£
+ {
+
+79 
+T
+ 
+rhs
+;
+
+81 
+ex¶ic™
+ 
+Com·»r
+(
+T
+ 
+v®ue
+è: 
+rhs
+(value) {}
+
+83 
+Com·»ResuÉ
+ 
+vis™Flßt
+(
+Flßt
+ 
+lhs
+) {
+
+84  
+¬™hm‘icCom·»
+(
+lhs
+, 
+rhs
+);
+
+87 
+Com·»ResuÉ
+ 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+lhs
+) {
+
+88  
+¬™hm‘icCom·»Neg©eLeá
+(
+lhs
+, 
+rhs
+);
+
+91 
+Com·»ResuÉ
+ 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+ 
+lhs
+) {
+
+92  
+¬™hm‘icCom·»
+(
+lhs
+, 
+rhs
+);
+
+95 
+Com·»ResuÉ
+ 
+vis™BoÞ—n
+(
+boÞ
+ 
+lhs
+) {
+
+96  
+vis™Pos™iveIÁeg”
+(
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+lhs
+));
+
+100 
+	gNuÎCom·»r
+ : 
+Com·»rBa£
+ {
+
+101 
+Com·»ResuÉ
+ 
+vis™NuÎ
+() {
+
+102  
+COMPARE_RESULT_EQUAL
+;
+
+106 #ià
+ARDUINOJSON_HAS_NULLPTR
+
+
+107 
+	g‹m¶©e
+ <>
+
+108 
+	gCom·»r
+<
+deþty³
+(
+nuÎ±r
+), > : 
+NuÎCom·»r
+ {
+
+109 
+ex¶ic™
+ 
+Com·»r
+(
+deþty³
+(
+nuÎ±r
+)è: 
+NuÎCom·»r
+() {}
+
+113 
+	gA¼ayCom·»r
+ : 
+Com·»rBa£
+ {
+
+114 cÚ¡ 
+CÞËùiÚD©a
+ *
+_rhs
+;
+
+116 
+ex¶ic™
+ 
+A¼ayCom·»r
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+rhs
+è: 
+_rhs
+(&rhs) {}
+
+118 
+Com·»ResuÉ
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+lhs
+) {
+
+119 ià(
+lhs
+.
+equ®sA¼ay
+(*
+_rhs
+))
+
+120  
+COMPARE_RESULT_EQUAL
+;
+
+122  
+	gCOMPARE_RESULT_DIFFER
+;
+
+126 
+	gNeg©iveIÁeg”Com·»r
+ : 
+Com·»rBa£
+ {
+
+127 
+UIÁ
+ 
+_rhs
+;
+
+129 
+ex¶ic™
+ 
+Neg©iveIÁeg”Com·»r
+(
+UIÁ
+ 
+rhs
+è: 
+_rhs
+(rhs) {}
+
+131 
+Com·»ResuÉ
+ 
+vis™Flßt
+(
+Flßt
+ 
+lhs
+) {
+
+132  
+¬™hm‘icCom·»Neg©eRight
+(
+lhs
+, 
+_rhs
+);
+
+135 
+Com·»ResuÉ
+ 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+lhs
+) {
+
+136  
+¬™hm‘icCom·»
+(
+_rhs
+, 
+lhs
+);
+
+139 
+Com·»ResuÉ
+ 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+) {
+
+140  
+	gCOMPARE_RESULT_GREATER
+;
+
+143 
+Com·»ResuÉ
+ 
+vis™BoÞ—n
+(
+boÞ
+) {
+
+144  
+	gCOMPARE_RESULT_GREATER
+;
+
+148 
+	gObjeùCom·»r
+ : 
+Com·»rBa£
+ {
+
+149 cÚ¡ 
+CÞËùiÚD©a
+ *
+_rhs
+;
+
+151 
+ex¶ic™
+ 
+ObjeùCom·»r
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+rhs
+è: 
+_rhs
+(&rhs) {}
+
+153 
+Com·»ResuÉ
+ 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+lhs
+) {
+
+154 ià(
+lhs
+.
+equ®sObjeù
+(*
+_rhs
+))
+
+155  
+COMPARE_RESULT_EQUAL
+;
+
+157  
+	gCOMPARE_RESULT_DIFFER
+;
+
+161 
+	gRawCom·»r
+ : 
+Com·»rBa£
+ {
+
+162 cÚ¡ *
+_rhsD©a
+;
+
+163 
+size_t
+ 
+	g_rhsSize
+;
+
+165 
+ex¶ic™
+ 
+RawCom·»r
+(cÚ¡ *
+rhsD©a
+, 
+size_t
+ 
+rhsSize
+)
+
+166 : 
+_rhsD©a
+(
+rhsD©a
+), 
+_rhsSize
+(
+rhsSize
+) {}
+
+168 
+Com·»ResuÉ
+ 
+vis™RawJsÚ
+(cÚ¡ *
+lhsD©a
+, 
+size_t
+ 
+lhsSize
+) {
+
+169 
+size_t
+ 
+	gsize
+ = 
+_rhsSize
+ < 
+lhsSize
+ ? _rhsSize :†hsSize;
+
+170 
+	gn
+ = 
+memcmp
+(
+lhsD©a
+, 
+_rhsD©a
+, 
+size
+);
+
+171 ià(
+	gn
+ < 0)
+
+172  
+	gCOMPARE_RESULT_LESS
+;
+
+173 ià(
+	gn
+ > 0)
+
+174  
+	gCOMPARE_RESULT_GREATER
+;
+
+176  
+	gCOMPARE_RESULT_EQUAL
+;
+
+180 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+181 
+	gCom·»r
+<
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsVis™abË
+<T>::
+v®ue
+>::
+ty³
+>
+
+182 : 
+Com·»rBa£
+ {
+
+183 
+T
+ 
+rhs
+;
+
+185 
+ex¶ic™
+ 
+Com·»r
+(
+T
+ 
+v®ue
+è: 
+rhs
+(value) {}
+
+187 
+Com·»ResuÉ
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+lhs
+) {
+
+188 
+A¼ayCom·»r
+ 
+com·»r
+(
+lhs
+);
+
+189  
+acû±
+(
+com·»r
+);
+
+192 
+Com·»ResuÉ
+ 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+lhs
+) {
+
+193 
+ObjeùCom·»r
+ 
+com·»r
+(
+lhs
+);
+
+194  
+acû±
+(
+com·»r
+);
+
+197 
+Com·»ResuÉ
+ 
+vis™Flßt
+(
+Flßt
+ 
+lhs
+) {
+
+198 
+	gCom·»r
+<
+	gFlßt
+> 
+com·»r
+(
+lhs
+);
+
+199  
+acû±
+(
+com·»r
+);
+
+202 
+Com·»ResuÉ
+ 
+vis™SŒšg
+(cÚ¡ *
+lhs
+) {
+
+203 
+	gCom·»r
+<cÚ¡ *> 
+com·»r
+(
+lhs
+);
+
+204  
+acû±
+(
+com·»r
+);
+
+207 
+Com·»ResuÉ
+ 
+vis™RawJsÚ
+(cÚ¡ *
+lhsD©a
+, 
+size_t
+ 
+lhsSize
+) {
+
+208 
+RawCom·»r
+ 
+com·»r
+(
+lhsD©a
+, 
+lhsSize
+);
+
+209  
+acû±
+(
+com·»r
+);
+
+212 
+Com·»ResuÉ
+ 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+lhs
+) {
+
+213 
+Neg©iveIÁeg”Com·»r
+ 
+com·»r
+(
+lhs
+);
+
+214  
+acû±
+(
+com·»r
+);
+
+217 
+Com·»ResuÉ
+ 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+ 
+lhs
+) {
+
+218 
+	gCom·»r
+<
+	gUIÁ
+> 
+com·»r
+(
+lhs
+);
+
+219  
+acû±
+(
+com·»r
+);
+
+222 
+Com·»ResuÉ
+ 
+vis™BoÞ—n
+(
+boÞ
+ 
+lhs
+) {
+
+223 
+	gCom·»r
+<
+	gboÞ
+> 
+com·»r
+(
+lhs
+);
+
+224  
+acû±
+(
+com·»r
+);
+
+227 
+Com·»ResuÉ
+ 
+vis™NuÎ
+() {
+
+228 
+NuÎCom·»r
+ 
+	gcom·»r
+;
+
+229  
+acû±
+(
+com·»r
+);
+
+232 
+	g´iv©e
+:
+
+233 
+‹m¶©e
+ <
+ty³Çme
+ 
+TCom·»r
+>
+
+234 
+Com·»ResuÉ
+ 
+acû±
+(
+TCom·»r
+ &
+com·»r
+) {
+
+235 
+Com·»ResuÉ
+ 
+»v”£dResuÉ
+ = 
+rhs
+.
+acû±
+(
+com·»r
+);
+
+236 
+	g»v”£dResuÉ
+) {
+
+237 
+	gCOMPARE_RESULT_GREATER
+:
+
+238  
+COMPARE_RESULT_LESS
+;
+
+239 
+	gCOMPARE_RESULT_LESS
+:
+
+240  
+COMPARE_RESULT_GREATER
+;
+
+242  
+»v”£dResuÉ
+;
+
+247 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+248 
+Com·»ResuÉ
+ 
+com·»
+(cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+) {
+
+249 
+	gCom·»r
+<
+	gT2
+> 
+com·»r
+(
+rhs
+);
+
+250  
+	glhs
+.
+acû±
+(
+com·»r
+);
+
+253 
+šlše
+ 
+v¬ŸÁCom·»
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+a
+, cÚ¡ V¬ŸÁD©¨*
+b
+) {
+
+254  
+com·»
+(
+V¬ŸÁCÚ¡Ref
+(
+a
+), V¬ŸÁCÚ¡Ref(
+b
+));
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+9 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+10 
+	~<ArdušoJsÚ/Numb”s/Flßt.hµ
+>
+
+11 
+	~<ArdušoJsÚ/Numb”s/IÁeg”.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	gVALUE_MASK
+ = 0x7F,
+
+19 
+	gVALUE_IS_OWNED
+ = 0x01,
+
+20 
+	gVALUE_IS_NULL
+ = 0,
+
+21 
+	gVALUE_IS_LINKED_RAW
+ = 0x02,
+
+22 
+	gVALUE_IS_OWNED_RAW
+ = 0x03,
+
+23 
+	gVALUE_IS_LINKED_STRING
+ = 0x04,
+
+24 
+	gVALUE_IS_OWNED_STRING
+ = 0x05,
+
+27 
+	gVALUE_IS_BOOLEAN
+ = 0x06,
+
+28 
+	gVALUE_IS_POSITIVE_INTEGER
+ = 0x08,
+
+29 
+	gVALUE_IS_NEGATIVE_INTEGER
+ = 0x0A,
+
+30 
+	gVALUE_IS_FLOAT
+ = 0x0C,
+
+32 
+	gCOLLECTION_MASK
+ = 0x60,
+
+33 
+	gVALUE_IS_OBJECT
+ = 0x20,
+
+34 
+	gVALUE_IS_ARRAY
+ = 0x40,
+
+36 
+	gKEY_IS_OWNED
+ = 0x80
+
+39 
+	sRawD©a
+ {
+
+40 cÚ¡ *
+	gd©a
+;
+
+41 
+size_t
+ 
+	gsize
+;
+
+44 
+	uV¬ŸÁCÚ‹Á
+ {
+
+45 
+Flßt
+ 
+	gasFlßt
+;
+
+46 
+UIÁ
+ 
+	gasIÁeg”
+;
+
+47 
+CÞËùiÚD©a
+ 
+	gasCÞËùiÚ
+;
+
+48 cÚ¡ *
+	gasSŒšg
+;
+
+50 cÚ¡ *
+	gd©a
+;
+
+51 
+size_t
+ 
+	gsize
+;
+
+52 } 
+	gasRaw
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Misc/S”ŸlizedV®ue.hµ
+>
+
+9 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/RamSŒšgAd­‹r.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁCÚ‹Á.hµ
+>
+
+15 #ià
+defšed
+(
+__GNUC__
+)
+
+16 #ià
+__GNUC__
+ >= 7
+
+17 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+18 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wmaybe-uninitialized"
+
+19 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wuninitialized"
+
+23 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+25 þas 
+	cV¬ŸÁD©a
+ {
+
+26 
+V¬ŸÁCÚ‹Á
+ 
+	g_cÚ‹Á
+;
+
+27 
+ušt8_t
+ 
+	g_æags
+;
+
+29 
+	gpublic
+:
+
+35 
+š™
+() {
+
+36 
+_æags
+ = 0;
+
+39 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+40 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(
+TVis™Ü
+ &
+vis™Ü
+) const {
+
+41 
+ty³
+()) {
+
+42 
+VALUE_IS_FLOAT
+:
+
+43  
+vis™Ü
+.
+vis™Flßt
+(
+_cÚ‹Á
+.
+asFlßt
+);
+
+45 
+	gVALUE_IS_ARRAY
+:
+
+46  
+vis™Ü
+.
+vis™A¼ay
+(
+_cÚ‹Á
+.
+asCÞËùiÚ
+);
+
+48 
+	gVALUE_IS_OBJECT
+:
+
+49  
+vis™Ü
+.
+vis™Objeù
+(
+_cÚ‹Á
+.
+asCÞËùiÚ
+);
+
+51 
+	gVALUE_IS_LINKED_STRING
+:
+
+52 
+VALUE_IS_OWNED_STRING
+:
+
+53  
+vis™Ü
+.
+vis™SŒšg
+(
+_cÚ‹Á
+.
+asSŒšg
+);
+
+55 
+	gVALUE_IS_OWNED_RAW
+:
+
+56 
+VALUE_IS_LINKED_RAW
+:
+
+57  
+vis™Ü
+.
+vis™RawJsÚ
+(
+_cÚ‹Á
+.
+asRaw
+.
+d©a
+, _cÚ‹Á.asRaw.
+size
+);
+
+59 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+60  
+vis™Ü
+.
+vis™Neg©iveIÁeg”
+(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+62 
+	gVALUE_IS_POSITIVE_INTEGER
+:
+
+63  
+vis™Ü
+.
+vis™Pos™iveIÁeg”
+(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+65 
+	gVALUE_IS_BOOLEAN
+:
+
+66  
+vis™Ü
+.
+vis™BoÞ—n
+(
+_cÚ‹Á
+.
+asIÁeg”
+ != 0);
+
+69  
+vis™Ü
+.
+vis™NuÎ
+();
+
+73 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+74 
+T
+ 
+asIÁeg¿l
+() const;
+
+76 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+77 
+T
+ 
+asFlßt
+() const;
+
+79 cÚ¡ *
+asSŒšg
+() const;
+
+81 
+boÞ
+ 
+asBoÞ—n
+() const;
+
+83 
+CÞËùiÚD©a
+ *
+asA¼ay
+() {
+
+84  
+isA¼ay
+(è? &
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+ : 0;
+
+87 cÚ¡ 
+CÞËùiÚD©a
+ *
+asA¼ay
+() const {
+
+88  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁD©a
+ *>(
+	gthis
+)->
+asA¼ay
+();
+
+91 
+CÞËùiÚD©a
+ *
+asObjeù
+() {
+
+92  
+isObjeù
+(è? &
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+ : 0;
+
+95 cÚ¡ 
+CÞËùiÚD©a
+ *
+asObjeù
+() const {
+
+96  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁD©a
+ *>(
+	gthis
+)->
+asObjeù
+();
+
+99 
+boÞ
+ 
+cÝyFrom
+(cÚ¡ 
+V¬ŸÁD©a
+ &
+¤c
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+100 
+	g¤c
+.
+ty³
+()) {
+
+101 
+	gVALUE_IS_ARRAY
+:
+
+102  
+toA¼ay
+().
+cÝyFrom
+(
+¤c
+.
+_cÚ‹Á
+.
+asCÞËùiÚ
+, 
+poÞ
+);
+
+103 
+	gVALUE_IS_OBJECT
+:
+
+104  
+toObjeù
+().
+cÝyFrom
+(
+¤c
+.
+_cÚ‹Á
+.
+asCÞËùiÚ
+, 
+poÞ
+);
+
+105 
+	gVALUE_IS_OWNED_STRING
+:
+
+106  
+£tSŒšg
+(
+RamSŒšgAd­‹r
+(
+¤c
+.
+_cÚ‹Á
+.
+asSŒšg
+), 
+poÞ
+);
+
+107 
+	gVALUE_IS_OWNED_RAW
+:
+
+108  
+£tOwÃdRaw
+(
+
+109 
+£rŸlized
+(
+¤c
+.
+_cÚ‹Á
+.
+asRaw
+.
+d©a
+, src._cÚ‹Á.asRaw.
+size
+), 
+poÞ
+);
+
+111 
+£tTy³
+(
+¤c
+.
+ty³
+());
+
+112 
+	g_cÚ‹Á
+ = 
+¤c
+.
+_cÚ‹Á
+;
+
+113  
+	gŒue
+;
+
+117 
+boÞ
+ 
+isA¼ay
+() const {
+
+118  (
+	g_æags
+ & 
+	gVALUE_IS_ARRAY
+) != 0;
+
+121 
+boÞ
+ 
+isBoÞ—n
+() const {
+
+122  
+ty³
+(è=ð
+VALUE_IS_BOOLEAN
+;
+
+125 
+boÞ
+ 
+isCÞËùiÚ
+() const {
+
+126  (
+	g_æags
+ & 
+	gCOLLECTION_MASK
+) != 0;
+
+129 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+130 
+boÞ
+ 
+isIÁeg”
+() const {
+
+131 
+ty³
+()) {
+
+132 
+	gVALUE_IS_POSITIVE_INTEGER
+:
+
+133  
+ÿnStÜePos™iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+135 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+136  
+ÿnStÜeNeg©iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+139  
+çl£
+;
+
+143 
+boÞ
+ 
+isFlßt
+() const {
+
+144  
+ty³
+(è=ð
+VALUE_IS_FLOAT
+ ||�y³(è=ð
+VALUE_IS_POSITIVE_INTEGER
+ ||
+
+145 
+ty³
+(è=ð
+VALUE_IS_NEGATIVE_INTEGER
+;
+
+148 
+boÞ
+ 
+isSŒšg
+() const {
+
+149  
+ty³
+(è=ð
+VALUE_IS_LINKED_STRING
+ ||�y³(è=ð
+VALUE_IS_OWNED_STRING
+;
+
+152 
+boÞ
+ 
+isObjeù
+() const {
+
+153  (
+	g_æags
+ & 
+	gVALUE_IS_OBJECT
+) != 0;
+
+156 
+boÞ
+ 
+isNuÎ
+() const {
+
+157  
+ty³
+(è=ð
+VALUE_IS_NULL
+;
+
+160 
+boÞ
+ 
+isEnþo£d
+() const {
+
+161  !
+isFlßt
+();
+
+164 
+»move
+(
+size_t
+ 
+šdex
+) {
+
+165 ià(
+isA¼ay
+())
+
+166 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+»moveEËm’t
+(
+šdex
+);
+
+169 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+170 
+»move
+(
+TAd­‹dSŒšg
+ 
+key
+) {
+
+171 ià(
+isObjeù
+())
+
+172 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+»moveMemb”
+(
+key
+);
+
+175 
+£tBoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+176 
+£tTy³
+(
+VALUE_IS_BOOLEAN
+);
+
+177 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+);
+
+180 
+£tFlßt
+(
+Flßt
+ 
+v®ue
+) {
+
+181 
+£tTy³
+(
+VALUE_IS_FLOAT
+);
+
+182 
+	g_cÚ‹Á
+.
+	gasFlßt
+ = 
+v®ue
+;
+
+185 
+£tLškedRaw
+(
+S”ŸlizedV®ue
+<cÚ¡ *> 
+v®ue
+) {
+
+186 ià(
+	gv®ue
+.
+d©a
+()) {
+
+187 
+£tTy³
+(
+VALUE_IS_LINKED_RAW
+);
+
+188 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gd©a
+ = 
+v®ue
+.
+d©a
+();
+
+189 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gsize
+ = 
+v®ue
+.
+size
+();
+
+191 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+195 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+196 
+boÞ
+ 
+£tOwÃdRaw
+(
+S”ŸlizedV®ue
+<
+T
+> 
+v®ue
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+197 cÚ¡ *
+	gdup
+ = 
+poÞ
+->
+§veSŒšg
+(
+ad­tSŒšg
+(
+v®ue
+.
+d©a
+(), v®ue.
+size
+()));
+
+198 ià(
+	gdup
+) {
+
+199 
+£tTy³
+(
+VALUE_IS_OWNED_RAW
+);
+
+200 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gd©a
+ = 
+dup
+;
+
+201 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gsize
+ = 
+v®ue
+.
+size
+();
+
+202  
+	gŒue
+;
+
+204 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+205  
+	gçl£
+;
+
+209 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+210 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_unsigÃd
+<
+	gT
+>::
+v®ue
+>::
+ty³
+ 
+£tIÁeg”
+(
+T
+ value) {
+
+211 
+£tUnsigÃdIÁeg”
+(
+v®ue
+);
+
+214 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+215 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_sigÃd
+<
+	gT
+>::
+v®ue
+>::
+ty³
+ 
+£tIÁeg”
+(
+T
+ value) {
+
+216 
+£tSigÃdIÁeg”
+(
+v®ue
+);
+
+219 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+220 
+£tSigÃdIÁeg”
+(
+T
+ 
+v®ue
+) {
+
+221 ià(
+	gv®ue
+ >= 0) {
+
+222 
+£tPos™iveIÁeg”
+(
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+));
+
+224 
+£tNeg©iveIÁeg”
+(~
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+) + 1);
+
+228 
+£tUnsigÃdIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+229 
+£tTy³
+(
+VALUE_IS_POSITIVE_INTEGER
+);
+
+230 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+);
+
+233 
+£tPos™iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+234 
+£tTy³
+(
+VALUE_IS_POSITIVE_INTEGER
+);
+
+235 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+v®ue
+;
+
+238 
+£tNeg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+239 
+£tTy³
+(
+VALUE_IS_NEGATIVE_INTEGER
+);
+
+240 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+v®ue
+;
+
+243 
+£tNuÎ
+() {
+
+244 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+247 
+£tSŒšgPoš‹r
+(cÚ¡ *
+s
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+) {
+
+248 
+£tTy³
+(
+VALUE_IS_OWNED_STRING
+);
+
+249 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ = 
+s
+;
+
+252 
+£tSŒšgPoš‹r
+(cÚ¡ *
+s
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+) {
+
+253 
+£tTy³
+(
+VALUE_IS_LINKED_STRING
+);
+
+254 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ = 
+s
+;
+
+257 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+258 
+boÞ
+ 
+£tSŒšg
+(
+TAd­‹dSŒšg
+ 
+v®ue
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+259  
+£tSŒšg
+(
+v®ue
+, 
+poÞ
+, 
+ty³Çme
+ 
+TAd­‹dSŒšg
+::
+¡Üage_pÞicy
+());
+
+262 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+263 
+šlše
+ 
+boÞ
+ 
+£tSŒšg
+(
+TAd­‹dSŒšg
+ 
+v®ue
+, 
+MemÜyPoÞ
+ *
+poÞ
+,
+
+264 
+¡Üage_pÞic›s
+::
+decide_©_ruÁime
+) {
+
+265 ià(
+v®ue
+.
+isS�tic
+())
+
+266  
+£tSŒšg
+(
+v®ue
+, 
+poÞ
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+());
+
+268  
+£tSŒšg
+(
+v®ue
+, 
+poÞ
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+());
+
+271 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+272 
+šlše
+ 
+boÞ
+ 
+£tSŒšg
+(
+TAd­‹dSŒšg
+ 
+v®ue
+, 
+MemÜyPoÞ
+ *,
+
+273 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+) {
+
+274 ià(
+v®ue
+.
+isNuÎ
+())
+
+275 
+£tNuÎ
+();
+
+277 
+£tSŒšgPoš‹r
+(
+v®ue
+.
+d©a
+(), 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+());
+
+278  
+	gŒue
+;
+
+281 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+282 
+šlše
+ 
+boÞ
+ 
+£tSŒšg
+(
+TAd­‹dSŒšg
+ 
+v®ue
+, 
+MemÜyPoÞ
+ *
+poÞ
+,
+
+283 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+) {
+
+284 ià(
+v®ue
+.
+isNuÎ
+()) {
+
+285 
+£tNuÎ
+();
+
+286  
+	gŒue
+;
+
+288 cÚ¡ *
+	gcÝy
+ = 
+poÞ
+->
+§veSŒšg
+(
+v®ue
+);
+
+289 ià(!
+	gcÝy
+) {
+
+290 
+£tNuÎ
+();
+
+291  
+	gçl£
+;
+
+293 
+£tSŒšgPoš‹r
+(
+cÝy
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+());
+
+294  
+	gŒue
+;
+
+297 
+	gCÞËùiÚD©a
+ &
+toA¼ay
+() {
+
+298 
+£tTy³
+(
+VALUE_IS_ARRAY
+);
+
+299 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+þ—r
+();
+
+300  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+;
+
+303 
+	gCÞËùiÚD©a
+ &
+toObjeù
+() {
+
+304 
+£tTy³
+(
+VALUE_IS_OBJECT
+);
+
+305 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+þ—r
+();
+
+306  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+;
+
+309 
+size_t
+ 
+memÜyU§ge
+() const {
+
+310 
+ty³
+()) {
+
+311 
+	gVALUE_IS_OWNED_STRING
+:
+
+312  
+¡¾’
+(
+_cÚ‹Á
+.
+asSŒšg
+) + 1;
+
+313 
+	gVALUE_IS_OWNED_RAW
+:
+
+314  
+_cÚ‹Á
+.
+asRaw
+.
+size
+;
+
+315 
+	gVALUE_IS_OBJECT
+:
+
+316 
+VALUE_IS_ARRAY
+:
+
+317  
+_cÚ‹Á
+.
+asCÞËùiÚ
+.
+memÜyU§ge
+();
+
+323 
+size_t
+ 
+Ã¡šg
+() const {
+
+324  
+isCÞËùiÚ
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+Ã¡šg
+() : 0;
+
+327 
+size_t
+ 
+size
+() const {
+
+328  
+isCÞËùiÚ
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+size
+() : 0;
+
+331 
+V¬ŸÁD©a
+ *
+addEËm’t
+(
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+332 ià(
+isNuÎ
+())
+
+333 
+toA¼ay
+();
+
+334 ià(!
+isA¼ay
+())
+
+336  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+addEËm’t
+(
+poÞ
+);
+
+339 
+V¬ŸÁD©a
+ *
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+340  
+isA¼ay
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘EËm’t
+(
+šdex
+) : 0;
+
+343 
+V¬ŸÁD©a
+ *
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+344 ià(
+isNuÎ
+())
+
+345 
+toA¼ay
+();
+
+346 ià(!
+isA¼ay
+())
+
+348  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘OrAddEËm’t
+(
+šdex
+, 
+poÞ
+);
+
+351 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+352 
+V¬ŸÁD©a
+ *
+g‘Memb”
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+353  
+isObjeù
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘Memb”
+(
+key
+) : 0;
+
+356 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+357 
+V¬ŸÁD©a
+ *
+g‘OrAddMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+358 ià(
+isNuÎ
+())
+
+359 
+toObjeù
+();
+
+360 ià(!
+isObjeù
+())
+
+362  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘OrAddMemb”
+(
+key
+, 
+poÞ
+);
+
+365 
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,…Œdiff_ˆ
+v¬ŸÁDi¡ªû
+) {
+
+366 ià(
+	g_æags
+ & 
+	gVALUE_IS_OWNED
+)
+
+367 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ +ð
+¡ršgDi¡ªû
+;
+
+368 ià(
+	g_æags
+ & 
+	gCOLLECTION_MASK
+)
+
+369 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+movePoš‹rs
+(
+¡ršgDi¡ªû
+, 
+v¬ŸÁDi¡ªû
+);
+
+372 
+ušt8_t
+ 
+ty³
+() const {
+
+373  
+	g_æags
+ & 
+	gVALUE_MASK
+;
+
+376 
+	g´iv©e
+:
+
+377 
+£tTy³
+(
+ušt8_t
+ 
+t
+) {
+
+378 
+_æags
+ &ð
+KEY_IS_OWNED
+;
+
+379 
+	g_æags
+ |ð
+t
+;
+
+385 #ià
+defšed
+(
+__GNUC__
+)
+
+386 #ià
+__GNUC__
+ >= 8
+
+387 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+13 
+šlše
+ 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+v¬ŸÁAcû±
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+,
+
+14 
+TVis™Ü
+ &
+vis™Ü
+) {
+
+15 ià(
+	gv¬
+ != 0)
+
+16  
+v¬
+->
+acû±
+(
+vis™Ü
+);
+
+18  
+	gvis™Ü
+.
+vis™NuÎ
+();
+
+21 
+šlše
+ cÚ¡ 
+CÞËùiÚD©a
+ *
+v¬ŸÁAsA¼ay
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+22  
+	gv¬
+ !ð0 ? 
+v¬
+->
+asA¼ay
+() : 0;
+
+25 
+šlše
+ cÚ¡ 
+CÞËùiÚD©a
+ *
+v¬ŸÁAsObjeù
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+26  
+	gv¬
+ !ð0 ? 
+v¬
+->
+asObjeù
+() : 0;
+
+29 
+šlše
+ 
+CÞËùiÚD©a
+ *
+v¬ŸÁAsObjeù
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+30  
+	gv¬
+ !ð0 ? 
+v¬
+->
+asObjeù
+() : 0;
+
+33 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁCÝyFrom
+(
+V¬ŸÁD©a
+ *
+d¡
+, cÚ¡ V¬ŸÁD©¨*
+¤c
+,
+
+34 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+35 ià(!
+	gd¡
+)
+
+36  
+	gçl£
+;
+
+37 ià(!
+	g¤c
+) {
+
+38 
+	gd¡
+->
+£tNuÎ
+();
+
+39  
+	gŒue
+;
+
+41  
+	gd¡
+->
+cÝyFrom
+(*
+¤c
+, 
+poÞ
+);
+
+44 
+šlše
+ 
+v¬ŸÁCom·»
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+a
+, cÚ¡ V¬ŸÁD©¨*
+b
+);
+
+46 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsA¼ay
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+47  
+	gv¬
+ && v¬->
+isA¼ay
+();
+
+50 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsBoÞ—n
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+51  
+	gv¬
+ && v¬->
+isBoÞ—n
+();
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+55 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsIÁeg”
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+56  
+	gv¬
+ && v¬->
+	gisIÁeg”
+<
+	gT
+>();
+
+59 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsFlßt
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+60  
+	gv¬
+ && v¬->
+isFlßt
+();
+
+63 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsSŒšg
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+64  
+	gv¬
+ && v¬->
+isSŒšg
+();
+
+67 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsObjeù
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+68  
+	gv¬
+ && v¬->
+isObjeù
+();
+
+71 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsNuÎ
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+72  
+	gv¬
+ =ð0 || 
+v¬
+->
+isNuÎ
+();
+
+75 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘BoÞ—n
+(
+V¬ŸÁD©a
+ *
+v¬
+, boÞ 
+v®ue
+) {
+
+76 ià(!
+	gv¬
+)
+
+77  
+	gçl£
+;
+
+78 
+	gv¬
+->
+£tBoÞ—n
+(
+v®ue
+);
+
+79  
+	gŒue
+;
+
+82 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘Flßt
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+Flßt
+ 
+v®ue
+) {
+
+83 ià(!
+	gv¬
+)
+
+84  
+	gçl£
+;
+
+85 
+	gv¬
+->
+£tFlßt
+(
+v®ue
+);
+
+86  
+	gŒue
+;
+
+89 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘LškedRaw
+(
+V¬ŸÁD©a
+ *
+v¬
+,
+
+90 
+S”ŸlizedV®ue
+<cÚ¡ *> 
+v®ue
+) {
+
+91 ià(!
+	gv¬
+)
+
+92  
+	gçl£
+;
+
+93 
+	gv¬
+->
+£tLškedRaw
+(
+v®ue
+);
+
+94  
+	gŒue
+;
+
+97 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+98 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘OwÃdRaw
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+S”ŸlizedV®ue
+<
+T
+> 
+v®ue
+,
+
+99 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+100  
+	gv¬
+ !ð0 && 
+v¬
+->
+£tOwÃdRaw
+(
+v®ue
+, 
+poÞ
+);
+
+103 
+šlše
+ 
+v¬ŸÁS‘NuÎ
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+104 ià(!
+	gv¬
+)
+
+106 
+	gv¬
+->
+£tNuÎ
+();
+
+109 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+110 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘SŒšg
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+TAd­‹dSŒšg
+ 
+v®ue
+,
+
+111 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+112 ià(!
+	gv¬
+)
+
+113  
+	gçl£
+;
+
+114  
+	gv¬
+->
+£tSŒšg
+(
+v®ue
+, 
+poÞ
+);
+
+117 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+118 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘IÁeg”
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+T
+ 
+v®ue
+) {
+
+119 
+ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED
+(
+T
+);
+
+120 ià(!
+	gv¬
+)
+
+121  
+	gçl£
+;
+
+122 
+	gv¬
+->
+£tIÁeg”
+(
+v®ue
+);
+
+123  
+	gŒue
+;
+
+126 
+šlše
+ 
+size_t
+ 
+v¬ŸÁSize
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+127  
+	gv¬
+ !ð0 ? 
+v¬
+->
+size
+() : 0;
+
+130 
+šlše
+ 
+CÞËùiÚD©a
+ *
+v¬ŸÁToA¼ay
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+131 ià(!
+	gv¬
+)
+
+133  &
+	gv¬
+->
+toA¼ay
+();
+
+136 
+šlše
+ 
+CÞËùiÚD©a
+ *
+v¬ŸÁToObjeù
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+137 ià(!
+	gv¬
+)
+
+139  &
+	gv¬
+->
+toObjeù
+();
+
+142 
+šlše
+ 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁAddEËm’t
+(V¬ŸÁD©¨*
+v¬
+,
+
+143 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+144  
+	gv¬
+ !ð0 ? 
+v¬
+->
+addEËm’t
+(
+poÞ
+) : 0;
+
+147 
+šlše
+ 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁG‘OrAddEËm’t
+(V¬ŸÁD©¨*
+v¬
+,
+
+148 
+size_t
+ 
+šdex
+,
+
+149 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+150  
+	gv¬
+ !ð0 ? 
+v¬
+->
+g‘OrAddEËm’t
+(
+šdex
+, 
+poÞ
+) : 0;
+
+153 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+154 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁG‘OrAddMemb”
+(V¬ŸÁD©¨*
+v¬
+, 
+TCh¬
+ *
+key
+,
+
+155 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+156  
+	gv¬
+ !ð0 ? 
+v¬
+->
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), 
+poÞ
+) : 0;
+
+159 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+160 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁG‘OrAddMemb”
+(V¬ŸÁD©¨*
+v¬
+,
+
+161 cÚ¡ 
+TSŒšg
+ &
+key
+,
+
+162 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+163  
+	gv¬
+ !ð0 ? 
+v¬
+->
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), 
+poÞ
+) : 0;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+>
+
+8 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+10 
+	~<ArdušoJsÚ/Numb”s/·r£Numb”.hµ
+>
+
+11 
+	~<ArdušoJsÚ/Objeù/ObjeùRef.hµ
+>
+
+12 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+14 
+	~<¡ršg.h
+>
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+19 
+šlše
+ 
+T
+ 
+	gV¬ŸÁD©a
+::
+asIÁeg¿l
+() const {
+
+20 
+ty³
+()) {
+
+21 
+VALUE_IS_POSITIVE_INTEGER
+:
+
+22 
+VALUE_IS_BOOLEAN
+:
+
+23  
+cÚv”tPos™iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+24 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+25  
+cÚv”tNeg©iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+26 
+	gVALUE_IS_LINKED_STRING
+:
+
+27 
+VALUE_IS_OWNED_STRING
+:
+
+28  
+·r£Numb”
+<
+T
+>(
+_cÚ‹Á
+.
+asSŒšg
+);
+
+29 
+	gVALUE_IS_FLOAT
+:
+
+30  
+cÚv”tFlßt
+<
+T
+>(
+_cÚ‹Á
+.
+asFlßt
+);
+
+36 
+šlše
+ 
+boÞ
+ 
+	gV¬ŸÁD©a
+::
+asBoÞ—n
+() const {
+
+37 
+ty³
+()) {
+
+38 
+VALUE_IS_POSITIVE_INTEGER
+:
+
+39 
+VALUE_IS_BOOLEAN
+:
+
+40 
+VALUE_IS_NEGATIVE_INTEGER
+:
+
+41  
+_cÚ‹Á
+.
+asIÁeg”
+ != 0;
+
+42 
+	gVALUE_IS_FLOAT
+:
+
+43  
+_cÚ‹Á
+.
+asFlßt
+ != 0;
+
+44 
+	gVALUE_IS_NULL
+:
+
+45  
+çl£
+;
+
+47  
+Œue
+;
+
+52 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+53 
+šlše
+ 
+T
+ 
+	gV¬ŸÁD©a
+::
+asFlßt
+() const {
+
+54 
+ty³
+()) {
+
+55 
+VALUE_IS_POSITIVE_INTEGER
+:
+
+56 
+VALUE_IS_BOOLEAN
+:
+
+57  
+¡©ic_ÿ¡
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+58 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+59  -
+¡©ic_ÿ¡
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+60 
+	gVALUE_IS_LINKED_STRING
+:
+
+61 
+VALUE_IS_OWNED_STRING
+:
+
+62  
+·r£Numb”
+<
+T
+>(
+_cÚ‹Á
+.
+asSŒšg
+);
+
+63 
+	gVALUE_IS_FLOAT
+:
+
+64  
+¡©ic_ÿ¡
+<
+T
+>(
+_cÚ‹Á
+.
+asFlßt
+);
+
+70 
+šlše
+ cÚ¡ *
+	gV¬ŸÁD©a
+::
+asSŒšg
+() const {
+
+71 
+ty³
+()) {
+
+72 
+VALUE_IS_LINKED_STRING
+:
+
+73 
+VALUE_IS_OWNED_STRING
+:
+
+74  
+_cÚ‹Á
+.
+asSŒšg
+;
+
+80 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+81 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsVis™abË
+<
+	gTV¬ŸÁ
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+V¬ŸÁRef
+::
+£t
+(
+
+82 cÚ¡ 
+TV¬ŸÁ
+ &
+v®ue
+) const {
+
+83 
+V¬ŸÁCÚ¡Ref
+ 
+v
+ = 
+v®ue
+;
+
+84  
+v¬ŸÁCÝyFrom
+(
+_d©a
+, 
+v
+._d©a, 
+_poÞ
+);
+
+87 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+88 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gA¼ayRef
+>::
+v®ue
+, A¼ayRef>::
+ty³
+
+
+89 
+V¬ŸÁRef
+::
+to
+() const {
+
+90  
+A¼ayRef
+(
+_poÞ
+, 
+v¬ŸÁToA¼ay
+(
+_d©a
+));
+
+93 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+94 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gObjeùRef
+>::
+v®ue
+, ObjeùRef>::
+ty³
+
+
+95 
+V¬ŸÁRef
+::
+to
+() const {
+
+96  
+ObjeùRef
+(
+_poÞ
+, 
+v¬ŸÁToObjeù
+(
+_d©a
+));
+
+99 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+100 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gV¬ŸÁRef
+>::
+v®ue
+, V¬ŸÁRef>::
+ty³
+
+
+101 
+V¬ŸÁRef
+::
+to
+() const {
+
+102 
+v¬ŸÁS‘NuÎ
+(
+_d©a
+);
+
+103  *
+	gthis
+;
+
+106 
+šlše
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gV¬ŸÁCÚ¡Ref
+::
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+107  
+A¼ayCÚ¡Ref
+(
+_d©a
+ !ð0 ? _d©a->
+asA¼ay
+(è: 0)[
+šdex
+];
+
+110 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+addEËm’t
+() const {
+
+111  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁAddEËm’t
+(
+_d©a
+, _pool));
+
+114 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+115  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ !ð0 ? _d©a->
+g‘EËm’t
+(
+šdex
+) : 0);
+
+118 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+119  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁG‘OrAddEËm’t
+(
+_d©a
+, 
+šdex
+, _pool));
+
+122 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+123 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘Memb”
+(
+TCh¬
+ *
+key
+) const {
+
+124  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ !ð0 ? _d©a->
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)) : 0);
+
+127 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+128 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁRef
+>::
+ty³
+
+
+129 
+V¬ŸÁRef
+::
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+130  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ !ð0 ? _d©a->
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)) : 0);
+
+133 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+134 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘OrAddMemb”
+(
+TCh¬
+ *
+key
+) const {
+
+135  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁG‘OrAddMemb”
+(
+_d©a
+, 
+key
+, _pool));
+
+138 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+139 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+140  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁG‘OrAddMemb”
+(
+_d©a
+, 
+key
+, _pool));
+
+143 
+šlše
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gÝ”©Ü
+|(V¬ŸÁCÚ¡Reà
+	g´eã»dV®ue
+,
+
+144 
+V¬ŸÁCÚ¡Ref
+ 
+	gdeçuÉV®ue
+) {
+
+145  
+	g´eã»dV®ue
+ ?…»ã»dV®u�: 
+deçuÉV®ue
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Misc/Vis™abË.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/¬™hm‘icCom·».hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+10 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁAs.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+16 
+Com·»ResuÉ
+ 
+com·»
+(cÚ¡ 
+T1
+ &
+lhs
+, cÚ¡ 
+T2
+ &
+rhs
+);
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+19 
+	sV¬ŸÁO³¿tÜs
+ {
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+22 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+Ý”©Ü
+|(
+
+23 cÚ¡ 
+TV¬ŸÁ
+ &
+v¬ŸÁ
+, cÚ¡ 
+	gT
+ &
+	gdeçuÉV®ue
+) {
+
+24 ià(
+	gv¬ŸÁ
+.
+‹m¶©e
+ 
+	gis
+<
+	gT
+>())
+
+25  
+	gv¬ŸÁ
+.
+‹m¶©e
+ 
+	gas
+<
+	gT
+>();
+
+27  
+	gdeçuÉV®ue
+;
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+33 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, cÚ¡ *>::
+v®ue
+, T>::
+ty³
+ 
+Ý”©Ü
+|(
+
+34 cÚ¡ 
+TV¬ŸÁ
+ &
+v¬ŸÁ
+, 
+T
+ 
+	gdeçuÉV®ue
+) {
+
+35 cÚ¡ *
+	gv®ue
+ = 
+v¬ŸÁ
+.
+‹m¶©e
+ 
+as
+<const *>();
+
+36  
+	gv®ue
+ ? v®u�: 
+deçuÉV®ue
+;
+
+40 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+41 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+42  
+com·»
+(
+rhs
+, 
+lhs
+è=ð
+COMPARE_RESULT_EQUAL
+;
+
+44 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+45 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+46  
+com·»
+(
+rhs
+, 
+lhs
+è=ð
+COMPARE_RESULT_EQUAL
+;
+
+50 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+51 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+52  
+com·»
+(
+lhs
+, 
+rhs
+è=ð
+COMPARE_RESULT_EQUAL
+;
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+55 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+==(
+
+56 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+57  
+com·»
+(
+lhs
+, 
+rhs
+è=ð
+COMPARE_RESULT_EQUAL
+;
+
+61 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+62 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+63  
+com·»
+(
+rhs
+, 
+lhs
+è!ð
+COMPARE_RESULT_EQUAL
+;
+
+65 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+66 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+67  
+com·»
+(
+rhs
+, 
+lhs
+è!ð
+COMPARE_RESULT_EQUAL
+;
+
+71 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+72 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+73  
+com·»
+(
+lhs
+, 
+rhs
+è!ð
+COMPARE_RESULT_EQUAL
+;
+
+75 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+76 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+!=(
+
+77 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+78  
+com·»
+(
+lhs
+, 
+rhs
+è!ð
+COMPARE_RESULT_EQUAL
+;
+
+82 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+83 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(
+T
+ *
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+84  
+com·»
+(
+rhs
+, 
+lhs
+è=ð
+COMPARE_RESULT_GREATER
+;
+
+86 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+87 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(cÚ¡ 
+	gT
+ &
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+88  
+com·»
+(
+rhs
+, 
+lhs
+è=ð
+COMPARE_RESULT_GREATER
+;
+
+92 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+93 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(
+TV¬ŸÁ
+ 
+	glhs
+, 
+T
+ *
+	grhs
+) {
+
+94  
+com·»
+(
+lhs
+, 
+rhs
+è=ð
+COMPARE_RESULT_LESS
+;
+
+96 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+97 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+<(
+
+98 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+99  
+com·»
+(
+lhs
+, 
+rhs
+è=ð
+COMPARE_RESULT_LESS
+;
+
+103 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+104 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<=(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+105  (
+com·»
+(
+rhs
+, 
+lhs
+è& 
+	gCOMPARE_RESULT_GREATER_OR_EQUAL
+) != 0;
+
+107 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+108 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<=(cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+109  (
+com·»
+(
+rhs
+, 
+lhs
+è& 
+	gCOMPARE_RESULT_GREATER_OR_EQUAL
+) != 0;
+
+113 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+114 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<=(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+115  (
+com·»
+(
+lhs
+, 
+rhs
+è& 
+	gCOMPARE_RESULT_LESS_OR_EQUAL
+) != 0;
+
+117 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+118 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+<=(
+
+119 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+120  (
+com·»
+(
+lhs
+, 
+rhs
+è& 
+	gCOMPARE_RESULT_LESS_OR_EQUAL
+) != 0;
+
+124 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+125 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>(
+T
+ *
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+126  
+com·»
+(
+rhs
+, 
+lhs
+è=ð
+COMPARE_RESULT_LESS
+;
+
+128 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+129 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>(cÚ¡ 
+	gT
+ &
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+130  
+com·»
+(
+rhs
+, 
+lhs
+è=ð
+COMPARE_RESULT_LESS
+;
+
+134 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+135 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>(
+TV¬ŸÁ
+ 
+	glhs
+, 
+T
+ *
+	grhs
+) {
+
+136  
+com·»
+(
+lhs
+, 
+rhs
+è=ð
+COMPARE_RESULT_GREATER
+;
+
+138 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+139 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+>(
+
+140 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+141  
+com·»
+(
+lhs
+, 
+rhs
+è=ð
+COMPARE_RESULT_GREATER
+;
+
+145 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+146 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>=(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+147  (
+com·»
+(
+rhs
+, 
+lhs
+è& 
+	gCOMPARE_RESULT_LESS_OR_EQUAL
+) != 0;
+
+149 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+150 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>=(cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+151  (
+com·»
+(
+rhs
+, 
+lhs
+è& 
+	gCOMPARE_RESULT_LESS_OR_EQUAL
+) != 0;
+
+155 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+156 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>=(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+157  (
+com·»
+(
+lhs
+, 
+rhs
+è& 
+	gCOMPARE_RESULT_GREATER_OR_EQUAL
+) != 0;
+
+159 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+160 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+>=(
+
+161 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+162  (
+com·»
+(
+lhs
+, 
+rhs
+è& 
+	gCOMPARE_RESULT_GREATER_OR_EQUAL
+) != 0;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+8 
+	~<¡dšt.h
+>
+
+10 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+11 
+	~<ArdušoJsÚ/Misc/Vis™abË.hµ
+>
+
+12 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+13 
+	~<ArdušoJsÚ/SŒšgs/SŒšgAd­‹rs.hµ
+>
+
+14 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁAs.hµ
+>
+
+15 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁFunùiÚs.hµ
+>
+
+16 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁO³¿tÜs.hµ
+>
+
+17 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+18 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁShÜtcuts.hµ
+>
+
+20 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+23 
+þass
+ 
+	gA¼ayRef
+;
+
+24 
+þass
+ 
+	gObjeùRef
+;
+
+26 
+	g‹m¶©e
+ <
+	gty³Çme
+,�ypename>
+
+27 
+þass
+ 
+	gMemb”Proxy
+;
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTD©a
+>
+
+31 þas 
+	cV¬ŸÁRefBa£
+ {
+
+32 
+	gpublic
+:
+
+45 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+46 
+FORCE_INLINE
+
+
+47 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T
+>::
+v®ue
+ && !
+is_§me
+<
+boÞ
+, 
+	gT
+>::value,
+
+48 
+	gboÞ
+>::
+ty³
+
+
+49 
+is
+() const {
+
+50  
+v¬ŸÁIsIÁeg”
+<
+T
+>(
+_d©a
+);
+
+55 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+56 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+is
+()
+
+58  
+v¬ŸÁIsFlßt
+(
+_d©a
+);
+
+62 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+63 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gboÞ
+>::
+v®ue
+, boÞ>::
+ty³
+ 
+is
+()
+
+65  
+v¬ŸÁIsBoÞ—n
+(
+_d©a
+);
+
+72 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+73 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, cÚ¡ *>::
+v®ue
+ ||
+
+74 
+is_§me
+<
+T
+, *>::
+v®ue
+ ||
+
+75 
+IsWr™—bËSŒšg
+<
+T
+>::
+v®ue
+,
+
+76 
+	gboÞ
+>::
+ty³
+
+
+77 
+is
+() const {
+
+78  
+v¬ŸÁIsSŒšg
+(
+_d©a
+);
+
+83 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+84 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+
+85 
+	gis_§me
+<
+ty³Çme
+ 
+	g»move_cÚ¡
+<
+	gT
+>::
+ty³
+, 
+	gA¼ayRef
+>::
+v®ue
+, 
+	gboÞ
+>::type
+
+86 
+is
+() const {
+
+87  
+v¬ŸÁIsA¼ay
+(
+_d©a
+);
+
+92 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+93 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+
+94 
+	gis_§me
+<
+ty³Çme
+ 
+	g»move_cÚ¡
+<
+	gT
+>::
+ty³
+, 
+	gObjeùRef
+>::
+v®ue
+, 
+	gboÞ
+>::type
+
+95 
+is
+() const {
+
+96  
+v¬ŸÁIsObjeù
+(
+_d©a
+);
+
+98 #ià
+ARDUINOJSON_HAS_NULLPTR
+
+
+101 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+102 
+FORCE_INLINE
+
+
+103 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+deþty³
+(
+nuÎ±r
+)>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+104 
+is
+() const {
+
+105  
+v¬ŸÁIsNuÎ
+(
+_d©a
+);
+
+109 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+110 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_’um
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+is
+() const {
+
+111  
+v¬ŸÁIsIÁeg”
+<>(
+_d©a
+);
+
+114 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+115  
+v¬ŸÁIsNuÎ
+(
+_d©a
+);
+
+118 
+FORCE_INLINE
+ 
+boÞ
+ 
+isUndefšed
+() const {
+
+119  !
+	g_d©a
+;
+
+122 
+FORCE_INLINE
+ 
+size_t
+ 
+memÜyU§ge
+() const {
+
+123  
+	g_d©a
+ ? _d©a->
+memÜyU§ge
+() : 0;
+
+126 
+FORCE_INLINE
+ 
+size_t
+ 
+Ã¡šg
+() const {
+
+127  
+	g_d©a
+ ? _d©a->
+Ã¡šg
+() : 0;
+
+130 
+size_t
+ 
+size
+() const {
+
+131  
+v¬ŸÁSize
+(
+_d©a
+);
+
+134 
+	g´Ùeùed
+:
+
+135 
+V¬ŸÁRefBa£
+(
+TD©a
+ *
+d©a
+è: 
+_d©a
+(data) {}
+
+136 
+TD©a
+ *
+_d©a
+;
+
+146 
+þass
+ 
+	gV¬ŸÁRef
+ : 
+public
+ 
+V¬ŸÁRefBa£
+<
+V¬ŸÁD©a
+>,
+
+147 
+public
+ 
+	gV¬ŸÁO³¿tÜs
+<
+	gV¬ŸÁRef
+>,
+
+148 
+public
+ 
+	gV¬ŸÁShÜtcuts
+<
+	gV¬ŸÁRef
+>,
+
+149 
+public
+ 
+	gVis™abË
+ {
+
+150 
+	gV¬ŸÁRefBa£
+<
+	tV¬ŸÁD©a
+> 
+	tba£_ty³
+;
+
+151 
+ä›nd
+ 
+þass
+ 
+	gV¬ŸÁCÚ¡Ref
+;
+
+153 
+	gpublic
+:
+
+155 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁD©a
+ *
+d©a
+)
+
+156 : 
+ba£_ty³
+(
+d©a
+), 
+_poÞ
+(
+poÞ
+) {}
+
+159 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+(è: 
+ba£_ty³
+(0), 
+_poÞ
+(0) {}
+
+161 
+FORCE_INLINE
+ 
+þ—r
+() const {
+
+162  
+v¬ŸÁS‘NuÎ
+(
+_d©a
+);
+
+166 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+167 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+168 
+T
+ 
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+is_§me
+<T, 
+boÞ
+>::v®ue>::
+ty³
+ * = 0) const {
+
+169  
+v¬ŸÁS‘BoÞ—n
+(
+_d©a
+, 
+v®ue
+);
+
+174 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+175 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+176 
+T
+ 
+v®ue
+,
+
+177 
+ty³Çme
+ 
+’abË_if
+<
+is_æßtšg_pošt
+<
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+178  
+v¬ŸÁS‘Flßt
+(
+_d©a
+, 
+¡©ic_ÿ¡
+<
+Flßt
+>(
+v®ue
+));
+
+189 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+190 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+191 
+T
+ 
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<T>::value &&
+
+192 !
+is_§me
+<
+boÞ
+, 
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+193  
+v¬ŸÁS‘IÁeg”
+<
+T
+>(
+_d©a
+, 
+v®ue
+);
+
+197 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+S”ŸlizedV®ue
+<cÚ¡ *> 
+v®ue
+) const {
+
+198  
+v¬ŸÁS‘LškedRaw
+(
+_d©a
+, 
+v®ue
+);
+
+204 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+205 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+206 
+S”ŸlizedV®ue
+<
+T
+> 
+v®ue
+,
+
+207 
+ty³Çme
+ 
+’abË_if
+<!
+is_§me
+<cÚ¡ *, 
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+208  
+v¬ŸÁS‘OwÃdRaw
+(
+_d©a
+, 
+v®ue
+, 
+_poÞ
+);
+
+213 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+214 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+215 cÚ¡ 
+T
+ &
+v®ue
+,
+
+216 
+ty³Çme
+ 
+’abË_if
+<
+IsSŒšg
+<
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+217  
+v¬ŸÁS‘SŒšg
+(
+_d©a
+, 
+ad­tSŒšg
+(
+v®ue
+), 
+_poÞ
+);
+
+222 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+223 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+224 
+T
+ *
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+IsSŒšg
+<T *>::v®ue>::
+ty³
+ * = 0) const {
+
+225  
+v¬ŸÁS‘SŒšg
+(
+_d©a
+, 
+ad­tSŒšg
+(
+v®ue
+), 
+_poÞ
+);
+
+235 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+236 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsVis™abË
+<
+	gTV¬ŸÁ
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+£t
+(
+
+237 cÚ¡ 
+TV¬ŸÁ
+ &
+v®ue
+) const;
+
+240 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+241 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+242 
+T
+ 
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+is_’um
+<T>::v®ue>::
+ty³
+ * = 0) const {
+
+243  
+v¬ŸÁS‘IÁeg”
+(
+_d©a
+, 
+¡©ic_ÿ¡
+<
+IÁeg”
+>(
+v®ue
+));
+
+246 #ià
+ARDUINOJSON_HAS_NULLPTR
+
+
+248 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+deþty³
+(
+nuÎ±r
+)) const {
+
+249 
+v¬ŸÁS‘NuÎ
+(
+_d©a
+);
+
+250  
+	gŒue
+;
+
+254 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+255 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gT
+>::
+ty³
+ 
+as
+() const {
+
+256  
+v¬ŸÁAs
+<
+ty³Çme
+ 
+V¬ŸÁAs
+<
+T
+>::
+ty³
+>(
+_d©a
+, 
+	g_poÞ
+);
+
+259 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+260 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+T
+() const {
+
+261  
+	gv¬ŸÁAs
+<
+	gT
+>(
+	g_d©a
+, 
+	g_poÞ
+);
+
+264 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTVis™Ü
+>
+
+265 
+ty³Çme
+ 
+	gTVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(
+TVis™Ü
+ &
+vis™Ü
+) const {
+
+266  
+v¬ŸÁAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+272 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+273 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gA¼ayRef
+>::
+v®ue
+, A¼ayRef>::
+ty³
+ 
+to
+() const;
+
+276 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+277 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gObjeùRef
+>::
+v®ue
+, ObjeùRef>::
+ty³
+ 
+to
+() const;
+
+280 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+281 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gV¬ŸÁRef
+>::
+v®ue
+, V¬ŸÁRef>::
+ty³
+ 
+to
+()
+
+284 
+V¬ŸÁRef
+ 
+addEËm’t
+() const;
+
+286 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+) const;
+
+288 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+) const;
+
+292 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+293 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+ *) const;
+
+297 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+298 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁRef
+>::
+ty³
+
+
+299 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &) const;
+
+304 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+305 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+ *) const;
+
+309 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+310 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+ &) const;
+
+312 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+313 ià(
+	g_d©a
+)
+
+314 
+	g_d©a
+->
+»move
+(
+šdex
+);
+
+319 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+320 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+321 
+TCh¬
+ *
+key
+) const {
+
+322 ià(
+_d©a
+)
+
+323 
+_d©a
+->
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+327 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+328 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+329 cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+330 ià(
+_d©a
+)
+
+331 
+_d©a
+->
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+334 
+	g´iv©e
+:
+
+335 
+MemÜyPoÞ
+ *
+_poÞ
+;
+
+338 
+þass
+ 
+	gV¬ŸÁCÚ¡Ref
+ : 
+public
+ 
+V¬ŸÁRefBa£
+<cÚ¡ 
+V¬ŸÁD©a
+>,
+
+339 
+public
+ 
+	gV¬ŸÁO³¿tÜs
+<
+	gV¬ŸÁCÚ¡Ref
+>,
+
+340 
+public
+ 
+	gV¬ŸÁShÜtcuts
+<
+	gV¬ŸÁCÚ¡Ref
+>,
+
+341 
+public
+ 
+	gVis™abË
+ {
+
+342 
+	gV¬ŸÁRefBa£
+<cÚ¡ 
+	tV¬ŸÁD©a
+> 
+	tba£_ty³
+;
+
+343 
+ä›nd
+ 
+þass
+ 
+	gV¬ŸÁRef
+;
+
+345 
+	gpublic
+:
+
+346 
+V¬ŸÁCÚ¡Ref
+(è: 
+ba£_ty³
+(0) {}
+
+347 
+V¬ŸÁCÚ¡Ref
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+d©a
+è: 
+ba£_ty³
+(data) {}
+
+348 
+V¬ŸÁCÚ¡Ref
+(
+V¬ŸÁRef
+ 
+v¬
+è: 
+ba£_ty³
+(v¬.
+_d©a
+) {}
+
+350 
+‹m¶©e
+ <
+ty³Çme
+ 
+TVis™Ü
+>
+
+351 
+ty³Çme
+ 
+TVis™Ü
+::
+»suÉ_ty³
+ 
+acû±
+(TVis™Ü &
+vis™Ü
+) const {
+
+352  
+v¬ŸÁAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+355 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+356 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁCÚ¡As
+<
+	gT
+>::
+ty³
+ 
+as
+() const {
+
+357  
+v¬ŸÁAs
+<
+ty³Çme
+ 
+V¬ŸÁCÚ¡As
+<
+T
+>::
+ty³
+>(
+_d©a
+);
+
+360 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+361 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+T
+() const {
+
+362  
+	gv¬ŸÁAs
+<
+	gT
+>(
+	g_d©a
+);
+
+365 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘EËm’t
+(
+size_t
+) const;
+
+367 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) const {
+
+368  
+g‘EËm’t
+(
+šdex
+);
+
+373 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+374 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+375  
+V¬ŸÁCÚ¡Ref
+(
+
+376 
+objeùG‘Memb”
+(
+v¬ŸÁAsObjeù
+(
+_d©a
+), 
+ad­tSŒšg
+(
+key
+)));
+
+382 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+383 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(
+TCh¬
+ *
+key
+) const {
+
+384 cÚ¡ 
+CÞËùiÚD©a
+ *
+	gobj
+ = 
+v¬ŸÁAsObjeù
+(
+_d©a
+);
+
+385  
+V¬ŸÁCÚ¡Ref
+(
+obj
+ ? obj->
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)) : 0);
+
+390 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+391 
+FORCE_INLINE
+
+
+392 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+393 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+394  
+g‘Memb”
+(
+key
+);
+
+400 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+401 
+FORCE_INLINE
+
+
+402 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+403 
+Ý”©Ü
+[](
+TCh¬
+ *
+key
+) const {
+
+404  
+g‘Memb”
+(
+key
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantShortcuts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayShÜtcuts.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùShÜtcuts.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+13 
+þass
+ 
+	gV¬ŸÁShÜtcuts
+ : 
+public
+ 
+ObjeùShÜtcuts
+<
+TV¬ŸÁ
+>,
+
+14 
+public
+ 
+	gA¼ayShÜtcuts
+<
+	gTV¬ŸÁ
+> {
+
+15 
+	gpublic
+:
+
+16 
+usšg
+ 
+A¼ayShÜtcuts
+<
+TV¬ŸÁ
+>::
+ü—‹Ne¡edA¼ay
+;
+
+17 
+usšg
+ 
+	gA¼ayShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+ü—‹Ne¡edObjeù
+;
+
+18 
+usšg
+ 
+	gA¼ayShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+Ý”©Ü
+[];
+
+19 
+usšg
+ 
+	gObjeùShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+ü—‹Ne¡edA¼ay
+;
+
+20 
+usšg
+ 
+	gObjeùShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+ü—‹Ne¡edObjeù
+;
+
+21 
+usšg
+ 
+	gObjeùShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+Ý”©Ü
+[];
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡dšt.h
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁCÚ‹Á.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	gcÚd™iÚ®
+<(*è<ð2, 
+	tšt8_t
+, 
+	tšt16_t
+>::
+	tty³
+ 
+	tV¬ŸÁSlÙDiff
+;
+
+17 þas 
+	cV¬ŸÁSlÙ
+ {
+
+21 
+V¬ŸÁCÚ‹Á
+ 
+	g_cÚ‹Á
+;
+
+22 
+ušt8_t
+ 
+	g_æags
+;
+
+23 
+V¬ŸÁSlÙDiff
+ 
+	g_Ãxt
+;
+
+24 cÚ¡ * 
+	g_key
+;
+
+26 
+	gpublic
+:
+
+33 
+V¬ŸÁD©a
+* 
+d©a
+() {
+
+34  
+»š‹½»t_ÿ¡
+<
+V¬ŸÁD©a
+*>(&
+_cÚ‹Á
+);
+
+37 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+() const {
+
+38  
+	g»š‹½»t_ÿ¡
+<cÚ¡ 
+	gV¬ŸÁD©a
+*>(&
+	g_cÚ‹Á
+);
+
+41 
+V¬ŸÁSlÙ
+* 
+Ãxt
+() {
+
+42  
+	g_Ãxt
+ ? 
+	gthis
+ + _next : 0;
+
+45 cÚ¡ 
+V¬ŸÁSlÙ
+* 
+Ãxt
+() const {
+
+46  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁSlÙ
+*>(
+	gthis
+)->
+Ãxt
+();
+
+49 
+V¬ŸÁSlÙ
+* 
+Ãxt
+(
+size_t
+ 
+di¡ªû
+) {
+
+50 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+this
+;
+
+51 
+	gdi¡ªû
+--) {
+
+52 ià(!
+	g¦Ù
+->
+	g_Ãxt
+)
+
+54 
+	g¦Ù
+ +ð
+¦Ù
+->
+_Ãxt
+;
+
+56  
+	g¦Ù
+;
+
+59 cÚ¡ 
+V¬ŸÁSlÙ
+* 
+Ãxt
+(
+size_t
+ 
+di¡ªû
+) const {
+
+60  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁSlÙ
+*>(
+	gthis
+)->
+Ãxt
+(
+di¡ªû
+);
+
+63 
+£tNext
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+64 
+	g_Ãxt
+ = 
+V¬ŸÁSlÙDiff
+(
+¦Ù
+ ? slÙ - 
+this
+ : 0);
+
+67 
+£tNextNÙNuÎ
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+68 
+ARDUINOJSON_ASSERT
+(
+¦Ù
+ != 0);
+
+69 
+	g_Ãxt
+ = 
+V¬ŸÁSlÙDiff
+(
+¦Ù
+ - 
+this
+);
+
+72 
+£tKey
+(cÚ¡ * 
+k
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_cÝy
+) {
+
+73 
+ARDUINOJSON_ASSERT
+(
+k
+ !ð
+NULL
+);
+
+74 
+	g_æags
+ |ð
+KEY_IS_OWNED
+;
+
+75 
+	g_key
+ = 
+k
+;
+
+78 
+£tKey
+(cÚ¡ * 
+k
+, 
+¡Üage_pÞic›s
+::
+¡Üe_by_add»ss
+) {
+
+79 
+ARDUINOJSON_ASSERT
+(
+k
+ !ð
+NULL
+);
+
+80 
+	g_æags
+ &ð
+VALUE_MASK
+;
+
+81 
+	g_key
+ = 
+k
+;
+
+84 cÚ¡ * 
+key
+() const {
+
+85  
+	g_key
+;
+
+88 
+boÞ
+ 
+ownsKey
+() const {
+
+89  (
+	g_æags
+ & 
+	gKEY_IS_OWNED
+) != 0;
+
+92 
+þ—r
+() {
+
+93 
+	g_Ãxt
+ = 0;
+
+94 
+	g_æags
+ = 0;
+
+95 
+	g_key
+ = 0;
+
+98 
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,…Œdiff_ˆ
+v¬ŸÁDi¡ªû
+) {
+
+99 ià(
+	g_æags
+ & 
+	gKEY_IS_OWNED
+)
+
+100 
+	g_key
+ +ð
+¡ršgDi¡ªû
+;
+
+101 ià(
+	g_æags
+ & 
+	gVALUE_IS_OWNED
+)
+
+102 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ +ð
+¡ršgDi¡ªû
+;
+
+103 ià(
+	g_æags
+ & 
+	gCOLLECTION_MASK
+)
+
+104 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+movePoš‹rs
+(
+¡ršgDi¡ªû
+, 
+v¬ŸÁDi¡ªû
+);
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+þass
+ 
+	gA¼ayRef
+;
+
+11 
+þass
+ 
+	gObjeùRef
+;
+
+12 
+þass
+ 
+	gV¬ŸÁRef
+;
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	sV¬ŸÁTo
+ {};
+
+19 
+	g‹m¶©e
+ <>
+
+20 
+	gV¬ŸÁTo
+<
+	gA¼ayRef
+> {
+
+21 
+A¼ayRef
+ 
+	tty³
+;
+
+23 
+	g‹m¶©e
+ <>
+
+24 
+	gV¬ŸÁTo
+<
+	gObjeùRef
+> {
+
+25 
+ObjeùRef
+ 
+	tty³
+;
+
+27 
+	g‹m¶©e
+ <>
+
+28 
+	gV¬ŸÁTo
+<
+	gV¬ŸÁRef
+> {
+
+29 
+V¬ŸÁRef
+ 
+	tty³
+;
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp
+
+7 #ifdeà
+__GNUC__
+
+
+9 
+	#ARDUINOJSON_PRAGMA
+(
+x
+è
+	`_P¿gma
+(#x)
+
+	)
+
+11 
+	#ARDUINOJSON_COMPILE_ERROR
+(
+msg
+è
+	`ARDUINOJSON_PRAGMA
+(
+GCC
+ 
+”rÜ
+ msg)
+
+	)
+
+13 
+	#ARDUINOJSON_STRINGIFY
+(
+S
+è#S
+
+	)
+
+15 
+	#ARDUINOJSON_DEPRECATION_ERROR
+(
+X
+, 
+Y
+) \
+
+16 
+	`ARDUINOJSON_COMPILE_ERROR
+(
+	`ARDUINOJSON_STRINGIFY
+(
+X
+ 
+is
+ 
+a
+ 
+Y
+ 
+äom
+ 
+ArdušoJsÚ
+ 5. 
+PËa£
+ 
+£e
+ 
+¬dušojsÚ
+.
+Üg
+/
+upg¿de
+ 
+to
+ 
+Ë¬n
+ 
+how
+�Øupg¿d�
+your
+ 
+´og¿m
+�ØArdušoJsÚ 
+v”siÚ
+ 6))
+
+	)
+
+18 
+	#S�ticJsÚBufãr
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+S�ticJsÚBufãr
+, 
+þass
+)
+
+	)
+
+19 
+	#DyÇmicJsÚBufãr
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+DyÇmicJsÚBufãr
+, 
+þass
+)
+
+	)
+
+20 
+	#JsÚBufãr
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+JsÚBufãr
+, 
+þass
+)
+
+	)
+
+21 
+	#RawJsÚ
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+RawJsÚ
+, 
+funùiÚ
+)
+
+	)
+
+	@.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	#ARDUINOJSON_VERSION
+ "6.17.0"
+
+	)
+
+8 
+	#ARDUINOJSON_VERSION_MAJOR
+ 6
+
+	)
+
+9 
+	#ARDUINOJSON_VERSION_MINOR
+ 17
+
+	)
+
+10 
+	#ARDUINOJSON_VERSION_REVISION
+ 0
+
+	)
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/examples/FullyFeaturedSSL/src/main.cpp
+
+6 
+	~<Ardušo.h
+>
+
+7 
+	~<ESP8266WiFi.h
+>
+
+8 
+	~<Tick”.h
+>
+
+9 
+	~<AsyncMq‰Cl›Á.h
+>
+
+11 
+	#WIFI_SSID
+ "My_Wi-Fi"
+
+	)
+
+12 
+	#WIFI_PASSWORD
+ "my-awesome-·sswÜd"
+
+	)
+
+14 
+	#MQTT_HOST
+ 
+	`IPAdd»ss
+(192, 168, 1, 10)
+
+	)
+
+16 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+17 
+	#MQTT_SECURE
+ 
+Œue
+
+
+	)
+
+18 
+	#MQTT_SERVER_FINGERPRINT
+ {0x7e, 0x36, 0x22, 0x01, 0xf9, 0x7e, 0x99, 0x2f, 0xc5, 0xdb, 0x3d, 0xbe, 0xac, 0x48, 0x67, 0x5b, 0x5d, 0x47, 0x94, 0xd2}
+
+	)
+
+19 
+	#MQTT_PORT
+ 8883
+
+	)
+
+21 
+	#MQTT_PORT
+ 1883
+
+	)
+
+24 
+AsyncMq‰Cl›Á
+ 
+	gmq‰Cl›Á
+;
+
+25 
+Tick”
+ 
+	gmq‰RecÚÃùTim”
+;
+
+27 
+WiFiEv’tHªdËr
+ 
+	gwifiCÚÃùHªdËr
+;
+
+28 
+WiFiEv’tHªdËr
+ 
+	gwifiDiscÚÃùHªdËr
+;
+
+29 
+Tick”
+ 
+	gwifiRecÚÃùTim”
+;
+
+31 
+	$cÚÃùToWifi
+() {
+
+32 
+S”Ÿl
+.
+	`´šŽn
+("Connecting�o Wi-Fi...");
+
+33 
+WiFi
+.
+	`begš
+(
+WIFI_SSID
+, 
+WIFI_PASSWORD
+);
+
+34 
+	}
+}
+
+36 
+	$cÚÃùToMq‰
+() {
+
+37 
+S”Ÿl
+.
+	`´šŽn
+("Connecting�o MQTT...");
+
+38 
+mq‰Cl›Á
+.
+	`cÚÃù
+();
+
+39 
+	}
+}
+
+41 
+	$ÚWifiCÚÃù
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+& 
+ev’t
+) {
+
+42 
+S”Ÿl
+.
+	`´šŽn
+("Connected�o Wi-Fi.");
+
+43 
+	`cÚÃùToMq‰
+();
+
+44 
+	}
+}
+
+46 
+	$ÚWifiDiscÚÃù
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+& 
+ev’t
+) {
+
+47 
+S”Ÿl
+.
+	`´šŽn
+("Disconnected from Wi-Fi.");
+
+48 
+mq‰RecÚÃùTim”
+.
+	`d‘ach
+();
+
+49 
+wifiRecÚÃùTim”
+.
+	`Úû
+(2, 
+cÚÃùToWifi
+);
+
+50 
+	}
+}
+
+52 
+	$ÚMq‰CÚÃù
+(
+boÞ
+ 
+£ssiÚP»£Á
+) {
+
+53 
+S”Ÿl
+.
+	`´šŽn
+("Connected�o MQTT.");
+
+54 
+S”Ÿl
+.
+	`´št
+("Session…resent: ");
+
+55 
+S”Ÿl
+.
+	`´šŽn
+(
+£ssiÚP»£Á
+);
+
+56 
+ušt16_t
+ 
+·ck‘IdSub
+ = 
+mq‰Cl›Á
+.
+	`subsüibe
+("test/lol", 2);
+
+57 
+S”Ÿl
+.
+	`´št
+("Subscribing‡t QoS 2,…acketId: ");
+
+58 
+S”Ÿl
+.
+	`´šŽn
+(
+·ck‘IdSub
+);
+
+59 
+mq‰Cl›Á
+.
+	`publish
+("‹¡/lÞ", 0, 
+Œue
+, "test 1");
+
+60 
+S”Ÿl
+.
+	`´šŽn
+("Publishing‡t QoS 0");
+
+61 
+ušt16_t
+ 
+·ck‘IdPub1
+ = 
+mq‰Cl›Á
+.
+	`publish
+("‹¡/lÞ", 1, 
+Œue
+, "test 2");
+
+62 
+S”Ÿl
+.
+	`´št
+("Publishing‡t QoS 1,…acketId: ");
+
+63 
+S”Ÿl
+.
+	`´šŽn
+(
+·ck‘IdPub1
+);
+
+64 
+ušt16_t
+ 
+·ck‘IdPub2
+ = 
+mq‰Cl›Á
+.
+	`publish
+("‹¡/lÞ", 2, 
+Œue
+, "test 3");
+
+65 
+S”Ÿl
+.
+	`´št
+("Publishing‡t QoS 2,…acketId: ");
+
+66 
+S”Ÿl
+.
+	`´šŽn
+(
+·ck‘IdPub2
+);
+
+67 
+	}
+}
+
+69 
+	$ÚMq‰DiscÚÃù
+(
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+»asÚ
+) {
+
+70 
+S”Ÿl
+.
+	`´šŽn
+("Disconnected from MQTT.");
+
+72 ià(
+»asÚ
+ =ð
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+TLS_BAD_FINGERPRINT
+) {
+
+73 
+S”Ÿl
+.
+	`´šŽn
+("Bad server fingerprint.");
+
+76 ià(
+WiFi
+.
+	`isCÚÃùed
+()) {
+
+77 
+mq‰RecÚÃùTim”
+.
+	`Úû
+(2, 
+cÚÃùToMq‰
+);
+
+79 
+	}
+}
+
+81 
+	$ÚMq‰Subsüibe
+(
+ušt16_t
+ 
+·ck‘Id
+, 
+ušt8_t
+ 
+qos
+) {
+
+82 
+S”Ÿl
+.
+	`´šŽn
+("Subscribe‡cknowledged.");
+
+83 
+S”Ÿl
+.
+	`´št
+("…acketId: ");
+
+84 
+S”Ÿl
+.
+	`´šŽn
+(
+·ck‘Id
+);
+
+85 
+S”Ÿl
+.
+	`´št
+(" qos: ");
+
+86 
+S”Ÿl
+.
+	`´šŽn
+(
+qos
+);
+
+87 
+	}
+}
+
+89 
+	$ÚMq‰Unsubsüibe
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+90 
+S”Ÿl
+.
+	`´šŽn
+("Unsubscribe‡cknowledged.");
+
+91 
+S”Ÿl
+.
+	`´št
+("…acketId: ");
+
+92 
+S”Ÿl
+.
+	`´šŽn
+(
+·ck‘Id
+);
+
+93 
+	}
+}
+
+95 
+	$ÚMq‰Mes§ge
+(* 
+tÝic
+, * 
+·ylßd
+, 
+AsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ 
+´Ý”t›s
+, 
+size_t
+ 
+Ën
+, size_ˆ
+šdex
+, size_ˆ
+tÙ®
+) {
+
+96 
+S”Ÿl
+.
+	`´šŽn
+("Publish„eceived.");
+
+97 
+S”Ÿl
+.
+	`´št
+("�opic: ");
+
+98 
+S”Ÿl
+.
+	`´šŽn
+(
+tÝic
+);
+
+99 
+S”Ÿl
+.
+	`´št
+(" qos: ");
+
+100 
+S”Ÿl
+.
+	`´šŽn
+(
+´Ý”t›s
+.
+qos
+);
+
+101 
+S”Ÿl
+.
+	`´št
+(" dup: ");
+
+102 
+S”Ÿl
+.
+	`´šŽn
+(
+´Ý”t›s
+.
+dup
+);
+
+103 
+S”Ÿl
+.
+	`´št
+("„etain: ");
+
+104 
+S”Ÿl
+.
+	`´šŽn
+(
+´Ý”t›s
+.
+»�š
+);
+
+105 
+S”Ÿl
+.
+	`´št
+("†en: ");
+
+106 
+S”Ÿl
+.
+	`´šŽn
+(
+Ën
+);
+
+107 
+S”Ÿl
+.
+	`´št
+(" index: ");
+
+108 
+S”Ÿl
+.
+	`´šŽn
+(
+šdex
+);
+
+109 
+S”Ÿl
+.
+	`´št
+("�otal: ");
+
+110 
+S”Ÿl
+.
+	`´šŽn
+(
+tÙ®
+);
+
+111 
+	}
+}
+
+113 
+	$ÚMq‰Publish
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+114 
+S”Ÿl
+.
+	`´šŽn
+("Publish‡cknowledged.");
+
+115 
+S”Ÿl
+.
+	`´št
+("…acketId: ");
+
+116 
+S”Ÿl
+.
+	`´šŽn
+(
+·ck‘Id
+);
+
+117 
+	}
+}
+
+119 
+	$£tup
+() {
+
+120 
+S”Ÿl
+.
+	`begš
+(115200);
+
+121 
+S”Ÿl
+.
+	`´šŽn
+();
+
+122 
+S”Ÿl
+.
+	`´šŽn
+();
+
+124 
+wifiCÚÃùHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeGÙIP
+(
+ÚWifiCÚÃù
+);
+
+125 
+wifiDiscÚÃùHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeDiscÚÃùed
+(
+ÚWifiDiscÚÃù
+);
+
+127 
+mq‰Cl›Á
+.
+	`ÚCÚÃù
+(
+ÚMq‰CÚÃù
+);
+
+128 
+mq‰Cl›Á
+.
+	`ÚDiscÚÃù
+(
+ÚMq‰DiscÚÃù
+);
+
+129 
+mq‰Cl›Á
+.
+	`ÚSubsüibe
+(
+ÚMq‰Subsüibe
+);
+
+130 
+mq‰Cl›Á
+.
+	`ÚUnsubsüibe
+(
+ÚMq‰Unsubsüibe
+);
+
+131 
+mq‰Cl›Á
+.
+	`ÚMes§ge
+(
+ÚMq‰Mes§ge
+);
+
+132 
+mq‰Cl›Á
+.
+	`ÚPublish
+(
+ÚMq‰Publish
+);
+
+133 
+mq‰Cl›Á
+.
+	`£tS”v”
+(
+MQTT_HOST
+, 
+MQTT_PORT
+);
+
+134 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+135 
+mq‰Cl›Á
+.
+	`£tSecu»
+(
+MQTT_SECURE
+);
+
+136 ià(
+MQTT_SECURE
+) {
+
+137 
+mq‰Cl›Á
+.
+	`addS”v”Fšg”´št
+((cÚ¡ 
+ušt8_t
+[])
+MQTT_SERVER_FINGERPRINT
+);
+
+141 
+	`cÚÃùToWifi
+();
+
+142 
+	}
+}
+
+144 
+	$loÝ
+() {
+
+145 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.cpp
+
+1 
+	~"AsyncMq‰Cl›Á.hµ
+"
+
+3 
+	gAsyncMq‰Cl›Á
+::
+	$AsyncMq‰Cl›Á
+()
+
+4 : 
+	`_cÚÃùed
+(
+çl£
+)
+
+5 , 
+	`_cÚÃùPack‘NÙEnoughS·û
+(
+çl£
+)
+
+6 , 
+	`_discÚÃùOnPÞl
+(
+çl£
+)
+
+7 , 
+	`_ŽsBadFšg”´št
+(
+çl£
+)
+
+8 , 
+	`_Ï¡Cl›ÁAùiv™y
+(0)
+
+9 , 
+	`_Ï¡S”v”Aùiv™y
+(0)
+
+10 , 
+	`_Ï¡PšgReque¡Time
+(0)
+
+11 , 
+	`_ho¡
+(
+nuÎ±r
+)
+
+12 , 
+	$_u£Ip
+(
+çl£
+)
+
+13 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+14 , 
+	$_£cu»
+(
+çl£
+)
+
+16 , 
+	`_pÜt
+(0)
+
+17 , 
+	`_k“pAlive
+(15)
+
+18 , 
+	`_þ—nSessiÚ
+(
+Œue
+)
+
+19 , 
+	`_þ›ÁId
+(
+nuÎ±r
+)
+
+20 , 
+	`_u£ºame
+(
+nuÎ±r
+)
+
+21 , 
+	`_·sswÜd
+(
+nuÎ±r
+)
+
+22 , 
+	`_wžlTÝic
+(
+nuÎ±r
+)
+
+23 , 
+	`_wžlPaylßd
+(
+nuÎ±r
+)
+
+24 , 
+	`_wžlPaylßdL’gth
+(0)
+
+25 , 
+	`_wžlQos
+(0)
+
+26 , 
+	`_wžlR‘aš
+(
+çl£
+)
+
+27 , 
+_·rsšgInfÜm©iÚ
+ { .
+bufãrS�‹
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+NONE
+ 
+	}
+}
+
+28 , 
+_cu¼’tP¬£dPack‘
+(
+nuÎ±r
+)
+
+29 , 
+_»maššgL’gthBufãrPos™iÚ
+(0)
+
+30 , 
+	$_ÃxtPack‘Id
+(1) {
+
+31 
+_þ›Á
+.
+	`ÚCÚÃù
+([](* 
+obj
+, 
+AsyncCl›Á
+* 
+c
+è{ (
+¡©ic_ÿ¡
+<
+AsyncMq‰Cl›Á
+*>(obj))->
+	`_ÚCÚÃù
+(c); }, 
+this
+);
+
+32 
+_þ›Á
+.
+	`ÚDiscÚÃù
+([](* 
+obj
+, 
+AsyncCl›Á
+* 
+c
+è{ (
+¡©ic_ÿ¡
+<
+AsyncMq‰Cl›Á
+*>(obj))->
+	`_ÚDiscÚÃù
+(c); }, 
+this
+);
+
+33 
+_þ›Á
+.
+	`ÚE¼Ü
+([](* 
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+št8_t
+ 
+”rÜ
+è{ (
+¡©ic_ÿ¡
+<
+AsyncMq‰Cl›Á
+*>(obj))->
+	`_ÚE¼Ü
+(c,ƒ¼Ü); }, 
+this
+);
+
+34 
+_þ›Á
+.
+	`ÚTimeout
+([](* 
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+ušt32_t
+ 
+time
+è{ (
+¡©ic_ÿ¡
+<
+AsyncMq‰Cl›Á
+*>(obj))->
+	`_ÚTimeout
+(c,�ime); }, 
+this
+);
+
+35 
+_þ›Á
+.
+	`ÚAck
+([](* 
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+è{ (
+¡©ic_ÿ¡
+<
+AsyncMq‰Cl›Á
+*>(obj))->
+	`_ÚAck
+(c,†’,�ime); }, 
+this
+);
+
+36 
+_þ›Á
+.
+	`ÚD©a
+([](* 
+obj
+, 
+AsyncCl›Á
+* 
+c
+, * 
+d©a
+, 
+size_t
+ 
+Ën
+è{ (
+¡©ic_ÿ¡
+<
+AsyncMq‰Cl›Á
+*>(obj))->
+	`_ÚD©a
+(c, s�tic_ÿ¡<*>(d©a),†’); }, 
+this
+);
+
+37 
+_þ›Á
+.
+	`ÚPÞl
+([](* 
+obj
+, 
+AsyncCl›Á
+* 
+c
+è{ (
+¡©ic_ÿ¡
+<
+AsyncMq‰Cl›Á
+*>(obj))->
+	`_ÚPÞl
+(c); }, 
+this
+);
+
+39 #ifdeà
+ESP32
+
+
+40 
+	`¥rštf
+(
+_g’”©edCl›ÁId
+, "e¥32-%06Îx", 
+ESP
+.
+	`g‘Efu£Mac
+());
+
+41 
+_xSem­hÜe
+ = 
+	`xSem­hÜeC»©eMu‹x
+();
+
+42 #–ià
+	`defšed
+(
+ESP8266
+)
+
+43 
+	`¥rštf
+(
+_g’”©edCl›ÁId
+, "e¥8266-%06x", 
+ESP
+.
+	`g‘Ch�Id
+());
+
+45 
+_þ›ÁId
+ = 
+_g’”©edCl›ÁId
+;
+
+47 
+	`£tMaxTÝicL’gth
+(128);
+
+48 
+	}
+}
+
+50 
+	gAsyncMq‰Cl›Á
+::~
+	$AsyncMq‰Cl›Á
+() {
+
+51 
+d–‘e
+ 
+_cu¼’tP¬£dPack‘
+;
+
+52 
+d–‘e
+[] 
+_·rsšgInfÜm©iÚ
+.
+tÝicBufãr
+;
+
+53 #ifdeà
+ESP32
+
+
+54 
+	`vSem­hÜeD–‘e
+(
+_xSem­hÜe
+);
+
+56 
+	}
+}
+
+58 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tK“pAlive
+(
+ušt16_t
+ 
+k“pAlive
+) {
+
+59 
+_k“pAlive
+ = 
+k“pAlive
+;
+
+60  *
+this
+;
+
+61 
+	}
+}
+
+63 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tCl›ÁId
+(cÚ¡ * 
+þ›ÁId
+) {
+
+64 
+_þ›ÁId
+ = 
+þ›ÁId
+;
+
+65  *
+this
+;
+
+66 
+	}
+}
+
+68 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tCËªSessiÚ
+(
+boÞ
+ 
+þ—nSessiÚ
+) {
+
+69 
+_þ—nSessiÚ
+ = 
+þ—nSessiÚ
+;
+
+70  *
+this
+;
+
+71 
+	}
+}
+
+73 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tMaxTÝicL’gth
+(
+ušt16_t
+ 
+maxTÝicL’gth
+) {
+
+74 
+_·rsšgInfÜm©iÚ
+.
+maxTÝicL’gth
+ = maxTopicLength;
+
+75 
+d–‘e
+[] 
+_·rsšgInfÜm©iÚ
+.
+tÝicBufãr
+;
+
+76 
+_·rsšgInfÜm©iÚ
+.
+tÝicBufãr
+ = 
+Ãw
+ [
+maxTÝicL’gth
+ + 1];
+
+77  *
+this
+;
+
+78 
+	}
+}
+
+80 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tC»d’tŸls
+(cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+) {
+
+81 
+_u£ºame
+ = 
+u£ºame
+;
+
+82 
+_·sswÜd
+ = 
+·sswÜd
+;
+
+83  *
+this
+;
+
+84 
+	}
+}
+
+86 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tWžl
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+»�š
+, cÚ¡ * 
+·ylßd
+, 
+size_t
+ 
+Ëngth
+) {
+
+87 
+_wžlTÝic
+ = 
+tÝic
+;
+
+88 
+_wžlQos
+ = 
+qos
+;
+
+89 
+_wžlR‘aš
+ = 
+»�š
+;
+
+90 
+_wžlPaylßd
+ = 
+·ylßd
+;
+
+91 
+_wžlPaylßdL’gth
+ = 
+Ëngth
+;
+
+92  *
+this
+;
+
+93 
+	}
+}
+
+95 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tS”v”
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+) {
+
+96 
+_u£Ip
+ = 
+Œue
+;
+
+97 
+_�
+ = 
+�
+;
+
+98 
+_pÜt
+ = 
+pÜt
+;
+
+99  *
+this
+;
+
+100 
+	}
+}
+
+102 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tS”v”
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+) {
+
+103 
+_u£Ip
+ = 
+çl£
+;
+
+104 
+_ho¡
+ = 
+ho¡
+;
+
+105 
+_pÜt
+ = 
+pÜt
+;
+
+106  *
+this
+;
+
+107 
+	}
+}
+
+109 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+110 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$£tSecu»
+(
+boÞ
+ 
+£cu»
+) {
+
+111 
+_£cu»
+ = 
+£cu»
+;
+
+112  *
+this
+;
+
+113 
+	}
+}
+
+115 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$addS”v”Fšg”´št
+(cÚ¡ 
+ušt8_t
+* 
+fšg”´št
+) {
+
+116 
+¡d
+::
+¬¿y
+<
+ušt8_t
+, 
+SHA1_SIZE
+> 
+ÃwFšg”´št
+;
+
+117 
+	`memýy
+(
+ÃwFšg”´št
+.
+	`d©a
+(), 
+fšg”´št
+, 
+SHA1_SIZE
+);
+
+118 
+_£cu»S”v”Fšg”´šts
+.
+	`push_back
+(
+ÃwFšg”´št
+);
+
+119  *
+this
+;
+
+120 
+	}
+}
+
+123 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$ÚCÚÃù
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnCÚÃùU£rC®lback
+ 
+ÿÎback
+) {
+
+124 
+_ÚCÚÃùU£rC®lbacks
+.
+	`push_back
+(
+ÿÎback
+);
+
+125  *
+this
+;
+
+126 
+	}
+}
+
+128 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$ÚDiscÚÃù
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnDiscÚÃùU£rC®lback
+ 
+ÿÎback
+) {
+
+129 
+_ÚDiscÚÃùU£rC®lbacks
+.
+	`push_back
+(
+ÿÎback
+);
+
+130  *
+this
+;
+
+131 
+	}
+}
+
+133 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$ÚSubsüibe
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnSubsüibeU£rC®lback
+ 
+ÿÎback
+) {
+
+134 
+_ÚSubsüibeU£rC®lbacks
+.
+	`push_back
+(
+ÿÎback
+);
+
+135  *
+this
+;
+
+136 
+	}
+}
+
+138 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$ÚUnsubsüibe
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnUnsubsüibeU£rC®lback
+ 
+ÿÎback
+) {
+
+139 
+_ÚUnsubsüibeU£rC®lbacks
+.
+	`push_back
+(
+ÿÎback
+);
+
+140  *
+this
+;
+
+141 
+	}
+}
+
+143 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$ÚMes§ge
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnMes§geU£rC®lback
+ 
+ÿÎback
+) {
+
+144 
+_ÚMes§geU£rC®lbacks
+.
+	`push_back
+(
+ÿÎback
+);
+
+145  *
+this
+;
+
+146 
+	}
+}
+
+148 
+	gAsyncMq‰Cl›Á
+& AsyncMq‰Cl›Á::
+	$ÚPublish
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnPublishU£rC®lback
+ 
+ÿÎback
+) {
+
+149 
+_ÚPublishU£rC®lbacks
+.
+	`push_back
+(
+ÿÎback
+);
+
+150  *
+this
+;
+
+151 
+	}
+}
+
+153 
+	gAsyncMq‰Cl›Á
+::
+	$_ä“Cu¼’tP¬£dPack‘
+() {
+
+154 
+d–‘e
+ 
+_cu¼’tP¬£dPack‘
+;
+
+155 
+_cu¼’tP¬£dPack‘
+ = 
+nuÎ±r
+;
+
+156 
+	}
+}
+
+158 
+	gAsyncMq‰Cl›Á
+::
+	$_þ—r
+() {
+
+159 
+_Ï¡PšgReque¡Time
+ = 0;
+
+160 
+_cÚÃùed
+ = 
+çl£
+;
+
+161 
+_discÚÃùOnPÞl
+ = 
+çl£
+;
+
+162 
+_cÚÃùPack‘NÙEnoughS·û
+ = 
+çl£
+;
+
+163 
+_ŽsBadFšg”´št
+ = 
+çl£
+;
+
+164 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+166 
+_³ndšgPubR–s
+.
+	`þ—r
+();
+
+167 
+_³ndšgPubR–s
+.
+	`shršk_to_f™
+();
+
+169 
+_toS’dAcks
+.
+	`þ—r
+();
+
+170 
+_toS’dAcks
+.
+	`shršk_to_f™
+();
+
+172 
+_ÃxtPack‘Id
+ = 1;
+
+173 
+_·rsšgInfÜm©iÚ
+.
+bufãrS�‹
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+NONE
+;
+
+174 
+	}
+}
+
+177 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚCÚÃù
+(
+AsyncCl›Á
+* 
+þ›Á
+) {
+
+178 ()
+þ›Á
+;
+
+180 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+181 ià(
+_£cu»
+ && 
+_£cu»S”v”Fšg”´šts
+.
+	`size
+() > 0) {
+
+182 
+SSL
+* 
+þ›ÁS¦
+ = 
+_þ›Á
+.
+	`g‘SSL
+();
+
+184 
+boÞ
+ 
+s¦FoundFšg”´št
+ = 
+çl£
+;
+
+185 
+¡d
+::
+¬¿y
+<
+ušt8_t
+, 
+SHA1_SIZE
+> 
+fšg”´št
+ : 
+_£cu»S”v”Fšg”´šts
+) {
+
+186 ià(
+	`s¦_m©ch_fšg”´št
+(
+þ›ÁS¦
+, 
+fšg”´št
+.
+	`d©a
+()è=ð
+SSL_OK
+) {
+
+187 
+s¦FoundFšg”´št
+ = 
+Œue
+;
+
+192 ià(!
+s¦FoundFšg”´št
+) {
+
+193 
+_ŽsBadFšg”´št
+ = 
+Œue
+;
+
+194 
+_þ›Á
+.
+	`þo£
+(
+Œue
+);
+
+200 
+fixedH—d”
+[5];
+
+201 
+fixedH—d”
+[0] = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+CONNECT
+;
+
+202 
+fixedH—d”
+[0] = fixedHeader[0] << 4;
+
+203 
+fixedH—d”
+[0] = fixedH—d”[0] | 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+CONNECT_RESERVED
+;
+
+205 
+ušt16_t
+ 
+´ÙocÞNameL’gth
+ = 4;
+
+206 
+´ÙocÞNameL’gthBy‹s
+[2];
+
+207 
+´ÙocÞNameL’gthBy‹s
+[0] = 
+´ÙocÞNameL’gth
+ >> 8;
+
+208 
+´ÙocÞNameL’gthBy‹s
+[1] = 
+´ÙocÞNameL’gth
+ & 0xFF;
+
+210 
+´ÙocÞLev–
+[1];
+
+211 
+´ÙocÞLev–
+[0] = 0x04;
+
+213 
+cÚÃùFÏgs
+[1];
+
+214 
+cÚÃùFÏgs
+[0] = 0;
+
+215 ià(
+_þ—nSessiÚ
+è
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+CLEAN_SESSION
+;
+
+216 ià(
+_u£ºame
+ !ð
+nuÎ±r
+è
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+USERNAME
+;
+
+217 ià(
+_·sswÜd
+ !ð
+nuÎ±r
+è
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+PASSWORD
+;
+
+218 ià(
+_wžlTÝic
+ !ð
+nuÎ±r
+) {
+
+219 
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+WILL
+;
+
+220 ià(
+_wžlR‘aš
+è
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+WILL_RETAIN
+;
+
+221 
+_wžlQos
+) {
+
+223 
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+WILL_QOS0
+;
+
+226 
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+WILL_QOS1
+;
+
+229 
+cÚÃùFÏgs
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚÃùFÏg
+.
+WILL_QOS2
+;
+
+234 
+k“pAliveBy‹s
+[2];
+
+235 
+k“pAliveBy‹s
+[0] = 
+_k“pAlive
+ >> 8;
+
+236 
+k“pAliveBy‹s
+[1] = 
+_k“pAlive
+ & 0xFF;
+
+238 
+ušt16_t
+ 
+þ›ÁIdL’gth
+ = 
+	`¡¾’
+(
+_þ›ÁId
+);
+
+239 
+þ›ÁIdL’gthBy‹s
+[2];
+
+240 
+þ›ÁIdL’gthBy‹s
+[0] = 
+þ›ÁIdL’gth
+ >> 8;
+
+241 
+þ›ÁIdL’gthBy‹s
+[1] = 
+þ›ÁIdL’gth
+ & 0xFF;
+
+244 
+ušt16_t
+ 
+wžlTÝicL’gth
+ = 0;
+
+245 
+wžlTÝicL’gthBy‹s
+[2];
+
+246 
+ušt16_t
+ 
+wžlPaylßdL’gth
+ = 
+_wžlPaylßdL’gth
+;
+
+247 
+wžlPaylßdL’gthBy‹s
+[2];
+
+248 ià(
+_wžlTÝic
+ !ð
+nuÎ±r
+) {
+
+249 
+wžlTÝicL’gth
+ = 
+	`¡¾’
+(
+_wžlTÝic
+);
+
+250 
+wžlTÝicL’gthBy‹s
+[0] = 
+wžlTÝicL’gth
+ >> 8;
+
+251 
+wžlTÝicL’gthBy‹s
+[1] = 
+wžlTÝicL’gth
+ & 0xFF;
+
+253 ià(
+_wžlPaylßd
+ !ð
+nuÎ±r
+ && 
+wžlPaylßdL’gth
+ =ð0èwžlPaylßdL’gth = 
+	`¡¾’
+(_willPayload);
+
+255 
+wžlPaylßdL’gthBy‹s
+[0] = 
+wžlPaylßdL’gth
+ >> 8;
+
+256 
+wžlPaylßdL’gthBy‹s
+[1] = 
+wžlPaylßdL’gth
+ & 0xFF;
+
+259 
+ušt16_t
+ 
+u£ºameL’gth
+ = 0;
+
+260 
+u£ºameL’gthBy‹s
+[2];
+
+261 ià(
+_u£ºame
+ !ð
+nuÎ±r
+) {
+
+262 
+u£ºameL’gth
+ = 
+	`¡¾’
+(
+_u£ºame
+);
+
+263 
+u£ºameL’gthBy‹s
+[0] = 
+u£ºameL’gth
+ >> 8;
+
+264 
+u£ºameL’gthBy‹s
+[1] = 
+u£ºameL’gth
+ & 0xFF;
+
+267 
+ušt16_t
+ 
+·sswÜdL’gth
+ = 0;
+
+268 
+·sswÜdL’gthBy‹s
+[2];
+
+269 ià(
+_·sswÜd
+ !ð
+nuÎ±r
+) {
+
+270 
+·sswÜdL’gth
+ = 
+	`¡¾’
+(
+_·sswÜd
+);
+
+271 
+·sswÜdL’gthBy‹s
+[0] = 
+·sswÜdL’gth
+ >> 8;
+
+272 
+·sswÜdL’gthBy‹s
+[1] = 
+·sswÜdL’gth
+ & 0xFF;
+
+275 
+ušt32_t
+ 
+»maššgL’gth
+ = 2 + 
+´ÙocÞNameL’gth
+ + 1 + 1 + 2 + 2 + 
+þ›ÁIdL’gth
+;
+
+276 ià(
+_wžlTÝic
+ !ð
+nuÎ±r
+è
+»maššgL’gth
+ +ð2 + 
+wžlTÝicL’gth
+ + 2 + 
+wžlPaylßdL’gth
+;
+
+277 ià(
+_u£ºame
+ !ð
+nuÎ±r
+è
+»maššgL’gth
+ +ð2 + 
+u£ºameL’gth
+;
+
+278 ià(
+_·sswÜd
+ !ð
+nuÎ±r
+è
+»maššgL’gth
+ +ð2 + 
+·sswÜdL’gth
+;
+
+279 
+ušt8_t
+ 
+»maššgL’gthL’gth
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H–³rs
+::
+	`’codeRemaššgL’gth
+(
+»maššgL’gth
+, 
+fixedH—d”
+ + 1);
+
+281 
+ušt32_t
+ 
+ÃededS·û
+ = 1 + 
+»maššgL’gthL’gth
+;
+
+282 
+ÃededS·û
+ += 2;
+
+283 
+ÃededS·û
+ +ð
+´ÙocÞNameL’gth
+;
+
+284 
+ÃededS·û
+ += 1;
+
+285 
+ÃededS·û
+ += 1;
+
+286 
+ÃededS·û
+ += 2;
+
+287 
+ÃededS·û
+ += 2;
+
+288 
+ÃededS·û
+ +ð
+þ›ÁIdL’gth
+;
+
+289 ià(
+_wžlTÝic
+ !ð
+nuÎ±r
+) {
+
+290 
+ÃededS·û
+ += 2;
+
+291 
+ÃededS·û
+ +ð
+wžlTÝicL’gth
+;
+
+293 
+ÃededS·û
+ += 2;
+
+294 ià(
+_wžlPaylßd
+ !ð
+nuÎ±r
+è
+ÃededS·û
+ +ð
+wžlPaylßdL’gth
+;
+
+296 ià(
+_u£ºame
+ !ð
+nuÎ±r
+) {
+
+297 
+ÃededS·û
+ += 2;
+
+298 
+ÃededS·û
+ +ð
+u£ºameL’gth
+;
+
+300 ià(
+_·sswÜd
+ !ð
+nuÎ±r
+) {
+
+301 
+ÃededS·û
+ += 2;
+
+302 
+ÃededS·û
+ +ð
+·sswÜdL’gth
+;
+
+305 
+	`SEMAPHORE_TAKE
+();
+
+306 ià(
+_þ›Á
+.
+	`¥aû
+(è< 
+ÃededS·û
+) {
+
+307 
+_cÚÃùPack‘NÙEnoughS·û
+ = 
+Œue
+;
+
+308 
+_þ›Á
+.
+	`þo£
+(
+Œue
+);
+
+309 
+	`SEMAPHORE_GIVE
+();
+
+313 
+_þ›Á
+.
+	`add
+(
+fixedH—d”
+, 1 + 
+»maššgL’gthL’gth
+);
+
+316 
+£ndbufãr
+[12];
+
+317 
+£ndbufãr
+[0] = 
+´ÙocÞNameL’gthBy‹s
+[0];
+
+318 
+£ndbufãr
+[1] = 
+´ÙocÞNameL’gthBy‹s
+[1];
+
+320 
+£ndbufãr
+[2] = 'M';
+
+321 
+£ndbufãr
+[3] = 'Q';
+
+322 
+£ndbufãr
+[4] = 'T';
+
+323 
+£ndbufãr
+[5] = 'T';
+
+325 
+£ndbufãr
+[6] = 
+´ÙocÞLev–
+[0];
+
+326 
+£ndbufãr
+[7] = 
+cÚÃùFÏgs
+[0];
+
+327 
+£ndbufãr
+[8] = 
+k“pAliveBy‹s
+[0];
+
+328 
+£ndbufãr
+[9] = 
+k“pAliveBy‹s
+[1];
+
+329 
+£ndbufãr
+[10] = 
+þ›ÁIdL’gthBy‹s
+[0];
+
+330 
+£ndbufãr
+[11] = 
+þ›ÁIdL’gthBy‹s
+[1];
+
+332 
+_þ›Á
+.
+	`add
+(
+£ndbufãr
+, 12);
+
+334 
+_þ›Á
+.
+	`add
+(
+_þ›ÁId
+, 
+þ›ÁIdL’gth
+);
+
+335 ià(
+_wžlTÝic
+ !ð
+nuÎ±r
+) {
+
+336 
+_þ›Á
+.
+	`add
+(
+wžlTÝicL’gthBy‹s
+, 2);
+
+337 
+_þ›Á
+.
+	`add
+(
+_wžlTÝic
+, 
+wžlTÝicL’gth
+);
+
+339 
+_þ›Á
+.
+	`add
+(
+wžlPaylßdL’gthBy‹s
+, 2);
+
+340 ià(
+_wžlPaylßd
+ !ð
+nuÎ±r
+è
+_þ›Á
+.
+	`add
+(_wžlPaylßd, 
+wžlPaylßdL’gth
+);
+
+342 ià(
+_u£ºame
+ !ð
+nuÎ±r
+) {
+
+343 
+_þ›Á
+.
+	`add
+(
+u£ºameL’gthBy‹s
+, 2);
+
+344 
+_þ›Á
+.
+	`add
+(
+_u£ºame
+, 
+u£ºameL’gth
+);
+
+346 ià(
+_·sswÜd
+ !ð
+nuÎ±r
+) {
+
+347 
+_þ›Á
+.
+	`add
+(
+·sswÜdL’gthBy‹s
+, 2);
+
+348 
+_þ›Á
+.
+	`add
+(
+_·sswÜd
+, 
+·sswÜdL’gth
+);
+
+350 
+_þ›Á
+.
+	`£nd
+();
+
+351 
+_Ï¡Cl›ÁAùiv™y
+ = 
+	`mžlis
+();
+
+352 
+	`SEMAPHORE_GIVE
+();
+
+353 
+	}
+}
+
+355 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚDiscÚÃù
+(
+AsyncCl›Á
+* 
+þ›Á
+) {
+
+356 ()
+þ›Á
+;
+
+357 
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+»asÚ
+;
+
+359 ià(
+_cÚÃùPack‘NÙEnoughS·û
+) {
+
+360 
+»asÚ
+ = 
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+ESP8266_NOT_ENOUGH_SPACE
+;
+
+361 } ià(
+_ŽsBadFšg”´št
+) {
+
+362 
+»asÚ
+ = 
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+TLS_BAD_FINGERPRINT
+;
+
+364 
+»asÚ
+ = 
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+TCP_DISCONNECTED
+;
+
+367 
+	`_þ—r
+();
+
+369 autØ
+ÿÎback
+ : 
+_ÚDiscÚÃùU£rC®lbacks
+è
+	`ÿÎback
+(
+»asÚ
+);
+
+370 
+	}
+}
+
+372 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚE¼Ü
+(
+AsyncCl›Á
+* 
+þ›Á
+, 
+št8_t
+ 
+”rÜ
+) {
+
+373 ()
+þ›Á
+;
+
+374 ()
+”rÜ
+;
+
+376 
+	}
+}
+
+378 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚTimeout
+(
+AsyncCl›Á
+* 
+þ›Á
+, 
+ušt32_t
+ 
+time
+) {
+
+379 ()
+þ›Á
+;
+
+380 ()
+time
+;
+
+382 
+	}
+}
+
+384 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚAck
+(
+AsyncCl›Á
+* 
+þ›Á
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+) {
+
+385 ()
+þ›Á
+;
+
+386 ()
+Ën
+;
+
+387 ()
+time
+;
+
+388 
+	}
+}
+
+390 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚD©a
+(
+AsyncCl›Á
+* 
+þ›Á
+, * 
+d©a
+, 
+size_t
+ 
+Ën
+) {
+
+391 ()
+þ›Á
+;
+
+392 
+size_t
+ 
+cu¼’tBy‹Pos™iÚ
+ = 0;
+
+393 
+cu¼’tBy‹
+;
+
+395 
+_·rsšgInfÜm©iÚ
+.
+bufãrS�‹
+) {
+
+396 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+NONE
+:
+
+397 
+cu¼’tBy‹
+ = 
+d©a
+[
+cu¼’tBy‹Pos™iÚ
+++];
+
+398 
+_·rsšgInfÜm©iÚ
+.
+·ck‘Ty³
+ = 
+cu¼’tBy‹
+ >> 4;
+
+399 
+_·rsšgInfÜm©iÚ
+.
+·ck‘FÏgs
+ = (
+cu¼’tBy‹
+ << 4) >> 4;
+
+400 
+_·rsšgInfÜm©iÚ
+.
+bufãrS�‹
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+REMAINING_LENGTH
+;
+
+401 
+_Ï¡S”v”Aùiv™y
+ = 
+	`mžlis
+();
+
+402 
+_·rsšgInfÜm©iÚ
+.
+·ck‘Ty³
+) {
+
+403 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+CONNACK
+:
+
+404 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`CÚnAckPack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚCÚnAck
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+));
+
+406 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PINGRESP
+:
+
+407 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`PšgRe¥Pack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚPšgRe¥
+, 
+this
+));
+
+409 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+SUBACK
+:
+
+410 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`SubAckPack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚSubAck
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+));
+
+412 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+UNSUBACK
+:
+
+413 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`UnsubAckPack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚUnsubAck
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+415 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBLISH
+:
+
+416 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`PublishPack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚMes§ge
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+, std::¶aûhÞd”s::
+_3
+, std::¶aûhÞd”s::
+_4
+, std::¶aûhÞd”s::
+_5
+, std::¶aûhÞd”s::
+_6
+, std::¶aûhÞd”s::
+_7
+, std::¶aûhÞd”s::
+_8
+, std::¶aûhÞd”s::
+_9
+), std::bšd(&AsyncMq‰Cl›Á::
+_ÚPublish
+,�his, std::placeholders::_1, std::placeholders::_2));
+
+418 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBREL
+:
+
+419 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`PubR–Pack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚPubR–
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+421 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBACK
+:
+
+422 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`PubAckPack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚPubAck
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+424 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBREC
+:
+
+425 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`PubRecPack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚPubRec
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+427 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBCOMP
+:
+
+428 
+_cu¼’tP¬£dPack‘
+ = 
+Ãw
+ 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+	`PubCompPack‘
+(&
+_·rsšgInfÜm©iÚ
+, 
+¡d
+::
+	`bšd
+(&
+AsyncMq‰Cl›Á
+::
+_ÚPubComp
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+434 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+REMAINING_LENGTH
+:
+
+435 
+cu¼’tBy‹
+ = 
+d©a
+[
+cu¼’tBy‹Pos™iÚ
+++];
+
+436 
+_»maššgL’gthBufãr
+[
+_»maššgL’gthBufãrPos™iÚ
+++] = 
+cu¼’tBy‹
+;
+
+437 ià(
+cu¼’tBy‹
+ >> 7 == 0) {
+
+438 
+_·rsšgInfÜm©iÚ
+.
+»maššgL’gth
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H–³rs
+::
+	`decodeRemaššgL’gth
+(
+_»maššgL’gthBufãr
+);
+
+439 
+_»maššgL’gthBufãrPos™iÚ
+ = 0;
+
+440 ià(
+_·rsšgInfÜm©iÚ
+.
+»maššgL’gth
+ > 0) {
+
+441 
+_·rsšgInfÜm©iÚ
+.
+bufãrS�‹
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+VARIABLE_HEADER
+;
+
+444 
+_·rsšgInfÜm©iÚ
+.
+bufãrS�‹
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+NONE
+;
+
+445 
+	`_ÚPšgRe¥
+();
+
+449 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+VARIABLE_HEADER
+:
+
+450 
+_cu¼’tP¬£dPack‘
+->
+	`·r£V¬ŸbËH—d”
+(
+d©a
+, 
+Ën
+, &
+cu¼’tBy‹Pos™iÚ
+);
+
+452 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+BufãrS�‹
+::
+PAYLOAD
+:
+
+453 
+_cu¼’tP¬£dPack‘
+->
+	`·r£Paylßd
+(
+d©a
+, 
+Ën
+, &
+cu¼’tBy‹Pos™iÚ
+);
+
+456 
+cu¼’tBy‹Pos™iÚ
+ = 
+Ën
+;
+
+458 } 
+cu¼’tBy‹Pos™iÚ
+ !ð
+Ën
+);
+
+459 
+	}
+}
+
+461 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚPÞl
+(
+AsyncCl›Á
+* 
+þ›Á
+) {
+
+462 ià(!
+_cÚÃùed
+) ;
+
+465 ià(
+_Ï¡PšgReque¡Time
+ !ð0 && (
+	`mžlis
+(è- _Ï¡PšgReque¡Timeè>ð(
+_k“pAlive
+ * 1000 * 2)) {
+
+466 
+	`discÚÃù
+();
+
+469 } ià(
+_Ï¡PšgReque¡Time
+ =ð0 && (
+	`mžlis
+(è- 
+_Ï¡Cl›ÁAùiv™y
+è>ð(
+_k“pAlive
+ * 1000 * 0.7)) {
+
+470 
+	`_£ndPšg
+();
+
+473 } ià(
+_cÚÃùed
+ && 
+_Ï¡PšgReque¡Time
+ =ð0 && (
+	`mžlis
+(è- 
+_Ï¡S”v”Aùiv™y
+è>ð(
+_k“pAlive
+ * 1000 * 0.7)) {
+
+474 
+	`_£ndPšg
+();
+
+480 
+	`_£ndAcks
+();
+
+484 ià(
+_discÚÃùOnPÞl
+) {
+
+485 
+	`_£ndDiscÚÃù
+();
+
+487 
+	}
+}
+
+490 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚPšgRe¥
+() {
+
+491 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+492 
+_Ï¡PšgReque¡Time
+ = 0;
+
+493 
+	}
+}
+
+495 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚCÚnAck
+(
+boÞ
+ 
+£ssiÚP»£Á
+, 
+ušt8_t
+ 
+cÚÃùR‘uºCode
+) {
+
+496 ()
+£ssiÚP»£Á
+;
+
+497 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+499 ià(
+cÚÃùR‘uºCode
+ == 0) {
+
+500 
+_cÚÃùed
+ = 
+Œue
+;
+
+501 autØ
+ÿÎback
+ : 
+_ÚCÚÃùU£rC®lbacks
+è
+	`ÿÎback
+(
+£ssiÚP»£Á
+);
+
+505 
+	}
+}
+
+507 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚSubAck
+(
+ušt16_t
+ 
+·ck‘Id
+, 
+¡©us
+) {
+
+508 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+510 autØ
+ÿÎback
+ : 
+_ÚSubsüibeU£rC®lbacks
+è
+	`ÿÎback
+(
+·ck‘Id
+, 
+¡©us
+);
+
+511 
+	}
+}
+
+513 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚUnsubAck
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+514 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+516 autØ
+ÿÎback
+ : 
+_ÚUnsubsüibeU£rC®lbacks
+è
+	`ÿÎback
+(
+·ck‘Id
+);
+
+517 
+	}
+}
+
+519 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚMes§ge
+(* 
+tÝic
+, * 
+·ylßd
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+dup
+, boÞ 
+»�š
+, 
+size_t
+ 
+Ën
+, size_ˆ
+šdex
+, size_ˆ
+tÙ®
+, 
+ušt16_t
+ 
+·ck‘Id
+) {
+
+520 
+boÞ
+ 
+nÙifyPublish
+ = 
+Œue
+;
+
+522 ià(
+qos
+ == 2) {
+
+523 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgPubR–
+ 
+³ndšgPubR–
+ : 
+_³ndšgPubR–s
+) {
+
+524 ià(
+³ndšgPubR–
+.
+·ck‘Id
+ ==…acketId) {
+
+525 
+nÙifyPublish
+ = 
+çl£
+;
+
+531 ià(
+nÙifyPublish
+) {
+
+532 
+AsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ 
+´Ý”t›s
+;
+
+533 
+´Ý”t›s
+.
+qos
+ = qos;
+
+534 
+´Ý”t›s
+.
+dup
+ = dup;
+
+535 
+´Ý”t›s
+.
+»�š
+ =„etain;
+
+537 autØ
+ÿÎback
+ : 
+_ÚMes§geU£rC®lbacks
+è
+	`ÿÎback
+(
+tÝic
+, 
+·ylßd
+, 
+´Ý”t›s
+, 
+Ën
+, 
+šdex
+, 
+tÙ®
+);
+
+539 
+	}
+}
+
+541 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚPublish
+(
+ušt16_t
+ 
+·ck‘Id
+, 
+ušt8_t
+ 
+qos
+) {
+
+542 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgAck
+ 
+³ndšgAck
+;
+
+544 ià(
+qos
+ == 1) {
+
+545 
+³ndšgAck
+.
+·ck‘Ty³
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBACK
+;
+
+546 
+³ndšgAck
+.
+h—d”FÏg
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBACK_RESERVED
+;
+
+547 
+³ndšgAck
+.
+·ck‘Id
+ =…acketId;
+
+548 
+_toS’dAcks
+.
+	`push_back
+(
+³ndšgAck
+);
+
+549 } ià(
+qos
+ == 2) {
+
+550 
+³ndšgAck
+.
+·ck‘Ty³
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBREC
+;
+
+551 
+³ndšgAck
+.
+h—d”FÏg
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBREC_RESERVED
+;
+
+552 
+³ndšgAck
+.
+·ck‘Id
+ =…acketId;
+
+553 
+_toS’dAcks
+.
+	`push_back
+(
+³ndšgAck
+);
+
+555 
+boÞ
+ 
+pubR–Awa™šg
+ = 
+çl£
+;
+
+556 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgPubR–
+ 
+³ndšgPubR–
+ : 
+_³ndšgPubR–s
+) {
+
+557 ià(
+³ndšgPubR–
+.
+·ck‘Id
+ ==…acketId) {
+
+558 
+pubR–Awa™šg
+ = 
+Œue
+;
+
+563 ià(!
+pubR–Awa™šg
+) {
+
+564 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgPubR–
+ 
+³ndšgPubR–
+;
+
+565 
+³ndšgPubR–
+.
+·ck‘Id
+ =…acketId;
+
+566 
+_³ndšgPubR–s
+.
+	`push_back
+(
+³ndšgPubR–
+);
+
+569 
+	`_£ndAcks
+();
+
+572 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+573 
+	}
+}
+
+575 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚPubR–
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+576 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+578 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgAck
+ 
+³ndšgAck
+;
+
+579 
+³ndšgAck
+.
+·ck‘Ty³
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBCOMP
+;
+
+580 
+³ndšgAck
+.
+h—d”FÏg
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBCOMP_RESERVED
+;
+
+581 
+³ndšgAck
+.
+·ck‘Id
+ =…acketId;
+
+582 
+_toS’dAcks
+.
+	`push_back
+(
+³ndšgAck
+);
+
+584 
+size_t
+ 
+i
+ = 0; i < 
+_³ndšgPubR–s
+.
+	`size
+(); i++) {
+
+585 ià(
+_³ndšgPubR–s
+[
+i
+].
+·ck‘Id
+ ==…acketId) {
+
+586 
+_³ndšgPubR–s
+.
+	`”a£
+(_³ndšgPubR–s.
+	`begš
+(è+ 
+i
+);
+
+587 
+_³ndšgPubR–s
+.
+	`shršk_to_f™
+();
+
+591 
+	`_£ndAcks
+();
+
+592 
+	}
+}
+
+594 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚPubAck
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+595 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+597 autØ
+ÿÎback
+ : 
+_ÚPublishU£rC®lbacks
+è
+	`ÿÎback
+(
+·ck‘Id
+);
+
+598 
+	}
+}
+
+600 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚPubRec
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+601 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+603 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgAck
+ 
+³ndšgAck
+;
+
+604 
+³ndšgAck
+.
+·ck‘Ty³
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBREL
+;
+
+605 
+³ndšgAck
+.
+h—d”FÏg
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBREL_RESERVED
+;
+
+606 
+³ndšgAck
+.
+·ck‘Id
+ =…acketId;
+
+607 
+_toS’dAcks
+.
+	`push_back
+(
+³ndšgAck
+);
+
+609 
+	`_£ndAcks
+();
+
+610 
+	}
+}
+
+612 
+	gAsyncMq‰Cl›Á
+::
+	$_ÚPubComp
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+613 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+615 autØ
+ÿÎback
+ : 
+_ÚPublishU£rC®lbacks
+è
+	`ÿÎback
+(
+·ck‘Id
+);
+
+616 
+	}
+}
+
+618 
+boÞ
+ 
+	gAsyncMq‰Cl›Á
+::
+	$_£ndPšg
+() {
+
+619 
+fixedH—d”
+[2];
+
+620 
+fixedH—d”
+[0] = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PINGREQ
+;
+
+621 
+fixedH—d”
+[0] = fixedHeader[0] << 4;
+
+622 
+fixedH—d”
+[0] = fixedH—d”[0] | 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PINGREQ_RESERVED
+;
+
+623 
+fixedH—d”
+[1] = 0;
+
+625 
+size_t
+ 
+ÃededS·û
+ = 2;
+
+627 
+	`SEMAPHORE_TAKE
+(
+çl£
+);
+
+628 ià(
+_þ›Á
+.
+	`¥aû
+(è< 
+ÃededS·û
+è{ 
+	`SEMAPHORE_GIVE
+();  
+çl£
+; }
+
+630 
+_þ›Á
+.
+	`add
+(
+fixedH—d”
+, 2);
+
+631 
+_þ›Á
+.
+	`£nd
+();
+
+632 
+_Ï¡Cl›ÁAùiv™y
+ = 
+	`mžlis
+();
+
+633 
+_Ï¡PšgReque¡Time
+ = 
+	`mžlis
+();
+
+635 
+	`SEMAPHORE_GIVE
+();
+
+636  
+Œue
+;
+
+637 
+	}
+}
+
+639 
+	gAsyncMq‰Cl›Á
+::
+	$_£ndAcks
+() {
+
+640 
+ušt8_t
+ 
+ÃededAckS·û
+ = 2 + 2;
+
+642 
+	`SEMAPHORE_TAKE
+();
+
+643 
+size_t
+ 
+i
+ = 0; i < 
+_toS’dAcks
+.
+	`size
+(); i++) {
+
+644 ià(
+_þ›Á
+.
+	`¥aû
+(è< 
+ÃededAckS·û
+) ;
+
+646 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgAck
+ 
+³ndšgAck
+ = 
+_toS’dAcks
+[
+i
+];
+
+648 
+fixedH—d”
+[2];
+
+649 
+fixedH—d”
+[0] = 
+³ndšgAck
+.
+·ck‘Ty³
+;
+
+650 
+fixedH—d”
+[0] = fixedHeader[0] << 4;
+
+651 
+fixedH—d”
+[0] = fixedH—d”[0] | 
+³ndšgAck
+.
+h—d”FÏg
+;
+
+652 
+fixedH—d”
+[1] = 2;
+
+654 
+·ck‘IdBy‹s
+[2];
+
+655 
+·ck‘IdBy‹s
+[0] = 
+³ndšgAck
+.
+·ck‘Id
+ >> 8;
+
+656 
+·ck‘IdBy‹s
+[1] = 
+³ndšgAck
+.
+·ck‘Id
+ & 0xFF;
+
+658 
+_þ›Á
+.
+	`add
+(
+fixedH—d”
+, 2);
+
+659 
+_þ›Á
+.
+	`add
+(
+·ck‘IdBy‹s
+, 2);
+
+660 
+_þ›Á
+.
+	`£nd
+();
+
+662 
+_toS’dAcks
+.
+	`”a£
+(_toS’dAcks.
+	`begš
+(è+ 
+i
+);
+
+663 
+_toS’dAcks
+.
+	`shršk_to_f™
+();
+
+665 
+_Ï¡Cl›ÁAùiv™y
+ = 
+	`mžlis
+();
+
+667 
+	`SEMAPHORE_GIVE
+();
+
+668 
+	}
+}
+
+670 
+boÞ
+ 
+	gAsyncMq‰Cl›Á
+::
+	$_£ndDiscÚÃù
+() {
+
+671 ià(!
+_cÚÃùed
+è 
+Œue
+;
+
+673 cÚ¡ 
+ušt8_t
+ 
+ÃededS·û
+ = 2;
+
+675 
+	`SEMAPHORE_TAKE
+(
+çl£
+);
+
+677 ià(
+_þ›Á
+.
+	`¥aû
+(è< 
+ÃededS·û
+è{ 
+	`SEMAPHORE_GIVE
+();  
+çl£
+; }
+
+679 
+fixedH—d”
+[2];
+
+680 
+fixedH—d”
+[0] = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+DISCONNECT
+;
+
+681 
+fixedH—d”
+[0] = fixedHeader[0] << 4;
+
+682 
+fixedH—d”
+[0] = fixedH—d”[0] | 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+DISCONNECT_RESERVED
+;
+
+683 
+fixedH—d”
+[1] = 0;
+
+685 
+_þ›Á
+.
+	`add
+(
+fixedH—d”
+, 2);
+
+686 
+_þ›Á
+.
+	`£nd
+();
+
+687 
+_þ›Á
+.
+	`þo£
+(
+Œue
+);
+
+689 
+_discÚÃùOnPÞl
+ = 
+çl£
+;
+
+691 
+	`SEMAPHORE_GIVE
+();
+
+692  
+Œue
+;
+
+693 
+	}
+}
+
+695 
+ušt16_t
+ 
+	gAsyncMq‰Cl›Á
+::
+	$_g‘NextPack‘Id
+() {
+
+696 
+ušt16_t
+ 
+ÃxtPack‘Id
+ = 
+_ÃxtPack‘Id
+;
+
+698 ià(
+_ÃxtPack‘Id
+ == 65535) _nextPacketId = 0;
+
+699 
+_ÃxtPack‘Id
+++;
+
+701  
+ÃxtPack‘Id
+;
+
+702 
+	}
+}
+
+704 
+boÞ
+ 
+	gAsyncMq‰Cl›Á
+::
+	$cÚÃùed
+() const {
+
+705  
+_cÚÃùed
+;
+
+706 
+	}
+}
+
+708 
+	gAsyncMq‰Cl›Á
+::
+	$cÚÃù
+() {
+
+709 ià(
+_cÚÃùed
+) ;
+
+711 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+712 ià(
+_u£Ip
+) {
+
+713 
+_þ›Á
+.
+	`cÚÃù
+(
+_�
+, 
+_pÜt
+, 
+_£cu»
+);
+
+715 
+_þ›Á
+.
+	`cÚÃù
+(
+_ho¡
+, 
+_pÜt
+, 
+_£cu»
+);
+
+718 ià(
+_u£Ip
+) {
+
+719 
+_þ›Á
+.
+	`cÚÃù
+(
+_�
+, 
+_pÜt
+);
+
+721 
+_þ›Á
+.
+	`cÚÃù
+(
+_ho¡
+, 
+_pÜt
+);
+
+724 
+	}
+}
+
+726 
+	gAsyncMq‰Cl›Á
+::
+	$discÚÃù
+(
+boÞ
+ 
+fÜû
+) {
+
+727 ià(!
+_cÚÃùed
+) ;
+
+729 ià(
+fÜû
+) {
+
+730 
+_þ›Á
+.
+	`þo£
+(
+Œue
+);
+
+732 
+	`_£ndDiscÚÃù
+();
+
+733 
+_discÚÃùOnPÞl
+ = 
+çl£
+;
+
+735 
+	}
+}
+
+737 
+ušt16_t
+ 
+	gAsyncMq‰Cl›Á
+::
+	$subsüibe
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+) {
+
+738 ià(!
+_cÚÃùed
+)  0;
+
+740 
+fixedH—d”
+[5];
+
+741 
+fixedH—d”
+[0] = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+SUBSCRIBE
+;
+
+742 
+fixedH—d”
+[0] = fixedHeader[0] << 4;
+
+743 
+fixedH—d”
+[0] = fixedH—d”[0] | 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+SUBSCRIBE_RESERVED
+;
+
+745 
+ušt16_t
+ 
+tÝicL’gth
+ = 
+	`¡¾’
+(
+tÝic
+);
+
+746 
+tÝicL’gthBy‹s
+[2];
+
+747 
+tÝicL’gthBy‹s
+[0] = 
+tÝicL’gth
+ >> 8;
+
+748 
+tÝicL’gthBy‹s
+[1] = 
+tÝicL’gth
+ & 0xFF;
+
+750 
+qosBy‹
+[1];
+
+751 
+qosBy‹
+[0] = 
+qos
+;
+
+753 
+ušt8_t
+ 
+»maššgL’gthL’gth
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H–³rs
+::
+	`’codeRemaššgL’gth
+(2 + 2 + 
+tÝicL’gth
+ + 1, 
+fixedH—d”
+ + 1);
+
+755 
+size_t
+ 
+ÃededS·û
+ = 0;
+
+756 
+ÃededS·û
+ +ð1 + 
+»maššgL’gthL’gth
+;
+
+757 
+ÃededS·û
+ += 2;
+
+758 
+ÃededS·û
+ += 2;
+
+759 
+ÃededS·û
+ +ð
+tÝicL’gth
+;
+
+760 
+ÃededS·û
+ += 1;
+
+762 
+	`SEMAPHORE_TAKE
+(0);
+
+763 ià(
+_þ›Á
+.
+	`¥aû
+(è< 
+ÃededS·û
+è{ 
+	`SEMAPHORE_GIVE
+();  0; }
+
+765 
+ušt16_t
+ 
+·ck‘Id
+ = 
+	`_g‘NextPack‘Id
+();
+
+766 
+·ck‘IdBy‹s
+[2];
+
+767 
+·ck‘IdBy‹s
+[0] = 
+·ck‘Id
+ >> 8;
+
+768 
+·ck‘IdBy‹s
+[1] = 
+·ck‘Id
+ & 0xFF;
+
+770 
+_þ›Á
+.
+	`add
+(
+fixedH—d”
+, 1 + 
+»maššgL’gthL’gth
+);
+
+771 
+_þ›Á
+.
+	`add
+(
+·ck‘IdBy‹s
+, 2);
+
+772 
+_þ›Á
+.
+	`add
+(
+tÝicL’gthBy‹s
+, 2);
+
+773 
+_þ›Á
+.
+	`add
+(
+tÝic
+, 
+tÝicL’gth
+);
+
+774 
+_þ›Á
+.
+	`add
+(
+qosBy‹
+, 1);
+
+775 
+_þ›Á
+.
+	`£nd
+();
+
+776 
+_Ï¡Cl›ÁAùiv™y
+ = 
+	`mžlis
+();
+
+778 
+	`SEMAPHORE_GIVE
+();
+
+779  
+·ck‘Id
+;
+
+780 
+	}
+}
+
+782 
+ušt16_t
+ 
+	gAsyncMq‰Cl›Á
+::
+	$unsubsüibe
+(cÚ¡ * 
+tÝic
+) {
+
+783 ià(!
+_cÚÃùed
+)  0;
+
+785 
+fixedH—d”
+[5];
+
+786 
+fixedH—d”
+[0] = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+UNSUBSCRIBE
+;
+
+787 
+fixedH—d”
+[0] = fixedHeader[0] << 4;
+
+788 
+fixedH—d”
+[0] = fixedH—d”[0] | 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+UNSUBSCRIBE_RESERVED
+;
+
+790 
+ušt16_t
+ 
+tÝicL’gth
+ = 
+	`¡¾’
+(
+tÝic
+);
+
+791 
+tÝicL’gthBy‹s
+[2];
+
+792 
+tÝicL’gthBy‹s
+[0] = 
+tÝicL’gth
+ >> 8;
+
+793 
+tÝicL’gthBy‹s
+[1] = 
+tÝicL’gth
+ & 0xFF;
+
+795 
+ušt8_t
+ 
+»maššgL’gthL’gth
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H–³rs
+::
+	`’codeRemaššgL’gth
+(2 + 2 + 
+tÝicL’gth
+, 
+fixedH—d”
+ + 1);
+
+797 
+size_t
+ 
+ÃededS·û
+ = 0;
+
+798 
+ÃededS·û
+ +ð1 + 
+»maššgL’gthL’gth
+;
+
+799 
+ÃededS·û
+ += 2;
+
+800 
+ÃededS·û
+ += 2;
+
+801 
+ÃededS·û
+ +ð
+tÝicL’gth
+;
+
+803 
+	`SEMAPHORE_TAKE
+(0);
+
+804 ià(
+_þ›Á
+.
+	`¥aû
+(è< 
+ÃededS·û
+è{ 
+	`SEMAPHORE_GIVE
+();  0; }
+
+806 
+ušt16_t
+ 
+·ck‘Id
+ = 
+	`_g‘NextPack‘Id
+();
+
+807 
+·ck‘IdBy‹s
+[2];
+
+808 
+·ck‘IdBy‹s
+[0] = 
+·ck‘Id
+ >> 8;
+
+809 
+·ck‘IdBy‹s
+[1] = 
+·ck‘Id
+ & 0xFF;
+
+811 
+_þ›Á
+.
+	`add
+(
+fixedH—d”
+, 1 + 
+»maššgL’gthL’gth
+);
+
+812 
+_þ›Á
+.
+	`add
+(
+·ck‘IdBy‹s
+, 2);
+
+813 
+_þ›Á
+.
+	`add
+(
+tÝicL’gthBy‹s
+, 2);
+
+814 
+_þ›Á
+.
+	`add
+(
+tÝic
+, 
+tÝicL’gth
+);
+
+815 
+_þ›Á
+.
+	`£nd
+();
+
+816 
+_Ï¡Cl›ÁAùiv™y
+ = 
+	`mžlis
+();
+
+818 
+	`SEMAPHORE_GIVE
+();
+
+819  
+·ck‘Id
+;
+
+820 
+	}
+}
+
+822 
+ušt16_t
+ 
+	gAsyncMq‰Cl›Á
+::
+	$publish
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+»�š
+, cÚ¡ * 
+·ylßd
+, 
+size_t
+ 
+Ëngth
+, boÞ 
+dup
+, 
+ušt16_t
+ 
+mes§ge_id
+) {
+
+823 ià(!
+_cÚÃùed
+)  0;
+
+825 
+fixedH—d”
+[5];
+
+826 
+fixedH—d”
+[0] = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘Ty³
+.
+PUBLISH
+;
+
+827 
+fixedH—d”
+[0] = fixedHeader[0] << 4;
+
+828 ià(
+dup
+è
+fixedH—d”
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBLISH_DUP
+;
+
+829 ià(
+»�š
+è
+fixedH—d”
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBLISH_RETAIN
+;
+
+830 
+qos
+) {
+
+832 
+fixedH—d”
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBLISH_QOS0
+;
+
+835 
+fixedH—d”
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBLISH_QOS1
+;
+
+838 
+fixedH—d”
+[0] |ð
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H—d”FÏg
+.
+PUBLISH_QOS2
+;
+
+842 
+ušt16_t
+ 
+tÝicL’gth
+ = 
+	`¡¾’
+(
+tÝic
+);
+
+843 
+tÝicL’gthBy‹s
+[2];
+
+844 
+tÝicL’gthBy‹s
+[0] = 
+tÝicL’gth
+ >> 8;
+
+845 
+tÝicL’gthBy‹s
+[1] = 
+tÝicL’gth
+ & 0xFF;
+
+847 
+ušt32_t
+ 
+·ylßdL’gth
+ = 
+Ëngth
+;
+
+848 ià(
+·ylßd
+ !ð
+nuÎ±r
+ && 
+·ylßdL’gth
+ =ð0è·ylßdL’gth = 
+	`¡¾’
+(payload);
+
+850 
+ušt32_t
+ 
+»maššgL’gth
+ = 2 + 
+tÝicL’gth
+ + 
+·ylßdL’gth
+;
+
+851 ià(
+qos
+ !ð0è
+»maššgL’gth
+ += 2;
+
+852 
+ušt8_t
+ 
+»maššgL’gthL’gth
+ = 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+H–³rs
+::
+	`’codeRemaššgL’gth
+(
+»maššgL’gth
+, 
+fixedH—d”
+ + 1);
+
+854 
+size_t
+ 
+ÃededS·û
+ = 0;
+
+855 
+ÃededS·û
+ +ð1 + 
+»maššgL’gthL’gth
+;
+
+856 
+ÃededS·û
+ += 2;
+
+857 
+ÃededS·û
+ +ð
+tÝicL’gth
+;
+
+858 ià(
+qos
+ !ð0è
+ÃededS·û
+ += 2;
+
+859 ià(
+·ylßd
+ !ð
+nuÎ±r
+è
+ÃededS·û
+ +ð
+·ylßdL’gth
+;
+
+861 
+	`SEMAPHORE_TAKE
+(0);
+
+862 ià(
+_þ›Á
+.
+	`¥aû
+(è< 
+ÃededS·û
+è{ 
+	`SEMAPHORE_GIVE
+();  0; }
+
+864 
+ušt16_t
+ 
+·ck‘Id
+ = 0;
+
+865 
+·ck‘IdBy‹s
+[2];
+
+866 ià(
+qos
+ != 0) {
+
+867 ià(
+dup
+ && 
+mes§ge_id
+ > 0) {
+
+868 
+·ck‘Id
+ = 
+mes§ge_id
+;
+
+870 
+·ck‘Id
+ = 
+	`_g‘NextPack‘Id
+();
+
+873 
+·ck‘IdBy‹s
+[0] = 
+·ck‘Id
+ >> 8;
+
+874 
+·ck‘IdBy‹s
+[1] = 
+·ck‘Id
+ & 0xFF;
+
+877 
+_þ›Á
+.
+	`add
+(
+fixedH—d”
+, 1 + 
+»maššgL’gthL’gth
+);
+
+878 
+_þ›Á
+.
+	`add
+(
+tÝicL’gthBy‹s
+, 2);
+
+879 
+_þ›Á
+.
+	`add
+(
+tÝic
+, 
+tÝicL’gth
+);
+
+880 ià(
+qos
+ !ð0è
+_þ›Á
+.
+	`add
+(
+·ck‘IdBy‹s
+, 2);
+
+881 ià(
+·ylßd
+ !ð
+nuÎ±r
+è
+_þ›Á
+.
+	`add
+Õaylßd, 
+·ylßdL’gth
+);
+
+882 
+_þ›Á
+.
+	`£nd
+();
+
+883 
+_Ï¡Cl›ÁAùiv™y
+ = 
+	`mžlis
+();
+
+885 
+	`SEMAPHORE_GIVE
+();
+
+886 ià(
+qos
+ != 0) {
+
+887  
+·ck‘Id
+;
+
+891 
+	}
+}
+
+893 cÚ¡ * 
+	gAsyncMq‰Cl›Á
+::
+	$g‘Cl›ÁId
+() {
+
+894  
+_þ›ÁId
+;
+
+895 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.h
+
+1 #iâdeà
+SRC_ASYNCMQTTCLIENT_H_
+
+
+2 
+	#SRC_ASYNCMQTTCLIENT_H_
+
+
+	)
+
+4 
+	~"AsyncMq‰Cl›Á.hµ
+"
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~<funùiÚ®
+>
+
+4 
+	~<veùÜ
+>
+
+6 
+	~"Ardušo.h
+"
+
+8 #ifdeà
+ESP32
+
+
+9 
+	~<AsyncTCP.h
+>
+
+10 
+	~<ä“¹os/£mphr.h
+>
+
+11 #–ià
+defšed
+(
+ESP8266
+)
+
+12 
+	~<ESPAsyncTCP.h
+>
+
+14 #”rÜ 
+PÏtfÜm
+ 
+nÙ
+ 
+suµÜ‹d
+
+
+17 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+18 
+	~<tý_axŽs.h
+>
+
+19 
+	#SHA1_SIZE
+ 20
+
+	)
+
+22 
+	~"AsyncMq‰Cl›Á/FÏgs.hµ
+"
+
+23 
+	~"AsyncMq‰Cl›Á/P¬sšgInfÜm©iÚ.hµ
+"
+
+24 
+	~"AsyncMq‰Cl›Á/Mes§gePrÝ”t›s.hµ
+"
+
+25 
+	~"AsyncMq‰Cl›Á/H–³rs.hµ
+"
+
+26 
+	~"AsyncMq‰Cl›Á/C®lbacks.hµ
+"
+
+27 
+	~"AsyncMq‰Cl›Á/DiscÚÃùR—sÚs.hµ
+"
+
+28 
+	~"AsyncMq‰Cl›Á/StÜage.hµ
+"
+
+30 
+	~"AsyncMq‰Cl›Á/Pack‘s/Pack‘.hµ
+"
+
+31 
+	~"AsyncMq‰Cl›Á/Pack‘s/CÚnAckPack‘.hµ
+"
+
+32 
+	~"AsyncMq‰Cl›Á/Pack‘s/PšgRe¥Pack‘.hµ
+"
+
+33 
+	~"AsyncMq‰Cl›Á/Pack‘s/SubAckPack‘.hµ
+"
+
+34 
+	~"AsyncMq‰Cl›Á/Pack‘s/UnsubAckPack‘.hµ
+"
+
+35 
+	~"AsyncMq‰Cl›Á/Pack‘s/PublishPack‘.hµ
+"
+
+36 
+	~"AsyncMq‰Cl›Á/Pack‘s/PubR–Pack‘.hµ
+"
+
+37 
+	~"AsyncMq‰Cl›Á/Pack‘s/PubAckPack‘.hµ
+"
+
+38 
+	~"AsyncMq‰Cl›Á/Pack‘s/PubRecPack‘.hµ
+"
+
+39 
+	~"AsyncMq‰Cl›Á/Pack‘s/PubCompPack‘.hµ
+"
+
+41 #ià
+ESP32
+
+
+42 
+	#SEMAPHORE_TAKE
+(
+X
+èià(
+	`xSem­hÜeTake
+(
+_xSem­hÜe
+, 1000 / 
+pÜtTICK_PERIOD_MS
+è!ð
+pdTRUE
+) {  X; }
+
+43 
+	#SEMAPHORE_GIVE
+(è
+	`xSem­hÜeGive
+(
+_xSem­hÜe
+);
+
+	)
+
+44 #–ià
+defšed
+(
+ESP8266
+)
+
+45 
+	#SEMAPHORE_TAKE
+(
+X
+è()
+
+	)
+
+46 
+	#SEMAPHORE_GIVE
+(è()
+
+	)
+
+49 þas 
+	cAsyncMq‰Cl›Á
+ {
+
+50 
+	mpublic
+:
+
+51 
+AsyncMq‰Cl›Á
+();
+
+52 ~
+AsyncMq‰Cl›Á
+();
+
+54 
+	mAsyncMq‰Cl›Á
+& 
+£tK“pAlive
+(
+ušt16_t
+ 
+k“pAlive
+);
+
+55 
+	mAsyncMq‰Cl›Á
+& 
+£tCl›ÁId
+(cÚ¡ * 
+þ›ÁId
+);
+
+56 
+	mAsyncMq‰Cl›Á
+& 
+£tCËªSessiÚ
+(
+boÞ
+ 
+þ—nSessiÚ
+);
+
+57 
+	mAsyncMq‰Cl›Á
+& 
+£tMaxTÝicL’gth
+(
+ušt16_t
+ 
+maxTÝicL’gth
+);
+
+58 
+	mAsyncMq‰Cl›Á
+& 
+£tC»d’tŸls
+(cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+ = 
+nuÎ±r
+);
+
+59 
+	mAsyncMq‰Cl›Á
+& 
+£tWžl
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+»�š
+, cÚ¡ * 
+·ylßd
+ = 
+nuÎ±r
+, 
+size_t
+ 
+Ëngth
+ = 0);
+
+60 
+	mAsyncMq‰Cl›Á
+& 
+£tS”v”
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+);
+
+61 
+	mAsyncMq‰Cl›Á
+& 
+£tS”v”
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+);
+
+62 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+63 
+	mAsyncMq‰Cl›Á
+& 
+£tSecu»
+(
+boÞ
+ 
+£cu»
+);
+
+64 
+	mAsyncMq‰Cl›Á
+& 
+addS”v”Fšg”´št
+(cÚ¡ 
+ušt8_t
+* 
+fšg”´št
+);
+
+67 
+	mAsyncMq‰Cl›Á
+& 
+ÚCÚÃù
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnCÚÃùU£rC®lback
+ 
+ÿÎback
+);
+
+68 
+	mAsyncMq‰Cl›Á
+& 
+ÚDiscÚÃù
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnDiscÚÃùU£rC®lback
+ 
+ÿÎback
+);
+
+69 
+	mAsyncMq‰Cl›Á
+& 
+ÚSubsüibe
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnSubsüibeU£rC®lback
+ 
+ÿÎback
+);
+
+70 
+	mAsyncMq‰Cl›Á
+& 
+ÚUnsubsüibe
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnUnsubsüibeU£rC®lback
+ 
+ÿÎback
+);
+
+71 
+	mAsyncMq‰Cl›Á
+& 
+ÚMes§ge
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnMes§geU£rC®lback
+ 
+ÿÎback
+);
+
+72 
+	mAsyncMq‰Cl›Á
+& 
+ÚPublish
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnPublishU£rC®lback
+ 
+ÿÎback
+);
+
+74 
+boÞ
+ 
+	$cÚÃùed
+() const;
+
+75 
+	`cÚÃù
+();
+
+76 
+	`discÚÃù
+(
+boÞ
+ 
+fÜû
+ = 
+çl£
+);
+
+77 
+ušt16_t
+ 
+	`subsüibe
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+);
+
+78 
+ušt16_t
+ 
+	`unsubsüibe
+(cÚ¡ * 
+tÝic
+);
+
+79 
+ušt16_t
+ 
+	`publish
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+»�š
+, cÚ¡ * 
+·ylßd
+ = 
+nuÎ±r
+, 
+size_t
+ 
+Ëngth
+ = 0, boÞ 
+dup
+ = 
+çl£
+, ušt16_ˆ
+mes§ge_id
+ = 0);
+
+81 cÚ¡ * 
+	`g‘Cl›ÁId
+();
+
+83 
+´iv©e
+:
+
+84 
+AsyncCl›Á
+ 
+_þ›Á
+;
+
+86 
+boÞ
+ 
+_cÚÃùed
+;
+
+87 
+boÞ
+ 
+_cÚÃùPack‘NÙEnoughS·û
+;
+
+88 
+boÞ
+ 
+_discÚÃùOnPÞl
+;
+
+89 
+boÞ
+ 
+_ŽsBadFšg”´št
+;
+
+90 
+ušt32_t
+ 
+_Ï¡Cl›ÁAùiv™y
+;
+
+91 
+ušt32_t
+ 
+_Ï¡S”v”Aùiv™y
+;
+
+92 
+ušt32_t
+ 
+_Ï¡PšgReque¡Time
+;
+
+94 
+_g’”©edCl›ÁId
+[18 + 1];
+
+95 
+IPAdd»ss
+ 
+_�
+;
+
+96 cÚ¡ * 
+_ho¡
+;
+
+97 
+boÞ
+ 
+_u£Ip
+;
+
+98 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+99 
+boÞ
+ 
+_£cu»
+;
+
+101 
+ušt16_t
+ 
+_pÜt
+;
+
+102 
+ušt16_t
+ 
+_k“pAlive
+;
+
+103 
+boÞ
+ 
+_þ—nSessiÚ
+;
+
+104 cÚ¡ * 
+_þ›ÁId
+;
+
+105 cÚ¡ * 
+_u£ºame
+;
+
+106 cÚ¡ * 
+_·sswÜd
+;
+
+107 cÚ¡ * 
+_wžlTÝic
+;
+
+108 cÚ¡ * 
+_wžlPaylßd
+;
+
+109 
+ušt16_t
+ 
+_wžlPaylßdL’gth
+;
+
+110 
+ušt8_t
+ 
+_wžlQos
+;
+
+111 
+boÞ
+ 
+_wžlR‘aš
+;
+
+113 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+114 
+¡d
+::
+veùÜ
+<¡d::
+¬¿y
+<
+ušt8_t
+, 
+SHA1_SIZE
+>> 
+_£cu»S”v”Fšg”´šts
+;
+
+117 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnCÚÃùU£rC®lback
+> 
+_ÚCÚÃùU£rC®lbacks
+;
+
+118 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnDiscÚÃùU£rC®lback
+> 
+_ÚDiscÚÃùU£rC®lbacks
+;
+
+119 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnSubsüibeU£rC®lback
+> 
+_ÚSubsüibeU£rC®lbacks
+;
+
+120 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnUnsubsüibeU£rC®lback
+> 
+_ÚUnsubsüibeU£rC®lbacks
+;
+
+121 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnMes§geU£rC®lback
+> 
+_ÚMes§geU£rC®lbacks
+;
+
+122 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnPublishU£rC®lback
+> 
+_ÚPublishU£rC®lbacks
+;
+
+124 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P¬sšgInfÜm©iÚ
+ 
+_·rsšgInfÜm©iÚ
+;
+
+125 
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+Pack‘
+* 
+_cu¼’tP¬£dPack‘
+;
+
+126 
+ušt8_t
+ 
+_»maššgL’gthBufãrPos™iÚ
+;
+
+127 
+_»maššgL’gthBufãr
+[4];
+
+129 
+ušt16_t
+ 
+_ÃxtPack‘Id
+;
+
+131 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgPubR–
+> 
+_³ndšgPubR–s
+;
+
+133 
+¡d
+::
+veùÜ
+<
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+P’dšgAck
+> 
+_toS’dAcks
+;
+
+135 #ifdeà
+ESP32
+
+
+136 
+Sem­hÜeHªdË_t
+ 
+_xSem­hÜe
+ = 
+nuÎ±r
+;
+
+139 
+	`_þ—r
+();
+
+140 
+	`_ä“Cu¼’tP¬£dPack‘
+();
+
+143 
+	`_ÚCÚÃù
+(
+AsyncCl›Á
+* 
+þ›Á
+);
+
+144 
+	`_ÚDiscÚÃù
+(
+AsyncCl›Á
+* 
+þ›Á
+);
+
+145 
+	`_ÚE¼Ü
+(
+AsyncCl›Á
+* 
+þ›Á
+, 
+št8_t
+ 
+”rÜ
+);
+
+146 
+	`_ÚTimeout
+(
+AsyncCl›Á
+* 
+þ›Á
+, 
+ušt32_t
+ 
+time
+);
+
+147 
+	`_ÚAck
+(
+AsyncCl›Á
+* 
+þ›Á
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+148 
+	`_ÚD©a
+(
+AsyncCl›Á
+* 
+þ›Á
+, * 
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+149 
+	`_ÚPÞl
+(
+AsyncCl›Á
+* 
+þ›Á
+);
+
+152 
+	`_ÚPšgRe¥
+();
+
+153 
+	`_ÚCÚnAck
+(
+boÞ
+ 
+£ssiÚP»£Á
+, 
+ušt8_t
+ 
+cÚÃùR‘uºCode
+);
+
+154 
+	`_ÚSubAck
+(
+ušt16_t
+ 
+·ck‘Id
+, 
+¡©us
+);
+
+155 
+	`_ÚUnsubAck
+(
+ušt16_t
+ 
+·ck‘Id
+);
+
+156 
+	`_ÚMes§ge
+(* 
+tÝic
+, * 
+·ylßd
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+dup
+, boÞ 
+»�š
+, 
+size_t
+ 
+Ën
+, size_ˆ
+šdex
+, size_ˆ
+tÙ®
+, 
+ušt16_t
+ 
+·ck‘Id
+);
+
+157 
+	`_ÚPublish
+(
+ušt16_t
+ 
+·ck‘Id
+, 
+ušt8_t
+ 
+qos
+);
+
+158 
+	`_ÚPubR–
+(
+ušt16_t
+ 
+·ck‘Id
+);
+
+159 
+	`_ÚPubAck
+(
+ušt16_t
+ 
+·ck‘Id
+);
+
+160 
+	`_ÚPubRec
+(
+ušt16_t
+ 
+·ck‘Id
+);
+
+161 
+	`_ÚPubComp
+(
+ušt16_t
+ 
+·ck‘Id
+);
+
+163 
+boÞ
+ 
+	`_£ndPšg
+();
+
+164 
+	`_£ndAcks
+();
+
+165 
+boÞ
+ 
+	`_£ndDiscÚÃù
+();
+
+167 
+ušt16_t
+ 
+	`_g‘NextPack‘Id
+();
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Callbacks.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~<funùiÚ®
+>
+
+5 
+	~"DiscÚÃùR—sÚs.hµ
+"
+
+6 
+	~"Mes§gePrÝ”t›s.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+10 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tboÞ
+ 
+	t£ssiÚP»£Á
+)> 
+	tOnCÚÃùU£rC®lback
+;
+
+11 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+	t»asÚ
+)> 
+	tOnDiscÚÃùU£rC®lback
+;
+
+12 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+, 
+	tušt8_t
+ 
+	tqos
+)> 
+	tOnSubsüibeU£rC®lback
+;
+
+13 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnUnsubsüibeU£rC®lback
+;
+
+14 
+	g¡d
+::
+	tfunùiÚ
+<(* 
+	ttÝic
+, * 
+	t·ylßd
+, 
+	tAsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ 
+	t´Ý”t›s
+, 
+	tsize_t
+ 
+	tËn
+, size_ˆ
+	tšdex
+, size_ˆ
+	ttÙ®
+)> 
+	tOnMes§geU£rC®lback
+;
+
+15 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnPublishU£rC®lback
+;
+
+18 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tboÞ
+ 
+	t£ssiÚP»£Á
+, 
+	tušt8_t
+ 
+	tcÚÃùR‘uºCode
+)> 
+	tOnCÚnAckIÁ”ÇlC®lback
+;
+
+19 
+	g¡d
+::
+	tfunùiÚ
+<()> 
+	tOnPšgRe¥IÁ”ÇlC®lback
+;
+
+20 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+, 
+	t¡©us
+)> 
+	tOnSubAckIÁ”ÇlC®lback
+;
+
+21 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnUnsubAckIÁ”ÇlC®lback
+;
+
+22 
+	g¡d
+::
+	tfunùiÚ
+<(* 
+	ttÝic
+, * 
+	t·ylßd
+, 
+	tušt8_t
+ 
+	tqos
+, 
+	tboÞ
+ 
+	tdup
+, boÞ 
+	t»�š
+, 
+	tsize_t
+ 
+	tËn
+, size_ˆ
+	tšdex
+, size_ˆ
+	ttÙ®
+, 
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnMes§geIÁ”ÇlC®lback
+;
+
+23 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+, 
+	tušt8_t
+ 
+	tqos
+)> 
+	tOnPublishIÁ”ÇlC®lback
+;
+
+24 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnPubR–IÁ”ÇlC®lback
+;
+
+25 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnPubAckIÁ”ÇlC®lback
+;
+
+26 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnPubRecIÁ”ÇlC®lback
+;
+
+27 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnPubCompIÁ”ÇlC®lback
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/DisconnectReasons.hpp
+
+1 #´agm¨
+Úû
+
+
+3 þas 
+	cAsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ : 
+št8_t
+ {
+
+4 
+TCP_DISCONNECTED
+ = 0,
+
+6 
+	mMQTT_UNACCEPTABLE_PROTOCOL_VERSION
+ = 1,
+
+7 
+	mMQTT_IDENTIFIER_REJECTED
+ = 2,
+
+8 
+	mMQTT_SERVER_UNAVAILABLE
+ = 3,
+
+9 
+	mMQTT_MALFORMED_CREDENTIALS
+ = 4,
+
+10 
+	mMQTT_NOT_AUTHORIZED
+ = 5,
+
+12 
+	mESP8266_NOT_ENOUGH_SPACE
+ = 6,
+
+14 
+	mTLS_BAD_FINGERPRINT
+ = 7
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Flags.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+4 
+cÚ¡ex´
+ struct {
+
+5 cÚ¡ 
+ušt8_t
+ 
+	gRESERVED
+ = 0;
+
+6 cÚ¡ 
+ušt8_t
+ 
+	gCONNECT
+ = 1;
+
+7 cÚ¡ 
+ušt8_t
+ 
+	gCONNACK
+ = 2;
+
+8 cÚ¡ 
+ušt8_t
+ 
+	gPUBLISH
+ = 3;
+
+9 cÚ¡ 
+ušt8_t
+ 
+	gPUBACK
+ = 4;
+
+10 cÚ¡ 
+ušt8_t
+ 
+	gPUBREC
+ = 5;
+
+11 cÚ¡ 
+ušt8_t
+ 
+	gPUBREL
+ = 6;
+
+12 cÚ¡ 
+ušt8_t
+ 
+	gPUBCOMP
+ = 7;
+
+13 cÚ¡ 
+ušt8_t
+ 
+	gSUBSCRIBE
+ = 8;
+
+14 cÚ¡ 
+ušt8_t
+ 
+	gSUBACK
+ = 9;
+
+15 cÚ¡ 
+ušt8_t
+ 
+	gUNSUBSCRIBE
+ = 10;
+
+16 cÚ¡ 
+ušt8_t
+ 
+	gUNSUBACK
+ = 11;
+
+17 cÚ¡ 
+ušt8_t
+ 
+	gPINGREQ
+ = 12;
+
+18 cÚ¡ 
+ušt8_t
+ 
+	gPINGRESP
+ = 13;
+
+19 cÚ¡ 
+ušt8_t
+ 
+	gDISCONNECT
+ = 14;
+
+20 cÚ¡ 
+ušt8_t
+ 
+	gRESERVED2
+ = 1;
+
+21 } 
+	gPack‘Ty³
+;
+
+23 
+cÚ¡ex´
+ struct {
+
+24 cÚ¡ 
+ušt8_t
+ 
+	gCONNECT_RESERVED
+ = 0x00;
+
+25 cÚ¡ 
+ušt8_t
+ 
+	gCONNACK_RESERVED
+ = 0x00;
+
+26 cÚ¡ 
+ušt8_t
+ 
+	gPUBLISH_DUP
+ = 0x08;
+
+27 cÚ¡ 
+ušt8_t
+ 
+	gPUBLISH_QOS0
+ = 0x00;
+
+28 cÚ¡ 
+ušt8_t
+ 
+	gPUBLISH_QOS1
+ = 0x02;
+
+29 cÚ¡ 
+ušt8_t
+ 
+	gPUBLISH_QOS2
+ = 0x04;
+
+30 cÚ¡ 
+ušt8_t
+ 
+	gPUBLISH_QOSRESERVED
+ = 0x06;
+
+31 cÚ¡ 
+ušt8_t
+ 
+	gPUBLISH_RETAIN
+ = 0x01;
+
+32 cÚ¡ 
+ušt8_t
+ 
+	gPUBACK_RESERVED
+ = 0x00;
+
+33 cÚ¡ 
+ušt8_t
+ 
+	gPUBREC_RESERVED
+ = 0x00;
+
+34 cÚ¡ 
+ušt8_t
+ 
+	gPUBREL_RESERVED
+ = 0x02;
+
+35 cÚ¡ 
+ušt8_t
+ 
+	gPUBCOMP_RESERVED
+ = 0x00;
+
+36 cÚ¡ 
+ušt8_t
+ 
+	gSUBSCRIBE_RESERVED
+ = 0x02;
+
+37 cÚ¡ 
+ušt8_t
+ 
+	gSUBACK_RESERVED
+ = 0x00;
+
+38 cÚ¡ 
+ušt8_t
+ 
+	gUNSUBSCRIBE_RESERVED
+ = 0x02;
+
+39 cÚ¡ 
+ušt8_t
+ 
+	gUNSUBACK_RESERVED
+ = 0x00;
+
+40 cÚ¡ 
+ušt8_t
+ 
+	gPINGREQ_RESERVED
+ = 0x00;
+
+41 cÚ¡ 
+ušt8_t
+ 
+	gPINGRESP_RESERVED
+ = 0x00;
+
+42 cÚ¡ 
+ušt8_t
+ 
+	gDISCONNECT_RESERVED
+ = 0x00;
+
+43 cÚ¡ 
+ušt8_t
+ 
+	gRESERVED2_RESERVED
+ = 0x00;
+
+44 } 
+	gH—d”FÏg
+;
+
+46 
+cÚ¡ex´
+ struct {
+
+47 cÚ¡ 
+ušt8_t
+ 
+	gUSERNAME
+ = 0x80;
+
+48 cÚ¡ 
+ušt8_t
+ 
+	gPASSWORD
+ = 0x40;
+
+49 cÚ¡ 
+ušt8_t
+ 
+	gWILL_RETAIN
+ = 0x20;
+
+50 cÚ¡ 
+ušt8_t
+ 
+	gWILL_QOS0
+ = 0x00;
+
+51 cÚ¡ 
+ušt8_t
+ 
+	gWILL_QOS1
+ = 0x08;
+
+52 cÚ¡ 
+ušt8_t
+ 
+	gWILL_QOS2
+ = 0x10;
+
+53 cÚ¡ 
+ušt8_t
+ 
+	gWILL
+ = 0x04;
+
+54 cÚ¡ 
+ušt8_t
+ 
+	gCLEAN_SESSION
+ = 0x02;
+
+55 cÚ¡ 
+ušt8_t
+ 
+	gRESERVED
+ = 0x00;
+
+56 } 
+	gCÚÃùFÏg
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Helpers.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+4 þas 
+	cH–³rs
+ {
+
+5 
+	gpublic
+:
+
+6 
+ušt32_t
+ 
+decodeRemaššgL’gth
+(* 
+by‹s
+) {
+
+7 
+ušt32_t
+ 
+muÉ�l›r
+ = 1;
+
+8 
+ušt32_t
+ 
+	gv®ue
+ = 0;
+
+9 
+ušt8_t
+ 
+	gcu¼’tBy‹
+ = 0;
+
+10 
+ušt8_t
+ 
+	g’codedBy‹
+;
+
+12 
+	g’codedBy‹
+ = 
+by‹s
+[
+cu¼’tBy‹
+++];
+
+13 
+	gv®ue
+ +ð(
+’codedBy‹
+ & 127è* 
+muÉ�l›r
+;
+
+14 
+	gmuÉ�l›r
+ *= 128;
+
+15 } (
+	g’codedBy‹
+ & 128) != 0);
+
+17  
+	gv®ue
+;
+
+20 
+ušt8_t
+ 
+’codeRemaššgL’gth
+(
+ušt32_t
+ 
+»maššgL’gth
+, * 
+de¡š©iÚ
+) {
+
+21 
+ušt8_t
+ 
+	gcu¼’tBy‹
+ = 0;
+
+22 
+ušt8_t
+ 
+	gby‹sN“ded
+ = 0;
+
+25 
+ušt8_t
+ 
+	g’codedBy‹
+ = 
+»maššgL’gth
+ % 128;
+
+26 
+	g»maššgL’gth
+ /= 128;
+
+27 ià(
+	g»maššgL’gth
+ > 0) {
+
+28 
+	g’codedBy‹
+ = 
+’codedBy‹
+ | 128;
+
+31 
+	gde¡š©iÚ
+[
+cu¼’tBy‹
+++] = 
+’codedBy‹
+;
+
+32 
+	gby‹sN“ded
+++;
+
+33 } 
+	g»maššgL’gth
+ > 0);
+
+35  
+	gby‹sN“ded
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/MessageProperties.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	sAsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ {
+
+4 
+ušt8_t
+ 
+	mqos
+;
+
+5 
+boÞ
+ 
+	mdup
+;
+
+6 
+boÞ
+ 
+	m»�š
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.cpp
+
+1 
+	~"CÚnAckPack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+CÚnAckPack‘
+;
+
+5 
+	gCÚnAckPack‘
+::
+	$CÚnAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnCÚnAckIÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_ÿÎback
+(
+ÿÎback
+)
+
+8 , 
+	`_by‹Pos™iÚ
+(0)
+
+9 , 
+	`_£ssiÚP»£Á
+(
+çl£
+)
+
+10 , 
+	$_cÚÃùR‘uºCode
+(0) {
+
+11 
+	}
+}
+
+13 
+	gCÚnAckPack‘
+::~
+	$CÚnAckPack‘
+() {
+
+14 
+	}
+}
+
+16 
+CÚnAckPack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+17 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+18 ià(
+_by‹Pos™iÚ
+++ == 0) {
+
+19 
+_£ssiÚP»£Á
+ = (
+cu¼’tBy‹
+ << 7) >> 7;
+
+21 
+_cÚÃùR‘uºCode
+ = 
+cu¼’tBy‹
+;
+
+22 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+23 
+	`_ÿÎback
+(
+_£ssiÚP»£Á
+, 
+_cÚÃùR‘uºCode
+);
+
+25 
+	}
+}
+
+27 
+	gCÚnAckPack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+28 ()
+d©a
+;
+
+29 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+30 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cCÚnAckPack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+CÚnAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnCÚnAckIÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+CÚnAckPack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnCÚnAckIÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+21 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+22 
+boÞ
+ 
+	g_£ssiÚP»£Á
+;
+
+23 
+ušt8_t
+ 
+	g_cÚÃùR‘uºCode
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/Packet.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+4 þas 
+	cPack‘
+ {
+
+5 
+	gpublic
+:
+
+6 
+vœtu®
+ ~
+Pack‘
+() {}
+
+8 
+vœtu®
+ 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) = 0;
+
+9 
+vœtu®
+ 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) = 0;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.cpp
+
+1 
+	~"PšgRe¥Pack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+PšgRe¥Pack‘
+;
+
+5 
+	gPšgRe¥Pack‘
+::
+	$PšgRe¥Pack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPšgRe¥IÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	$_ÿÎback
+(
+ÿÎback
+) {
+
+8 
+	}
+}
+
+10 
+	gPšgRe¥Pack‘
+::~
+	$PšgRe¥Pack‘
+() {
+
+11 
+	}
+}
+
+13 
+PšgRe¥Pack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+14 ()
+d©a
+;
+
+15 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+16 
+	}
+}
+
+18 
+	gPšgRe¥Pack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+19 ()
+d©a
+;
+
+20 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+21 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cPšgRe¥Pack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+PšgRe¥Pack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPšgRe¥IÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+PšgRe¥Pack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnPšgRe¥IÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.cpp
+
+1 
+	~"PubAckPack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+PubAckPack‘
+;
+
+5 
+	gPubAckPack‘
+::
+	$PubAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubAckIÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_ÿÎback
+(
+ÿÎback
+)
+
+8 , 
+	`_by‹Pos™iÚ
+(0)
+
+9 , 
+	`_·ck‘IdMsb
+(0)
+
+10 , 
+	$_·ck‘Id
+(0) {
+
+11 
+	}
+}
+
+13 
+	gPubAckPack‘
+::~
+	$PubAckPack‘
+() {
+
+14 
+	}
+}
+
+16 
+PubAckPack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+17 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+18 ià(
+_by‹Pos™iÚ
+++ == 0) {
+
+19 
+_·ck‘IdMsb
+ = 
+cu¼’tBy‹
+;
+
+21 
+_·ck‘Id
+ = 
+cu¼’tBy‹
+ | 
+_·ck‘IdMsb
+ << 8;
+
+22 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+23 
+	`_ÿÎback
+(
+_·ck‘Id
+);
+
+25 
+	}
+}
+
+27 
+	gPubAckPack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+28 ()
+d©a
+;
+
+29 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+30 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cPubAckPack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+PubAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubAckIÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+PubAckPack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnPubAckIÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+21 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+22 
+	g_·ck‘IdMsb
+;
+
+23 
+ušt16_t
+ 
+	g_·ck‘Id
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.cpp
+
+1 
+	~"PubCompPack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+PubCompPack‘
+;
+
+5 
+	gPubCompPack‘
+::
+	$PubCompPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubCompIÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_ÿÎback
+(
+ÿÎback
+)
+
+8 , 
+	`_by‹Pos™iÚ
+(0)
+
+9 , 
+	`_·ck‘IdMsb
+(0)
+
+10 , 
+	$_·ck‘Id
+(0) {
+
+11 
+	}
+}
+
+13 
+	gPubCompPack‘
+::~
+	$PubCompPack‘
+() {
+
+14 
+	}
+}
+
+16 
+PubCompPack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+17 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+18 ià(
+_by‹Pos™iÚ
+++ == 0) {
+
+19 
+_·ck‘IdMsb
+ = 
+cu¼’tBy‹
+;
+
+21 
+_·ck‘Id
+ = 
+cu¼’tBy‹
+ | 
+_·ck‘IdMsb
+ << 8;
+
+22 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+23 
+	`_ÿÎback
+(
+_·ck‘Id
+);
+
+25 
+	}
+}
+
+27 
+	gPubCompPack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+28 ()
+d©a
+;
+
+29 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+30 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cPubCompPack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+PubCompPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubCompIÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+PubCompPack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnPubCompIÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+21 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+22 
+	g_·ck‘IdMsb
+;
+
+23 
+ušt16_t
+ 
+	g_·ck‘Id
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.cpp
+
+1 
+	~"PubRecPack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+PubRecPack‘
+;
+
+5 
+	gPubRecPack‘
+::
+	$PubRecPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubRecIÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_ÿÎback
+(
+ÿÎback
+)
+
+8 , 
+	`_by‹Pos™iÚ
+(0)
+
+9 , 
+	`_·ck‘IdMsb
+(0)
+
+10 , 
+	$_·ck‘Id
+(0) {
+
+11 
+	}
+}
+
+13 
+	gPubRecPack‘
+::~
+	$PubRecPack‘
+() {
+
+14 
+	}
+}
+
+16 
+PubRecPack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+17 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+18 ià(
+_by‹Pos™iÚ
+++ == 0) {
+
+19 
+_·ck‘IdMsb
+ = 
+cu¼’tBy‹
+;
+
+21 
+_·ck‘Id
+ = 
+cu¼’tBy‹
+ | 
+_·ck‘IdMsb
+ << 8;
+
+22 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+23 
+	`_ÿÎback
+(
+_·ck‘Id
+);
+
+25 
+	}
+}
+
+27 
+	gPubRecPack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+28 ()
+d©a
+;
+
+29 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+30 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cPubRecPack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+PubRecPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubRecIÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+PubRecPack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnPubRecIÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+21 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+22 
+	g_·ck‘IdMsb
+;
+
+23 
+ušt16_t
+ 
+	g_·ck‘Id
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.cpp
+
+1 
+	~"PubR–Pack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+PubR–Pack‘
+;
+
+5 
+	gPubR–Pack‘
+::
+	$PubR–Pack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubR–IÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_ÿÎback
+(
+ÿÎback
+)
+
+8 , 
+	`_by‹Pos™iÚ
+(0)
+
+9 , 
+	`_·ck‘IdMsb
+(0)
+
+10 , 
+	$_·ck‘Id
+(0) {
+
+11 
+	}
+}
+
+13 
+	gPubR–Pack‘
+::~
+	$PubR–Pack‘
+() {
+
+14 
+	}
+}
+
+16 
+PubR–Pack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+17 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+18 ià(
+_by‹Pos™iÚ
+++ == 0) {
+
+19 
+_·ck‘IdMsb
+ = 
+cu¼’tBy‹
+;
+
+21 
+_·ck‘Id
+ = 
+cu¼’tBy‹
+ | 
+_·ck‘IdMsb
+ << 8;
+
+22 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+23 
+	`_ÿÎback
+(
+_·ck‘Id
+);
+
+25 
+	}
+}
+
+27 
+	gPubR–Pack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+28 ()
+d©a
+;
+
+29 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+30 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cPubR–Pack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+PubR–Pack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnPubR–IÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+PubR–Pack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnPubR–IÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+21 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+22 
+	g_·ck‘IdMsb
+;
+
+23 
+ušt16_t
+ 
+	g_·ck‘Id
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.cpp
+
+1 
+	~"PublishPack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+PublishPack‘
+;
+
+5 
+	gPublishPack‘
+::
+	$PublishPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnMes§geIÁ”ÇlC®lback
+ 
+d©aC®lback
+, 
+OnPublishIÁ”ÇlC®lback
+ 
+com¶‘eC®lback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_d©aC®lback
+(
+d©aC®lback
+)
+
+8 , 
+	`_com¶‘eC®lback
+(
+com¶‘eC®lback
+)
+
+9 , 
+	`_dup
+(
+çl£
+)
+
+10 , 
+	`_qos
+(0)
+
+11 , 
+	`_»�š
+(0)
+
+12 , 
+	`_by‹Pos™iÚ
+(0)
+
+13 , 
+	`_tÝicL’gthMsb
+(0)
+
+14 , 
+	`_tÝicL’gth
+(0)
+
+15 , 
+	`_ignÜe
+(
+çl£
+)
+
+16 , 
+	`_·ck‘IdMsb
+(0)
+
+17 , 
+	`_·ck‘Id
+(0)
+
+18 , 
+	`_·ylßdL’gth
+(0)
+
+19 , 
+	$_·ylßdBy‹sR—d
+(0) {
+
+20 
+_dup
+ = 
+_·rsšgInfÜm©iÚ
+->
+·ck‘FÏgs
+ & 
+H—d”FÏg
+.
+PUBLISH_DUP
+;
+
+21 
+_»�š
+ = 
+_·rsšgInfÜm©iÚ
+->
+·ck‘FÏgs
+ & 
+H—d”FÏg
+.
+PUBLISH_RETAIN
+;
+
+22 
+qosMasked
+ = 
+_·rsšgInfÜm©iÚ
+->
+·ck‘FÏgs
+ & 0x06;
+
+23 
+qosMasked
+) {
+
+24 
+H—d”FÏg
+.
+PUBLISH_QOS0
+:
+
+25 
+_qos
+ = 0;
+
+27 
+H—d”FÏg
+.
+PUBLISH_QOS1
+:
+
+28 
+_qos
+ = 1;
+
+30 
+H—d”FÏg
+.
+PUBLISH_QOS2
+:
+
+31 
+_qos
+ = 2;
+
+34 
+	}
+}
+
+36 
+	gPublishPack‘
+::~
+	$PublishPack‘
+() {
+
+37 
+	}
+}
+
+39 
+PublishPack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+40 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+41 ià(
+_by‹Pos™iÚ
+ == 0) {
+
+42 
+_tÝicL’gthMsb
+ = 
+cu¼’tBy‹
+;
+
+43 } ià(
+_by‹Pos™iÚ
+ == 1) {
+
+44 
+_tÝicL’gth
+ = 
+cu¼’tBy‹
+ | 
+_tÝicL’gthMsb
+ << 8;
+
+45 ià(
+_tÝicL’gth
+ > 
+_·rsšgInfÜm©iÚ
+->
+maxTÝicL’gth
+) {
+
+46 
+_ignÜe
+ = 
+Œue
+;
+
+48 
+_·rsšgInfÜm©iÚ
+->
+tÝicBufãr
+[
+_tÝicL’gth
+] = '\0';
+
+50 } ià(
+_by‹Pos™iÚ
+ >ð2 && _by‹Pos™iÚ < 2 + 
+_tÝicL’gth
+) {
+
+52 ià(!
+_ignÜe
+è
+_·rsšgInfÜm©iÚ
+->
+tÝicBufãr
+[
+_by‹Pos™iÚ
+ - 2] = 
+cu¼’tBy‹
+;
+
+53 ià(
+_by‹Pos™iÚ
+ =ð2 + 
+_tÝicL’gth
+ - 1 && 
+_qos
+ == 0) {
+
+54 
+	`_´•¬ePaylßdHªdlšg
+(
+_·rsšgInfÜm©iÚ
+->
+»maššgL’gth
+ - (
+_by‹Pos™iÚ
+ + 1));
+
+57 } ià(
+_by‹Pos™iÚ
+ =ð2 + 
+_tÝicL’gth
+) {
+
+58 
+_·ck‘IdMsb
+ = 
+cu¼’tBy‹
+;
+
+60 
+_·ck‘Id
+ = 
+cu¼’tBy‹
+ | 
+_·ck‘IdMsb
+ << 8;
+
+61 
+	`_´•¬ePaylßdHªdlšg
+(
+_·rsšgInfÜm©iÚ
+->
+»maššgL’gth
+ - (
+_by‹Pos™iÚ
+ + 1));
+
+63 
+_by‹Pos™iÚ
+++;
+
+64 
+	}
+}
+
+66 
+	gPublishPack‘
+::
+	$_´•¬ePaylßdHªdlšg
+(
+ušt32_t
+ 
+·ylßdL’gth
+) {
+
+67 
+_·ylßdL’gth
+ = 
+·ylßdL’gth
+;
+
+68 ià(
+·ylßdL’gth
+ == 0) {
+
+69 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+70 ià(!
+_ignÜe
+) {
+
+71 
+	`_d©aC®lback
+(
+_·rsšgInfÜm©iÚ
+->
+tÝicBufãr
+, 
+nuÎ±r
+, 
+_qos
+, 
+_dup
+, 
+_»�š
+, 0, 0, 0, 
+_·ck‘Id
+);
+
+72 
+	`_com¶‘eC®lback
+(
+_·ck‘Id
+, 
+_qos
+);
+
+75 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+PAYLOAD
+;
+
+77 
+	}
+}
+
+79 
+	gPublishPack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+80 
+size_t
+ 
+»mašToR—d
+ = 
+Ën
+ - (*
+cu¼’tBy‹Pos™iÚ
+);
+
+81 ià(
+_·ylßdBy‹sR—d
+ + 
+»mašToR—d
+ > 
+_·ylßdL’gth
+)„emainToRead = _payloadLength - _payloadBytesRead;
+
+83 ià(!
+_ignÜe
+è
+	`_d©aC®lback
+(
+_·rsšgInfÜm©iÚ
+->
+tÝicBufãr
+, 
+d©a
+ + (*
+cu¼’tBy‹Pos™iÚ
+), 
+_qos
+, 
+_dup
+, 
+_»�š
+, 
+»mašToR—d
+, 
+_·ylßdBy‹sR—d
+, 
+_·ylßdL’gth
+, 
+_·ck‘Id
+);
+
+84 
+_·ylßdBy‹sR—d
+ +ð
+»mašToR—d
+;
+
+85 (*
+cu¼’tBy‹Pos™iÚ
+è+ð
+»mašToR—d
+;
+
+87 ià(
+_·ylßdBy‹sR—d
+ =ð
+_·ylßdL’gth
+) {
+
+88 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+89 ià(!
+_ignÜe
+è
+	`_com¶‘eC®lback
+(
+_·ck‘Id
+, 
+_qos
+);
+
+91 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../FÏgs.hµ
+"
+
+6 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+7 
+	~"../C®lbacks.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+10 þas 
+	cPublishPack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+11 
+public
+:
+
+12 
+ex¶ic™
+ 
+PublishPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnMes§geIÁ”ÇlC®lback
+ 
+d©aC®lback
+, 
+OnPublishIÁ”ÇlC®lback
+ 
+com¶‘eC®lback
+);
+
+13 ~
+PublishPack‘
+();
+
+15 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+16 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+18 
+	g´iv©e
+:
+
+19 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+20 
+OnMes§geIÁ”ÇlC®lback
+ 
+	g_d©aC®lback
+;
+
+21 
+OnPublishIÁ”ÇlC®lback
+ 
+	g_com¶‘eC®lback
+;
+
+23 
+_´•¬ePaylßdHªdlšg
+(
+ušt32_t
+ 
+·ylßdL’gth
+);
+
+25 
+boÞ
+ 
+	g_dup
+;
+
+26 
+ušt8_t
+ 
+	g_qos
+;
+
+27 
+boÞ
+ 
+	g_»�š
+;
+
+29 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+30 
+	g_tÝicL’gthMsb
+;
+
+31 
+ušt16_t
+ 
+	g_tÝicL’gth
+;
+
+32 
+boÞ
+ 
+	g_ignÜe
+;
+
+33 
+	g_·ck‘IdMsb
+;
+
+34 
+ušt16_t
+ 
+	g_·ck‘Id
+;
+
+35 
+ušt32_t
+ 
+	g_·ylßdL’gth
+;
+
+36 
+ušt32_t
+ 
+	g_·ylßdBy‹sR—d
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.cpp
+
+1 
+	~"SubAckPack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+SubAckPack‘
+;
+
+5 
+	gSubAckPack‘
+::
+	$SubAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnSubAckIÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_ÿÎback
+(
+ÿÎback
+)
+
+8 , 
+	`_by‹Pos™iÚ
+(0)
+
+9 , 
+	`_·ck‘IdMsb
+(0)
+
+10 , 
+	$_·ck‘Id
+(0) {
+
+11 
+	}
+}
+
+13 
+	gSubAckPack‘
+::~
+	$SubAckPack‘
+() {
+
+14 
+	}
+}
+
+16 
+SubAckPack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+17 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+18 ià(
+_by‹Pos™iÚ
+++ == 0) {
+
+19 
+_·ck‘IdMsb
+ = 
+cu¼’tBy‹
+;
+
+21 
+_·ck‘Id
+ = 
+cu¼’tBy‹
+ | 
+_·ck‘IdMsb
+ << 8;
+
+22 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+PAYLOAD
+;
+
+24 
+	}
+}
+
+26 
+	gSubAckPack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+27 
+¡©us
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+44 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+45 
+	`_ÿÎback
+(
+_·ck‘Id
+, 
+¡©us
+);
+
+46 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cSubAckPack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+SubAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnSubAckIÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+SubAckPack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnSubAckIÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+21 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+22 
+	g_·ck‘IdMsb
+;
+
+23 
+ušt16_t
+ 
+	g_·ck‘Id
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.cpp
+
+1 
+	~"UnsubAckPack‘.hµ
+"
+
+3 
+usšg
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+::
+UnsubAckPack‘
+;
+
+5 
+	gUnsubAckPack‘
+::
+	$UnsubAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnUnsubAckIÁ”ÇlC®lback
+ 
+ÿÎback
+)
+
+6 : 
+	`_·rsšgInfÜm©iÚ
+(
+·rsšgInfÜm©iÚ
+)
+
+7 , 
+	`_ÿÎback
+(
+ÿÎback
+)
+
+8 , 
+	`_by‹Pos™iÚ
+(0)
+
+9 , 
+	`_·ck‘IdMsb
+(0)
+
+10 , 
+	$_·ck‘Id
+(0) {
+
+11 
+	}
+}
+
+13 
+	gUnsubAckPack‘
+::~
+	$UnsubAckPack‘
+() {
+
+14 
+	}
+}
+
+16 
+UnsubAckPack‘
+::
+	$·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+17 
+cu¼’tBy‹
+ = 
+d©a
+[(*
+cu¼’tBy‹Pos™iÚ
+)++];
+
+18 ià(
+_by‹Pos™iÚ
+++ == 0) {
+
+19 
+_·ck‘IdMsb
+ = 
+cu¼’tBy‹
+;
+
+21 
+_·ck‘Id
+ = 
+cu¼’tBy‹
+ | 
+_·ck‘IdMsb
+ << 8;
+
+22 
+_·rsšgInfÜm©iÚ
+->
+bufãrS�‹
+ = 
+BufãrS�‹
+::
+NONE
+;
+
+23 
+	`_ÿÎback
+(
+_·ck‘Id
+);
+
+25 
+	}
+}
+
+27 
+	gUnsubAckPack‘
+::
+	$·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+) {
+
+28 ()
+d©a
+;
+
+29 ()
+cu¼’tBy‹Pos™iÚ
+;
+
+30 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+	~"Ardušo.h
+"
+
+4 
+	~"Pack‘.hµ
+"
+
+5 
+	~"../P¬sšgInfÜm©iÚ.hµ
+"
+
+6 
+	~"../C®lbacks.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+9 þas 
+	cUnsubAckPack‘
+ : 
+public
+ 
+Pack‘
+ {
+
+10 
+public
+:
+
+11 
+ex¶ic™
+ 
+UnsubAckPack‘
+(
+P¬sšgInfÜm©iÚ
+* 
+·rsšgInfÜm©iÚ
+, 
+OnUnsubAckIÁ”ÇlC®lback
+ 
+ÿÎback
+);
+
+12 ~
+UnsubAckPack‘
+();
+
+14 
+·r£V¬ŸbËH—d”
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+15 
+·r£Paylßd
+(* 
+d©a
+, 
+size_t
+ 
+Ën
+, size_t* 
+cu¼’tBy‹Pos™iÚ
+);
+
+17 
+	g´iv©e
+:
+
+18 
+P¬sšgInfÜm©iÚ
+* 
+_·rsšgInfÜm©iÚ
+;
+
+19 
+OnUnsubAckIÁ”ÇlC®lback
+ 
+	g_ÿÎback
+;
+
+21 
+ušt8_t
+ 
+	g_by‹Pos™iÚ
+;
+
+22 
+	g_·ck‘IdMsb
+;
+
+23 
+ušt16_t
+ 
+	g_·ck‘Id
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/ParsingInformation.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+4 þas 
+	cBufãrS�‹
+ : 
+ušt8_t
+ {
+
+5 
+NONE
+ = 0,
+
+6 
+	gREMAINING_LENGTH
+ = 2,
+
+7 
+	gVARIABLE_HEADER
+ = 3,
+
+8 
+	gPAYLOAD
+ = 4
+
+11 
+	sP¬sšgInfÜm©iÚ
+ {
+
+12 
+BufãrS�‹
+ 
+	gbufãrS�‹
+;
+
+14 
+ušt16_t
+ 
+	gmaxTÝicL’gth
+;
+
+15 * 
+	gtÝicBufãr
+;
+
+17 
+ušt8_t
+ 
+	g·ck‘Ty³
+;
+
+18 
+ušt16_t
+ 
+	g·ck‘FÏgs
+;
+
+19 
+ušt32_t
+ 
+	g»maššgL’gth
+;
+
+	@.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Storage.hpp
+
+1 #´agm¨
+Úû
+
+
+3 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+4 
+	sP’dšgPubR–
+ {
+
+5 
+ušt16_t
+ 
+	g·ck‘Id
+;
+
+8 
+	sP’dšgAck
+ {
+
+9 
+ušt8_t
+ 
+	g·ck‘Ty³
+;
+
+10 
+ušt8_t
+ 
+	gh—d”FÏg
+;
+
+11 
+ušt16_t
+ 
+	g·ck‘Id
+;
+
+	@.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.cpp
+
+22 
+	~"Ardušo.h
+"
+
+24 
+	~"AsyncTCP.h
+"
+
+26 
+	~"lw�/Ýt.h
+"
+
+27 
+	~"lw�/tý.h
+"
+
+28 
+	~"lw�/š‘.h
+"
+
+29 
+	~"lw�/dns.h
+"
+
+30 
+	~"lw�/”r.h
+"
+
+32 
+	~"e¥_�sk_wdt.h
+"
+
+39 
+LWIP_TCP_SENT
+, 
+LWIP_TCP_RECV
+, 
+LWIP_TCP_FIN
+, 
+LWIP_TCP_ERROR
+, 
+LWIP_TCP_POLL
+, 
+LWIP_TCP_CLEAR
+, 
+LWIP_TCP_ACCEPT
+, 
+LWIP_TCP_CONNECTED
+, 
+LWIP_TCP_DNS
+
+
+40 } 
+	tlw�_ev’t_t
+;
+
+43 
+lw�_ev’t_t
+ 
+	mev’t
+;
+
+44 *
+	m¬g
+;
+
+47 * 
+	mpcb
+;
+
+48 
+št8_t
+ 
+	m”r
+;
+
+49 } 
+	mcÚÃùed
+;
+
+51 
+št8_t
+ 
+	m”r
+;
+
+52 } 
+	m”rÜ
+;
+
+54 
+tý_pcb
+ * 
+	mpcb
+;
+
+55 
+ušt16_t
+ 
+	mËn
+;
+
+56 } 
+	m£Á
+;
+
+58 
+tý_pcb
+ * 
+	mpcb
+;
+
+59 
+pbuf
+ * 
+	mpb
+;
+
+60 
+št8_t
+ 
+	m”r
+;
+
+61 } 
+	m»cv
+;
+
+63 
+tý_pcb
+ * 
+	mpcb
+;
+
+64 
+št8_t
+ 
+	m”r
+;
+
+65 } 
+	mfš
+;
+
+67 
+tý_pcb
+ * 
+	mpcb
+;
+
+68 } 
+	mpÞl
+;
+
+70 
+AsyncCl›Á
+ * 
+	mþ›Á
+;
+
+71 } 
+	macû±
+;
+
+73 cÚ¡ * 
+	mÇme
+;
+
+74 
+�_addr_t
+ 
+	maddr
+;
+
+75 } 
+	mdns
+;
+
+77 } 
+	tlw�_ev’t_·ck‘_t
+;
+
+79 
+xQueueHªdË
+ 
+	g_async_queue
+;
+
+80 
+TaskHªdË_t
+ 
+	g_async_£rviû_�sk_hªdË
+ = 
+NULL
+;
+
+83 
+Sem­hÜeHªdË_t
+ 
+	g_¦Ùs_lock
+;
+
+84 cÚ¡ 
+	g_numb”_of_þo£d_¦Ùs
+ = 
+CONFIG_LWIP_MAX_ACTIVE_TCP
+;
+
+85 
+	g_þo£d_¦Ùs
+[
+_numb”_of_þo£d_¦Ùs
+];
+
+86 
+	g_þo£d_šdex
+ = []() {
+
+87 
+_¦Ùs_lock
+ = 
+xSem­hÜeC»©eBš¬y
+();
+
+88 
+xSem­hÜeGive
+(
+_¦Ùs_lock
+);
+
+89 
+	gi
+ = 0; i < 
+	g_numb”_of_þo£d_¦Ùs
+; ++ i) {
+
+90 
+	g_þo£d_¦Ùs
+[
+i
+] = 1;
+
+96 
+šlše
+ 
+boÞ
+ 
+	$_š™_async_ev’t_queue
+(){
+
+97 if(!
+_async_queue
+){
+
+98 
+_async_queue
+ = 
+	`xQueueC»©e
+(32, (
+lw�_ev’t_·ck‘_t
+ *));
+
+99 if(!
+_async_queue
+){
+
+100  
+çl£
+;
+
+103  
+Œue
+;
+
+104 
+	}
+}
+
+106 
+šlše
+ 
+boÞ
+ 
+	$_£nd_async_ev’t
+(
+lw�_ev’t_·ck‘_t
+ ** 
+e
+){
+
+107  
+_async_queue
+ && 
+	`xQueueS’d
+(_async_queue, 
+e
+, 
+pÜtMAX_DELAY
+è=ð
+pdPASS
+;
+
+108 
+	}
+}
+
+110 
+šlše
+ 
+boÞ
+ 
+	$_´•’d_async_ev’t
+(
+lw�_ev’t_·ck‘_t
+ ** 
+e
+){
+
+111  
+_async_queue
+ && 
+	`xQueueS’dToFrÚt
+(_async_queue, 
+e
+, 
+pÜtMAX_DELAY
+è=ð
+pdPASS
+;
+
+112 
+	}
+}
+
+114 
+šlše
+ 
+boÞ
+ 
+	$_g‘_async_ev’t
+(
+lw�_ev’t_·ck‘_t
+ ** 
+e
+){
+
+115  
+_async_queue
+ && 
+	`xQueueReûive
+(_async_queue, 
+e
+, 
+pÜtMAX_DELAY
+è=ð
+pdPASS
+;
+
+116 
+	}
+}
+
+118 
+boÞ
+ 
+	$_»move_ev’ts_w™h_¬g
+(* 
+¬g
+){
+
+119 
+lw�_ev’t_·ck‘_t
+ * 
+fœ¡_·ck‘
+ = 
+NULL
+;
+
+120 
+lw�_ev’t_·ck‘_t
+ * 
+·ck‘
+ = 
+NULL
+;
+
+122 if(!
+_async_queue
+){
+
+123  
+çl£
+;
+
+126 !
+fœ¡_·ck‘
+){
+
+127 if(
+	`xQueueReûive
+(
+_async_queue
+, &
+fœ¡_·ck‘
+, 0è!ð
+pdPASS
+){
+
+128  
+çl£
+;
+
+131 if(()
+fœ¡_·ck‘
+->
+¬g
+ == ()arg){
+
+132 
+	`ä“
+(
+fœ¡_·ck‘
+);
+
+133 
+fœ¡_·ck‘
+ = 
+NULL
+;
+
+135 } if(
+	`xQueueS’d
+(
+_async_queue
+, &
+fœ¡_·ck‘
+, 
+pÜtMAX_DELAY
+è!ð
+pdPASS
+){
+
+136  
+çl£
+;
+
+140 
+	`xQueueP“k
+(
+_async_queue
+, &
+·ck‘
+, 0è=ð
+pdPASS
+ &&…ack‘ !ð
+fœ¡_·ck‘
+){
+
+141 if(
+	`xQueueReûive
+(
+_async_queue
+, &
+·ck‘
+, 0è!ð
+pdPASS
+){
+
+142  
+çl£
+;
+
+144 if(()
+·ck‘
+->
+¬g
+ == ()arg){
+
+145 
+	`ä“
+(
+·ck‘
+);
+
+146 
+·ck‘
+ = 
+NULL
+;
+
+147 } if(
+	`xQueueS’d
+(
+_async_queue
+, &
+·ck‘
+, 
+pÜtMAX_DELAY
+è!ð
+pdPASS
+){
+
+148  
+çl£
+;
+
+151  
+Œue
+;
+
+152 
+	}
+}
+
+154 
+	$_hªdË_async_ev’t
+(
+lw�_ev’t_·ck‘_t
+ * 
+e
+){
+
+155 if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_CLEAR
+){
+
+156 
+	`_»move_ev’ts_w™h_¬g
+(
+e
+->
+¬g
+);
+
+157 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_RECV
+){
+
+159 
+AsyncCl›Á
+::
+	`_s_»cv
+(
+e
+->
+¬g
+,ƒ->
+»cv
+.
+pcb
+,ƒ->»cv.
+pb
+,ƒ->»cv.
+”r
+);
+
+160 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_FIN
+){
+
+162 
+AsyncCl›Á
+::
+	`_s_fš
+(
+e
+->
+¬g
+,ƒ->
+fš
+.
+pcb
+,ƒ->fš.
+”r
+);
+
+163 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_SENT
+){
+
+165 
+AsyncCl›Á
+::
+	`_s_£Á
+(
+e
+->
+¬g
+,ƒ->
+£Á
+.
+pcb
+,ƒ->£Á.
+Ën
+);
+
+166 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_POLL
+){
+
+168 
+AsyncCl›Á
+::
+	`_s_pÞl
+(
+e
+->
+¬g
+,ƒ->
+pÞl
+.
+pcb
+);
+
+169 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_ERROR
+){
+
+171 
+AsyncCl›Á
+::
+	`_s_”rÜ
+(
+e
+->
+¬g
+,ƒ->
+”rÜ
+.
+”r
+);
+
+172 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_CONNECTED
+){
+
+174 
+AsyncCl›Á
+::
+	`_s_cÚÃùed
+(
+e
+->
+¬g
+,ƒ->
+cÚÃùed
+.
+pcb
+,ƒ->cÚÃùed.
+”r
+);
+
+175 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_ACCEPT
+){
+
+177 
+AsyncS”v”
+::
+	`_s_acû±ed
+(
+e
+->
+¬g
+,ƒ->
+acû±
+.
+þ›Á
+);
+
+178 } if(
+e
+->
+ev’t
+ =ð
+LWIP_TCP_DNS
+){
+
+180 
+AsyncCl›Á
+::
+	`_s_dns_found
+(
+e
+->
+dns
+.
+Çme
+, &e->dns.
+addr
+,ƒ->
+¬g
+);
+
+182 
+	`ä“
+((*)(
+e
+));
+
+183 
+	}
+}
+
+185 
+	$_async_£rviû_�sk
+(*
+pvP¬am‘”s
+){
+
+186 
+lw�_ev’t_·ck‘_t
+ * 
+·ck‘
+ = 
+NULL
+;
+
+188 if(
+	`_g‘_async_ev’t
+(&
+·ck‘
+)){
+
+189 #ià
+CONFIG_ASYNC_TCP_USE_WDT
+
+
+190 if(
+	`e¥_�sk_wdt_add
+(
+NULL
+è!ð
+ESP_OK
+){
+
+191 
+	`log_e
+("Failed�o‡dd‡sync�ask�o WDT");
+
+194 
+	`_hªdË_async_ev’t
+(
+·ck‘
+);
+
+195 #ià
+CONFIG_ASYNC_TCP_USE_WDT
+
+
+196 if(
+	`e¥_�sk_wdt_d–‘e
+(
+NULL
+è!ð
+ESP_OK
+){
+
+197 
+	`log_e
+("Failed�o„emove†oop�ask from WDT");
+
+202 
+	`vTaskD–‘e
+(
+NULL
+);
+
+203 
+_async_£rviû_�sk_hªdË
+ = 
+NULL
+;
+
+204 
+	}
+}
+
+213 
+boÞ
+ 
+	$_¡¬t_async_�sk
+(){
+
+214 if(!
+	`_š™_async_ev’t_queue
+()){
+
+215  
+çl£
+;
+
+217 if(!
+_async_£rviû_�sk_hªdË
+){
+
+218 
+	`xTaskC»©eUniv”§l
+(
+_async_£rviû_�sk
+, "async_tý", 8192 * 2, 
+NULL
+, 3, &
+_async_£rviû_�sk_hªdË
+, 
+CONFIG_ASYNC_TCP_RUNNING_CORE
+);
+
+219 if(!
+_async_£rviû_�sk_hªdË
+){
+
+220  
+çl£
+;
+
+223  
+Œue
+;
+
+224 
+	}
+}
+
+230 
+št8_t
+ 
+	$_tý_þ—r_ev’ts
+(* 
+¬g
+) {
+
+231 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+232 
+e
+->
+ev’t
+ = 
+LWIP_TCP_CLEAR
+;
+
+233 
+e
+->
+¬g
+ =‡rg;
+
+234 ià(!
+	`_´•’d_async_ev’t
+(&
+e
+)) {
+
+235 
+	`ä“
+((*)(
+e
+));
+
+237  
+ERR_OK
+;
+
+238 
+	}
+}
+
+240 
+št8_t
+ 
+	$_tý_cÚÃùed
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+”r
+) {
+
+242 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+243 
+e
+->
+ev’t
+ = 
+LWIP_TCP_CONNECTED
+;
+
+244 
+e
+->
+¬g
+ =‡rg;
+
+245 
+e
+->
+cÚÃùed
+.
+pcb
+ =…cb;
+
+246 
+e
+->
+cÚÃùed
+.
+”r
+ =ƒrr;
+
+247 ià(!
+	`_´•’d_async_ev’t
+(&
+e
+)) {
+
+248 
+	`ä“
+((*)(
+e
+));
+
+250  
+ERR_OK
+;
+
+251 
+	}
+}
+
+253 
+št8_t
+ 
+	$_tý_pÞl
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+) {
+
+255 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+256 
+e
+->
+ev’t
+ = 
+LWIP_TCP_POLL
+;
+
+257 
+e
+->
+¬g
+ =‡rg;
+
+258 
+e
+->
+pÞl
+.
+pcb
+ =…cb;
+
+259 ià(!
+	`_£nd_async_ev’t
+(&
+e
+)) {
+
+260 
+	`ä“
+((*)(
+e
+));
+
+262  
+ERR_OK
+;
+
+263 
+	}
+}
+
+265 
+št8_t
+ 
+	$_tý_»cv
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+pbuf
+ *
+pb
+, 
+št8_t
+ 
+”r
+) {
+
+266 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+267 
+e
+->
+¬g
+ =‡rg;
+
+268 if(
+pb
+){
+
+270 
+e
+->
+ev’t
+ = 
+LWIP_TCP_RECV
+;
+
+271 
+e
+->
+»cv
+.
+pcb
+ =…cb;
+
+272 
+e
+->
+»cv
+.
+pb
+ =…b;
+
+273 
+e
+->
+»cv
+.
+”r
+ =ƒrr;
+
+276 
+e
+->
+ev’t
+ = 
+LWIP_TCP_FIN
+;
+
+277 
+e
+->
+fš
+.
+pcb
+ =…cb;
+
+278 
+e
+->
+fš
+.
+”r
+ =ƒrr;
+
+280 
+AsyncCl›Á
+::
+	`_s_lw�_fš
+(
+e
+->
+¬g
+,ƒ->
+fš
+.
+pcb
+,ƒ->fš.
+”r
+);
+
+282 ià(!
+	`_£nd_async_ev’t
+(&
+e
+)) {
+
+283 
+	`ä“
+((*)(
+e
+));
+
+285  
+ERR_OK
+;
+
+286 
+	}
+}
+
+288 
+št8_t
+ 
+	$_tý_£Á
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+ušt16_t
+ 
+Ën
+) {
+
+290 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+291 
+e
+->
+ev’t
+ = 
+LWIP_TCP_SENT
+;
+
+292 
+e
+->
+¬g
+ =‡rg;
+
+293 
+e
+->
+£Á
+.
+pcb
+ =…cb;
+
+294 
+e
+->
+£Á
+.
+Ën
+ =†en;
+
+295 ià(!
+	`_£nd_async_ev’t
+(&
+e
+)) {
+
+296 
+	`ä“
+((*)(
+e
+));
+
+298  
+ERR_OK
+;
+
+299 
+	}
+}
+
+301 
+	$_tý_”rÜ
+(* 
+¬g
+, 
+št8_t
+ 
+”r
+) {
+
+303 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+304 
+e
+->
+ev’t
+ = 
+LWIP_TCP_ERROR
+;
+
+305 
+e
+->
+¬g
+ =‡rg;
+
+306 
+e
+->
+”rÜ
+.
+”r
+ =ƒrr;
+
+307 ià(!
+	`_£nd_async_ev’t
+(&
+e
+)) {
+
+308 
+	`ä“
+((*)(
+e
+));
+
+310 
+	}
+}
+
+312 
+	$_tý_dns_found
+(cÚ¡ * 
+Çme
+, 
+�_addr
+ * 
+�addr
+, * 
+¬g
+) {
+
+313 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+315 
+e
+->
+ev’t
+ = 
+LWIP_TCP_DNS
+;
+
+316 
+e
+->
+¬g
+ =‡rg;
+
+317 
+e
+->
+dns
+.
+Çme
+ =‚ame;
+
+318 ià(
+�addr
+) {
+
+319 
+	`memýy
+(&
+e
+->
+dns
+.
+addr
+, 
+�addr
+, (
+�_addr
+));
+
+321 
+	`mem£t
+(&
+e
+->
+dns
+.
+addr
+, 0, (e->dns.addr));
+
+323 ià(!
+	`_£nd_async_ev’t
+(&
+e
+)) {
+
+324 
+	`ä“
+((*)(
+e
+));
+
+326 
+	}
+}
+
+329 
+št8_t
+ 
+	$_tý_acû±
+(* 
+¬g
+, 
+AsyncCl›Á
+ * 
+þ›Á
+) {
+
+330 
+lw�_ev’t_·ck‘_t
+ * 
+e
+ = (lw�_ev’t_·ck‘_ˆ*)
+	`m®loc
+((lwip_event_packet_t));
+
+331 
+e
+->
+ev’t
+ = 
+LWIP_TCP_ACCEPT
+;
+
+332 
+e
+->
+¬g
+ =‡rg;
+
+333 
+e
+->
+acû±
+.
+þ›Á
+ = client;
+
+334 ià(!
+	`_´•’d_async_ev’t
+(&
+e
+)) {
+
+335 
+	`ä“
+((*)(
+e
+));
+
+337  
+ERR_OK
+;
+
+338 
+	}
+}
+
+344 
+	~"lw�/´iv/tý�_´iv.h
+"
+
+347 
+tý�_­i_ÿÎ_d©a
+ 
+	mÿÎ
+;
+
+348 
+tý_pcb
+ * 
+	mpcb
+;
+
+349 
+št8_t
+ 
+	mþo£d_¦Ù
+;
+
+350 
+št8_t
+ 
+	m”r
+;
+
+353 cÚ¡ * 
+	md©a
+;
+
+354 
+size_t
+ 
+	msize
+;
+
+355 
+ušt8_t
+ 
+	m­iæags
+;
+
+356 } 
+	mwr™e
+;
+
+357 
+size_t
+ 
+	m»ûived
+;
+
+359 
+�_addr_t
+ * 
+	maddr
+;
+
+360 
+ušt16_t
+ 
+	mpÜt
+;
+
+361 
+tý_cÚÃùed_â
+ 
+	mcb
+;
+
+362 } 
+	mcÚÃù
+;
+
+364 
+�_addr_t
+ * 
+	maddr
+;
+
+365 
+ušt16_t
+ 
+	mpÜt
+;
+
+366 } 
+	mbšd
+;
+
+367 
+ušt8_t
+ 
+	mbacklog
+;
+
+369 } 
+	ttý_­i_ÿÎ_t
+;
+
+371 
+”r_t
+ 
+	$_tý_ou�ut_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+372 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+373 
+msg
+->
+”r
+ = 
+ERR_CONN
+;
+
+374 if(
+msg
+->
+þo£d_¦Ù
+ =ð-1 || !
+_þo£d_¦Ùs
+[msg->closed_slot]) {
+
+375 
+msg
+->
+”r
+ = 
+	`tý_ou�ut
+(msg->
+pcb
+);
+
+377  
+msg
+->
+”r
+;
+
+378 
+	}
+}
+
+380 
+e¥_”r_t
+ 
+	$_tý_ou�ut
+(
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+þo£d_¦Ù
+) {
+
+381 if(!
+pcb
+){
+
+382  
+ERR_CONN
+;
+
+384 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+385 
+msg
+.
+pcb
+ =…cb;
+
+386 
+msg
+.
+þo£d_¦Ù
+ = closed_slot;
+
+387 
+	`tý�_­i_ÿÎ
+(
+_tý_ou�ut_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+388  
+msg
+.
+”r
+;
+
+389 
+	}
+}
+
+391 
+”r_t
+ 
+	$_tý_wr™e_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+392 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+393 
+msg
+->
+”r
+ = 
+ERR_CONN
+;
+
+394 if(
+msg
+->
+þo£d_¦Ù
+ =ð-1 || !
+_þo£d_¦Ùs
+[msg->closed_slot]) {
+
+395 
+msg
+->
+”r
+ = 
+	`tý_wr™e
+(msg->
+pcb
+, msg->
+wr™e
+.
+d©a
+, msg->wr™e.
+size
+, msg->wr™e.
+­iæags
+);
+
+397  
+msg
+->
+”r
+;
+
+398 
+	}
+}
+
+400 
+e¥_”r_t
+ 
+	$_tý_wr™e
+(
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+þo£d_¦Ù
+, cÚ¡ * 
+d©a
+, 
+size_t
+ 
+size
+, 
+ušt8_t
+ 
+­iæags
+) {
+
+401 if(!
+pcb
+){
+
+402  
+ERR_CONN
+;
+
+404 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+405 
+msg
+.
+pcb
+ =…cb;
+
+406 
+msg
+.
+þo£d_¦Ù
+ = closed_slot;
+
+407 
+msg
+.
+wr™e
+.
+d©a
+ = data;
+
+408 
+msg
+.
+wr™e
+.
+size
+ = size;
+
+409 
+msg
+.
+wr™e
+.
+­iæags
+ =‡piflags;
+
+410 
+	`tý�_­i_ÿÎ
+(
+_tý_wr™e_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+411  
+msg
+.
+”r
+;
+
+412 
+	}
+}
+
+414 
+”r_t
+ 
+	$_tý_»cved_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+415 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+416 
+msg
+->
+”r
+ = 
+ERR_CONN
+;
+
+417 if(
+msg
+->
+þo£d_¦Ù
+ =ð-1 || !
+_þo£d_¦Ùs
+[msg->closed_slot]) {
+
+418 
+msg
+->
+”r
+ = 0;
+
+419 
+	`tý_»cved
+(
+msg
+->
+pcb
+, msg->
+»ûived
+);
+
+421  
+msg
+->
+”r
+;
+
+422 
+	}
+}
+
+424 
+e¥_”r_t
+ 
+	$_tý_»cved
+(
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+þo£d_¦Ù
+, 
+size_t
+ 
+Ën
+) {
+
+425 if(!
+pcb
+){
+
+426  
+ERR_CONN
+;
+
+428 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+429 
+msg
+.
+pcb
+ =…cb;
+
+430 
+msg
+.
+þo£d_¦Ù
+ = closed_slot;
+
+431 
+msg
+.
+»ûived
+ = 
+Ën
+;
+
+432 
+	`tý�_­i_ÿÎ
+(
+_tý_»cved_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+433  
+msg
+.
+”r
+;
+
+434 
+	}
+}
+
+436 
+”r_t
+ 
+	$_tý_þo£_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+437 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+438 
+msg
+->
+”r
+ = 
+ERR_CONN
+;
+
+439 if(
+msg
+->
+þo£d_¦Ù
+ =ð-1 || !
+_þo£d_¦Ùs
+[msg->closed_slot]) {
+
+440 
+msg
+->
+”r
+ = 
+	`tý_þo£
+(msg->
+pcb
+);
+
+442  
+msg
+->
+”r
+;
+
+443 
+	}
+}
+
+445 
+e¥_”r_t
+ 
+	$_tý_þo£
+(
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+þo£d_¦Ù
+) {
+
+446 if(!
+pcb
+){
+
+447  
+ERR_CONN
+;
+
+449 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+450 
+msg
+.
+pcb
+ =…cb;
+
+451 
+msg
+.
+þo£d_¦Ù
+ = closed_slot;
+
+452 
+	`tý�_­i_ÿÎ
+(
+_tý_þo£_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+453  
+msg
+.
+”r
+;
+
+454 
+	}
+}
+
+456 
+”r_t
+ 
+	$_tý_abÜt_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+457 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+458 
+msg
+->
+”r
+ = 
+ERR_CONN
+;
+
+459 if(
+msg
+->
+þo£d_¦Ù
+ =ð-1 || !
+_þo£d_¦Ùs
+[msg->closed_slot]) {
+
+460 
+	`tý_abÜt
+(
+msg
+->
+pcb
+);
+
+462  
+msg
+->
+”r
+;
+
+463 
+	}
+}
+
+465 
+e¥_”r_t
+ 
+	$_tý_abÜt
+(
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+þo£d_¦Ù
+) {
+
+466 if(!
+pcb
+){
+
+467  
+ERR_CONN
+;
+
+469 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+470 
+msg
+.
+pcb
+ =…cb;
+
+471 
+msg
+.
+þo£d_¦Ù
+ = closed_slot;
+
+472 
+	`tý�_­i_ÿÎ
+(
+_tý_abÜt_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+473  
+msg
+.
+”r
+;
+
+474 
+	}
+}
+
+476 
+”r_t
+ 
+	$_tý_cÚÃù_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+477 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+478 
+msg
+->
+”r
+ = 
+	`tý_cÚÃù
+(msg->
+pcb
+, msg->
+cÚÃù
+.
+addr
+, msg->cÚÃù.
+pÜt
+, msg->cÚÃù.
+cb
+);
+
+479  
+msg
+->
+”r
+;
+
+480 
+	}
+}
+
+482 
+e¥_”r_t
+ 
+	$_tý_cÚÃù
+(
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+þo£d_¦Ù
+, 
+�_addr_t
+ * 
+addr
+, 
+ušt16_t
+ 
+pÜt
+, 
+tý_cÚÃùed_â
+ 
+cb
+) {
+
+483 if(!
+pcb
+){
+
+484  
+ESP_FAIL
+;
+
+486 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+487 
+msg
+.
+pcb
+ =…cb;
+
+488 
+msg
+.
+þo£d_¦Ù
+ = closed_slot;
+
+489 
+msg
+.
+cÚÃù
+.
+addr
+ =‡ddr;
+
+490 
+msg
+.
+cÚÃù
+.
+pÜt
+ =…ort;
+
+491 
+msg
+.
+cÚÃù
+.
+cb
+ = cb;
+
+492 
+	`tý�_­i_ÿÎ
+(
+_tý_cÚÃù_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+493  
+msg
+.
+”r
+;
+
+494 
+	}
+}
+
+496 
+”r_t
+ 
+	$_tý_bšd_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+497 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+498 
+msg
+->
+”r
+ = 
+	`tý_bšd
+(msg->
+pcb
+, msg->
+bšd
+.
+addr
+, msg->bšd.
+pÜt
+);
+
+499  
+msg
+->
+”r
+;
+
+500 
+	}
+}
+
+502 
+e¥_”r_t
+ 
+	$_tý_bšd
+(
+tý_pcb
+ * 
+pcb
+, 
+�_addr_t
+ * 
+addr
+, 
+ušt16_t
+ 
+pÜt
+) {
+
+503 if(!
+pcb
+){
+
+504  
+ESP_FAIL
+;
+
+506 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+507 
+msg
+.
+pcb
+ =…cb;
+
+508 
+msg
+.
+þo£d_¦Ù
+ = -1;
+
+509 
+msg
+.
+bšd
+.
+addr
+ =‡ddr;
+
+510 
+msg
+.
+bšd
+.
+pÜt
+ =…ort;
+
+511 
+	`tý�_­i_ÿÎ
+(
+_tý_bšd_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+512  
+msg
+.
+”r
+;
+
+513 
+	}
+}
+
+515 
+”r_t
+ 
+	$_tý_li¡’_­i
+(
+tý�_­i_ÿÎ_d©a
+ *
+­i_ÿÎ_msg
+){
+
+516 
+tý_­i_ÿÎ_t
+ * 
+msg
+ = (tý_­i_ÿÎ_ˆ*)
+­i_ÿÎ_msg
+;
+
+517 
+msg
+->
+”r
+ = 0;
+
+518 
+msg
+->
+pcb
+ = 
+	`tý_li¡’_w™h_backlog
+(msg->pcb, msg->
+backlog
+);
+
+519  
+msg
+->
+”r
+;
+
+520 
+	}
+}
+
+522 
+tý_pcb
+ * 
+	$_tý_li¡’_w™h_backlog
+(
+tý_pcb
+ * 
+pcb
+, 
+ušt8_t
+ 
+backlog
+) {
+
+523 if(!
+pcb
+){
+
+524  
+NULL
+;
+
+526 
+tý_­i_ÿÎ_t
+ 
+msg
+;
+
+527 
+msg
+.
+pcb
+ =…cb;
+
+528 
+msg
+.
+þo£d_¦Ù
+ = -1;
+
+529 
+msg
+.
+backlog
+ = backlog?backlog:0xFF;
+
+530 
+	`tý�_­i_ÿÎ
+(
+_tý_li¡’_­i
+, (
+tý�_­i_ÿÎ_d©a
+*)&
+msg
+);
+
+531  
+msg
+.
+pcb
+;
+
+532 
+	}
+}
+
+540 
+	gAsyncCl›Á
+::
+	$AsyncCl›Á
+(
+tý_pcb
+* 
+pcb
+)
+
+541 : 
+	`_cÚÃù_cb
+(0)
+
+542 , 
+	`_cÚÃù_cb_¬g
+(0)
+
+543 , 
+	`_disÿrd_cb
+(0)
+
+544 , 
+	`_disÿrd_cb_¬g
+(0)
+
+545 , 
+	`_£Á_cb
+(0)
+
+546 , 
+	`_£Á_cb_¬g
+(0)
+
+547 , 
+	`_”rÜ_cb
+(0)
+
+548 , 
+	`_”rÜ_cb_¬g
+(0)
+
+549 , 
+	`_»cv_cb
+(0)
+
+550 , 
+	`_»cv_cb_¬g
+(0)
+
+551 , 
+	`_pb_cb
+(0)
+
+552 , 
+	`_pb_cb_¬g
+(0)
+
+553 , 
+	`_timeout_cb
+(0)
+
+554 , 
+	`_timeout_cb_¬g
+(0)
+
+555 , 
+	`_pcb_busy
+(
+çl£
+)
+
+556 , 
+	`_pcb_£Á_©
+(0)
+
+557 , 
+	`_ack_pcb
+(
+Œue
+)
+
+558 , 
+	`_rx_Ï¡_·ck‘
+(0)
+
+559 , 
+	`_rx_sšû_timeout
+(0)
+
+560 , 
+	`_ack_timeout
+(
+ASYNC_MAX_ACK_TIME
+)
+
+561 , 
+	`_cÚÃù_pÜt
+(0)
+
+562 , 
+	`´ev
+(
+NULL
+)
+
+563 , 
+	$Ãxt
+(
+NULL
+)
+
+565 
+_pcb
+ = 
+pcb
+;
+
+566 
+_þo£d_¦Ù
+ = -1;
+
+567 if(
+_pcb
+){
+
+568 
+	`xSem­hÜeTake
+(
+_¦Ùs_lock
+, 
+pÜtMAX_DELAY
+);
+
+569 
+þo£d_¦Ù_mš_šdex
+ = 0;
+
+570 
+i
+ = 0; i < 
+_numb”_of_þo£d_¦Ùs
+; ++ i) {
+
+571 ià((
+_þo£d_¦Ù
+ =ð-1 || 
+_þo£d_¦Ùs
+[
+i
+] <ð
+þo£d_¦Ù_mš_šdex
+) && _closed_slots[i] != 0) {
+
+572 
+þo£d_¦Ù_mš_šdex
+ = 
+_þo£d_¦Ùs
+[
+i
+];
+
+573 
+_þo£d_¦Ù
+ = 
+i
+;
+
+576 
+_þo£d_¦Ùs
+[
+_þo£d_¦Ù
+] = 0;
+
+577 
+	`xSem­hÜeGive
+(
+_¦Ùs_lock
+);
+
+579 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+580 
+	`tý_¬g
+(
+_pcb
+, 
+this
+);
+
+581 
+	`tý_»cv
+(
+_pcb
+, &
+_tý_»cv
+);
+
+582 
+	`tý_£Á
+(
+_pcb
+, &
+_tý_£Á
+);
+
+583 
+	`tý_”r
+(
+_pcb
+, &
+_tý_”rÜ
+);
+
+584 
+	`tý_pÞl
+(
+_pcb
+, &
+_tý_pÞl
+, 1);
+
+586 
+	}
+}
+
+588 
+	gAsyncCl›Á
+::~
+	$AsyncCl›Á
+(){
+
+589 if(
+_pcb
+) {
+
+590 
+	`_þo£
+();
+
+592 
+	}
+}
+
+598 
+	gAsyncCl›Á
+& AsyncCl›Á::
+Ý”©Ü
+=(cÚ¡ 
+AsyncCl›Á
+& 
+Ùh”
+){
+
+599 ià(
+_pcb
+) {
+
+600 
+_þo£
+();
+
+603 
+	g_pcb
+ = 
+Ùh”
+.
+_pcb
+;
+
+604 
+	g_þo£d_¦Ù
+ = 
+Ùh”
+.
+_þo£d_¦Ù
+;
+
+605 ià(
+	g_pcb
+) {
+
+606 
+	g_rx_Ï¡_·ck‘
+ = 
+mžlis
+();
+
+607 
+tý_¬g
+(
+_pcb
+, 
+this
+);
+
+608 
+tý_»cv
+(
+_pcb
+, &
+_tý_»cv
+);
+
+609 
+tý_£Á
+(
+_pcb
+, &
+_tý_£Á
+);
+
+610 
+tý_”r
+(
+_pcb
+, &
+_tý_”rÜ
+);
+
+611 
+tý_pÞl
+(
+_pcb
+, &
+_tý_pÞl
+, 1);
+
+613  *
+	gthis
+;
+
+616 
+boÞ
+ 
+	gAsyncCl›Á
+::
+Ý”©Ü
+==(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+) {
+
+617  
+_pcb
+ =ð
+Ùh”
+._pcb;
+
+620 
+	gAsyncCl›Á
+ & AsyncCl›Á::
+Ý”©Ü
++=(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+) {
+
+621 if(
+Ãxt
+ =ð
+NULL
+){
+
+622 
+Ãxt
+ = (
+AsyncCl›Á
+*)(&
+Ùh”
+);
+
+623 
+	gÃxt
+->
+	g´ev
+ = 
+this
+;
+
+625 
+AsyncCl›Á
+ *
+	gc
+ = 
+Ãxt
+;
+
+626 
+	gc
+->
+	gÃxt
+ !ð
+NULL
+) {
+
+627 
+c
+ = c->
+Ãxt
+;
+
+629 
+	gc
+->
+	gÃxt
+ =(
+AsyncCl›Á
+*)(&
+Ùh”
+);
+
+630 
+	gc
+->
+	gÃxt
+->
+	g´ev
+ = 
+c
+;
+
+632  *
+	gthis
+;
+
+639 
+	gAsyncCl›Á
+::
+	$ÚCÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+640 
+_cÚÃù_cb
+ = 
+cb
+;
+
+641 
+_cÚÃù_cb_¬g
+ = 
+¬g
+;
+
+642 
+	}
+}
+
+644 
+	gAsyncCl›Á
+::
+	$ÚDiscÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+645 
+_disÿrd_cb
+ = 
+cb
+;
+
+646 
+_disÿrd_cb_¬g
+ = 
+¬g
+;
+
+647 
+	}
+}
+
+649 
+	gAsyncCl›Á
+::
+	$ÚAck
+(
+AcAckHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+650 
+_£Á_cb
+ = 
+cb
+;
+
+651 
+_£Á_cb_¬g
+ = 
+¬g
+;
+
+652 
+	}
+}
+
+654 
+	gAsyncCl›Á
+::
+	$ÚE¼Ü
+(
+AcE¼ÜHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+655 
+_”rÜ_cb
+ = 
+cb
+;
+
+656 
+_”rÜ_cb_¬g
+ = 
+¬g
+;
+
+657 
+	}
+}
+
+659 
+	gAsyncCl›Á
+::
+	$ÚD©a
+(
+AcD©aHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+660 
+_»cv_cb
+ = 
+cb
+;
+
+661 
+_»cv_cb_¬g
+ = 
+¬g
+;
+
+662 
+	}
+}
+
+664 
+	gAsyncCl›Á
+::
+	$ÚPack‘
+(
+AcPack‘HªdËr
+ 
+cb
+, * 
+¬g
+){
+
+665 
+_pb_cb
+ = 
+cb
+;
+
+666 
+_pb_cb_¬g
+ = 
+¬g
+;
+
+667 
+	}
+}
+
+669 
+	gAsyncCl›Á
+::
+	$ÚTimeout
+(
+AcTimeoutHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+670 
+_timeout_cb
+ = 
+cb
+;
+
+671 
+_timeout_cb_¬g
+ = 
+¬g
+;
+
+672 
+	}
+}
+
+674 
+	gAsyncCl›Á
+::
+	$ÚPÞl
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+675 
+_pÞl_cb
+ = 
+cb
+;
+
+676 
+_pÞl_cb_¬g
+ = 
+¬g
+;
+
+677 
+	}
+}
+
+683 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+){
+
+684 ià(
+_pcb
+){
+
+685 
+	`log_w
+("®»ady cÚÃùed, s�‹ %d", 
+_pcb
+->
+¡©e
+);
+
+686  
+çl£
+;
+
+688 if(!
+	`_¡¬t_async_�sk
+()){
+
+689 
+	`log_e
+("failed�o start�ask");
+
+690  
+çl£
+;
+
+693 
+�_addr_t
+ 
+addr
+;
+
+694 
+addr
+.
+ty³
+ = 
+IPADDR_TYPE_V4
+;
+
+695 
+addr
+.
+u_addr
+.
+�4
+.add¸ð
+�
+;
+
+697 
+tý_pcb
+* 
+pcb
+ = 
+	`tý_Ãw_�_ty³
+(
+IPADDR_TYPE_V4
+);
+
+698 ià(!
+pcb
+){
+
+699 
+	`log_e
+("pcb == NULL");
+
+700  
+çl£
+;
+
+703 
+	`tý_¬g
+(
+pcb
+, 
+this
+);
+
+704 
+	`tý_”r
+(
+pcb
+, &
+_tý_”rÜ
+);
+
+705 
+	`tý_»cv
+(
+pcb
+, &
+_tý_»cv
+);
+
+706 
+	`tý_£Á
+(
+pcb
+, &
+_tý_£Á
+);
+
+707 
+	`tý_pÞl
+(
+pcb
+, &
+_tý_pÞl
+, 1);
+
+709 
+	`_tý_cÚÃù
+(
+pcb
+, 
+_þo£d_¦Ù
+, &
+addr
+, 
+pÜt
+,(
+tý_cÚÃùed_â
+)&
+_tý_cÚÃùed
+);
+
+710  
+Œue
+;
+
+711 
+	}
+}
+
+713 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$cÚÃù
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+){
+
+714 
+�_addr_t
+ 
+addr
+;
+
+716 if(!
+	`_¡¬t_async_�sk
+()){
+
+717 
+S”Ÿl
+.
+	`´šŽn
+("failed�o start�ask");
+
+718 
+	`log_e
+("failed�o start�ask");
+
+719  
+çl£
+;
+
+722 
+”r_t
+ 
+”r
+ = 
+	`dns_g‘ho¡byÇme
+(
+ho¡
+, &
+addr
+, (
+dns_found_ÿÎback
+)&
+_tý_dns_found
+, 
+this
+);
+
+723 if(
+”r
+ =ð
+ERR_OK
+) {
+
+724  
+	`cÚÃù
+(
+	`IPAdd»ss
+(
+addr
+.
+u_addr
+.
+�4
+.addr), 
+pÜt
+);
+
+725 } if(
+”r
+ =ð
+ERR_INPROGRESS
+) {
+
+726 
+_cÚÃù_pÜt
+ = 
+pÜt
+;
+
+727  
+Œue
+;
+
+729 
+	`log_e
+("”rÜ: %d", 
+”r
+);
+
+730  
+çl£
+;
+
+731 
+	}
+}
+
+733 
+	gAsyncCl›Á
+::
+	$þo£
+(
+boÞ
+ 
+now
+){
+
+734 if(
+_pcb
+){
+
+735 
+	`_tý_»cved
+(
+_pcb
+, 
+_þo£d_¦Ù
+, 
+_rx_ack_Ën
+);
+
+737 
+	`_þo£
+();
+
+738 
+	}
+}
+
+740 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$abÜt
+(){
+
+741 if(
+_pcb
+) {
+
+742 
+	`_tý_abÜt
+(
+_pcb
+, 
+_þo£d_¦Ù
+ );
+
+743 
+_pcb
+ = 
+NULL
+;
+
+745  
+ERR_ABRT
+;
+
+746 
+	}
+}
+
+748 
+size_t
+ 
+	gAsyncCl›Á
+::
+	$¥aû
+(){
+
+749 if((
+_pcb
+ !ð
+NULL
+è&& (_pcb->
+¡©e
+ == 4)){
+
+750  
+	`tý_¢dbuf
+(
+_pcb
+);
+
+753 
+	}
+}
+
+755 
+size_t
+ 
+	gAsyncCl›Á
+::
+	$add
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+size
+, 
+ušt8_t
+ 
+­iæags
+) {
+
+756 if(!
+_pcb
+ || 
+size
+ =ð0 || 
+d©a
+ =ð
+NULL
+) {
+
+759 
+size_t
+ 
+room
+ = 
+	`¥aû
+();
+
+760 if(!
+room
+) {
+
+763 
+size_t
+ 
+wžl_£nd
+ = (
+room
+ < 
+size
+) ?„oom : size;
+
+764 
+št8_t
+ 
+”r
+ = 
+ERR_OK
+;
+
+765 
+”r
+ = 
+	`_tý_wr™e
+(
+_pcb
+, 
+_þo£d_¦Ù
+, 
+d©a
+, 
+wžl_£nd
+, 
+­iæags
+);
+
+766 if(
+”r
+ !ð
+ERR_OK
+) {
+
+769  
+wžl_£nd
+;
+
+770 
+	}
+}
+
+772 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$£nd
+(){
+
+773 
+št8_t
+ 
+”r
+ = 
+ERR_OK
+;
+
+774 
+”r
+ = 
+	`_tý_ou�ut
+(
+_pcb
+, 
+_þo£d_¦Ù
+);
+
+775 if(
+”r
+ =ð
+ERR_OK
+){
+
+776 
+_pcb_busy
+ = 
+Œue
+;
+
+777 
+_pcb_£Á_©
+ = 
+	`mžlis
+();
+
+778  
+Œue
+;
+
+780  
+çl£
+;
+
+781 
+	}
+}
+
+783 
+size_t
+ 
+	gAsyncCl›Á
+::
+	$ack
+(
+size_t
+ 
+Ën
+){
+
+784 if(
+Ën
+ > 
+_rx_ack_Ën
+)
+
+785 
+Ën
+ = 
+_rx_ack_Ën
+;
+
+786 if(
+Ën
+){
+
+787 
+	`_tý_»cved
+(
+_pcb
+, 
+_þo£d_¦Ù
+, 
+Ën
+);
+
+789 
+_rx_ack_Ën
+ -ð
+Ën
+;
+
+790  
+Ën
+;
+
+791 
+	}
+}
+
+793 
+	gAsyncCl›Á
+::
+	$ackPack‘
+(
+pbuf
+ * 
+pb
+){
+
+794 if(!
+pb
+){
+
+797 
+	`_tý_»cved
+(
+_pcb
+, 
+_þo£d_¦Ù
+, 
+pb
+->
+Ën
+);
+
+798 
+	`pbuf_ä“
+(
+pb
+);
+
+799 
+	}
+}
+
+805 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_þo£
+(){
+
+807 
+št8_t
+ 
+”r
+ = 
+ERR_OK
+;
+
+808 if(
+_pcb
+) {
+
+810 
+	`tý_¬g
+(
+_pcb
+, 
+NULL
+);
+
+811 
+	`tý_£Á
+(
+_pcb
+, 
+NULL
+);
+
+812 
+	`tý_»cv
+(
+_pcb
+, 
+NULL
+);
+
+813 
+	`tý_”r
+(
+_pcb
+, 
+NULL
+);
+
+814 
+	`tý_pÞl
+(
+_pcb
+, 
+NULL
+, 0);
+
+815 
+	`_tý_þ—r_ev’ts
+(
+this
+);
+
+816 
+”r
+ = 
+	`_tý_þo£
+(
+_pcb
+, 
+_þo£d_¦Ù
+);
+
+817 if(
+”r
+ !ð
+ERR_OK
+) {
+
+818 
+”r
+ = 
+	`abÜt
+();
+
+820 
+_pcb
+ = 
+NULL
+;
+
+821 if(
+_disÿrd_cb
+) {
+
+822 
+	`_disÿrd_cb
+(
+_disÿrd_cb_¬g
+, 
+this
+);
+
+825  
+”r
+;
+
+826 
+	}
+}
+
+832 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_cÚÃùed
+(* 
+pcb
+, 
+št8_t
+ 
+”r
+){
+
+833 
+_pcb
+ = 
+»š‹½»t_ÿ¡
+<
+tý_pcb
+*>(
+pcb
+);
+
+834 if(
+_pcb
+){
+
+835 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+836 
+_pcb_busy
+ = 
+çl£
+;
+
+841 if(
+_cÚÃù_cb
+) {
+
+842 
+	`_cÚÃù_cb
+(
+_cÚÃù_cb_¬g
+, 
+this
+);
+
+844  
+ERR_OK
+;
+
+845 
+	}
+}
+
+847 
+	gAsyncCl›Á
+::
+	$_”rÜ
+(
+št8_t
+ 
+”r
+) {
+
+848 if(
+_pcb
+){
+
+849 
+	`tý_¬g
+(
+_pcb
+, 
+NULL
+);
+
+850 
+	`tý_£Á
+(
+_pcb
+, 
+NULL
+);
+
+851 
+	`tý_»cv
+(
+_pcb
+, 
+NULL
+);
+
+852 
+	`tý_”r
+(
+_pcb
+, 
+NULL
+);
+
+853 
+	`tý_pÞl
+(
+_pcb
+, 
+NULL
+, 0);
+
+854 
+_pcb
+ = 
+NULL
+;
+
+856 if(
+_”rÜ_cb
+) {
+
+857 
+	`_”rÜ_cb
+(
+_”rÜ_cb_¬g
+, 
+this
+, 
+”r
+);
+
+859 if(
+_disÿrd_cb
+) {
+
+860 
+	`_disÿrd_cb
+(
+_disÿrd_cb_¬g
+, 
+this
+);
+
+862 
+	}
+}
+
+865 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_lw�_fš
+(
+tý_pcb
+* 
+pcb
+, 
+št8_t
+ 
+”r
+) {
+
+866 if(!
+_pcb
+ || 
+pcb
+ != _pcb){
+
+867 
+	`log_e
+("0x%08x !ð0x%08x", (
+ušt32_t
+)
+pcb
+, (ušt32_t)
+_pcb
+);
+
+868  
+ERR_OK
+;
+
+870 
+	`tý_¬g
+(
+_pcb
+, 
+NULL
+);
+
+871 
+	`tý_£Á
+(
+_pcb
+, 
+NULL
+);
+
+872 
+	`tý_»cv
+(
+_pcb
+, 
+NULL
+);
+
+873 
+	`tý_”r
+(
+_pcb
+, 
+NULL
+);
+
+874 
+	`tý_pÞl
+(
+_pcb
+, 
+NULL
+, 0);
+
+875 if(
+	`tý_þo£
+(
+_pcb
+è!ð
+ERR_OK
+) {
+
+876 
+	`tý_abÜt
+(
+_pcb
+);
+
+878 
+_þo£d_¦Ùs
+[
+_þo£d_¦Ù
+] = 
+_þo£d_šdex
+;
+
+879 ++ 
+_þo£d_šdex
+;
+
+880 
+_pcb
+ = 
+NULL
+;
+
+881  
+ERR_OK
+;
+
+882 
+	}
+}
+
+885 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_fš
+(
+tý_pcb
+* 
+pcb
+, 
+št8_t
+ 
+”r
+) {
+
+886 
+	`_tý_þ—r_ev’ts
+(
+this
+);
+
+887 if(
+_disÿrd_cb
+) {
+
+888 
+	`_disÿrd_cb
+(
+_disÿrd_cb_¬g
+, 
+this
+);
+
+890  
+ERR_OK
+;
+
+891 
+	}
+}
+
+893 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_£Á
+(
+tý_pcb
+* 
+pcb
+, 
+ušt16_t
+ 
+Ën
+) {
+
+894 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+896 
+_pcb_busy
+ = 
+çl£
+;
+
+897 if(
+_£Á_cb
+) {
+
+898 
+	`_£Á_cb
+(
+_£Á_cb_¬g
+, 
+this
+, 
+Ën
+, (
+	`mžlis
+(è- 
+_pcb_£Á_©
+));
+
+900  
+ERR_OK
+;
+
+901 
+	}
+}
+
+903 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_»cv
+(
+tý_pcb
+* 
+pcb
+, 
+pbuf
+* 
+pb
+, 
+št8_t
+ 
+”r
+) {
+
+904 
+pb
+ !ð
+NULL
+) {
+
+905 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+907 
+_ack_pcb
+ = 
+Œue
+;
+
+908 
+pbuf
+ *
+b
+ = 
+pb
+;
+
+909 
+pb
+ = 
+b
+->
+Ãxt
+;
+
+910 
+b
+->
+Ãxt
+ = 
+NULL
+;
+
+911 if(
+_pb_cb
+){
+
+912 
+	`_pb_cb
+(
+_pb_cb_¬g
+, 
+this
+, 
+b
+);
+
+914 if(
+_»cv_cb
+) {
+
+915 
+	`_»cv_cb
+(
+_»cv_cb_¬g
+, 
+this
+, 
+b
+->
+·ylßd
+, b->
+Ën
+);
+
+917 if(!
+_ack_pcb
+) {
+
+918 
+_rx_ack_Ën
+ +ð
+b
+->
+Ën
+;
+
+919 } if(
+_pcb
+) {
+
+920 
+	`_tý_»cved
+(
+_pcb
+, 
+_þo£d_¦Ù
+, 
+b
+->
+Ën
+);
+
+922 
+	`pbuf_ä“
+(
+b
+);
+
+925  
+ERR_OK
+;
+
+926 
+	}
+}
+
+928 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_pÞl
+(
+tý_pcb
+* 
+pcb
+){
+
+929 if(!
+_pcb
+){
+
+930 
+	`log_w
+("pcb is NULL");
+
+931  
+ERR_OK
+;
+
+933 if(
+pcb
+ !ð
+_pcb
+){
+
+934 
+	`log_e
+("0x%08x !ð0x%08x", (
+ušt32_t
+)
+pcb
+, (ušt32_t)
+_pcb
+);
+
+935  
+ERR_OK
+;
+
+938 
+ušt32_t
+ 
+now
+ = 
+	`mžlis
+();
+
+941 if(
+_pcb_busy
+ && 
+_ack_timeout
+ && (
+now
+ - 
+_pcb_£Á_©
+) >= _ack_timeout){
+
+942 
+_pcb_busy
+ = 
+çl£
+;
+
+943 
+	`log_w
+("ack�imeouˆ%d", 
+pcb
+->
+¡©e
+);
+
+944 if(
+_timeout_cb
+)
+
+945 
+	`_timeout_cb
+(
+_timeout_cb_¬g
+, 
+this
+, (
+now
+ - 
+_pcb_£Á_©
+));
+
+946  
+ERR_OK
+;
+
+949 if(
+_rx_sšû_timeout
+ && (
+now
+ - 
+_rx_Ï¡_·ck‘
+) >= (_rx_since_timeout * 1000)){
+
+950 
+	`log_w
+("rx�imeouˆ%d", 
+pcb
+->
+¡©e
+);
+
+951 
+	`_þo£
+();
+
+952  
+ERR_OK
+;
+
+955 if(
+_pÞl_cb
+) {
+
+956 
+	`_pÞl_cb
+(
+_pÞl_cb_¬g
+, 
+this
+);
+
+958  
+ERR_OK
+;
+
+959 
+	}
+}
+
+961 
+	gAsyncCl›Á
+::
+	$_dns_found
+(
+�_addr
+ *
+�addr
+){
+
+962 if(
+�addr
+ && i·ddr->
+u_addr
+.
+�4
+.
+addr
+){
+
+963 
+	`cÚÃù
+(
+	`IPAdd»ss
+(
+�addr
+->
+u_addr
+.
+�4
+.
+addr
+), 
+_cÚÃù_pÜt
+);
+
+965 if(
+_”rÜ_cb
+) {
+
+966 
+	`_”rÜ_cb
+(
+_”rÜ_cb_¬g
+, 
+this
+, -55);
+
+968 if(
+_disÿrd_cb
+) {
+
+969 
+	`_disÿrd_cb
+(
+_disÿrd_cb_¬g
+, 
+this
+);
+
+972 
+	}
+}
+
+978 
+	gAsyncCl›Á
+::
+	$¡Ý
+() {
+
+979 
+	`þo£
+(
+çl£
+);
+
+980 
+	}
+}
+
+982 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$ä“
+(){
+
+983 if(!
+_pcb
+) {
+
+984  
+Œue
+;
+
+986 if(
+_pcb
+->
+¡©e
+ == 0 || _pcb->state > 4) {
+
+987  
+Œue
+;
+
+989  
+çl£
+;
+
+990 
+	}
+}
+
+992 
+size_t
+ 
+	gAsyncCl›Á
+::
+	$wr™e
+(cÚ¡ * 
+d©a
+) {
+
+993 if(
+d©a
+ =ð
+NULL
+) {
+
+996  
+	`wr™e
+(
+d©a
+, 
+	`¡¾’
+(data));
+
+997 
+	}
+}
+
+999 
+size_t
+ 
+	gAsyncCl›Á
+::
+	$wr™e
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+size
+, 
+ušt8_t
+ 
+­iæags
+) {
+
+1000 
+size_t
+ 
+wžl_£nd
+ = 
+	`add
+(
+d©a
+, 
+size
+, 
+­iæags
+);
+
+1001 if(!
+wžl_£nd
+ || !
+	`£nd
+()) {
+
+1004  
+wžl_£nd
+;
+
+1005 
+	}
+}
+
+1007 
+	gAsyncCl›Á
+::
+	$£tRxTimeout
+(
+ušt32_t
+ 
+timeout
+){
+
+1008 
+_rx_sšû_timeout
+ = 
+timeout
+;
+
+1009 
+	}
+}
+
+1011 
+ušt32_t
+ 
+	gAsyncCl›Á
+::
+	$g‘RxTimeout
+(){
+
+1012  
+_rx_sšû_timeout
+;
+
+1013 
+	}
+}
+
+1015 
+ušt32_t
+ 
+	gAsyncCl›Á
+::
+	$g‘AckTimeout
+(){
+
+1016  
+_ack_timeout
+;
+
+1017 
+	}
+}
+
+1019 
+	gAsyncCl›Á
+::
+	$£tAckTimeout
+(
+ušt32_t
+ 
+timeout
+){
+
+1020 
+_ack_timeout
+ = 
+timeout
+;
+
+1021 
+	}
+}
+
+1023 
+	gAsyncCl›Á
+::
+	$£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+){
+
+1024 if(!
+_pcb
+) {
+
+1027 if(
+nod–ay
+) {
+
+1028 
+	`tý_ÇgË_di§bË
+(
+_pcb
+);
+
+1030 
+	`tý_ÇgË_’abË
+(
+_pcb
+);
+
+1032 
+	}
+}
+
+1034 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$g‘NoD–ay
+(){
+
+1035 if(!
+_pcb
+) {
+
+1036  
+çl£
+;
+
+1038  
+	`tý_ÇgË_di§bËd
+(
+_pcb
+);
+
+1039 
+	}
+}
+
+1041 
+ušt16_t
+ 
+	gAsyncCl›Á
+::
+	$g‘Mss
+(){
+
+1042 if(!
+_pcb
+) {
+
+1045  
+	`tý_mss
+(
+_pcb
+);
+
+1046 
+	}
+}
+
+1048 
+ušt32_t
+ 
+	gAsyncCl›Á
+::
+	$g‘RemÙeAdd»ss
+() {
+
+1049 if(!
+_pcb
+) {
+
+1052  
+_pcb
+->
+»mÙe_�
+.
+u_addr
+.
+�4
+.
+addr
+;
+
+1053 
+	}
+}
+
+1055 
+ušt16_t
+ 
+	gAsyncCl›Á
+::
+	$g‘RemÙePÜt
+() {
+
+1056 if(!
+_pcb
+) {
+
+1059  
+_pcb
+->
+»mÙe_pÜt
+;
+
+1060 
+	}
+}
+
+1062 
+ušt32_t
+ 
+	gAsyncCl›Á
+::
+	$g‘LoÿlAdd»ss
+() {
+
+1063 if(!
+_pcb
+) {
+
+1066  
+_pcb
+->
+loÿl_�
+.
+u_addr
+.
+�4
+.
+addr
+;
+
+1067 
+	}
+}
+
+1069 
+ušt16_t
+ 
+	gAsyncCl›Á
+::
+	$g‘LoÿlPÜt
+() {
+
+1070 if(!
+_pcb
+) {
+
+1073  
+_pcb
+->
+loÿl_pÜt
+;
+
+1074 
+	}
+}
+
+1076 
+IPAdd»ss
+ 
+	gAsyncCl›Á
+::
+	$»mÙeIP
+() {
+
+1077  
+	`IPAdd»ss
+(
+	`g‘RemÙeAdd»ss
+());
+
+1078 
+	}
+}
+
+1080 
+ušt16_t
+ 
+	gAsyncCl›Á
+::
+	$»mÙePÜt
+() {
+
+1081  
+	`g‘RemÙePÜt
+();
+
+1082 
+	}
+}
+
+1084 
+IPAdd»ss
+ 
+	gAsyncCl›Á
+::
+	$loÿlIP
+() {
+
+1085  
+	`IPAdd»ss
+(
+	`g‘LoÿlAdd»ss
+());
+
+1086 
+	}
+}
+
+1088 
+ušt16_t
+ 
+	gAsyncCl›Á
+::
+	$loÿlPÜt
+() {
+
+1089  
+	`g‘LoÿlPÜt
+();
+
+1090 
+	}
+}
+
+1092 
+ušt8_t
+ 
+	gAsyncCl›Á
+::
+	$¡©e
+() {
+
+1093 if(!
+_pcb
+) {
+
+1096  
+_pcb
+->
+¡©e
+;
+
+1097 
+	}
+}
+
+1099 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$cÚÃùed
+(){
+
+1100 ià(!
+_pcb
+) {
+
+1101  
+çl£
+;
+
+1103  
+_pcb
+->
+¡©e
+ == 4;
+
+1104 
+	}
+}
+
+1106 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$cÚÃùšg
+(){
+
+1107 ià(!
+_pcb
+) {
+
+1108  
+çl£
+;
+
+1110  
+_pcb
+->
+¡©e
+ > 0 && _pcb->state < 4;
+
+1111 
+	}
+}
+
+1113 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$discÚÃùšg
+(){
+
+1114 ià(!
+_pcb
+) {
+
+1115  
+çl£
+;
+
+1117  
+_pcb
+->
+¡©e
+ > 4 && _pcb->state < 10;
+
+1118 
+	}
+}
+
+1120 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$discÚÃùed
+(){
+
+1121 ià(!
+_pcb
+) {
+
+1122  
+Œue
+;
+
+1124  
+_pcb
+->
+¡©e
+ == 0 || _pcb->state == 10;
+
+1125 
+	}
+}
+
+1127 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$ä“abË
+(){
+
+1128 ià(!
+_pcb
+) {
+
+1129  
+Œue
+;
+
+1131  
+_pcb
+->
+¡©e
+ == 0 || _pcb->state > 4;
+
+1132 
+	}
+}
+
+1134 
+boÞ
+ 
+	gAsyncCl›Á
+::
+	$ÿnS’d
+(){
+
+1135  
+	`¥aû
+() > 0;
+
+1136 
+	}
+}
+
+1138 cÚ¡ * 
+	gAsyncCl›Á
+::
+	$”rÜToSŒšg
+(
+št8_t
+ 
+”rÜ
+){
+
+1139 
+”rÜ
+){
+
+1140 
+ERR_OK
+:  "OK";
+
+1141 
+ERR_MEM
+:  "Out of memoryƒrror";
+
+1142 
+ERR_BUF
+:  "Bufferƒrror";
+
+1143 
+ERR_TIMEOUT
+:  "Timeout";
+
+1144 
+ERR_RTE
+:  "Routing…roblem";
+
+1145 
+ERR_INPROGRESS
+:  "Operation in…rogress";
+
+1146 
+ERR_VAL
+:  "Illegal value";
+
+1147 
+ERR_WOULDBLOCK
+:  "Operation would block";
+
+1148 
+ERR_USE
+:  "Address in use";
+
+1149 
+ERR_ALREADY
+:  "Already connected";
+
+1150 
+ERR_CONN
+:  "Not connected";
+
+1151 
+ERR_IF
+:  "Low-level‚etifƒrror";
+
+1152 
+ERR_ABRT
+:  "Connection‡borted";
+
+1153 
+ERR_RST
+:  "Connection„eset";
+
+1154 
+ERR_CLSD
+:  "Connection closed";
+
+1155 
+ERR_ARG
+:  "Illegal‡rgument";
+
+1159 
+	}
+}
+
+1161 cÚ¡ * 
+	gAsyncCl›Á
+::
+	$¡©eToSŒšg
+(){
+
+1162 
+	`¡©e
+()){
+
+1176 
+	}
+}
+
+1182 
+	gAsyncCl›Á
+::
+	$_s_dns_found
+(cÚ¡ * 
+Çme
+, 
+�_addr
+ * 
+�addr
+, * 
+¬g
+){
+
+1183 
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_dns_found
+(
+�addr
+);
+
+1184 
+	}
+}
+
+1186 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_s_pÞl
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+) {
+
+1187  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_pÞl
+(
+pcb
+);
+
+1188 
+	}
+}
+
+1190 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_s_»cv
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+pbuf
+ *
+pb
+, 
+št8_t
+ 
+”r
+) {
+
+1191  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_»cv
+(
+pcb
+, 
+pb
+, 
+”r
+);
+
+1192 
+	}
+}
+
+1194 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_s_fš
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+”r
+) {
+
+1195  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_fš
+(
+pcb
+, 
+”r
+);
+
+1196 
+	}
+}
+
+1198 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_s_lw�_fš
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+”r
+) {
+
+1199  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_lw�_fš
+(
+pcb
+, 
+”r
+);
+
+1200 
+	}
+}
+
+1202 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_s_£Á
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+ušt16_t
+ 
+Ën
+) {
+
+1203  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_£Á
+(
+pcb
+, 
+Ën
+);
+
+1204 
+	}
+}
+
+1206 
+	gAsyncCl›Á
+::
+	$_s_”rÜ
+(* 
+¬g
+, 
+št8_t
+ 
+”r
+) {
+
+1207 
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_”rÜ
+(
+”r
+);
+
+1208 
+	}
+}
+
+1210 
+št8_t
+ 
+	gAsyncCl›Á
+::
+	$_s_cÚÃùed
+(* 
+¬g
+, * 
+pcb
+, 
+št8_t
+ 
+”r
+){
+
+1211  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_cÚÃùed
+(
+pcb
+, 
+”r
+);
+
+1212 
+	}
+}
+
+1218 
+	gAsyncS”v”
+::
+	$AsyncS”v”
+(
+IPAdd»ss
+ 
+addr
+, 
+ušt16_t
+ 
+pÜt
+)
+
+1219 : 
+	`_pÜt
+(
+pÜt
+)
+
+1220 , 
+	`_addr
+(
+addr
+)
+
+1221 , 
+	`_noD–ay
+(
+çl£
+)
+
+1222 , 
+	`_pcb
+(0)
+
+1223 , 
+	`_cÚÃù_cb
+(0)
+
+1224 , 
+	$_cÚÃù_cb_¬g
+(0)
+
+1225 {
+	}
+}
+
+1227 
+	gAsyncS”v”
+::
+	$AsyncS”v”
+(
+ušt16_t
+ 
+pÜt
+)
+
+1228 : 
+	`_pÜt
+(
+pÜt
+)
+
+1229 , 
+	`_addr
+((
+ušt32_t
+è
+IPADDR_ANY
+)
+
+1230 , 
+	`_noD–ay
+(
+çl£
+)
+
+1231 , 
+	`_pcb
+(0)
+
+1232 , 
+	`_cÚÃù_cb
+(0)
+
+1233 , 
+	$_cÚÃù_cb_¬g
+(0)
+
+1234 {
+	}
+}
+
+1236 
+	gAsyncS”v”
+::~
+	$AsyncS”v”
+(){
+
+1237 
+	`’d
+();
+
+1238 
+	}
+}
+
+1240 
+	gAsyncS”v”
+::
+	$ÚCl›Á
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+1241 
+_cÚÃù_cb
+ = 
+cb
+;
+
+1242 
+_cÚÃù_cb_¬g
+ = 
+¬g
+;
+
+1243 
+	}
+}
+
+1245 
+	gAsyncS”v”
+::
+	$begš
+(){
+
+1246 if(
+_pcb
+) {
+
+1250 if(!
+	`_¡¬t_async_�sk
+()){
+
+1251 
+	`log_e
+("failed�o start�ask");
+
+1254 
+št8_t
+ 
+”r
+;
+
+1255 
+_pcb
+ = 
+	`tý_Ãw_�_ty³
+(
+IPADDR_TYPE_V4
+);
+
+1256 ià(!
+_pcb
+){
+
+1257 
+	`log_e
+("_pcb == NULL");
+
+1261 
+�_addr_t
+ 
+loÿl_addr
+;
+
+1262 
+loÿl_addr
+.
+ty³
+ = 
+IPADDR_TYPE_V4
+;
+
+1263 
+loÿl_addr
+.
+u_addr
+.
+�4
+.
+addr
+ = (
+ušt32_t
+è
+_addr
+;
+
+1264 
+”r
+ = 
+	`_tý_bšd
+(
+_pcb
+, &
+loÿl_addr
+, 
+_pÜt
+);
+
+1266 ià(
+”r
+ !ð
+ERR_OK
+) {
+
+1267 
+	`_tý_þo£
+(
+_pcb
+, -1);
+
+1268 
+	`log_e
+("bšdƒ¼Ü: %d", 
+”r
+);
+
+1272 
+ušt8_t
+ 
+backlog
+ = 5;
+
+1273 
+_pcb
+ = 
+	`_tý_li¡’_w™h_backlog
+(_pcb, 
+backlog
+);
+
+1274 ià(!
+_pcb
+) {
+
+1275 
+	`log_e
+("listen_pcb == NULL");
+
+1278 
+	`tý_¬g
+(
+_pcb
+, (*è
+this
+);
+
+1279 
+	`tý_acû±
+(
+_pcb
+, &
+_s_acû±
+);
+
+1280 
+	}
+}
+
+1282 
+	gAsyncS”v”
+::
+	$’d
+(){
+
+1283 if(
+_pcb
+){
+
+1284 
+	`tý_¬g
+(
+_pcb
+, 
+NULL
+);
+
+1285 
+	`tý_acû±
+(
+_pcb
+, 
+NULL
+);
+
+1286 if(
+	`tý_þo£
+(
+_pcb
+è!ð
+ERR_OK
+){
+
+1287 
+	`_tý_abÜt
+(
+_pcb
+, -1);
+
+1289 
+_pcb
+ = 
+NULL
+;
+
+1291 
+	}
+}
+
+1294 
+št8_t
+ 
+	gAsyncS”v”
+::
+	$_acû±
+(
+tý_pcb
+* 
+pcb
+, 
+št8_t
+ 
+”r
+){
+
+1296 if(
+_cÚÃù_cb
+){
+
+1297 
+AsyncCl›Á
+ *
+c
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+(
+pcb
+);
+
+1298 if(
+c
+){
+
+1299 
+c
+->
+	`£tNoD–ay
+(
+_noD–ay
+);
+
+1300  
+	`_tý_acû±
+(
+this
+, 
+c
+);
+
+1303 if(
+	`tý_þo£
+(
+pcb
+è!ð
+ERR_OK
+){
+
+1304 
+	`tý_abÜt
+(
+pcb
+);
+
+1306 
+	`log_e
+("FAIL");
+
+1307  
+ERR_OK
+;
+
+1308 
+	}
+}
+
+1310 
+št8_t
+ 
+	gAsyncS”v”
+::
+	$_acû±ed
+(
+AsyncCl›Á
+* 
+þ›Á
+){
+
+1311 if(
+_cÚÃù_cb
+){
+
+1312 
+	`_cÚÃù_cb
+(
+_cÚÃù_cb_¬g
+, 
+þ›Á
+);
+
+1314  
+ERR_OK
+;
+
+1315 
+	}
+}
+
+1317 
+	gAsyncS”v”
+::
+	$£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+){
+
+1318 
+_noD–ay
+ = 
+nod–ay
+;
+
+1319 
+	}
+}
+
+1321 
+boÞ
+ 
+	gAsyncS”v”
+::
+	$g‘NoD–ay
+(){
+
+1322  
+_noD–ay
+;
+
+1323 
+	}
+}
+
+1325 
+ušt8_t
+ 
+	gAsyncS”v”
+::
+	$¡©us
+(){
+
+1326 ià(!
+_pcb
+) {
+
+1329  
+_pcb
+->
+¡©e
+;
+
+1330 
+	}
+}
+
+1332 
+št8_t
+ 
+	gAsyncS”v”
+::
+	$_s_acû±
+(* 
+¬g
+, 
+tý_pcb
+ * 
+pcb
+, 
+št8_t
+ 
+”r
+){
+
+1333  
+»š‹½»t_ÿ¡
+<
+AsyncS”v”
+*>(
+¬g
+)->
+	`_acû±
+(
+pcb
+, 
+”r
+);
+
+1334 
+	}
+}
+
+1336 
+št8_t
+ 
+	gAsyncS”v”
+::
+	$_s_acû±ed
+(*
+¬g
+, 
+AsyncCl›Á
+* 
+þ›Á
+){
+
+1337  
+»š‹½»t_ÿ¡
+<
+AsyncS”v”
+*>(
+¬g
+)->
+	`_acû±ed
+(
+þ›Á
+);
+
+1338 
+	}
+}
+
+	@.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.h
+
+22 #iâdeà
+ASYNCTCP_H_
+
+
+23 
+	#ASYNCTCP_H_
+
+
+	)
+
+25 
+	~"IPAdd»ss.h
+"
+
+26 
+	~"sdkcÚfig.h
+"
+
+27 
+	~<funùiÚ®
+>
+
+29 
+	~"ä“¹os/£mphr.h
+"
+
+30 
+	~"lw�/pbuf.h
+"
+
+34 #iâdeà
+CONFIG_ASYNC_TCP_RUNNING_CORE
+
+
+35 
+	#CONFIG_ASYNC_TCP_RUNNING_CORE
+ -1
+
+36 
+	#CONFIG_ASYNC_TCP_USE_WDT
+ 1
+
+38 
+
+	)
+
+39 
+þass
+ 
+AsyncCl›Á
+;
+
+41 
+	#ASYNC_MAX_ACK_TIME
+ 5000
+
+	)
+
+42 
+	#ASYNC_WRITE_FLAG_COPY
+ 0x01
+
+43 
+	#ASYNC_WRITE_FLAG_MORE
+ 0x02
+
+44 
+
+	)
+
+45 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*)> 
+	tAcCÚÃùHªdËr
+;
+
+46 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tsize_t
+ 
+	tËn
+, 
+	tušt32_t
+ 
+	ttime
+)> 
+	tAcAckHªdËr
+;
+
+47 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tšt8_t
+ 
+	t”rÜ
+)> 
+	tAcE¼ÜHªdËr
+;
+
+48 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, *
+	td©a
+, 
+	tsize_t
+ 
+	tËn
+)> 
+	tAcD©aHªdËr
+;
+
+49 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tpbuf
+ *
+	tpb
+)> 
+	tAcPack‘HªdËr
+;
+
+50 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tušt32_t
+ 
+	ttime
+)> 
+	tAcTimeoutHªdËr
+;
+
+52 
+	gtý_pcb
+;
+
+53 
+	g�_addr
+;
+
+55 þas 
+	cAsyncCl›Á
+ {
+
+56 
+	mpublic
+:
+
+57 
+AsyncCl›Á
+(
+tý_pcb
+* 
+pcb
+ = 0);
+
+58 ~
+AsyncCl›Á
+();
+
+60 
+	mAsyncCl›Á
+ & 
+	mÝ”©Ü
+=(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+);
+
+61 
+	mAsyncCl›Á
+ & 
+	mÝ”©Ü
++=(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+);
+
+63 
+boÞ
+ 
+	mÝ”©Ü
+==(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+);
+
+65 
+boÞ
+ 
+	mÝ”©Ü
+!=(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+) {
+
+66  !(*
+this
+ =ð
+Ùh”
+);
+
+68 
+boÞ
+ 
+cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+);
+
+69 
+boÞ
+ 
+cÚÃù
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+);
+
+70 
+þo£
+(
+boÞ
+ 
+now
+ = 
+çl£
+);
+
+71 
+¡Ý
+();
+
+72 
+št8_t
+ 
+abÜt
+();
+
+73 
+boÞ
+ 
+ä“
+();
+
+75 
+boÞ
+ 
+ÿnS’d
+();
+
+76 
+size_t
+ 
+¥aû
+();
+
+77 
+size_t
+ 
+add
+(cÚ¡ * 
+d©a
+, size_ˆ
+size
+, 
+ušt8_t
+ 
+­iæags
+=
+ASYNC_WRITE_FLAG_COPY
+);
+
+78 
+boÞ
+ 
+£nd
+();
+
+81 
+size_t
+ 
+wr™e
+(cÚ¡ * 
+d©a
+);
+
+82 
+size_t
+ 
+wr™e
+(cÚ¡ * 
+d©a
+, size_ˆ
+size
+, 
+ušt8_t
+ 
+­iæags
+=
+ASYNC_WRITE_FLAG_COPY
+);
+
+84 
+ušt8_t
+ 
+¡©e
+();
+
+85 
+boÞ
+ 
+cÚÃùšg
+();
+
+86 
+boÞ
+ 
+cÚÃùed
+();
+
+87 
+boÞ
+ 
+discÚÃùšg
+();
+
+88 
+boÞ
+ 
+discÚÃùed
+();
+
+89 
+boÞ
+ 
+ä“abË
+();
+
+91 
+ušt16_t
+ 
+g‘Mss
+();
+
+93 
+ušt32_t
+ 
+g‘RxTimeout
+();
+
+94 
+£tRxTimeout
+(
+ušt32_t
+ 
+timeout
+);
+
+96 
+ušt32_t
+ 
+g‘AckTimeout
+();
+
+97 
+£tAckTimeout
+(
+ušt32_t
+ 
+timeout
+);
+
+99 
+£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+);
+
+100 
+boÞ
+ 
+g‘NoD–ay
+();
+
+102 
+ušt32_t
+ 
+g‘RemÙeAdd»ss
+();
+
+103 
+ušt16_t
+ 
+g‘RemÙePÜt
+();
+
+104 
+ušt32_t
+ 
+g‘LoÿlAdd»ss
+();
+
+105 
+ušt16_t
+ 
+g‘LoÿlPÜt
+();
+
+108 
+IPAdd»ss
+ 
+»mÙeIP
+();
+
+109 
+ušt16_t
+ 
+»mÙePÜt
+();
+
+110 
+IPAdd»ss
+ 
+loÿlIP
+();
+
+111 
+ušt16_t
+ 
+loÿlPÜt
+();
+
+113 
+ÚCÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+114 
+ÚDiscÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+115 
+ÚAck
+(
+AcAckHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+116 
+ÚE¼Ü
+(
+AcE¼ÜHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+117 
+ÚD©a
+(
+AcD©aHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+118 
+ÚPack‘
+(
+AcPack‘HªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+119 
+ÚTimeout
+(
+AcTimeoutHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+120 
+ÚPÞl
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+122 
+ackPack‘
+(
+pbuf
+ * 
+pb
+);
+
+123 
+size_t
+ 
+ack
+(size_ˆ
+Ën
+);
+
+124 
+	$ackL©”
+(){ 
+_ack_pcb
+ = 
+çl£
+; 
+	}
+}
+
+126 cÚ¡ * 
+”rÜToSŒšg
+(
+št8_t
+ 
+”rÜ
+);
+
+127 cÚ¡ * 
+¡©eToSŒšg
+();
+
+130 
+št8_t
+ 
+_s_pÞl
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+);
+
+131 
+št8_t
+ 
+_s_»cv
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, 
+pbuf
+ *
+pb
+, iÁ8_ˆ
+”r
+);
+
+132 
+št8_t
+ 
+_s_fš
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, iÁ8_ˆ
+”r
+);
+
+133 
+št8_t
+ 
+_s_lw�_fš
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, iÁ8_ˆ
+”r
+);
+
+134 
+_s_”rÜ
+(*
+¬g
+, 
+št8_t
+ 
+”r
+);
+
+135 
+št8_t
+ 
+_s_£Á
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, 
+ušt16_t
+ 
+Ën
+);
+
+136 
+št8_t
+ 
+_s_cÚÃùed
+(* 
+¬g
+, * 
+�cb
+, iÁ8_ˆ
+”r
+);
+
+137 
+_s_dns_found
+(cÚ¡ *
+Çme
+, 
+�_addr
+ *
+�addr
+, *
+¬g
+);
+
+139 
+št8_t
+ 
+_»cv
+(
+tý_pcb
+* 
+pcb
+, 
+pbuf
+* 
+pb
+, iÁ8_ˆ
+”r
+);
+
+140 
+tý_pcb
+ * 
+	$pcb
+(){  
+_pcb
+; 
+	}
+}
+
+142 
+	g´Ùeùed
+:
+
+143 
+tý_pcb
+* 
+_pcb
+;
+
+144 
+št8_t
+ 
+	g_þo£d_¦Ù
+;
+
+146 
+AcCÚÃùHªdËr
+ 
+	g_cÚÃù_cb
+;
+
+147 * 
+	g_cÚÃù_cb_¬g
+;
+
+148 
+AcCÚÃùHªdËr
+ 
+	g_disÿrd_cb
+;
+
+149 * 
+	g_disÿrd_cb_¬g
+;
+
+150 
+AcAckHªdËr
+ 
+	g_£Á_cb
+;
+
+151 * 
+	g_£Á_cb_¬g
+;
+
+152 
+AcE¼ÜHªdËr
+ 
+	g_”rÜ_cb
+;
+
+153 * 
+	g_”rÜ_cb_¬g
+;
+
+154 
+AcD©aHªdËr
+ 
+	g_»cv_cb
+;
+
+155 * 
+	g_»cv_cb_¬g
+;
+
+156 
+AcPack‘HªdËr
+ 
+	g_pb_cb
+;
+
+157 * 
+	g_pb_cb_¬g
+;
+
+158 
+AcTimeoutHªdËr
+ 
+	g_timeout_cb
+;
+
+159 * 
+	g_timeout_cb_¬g
+;
+
+160 
+AcCÚÃùHªdËr
+ 
+	g_pÞl_cb
+;
+
+161 * 
+	g_pÞl_cb_¬g
+;
+
+163 
+boÞ
+ 
+	g_pcb_busy
+;
+
+164 
+ušt32_t
+ 
+	g_pcb_£Á_©
+;
+
+165 
+boÞ
+ 
+	g_ack_pcb
+;
+
+166 
+ušt32_t
+ 
+	g_rx_ack_Ën
+;
+
+167 
+ušt32_t
+ 
+	g_rx_Ï¡_·ck‘
+;
+
+168 
+ušt32_t
+ 
+	g_rx_sšû_timeout
+;
+
+169 
+ušt32_t
+ 
+	g_ack_timeout
+;
+
+170 
+ušt16_t
+ 
+	g_cÚÃù_pÜt
+;
+
+172 
+št8_t
+ 
+_þo£
+();
+
+173 
+št8_t
+ 
+_cÚÃùed
+(* 
+pcb
+, iÁ8_ˆ
+”r
+);
+
+174 
+_”rÜ
+(
+št8_t
+ 
+”r
+);
+
+175 
+št8_t
+ 
+_pÞl
+(
+tý_pcb
+* 
+pcb
+);
+
+176 
+št8_t
+ 
+_£Á
+(
+tý_pcb
+* 
+pcb
+, 
+ušt16_t
+ 
+Ën
+);
+
+177 
+št8_t
+ 
+_fš
+(
+tý_pcb
+* 
+pcb
+, iÁ8_ˆ
+”r
+);
+
+178 
+št8_t
+ 
+_lw�_fš
+(
+tý_pcb
+* 
+pcb
+, iÁ8_ˆ
+”r
+);
+
+179 
+_dns_found
+(
+�_addr
+ *
+�addr
+);
+
+181 
+	gpublic
+:
+
+182 
+AsyncCl›Á
+* 
+´ev
+;
+
+183 
+AsyncCl›Á
+* 
+	gÃxt
+;
+
+186 þas 
+	cAsyncS”v”
+ {
+
+187 
+	mpublic
+:
+
+188 
+AsyncS”v”
+(
+IPAdd»ss
+ 
+addr
+, 
+ušt16_t
+ 
+pÜt
+);
+
+189 
+AsyncS”v”
+(
+ušt16_t
+ 
+pÜt
+);
+
+190 ~
+AsyncS”v”
+();
+
+191 
+ÚCl›Á
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+);
+
+192 
+begš
+();
+
+193 
+’d
+();
+
+194 
+£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+);
+
+195 
+boÞ
+ 
+g‘NoD–ay
+();
+
+196 
+ušt8_t
+ 
+¡©us
+();
+
+199 
+št8_t
+ 
+_s_acû±
+(*
+¬g
+, 
+tý_pcb
+* 
+Ãwpcb
+, iÁ8_ˆ
+”r
+);
+
+200 
+št8_t
+ 
+_s_acû±ed
+(*
+¬g
+, 
+AsyncCl›Á
+* 
+þ›Á
+);
+
+202 
+	m´Ùeùed
+:
+
+203 
+ušt16_t
+ 
+_pÜt
+;
+
+204 
+IPAdd»ss
+ 
+	m_addr
+;
+
+205 
+boÞ
+ 
+	m_noD–ay
+;
+
+206 
+tý_pcb
+* 
+	m_pcb
+;
+
+207 
+AcCÚÃùHªdËr
+ 
+	m_cÚÃù_cb
+;
+
+208 * 
+	m_cÚÃù_cb_¬g
+;
+
+210 
+št8_t
+ 
+_acû±
+(
+tý_pcb
+* 
+Ãwpcb
+, iÁ8_ˆ
+”r
+);
+
+211 
+št8_t
+ 
+_acû±ed
+(
+AsyncCl›Á
+* 
+þ›Á
+);
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h
+
+1 #iâdeà
+CONFIG_H
+
+
+2 
+	#CONFIG_H
+
+
+	)
+
+15 
+	#SSID
+ "ESP-TEST"
+
+	)
+
+16 
+	#PASSWORD
+ "123456789"
+
+	)
+
+18 
+	#SERVER_HOST_NAME
+ "e¥_£rv”"
+
+	)
+
+20 
+	#TCP_PORT
+ 7050
+
+	)
+
+21 
+	#DNS_PORT
+ 53
+
+	)
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h
+
+1 #iâdeà
+CONFIG_H
+
+
+2 
+	#CONFIG_H
+
+
+	)
+
+15 
+	#SSID
+ "ESP-TEST"
+
+	)
+
+16 
+	#PASSWORD
+ "123456789"
+
+	)
+
+18 
+	#SERVER_HOST_NAME
+ "e¥_£rv”"
+
+	)
+
+20 
+	#TCP_PORT
+ 7050
+
+	)
+
+21 
+	#DNS_PORT
+ 53
+
+	)
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp
+
+22 
+	~"AsyncPrš‹r.h
+"
+
+24 
+	gAsyncPrš‹r
+::
+	$AsyncPrš‹r
+()
+
+25 : 
+	`_þ›Á
+(
+NULL
+)
+
+26 , 
+	`_d©a_cb
+(
+NULL
+)
+
+27 , 
+	`_d©a_¬g
+(
+NULL
+)
+
+28 , 
+	`_þo£_cb
+(
+NULL
+)
+
+29 , 
+	`_þo£_¬g
+(
+NULL
+)
+
+30 , 
+	`_tx_bufãr
+(
+NULL
+)
+
+31 , 
+	`_tx_bufãr_size
+(1460)
+
+32 , 
+	$Ãxt
+(
+NULL
+)
+
+33 {
+	}
+}
+
+35 
+	gAsyncPrš‹r
+::
+	$AsyncPrš‹r
+(
+AsyncCl›Á
+ *
+þ›Á
+, 
+size_t
+ 
+txBufL’
+)
+
+36 : 
+	`_þ›Á
+(
+þ›Á
+)
+
+37 , 
+	`_d©a_cb
+(
+NULL
+)
+
+38 , 
+	`_d©a_¬g
+(
+NULL
+)
+
+39 , 
+	`_þo£_cb
+(
+NULL
+)
+
+40 , 
+	`_þo£_¬g
+(
+NULL
+)
+
+41 , 
+	`_tx_bufãr
+(
+NULL
+)
+
+42 , 
+	`_tx_bufãr_size
+(
+txBufL’
+)
+
+43 , 
+	$Ãxt
+(
+NULL
+)
+
+45 
+	`_©�chC®lbacks
+();
+
+46 
+_tx_bufãr
+ = 
+Ãw
+ 
+	`cbuf
+(
+_tx_bufãr_size
+);
+
+47 
+	}
+}
+
+49 
+	gAsyncPrš‹r
+::~
+	$AsyncPrš‹r
+(){
+
+50 
+	`_Ú_þo£
+();
+
+51 
+	}
+}
+
+53 
+	gAsyncPrš‹r
+::
+	$ÚD©a
+(
+ApD©aHªdËr
+ 
+cb
+, *
+¬g
+){
+
+54 
+_d©a_cb
+ = 
+cb
+;
+
+55 
+_d©a_¬g
+ = 
+¬g
+;
+
+56 
+	}
+}
+
+58 
+	gAsyncPrš‹r
+::
+	$ÚClo£
+(
+ApClo£HªdËr
+ 
+cb
+, *
+¬g
+){
+
+59 
+_þo£_cb
+ = 
+cb
+;
+
+60 
+_þo£_¬g
+ = 
+¬g
+;
+
+61 
+	}
+}
+
+63 
+	gAsyncPrš‹r
+::
+	$cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+){
+
+64 if(
+_þ›Á
+ !ð
+NULL
+ && 
+	`cÚÃùed
+())
+
+66 
+_þ›Á
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+();
+
+67 
+_þ›Á
+->
+	`ÚCÚÃù
+([](*
+obj
+, 
+AsyncCl›Á
+ *
+c
+){ ((
+AsyncPrš‹r
+*)(obj))->
+	`_ÚCÚÃù
+(c); }, 
+this
+);
+
+68 if(
+_þ›Á
+->
+	`cÚÃù
+(
+�
+, 
+pÜt
+)){
+
+69 
+_þ›Á
+->
+	`¡©e
+() < 4)
+
+70 
+	`d–ay
+(1);
+
+71  
+	`cÚÃùed
+();
+
+74 
+	}
+}
+
+76 
+	gAsyncPrš‹r
+::
+	$cÚÃù
+(cÚ¡ *
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+){
+
+77 if(
+_þ›Á
+ !ð
+NULL
+ && 
+	`cÚÃùed
+())
+
+79 
+_þ›Á
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+();
+
+80 
+_þ›Á
+->
+	`ÚCÚÃù
+([](*
+obj
+, 
+AsyncCl›Á
+ *
+c
+){ ((
+AsyncPrš‹r
+*)(obj))->
+	`_ÚCÚÃù
+(c); }, 
+this
+);
+
+81 if(
+_þ›Á
+->
+	`cÚÃù
+(
+ho¡
+, 
+pÜt
+)){
+
+82 
+_þ›Á
+->
+	`¡©e
+() < 4)
+
+83 
+	`d–ay
+(1);
+
+84  
+	`cÚÃùed
+();
+
+87 
+	}
+}
+
+89 
+	gAsyncPrš‹r
+::
+	$_ÚCÚÃù
+(
+AsyncCl›Á
+ *
+c
+){
+
+90 if(
+_tx_bufãr
+ !ð
+NULL
+){
+
+91 
+cbuf
+ *
+b
+ = 
+_tx_bufãr
+;
+
+92 
+_tx_bufãr
+ = 
+NULL
+;
+
+93 
+d–‘e
+ 
+b
+;
+
+95 
+_tx_bufãr
+ = 
+Ãw
+ 
+	`cbuf
+(
+_tx_bufãr_size
+);
+
+96 
+	`_©�chC®lbacks
+();
+
+97 
+	}
+}
+
+99 
+	gAsyncPrš‹r
+::
+Ý”©Ü
+ 
+	$boÞ
+(){  
+	`cÚÃùed
+(); 
+	}
+}
+
+101 
+	gAsyncPrš‹r
+ & AsyncPrš‹r::
+Ý”©Ü
+=(cÚ¡ 
+AsyncPrš‹r
+ &
+Ùh”
+){
+
+102 if(
+_þ›Á
+ !ð
+NULL
+){
+
+103 
+_þ›Á
+->
+þo£
+(
+Œue
+);
+
+104 
+	g_þ›Á
+ = 
+NULL
+;
+
+106 
+	g_tx_bufãr_size
+ = 
+Ùh”
+.
+_tx_bufãr_size
+;
+
+107 if(
+	g_tx_bufãr
+ !ð
+NULL
+){
+
+108 
+cbuf
+ *
+b
+ = 
+_tx_bufãr
+;
+
+109 
+	g_tx_bufãr
+ = 
+NULL
+;
+
+110 
+d–‘e
+ 
+	gb
+;
+
+112 
+	g_tx_bufãr
+ = 
+Ãw
+ 
+cbuf
+(
+Ùh”
+.
+_tx_bufãr_size
+);
+
+113 
+	g_þ›Á
+ = 
+Ùh”
+.
+_þ›Á
+;
+
+114 
+_©�chC®lbacks
+();
+
+115  *
+	gthis
+;
+
+118 
+size_t
+ 
+	gAsyncPrš‹r
+::
+	$wr™e
+(
+ušt8_t
+ 
+d©a
+){
+
+119  
+	`wr™e
+(&
+d©a
+, 1);
+
+120 
+	}
+}
+
+122 
+size_t
+ 
+	gAsyncPrš‹r
+::
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+123 if(
+_tx_bufãr
+ =ð
+NULL
+ || !
+	`cÚÃùed
+())
+
+125 
+size_t
+ 
+toWr™e
+ = 0;
+
+126 
+size_t
+ 
+toS’d
+ = 
+Ën
+;
+
+127 
+_tx_bufãr
+->
+	`room
+(è< 
+toS’d
+){
+
+128 
+toWr™e
+ = 
+_tx_bufãr
+->
+	`room
+();
+
+129 
+_tx_bufãr
+->
+	`wr™e
+((cÚ¡ *)
+d©a
+, 
+toWr™e
+);
+
+130 !
+_þ›Á
+->
+	`ÿnS’d
+())
+
+131 
+	`d–ay
+(0);
+
+132 
+	`_£ndBufãr
+();
+
+133 
+toS’d
+ -ð
+toWr™e
+;
+
+135 
+_tx_bufãr
+->
+	`wr™e
+((cÚ¡ *)(
+d©a
++(
+Ën
+ - 
+toS’d
+)),�oSend);
+
+136 !
+_þ›Á
+->
+	`ÿnS’d
+()è
+	`d–ay
+(0);
+
+137 
+	`_£ndBufãr
+();
+
+138  
+Ën
+;
+
+139 
+	}
+}
+
+141 
+boÞ
+ 
+	gAsyncPrš‹r
+::
+	$cÚÃùed
+(){
+
+142  (
+_þ›Á
+ !ð
+NULL
+ && _þ›Á->
+	`cÚÃùed
+());
+
+143 
+	}
+}
+
+145 
+	gAsyncPrš‹r
+::
+	$þo£
+(){
+
+146 if(
+_þ›Á
+ !ð
+NULL
+)
+
+147 
+_þ›Á
+->
+	`þo£
+(
+Œue
+);
+
+148 
+	}
+}
+
+150 
+size_t
+ 
+	gAsyncPrš‹r
+::
+	$_£ndBufãr
+(){
+
+151 
+size_t
+ 
+avažabË
+ = 
+_tx_bufãr
+->
+	`avažabË
+();
+
+152 if(!
+	`cÚÃùed
+(è|| !
+_þ›Á
+->
+	`ÿnS’d
+(è|| 
+avažabË
+ == 0)
+
+154 
+size_t
+ 
+£ndabË
+ = 
+_þ›Á
+->
+	`¥aû
+();
+
+155 if(
+£ndabË
+ < 
+avažabË
+)
+
+156 
+avažabË
+ð
+£ndabË
+;
+
+157 *
+out
+ = 
+Ãw
+ [
+avažabË
+];
+
+158 
+_tx_bufãr
+->
+	`»ad
+(
+out
+, 
+avažabË
+);
+
+159 
+size_t
+ 
+£Á
+ = 
+_þ›Á
+->
+	`wr™e
+(
+out
+, 
+avažabË
+);
+
+160 
+d–‘e
+ 
+out
+;
+
+161  
+£Á
+;
+
+162 
+	}
+}
+
+164 
+	gAsyncPrš‹r
+::
+	$_ÚD©a
+(*
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+165 if(
+_d©a_cb
+)
+
+166 
+	`_d©a_cb
+(
+_d©a_¬g
+, 
+this
+, (
+ušt8_t
+*)
+d©a
+, 
+Ën
+);
+
+167 
+	}
+}
+
+169 
+	gAsyncPrš‹r
+::
+	$_Ú_þo£
+(){
+
+170 if(
+_þ›Á
+ !ð
+NULL
+){
+
+171 
+_þ›Á
+ = 
+NULL
+;
+
+173 if(
+_tx_bufãr
+ !ð
+NULL
+){
+
+174 
+cbuf
+ *
+b
+ = 
+_tx_bufãr
+;
+
+175 
+_tx_bufãr
+ = 
+NULL
+;
+
+176 
+d–‘e
+ 
+b
+;
+
+178 if(
+_þo£_cb
+)
+
+179 
+	`_þo£_cb
+(
+_þo£_¬g
+, 
+this
+);
+
+180 
+	}
+}
+
+182 
+	gAsyncPrš‹r
+::
+	$_©�chC®lbacks
+(){
+
+183 
+_þ›Á
+->
+	`ÚPÞl
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+){ ((
+AsyncPrš‹r
+*)(obj))->
+	`_£ndBufãr
+(); }, 
+this
+);
+
+184 
+_þ›Á
+->
+	`ÚAck
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){ ((
+AsyncPrš‹r
+*)(obj))->
+	`_£ndBufãr
+(); }, 
+this
+);
+
+185 
+_þ›Á
+->
+	`ÚDiscÚÃù
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+){ ((
+AsyncPrš‹r
+*)(obj))->
+	`_Ú_þo£
+(); 
+d–‘e
+ c; }, 
+this
+);
+
+186 
+_þ›Á
+->
+	`ÚD©a
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, *
+d©a
+, 
+size_t
+ 
+Ën
+){ ((
+AsyncPrš‹r
+*)(obj))->
+	`_ÚD©a
+(d©a,†’); }, 
+this
+);
+
+187 
+	}
+}
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h
+
+22 #iâdeà
+ASYNCPRINTER_H_
+
+
+23 
+	#ASYNCPRINTER_H_
+
+
+	)
+
+25 
+	~"Ardušo.h
+"
+
+26 
+	~"ESPAsyncTCP.h
+"
+
+27 
+	~"cbuf.h
+"
+
+29 
+þass
+ 
+	gAsyncPrš‹r
+;
+
+31 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncPrš‹r
+*, 
+	tušt8_t
+*, 
+	tsize_t
+)> 
+	tApD©aHªdËr
+;
+
+32 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncPrš‹r
+*)> 
+	tApClo£HªdËr
+;
+
+34 þas 
+	cAsyncPrš‹r
+: 
+public
+ 
+Pršt
+ {
+
+35 
+´iv©e
+:
+
+36 
+AsyncCl›Á
+ *
+_þ›Á
+;
+
+37 
+ApD©aHªdËr
+ 
+	m_d©a_cb
+;
+
+38 *
+	m_d©a_¬g
+;
+
+39 
+ApClo£HªdËr
+ 
+	m_þo£_cb
+;
+
+40 *
+	m_þo£_¬g
+;
+
+41 
+cbuf
+ *
+	m_tx_bufãr
+;
+
+42 
+size_t
+ 
+	m_tx_bufãr_size
+;
+
+44 
+_ÚCÚÃù
+(
+AsyncCl›Á
+ *
+c
+);
+
+45 
+	mpublic
+:
+
+46 
+AsyncPrš‹r
+ *
+Ãxt
+;
+
+48 
+AsyncPrš‹r
+();
+
+49 
+AsyncPrš‹r
+(
+AsyncCl›Á
+ *
+þ›Á
+, 
+size_t
+ 
+txBufL’
+ = 1460);
+
+50 
+	mvœtu®
+ ~
+AsyncPrš‹r
+();
+
+52 
+cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+);
+
+53 
+cÚÃù
+(cÚ¡ *
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+);
+
+55 
+ÚD©a
+(
+ApD©aHªdËr
+ 
+cb
+, *
+¬g
+);
+
+56 
+ÚClo£
+(
+ApClo£HªdËr
+ 
+cb
+, *
+¬g
+);
+
+58 
+Ý”©Ü
+ 
+boÞ
+();
+
+59 
+	mAsyncPrš‹r
+ & 
+	mÝ”©Ü
+=(cÚ¡ 
+AsyncPrš‹r
+ &
+Ùh”
+);
+
+61 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+);
+
+62 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, size_ˆ
+Ën
+);
+
+64 
+boÞ
+ 
+cÚÃùed
+();
+
+65 
+þo£
+();
+
+67 
+size_t
+ 
+_£ndBufãr
+();
+
+68 
+_ÚD©a
+(*
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+69 
+_Ú_þo£
+();
+
+70 
+_©�chC®lbacks
+();
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp
+
+22 
+	~"Ardušo.h
+"
+
+24 
+	~"ESPAsyncTCP.h
+"
+
+26 
+	~"lw�/Ýt.h
+"
+
+27 
+	~"lw�/tý.h
+"
+
+28 
+	~"lw�/š‘.h
+"
+
+29 
+	~"lw�/dns.h
+"
+
+30 
+	~"lw�/š™.h
+"
+
+32 
+	~<tý_axŽs.h
+>
+
+38 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+39 
+AsyncCl›Á
+::
+	$AsyncCl›Á
+(
+tý_pcb
+* 
+pcb
+, 
+SSL_CTX
+ * 
+s¦_ùx
+):
+
+41 
+AsyncCl›Á
+::
+	$AsyncCl›Á
+(
+tý_pcb
+* 
+pcb
+):
+
+43 
+	`_cÚÃù_cb
+(0)
+
+44 , 
+	`_cÚÃù_cb_¬g
+(0)
+
+45 , 
+	`_disÿrd_cb
+(0)
+
+46 , 
+	`_disÿrd_cb_¬g
+(0)
+
+47 , 
+	`_£Á_cb
+(0)
+
+48 , 
+	`_£Á_cb_¬g
+(0)
+
+49 , 
+	`_”rÜ_cb
+(0)
+
+50 , 
+	`_”rÜ_cb_¬g
+(0)
+
+51 , 
+	`_»cv_cb
+(0)
+
+52 , 
+	`_»cv_cb_¬g
+(0)
+
+53 , 
+	`_pb_cb
+(0)
+
+54 , 
+	`_pb_cb_¬g
+(0)
+
+55 , 
+	`_timeout_cb
+(0)
+
+56 , 
+	`_timeout_cb_¬g
+(0)
+
+57 , 
+	$_pcb_busy
+(
+çl£
+)
+
+58 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+59 , 
+	`_pcb_£cu»
+(
+çl£
+)
+
+60 , 
+	$_hªdshake_dÚe
+(
+Œue
+)
+
+62 , 
+	`_pcb_£Á_©
+(0)
+
+63 , 
+	`_þo£_pcb
+(
+çl£
+)
+
+64 , 
+	`_ack_pcb
+(
+Œue
+)
+
+65 , 
+	`_tx_uÇcked_Ën
+(0)
+
+66 , 
+	`_tx_acked_Ën
+(0)
+
+67 , 
+	`_tx_un£Á_Ën
+(0)
+
+68 , 
+	`_rx_Ï¡_·ck‘
+(0)
+
+69 , 
+	`_rx_sšû_timeout
+(0)
+
+70 , 
+	`_ack_timeout
+(
+ASYNC_MAX_ACK_TIME
+)
+
+71 , 
+	`_cÚÃù_pÜt
+(0)
+
+72 , 
+	`´ev
+(
+NULL
+)
+
+73 , 
+	$Ãxt
+(
+NULL
+)
+
+75 
+_pcb
+ = 
+pcb
+;
+
+76 if(
+_pcb
+){
+
+77 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+78 
+	`tý_£�rio
+(
+_pcb
+, 
+TCP_PRIO_MIN
+);
+
+79 
+	`tý_¬g
+(
+_pcb
+, 
+this
+);
+
+80 
+	`tý_»cv
+(
+_pcb
+, &
+_s_»cv
+);
+
+81 
+	`tý_£Á
+(
+_pcb
+, &
+_s_£Á
+);
+
+82 
+	`tý_”r
+(
+_pcb
+, &
+_s_”rÜ
+);
+
+83 
+	`tý_pÞl
+(
+_pcb
+, &
+_s_pÞl
+, 1);
+
+84 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+85 if(
+s¦_ùx
+){
+
+86 if(
+	`tý_s¦_Ãw_£rv”
+(
+_pcb
+, 
+s¦_ùx
+) < 0){
+
+87 
+	`_þo£
+();
+
+90 
+	`tý_s¦_¬g
+(
+_pcb
+, 
+this
+);
+
+91 
+	`tý_s¦_d©a
+(
+_pcb
+, &
+_s_d©a
+);
+
+92 
+	`tý_s¦_hªdshake
+(
+_pcb
+, &
+_s_hªdshake
+);
+
+93 
+	`tý_s¦_”r
+(
+_pcb
+, &
+_s_s¦_”rÜ
+);
+
+95 
+_pcb_£cu»
+ = 
+Œue
+;
+
+96 
+_hªdshake_dÚe
+ = 
+çl£
+;
+
+100 
+	}
+}
+
+102 
+AsyncCl›Á
+::~
+	$AsyncCl›Á
+(){
+
+103 if(
+_pcb
+)
+
+104 
+	`_þo£
+();
+
+105 
+	}
+}
+
+107 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+108 
+boÞ
+ 
+AsyncCl›Á
+::
+	$cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+, 
+boÞ
+ 
+£cu»
+){
+
+110 
+boÞ
+ 
+AsyncCl›Á
+::
+	$cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+){
+
+112 ià(
+_pcb
+)
+
+113  
+çl£
+;
+
+114 
+�_addr_t
+ 
+addr
+;
+
+115 
+addr
+.add¸ð
+�
+;
+
+116 #ià
+LWIP_VERSION_MAJOR
+ == 1
+
+117 
+Ãtif
+* 
+š‹rçû
+ = 
+	`�_rou‹
+(&
+addr
+);
+
+118 ià(!
+š‹rçû
+){
+
+119  
+çl£
+;
+
+122 
+tý_pcb
+* 
+pcb
+ = 
+	`tý_Ãw
+();
+
+123 ià(!
+pcb
+){
+
+124  
+çl£
+;
+
+127 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+128 
+_pcb_£cu»
+ = 
+£cu»
+;
+
+129 
+_hªdshake_dÚe
+ = !
+£cu»
+;
+
+131 
+	`tý_¬g
+(
+pcb
+, 
+this
+);
+
+132 
+	`tý_”r
+(
+pcb
+, &
+_s_”rÜ
+);
+
+133 
+	`tý_cÚÃù
+(
+pcb
+, &
+addr
+, 
+pÜt
+,(
+tý_cÚÃùed_â
+)&
+_s_cÚÃùed
+);
+
+134  
+Œue
+;
+
+135 
+	}
+}
+
+137 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+138 
+boÞ
+ 
+AsyncCl›Á
+::
+	$cÚÃù
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+, 
+boÞ
+ 
+£cu»
+){
+
+140 
+boÞ
+ 
+AsyncCl›Á
+::
+	$cÚÃù
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+){
+
+142 
+�_addr_t
+ 
+addr
+;
+
+143 
+”r_t
+ 
+”r
+ = 
+	`dns_g‘ho¡byÇme
+(
+ho¡
+, &
+addr
+, (
+dns_found_ÿÎback
+)&
+_s_dns_found
+, 
+this
+);
+
+144 if(
+”r
+ =ð
+ERR_OK
+) {
+
+145 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+146  
+	`cÚÃù
+(
+	`IPAdd»ss
+(
+addr
+.addr), 
+pÜt
+, 
+£cu»
+);
+
+148  
+	`cÚÃù
+(
+	`IPAdd»ss
+(
+addr
+.addr), 
+pÜt
+);
+
+150 } if(
+”r
+ =ð
+ERR_INPROGRESS
+) {
+
+151 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+152 
+_pcb_£cu»
+ = 
+£cu»
+;
+
+153 
+_hªdshake_dÚe
+ = !
+£cu»
+;
+
+155 
+_cÚÃù_pÜt
+ = 
+pÜt
+;
+
+156  
+Œue
+;
+
+158  
+çl£
+;
+
+159 
+	}
+}
+
+161 
+AsyncCl›Á
+& AsyncCl›Á::
+Ý”©Ü
+=(cÚ¡ AsyncCl›Á& 
+Ùh”
+){
+
+162 ià(
+_pcb
+)
+
+163 
+_þo£
+();
+
+165 
+_pcb
+ = 
+Ùh”
+._pcb;
+
+166 ià(
+_pcb
+) {
+
+167 
+_rx_Ï¡_·ck‘
+ = 
+mžlis
+();
+
+168 
+tý_£�rio
+(
+_pcb
+, 
+TCP_PRIO_MIN
+);
+
+169 
+tý_¬g
+(
+_pcb
+, 
+this
+);
+
+170 
+tý_»cv
+(
+_pcb
+, &
+_s_»cv
+);
+
+171 
+tý_£Á
+(
+_pcb
+, &
+_s_£Á
+);
+
+172 
+tý_”r
+(
+_pcb
+, &
+_s_”rÜ
+);
+
+173 
+tý_pÞl
+(
+_pcb
+, &
+_s_pÞl
+, 1);
+
+174 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+175 if(
+tý_s¦_has
+(
+_pcb
+)){
+
+176 
+_pcb_£cu»
+ = 
+Œue
+;
+
+177 
+_hªdshake_dÚe
+ = 
+çl£
+;
+
+178 
+tý_s¦_¬g
+(
+_pcb
+, 
+this
+);
+
+179 
+tý_s¦_d©a
+(
+_pcb
+, &
+_s_d©a
+);
+
+180 
+tý_s¦_hªdshake
+(
+_pcb
+, &
+_s_hªdshake
+);
+
+181 
+tý_s¦_”r
+(
+_pcb
+, &
+_s_s¦_”rÜ
+);
+
+183 
+_pcb_£cu»
+ = 
+çl£
+;
+
+184 
+_hªdshake_dÚe
+ = 
+Œue
+;
+
+188  *
+this
+;
+
+191 
+boÞ
+ 
+AsyncCl›Á
+::
+Ý”©Ü
+==(cÚ¡ AsyncCl›Á &
+Ùh”
+) {
+
+192  (
+_pcb
+ !ð
+NULL
+ && 
+Ùh”
+._pcb !ðNULL && (_pcb->
+»mÙe_�
+.
+addr
+ =ðÙh”._pcb->»mÙe_�.addrè&& (_pcb->
+»mÙe_pÜt
+ == other._pcb->remote_port));
+
+195 
+št8_t
+ 
+AsyncCl›Á
+::
+	$abÜt
+(){
+
+196 if(
+_pcb
+) {
+
+197 
+	`tý_abÜt
+(
+_pcb
+);
+
+198 
+_pcb
+ = 
+NULL
+;
+
+200  
+ERR_ABRT
+;
+
+201 
+	}
+}
+
+203 
+AsyncCl›Á
+::
+	$þo£
+(
+boÞ
+ 
+now
+){
+
+204 if(
+_pcb
+)
+
+205 
+	`tý_»cved
+(
+_pcb
+, 
+_rx_ack_Ën
+);
+
+206 if(
+now
+)
+
+207 
+	`_þo£
+();
+
+209 
+_þo£_pcb
+ = 
+Œue
+;
+
+210 
+	}
+}
+
+212 
+AsyncCl›Á
+::
+	$¡Ý
+() {
+
+213 
+	`þo£
+(
+çl£
+);
+
+214 
+	}
+}
+
+216 
+boÞ
+ 
+AsyncCl›Á
+::
+	$ä“
+(){
+
+217 if(!
+_pcb
+)
+
+218  
+Œue
+;
+
+219 if(
+_pcb
+->
+¡©e
+ == 0 || _pcb->state > 4)
+
+220  
+Œue
+;
+
+221  
+çl£
+;
+
+222 
+	}
+}
+
+224 
+size_t
+ 
+AsyncCl›Á
+::
+	$wr™e
+(cÚ¡ * 
+d©a
+) {
+
+225 if(
+d©a
+ =ð
+NULL
+)
+
+227  
+	`wr™e
+(
+d©a
+, 
+	`¡¾’
+(data));
+
+228 
+	}
+}
+
+230 
+size_t
+ 
+AsyncCl›Á
+::
+	$wr™e
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+size
+, 
+ušt8_t
+ 
+­iæags
+) {
+
+231 
+size_t
+ 
+wžl_£nd
+ = 
+	`add
+(
+d©a
+, 
+size
+, 
+­iæags
+);
+
+232 if(!
+wžl_£nd
+ || !
+	`£nd
+())
+
+234  
+wžl_£nd
+;
+
+235 
+	}
+}
+
+237 
+size_t
+ 
+AsyncCl›Á
+::
+	$add
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+size
+, 
+ušt8_t
+ 
+­iæags
+) {
+
+238 if(!
+_pcb
+ || 
+size
+ =ð0 || 
+d©a
+ =ð
+NULL
+)
+
+240 
+size_t
+ 
+room
+ = 
+	`¥aû
+();
+
+241 if(!
+room
+)
+
+243 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+244 if(
+_pcb_£cu»
+){
+
+245 
+£Á
+ = 
+	`tý_s¦_wr™e
+(
+_pcb
+, (
+ušt8_t
+*)
+d©a
+, 
+size
+);
+
+246 if(
+£Á
+ >= 0){
+
+247 
+_tx_uÇcked_Ën
+ +ð
+£Á
+;
+
+248  
+£Á
+;
+
+250 
+	`_þo£
+();
+
+254 
+size_t
+ 
+wžl_£nd
+ = (
+room
+ < 
+size
+) ?„oom : size;
+
+255 
+št8_t
+ 
+”r
+ = 
+	`tý_wr™e
+(
+_pcb
+, 
+d©a
+, 
+wžl_£nd
+, 
+­iæags
+);
+
+256 if(
+”r
+ !ð
+ERR_OK
+)
+
+258 
+_tx_un£Á_Ën
+ +ð
+wžl_£nd
+;
+
+259  
+wžl_£nd
+;
+
+260 
+	}
+}
+
+262 
+boÞ
+ 
+AsyncCl›Á
+::
+	$£nd
+(){
+
+263 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+264 if(
+_pcb_£cu»
+)
+
+265  
+Œue
+;
+
+267 if(
+	`tý_ou�ut
+(
+_pcb
+è=ð
+ERR_OK
+){
+
+268 
+_pcb_busy
+ = 
+Œue
+;
+
+269 
+_pcb_£Á_©
+ = 
+	`mžlis
+();
+
+270 
+_tx_uÇcked_Ën
+ +ð
+_tx_un£Á_Ën
+;
+
+271 
+_tx_un£Á_Ën
+ = 0;
+
+272  
+Œue
+;
+
+274 
+_tx_un£Á_Ën
+ = 0;
+
+275  
+çl£
+;
+
+276 
+	}
+}
+
+278 
+size_t
+ 
+AsyncCl›Á
+::
+	$ack
+(
+size_t
+ 
+Ën
+){
+
+279 if(
+Ën
+ > 
+_rx_ack_Ën
+)
+
+280 
+Ën
+ = 
+_rx_ack_Ën
+;
+
+281 if(
+Ën
+)
+
+282 
+	`tý_»cved
+(
+_pcb
+, 
+Ën
+);
+
+283 
+_rx_ack_Ën
+ -ð
+Ën
+;
+
+284  
+Ën
+;
+
+285 
+	}
+}
+
+289 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_cÚÃùed
+(* 
+pcb
+, 
+”r_t
+ 
+”r
+){
+
+290 
+_pcb
+ = 
+»š‹½»t_ÿ¡
+<
+tý_pcb
+*>(
+pcb
+);
+
+291 if(
+_pcb
+){
+
+292 
+_pcb_busy
+ = 
+çl£
+;
+
+293 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+294 
+	`tý_£�rio
+(
+_pcb
+, 
+TCP_PRIO_MIN
+);
+
+295 
+	`tý_»cv
+(
+_pcb
+, &
+_s_»cv
+);
+
+296 
+	`tý_£Á
+(
+_pcb
+, &
+_s_£Á
+);
+
+297 
+	`tý_pÞl
+(
+_pcb
+, &
+_s_pÞl
+, 1);
+
+298 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+299 if(
+_pcb_£cu»
+){
+
+300 if(
+	`tý_s¦_Ãw_þ›Á
+(
+_pcb
+) < 0){
+
+301  
+	`_þo£
+();
+
+303 
+	`tý_s¦_¬g
+(
+_pcb
+, 
+this
+);
+
+304 
+	`tý_s¦_d©a
+(
+_pcb
+, &
+_s_d©a
+);
+
+305 
+	`tý_s¦_hªdshake
+(
+_pcb
+, &
+_s_hªdshake
+);
+
+306 
+	`tý_s¦_”r
+(
+_pcb
+, &
+_s_s¦_”rÜ
+);
+
+309 if(!
+_pcb_£cu»
+ && 
+_cÚÃù_cb
+)
+
+312 if(
+_cÚÃù_cb
+)
+
+314 
+	`_cÚÃù_cb
+(
+_cÚÃù_cb_¬g
+, 
+this
+);
+
+315  
+ERR_OK
+;
+
+316 
+	}
+}
+
+318 
+št8_t
+ 
+AsyncCl›Á
+::
+	$_þo£
+(){
+
+319 
+št8_t
+ 
+”r
+ = 
+ERR_OK
+;
+
+320 if(
+_pcb
+) {
+
+321 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+322 if(
+_pcb_£cu»
+){
+
+323 
+	`tý_s¦_ä“
+(
+_pcb
+);
+
+326 
+	`tý_¬g
+(
+_pcb
+, 
+NULL
+);
+
+327 
+	`tý_£Á
+(
+_pcb
+, 
+NULL
+);
+
+328 
+	`tý_»cv
+(
+_pcb
+, 
+NULL
+);
+
+329 
+	`tý_”r
+(
+_pcb
+, 
+NULL
+);
+
+330 
+	`tý_pÞl
+(
+_pcb
+, 
+NULL
+, 0);
+
+331 
+”r
+ = 
+	`tý_þo£
+(
+_pcb
+);
+
+332 if(
+”r
+ !ð
+ERR_OK
+) {
+
+333 
+”r
+ = 
+	`abÜt
+();
+
+335 
+_pcb
+ = 
+NULL
+;
+
+336 if(
+_disÿrd_cb
+)
+
+337 
+	`_disÿrd_cb
+(
+_disÿrd_cb_¬g
+, 
+this
+);
+
+339  
+”r
+;
+
+340 
+	}
+}
+
+342 
+AsyncCl›Á
+::
+	$_”rÜ
+(
+”r_t
+ 
+”r
+) {
+
+343 if(
+_pcb
+){
+
+344 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+345 if(
+_pcb_£cu»
+){
+
+346 
+	`tý_s¦_ä“
+(
+_pcb
+);
+
+349 
+	`tý_¬g
+(
+_pcb
+, 
+NULL
+);
+
+350 
+	`tý_£Á
+(
+_pcb
+, 
+NULL
+);
+
+351 
+	`tý_»cv
+(
+_pcb
+, 
+NULL
+);
+
+352 
+	`tý_”r
+(
+_pcb
+, 
+NULL
+);
+
+353 
+	`tý_pÞl
+(
+_pcb
+, 
+NULL
+, 0);
+
+354 
+_pcb
+ = 
+NULL
+;
+
+356 if(
+_”rÜ_cb
+)
+
+357 
+	`_”rÜ_cb
+(
+_”rÜ_cb_¬g
+, 
+this
+, 
+”r
+);
+
+358 if(
+_disÿrd_cb
+)
+
+359 
+	`_disÿrd_cb
+(
+_disÿrd_cb_¬g
+, 
+this
+);
+
+360 
+	}
+}
+
+362 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+363 
+AsyncCl›Á
+::
+	$_s¦_”rÜ
+(
+št8_t
+ 
+”r
+){
+
+364 if(
+_”rÜ_cb
+)
+
+365 
+	`_”rÜ_cb
+(
+_”rÜ_cb_¬g
+, 
+this
+, 
+”r
++64);
+
+366 
+	}
+}
+
+369 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_£Á
+(
+tý_pcb
+* 
+pcb
+, 
+ušt16_t
+ 
+Ën
+) {
+
+370 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+371 ià(
+_pcb_£cu»
+ && !
+_hªdshake_dÚe
+)
+
+372  
+ERR_OK
+;
+
+374 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+375 
+_tx_uÇcked_Ën
+ -ð
+Ën
+;
+
+376 
+_tx_acked_Ën
+ +ð
+Ën
+;
+
+377 
+	`ASYNC_TCP_DEBUG
+("_£Á: %u (%d %d)\n", 
+Ën
+, 
+_tx_uÇcked_Ën
+, 
+_tx_acked_Ën
+);
+
+378 if(
+_tx_uÇcked_Ën
+ == 0){
+
+379 
+_pcb_busy
+ = 
+çl£
+;
+
+380 if(
+_£Á_cb
+)
+
+381 
+	`_£Á_cb
+(
+_£Á_cb_¬g
+, 
+this
+, 
+_tx_acked_Ën
+, (
+	`mžlis
+(è- 
+_pcb_£Á_©
+));
+
+382 
+_tx_acked_Ën
+ = 0;
+
+384  
+ERR_OK
+;
+
+385 
+	}
+}
+
+387 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_»cv
+(
+tý_pcb
+* 
+pcb
+, 
+pbuf
+* 
+pb
+, 
+”r_t
+ 
+”r
+) {
+
+388 if(
+pb
+ =ð
+NULL
+){
+
+389 
+	`ASYNC_TCP_DEBUG
+("_»cv:…b =ðNULL! Closšg... %d\n", 
+”r
+);
+
+390  
+	`_þo£
+();
+
+393 
+_rx_Ï¡_·ck‘
+ = 
+	`mžlis
+();
+
+394 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+395 if(
+_pcb_£cu»
+){
+
+396 
+	`ASYNC_TCP_DEBUG
+("_»cv: %d\n", 
+pb
+->
+tÙ_Ën
+);
+
+397 
+»ad_by‹s
+ = 
+	`tý_s¦_»ad
+(
+pcb
+, 
+pb
+);
+
+398 if(
+»ad_by‹s
+ < 0){
+
+399 ià(
+»ad_by‹s
+ !ð
+SSL_CLOSE_NOTIFY
+) {
+
+400 
+	`ASYNC_TCP_DEBUG
+("_»cvƒ¼: %d\n", 
+»ad_by‹s
+);
+
+401 
+	`_þo£
+();
+
+405  
+ERR_OK
+;
+
+408 
+pb
+ !ð
+NULL
+){
+
+410 
+_ack_pcb
+ = 
+Œue
+;
+
+411 
+pbuf
+ *
+b
+ = 
+pb
+;
+
+412 
+pb
+ = 
+b
+->
+Ãxt
+;
+
+413 
+b
+->
+Ãxt
+ = 
+NULL
+;
+
+414 
+	`ASYNC_TCP_DEBUG
+("_»cv: %d\n", 
+b
+->
+Ën
+);
+
+415 if(
+_pb_cb
+){
+
+416 
+	`_pb_cb
+(
+_pb_cb_¬g
+, 
+this
+, 
+b
+);
+
+418 if(
+_»cv_cb
+)
+
+419 
+	`_»cv_cb
+(
+_»cv_cb_¬g
+, 
+this
+, 
+b
+->
+·ylßd
+, b->
+Ën
+);
+
+420 if(!
+_ack_pcb
+)
+
+421 
+_rx_ack_Ën
+ +ð
+b
+->
+Ën
+;
+
+423 
+	`tý_»cved
+(
+pcb
+, 
+b
+->
+Ën
+);
+
+424 
+	`pbuf_ä“
+(
+b
+);
+
+427  
+ERR_OK
+;
+
+428 
+	}
+}
+
+430 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_pÞl
+(
+tý_pcb
+* 
+pcb
+){
+
+432 if(
+_þo£_pcb
+){
+
+433 
+_þo£_pcb
+ = 
+çl£
+;
+
+434 
+	`_þo£
+();
+
+435  
+ERR_OK
+;
+
+437 
+ušt32_t
+ 
+now
+ = 
+	`mžlis
+();
+
+440 if(
+_pcb_busy
+ && 
+_ack_timeout
+ && (
+now
+ - 
+_pcb_£Á_©
+) >= _ack_timeout){
+
+441 
+_pcb_busy
+ = 
+çl£
+;
+
+442 if(
+_timeout_cb
+)
+
+443 
+	`_timeout_cb
+(
+_timeout_cb_¬g
+, 
+this
+, (
+now
+ - 
+_pcb_£Á_©
+));
+
+444  
+ERR_OK
+;
+
+447 if(
+_rx_sšû_timeout
+ && (
+now
+ - 
+_rx_Ï¡_·ck‘
+) >= (_rx_since_timeout * 1000)){
+
+448 
+	`_þo£
+();
+
+449  
+ERR_OK
+;
+
+451 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+453 if(
+_pcb_£cu»
+ && !
+_hªdshake_dÚe
+ && (
+now
+ - 
+_rx_Ï¡_·ck‘
+) >= 2000){
+
+454 
+	`_þo£
+();
+
+455  
+ERR_OK
+;
+
+459 if(
+_pÞl_cb
+)
+
+460 
+	`_pÞl_cb
+(
+_pÞl_cb_¬g
+, 
+this
+);
+
+461  
+ERR_OK
+;
+
+462 
+	}
+}
+
+464 #ià
+LWIP_VERSION_MAJOR
+ == 1
+
+465 
+AsyncCl›Á
+::
+	$_dns_found
+(
+�_addr
+ *
+�addr
+){
+
+467 
+AsyncCl›Á
+::
+	$_dns_found
+(cÚ¡ 
+�_addr
+ *
+�addr
+){
+
+469 if(
+�addr
+){
+
+470 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+471 
+	`cÚÃù
+(
+	`IPAdd»ss
+(
+�addr
+->
+addr
+), 
+_cÚÃù_pÜt
+, 
+_pcb_£cu»
+);
+
+473 
+	`cÚÃù
+(
+	`IPAdd»ss
+(
+�addr
+->
+addr
+), 
+_cÚÃù_pÜt
+);
+
+476 if(
+_”rÜ_cb
+)
+
+477 
+	`_”rÜ_cb
+(
+_”rÜ_cb_¬g
+, 
+this
+, -55);
+
+478 if(
+_disÿrd_cb
+)
+
+479 
+	`_disÿrd_cb
+(
+_disÿrd_cb_¬g
+, 
+this
+);
+
+481 
+	}
+}
+
+484 #ià
+LWIP_VERSION_MAJOR
+ == 1
+
+485 
+AsyncCl›Á
+::
+	$_s_dns_found
+(cÚ¡ *
+Çme
+, 
+�_addr_t
+ *
+�addr
+, *
+¬g
+){
+
+487 
+AsyncCl›Á
+::
+	$_s_dns_found
+(cÚ¡ *
+Çme
+, cÚ¡ 
+�_addr
+ *
+�addr
+, *
+¬g
+){
+
+489 
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_dns_found
+(
+�addr
+);
+
+490 
+	}
+}
+
+492 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_s_pÞl
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+) {
+
+493  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_pÞl
+(
+�cb
+);
+
+494 
+	}
+}
+
+496 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_s_»cv
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, 
+pbuf
+ *
+pb
+, 
+”r_t
+ 
+”r
+) {
+
+497  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_»cv
+(
+�cb
+, 
+pb
+, 
+”r
+);
+
+498 
+	}
+}
+
+500 
+AsyncCl›Á
+::
+	$_s_”rÜ
+(*
+¬g
+, 
+”r_t
+ 
+”r
+) {
+
+501 
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_”rÜ
+(
+”r
+);
+
+502 
+	}
+}
+
+504 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_s_£Á
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, 
+ušt16_t
+ 
+Ën
+) {
+
+505  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_£Á
+(
+�cb
+, 
+Ën
+);
+
+506 
+	}
+}
+
+508 
+”r_t
+ 
+AsyncCl›Á
+::
+	$_s_cÚÃùed
+(* 
+¬g
+, * 
+�cb
+, 
+”r_t
+ 
+”r
+){
+
+509  
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_cÚÃùed
+(
+�cb
+, 
+”r
+);
+
+510 
+	}
+}
+
+512 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+513 
+AsyncCl›Á
+::
+	$_s_d©a
+(*
+¬g
+, 
+tý_pcb
+ *
+tý
+, 
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+514 
+AsyncCl›Á
+ *
+c
+ = 
+»š‹½»t_ÿ¡
+<AsyncCl›Á*>(
+¬g
+);
+
+515 if(
+c
+->
+_»cv_cb
+)
+
+516 
+c
+->
+	`_»cv_cb
+(c->
+_»cv_cb_¬g
+, c, 
+d©a
+, 
+Ën
+);
+
+517 
+	}
+}
+
+519 
+AsyncCl›Á
+::
+	$_s_hªdshake
+(*
+¬g
+, 
+tý_pcb
+ *
+tý
+, 
+SSL
+ *
+s¦
+){
+
+520 
+AsyncCl›Á
+ *
+c
+ = 
+»š‹½»t_ÿ¡
+<AsyncCl›Á*>(
+¬g
+);
+
+521 
+c
+->
+_hªdshake_dÚe
+ = 
+Œue
+;
+
+522 if(
+c
+->
+_cÚÃù_cb
+)
+
+523 
+c
+->
+	`_cÚÃù_cb
+(c->
+_cÚÃù_cb_¬g
+, c);
+
+524 
+	}
+}
+
+526 
+AsyncCl›Á
+::
+	$_s_s¦_”rÜ
+(*
+¬g
+, 
+tý_pcb
+ *
+tý
+, 
+št8_t
+ 
+”r
+){
+
+527 
+»š‹½»t_ÿ¡
+<
+AsyncCl›Á
+*>(
+¬g
+)->
+	`_s¦_”rÜ
+(
+”r
+);
+
+528 
+	}
+}
+
+533 
+AsyncCl›Á
+ & AsyncCl›Á::
+Ý”©Ü
++=(cÚ¡ AsyncCl›Á &
+Ùh”
+) {
+
+534 if(
+Ãxt
+ =ð
+NULL
+){
+
+535 
+Ãxt
+ = (
+AsyncCl›Á
+*)(&
+Ùh”
+);
+
+536 
+Ãxt
+->
+´ev
+ = 
+this
+;
+
+538 
+AsyncCl›Á
+ *
+c
+ = 
+Ãxt
+;
+
+539 
+c
+->
+Ãxt
+ !ð
+NULL
+) c = c->next;
+
+540 
+c
+->
+Ãxt
+ =(
+AsyncCl›Á
+*)(&
+Ùh”
+);
+
+541 
+c
+->
+Ãxt
+->
+´ev
+ = c;
+
+543  *
+this
+;
+
+546 
+AsyncCl›Á
+::
+	$£tRxTimeout
+(
+ušt32_t
+ 
+timeout
+){
+
+547 
+_rx_sšû_timeout
+ = 
+timeout
+;
+
+548 
+	}
+}
+
+550 
+ušt32_t
+ 
+AsyncCl›Á
+::
+	$g‘RxTimeout
+(){
+
+551  
+_rx_sšû_timeout
+;
+
+552 
+	}
+}
+
+554 
+ušt32_t
+ 
+AsyncCl›Á
+::
+	$g‘AckTimeout
+(){
+
+555  
+_ack_timeout
+;
+
+556 
+	}
+}
+
+558 
+AsyncCl›Á
+::
+	$£tAckTimeout
+(
+ušt32_t
+ 
+timeout
+){
+
+559 
+_ack_timeout
+ = 
+timeout
+;
+
+560 
+	}
+}
+
+562 
+AsyncCl›Á
+::
+	$£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+){
+
+563 if(!
+_pcb
+)
+
+565 if(
+nod–ay
+)
+
+566 
+	`tý_ÇgË_di§bË
+(
+_pcb
+);
+
+568 
+	`tý_ÇgË_’abË
+(
+_pcb
+);
+
+569 
+	}
+}
+
+571 
+boÞ
+ 
+AsyncCl›Á
+::
+	$g‘NoD–ay
+(){
+
+572 if(!
+_pcb
+)
+
+573  
+çl£
+;
+
+574  
+	`tý_ÇgË_di§bËd
+(
+_pcb
+);
+
+575 
+	}
+}
+
+577 
+ušt16_t
+ 
+AsyncCl›Á
+::
+	$g‘Mss
+(){
+
+578 if(
+_pcb
+)
+
+579  
+	`tý_mss
+(
+_pcb
+);
+
+581 
+	}
+}
+
+583 
+ušt32_t
+ 
+AsyncCl›Á
+::
+	$g‘RemÙeAdd»ss
+() {
+
+584 if(!
+_pcb
+)
+
+586  
+_pcb
+->
+»mÙe_�
+.
+addr
+;
+
+587 
+	}
+}
+
+589 
+ušt16_t
+ 
+AsyncCl›Á
+::
+	$g‘RemÙePÜt
+() {
+
+590 if(!
+_pcb
+)
+
+592  
+_pcb
+->
+»mÙe_pÜt
+;
+
+593 
+	}
+}
+
+595 
+ušt32_t
+ 
+AsyncCl›Á
+::
+	$g‘LoÿlAdd»ss
+() {
+
+596 if(!
+_pcb
+)
+
+598  
+_pcb
+->
+loÿl_�
+.
+addr
+;
+
+599 
+	}
+}
+
+601 
+ušt16_t
+ 
+AsyncCl›Á
+::
+	$g‘LoÿlPÜt
+() {
+
+602 if(!
+_pcb
+)
+
+604  
+_pcb
+->
+loÿl_pÜt
+;
+
+605 
+	}
+}
+
+607 
+IPAdd»ss
+ 
+AsyncCl›Á
+::
+	$»mÙeIP
+() {
+
+608  
+	`IPAdd»ss
+(
+	`g‘RemÙeAdd»ss
+());
+
+609 
+	}
+}
+
+611 
+ušt16_t
+ 
+AsyncCl›Á
+::
+	$»mÙePÜt
+() {
+
+612  
+	`g‘RemÙePÜt
+();
+
+613 
+	}
+}
+
+615 
+IPAdd»ss
+ 
+AsyncCl›Á
+::
+	$loÿlIP
+() {
+
+616  
+	`IPAdd»ss
+(
+	`g‘LoÿlAdd»ss
+());
+
+617 
+	}
+}
+
+619 
+ušt16_t
+ 
+AsyncCl›Á
+::
+	$loÿlPÜt
+() {
+
+620  
+	`g‘LoÿlPÜt
+();
+
+621 
+	}
+}
+
+623 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+624 
+SSL
+ * 
+AsyncCl›Á
+::
+	$g‘SSL
+(){
+
+625 if(
+_pcb
+ && 
+_pcb_£cu»
+){
+
+626  
+	`tý_s¦_g‘_s¦
+(
+_pcb
+);
+
+628  
+NULL
+;
+
+629 
+	}
+}
+
+632 
+ušt8_t
+ 
+AsyncCl›Á
+::
+	$¡©e
+() {
+
+633 if(!
+_pcb
+)
+
+635  
+_pcb
+->
+¡©e
+;
+
+636 
+	}
+}
+
+638 
+boÞ
+ 
+AsyncCl›Á
+::
+	$cÚÃùed
+(){
+
+639 ià(!
+_pcb
+)
+
+640  
+çl£
+;
+
+641 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+642  
+_pcb
+->
+¡©e
+ =ð4 && 
+_hªdshake_dÚe
+;
+
+644  
+_pcb
+->
+¡©e
+ == 4;
+
+646 
+	}
+}
+
+648 
+boÞ
+ 
+AsyncCl›Á
+::
+	$cÚÃùšg
+(){
+
+649 ià(!
+_pcb
+)
+
+650  
+çl£
+;
+
+651  
+_pcb
+->
+¡©e
+ > 0 && _pcb->state < 4;
+
+652 
+	}
+}
+
+654 
+boÞ
+ 
+AsyncCl›Á
+::
+	$discÚÃùšg
+(){
+
+655 ià(!
+_pcb
+)
+
+656  
+çl£
+;
+
+657  
+_pcb
+->
+¡©e
+ > 4 && _pcb->state < 10;
+
+658 
+	}
+}
+
+660 
+boÞ
+ 
+AsyncCl›Á
+::
+	$discÚÃùed
+(){
+
+661 ià(!
+_pcb
+)
+
+662  
+Œue
+;
+
+663  
+_pcb
+->
+¡©e
+ == 0 || _pcb->state == 10;
+
+664 
+	}
+}
+
+666 
+boÞ
+ 
+AsyncCl›Á
+::
+	$ä“abË
+(){
+
+667 ià(!
+_pcb
+)
+
+668  
+Œue
+;
+
+669  
+_pcb
+->
+¡©e
+ == 0 || _pcb->state > 4;
+
+670 
+	}
+}
+
+672 
+boÞ
+ 
+AsyncCl›Á
+::
+	$ÿnS’d
+(){
+
+673  !
+_pcb_busy
+ && (
+	`¥aû
+() > 0);
+
+674 
+	}
+}
+
+679 
+AsyncCl›Á
+::
+	$ÚCÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+680 
+_cÚÃù_cb
+ = 
+cb
+;
+
+681 
+_cÚÃù_cb_¬g
+ = 
+¬g
+;
+
+682 
+	}
+}
+
+684 
+AsyncCl›Á
+::
+	$ÚDiscÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+685 
+_disÿrd_cb
+ = 
+cb
+;
+
+686 
+_disÿrd_cb_¬g
+ = 
+¬g
+;
+
+687 
+	}
+}
+
+689 
+AsyncCl›Á
+::
+	$ÚAck
+(
+AcAckHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+690 
+_£Á_cb
+ = 
+cb
+;
+
+691 
+_£Á_cb_¬g
+ = 
+¬g
+;
+
+692 
+	}
+}
+
+694 
+AsyncCl›Á
+::
+	$ÚE¼Ü
+(
+AcE¼ÜHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+695 
+_”rÜ_cb
+ = 
+cb
+;
+
+696 
+_”rÜ_cb_¬g
+ = 
+¬g
+;
+
+697 
+	}
+}
+
+699 
+AsyncCl›Á
+::
+	$ÚD©a
+(
+AcD©aHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+700 
+_»cv_cb
+ = 
+cb
+;
+
+701 
+_»cv_cb_¬g
+ = 
+¬g
+;
+
+702 
+	}
+}
+
+704 
+AsyncCl›Á
+::
+	$ÚPack‘
+(
+AcPack‘HªdËr
+ 
+cb
+, * 
+¬g
+){
+
+705 
+_pb_cb
+ = 
+cb
+;
+
+706 
+_pb_cb_¬g
+ = 
+¬g
+;
+
+707 
+	}
+}
+
+709 
+AsyncCl›Á
+::
+	$ÚTimeout
+(
+AcTimeoutHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+710 
+_timeout_cb
+ = 
+cb
+;
+
+711 
+_timeout_cb_¬g
+ = 
+¬g
+;
+
+712 
+	}
+}
+
+714 
+AsyncCl›Á
+::
+	$ÚPÞl
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+715 
+_pÞl_cb
+ = 
+cb
+;
+
+716 
+_pÞl_cb_¬g
+ = 
+¬g
+;
+
+717 
+	}
+}
+
+720 
+size_t
+ 
+AsyncCl›Á
+::
+	$¥aû
+(){
+
+721 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+722 if((
+_pcb
+ !ð
+NULL
+è&& (_pcb->
+¡©e
+ =ð4è&& 
+_hªdshake_dÚe
+){
+
+723 
+ušt16_t
+ 
+s
+ = 
+	`tý_¢dbuf
+(
+_pcb
+);
+
+724 if(
+_pcb_£cu»
+){
+
+725 #ifdeà
+AXTLS_2_0_0_SNDBUF
+
+
+726  
+	`tý_s¦_¢dbuf
+(
+_pcb
+);
+
+728 if(
+s
+ >= 128)
+
+729  
+s
+ - 128;
+
+733  
+s
+;
+
+736 if((
+_pcb
+ !ð
+NULL
+è&& (_pcb->
+¡©e
+ == 4)){
+
+737  
+	`tý_¢dbuf
+(
+_pcb
+);
+
+741 
+	}
+}
+
+743 
+AsyncCl›Á
+::
+	$ackPack‘
+(
+pbuf
+ * 
+pb
+){
+
+744 if(!
+pb
+){
+
+747 
+	`tý_»cved
+(
+_pcb
+, 
+pb
+->
+Ën
+);
+
+748 
+	`pbuf_ä“
+(
+pb
+);
+
+749 
+	}
+}
+
+751 cÚ¡ * 
+AsyncCl›Á
+::
+	$”rÜToSŒšg
+(
+št8_t
+ 
+”rÜ
+) {
+
+752 
+”rÜ
+) {
+
+753 
+ERR_OK
+:
+
+755 
+ERR_MEM
+:
+
+757 
+ERR_BUF
+:
+
+759 
+ERR_TIMEOUT
+:
+
+761 
+ERR_RTE
+:
+
+763 
+ERR_INPROGRESS
+:
+
+765 
+ERR_VAL
+:
+
+767 
+ERR_WOULDBLOCK
+:
+
+769 
+ERR_ABRT
+:
+
+771 
+ERR_RST
+:
+
+773 
+ERR_CLSD
+:
+
+775 
+ERR_CONN
+:
+
+777 
+ERR_ARG
+:
+
+779 
+ERR_USE
+:
+
+781 
+ERR_IF
+:
+
+783 
+ERR_ISCONN
+:
+
+788 
+	}
+}
+
+790 cÚ¡ * 
+AsyncCl›Á
+::
+	$¡©eToSŒšg
+(){
+
+791 
+	`¡©e
+()){
+
+805 
+	}
+}
+
+810 
+	s³ndšg_pcb
+ {
+
+811 
+tý_pcb
+* 
+pcb
+;
+
+812 
+pbuf
+ *
+pb
+;
+
+813 
+³ndšg_pcb
+ * 
+Ãxt
+;
+
+816 
+	gAsyncS”v”
+::
+	$AsyncS”v”
+(
+IPAdd»ss
+ 
+addr
+, 
+ušt16_t
+ 
+pÜt
+)
+
+817 : 
+	`_pÜt
+(
+pÜt
+)
+
+818 , 
+	`_addr
+(
+addr
+)
+
+819 , 
+	`_noD–ay
+(
+çl£
+)
+
+820 , 
+	`_pcb
+(0)
+
+821 , 
+	`_cÚÃù_cb
+(0)
+
+822 , 
+	$_cÚÃù_cb_¬g
+(0)
+
+823 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+824 , 
+	`_³ndšg
+(
+NULL
+)
+
+825 , 
+	`_s¦_ùx
+(
+NULL
+)
+
+826 , 
+	`_fže_cb
+(0)
+
+827 , 
+	$_fže_cb_¬g
+(0)
+
+829 {
+	}
+}
+
+831 
+	gAsyncS”v”
+::
+	$AsyncS”v”
+(
+ušt16_t
+ 
+pÜt
+)
+
+832 : 
+	`_pÜt
+(
+pÜt
+)
+
+833 , 
+	`_addr
+((
+ušt32_t
+è
+IPADDR_ANY
+)
+
+834 , 
+	`_noD–ay
+(
+çl£
+)
+
+835 , 
+	`_pcb
+(0)
+
+836 , 
+	`_cÚÃù_cb
+(0)
+
+837 , 
+	$_cÚÃù_cb_¬g
+(0)
+
+838 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+839 , 
+	`_³ndšg
+(
+NULL
+)
+
+840 , 
+	`_s¦_ùx
+(
+NULL
+)
+
+841 , 
+	`_fže_cb
+(0)
+
+842 , 
+	$_fže_cb_¬g
+(0)
+
+844 {
+	}
+}
+
+846 
+	gAsyncS”v”
+::~
+	$AsyncS”v”
+(){
+
+847 
+	`’d
+();
+
+848 
+	}
+}
+
+850 
+	gAsyncS”v”
+::
+	$ÚCl›Á
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+851 
+_cÚÃù_cb
+ = 
+cb
+;
+
+852 
+_cÚÃù_cb_¬g
+ = 
+¬g
+;
+
+853 
+	}
+}
+
+855 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+856 
+	gAsyncS”v”
+::
+	$ÚS¦FžeReque¡
+(
+AcSSlFžeHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+857 
+_fže_cb
+ = 
+cb
+;
+
+858 
+_fže_cb_¬g
+ = 
+¬g
+;
+
+859 
+	}
+}
+
+862 
+	gAsyncS”v”
+::
+	$begš
+(){
+
+863 if(
+_pcb
+)
+
+866 
+št8_t
+ 
+”r
+;
+
+867 
+tý_pcb
+* 
+pcb
+ = 
+	`tý_Ãw
+();
+
+868 ià(!
+pcb
+){
+
+872 
+�_addr_t
+ 
+loÿl_addr
+;
+
+873 
+loÿl_addr
+.
+addr
+ = (
+ušt32_t
+è
+_addr
+;
+
+874 
+”r
+ = 
+	`tý_bšd
+(
+pcb
+, &
+loÿl_addr
+, 
+_pÜt
+);
+
+876 ià(
+”r
+ !ð
+ERR_OK
+) {
+
+877 
+	`tý_þo£
+(
+pcb
+);
+
+881 
+tý_pcb
+* 
+li¡’_pcb
+ = 
+	`tý_li¡’
+(
+pcb
+);
+
+882 ià(!
+li¡’_pcb
+) {
+
+883 
+	`tý_þo£
+(
+pcb
+);
+
+886 
+_pcb
+ = 
+li¡’_pcb
+;
+
+887 
+	`tý_¬g
+(
+_pcb
+, (*è
+this
+);
+
+888 
+	`tý_acû±
+(
+_pcb
+, &
+_s_acû±
+);
+
+889 
+	}
+}
+
+891 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+892 
+	gAsyncS”v”
+::
+	$begšSecu»
+(cÚ¡ *
+û¹
+, cÚ¡ *
+key
+, cÚ¡ *
+·sswÜd
+){
+
+893 if(
+_s¦_ùx
+){
+
+896 
+	`tý_s¦_fže
+(
+_s_û¹
+, 
+this
+);
+
+897 
+_s¦_ùx
+ = 
+	`tý_s¦_Ãw_£rv”_ùx
+(
+û¹
+, 
+key
+, 
+·sswÜd
+);
+
+898 if(
+_s¦_ùx
+){
+
+899 
+	`begš
+();
+
+901 
+	}
+}
+
+904 
+	gAsyncS”v”
+::
+	$’d
+(){
+
+905 if(
+_pcb
+){
+
+907 
+	`tý_¬g
+(
+_pcb
+, 
+NULL
+);
+
+908 
+	`tý_acû±
+(
+_pcb
+, 
+NULL
+);
+
+909 if(
+	`tý_þo£
+(
+_pcb
+è!ð
+ERR_OK
+){
+
+910 
+	`tý_abÜt
+(
+_pcb
+);
+
+912 
+_pcb
+ = 
+NULL
+;
+
+914 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+915 if(
+_s¦_ùx
+){
+
+916 
+	`s¦_ùx_ä“
+(
+_s¦_ùx
+);
+
+917 
+_s¦_ùx
+ = 
+NULL
+;
+
+918 if(
+_³ndšg
+){
+
+919 
+³ndšg_pcb
+ * 
+p
+;
+
+920 
+_³ndšg
+){
+
+921 
+p
+ = 
+_³ndšg
+;
+
+922 
+_³ndšg
+ = _³ndšg->
+Ãxt
+;
+
+923 if(
+p
+->
+pb
+){
+
+924 
+	`pbuf_ä“
+(
+p
+->
+pb
+);
+
+926 
+	`ä“
+(
+p
+);
+
+931 
+	}
+}
+
+933 
+	gAsyncS”v”
+::
+	$£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+){
+
+934 
+_noD–ay
+ = 
+nod–ay
+;
+
+935 
+	}
+}
+
+937 
+boÞ
+ 
+	gAsyncS”v”
+::
+	$g‘NoD–ay
+(){
+
+938  
+_noD–ay
+;
+
+939 
+	}
+}
+
+941 
+ušt8_t
+ 
+	gAsyncS”v”
+::
+	$¡©us
+(){
+
+942 ià(!
+_pcb
+)
+
+944  
+_pcb
+->
+¡©e
+;
+
+945 
+	}
+}
+
+947 
+”r_t
+ 
+	gAsyncS”v”
+::
+	$_acû±
+(
+tý_pcb
+* 
+pcb
+, 
+”r_t
+ 
+”r
+){
+
+948 if(
+_cÚÃù_cb
+){
+
+949 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+950 ià(
+_noD–ay
+ || 
+_s¦_ùx
+)
+
+952 ià(
+_noD–ay
+)
+
+954 
+	`tý_ÇgË_di§bË
+(
+pcb
+);
+
+956 
+	`tý_ÇgË_’abË
+(
+pcb
+);
+
+959 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+960 if(
+_s¦_ùx
+){
+
+961 if(
+	`tý_s¦_has_þ›Á
+(è|| 
+_³ndšg
+){
+
+962 
+³ndšg_pcb
+ * 
+Ãw_™em
+ = (³ndšg_pcb*)
+	`m®loc
+((pending_pcb));
+
+963 if(!
+Ãw_™em
+){
+
+964 
+	`ASYNC_TCP_DEBUG
+("### malloc‚ew…ending failed!\n");
+
+965 if(
+	`tý_þo£
+(
+pcb
+è!ð
+ERR_OK
+){
+
+966 
+	`tý_abÜt
+(
+pcb
+);
+
+968  
+ERR_OK
+;
+
+970 
+	`ASYNC_TCP_DEBUG
+("###…uˆtØwa™: %d\n", 
+_þ›Ás_wa™šg
+);
+
+971 
+Ãw_™em
+->
+pcb
+ =…cb;
+
+972 
+Ãw_™em
+->
+pb
+ = 
+NULL
+;
+
+973 
+Ãw_™em
+->
+Ãxt
+ = 
+NULL
+;
+
+974 
+	`tý_£�rio
+(
+_pcb
+, 
+TCP_PRIO_MIN
+);
+
+975 
+	`tý_¬g
+(
+pcb
+, 
+this
+);
+
+976 
+	`tý_pÞl
+(
+pcb
+, &
+_s_pÞl
+, 1);
+
+977 
+	`tý_»cv
+(
+pcb
+, &
+_s_»cv
+);
+
+979 if(
+_³ndšg
+ =ð
+NULL
+){
+
+980 
+_³ndšg
+ = 
+Ãw_™em
+;
+
+982 
+³ndšg_pcb
+ * 
+p
+ = 
+_³ndšg
+;
+
+983 
+p
+->
+Ãxt
+ !ð
+NULL
+)
+
+984 
+p
+ =…->
+Ãxt
+;
+
+985 
+p
+->
+Ãxt
+ = 
+Ãw_™em
+;
+
+988 
+AsyncCl›Á
+ *
+c
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+(
+pcb
+, 
+_s¦_ùx
+);
+
+989 if(
+c
+){
+
+990 
+c
+->
+	`ÚCÚÃù
+([
+this
+](* 
+¬g
+, 
+AsyncCl›Á
+ *c){
+
+991 
+	`_cÚÃù_cb
+(
+_cÚÃù_cb_¬g
+, 
+c
+);
+
+992 }, 
+this
+);
+
+995  
+ERR_OK
+;
+
+997 
+AsyncCl›Á
+ *
+c
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+(
+pcb
+, 
+NULL
+);
+
+999 
+AsyncCl›Á
+ *
+c
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+(
+pcb
+);
+
+1001 if(
+c
+){
+
+1002 
+	`_cÚÃù_cb
+(
+_cÚÃù_cb_¬g
+, 
+c
+);
+
+1003  
+ERR_OK
+;
+
+1005 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+1009 if(
+	`tý_þo£
+(
+pcb
+è!ð
+ERR_OK
+){
+
+1010 
+	`tý_abÜt
+(
+pcb
+);
+
+1012  
+ERR_OK
+;
+
+1013 
+	}
+}
+
+1015 
+”r_t
+ 
+	gAsyncS”v”
+::
+	$_s_acû±
+(*
+¬g
+, 
+tý_pcb
+* 
+pcb
+, 
+”r_t
+ 
+”r
+){
+
+1016  
+»š‹½»t_ÿ¡
+<
+AsyncS”v”
+*>(
+¬g
+)->
+	`_acû±
+(
+pcb
+, 
+”r
+);
+
+1017 
+	}
+}
+
+1019 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+1020 
+”r_t
+ 
+	gAsyncS”v”
+::
+	$_pÞl
+(
+tý_pcb
+* 
+pcb
+){
+
+1021 if(!
+	`tý_s¦_has_þ›Á
+(è&& 
+_³ndšg
+){
+
+1022 
+³ndšg_pcb
+ * 
+p
+ = 
+_³ndšg
+;
+
+1023 if(
+p
+->
+pcb
+ ==…cb){
+
+1024 
+_³ndšg
+ = _³ndšg->
+Ãxt
+;
+
+1026 
+p
+->
+Ãxt
+ &&…->Ãxt->
+pcb
+ !=…cb)… =…->next;
+
+1027 if(!
+p
+->
+Ãxt
+)  0;
+
+1028 
+³ndšg_pcb
+ * 
+b
+ = 
+p
+->
+Ãxt
+;
+
+1029 
+p
+->
+Ãxt
+ = 
+b
+->next;
+
+1030 
+p
+ = 
+b
+;
+
+1032 
+	`ASYNC_TCP_DEBUG
+("###„emov�äom wa™: %d\n", 
+_þ›Ás_wa™šg
+);
+
+1033 
+AsyncCl›Á
+ *
+c
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+(
+pcb
+, 
+_s¦_ùx
+);
+
+1034 if(
+c
+){
+
+1035 
+c
+->
+	`ÚCÚÃù
+([
+this
+](* 
+¬g
+, 
+AsyncCl›Á
+ *c){
+
+1036 
+	`_cÚÃù_cb
+(
+_cÚÃù_cb_¬g
+, 
+c
+);
+
+1037 }, 
+this
+);
+
+1038 if(
+p
+->
+pb
+)
+
+1039 
+c
+->
+	`_»cv
+(
+pcb
+, 
+p
+->
+pb
+, 0);
+
+1041 
+	`ä“
+(
+p
+);
+
+1043  
+ERR_OK
+;
+
+1044 
+	}
+}
+
+1046 
+”r_t
+ 
+	gAsyncS”v”
+::
+	$_»cv
+(
+tý_pcb
+ *
+pcb
+, 
+pbuf
+ *
+pb
+, 
+”r_t
+ 
+”r
+){
+
+1047 if(!
+_³ndšg
+)
+
+1048  
+ERR_OK
+;
+
+1050 
+³ndšg_pcb
+ * 
+p
+;
+
+1052 if(!
+pb
+){
+
+1053 
+	`ASYNC_TCP_DEBUG
+("### clo£ from wa™: %d\n", 
+_þ›Ás_wa™šg
+);
+
+1054 
+p
+ = 
+_³ndšg
+;
+
+1055 if(
+p
+->
+pcb
+ ==…cb){
+
+1056 
+_³ndšg
+ = _³ndšg->
+Ãxt
+;
+
+1058 
+p
+->
+Ãxt
+ &&…->Ãxt->
+pcb
+ !=…cb)… =…->next;
+
+1059 if(!
+p
+->
+Ãxt
+)  0;
+
+1060 
+³ndšg_pcb
+ * 
+b
+ = 
+p
+->
+Ãxt
+;
+
+1061 
+p
+->
+Ãxt
+ = 
+b
+->next;
+
+1062 
+p
+ = 
+b
+;
+
+1064 if(
+p
+->
+pb
+){
+
+1065 
+	`pbuf_ä“
+(
+p
+->
+pb
+);
+
+1067 
+	`ä“
+(
+p
+);
+
+1068 
+	`tý_þo£
+(
+pcb
+);
+
+1069 
+	`tý_abÜt
+(
+pcb
+);
+
+1071 
+	`ASYNC_TCP_DEBUG
+("### wa™ _»cv: %u %d\n", 
+pb
+->
+tÙ_Ën
+, 
+_þ›Ás_wa™šg
+);
+
+1072 
+p
+ = 
+_³ndšg
+;
+
+1073 
+p
+ &&…->
+pcb
+ !=…cb)
+
+1074 
+p
+ =…->
+Ãxt
+;
+
+1075 if(
+p
+){
+
+1076 if(
+p
+->
+pb
+){
+
+1077 
+	`pbuf_chaš
+(
+p
+->
+pb
+,…b);
+
+1079 
+p
+->
+pb
+ =…b;
+
+1083  
+ERR_OK
+;
+
+1084 
+	}
+}
+
+1086 
+	gAsyncS”v”
+::
+	$_û¹
+(cÚ¡ *
+fž’ame
+, 
+ušt8_t
+ **
+buf
+){
+
+1087 if(
+_fže_cb
+){
+
+1088  
+	`_fže_cb
+(
+_fže_cb_¬g
+, 
+fž’ame
+, 
+buf
+);
+
+1090 *
+buf
+ = 0;
+
+1092 
+	}
+}
+
+1094 
+	gAsyncS”v”
+::
+	$_s_û¹
+(*
+¬g
+, cÚ¡ *
+fž’ame
+, 
+ušt8_t
+ **
+buf
+){
+
+1095  
+»š‹½»t_ÿ¡
+<
+AsyncS”v”
+*>(
+¬g
+)->
+	`_û¹
+(
+fž’ame
+, 
+buf
+);
+
+1096 
+	}
+}
+
+1098 
+”r_t
+ 
+	gAsyncS”v”
+::
+	$_s_pÞl
+(*
+¬g
+, 
+tý_pcb
+ *
+pcb
+){
+
+1099  
+»š‹½»t_ÿ¡
+<
+AsyncS”v”
+*>(
+¬g
+)->
+	`_pÞl
+(
+pcb
+);
+
+1100 
+	}
+}
+
+1102 
+”r_t
+ 
+	gAsyncS”v”
+::
+	$_s_»cv
+(*
+¬g
+, 
+tý_pcb
+ *
+pcb
+, 
+pbuf
+ *
+pb
+, 
+”r_t
+ 
+”r
+){
+
+1103  
+»š‹½»t_ÿ¡
+<
+AsyncS”v”
+*>(
+¬g
+)->
+	`_»cv
+(
+pcb
+, 
+pb
+, 
+”r
+);
+
+1104 
+	}
+}
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h
+
+22 #iâdeà
+ASYNCTCP_H_
+
+
+23 
+	#ASYNCTCP_H_
+
+
+	)
+
+25 
+	~<async_cÚfig.h
+>
+
+26 
+	~"IPAdd»ss.h
+"
+
+27 
+	~<funùiÚ®
+>
+
+30 
+	~"lw�/š™.h
+"
+
+31 
+	~"lw�/”r.h
+"
+
+32 
+	~"lw�/pbuf.h
+"
+
+35 
+þass
+ 
+	gAsyncCl›Á
+;
+
+37 
+	#ASYNC_MAX_ACK_TIME
+ 5000
+
+	)
+
+38 
+	#ASYNC_WRITE_FLAG_COPY
+ 0x01
+
+39 
+	#ASYNC_WRITE_FLAG_MORE
+ 0x02
+
+40 
+
+	)
+
+41 
+	gtý_pcb
+;
+
+42 
+	g�_addr
+;
+
+43 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+44 
+	gSSL_
+;
+
+45 
+SSL_
+ 
+	tSSL
+;
+
+46 
+	gSSL_CTX_
+;
+
+47 
+SSL_CTX_
+ 
+	tSSL_CTX
+;
+
+50 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*)> 
+	tAcCÚÃùHªdËr
+;
+
+51 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tsize_t
+ 
+	tËn
+, 
+	tušt32_t
+ 
+	ttime
+)> 
+	tAcAckHªdËr
+;
+
+52 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tšt8_t
+ 
+	t”rÜ
+)> 
+	tAcE¼ÜHªdËr
+;
+
+53 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, *
+	td©a
+, 
+	tsize_t
+ 
+	tËn
+)> 
+	tAcD©aHªdËr
+;
+
+54 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tpbuf
+ *
+	tpb
+)> 
+	tAcPack‘HªdËr
+;
+
+55 
+	g¡d
+::
+	tfunùiÚ
+<(*, 
+	tAsyncCl›Á
+*, 
+	tušt32_t
+ 
+	ttime
+)> 
+	tAcTimeoutHªdËr
+;
+
+57 þas 
+	cAsyncCl›Á
+ {
+
+58 
+	m´Ùeùed
+:
+
+59 
+ä›nd
+ 
+þass
+ 
+AsyncTCPbufãr
+;
+
+60 
+tý_pcb
+* 
+	m_pcb
+;
+
+61 
+AcCÚÃùHªdËr
+ 
+	m_cÚÃù_cb
+;
+
+62 * 
+	m_cÚÃù_cb_¬g
+;
+
+63 
+AcCÚÃùHªdËr
+ 
+	m_disÿrd_cb
+;
+
+64 * 
+	m_disÿrd_cb_¬g
+;
+
+65 
+AcAckHªdËr
+ 
+	m_£Á_cb
+;
+
+66 * 
+	m_£Á_cb_¬g
+;
+
+67 
+AcE¼ÜHªdËr
+ 
+	m_”rÜ_cb
+;
+
+68 * 
+	m_”rÜ_cb_¬g
+;
+
+69 
+AcD©aHªdËr
+ 
+	m_»cv_cb
+;
+
+70 * 
+	m_»cv_cb_¬g
+;
+
+71 
+AcPack‘HªdËr
+ 
+	m_pb_cb
+;
+
+72 * 
+	m_pb_cb_¬g
+;
+
+73 
+AcTimeoutHªdËr
+ 
+	m_timeout_cb
+;
+
+74 * 
+	m_timeout_cb_¬g
+;
+
+75 
+AcCÚÃùHªdËr
+ 
+	m_pÞl_cb
+;
+
+76 * 
+	m_pÞl_cb_¬g
+;
+
+77 
+boÞ
+ 
+	m_pcb_busy
+;
+
+78 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+79 
+boÞ
+ 
+	m_pcb_£cu»
+;
+
+80 
+boÞ
+ 
+	m_hªdshake_dÚe
+;
+
+82 
+ušt32_t
+ 
+	m_pcb_£Á_©
+;
+
+83 
+boÞ
+ 
+	m_þo£_pcb
+;
+
+84 
+boÞ
+ 
+	m_ack_pcb
+;
+
+85 
+ušt32_t
+ 
+	m_tx_uÇcked_Ën
+;
+
+86 
+ušt32_t
+ 
+	m_tx_acked_Ën
+;
+
+87 
+ušt32_t
+ 
+	m_tx_un£Á_Ën
+;
+
+88 
+ušt32_t
+ 
+	m_rx_ack_Ën
+;
+
+89 
+ušt32_t
+ 
+	m_rx_Ï¡_·ck‘
+;
+
+90 
+ušt32_t
+ 
+	m_rx_sšû_timeout
+;
+
+91 
+ušt32_t
+ 
+	m_ack_timeout
+;
+
+92 
+ušt16_t
+ 
+	m_cÚÃù_pÜt
+;
+
+94 
+št8_t
+ 
+_þo£
+();
+
+95 
+”r_t
+ 
+_cÚÃùed
+(* 
+pcb
+,ƒ¼_ˆ
+”r
+);
+
+96 
+_”rÜ
+(
+”r_t
+ 
+”r
+);
+
+97 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+98 
+_s¦_”rÜ
+(
+št8_t
+ 
+”r
+);
+
+100 
+”r_t
+ 
+_pÞl
+(
+tý_pcb
+* 
+pcb
+);
+
+101 
+”r_t
+ 
+_£Á
+(
+tý_pcb
+* 
+pcb
+, 
+ušt16_t
+ 
+Ën
+);
+
+102 #ià
+LWIP_VERSION_MAJOR
+ == 1
+
+103 
+_dns_found
+(
+�_addr
+ *
+�addr
+);
+
+105 
+_dns_found
+(cÚ¡ 
+�_addr
+ *
+�addr
+);
+
+107 
+”r_t
+ 
+_s_pÞl
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+);
+
+108 
+”r_t
+ 
+_s_»cv
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, 
+pbuf
+ *
+pb
+,ƒ¼_ˆ
+”r
+);
+
+109 
+_s_”rÜ
+(*
+¬g
+, 
+”r_t
+ 
+”r
+);
+
+110 
+”r_t
+ 
+_s_£Á
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, 
+ušt16_t
+ 
+Ën
+);
+
+111 
+”r_t
+ 
+_s_cÚÃùed
+(* 
+¬g
+, * 
+�cb
+,ƒ¼_ˆ
+”r
+);
+
+112 #ià
+LWIP_VERSION_MAJOR
+ == 1
+
+113 
+_s_dns_found
+(cÚ¡ *
+Çme
+, 
+�_addr
+ *
+�addr
+, *
+¬g
+);
+
+115 
+_s_dns_found
+(cÚ¡ *
+Çme
+, cÚ¡ 
+�_addr
+ *
+�addr
+, *
+¬g
+);
+
+117 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+118 
+_s_d©a
+(*
+¬g
+, 
+tý_pcb
+ *
+tý
+, 
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+119 
+_s_hªdshake
+(*
+¬g
+, 
+tý_pcb
+ *
+tý
+, 
+SSL
+ *
+s¦
+);
+
+120 
+_s_s¦_”rÜ
+(*
+¬g
+, 
+tý_pcb
+ *
+tý
+, 
+št8_t
+ 
+”r
+);
+
+123 
+	mpublic
+:
+
+124 
+AsyncCl›Á
+* 
+´ev
+;
+
+125 
+AsyncCl›Á
+* 
+	mÃxt
+;
+
+127 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+128 
+AsyncCl›Á
+(
+tý_pcb
+* 
+pcb
+ = 0, 
+SSL_CTX
+ * 
+s¦_ùx
+ = 
+NULL
+);
+
+130 
+AsyncCl›Á
+(
+tý_pcb
+* 
+pcb
+ = 0);
+
+132 ~
+AsyncCl›Á
+();
+
+134 
+	mAsyncCl›Á
+ & 
+	mÝ”©Ü
+=(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+);
+
+135 
+	mAsyncCl›Á
+ & 
+	mÝ”©Ü
++=(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+);
+
+137 
+boÞ
+ 
+	mÝ”©Ü
+==(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+);
+
+139 
+boÞ
+ 
+	mÝ”©Ü
+!=(cÚ¡ 
+AsyncCl›Á
+ &
+Ùh”
+) {
+
+140  !(*
+this
+ =ð
+Ùh”
+);
+
+142 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+143 
+boÞ
+ 
+cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+, boÞ 
+£cu»
+=
+çl£
+);
+
+144 
+boÞ
+ 
+cÚÃù
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+, boÞ 
+£cu»
+=
+çl£
+);
+
+146 
+boÞ
+ 
+cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+);
+
+147 
+boÞ
+ 
+cÚÃù
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+);
+
+149 
+þo£
+(
+boÞ
+ 
+now
+ = 
+çl£
+);
+
+150 
+¡Ý
+();
+
+151 
+št8_t
+ 
+abÜt
+();
+
+152 
+boÞ
+ 
+ä“
+();
+
+154 
+boÞ
+ 
+ÿnS’d
+();
+
+155 
+size_t
+ 
+¥aû
+();
+
+156 
+size_t
+ 
+add
+(cÚ¡ * 
+d©a
+, size_ˆ
+size
+, 
+ušt8_t
+ 
+­iæags
+=0);
+
+157 
+boÞ
+ 
+£nd
+();
+
+158 
+size_t
+ 
+ack
+(size_ˆ
+Ën
+);
+
+159 
+	$ackL©”
+(){ 
+_ack_pcb
+ = 
+çl£
+; 
+	}
+}
+
+161 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+162 
+SSL
+ *
+g‘SSL
+();
+
+165 
+size_t
+ 
+wr™e
+(cÚ¡ * 
+d©a
+);
+
+166 
+size_t
+ 
+wr™e
+(cÚ¡ * 
+d©a
+, size_ˆ
+size
+, 
+ušt8_t
+ 
+­iæags
+=0);
+
+168 
+ušt8_t
+ 
+¡©e
+();
+
+169 
+boÞ
+ 
+cÚÃùšg
+();
+
+170 
+boÞ
+ 
+cÚÃùed
+();
+
+171 
+boÞ
+ 
+discÚÃùšg
+();
+
+172 
+boÞ
+ 
+discÚÃùed
+();
+
+173 
+boÞ
+ 
+ä“abË
+();
+
+175 
+ušt16_t
+ 
+g‘Mss
+();
+
+176 
+ušt32_t
+ 
+g‘RxTimeout
+();
+
+177 
+£tRxTimeout
+(
+ušt32_t
+ 
+timeout
+);
+
+178 
+ušt32_t
+ 
+g‘AckTimeout
+();
+
+179 
+£tAckTimeout
+(
+ušt32_t
+ 
+timeout
+);
+
+180 
+£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+);
+
+181 
+boÞ
+ 
+g‘NoD–ay
+();
+
+182 
+ušt32_t
+ 
+g‘RemÙeAdd»ss
+();
+
+183 
+ušt16_t
+ 
+g‘RemÙePÜt
+();
+
+184 
+ušt32_t
+ 
+g‘LoÿlAdd»ss
+();
+
+185 
+ušt16_t
+ 
+g‘LoÿlPÜt
+();
+
+187 
+IPAdd»ss
+ 
+»mÙeIP
+();
+
+188 
+ušt16_t
+ 
+»mÙePÜt
+();
+
+189 
+IPAdd»ss
+ 
+loÿlIP
+();
+
+190 
+ušt16_t
+ 
+loÿlPÜt
+();
+
+192 
+ÚCÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+193 
+ÚDiscÚÃù
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+194 
+ÚAck
+(
+AcAckHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+195 
+ÚE¼Ü
+(
+AcE¼ÜHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+196 
+ÚD©a
+(
+AcD©aHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+197 
+ÚPack‘
+(
+AcPack‘HªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+198 
+ÚTimeout
+(
+AcTimeoutHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+199 
+ÚPÞl
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+ = 0);
+
+201 
+ackPack‘
+(
+pbuf
+ * 
+pb
+);
+
+203 cÚ¡ * 
+”rÜToSŒšg
+(
+št8_t
+ 
+”rÜ
+);
+
+204 cÚ¡ * 
+¡©eToSŒšg
+();
+
+206 
+”r_t
+ 
+_»cv
+(
+tý_pcb
+* 
+pcb
+, 
+pbuf
+* 
+pb
+,ƒ¼_ˆ
+”r
+);
+
+209 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+210 
+	g¡d
+::
+	tfunùiÚ
+<(* 
+	t¬g
+, cÚ¡ *
+	tfž’ame
+, 
+	tušt8_t
+ **
+	tbuf
+)> 
+	tAcSSlFžeHªdËr
+;
+
+211 
+	g³ndšg_pcb
+;
+
+214 þas 
+	cAsyncS”v”
+ {
+
+215 
+	m´Ùeùed
+:
+
+216 
+ušt16_t
+ 
+_pÜt
+;
+
+217 
+IPAdd»ss
+ 
+	m_addr
+;
+
+218 
+boÞ
+ 
+	m_noD–ay
+;
+
+219 
+tý_pcb
+* 
+	m_pcb
+;
+
+220 
+AcCÚÃùHªdËr
+ 
+	m_cÚÃù_cb
+;
+
+221 * 
+	m_cÚÃù_cb_¬g
+;
+
+222 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+223 
+³ndšg_pcb
+ * 
+	m_³ndšg
+;
+
+224 
+SSL_CTX
+ * 
+	m_s¦_ùx
+;
+
+225 
+AcSSlFžeHªdËr
+ 
+	m_fže_cb
+;
+
+226 * 
+	m_fže_cb_¬g
+;
+
+229 
+	mpublic
+:
+
+231 
+AsyncS”v”
+(
+IPAdd»ss
+ 
+addr
+, 
+ušt16_t
+ 
+pÜt
+);
+
+232 
+AsyncS”v”
+(
+ušt16_t
+ 
+pÜt
+);
+
+233 ~
+AsyncS”v”
+();
+
+234 
+ÚCl›Á
+(
+AcCÚÃùHªdËr
+ 
+cb
+, * 
+¬g
+);
+
+235 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+236 
+ÚS¦FžeReque¡
+(
+AcSSlFžeHªdËr
+ 
+cb
+, * 
+¬g
+);
+
+237 
+begšSecu»
+(cÚ¡ *
+û¹
+, cÚ¡ *
+´iv©e_key_fže
+, cÚ¡ *
+·sswÜd
+);
+
+239 
+begš
+();
+
+240 
+’d
+();
+
+241 
+£tNoD–ay
+(
+boÞ
+ 
+nod–ay
+);
+
+242 
+boÞ
+ 
+g‘NoD–ay
+();
+
+243 
+ušt8_t
+ 
+¡©us
+();
+
+245 
+	m´Ùeùed
+:
+
+246 
+”r_t
+ 
+_acû±
+(
+tý_pcb
+* 
+Ãwpcb
+,ƒ¼_ˆ
+”r
+);
+
+247 
+”r_t
+ 
+_s_acû±
+(*
+¬g
+, 
+tý_pcb
+* 
+Ãwpcb
+,ƒ¼_ˆ
+”r
+);
+
+248 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+249 
+_û¹
+(cÚ¡ *
+fž’ame
+, 
+ušt8_t
+ **
+buf
+);
+
+250 
+”r_t
+ 
+_pÞl
+(
+tý_pcb
+* 
+pcb
+);
+
+251 
+”r_t
+ 
+_»cv
+(
+tý_pcb
+ *
+pcb
+, 
+pbuf
+ *
+pb
+,ƒ¼_ˆ
+”r
+);
+
+252 
+_s_û¹
+(*
+¬g
+, cÚ¡ *
+fž’ame
+, 
+ušt8_t
+ **
+buf
+);
+
+253 
+”r_t
+ 
+_s_pÞl
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+);
+
+254 
+”r_t
+ 
+_s_»cv
+(*
+¬g
+, 
+tý_pcb
+ *
+�cb
+, 
+pbuf
+ *
+pb
+,ƒ¼_ˆ
+”r
+);
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp
+
+26 
+	~<Ardušo.h
+>
+
+27 
+	~<debug.h
+>
+
+29 
+	~"ESPAsyncTCPbufãr.h
+"
+
+32 
+	gAsyncTCPbufãr
+::
+	$AsyncTCPbufãr
+(
+AsyncCl›Á
+* 
+þ›Á
+) {
+
+33 if(
+þ›Á
+ =ð
+NULL
+) {
+
+34 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] client is‚ull!!!\n");
+
+35 
+	`·nic
+();
+
+38 
+_þ›Á
+ = 
+þ›Á
+;
+
+39 
+_TXbufãrWr™e
+ = 
+Ãw
+ 
+	`cbuf
+(1460);
+
+40 
+_TXbufãrR—d
+ = 
+_TXbufãrWr™e
+;
+
+41 
+_RXbufãr
+ = 
+Ãw
+ 
+	`cbuf
+(100);
+
+42 
+_RXmode
+ = 
+ATB_RX_MODE_FREE
+;
+
+43 
+_rxSize
+ = 0;
+
+44 
+_rxT”mš©Ü
+ = 0x00;
+
+45 
+_rxR—dBy‹sPŒ
+ = 
+NULL
+;
+
+46 
+_rxR—dSŒšgPŒ
+ = 
+NULL
+;
+
+47 
+_cbDiscÚÃù
+ = 
+NULL
+;
+
+49 
+_cbRX
+ = 
+NULL
+;
+
+50 
+_cbDÚe
+ = 
+NULL
+;
+
+51 
+	`_©�chC®lbacks
+();
+
+52 
+	}
+}
+
+54 
+	gAsyncTCPbufãr
+::~
+	$AsyncTCPbufãr
+() {
+
+55 if(
+_þ›Á
+) {
+
+56 
+_þ›Á
+->
+	`þo£
+();
+
+59 if(
+_RXbufãr
+) {
+
+60 
+d–‘e
+ 
+_RXbufãr
+;
+
+61 
+_RXbufãr
+ = 
+NULL
+;
+
+64 if(
+_TXbufãrWr™e
+) {
+
+66 
+_TXbufãrWr™e
+ = 
+NULL
+;
+
+69 if(
+_TXbufãrR—d
+) {
+
+70 
+cbuf
+ * 
+Ãxt
+ = 
+_TXbufãrR—d
+->next;
+
+71 
+d–‘e
+ 
+_TXbufãrR—d
+;
+
+72 
+Ãxt
+ !ð
+NULL
+) {
+
+73 
+_TXbufãrR—d
+ = 
+Ãxt
+;
+
+74 
+Ãxt
+ = 
+_TXbufãrR—d
+->next;
+
+75 
+d–‘e
+ 
+_TXbufãrR—d
+;
+
+77 
+_TXbufãrR—d
+ = 
+NULL
+;
+
+79 
+	}
+}
+
+81 
+size_t
+ 
+	gAsyncTCPbufãr
+::
+	$wr™e
+(
+SŒšg
+ & 
+d©a
+) {
+
+82  
+	`wr™e
+(
+d©a
+.
+	`c_¡r
+(), d©a.
+	`Ëngth
+());
+
+83 
+	}
+}
+
+85 
+size_t
+ 
+	gAsyncTCPbufãr
+::
+	$wr™e
+(
+ušt8_t
+ 
+d©a
+) {
+
+86  
+	`wr™e
+(&
+d©a
+, 1);
+
+87 
+	}
+}
+
+89 
+size_t
+ 
+	gAsyncTCPbufãr
+::
+	$wr™e
+(cÚ¡ * 
+d©a
+) {
+
+90  
+	`wr™e
+((cÚ¡ 
+ušt8_t
+ *è
+d©a
+, 
+	`¡¾’
+(data));
+
+91 
+	}
+}
+
+93 
+size_t
+ 
+	gAsyncTCPbufãr
+::
+	$wr™e
+(cÚ¡ *
+d©a
+, 
+size_t
+ 
+Ën
+) {
+
+94  
+	`wr™e
+((cÚ¡ 
+ušt8_t
+ *è
+d©a
+, 
+Ën
+);
+
+95 
+	}
+}
+
+103 
+size_t
+ 
+	gAsyncTCPbufãr
+::
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+) {
+
+104 if(
+_TXbufãrWr™e
+ =ð
+NULL
+ || 
+_þ›Á
+ =ðNULL || !_þ›Á->
+	`cÚÃùed
+(è|| 
+d©a
+ =ðNULL || 
+Ën
+ == 0) {
+
+108 
+size_t
+ 
+by‹sLeá
+ = 
+Ën
+;
+
+109 
+by‹sLeá
+) {
+
+110 
+size_t
+ 
+w
+ = 
+_TXbufãrWr™e
+->
+	`wr™e
+((cÚ¡ *è
+d©a
+, 
+by‹sLeá
+);
+
+111 
+by‹sLeá
+ -ð
+w
+;
+
+112 
+d©a
+ +ð
+w
+;
+
+113 
+	`_£ndBufãr
+();
+
+116 if(
+_TXbufãrWr™e
+->
+	`fuÎ
+(è&& 
+by‹sLeá
+ > 0) {
+
+119 if(
+ESP
+.
+	`g‘F»eH—p
+() < 4096) {
+
+120 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]„un out of Heap can‚ot send‡ll Data!\n");
+
+121  (
+Ën
+ - 
+by‹sLeá
+);
+
+124 
+cbuf
+ * 
+Ãxt
+ = 
+Ãw
+ 
+	`cbuf
+(1460);
+
+126 if(
+Ãxt
+ =ð
+NULL
+) {
+
+127 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]„un out of Heap!\n");
+
+128 
+	`·nic
+();
+
+130 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]‚ew cbuf\n");
+
+134 
+_TXbufãrWr™e
+->
+Ãxt
+ =‚ext;
+
+137 
+_TXbufãrWr™e
+ = 
+Ãxt
+;
+
+141  
+Ën
+;
+
+143 
+	}
+}
+
+148 
+	gAsyncTCPbufãr
+::
+	$æush
+() {
+
+149 !
+_TXbufãrWr™e
+->
+	`em±y
+()) {
+
+150 !
+_þ›Á
+->
+	`ÿnS’d
+()) {
+
+151 
+	`d–ay
+(0);
+
+153 
+	`_£ndBufãr
+();
+
+155 
+	}
+}
+
+157 
+	gAsyncTCPbufãr
+::
+	$noC®lback
+() {
+
+158 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+159 
+	}
+}
+
+161 
+	gAsyncTCPbufãr
+::
+	$»adSŒšgUÁž
+(
+‹rmš©Ü
+, 
+SŒšg
+ * 
+¡r
+, 
+AsyncTCPbufãrDÚeCb
+ 
+dÚe
+) {
+
+162 if(
+_þ›Á
+ =ð
+NULL
+) {
+
+165 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]„—dSŒšgUÁž�”mš©Ü: %02X\n", 
+‹rmš©Ü
+);
+
+166 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+167 
+_cbDÚe
+ = 
+dÚe
+;
+
+168 
+_rxR—dSŒšgPŒ
+ = 
+¡r
+;
+
+169 
+_rxT”mš©Ü
+ = 
+‹rmš©Ü
+;
+
+170 
+_rxSize
+ = 0;
+
+171 
+_RXmode
+ = 
+ATB_RX_MODE_TERMINATOR_STRING
+;
+
+172 
+	}
+}
+
+190 
+	gAsyncTCPbufãr
+::
+	$»adBy‹s
+(*
+bufãr
+, 
+size_t
+ 
+Ëngth
+, 
+AsyncTCPbufãrDÚeCb
+ 
+dÚe
+) {
+
+191 if(
+_þ›Á
+ =ð
+NULL
+) {
+
+194 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]„—dBy‹ Ëngth: %d\n", 
+Ëngth
+);
+
+195 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+196 
+_cbDÚe
+ = 
+dÚe
+;
+
+197 
+_rxR—dBy‹sPŒ
+ = (
+ušt8_t
+ *è
+bufãr
+;
+
+198 
+_rxSize
+ = 
+Ëngth
+;
+
+199 
+_RXmode
+ = 
+ATB_RX_MODE_READ_BYTES
+;
+
+200 
+	}
+}
+
+202 
+	gAsyncTCPbufãr
+::
+	$»adBy‹s
+(
+ušt8_t
+ *
+bufãr
+, 
+size_t
+ 
+Ëngth
+, 
+AsyncTCPbufãrDÚeCb
+ 
+dÚe
+) {
+
+203 
+	`»adBy‹s
+((*è
+bufãr
+, 
+Ëngth
+, 
+dÚe
+);
+
+204 
+	}
+}
+
+206 
+	gAsyncTCPbufãr
+::
+	$ÚD©a
+(
+AsyncTCPbufãrD©aCb
+ 
+cb
+) {
+
+207 if(
+_þ›Á
+ =ð
+NULL
+) {
+
+210 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] onData\n");
+
+211 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+212 
+_cbDÚe
+ = 
+NULL
+;
+
+213 
+_cbRX
+ = 
+cb
+;
+
+214 
+_RXmode
+ = 
+ATB_RX_MODE_FREE
+;
+
+215 
+	}
+}
+
+217 
+	gAsyncTCPbufãr
+::
+	$ÚDiscÚÃù
+(
+AsyncTCPbufãrDiscÚÃùCb
+ 
+cb
+) {
+
+218 
+_cbDiscÚÃù
+ = 
+cb
+;
+
+219 
+	}
+}
+
+221 
+IPAdd»ss
+ 
+	gAsyncTCPbufãr
+::
+	$»mÙeIP
+() {
+
+222 if(!
+_þ›Á
+) {
+
+223  
+	`IPAdd»ss
+(0U);
+
+225  
+_þ›Á
+->
+	`»mÙeIP
+();
+
+226 
+	}
+}
+
+228 
+ušt16_t
+ 
+	gAsyncTCPbufãr
+::
+	$»mÙePÜt
+() {
+
+229 if(!
+_þ›Á
+) {
+
+232  
+_þ›Á
+->
+	`»mÙePÜt
+();
+
+233 
+	}
+}
+
+235 
+boÞ
+ 
+	gAsyncTCPbufãr
+::
+	$cÚÃùed
+() {
+
+236 if(!
+_þ›Á
+) {
+
+237  
+çl£
+;
+
+239  
+_þ›Á
+->
+	`cÚÃùed
+();
+
+240 
+	}
+}
+
+242 
+	gAsyncTCPbufãr
+::
+	$¡Ý
+() {
+
+244 if(!
+_þ›Á
+) {
+
+247 
+_þ›Á
+->
+	`¡Ý
+();
+
+248 
+_þ›Á
+ = 
+NULL
+;
+
+250 if(
+_cbDÚe
+) {
+
+251 
+_RXmode
+) {
+
+252 
+ATB_RX_MODE_READ_BYTES
+:
+
+253 
+ATB_RX_MODE_TERMINATOR
+:
+
+254 
+ATB_RX_MODE_TERMINATOR_STRING
+:
+
+255 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+256 
+	`_cbDÚe
+(
+çl£
+, 
+NULL
+);
+
+262 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+263 
+	}
+}
+
+265 
+	gAsyncTCPbufãr
+::
+	$þo£
+() {
+
+266 
+	`¡Ý
+();
+
+267 
+	}
+}
+
+275 
+	gAsyncTCPbufãr
+::
+	$_©�chC®lbacks
+() {
+
+276 if(!
+_þ›Á
+) {
+
+279 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]‡ttachCallbacks\n");
+
+281 
+_þ›Á
+->
+	`ÚPÞl
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+) {
+
+282 
+AsyncTCPbufãr
+* 
+b
+ = ((AsyncTCPbufãr*)(
+obj
+));
+
+283 if((
+b
+->
+_TXbufãrR—d
+ !ð
+NULL
+è&& !b->_TXbufãrR—d->
+	`em±y
+()) {
+
+284 
+b
+->
+	`_£ndBufãr
+();
+
+289 }, 
+this
+);
+
+291 
+_þ›Á
+->
+	`ÚAck
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+) {
+
+292 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] onAck\n");
+
+293 ((
+AsyncTCPbufãr
+*)(
+obj
+))->
+	`_£ndBufãr
+();
+
+294 }, 
+this
+);
+
+296 
+_þ›Á
+->
+	`ÚDiscÚÃù
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+) {
+
+297 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] onDisconnect\n");
+
+298 
+AsyncTCPbufãr
+* 
+b
+ = ((AsyncTCPbufãr*)(
+obj
+));
+
+299 
+b
+->
+_þ›Á
+ = 
+NULL
+;
+
+300 
+boÞ
+ 
+d–
+ = 
+Œue
+;
+
+301 if(
+b
+->
+_cbDiscÚÃù
+) {
+
+302 
+d–
+ = 
+b
+->
+	`_cbDiscÚÃù
+(b);
+
+304 
+d–‘e
+ 
+c
+;
+
+305 if(
+d–
+) {
+
+306 
+d–‘e
+ 
+b
+;
+
+308 }, 
+this
+);
+
+310 
+_þ›Á
+->
+	`ÚD©a
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, *
+buf
+, 
+size_t
+ 
+Ën
+) {
+
+311 
+AsyncTCPbufãr
+* 
+b
+ = ((AsyncTCPbufãr*)(
+obj
+));
+
+312 
+b
+->
+	`_rxD©a
+((
+ušt8_t
+ *)
+buf
+, 
+Ën
+);
+
+313 }, 
+this
+);
+
+315 
+_þ›Á
+->
+	`ÚTimeout
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+ušt32_t
+ 
+time
+){
+
+316 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] onTimeout\n");
+
+317 
+c
+->
+	`þo£
+();
+
+318 }, 
+this
+);
+
+320 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]‡ttachCallbacks Done.\n");
+
+321 
+	}
+}
+
+326 
+	gAsyncTCPbufãr
+::
+	$_£ndBufãr
+() {
+
+328 
+size_t
+ 
+avažabË
+ = 
+_TXbufãrR—d
+->
+	`avažabË
+();
+
+329 if(
+avažabË
+ =ð0 || 
+_þ›Á
+ =ð
+NULL
+ || !_þ›Á->
+	`cÚÃùed
+(è|| !_þ›Á->
+	`ÿnS’d
+()) {
+
+333 (
+_þ›Á
+->
+	`¥aû
+(è> 0è&& (
+_TXbufãrR—d
+->
+	`avažabË
+(è> 0è&& _þ›Á->
+	`ÿnS’d
+()) {
+
+335 
+avažabË
+ = 
+_TXbufãrR—d
+->
+	`avažabË
+();
+
+337 if(
+avažabË
+ > 
+_þ›Á
+->
+	`¥aû
+()) {
+
+338 
+avažabË
+ = 
+_þ›Á
+->
+	`¥aû
+();
+
+341 *
+out
+ = 
+Ãw
+ [
+avažabË
+];
+
+342 if(
+out
+ =ð
+NULL
+) {
+
+343 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]�o†ess heap,�ry†ater.\n");
+
+348 
+_TXbufãrR—d
+->
+	`³ek
+(
+out
+, 
+avažabË
+);
+
+351 
+size_t
+ 
+£nd
+ = 
+_þ›Á
+->
+	`wr™e
+((cÚ¡ *è
+out
+, 
+avažabË
+);
+
+352 if(
+£nd
+ !ð
+avažabË
+) {
+
+353 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] wr™�çžed s’d: %d‡važabË: %d \n", 
+£nd
+, 
+avažabË
+);
+
+357 
+_TXbufãrR—d
+->
+	`»move
+(
+£nd
+);
+
+360 if(
+_TXbufãrR—d
+->
+	`avažabË
+(è=ð0 && _TXbufãrR—d->
+Ãxt
+ !ð
+NULL
+) {
+
+361 
+cbuf
+ * 
+Þd
+ = 
+_TXbufãrR—d
+;
+
+362 
+_TXbufãrR—d
+ = _TXbufãrR—d->
+Ãxt
+;
+
+363 
+d–‘e
+ 
+Þd
+;
+
+364 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] delete cbuf\n");
+
+367 
+d–‘e
+ 
+out
+;
+
+370 
+	}
+}
+
+377 
+	gAsyncTCPbufãr
+::
+	$_rxD©a
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+Ën
+) {
+
+378 if(!
+_þ›Á
+ || !_þ›Á->
+	`cÚÃùed
+()) {
+
+379 
+	`DEBUG_ASYNC_TCP
+("[A-TCP]‚ot connected!\n");
+
+382 if(!
+_RXbufãr
+) {
+
+383 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] _rxData‚o _RXbuffer!\n");
+
+386 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] _rxD©¨Ën: %d RXmode: %d\n", 
+Ën
+, 
+_RXmode
+);
+
+388 
+size_t
+ 
+hªdËd
+ = 0;
+
+390 if(
+_RXmode
+ !ð
+ATB_RX_MODE_NONE
+) {
+
+391 
+hªdËd
+ = 
+	`_hªdËRxBufãr
+((
+ušt8_t
+ *è
+buf
+, 
+Ën
+);
+
+392 
+buf
+ +ð
+hªdËd
+;
+
+393 
+Ën
+ -ð
+hªdËd
+;
+
+396 if(
+_RXbufãr
+->
+	`em±y
+()) {
+
+397 
+_RXmode
+ !ð
+ATB_RX_MODE_NONE
+ && 
+hªdËd
+ !ð0 && 
+Ën
+ > 0) {
+
+398 
+hªdËd
+ = 
+	`_hªdËRxBufãr
+(
+buf
+, 
+Ën
+);
+
+399 
+buf
+ +ð
+hªdËd
+;
+
+400 
+Ën
+ -ð
+hªdËd
+;
+
+405 if(
+Ën
+ > 0) {
+
+407 if(
+_RXbufãr
+->
+	`room
+(è< 
+Ën
+) {
+
+409 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] _rxData buffer full�ry„esize\n");
+
+410 
+_RXbufãr
+->
+	`»sizeAdd
+((
+Ën
+ + _RXbufãr->
+	`room
+()));
+
+412 if(
+_RXbufãr
+->
+	`room
+(è< 
+Ën
+) {
+
+413 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] _rxD©¨bufã¸tØfuÎ cª oÆy hªdË %d!!!\n", 
+_RXbufãr
+->
+	`room
+());
+
+417 
+_RXbufãr
+->
+	`wr™e
+((cÚ¡ *è(
+buf
+), 
+Ën
+);
+
+420 if(!
+_RXbufãr
+->
+	`em±y
+(è&& 
+_RXmode
+ !ð
+ATB_RX_MODE_NONE
+) {
+
+422 
+hªdËd
+ = 
+	`_hªdËRxBufãr
+(
+NULL
+, 0);
+
+423 
+_RXmode
+ !ð
+ATB_RX_MODE_NONE
+ && 
+hªdËd
+ != 0) {
+
+424 
+hªdËd
+ = 
+	`_hªdËRxBufãr
+(
+NULL
+, 0);
+
+429 if(
+_RXbufãr
+->
+	`em±y
+(è&& _RXbufãr->
+	`room
+() != 100) {
+
+430 
+_RXbufãr
+->
+	`»size
+(100);
+
+433 
+	}
+}
+
+438 
+size_t
+ 
+	gAsyncTCPbufãr
+::
+	$_hªdËRxBufãr
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+Ën
+) {
+
+439 if(!
+_þ›Á
+ || !_þ›Á->
+	`cÚÃùed
+(è|| 
+_RXbufãr
+ =ð
+NULL
+) {
+
+443 
+	`DEBUG_ASYNC_TCP
+("[A-TCP] _hªdËRxBufã¸Ën: %d RXmode: %d\n", 
+Ën
+, 
+_RXmode
+);
+
+445 
+size_t
+ 
+BufãrAvažabË
+ = 
+_RXbufãr
+->
+	`avažabË
+();
+
+446 
+size_t
+ 
+r
+ = 0;
+
+448 if(
+_RXmode
+ =ð
+ATB_RX_MODE_NONE
+) {
+
+450 } if(
+_RXmode
+ =ð
+ATB_RX_MODE_FREE
+) {
+
+451 if(
+_cbRX
+ =ð
+NULL
+) {
+
+455 if(
+BufãrAvažabË
+ > 0) {
+
+456 
+ušt8_t
+ * 
+b
+ = 
+Ãw
+ ušt8_t[
+BufãrAvažabË
+];
+
+457 
+_RXbufãr
+->
+	`³ek
+((*è
+b
+, 
+BufãrAvažabË
+);
+
+458 
+r
+ = 
+	`_cbRX
+(
+b
+, 
+BufãrAvažabË
+);
+
+459 
+_RXbufãr
+->
+	`»move
+(
+r
+);
+
+462 if(
+r
+ =ð
+BufãrAvažabË
+ && 
+buf
+ && (
+Ën
+ > 0)) {
+
+463  
+	`_cbRX
+(
+buf
+, 
+Ën
+);
+
+468 } if(
+_RXmode
+ =ð
+ATB_RX_MODE_READ_BYTES
+) {
+
+469 if(
+_rxR—dBy‹sPŒ
+ =ð
+NULL
+ || 
+_cbDÚe
+ == NULL) {
+
+473 
+size_t
+ 
+ÃwR—dCouÁ
+ = 0;
+
+475 if(
+BufãrAvažabË
+) {
+
+476 
+r
+ = 
+_RXbufãr
+->
+	`»ad
+((*è
+_rxR—dBy‹sPŒ
+, 
+_rxSize
+);
+
+477 
+_rxSize
+ -ð
+r
+;
+
+478 
+_rxR—dBy‹sPŒ
+ +ð
+r
+;
+
+481 if(
+_RXbufãr
+->
+	`em±y
+(è&& (
+Ën
+ > 0è&& 
+buf
+) {
+
+482 
+r
+ = 
+Ën
+;
+
+483 if(
+r
+ > 
+_rxSize
+) {
+
+484 
+r
+ = 
+_rxSize
+;
+
+486 
+	`memýy
+(
+_rxR—dBy‹sPŒ
+, 
+buf
+, 
+r
+);
+
+487 
+_rxR—dBy‹sPŒ
+ +ð
+r
+;
+
+488 
+_rxSize
+ -ð
+r
+;
+
+489 
+ÃwR—dCouÁ
+ +ð
+r
+;
+
+492 if(
+_rxSize
+ == 0) {
+
+493 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+494 
+	`_cbDÚe
+(
+Œue
+, 
+NULL
+);
+
+498  
+ÃwR—dCouÁ
+;
+
+500 } if(
+_RXmode
+ =ð
+ATB_RX_MODE_TERMINATOR
+) {
+
+503 } if(
+_RXmode
+ =ð
+ATB_RX_MODE_TERMINATOR_STRING
+) {
+
+504 if(
+_rxR—dSŒšgPŒ
+ =ð
+NULL
+ || 
+_cbDÚe
+ == NULL) {
+
+509 if(
+BufãrAvažabË
+ > 0) {
+
+510 !
+_RXbufãr
+->
+	`em±y
+()) {
+
+511 
+c
+ = 
+_RXbufãr
+->
+	`»ad
+();
+
+512 if(
+c
+ =ð
+_rxT”mš©Ü
+ || c == 0x00) {
+
+513 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+514 
+	`_cbDÚe
+(
+Œue
+, 
+_rxR—dSŒšgPŒ
+);
+
+517 (*
+_rxR—dSŒšgPŒ
+è+ð
+c
+;
+
+522 if(
+_RXbufãr
+->
+	`em±y
+(è&& (
+Ën
+ > 0è&& 
+buf
+) {
+
+523 
+size_t
+ 
+ÃwR—dCouÁ
+ = 0;
+
+524 
+ÃwR—dCouÁ
+ < 
+Ën
+) {
+
+525 
+c
+ = (è*
+buf
+;
+
+526 
+buf
+++;
+
+527 
+ÃwR—dCouÁ
+++;
+
+528 if(
+c
+ =ð
+_rxT”mš©Ü
+ || c == 0x00) {
+
+529 
+_RXmode
+ = 
+ATB_RX_MODE_NONE
+;
+
+530 
+	`_cbDÚe
+(
+Œue
+, 
+_rxR—dSŒšgPŒ
+);
+
+531  
+ÃwR—dCouÁ
+;
+
+533 (*
+_rxR—dSŒšgPŒ
+è+ð
+c
+;
+
+536  
+ÃwR—dCouÁ
+;
+
+541 
+	}
+}
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h
+
+25 #iâdeà
+ESPASYNCTCPBUFFER_H_
+
+
+26 
+	#ESPASYNCTCPBUFFER_H_
+
+
+	)
+
+30 #iâdeà
+DEBUG_ASYNC_TCP
+
+
+31 
+	#DEBUG_ASYNC_TCP
+(...)
+
+	)
+
+34 
+	~<Ardušo.h
+>
+
+35 
+	~<cbuf.h
+>
+
+37 
+	~"ESPAsyncTCP.h
+"
+
+42 
+	mATB_RX_MODE_NONE
+,
+
+43 
+	mATB_RX_MODE_FREE
+,
+
+44 
+	mATB_RX_MODE_READ_BYTES
+,
+
+45 
+	mATB_RX_MODE_TERMINATOR
+,
+
+46 
+	mATB_RX_MODE_TERMINATOR_STRING
+
+
+47 } 
+	t©bRxMode_t
+;
+
+49 þas 
+	cAsyncTCPbufãr
+: 
+public
+ 
+Pršt
+ {
+
+51 
+public
+:
+
+53 
+¡d
+::
+	tfunùiÚ
+<
+	tsize_t
+(
+	tušt8_t
+ * 
+	t·ylßd
+, size_ˆ
+	tËngth
+)> 
+	tAsyncTCPbufãrD©aCb
+;
+
+54 
+	m¡d
+::
+	tfunùiÚ
+<(
+	tboÞ
+ 
+	tok
+, * 
+	t»t
+)> 
+	tAsyncTCPbufãrDÚeCb
+;
+
+55 
+	m¡d
+::
+	tfunùiÚ
+<
+	tboÞ
+(
+	tAsyncTCPbufãr
+ * 
+	tobj
+)> 
+	tAsyncTCPbufãrDiscÚÃùCb
+;
+
+57 
+AsyncTCPbufãr
+(
+AsyncCl›Á
+* 
+c
+);
+
+58 
+	mvœtu®
+ ~
+AsyncTCPbufãr
+();
+
+60 
+size_t
+ 
+wr™e
+(
+SŒšg
+ & 
+d©a
+);
+
+61 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+);
+
+62 
+size_t
+ 
+wr™e
+(cÚ¡ * 
+d©a
+);
+
+63 
+size_t
+ 
+wr™e
+(cÚ¡ *
+d©a
+, size_ˆ
+Ën
+);
+
+64 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, size_ˆ
+Ën
+);
+
+66 
+æush
+();
+
+68 
+noC®lback
+();
+
+70 
+»adSŒšgUÁž
+(
+‹rmš©Ü
+, 
+SŒšg
+ * 
+¡r
+, 
+AsyncTCPbufãrDÚeCb
+ 
+dÚe
+);
+
+76 
+»adBy‹s
+(*
+bufãr
+, 
+size_t
+ 
+Ëngth
+, 
+AsyncTCPbufãrDÚeCb
+ 
+dÚe
+);
+
+77 
+»adBy‹s
+(
+ušt8_t
+ *
+bufãr
+, 
+size_t
+ 
+Ëngth
+, 
+AsyncTCPbufãrDÚeCb
+ 
+dÚe
+);
+
+82 
+ÚD©a
+(
+AsyncTCPbufãrD©aCb
+ 
+cb
+);
+
+83 
+ÚDiscÚÃù
+(
+AsyncTCPbufãrDiscÚÃùCb
+ 
+cb
+);
+
+85 
+IPAdd»ss
+ 
+»mÙeIP
+();
+
+86 
+ušt16_t
+ 
+»mÙePÜt
+();
+
+87 
+IPAdd»ss
+ 
+loÿlIP
+();
+
+88 
+ušt16_t
+ 
+loÿlPÜt
+();
+
+90 
+boÞ
+ 
+cÚÃùed
+();
+
+92 
+¡Ý
+();
+
+93 
+þo£
+();
+
+95 
+	m´Ùeùed
+:
+
+96 
+AsyncCl›Á
+* 
+_þ›Á
+;
+
+97 
+cbuf
+ * 
+	m_TXbufãrR—d
+;
+
+98 
+cbuf
+ * 
+	m_TXbufãrWr™e
+;
+
+99 
+cbuf
+ * 
+	m_RXbufãr
+;
+
+100 
+©bRxMode_t
+ 
+	m_RXmode
+;
+
+101 
+size_t
+ 
+	m_rxSize
+;
+
+102 
+	m_rxT”mš©Ü
+;
+
+103 
+ušt8_t
+ * 
+	m_rxR—dBy‹sPŒ
+;
+
+104 
+SŒšg
+ * 
+	m_rxR—dSŒšgPŒ
+;
+
+106 
+AsyncTCPbufãrD©aCb
+ 
+	m_cbRX
+;
+
+107 
+AsyncTCPbufãrDÚeCb
+ 
+	m_cbDÚe
+;
+
+108 
+AsyncTCPbufãrDiscÚÃùCb
+ 
+	m_cbDiscÚÃù
+;
+
+110 
+_©�chC®lbacks
+();
+
+111 
+_£ndBufãr
+();
+
+112 
+_Ú_þo£
+();
+
+113 
+_rxD©a
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+Ën
+);
+
+114 
+size_t
+ 
+_hªdËRxBufãr
+(
+ušt8_t
+ *
+buf
+, size_ˆ
+Ën
+);
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp
+
+21 
+	~"SyncCl›Á.h
+"
+
+22 
+	~"Ardušo.h
+"
+
+23 
+	~"ESPAsyncTCP.h
+"
+
+24 
+	~"cbuf.h
+"
+
+27 
+	gSyncCl›Á
+::
+	$SyncCl›Á
+(
+size_t
+ 
+txBufL’
+)
+
+28 : 
+	`_þ›Á
+(
+NULL
+)
+
+29 , 
+	`_tx_bufãr
+(
+NULL
+)
+
+30 , 
+	`_tx_bufãr_size
+(
+txBufL’
+)
+
+31 , 
+	$_rx_bufãr
+(
+NULL
+)
+
+32 {
+	}
+}
+
+34 
+	gSyncCl›Á
+::
+	$SyncCl›Á
+(
+AsyncCl›Á
+ *
+þ›Á
+, 
+size_t
+ 
+txBufL’
+)
+
+35 : 
+	`_þ›Á
+(
+þ›Á
+)
+
+36 , 
+	`_tx_bufãr
+(
+Ãw
+ 
+	`cbuf
+(
+txBufL’
+))
+
+37 , 
+	`_tx_bufãr_size
+(
+txBufL’
+)
+
+38 , 
+	$_rx_bufãr
+(
+NULL
+)
+
+40 
+	`_©�chC®lbacks
+();
+
+41 
+	}
+}
+
+43 
+	gSyncCl›Á
+::~
+	$SyncCl›Á
+(){
+
+44 if(
+_tx_bufãr
+ !ð
+NULL
+){
+
+45 
+cbuf
+ *
+b
+ = 
+_tx_bufãr
+;
+
+46 
+_tx_bufãr
+ = 
+NULL
+;
+
+47 
+d–‘e
+ 
+b
+;
+
+49 
+_rx_bufãr
+ !ð
+NULL
+){
+
+50 
+cbuf
+ *
+b
+ = 
+_rx_bufãr
+;
+
+51 
+_rx_bufãr
+ = _rx_bufãr->
+Ãxt
+;
+
+52 
+d–‘e
+ 
+b
+;
+
+54 
+	}
+}
+
+56 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+57 
+	gSyncCl›Á
+::
+	$cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+, 
+boÞ
+ 
+£cu»
+){
+
+59 
+SyncCl›Á
+::
+	$cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+){
+
+61 if(
+_þ›Á
+ !ð
+NULL
+ && 
+	`cÚÃùed
+())
+
+63 
+_þ›Á
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+();
+
+64 
+_þ›Á
+->
+	`ÚCÚÃù
+([](*
+obj
+, 
+AsyncCl›Á
+ *
+c
+){ ((
+SyncCl›Á
+*)(obj))->
+	`_ÚCÚÃù
+(c); }, 
+this
+);
+
+65 
+	`_©�chC®lbacks_DiscÚÃù
+();
+
+66 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+67 if(
+_þ›Á
+->
+	`cÚÃù
+(
+�
+, 
+pÜt
+, 
+£cu»
+)){
+
+69 if(
+_þ›Á
+->
+	`cÚÃù
+(
+�
+, 
+pÜt
+)){
+
+71 
+_þ›Á
+ !ð
+NULL
+ && !_þ›Á->
+	`cÚÃùed
+(è&& !_þ›Á->
+	`discÚÃùšg
+())
+
+72 
+	`d–ay
+(1);
+
+73  
+	`cÚÃùed
+();
+
+76 
+	}
+}
+
+78 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+79 
+	gSyncCl›Á
+::
+	$cÚÃù
+(cÚ¡ *
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+, 
+boÞ
+ 
+£cu»
+){
+
+81 
+SyncCl›Á
+::
+	$cÚÃù
+(cÚ¡ *
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+){
+
+83 if(
+_þ›Á
+ !ð
+NULL
+ && 
+	`cÚÃùed
+()){
+
+86 
+_þ›Á
+ = 
+Ãw
+ 
+	`AsyncCl›Á
+();
+
+87 
+_þ›Á
+->
+	`ÚCÚÃù
+([](*
+obj
+, 
+AsyncCl›Á
+ *
+c
+){ ((
+SyncCl›Á
+*)(obj))->
+	`_ÚCÚÃù
+(c); }, 
+this
+);
+
+88 
+	`_©�chC®lbacks_DiscÚÃù
+();
+
+89 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+90 if(
+_þ›Á
+->
+	`cÚÃù
+(
+ho¡
+, 
+pÜt
+, 
+£cu»
+)){
+
+92 if(
+_þ›Á
+->
+	`cÚÃù
+(
+ho¡
+, 
+pÜt
+)){
+
+94 
+_þ›Á
+ !ð
+NULL
+ && !_þ›Á->
+	`cÚÃùed
+(è&& !_þ›Á->
+	`discÚÃùšg
+())
+
+95 
+	`d–ay
+(1);
+
+96  
+	`cÚÃùed
+();
+
+99 
+	}
+}
+
+101 
+	gSyncCl›Á
+ & SyncCl›Á::
+Ý”©Ü
+=(cÚ¡ 
+SyncCl›Á
+ &
+Ùh”
+){
+
+102 if(
+_þ›Á
+ !ð
+NULL
+){
+
+103 
+_þ›Á
+->
+abÜt
+();
+
+104 
+	g_þ›Á
+->
+ä“
+();
+
+105 
+	g_þ›Á
+ = 
+NULL
+;
+
+107 
+	g_tx_bufãr_size
+ = 
+Ùh”
+.
+_tx_bufãr_size
+;
+
+108 if(
+	g_tx_bufãr
+ !ð
+NULL
+){
+
+109 
+cbuf
+ *
+b
+ = 
+_tx_bufãr
+;
+
+110 
+	g_tx_bufãr
+ = 
+NULL
+;
+
+111 
+d–‘e
+ 
+	gb
+;
+
+113 
+	g_rx_bufãr
+ !ð
+NULL
+){
+
+114 
+cbuf
+ *
+b
+ = 
+_rx_bufãr
+;
+
+115 
+	g_rx_bufãr
+ = 
+b
+->
+Ãxt
+;
+
+116 
+d–‘e
+ 
+	gb
+;
+
+118 
+	g_tx_bufãr
+ = 
+Ãw
+ 
+cbuf
+(
+Ùh”
+.
+_tx_bufãr_size
+);
+
+119 
+	g_þ›Á
+ = 
+Ùh”
+.
+_þ›Á
+;
+
+120 
+_©�chC®lbacks
+();
+
+121  *
+	gthis
+;
+
+124 
+	gSyncCl›Á
+::
+	$£tTimeout
+(
+ušt32_t
+ 
+£cÚds
+){
+
+125 if(
+_þ›Á
+ !ð
+NULL
+)
+
+126 
+_þ›Á
+->
+	`£tRxTimeout
+(
+£cÚds
+);
+
+127 
+	}
+}
+
+129 
+ušt8_t
+ 
+	gSyncCl›Á
+::
+	$¡©us
+(){
+
+130 if(
+_þ›Á
+ =ð
+NULL
+)
+
+132  
+_þ›Á
+->
+	`¡©e
+();
+
+133 
+	}
+}
+
+135 
+ušt8_t
+ 
+	gSyncCl›Á
+::
+	$cÚÃùed
+(){
+
+136  (
+_þ›Á
+ !ð
+NULL
+ && _þ›Á->
+	`cÚÃùed
+());
+
+137 
+	}
+}
+
+139 
+	gSyncCl›Á
+::
+	$¡Ý
+(){
+
+140 if(
+_þ›Á
+ !ð
+NULL
+)
+
+141 
+_þ›Á
+->
+	`þo£
+(
+Œue
+);
+
+142 
+	}
+}
+
+144 
+size_t
+ 
+	gSyncCl›Á
+::
+	$_£ndBufãr
+(){
+
+145 
+size_t
+ 
+avažabË
+ = 
+_tx_bufãr
+->
+	`avažabË
+();
+
+146 if(!
+	`cÚÃùed
+(è|| !
+_þ›Á
+->
+	`ÿnS’d
+(è|| 
+avažabË
+ == 0)
+
+148 
+size_t
+ 
+£ndabË
+ = 
+_þ›Á
+->
+	`¥aû
+();
+
+149 if(
+£ndabË
+ < 
+avažabË
+)
+
+150 
+avažabË
+ð
+£ndabË
+;
+
+151 *
+out
+ = 
+Ãw
+ [
+avažabË
+];
+
+152 
+_tx_bufãr
+->
+	`»ad
+(
+out
+, 
+avažabË
+);
+
+153 
+size_t
+ 
+£Á
+ = 
+_þ›Á
+->
+	`wr™e
+(
+out
+, 
+avažabË
+);
+
+154 
+d–‘e
+[] 
+out
+;
+
+155  
+£Á
+;
+
+156 
+	}
+}
+
+158 
+	gSyncCl›Á
+::
+	$_ÚD©a
+(*
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+159 
+_þ›Á
+->
+	`ackL©”
+();
+
+160 
+cbuf
+ *
+b
+ = 
+Ãw
+ 
+	`cbuf
+(
+Ën
++1);
+
+161 if(
+b
+ !ð
+NULL
+){
+
+162 
+b
+->
+	`wr™e
+((cÚ¡ *)
+d©a
+, 
+Ën
+);
+
+163 if(
+_rx_bufãr
+ =ð
+NULL
+)
+
+164 
+_rx_bufãr
+ = 
+b
+;
+
+166 
+cbuf
+ *
+p
+ = 
+_rx_bufãr
+;
+
+167 
+p
+->
+Ãxt
+ !ð
+NULL
+)
+
+168 
+p
+ =…->
+Ãxt
+;
+
+169 
+p
+->
+Ãxt
+ = 
+b
+;
+
+172 
+	}
+}
+
+174 
+	gSyncCl›Á
+::
+	$_ÚDiscÚÃù
+(){
+
+175 if(
+_þ›Á
+ !ð
+NULL
+){
+
+176 
+_þ›Á
+ = 
+NULL
+;
+
+178 if(
+_tx_bufãr
+ !ð
+NULL
+){
+
+179 
+cbuf
+ *
+b
+ = 
+_tx_bufãr
+;
+
+180 
+_tx_bufãr
+ = 
+NULL
+;
+
+181 
+d–‘e
+ 
+b
+;
+
+183 
+	}
+}
+
+185 
+	gSyncCl›Á
+::
+	$_ÚCÚÃù
+(
+AsyncCl›Á
+ *
+c
+){
+
+186 
+_þ›Á
+ = 
+c
+;
+
+187 if(
+_tx_bufãr
+ !ð
+NULL
+){
+
+188 
+cbuf
+ *
+b
+ = 
+_tx_bufãr
+;
+
+189 
+_tx_bufãr
+ = 
+NULL
+;
+
+190 
+d–‘e
+ 
+b
+;
+
+192 
+_tx_bufãr
+ = 
+Ãw
+ 
+	`cbuf
+(
+_tx_bufãr_size
+);
+
+193 
+	`_©�chC®lbacks_Aá”CÚÃùed
+();
+
+194 
+	}
+}
+
+196 
+	gSyncCl›Á
+::
+	$_©�chC®lbacks
+(){
+
+197 
+	`_©�chC®lbacks_DiscÚÃù
+();
+
+198 
+	`_©�chC®lbacks_Aá”CÚÃùed
+();
+
+199 
+	}
+}
+
+201 
+	gSyncCl›Á
+::
+	$_©�chC®lbacks_Aá”CÚÃùed
+(){
+
+202 
+_þ›Á
+->
+	`ÚAck
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){ ((
+SyncCl›Á
+*)(obj))->
+	`_£ndBufãr
+(); }, 
+this
+);
+
+203 
+_þ›Á
+->
+	`ÚD©a
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, *
+d©a
+, 
+size_t
+ 
+Ën
+){ ((
+SyncCl›Á
+*)(obj))->
+	`_ÚD©a
+(d©a,†’); }, 
+this
+);
+
+204 
+_þ›Á
+->
+	`ÚTimeout
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+, 
+ušt32_t
+ 
+time
+){ c->
+	`þo£
+(); }, 
+this
+);
+
+205 
+	}
+}
+
+207 
+	gSyncCl›Á
+::
+	$_©�chC®lbacks_DiscÚÃù
+(){
+
+208 
+_þ›Á
+->
+	`ÚDiscÚÃù
+([](*
+obj
+, 
+AsyncCl›Á
+* 
+c
+){ ((
+SyncCl›Á
+*)(obj))->
+	`_ÚDiscÚÃù
+(); 
+d–‘e
+ c; }, 
+this
+);
+
+209 
+	}
+}
+
+211 
+size_t
+ 
+	gSyncCl›Á
+::
+	$wr™e
+(
+ušt8_t
+ 
+d©a
+){
+
+212  
+	`wr™e
+(&
+d©a
+, 1);
+
+213 
+	}
+}
+
+215 
+size_t
+ 
+	gSyncCl›Á
+::
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+216 if(
+_tx_bufãr
+ =ð
+NULL
+ || !
+	`cÚÃùed
+()){
+
+219 
+size_t
+ 
+toWr™e
+ = 0;
+
+220 
+size_t
+ 
+toS’d
+ = 
+Ën
+;
+
+221 
+_tx_bufãr
+->
+	`room
+(è< 
+toS’d
+){
+
+222 
+toWr™e
+ = 
+_tx_bufãr
+->
+	`room
+();
+
+223 
+_tx_bufãr
+->
+	`wr™e
+((cÚ¡ *)
+d©a
+, 
+toWr™e
+);
+
+224 !
+_þ›Á
+->
+	`ÿnS’d
+(è&& 
+	`cÚÃùed
+())
+
+225 
+	`d–ay
+(0);
+
+226 
+	`_£ndBufãr
+();
+
+227 
+toS’d
+ -ð
+toWr™e
+;
+
+229 
+_tx_bufãr
+->
+	`wr™e
+((cÚ¡ *)(
+d©a
++(
+Ën
+ - 
+toS’d
+)),�oSend);
+
+230 if(
+_þ›Á
+->
+	`ÿnS’d
+(è&& 
+	`cÚÃùed
+())
+
+231 
+	`_£ndBufãr
+();
+
+232  
+Ën
+;
+
+233 
+	}
+}
+
+235 
+	gSyncCl›Á
+::
+	$avažabË
+(){
+
+236 if(
+_rx_bufãr
+ =ð
+NULL
+)  0;
+
+237 
+size_t
+ 
+a
+ = 0;
+
+238 
+cbuf
+ *
+b
+ = 
+_rx_bufãr
+;
+
+239 
+b
+ !ð
+NULL
+){
+
+240 
+a
+ +ð
+b
+->
+	`avažabË
+();
+
+241 
+b
+ = b->
+Ãxt
+;
+
+243  
+a
+;
+
+244 
+	}
+}
+
+246 
+	gSyncCl›Á
+::
+	$³ek
+(){
+
+247 if(
+_rx_bufãr
+ =ð
+NULL
+)  -1;
+
+248  
+_rx_bufãr
+->
+	`³ek
+();
+
+249 
+	}
+}
+
+251 
+	gSyncCl›Á
+::
+	$»ad
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+252 if(
+_rx_bufãr
+ =ð
+NULL
+)  -1;
+
+254 
+size_t
+ 
+»adSoF¬
+ = 0;
+
+255 
+_rx_bufãr
+ !ð
+NULL
+ && (
+Ën
+ - 
+»adSoF¬
+è>ð_rx_bufãr->
+	`avažabË
+()){
+
+256 
+cbuf
+ *
+b
+ = 
+_rx_bufãr
+;
+
+257 
+_rx_bufãr
+ = _rx_bufãr->
+Ãxt
+;
+
+258 
+size_t
+ 
+toR—d
+ = 
+b
+->
+	`avažabË
+();
+
+259 
+»adSoF¬
+ +ð
+b
+->
+	`»ad
+((*)(
+d©a
++»adSoF¬), 
+toR—d
+);
+
+260 if(
+	`cÚÃùed
+()){
+
+261 
+_þ›Á
+->
+	`ack
+(
+b
+->
+	`size
+() - 1);
+
+263 
+d–‘e
+ 
+b
+;
+
+265 if(
+_rx_bufãr
+ !ð
+NULL
+ && 
+»adSoF¬
+ < 
+Ën
+){
+
+266 
+»adSoF¬
+ +ð
+_rx_bufãr
+->
+	`»ad
+((*)(
+d©a
++»adSoF¬), (
+Ën
+ -„eadSoFar));
+
+268  
+»adSoF¬
+;
+
+269 
+	}
+}
+
+271 
+	gSyncCl›Á
+::
+	$»ad
+(){
+
+272 
+ušt8_t
+ 
+»s
+ = 0;
+
+273 if(
+	`»ad
+(&
+»s
+, 1) != 1)
+
+275  
+»s
+;
+
+276 
+	}
+}
+
+278 
+	gSyncCl›Á
+::
+	$æush
+(){
+
+279 if(
+_tx_bufãr
+ =ð
+NULL
+ || !
+	`cÚÃùed
+())
+
+281 if(
+_tx_bufãr
+->
+	`avažabË
+()){
+
+282 !
+_þ›Á
+->
+	`ÿnS’d
+(è&& 
+	`cÚÃùed
+())
+
+283 
+	`d–ay
+(0);
+
+284 
+	`_£ndBufãr
+();
+
+286 
+	}
+}
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h
+
+22 #iâdeà
+SYNCCLIENT_H_
+
+
+23 
+	#SYNCCLIENT_H_
+
+
+	)
+
+25 
+	~"Cl›Á.h
+"
+
+26 
+	~<async_cÚfig.h
+>
+
+27 
+þass
+ 
+	gcbuf
+;
+
+28 
+þass
+ 
+	gAsyncCl›Á
+;
+
+30 þas 
+	cSyncCl›Á
+: 
+public
+ 
+Cl›Á
+ {
+
+31 
+´iv©e
+:
+
+32 
+AsyncCl›Á
+ *
+_þ›Á
+;
+
+33 
+cbuf
+ *
+	m_tx_bufãr
+;
+
+34 
+size_t
+ 
+	m_tx_bufãr_size
+;
+
+35 
+cbuf
+ *
+	m_rx_bufãr
+;
+
+37 
+size_t
+ 
+_£ndBufãr
+();
+
+38 
+_ÚD©a
+(*
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+39 
+_ÚCÚÃù
+(
+AsyncCl›Á
+ *
+c
+);
+
+40 
+_ÚDiscÚÃù
+();
+
+41 
+_©�chC®lbacks
+();
+
+42 
+_©�chC®lbacks_DiscÚÃù
+();
+
+43 
+_©�chC®lbacks_Aá”CÚÃùed
+();
+
+45 
+	mpublic
+:
+
+46 
+SyncCl›Á
+(
+size_t
+ 
+txBufL’
+ = 1460);
+
+47 
+SyncCl›Á
+(
+AsyncCl›Á
+ *
+þ›Á
+, 
+size_t
+ 
+txBufL’
+ = 1460);
+
+48 
+	mvœtu®
+ ~
+SyncCl›Á
+();
+
+50 
+Ý”©Ü
+ 
+	$boÞ
+(){  
+	`cÚÃùed
+(); }
+
+51 
+SyncCl›Á
+ & 
+Ý”©Ü
+=(cÚ¡ SyncCl›Á &
+Ùh”
+);
+
+53 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+54 
+	`cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+, 
+boÞ
+ 
+£cu»
+);
+
+55 
+	`cÚÃù
+(cÚ¡ *
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+, 
+boÞ
+ 
+£cu»
+);
+
+56 
+	$cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+){
+
+57  
+	`cÚÃù
+(
+�
+, 
+pÜt
+, 
+çl£
+);
+
+58 
+	}
+}
+
+59 
+	$cÚÃù
+(cÚ¡ *
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+){
+
+60  
+	`cÚÃù
+(
+ho¡
+, 
+pÜt
+, 
+çl£
+);
+
+61 
+	}
+}
+
+63 
+cÚÃù
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+);
+
+64 
+cÚÃù
+(cÚ¡ *
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+);
+
+66 
+£tTimeout
+(
+ušt32_t
+ 
+£cÚds
+);
+
+68 
+ušt8_t
+ 
+¡©us
+();
+
+69 
+ušt8_t
+ 
+cÚÃùed
+();
+
+70 
+¡Ý
+();
+
+72 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+);
+
+73 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, size_ˆ
+Ën
+);
+
+75 
+avažabË
+();
+
+76 
+³ek
+();
+
+77 
+»ad
+();
+
+78 
+»ad
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+79 
+æush
+();
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h
+
+1 #iâdeà
+LIBRARIES_ESPASYNCTCP_SRC_ASYNC_CONFIG_H_
+
+
+2 
+	#LIBRARIES_ESPASYNCTCP_SRC_ASYNC_CONFIG_H_
+
+
+	)
+
+4 #iâdeà
+ASYNC_TCP_SSL_ENABLED
+
+
+5 
+	#ASYNC_TCP_SSL_ENABLED
+ 0
+
+	)
+
+8 
+	#ASYNC_TCP_DEBUG
+(...)
+
+9 
+	#TCP_SSL_DEBUG
+(...)
+
+10 
+
+	)
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c
+
+25 
+	~<async_cÚfig.h
+>
+
+26 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+28 
+	~"lw�/Ýt.h
+"
+
+29 
+	~"lw�/tý.h
+"
+
+30 
+	~"lw�/š‘.h
+"
+
+31 
+	~<¡dlib.h
+>
+
+32 
+	~<¡dšt.h
+>
+
+33 
+	~<¡d¬g.h
+>
+
+34 
+	~<tý_axŽs.h
+>
+
+36 
+ušt8_t
+ * 
+	gdeçuÉ_´iv©e_key
+ = 
+NULL
+;
+
+37 
+ušt16_t
+ 
+	gdeçuÉ_´iv©e_key_Ën
+ = 0;
+
+39 
+ušt8_t
+ * 
+	gdeçuÉ_û¹ifiÿ‹
+ = 
+NULL
+;
+
+40 
+ušt16_t
+ 
+	gdeçuÉ_û¹ifiÿ‹_Ën
+ = 0;
+
+42 
+ušt8_t
+ 
+	g_tý_s¦_has_þ›Á
+ = 0;
+
+44 
+SSL_CTX
+ * 
+	$tý_s¦_Ãw_£rv”_ùx
+(cÚ¡ *
+û¹
+, cÚ¡ *
+´iv©e_key_fže
+, cÚ¡ *
+·sswÜd
+){
+
+45 
+ušt32_t
+ 
+ÝtiÚs
+ = 
+SSL_CONNECT_IN_PARTS
+;
+
+46 
+SSL_CTX
+ *
+s¦_ùx
+;
+
+48 if(
+´iv©e_key_fže
+){
+
+49 
+ÝtiÚs
+ |ð
+SSL_NO_DEFAULT_KEY
+;
+
+52 ià((
+s¦_ùx
+ = 
+	`s¦_ùx_Ãw
+(
+ÝtiÚs
+, 
+SSL_DEFAULT_SVR_SESS
+)è=ð
+NULL
+){
+
+53 
+	`TCP_SSL_DEBUG
+("tcp_ssl_new_server_ctx: failed�o‡llocate context\n");
+
+54  
+NULL
+;
+
+57 ià(
+´iv©e_key_fže
+){
+
+58 
+obj_ty³
+ = 
+SSL_OBJ_RSA_KEY
+;
+
+59 ià(
+	`¡r¡r
+(
+´iv©e_key_fže
+, ".p8"))
+
+60 
+obj_ty³
+ = 
+SSL_OBJ_PKCS8
+;
+
+61 ià(
+	`¡r¡r
+(
+´iv©e_key_fže
+, ".p12"))
+
+62 
+obj_ty³
+ = 
+SSL_OBJ_PKCS12
+;
+
+64 ià(
+	`s¦_obj_lßd
+(
+s¦_ùx
+, 
+obj_ty³
+, 
+´iv©e_key_fže
+, 
+·sswÜd
+)){
+
+65 
+	`TCP_SSL_DEBUG
+("tý_s¦_Ãw_£rv”_ùx:†ßd…riv©�key '%s' fažed\n", 
+´iv©e_key_fže
+);
+
+66  
+NULL
+;
+
+70 ià(
+û¹
+){
+
+71 ià(
+	`s¦_obj_lßd
+(
+s¦_ùx
+, 
+SSL_OBJ_X509_CERT
+, 
+û¹
+, 
+NULL
+)){
+
+72 
+	`TCP_SSL_DEBUG
+("tý_s¦_Ãw_£rv”_ùx:†ßd c”tifiÿ‹ '%s' fažed\n", 
+û¹
+);
+
+73  
+NULL
+;
+
+76  
+s¦_ùx
+;
+
+77 
+	}
+}
+
+79 
+	stý_s¦_pcb
+ {
+
+80 
+tý_pcb
+ *
+	mtý
+;
+
+81 
+	mfd
+;
+
+82 
+SSL_CTX
+* 
+	ms¦_ùx
+;
+
+83 
+SSL
+ *
+	ms¦
+;
+
+84 
+ušt8_t
+ 
+	mty³
+;
+
+85 
+	mhªdshake
+;
+
+86 * 
+	m¬g
+;
+
+87 
+tý_s¦_d©a_cb_t
+ 
+	mÚ_d©a
+;
+
+88 
+tý_s¦_hªdshake_cb_t
+ 
+	mÚ_hªdshake
+;
+
+89 
+tý_s¦_”rÜ_cb_t
+ 
+	mÚ_”rÜ
+;
+
+90 
+	mÏ¡_wr
+;
+
+91 
+pbuf
+ *
+	mtý_pbuf
+;
+
+92 
+	mpbuf_off£t
+;
+
+93 
+tý_s¦_pcb
+ * 
+	mÃxt
+;
+
+96 
+tý_s¦_pcb
+ 
+	ttý_s¦_t
+;
+
+98 
+tý_s¦_t
+ * 
+	gtý_s¦_¬¿y
+ = 
+NULL
+;
+
+99 
+	gtý_s¦_Ãxt_fd
+ = 0;
+
+101 
+ušt8_t
+ 
+	$tý_s¦_has_þ›Á
+(){
+
+102  
+_tý_s¦_has_þ›Á
+;
+
+103 
+	}
+}
+
+105 
+tý_s¦_t
+ * 
+	$tý_s¦_Ãw
+(
+tý_pcb
+ *
+tý
+) {
+
+107 if(
+tý_s¦_Ãxt_fd
+ < 0){
+
+108 
+tý_s¦_Ãxt_fd
+ = 0;
+
+111 
+tý_s¦_t
+ * 
+Ãw_™em
+ = (tý_s¦_t*)
+	`m®loc
+((tcp_ssl_t));
+
+112 if(!
+Ãw_™em
+){
+
+113 
+	`TCP_SSL_DEBUG
+("tcp_ssl_new: failed�o‡llocate�cp_ssl\n");
+
+114  
+NULL
+;
+
+117 
+Ãw_™em
+->
+tý
+ =�cp;
+
+118 
+Ãw_™em
+->
+hªdshake
+ = 
+SSL_NOT_OK
+;
+
+119 
+Ãw_™em
+->
+¬g
+ = 
+NULL
+;
+
+120 
+Ãw_™em
+->
+Ú_d©a
+ = 
+NULL
+;
+
+121 
+Ãw_™em
+->
+Ú_hªdshake
+ = 
+NULL
+;
+
+122 
+Ãw_™em
+->
+Ú_”rÜ
+ = 
+NULL
+;
+
+123 
+Ãw_™em
+->
+tý_pbuf
+ = 
+NULL
+;
+
+124 
+Ãw_™em
+->
+pbuf_off£t
+ = 0;
+
+125 
+Ãw_™em
+->
+Ãxt
+ = 
+NULL
+;
+
+126 
+Ãw_™em
+->
+s¦_ùx
+ = 
+NULL
+;
+
+127 
+Ãw_™em
+->
+s¦
+ = 
+NULL
+;
+
+128 
+Ãw_™em
+->
+ty³
+ = 
+TCP_SSL_TYPE_CLIENT
+;
+
+129 
+Ãw_™em
+->
+fd
+ = 
+tý_s¦_Ãxt_fd
+++;
+
+131 if(
+tý_s¦_¬¿y
+ =ð
+NULL
+){
+
+132 
+tý_s¦_¬¿y
+ = 
+Ãw_™em
+;
+
+134 
+tý_s¦_t
+ * 
+™em
+ = 
+tý_s¦_¬¿y
+;
+
+135 
+™em
+->
+Ãxt
+ !ð
+NULL
+)
+
+136 
+™em
+ = i‹m->
+Ãxt
+;
+
+137 
+™em
+->
+Ãxt
+ = 
+Ãw_™em
+;
+
+140 
+	`TCP_SSL_DEBUG
+("tý_s¦_Ãw: %d\n", 
+Ãw_™em
+->
+fd
+);
+
+141  
+Ãw_™em
+;
+
+142 
+	}
+}
+
+144 
+tý_s¦_t
+* 
+	$tý_s¦_g‘
+(
+tý_pcb
+ *
+tý
+) {
+
+145 if(
+tý
+ =ð
+NULL
+) {
+
+146  
+NULL
+;
+
+148 
+tý_s¦_t
+ * 
+™em
+ = 
+tý_s¦_¬¿y
+;
+
+149 
+™em
+ && i‹m->
+tý
+ !=�cp){
+
+150 
+™em
+ = i‹m->
+Ãxt
+;
+
+152  
+™em
+;
+
+153 
+	}
+}
+
+155 
+	$tý_s¦_Ãw_þ›Á
+(
+tý_pcb
+ *
+tý
+){
+
+156 
+SSL_CTX
+* 
+s¦_ùx
+;
+
+157 
+tý_s¦_t
+ * 
+tý_s¦
+;
+
+159 if(
+tý
+ =ð
+NULL
+) {
+
+163 if(
+	`tý_s¦_g‘
+(
+tý
+è!ð
+NULL
+){
+
+164 
+	`TCP_SSL_DEBUG
+("tcp_ssl_new_client:�cp_ssl‡lreadyƒxists\n");
+
+168 
+s¦_ùx
+ = 
+	`s¦_ùx_Ãw
+(
+SSL_CONNECT_IN_PARTS
+ | 
+SSL_SERVER_VERIFY_LATER
+, 1);
+
+169 if(
+s¦_ùx
+ =ð
+NULL
+){
+
+170 
+	`TCP_SSL_DEBUG
+("tcp_ssl_new_client: failed�o‡llocate ssl context\n");
+
+174 
+tý_s¦
+ = 
+	`tý_s¦_Ãw
+(
+tý
+);
+
+175 if(
+tý_s¦
+ =ð
+NULL
+){
+
+176 
+	`s¦_ùx_ä“
+(
+s¦_ùx
+);
+
+180 
+tý_s¦
+->
+s¦_ùx
+ = ssl_ctx;
+
+182 
+tý_s¦
+->
+s¦
+ = 
+	`s¦_þ›Á_Ãw
+(
+s¦_ùx
+,�ý_s¦->
+fd
+, 
+NULL
+, 0, NULL);
+
+183 if(
+tý_s¦
+->
+s¦
+ =ð
+NULL
+){
+
+184 
+	`TCP_SSL_DEBUG
+("tcp_ssl_new_client: failed�o‡llocate ssl\n");
+
+185 
+	`tý_s¦_ä“
+(
+tý
+);
+
+189  
+tý_s¦
+->
+fd
+;
+
+190 
+	}
+}
+
+192 
+	$tý_s¦_Ãw_£rv”
+(
+tý_pcb
+ *
+tý
+, 
+SSL_CTX
+* 
+s¦_ùx
+){
+
+193 
+tý_s¦_t
+ * 
+tý_s¦
+;
+
+195 if(
+tý
+ =ð
+NULL
+) {
+
+199 if(
+s¦_ùx
+ =ð
+NULL
+){
+
+203 if(
+	`tý_s¦_g‘
+(
+tý
+è!ð
+NULL
+){
+
+204 
+	`TCP_SSL_DEBUG
+("tcp_ssl_new_server:�cp_ssl‡lreadyƒxists\n");
+
+208 
+tý_s¦
+ = 
+	`tý_s¦_Ãw
+(
+tý
+);
+
+209 if(
+tý_s¦
+ =ð
+NULL
+){
+
+213 
+tý_s¦
+->
+ty³
+ = 
+TCP_SSL_TYPE_SERVER
+;
+
+214 
+tý_s¦
+->
+s¦_ùx
+ = ssl_ctx;
+
+216 
+_tý_s¦_has_þ›Á
+ = 1;
+
+217 
+tý_s¦
+->
+s¦
+ = 
+	`s¦_£rv”_Ãw
+(
+s¦_ùx
+,�ý_s¦->
+fd
+);
+
+218 if(
+tý_s¦
+->
+s¦
+ =ð
+NULL
+){
+
+219 
+	`TCP_SSL_DEBUG
+("tcp_ssl_new_server: failed�o‡llocate ssl\n");
+
+220 
+	`tý_s¦_ä“
+(
+tý
+);
+
+224  
+tý_s¦
+->
+fd
+;
+
+225 
+	}
+}
+
+227 
+	$tý_s¦_ä“
+(
+tý_pcb
+ *
+tý
+) {
+
+229 if(
+tý
+ =ð
+NULL
+) {
+
+233 
+tý_s¦_t
+ * 
+™em
+ = 
+tý_s¦_¬¿y
+;
+
+235 if(
+™em
+->
+tý
+ ==�cp){
+
+236 
+tý_s¦_¬¿y
+ =�ý_s¦_¬¿y->
+Ãxt
+;
+
+237 if(
+™em
+->
+tý_pbuf
+ !ð
+NULL
+){
+
+238 
+	`pbuf_ä“
+(
+™em
+->
+tý_pbuf
+);
+
+240 
+	`TCP_SSL_DEBUG
+("tý_s¦_ä“: %d\n", 
+™em
+->
+fd
+);
+
+241 if(
+™em
+->
+s¦
+)
+
+242 
+	`s¦_ä“
+(
+™em
+->
+s¦
+);
+
+243 if(
+™em
+->
+ty³
+ =ð
+TCP_SSL_TYPE_CLIENT
+ && i‹m->
+s¦_ùx
+)
+
+244 
+	`s¦_ùx_ä“
+(
+™em
+->
+s¦_ùx
+);
+
+245 if(
+™em
+->
+ty³
+ =ð
+TCP_SSL_TYPE_SERVER
+)
+
+246 
+_tý_s¦_has_þ›Á
+ = 0;
+
+247 
+	`ä“
+(
+™em
+);
+
+251 
+™em
+->
+Ãxt
+ && i‹m->Ãxt->
+tý
+ !=�cp)
+
+252 
+™em
+ = i‹m->
+Ãxt
+;
+
+254 if(
+™em
+->
+Ãxt
+ =ð
+NULL
+){
+
+255  
+ERR_TCP_SSL_INVALID_CLIENTFD_DATA
+;
+
+258 
+tý_s¦_t
+ * 
+i
+ = 
+™em
+->
+Ãxt
+;
+
+259 
+™em
+->
+Ãxt
+ = 
+i
+->next;
+
+260 if(
+i
+->
+tý_pbuf
+ !ð
+NULL
+){
+
+261 
+	`pbuf_ä“
+(
+i
+->
+tý_pbuf
+);
+
+263 
+	`TCP_SSL_DEBUG
+("tý_s¦_ä“: %d\n", 
+i
+->
+fd
+);
+
+264 if(
+i
+->
+s¦
+)
+
+265 
+	`s¦_ä“
+(
+i
+->
+s¦
+);
+
+266 if(
+i
+->
+ty³
+ =ð
+TCP_SSL_TYPE_CLIENT
+ && i->
+s¦_ùx
+)
+
+267 
+	`s¦_ùx_ä“
+(
+i
+->
+s¦_ùx
+);
+
+268 if(
+i
+->
+ty³
+ =ð
+TCP_SSL_TYPE_SERVER
+)
+
+269 
+_tý_s¦_has_þ›Á
+ = 0;
+
+270 
+	`ä“
+(
+i
+);
+
+272 
+	}
+}
+
+274 #ifdeà
+AXTLS_2_0_0_SNDBUF
+
+
+275 
+	$tý_s¦_¢dbuf
+(
+tý_pcb
+ *
+tý
+){
+
+276 
+ex³ùed
+;
+
+277 
+avažabË
+;
+
+278 
+»suÉ
+ = -1;
+
+280 if(
+tý
+ =ð
+NULL
+) {
+
+281  
+»suÉ
+;
+
+283 
+tý_s¦_t
+ * 
+tý_s¦
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+284 if(!
+tý_s¦
+){
+
+285 
+	`TCP_SSL_DEBUG
+("tcp_ssl_sndbuf:�cp_ssl is NULL\n");
+
+286  
+»suÉ
+;
+
+288 
+avažabË
+ = 
+	`tý_¢dbuf
+(
+tý
+);
+
+289 if(!
+avažabË
+){
+
+290 
+	`TCP_SSL_DEBUG
+("tcp_ssl_sndbuf:�cp_sndbuf is zero\n");
+
+293 
+»suÉ
+ = 
+avažabË
+;
+
+294 (
+ex³ùed
+ = 
+	`s¦_ÿlcuÏ‹_wr™e_Ëngth
+(
+tý_s¦
+->
+s¦
+, 
+»suÉ
+)è> 
+avažabË
+){
+
+295 
+»suÉ
+ -ð(
+ex³ùed
+ - 
+avažabË
+) + 4;
+
+298 if(
+ex³ùed
+ > 0){
+
+300  
+»suÉ
+;
+
+304 
+	}
+}
+
+307 
+	$tý_s¦_wr™e
+(
+tý_pcb
+ *
+tý
+, 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+) {
+
+308 if(
+tý
+ =ð
+NULL
+) {
+
+311 
+tý_s¦_t
+ * 
+tý_s¦
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+312 if(!
+tý_s¦
+){
+
+313 
+	`TCP_SSL_DEBUG
+("tcp_ssl_write:�cp_ssl is NULL\n");
+
+316 
+tý_s¦
+->
+Ï¡_wr
+ = 0;
+
+318 #ifdeà
+AXTLS_2_0_0_SNDBUF
+
+
+319 
+ex³ùed_Ën
+ = 
+	`s¦_ÿlcuÏ‹_wr™e_Ëngth
+(
+tý_s¦
+->
+s¦
+, 
+Ën
+);
+
+320 
+avažabË_Ën
+ = 
+	`tý_¢dbuf
+(
+tý
+);
+
+321 if(
+ex³ùed_Ën
+ < 0 ||ƒx³ùed_ËÀ> 
+avažabË_Ën
+){
+
+322 
+	`TCP_SSL_DEBUG
+("tý_s¦_wr™e: d©¨wžÈnÙ f™! %u < %d(%u)\r\n", 
+avažabË_Ën
+, 
+ex³ùed_Ën
+, 
+Ën
+);
+
+327 
+rc
+ = 
+	`s¦_wr™e
+(
+tý_s¦
+->
+s¦
+, 
+d©a
+, 
+Ën
+);
+
+331 ià(
+rc
+ < 0){
+
+332 if(
+rc
+ !ð
+SSL_CLOSE_NOTIFY
+) {
+
+333 
+	`TCP_SSL_DEBUG
+("tý_s¦_wr™�”rÜ: %d\r\n", 
+rc
+);
+
+335  
+rc
+;
+
+338  
+tý_s¦
+->
+Ï¡_wr
+;
+
+339 
+	}
+}
+
+351 
+	$tý_s¦_»ad
+(
+tý_pcb
+ *
+tý
+, 
+pbuf
+ *
+p
+) {
+
+352 if(
+tý
+ =ð
+NULL
+) {
+
+355 
+tý_s¦_t
+* 
+fd_d©a
+ = 
+NULL
+;
+
+357 
+»ad_by‹s
+ = 0;
+
+358 
+tÙ®_by‹s
+ = 0;
+
+359 
+ušt8_t
+ *
+»ad_buf
+;
+
+361 
+fd_d©a
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+362 if(
+fd_d©a
+ =ð
+NULL
+) {
+
+363 
+	`TCP_SSL_DEBUG
+("tcp_ssl_read:�cp_ssl is NULL\n");
+
+364  
+ERR_TCP_SSL_INVALID_CLIENTFD_DATA
+;
+
+367 if(
+p
+ =ð
+NULL
+) {
+
+368 
+	`TCP_SSL_DEBUG
+("tcp_ssl_read:p == NULL\n");
+
+369  
+ERR_TCP_SSL_INVALID_DATA
+;
+
+374 
+fd_d©a
+->
+tý_pbuf
+ = 
+p
+;
+
+375 
+fd_d©a
+->
+pbuf_off£t
+ = 0;
+
+378 
+»ad_by‹s
+ = 
+	`s¦_»ad
+(
+fd_d©a
+->
+s¦
+, &
+»ad_buf
+);
+
+380 if(
+»ad_by‹s
+ < 
+SSL_OK
+) {
+
+381 if(
+»ad_by‹s
+ !ð
+SSL_CLOSE_NOTIFY
+) {
+
+382 
+	`TCP_SSL_DEBUG
+("tý_s¦_»ad:„—dƒ¼Ü: %d\n", 
+»ad_by‹s
+);
+
+384 
+tÙ®_by‹s
+ = 
+»ad_by‹s
+;
+
+386 } if(
+»ad_by‹s
+ > 0){
+
+387 if(
+fd_d©a
+->
+Ú_d©a
+){
+
+388 
+fd_d©a
+->
+	`Ú_d©a
+(fd_d©a->
+¬g
+, 
+tý
+, 
+»ad_buf
+, 
+»ad_by‹s
+);
+
+390 
+tÙ®_by‹s
++ð
+»ad_by‹s
+;
+
+392 if(
+fd_d©a
+->
+hªdshake
+ !ð
+SSL_OK
+) {
+
+393 
+fd_d©a
+->
+hªdshake
+ = 
+	`s¦_hªdshake_¡©us
+(fd_d©a->
+s¦
+);
+
+394 if(
+fd_d©a
+->
+hªdshake
+ =ð
+SSL_OK
+){
+
+396 if(
+fd_d©a
+->
+Ú_hªdshake
+)
+
+397 
+fd_d©a
+->
+	`Ú_hªdshake
+(fd_d©a->
+¬g
+, fd_d©a->
+tý
+, fd_d©a->
+s¦
+);
+
+398 } if(
+fd_d©a
+->
+hªdshake
+ !ð
+SSL_NOT_OK
+){
+
+399 
+	`TCP_SSL_DEBUG
+("tý_s¦_»ad: hªdshak�”rÜ: %d\n", 
+fd_d©a
+->
+hªdshake
+);
+
+400 if(
+fd_d©a
+->
+Ú_”rÜ
+)
+
+401 
+fd_d©a
+->
+	`Ú_”rÜ
+(fd_d©a->
+¬g
+, fd_d©a->
+tý
+, fd_d©a->
+hªdshake
+);
+
+402  
+fd_d©a
+->
+hªdshake
+;
+
+406 } 
+p
+->
+tÙ_Ën
+ - 
+fd_d©a
+->
+pbuf_off£t
+ > 0);
+
+408 
+	`tý_»cved
+(
+tý
+, 
+p
+->
+tÙ_Ën
+);
+
+409 
+fd_d©a
+->
+tý_pbuf
+ = 
+NULL
+;
+
+410 
+	`pbuf_ä“
+(
+p
+);
+
+412  
+tÙ®_by‹s
+;
+
+413 
+	}
+}
+
+415 
+SSL
+ * 
+	$tý_s¦_g‘_s¦
+(
+tý_pcb
+ *
+tý
+){
+
+416 
+tý_s¦_t
+ * 
+tý_s¦
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+417 if(
+tý_s¦
+){
+
+418  
+tý_s¦
+->
+s¦
+;
+
+420  
+NULL
+;
+
+421 
+	}
+}
+
+423 
+boÞ
+ 
+	$tý_s¦_has
+(
+tý_pcb
+ *
+tý
+){
+
+424  
+	`tý_s¦_g‘
+(
+tý
+è!ð
+NULL
+;
+
+425 
+	}
+}
+
+427 
+	$tý_s¦_is_£rv”
+(
+tý_pcb
+ *
+tý
+){
+
+428 
+tý_s¦_t
+ * 
+tý_s¦
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+429 if(
+tý_s¦
+){
+
+430  
+tý_s¦
+->
+ty³
+;
+
+433 
+	}
+}
+
+435 
+	$tý_s¦_¬g
+(
+tý_pcb
+ *
+tý
+, * 
+¬g
+){
+
+436 
+tý_s¦_t
+ * 
+™em
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+437 if(
+™em
+) {
+
+438 
+™em
+->
+¬g
+ =‡rg;
+
+440 
+	}
+}
+
+442 
+	$tý_s¦_d©a
+(
+tý_pcb
+ *
+tý
+, 
+tý_s¦_d©a_cb_t
+ 
+¬g
+){
+
+443 
+tý_s¦_t
+ * 
+™em
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+444 if(
+™em
+) {
+
+445 
+™em
+->
+Ú_d©a
+ = 
+¬g
+;
+
+447 
+	}
+}
+
+449 
+	$tý_s¦_hªdshake
+(
+tý_pcb
+ *
+tý
+, 
+tý_s¦_hªdshake_cb_t
+ 
+¬g
+){
+
+450 
+tý_s¦_t
+ * 
+™em
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+451 if(
+™em
+) {
+
+452 
+™em
+->
+Ú_hªdshake
+ = 
+¬g
+;
+
+454 
+	}
+}
+
+456 
+	$tý_s¦_”r
+(
+tý_pcb
+ *
+tý
+, 
+tý_s¦_”rÜ_cb_t
+ 
+¬g
+){
+
+457 
+tý_s¦_t
+ * 
+™em
+ = 
+	`tý_s¦_g‘
+(
+tý
+);
+
+458 if(
+™em
+) {
+
+459 
+™em
+->
+Ú_”rÜ
+ = 
+¬g
+;
+
+461 
+	}
+}
+
+463 
+tý_s¦_fže_cb_t
+ 
+	g_tý_s¦_fže_cb
+ = 
+NULL
+;
+
+464 * 
+	g_tý_s¦_fže_¬g
+ = 
+NULL
+;
+
+466 
+	$tý_s¦_fže
+(
+tý_s¦_fže_cb_t
+ 
+cb
+, * 
+¬g
+){
+
+467 
+_tý_s¦_fže_cb
+ = 
+cb
+;
+
+468 
+_tý_s¦_fže_¬g
+ = 
+¬g
+;
+
+469 
+	}
+}
+
+471 
+	$ax_g‘_fže
+(cÚ¡ *
+fž’ame
+, 
+ušt8_t
+ **
+buf
+) {
+
+473 if(
+_tý_s¦_fže_cb
+){
+
+474  
+	`_tý_s¦_fže_cb
+(
+_tý_s¦_fže_¬g
+, 
+fž’ame
+, 
+buf
+);
+
+476 *
+buf
+ = 0;
+
+478 
+	}
+}
+
+480 
+tý_s¦_t
+* 
+	$tý_s¦_g‘_by_fd
+(
+fd
+) {
+
+481 
+tý_s¦_t
+ * 
+™em
+ = 
+tý_s¦_¬¿y
+;
+
+482 
+™em
+ && i‹m->
+fd
+ != fd){
+
+483 
+™em
+ = i‹m->
+Ãxt
+;
+
+485  
+™em
+;
+
+486 
+	}
+}
+
+490 
+	$ax_pÜt_wr™e
+(
+fd
+, 
+ušt8_t
+ *
+d©a
+, 
+ušt16_t
+ 
+Ën
+) {
+
+491 
+tý_s¦_t
+ *
+fd_d©a
+ = 
+NULL
+;
+
+492 
+tý_Ën
+ = 0;
+
+493 
+”r_t
+ 
+”r
+ = 
+ERR_OK
+;
+
+497 
+fd_d©a
+ = 
+	`tý_s¦_g‘_by_fd
+(
+fd
+);
+
+498 if(
+fd_d©a
+ =ð
+NULL
+) {
+
+500  
+ERR_MEM
+;
+
+503 ià(
+d©a
+ =ð
+NULL
+ || 
+Ën
+ == 0) {
+
+507 ià(
+	`tý_¢dbuf
+(
+fd_d©a
+->
+tý
+è< 
+Ën
+) {
+
+508 
+tý_Ën
+ = 
+	`tý_¢dbuf
+(
+fd_d©a
+->
+tý
+);
+
+509 if(
+tý_Ën
+ == 0) {
+
+510 
+	`TCP_SSL_DEBUG
+("ax_pÜt_wr™e:�ý_¢dbuài z”o: %d\n", 
+Ën
+);
+
+511  
+ERR_MEM
+;
+
+514 
+tý_Ën
+ = 
+Ën
+;
+
+517 ià(
+tý_Ën
+ > 2 * 
+fd_d©a
+->
+tý
+->
+mss
+) {
+
+518 
+tý_Ën
+ = 2 * 
+fd_d©a
+->
+tý
+->
+mss
+;
+
+521 
+”r
+ = 
+	`tý_wr™e
+(
+fd_d©a
+->
+tý
+, 
+d©a
+, 
+tý_Ën
+, 
+TCP_WRITE_FLAG_COPY
+);
+
+522 if(
+”r
+ < 
+ERR_OK
+) {
+
+523 ià(
+”r
+ =ð
+ERR_MEM
+) {
+
+524 
+	`TCP_SSL_DEBUG
+("ax_pÜt_wr™e: NØmemÜy %d (%d)\n", 
+tý_Ën
+, 
+Ën
+);
+
+525  
+”r
+;
+
+527 
+	`TCP_SSL_DEBUG
+("ax_pÜt_wr™e:�ý_wr™�”rÜ: %d\n", 
+”r
+);
+
+528  
+”r
+;
+
+529 } ià(
+”r
+ =ð
+ERR_OK
+) {
+
+531 
+”r
+ = 
+	`tý_ou�ut
+(
+fd_d©a
+->
+tý
+);
+
+532 if(
+”r
+ !ð
+ERR_OK
+) {
+
+533 
+	`TCP_SSL_DEBUG
+("ax_pÜt_wr™e:�ý_ou�uˆ”r: %d\n", 
+”r
+);
+
+534  
+”r
+;
+
+538 
+fd_d©a
+->
+Ï¡_wr
+ +ð
+tý_Ën
+;
+
+540  
+tý_Ën
+;
+
+541 
+	}
+}
+
+546 
+	$ax_pÜt_»ad
+(
+fd
+, 
+ušt8_t
+ *
+d©a
+, 
+Ën
+) {
+
+547 
+tý_s¦_t
+ *
+fd_d©a
+ = 
+NULL
+;
+
+548 
+ušt8_t
+ *
+»ad_buf
+ = 
+NULL
+;
+
+549 
+ušt8_t
+ *
+´—d_buf
+ = 
+NULL
+;
+
+550 
+u16_t
+ 
+»cv_Ën
+ = 0;
+
+554 
+fd_d©a
+ = 
+	`tý_s¦_g‘_by_fd
+(
+fd
+);
+
+555 ià(
+fd_d©a
+ =ð
+NULL
+) {
+
+556 
+	`TCP_SSL_DEBUG
+("ax_pÜt_»ad:�ý_s¦[%d] i NULL\n", 
+fd
+);
+
+557  
+ERR_TCP_SSL_INVALID_CLIENTFD_DATA
+;
+
+560 if(
+fd_d©a
+->
+tý_pbuf
+ =ð
+NULL
+ || fd_d©a->tý_pbuf->
+tÙ_Ën
+ == 0) {
+
+564 
+»ad_buf
+ =(
+ušt8_t
+*)
+	`ÿÎoc
+(
+fd_d©a
+->
+tý_pbuf
+->
+Ën
+ + 1, (uint8_t));
+
+565 
+´—d_buf
+ = 
+»ad_buf
+;
+
+566 ià(
+´—d_buf
+ !ð
+NULL
+){
+
+567 
+»cv_Ën
+ = 
+	`pbuf_cÝy_·¹Ÿl
+(
+fd_d©a
+->
+tý_pbuf
+, 
+»ad_buf
+, 
+Ën
+, fd_d©a->
+pbuf_off£t
+);
+
+568 
+fd_d©a
+->
+pbuf_off£t
+ +ð
+»cv_Ën
+;
+
+571 ià(
+»cv_Ën
+ != 0) {
+
+572 
+	`memýy
+(
+d©a
+, 
+»ad_buf
+, 
+»cv_Ën
+);
+
+575 if(
+Ën
+ < 
+»cv_Ën
+) {
+
+576 
+	`TCP_SSL_DEBUG
+("ax_pÜt_»ad: gÙ %d by‹ mÜ�thªƒx³ùed\n", 
+»cv_Ën
+ - 
+Ën
+);
+
+579 
+	`ä“
+(
+´—d_buf
+);
+
+580 
+´—d_buf
+ = 
+NULL
+;
+
+582  
+»cv_Ën
+;
+
+583 
+	}
+}
+
+585 
+	$ax_wdt_ãed
+(è{
+	}
+}
+
+	@.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h
+
+26 #iâdeà
+LWIPR_COMPAT_H
+
+
+27 
+	#LWIPR_COMPAT_H
+
+
+	)
+
+29 
+	~<async_cÚfig.h
+>
+
+31 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+33 
+	~"lw�Ýts.h
+"
+
+37 #ià
+LWIP_RAW
+==1
+
+39 #ifdeà
+__ýlu¥lus
+
+
+43 
+	~<¡dboÞ.h
+>
+
+44 
+	~"šþude/s¦.h
+"
+
+46 
+	#ERR_TCP_SSL_INVALID_SSL
+ -101
+
+	)
+
+47 
+	#ERR_TCP_SSL_INVALID_TCP
+ -102
+
+	)
+
+48 
+	#ERR_TCP_SSL_INVALID_CLIENTFD
+ -103
+
+	)
+
+49 
+	#ERR_TCP_SSL_INVALID_CLIENTFD_DATA
+ -104
+
+	)
+
+50 
+	#ERR_TCP_SSL_INVALID_DATA
+ -105
+
+	)
+
+52 
+	#TCP_SSL_TYPE_CLIENT
+ 0
+
+	)
+
+53 
+	#TCP_SSL_TYPE_SERVER
+ 1
+
+	)
+
+55 
+	#tý_s¦_s¦_wr™e
+(
+A
+, 
+B
+, 
+C
+è
+	`tý_s¦_wr™e
+(A, B, C)
+
+	)
+
+56 
+	#tý_s¦_s¦_»ad
+(
+A
+, 
+B
+è
+	`tý_s¦_»ad
+(A, B)
+
+	)
+
+58 (* 
+tý_s¦_d©a_cb_t
+)(*
+	t¬g
+, 
+	ttý_pcb
+ *
+	ttý
+, 
+	tušt8_t
+ * 
+	td©a
+, 
+	tsize_t
+ 
+	tËn
+);
+
+59 (* 
+tý_s¦_hªdshake_cb_t
+)(*
+	t¬g
+, 
+	ttý_pcb
+ *
+	ttý
+, 
+	tSSL
+ *
+	ts¦
+);
+
+60 (* 
+tý_s¦_”rÜ_cb_t
+)(*
+	t¬g
+, 
+	ttý_pcb
+ *
+	ttý
+, 
+	tšt8_t
+ 
+	t”rÜ
+);
+
+61 (* 
+tý_s¦_fže_cb_t
+)(*
+	t¬g
+, cÚ¡ *
+	tfž’ame
+, 
+	tušt8_t
+ **
+	tbuf
+);
+
+63 
+ušt8_t
+ 
+tý_s¦_has_þ›Á
+();
+
+65 
+tý_s¦_Ãw_þ›Á
+(
+tý_pcb
+ *
+tý
+);
+
+67 
+SSL_CTX
+ * 
+tý_s¦_Ãw_£rv”_ùx
+(cÚ¡ *
+û¹
+, cÚ¡ *
+´iv©e_key_fže
+, cÚ¡ *
+·sswÜd
+);
+
+68 
+tý_s¦_Ãw_£rv”
+(
+tý_pcb
+ *
+tý
+, 
+SSL_CTX
+* 
+s¦_ùx
+);
+
+69 
+tý_s¦_is_£rv”
+(
+tý_pcb
+ *
+tý
+);
+
+71 
+tý_s¦_ä“
+(
+tý_pcb
+ *
+tý
+);
+
+72 
+tý_s¦_»ad
+(
+tý_pcb
+ *
+tý
+, 
+pbuf
+ *
+p
+);
+
+74 #ifdeà
+AXTLS_2_0_0_SNDBUF
+
+
+75 
+tý_s¦_¢dbuf
+(
+tý_pcb
+ *
+tý
+);
+
+78 
+tý_s¦_wr™e
+(
+tý_pcb
+ *
+tý
+, 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+80 
+tý_s¦_fže
+(
+tý_s¦_fže_cb_t
+ 
+cb
+, * 
+¬g
+);
+
+82 
+tý_s¦_¬g
+(
+tý_pcb
+ *
+tý
+, * 
+¬g
+);
+
+83 
+tý_s¦_d©a
+(
+tý_pcb
+ *
+tý
+, 
+tý_s¦_d©a_cb_t
+ 
+¬g
+);
+
+84 
+tý_s¦_hªdshake
+(
+tý_pcb
+ *
+tý
+, 
+tý_s¦_hªdshake_cb_t
+ 
+¬g
+);
+
+85 
+tý_s¦_”r
+(
+tý_pcb
+ *
+tý
+, 
+tý_s¦_”rÜ_cb_t
+ 
+¬g
+);
+
+87 
+SSL
+ * 
+tý_s¦_g‘_s¦
+(
+tý_pcb
+ *
+tý
+);
+
+88 
+boÞ
+ 
+tý_s¦_has
+(
+tý_pcb
+ *
+tý
+);
+
+90 #ifdeà
+__ýlu¥lus
+
+
+	@interface/node_modules/jest-haste-map/node_modules/fsevents/fsevents.cc
+
+6 
+	~"Çn.h
+"
+
+7 
+	~"uv.h
+"
+
+8 
+	~"v8.h
+"
+
+9 
+	~"CÜeFound©iÚ/CÜeFound©iÚ.h
+"
+
+10 
+	~"CÜeS”viûs/CÜeS”viûs.h
+"
+
+11 
+	~<io¡»am
+>
+
+12 
+	~<veùÜ
+>
+
+14 
+	~"¤c/¡Üage.cc
+"
+
+15 
+Çme¥aû
+ 
+	gf£
+ {
+
+16 þas 
+	cFSEv’ts
+ : 
+public
+ 
+Nª
+::
+ObjeùW¿p
+ {
+
+17 
+public
+:
+
+18 
+ex¶ic™
+ 
+FSEv’ts
+(cÚ¡ *
+·th
+);
+
+19 ~
+FSEv’ts
+();
+
+21 
+uv_mu‹x_t
+ 
+	gmu‹x
+;
+
+24 
+uv_async_t
+ 
+	gasync
+;
+
+25 
+asyncS�¹
+();
+
+26 
+asyncTrigg”
+();
+
+27 
+asyncStÝ
+();
+
+30 
+uv_th»ad_t
+ 
+	gth»ad
+;
+
+31 
+CFRunLoÝRef
+ 
+	gth»adloÝ
+;
+
+32 
+th»adS�¹
+();
+
+33 
+th»adRun
+(*
+ùx
+);
+
+34 
+th»adStÝ
+();
+
+37 
+	gNª
+::
+AsyncResourû
+ 
+async_»sourû
+;
+
+38 
+em™Ev’t
+(cÚ¡ *
+·th
+, 
+UIÁ32
+ 
+æags
+, 
+UIÁ64
+ 
+id
+);
+
+41 
+CFA¼ayRef
+ 
+	g·ths
+;
+
+42 
+	g¡d
+::
+veùÜ
+<
+f£_ev’t
+*> 
+ev’ts
+;
+
+43 
+In™Ÿlize
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+expÜts
+);
+
+46 
+NAN_METHOD
+(
+New
+);
+
+47 
+NAN_METHOD
+(
+StÝ
+);
+
+48 
+NAN_METHOD
+(
+S�¹
+);
+
+53 
+usšg
+ 
+Çme¥aû
+ 
+	gf£
+;
+
+55 
+	gFSEv’ts
+::
+	$FSEv’ts
+(cÚ¡ *
+·th
+)
+
+56 : 
+	`async_»sourû
+("fsevents:FSEvents") {
+
+57 
+CFSŒšgRef
+ 
+dœs
+[] = { 
+	`CFSŒšgC»©eW™hCSŒšg
+(
+NULL
+, 
+·th
+, 
+kCFSŒšgEncodšgUTF8
+) };
+
+58 
+·ths
+ = 
+	`CFA¼ayC»©e
+(
+NULL
+, (cÚ¡ **)&
+dœs
+, 1, NULL);
+
+59 
+th»adloÝ
+ = 
+NULL
+;
+
+60 ià(
+	`uv_mu‹x_š™
+(&
+mu‹x
+)è
+	`abÜt
+();
+
+61 
+	}
+}
+
+62 
+	gFSEv’ts
+::~
+	$FSEv’ts
+() {
+
+63 
+	`CFR–—£
+(
+·ths
+);
+
+64 
+	`uv_mu‹x_de¡roy
+(&
+mu‹x
+);
+
+65 
+	}
+}
+
+67 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+
+
+68 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+ 0x00000010
+
+	)
+
+71 
+	~"¤c/async.cc
+"
+
+72 
+	~"¤c/th»ad.cc
+"
+
+73 
+	~"¤c/cÚ¡ªts.cc
+"
+
+74 
+	~"¤c/m‘hods.cc
+"
+
+76 
+	gFSEv’ts
+::
+In™Ÿlize
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+expÜts
+) {
+
+77 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = 
+expÜts
+->
+G‘IsÞ©e
+();
+
+78 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+79 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚTem¶©e
+> 
+�l
+ = 
+Nª
+::
+New
+<v8::FunùiÚTem¶©e>(
+FSEv’ts
+::New);
+
+80 
+	g�l
+->
+S‘CÏssName
+(
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("FSEv’ts").
+ToLoÿlChecked
+());
+
+81 
+	g�l
+->
+In¡ªûTem¶©e
+()->
+S‘IÁ”ÇlF›ldCouÁ
+(1);
+
+82 
+	gNª
+::
+S‘PrÙÙy³Tem¶©e
+(
+�l
+, "¡¬t", 
+Nª
+::
+New
+<
+v8
+::
+FunùiÚTem¶©e
+>(
+FSEv’ts
+::
+S�¹
+));
+
+83 
+	gNª
+::
+S‘PrÙÙy³Tem¶©e
+(
+�l
+, "¡Ý", 
+Nª
+::
+New
+<
+v8
+::
+FunùiÚTem¶©e
+>(
+FSEv’ts
+::
+StÝ
+));
+
+84 
+	gNª
+::
+S‘
+(
+expÜts
+, 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("CÚ¡ªts").
+ToLoÿlChecked
+(), 
+CÚ¡ªts
+());
+
+85 
+	gNª
+::
+S‘
+(
+expÜts
+, 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("FSEv’ts").
+ToLoÿlChecked
+(), 
+�l
+->
+G‘FunùiÚ
+(
+cÚ‹xt
+).ToLocalChecked());
+
+88 
+NODE_MODULE
+(
+f£
+, 
+FSEv’ts
+::
+In™Ÿlize
+)
+
+	@interface/node_modules/jest-haste-map/node_modules/fsevents/src/async.cc
+
+7 
+	$async_´Ýag©e
+(
+uv_async_t
+ *
+async
+) {
+
+8 ià(!
+async
+->
+d©a
+) ;
+
+9 
+FSEv’ts
+ *
+f£
+ = (FSEv’t *)
+async
+->
+d©a
+;
+
+10 
+CFIndex
+ 
+idx
+, 
+út
+;
+
+11 
+f£_ev’t
+ *
+ev’t
+;
+
+12 
+·thbuf
+[1024];
+
+13 cÚ¡ *
+·th±r
+ = 
+NULL
+;
+
+14 
+	`uv_mu‹x_lock
+(&
+f£
+->
+mu‹x
+);
+
+15 
+út
+ = 
+f£
+->
+ev’ts
+.
+	`size
+();
+
+16 
+idx
+=0; idx<
+út
+; idx++) {
+
+17 
+ev’t
+ = 
+f£
+->
+ev’ts
+.
+	`©
+(
+idx
+);
+
+18 ià(
+ev’t
+ =ð
+NULL
+) ;
+
+19 
+·th±r
+ = 
+	`CFSŒšgG‘CSŒšgPŒ
+(
+ev’t
+->
+·th
+, 
+kCFSŒšgEncodšgUTF8
+);
+
+20 ià(!
+·th±r
+è
+	`CFSŒšgG‘CSŒšg
+(
+ev’t
+->
+·th
+, 
+·thbuf
+, 1024, 
+kCFSŒšgEncodšgUTF8
+);
+
+21 
+f£
+->
+	`em™Ev’t
+(
+·th±r
+ ?…©h±¸: 
+·thbuf
+, 
+ev’t
+->
+æags
+,ƒv’t->
+id
+);
+
+22 
+d–‘e
+ 
+ev’t
+;
+
+24 ià(
+út
+>0è
+f£
+->
+ev’ts
+.
+	`þ—r
+();
+
+25 
+	`uv_mu‹x_uÆock
+(&
+f£
+->
+mu‹x
+);
+
+26 
+	}
+}
+
+28 
+	gFSEv’ts
+::
+	$asyncS�¹
+() {
+
+29 ià(
+async
+.
+d©a
+ =ð
+this
+) ;
+
+30 
+async
+.
+d©a
+ = 
+this
+;
+
+31 
+	`uv_async_š™
+(
+	`uv_deçuÉ_loÝ
+(), &
+async
+, (
+uv_async_cb
+è
+async_´Ýag©e
+);
+
+32 
+	}
+}
+
+34 
+	gFSEv’ts
+::
+	$asyncTrigg”
+() {
+
+35 ià(
+async
+.
+d©a
+ !ð
+this
+) ;
+
+36 
+	`uv_async_£nd
+(&
+async
+);
+
+37 
+	}
+}
+
+39 
+	gFSEv’ts
+::
+	$asyncStÝ
+() {
+
+40 ià(
+async
+.
+d©a
+ !ð
+this
+) ;
+
+41 
+async
+.
+d©a
+ = 
+NULL
+;
+
+42 
+	`uv_þo£
+((
+uv_hªdË_t
+ *è&
+async
+, 
+NULL
+);
+
+43 
+	}
+}
+
+	@interface/node_modules/jest-haste-map/node_modules/fsevents/src/constants.cc
+
+7 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgNÚe
+
+
+8 
+	#kFSEv’tSŒ—mEv’tFÏgNÚe
+ 0x00000000
+
+	)
+
+11 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+
+
+12 
+	#kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+ 0x00000001
+
+	)
+
+15 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+
+
+16 
+	#kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+ 0x00000002
+
+	)
+
+19 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+
+
+20 
+	#kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+ 0x00000004
+
+	)
+
+23 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+
+
+24 
+	#kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+ 0x00000008
+
+	)
+
+27 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+
+
+28 
+	#kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+ 0x00000010
+
+	)
+
+31 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+
+
+32 
+	#kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+ 0x00000020
+
+	)
+
+35 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgMouÁ
+
+
+36 
+	#kFSEv’tSŒ—mEv’tFÏgMouÁ
+ 0x00000040
+
+	)
+
+39 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+
+
+40 
+	#kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+ 0x00000080
+
+	)
+
+43 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+
+
+44 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+ 0x00000100
+
+	)
+
+47 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+
+
+48 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+ 0x00000200
+
+	)
+
+51 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+
+
+52 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+ 0x00000400
+
+	)
+
+55 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+
+
+56 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+ 0x00000800
+
+	)
+
+59 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+
+
+60 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+ 0x00001000
+
+	)
+
+63 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+
+
+64 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+ 0x00002000
+
+	)
+
+67 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+
+
+68 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+ 0x00004000
+
+	)
+
+71 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+
+
+72 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+ 0x00008000
+
+	)
+
+75 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+
+
+76 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+ 0x00010000
+
+	)
+
+79 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+
+
+80 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+ 0x00020000
+
+	)
+
+83 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+
+
+84 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+ 0x00040000
+
+	)
+
+87 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$CÚ¡ªts
+() {
+
+88 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+ = 
+Nª
+::
+New
+<v8::Object>();
+
+89 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgNÚe").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgNÚe
+));
+
+90 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+));
+
+91 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+));
+
+92 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+));
+
+93 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+));
+
+94 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+));
+
+95 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgRoÙChªged").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+));
+
+96 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgMouÁ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgMouÁ
+));
+
+97 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgUnmouÁ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+));
+
+98 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+));
+
+99 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mRemoved").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+));
+
+100 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+));
+
+101 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mR’amed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+));
+
+102 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mModif›d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+));
+
+103 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+));
+
+104 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+));
+
+105 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+));
+
+106 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsFže").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+));
+
+107 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+));
+
+108 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+));
+
+109  
+objeù
+;
+
+110 
+	}
+}
+
+	@interface/node_modules/jest-haste-map/node_modules/fsevents/src/methods.cc
+
+6 
+	gFSEv’ts
+::
+	$em™Ev’t
+(cÚ¡ *
+·th
+, 
+UIÁ32
+ 
+æags
+, 
+UIÁ64
+ 
+id
+) {
+
+7 
+Nª
+::
+HªdËScÝe
+ 
+hªdË_scÝe
+;
+
+8 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+ = 
+	`hªdË
+();
+
+9 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+key
+ = 
+Nª
+::
+New
+<v8::
+SŒšg
+>("hªdËr").
+	`ToLoÿlChecked
+();
+
+10 
+Nª
+::
+C®lback
+ 
+	`hªdËr
+(Nª::
+To
+<
+v8
+::
+FunùiÚ
+>(Nª::
+	`G‘
+(
+objeù
+, 
+key
+).
+	`ToLoÿlChecked
+()).ToLocalChecked());
+
+11 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[] = {
+
+12 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>(
+·th
+).
+	`ToLoÿlChecked
+(),
+
+13 
+Nª
+::
+New
+<
+v8
+::
+Numb”
+>(
+æags
+),
+
+14 
+Nª
+::
+New
+<
+v8
+::
+Numb”
+>(
+id
+)
+
+16 
+hªdËr
+.
+	`C®l
+(3, 
+¬gv
+, &
+async_»sourû
+);
+
+17 
+	}
+}
+
+19 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+New
+) {
+
+20 
+Nª
+::
+Utf8SŒšg
+ 
+	`·th
+(
+šfo
+[0]);
+
+22 
+FSEv’ts
+ *
+f£
+ = 
+Ãw
+ 
+	`FSEv’ts
+(*
+·th
+);
+
+23 
+f£
+->
+	`W¿p
+(
+šfo
+.
+	`This
+());
+
+24 
+Nª
+::
+	`S‘
+(
+šfo
+.
+	`This
+(), Nª::
+New
+<
+v8
+::
+SŒšg
+>("hªdËr").
+	`ToLoÿlChecked
+(), info[1]);
+
+26 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+27 
+	}
+}
+
+29 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+StÝ
+) {
+
+30 
+FSEv’ts
+* 
+f£
+ = 
+Nª
+::
+ObjeùW¿p
+::
+Unw¿p
+<FSEv’ts>(
+šfo
+.
+	`This
+());
+
+32 
+f£
+->
+	`th»adStÝ
+();
+
+33 
+f£
+->
+	`asyncStÝ
+();
+
+35 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+36 
+	}
+}
+
+38 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+S�¹
+) {
+
+39 
+FSEv’ts
+* 
+f£
+ = 
+Nª
+::
+ObjeùW¿p
+::
+Unw¿p
+<FSEv’ts>(
+šfo
+.
+	`This
+());
+
+40 
+f£
+->
+	`asyncS�¹
+();
+
+41 
+f£
+->
+	`th»adS�¹
+();
+
+43 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+44 
+	}
+}
+
+	@interface/node_modules/jest-haste-map/node_modules/fsevents/src/storage.cc
+
+6 
+	sf£_ev’t
+ {
+
+7 
+UIÁ64
+ 
+	mid
+;
+
+8 
+UIÁ32
+ 
+	mæags
+;
+
+9 
+CFSŒšgRef
+ 
+	m·th
+;
+
+11 
+f£_ev’t
+(
+CFSŒšgRef
+ 
+ev’tP©h
+, 
+UIÁ32
+ 
+ev’tFÏg
+, 
+UIÁ64
+ 
+ev’tId
+) {
+
+12 
+	mthis
+->
+	m·th
+ = 
+ev’tP©h
+;
+
+13 
+	mthis
+->
+	mæags
+ = 
+ev’tFÏg
+;
+
+14 
+	mthis
+->
+	mid
+ = 
+ev’tId
+;
+
+15 ià(
+	mthis
+->
+	m·th
+ !ð
+NULL
+)
+
+16 
+CFR‘aš
+(
+this
+->
+·th
+);
+
+19 ~
+f£_ev’t
+() {
+
+20 ià(
+	mthis
+->
+	m·th
+ !ð
+NULL
+)
+
+21 
+CFR–—£
+(
+this
+->
+·th
+);
+
+24 
+	m´iv©e
+:
+
+25 
+f£_ev’t
+(const fse_event&);
+
+26 
+	mÝ”©Ü
+=(cÚ¡ 
+f£_ev’t
+&);
+
+	@interface/node_modules/jest-haste-map/node_modules/fsevents/src/thread.cc
+
+7 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgNÚe
+
+
+8 
+	#kFSEv’tSŒ—mC»©eFÏgNÚe
+ 0x00000000
+
+	)
+
+11 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+
+
+12 
+	#kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+ 0x00000001
+
+	)
+
+15 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgNoDeãr
+
+
+16 
+	#kFSEv’tSŒ—mC»©eFÏgNoDeãr
+ 0x00000002
+
+	)
+
+19 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+
+
+20 
+	#kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+ 0x00000004
+
+	)
+
+23 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgIgnÜeS–f
+
+
+24 
+	#kFSEv’tSŒ—mC»©eFÏgIgnÜeS–f
+ 0x00000008
+
+	)
+
+27 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+
+
+28 
+	#kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+ 0x00000010
+
+	)
+
+31 
+	gFSEv’ts
+::
+	$th»adS�¹
+() {
+
+32 ià(
+th»adloÝ
+) ;
+
+33 ià(
+	`uv_th»ad_ü—‹
+(&
+th»ad
+, &
+FSEv’ts
+::
+th»adRun
+, 
+this
+)è
+	`abÜt
+();
+
+34 
+	}
+}
+
+36 
+	$HªdËSŒ—mEv’ts
+(
+CÚ¡FSEv’tSŒ—mRef
+ 
+¡»am
+, *
+ùx
+, 
+size_t
+ 
+numEv’ts
+, *
+ev’tP©hs
+, cÚ¡ 
+FSEv’tSŒ—mEv’tFÏgs
+ 
+ev’tFÏgs
+[], cÚ¡ 
+FSEv’tSŒ—mEv’tId
+ 
+ev’tIds
+[]) {
+
+37 
+FSEv’ts
+ * 
+f£
+ = (FSEv’t *)
+ùx
+;
+
+38 
+size_t
+ 
+idx
+;
+
+39 
+	`uv_mu‹x_lock
+(&
+f£
+->
+mu‹x
+);
+
+40 
+idx
+=0; idx < 
+numEv’ts
+; idx++) {
+
+41 
+f£_ev’t
+ *
+ev’t
+ = 
+Ãw
+ 
+	`f£_ev’t
+(
+
+42 (
+CFSŒšgRef
+)
+	`CFA¼ayG‘V®ueAtIndex
+((
+CFA¼ayRef
+)
+ev’tP©hs
+, 
+idx
+),
+
+43 
+ev’tFÏgs
+[
+idx
+],
+
+44 
+ev’tIds
+[
+idx
+]
+
+46 
+f£
+->
+ev’ts
+.
+	`push_back
+(
+ev’t
+);
+
+48 
+f£
+->
+	`asyncTrigg”
+();
+
+49 
+	`uv_mu‹x_uÆock
+(&
+f£
+->
+mu‹x
+);
+
+50 
+	}
+}
+
+52 
+	gFSEv’ts
+::
+	$th»adRun
+(*
+ùx
+) {
+
+53 
+FSEv’ts
+ *
+f£
+ = (FSEv’ts*)
+ùx
+;
+
+54 
+FSEv’tSŒ—mCÚ‹xt
+ 
+cÚ‹xt
+ = { 0, 
+ùx
+, 
+NULL
+, NULL, NULL };
+
+55 
+f£
+->
+th»adloÝ
+ = 
+	`CFRunLoÝG‘Cu¼’t
+();
+
+56 
+FSEv’tSŒ—mRef
+ 
+¡»am
+ = 
+	`FSEv’tSŒ—mC»©e
+(
+NULL
+, &
+HªdËSŒ—mEv’ts
+, &
+cÚ‹xt
+, 
+f£
+->
+·ths
+, 
+kFSEv’tSŒ—mEv’tIdSšûNow
+, (
+CFAbsÞu‹Time
+è0.1, 
+kFSEv’tSŒ—mC»©eFÏgNÚe
+ | 
+kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+ | 
+kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+ | 
+kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+);
+
+57 
+	`FSEv’tSŒ—mScheduËW™hRunLoÝ
+(
+¡»am
+, 
+f£
+->
+th»adloÝ
+, 
+kCFRunLoÝDeçuÉMode
+);
+
+58 
+	`FSEv’tSŒ—mS�¹
+(
+¡»am
+);
+
+59 
+	`CFRunLoÝRun
+();
+
+60 
+	`FSEv’tSŒ—mStÝ
+(
+¡»am
+);
+
+61 
+	`FSEv’tSŒ—mUnscheduËFromRunLoÝ
+(
+¡»am
+, 
+f£
+->
+th»adloÝ
+, 
+kCFRunLoÝDeçuÉMode
+);
+
+62 
+	`FSEv’tSŒ—mInv®id©e
+(
+¡»am
+);
+
+63 
+	`FSEv’tSŒ—mR–—£
+(
+¡»am
+);
+
+64 
+f£
+->
+th»adloÝ
+ = 
+NULL
+;
+
+65 
+	}
+}
+
+67 
+	gFSEv’ts
+::
+	$th»adStÝ
+() {
+
+68 ià(!
+th»adloÝ
+) ;
+
+69 
+	`CFRunLoÝStÝ
+(
+th»adloÝ
+);
+
+70 ià(
+	`uv_th»ad_još
+(&
+th»ad
+)è
+	`abÜt
+();
+
+71 
+	}
+}
+
+	@interface/node_modules/nan/nan.h
+
+21 #iâdeà
+NAN_H_
+
+
+22 
+	#NAN_H_
+
+
+	)
+
+24 
+	~<node_v”siÚ.h
+>
+
+26 
+	#NODE_0_10_MODULE_VERSION
+ 11
+
+	)
+
+27 
+	#NODE_0_12_MODULE_VERSION
+ 14
+
+	)
+
+28 
+	#ATOM_0_21_MODULE_VERSION
+ 41
+
+	)
+
+29 
+	#IOJS_1_0_MODULE_VERSION
+ 42
+
+	)
+
+30 
+	#IOJS_1_1_MODULE_VERSION
+ 43
+
+	)
+
+31 
+	#IOJS_2_0_MODULE_VERSION
+ 44
+
+	)
+
+32 
+	#IOJS_3_0_MODULE_VERSION
+ 45
+
+	)
+
+33 
+	#NODE_4_0_MODULE_VERSION
+ 46
+
+	)
+
+34 
+	#NODE_5_0_MODULE_VERSION
+ 47
+
+	)
+
+35 
+	#NODE_6_0_MODULE_VERSION
+ 48
+
+	)
+
+36 
+	#NODE_7_0_MODULE_VERSION
+ 51
+
+	)
+
+37 
+	#NODE_8_0_MODULE_VERSION
+ 57
+
+	)
+
+38 
+	#NODE_9_0_MODULE_VERSION
+ 59
+
+	)
+
+39 
+	#NODE_10_0_MODULE_VERSION
+ 64
+
+	)
+
+40 
+	#NODE_11_0_MODULE_VERSION
+ 67
+
+	)
+
+41 
+	#NODE_12_0_MODULE_VERSION
+ 72
+
+	)
+
+42 
+	#NODE_13_0_MODULE_VERSION
+ 79
+
+	)
+
+43 
+	#NODE_14_0_MODULE_VERSION
+ 83
+
+	)
+
+45 #ifdeà
+_MSC_VER
+
+
+46 
+	#NAN_HAS_CPLUSPLUS_11
+ (
+_MSC_VER
+ >ð1800)
+
+	)
+
+48 
+	#NAN_HAS_CPLUSPLUS_11
+ (
+__ýlu¥lus
+ >ð201103L)
+
+	)
+
+51 #ià
+NODE_MODULE_VERSION
+ >ð
+IOJS_3_0_MODULE_VERSION
+ && !
+NAN_HAS_CPLUSPLUS_11
+
+
+52 #”rÜ 
+This
+ 
+v”siÚ
+ 
+of
+ 
+node
+/
+NAN
+/
+v8
+ 
+»quœes
+ 
+a
+ 
+C
+++11 
+compž”
+
+
+55 
+	~<uv.h
+>
+
+56 
+	~<node.h
+>
+
+57 
+	~<node_bufãr.h
+>
+
+58 
+	~<node_objeù_w¿p.h
+>
+
+59 
+	~<®gÜ™hm
+>
+
+60 
+	~<c¡ršg
+>
+
+61 
+	~<þim™s
+>
+
+62 
+	~<c¡dlib
+>
+
+63 
+	~<utž™y
+>
+
+64 #ià
+defšed
+(
+_MSC_VER
+)
+
+65 #´agm¨
+w¬nšg
+Ð
+push
+ )
+
+66 #´agm¨
+w¬nšg
+Ð
+di§bË
+ : 4530 )
+
+67 
+	~<queue
+>
+
+68 
+	~<¡ršg
+>
+
+69 
+	~<veùÜ
+>
+
+70 #´agm¨
+w¬nšg
+Ð
+pÝ
+ )
+
+72 
+	~<queue
+>
+
+73 
+	~<¡ršg
+>
+
+74 
+	~<veùÜ
+>
+
+78 #ifdeà
+UV_VERSION_MAJOR
+
+
+79 #iâdeà
+UV_VERSION_PATCH
+
+
+80 
+	#UV_VERSION_PATCH
+ 0
+
+	)
+
+82 
+	#NAUV_UVVERSION
+ ((
+UV_VERSION_MAJOR
+ << 16) | \
+
+83 (
+UV_VERSION_MINOR
+ << 8) | \
+
+84 (
+UV_VERSION_PATCH
+))
+
+	)
+
+86 
+	#NAUV_UVVERSION
+ 0x000b00
+
+	)
+
+89 #ià
+NAUV_UVVERSION
+ < 0x000b0b
+
+90 #ifdeà
+WIN32
+
+
+91 
+	~<wšdows.h
+>
+
+93 
+	~<±h»ad.h
+>
+
+97 
+Çme¥aû
+ 
+	gNª
+ {
+
+99 
+	#NAN_CONCAT
+(
+a
+, 
+b
+è
+	`NAN_CONCAT_HELPER
+×, b)
+
+	)
+
+100 
+	#NAN_CONCAT_HELPER
+(
+a
+, 
+b
+èa##
+	)
+b
+
+102 
+	#NAN_INLINE
+ 
+šlše
+
+
+103 
+
+	)
+
+104 #ià
+defšed
+(
+__GNUC__
+) && \
+
+105 !(
+defšed
+(
+V8_DISABLE_DEPRECATIONS
+è&& 
+	gV8_DISABLE_DEPRECATIONS
+)
+
+106 
+	#NAN_DEPRECATED
+ 
+	`__©Œibu‹__
+((
+d•»ÿ‹d
+))
+
+	)
+
+107 #–ià
+defšed
+(
+_MSC_VER
+) && \
+
+108 !(
+defšed
+(
+V8_DISABLE_DEPRECATIONS
+è&& 
+	gV8_DISABLE_DEPRECATIONS
+)
+
+109 
+	#NAN_DEPRECATED
+ 
+	`__deþ¥ec
+(
+d•»ÿ‹d
+)
+
+	)
+
+111 
+	#NAN_DEPRECATED
+
+
+	)
+
+114 #ià
+NAN_HAS_CPLUSPLUS_11
+
+
+115 
+	#NAN_DISALLOW_ASSIGN
+(
+CLASS
+è
+Ý”©Ü
+=(cÚ¡ CLASS&èð
+d–‘e
+;
+
+	)
+
+116 
+	#NAN_DISALLOW_COPY
+(
+CLASS
+è
+	`CLASS
+(cÚ¡ CLASS&èð
+d–‘e
+;
+
+	)
+
+117 
+	#NAN_DISALLOW_MOVE
+(
+CLASS
+) \
+
+118 
+	`CLASS
+(
+CLASS
+&&èð
+d–‘e
+; \
+
+119 
+Ý”©Ü
+=(
+CLASS
+&&èð
+d–‘e
+;
+
+	)
+
+121 
+	#NAN_DISALLOW_ASSIGN
+(
+CLASS
+è
+Ý”©Ü
+=(cÚ¡ CLASS&);
+
+	)
+
+122 
+	#NAN_DISALLOW_COPY
+(
+CLASS
+è
+	`CLASS
+(cÚ¡ CLASS&);
+
+	)
+
+123 
+	#NAN_DISALLOW_MOVE
+(
+CLASS
+)
+
+	)
+
+126 
+	#NAN_DISALLOW_ASSIGN_COPY
+(
+CLASS
+) \
+
+127 
+	`NAN_DISALLOW_ASSIGN
+(
+CLASS
+) \
+
+128 
+	`NAN_DISALLOW_COPY
+(
+CLASS
+)
+
+	)
+
+130 
+	#NAN_DISALLOW_ASSIGN_MOVE
+(
+CLASS
+) \
+
+131 
+	`NAN_DISALLOW_ASSIGN
+(
+CLASS
+) \
+
+132 
+	`NAN_DISALLOW_MOVE
+(
+CLASS
+)
+
+	)
+
+134 
+	#NAN_DISALLOW_COPY_MOVE
+(
+CLASS
+) \
+
+135 
+	`NAN_DISALLOW_COPY
+(
+CLASS
+) \
+
+136 
+	`NAN_DISALLOW_MOVE
+(
+CLASS
+)
+
+	)
+
+138 
+	#NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+CLASS
+) \
+
+139 
+	`NAN_DISALLOW_ASSIGN
+(
+CLASS
+) \
+
+140 
+	`NAN_DISALLOW_COPY
+(
+CLASS
+) \
+
+141 
+	`NAN_DISALLOW_MOVE
+(
+CLASS
+)
+
+	)
+
+143 
+	#TYPE_CHECK
+(
+T
+, 
+S
+) \
+
+144 
+çl£
+) { \
+
+145 *(
+¡©ic_ÿ¡
+<
+T
+ *vÞ©ž�*>(0)èð¡©ic_ÿ¡<
+S
+*>(0); \
+
+146 }
+
+	)
+
+150 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+151 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tObjeù
+> 
+	tADDON_REGISTER_FUNCTION_ARGS_TYPE
+;
+
+153 
+	gv8
+::
+	tLoÿl
+<
+	tv8
+::
+	tObjeù
+> 
+	tADDON_REGISTER_FUNCTION_ARGS_TYPE
+;
+
+156 
+	#NAN_MODULE_INIT
+(
+Çme
+) \
+
+157 
+	`Çme
+(
+Nª
+::
+ADDON_REGISTER_FUNCTION_ARGS_TYPE
+ 
+�rg‘
+)
+
+	)
+
+159 #ià
+NODE_MAJOR_VERSION
+ >= 10 || \
+
+160 
+	gNODE_MAJOR_VERSION
+ =ð9 && 
+NODE_MINOR_VERSION
+ >= 3
+
+161 
+	#NAN_MODULE_WORKER_ENABLED
+(
+moduË_Çme
+, 
+»gi¡¿tiÚ
+) \
+
+162 
"C" 
+NODE_MODULE_EXPORT
+ \
+
+163 
+	`NAN_CONCAT
+(
+node_»gi¡”_moduË_v
+, 
+NODE_MODULE_VERSION
+)( \
+
+164 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+expÜts
+, v8::Loÿl<v8::
+V®ue
+> 
+moduË
+, \
+
+165 
+v8
+::
+Loÿl
+<v8::
+CÚ‹xt
+> 
+cÚ‹xt
+) \
+
+167 
+	`»gi¡¿tiÚ
+(
+expÜts
+); \
+
+168 }
+
+	)
+
+170 
+	#NAN_MODULE_WORKER_ENABLED
+(
+moduË_Çme
+, 
+»gi¡¿tiÚ
+) \
+
+171 
+	`NODE_MODULE
+(
+moduË_Çme
+, 
+»gi¡¿tiÚ
+)
+
+	)
+
+176 
+	~"Çn_ÿÎbacks.h
+"
+
+180 #ià(
+NODE_MODULE_VERSION
+ < 
+NODE_0_12_MODULE_VERSION
+)
+
+181 
+v8
+::
+	tSü�t
+ 
+	tUnboundSü�t
+;
+
+182 
+	gv8
+::
+	tSü�t
+ 
+	tBoundSü�t
+;
+
+184 
+	gv8
+::
+	tUnboundSü�t
+ UnboundScript;
+
+185 
+	gv8
+::
+	tSü�t
+ 
+	tBoundSü�t
+;
+
+188 #ià(
+NODE_MODULE_VERSION
+ < 
+ATOM_0_21_MODULE_VERSION
+)
+
+189 
+	gv8
+::
+	tSŒšg
+::
+	tEx‹º®AsciiSŒšgResourû
+
+
+190 
+	tEx‹º®OÃBy‹SŒšgResourû
+;
+
+192 
+	gv8
+::
+	tSŒšg
+::
+	tEx‹º®OÃBy‹SŒšgResourû
+
+
+193 
+	tEx‹º®OÃBy‹SŒšgResourû
+;
+
+196 #ià(
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+)
+
+197 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+198 
+þass
+ 
+	gNÚCÝyabËP”si¡’tT¿™s
+ :
+
+199 
+public
+ 
+v8
+::
+NÚCÝyabËP”si¡’tT¿™s
+<
+T
+> {};
+
+200 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+201 
+þass
+ 
+	gCÝyabËP”si¡’tT¿™s
+ :
+
+202 
+public
+ 
+v8
+::
+CÝyabËP”si¡’tT¿™s
+<
+T
+> {};
+
+204 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+205 
+þass
+ 
+	gP”si¡’tBa£
+ :
+
+206 
+public
+ 
+v8
+::
+P”si¡’tBa£
+<
+T
+> {};
+
+208 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+ = 
+v8
+::
+NÚCÝyabËP”si¡’tT¿™s
+<
+T
+> >
+
+209 
+þass
+ 
+P”si¡’t
+;
+
+211 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+þass
+ 
+	gNÚCÝyabËP”si¡’tT¿™s
+;
+
+212 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+þass
+ 
+	gP”si¡’tBa£
+;
+
+213 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gP
+> 
+þass
+ 
+	gW—kC®lbackD©a
+;
+
+214 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+ = 
+NÚCÝyabËP”si¡’tT¿™s
+<
+T
+> >
+
+215 
+þass
+ 
+P”si¡’t
+;
+
+218 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+219 þas 
+	cMaybe
+ {
+
+220 
+	gpublic
+:
+
+221 
+šlše
+ 
+boÞ
+ 
+IsNÙhšg
+(ècÚ¡ {  !
+has_v®ue_
+; }
+
+222 
+šlše
+ 
+boÞ
+ 
+IsJu¡
+(ècÚ¡ {  
+	ghas_v®ue_
+; }
+
+224 
+šlše
+ 
+T
+ 
+ToChecked
+(ècÚ¡ {  
+FromJu¡
+(); }
+
+225 
+šlše
+ 
+Check
+(ècÚ¡ { 
+FromJu¡
+(); }
+
+227 
+šlše
+ 
+boÞ
+ 
+To
+(
+T
+* 
+out
+) const {
+
+228 ià(
+IsJu¡
+()è*
+	gout
+ = 
+v®ue_
+;
+
+229  
+IsJu¡
+();
+
+232 
+šlše
+ 
+T
+ 
+FromJu¡
+() const {
+
+233 #ià
+defšed
+(
+V8_ENABLE_CHECKS
+)
+
+234 
+as£¹
+(
+IsJu¡
+() && "FromJust is Nothing");
+
+236  
+	gv®ue_
+;
+
+239 
+šlše
+ 
+T
+ 
+FromMaybe
+(cÚ¡ T& 
+deçuÉ_v®ue
+) const {
+
+240  
+	ghas_v®ue_
+ ? 
+	gv®ue_
+ : 
+deçuÉ_v®ue
+;
+
+243 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+Maybe
+ &
+Ùh”
+) const {
+
+244  (
+IsJu¡
+(è=ð
+Ùh”
+.IsJust()) &&
+
+245 (!
+IsJu¡
+(è|| 
+FromJu¡
+(è=ð
+Ùh”
+.FromJust());
+
+248 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+Maybe
+ &
+Ùh”
+) const {
+
+249  !
+Ý”©Ü
+==(
+Ùh”
+);
+
+252 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+253 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+255 
+Maybe
+(cÚ¡ 
+v8
+::Maybe<
+T
+>& 
+th©
+)
+
+256 : 
+has_v®ue_
+(
+th©
+.
+IsJu¡
+())
+
+257 , 
+v®ue_
+(
+th©
+.
+FromMaybe
+(
+T
+())) {}
+
+260 
+	g´iv©e
+:
+
+261 
+Maybe
+(è: 
+has_v®ue_
+(
+çl£
+) {}
+
+262 
+ex¶ic™
+ 
+Maybe
+(cÚ¡ 
+T
+& 
+t
+è: 
+has_v®ue_
+(
+Œue
+), 
+v®ue_
+(t) {}
+
+263 
+boÞ
+ 
+	ghas_v®ue_
+;
+
+264 
+T
+ 
+	gv®ue_
+;
+
+266 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gU
+>
+
+267 
+ä›nd
+ 
+	gMaybe
+<
+	gU
+> 
+NÙhšg
+();
+
+268 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gU
+>
+
+269 
+ä›nd
+ 
+	gMaybe
+<
+	gU
+> 
+Ju¡
+(cÚ¡ 
+U
+& 
+u
+);
+
+272 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+273 
+šlše
+ 
+	gMaybe
+<
+	gT
+> 
+	$NÙhšg
+() {
+
+274  
+Maybe
+<
+T
+>();
+
+275 
+	}
+}
+
+277 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+278 
+šlše
+ 
+	gMaybe
+<
+	gT
+> 
+	$Ju¡
+(cÚ¡ 
+T
+& 
+t
+) {
+
+279  
+Maybe
+<
+T
+>(
+t
+);
+
+280 
+	}
+}
+
+282 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+283 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+284 
+	~"Çn_maybe_43_šl.h
+"
+
+286 
+	~"Çn_maybe_´e_43_šl.h
+"
+
+289 
+	~"Çn_cÚv”‹rs.h
+"
+
+290 
+	~"Çn_Ãw.h
+"
+
+292 #ià
+NAUV_UVVERSION
+ < 0x000b17
+
+293 
+	#NAUV_WORK_CB
+(
+func
+) \
+
+294 
+	$func
+(
+uv_async_t
+ *
+async
+, )
+
+	)
+
+296 
+	#NAUV_WORK_CB
+(
+func
+) \
+
+297 
+	$func
+(
+uv_async_t
+ *
+async
+)
+
+	)
+
+300 #ià
+NAUV_UVVERSION
+ >= 0x000b0b
+
+302 
+uv_key_t
+ 
+	tÇuv_key_t
+;
+
+304 
+šlše
+ 
+	$Çuv_key_ü—‹
+(
+Çuv_key_t
+ *
+key
+) {
+
+305  
+	`uv_key_ü—‹
+(
+key
+);
+
+306 
+	}
+}
+
+308 
+šlše
+ 
+	$Çuv_key_d–‘e
+(
+Çuv_key_t
+ *
+key
+) {
+
+309 
+	`uv_key_d–‘e
+(
+key
+);
+
+310 
+	}
+}
+
+312 
+šlše
+ * 
+	$Çuv_key_g‘
+(
+Çuv_key_t
+ *
+key
+) {
+
+313  
+	`uv_key_g‘
+(
+key
+);
+
+314 
+	}
+}
+
+316 
+šlše
+ 
+	$Çuv_key_£t
+(
+Çuv_key_t
+ *
+key
+, *
+v®ue
+) {
+
+317 
+	`uv_key_£t
+(
+key
+, 
+v®ue
+);
+
+318 
+	}
+}
+
+327 #iâdeà
+WIN32
+
+
+329 
+±h»ad_key_t
+ 
+	tÇuv_key_t
+;
+
+331 
+šlše
+ 
+	$Çuv_key_ü—‹
+(
+Çuv_key_t
+* 
+key
+) {
+
+332  -
+	`±h»ad_key_ü—‹
+(
+key
+, 
+NULL
+);
+
+333 
+	}
+}
+
+335 
+šlše
+ 
+	$Çuv_key_d–‘e
+(
+Çuv_key_t
+* 
+key
+) {
+
+336 ià(
+	`±h»ad_key_d–‘e
+(*
+key
+))
+
+337 
+	`abÜt
+();
+
+338 
+	}
+}
+
+340 
+šlše
+ * 
+	$Çuv_key_g‘
+(
+Çuv_key_t
+* 
+key
+) {
+
+341  
+	`±h»ad_g‘¥ecific
+(*
+key
+);
+
+342 
+	}
+}
+
+344 
+šlše
+ 
+	$Çuv_key_£t
+(
+Çuv_key_t
+* 
+key
+, * 
+v®ue
+) {
+
+345 ià(
+	`±h»ad_£t¥ecific
+(*
+key
+, 
+v®ue
+))
+
+346 
+	`abÜt
+();
+
+347 
+	}
+}
+
+352 
+DWORD
+ 
+	gŽs_šdex
+;
+
+353 } 
+	tÇuv_key_t
+;
+
+355 
+šlše
+ 
+	$Çuv_key_ü—‹
+(
+Çuv_key_t
+* 
+key
+) {
+
+356 
+key
+->
+Žs_šdex
+ = 
+	`TlsAÎoc
+();
+
+357 ià(
+key
+->
+Žs_šdex
+ =ð
+TLS_OUT_OF_INDEXES
+)
+
+358  
+UV_ENOMEM
+;
+
+360 
+	}
+}
+
+362 
+šlše
+ 
+	$Çuv_key_d–‘e
+(
+Çuv_key_t
+* 
+key
+) {
+
+363 ià(
+	`TlsF»e
+(
+key
+->
+Žs_šdex
+è=ð
+FALSE
+)
+
+364 
+	`abÜt
+();
+
+365 
+key
+->
+Žs_šdex
+ = 
+TLS_OUT_OF_INDEXES
+;
+
+366 
+	}
+}
+
+368 
+šlše
+ * 
+	$Çuv_key_g‘
+(
+Çuv_key_t
+* 
+key
+) {
+
+369 * 
+v®ue
+ = 
+	`TlsG‘V®ue
+(
+key
+->
+Žs_šdex
+);
+
+370 ià(
+v®ue
+ =ð
+NULL
+)
+
+371 ià(
+	`G‘La¡E¼Ü
+(è!ð
+ERROR_SUCCESS
+)
+
+372 
+	`abÜt
+();
+
+373  
+v®ue
+;
+
+374 
+	}
+}
+
+376 
+šlše
+ 
+	$Çuv_key_£t
+(
+Çuv_key_t
+* 
+key
+, * 
+v®ue
+) {
+
+377 ià(
+	`TlsS‘V®ue
+(
+key
+->
+Žs_šdex
+, 
+v®ue
+è=ð
+FALSE
+)
+
+378 
+	`abÜt
+();
+
+379 
+	}
+}
+
+384 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+385 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+386 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+HªdË
+<T>);
+
+389 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+390 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+391 
+v8
+::
+	tW—kC®lbackTy³
+ WeakCallbackType;
+
+393 
+	sW—kC®lbackTy³
+ {
+
+394 
+	eE
+ {
+	gkP¬am‘”
+, 
+	gkIÁ”ÇlF›lds
+};
+
+395 
+E
+ 
+	gty³
+;
+
+396 
+W—kC®lbackTy³
+(
+E
+ 
+Ùh”
+è: 
+ty³
+(other) {}
+
+397 
+šlše
+ 
+boÞ
+ 
+Ý”©Ü
+==(
+E
+ 
+Ùh”
+è{  oth” =ð
+this
+->
+ty³
+; }
+
+398 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+E
+ 
+Ùh”
+è{  !
+Ý”©Ü
+==(other); }
+
+402 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+> 
+þass
+ 
+	gW—kC®lbackInfo
+;
+
+404 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+405 
+	~"Çn_³rsi¡’t_12_šl.h
+"
+
+407 
+	~"Çn_³rsi¡’t_´e_12_šl.h
+"
+
+410 
+Çme¥aû
+ 
+	gimp
+ {
+
+411 cÚ¡ 
+size_t
+ 
+	gkMaxL’gth
+ = 0x3fffffff;
+
+414 #ià
+NODE_MAJOR_VERSION
+ > 0 || \
+
+415 
+	gNODE_MINOR_VERSION
+ > 10 || \
+
+416 
+	gNODE_MINOR_VERSION
+ =ð10 && 
+NODE_PATCH_VERSION
+ >= 29 || \
+
+417 
+NODE_MINOR_VERSION
+ =ð8 && 
+NODE_PATCH_VERSION
+ >= 27
+
+418 cÚ¡ 
+kR•ÏûInv®idUtf8
+ = 
+v8
+::
+SŒšg
+::
+REPLACE_INVALID_UTF8
+;
+
+420 cÚ¡ 
+	gkR•ÏûInv®idUtf8
+ = 0;
+
+426 þas 
+	cHªdËScÝe
+ {
+
+427 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+429 
+	gpublic
+:
+
+430 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+431 
+šlše
+ 
+HªdËScÝe
+(è: 
+scÝe
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+()) {}
+
+432 
+šlše
+ 
+Numb”OfHªdËs
+() {
+
+433  
+v8
+::
+HªdËScÝe
+::
+Numb”OfHªdËs
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+());
+
+436 
+šlše
+ 
+HªdËScÝe
+(è: 
+scÝe
+() {}
+
+437 
+šlše
+ 
+Numb”OfHªdËs
+() {
+
+438  
+v8
+::
+HªdËScÝe
+::
+Numb”OfHªdËs
+();
+
+442 
+	g´iv©e
+:
+
+445 
+HªdËScÝe
+(const HandleScope &);
+
+446 
+	gÝ”©Ü
+=(cÚ¡ 
+HªdËScÝe
+ &);
+
+447 *
+Ý”©Ü
+ 
+Ãw
+(
+size_t
+ 
+size
+);
+
+448 
+Ý”©Ü
+ 
+d–‘e
+(*, 
+size_t
+) {
+
+449 
+abÜt
+();
+
+453 þas 
+	cEsÿ·bËHªdËScÝe
+ {
+
+454 
+	gpublic
+:
+
+455 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+456 
+šlše
+ 
+Esÿ·bËHªdËScÝe
+(è: 
+scÝe
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+()) {}
+
+458 
+šlše
+ 
+Numb”OfHªdËs
+() {
+
+459  
+v8
+::
+Esÿ·bËHªdËScÝe
+::
+Numb”OfHªdËs
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+());
+
+462 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+463 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+Esÿ³
+(
+v8
+::Loÿl<T> 
+v®ue
+) {
+
+464  
+scÝe
+.
+Esÿ³
+(
+v®ue
+);
+
+467 
+	g´iv©e
+:
+
+468 
+v8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+470 
+šlše
+ 
+Esÿ·bËHªdËScÝe
+(è: 
+scÝe
+() {}
+
+472 
+šlše
+ 
+Numb”OfHªdËs
+() {
+
+473  
+v8
+::
+HªdËScÝe
+::
+Numb”OfHªdËs
+();
+
+476 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+477 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+Esÿ³
+(
+v8
+::Loÿl<T> 
+v®ue
+) {
+
+478  
+scÝe
+.
+Clo£
+(
+v®ue
+);
+
+481 
+	g´iv©e
+:
+
+482 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+485 
+	g´iv©e
+:
+
+488 
+Esÿ·bËHªdËScÝe
+(const EscapableHandleScope &);
+
+489 
+	gÝ”©Ü
+=(cÚ¡ 
+Esÿ·bËHªdËScÝe
+ &);
+
+490 *
+Ý”©Ü
+ 
+Ãw
+(
+size_t
+ 
+size
+);
+
+491 
+Ý”©Ü
+ 
+d–‘e
+(*, 
+size_t
+) {
+
+492 
+abÜt
+();
+
+498 þas 
+	cTryC©ch
+ {
+
+499 
+	gv8
+::
+TryC©ch
+ 
+Œy_ÿtch_
+;
+
+500 
+ä›nd
+ 
+F©®Exû±iÚ
+(cÚ¡ 
+TryC©ch
+&);
+
+502 
+	gpublic
+:
+
+503 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+504 
+TryC©ch
+(è: 
+Œy_ÿtch_
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+()) {}
+
+507 
+šlše
+ 
+boÞ
+ 
+HasCaught
+(ècÚ¡ {  
+Œy_ÿtch_
+.HasCaught(); }
+
+509 
+šlše
+ 
+boÞ
+ 
+CªCÚtšue
+(ècÚ¡ {  
+	gŒy_ÿtch_
+.CanContinue(); }
+
+511 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+ReThrow
+() {
+
+512 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+513  
+New
+(
+Œy_ÿtch_
+.
+ReThrow
+());
+
+515  
+	gŒy_ÿtch_
+.
+ReThrow
+();
+
+519 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+Exû±iÚ
+() const {
+
+520  
+Œy_ÿtch_
+.
+Exû±iÚ
+();
+
+523 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+524 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+525 
+šlše
+ 
+v8
+::
+MaybeLoÿl
+<v8::
+V®ue
+> 
+S�ckT¿û
+() const {
+
+526 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+527 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+528  
+	gscÝe
+.
+Esÿ³
+(
+Œy_ÿtch_
+.
+S�ckT¿û
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+529 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+532 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+S�ckT¿û
+() const {
+
+533  
+Œy_ÿtch_
+.
+S�ckT¿û
+();
+
+537 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Mes§ge
+> Message() const {
+
+538  
+Œy_ÿtch_
+.
+Mes§ge
+();
+
+541 
+šlše
+ 
+Re£t
+(è{ 
+	gŒy_ÿtch_
+.Reset(); }
+
+543 
+šlše
+ 
+S‘V”bo£
+(
+boÞ
+ 
+v®ue
+è{ 
+	gŒy_ÿtch_
+.SetVerbose(value); }
+
+545 
+šlše
+ 
+S‘C­tu»Mes§ge
+(
+boÞ
+ 
+v®ue
+) {
+
+546 
+	gŒy_ÿtch_
+.
+S‘C­tu»Mes§ge
+(
+v®ue
+);
+
+550 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(v8::Loÿl<v8::
+Objeù
+> 
+�rg‘
+,
+
+551 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+func
+,
+
+552 
+¬gc
+,
+
+553 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+);
+
+554 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(v8::Loÿl<v8::
+Objeù
+> 
+�rg‘
+,
+
+555 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+symbÞ
+,
+
+556 
+¬gc
+,
+
+557 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+);
+
+558 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(v8::Loÿl<v8::
+Objeù
+> 
+�rg‘
+,
+
+559 cÚ¡ * 
+m‘hod
+,
+
+560 
+¬gc
+,
+
+561 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+);
+
+565 þas 
+	cAsyncResourû
+ {
+
+566 
+	gpublic
+:
+
+567 
+AsyncResourû
+(
+
+568 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+
+
+569 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»sourû
+ = 
+New
+<v8::Object>()) {
+
+570 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+571 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+573 ià(
+	g»sourû
+.
+IsEm±y
+()) {
+
+574 
+	g»sourû
+ = 
+New
+<
+v8
+::
+Objeù
+>();
+
+577 
+	gcÚ‹xt
+ = 
+node
+::
+Em™AsyncIn™
+(
+isÞ©e
+, 
+»sourû
+, 
+Çme
+);
+
+581 
+AsyncResourû
+(
+
+582 cÚ¡ * 
+Çme
+
+
+583 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»sourû
+ = 
+New
+<v8::Object>()) {
+
+584 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+585 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+587 ià(
+	g»sourû
+.
+IsEm±y
+()) {
+
+588 
+	g»sourû
+ = 
+New
+<
+v8
+::
+Objeù
+>();
+
+591 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+Çme_¡ršg
+ =
+
+592 
+New
+<
+v8
+::
+SŒšg
+>(
+Çme
+).
+ToLoÿlChecked
+();
+
+593 
+	gcÚ‹xt
+ = 
+node
+::
+Em™AsyncIn™
+(
+isÞ©e
+, 
+»sourû
+, 
+Çme_¡ršg
+);
+
+597 ~
+AsyncResourû
+() {
+
+598 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+599 
+	gv8
+::
+IsÞ©e
+* 
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+600 
+	gnode
+::
+Em™AsyncDe¡roy
+(
+isÞ©e
+, 
+cÚ‹xt
+);
+
+604 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+runInAsyncScÝe
+(
+
+605 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+606 , 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+func
+
+
+607 , 
+¬gc
+
+
+608 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+609 #ià
+NODE_MODULE_VERSION
+ < 
+NODE_9_0_MODULE_VERSION
+
+
+610  
+MakeC®lback
+(
+�rg‘
+, 
+func
+, 
+¬gc
+, 
+¬gv
+);
+
+612  
+	gnode
+::
+MakeC®lback
+(
+
+613 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+func
+, 
+¬gc
+, 
+¬gv
+, 
+cÚ‹xt
+);
+
+617 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+runInAsyncScÝe
+(
+
+618 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+619 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+symbÞ
+
+
+620 , 
+¬gc
+
+
+621 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+622 #ià
+NODE_MODULE_VERSION
+ < 
+NODE_9_0_MODULE_VERSION
+
+
+623  
+MakeC®lback
+(
+�rg‘
+, 
+symbÞ
+, 
+¬gc
+, 
+¬gv
+);
+
+625  
+	gnode
+::
+MakeC®lback
+(
+
+626 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+symbÞ
+, 
+¬gc
+, 
+¬gv
+, 
+cÚ‹xt
+);
+
+630 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+runInAsyncScÝe
+(
+
+631 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+632 , cÚ¡ * 
+m‘hod
+
+
+633 , 
+¬gc
+
+
+634 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+635 #ià
+NODE_MODULE_VERSION
+ < 
+NODE_9_0_MODULE_VERSION
+
+
+636  
+MakeC®lback
+(
+�rg‘
+, 
+m‘hod
+, 
+¬gc
+, 
+¬gv
+);
+
+638  
+	gnode
+::
+MakeC®lback
+(
+
+639 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+m‘hod
+, 
+¬gc
+, 
+¬gv
+, 
+cÚ‹xt
+);
+
+643 
+	g´iv©e
+:
+
+644 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+AsyncResourû
+)
+
+645 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+646 
+node
+::
+async_cÚ‹xt
+ 
+cÚ‹xt
+;
+
+650 
+šlše
+ 
+uv_loÝ_t
+* 
+	$G‘Cu¼’tEv’tLoÝ
+() {
+
+651 #ià
+NODE_MAJOR_VERSION
+ >= 10 || \
+
+652 
+NODE_MAJOR_VERSION
+ =ð9 && 
+NODE_MINOR_VERSION
+ >= 3 || \
+
+653 
+NODE_MAJOR_VERSION
+ =ð8 && 
+NODE_MINOR_VERSION
+ >= 10
+
+654  
+node
+::
+	`G‘Cu¼’tEv’tLoÝ
+(
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+());
+
+656  
+	`uv_deçuÉ_loÝ
+();
+
+658 
+	}
+}
+
+663 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_0_12_MODULE_VERSION
+
+
+664 
+šlše
+
+
+665 
+	$S‘CouÁ”FunùiÚ
+(
+v8
+::
+CouÁ”LookupC®lback
+ 
+cb
+) {
+
+666 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`S‘CouÁ”FunùiÚ
+(
+cb
+);
+
+667 
+	}
+}
+
+669 
+šlše
+
+
+670 
+	$S‘C»©eHi¡og¿mFunùiÚ
+(
+v8
+::
+C»©eHi¡og¿mC®lback
+ 
+cb
+) {
+
+671 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`S‘C»©eHi¡og¿mFunùiÚ
+(
+cb
+);
+
+672 
+	}
+}
+
+674 
+šlše
+
+
+675 
+	$S‘AddHi¡og¿mSam¶eFunùiÚ
+(
+v8
+::
+AddHi¡og¿mSam¶eC®lback
+ 
+cb
+) {
+
+676 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`S‘AddHi¡og¿mSam¶eFunùiÚ
+(
+cb
+);
+
+677 
+	}
+}
+
+679 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+680 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+681 
+šlše
+ 
+boÞ
+ 
+	$IdËNÙifiÿtiÚ
+(
+idË_time_š_ms
+) {
+
+682  
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`IdËNÙifiÿtiÚD—dlše
+(
+
+683 
+idË_time_š_ms
+ * 0.001);
+
+684 
+	}
+}
+
+686 
+šlše
+ 
+boÞ
+ 
+	$IdËNÙifiÿtiÚ
+(
+idË_time_š_ms
+) {
+
+687  
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`IdËNÙifiÿtiÚ
+(
+idË_time_š_ms
+);
+
+688 
+	}
+}
+
+691 
+šlše
+ 
+	$LowMemÜyNÙifiÿtiÚ
+() {
+
+692 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`LowMemÜyNÙifiÿtiÚ
+();
+
+693 
+	}
+}
+
+695 
+šlše
+ 
+	$CÚ‹xtDi¥o£dNÙifiÿtiÚ
+() {
+
+696 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`CÚ‹xtDi¥o£dNÙifiÿtiÚ
+();
+
+697 
+	}
+}
+
+699 
+šlše
+
+
+700 
+	$S‘CouÁ”FunùiÚ
+(
+v8
+::
+CouÁ”LookupC®lback
+ 
+cb
+) {
+
+701 
+v8
+::
+V8
+::
+	`S‘CouÁ”FunùiÚ
+(
+cb
+);
+
+702 
+	}
+}
+
+704 
+šlše
+
+
+705 
+	$S‘C»©eHi¡og¿mFunùiÚ
+(
+v8
+::
+C»©eHi¡og¿mC®lback
+ 
+cb
+) {
+
+706 
+v8
+::
+V8
+::
+	`S‘C»©eHi¡og¿mFunùiÚ
+(
+cb
+);
+
+707 
+	}
+}
+
+709 
+šlše
+
+
+710 
+	$S‘AddHi¡og¿mSam¶eFunùiÚ
+(
+v8
+::
+AddHi¡og¿mSam¶eC®lback
+ 
+cb
+) {
+
+711 
+v8
+::
+V8
+::
+	`S‘AddHi¡og¿mSam¶eFunùiÚ
+(
+cb
+);
+
+712 
+	}
+}
+
+714 
+šlše
+ 
+boÞ
+ 
+	$IdËNÙifiÿtiÚ
+(
+idË_time_š_ms
+) {
+
+715  
+v8
+::
+V8
+::
+	`IdËNÙifiÿtiÚ
+(
+idË_time_š_ms
+);
+
+716 
+	}
+}
+
+718 
+šlše
+ 
+	$LowMemÜyNÙifiÿtiÚ
+() {
+
+719 
+v8
+::
+V8
+::
+	`LowMemÜyNÙifiÿtiÚ
+();
+
+720 
+	}
+}
+
+722 
+šlše
+ 
+	$CÚ‹xtDi¥o£dNÙifiÿtiÚ
+() {
+
+723 
+v8
+::
+V8
+::
+	`CÚ‹xtDi¥o£dNÙifiÿtiÚ
+();
+
+724 
+	}
+}
+
+727 #ià(
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+)
+
+728 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Prim™ive
+> 
+	$Undefšed
+() {
+
+729 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+730 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+731  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`Undefšed
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+())));
+
+733  
+v8
+::
+	`Undefšed
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+());
+
+735 
+	}
+}
+
+737 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Prim™ive
+> 
+	$NuÎ
+() {
+
+738 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+739 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+740  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`NuÎ
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+())));
+
+742  
+v8
+::
+	`NuÎ
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+());
+
+744 
+	}
+}
+
+746 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+BoÞ—n
+> 
+	$True
+() {
+
+747 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+748 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+749  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`True
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+())));
+
+751  
+v8
+::
+	`True
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+());
+
+753 
+	}
+}
+
+755 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+BoÞ—n
+> 
+	$F®£
+() {
+
+756 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+757 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+758  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`F®£
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+())));
+
+760  
+v8
+::
+	`F®£
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+());
+
+762 
+	}
+}
+
+764 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+	$Em±ySŒšg
+() {
+
+765  
+v8
+::
+SŒšg
+::
+	`Em±y
+(v8::
+IsÞ©e
+::
+	`G‘Cu¼’t
+());
+
+766 
+	}
+}
+
+768 
+šlše
+ 
+	$Adju¡Ex‹º®MemÜy
+(
+bc
+) {
+
+769  
+¡©ic_ÿ¡
+<>(
+
+770 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`Adju¡AmouÁOfEx‹º®AÎoÿ‹dMemÜy
+(
+bc
+));
+
+771 
+	}
+}
+
+773 
+šlše
+ 
+S‘Tem¶©e
+(
+
+774 
+v8
+::
+Loÿl
+<v8::
+Tem¶©e
+> 
+‹m¶
+
+
+775 , cÚ¡ *
+Çme
+
+
+776 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+) {
+
+777 
+‹m¶
+->
+S‘
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Çme
+, 
+v®ue
+);
+
+780 
+šlše
+ 
+S‘Tem¶©e
+(
+
+781 
+v8
+::
+Loÿl
+<v8::
+Tem¶©e
+> 
+‹m¶
+
+
+782 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+
+
+783 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+
+
+784 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibu‹s
+) {
+
+785 
+‹m¶
+->
+S‘
+(
+Çme
+, 
+v®ue
+, 
+©Œibu‹s
+);
+
+788 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+	$G‘Cu¼’tCÚ‹xt
+() {
+
+789  
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`G‘Cu¼’tCÚ‹xt
+();
+
+790 
+	}
+}
+
+792 
+šlše
+ * 
+G‘IÁ”ÇlF›ldPoš‹r
+(
+
+793 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+
+
+794 , 
+šdex
+) {
+
+795  
+	gobjeù
+->
+G‘AligÃdPoš‹rFromIÁ”ÇlF›ld
+(
+šdex
+);
+
+798 
+šlše
+ 
+S‘IÁ”ÇlF›ldPoš‹r
+(
+
+799 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+
+
+800 , 
+šdex
+
+
+801 , * 
+v®ue
+) {
+
+802 
+	gobjeù
+->
+S‘AligÃdPoš‹rInIÁ”ÇlF›ld
+(
+šdex
+, 
+v®ue
+);
+
+805 
+	#NAN_GC_CALLBACK
+(
+Çme
+) \
+
+806 
+	$Çme
+(
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+, v8::
+GCTy³
+ 
+ty³
+, v8::
+GCC®lbackFÏgs
+ 
+æags
+)
+
+	)
+
+808 #ià
+NODE_MODULE_VERSION
+ <ð
+NODE_4_0_MODULE_VERSION
+
+
+809 
+v8
+::
+	tIsÞ©e
+::
+	tGCEpžogueC®lback
+ GCEpilogueCallback;
+
+810 
+v8
+::
+	tIsÞ©e
+::
+	tGCPrÞogueC®lback
+ GCPrologueCallback;
+
+812 
+v8
+::
+	tIsÞ©e
+::
+	tGCC®lback
+ 
+	tGCEpžogueC®lback
+;
+
+813 
+v8
+::
+	tIsÞ©e
+::
+	tGCC®lback
+ 
+	tGCPrÞogueC®lback
+;
+
+816 
+šlše
+ 
+	$AddGCEpžogueC®lback
+(
+
+817 
+GCEpžogueC®lback
+ 
+ÿÎback
+
+
+818 , 
+v8
+::
+GCTy³
+ 
+gc_ty³_fž‹r
+ = v8::
+kGCTy³AÎ
+) {
+
+819 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`AddGCEpžogueC®lback
+(
+ÿÎback
+, 
+gc_ty³_fž‹r
+);
+
+820 
+	}
+}
+
+822 
+šlše
+ 
+	$RemoveGCEpžogueC®lback
+(
+
+823 
+GCEpžogueC®lback
+ 
+ÿÎback
+) {
+
+824 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`RemoveGCEpžogueC®lback
+(
+ÿÎback
+);
+
+825 
+	}
+}
+
+827 
+šlše
+ 
+	$AddGCPrÞogueC®lback
+(
+
+828 
+GCPrÞogueC®lback
+ 
+ÿÎback
+
+
+829 , 
+v8
+::
+GCTy³
+ 
+gc_ty³_fž‹r
+ = v8::
+kGCTy³AÎ
+) {
+
+830 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`AddGCPrÞogueC®lback
+(
+ÿÎback
+, 
+gc_ty³_fž‹r
+);
+
+831 
+	}
+}
+
+833 
+šlše
+ 
+	$RemoveGCPrÞogueC®lback
+(
+
+834 
+GCPrÞogueC®lback
+ 
+ÿÎback
+) {
+
+835 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`RemoveGCPrÞogueC®lback
+(
+ÿÎback
+);
+
+836 
+	}
+}
+
+838 
+šlše
+ 
+	$G‘H—pS�ti¡ics
+(
+
+839 
+v8
+::
+H—pS�ti¡ics
+ *
+h—p_¡©i¡ics
+) {
+
+840 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`G‘H—pS�ti¡ics
+(
+h—p_¡©i¡ics
+);
+
+841 
+	}
+}
+
+843 
+	#X
+(
+NAME
+) \
+
+844 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	$NAME
+(cÚ¡ *
+msg
+) { \
+
+845 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+; \
+
+846  
+scÝe
+.
+	`Esÿ³
+(
+v8
+::
+Exû±iÚ
+::
+	`NAME
+(
+	`New
+(
+msg
+).
+	`ToLoÿlChecked
+())); \
+
+847 
+	}
+} \
+
+849 
+šlše
+ \
+
+850 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	`NAME
+(v8::Loÿl<v8::
+SŒšg
+> 
+msg
+) { \
+
+851  
+v8
+::
+Exû±iÚ
+::
+	`NAME
+(
+msg
+); \
+
+854 
+šlše
+ 
+Throw
+ ## 
+	$NAME
+(cÚ¡ *
+msg
+) { \
+
+855 
+HªdËScÝe
+ 
+scÝe
+; \
+
+856 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`ThrowExû±iÚ
+( \
+
+857 
+v8
+::
+Exû±iÚ
+::
+	`NAME
+(
+	`New
+(
+msg
+).
+	`ToLoÿlChecked
+())); \
+
+858 
+	}
+} \
+
+860 
+šlše
+ 
+Throw
+ ## 
+	`NAME
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+msg
+) { \
+
+861 
+HªdËScÝe
+ 
+scÝe
+; \
+
+862 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`ThrowExû±iÚ
+( \
+
+863 
+v8
+::
+Exû±iÚ
+::
+	`NAME
+(
+msg
+)); \
+
+864 }
+
+	)
+
+866 
+	$X
+(
+E¼Ü
+)
+
+867 
+	$X
+(
+RªgeE¼Ü
+)
+
+868 
+	$X
+(
+Reã»nûE¼Ü
+)
+
+869 
+	$X
+(
+SyÁaxE¼Ü
+)
+
+870 
+	$X
+(
+Ty³E¼Ü
+)
+
+872 #undeà
+X
+
+
+874 
+šlše
+ 
+	`ThrowE¼Ü
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+”rÜ
+) {
+
+875 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()->
+	`ThrowExû±iÚ
+(
+”rÜ
+);
+
+876 
+	}
+}
+
+878 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+NewBufãr
+(
+
+879 *
+d©a
+
+
+880 , 
+size_t
+ 
+Ëngth
+
+
+881 #ià
+NODE_MODULE_VERSION
+ > 
+IOJS_2_0_MODULE_VERSION
+
+
+882 , 
+node
+::
+Bufãr
+::
+F»eC®lback
+ 
+ÿÎback
+
+
+884 , 
+node
+::
+sm®loc
+::
+F»eC®lback
+ 
+ÿÎback
+
+
+886 , *
+hšt
+
+
+890 
+as£¹
+(
+Ëngth
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+891 #ià
+NODE_MODULE_VERSION
+ > 
+IOJS_2_0_MODULE_VERSION
+
+
+892  
+	gnode
+::
+Bufãr
+::
+New
+(
+
+893 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+d©a
+, 
+Ëngth
+, 
+ÿÎback
+, 
+hšt
+);
+
+895  
+	gnode
+::
+Bufãr
+::
+New
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+d©a
+, 
+Ëngth
+, 
+ÿÎback
+,
+
+896 
+hšt
+);
+
+900 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+	$CÝyBufãr
+(
+
+901 cÚ¡ *
+d©a
+
+
+902 , 
+ušt32_t
+ 
+size
+
+
+906 
+	`as£¹
+(
+size
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+907 #ià
+NODE_MODULE_VERSION
+ > 
+IOJS_2_0_MODULE_VERSION
+
+
+908  
+node
+::
+Bufãr
+::
+	`CÝy
+(
+
+909 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+d©a
+, 
+size
+);
+
+911  
+node
+::
+Bufãr
+::
+	`New
+(
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+d©a
+, 
+size
+);
+
+913 
+	}
+}
+
+915 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+	$NewBufãr
+(
+ušt32_t
+ 
+size
+) {
+
+918 
+	`as£¹
+(
+size
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+919 #ià
+NODE_MODULE_VERSION
+ > 
+IOJS_2_0_MODULE_VERSION
+
+
+920  
+node
+::
+Bufãr
+::
+	`New
+(
+
+921 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+size
+);
+
+923  
+node
+::
+Bufãr
+::
+	`New
+(
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+size
+);
+
+925 
+	}
+}
+
+927 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+	$NewBufãr
+(
+
+928 * 
+d©a
+
+
+929 , 
+ušt32_t
+ 
+size
+
+
+933 
+	`as£¹
+(
+size
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+934 #ià
+NODE_MODULE_VERSION
+ > 
+IOJS_2_0_MODULE_VERSION
+
+
+935  
+node
+::
+Bufãr
+::
+	`New
+(
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+d©a
+, 
+size
+);
+
+937  
+node
+::
+Bufãr
+::
+	`U£
+(
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+d©a
+, 
+size
+);
+
+939 
+	}
+}
+
+941 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+942 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+943 
+šlše
+ 
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+>
+
+944 
+NewOÃBy‹SŒšg
+(cÚ¡ 
+ušt8_t
+ * 
+v®ue
+, 
+Ëngth
+ = -1) {
+
+945  
+v8
+::
+SŒšg
+::
+NewFromOÃBy‹
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+,
+
+946 
+v8
+::
+NewSŒšgTy³
+::
+kNÜm®
+, 
+Ëngth
+);
+
+949 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gBoundSü�t
+> 
+CompžeSü�t
+(
+
+950 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+s
+
+
+951 , cÚ¡ 
+v8
+::
+Sü�tOrigš
+& 
+Üigš
+
+
+953 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+954 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+955 
+	gv8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+sourû
+(
+s
+, 
+Üigš
+);
+
+956  
+	gscÝe
+.
+Esÿ³
+(
+
+957 
+v8
+::
+Sü�tCompž”
+::
+Compže
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), &
+sourû
+)
+
+958 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<
+BoundSü�t
+>()));
+
+961 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gBoundSü�t
+> 
+CompžeSü�t
+(
+
+962 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+s
+
+
+964 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+965 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+966 
+	gv8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+sourû
+(
+s
+);
+
+967  
+	gscÝe
+.
+Esÿ³
+(
+
+968 
+v8
+::
+Sü�tCompž”
+::
+Compže
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), &
+sourû
+)
+
+969 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<
+BoundSü�t
+>()));
+
+972 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+RunSü�t
+(
+
+973 
+v8
+::
+Loÿl
+<
+UnboundSü�t
+> 
+sü�t
+
+
+975 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+976 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+977  
+	gscÝe
+.
+Esÿ³
+(
+sü�t
+->
+BšdToCu¼’tCÚ‹xt
+()
+
+978 ->
+Run
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+979 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+982 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+RunSü�t
+(
+
+983 
+v8
+::
+Loÿl
+<
+BoundSü�t
+> 
+sü�t
+
+
+985 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+986 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+987  
+	gscÝe
+.
+Esÿ³
+(
+sü�t
+->
+Run
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+988 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+991 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+>
+
+992 
+NewOÃBy‹SŒšg
+(cÚ¡ 
+ušt8_t
+ * 
+v®ue
+, 
+Ëngth
+ = -1) {
+
+993  
+v8
+::
+SŒšg
+::
+NewFromOÃBy‹
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+,
+
+994 
+v8
+::
+SŒšg
+::
+kNÜm®SŒšg
+, 
+Ëngth
+);
+
+997 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gBoundSü�t
+> 
+CompžeSü�t
+(
+
+998 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+s
+
+
+999 , cÚ¡ 
+v8
+::
+Sü�tOrigš
+& 
+Üigš
+
+
+1001 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+sourû
+(
+s
+, 
+Üigš
+);
+
+1002  
+	gv8
+::
+Sü�tCompž”
+::
+Compže
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+sourû
+);
+
+1005 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gBoundSü�t
+> 
+CompžeSü�t
+(
+
+1006 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+s
+
+
+1008 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+sourû
+(
+s
+);
+
+1009  
+	gv8
+::
+Sü�tCompž”
+::
+Compže
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+sourû
+);
+
+1012 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+RunSü�t
+(
+
+1013 
+v8
+::
+Loÿl
+<
+UnboundSü�t
+> 
+sü�t
+
+
+1015 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1016  
+	gscÝe
+.
+Esÿ³
+(
+sü�t
+->
+BšdToCu¼’tCÚ‹xt
+()->
+Run
+());
+
+1019 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+RunSü�t
+(
+
+1020 
+v8
+::
+Loÿl
+<
+BoundSü�t
+> 
+sü�t
+
+
+1022  
+sü�t
+->
+Run
+();
+
+1026 
+NAN_DEPRECATED
+ 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(
+
+1027 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1028 , 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+func
+
+
+1029 , 
+¬gc
+
+
+1030 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+1031 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+1032 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1033  
+	gscÝe
+.
+Esÿ³
+(
+New
+(
+node
+::
+MakeC®lback
+(
+
+1034 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+func
+, 
+¬gc
+, 
+¬gv
+)));
+
+1036 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1037 
+AsyncResourû
+ 
+»s
+("nan:makeCallback");
+
+1038  
+	g»s
+.
+runInAsyncScÝe
+(
+�rg‘
+, 
+func
+, 
+¬gc
+, 
+¬gv
+)
+
+1039 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+1041  
+	gnode
+::
+MakeC®lback
+(
+
+1042 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+func
+, 
+¬gc
+, 
+¬gv
+);
+
+1047 
+NAN_DEPRECATED
+ 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(
+
+1048 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1049 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+symbÞ
+
+
+1050 , 
+¬gc
+
+
+1051 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+1052 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+1053 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1054  
+	gscÝe
+.
+Esÿ³
+(
+New
+(
+node
+::
+MakeC®lback
+(
+
+1055 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+symbÞ
+, 
+¬gc
+, 
+¬gv
+)));
+
+1057 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1058 
+AsyncResourû
+ 
+»s
+("nan:makeCallback");
+
+1059  
+	g»s
+.
+runInAsyncScÝe
+(
+�rg‘
+, 
+symbÞ
+, 
+¬gc
+, 
+¬gv
+)
+
+1060 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+1062  
+	gnode
+::
+MakeC®lback
+(
+
+1063 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+symbÞ
+, 
+¬gc
+, 
+¬gv
+);
+
+1068 
+NAN_DEPRECATED
+ 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(
+
+1069 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1070 , cÚ¡ * 
+m‘hod
+
+
+1071 , 
+¬gc
+
+
+1072 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+1073 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+1074 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1075  
+	gscÝe
+.
+Esÿ³
+(
+New
+(
+node
+::
+MakeC®lback
+(
+
+1076 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+m‘hod
+, 
+¬gc
+, 
+¬gv
+)));
+
+1078 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1079 
+AsyncResourû
+ 
+»s
+("nan:makeCallback");
+
+1080  
+	g»s
+.
+runInAsyncScÝe
+(
+�rg‘
+, 
+m‘hod
+, 
+¬gc
+, 
+¬gv
+)
+
+1081 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+1083  
+	gnode
+::
+MakeC®lback
+(
+
+1084 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+�rg‘
+, 
+m‘hod
+, 
+¬gc
+, 
+¬gv
+);
+
+1089 
+šlše
+ 
+	$F©®Exû±iÚ
+(cÚ¡ 
+TryC©ch
+& 
+Œy_ÿtch
+) {
+
+1090 
+node
+::
+	`F©®Exû±iÚ
+(
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+Œy_ÿtch
+.
+Œy_ÿtch_
+);
+
+1091 
+	}
+}
+
+1093 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$E¼noExû±iÚ
+(
+
+1094 
+”rÜno
+
+
+1095 , cÚ¡ * 
+sysÿÎ
+ = 
+NULL
+
+
+1096 , cÚ¡ * 
+mes§ge
+ = 
+NULL
+
+
+1097 , cÚ¡ * 
+·th
+ = 
+NULL
+) {
+
+1098  
+node
+::
+	`E¼noExû±iÚ
+(
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+(), 
+”rÜno
+, 
+sysÿÎ
+,
+
+1099 
+mes§ge
+, 
+·th
+);
+
+1100 
+	}
+}
+
+1102 
+NAN_DEPRECATED
+ 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$NªE¼noExû±iÚ
+(
+
+1103 
+”rÜno
+
+
+1104 , cÚ¡ * 
+sysÿÎ
+ = 
+NULL
+
+
+1105 , cÚ¡ * 
+mes§ge
+ = 
+NULL
+
+
+1106 , cÚ¡ * 
+·th
+ = 
+NULL
+) {
+
+1107  
+	`E¼noExû±iÚ
+(
+”rÜno
+, 
+sysÿÎ
+, 
+mes§ge
+, 
+·th
+);
+
+1108 
+	}
+}
+
+1110 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1111 
+šlše
+ 
+	$S‘IsÞ©eD©a
+(
+
+1112 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+
+
+1113 , 
+T
+ *
+d©a
+
+
+1115 
+isÞ©e
+->
+	`S‘D©a
+(0, 
+d©a
+);
+
+1116 
+	}
+}
+
+1118 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1119 
+šlše
+ 
+T
+ *
+	$G‘IsÞ©eD©a
+(
+
+1120 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+
+
+1122  
+¡©ic_ÿ¡
+<
+T
+*>(
+isÞ©e
+->
+	`G‘D©a
+(0));
+
+1123 
+	}
+}
+
+1125 þas 
+	cUtf8SŒšg
+ {
+
+1126 
+	gpublic
+:
+
+1127 
+šlše
+ 
+ex¶ic™
+ 
+Utf8SŒšg
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+äom
+) :
+
+1128 
+Ëngth_
+(0), 
+¡r_
+(
+¡r_¡_
+) {
+
+1129 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+1130 ià(!
+	gäom
+.
+IsEm±y
+()) {
+
+1131 #ià
+NODE_MAJOR_VERSION
+ >= 10
+
+1132 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+G‘Cu¼’tCÚ‹xt
+();
+
+1133 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+¡ršg
+ =
+
+1134 
+äom
+->
+ToSŒšg
+(
+cÚ‹xt
+).
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+>());
+
+1136 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+¡ršg
+ = 
+äom
+->
+ToSŒšg
+();
+
+1138 ià(!
+	g¡ršg
+.
+IsEm±y
+()) {
+
+1139 
+size_t
+ 
+	gËn
+ = 3 * 
+¡ršg
+->
+L’gth
+() + 1;
+
+1140 
+as£¹
+(
+Ën
+ <ð
+INT_MAX
+);
+
+1141 ià(
+	gËn
+ >  (
+	g¡r_¡_
+)) {
+
+1142 
+	g¡r_
+ = 
+¡©ic_ÿ¡
+<*>(
+m®loc
+(
+Ën
+));
+
+1143 
+as£¹
+(
+¡r_
+ != 0);
+
+1145 cÚ¡ 
+	gæags
+ =
+
+1146 
+v8
+::
+SŒšg
+::
+NO_NULL_TERMINATION
+ | 
+imp
+::
+kR•ÏûInv®idUtf8
+;
+
+1147 #ià
+NODE_MAJOR_VERSION
+ >= 11
+
+1148 
+	gËngth_
+ = 
+¡ršg
+->
+Wr™eUtf8
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+¡r_
+,
+
+1149 
+¡©ic_ÿ¡
+<>(
+Ën
+), 0, 
+æags
+);
+
+1153 #ifdeà
+_MSC_VER
+
+
+1154 #´agm¨
+w¬nšg
+(
+push
+)
+
+1155 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4996)
+
+1157 #ifdeà
+__GNUC__
+
+
+1158 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+1159 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wdeprecated-declarations"
+
+1161 
+	gËngth_
+ = 
+¡ršg
+->
+Wr™eUtf8
+(
+¡r_
+, 
+¡©ic_ÿ¡
+<>(
+Ën
+), 0, 
+æags
+);
+
+1162 #ifdeà
+__GNUC__
+
+
+1163 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+1165 #ifdeà
+_MSC_VER
+
+
+1166 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+1169 
+	g¡r_
+[
+Ëngth_
+] = '\0';
+
+1174 
+šlše
+ 
+Ëngth
+() const {
+
+1175  
+	gËngth_
+;
+
+1178 
+šlše
+ * 
+	gÝ”©Ü
+*(è{  
+	g¡r_
+; }
+
+1179 
+šlše
+ cÚ¡ * 
+	gÝ”©Ü
+*(ècÚ¡ {  
+	g¡r_
+; }
+
+1181 
+	gšlše
+ ~
+Utf8SŒšg
+() {
+
+1182 ià(
+	g¡r_
+ !ð
+¡r_¡_
+) {
+
+1183 
+ä“
+(
+¡r_
+);
+
+1187 
+	g´iv©e
+:
+
+1188 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+Utf8SŒšg
+)
+
+1190 
+Ëngth_
+;
+
+1191 *
+	g¡r_
+;
+
+1192 
+	g¡r_¡_
+[1024];
+
+1196 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Prim™ive
+> 
+	$Undefšed
+() {
+
+1197 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1198  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`Undefšed
+()));
+
+1199 
+	}
+}
+
+1201 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Prim™ive
+> 
+	$NuÎ
+() {
+
+1202 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1203  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`NuÎ
+()));
+
+1204 
+	}
+}
+
+1206 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+BoÞ—n
+> 
+	$True
+() {
+
+1207 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1208  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`True
+()));
+
+1209 
+	}
+}
+
+1211 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+BoÞ—n
+> 
+	$F®£
+() {
+
+1212 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1213  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+v8
+::
+	`F®£
+()));
+
+1214 
+	}
+}
+
+1216 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+	$Em±ySŒšg
+() {
+
+1217  
+v8
+::
+SŒšg
+::
+	`Em±y
+();
+
+1218 
+	}
+}
+
+1220 
+šlše
+ 
+	$Adju¡Ex‹º®MemÜy
+(
+bc
+) {
+
+1221  
+¡©ic_ÿ¡
+<>(
+v8
+::
+V8
+::
+	`Adju¡AmouÁOfEx‹º®AÎoÿ‹dMemÜy
+(
+bc
+));
+
+1222 
+	}
+}
+
+1224 
+šlše
+ 
+S‘Tem¶©e
+(
+
+1225 
+v8
+::
+Loÿl
+<v8::
+Tem¶©e
+> 
+‹m¶
+
+
+1226 , cÚ¡ *
+Çme
+
+
+1227 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+) {
+
+1228 
+‹m¶
+->
+S‘
+(
+Çme
+, 
+v®ue
+);
+
+1231 
+šlše
+ 
+S‘Tem¶©e
+(
+
+1232 
+v8
+::
+Loÿl
+<v8::
+Tem¶©e
+> 
+‹m¶
+
+
+1233 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+
+
+1234 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+
+
+1235 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibu‹s
+) {
+
+1236 
+‹m¶
+->
+S‘
+(
+Çme
+, 
+v®ue
+, 
+©Œibu‹s
+);
+
+1239 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+	$G‘Cu¼’tCÚ‹xt
+() {
+
+1240  
+v8
+::
+CÚ‹xt
+::
+	`G‘Cu¼’t
+();
+
+1241 
+	}
+}
+
+1243 
+šlše
+ * 
+G‘IÁ”ÇlF›ldPoš‹r
+(
+
+1244 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+
+
+1245 , 
+šdex
+) {
+
+1246  
+	gobjeù
+->
+G‘Poš‹rFromIÁ”ÇlF›ld
+(
+šdex
+);
+
+1249 
+šlše
+ 
+S‘IÁ”ÇlF›ldPoš‹r
+(
+
+1250 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+
+
+1251 , 
+šdex
+
+
+1252 , * 
+v®ue
+) {
+
+1253 
+	gobjeù
+->
+S‘Poš‹rInIÁ”ÇlF›ld
+(
+šdex
+, 
+v®ue
+);
+
+1256 
+	#NAN_GC_CALLBACK
+(
+Çme
+) \
+
+1257 
+	$Çme
+(
+v8
+::
+GCTy³
+ 
+ty³
+, v8::
+GCC®lbackFÏgs
+ 
+æags
+)
+
+	)
+
+1259 
+šlše
+ 
+	$AddGCEpžogueC®lback
+(
+
+1260 
+v8
+::
+GCEpžogueC®lback
+ 
+ÿÎback
+
+
+1261 , 
+v8
+::
+GCTy³
+ 
+gc_ty³_fž‹r
+ = v8::
+kGCTy³AÎ
+) {
+
+1262 
+v8
+::
+V8
+::
+	`AddGCEpžogueC®lback
+(
+ÿÎback
+, 
+gc_ty³_fž‹r
+);
+
+1263 
+	}
+}
+
+1264 
+šlše
+ 
+	$RemoveGCEpžogueC®lback
+(
+
+1265 
+v8
+::
+GCEpžogueC®lback
+ 
+ÿÎback
+) {
+
+1266 
+v8
+::
+V8
+::
+	`RemoveGCEpžogueC®lback
+(
+ÿÎback
+);
+
+1267 
+	}
+}
+
+1268 
+šlše
+ 
+	$AddGCPrÞogueC®lback
+(
+
+1269 
+v8
+::
+GCPrÞogueC®lback
+ 
+ÿÎback
+
+
+1270 , 
+v8
+::
+GCTy³
+ 
+gc_ty³_fž‹r
+ = v8::
+kGCTy³AÎ
+) {
+
+1271 
+v8
+::
+V8
+::
+	`AddGCPrÞogueC®lback
+(
+ÿÎback
+, 
+gc_ty³_fž‹r
+);
+
+1272 
+	}
+}
+
+1273 
+šlše
+ 
+	$RemoveGCPrÞogueC®lback
+(
+
+1274 
+v8
+::
+GCPrÞogueC®lback
+ 
+ÿÎback
+) {
+
+1275 
+v8
+::
+V8
+::
+	`RemoveGCPrÞogueC®lback
+(
+ÿÎback
+);
+
+1276 
+	}
+}
+
+1277 
+šlše
+ 
+	$G‘H—pS�ti¡ics
+(
+
+1278 
+v8
+::
+H—pS�ti¡ics
+ *
+h—p_¡©i¡ics
+) {
+
+1279 
+v8
+::
+V8
+::
+	`G‘H—pS�ti¡ics
+(
+h—p_¡©i¡ics
+);
+
+1280 
+	}
+}
+
+1282 
+	#X
+(
+NAME
+) \
+
+1283 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	$NAME
+(cÚ¡ *
+msg
+) { \
+
+1284 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+; \
+
+1285  
+scÝe
+.
+	`Esÿ³
+(
+v8
+::
+Exû±iÚ
+::
+	`NAME
+(
+	`New
+(
+msg
+).
+	`ToLoÿlChecked
+())); \
+
+1286 
+	}
+} \
+
+1288 
+šlše
+ \
+
+1289 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	`NAME
+(v8::Loÿl<v8::
+SŒšg
+> 
+msg
+) { \
+
+1290  
+v8
+::
+Exû±iÚ
+::
+	`NAME
+(
+msg
+); \
+
+1293 
+šlše
+ 
+Throw
+ ## 
+	$NAME
+(cÚ¡ *
+msg
+) { \
+
+1294 
+HªdËScÝe
+ 
+scÝe
+; \
+
+1295 
+v8
+::
+	`ThrowExû±iÚ
+(v8::
+Exû±iÚ
+::
+	`NAME
+(
+	`New
+(
+msg
+).
+	`ToLoÿlChecked
+())); \
+
+1296 
+	}
+} \
+
+1298 
+šlše
+ \
+
+1299 
+Throw
+ ## 
+	`NAME
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+”rmsg
+) { \
+
+1300 
+HªdËScÝe
+ 
+scÝe
+; \
+
+1301 
+v8
+::
+	`ThrowExû±iÚ
+(v8::
+Exû±iÚ
+::
+	`NAME
+(
+”rmsg
+)); \
+
+1302 }
+
+	)
+
+1304 
+	$X
+(
+E¼Ü
+)
+
+1305 
+	$X
+(
+RªgeE¼Ü
+)
+
+1306 
+	$X
+(
+Reã»nûE¼Ü
+)
+
+1307 
+	$X
+(
+SyÁaxE¼Ü
+)
+
+1308 
+	$X
+(
+Ty³E¼Ü
+)
+
+1310 #undeà
+X
+
+
+1312 
+šlše
+ 
+	`ThrowE¼Ü
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+”rÜ
+) {
+
+1313 
+v8
+::
+	`ThrowExû±iÚ
+(
+”rÜ
+);
+
+1314 
+	}
+}
+
+1316 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+	$NewBufãr
+(
+
+1317 *
+d©a
+
+
+1318 , 
+size_t
+ 
+Ëngth
+
+
+1319 , 
+node
+::
+Bufãr
+::
+ä“_ÿÎback
+ 
+ÿÎback
+
+
+1320 , *
+hšt
+
+
+1322 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1325 
+	`as£¹
+(
+Ëngth
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+1326  
+scÝe
+.
+	`Esÿ³
+(
+
+1327 
+	`New
+(
+node
+::
+Bufãr
+::New(
+d©a
+, 
+Ëngth
+, 
+ÿÎback
+, 
+hšt
+)->
+hªdË_
+));
+
+1328 
+	}
+}
+
+1330 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+	$CÝyBufãr
+(
+
+1331 cÚ¡ *
+d©a
+
+
+1332 , 
+ušt32_t
+ 
+size
+
+
+1334 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1337 
+	`as£¹
+(
+size
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+1338 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_0_10_MODULE_VERSION
+
+
+1339  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+node
+::
+Bufãr
+::New(
+d©a
+, 
+size
+)->
+hªdË_
+));
+
+1341  
+scÝe
+.
+	`Esÿ³
+(
+
+1342 
+	`New
+(
+node
+::
+Bufãr
+::New(
+cÚ¡_ÿ¡
+<*>(
+d©a
+), 
+size
+)->
+hªdË_
+));
+
+1344 
+	}
+}
+
+1346 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+	$NewBufãr
+(
+ušt32_t
+ 
+size
+) {
+
+1349 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1350 
+	`as£¹
+(
+size
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+1351  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+node
+::
+Bufãr
+::New(
+size
+)->
+hªdË_
+));
+
+1352 
+	}
+}
+
+1354 
+šlše
+ 
+	$F»eD©a
+(*
+d©a
+, *
+hšt
+) {
+
+1355 (è
+hšt
+;
+
+1356 
+d–‘e
+[] 
+d©a
+;
+
+1357 
+	}
+}
+
+1359 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+	$NewBufãr
+(
+
+1360 * 
+d©a
+
+
+1361 , 
+ušt32_t
+ 
+size
+
+
+1363 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1366 
+	`as£¹
+(
+size
+ <ð
+imp
+::
+kMaxL’gth
+ && "too†arge buffer");
+
+1367  
+scÝe
+.
+	`Esÿ³
+(
+
+1368 
+	`New
+(
+node
+::
+Bufãr
+::New(
+d©a
+, 
+size
+, 
+F»eD©a
+, 
+NULL
+)->
+hªdË_
+));
+
+1369 
+	}
+}
+
+1371 
+Çme¥aû
+ 
+	gimp
+ {
+
+1372 
+šlše
+ 
+
+1373 
+wid’SŒšg
+(
+¡d
+::
+veùÜ
+<
+ušt16_t
+> *
+ws
+, cÚ¡ 
+ušt8_t
+ *
+s
+, 
+l
+) {
+
+1374 
+size_t
+ 
+	gËn
+ = 
+¡©ic_ÿ¡
+<size_t>(
+l
+);
+
+1375 ià(
+	gl
+ < 0) {
+
+1376 
+	gËn
+ = 
+¡¾’
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+));
+
+1378 
+as£¹
+(
+Ën
+ <ð
+INT_MAX
+ && "string�oo†ong");
+
+1379 
+	gws
+->
+»size
+(
+Ën
+);
+
+1380 
+	g¡d
+::
+cÝy
+(
+s
+, s + 
+Ën
+, 
+ws
+->
+begš
+());
+
+1384 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+>
+
+1385 
+NewOÃBy‹SŒšg
+(cÚ¡ 
+ušt8_t
+ * 
+v®ue
+, 
+Ëngth
+ = -1) {
+
+1386 
+¡d
+::
+veùÜ
+<
+ušt16_t
+> 
+wideSŒšg
+;
+
+1387 
+	gimp
+::
+wid’SŒšg
+(&
+wideSŒšg
+, 
+v®ue
+, 
+Ëngth
+);
+
+1388  
+	gv8
+::
+SŒšg
+::
+New
+(
+wideSŒšg
+.
+d©a
+(),
+
+1389 
+¡©ic_ÿ¡
+<>(
+wideSŒšg
+.
+size
+()));
+
+1392 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gBoundSü�t
+> 
+CompžeSü�t
+(
+
+1393 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+s
+
+
+1394 , cÚ¡ 
+v8
+::
+Sü�tOrigš
+& 
+Üigš
+
+
+1396  
+v8
+::
+Sü�t
+::
+Compže
+(
+s
+, 
+cÚ¡_ÿ¡
+<v8::
+Sü�tOrigš
+ *>(&
+Üigš
+));
+
+1399 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gBoundSü�t
+> 
+CompžeSü�t
+(
+
+1400 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+s
+
+
+1402  
+v8
+::
+Sü�t
+::
+Compže
+(
+s
+);
+
+1405 
+šlše
+
+
+1406 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+RunSü�t
+(
+v8
+::
+Loÿl
+<v8::
+Sü�t
+> 
+sü�t
+) {
+
+1407  
+sü�t
+->
+Run
+();
+
+1410 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(
+
+1411 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1412 , 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+func
+
+
+1413 , 
+¬gc
+
+
+1414 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+1415 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+1416  
+	gscÝe
+.
+Clo£
+(
+New
+(
+node
+::
+MakeC®lback
+(
+�rg‘
+, 
+func
+, 
+¬gc
+, 
+¬gv
+)));
+
+1419 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(
+
+1420 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1421 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+symbÞ
+
+
+1422 , 
+¬gc
+
+
+1423 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+1424 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+1425  
+	gscÝe
+.
+Clo£
+(
+New
+(
+node
+::
+MakeC®lback
+(
+�rg‘
+, 
+symbÞ
+, 
+¬gc
+, 
+¬gv
+)));
+
+1428 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+MakeC®lback
+(
+
+1429 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1430 , cÚ¡ * 
+m‘hod
+
+
+1431 , 
+¬gc
+
+
+1432 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>* 
+¬gv
+) {
+
+1433 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+1434  
+	gscÝe
+.
+Clo£
+(
+New
+(
+node
+::
+MakeC®lback
+(
+�rg‘
+, 
+m‘hod
+, 
+¬gc
+, 
+¬gv
+)));
+
+1437 
+šlše
+ 
+	$F©®Exû±iÚ
+(cÚ¡ 
+TryC©ch
+& 
+Œy_ÿtch
+) {
+
+1438 
+node
+::
+	`F©®Exû±iÚ
+(
+cÚ¡_ÿ¡
+<
+v8
+::
+TryC©ch
+ &>(
+Œy_ÿtch
+.
+Œy_ÿtch_
+));
+
+1439 
+	}
+}
+
+1441 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$E¼noExû±iÚ
+(
+
+1442 
+”rÜno
+
+
+1443 , cÚ¡ * 
+sysÿÎ
+ = 
+NULL
+
+
+1444 , cÚ¡ * 
+mes§ge
+ = 
+NULL
+
+
+1445 , cÚ¡ * 
+·th
+ = 
+NULL
+) {
+
+1446  
+node
+::
+	`E¼noExû±iÚ
+(
+”rÜno
+, 
+sysÿÎ
+, 
+mes§ge
+, 
+·th
+);
+
+1447 
+	}
+}
+
+1449 
+NAN_DEPRECATED
+ 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$NªE¼noExû±iÚ
+(
+
+1450 
+”rÜno
+
+
+1451 , cÚ¡ * 
+sysÿÎ
+ = 
+NULL
+
+
+1452 , cÚ¡ * 
+mes§ge
+ = 
+NULL
+
+
+1453 , cÚ¡ * 
+·th
+ = 
+NULL
+) {
+
+1454  
+	`E¼noExû±iÚ
+(
+”rÜno
+, 
+sysÿÎ
+, 
+mes§ge
+, 
+·th
+);
+
+1455 
+	}
+}
+
+1458 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1459 
+šlše
+ 
+	$S‘IsÞ©eD©a
+(
+
+1460 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+
+
+1461 , 
+T
+ *
+d©a
+
+
+1463 
+isÞ©e
+->
+	`S‘D©a
+(
+d©a
+);
+
+1464 
+	}
+}
+
+1466 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1467 
+šlše
+ 
+T
+ *
+	$G‘IsÞ©eD©a
+(
+
+1468 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+
+
+1470  
+¡©ic_ÿ¡
+<
+T
+*>(
+isÞ©e
+->
+	`G‘D©a
+());
+
+1471 
+	}
+}
+
+1473 þas 
+	cUtf8SŒšg
+ {
+
+1474 
+	gpublic
+:
+
+1475 
+šlše
+ 
+ex¶ic™
+ 
+Utf8SŒšg
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+äom
+) :
+
+1476 
+Ëngth_
+(0), 
+¡r_
+(
+¡r_¡_
+) {
+
+1477 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+1478 ià(!
+	gäom
+.
+IsEm±y
+()) {
+
+1479 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+¡ršg
+ = 
+äom
+->
+ToSŒšg
+();
+
+1480 ià(!
+	g¡ršg
+.
+IsEm±y
+()) {
+
+1481 
+size_t
+ 
+	gËn
+ = 3 * 
+¡ršg
+->
+L’gth
+() + 1;
+
+1482 
+as£¹
+(
+Ën
+ <ð
+INT_MAX
+);
+
+1483 ià(
+	gËn
+ >  (
+	g¡r_¡_
+)) {
+
+1484 
+	g¡r_
+ = 
+¡©ic_ÿ¡
+<*>(
+m®loc
+(
+Ën
+));
+
+1485 
+as£¹
+(
+¡r_
+ != 0);
+
+1487 cÚ¡ 
+	gæags
+ =
+
+1488 
+v8
+::
+SŒšg
+::
+NO_NULL_TERMINATION
+ | 
+imp
+::
+kR•ÏûInv®idUtf8
+;
+
+1489 
+	gËngth_
+ = 
+¡ršg
+->
+Wr™eUtf8
+(
+¡r_
+, 
+¡©ic_ÿ¡
+<>(
+Ën
+), 0, 
+æags
+);
+
+1490 
+	g¡r_
+[
+Ëngth_
+] = '\0';
+
+1495 
+šlše
+ 
+Ëngth
+() const {
+
+1496  
+	gËngth_
+;
+
+1499 
+šlše
+ * 
+	gÝ”©Ü
+*(è{  
+	g¡r_
+; }
+
+1500 
+šlše
+ cÚ¡ * 
+	gÝ”©Ü
+*(ècÚ¡ {  
+	g¡r_
+; }
+
+1502 
+	gšlše
+ ~
+Utf8SŒšg
+() {
+
+1503 ià(
+	g¡r_
+ !ð
+¡r_¡_
+) {
+
+1504 
+ä“
+(
+¡r_
+);
+
+1508 
+	g´iv©e
+:
+
+1509 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+Utf8SŒšg
+)
+
+1511 
+Ëngth_
+;
+
+1512 *
+	g¡r_
+;
+
+1513 
+	g¡r_¡_
+[1024];
+
+1518 (*
+	tF»eC®lback
+)(*
+	td©a
+, *
+	thšt
+);
+
+1520 cÚ¡ 
+	tFunùiÚC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>& 
+	tNAN_METHOD_ARGS_TYPE
+;
+
+1521 
+	tNAN_METHOD_RETURN_TYPE
+;
+
+1523 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>& 
+	tNAN_GETTER_ARGS_TYPE
+;
+
+1524 
+	tNAN_GETTER_RETURN_TYPE
+;
+
+1526 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<>& 
+	tNAN_SETTER_ARGS_TYPE
+;
+
+1527 
+	tNAN_SETTER_RETURN_TYPE
+;
+
+1529 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>&
+
+1530 
+	tNAN_PROPERTY_GETTER_ARGS_TYPE
+;
+
+1531 
+	tNAN_PROPERTY_GETTER_RETURN_TYPE
+;
+
+1533 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>&
+
+1534 
+	tNAN_PROPERTY_SETTER_ARGS_TYPE
+;
+
+1535 
+	tNAN_PROPERTY_SETTER_RETURN_TYPE
+;
+
+1537 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tA¼ay
+>&
+
+1538 
+	tNAN_PROPERTY_ENUMERATOR_ARGS_TYPE
+;
+
+1539 
+	tNAN_PROPERTY_ENUMERATOR_RETURN_TYPE
+;
+
+1541 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tBoÞ—n
+>&
+
+1542 
+	tNAN_PROPERTY_DELETER_ARGS_TYPE
+;
+
+1543 
+	tNAN_PROPERTY_DELETER_RETURN_TYPE
+;
+
+1545 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tIÁeg”
+>&
+
+1546 
+	tNAN_PROPERTY_QUERY_ARGS_TYPE
+;
+
+1547 
+	tNAN_PROPERTY_QUERY_RETURN_TYPE
+;
+
+1549 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>& 
+	tNAN_INDEX_GETTER_ARGS_TYPE
+;
+
+1550 
+	tNAN_INDEX_GETTER_RETURN_TYPE
+;
+
+1552 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>& 
+	tNAN_INDEX_SETTER_ARGS_TYPE
+;
+
+1553 
+	tNAN_INDEX_SETTER_RETURN_TYPE
+;
+
+1555 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tA¼ay
+>&
+
+1556 
+	tNAN_INDEX_ENUMERATOR_ARGS_TYPE
+;
+
+1557 
+	tNAN_INDEX_ENUMERATOR_RETURN_TYPE
+;
+
+1559 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tBoÞ—n
+>&
+
+1560 
+	tNAN_INDEX_DELETER_ARGS_TYPE
+;
+
+1561 
+	tNAN_INDEX_DELETER_RETURN_TYPE
+;
+
+1563 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tIÁeg”
+>&
+
+1564 
+	tNAN_INDEX_QUERY_ARGS_TYPE
+;
+
+1565 
+	tNAN_INDEX_QUERY_RETURN_TYPE
+;
+
+1567 
+	#NAN_METHOD
+(
+Çme
+) \
+
+1568 
+Nª
+::
+NAN_METHOD_RETURN_TYPE
+ 
+	$Çme
+(
+Nª
+::
+NAN_METHOD_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1569 
+	#NAN_GETTER
+(
+Çme
+) \
+
+1570 
+Nª
+::
+NAN_GETTER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1571 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+ \
+
+1572 , 
+Nª
+::
+NAN_GETTER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1573 
+	#NAN_SETTER
+(
+Çme
+) \
+
+1574 
+Nª
+::
+NAN_SETTER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1575 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+ \
+
+1576 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+ \
+
+1577 , 
+Nª
+::
+NAN_SETTER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1578 
+	#NAN_PROPERTY_GETTER
+(
+Çme
+) \
+
+1579 
+Nª
+::
+NAN_PROPERTY_GETTER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1580 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+ \
+
+1581 , 
+Nª
+::
+NAN_PROPERTY_GETTER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1582 
+	#NAN_PROPERTY_SETTER
+(
+Çme
+) \
+
+1583 
+Nª
+::
+NAN_PROPERTY_SETTER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1584 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+ \
+
+1585 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+ \
+
+1586 , 
+Nª
+::
+NAN_PROPERTY_SETTER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1587 
+	#NAN_PROPERTY_ENUMERATOR
+(
+Çme
+) \
+
+1588 
+Nª
+::
+NAN_PROPERTY_ENUMERATOR_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1589 
+Nª
+::
+NAN_PROPERTY_ENUMERATOR_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1590 
+	#NAN_PROPERTY_DELETER
+(
+Çme
+) \
+
+1591 
+Nª
+::
+NAN_PROPERTY_DELETER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1592 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+ \
+
+1593 , 
+Nª
+::
+NAN_PROPERTY_DELETER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1594 
+	#NAN_PROPERTY_QUERY
+(
+Çme
+) \
+
+1595 
+Nª
+::
+NAN_PROPERTY_QUERY_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1596 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+ \
+
+1597 , 
+Nª
+::
+NAN_PROPERTY_QUERY_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1598 
+	#NAN_INDEX_GETTER
+(
+Çme
+) \
+
+1599 
+Nª
+::
+NAN_INDEX_GETTER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1600 
+ušt32_t
+ 
+šdex
+ \
+
+1601 , 
+Nª
+::
+NAN_INDEX_GETTER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1602 
+	#NAN_INDEX_SETTER
+(
+Çme
+) \
+
+1603 
+Nª
+::
+NAN_INDEX_SETTER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1604 
+ušt32_t
+ 
+šdex
+ \
+
+1605 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+ \
+
+1606 , 
+Nª
+::
+NAN_INDEX_SETTER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1607 
+	#NAN_INDEX_ENUMERATOR
+(
+Çme
+) \
+
+1608 
+Nª
+::
+NAN_INDEX_ENUMERATOR_RETURN_TYPE
+ \
+
+1609 
+	$Çme
+(
+Nª
+::
+NAN_INDEX_ENUMERATOR_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1610 
+	#NAN_INDEX_DELETER
+(
+Çme
+) \
+
+1611 
+Nª
+::
+NAN_INDEX_DELETER_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1612 
+ušt32_t
+ 
+šdex
+ \
+
+1613 , 
+Nª
+::
+NAN_INDEX_DELETER_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1614 
+	#NAN_INDEX_QUERY
+(
+Çme
+) \
+
+1615 
+Nª
+::
+NAN_INDEX_QUERY_RETURN_TYPE
+ 
+	`Çme
+( \
+
+1616 
+ušt32_t
+ 
+šdex
+ \
+
+1617 , 
+Nª
+::
+NAN_INDEX_QUERY_ARGS_TYPE
+ 
+šfo
+)
+
+	)
+
+1619 þas 
+	cC®lback
+ {
+
+1620 
+public
+:
+
+1621 
+	`C®lback
+() {}
+
+1623 
+ex¶ic™
+ 
+	`C®lback
+(cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> &
+â
+è: 
+	`hªdË_
+(fn) {}
+
+1625 ~
+	`C®lback
+() {
+
+1626 
+hªdË_
+.
+	`Re£t
+();
+
+1629 
+boÞ
+ 
+Ý”©Ü
+==(cÚ¡ 
+C®lback
+ &
+Ùh”
+) const {
+
+1630  
+hªdË_
+ =ð
+Ùh”
+.handle_;
+
+1633 
+boÞ
+ 
+Ý”©Ü
+!=(cÚ¡ 
+C®lback
+ &
+Ùh”
+) const {
+
+1634  !
+Ý”©Ü
+==(
+Ùh”
+);
+
+1637 
+šlše
+
+
+1638 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+Ý”©Ü
+*(ècÚ¡ {  
+	`G‘FunùiÚ
+(); }
+
+1640 
+NAN_DEPRECATED
+ 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	`Ý”©Ü
+()(
+
+1641 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1642 , 
+¬gc
+ = 0
+
+1643 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[] = 0) const {
+
+1644 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1645 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1646 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1647 
+AsyncResourû
+ 
+	`async
+("nan:Callback:operator()");
+
+1648  
+	`C®l_
+(
+isÞ©e
+, 
+�rg‘
+, 
+¬gc
+, 
+¬gv
+, &
+async
+)
+
+1649 .
+	`FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+1651  
+	`C®l_
+(
+isÞ©e
+, 
+�rg‘
+, 
+¬gc
+, 
+¬gv
+);
+
+1654  
+	`C®l_
+(
+�rg‘
+, 
+¬gc
+, 
+¬gv
+);
+
+1658 
+NAN_DEPRECATED
+ 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	`Ý”©Ü
+()(
+
+1659 
+¬gc
+ = 0
+
+1660 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[] = 0) const {
+
+1661 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1662 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1663 
+v8
+::
+Esÿ·bËHªdËScÝe
+ 
+	`scÝe
+(
+isÞ©e
+);
+
+1664 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1665 
+AsyncResourû
+ 
+	`async
+("nan:Callback:operator()");
+
+1666  
+scÝe
+.
+	`Esÿ³
+(
+	`C®l_
+(
+isÞ©e
+, isÞ©e->
+	`G‘Cu¼’tCÚ‹xt
+()->
+	`Glob®
+(),
+
+1667 
+¬gc
+, 
+¬gv
+, &
+async
+)
+
+1668 .
+	`FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1670  
+scÝe
+.
+	`Esÿ³
+(
+
+1671 
+	`C®l_
+(
+isÞ©e
+, isÞ©e->
+	`G‘Cu¼’tCÚ‹xt
+()->
+	`Glob®
+(), 
+¬gc
+, 
+¬gv
+));
+
+1674 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+1675  
+scÝe
+.
+	`Clo£
+(
+	`C®l_
+(
+v8
+::
+CÚ‹xt
+::
+	`G‘Cu¼’t
+()->
+	`Glob®
+(), 
+¬gc
+, 
+¬gv
+));
+
+1679 
+šlše
+ 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+	`Ý”©Ü
+()(
+
+1680 
+AsyncResourû
+* 
+»sourû
+
+
+1681 , 
+¬gc
+ = 0
+
+1682 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[] = 0) const {
+
+1683  
+this
+->
+	`C®l
+(
+¬gc
+, 
+¬gv
+, 
+»sourû
+);
+
+1686 
+šlše
+ 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+	`Ý”©Ü
+()(
+
+1687 
+AsyncResourû
+* 
+»sourû
+
+
+1688 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1689 , 
+¬gc
+ = 0
+
+1690 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[] = 0) const {
+
+1691  
+this
+->
+	`C®l
+(
+�rg‘
+, 
+¬gc
+, 
+¬gv
+, 
+»sourû
+);
+
+1695 
+šlše
+ 
+	`S‘FunùiÚ
+(cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> &
+â
+) {
+
+1696 
+	`Re£t
+(
+â
+);
+
+1699 
+šlše
+ 
+	`Re£t
+(cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> &
+â
+) {
+
+1700 
+hªdË_
+.
+	`Re£t
+(
+â
+);
+
+1703 
+šlše
+ 
+	`Re£t
+() {
+
+1704 
+hªdË_
+.
+	`Re£t
+();
+
+1707 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+	`G‘FunùiÚ
+() const {
+
+1708  
+	`New
+(
+hªdË_
+);
+
+1711 
+šlše
+ 
+boÞ
+ 
+	`IsEm±y
+() const {
+
+1712  
+hªdË_
+.
+	`IsEm±y
+();
+
+1719 
+NAN_DEPRECATED
+ 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>
+
+1720 
+	`C®l
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1721 , 
+¬gc
+
+
+1722 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) const {
+
+1723 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1724 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1725 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1726 
+AsyncResourû
+ 
+	`async
+("nan:Callback:Call");
+
+1727  
+	`C®l_
+(
+isÞ©e
+, 
+�rg‘
+, 
+¬gc
+, 
+¬gv
+, &
+async
+)
+
+1728 .
+	`FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+1730  
+	`C®l_
+(
+isÞ©e
+, 
+�rg‘
+, 
+¬gc
+, 
+¬gv
+);
+
+1733  
+	`C®l_
+(
+�rg‘
+, 
+¬gc
+, 
+¬gv
+);
+
+1741 
+NAN_DEPRECATED
+ 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>
+
+1742 
+	`C®l
+(
+¬gc
+, 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) const {
+
+1743 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1744 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1745 
+v8
+::
+Esÿ·bËHªdËScÝe
+ 
+	`scÝe
+(
+isÞ©e
+);
+
+1746 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1747 
+AsyncResourû
+ 
+	`async
+("nan:Callback:Call");
+
+1748  
+scÝe
+.
+	`Esÿ³
+(
+	`C®l_
+(
+isÞ©e
+, isÞ©e->
+	`G‘Cu¼’tCÚ‹xt
+()->
+	`Glob®
+(),
+
+1749 
+¬gc
+, 
+¬gv
+, &
+async
+)
+
+1750 .
+	`FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1752  
+scÝe
+.
+	`Esÿ³
+(
+
+1753 
+	`C®l_
+(
+isÞ©e
+, isÞ©e->
+	`G‘Cu¼’tCÚ‹xt
+()->
+	`Glob®
+(), 
+¬gc
+, 
+¬gv
+));
+
+1756 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+1757  
+scÝe
+.
+	`Clo£
+(
+	`C®l_
+(
+v8
+::
+CÚ‹xt
+::
+	`G‘Cu¼’t
+()->
+	`Glob®
+(), 
+¬gc
+, 
+¬gv
+));
+
+1761 
+šlše
+ 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>
+
+1762 
+	`C®l
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1763 , 
+¬gc
+
+
+1764 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]
+
+1765 , 
+AsyncResourû
+* 
+»sourû
+) const {
+
+1766 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1767 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1768  
+	`C®l_
+(
+isÞ©e
+, 
+�rg‘
+, 
+¬gc
+, 
+¬gv
+, 
+»sourû
+);
+
+1769 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1770 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1771  
+	`C®l_
+(
+isÞ©e
+, 
+�rg‘
+, 
+¬gc
+, 
+¬gv
+);
+
+1773  
+	`C®l_
+(
+�rg‘
+, 
+¬gc
+, 
+¬gv
+);
+
+1777 
+šlše
+ 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>
+
+1778 
+	`C®l
+(
+¬gc
+, 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[], 
+AsyncResourû
+* 
+»sourû
+) const {
+
+1779 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1780 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1781  
+	`C®l
+(
+isÞ©e
+->
+	`G‘Cu¼’tCÚ‹xt
+()->
+	`Glob®
+(), 
+¬gc
+, 
+¬gv
+, 
+»sourû
+);
+
+1782 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1783 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+1784 
+v8
+::
+Esÿ·bËHªdËScÝe
+ 
+	`scÝe
+(
+isÞ©e
+);
+
+1785  
+scÝe
+.
+	`Esÿ³
+(
+
+1786 
+	`C®l_
+(
+isÞ©e
+, isÞ©e->
+	`G‘Cu¼’tCÚ‹xt
+()->
+	`Glob®
+(), 
+¬gc
+, 
+¬gv
+));
+
+1788 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+1789  
+scÝe
+.
+	`Clo£
+(
+	`C®l_
+(
+v8
+::
+CÚ‹xt
+::
+	`G‘Cu¼’t
+()->
+	`Glob®
+(), 
+¬gc
+, 
+¬gv
+));
+
+1793 
+´iv©e
+:
+
+1794 
+	`NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+C®lback
+)
+
+1795 
+P”si¡’t
+<
+v8
+::
+FunùiÚ
+> 
+hªdË_
+;
+
+1797 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+1798 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+	`C®l_
+(v8::
+IsÞ©e
+ *
+isÞ©e
+
+
+1799 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1800 , 
+¬gc
+
+
+1801 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]
+
+1802 , 
+AsyncResourû
+* 
+»sourû
+) const {
+
+1803 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1804 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+func
+ = 
+	`New
+(
+hªdË_
+);
+
+1805 autØ
+maybe
+ = 
+»sourû
+->
+	`runInAsyncScÝe
+(
+�rg‘
+, 
+func
+, 
+¬gc
+, 
+¬gv
+);
+
+1806 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+loÿl
+;
+
+1807 ià(!
+maybe
+.
+	`ToLoÿl
+(&
+loÿl
+)è 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>();
+
+1808  
+scÝe
+.
+	`Esÿ³
+(
+loÿl
+);
+
+1810 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1811 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	`C®l_
+(v8::
+IsÞ©e
+ *
+isÞ©e
+
+
+1812 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+�rg‘
+
+
+1813 , 
+¬gc
+
+
+1814 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) const {
+
+1815 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1817 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+ÿÎback
+ = 
+	`New
+(
+hªdË_
+);
+
+1818 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+1819  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+node
+::
+	`MakeC®lback
+(
+
+1820 
+isÞ©e
+
+
+1821 , 
+�rg‘
+
+
+1822 , 
+ÿÎback
+
+
+1823 , 
+¬gc
+
+
+1824 , 
+¬gv
+
+
+1827  
+scÝe
+.
+	`Esÿ³
+(
+node
+::
+	`MakeC®lback
+(
+
+1828 
+isÞ©e
+
+
+1829 , 
+�rg‘
+
+
+1830 , 
+ÿÎback
+
+
+1831 , 
+¬gc
+
+
+1832 , 
+¬gv
+
+
+1837 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	`C®l_
+(v8::Loÿl<v8::
+Objeù
+> 
+�rg‘
+
+
+1838 , 
+¬gc
+
+
+1839 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) const {
+
+1840 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1842 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+ÿÎback
+ = 
+	`New
+(
+hªdË_
+);
+
+1843  
+scÝe
+.
+	`Esÿ³
+(
+	`New
+(
+node
+::
+	`MakeC®lback
+(
+
+1844 
+�rg‘
+
+
+1845 , 
+ÿÎback
+
+
+1846 , 
+¬gc
+
+
+1847 , 
+¬gv
+
+
+1851 
+	}
+};
+
+1853 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®l
+(
+
+1854 cÚ¡ 
+Nª
+::
+C®lback
+& 
+ÿÎback
+
+
+1855 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»cv
+
+
+1856 , 
+¬gc
+
+
+1857 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+1858  
+C®l
+(*
+ÿÎback
+, 
+»cv
+, 
+¬gc
+, 
+¬gv
+);
+
+1861 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®l
+(
+
+1862 cÚ¡ 
+Nª
+::
+C®lback
+& 
+ÿÎback
+
+
+1863 , 
+¬gc
+
+
+1864 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+1865 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+1866 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+1867 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+1868  
+	gscÝe
+.
+Esÿ³
+(
+
+1869 
+C®l
+(*
+ÿÎback
+, 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+()->
+Glob®
+(), 
+¬gc
+, 
+¬gv
+)
+
+1870 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1872 
+Esÿ·bËHªdËScÝe
+ 
+	gscÝe
+;
+
+1873  
+	gscÝe
+.
+Esÿ³
+(
+
+1874 
+C®l
+(*
+ÿÎback
+, 
+v8
+::
+CÚ‹xt
+::
+G‘Cu¼’t
+()->
+Glob®
+(), 
+¬gc
+, 
+¬gv
+)
+
+1875 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1879 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®l
+(
+
+1880 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+symbÞ
+
+
+1881 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»cv
+
+
+1882 , 
+¬gc
+
+
+1883 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+1884 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1885 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+â_v
+ =
+
+1886 
+G‘
+(
+»cv
+, 
+symbÞ
+).
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+1887 ià(
+	gâ_v
+.
+IsEm±y
+(è|| !â_v->
+IsFunùiÚ
+()è 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+>();
+
+1888 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚ
+> 
+â
+ = 
+â_v
+.
+As
+<v8::Function>();
+
+1889  
+	gscÝe
+.
+Esÿ³
+(
+
+1890 
+C®l
+(
+â
+, 
+»cv
+, 
+¬gc
+, 
+¬gv
+).
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1893 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®l
+(
+
+1894 cÚ¡ * 
+m‘hod
+
+
+1895 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»cv
+
+
+1896 , 
+¬gc
+
+
+1897 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+1898 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1899 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+m‘hod_¡ršg
+ =
+
+1900 
+New
+<
+v8
+::
+SŒšg
+>(
+m‘hod
+).
+ToLoÿlChecked
+();
+
+1901  
+	gscÝe
+.
+Esÿ³
+(
+
+1902 
+C®l
+(
+m‘hod_¡ršg
+, 
+»cv
+, 
+¬gc
+, 
+¬gv
+).
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1905  cÏs 
+	cAsyncWÜk”
+ {
+
+1906 
+	gpublic
+:
+
+1907 
+ex¶ic™
+ 
+AsyncWÜk”
+(
+C®lback
+ *
+ÿÎback_
+,
+
+1908 cÚ¡ * 
+»sourû_Çme
+ = "nan:AsyncWorker")
+
+1909 : 
+ÿÎback
+(
+ÿÎback_
+), 
+”rmsg_
+(
+NULL
+) {
+
+1910 
+	g»que¡
+.
+	gd©a
+ = 
+this
+;
+
+1912 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+1913 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+New
+<v8::Object>();
+
+1914 
+	g³rsi¡’tHªdË
+.
+Re£t
+(
+obj
+);
+
+1915 
+	gasync_»sourû
+ = 
+Ãw
+ 
+AsyncResourû
+(
+»sourû_Çme
+, 
+obj
+);
+
+1918 
+	gvœtu®
+ ~
+AsyncWÜk”
+() {
+
+1919 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+1921 ià(!
+	g³rsi¡’tHªdË
+.
+IsEm±y
+())
+
+1922 
+	g³rsi¡’tHªdË
+.
+Re£t
+();
+
+1923 
+d–‘e
+ 
+	gÿÎback
+;
+
+1924 
+	gd–‘e
+[] 
+	g”rmsg_
+;
+
+1925 
+d–‘e
+ 
+	gasync_»sourû
+;
+
+1928 
+vœtu®
+ 
+WÜkCom¶‘e
+() {
+
+1929 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+1931 ià(
+	g”rmsg_
+ =ð
+NULL
+)
+
+1932 
+HªdËOKC®lback
+();
+
+1934 
+HªdËE¼ÜC®lback
+();
+
+1935 
+d–‘e
+ 
+	gÿÎback
+;
+
+1936 
+	gÿÎback
+ = 
+NULL
+;
+
+1939 
+šlše
+ 
+SaveToP”si¡’t
+(
+
+1940 cÚ¡ *
+key
+, cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> &
+v®ue
+) {
+
+1941 
+HªdËScÝe
+ 
+scÝe
+;
+
+1942 
+S‘
+(
+New
+(
+³rsi¡’tHªdË
+), New(
+key
+).
+ToLoÿlChecked
+(), 
+v®ue
+).
+FromJu¡
+();
+
+1945 
+šlše
+ 
+SaveToP”si¡’t
+(
+
+1946 cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> &
+key
+, cÚ¡ v8::Loÿl<v8::
+V®ue
+> &
+v®ue
+) {
+
+1947 
+HªdËScÝe
+ 
+scÝe
+;
+
+1948 
+S‘
+(
+New
+(
+³rsi¡’tHªdË
+), 
+key
+, 
+v®ue
+).
+FromJu¡
+();
+
+1951 
+šlše
+ 
+SaveToP”si¡’t
+(
+
+1952 
+ušt32_t
+ 
+šdex
+, cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> &
+v®ue
+) {
+
+1953 
+HªdËScÝe
+ 
+scÝe
+;
+
+1954 
+S‘
+(
+New
+(
+³rsi¡’tHªdË
+), 
+šdex
+, 
+v®ue
+).
+FromJu¡
+();
+
+1957 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+G‘FromP”si¡’t
+(cÚ¡ *
+key
+) const {
+
+1958 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1959  
+	gscÝe
+.
+Esÿ³
+(
+
+1960 
+G‘
+(
+New
+(
+³rsi¡’tHªdË
+), New(
+key
+).
+ToLoÿlChecked
+())
+
+1961 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1964 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+>
+
+1965 
+G‘FromP”si¡’t
+(cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> &
+key
+) const {
+
+1966 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1967  
+	gscÝe
+.
+Esÿ³
+(
+
+1968 
+G‘
+(
+New
+(
+³rsi¡’tHªdË
+), 
+key
+)
+
+1969 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1972 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+G‘FromP”si¡’t
+(
+ušt32_t
+ 
+šdex
+) const {
+
+1973 
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+1974  
+	gscÝe
+.
+Esÿ³
+(
+
+1975 
+G‘
+(
+New
+(
+³rsi¡’tHªdË
+), 
+šdex
+)
+
+1976 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+1979 
+vœtu®
+ 
+Execu‹
+() = 0;
+
+1981 
+uv_wÜk_t
+ 
+	g»que¡
+;
+
+1983 
+vœtu®
+ 
+De¡roy
+() {
+
+1984 
+d–‘e
+ 
+	gthis
+;
+
+1987 
+	g´Ùeùed
+:
+
+1988 
+P”si¡’t
+<
+v8
+::
+Objeù
+> 
+³rsi¡’tHªdË
+;
+
+1989 
+C®lback
+ *
+	gÿÎback
+;
+
+1990 
+AsyncResourû
+ *
+	gasync_»sourû
+;
+
+1992 
+vœtu®
+ 
+HªdËOKC®lback
+() {
+
+1993 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+1995 
+	gÿÎback
+->
+C®l
+(0, 
+NULL
+, 
+async_»sourû
+);
+
+1998 
+vœtu®
+ 
+HªdËE¼ÜC®lback
+() {
+
+1999 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+2001 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+¬gv
+[] = {
+
+2002 
+v8
+::
+Exû±iÚ
+::
+E¼Ü
+(
+New
+<v8::
+SŒšg
+>(
+E¼ÜMes§ge
+()).
+ToLoÿlChecked
+())
+
+2004 
+	gÿÎback
+->
+C®l
+(1, 
+¬gv
+, 
+async_»sourû
+);
+
+2007 
+S‘E¼ÜMes§ge
+(cÚ¡ *
+msg
+) {
+
+2008 
+	gd–‘e
+[] 
+	g”rmsg_
+;
+
+2010 
+size_t
+ 
+	gsize
+ = 
+¡¾’
+(
+msg
+) + 1;
+
+2011 
+	g”rmsg_
+ = 
+Ãw
+ [
+size
+];
+
+2012 
+memýy
+(
+”rmsg_
+, 
+msg
+, 
+size
+);
+
+2015 cÚ¡ * 
+E¼ÜMes§ge
+() const {
+
+2016  
+	g”rmsg_
+;
+
+2019 
+	g´iv©e
+:
+
+2020 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+AsyncWÜk”
+)
+
+2021 *
+”rmsg_
+;
+
+2024  cÏs 
+	cAsyncB¬eProg»ssWÜk”Ba£
+ : 
+public
+ 
+AsyncWÜk”
+ {
+
+2025 
+public
+:
+
+2026 
+ex¶ic™
+ 
+AsyncB¬eProg»ssWÜk”Ba£
+(
+
+2027 
+C®lback
+ *
+ÿÎback_
+,
+
+2028 cÚ¡ * 
+»sourû_Çme
+ = "nan:AsyncBareProgressWorkerBase")
+
+2029 : 
+AsyncWÜk”
+(
+ÿÎback_
+, 
+»sourû_Çme
+) {
+
+2030 
+uv_async_š™
+(
+
+2031 
+G‘Cu¼’tEv’tLoÝ
+()
+
+2032 , &
+async
+
+
+2033 , 
+AsyncProg»ss_
+
+
+2035 
+	gasync
+.
+	gd©a
+ = 
+this
+;
+
+2038 
+	gvœtu®
+ ~
+AsyncB¬eProg»ssWÜk”Ba£
+() {
+
+2041 
+vœtu®
+ 
+WÜkProg»ss
+() = 0;
+
+2043 
+vœtu®
+ 
+De¡roy
+() {
+
+2044 
+uv_þo£
+(
+»š‹½»t_ÿ¡
+<
+uv_hªdË_t
+*>(&
+async
+), 
+AsyncClo£_
+);
+
+2047 
+	g´iv©e
+:
+
+2048 
+šlše
+ 
+NAUV_WORK_CB
+(
+AsyncProg»ss_
+) {
+
+2049 
+AsyncB¬eProg»ssWÜk”Ba£
+ *
+wÜk”
+ =
+
+2050 
+¡©ic_ÿ¡
+<
+AsyncB¬eProg»ssWÜk”Ba£
+*>(
+async
+->
+d©a
+);
+
+2051 
+	gwÜk”
+->
+WÜkProg»ss
+();
+
+2054 
+šlše
+ 
+AsyncClo£_
+(
+uv_hªdË_t
+* 
+hªdË
+) {
+
+2055 
+AsyncB¬eProg»ssWÜk”Ba£
+ *
+	gwÜk”
+ =
+
+2056 
+¡©ic_ÿ¡
+<
+AsyncB¬eProg»ssWÜk”Ba£
+*>(
+hªdË
+->
+d©a
+);
+
+2057 
+d–‘e
+ 
+	gwÜk”
+;
+
+2060 
+	g´Ùeùed
+:
+
+2061 
+uv_async_t
+ 
+async
+;
+
+2064 
+	g‹m¶©e
+<
+þass
+ 
+	gT
+>
+
+2066 þas 
+	cAsyncB¬eProg»ssWÜk”
+ : 
+public
+ 
+AsyncB¬eProg»ssWÜk”Ba£
+ {
+
+2067 
+public
+:
+
+2068 
+ex¶ic™
+ 
+AsyncB¬eProg»ssWÜk”
+(
+
+2069 
+C®lback
+ *
+ÿÎback_
+,
+
+2070 cÚ¡ * 
+»sourû_Çme
+ = "nan:AsyncBareProgressWorker")
+
+2071 : 
+AsyncB¬eProg»ssWÜk”Ba£
+(
+ÿÎback_
+, 
+»sourû_Çme
+) {
+
+2072 
+uv_mu‹x_š™
+(&
+async_lock
+);
+
+2075 
+	gvœtu®
+ ~
+AsyncB¬eProg»ssWÜk”
+() {
+
+2076 
+uv_mu‹x_de¡roy
+(&
+async_lock
+);
+
+2079 þas 
+	cExecutiÚProg»ss
+ {
+
+2080 
+ä›nd
+ 
+þass
+ 
+	gAsyncB¬eProg»ssWÜk”
+;
+
+2081 
+	gpublic
+:
+
+2082 
+SigÇl
+() const {
+
+2083 
+uv_mu‹x_lock
+(&
+th©_
+->
+async_lock
+);
+
+2084 
+uv_async_£nd
+(&
+th©_
+->
+async
+);
+
+2085 
+uv_mu‹x_uÆock
+(&
+th©_
+->
+async_lock
+);
+
+2088 
+S’d
+(cÚ¡ 
+T
+* 
+d©a
+, 
+size_t
+ 
+couÁ
+) const {
+
+2089 
+	gth©_
+->
+S’dProg»ss_
+(
+d©a
+, 
+couÁ
+);
+
+2092 
+	g´iv©e
+:
+
+2093 
+ex¶ic™
+ 
+ExecutiÚProg»ss
+(
+AsyncB¬eProg»ssWÜk”
+ *
+th©
+è: 
+th©_
+(that) {}
+
+2094 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+ExecutiÚProg»ss
+)
+
+2095 
+AsyncB¬eProg»ssWÜk”
+* cÚ¡ 
+th©_
+;
+
+2098 
+vœtu®
+ 
+Execu‹
+(cÚ¡ 
+ExecutiÚProg»ss
+& 
+´og»ss
+) = 0;
+
+2099 
+vœtu®
+ 
+HªdËProg»ssC®lback
+(cÚ¡ 
+T
+ *
+d©a
+, 
+size_t
+ 
+size
+) = 0;
+
+2101 
+	g´Ùeùed
+:
+
+2102 
+uv_mu‹x_t
+ 
+async_lock
+;
+
+2104 
+	g´iv©e
+:
+
+2105 
+Execu‹
+() {
+
+2106 
+ExecutiÚProg»ss
+ 
+´og»ss
+(
+this
+);
+
+2107 
+Execu‹
+(
+´og»ss
+);
+
+2110 
+vœtu®
+ 
+S’dProg»ss_
+(cÚ¡ 
+T
+ *
+d©a
+, 
+size_t
+ 
+couÁ
+) = 0;
+
+2113 
+	g‹m¶©e
+<
+þass
+ 
+	gT
+>
+
+2115 
+þass
+ 
+	gAsyncProg»ssWÜk”Ba£
+ : 
+public
+ 
+AsyncB¬eProg»ssWÜk”
+<
+T
+> {
+
+2116 
+public
+:
+
+2117 
+ex¶ic™
+ 
+AsyncProg»ssWÜk”Ba£
+(
+
+2118 
+C®lback
+ *
+ÿÎback_
+,
+
+2119 cÚ¡ * 
+»sourû_Çme
+ = "nan:AsyncProgressWorkerBase")
+
+2120 : 
+AsyncB¬eProg»ssWÜk”
+<
+T
+>(
+ÿÎback_
+, 
+	g»sourû_Çme
+), 
+asyncd©a_
+(
+NULL
+),
+
+2121 
+asyncsize_
+(0) {
+
+2124 
+	gvœtu®
+ ~
+AsyncProg»ssWÜk”Ba£
+() {
+
+2125 
+	gd–‘e
+[] 
+	gasyncd©a_
+;
+
+2128 
+WÜkProg»ss
+() {
+
+2129 
+uv_mu‹x_lock
+(&
+this
+->
+async_lock
+);
+
+2130 
+T
+ *
+	gd©a
+ = 
+asyncd©a_
+;
+
+2131 
+size_t
+ 
+	gsize
+ = 
+asyncsize_
+;
+
+2132 
+	gasyncd©a_
+ = 
+NULL
+;
+
+2133 
+	gasyncsize_
+ = 0;
+
+2134 
+uv_mu‹x_uÆock
+(&
+this
+->
+async_lock
+);
+
+2137 ià(
+	gthis
+->
+	gÿÎback
+) {
+
+2138 
+	gthis
+->
+HªdËProg»ssC®lback
+(
+d©a
+, 
+size
+);
+
+2140 
+	gd–‘e
+[] 
+	gd©a
+;
+
+2143 
+	g´iv©e
+:
+
+2144 
+S’dProg»ss_
+(cÚ¡ 
+T
+ *
+d©a
+, 
+size_t
+ 
+couÁ
+) {
+
+2145 
+T
+ *
+	gÃw_d©a
+ = 
+Ãw
+ T[
+couÁ
+];
+
+2146 
+	g¡d
+::
+cÝy
+(
+d©a
+, d©¨+ 
+couÁ
+, 
+Ãw_d©a
+);
+
+2148 
+uv_mu‹x_lock
+(&
+this
+->
+async_lock
+);
+
+2149 
+T
+ *
+	gÞd_d©a
+ = 
+asyncd©a_
+;
+
+2150 
+	gasyncd©a_
+ = 
+Ãw_d©a
+;
+
+2151 
+	gasyncsize_
+ = 
+couÁ
+;
+
+2152 
+uv_async_£nd
+(&
+this
+->
+async
+);
+
+2153 
+uv_mu‹x_uÆock
+(&
+this
+->
+async_lock
+);
+
+2155 
+	gd–‘e
+[] 
+	gÞd_d©a
+;
+
+2158 
+T
+ *
+	gasyncd©a_
+;
+
+2159 
+size_t
+ 
+	gasyncsize_
+;
+
+2164 
+	gAsyncProg»ssWÜk”Ba£
+<> 
+	tAsyncProg»ssWÜk”
+;
+
+2166 
+	g‹m¶©e
+<
+þass
+ 
+	gT
+>
+
+2168 þas 
+	cAsyncB¬eProg»ssQueueWÜk”
+ : 
+public
+ 
+AsyncB¬eProg»ssWÜk”Ba£
+ {
+
+2169 
+public
+:
+
+2170 
+ex¶ic™
+ 
+AsyncB¬eProg»ssQueueWÜk”
+(
+
+2171 
+C®lback
+ *
+ÿÎback_
+,
+
+2172 cÚ¡ * 
+»sourû_Çme
+ = "nan:AsyncBareProgressQueueWorker")
+
+2173 : 
+AsyncB¬eProg»ssWÜk”Ba£
+(
+ÿÎback_
+, 
+»sourû_Çme
+) {
+
+2176 
+	gvœtu®
+ ~
+AsyncB¬eProg»ssQueueWÜk”
+() {
+
+2179 þas 
+	cExecutiÚProg»ss
+ {
+
+2180 
+ä›nd
+ 
+þass
+ 
+	gAsyncB¬eProg»ssQueueWÜk”
+;
+
+2181 
+	gpublic
+:
+
+2182 
+S’d
+(cÚ¡ 
+T
+* 
+d©a
+, 
+size_t
+ 
+couÁ
+) const {
+
+2183 
+	gth©_
+->
+S’dProg»ss_
+(
+d©a
+, 
+couÁ
+);
+
+2186 
+	g´iv©e
+:
+
+2187 
+ex¶ic™
+ 
+ExecutiÚProg»ss
+(
+AsyncB¬eProg»ssQueueWÜk”
+ *
+th©
+)
+
+2188 : 
+th©_
+(
+th©
+) {}
+
+2189 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+ExecutiÚProg»ss
+)
+
+2190 
+AsyncB¬eProg»ssQueueWÜk”
+* cÚ¡ 
+th©_
+;
+
+2193 
+vœtu®
+ 
+Execu‹
+(cÚ¡ 
+ExecutiÚProg»ss
+& 
+´og»ss
+) = 0;
+
+2194 
+vœtu®
+ 
+HªdËProg»ssC®lback
+(cÚ¡ 
+T
+ *
+d©a
+, 
+size_t
+ 
+size
+) = 0;
+
+2196 
+	g´iv©e
+:
+
+2197 
+Execu‹
+() {
+
+2198 
+ExecutiÚProg»ss
+ 
+´og»ss
+(
+this
+);
+
+2199 
+Execu‹
+(
+´og»ss
+);
+
+2202 
+vœtu®
+ 
+S’dProg»ss_
+(cÚ¡ 
+T
+ *
+d©a
+, 
+size_t
+ 
+couÁ
+) = 0;
+
+2205 
+	g‹m¶©e
+<
+þass
+ 
+	gT
+>
+
+2207 
+þass
+ 
+	gAsyncProg»ssQueueWÜk”
+ : 
+public
+ 
+AsyncB¬eProg»ssQueueWÜk”
+<
+T
+> {
+
+2208 
+public
+:
+
+2209 
+ex¶ic™
+ 
+AsyncProg»ssQueueWÜk”
+(
+
+2210 
+C®lback
+ *
+ÿÎback_
+,
+
+2211 cÚ¡ * 
+»sourû_Çme
+ = "nan:AsyncProgressQueueWorker")
+
+2212 : 
+AsyncB¬eProg»ssQueueWÜk”
+<
+T
+>(
+ÿÎback_
+) {
+
+2213 
+uv_mu‹x_š™
+(&
+async_lock
+);
+
+2216 
+	gvœtu®
+ ~
+AsyncProg»ssQueueWÜk”
+() {
+
+2217 
+uv_mu‹x_lock
+(&
+async_lock
+);
+
+2219 !
+	gasyncd©a_
+.
+em±y
+()) {
+
+2220 
+	g¡d
+::
+·œ
+<
+T
+*, 
+	gsize_t
+> &
+	gd©­aœ
+ = 
+asyncd©a_
+.
+äÚt
+();
+
+2221 
+T
+ *
+	gd©a
+ = 
+d©­aœ
+.
+fœ¡
+;
+
+2223 
+	gasyncd©a_
+.
+pÝ
+();
+
+2225 
+	gd–‘e
+[] 
+	gd©a
+;
+
+2228 
+uv_mu‹x_uÆock
+(&
+async_lock
+);
+
+2229 
+uv_mu‹x_de¡roy
+(&
+async_lock
+);
+
+2232 
+WÜkCom¶‘e
+() {
+
+2233 
+WÜkProg»ss
+();
+
+2234 
+	gAsyncWÜk”
+::
+WÜkCom¶‘e
+();
+
+2237 
+WÜkProg»ss
+() {
+
+2238 
+uv_mu‹x_lock
+(&
+async_lock
+);
+
+2240 !
+	gasyncd©a_
+.
+em±y
+()) {
+
+2241 
+	g¡d
+::
+·œ
+<
+T
+*, 
+	gsize_t
+> &
+	gd©­aœ
+ = 
+asyncd©a_
+.
+äÚt
+();
+
+2243 
+T
+ *
+	gd©a
+ = 
+d©­aœ
+.
+fœ¡
+;
+
+2244 
+size_t
+ 
+	gsize
+ = 
+d©­aœ
+.
+£cÚd
+;
+
+2246 
+	gasyncd©a_
+.
+pÝ
+();
+
+2247 
+uv_mu‹x_uÆock
+(&
+async_lock
+);
+
+2250 ià(
+	gthis
+->
+	gÿÎback
+) {
+
+2251 
+	gthis
+->
+HªdËProg»ssC®lback
+(
+d©a
+, 
+size
+);
+
+2254 
+	gd–‘e
+[] 
+	gd©a
+;
+
+2256 
+uv_mu‹x_lock
+(&
+async_lock
+);
+
+2259 
+uv_mu‹x_uÆock
+(&
+async_lock
+);
+
+2262 
+	g´iv©e
+:
+
+2263 
+S’dProg»ss_
+(cÚ¡ 
+T
+ *
+d©a
+, 
+size_t
+ 
+couÁ
+) {
+
+2264 
+T
+ *
+	gÃw_d©a
+ = 
+Ãw
+ T[
+couÁ
+];
+
+2265 
+	g¡d
+::
+cÝy
+(
+d©a
+, d©¨+ 
+couÁ
+, 
+Ãw_d©a
+);
+
+2267 
+uv_mu‹x_lock
+(&
+async_lock
+);
+
+2268 
+	gasyncd©a_
+.
+push
+(
+¡d
+::
+·œ
+<
+T
+*, 
+size_t
+>(
+Ãw_d©a
+, 
+couÁ
+));
+
+2269 
+uv_mu‹x_uÆock
+(&
+async_lock
+);
+
+2271 
+uv_async_£nd
+(&
+this
+->
+async
+);
+
+2274 
+uv_mu‹x_t
+ 
+	gasync_lock
+;
+
+2275 
+	g¡d
+::
+queue
+<
+¡d
+::
+·œ
+<
+T
+*, 
+	gsize_t
+> > 
+	gasyncd©a_
+;
+
+2278 
+šlše
+ 
+	$AsyncExecu‹
+ (
+uv_wÜk_t
+* 
+»q
+) {
+
+2279 
+AsyncWÜk”
+ *
+wÜk”
+ = 
+¡©ic_ÿ¡
+<AsyncWÜk”*>(
+»q
+->
+d©a
+);
+
+2280 
+wÜk”
+->
+	`Execu‹
+();
+
+2281 
+	}
+}
+
+2283 
+šlše
+ 
+	$AsyncExecu‹Com¶‘e
+ (
+uv_wÜk_t
+* 
+»q
+) {
+
+2284 
+AsyncWÜk”
+* 
+wÜk”
+ = 
+¡©ic_ÿ¡
+<AsyncWÜk”*>(
+»q
+->
+d©a
+);
+
+2285 
+wÜk”
+->
+	`WÜkCom¶‘e
+();
+
+2286 
+wÜk”
+->
+	`De¡roy
+();
+
+2287 
+	}
+}
+
+2289 
+šlše
+ 
+	$AsyncQueueWÜk”
+ (
+AsyncWÜk”
+* 
+wÜk”
+) {
+
+2290 
+	`uv_queue_wÜk
+(
+
+2291 
+	`G‘Cu¼’tEv’tLoÝ
+()
+
+2292 , &
+wÜk”
+->
+»que¡
+
+
+2293 , 
+AsyncExecu‹
+
+
+2294 , 
+»š‹½»t_ÿ¡
+<
+uv_aá”_wÜk_cb
+>(
+AsyncExecu‹Com¶‘e
+)
+
+2296 
+	}
+}
+
+2298 
+Çme¥aû
+ 
+	gimp
+ {
+
+2300 
+šlše
+
+
+2301 
+Ex‹º®OÃBy‹SŒšgResourû
+ const*
+
+2302 
+G‘Ex‹º®Resourû
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+¡r
+) {
+
+2303 #ià
+NODE_MODULE_VERSION
+ < 
+ATOM_0_21_MODULE_VERSION
+
+
+2304  
+¡r
+->
+G‘Ex‹º®AsciiSŒšgResourû
+();
+
+2306  
+	g¡r
+->
+G‘Ex‹º®OÃBy‹SŒšgResourû
+();
+
+2310 
+šlše
+
+
+2311 
+boÞ
+
+
+2312 
+IsEx‹º®
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+¡r
+) {
+
+2313 #ià
+NODE_MODULE_VERSION
+ < 
+ATOM_0_21_MODULE_VERSION
+
+
+2314  
+¡r
+->
+IsEx‹º®Ascii
+();
+
+2316  
+	g¡r
+->
+IsEx‹º®OÃBy‹
+();
+
+2322 
+	eEncodšg
+ {
+	gASCII
+, 
+	gUTF8
+, 
+	gBASE64
+, 
+	gUCS2
+, 
+	gBINARY
+, 
+	gHEX
+, 
+	gBUFFER
+};
+
+2324 #ià
+NODE_MODULE_VERSION
+ < 
+NODE_0_10_MODULE_VERSION
+
+
+2325 
+	~"Çn_¡ršg_by‹s.h
+"
+
+2328 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$Encode
+(
+
+2329 cÚ¡ *
+buf
+, 
+size_t
+ 
+Ën
+, 
+Encodšg
+ 
+’codšg
+ = 
+BINARY
+) {
+
+2330 #ià(
+NODE_MODULE_VERSION
+ >ð
+ATOM_0_21_MODULE_VERSION
+)
+
+2331 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+2332 
+node
+::
+’codšg
+ 
+node_’c
+ = 
+¡©ic_ÿ¡
+<node::encoding>(encoding);
+
+2334 ià(
+’codšg
+ =ð
+UCS2
+) {
+
+2335  
+node
+::
+	`Encode
+(
+
+2336 
+isÞ©e
+
+
+2337 , 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt16_t
+ *>(
+buf
+)
+
+2338 , 
+Ën
+ / 2);
+
+2340  
+node
+::
+	`Encode
+(
+
+2341 
+isÞ©e
+
+
+2342 , 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+buf
+)
+
+2343 , 
+Ën
+
+
+2344 , 
+node_’c
+);
+
+2346 #–ià(
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+)
+
+2347  
+node
+::
+	`Encode
+(
+
+2348 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+()
+
+2349 , 
+buf
+, 
+Ën
+
+
+2350 , 
+¡©ic_ÿ¡
+<
+node
+::
+’codšg
+>(encoding));
+
+2352 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_0_10_MODULE_VERSION
+
+
+2353  
+node
+::
+	`Encode
+(
+buf
+, 
+Ën
+, 
+¡©ic_ÿ¡
+<node::
+’codšg
+>(encoding));
+
+2355  
+imp
+::
+	`Encode
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+buf
+), 
+Ën
+, 
+’codšg
+);
+
+2358 
+	}
+}
+
+2360 
+šlše
+ 
+ssize_t
+ 
+DecodeBy‹s
+(
+
+2361 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+, 
+Encodšg
+ 
+’codšg
+ = 
+BINARY
+) {
+
+2362 #ià(
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+)
+
+2363  
+node
+::
+DecodeBy‹s
+(
+
+2364 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+()
+
+2365 , 
+v®
+
+
+2366 , 
+¡©ic_ÿ¡
+<
+node
+::
+’codšg
+>(encoding));
+
+2368 #ià(
+NODE_MODULE_VERSION
+ < 
+NODE_0_10_MODULE_VERSION
+)
+
+2369 ià(
+	g’codšg
+ =ð
+BUFFER
+) {
+
+2370  
+node
+::
+DecodeBy‹s
+(
+v®
+,‚ode::
+BINARY
+);
+
+2373  
+	gnode
+::
+DecodeBy‹s
+(
+v®
+, 
+¡©ic_ÿ¡
+<
+node
+::
+’codšg
+>(encoding));
+
+2377 
+šlše
+ 
+ssize_t
+ 
+DecodeWr™e
+(
+
+2378 *
+buf
+
+
+2379 , 
+size_t
+ 
+Ën
+
+
+2380 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+
+
+2381 , 
+Encodšg
+ 
+’codšg
+ = 
+BINARY
+) {
+
+2382 #ià(
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+)
+
+2383  
+node
+::
+DecodeWr™e
+(
+
+2384 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+()
+
+2385 , 
+buf
+
+
+2386 , 
+Ën
+
+
+2387 , 
+v®
+
+
+2388 , 
+¡©ic_ÿ¡
+<
+node
+::
+’codšg
+>(encoding));
+
+2390 #ià(
+NODE_MODULE_VERSION
+ < 
+NODE_0_10_MODULE_VERSION
+)
+
+2391 ià(
+	g’codšg
+ =ð
+BUFFER
+) {
+
+2392  
+node
+::
+DecodeWr™e
+(
+buf
+, 
+Ën
+, 
+v®
+,‚ode::
+BINARY
+);
+
+2395  
+	gnode
+::
+DecodeWr™e
+(
+
+2396 
+buf
+
+
+2397 , 
+Ën
+
+
+2398 , 
+v®
+
+
+2399 , 
+¡©ic_ÿ¡
+<
+node
+::
+’codšg
+>(encoding));
+
+2403 
+šlše
+ 
+S‘PrÙÙy³Tem¶©e
+(
+
+2404 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+‹m¶
+
+
+2405 , cÚ¡ *
+Çme
+
+
+2406 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+
+
+2408 
+HªdËScÝe
+ 
+scÝe
+;
+
+2409 
+S‘Tem¶©e
+(
+‹m¶
+->
+PrÙÙy³Tem¶©e
+(), 
+Çme
+, 
+v®ue
+);
+
+2412 
+šlše
+ 
+S‘PrÙÙy³Tem¶©e
+(
+
+2413 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+‹m¶
+
+
+2414 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+
+
+2415 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+
+
+2416 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibu‹s
+
+
+2418 
+HªdËScÝe
+ 
+scÝe
+;
+
+2419 
+S‘Tem¶©e
+(
+‹m¶
+->
+PrÙÙy³Tem¶©e
+(), 
+Çme
+, 
+v®ue
+, 
+©Œibu‹s
+);
+
+2422 
+šlše
+ 
+S‘In¡ªûTem¶©e
+(
+
+2423 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+‹m¶
+
+
+2424 , cÚ¡ *
+Çme
+
+
+2425 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+
+
+2427 
+HªdËScÝe
+ 
+scÝe
+;
+
+2428 
+S‘Tem¶©e
+(
+‹m¶
+->
+In¡ªûTem¶©e
+(), 
+Çme
+, 
+v®ue
+);
+
+2431 
+šlše
+ 
+S‘In¡ªûTem¶©e
+(
+
+2432 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+‹m¶
+
+
+2433 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+
+
+2434 , 
+v8
+::
+Loÿl
+<v8::
+D©a
+> 
+v®ue
+
+
+2435 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibu‹s
+
+
+2437 
+HªdËScÝe
+ 
+scÝe
+;
+
+2438 
+S‘Tem¶©e
+(
+‹m¶
+->
+In¡ªûTem¶©e
+(), 
+Çme
+, 
+v®ue
+, 
+©Œibu‹s
+);
+
+2441 
+Çme¥aû
+ 
+	gimp
+ {
+
+2447 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+2448 
+šlše
+
+
+2450 
+S‘M‘hodAux
+(
+T
+ 
+»cv
+,
+
+2451 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+,
+
+2452 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+�l
+,
+
+2453 
+v8
+::
+Tem¶©e
+ *) {
+
+2454 
+»cv
+->
+S‘
+(
+Çme
+, 
+�l
+);
+
+2457 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+2458 
+šlše
+
+
+2460 
+S‘M‘hodAux
+(
+T
+ 
+»cv
+,
+
+2461 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+,
+
+2462 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+�l
+,
+
+2464 
+S‘
+(
+»cv
+, 
+Çme
+, 
+G‘FunùiÚ
+(
+�l
+).
+ToLoÿlChecked
+());
+
+2469 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�em¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gHªdËTy³
+>
+
+2470 
+šlše
+ 
+S‘M‘hod
+(
+
+2471 
+HªdËTy³
+<
+T
+> 
+»cv
+
+
+2472 , cÚ¡ *
+Çme
+
+
+2473 , 
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+2474 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()) {
+
+2475 
+HªdËScÝe
+ 
+scÝe
+;
+
+2476 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚTem¶©e
+> 
+t
+ = 
+New
+<v8::FunùiÚTem¶©e>(
+ÿÎback
+, 
+	gd©a
+);
+
+2477 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+â_Çme
+ = 
+New
+(
+Çme
+).
+ToLoÿlChecked
+();
+
+2478 
+	gt
+->
+S‘CÏssName
+(
+â_Çme
+);
+
+2481 
+	gimp
+::
+S‘M‘hodAux
+(
+»cv
+, 
+â_Çme
+, 
+t
+, 
+¡©ic_ÿ¡
+<
+T
+*>(0));
+
+2484 
+šlše
+ 
+S‘PrÙÙy³M‘hod
+(
+
+2485 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+»cv
+
+
+2486 , cÚ¡ * 
+Çme
+
+
+2487 , 
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+2488 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()) {
+
+2489 
+HªdËScÝe
+ 
+scÝe
+;
+
+2490 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚTem¶©e
+> 
+t
+ = 
+New
+<v8::FunctionTemplate>(
+
+2491 
+ÿÎback
+
+
+2492 , 
+	gd©a
+
+
+2493 , 
+	gNew
+<
+	gv8
+::
+SigÇtu»
+>(
+»cv
+));
+
+2494 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+> 
+â_Çme
+ = 
+New
+(
+Çme
+).
+ToLoÿlChecked
+();
+
+2495 
+	g»cv
+->
+PrÙÙy³Tem¶©e
+()->
+S‘
+(
+â_Çme
+, 
+t
+);
+
+2496 
+	gt
+->
+S‘CÏssName
+(
+â_Çme
+);
+
+2501 
+šlše
+ 
+S‘AcûssÜ
+(
+
+2502 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+�l
+
+
+2503 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+
+
+2504 , 
+G‘‹rC®lback
+ 
+g‘‹r
+
+
+2505 , 
+S‘‹rC®lback
+ 
+£‰”
+ = 0
+
+2506 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()
+
+2507 , 
+v8
+::
+AcûssCÚŒÞ
+ 
+£‰šgs
+ = v8::
+DEFAULT
+
+
+2508 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibu‹
+ = v8::
+NÚe
+
+
+2509 , 
+imp
+::
+Sig
+ 
+sigÇtu»
+ = imp::
+	$Sig
+()) {
+
+2510 
+HªdËScÝe
+ 
+scÝe
+;
+
+2512 
+imp
+::
+N©iveG‘‹r
+ 
+g‘‹r_
+ =
+
+2513 
+imp
+::
+G‘‹rC®lbackW¿µ”
+;
+
+2514 
+imp
+::
+N©iveS‘‹r
+ 
+£‰”_
+ =
+
+2515 
+£‰”
+ ? 
+imp
+::
+S‘‹rC®lbackW¿µ”
+ : 0;
+
+2517 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+Ù¶
+ = 
+New
+<v8::ObjectTemplate>();
+
+2518 
+Ù¶
+->
+	`S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kAcûssÜF›ldCouÁ
+);
+
+2519 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+	`NewIn¡ªû
+(
+Ù¶
+).
+	`ToLoÿlChecked
+();
+
+2521 
+obj
+->
+	`S‘IÁ”ÇlF›ld
+(
+
+2522 
+imp
+::
+kG‘‹rIndex
+
+
+2523 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+g‘‹r
+)));
+
+2525 ià(
+£‰”
+ != 0) {
+
+2526 
+obj
+->
+	`S‘IÁ”ÇlF›ld
+(
+
+2527 
+imp
+::
+kS‘‹rIndex
+
+
+2528 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+£‰”
+)));
+
+2531 ià(!
+d©a
+.
+	`IsEm±y
+()) {
+
+2532 
+obj
+->
+	`S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+d©a
+);
+
+2535 
+�l
+->
+	`S‘AcûssÜ
+(
+
+2536 
+Çme
+
+
+2537 , 
+g‘‹r_
+
+
+2538 , 
+£‰”_
+
+
+2539 , 
+obj
+
+
+2540 , 
+£‰šgs
+
+
+2541 , 
+©Œibu‹
+
+
+2542 , 
+sigÇtu»
+);
+
+2543 
+	}
+}
+
+2545 
+šlše
+ 
+boÞ
+ 
+S‘AcûssÜ
+(
+
+2546 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+2547 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+Çme
+
+
+2548 , 
+G‘‹rC®lback
+ 
+g‘‹r
+
+
+2549 , 
+S‘‹rC®lback
+ 
+£‰”
+ = 0
+
+2550 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()
+
+2551 , 
+v8
+::
+AcûssCÚŒÞ
+ 
+£‰šgs
+ = v8::
+DEFAULT
+
+
+2552 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibu‹
+ = v8::
+NÚe
+) {
+
+2553 
+HªdËScÝe
+ 
+scÝe
+;
+
+2555 
+	gimp
+::
+N©iveG‘‹r
+ 
+g‘‹r_
+ =
+
+2556 
+imp
+::
+G‘‹rC®lbackW¿µ”
+;
+
+2557 
+	gimp
+::
+N©iveS‘‹r
+ 
+£‰”_
+ =
+
+2558 
+£‰”
+ ? 
+imp
+::
+S‘‹rC®lbackW¿µ”
+ : 0;
+
+2560 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+Ù¶
+ = 
+New
+<v8::ObjectTemplate>();
+
+2561 
+	gÙ¶
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kAcûssÜF›ldCouÁ
+);
+
+2562 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+d©aobj
+ = 
+NewIn¡ªû
+(
+Ù¶
+).
+ToLoÿlChecked
+();
+
+2564 
+	gd©aobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2565 
+imp
+::
+kG‘‹rIndex
+
+
+2566 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+g‘‹r
+)));
+
+2568 ià(!
+	gd©a
+.
+IsEm±y
+()) {
+
+2569 
+	gd©aobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+d©a
+);
+
+2572 ià(
+	g£‰”
+) {
+
+2573 
+	gd©aobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2574 
+imp
+::
+kS‘‹rIndex
+
+
+2575 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+£‰”
+)));
+
+2578 #ià(
+NODE_MODULE_VERSION
+ >ð
+NODE_6_0_MODULE_VERSION
+)
+
+2579  
+	gobj
+->
+S‘AcûssÜ
+(
+
+2580 
+G‘Cu¼’tCÚ‹xt
+()
+
+2581 , 
+Çme
+
+
+2582 , 
+g‘‹r_
+
+
+2583 , 
+£‰”_
+
+
+2584 , 
+d©aobj
+
+
+2585 , 
+£‰šgs
+
+
+2586 , 
+©Œibu‹
+).
+FromMaybe
+(
+çl£
+);
+
+2588  
+	gobj
+->
+S‘AcûssÜ
+(
+
+2589 
+Çme
+
+
+2590 , 
+g‘‹r_
+
+
+2591 , 
+£‰”_
+
+
+2592 , 
+d©aobj
+
+
+2593 , 
+£‰šgs
+
+
+2594 , 
+©Œibu‹
+);
+
+2598 
+šlše
+ 
+S‘NamedPrÝ”tyHªdËr
+(
+
+2599 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+�l
+
+
+2600 , 
+PrÝ”tyG‘‹rC®lback
+ 
+g‘‹r
+
+
+2601 , 
+PrÝ”tyS‘‹rC®lback
+ 
+£‰”
+ = 0
+
+2602 , 
+PrÝ”tyQu”yC®lback
+ 
+qu”y
+ = 0
+
+2603 , 
+PrÝ”tyD–‘”C®lback
+ 
+d–‘”
+ = 0
+
+2604 , 
+PrÝ”tyEnum”©ÜC®lback
+ 
+’um”©Ü
+ = 0
+
+2605 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()) {
+
+2606 
+HªdËScÝe
+ 
+scÝe
+;
+
+2608 
+	gimp
+::
+N©ivePrÝ”tyG‘‹r
+ 
+g‘‹r_
+ =
+
+2609 
+imp
+::
+PrÝ”tyG‘‹rC®lbackW¿µ”
+;
+
+2610 
+	gimp
+::
+N©ivePrÝ”tyS‘‹r
+ 
+£‰”_
+ =
+
+2611 
+£‰”
+ ? 
+imp
+::
+PrÝ”tyS‘‹rC®lbackW¿µ”
+ : 0;
+
+2612 
+	gimp
+::
+N©ivePrÝ”tyQu”y
+ 
+qu”y_
+ =
+
+2613 
+qu”y
+ ? 
+imp
+::
+PrÝ”tyQu”yC®lbackW¿µ”
+ : 0;
+
+2614 
+	gimp
+::
+N©ivePrÝ”tyD–‘”
+ *
+d–‘”_
+ =
+
+2615 
+d–‘”
+ ? 
+imp
+::
+PrÝ”tyD–‘”C®lbackW¿µ”
+ : 0;
+
+2616 
+	gimp
+::
+N©ivePrÝ”tyEnum”©Ü
+ 
+’um”©Ü_
+ =
+
+2617 
+’um”©Ü
+ ? 
+imp
+::
+PrÝ”tyEnum”©ÜC®lbackW¿µ”
+ : 0;
+
+2619 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+Ù¶
+ = 
+New
+<v8::ObjectTemplate>();
+
+2620 
+	gÙ¶
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kPrÝ”tyF›ldCouÁ
+);
+
+2621 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+NewIn¡ªû
+(
+Ù¶
+).
+ToLoÿlChecked
+();
+
+2622 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2623 
+imp
+::
+kPrÝ”tyG‘‹rIndex
+
+
+2624 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+g‘‹r
+)));
+
+2626 ià(
+	g£‰”
+) {
+
+2627 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2628 
+imp
+::
+kPrÝ”tyS‘‹rIndex
+
+
+2629 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+£‰”
+)));
+
+2632 ià(
+	gqu”y
+) {
+
+2633 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2634 
+imp
+::
+kPrÝ”tyQu”yIndex
+
+
+2635 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+qu”y
+)));
+
+2638 ià(
+	gd–‘”
+) {
+
+2639 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2640 
+imp
+::
+kPrÝ”tyD–‘”Index
+
+
+2641 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+d–‘”
+)));
+
+2644 ià(
+	g’um”©Ü
+) {
+
+2645 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2646 
+imp
+::
+kPrÝ”tyEnum”©ÜIndex
+
+
+2647 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+’um”©Ü
+)));
+
+2650 ià(!
+	gd©a
+.
+IsEm±y
+()) {
+
+2651 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+d©a
+);
+
+2654 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+2655 
+	g�l
+->
+S‘HªdËr
+(
+v8
+::
+NamedPrÝ”tyHªdËrCÚfigu¿tiÚ
+(
+
+2656 
+g‘‹r_
+, 
+£‰”_
+, 
+qu”y_
+, 
+d–‘”_
+, 
+’um”©Ü_
+, 
+obj
+));
+
+2658 
+	g�l
+->
+S‘NamedPrÝ”tyHªdËr
+(
+
+2659 
+g‘‹r_
+
+
+2660 , 
+£‰”_
+
+
+2661 , 
+qu”y_
+
+
+2662 , 
+d–‘”_
+
+
+2663 , 
+’um”©Ü_
+
+
+2664 , 
+obj
+);
+
+2668 
+šlše
+ 
+S‘IndexedPrÝ”tyHªdËr
+(
+
+2669 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+�l
+
+
+2670 , 
+IndexG‘‹rC®lback
+ 
+g‘‹r
+
+
+2671 , 
+IndexS‘‹rC®lback
+ 
+£‰”
+ = 0
+
+2672 , 
+IndexQu”yC®lback
+ 
+qu”y
+ = 0
+
+2673 , 
+IndexD–‘”C®lback
+ 
+d–‘”
+ = 0
+
+2674 , 
+IndexEnum”©ÜC®lback
+ 
+’um”©Ü
+ = 0
+
+2675 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()) {
+
+2676 
+HªdËScÝe
+ 
+scÝe
+;
+
+2678 
+	gimp
+::
+N©iveIndexG‘‹r
+ 
+g‘‹r_
+ =
+
+2679 
+imp
+::
+IndexG‘‹rC®lbackW¿µ”
+;
+
+2680 
+	gimp
+::
+N©iveIndexS‘‹r
+ 
+£‰”_
+ =
+
+2681 
+£‰”
+ ? 
+imp
+::
+IndexS‘‹rC®lbackW¿µ”
+ : 0;
+
+2682 
+	gimp
+::
+N©iveIndexQu”y
+ 
+qu”y_
+ =
+
+2683 
+qu”y
+ ? 
+imp
+::
+IndexQu”yC®lbackW¿µ”
+ : 0;
+
+2684 
+	gimp
+::
+N©iveIndexD–‘”
+ 
+d–‘”_
+ =
+
+2685 
+d–‘”
+ ? 
+imp
+::
+IndexD–‘”C®lbackW¿µ”
+ : 0;
+
+2686 
+	gimp
+::
+N©iveIndexEnum”©Ü
+ 
+’um”©Ü_
+ =
+
+2687 
+’um”©Ü
+ ? 
+imp
+::
+IndexEnum”©ÜC®lbackW¿µ”
+ : 0;
+
+2689 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+Ù¶
+ = 
+New
+<v8::ObjectTemplate>();
+
+2690 
+	gÙ¶
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kIndexPrÝ”tyF›ldCouÁ
+);
+
+2691 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+NewIn¡ªû
+(
+Ù¶
+).
+ToLoÿlChecked
+();
+
+2692 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2693 
+imp
+::
+kIndexPrÝ”tyG‘‹rIndex
+
+
+2694 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+g‘‹r
+)));
+
+2696 ià(
+	g£‰”
+) {
+
+2697 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2698 
+imp
+::
+kIndexPrÝ”tyS‘‹rIndex
+
+
+2699 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+£‰”
+)));
+
+2702 ià(
+	gqu”y
+) {
+
+2703 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2704 
+imp
+::
+kIndexPrÝ”tyQu”yIndex
+
+
+2705 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+qu”y
+)));
+
+2708 ià(
+	gd–‘”
+) {
+
+2709 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2710 
+imp
+::
+kIndexPrÝ”tyD–‘”Index
+
+
+2711 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+d–‘”
+)));
+
+2714 ià(
+	g’um”©Ü
+) {
+
+2715 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2716 
+imp
+::
+kIndexPrÝ”tyEnum”©ÜIndex
+
+
+2717 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+’um”©Ü
+)));
+
+2720 ià(!
+	gd©a
+.
+IsEm±y
+()) {
+
+2721 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+d©a
+);
+
+2724 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+2725 
+	g�l
+->
+S‘HªdËr
+(
+v8
+::
+IndexedPrÝ”tyHªdËrCÚfigu¿tiÚ
+(
+
+2726 
+g‘‹r_
+, 
+£‰”_
+, 
+qu”y_
+, 
+d–‘”_
+, 
+’um”©Ü_
+, 
+obj
+));
+
+2728 
+	g�l
+->
+S‘IndexedPrÝ”tyHªdËr
+(
+
+2729 
+g‘‹r_
+
+
+2730 , 
+£‰”_
+
+
+2731 , 
+qu”y_
+
+
+2732 , 
+d–‘”_
+
+
+2733 , 
+’um”©Ü_
+
+
+2734 , 
+obj
+);
+
+2738 
+šlše
+ 
+S‘C®lHªdËr
+(
+
+2739 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+�l
+
+
+2740 , 
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+2741 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()) {
+
+2742 
+HªdËScÝe
+ 
+scÝe
+;
+
+2744 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+Ù¶
+ = 
+New
+<v8::ObjectTemplate>();
+
+2745 
+	gÙ¶
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kFunùiÚF›ldCouÁ
+);
+
+2746 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+NewIn¡ªû
+(
+Ù¶
+).
+ToLoÿlChecked
+();
+
+2748 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2749 
+imp
+::
+kFunùiÚIndex
+
+
+2750 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+ÿÎback
+)));
+
+2752 ià(!
+	gd©a
+.
+IsEm±y
+()) {
+
+2753 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+d©a
+);
+
+2756 
+	g�l
+->
+S‘C®lHªdËr
+(
+imp
+::
+FunùiÚC®lbackW¿µ”
+, 
+obj
+);
+
+2760 
+šlše
+ 
+S‘C®lAsFunùiÚHªdËr
+(
+
+2761 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+�l
+,
+
+2762 
+FunùiÚC®lback
+ 
+ÿÎback
+,
+
+2763 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()) {
+
+2764 
+HªdËScÝe
+ 
+scÝe
+;
+
+2766 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+Ù¶
+ = 
+New
+<v8::ObjectTemplate>();
+
+2767 
+	gÙ¶
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kFunùiÚF›ldCouÁ
+);
+
+2768 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+NewIn¡ªû
+(
+Ù¶
+).
+ToLoÿlChecked
+();
+
+2770 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+2771 
+imp
+::
+kFunùiÚIndex
+
+
+2772 , 
+New
+<
+v8
+::
+Ex‹º®
+>(
+»š‹½»t_ÿ¡
+<*>(
+ÿÎback
+)));
+
+2774 ià(!
+	gd©a
+.
+IsEm±y
+()) {
+
+2775 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+d©a
+);
+
+2778 
+	g�l
+->
+S‘C®lAsFunùiÚHªdËr
+(
+imp
+::
+FunùiÚC®lbackW¿µ”
+, 
+obj
+);
+
+2783 
+	~"Çn_w—k.h
+"
+
+2787 
+	~"Çn_objeù_w¿p.h
+"
+
+2791 
+	~"Çn_´iv©e.h
+"
+
+2795 
+šlše
+
+
+2797 
+	$ExpÜt
+(
+ADDON_REGISTER_FUNCTION_ARGS_TYPE
+ 
+�rg‘
+, cÚ¡ *
+Çme
+,
+
+2798 
+FunùiÚC®lback
+ 
+f
+) {
+
+2799 
+HªdËScÝe
+ 
+scÝe
+;
+
+2801 
+	`S‘
+(
+�rg‘
+, 
+New
+<
+v8
+::
+SŒšg
+>(
+Çme
+).
+	`ToLoÿlChecked
+(),
+
+2802 
+	`G‘FunùiÚ
+(
+New
+<
+v8
+::
+FunùiÚTem¶©e
+>(
+f
+)).
+	`ToLoÿlChecked
+());
+
+2803 
+	}
+}
+
+2807 
+	sT­
+ {
+
+2808 
+ex¶ic™
+ 
+T­
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+t
+è: 
+t_
+() {
+
+2809 
+HªdËScÝe
+ 
+scÝe
+;
+
+2811 
+	gt_
+.
+Re£t
+(
+To
+<
+v8
+::
+Objeù
+>(
+t
+).
+ToLoÿlChecked
+());
+
+2814 ~
+T­
+(è{ 
+	gt_
+.
+Re£t
+(); }
+
+2816 
+šlše
+ 
+¶ª
+(
+i
+) {
+
+2817 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+2818 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+¬g
+ = 
+New
+(
+i
+);
+
+2819 
+C®l
+("¶ª", 
+New
+(
+t_
+), 1, &
+¬g
+);
+
+2822 
+šlše
+ 
+ok
+(
+boÞ
+ 
+isOk
+, cÚ¡ *
+msg
+ = 
+NULL
+) {
+
+2823 
+HªdËScÝe
+ 
+scÝe
+;
+
+2824 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+¬gs
+[2];
+
+2825 
+	g¬gs
+[0] = 
+New
+(
+isOk
+);
+
+2826 ià(
+	gmsg
+è
+	g¬gs
+[1] = 
+New
+(
+msg
+).
+ToLoÿlChecked
+();
+
+2827 
+C®l
+("ok", 
+New
+(
+t_
+), 
+msg
+ ? 2 : 1, 
+¬gs
+);
+
+2830 
+šlše
+ 
+·ss
+(cÚ¡ * 
+msg
+ = 
+NULL
+) {
+
+2831 
+HªdËScÝe
+ 
+scÝe
+;
+
+2832 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+hmsg
+;
+
+2833 ià(
+	gmsg
+è
+	ghmsg
+ = 
+New
+(
+msg
+).
+ToLoÿlChecked
+();
+
+2834 
+C®l
+("·ss", 
+New
+(
+t_
+), 
+msg
+ ? 1 : 0, &
+hmsg
+);
+
+2837 
+šlše
+ 
+’d
+() {
+
+2838 
+HªdËScÝe
+ 
+	gscÝe
+;
+
+2839 
+C®l
+("’d", 
+New
+(
+t_
+), 0, 
+NULL
+);
+
+2842 
+	g´iv©e
+:
+
+2843 
+P”si¡’t
+<
+v8
+::
+Objeù
+> 
+t_
+;
+
+2846 
+	#NAN_STRINGIZE2
+(
+x
+è#x
+
+	)
+
+2847 
+	#NAN_STRINGIZE
+(
+x
+è
+	$NAN_STRINGIZE2
+(
+x
+)
+
+	)
+
+2848 
+	#NAN_TEST_EXPRESSION
+(
+ex´essiÚ
+) \
+
+2849 Ð
+ex´essiÚ
+ ), 
+__FILE__
+ ":" 
+	`NAN_STRINGIZE
+(
+__LINE__
+è": " #ex´essiÚ
+
+	)
+
+2851 
+	#NAN_EXPORT
+(
+�rg‘
+, 
+funùiÚ
+è
+	`ExpÜt
+Ñ¬g‘, #funùiÚ, funùiÚ)
+
+	)
+
+2853 #undeà
+TYPE_CHECK
+
+
+2857 
+Çme¥aû
+ 
+imp
+ {
+
+2859 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+> 
+Maybef›r
+;
+
+2861 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+> 
+Maybef›r
+<
+v8
+::
+Loÿl
+<T> > {
+
+2862 
+šlše
+ 
+MaybeLoÿl
+<
+T
+> 
+	`cÚv”t
+(
+v8
+::
+Loÿl
+<T> 
+v
+) {
+
+2863  
+v
+;
+
+2867 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+> 
+Maybef›r
+<
+MaybeLoÿl
+<T> > {
+
+2868 
+šlše
+ 
+MaybeLoÿl
+<
+T
+> 
+	`cÚv”t
+(MaybeLoÿl<T> 
+v
+) {
+
+2869  
+v
+;
+
+2873 
+	}
+}
+
+2875 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�em¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gMaybeMaybe
+>
+
+2876 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gT
+>
+
+2877 
+MakeMaybe
+(
+MaybeMaybe
+<
+T
+> 
+v
+) {
+
+2878  
+	gimp
+::
+Maybef›r
+<
+MaybeMaybe
+<
+T
+> >::
+cÚv”t
+(
+v
+);
+
+2883 
+	~"Çn_ty³d¬¿y_cÚ‹Ás.h
+"
+
+2887 
+	~"Çn_jsÚ.h
+"
+
+	@interface/node_modules/nan/nan_callbacks.h
+
+9 #iâdeà
+NAN_CALLBACKS_H_
+
+
+10 
+	#NAN_CALLBACKS_H_
+
+
+	)
+
+12 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+þass
+ 
+	gFunùiÚC®lbackInfo
+;
+
+13 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+þass
+ 
+	gPrÝ”tyC®lbackInfo
+;
+
+14 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+þass
+ 
+	gGlob®
+;
+
+16 (*
+	tFunùiÚC®lback
+)(cÚ¡ 
+	tFunùiÚC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>&);
+
+17 (*
+	tG‘‹rC®lback
+)
+
+18 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+>&);
+
+19 (*
+	tS‘‹rC®lback
+)(
+
+20 
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>,
+
+21 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>,
+
+22 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<>&);
+
+23 (*
+	tPrÝ”tyG‘‹rC®lback
+)(
+
+24 
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>,
+
+25 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>&);
+
+26 (*
+	tPrÝ”tyS‘‹rC®lback
+)(
+
+27 
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>,
+
+28 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>,
+
+29 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>&);
+
+30 (*
+	tPrÝ”tyEnum”©ÜC®lback
+)
+
+31 (cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tA¼ay
+>&);
+
+32 (*
+	tPrÝ”tyD–‘”C®lback
+)(
+
+33 
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>,
+
+34 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tBoÞ—n
+>&);
+
+35 (*
+	tPrÝ”tyQu”yC®lback
+)(
+
+36 
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>,
+
+37 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tIÁeg”
+>&);
+
+38 (*
+	tIndexG‘‹rC®lback
+)(
+
+39 
+	tušt32_t
+,
+
+40 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>&);
+
+41 (*
+	tIndexS‘‹rC®lback
+)(
+
+42 
+	tušt32_t
+,
+
+43 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>,
+
+44 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tV®ue
+>&);
+
+45 (*
+	tIndexEnum”©ÜC®lback
+)
+
+46 (cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tA¼ay
+>&);
+
+47 (*
+	tIndexD–‘”C®lback
+)(
+
+48 
+	tušt32_t
+,
+
+49 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tBoÞ—n
+>&);
+
+50 (*
+	tIndexQu”yC®lback
+)(
+
+51 
+	tušt32_t
+,
+
+52 cÚ¡ 
+	tPrÝ”tyC®lbackInfo
+<
+	tv8
+::
+	tIÁeg”
+>&);
+
+54 
+Çme¥aû
+ 
+imp
+ {
+
+55 
+v8
+::
+	tLoÿl
+<
+	tv8
+::
+	tAcûssÜSigÇtu»
+> 
+	tSig
+;
+
+57 cÚ¡ 
+kD©aIndex
+ = 0;
+
+59 cÚ¡ 
+kFunùiÚIndex
+ = 1;
+
+60 cÚ¡ 
+kFunùiÚF›ldCouÁ
+ = 2;
+
+62 cÚ¡ 
+kG‘‹rIndex
+ = 1;
+
+63 cÚ¡ 
+kS‘‹rIndex
+ = 2;
+
+64 cÚ¡ 
+kAcûssÜF›ldCouÁ
+ = 3;
+
+66 cÚ¡ 
+kPrÝ”tyG‘‹rIndex
+ = 1;
+
+67 cÚ¡ 
+kPrÝ”tyS‘‹rIndex
+ = 2;
+
+68 cÚ¡ 
+kPrÝ”tyEnum”©ÜIndex
+ = 3;
+
+69 cÚ¡ 
+kPrÝ”tyD–‘”Index
+ = 4;
+
+70 cÚ¡ 
+kPrÝ”tyQu”yIndex
+ = 5;
+
+71 cÚ¡ 
+kPrÝ”tyF›ldCouÁ
+ = 6;
+
+73 cÚ¡ 
+kIndexPrÝ”tyG‘‹rIndex
+ = 1;
+
+74 cÚ¡ 
+kIndexPrÝ”tyS‘‹rIndex
+ = 2;
+
+75 cÚ¡ 
+kIndexPrÝ”tyEnum”©ÜIndex
+ = 3;
+
+76 cÚ¡ 
+kIndexPrÝ”tyD–‘”Index
+ = 4;
+
+77 cÚ¡ 
+kIndexPrÝ”tyQu”yIndex
+ = 5;
+
+78 cÚ¡ 
+kIndexPrÝ”tyF›ldCouÁ
+ = 6;
+
+80 
+	}
+}
+
+82 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+83 
+	~"Çn_ÿÎbacks_12_šl.h
+"
+
+85 
+	~"Çn_ÿÎbacks_´e_12_šl.h
+"
+
+	@interface/node_modules/nan/nan_callbacks_12_inl.h
+
+9 #iâdeà
+NAN_CALLBACKS_12_INL_H_
+
+
+10 
+	#NAN_CALLBACKS_12_INL_H_
+
+
+	)
+
+12 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+13 þas 
+	cR‘uºV®ue
+ {
+
+14 
+	mv8
+::
+R‘uºV®ue
+<
+T
+> 
+v®ue_
+;
+
+16 
+	mpublic
+:
+
+17 
+‹m¶©e
+ <
+þass
+ 
+S
+>
+
+18 
+ex¶ic™
+ 
+šlše
+ 
+R‘uºV®ue
+(cÚ¡ 
+v8
+::R‘uºV®ue<
+S
+> &
+v®ue
+) :
+
+19 
+	$v®ue_
+(
+v®ue
+) {}
+
+20 
+‹m¶©e
+ <
+þass
+ 
+S
+>
+
+21 
+ex¶ic™
+ 
+šlše
+ 
+	`R‘uºV®ue
+(cÚ¡ 
+R‘uºV®ue
+<
+S
+>& 
+th©
+)
+
+22 : 
+	$v®ue_
+(
+th©
+.
+v®ue_
+) {
+
+23 
+	`TYPE_CHECK
+(
+T
+, 
+S
+);
+
+24 
+	}
+}
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+> 
+šlše
+ 
+S‘
+(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+hªdË
+) {
+
+28 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+29 
+	gv®ue_
+.
+S‘
+(
+hªdË
+);
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+> 
+šlše
+ 
+S‘
+(cÚ¡ 
+Glob®
+<
+S
+> &
+hªdË
+) {
+
+33 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+34 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+35 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && \
+
+36 (
+V8_MINOR_VERSION
+ > 5 || (V8_MINOR_VERSION == 5 && \
+
+37 
+defšed
+(
+V8_BUILD_NUMBER
+) && V8_BUILD_NUMBER >= 8))))
+
+38 
+v®ue_
+.
+S‘
+(
+hªdË
+);
+
+40 
+	gv®ue_
+.
+S‘
+(*
+»š‹½»t_ÿ¡
+<cÚ¡ 
+v8
+::
+P”si¡’t
+<
+S
+>*>(&
+hªdË
+));
+
+41 
+	gcÚ¡_ÿ¡
+<
+	gGlob®
+<
+	gS
+> &>(
+	ghªdË
+).
+Re£t
+();
+
+46 
+šlše
+ 
+	$S‘
+(
+boÞ
+ 
+v®ue
+) {
+
+47 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+BoÞ—n
+);
+
+48 
+v®ue_
+.
+	`S‘
+(
+v®ue
+);
+
+49 
+	}
+}
+
+51 
+šlše
+ 
+	$S‘
+(
+i
+) {
+
+52 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+Numb”
+);
+
+53 
+v®ue_
+.
+	`S‘
+(
+i
+);
+
+54 
+	}
+}
+
+56 
+šlše
+ 
+	$S‘
+(
+št32_t
+ 
+i
+) {
+
+57 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+IÁeg”
+);
+
+58 
+v®ue_
+.
+	`S‘
+(
+i
+);
+
+59 
+	}
+}
+
+61 
+šlše
+ 
+	$S‘
+(
+ušt32_t
+ 
+i
+) {
+
+62 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+IÁeg”
+);
+
+63 
+v®ue_
+.
+	`S‘
+(
+i
+);
+
+64 
+	}
+}
+
+67 
+šlše
+ 
+	$S‘NuÎ
+() {
+
+68 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+Prim™ive
+);
+
+69 
+v®ue_
+.
+	`S‘NuÎ
+();
+
+70 
+	}
+}
+
+72 
+šlše
+ 
+	$S‘Undefšed
+() {
+
+73 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+Prim™ive
+);
+
+74 
+v®ue_
+.
+	`S‘Undefšed
+();
+
+75 
+	}
+}
+
+77 
+šlše
+ 
+	$S‘Em±ySŒšg
+() {
+
+78 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+SŒšg
+);
+
+79 
+v®ue_
+.
+	`S‘Em±ySŒšg
+();
+
+80 
+	}
+}
+
+83 
+šlše
+ 
+	gv8
+::
+IsÞ©e
+ *
+	$G‘IsÞ©e
+() const {
+
+84  
+v®ue_
+.
+	`G‘IsÞ©e
+();
+
+85 
+	}
+}
+
+88 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+89 
+šlše
+ 
+	$S‘
+(
+S
+ *
+wh©ev”
+è{ 
+	`TYPE_CHECK
+(S*, 
+v8
+::
+Prim™ive
+); 
+	}
+}
+
+92 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+93 þas 
+	cFunùiÚC®lbackInfo
+ {
+
+94 cÚ¡ 
+	mv8
+::
+FunùiÚC®lbackInfo
+<
+T
+> &
+šfo_
+;
+
+95 cÚ¡ 
+	mv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+d©a_
+;
+
+97 
+	mpublic
+:
+
+98 
+ex¶ic™
+ 
+šlše
+ 
+FunùiÚC®lbackInfo
+(
+
+99 cÚ¡ 
+v8
+::
+FunùiÚC®lbackInfo
+<
+T
+> &
+šfo
+
+
+100 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+101 
+šfo_
+(
+šfo
+)
+
+102 , 
+	$d©a_
+(
+d©a
+) {}
+
+104 
+šlše
+ 
+R‘uºV®ue
+<
+T
+> 
+	$G‘R‘uºV®ue
+() const {
+
+105  
+R‘uºV®ue
+<
+T
+>(
+šfo_
+.
+	`G‘R‘uºV®ue
+());
+
+106 
+	}
+}
+
+108 #ià
+NODE_MAJOR_VERSION
+ < 10
+
+109 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚ
+> 
+	$C®Ëe
+(ècÚ¡ {  
+šfo_
+.
+	`C®Ëe
+(); 
+	}
+}
+
+111 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$D©a
+(ècÚ¡ {  
+d©a_
+; 
+	}
+}
+
+112 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$HÞd”
+(ècÚ¡ {  
+šfo_
+.
+	`HÞd”
+(); 
+	}
+}
+
+113 
+šlše
+ 
+boÞ
+ 
+	$IsCÚ¡ruùC®l
+(ècÚ¡ {  
+šfo_
+.
+	`IsCÚ¡ruùC®l
+(); 
+	}
+}
+
+114 
+šlše
+ 
+	$L’gth
+(ècÚ¡ {  
+šfo_
+.
+	`L’gth
+(); 
+	}
+}
+
+115 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+Ý”©Ü
+[](
+i
+ècÚ¡ {  
+šfo_
+[i]; }
+
+116 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$This
+(ècÚ¡ {  
+šfo_
+.
+	`This
+(); 
+	}
+}
+
+117 
+šlše
+ 
+	gv8
+::
+IsÞ©e
+ *
+	$G‘IsÞ©e
+(ècÚ¡ {  
+šfo_
+.
+	`G‘IsÞ©e
+(); 
+	}
+}
+
+120 
+	g´Ùeùed
+:
+
+121 cÚ¡ 
+kHÞd”Index
+ = 0;
+
+122 cÚ¡ 
+	gkIsÞ©eIndex
+ = 1;
+
+123 cÚ¡ 
+	gkR‘uºV®ueDeçuÉV®ueIndex
+ = 2;
+
+124 cÚ¡ 
+	gkR‘uºV®ueIndex
+ = 3;
+
+125 cÚ¡ 
+	gkD©aIndex
+ = 4;
+
+126 cÚ¡ 
+	gkC®ËeIndex
+ = 5;
+
+127 cÚ¡ 
+	gkCÚ‹xtSaveIndex
+ = 6;
+
+128 cÚ¡ 
+	gkArgsL’gth
+ = 7;
+
+130 
+	g´iv©e
+:
+
+131 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+FunùiÚC®lbackInfo
+)
+
+134 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+135 þas 
+	cPrÝ”tyC®lbackInfo
+ {
+
+136 cÚ¡ 
+	mv8
+::
+PrÝ”tyC®lbackInfo
+<
+T
+> &
+šfo_
+;
+
+137 cÚ¡ 
+	mv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+d©a_
+;
+
+139 
+	mpublic
+:
+
+140 
+ex¶ic™
+ 
+šlše
+ 
+PrÝ”tyC®lbackInfo
+(
+
+141 cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<
+T
+> &
+šfo
+
+
+142 , cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+143 
+šfo_
+(
+šfo
+)
+
+144 , 
+	$d©a_
+(
+d©a
+) {}
+
+146 
+šlše
+ 
+v8
+::
+IsÞ©e
+* 
+	$G‘IsÞ©e
+(ècÚ¡ {  
+šfo_
+.
+	`G‘IsÞ©e
+(); 
+	}
+}
+
+147 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$D©a
+(ècÚ¡ {  
+d©a_
+; 
+	}
+}
+
+148 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$This
+(ècÚ¡ {  
+šfo_
+.
+	`This
+(); 
+	}
+}
+
+149 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$HÞd”
+(ècÚ¡ {  
+šfo_
+.
+	`HÞd”
+(); 
+	}
+}
+
+150 
+šlše
+ 
+	gR‘uºV®ue
+<
+	gT
+> 
+	$G‘R‘uºV®ue
+() const {
+
+151  
+R‘uºV®ue
+<
+T
+>(
+šfo_
+.
+	`G‘R‘uºV®ue
+());
+
+152 
+	}
+}
+
+154 
+	g´Ùeùed
+:
+
+155 cÚ¡ 
+kHÞd”Index
+ = 0;
+
+156 cÚ¡ 
+	gkIsÞ©eIndex
+ = 1;
+
+157 cÚ¡ 
+	gkR‘uºV®ueDeçuÉV®ueIndex
+ = 2;
+
+158 cÚ¡ 
+	gkR‘uºV®ueIndex
+ = 3;
+
+159 cÚ¡ 
+	gkD©aIndex
+ = 4;
+
+160 cÚ¡ 
+	gkThisIndex
+ = 5;
+
+161 cÚ¡ 
+	gkArgsL’gth
+ = 6;
+
+163 
+	g´iv©e
+:
+
+164 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+PrÝ”tyC®lbackInfo
+)
+
+167 
+Çme¥aû
+ 
+	gimp
+ {
+
+169 
+FunùiÚC®lbackW¿µ”
+(cÚ¡ 
+v8
+::
+FunùiÚC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+170 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+171 
+FunùiÚC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<FunctionCallback>(
+
+172 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+173 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kFunùiÚIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+174 
+	gFunùiÚC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+175 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+176 
+ÿÎback
+(
+cbšfo
+);
+
+179 (*
+	gN©iveFunùiÚ
+)(cÚ¡ 
+	tv8
+::
+	tFunùiÚC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+181 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+183 
+G‘‹rC®lbackW¿µ”
+(
+
+184 
+v8
+::
+Loÿl
+<v8::
+Name
+> 
+´Ý”ty
+
+
+185 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+186 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+187 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+188 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+189 
+G‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<GetterCallback>(
+
+190 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+191 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kG‘‹rIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+192 
+ÿÎback
+(
+´Ý”ty
+.
+As
+<
+v8
+::
+SŒšg
+>(), 
+cbšfo
+);
+
+195 (*
+	gN©iveG‘‹r
+)
+
+196 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tName
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+199 
+S‘‹rC®lbackW¿µ”
+(
+
+200 
+v8
+::
+Loÿl
+<v8::
+Name
+> 
+´Ý”ty
+
+
+201 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+202 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<> &
+šfo
+) {
+
+203 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+204 
+	gPrÝ”tyC®lbackInfo
+<>
+
+205 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+206 
+S‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<SetterCallback>(
+
+207 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+208 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kS‘‹rIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+209 
+ÿÎback
+(
+´Ý”ty
+.
+As
+<
+v8
+::
+SŒšg
+>(), 
+v®ue
+, 
+cbšfo
+);
+
+212 (*
+	gN©iveS‘‹r
+)(
+
+213 
+	tv8
+::
+	tLoÿl
+<v8::
+	tName
+>
+
+214 , 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>
+
+215 , cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<> &);
+
+218 
+G‘‹rC®lbackW¿µ”
+(
+
+219 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+220 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+221 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+222 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+223 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+224 
+G‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<GetterCallback>(
+
+225 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+226 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kG‘‹rIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+227 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+230 (*
+	gN©iveG‘‹r
+)
+
+231 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+234 
+S‘‹rC®lbackW¿µ”
+(
+
+235 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+236 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+237 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<> &
+šfo
+) {
+
+238 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+239 
+	gPrÝ”tyC®lbackInfo
+<>
+
+240 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+241 
+S‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<SetterCallback>(
+
+242 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+243 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kS‘‹rIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+244 
+ÿÎback
+(
+´Ý”ty
+, 
+v®ue
+, 
+cbšfo
+);
+
+247 (*
+	gN©iveS‘‹r
+)(
+
+248 
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>
+
+249 , 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>
+
+250 , cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<> &);
+
+253 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+255 
+PrÝ”tyG‘‹rC®lbackW¿µ”
+(
+
+256 
+v8
+::
+Loÿl
+<v8::
+Name
+> 
+´Ý”ty
+
+
+257 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+258 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+259 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+260 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+261 
+PrÝ”tyG‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyGetterCallback>(
+
+262 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+263 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyG‘‹rIndex
+)
+
+264 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+265 
+ÿÎback
+(
+´Ý”ty
+.
+As
+<
+v8
+::
+SŒšg
+>(), 
+cbšfo
+);
+
+268 (*
+	gN©ivePrÝ”tyG‘‹r
+)
+
+269 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tName
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+272 
+PrÝ”tyS‘‹rC®lbackW¿µ”
+(
+
+273 
+v8
+::
+Loÿl
+<v8::
+Name
+> 
+´Ý”ty
+
+
+274 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+275 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+276 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+277 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+278 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+279 
+PrÝ”tyS‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertySetterCallback>(
+
+280 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+281 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyS‘‹rIndex
+)
+
+282 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+283 
+ÿÎback
+(
+´Ý”ty
+.
+As
+<
+v8
+::
+SŒšg
+>(), 
+v®ue
+, 
+cbšfo
+);
+
+286 (*
+	gN©ivePrÝ”tyS‘‹r
+)(
+
+287 
+	tv8
+::
+	tLoÿl
+<v8::
+	tName
+>
+
+288 , 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>
+
+289 , cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+292 
+PrÝ”tyEnum”©ÜC®lbackW¿µ”
+(
+
+293 cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+A¼ay
+> &
+šfo
+) {
+
+294 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+295 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+A¼ay
+>
+
+296 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+297 
+PrÝ”tyEnum”©ÜC®lback
+ 
+	gÿÎback
+ =
+
+298 
+»š‹½»t_ÿ¡
+<
+PrÝ”tyEnum”©ÜC®lback
+>Ôeš‹½»t_ÿ¡<
+š�Œ_t
+>(
+
+299 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyEnum”©ÜIndex
+)
+
+300 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+301 
+ÿÎback
+(
+cbšfo
+);
+
+304 (*
+	gN©ivePrÝ”tyEnum”©Ü
+)
+
+305 (cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tA¼ay
+> &);
+
+308 
+PrÝ”tyD–‘”C®lbackW¿µ”
+(
+
+309 
+v8
+::
+Loÿl
+<v8::
+Name
+> 
+´Ý”ty
+
+
+310 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+BoÞ—n
+> &
+šfo
+) {
+
+311 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+312 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+BoÞ—n
+>
+
+313 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+314 
+PrÝ”tyD–‘”C®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyDeleterCallback>(
+
+315 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+316 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyD–‘”Index
+)
+
+317 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+318 
+ÿÎback
+(
+´Ý”ty
+.
+As
+<
+v8
+::
+SŒšg
+>(), 
+cbšfo
+);
+
+321 (
+	gN©ivePrÝ”tyD–‘”
+)
+
+322 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tName
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tBoÞ—n
+> &);
+
+325 
+PrÝ”tyQu”yC®lbackW¿µ”
+(
+
+326 
+v8
+::
+Loÿl
+<v8::
+Name
+> 
+´Ý”ty
+
+
+327 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+IÁeg”
+> &
+šfo
+) {
+
+328 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+329 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+IÁeg”
+>
+
+330 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+331 
+PrÝ”tyQu”yC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyQueryCallback>(
+
+332 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+333 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyQu”yIndex
+)
+
+334 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+335 
+ÿÎback
+(
+´Ý”ty
+.
+As
+<
+v8
+::
+SŒšg
+>(), 
+cbšfo
+);
+
+338 (*
+	gN©ivePrÝ”tyQu”y
+)
+
+339 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tName
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tIÁeg”
+> &);
+
+342 
+PrÝ”tyG‘‹rC®lbackW¿µ”
+(
+
+343 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+344 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+345 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+346 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+347 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+348 
+PrÝ”tyG‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyGetterCallback>(
+
+349 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+350 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyG‘‹rIndex
+)
+
+351 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+352 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+355 (*
+	gN©ivePrÝ”tyG‘‹r
+)
+
+356 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+359 
+PrÝ”tyS‘‹rC®lbackW¿µ”
+(
+
+360 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+361 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+362 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+363 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+364 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+365 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+366 
+PrÝ”tyS‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertySetterCallback>(
+
+367 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+368 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyS‘‹rIndex
+)
+
+369 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+370 
+ÿÎback
+(
+´Ý”ty
+, 
+v®ue
+, 
+cbšfo
+);
+
+373 (*
+	gN©ivePrÝ”tyS‘‹r
+)(
+
+374 
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>
+
+375 , 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>
+
+376 , cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+379 
+PrÝ”tyEnum”©ÜC®lbackW¿µ”
+(
+
+380 cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+A¼ay
+> &
+šfo
+) {
+
+381 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+382 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+A¼ay
+>
+
+383 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+384 
+PrÝ”tyEnum”©ÜC®lback
+ 
+	gÿÎback
+ =
+
+385 
+»š‹½»t_ÿ¡
+<
+PrÝ”tyEnum”©ÜC®lback
+>Ôeš‹½»t_ÿ¡<
+š�Œ_t
+>(
+
+386 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyEnum”©ÜIndex
+)
+
+387 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+388 
+ÿÎback
+(
+cbšfo
+);
+
+391 (*
+	gN©ivePrÝ”tyEnum”©Ü
+)
+
+392 (cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tA¼ay
+> &);
+
+395 
+PrÝ”tyD–‘”C®lbackW¿µ”
+(
+
+396 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+397 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+BoÞ—n
+> &
+šfo
+) {
+
+398 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+399 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+BoÞ—n
+>
+
+400 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+401 
+PrÝ”tyD–‘”C®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyDeleterCallback>(
+
+402 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+403 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyD–‘”Index
+)
+
+404 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+405 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+408 (
+	gN©ivePrÝ”tyD–‘”
+)
+
+409 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tBoÞ—n
+> &);
+
+412 
+PrÝ”tyQu”yC®lbackW¿µ”
+(
+
+413 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+414 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+IÁeg”
+> &
+šfo
+) {
+
+415 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+416 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+IÁeg”
+>
+
+417 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+418 
+PrÝ”tyQu”yC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyQueryCallback>(
+
+419 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+420 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyQu”yIndex
+)
+
+421 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+422 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+425 (*
+	gN©ivePrÝ”tyQu”y
+)
+
+426 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tIÁeg”
+> &);
+
+430 
+IndexG‘‹rC®lbackW¿µ”
+(
+
+431 
+ušt32_t
+ 
+šdex
+, cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+432 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+433 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+434 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+435 
+IndexG‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexGetterCallback>(
+
+436 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+437 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyG‘‹rIndex
+)
+
+438 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+439 
+ÿÎback
+(
+šdex
+, 
+cbšfo
+);
+
+442 (*
+	gN©iveIndexG‘‹r
+)
+
+443 (
+	tušt32_t
+, cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+446 
+IndexS‘‹rC®lbackW¿µ”
+(
+
+447 
+ušt32_t
+ 
+šdex
+
+
+448 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+449 , cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+V®ue
+> &
+šfo
+) {
+
+450 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+451 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+452 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+453 
+IndexS‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexSetterCallback>(
+
+454 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+455 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyS‘‹rIndex
+)
+
+456 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+457 
+ÿÎback
+(
+šdex
+, 
+v®ue
+, 
+cbšfo
+);
+
+460 (*
+	gN©iveIndexS‘‹r
+)(
+
+461 
+	tušt32_t
+
+
+462 , 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>
+
+463 , cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tV®ue
+> &);
+
+466 
+IndexEnum”©ÜC®lbackW¿µ”
+(
+
+467 cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+A¼ay
+> &
+šfo
+) {
+
+468 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+469 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+A¼ay
+>
+
+470 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+471 
+IndexEnum”©ÜC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexEnumeratorCallback>(
+
+472 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+473 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+
+474 
+kIndexPrÝ”tyEnum”©ÜIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+475 
+ÿÎback
+(
+cbšfo
+);
+
+478 (*
+	gN©iveIndexEnum”©Ü
+)
+
+479 (cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tA¼ay
+> &);
+
+482 
+IndexD–‘”C®lbackW¿µ”
+(
+
+483 
+ušt32_t
+ 
+šdex
+, cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+BoÞ—n
+> &
+šfo
+) {
+
+484 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+485 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+BoÞ—n
+>
+
+486 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+487 
+IndexD–‘”C®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexDeleterCallback>(
+
+488 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+489 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyD–‘”Index
+)
+
+490 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+491 
+ÿÎback
+(
+šdex
+, 
+cbšfo
+);
+
+494 (*
+	gN©iveIndexD–‘”
+)
+
+495 (
+	tušt32_t
+, cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tBoÞ—n
+> &);
+
+498 
+IndexQu”yC®lbackW¿µ”
+(
+
+499 
+ušt32_t
+ 
+šdex
+, cÚ¡ 
+v8
+::
+PrÝ”tyC®lbackInfo
+<v8::
+IÁeg”
+> &
+šfo
+) {
+
+500 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+501 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+IÁeg”
+>
+
+502 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+503 
+IndexQu”yC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexQueryCallback>(
+
+504 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+505 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyQu”yIndex
+)
+
+506 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+507 
+ÿÎback
+(
+šdex
+, 
+cbšfo
+);
+
+510 (*
+	gN©iveIndexQu”y
+)
+
+511 (
+	tušt32_t
+, cÚ¡ 
+	tv8
+::
+	tPrÝ”tyC®lbackInfo
+<v8::
+	tIÁeg”
+> &);
+
+	@interface/node_modules/nan/nan_callbacks_pre_12_inl.h
+
+9 #iâdeà
+NAN_CALLBACKS_PRE_12_INL_H_
+
+
+10 
+	#NAN_CALLBACKS_PRE_12_INL_H_
+
+
+	)
+
+12 
+Çme¥aû
+ 
+	gimp
+ {
+
+13 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+þass
+ 
+	gR‘uºV®ueImp
+;
+
+16 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+17 þas 
+	cR‘uºV®ue
+ {
+
+18 
+	mv8
+::
+IsÞ©e
+ *
+isÞ©e_
+;
+
+19 
+	mv8
+::
+P”si¡’t
+<
+T
+> *
+v®ue_
+;
+
+20 
+ä›nd
+ 
+þass
+ 
+	mimp
+::
+R‘uºV®ueImp
+<
+T
+>;
+
+22 
+	mpublic
+:
+
+23 
+‹m¶©e
+ <
+þass
+ 
+S
+>
+
+24 
+ex¶ic™
+ 
+šlše
+ 
+R‘uºV®ue
+(
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+, v8::
+P”si¡’t
+<
+S
+> *
+p
+) :
+
+25 
+isÞ©e_
+(
+isÞ©e
+), 
+	$v®ue_
+(
+p
+) {}
+
+26 
+‹m¶©e
+ <
+þass
+ 
+S
+>
+
+27 
+ex¶ic™
+ 
+šlše
+ 
+	`R‘uºV®ue
+(cÚ¡ 
+R‘uºV®ue
+<
+S
+>& 
+th©
+)
+
+28 : 
+	`isÞ©e_
+(
+th©
+.
+isÞ©e_
+), 
+	$v®ue_
+(
+th©
+.
+v®ue_
+) {
+
+29 
+	`TYPE_CHECK
+(
+T
+, 
+S
+);
+
+30 
+	}
+}
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+> 
+šlše
+ 
+S‘
+(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+hªdË
+) {
+
+34 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+35 
+	gv®ue_
+->
+Di¥o£
+();
+
+36 *
+	gv®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+New
+(
+hªdË
+);
+
+39 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+> 
+šlše
+ 
+S‘
+(cÚ¡ 
+Glob®
+<
+S
+> &
+hªdË
+) {
+
+40 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+41 
+	gv®ue_
+->
+Di¥o£
+();
+
+42 *
+	gv®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+New
+(
+hªdË
+.
+³rsi¡’t
+);
+
+43 
+	gcÚ¡_ÿ¡
+<
+	gGlob®
+<
+	gS
+> &>(
+	ghªdË
+).
+Re£t
+();
+
+47 
+šlše
+ 
+	$S‘
+(
+boÞ
+ 
+v®ue
+) {
+
+48 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+50 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+BoÞ—n
+);
+
+51 
+v®ue_
+->
+	`Di¥o£
+();
+
+52 *
+v®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+	`New
+(v8::
+BoÞ—n
+::New(
+v®ue
+));
+
+53 
+	}
+}
+
+55 
+šlše
+ 
+	$S‘
+(
+i
+) {
+
+56 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+58 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+Numb”
+);
+
+59 
+v®ue_
+->
+	`Di¥o£
+();
+
+60 *
+v®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+	`New
+(v8::
+Numb”
+::New(
+i
+));
+
+61 
+	}
+}
+
+63 
+šlše
+ 
+	$S‘
+(
+št32_t
+ 
+i
+) {
+
+64 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+66 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+IÁeg”
+);
+
+67 
+v®ue_
+->
+	`Di¥o£
+();
+
+68 *
+v®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+	`New
+(v8::
+IÁ32
+::New(
+i
+));
+
+69 
+	}
+}
+
+71 
+šlše
+ 
+	$S‘
+(
+ušt32_t
+ 
+i
+) {
+
+72 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+74 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+IÁeg”
+);
+
+75 
+v®ue_
+->
+	`Di¥o£
+();
+
+76 *
+v®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+	`New
+(v8::
+Ušt32
+::
+	`NewFromUnsigÃd
+(
+i
+));
+
+77 
+	}
+}
+
+80 
+šlše
+ 
+	$S‘NuÎ
+() {
+
+81 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+83 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+Prim™ive
+);
+
+84 
+v®ue_
+->
+	`Di¥o£
+();
+
+85 *
+v®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+	`New
+(v8::
+	`NuÎ
+());
+
+86 
+	}
+}
+
+88 
+šlše
+ 
+	$S‘Undefšed
+() {
+
+89 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+91 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+Prim™ive
+);
+
+92 
+v®ue_
+->
+	`Di¥o£
+();
+
+93 *
+v®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+	`New
+(v8::
+	`Undefšed
+());
+
+94 
+	}
+}
+
+96 
+šlše
+ 
+	$S‘Em±ySŒšg
+() {
+
+97 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+99 
+	`TYPE_CHECK
+(
+T
+, 
+v8
+::
+SŒšg
+);
+
+100 
+v®ue_
+->
+	`Di¥o£
+();
+
+101 *
+v®ue_
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+	`New
+(v8::
+SŒšg
+::
+	`Em±y
+());
+
+102 
+	}
+}
+
+105 
+šlše
+ 
+	gv8
+::
+IsÞ©e
+ *
+	$G‘IsÞ©e
+() const {
+
+106  
+isÞ©e_
+;
+
+107 
+	}
+}
+
+110 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+111 
+šlše
+ 
+	$S‘
+(
+S
+ *
+wh©ev”
+è{ 
+	`TYPE_CHECK
+(S*, 
+v8
+::
+Prim™ive
+); 
+	}
+}
+
+114 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+115 þas 
+	cFunùiÚC®lbackInfo
+ {
+
+116 cÚ¡ 
+	mv8
+::
+Argum’ts
+ &
+¬gs_
+;
+
+117 
+	mv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+d©a_
+;
+
+118 
+	mR‘uºV®ue
+<
+	mT
+> 
+	m»tuº_v®ue_
+;
+
+119 
+	mv8
+::
+P”si¡’t
+<
+T
+> 
+»tv®_
+;
+
+121 
+	mpublic
+:
+
+122 
+ex¶ic™
+ 
+šlše
+ 
+FunùiÚC®lbackInfo
+(
+
+123 cÚ¡ 
+v8
+::
+Argum’ts
+ &
+¬gs
+
+
+124 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+125 
+¬gs_
+(
+¬gs
+)
+
+126 , 
+d©a_
+(
+d©a
+)
+
+127 , 
+»tuº_v®ue_
+(
+¬gs
+.
+G‘IsÞ©e
+(), &
+»tv®_
+)
+
+128 , 
+»tv®_
+(
+v8
+::
+P”si¡’t
+<
+T
+>::
+New
+(v8::
+	$Undefšed
+())) {}
+
+130 
+šlše
+ ~
+	$FunùiÚC®lbackInfo
+() {
+
+131 
+»tv®_
+.
+	`Di¥o£
+();
+
+132 
+»tv®_
+.
+	`CË¬
+();
+
+133 
+	}
+}
+
+135 
+šlše
+ 
+	gR‘uºV®ue
+<
+	gT
+> 
+	$G‘R‘uºV®ue
+() const {
+
+136  
+R‘uºV®ue
+<
+T
+>(
+»tuº_v®ue_
+);
+
+137 
+	}
+}
+
+139 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚ
+> 
+	$C®Ëe
+(ècÚ¡ {  
+¬gs_
+.
+	`C®Ëe
+(); 
+	}
+}
+
+140 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$D©a
+(ècÚ¡ {  
+d©a_
+; 
+	}
+}
+
+141 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$HÞd”
+(ècÚ¡ {  
+¬gs_
+.
+	`HÞd”
+(); 
+	}
+}
+
+142 
+šlše
+ 
+boÞ
+ 
+	$IsCÚ¡ruùC®l
+(ècÚ¡ {  
+¬gs_
+.
+	`IsCÚ¡ruùC®l
+(); 
+	}
+}
+
+143 
+šlše
+ 
+	$L’gth
+(ècÚ¡ {  
+¬gs_
+.
+	`L’gth
+(); 
+	}
+}
+
+144 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+Ý”©Ü
+[](
+i
+ècÚ¡ {  
+¬gs_
+[i]; }
+
+145 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$This
+(ècÚ¡ {  
+¬gs_
+.
+	`This
+(); 
+	}
+}
+
+146 
+šlše
+ 
+	gv8
+::
+IsÞ©e
+ *
+	$G‘IsÞ©e
+(ècÚ¡ {  
+¬gs_
+.
+	`G‘IsÞ©e
+(); 
+	}
+}
+
+149 
+	g´Ùeùed
+:
+
+150 cÚ¡ 
+kHÞd”Index
+ = 0;
+
+151 cÚ¡ 
+	gkIsÞ©eIndex
+ = 1;
+
+152 cÚ¡ 
+	gkR‘uºV®ueDeçuÉV®ueIndex
+ = 2;
+
+153 cÚ¡ 
+	gkR‘uºV®ueIndex
+ = 3;
+
+154 cÚ¡ 
+	gkD©aIndex
+ = 4;
+
+155 cÚ¡ 
+	gkC®ËeIndex
+ = 5;
+
+156 cÚ¡ 
+	gkCÚ‹xtSaveIndex
+ = 6;
+
+157 cÚ¡ 
+	gkArgsL’gth
+ = 7;
+
+159 
+	g´iv©e
+:
+
+160 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+FunùiÚC®lbackInfo
+)
+
+163 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+164 þas 
+	cPrÝ”tyC®lbackInfoBa£
+ {
+
+165 cÚ¡ 
+	mv8
+::
+AcûssÜInfo
+ &
+šfo_
+;
+
+166 cÚ¡ 
+	mv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+d©a_
+;
+
+168 
+	mpublic
+:
+
+169 
+ex¶ic™
+ 
+šlše
+ 
+PrÝ”tyC®lbackInfoBa£
+(
+
+170 cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+
+
+171 , cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+172 
+šfo_
+(
+šfo
+)
+
+173 , 
+	$d©a_
+(
+d©a
+) {}
+
+175 
+šlše
+ 
+v8
+::
+IsÞ©e
+* 
+	$G‘IsÞ©e
+(ècÚ¡ {  
+šfo_
+.
+	`G‘IsÞ©e
+(); 
+	}
+}
+
+176 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+	$D©a
+(ècÚ¡ {  
+d©a_
+; 
+	}
+}
+
+177 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$This
+(ècÚ¡ {  
+šfo_
+.
+	`This
+(); 
+	}
+}
+
+178 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$HÞd”
+(ècÚ¡ {  
+šfo_
+.
+	`HÞd”
+(); 
+	}
+}
+
+180 
+	g´Ùeùed
+:
+
+181 cÚ¡ 
+kHÞd”Index
+ = 0;
+
+182 cÚ¡ 
+	gkIsÞ©eIndex
+ = 1;
+
+183 cÚ¡ 
+	gkR‘uºV®ueDeçuÉV®ueIndex
+ = 2;
+
+184 cÚ¡ 
+	gkR‘uºV®ueIndex
+ = 3;
+
+185 cÚ¡ 
+	gkD©aIndex
+ = 4;
+
+186 cÚ¡ 
+	gkThisIndex
+ = 5;
+
+187 cÚ¡ 
+	gkArgsL’gth
+ = 6;
+
+189 
+	g´iv©e
+:
+
+190 
+NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+PrÝ”tyC®lbackInfoBa£
+)
+
+193 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+194 
+þass
+ 
+	gPrÝ”tyC®lbackInfo
+ : 
+public
+ 
+PrÝ”tyC®lbackInfoBa£
+<
+T
+> {
+
+195 
+R‘uºV®ue
+<
+T
+> 
+»tuº_v®ue_
+;
+
+196 
+	gv8
+::
+P”si¡’t
+<
+T
+> 
+»tv®_
+;
+
+198 
+	gpublic
+:
+
+199 
+ex¶ic™
+ 
+šlše
+ 
+PrÝ”tyC®lbackInfo
+(
+
+200 cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+
+
+201 , cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+202 
+PrÝ”tyC®lbackInfoBa£
+<
+T
+>(
+šfo
+, 
+	gd©a
+)
+
+203 , 
+»tuº_v®ue_
+(
+šfo
+.
+G‘IsÞ©e
+(), &
+»tv®_
+)
+
+204 , 
+»tv®_
+(
+v8
+::
+P”si¡’t
+<
+T
+>::
+New
+(v8::
+Undefšed
+())) {}
+
+206 
+šlše
+ ~
+PrÝ”tyC®lbackInfo
+() {
+
+207 
+»tv®_
+.
+Di¥o£
+();
+
+208 
+	g»tv®_
+.
+CË¬
+();
+
+211 
+šlše
+ 
+	gR‘uºV®ue
+<
+	gT
+> 
+G‘R‘uºV®ue
+(ècÚ¡ {  
+	g»tuº_v®ue_
+; }
+
+214 
+	g‹m¶©e
+<>
+
+215 
+þass
+ 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+A¼ay
+> :
+
+216 
+public
+ 
+PrÝ”tyC®lbackInfoBa£
+<
+v8
+::
+A¼ay
+> {
+
+217 
+R‘uºV®ue
+<
+v8
+::
+A¼ay
+> 
+»tuº_v®ue_
+;
+
+218 
+	gv8
+::
+P”si¡’t
+<
+v8
+::
+A¼ay
+> 
+»tv®_
+;
+
+220 
+	gpublic
+:
+
+221 
+ex¶ic™
+ 
+šlše
+ 
+PrÝ”tyC®lbackInfo
+(
+
+222 cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+
+
+223 , cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+224 
+PrÝ”tyC®lbackInfoBa£
+<
+v8
+::
+A¼ay
+>(
+šfo
+, 
+	gd©a
+)
+
+225 , 
+»tuº_v®ue_
+(
+šfo
+.
+G‘IsÞ©e
+(), &
+»tv®_
+)
+
+226 , 
+»tv®_
+(
+v8
+::
+P”si¡’t
+<v8::
+A¼ay
+>::
+New
+(v8::
+Loÿl
+<v8::Array>())) {}
+
+228 
+šlše
+ ~
+PrÝ”tyC®lbackInfo
+() {
+
+229 
+»tv®_
+.
+Di¥o£
+();
+
+230 
+	g»tv®_
+.
+CË¬
+();
+
+233 
+šlše
+ 
+	gR‘uºV®ue
+<
+	gv8
+::
+A¼ay
+> 
+G‘R‘uºV®ue
+() const {
+
+234  
+»tuº_v®ue_
+;
+
+238 
+	g‹m¶©e
+<>
+
+239 
+þass
+ 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+BoÞ—n
+> :
+
+240 
+public
+ 
+PrÝ”tyC®lbackInfoBa£
+<
+v8
+::
+BoÞ—n
+> {
+
+241 
+R‘uºV®ue
+<
+v8
+::
+BoÞ—n
+> 
+»tuº_v®ue_
+;
+
+242 
+	gv8
+::
+P”si¡’t
+<
+v8
+::
+BoÞ—n
+> 
+»tv®_
+;
+
+244 
+	gpublic
+:
+
+245 
+ex¶ic™
+ 
+šlše
+ 
+PrÝ”tyC®lbackInfo
+(
+
+246 cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+
+
+247 , cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+248 
+PrÝ”tyC®lbackInfoBa£
+<
+v8
+::
+BoÞ—n
+>(
+šfo
+, 
+	gd©a
+)
+
+249 , 
+»tuº_v®ue_
+(
+šfo
+.
+G‘IsÞ©e
+(), &
+»tv®_
+)
+
+250 , 
+»tv®_
+(
+v8
+::
+P”si¡’t
+<v8::
+BoÞ—n
+>::
+New
+(v8::
+Loÿl
+<v8::Boolean>())) {}
+
+252 
+šlše
+ ~
+PrÝ”tyC®lbackInfo
+() {
+
+253 
+»tv®_
+.
+Di¥o£
+();
+
+254 
+	g»tv®_
+.
+CË¬
+();
+
+257 
+šlše
+ 
+	gR‘uºV®ue
+<
+	gv8
+::
+BoÞ—n
+> 
+G‘R‘uºV®ue
+() const {
+
+258  
+»tuº_v®ue_
+;
+
+262 
+	g‹m¶©e
+<>
+
+263 
+þass
+ 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+IÁeg”
+> :
+
+264 
+public
+ 
+PrÝ”tyC®lbackInfoBa£
+<
+v8
+::
+IÁeg”
+> {
+
+265 
+R‘uºV®ue
+<
+v8
+::
+IÁeg”
+> 
+»tuº_v®ue_
+;
+
+266 
+	gv8
+::
+P”si¡’t
+<
+v8
+::
+IÁeg”
+> 
+»tv®_
+;
+
+268 
+	gpublic
+:
+
+269 
+ex¶ic™
+ 
+šlše
+ 
+PrÝ”tyC®lbackInfo
+(
+
+270 cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+
+
+271 , cÚ¡ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) :
+
+272 
+PrÝ”tyC®lbackInfoBa£
+<
+v8
+::
+IÁeg”
+>(
+šfo
+, 
+	gd©a
+)
+
+273 , 
+»tuº_v®ue_
+(
+šfo
+.
+G‘IsÞ©e
+(), &
+»tv®_
+)
+
+274 , 
+»tv®_
+(
+v8
+::
+P”si¡’t
+<v8::
+IÁeg”
+>::
+New
+(v8::
+Loÿl
+<v8::Integer>())) {}
+
+276 
+šlše
+ ~
+PrÝ”tyC®lbackInfo
+() {
+
+277 
+»tv®_
+.
+Di¥o£
+();
+
+278 
+	g»tv®_
+.
+CË¬
+();
+
+281 
+šlše
+ 
+	gR‘uºV®ue
+<
+	gv8
+::
+IÁeg”
+> 
+G‘R‘uºV®ue
+() const {
+
+282  
+»tuº_v®ue_
+;
+
+286 
+Çme¥aû
+ 
+	gimp
+ {
+
+287 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+288 
+þass
+ 
+	gR‘uºV®ueImp
+ : 
+public
+ 
+R‘uºV®ue
+<
+T
+> {
+
+289 
+public
+:
+
+290 
+ex¶ic™
+ 
+R‘uºV®ueImp
+(
+R‘uºV®ue
+<
+T
+> 
+th©
+) :
+
+291 
+R‘uºV®ue
+<
+T
+>(
+th©
+) {}
+
+292 
+šlše
+ 
+v8
+::
+HªdË
+<
+T
+> 
+V®ue
+() {
+
+293  *
+R‘uºV®ue
+<
+T
+>::
+v®ue_
+;
+
+298 
+	gv8
+::
+HªdË
+<
+v8
+::
+V®ue
+> 
+FunùiÚC®lbackW¿µ”
+(cÚ¡ v8::
+Argum’ts
+ &
+¬gs
+) {
+
+299 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+¬gs
+.
+D©a
+().
+As
+<v8::Object>();
+
+300 
+FunùiÚC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<FunctionCallback>(
+
+301 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+302 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kFunùiÚIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+303 
+	gFunùiÚC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+304 
+cbšfo
+(
+¬gs
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+305 
+ÿÎback
+(
+cbšfo
+);
+
+306  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+V®ue
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).Value();
+
+309 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tV®ue
+> (*
+	tN©iveFunùiÚ
+)(cÚ¡ v8::
+	tArgum’ts
+ &);
+
+312 
+	gv8
+::
+HªdË
+<
+v8
+::
+V®ue
+> 
+G‘‹rC®lbackW¿µ”
+(
+
+313 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+, cÚ¡ v8::
+AcûssÜInfo
+ &
+šfo
+) {
+
+314 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+315 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+316 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+317 
+G‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<GetterCallback>(
+
+318 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+319 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kG‘‹rIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+320 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+321  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+V®ue
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).Value();
+
+324 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tV®ue
+> (*
+	tN©iveG‘‹r
+)
+
+325 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tAcûssÜInfo
+ &);
+
+328 
+S‘‹rC®lbackW¿µ”
+(
+
+329 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+330 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+331 , cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+332 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+333 
+	gPrÝ”tyC®lbackInfo
+<>
+
+334 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+335 
+S‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<SetterCallback>(
+
+336 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+337 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kS‘‹rIndex
+).
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+338 
+ÿÎback
+(
+´Ý”ty
+, 
+v®ue
+, 
+cbšfo
+);
+
+341 (*
+	gN©iveS‘‹r
+)
+
+342 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, v8::Loÿl<v8::
+	tV®ue
+>, cÚ¡ v8::
+	tAcûssÜInfo
+ &);
+
+345 
+	gv8
+::
+HªdË
+<
+v8
+::
+V®ue
+> 
+PrÝ”tyG‘‹rC®lbackW¿µ”
+(
+
+346 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+, cÚ¡ v8::
+AcûssÜInfo
+ &
+šfo
+) {
+
+347 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+348 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+349 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+350 
+PrÝ”tyG‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyGetterCallback>(
+
+351 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+352 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyG‘‹rIndex
+)
+
+353 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+354 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+355  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+V®ue
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).Value();
+
+358 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tV®ue
+> (*
+	tN©ivePrÝ”tyG‘‹r
+)
+
+359 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tAcûssÜInfo
+ &);
+
+362 
+	gv8
+::
+HªdË
+<
+v8
+::
+V®ue
+> 
+PrÝ”tyS‘‹rC®lbackW¿µ”
+(
+
+363 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+364 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+365 , cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+366 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+367 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+368 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+369 
+PrÝ”tyS‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertySetterCallback>(
+
+370 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+371 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyS‘‹rIndex
+)
+
+372 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+373 
+ÿÎback
+(
+´Ý”ty
+, 
+v®ue
+, 
+cbšfo
+);
+
+374  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+V®ue
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).Value();
+
+377 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tV®ue
+> (*
+	tN©ivePrÝ”tyS‘‹r
+)
+
+378 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, v8::Loÿl<v8::
+	tV®ue
+>, cÚ¡ v8::
+	tAcûssÜInfo
+ &);
+
+381 
+	gv8
+::
+HªdË
+<
+v8
+::
+A¼ay
+> 
+PrÝ”tyEnum”©ÜC®lbackW¿µ”
+(
+
+382 cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+383 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+384 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+A¼ay
+>
+
+385 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+386 
+PrÝ”tyEnum”©ÜC®lback
+ 
+	gÿÎback
+ =
+
+387 
+»š‹½»t_ÿ¡
+<
+PrÝ”tyEnum”©ÜC®lback
+>Ôeš‹½»t_ÿ¡<
+š�Œ_t
+>(
+
+388 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyEnum”©ÜIndex
+)
+
+389 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+390 
+ÿÎback
+(
+cbšfo
+);
+
+391  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+A¼ay
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).
+V®ue
+();
+
+394 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tA¼ay
+> (*
+	tN©ivePrÝ”tyEnum”©Ü
+)
+
+395 (cÚ¡ 
+	tv8
+::
+	tAcûssÜInfo
+ &);
+
+398 
+	gv8
+::
+HªdË
+<
+v8
+::
+BoÞ—n
+> 
+PrÝ”tyD–‘”C®lbackW¿µ”
+(
+
+399 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+
+
+400 , cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+401 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+402 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+BoÞ—n
+>
+
+403 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+404 
+PrÝ”tyD–‘”C®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyDeleterCallback>(
+
+405 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+406 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyD–‘”Index
+)
+
+407 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+408 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+409  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+BoÞ—n
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).
+V®ue
+();
+
+412 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tBoÞ—n
+> (
+	tN©ivePrÝ”tyD–‘”
+)
+
+413 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tAcûssÜInfo
+ &);
+
+416 
+	gv8
+::
+HªdË
+<
+v8
+::
+IÁeg”
+> 
+PrÝ”tyQu”yC®lbackW¿µ”
+(
+
+417 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+´Ý”ty
+, cÚ¡ v8::
+AcûssÜInfo
+ &
+šfo
+) {
+
+418 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+419 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+IÁeg”
+>
+
+420 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+421 
+PrÝ”tyQu”yC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<PropertyQueryCallback>(
+
+422 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+423 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kPrÝ”tyQu”yIndex
+)
+
+424 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+425 
+ÿÎback
+(
+´Ý”ty
+, 
+cbšfo
+);
+
+426  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+IÁeg”
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).
+V®ue
+();
+
+429 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tIÁeg”
+> (*
+	tN©ivePrÝ”tyQu”y
+)
+
+430 (
+	tv8
+::
+	tLoÿl
+<v8::
+	tSŒšg
+>, cÚ¡ v8::
+	tAcûssÜInfo
+ &);
+
+433 
+	gv8
+::
+HªdË
+<
+v8
+::
+V®ue
+> 
+IndexG‘‹rC®lbackW¿µ”
+(
+
+434 
+ušt32_t
+ 
+šdex
+, cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+435 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+436 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+437 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+438 
+IndexG‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexGetterCallback>(
+
+439 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+440 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyG‘‹rIndex
+)
+
+441 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+442 
+ÿÎback
+(
+šdex
+, 
+cbšfo
+);
+
+443  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+V®ue
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).Value();
+
+446 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tV®ue
+> (*
+	tN©iveIndexG‘‹r
+)
+
+447 (
+	tušt32_t
+, cÚ¡ 
+	tv8
+::
+	tAcûssÜInfo
+ &);
+
+450 
+	gv8
+::
+HªdË
+<
+v8
+::
+V®ue
+> 
+IndexS‘‹rC®lbackW¿µ”
+(
+
+451 
+ušt32_t
+ 
+šdex
+
+
+452 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+453 , cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+454 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+455 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+V®ue
+>
+
+456 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+457 
+IndexS‘‹rC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexSetterCallback>(
+
+458 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+459 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyS‘‹rIndex
+)
+
+460 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+461 
+ÿÎback
+(
+šdex
+, 
+v®ue
+, 
+cbšfo
+);
+
+462  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+V®ue
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).Value();
+
+465 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tV®ue
+> (*
+	tN©iveIndexS‘‹r
+)
+
+466 (
+	tušt32_t
+, 
+	tv8
+::
+	tLoÿl
+<v8::
+	tV®ue
+>, cÚ¡ v8::
+	tAcûssÜInfo
+ &);
+
+469 
+	gv8
+::
+HªdË
+<
+v8
+::
+A¼ay
+> 
+IndexEnum”©ÜC®lbackW¿µ”
+(
+
+470 cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+471 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+472 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+A¼ay
+>
+
+473 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+474 
+IndexEnum”©ÜC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexEnumeratorCallback>(
+
+475 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+476 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyEnum”©ÜIndex
+)
+
+477 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+478 
+ÿÎback
+(
+cbšfo
+);
+
+479  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+A¼ay
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).
+V®ue
+();
+
+482 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tA¼ay
+> (*
+	tN©iveIndexEnum”©Ü
+)
+
+483 (cÚ¡ 
+	tv8
+::
+	tAcûssÜInfo
+ &);
+
+486 
+	gv8
+::
+HªdË
+<
+v8
+::
+BoÞ—n
+> 
+IndexD–‘”C®lbackW¿µ”
+(
+
+487 
+ušt32_t
+ 
+šdex
+, cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+488 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+489 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+BoÞ—n
+>
+
+490 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+491 
+IndexD–‘”C®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexDeleterCallback>(
+
+492 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+493 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyD–‘”Index
+)
+
+494 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+495 
+ÿÎback
+(
+šdex
+, 
+cbšfo
+);
+
+496  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+BoÞ—n
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).
+V®ue
+();
+
+499 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tBoÞ—n
+> (*
+	tN©iveIndexD–‘”
+)
+
+500 (
+	tušt32_t
+, cÚ¡ 
+	tv8
+::
+	tAcûssÜInfo
+ &);
+
+503 
+	gv8
+::
+HªdË
+<
+v8
+::
+IÁeg”
+> 
+IndexQu”yC®lbackW¿µ”
+(
+
+504 
+ušt32_t
+ 
+šdex
+, cÚ¡ 
+v8
+::
+AcûssÜInfo
+ &
+šfo
+) {
+
+505 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+ = 
+šfo
+.
+D©a
+().
+As
+<v8::Object>();
+
+506 
+	gPrÝ”tyC®lbackInfo
+<
+	gv8
+::
+IÁeg”
+>
+
+507 
+cbšfo
+(
+šfo
+, 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kD©aIndex
+));
+
+508 
+IndexQu”yC®lback
+ 
+	gÿÎback
+ = 
+»š‹½»t_ÿ¡
+<IndexQueryCallback>(
+
+509 
+»š‹½»t_ÿ¡
+<
+š�Œ_t
+>(
+
+510 
+obj
+->
+G‘IÁ”ÇlF›ld
+(
+kIndexPrÝ”tyQu”yIndex
+)
+
+511 .
+As
+<
+v8
+::
+Ex‹º®
+>()->
+V®ue
+()));
+
+512 
+ÿÎback
+(
+šdex
+, 
+cbšfo
+);
+
+513  
+	gR‘uºV®ueImp
+<
+	gv8
+::
+IÁeg”
+>(
+cbšfo
+.
+G‘R‘uºV®ue
+()).
+V®ue
+();
+
+516 
+	gv8
+::
+	tHªdË
+<
+	tv8
+::
+	tIÁeg”
+> (*
+	tN©iveIndexQu”y
+)
+
+517 (
+	tušt32_t
+, cÚ¡ 
+	tv8
+::
+	tAcûssÜInfo
+ &);
+
+	@interface/node_modules/nan/nan_converters.h
+
+9 #iâdeà
+NAN_CONVERTERS_H_
+
+
+10 
+	#NAN_CONVERTERS_H_
+
+
+	)
+
+12 
+Çme¥aû
+ 
+	gimp
+ {
+
+13 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	sToFaùÜyBa£
+ {
+
+14 
+	gMaybeLoÿl
+<
+	tT
+> 
+	t»tuº_t
+;
+
+16 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	sV®ueFaùÜyBa£
+ { 
+	gMaybe
+<
+	tT
+> 
+	t»tuº_t
+; };
+
+18 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gToFaùÜy
+;
+
+20 
+	g‹m¶©e
+<>
+
+21 
+	gToFaùÜy
+<
+	gv8
+::
+FunùiÚ
+> : 
+ToFaùÜyBa£
+<
+v8
+::Function> {
+
+22 
+šlše
+ 
+»tuº_t
+ 
+cÚv”t
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) {
+
+23 ià(
+v®
+.
+IsEm±y
+(è|| !v®->
+IsFunùiÚ
+()è 
+MaybeLoÿl
+<
+v8
+::
+FunùiÚ
+>();
+
+24  
+	gMaybeLoÿl
+<
+	gv8
+::
+FunùiÚ
+>(
+v®
+.
+As
+<
+v8
+::Function>());
+
+28 
+	#X
+(
+TYPE
+) \
+
+29 
+‹m¶©e
+<> \
+
+30 
+ToFaùÜy
+<
+v8
+::
+TYPE
+> : 
+ToFaùÜyBa£
+<v8::TYPE> { \
+
+31 
+šlše
+ 
+»tuº_t
+ 
+	`cÚv”t
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+); \
+
+32 };
+
+	)
+
+34 
+X
+(
+BoÞ—n
+)
+
+35 
+X
+(
+Numb”
+)
+
+36 
+X
+(
+SŒšg
+)
+
+37 
+X
+(
+Objeù
+)
+
+38 
+X
+(
+IÁeg”
+)
+
+39 
+X
+(
+Ušt32
+)
+
+40 
+X
+(
+IÁ32
+)
+
+42 #undeà
+X
+
+
+44 
+	#X
+(
+TYPE
+) \
+
+45 
+‹m¶©e
+<> \
+
+46 
+ToFaùÜy
+<
+TYPE
+> : 
+V®ueFaùÜyBa£
+<TYPE> { \
+
+47 
+šlše
+ 
+»tuº_t
+ 
+	`cÚv”t
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+); \
+
+48 };
+
+	)
+
+50 
+X
+(
+boÞ
+)
+
+51 
+X
+()
+
+52 
+X
+(
+št64_t
+)
+
+53 
+X
+(
+ušt32_t
+)
+
+54 
+X
+(
+št32_t
+)
+
+56 #undeà
+X
+
+
+59 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+60 
+šlše
+
+
+61 
+ty³Çme
+ 
+	gimp
+::
+ToFaùÜy
+<
+T
+>::
+»tuº_t
+ 
+To
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) {
+
+62  
+imp
+::
+ToFaùÜy
+<
+T
+>::
+cÚv”t
+(
+v®
+);
+
+65 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+66 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+67 
+	~"Çn_cÚv”‹rs_43_šl.h
+"
+
+69 
+	~"Çn_cÚv”‹rs_´e_43_šl.h
+"
+
+	@interface/node_modules/nan/nan_converters_43_inl.h
+
+9 #iâdeà
+NAN_CONVERTERS_43_INL_H_
+
+
+10 
+	#NAN_CONVERTERS_43_INL_H_
+
+
+	)
+
+12 
+	#X
+(
+TYPE
+) \
+
+13 
+imp
+::
+ToFaùÜy
+<
+v8
+::
+TYPE
+>::
+»tuº_t
+ \
+
+14 
+imp
+::
+ToFaùÜy
+<
+v8
+::
+TYPE
+>::
+	`cÚv”t
+(v8::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) { \
+
+15 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+(); \
+
+16 
+v8
+::
+Esÿ·bËHªdËScÝe
+ 
+	`scÝe
+(
+isÞ©e
+); \
+
+17  
+scÝe
+.
+	`Esÿ³
+( \
+
+18 
+v®
+->
+To
+ ## 
+	`TYPE
+(
+isÞ©e
+->
+	`G‘Cu¼’tCÚ‹xt
+()) \
+
+19 .
+	`FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+TYPE
+>())); \
+
+20 }
+
+	)
+
+22 
+	$X
+(
+Numb”
+)
+
+23 
+	$X
+(
+SŒšg
+)
+
+24 
+	$X
+(
+Objeù
+)
+
+25 
+	$X
+(
+IÁeg”
+)
+
+26 
+	$X
+(
+Ušt32
+)
+
+27 
+	$X
+(
+IÁ32
+)
+
+29 #ià
+V8_MAJOR_VERSION
+ < 7 || (V8_MAJOR_VERSION =ð7 && 
+V8_MINOR_VERSION
+ == 0)
+
+30 
+	$X
+(
+BoÞ—n
+)
+
+32 
+imp
+::
+ToFaùÜy
+<
+v8
+::
+BoÞ—n
+>::
+»tuº_t
+ \
+
+33 
+imp
+::
+ToFaùÜy
+<
+v8
+::
+BoÞ—n
+>::
+	`cÚv”t
+(v8::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) { \
+
+34 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+(); \
+
+35 
+v8
+::
+Esÿ·bËHªdËScÝe
+ 
+	`scÝe
+(
+isÞ©e
+); \
+
+36  
+scÝe
+.
+	`Esÿ³
+(
+v®
+->
+	`ToBoÞ—n
+(
+isÞ©e
+)); \
+
+37 
+	}
+}
+
+40 #undeà
+X
+
+
+42 
+	#X
+(
+TYPE
+, 
+NAME
+) \
+
+43 
+imp
+::
+ToFaùÜy
+<
+TYPE
+>::
+»tuº_t
+ \
+
+44 
+imp
+::
+ToFaùÜy
+<
+TYPE
+>::
+	`cÚv”t
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) { \
+
+45 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+(); \
+
+46 
+v8
+::
+HªdËScÝe
+ 
+	`scÝe
+(
+isÞ©e
+); \
+
+47  
+v®
+->
+NAME
+ ## 
+	`V®ue
+(
+isÞ©e
+->
+	`G‘Cu¼’tCÚ‹xt
+()); \
+
+48 }
+
+	)
+
+50 
+	$X
+(, 
+Numb”
+)
+
+51 
+	$X
+(
+št64_t
+, 
+IÁeg”
+)
+
+52 
+	$X
+(
+ušt32_t
+, 
+Ušt32
+)
+
+53 
+	$X
+(
+št32_t
+, 
+IÁ32
+)
+
+55 #ià
+V8_MAJOR_VERSION
+ < 7 || (V8_MAJOR_VERSION =ð7 && 
+V8_MINOR_VERSION
+ == 0)
+
+56 
+	$X
+(
+boÞ
+, 
+BoÞ—n
+)
+
+58 
+imp
+::
+ToFaùÜy
+<
+boÞ
+>::
+»tuº_t
+ \
+
+59 
+imp
+::
+ToFaùÜy
+<
+boÞ
+>::
+	`cÚv”t
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) { \
+
+60 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+(); \
+
+61 
+v8
+::
+HªdËScÝe
+ 
+	`scÝe
+(
+isÞ©e
+); \
+
+62  
+Ju¡
+<
+boÞ
+>(
+v®
+->
+	`BoÞ—nV®ue
+(
+isÞ©e
+)); \
+
+63 
+	}
+}
+
+66 #undeà
+X
+
+
+	@interface/node_modules/nan/nan_converters_pre_43_inl.h
+
+9 #iâdeà
+NAN_CONVERTERS_PRE_43_INL_H_
+
+
+10 
+	#NAN_CONVERTERS_PRE_43_INL_H_
+
+
+	)
+
+12 
+	#X
+(
+TYPE
+) \
+
+13 
+imp
+::
+ToFaùÜy
+<
+v8
+::
+TYPE
+>::
+»tuº_t
+ \
+
+14 
+imp
+::
+ToFaùÜy
+<
+v8
+::
+TYPE
+>::
+	`cÚv”t
+(v8::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) { \
+
+15  
+v®
+->
+To
+ ## 
+	`TYPE
+(); \
+
+16 }
+
+	)
+
+18 
+	$X
+(
+BoÞ—n
+)
+
+19 
+	$X
+(
+Numb”
+)
+
+20 
+	$X
+(
+SŒšg
+)
+
+21 
+	$X
+(
+Objeù
+)
+
+22 
+	$X
+(
+IÁeg”
+)
+
+23 
+	$X
+(
+Ušt32
+)
+
+24 
+	$X
+(
+IÁ32
+)
+
+26 #undeà
+X
+
+
+28 
+	#X
+(
+TYPE
+, 
+NAME
+) \
+
+29 
+imp
+::
+ToFaùÜy
+<
+TYPE
+>::
+»tuº_t
+ \
+
+30 
+imp
+::
+ToFaùÜy
+<
+TYPE
+>::
+	`cÚv”t
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) { \
+
+31  
+	`Ju¡
+(
+v®
+->
+NAME
+ ## 
+	`V®ue
+()); \
+
+32 
+	}
+
+	)
+}
+
+34 
+	$X
+(
+boÞ
+, 
+BoÞ—n
+)
+
+35 
+	$X
+(, 
+Numb”
+)
+
+36 
+	$X
+(
+št64_t
+, 
+IÁeg”
+)
+
+37 
+	$X
+(
+ušt32_t
+, 
+Ušt32
+)
+
+38 
+	$X
+(
+št32_t
+, 
+IÁ32
+)
+
+40 #undeà
+X
+
+
+	@interface/node_modules/nan/nan_define_own_property_helper.h
+
+9 #iâdeà
+NAN_DEFINE_OWN_PROPERTY_HELPER_H_
+
+
+10 
+	#NAN_DEFINE_OWN_PROPERTY_HELPER_H_
+
+
+	)
+
+12 
+Çme¥aû
+ 
+	gimp
+ {
+
+14 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+DefšeOwnPrÝ”tyH–³r
+(
+
+15 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+cu¼’t
+
+
+16 , 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+17 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+
+
+18 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+v®ue
+
+
+19 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibs
+ = v8::
+NÚe
+) {
+
+20  !(
+cu¼’t
+ & 
+v8
+::
+DÚtD–‘e
+) ||
+
+21 (!(
+cu¼’t
+ & 
+v8
+::
+R—dOÆy
+) &&
+
+22 !((
+©Œibs
+ ^ 
+cu¼’t
+è& ~
+v8
+::
+R—dOÆy
+))
+
+23 ? 
+Ju¡
+<
+boÞ
+>(
+obj
+->
+FÜûS‘
+(
+key
+, 
+v®ue
+, 
+©Œibs
+))
+
+24 : 
+NÙhšg
+<
+boÞ
+>();
+
+	@interface/node_modules/nan/nan_implementation_12_inl.h
+
+9 #iâdeà
+NAN_IMPLEMENTATION_12_INL_H_
+
+
+10 
+	#NAN_IMPLEMENTATION_12_INL_H_
+
+
+	)
+
+15 
+Çme¥aû
+ 
+	gimp
+ {
+
+19 
+	gFaùÜy
+<
+	gv8
+::
+A¼ay
+>::
+»tuº_t
+
+
+20 
+FaùÜy
+<
+v8
+::
+A¼ay
+>::
+New
+() {
+
+21  
+v8
+::
+A¼ay
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+());
+
+24 
+	gFaùÜy
+<
+	gv8
+::
+A¼ay
+>::
+»tuº_t
+
+
+25 
+FaùÜy
+<
+v8
+::
+A¼ay
+>::
+New
+(
+Ëngth
+) {
+
+26  
+v8
+::
+A¼ay
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Ëngth
+);
+
+31 
+	gFaùÜy
+<
+	gv8
+::
+BoÞ—n
+>::
+»tuº_t
+
+
+32 
+FaùÜy
+<
+v8
+::
+BoÞ—n
+>::
+New
+(
+boÞ
+ 
+v®ue
+) {
+
+33  
+v8
+::
+BoÞ—n
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+);
+
+38 
+	gFaùÜy
+<
+	gv8
+::
+BoÞ—nObjeù
+>::
+»tuº_t
+
+
+39 
+FaùÜy
+<
+v8
+::
+BoÞ—nObjeù
+>::
+New
+(
+boÞ
+ 
+v®ue
+) {
+
+40 #ià(
+NODE_MODULE_VERSION
+ >ð
+NODE_6_0_MODULE_VERSION
+)
+
+41  
+v8
+::
+BoÞ—nObjeù
+::
+New
+(
+
+42 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+).
+	gAs
+<
+	gv8
+::
+BoÞ—nObjeù
+>();
+
+44  
+	gv8
+::
+BoÞ—nObjeù
+::
+New
+(
+v®ue
+).
+As
+<
+v8
+::BooleanObject>();
+
+50 
+	gFaùÜy
+<
+	gv8
+::
+CÚ‹xt
+>::
+»tuº_t
+
+
+51 
+FaùÜy
+<
+v8
+::
+CÚ‹xt
+>::
+New
+Ðv8::
+Ex‹nsiÚCÚfigu¿tiÚ
+* 
+ex‹nsiÚs
+
+
+52 , 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+tm¶
+
+
+53 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+obj
+) {
+
+54  
+v8
+::
+CÚ‹xt
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+ex‹nsiÚs
+, 
+tm¶
+, 
+obj
+);
+
+59 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+60 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+61 
+FaùÜy
+<
+v8
+::
+D©e
+>::
+»tuº_t
+
+
+62 
+FaùÜy
+<
+v8
+::
+D©e
+>::
+New
+(
+v®ue
+) {
+
+63 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+64 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+65  
+	gscÝe
+.
+Esÿ³
+(
+v8
+::
+D©e
+::
+New
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+v®ue
+)
+
+66 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()).
+As
+<v8::
+D©e
+>());
+
+69 
+	gFaùÜy
+<
+	gv8
+::
+D©e
+>::
+»tuº_t
+
+
+70 
+FaùÜy
+<
+v8
+::
+D©e
+>::
+New
+(
+v®ue
+) {
+
+71  
+v8
+::
+D©e
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+).
+	gAs
+<
+	gv8
+::Date>();
+
+77 
+	gFaùÜy
+<
+	gv8
+::
+Ex‹º®
+>::
+»tuº_t
+
+
+78 
+FaùÜy
+<
+v8
+::
+Ex‹º®
+>::
+New
+(* 
+v®ue
+) {
+
+79  
+v8
+::
+Ex‹º®
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+);
+
+84 
+	gFaùÜy
+<
+	gv8
+::
+FunùiÚ
+>::
+»tuº_t
+
+
+85 
+FaùÜy
+<
+v8
+::
+FunùiÚ
+>::
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+86 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) {
+
+87 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+88 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+89 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+�l
+ = v8::ObjeùTem¶©e::
+New
+(
+isÞ©e
+);
+
+90 
+	g�l
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kFunùiÚF›ldCouÁ
+);
+
+91 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+NewIn¡ªû
+(
+�l
+).
+ToLoÿlChecked
+();
+
+93 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+94 
+imp
+::
+kFunùiÚIndex
+
+
+95 , 
+v8
+::
+Ex‹º®
+::
+New
+(
+isÞ©e
+, 
+»š‹½»t_ÿ¡
+<*>(
+ÿÎback
+)));
+
+97 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+v®
+ = v8::Loÿl<v8::V®ue>::
+New
+(
+isÞ©e
+, 
+d©a
+);
+
+99 ià(!
+	gv®
+.
+IsEm±y
+()) {
+
+100 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+v®
+);
+
+103 #ià
+NODE_MAJOR_VERSION
+ >= 10
+
+104 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+105 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚ
+> 
+funùiÚ
+ =
+
+106 
+v8
+::
+FunùiÚ
+::
+New
+(
+cÚ‹xt
+, 
+imp
+::
+FunùiÚC®lbackW¿µ”
+, 
+obj
+)
+
+107 .
+ToLoÿlChecked
+();
+
+109 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚ
+> 
+funùiÚ
+ =
+
+110 
+v8
+::
+FunùiÚ
+::
+New
+(
+isÞ©e
+, 
+imp
+::
+FunùiÚC®lbackW¿µ”
+, 
+obj
+);
+
+113  
+	gscÝe
+.
+Esÿ³
+(
+funùiÚ
+);
+
+118 
+	gFaùÜy
+<
+	gv8
+::
+FunùiÚTem¶©e
+>::
+»tuº_t
+
+
+119 
+FaùÜy
+<
+v8
+::
+FunùiÚTem¶©e
+>::
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+120 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+
+
+121 , 
+v8
+::
+Loÿl
+<v8::
+SigÇtu»
+> 
+sigÇtu»
+) {
+
+122 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+123 ià(
+	gÿÎback
+) {
+
+124 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+125 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+�l
+ = v8::ObjeùTem¶©e::
+New
+(
+isÞ©e
+);
+
+126 
+	g�l
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kFunùiÚF›ldCouÁ
+);
+
+127 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+NewIn¡ªû
+(
+�l
+).
+ToLoÿlChecked
+();
+
+129 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+130 
+imp
+::
+kFunùiÚIndex
+
+
+131 , 
+v8
+::
+Ex‹º®
+::
+New
+(
+isÞ©e
+, 
+»š‹½»t_ÿ¡
+<*>(
+ÿÎback
+)));
+
+132 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+v®
+ = v8::Loÿl<v8::V®ue>::
+New
+(
+isÞ©e
+, 
+d©a
+);
+
+134 ià(!
+	gv®
+.
+IsEm±y
+()) {
+
+135 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+v®
+);
+
+138  
+	gscÝe
+.
+Esÿ³
+(
+v8
+::
+FunùiÚTem¶©e
+::
+New
+Ð
+isÞ©e
+
+
+139 , 
+imp
+::
+FunùiÚC®lbackW¿µ”
+
+
+140 , 
+obj
+
+
+141 , 
+sigÇtu»
+));
+
+143  
+	gv8
+::
+FunùiÚTem¶©e
+::
+New
+(
+isÞ©e
+, 0, 
+d©a
+, 
+sigÇtu»
+);
+
+149 
+	gFaùÜy
+<
+	gv8
+::
+Numb”
+>::
+»tuº_t
+
+
+150 
+FaùÜy
+<
+v8
+::
+Numb”
+>::
+New
+(
+v®ue
+) {
+
+151  
+v8
+::
+Numb”
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+);
+
+156 
+	gFaùÜy
+<
+	gv8
+::
+Numb”Objeù
+>::
+»tuº_t
+
+
+157 
+FaùÜy
+<
+v8
+::
+Numb”Objeù
+>::
+New
+(
+v®ue
+) {
+
+158  
+v8
+::
+Numb”Objeù
+::
+New
+Ðv8::
+IsÞ©e
+::
+G‘Cu¼’t
+()
+
+159 , 
+v®ue
+).
+	gAs
+<
+	gv8
+::
+Numb”Objeù
+>();
+
+164 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+165 
+ty³Çme
+ 
+	gIÁeg”FaùÜy
+<
+	gT
+>::
+»tuº_t
+
+
+166 
+IÁeg”FaùÜy
+<
+T
+>::
+New
+(
+št32_t
+ 
+v®ue
+) {
+
+167  
+To
+<
+T
+>(T::
+New
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+));
+
+170 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+171 
+ty³Çme
+ 
+	gIÁeg”FaùÜy
+<
+	gT
+>::
+»tuº_t
+
+
+172 
+IÁeg”FaùÜy
+<
+T
+>::
+New
+(
+ušt32_t
+ 
+v®ue
+) {
+
+173  
+To
+<
+T
+>(T::
+NewFromUnsigÃd
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+));
+
+176 
+	gFaùÜy
+<
+	gv8
+::
+Ušt32
+>::
+»tuº_t
+
+
+177 
+FaùÜy
+<
+v8
+::
+Ušt32
+>::
+New
+(
+št32_t
+ 
+v®ue
+) {
+
+178  
+To
+<
+v8
+::
+Ušt32
+>(
+
+179 
+v8
+::
+Ušt32
+::
+NewFromUnsigÃd
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+));
+
+182 
+	gFaùÜy
+<
+	gv8
+::
+Ušt32
+>::
+»tuº_t
+
+
+183 
+FaùÜy
+<
+v8
+::
+Ušt32
+>::
+New
+(
+ušt32_t
+ 
+v®ue
+) {
+
+184  
+To
+<
+v8
+::
+Ušt32
+>(
+
+185 
+v8
+::
+Ušt32
+::
+NewFromUnsigÃd
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+));
+
+190 
+	gFaùÜy
+<
+	gv8
+::
+Objeù
+>::
+»tuº_t
+
+
+191 
+FaùÜy
+<
+v8
+::
+Objeù
+>::
+New
+() {
+
+192  
+v8
+::
+Objeù
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+());
+
+197 
+	gFaùÜy
+<
+	gv8
+::
+ObjeùTem¶©e
+>::
+»tuº_t
+
+
+198 
+FaùÜy
+<
+v8
+::
+ObjeùTem¶©e
+>::
+New
+() {
+
+199  
+v8
+::
+ObjeùTem¶©e
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+());
+
+204 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+205 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+206 
+FaùÜy
+<
+v8
+::
+RegExp
+>::
+»tuº_t
+
+
+207 
+FaùÜy
+<
+v8
+::
+RegExp
+>::
+New
+(
+
+208 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+·‰”n
+
+
+209 , 
+v8
+::
+RegExp
+::
+FÏgs
+ 
+æags
+) {
+
+210 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+211 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+212  
+	gscÝe
+.
+Esÿ³
+(
+
+213 
+v8
+::
+RegExp
+::
+New
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+·‰”n
+, 
+æags
+)
+
+214 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+RegExp
+>()));
+
+217 
+	gFaùÜy
+<
+	gv8
+::
+RegExp
+>::
+»tuº_t
+
+
+218 
+FaùÜy
+<
+v8
+::
+RegExp
+>::
+New
+(
+
+219 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+·‰”n
+
+
+220 , 
+v8
+::
+RegExp
+::
+FÏgs
+ 
+æags
+) {
+
+221  
+v8
+::
+RegExp
+::
+New
+(
+·‰”n
+, 
+æags
+);
+
+227 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+228 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+229 
+FaùÜy
+<
+v8
+::
+Sü�t
+>::
+»tuº_t
+
+
+230 
+FaùÜy
+<
+v8
+::
+Sü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+) {
+
+231 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+232 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+233 
+	gv8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+);
+
+234  
+	gscÝe
+.
+Esÿ³
+(
+
+235 
+v8
+::
+Sü�tCompž”
+::
+Compže
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), &
+¤c
+)
+
+236 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+Sü�t
+>()));
+
+239 
+	gFaùÜy
+<
+	gv8
+::
+Sü�t
+>::
+»tuº_t
+
+
+240 
+FaùÜy
+<
+v8
+::
+Sü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+
+
+241 , 
+v8
+::
+Sü�tOrigš
+ cÚ¡& 
+Üigš
+) {
+
+242 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+243 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+244 
+	gv8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+, 
+Üigš
+);
+
+245  
+	gscÝe
+.
+Esÿ³
+(
+
+246 
+v8
+::
+Sü�tCompž”
+::
+Compže
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), &
+¤c
+)
+
+247 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+Sü�t
+>()));
+
+250 
+	gFaùÜy
+<
+	gv8
+::
+Sü�t
+>::
+»tuº_t
+
+
+251 
+FaùÜy
+<
+v8
+::
+Sü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+) {
+
+252 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+);
+
+253  
+	gv8
+::
+Sü�tCompž”
+::
+Compže
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+¤c
+);
+
+256 
+	gFaùÜy
+<
+	gv8
+::
+Sü�t
+>::
+»tuº_t
+
+
+257 
+FaùÜy
+<
+v8
+::
+Sü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+
+
+258 , 
+v8
+::
+Sü�tOrigš
+ cÚ¡& 
+Üigš
+) {
+
+259 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+, 
+Üigš
+);
+
+260  
+	gv8
+::
+Sü�tCompž”
+::
+Compže
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+¤c
+);
+
+266 
+	gFaùÜy
+<
+	gv8
+::
+SigÇtu»
+>::
+»tuº_t
+
+
+267 
+FaùÜy
+<
+v8
+::
+SigÇtu»
+>::
+New
+(FaùÜy<v8::SigÇtu»>::
+FTH
+ 
+»ûiv”
+) {
+
+268  
+v8
+::
+SigÇtu»
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+»ûiv”
+);
+
+273 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+274 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+() {
+
+275  
+v8
+::
+SŒšg
+::
+Em±y
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+());
+
+278 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+279 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+280 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+281 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(cÚ¡ * 
+v®ue
+, 
+Ëngth
+) {
+
+282  
+	gv8
+::
+SŒšg
+::
+NewFromUtf8
+(
+
+283 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+, v8::
+NewSŒšgTy³
+::
+kNÜm®
+, 
+Ëngth
+);
+
+286 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+287 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+) {
+
+288 
+as£¹
+(
+v®ue
+.
+size
+(è<ð
+INT_MAX
+ && "string�oo†ong");
+
+289  
+	gv8
+::
+SŒšg
+::
+NewFromUtf8
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(),
+
+290 
+v®ue
+.
+d©a
+(), 
+v8
+::
+NewSŒšgTy³
+::
+kNÜm®
+, 
+¡©ic_ÿ¡
+<>(v®ue.
+size
+()));
+
+293 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+294 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(cÚ¡ 
+ušt16_t
+ * 
+v®ue
+, 
+Ëngth
+) {
+
+295  
+	gv8
+::
+SŒšg
+::
+NewFromTwoBy‹
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+,
+
+296 
+v8
+::
+NewSŒšgTy³
+::
+kNÜm®
+, 
+Ëngth
+);
+
+299 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+300 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(v8::SŒšg::
+Ex‹º®SŒšgResourû
+ * 
+v®ue
+) {
+
+301  
+v8
+::
+SŒšg
+::
+NewEx‹º®TwoBy‹
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+);
+
+304 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+305 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(
+Ex‹º®OÃBy‹SŒšgResourû
+ * 
+v®ue
+) {
+
+306  
+v8
+::
+SŒšg
+::
+NewEx‹º®OÃBy‹
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+);
+
+309 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+310 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(cÚ¡ * 
+v®ue
+, 
+Ëngth
+) {
+
+311  
+	gv8
+::
+SŒšg
+::
+NewFromUtf8
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+,
+
+312 
+v8
+::
+SŒšg
+::
+kNÜm®SŒšg
+, 
+Ëngth
+);
+
+315 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+316 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(
+
+317 
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+) {
+
+318 
+as£¹
+(
+v®ue
+.
+size
+(è<ð
+INT_MAX
+ && "string�oo†ong");
+
+319  
+	gv8
+::
+SŒšg
+::
+NewFromUtf8
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+.
+d©a
+(),
+
+320 
+v8
+::
+SŒšg
+::
+kNÜm®SŒšg
+,
+
+321 
+¡©ic_ÿ¡
+<>(
+v®ue
+.
+size
+()));
+
+324 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+325 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(cÚ¡ 
+ušt16_t
+ * 
+v®ue
+, 
+Ëngth
+) {
+
+326  
+	gv8
+::
+SŒšg
+::
+NewFromTwoBy‹
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+,
+
+327 
+v8
+::
+SŒšg
+::
+kNÜm®SŒšg
+, 
+Ëngth
+);
+
+330 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+331 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(v8::SŒšg::
+Ex‹º®SŒšgResourû
+ * 
+v®ue
+) {
+
+332  
+v8
+::
+SŒšg
+::
+NewEx‹º®
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+);
+
+335 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+336 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(
+Ex‹º®OÃBy‹SŒšgResourû
+ * 
+v®ue
+) {
+
+337  
+v8
+::
+SŒšg
+::
+NewEx‹º®
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+);
+
+346 
+	gFaùÜy
+<
+	gv8
+::
+SŒšgObjeù
+>::
+»tuº_t
+
+
+347 
+FaùÜy
+<
+v8
+::
+SŒšgObjeù
+>::
+New
+(v8::
+Loÿl
+<v8::
+SŒšg
+> 
+v®ue
+) {
+
+349 #ià
+V8_MAJOR_VERSION
+ > 7 || (V8_MAJOR_VERSION =ð7 && 
+V8_MINOR_VERSION
+ > 0)
+
+350  
+v8
+::
+SŒšgObjeù
+::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+v®ue
+)
+
+351 .
+	gAs
+<
+	gv8
+::
+SŒšgObjeù
+>();
+
+353 #ifdeà
+_MSC_VER
+
+
+354 #´agm¨
+w¬nšg
+(
+push
+)
+
+355 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4996)
+
+357 #ifdeà
+__GNUC__
+
+
+358 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+359 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wdeprecated-declarations"
+
+361  
+	gv8
+::
+SŒšgObjeù
+::
+New
+(
+v®ue
+).
+As
+<
+v8
+::StringObject>();
+
+362 #ifdeà
+__GNUC__
+
+
+363 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+365 #ifdeà
+_MSC_VER
+
+
+366 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+373 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+374 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+375 
+FaùÜy
+<
+v8
+::
+UnboundSü�t
+>::
+»tuº_t
+
+
+376 
+FaùÜy
+<
+v8
+::
+UnboundSü�t
+>::
+New
+(v8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+) {
+
+377 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+);
+
+378  
+	gv8
+::
+Sü�tCompž”
+::
+CompžeUnboundSü�t
+(
+
+379 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+¤c
+);
+
+382 
+	gFaùÜy
+<
+	gv8
+::
+UnboundSü�t
+>::
+»tuº_t
+
+
+383 
+FaùÜy
+<
+v8
+::
+UnboundSü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+
+
+384 , 
+v8
+::
+Sü�tOrigš
+ cÚ¡& 
+Üigš
+) {
+
+385 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+, 
+Üigš
+);
+
+386  
+	gv8
+::
+Sü�tCompž”
+::
+CompžeUnboundSü�t
+(
+
+387 
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+¤c
+);
+
+390 
+	gFaùÜy
+<
+	gv8
+::
+UnboundSü�t
+>::
+»tuº_t
+
+
+391 
+FaùÜy
+<
+v8
+::
+UnboundSü�t
+>::
+New
+(v8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+) {
+
+392 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+);
+
+393  
+	gv8
+::
+Sü�tCompž”
+::
+CompžeUnbound
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+¤c
+);
+
+396 
+	gFaùÜy
+<
+	gv8
+::
+UnboundSü�t
+>::
+»tuº_t
+
+
+397 
+FaùÜy
+<
+v8
+::
+UnboundSü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+
+
+398 , 
+v8
+::
+Sü�tOrigš
+ cÚ¡& 
+Üigš
+) {
+
+399 
+v8
+::
+Sü�tCompž”
+::
+Sourû
+ 
+¤c
+(
+sourû
+, 
+Üigš
+);
+
+400  
+	gv8
+::
+Sü�tCompž”
+::
+CompžeUnbound
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), &
+¤c
+);
+
+408 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+409 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+410 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+HªdË
+<T> 
+h
+) {
+
+411  
+v8
+::
+Loÿl
+<
+T
+>::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+h
+);
+
+415 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+416 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+P”si¡’t
+<T, 
+M
+> cÚ¡& 
+p
+) {
+
+417  
+	gv8
+::
+Loÿl
+<
+T
+>::
+New
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+p
+);
+
+420 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+421 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+P”si¡’t
+<T, 
+M
+> cÚ¡& 
+p
+) {
+
+422  
+	gv8
+::
+Loÿl
+<
+T
+>::
+New
+(
+v8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+p
+);
+
+425 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+426 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+Glob®
+<T> cÚ¡& 
+p
+) {
+
+427  
+v8
+::
+Loÿl
+<
+T
+>::
+New
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+p
+);
+
+	@interface/node_modules/nan/nan_implementation_pre_12_inl.h
+
+9 #iâdeà
+NAN_IMPLEMENTATION_PRE_12_INL_H_
+
+
+10 
+	#NAN_IMPLEMENTATION_PRE_12_INL_H_
+
+
+	)
+
+16 
+Çme¥aû
+ 
+	gimp
+ {
+
+20 
+	gFaùÜy
+<
+	gv8
+::
+A¼ay
+>::
+»tuº_t
+
+
+21 
+FaùÜy
+<
+v8
+::
+A¼ay
+>::
+New
+() {
+
+22  
+v8
+::
+A¼ay
+::
+New
+();
+
+25 
+	gFaùÜy
+<
+	gv8
+::
+A¼ay
+>::
+»tuº_t
+
+
+26 
+FaùÜy
+<
+v8
+::
+A¼ay
+>::
+New
+(
+Ëngth
+) {
+
+27  
+v8
+::
+A¼ay
+::
+New
+(
+Ëngth
+);
+
+32 
+	gFaùÜy
+<
+	gv8
+::
+BoÞ—n
+>::
+»tuº_t
+
+
+33 
+FaùÜy
+<
+v8
+::
+BoÞ—n
+>::
+New
+(
+boÞ
+ 
+v®ue
+) {
+
+34  
+v8
+::
+BoÞ—n
+::
+New
+(
+v®ue
+)->
+ToBoÞ—n
+();
+
+39 
+	gFaùÜy
+<
+	gv8
+::
+BoÞ—nObjeù
+>::
+»tuº_t
+
+
+40 
+FaùÜy
+<
+v8
+::
+BoÞ—nObjeù
+>::
+New
+(
+boÞ
+ 
+v®ue
+) {
+
+41  
+v8
+::
+BoÞ—nObjeù
+::
+New
+(
+v®ue
+).
+As
+<v8::BooleanObject>();
+
+46 
+	gFaùÜy
+<
+	gv8
+::
+CÚ‹xt
+>::
+»tuº_t
+
+
+47 
+FaùÜy
+<
+v8
+::
+CÚ‹xt
+>::
+New
+Ðv8::
+Ex‹nsiÚCÚfigu¿tiÚ
+* 
+ex‹nsiÚs
+
+
+48 , 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+tm¶
+
+
+49 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+obj
+) {
+
+50 
+v8
+::
+P”si¡’t
+<v8::
+CÚ‹xt
+> 
+ùx
+ = v8::CÚ‹xt::
+New
+(
+ex‹nsiÚs
+, 
+tm¶
+, 
+obj
+);
+
+51 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+lùx
+ = v8::Loÿl<v8::CÚ‹xt>::
+New
+(
+ùx
+);
+
+52 
+	gùx
+.
+Di¥o£
+();
+
+53  
+	glùx
+;
+
+58 
+	gFaùÜy
+<
+	gv8
+::
+D©e
+>::
+»tuº_t
+
+
+59 
+FaùÜy
+<
+v8
+::
+D©e
+>::
+New
+(
+v®ue
+) {
+
+60  
+v8
+::
+D©e
+::
+New
+(
+v®ue
+).
+As
+<v8::Date>();
+
+65 
+	gFaùÜy
+<
+	gv8
+::
+Ex‹º®
+>::
+»tuº_t
+
+
+66 
+FaùÜy
+<
+v8
+::
+Ex‹º®
+>::
+New
+(* 
+v®ue
+) {
+
+67  
+v8
+::
+Ex‹º®
+::
+New
+(
+v®ue
+);
+
+72 
+	gFaùÜy
+<
+	gv8
+::
+FunùiÚ
+>::
+»tuº_t
+
+
+73 
+FaùÜy
+<
+v8
+::
+FunùiÚ
+>::
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+74 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+) {
+
+75 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+77  
+	gscÝe
+.
+Clo£
+(
+FaùÜy
+<
+v8
+::
+FunùiÚTem¶©e
+>::
+New
+(
+
+78 
+ÿÎback
+, 
+d©a
+, 
+v8
+::
+Loÿl
+<v8::
+SigÇtu»
+>())
+
+79 ->
+G‘FunùiÚ
+());
+
+85 
+	gFaùÜy
+<
+	gv8
+::
+FunùiÚTem¶©e
+>::
+»tuº_t
+
+
+86 
+FaùÜy
+<
+v8
+::
+FunùiÚTem¶©e
+>::
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+87 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+
+
+88 , 
+v8
+::
+Loÿl
+<v8::
+SigÇtu»
+> 
+sigÇtu»
+) {
+
+89 ià(
+ÿÎback
+) {
+
+90 
+v8
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+92 
+	gv8
+::
+Loÿl
+<
+v8
+::
+ObjeùTem¶©e
+> 
+�l
+ = v8::ObjeùTem¶©e::
+New
+();
+
+93 
+	g�l
+->
+S‘IÁ”ÇlF›ldCouÁ
+(
+imp
+::
+kFunùiÚF›ldCouÁ
+);
+
+94 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+ = 
+�l
+->
+NewIn¡ªû
+();
+
+96 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+
+97 
+imp
+::
+kFunùiÚIndex
+
+
+98 , 
+v8
+::
+Ex‹º®
+::
+New
+(
+»š‹½»t_ÿ¡
+<*>(
+ÿÎback
+)));
+
+100 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+v®
+ = v8::Loÿl<v8::V®ue>::
+New
+(
+d©a
+);
+
+102 ià(!
+	gv®
+.
+IsEm±y
+()) {
+
+103 
+	gobj
+->
+S‘IÁ”ÇlF›ld
+(
+imp
+::
+kD©aIndex
+, 
+v®
+);
+
+108  
+	gscÝe
+.
+Clo£
+(
+
+109 
+v8
+::
+FunùiÚTem¶©e
+::
+New
+(
+imp
+::
+FunùiÚC®lbackW¿µ”
+
+
+110 , 
+obj
+
+
+111 , 
+sigÇtu»
+));
+
+113  
+	gv8
+::
+FunùiÚTem¶©e
+::
+New
+(0, 
+d©a
+, 
+sigÇtu»
+);
+
+119 
+	gFaùÜy
+<
+	gv8
+::
+Numb”
+>::
+»tuº_t
+
+
+120 
+FaùÜy
+<
+v8
+::
+Numb”
+>::
+New
+(
+v®ue
+) {
+
+121  
+v8
+::
+Numb”
+::
+New
+(
+v®ue
+);
+
+126 
+	gFaùÜy
+<
+	gv8
+::
+Numb”Objeù
+>::
+»tuº_t
+
+
+127 
+FaùÜy
+<
+v8
+::
+Numb”Objeù
+>::
+New
+(
+v®ue
+) {
+
+128  
+v8
+::
+Numb”Objeù
+::
+New
+(
+v®ue
+).
+As
+<v8::NumberObject>();
+
+133 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+134 
+ty³Çme
+ 
+	gIÁeg”FaùÜy
+<
+	gT
+>::
+»tuº_t
+
+
+135 
+IÁeg”FaùÜy
+<
+T
+>::
+New
+(
+št32_t
+ 
+v®ue
+) {
+
+136  
+To
+<
+T
+>(T::
+New
+(
+v®ue
+));
+
+139 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+140 
+ty³Çme
+ 
+	gIÁeg”FaùÜy
+<
+	gT
+>::
+»tuº_t
+
+
+141 
+IÁeg”FaùÜy
+<
+T
+>::
+New
+(
+ušt32_t
+ 
+v®ue
+) {
+
+142  
+To
+<
+T
+>(T::
+NewFromUnsigÃd
+(
+v®ue
+));
+
+145 
+	gFaùÜy
+<
+	gv8
+::
+Ušt32
+>::
+»tuº_t
+
+
+146 
+FaùÜy
+<
+v8
+::
+Ušt32
+>::
+New
+(
+št32_t
+ 
+v®ue
+) {
+
+147  
+To
+<
+v8
+::
+Ušt32
+>(v8::Ušt32::
+NewFromUnsigÃd
+(
+v®ue
+));
+
+150 
+	gFaùÜy
+<
+	gv8
+::
+Ušt32
+>::
+»tuº_t
+
+
+151 
+FaùÜy
+<
+v8
+::
+Ušt32
+>::
+New
+(
+ušt32_t
+ 
+v®ue
+) {
+
+152  
+To
+<
+v8
+::
+Ušt32
+>(v8::Ušt32::
+NewFromUnsigÃd
+(
+v®ue
+));
+
+158 
+	gFaùÜy
+<
+	gv8
+::
+Objeù
+>::
+»tuº_t
+
+
+159 
+FaùÜy
+<
+v8
+::
+Objeù
+>::
+New
+() {
+
+160  
+v8
+::
+Objeù
+::
+New
+();
+
+165 
+	gFaùÜy
+<
+	gv8
+::
+ObjeùTem¶©e
+>::
+»tuº_t
+
+
+166 
+FaùÜy
+<
+v8
+::
+ObjeùTem¶©e
+>::
+New
+() {
+
+167  
+v8
+::
+ObjeùTem¶©e
+::
+New
+();
+
+172 
+	gFaùÜy
+<
+	gv8
+::
+RegExp
+>::
+»tuº_t
+
+
+173 
+FaùÜy
+<
+v8
+::
+RegExp
+>::
+New
+(
+
+174 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+·‰”n
+
+
+175 , 
+v8
+::
+RegExp
+::
+FÏgs
+ 
+æags
+) {
+
+176  
+v8
+::
+RegExp
+::
+New
+(
+·‰”n
+, 
+æags
+);
+
+181 
+	gFaùÜy
+<
+	gv8
+::
+Sü�t
+>::
+»tuº_t
+
+
+182 
+FaùÜy
+<
+v8
+::
+Sü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+) {
+
+183  
+v8
+::
+Sü�t
+::
+New
+(
+sourû
+);
+
+185 
+	gFaùÜy
+<
+	gv8
+::
+Sü�t
+>::
+»tuº_t
+
+
+186 
+FaùÜy
+<
+v8
+::
+Sü�t
+>::
+New
+Ðv8::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+
+
+187 , 
+v8
+::
+Sü�tOrigš
+ cÚ¡& 
+Üigš
+) {
+
+188  
+v8
+::
+Sü�t
+::
+New
+(
+sourû
+, 
+cÚ¡_ÿ¡
+<v8::
+Sü�tOrigš
+*>(&
+Üigš
+));
+
+193 
+	gFaùÜy
+<
+	gv8
+::
+SigÇtu»
+>::
+»tuº_t
+
+
+194 
+FaùÜy
+<
+v8
+::
+SigÇtu»
+>::
+New
+(FaùÜy<v8::SigÇtu»>::
+FTH
+ 
+»ûiv”
+) {
+
+195  
+v8
+::
+SigÇtu»
+::
+New
+(
+»ûiv”
+);
+
+200 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+201 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+() {
+
+202  
+v8
+::
+SŒšg
+::
+Em±y
+();
+
+205 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+206 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(cÚ¡ * 
+v®ue
+, 
+Ëngth
+) {
+
+207  
+	gv8
+::
+SŒšg
+::
+New
+(
+v®ue
+, 
+Ëngth
+);
+
+210 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+211 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(
+
+212 
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+) {
+
+213 
+as£¹
+(
+v®ue
+.
+size
+(è<ð
+INT_MAX
+ && "string�oo†ong");
+
+214  
+	gv8
+::
+SŒšg
+::
+New
+(
+v®ue
+.
+d©a
+(), 
+¡©ic_ÿ¡
+<>(v®ue.
+size
+()));
+
+217 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+218 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(cÚ¡ 
+ušt16_t
+ * 
+v®ue
+, 
+Ëngth
+) {
+
+219  
+	gv8
+::
+SŒšg
+::
+New
+(
+v®ue
+, 
+Ëngth
+);
+
+222 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+223 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(v8::SŒšg::
+Ex‹º®SŒšgResourû
+ * 
+v®ue
+) {
+
+224  
+v8
+::
+SŒšg
+::
+NewEx‹º®
+(
+v®ue
+);
+
+227 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+>::
+»tuº_t
+
+
+228 
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+New
+(v8::SŒšg::
+Ex‹º®AsciiSŒšgResourû
+ * 
+v®ue
+) {
+
+229  
+v8
+::
+SŒšg
+::
+NewEx‹º®
+(
+v®ue
+);
+
+234 
+	gFaùÜy
+<
+	gv8
+::
+SŒšgObjeù
+>::
+»tuº_t
+
+
+235 
+FaùÜy
+<
+v8
+::
+SŒšgObjeù
+>::
+New
+(v8::
+Loÿl
+<v8::
+SŒšg
+> 
+v®ue
+) {
+
+236  
+v8
+::
+SŒšgObjeù
+::
+New
+(
+v®ue
+).
+As
+<v8::StringObject>();
+
+243 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+244 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+HªdË
+<T> 
+h
+) {
+
+245  
+v8
+::
+Loÿl
+<
+T
+>::
+New
+(
+h
+);
+
+248 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+249 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+P”si¡’t
+<T> cÚ¡& 
+p
+) {
+
+250  
+v8
+::
+Loÿl
+<
+T
+>::
+New
+(
+p
+);
+
+253 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+254 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+P”si¡’t
+<T, 
+M
+> cÚ¡& 
+p
+) {
+
+255  
+	gv8
+::
+Loÿl
+<
+T
+>::
+New
+(
+p
+.
+³rsi¡’t
+);
+
+258 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+259 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+Glob®
+<T> cÚ¡& 
+p
+) {
+
+260  
+v8
+::
+Loÿl
+<
+T
+>::
+New
+(
+p
+.
+³rsi¡’t
+);
+
+	@interface/node_modules/nan/nan_json.h
+
+9 #iâdeà
+NAN_JSON_H_
+
+
+10 
+	#NAN_JSON_H_
+
+
+	)
+
+12 #ià
+NODE_MODULE_VERSION
+ < 
+NODE_0_12_MODULE_VERSION
+
+
+13 
+	#NAN_JSON_H_NEED_PARSE
+ 1
+
+	)
+
+15 
+	#NAN_JSON_H_NEED_PARSE
+ 0
+
+	)
+
+18 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_7_0_MODULE_VERSION
+
+
+19 
+	#NAN_JSON_H_NEED_STRINGIFY
+ 0
+
+	)
+
+21 
+	#NAN_JSON_H_NEED_STRINGIFY
+ 1
+
+	)
+
+24 þas 
+	cJSON
+ {
+
+25 
+	mpublic
+:
+
+26 
+	$JSON
+() {
+
+27 #ià
+NAN_JSON_H_NEED_PARSE
+ + 
+NAN_JSON_H_NEED_STRINGIFY
+
+
+28 
+Nª
+::
+HªdËScÝe
+ 
+scÝe
+;
+
+30 
+Nª
+::
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+maybe_glob®_jsÚ
+ = Nª::
+	`G‘
+(
+
+31 
+Nª
+::
+	`G‘Cu¼’tCÚ‹xt
+()->
+	`Glob®
+(),
+
+32 
+Nª
+::
+	`New
+("JSON").
+	`ToLoÿlChecked
+()
+
+35 
+	`as£¹
+(!
+maybe_glob®_jsÚ
+.
+	`IsEm±y
+() && "global JSON isƒmpty");
+
+36 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®_glob®_jsÚ
+ = 
+maybe_glob®_jsÚ
+.
+	`ToLoÿlChecked
+();
+
+38 
+	`as£¹
+(
+v®_glob®_jsÚ
+->
+	`IsObjeù
+() && "global JSON is‚ot‡n object");
+
+39 
+Nª
+::
+MaybeLoÿl
+<
+v8
+::
+Objeù
+> 
+maybe_obj_glob®_jsÚ
+ =
+
+40 
+Nª
+::
+To
+<
+v8
+::
+Objeù
+>(
+v®_glob®_jsÚ
+);
+
+42 
+	`as£¹
+(!
+maybe_obj_glob®_jsÚ
+.
+	`IsEm±y
+() && "global JSON object isƒmpty");
+
+43 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+glob®_jsÚ
+ = 
+maybe_obj_glob®_jsÚ
+.
+	`ToLoÿlChecked
+();
+
+45 #ià
+NAN_JSON_H_NEED_PARSE
+
+
+46 
+Nª
+::
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+maybe_·r£_m‘hod
+ = Nª::
+	`G‘
+(
+
+47 
+glob®_jsÚ
+, 
+Nª
+::
+	`New
+("·r£").
+	`ToLoÿlChecked
+()
+
+50 
+	`as£¹
+(!
+maybe_·r£_m‘hod
+.
+	`IsEm±y
+() && "JSON.parse isƒmpty");
+
+51 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+·r£_m‘hod
+ = 
+maybe_·r£_m‘hod
+.
+	`ToLoÿlChecked
+();
+
+53 
+	`as£¹
+(
+·r£_m‘hod
+->
+	`IsFunùiÚ
+() && "JSON.parse is‚ot‡ function");
+
+54 
+·r£_cb_
+.
+	`Re£t
+(
+·r£_m‘hod
+.
+As
+<
+v8
+::
+FunùiÚ
+>());
+
+57 #ià
+NAN_JSON_H_NEED_STRINGIFY
+
+
+58 
+Nª
+::
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+maybe_¡ršgify_m‘hod
+ = Nª::
+	`G‘
+(
+
+59 
+glob®_jsÚ
+, 
+Nª
+::
+	`New
+("¡ršgify").
+	`ToLoÿlChecked
+()
+
+62 
+	`as£¹
+(!
+maybe_¡ršgify_m‘hod
+.
+	`IsEm±y
+() && "JSON.stringify isƒmpty");
+
+63 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¡ršgify_m‘hod
+ =
+
+64 
+maybe_¡ršgify_m‘hod
+.
+	`ToLoÿlChecked
+();
+
+66 
+	`as£¹
+(
+
+67 
+¡ršgify_m‘hod
+->
+	`IsFunùiÚ
+() && "JSON.stringify is‚ot‡ function"
+
+69 
+¡ršgify_cb_
+.
+	`Re£t
+(
+¡ršgify_m‘hod
+.
+As
+<
+v8
+::
+FunùiÚ
+>());
+
+74 
+šlše
+
+
+75 
+Nª
+::
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+	`P¬£
+(v8::
+Loÿl
+<v8::
+SŒšg
+> 
+jsÚ_¡ršg
+) {
+
+76 
+Nª
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+77 #ià
+NAN_JSON_H_NEED_PARSE
+
+
+78  
+scÝe
+.
+	`Esÿ³
+(
+	`·r£
+(
+jsÚ_¡ršg
+));
+
+80 
+Nª
+::
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+»suÉ
+;
+
+81 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_0_12_MODULE_VERSION
+ && \
+
+82 
+NODE_MODULE_VERSION
+ <ð
+IOJS_2_0_MODULE_VERSION
+
+
+83 
+»suÉ
+ = 
+v8
+::
+JSON
+::
+	`P¬£
+(
+jsÚ_¡ršg
+);
+
+85 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_6_0_MODULE_VERSION
+
+
+86 
+v8
+::
+Loÿl
+<v8::
+CÚ‹xt
+> 
+cÚ‹xt_Ü_isÞ©e
+ = 
+Nª
+::
+	`G‘Cu¼’tCÚ‹xt
+();
+
+88 
+v8
+::
+IsÞ©e
+* 
+cÚ‹xt_Ü_isÞ©e
+ = v8::IsÞ©e::
+	`G‘Cu¼’t
+();
+
+90 
+»suÉ
+ = 
+v8
+::
+JSON
+::
+	`P¬£
+(
+cÚ‹xt_Ü_isÞ©e
+, 
+jsÚ_¡ršg
+);
+
+93 ià(
+»suÉ
+.
+	`IsEm±y
+()è 
+v8
+::
+Loÿl
+<v8::
+V®ue
+>();
+
+94  
+scÝe
+.
+	`Esÿ³
+(
+»suÉ
+.
+	`ToLoÿlChecked
+());
+
+96 
+	}
+}
+
+98 
+šlše
+
+
+99 
+	gNª
+::
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+> 
+SŒšgify
+(v8::
+Loÿl
+<v8::
+Objeù
+> 
+jsÚ_objeù
+) {
+
+100 
+Nª
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+101 
+	gNª
+::
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+> 
+»suÉ
+ =
+
+102 #ià
+NAN_JSON_H_NEED_STRINGIFY
+
+
+103 
+Nª
+::
+To
+<
+v8
+::
+SŒšg
+>(
+¡ršgify
+(
+jsÚ_objeù
+));
+
+105 
+	gv8
+::
+JSON
+::
+SŒšgify
+(
+Nª
+::
+G‘Cu¼’tCÚ‹xt
+(), 
+jsÚ_objeù
+);
+
+107 ià(
+	g»suÉ
+.
+IsEm±y
+()è 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+>();
+
+108  
+	gscÝe
+.
+Esÿ³
+(
+»suÉ
+.
+ToLoÿlChecked
+());
+
+111 
+šlše
+
+
+112 
+	gNª
+::
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+> 
+SŒšgify
+(v8::
+Loÿl
+<v8::
+Objeù
+> 
+jsÚ_objeù
+,
+
+113 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+g­
+) {
+
+114 
+Nª
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+;
+
+115 
+	gNª
+::
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+> 
+»suÉ
+ =
+
+116 #ià
+NAN_JSON_H_NEED_STRINGIFY
+
+
+117 
+Nª
+::
+To
+<
+v8
+::
+SŒšg
+>(
+¡ršgify
+(
+jsÚ_objeù
+, 
+g­
+));
+
+119 
+	gv8
+::
+JSON
+::
+SŒšgify
+(
+Nª
+::
+G‘Cu¼’tCÚ‹xt
+(), 
+jsÚ_objeù
+, 
+g­
+);
+
+121 ià(
+	g»suÉ
+.
+IsEm±y
+()è 
+	gv8
+::
+Loÿl
+<
+v8
+::
+SŒšg
+>();
+
+122  
+	gscÝe
+.
+Esÿ³
+(
+»suÉ
+.
+ToLoÿlChecked
+());
+
+125 
+	g´iv©e
+:
+
+126 
+	$NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+JSON
+)
+
+127 #ià
+NAN_JSON_H_NEED_PARSE
+
+
+128 
+Nª
+::
+C®lback
+ 
+·r£_cb_
+;
+
+130 #ià
+NAN_JSON_H_NEED_STRINGIFY
+
+
+131 
+Nª
+::
+C®lback
+ 
+¡ršgify_cb_
+;
+
+134 #ià
+NAN_JSON_H_NEED_PARSE
+
+
+135 
+šlše
+ 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+	`·r£
+(v8::Loÿl<v8::V®ue> 
+¬g
+) {
+
+136 
+	`as£¹
+(!
+·r£_cb_
+.
+	`IsEm±y
+() && "parse_cb_ isƒmpty");
+
+137 
+AsyncResourû
+ 
+	`»sourû
+("nan:JSON.parse");
+
+138  
+·r£_cb_
+.
+	`C®l
+(1, &
+¬g
+, &
+»sourû
+).
+	`FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+139 
+	}
+}
+
+142 #ià
+NAN_JSON_H_NEED_STRINGIFY
+
+
+143 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+¡ršgify
+(v8::Loÿl<v8::V®ue> 
+¬g
+) {
+
+144 
+as£¹
+(!
+¡ršgify_cb_
+.
+IsEm±y
+() && "stringify_cb_ isƒmpty");
+
+145 
+AsyncResourû
+ 
+»sourû
+("nan:JSON.stringify");
+
+146  
+	g¡ršgify_cb_
+.
+C®l
+(1, &
+¬g
+, &
+»sourû
+)
+
+147 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+150 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+¡ršgify
+(v8::Loÿl<v8::V®ue> 
+¬g
+,
+
+151 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+g­
+) {
+
+152 
+as£¹
+(!
+¡ršgify_cb_
+.
+IsEm±y
+() && "stringify_cb_ isƒmpty");
+
+154 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+¬gv
+[] = {
+
+155 
+¬g
+,
+
+156 
+Nª
+::
+NuÎ
+(),
+
+157 
+g­
+
+
+159 
+AsyncResourû
+ 
+»sourû
+("nan:JSON.stringify");
+
+160  
+	g¡ršgify_cb_
+.
+C®l
+(3, 
+¬gv
+, &
+»sourû
+)
+
+161 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>());
+
+	@interface/node_modules/nan/nan_maybe_43_inl.h
+
+9 #iâdeà
+NAN_MAYBE_43_INL_H_
+
+
+10 
+	#NAN_MAYBE_43_INL_H_
+
+
+	)
+
+12 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+13 
+usšg
+ 
+	gMaybeLoÿl
+ = 
+v8
+::
+MaybeLoÿl
+<
+T
+>;
+
+15 
+šlše
+
+
+16 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+> 
+ToD‘ažSŒšg
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) {
+
+17 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+18 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+19  
+	gscÝe
+.
+Esÿ³
+(
+v®
+->
+ToD‘ažSŒšg
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+20 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+>()));
+
+23 
+šlše
+
+
+24 
+	gMaybeLoÿl
+<
+	gv8
+::
+Ušt32
+> 
+ToA¼ayIndex
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®
+) {
+
+25 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+26 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+27  
+	gscÝe
+.
+Esÿ³
+(
+v®
+->
+ToA¼ayIndex
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+28 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+Ušt32
+>()));
+
+31 
+šlše
+
+
+32 
+	gMaybe
+<
+	gboÞ
+> 
+Equ®s
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+a
+, v8::Loÿl<v8::V®ue>(
+b
+)) {
+
+33 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+34 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+35  
+	ga
+->
+Equ®s
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+b
+);
+
+38 
+šlše
+
+
+39 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+NewIn¡ªû
+(
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+h
+) {
+
+40 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+41 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+42  
+	gscÝe
+.
+Esÿ³
+(
+h
+->
+NewIn¡ªû
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+43 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+>()));
+
+46 
+šlše
+
+
+47 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+NewIn¡ªû
+(
+
+48 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+h
+
+
+49 , 
+¬gc
+
+
+50 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+51 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+52 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+53  
+	gscÝe
+.
+Esÿ³
+(
+h
+->
+NewIn¡ªû
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+¬gc
+, 
+¬gv
+)
+
+54 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+>()));
+
+57 
+šlše
+
+
+58 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+NewIn¡ªû
+(
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+h
+) {
+
+59 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+60 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+61  
+	gscÝe
+.
+Esÿ³
+(
+h
+->
+NewIn¡ªû
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+62 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+>()));
+
+66 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+FunùiÚ
+> 
+G‘FunùiÚ
+(
+
+67 
+v8
+::
+Loÿl
+<v8::
+FunùiÚTem¶©e
+> 
+t
+) {
+
+68 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+69 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+70  
+	gscÝe
+.
+Esÿ³
+(
+t
+->
+G‘FunùiÚ
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+71 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+>()));
+
+74 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+S‘
+(
+
+75 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+76 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+key
+
+
+77 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+) {
+
+78 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+79 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+80  
+	gobj
+->
+S‘
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+, 
+v®ue
+);
+
+83 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+S‘
+(
+
+84 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+85 , 
+ušt32_t
+ 
+šdex
+
+
+86 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+) {
+
+87 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+88 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+89  
+	gobj
+->
+S‘
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+šdex
+, 
+v®ue
+);
+
+92 #ià
+NODE_MODULE_VERSION
+ < 
+NODE_4_0_MODULE_VERSION
+
+
+93 
+	~"Çn_defše_own_´Ý”ty_h–³r.h
+"
+
+96 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+DefšeOwnPrÝ”ty
+(
+
+97 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+98 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+
+
+99 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+100 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibs
+ = v8::
+NÚe
+) {
+
+101 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+102 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+103 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_4_0_MODULE_VERSION
+
+
+104  
+	gobj
+->
+DefšeOwnPrÝ”ty
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+, 
+v®ue
+,
+
+105 
+©Œibs
+);
+
+107 
+	gMaybe
+<
+	gv8
+::
+PrÝ”tyA‰ribu‹
+> 
+maybeCu¼’t
+ =
+
+108 
+obj
+->
+G‘PrÝ”tyA‰ribu‹s
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+);
+
+109 ià(
+	gmaybeCu¼’t
+.
+IsNÙhšg
+()) {
+
+110  
+	gNÙhšg
+<
+	gboÞ
+>();
+
+112 
+	gv8
+::
+PrÝ”tyA‰ribu‹
+ 
+cu¼’t
+ = 
+maybeCu¼’t
+.
+FromJu¡
+();
+
+113  
+	gimp
+::
+DefšeOwnPrÝ”tyH–³r
+(
+cu¼’t
+, 
+obj
+, 
+key
+, 
+v®ue
+, 
+©Œibs
+);
+
+117 
+NAN_DEPRECATED
+ 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+FÜûS‘
+(
+
+118 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+119 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+key
+
+
+120 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+
+
+121 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibs
+ = v8::
+NÚe
+) {
+
+122 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+123 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+124 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_9_0_MODULE_VERSION
+
+
+125  
+	gkey
+->
+IsName
+()
+
+126 ? 
+	gobj
+->
+DefšeOwnPrÝ”ty
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(),
+
+127 
+key
+.
+As
+<
+v8
+::
+Name
+>(), 
+v®ue
+, 
+©Œibs
+)
+
+128 : 
+NÙhšg
+<
+boÞ
+>();
+
+130  
+	gobj
+->
+FÜûS‘
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+, 
+v®ue
+, 
+©Œibs
+);
+
+134 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘
+(
+
+135 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+136 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+key
+) {
+
+137 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+138 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+139  
+	gscÝe
+.
+Esÿ³
+(
+obj
+->
+G‘
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+)
+
+140 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+143 
+šlše
+
+
+144 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+, 
+ušt32_t
+ 
+šdex
+) {
+
+145 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+146 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+147  
+	gscÝe
+.
+Esÿ³
+(
+obj
+->
+G‘
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+šdex
+)
+
+148 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+151 
+šlše
+ 
+	gv8
+::
+PrÝ”tyA‰ribu‹
+ 
+G‘PrÝ”tyA‰ribu‹s
+(
+
+152 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+153 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+key
+) {
+
+154 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+155 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+156  
+	gobj
+->
+G‘PrÝ”tyA‰ribu‹s
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+)
+
+157 .
+FromJu¡
+();
+
+160 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+Has
+(
+
+161 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+162 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+163 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+164 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+165  
+	gobj
+->
+Has
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+);
+
+168 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+Has
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+, 
+ušt32_t
+ 
+šdex
+) {
+
+169 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+170 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+171  
+	gobj
+->
+Has
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+šdex
+);
+
+174 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+D–‘e
+(
+
+175 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+176 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+177 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+178 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+179  
+	gobj
+->
+D–‘e
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+);
+
+182 
+šlše
+
+
+183 
+	gMaybe
+<
+	gboÞ
+> 
+D–‘e
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+, 
+ušt32_t
+ 
+šdex
+) {
+
+184 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+185 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+186  
+	gobj
+->
+D–‘e
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+šdex
+);
+
+189 
+šlše
+
+
+190 
+	gMaybeLoÿl
+<
+	gv8
+::
+A¼ay
+> 
+G‘PrÝ”tyNames
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+) {
+
+191 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+192 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+193  
+	gscÝe
+.
+Esÿ³
+(
+obj
+->
+G‘PrÝ”tyNames
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+194 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+A¼ay
+>()));
+
+197 
+šlše
+
+
+198 
+	gMaybeLoÿl
+<
+	gv8
+::
+A¼ay
+> 
+G‘OwnPrÝ”tyNames
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+) {
+
+199 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+200 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+201  
+	gscÝe
+.
+Esÿ³
+(
+obj
+->
+G‘OwnPrÝ”tyNames
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+202 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+A¼ay
+>()));
+
+205 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+S‘PrÙÙy³
+(
+
+206 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+207 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+´ÙÙy³
+) {
+
+208 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+209 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+210  
+	gobj
+->
+S‘PrÙÙy³
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+´ÙÙy³
+);
+
+213 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+> 
+ObjeùPrÙoToSŒšg
+(
+
+214 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+) {
+
+215 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+216 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+217  
+	gscÝe
+.
+Esÿ³
+(
+obj
+->
+ObjeùPrÙoToSŒšg
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+218 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+>()));
+
+221 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasOwnPrÝ”ty
+(
+
+222 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+223 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+224 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+225 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+226  
+	gobj
+->
+HasOwnPrÝ”ty
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+);
+
+229 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasR—lNamedPrÝ”ty
+(
+
+230 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+231 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+232 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+233 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+234  
+	gobj
+->
+HasR—lNamedPrÝ”ty
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+);
+
+237 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasR—lIndexedPrÝ”ty
+(
+
+238 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+239 , 
+ušt32_t
+ 
+šdex
+) {
+
+240 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+241 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+242  
+	gobj
+->
+HasR—lIndexedPrÝ”ty
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+šdex
+);
+
+245 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasR—lNamedC®lbackPrÝ”ty
+(
+
+246 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+247 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+248 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+249 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+250  
+	gobj
+->
+HasR—lNamedC®lbackPrÝ”ty
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+);
+
+253 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘R—lNamedPrÝ”tyInPrÙÙy³Chaš
+(
+
+254 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+255 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+256 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+257 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+258  
+	gscÝe
+.
+Esÿ³
+(
+obj
+->
+G‘R—lNamedPrÝ”tyInPrÙÙy³Chaš
+(
+
+259 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+)
+
+260 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+263 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘R—lNamedPrÝ”ty
+(
+
+264 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+265 , 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+266 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+267 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+268  
+	gscÝe
+.
+Esÿ³
+(
+
+269 
+obj
+->
+G‘R—lNamedPrÝ”ty
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+key
+)
+
+270 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+273 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®lAsFunùiÚ
+(
+
+274 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+275 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»cv
+
+
+276 , 
+¬gc
+
+
+277 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+278 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+279 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+280  
+	gscÝe
+.
+Esÿ³
+(
+
+281 
+obj
+->
+C®lAsFunùiÚ
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+»cv
+, 
+¬gc
+, 
+¬gv
+)
+
+282 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+285 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®lAsCÚ¡ruùÜ
+(
+
+286 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+obj
+
+
+287 , 
+¬gc
+, 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+288 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+289 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+290  
+	gscÝe
+.
+Esÿ³
+(
+
+291 
+obj
+->
+C®lAsCÚ¡ruùÜ
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+¬gc
+, 
+¬gv
+)
+
+292 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+295 
+šlše
+
+
+296 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+> 
+G‘SourûLše
+(
+v8
+::
+Loÿl
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+297 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+298 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+299  
+	gscÝe
+.
+Esÿ³
+(
+msg
+->
+G‘SourûLše
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+())
+
+300 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+>()));
+
+303 
+šlše
+ 
+	gMaybe
+<> 
+G‘LšeNumb”
+(
+v8
+::
+Loÿl
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+304 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+305 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+306  
+	gmsg
+->
+G‘LšeNumb”
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+());
+
+309 
+šlše
+ 
+	gMaybe
+<> 
+G‘S�¹CÞumn
+(
+v8
+::
+Loÿl
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+310 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+311 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+312  
+	gmsg
+->
+G‘S�¹CÞumn
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+());
+
+315 
+šlše
+ 
+	gMaybe
+<> 
+G‘EndCÞumn
+(
+v8
+::
+Loÿl
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+316 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+317 
+	gv8
+::
+HªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+318  
+	gmsg
+->
+G‘EndCÞumn
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+());
+
+321 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+ClÚeEËm’tAt
+(
+
+322 
+v8
+::
+Loÿl
+<v8::
+A¼ay
+> 
+¬¿y
+
+
+323 , 
+ušt32_t
+ 
+šdex
+) {
+
+324 #ià(
+NODE_MODULE_VERSION
+ >ð
+NODE_6_0_MODULE_VERSION
+)
+
+325 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+326 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+327 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+328 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+–em
+;
+
+329 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+obj
+;
+
+330 ià(!
+	g¬¿y
+->
+G‘
+(
+cÚ‹xt
+, 
+šdex
+).
+ToLoÿl
+(&
+–em
+)) {
+
+331  
+	gscÝe
+.
+Esÿ³
+(
+obj
+);
+
+333 ià(!
+	g–em
+->
+ToObjeù
+(
+cÚ‹xt
+).
+ToLoÿl
+(&
+obj
+)) {
+
+334  
+	gscÝe
+.
+Esÿ³
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+>());
+
+336  
+	gscÝe
+.
+Esÿ³
+(
+obj
+->
+ClÚe
+());
+
+338 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+339 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+340  
+	gscÝe
+.
+Esÿ³
+(
+¬¿y
+->
+ClÚeEËm’tAt
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+šdex
+)
+
+341 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+>()));
+
+345 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®l
+(
+
+346 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+fun
+
+
+347 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»cv
+
+
+348 , 
+¬gc
+
+
+349 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+350 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+351 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+352  
+	gscÝe
+.
+Esÿ³
+(
+fun
+->
+C®l
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+»cv
+, 
+¬gc
+, 
+¬gv
+)
+
+353 .
+FromMaybe
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+>()));
+
+	@interface/node_modules/nan/nan_maybe_pre_43_inl.h
+
+9 #iâdeà
+NAN_MAYBE_PRE_43_INL_H_
+
+
+10 
+	#NAN_MAYBE_PRE_43_INL_H_
+
+
+	)
+
+12 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+13 þas 
+	cMaybeLoÿl
+ {
+
+14 
+	mpublic
+:
+
+15 
+šlše
+ 
+	$MaybeLoÿl
+(è: 
+	`v®_
+(
+v8
+::
+Loÿl
+<
+T
+>()) {}
+
+17 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+>
+
+18 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_0_12_MODULE_VERSION
+
+
+19 
+šlše
+
+
+20 
+	`MaybeLoÿl
+(
+v8
+::
+Loÿl
+<
+S
+> 
+th©
+è: 
+	$v®_
+(
+th©
+è{
+	}
+}
+
+22 
+šlše
+
+
+23 
+MaybeLoÿl
+(
+v8
+::
+Loÿl
+<
+S
+> 
+th©
+) :
+
+24 
+v®_
+(*
+»š‹½»t_ÿ¡
+<
+v8
+::
+Loÿl
+<
+T
+>*>(&
+th©
+)) {}
+
+27 
+šlše
+ 
+boÞ
+ 
+	$IsEm±y
+(ècÚ¡ {  
+v®_
+.
+	`IsEm±y
+(); 
+	}
+}
+
+29 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+30 
+šlše
+ 
+boÞ
+ 
+ToLoÿl
+(
+v8
+::
+Loÿl
+<
+S
+> *
+out
+) const {
+
+31 *
+out
+ = 
+v®_
+;
+
+32  !
+IsEm±y
+();
+
+35 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+	$ToLoÿlChecked
+() const {
+
+36 #ià
+	`defšed
+(
+V8_ENABLE_CHECKS
+)
+
+37 
+	`as£¹
+(!
+	`IsEm±y
+() && "ToLocalChecked is Empty");
+
+39  
+v®_
+;
+
+40 
+	}
+}
+
+42 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+43 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+S
+> 
+FromMaybe
+(
+v8
+::Loÿl<S> 
+deçuÉ_v®ue
+) const {
+
+44  
+IsEm±y
+(è? 
+deçuÉ_v®ue
+ : 
+v8
+::
+Loÿl
+<
+S
+>(
+v®_
+);
+
+47 
+	g´iv©e
+:
+
+48 
+v8
+::
+Loÿl
+<
+T
+> 
+v®_
+;
+
+51 
+šlše
+
+
+52 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+> 
+ToD‘ažSŒšg
+(
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+v®
+) {
+
+53  
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+>(
+v®
+->
+ToD‘ažSŒšg
+());
+
+56 
+šlše
+
+
+57 
+	gMaybeLoÿl
+<
+	gv8
+::
+Ušt32
+> 
+ToA¼ayIndex
+(
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+v®
+) {
+
+58  
+MaybeLoÿl
+<
+v8
+::
+Ušt32
+>(
+v®
+->
+ToA¼ayIndex
+());
+
+61 
+šlše
+
+
+62 
+	gMaybe
+<
+	gboÞ
+> 
+Equ®s
+(
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+a
+, v8::HªdË<v8::V®ue>(
+b
+)) {
+
+63  
+Ju¡
+<
+boÞ
+>(
+a
+->
+Equ®s
+(
+b
+));
+
+66 
+šlše
+
+
+67 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+NewIn¡ªû
+(
+v8
+::
+HªdË
+<v8::
+FunùiÚ
+> 
+h
+) {
+
+68  
+MaybeLoÿl
+<
+v8
+::
+Objeù
+>(
+h
+->
+NewIn¡ªû
+());
+
+71 
+šlše
+
+
+72 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+NewIn¡ªû
+(
+
+73 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+h
+
+
+74 , 
+¬gc
+
+
+75 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+76  
+MaybeLoÿl
+<
+v8
+::
+Objeù
+>(
+h
+->
+NewIn¡ªû
+(
+¬gc
+, 
+¬gv
+));
+
+79 
+šlše
+
+
+80 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+NewIn¡ªû
+(
+v8
+::
+HªdË
+<v8::
+ObjeùTem¶©e
+> 
+h
+) {
+
+81  
+MaybeLoÿl
+<
+v8
+::
+Objeù
+>(
+h
+->
+NewIn¡ªû
+());
+
+84 
+šlše
+
+
+85 
+	gMaybeLoÿl
+<
+	gv8
+::
+FunùiÚ
+> 
+G‘FunùiÚ
+(
+v8
+::
+HªdË
+<v8::
+FunùiÚTem¶©e
+> 
+t
+) {
+
+86  
+MaybeLoÿl
+<
+v8
+::
+FunùiÚ
+>(
+t
+->
+G‘FunùiÚ
+());
+
+89 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+S‘
+(
+
+90 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+91 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+key
+
+
+92 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+v®ue
+) {
+
+93  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+S‘
+(
+key
+, 
+v®ue
+));
+
+96 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+S‘
+(
+
+97 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+98 , 
+ušt32_t
+ 
+šdex
+
+
+99 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+v®ue
+) {
+
+100  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+S‘
+(
+šdex
+, 
+v®ue
+));
+
+103 
+	~"Çn_defše_own_´Ý”ty_h–³r.h
+"
+
+105 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+DefšeOwnPrÝ”ty
+(
+
+106 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+107 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+
+
+108 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+v®ue
+
+
+109 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibs
+ = v8::
+NÚe
+) {
+
+110 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+cu¼’t
+ = 
+obj
+->
+G‘PrÝ”tyA‰ribu‹s
+(
+key
+);
+
+111  
+	gimp
+::
+DefšeOwnPrÝ”tyH–³r
+(
+cu¼’t
+, 
+obj
+, 
+key
+, 
+v®ue
+, 
+©Œibs
+);
+
+114 
+NAN_DEPRECATED
+ 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+FÜûS‘
+(
+
+115 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+116 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+key
+
+
+117 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+v®ue
+
+
+118 , 
+v8
+::
+PrÝ”tyA‰ribu‹
+ 
+©Œibs
+ = v8::
+NÚe
+) {
+
+119  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+FÜûS‘
+(
+key
+, 
+v®ue
+, 
+©Œibs
+));
+
+122 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘
+(
+
+123 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+124 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+key
+) {
+
+125  
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>(
+obj
+->
+G‘
+(
+key
+));
+
+128 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘
+(
+
+129 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+130 , 
+ušt32_t
+ 
+šdex
+) {
+
+131  
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+>(
+obj
+->
+G‘
+(
+šdex
+));
+
+134 
+šlše
+ 
+	gMaybe
+<
+	gv8
+::
+PrÝ”tyA‰ribu‹
+> 
+G‘PrÝ”tyA‰ribu‹s
+(
+
+135 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+136 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+key
+) {
+
+137  
+Ju¡
+<
+v8
+::
+PrÝ”tyA‰ribu‹
+>(
+obj
+->
+G‘PrÝ”tyA‰ribu‹s
+(
+key
+));
+
+140 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+Has
+(
+
+141 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+142 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+) {
+
+143  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+Has
+(
+key
+));
+
+146 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+Has
+(
+
+147 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+148 , 
+ušt32_t
+ 
+šdex
+) {
+
+149  
+	gJu¡
+<
+	gboÞ
+>(
+	gobj
+->
+Has
+(
+šdex
+));
+
+152 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+D–‘e
+(
+
+153 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+154 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+) {
+
+155  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+D–‘e
+(
+key
+));
+
+158 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+D–‘e
+(
+
+159 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+160 , 
+ušt32_t
+ 
+šdex
+) {
+
+161  
+	gJu¡
+<
+	gboÞ
+>(
+	gobj
+->
+D–‘e
+(
+šdex
+));
+
+164 
+šlše
+
+
+165 
+	gMaybeLoÿl
+<
+	gv8
+::
+A¼ay
+> 
+G‘PrÝ”tyNames
+(
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+) {
+
+166  
+MaybeLoÿl
+<
+v8
+::
+A¼ay
+>(
+obj
+->
+G‘PrÝ”tyNames
+());
+
+169 
+šlše
+
+
+170 
+	gMaybeLoÿl
+<
+	gv8
+::
+A¼ay
+> 
+G‘OwnPrÝ”tyNames
+(
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+) {
+
+171  
+MaybeLoÿl
+<
+v8
+::
+A¼ay
+>(
+obj
+->
+G‘OwnPrÝ”tyNames
+());
+
+174 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+S‘PrÙÙy³
+(
+
+175 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+176 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+´ÙÙy³
+) {
+
+177  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+S‘PrÙÙy³
+(
+´ÙÙy³
+));
+
+180 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+> 
+ObjeùPrÙoToSŒšg
+(
+
+181 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+) {
+
+182  
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+>(
+obj
+->
+ObjeùPrÙoToSŒšg
+());
+
+185 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasOwnPrÝ”ty
+(
+
+186 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+187 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+) {
+
+188  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+HasOwnPrÝ”ty
+(
+key
+));
+
+191 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasR—lNamedPrÝ”ty
+(
+
+192 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+193 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+) {
+
+194  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+HasR—lNamedPrÝ”ty
+(
+key
+));
+
+197 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasR—lIndexedPrÝ”ty
+(
+
+198 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+199 , 
+ušt32_t
+ 
+šdex
+) {
+
+200  
+	gJu¡
+<
+	gboÞ
+>(
+	gobj
+->
+HasR—lIndexedPrÝ”ty
+(
+šdex
+));
+
+203 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+HasR—lNamedC®lbackPrÝ”ty
+(
+
+204 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+205 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+) {
+
+206  
+Ju¡
+<
+boÞ
+>(
+obj
+->
+HasR—lNamedC®lbackPrÝ”ty
+(
+key
+));
+
+209 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘R—lNamedPrÝ”tyInPrÙÙy³Chaš
+(
+
+210 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+211 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+) {
+
+212  
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>(
+
+213 
+obj
+->
+G‘R—lNamedPrÝ”tyInPrÙÙy³Chaš
+(
+key
+));
+
+216 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+G‘R—lNamedPrÝ”ty
+(
+
+217 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+218 , 
+v8
+::
+HªdË
+<v8::
+SŒšg
+> 
+key
+) {
+
+219  
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>(
+obj
+->
+G‘R—lNamedPrÝ”ty
+(
+key
+));
+
+222 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®lAsFunùiÚ
+(
+
+223 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+224 , 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+»cv
+
+
+225 , 
+¬gc
+
+
+226 , 
+v8
+::
+HªdË
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+227  
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>(
+obj
+->
+C®lAsFunùiÚ
+(
+»cv
+, 
+¬gc
+, 
+¬gv
+));
+
+230 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®lAsCÚ¡ruùÜ
+(
+
+231 
+v8
+::
+HªdË
+<v8::
+Objeù
+> 
+obj
+
+
+232 , 
+¬gc
+
+
+233 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+234  
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>(
+obj
+->
+C®lAsCÚ¡ruùÜ
+(
+¬gc
+, 
+¬gv
+));
+
+237 
+šlše
+
+
+238 
+	gMaybeLoÿl
+<
+	gv8
+::
+SŒšg
+> 
+G‘SourûLše
+(
+v8
+::
+HªdË
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+239  
+MaybeLoÿl
+<
+v8
+::
+SŒšg
+>(
+msg
+->
+G‘SourûLše
+());
+
+242 
+šlše
+ 
+	gMaybe
+<> 
+G‘LšeNumb”
+(
+v8
+::
+HªdË
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+243  
+Ju¡
+<>(
+msg
+->
+G‘LšeNumb”
+());
+
+246 
+šlše
+ 
+	gMaybe
+<> 
+G‘S�¹CÞumn
+(
+v8
+::
+HªdË
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+247  
+Ju¡
+<>(
+msg
+->
+G‘S�¹CÞumn
+());
+
+250 
+šlše
+ 
+	gMaybe
+<> 
+G‘EndCÞumn
+(
+v8
+::
+HªdË
+<v8::
+Mes§ge
+> 
+msg
+) {
+
+251  
+Ju¡
+<>(
+msg
+->
+G‘EndCÞumn
+());
+
+254 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+> 
+ClÚeEËm’tAt
+(
+
+255 
+v8
+::
+HªdË
+<v8::
+A¼ay
+> 
+¬¿y
+
+
+256 , 
+ušt32_t
+ 
+šdex
+) {
+
+257  
+	gMaybeLoÿl
+<
+	gv8
+::
+Objeù
+>(
+¬¿y
+->
+ClÚeEËm’tAt
+(
+šdex
+));
+
+260 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+> 
+C®l
+(
+
+261 
+v8
+::
+Loÿl
+<v8::
+FunùiÚ
+> 
+fun
+
+
+262 , 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+»cv
+
+
+263 , 
+¬gc
+
+
+264 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[]) {
+
+265  
+MaybeLoÿl
+<
+v8
+::
+V®ue
+>(
+fun
+->
+C®l
+(
+»cv
+, 
+¬gc
+, 
+¬gv
+));
+
+	@interface/node_modules/nan/nan_new.h
+
+9 #iâdeà
+NAN_NEW_H_
+
+
+10 
+	#NAN_NEW_H_
+
+
+	)
+
+12 
+Çme¥aû
+ 
+	gimp
+ {
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+> 
+	gv8
+::
+Loÿl
+<
+T
+> 
+To
+(
+v8
+::Loÿl<v8::
+IÁeg”
+> 
+i
+);
+
+17 
+	g‹m¶©e
+ <>
+
+18 
+šlše
+
+
+19 
+	gv8
+::
+Loÿl
+<
+v8
+::
+IÁeg”
+>
+
+20 
+To
+<
+v8
+::
+IÁeg”
+>(v8::
+Loÿl
+<v8::IÁeg”> 
+i
+) {
+
+21  
+Nª
+::
+To
+<
+v8
+::
+IÁeg”
+>(
+i
+).
+ToLoÿlChecked
+();
+
+24 
+	g‹m¶©e
+ <>
+
+25 
+šlše
+
+
+26 
+	gv8
+::
+Loÿl
+<
+v8
+::
+IÁ32
+>
+
+27 
+To
+<
+v8
+::
+IÁ32
+>(v8::
+Loÿl
+<v8::
+IÁeg”
+> 
+i
+) {
+
+28  
+Nª
+::
+To
+<
+v8
+::
+IÁ32
+>(
+i
+).
+ToLoÿlChecked
+();
+
+31 
+	g‹m¶©e
+ <>
+
+32 
+šlše
+
+
+33 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Ušt32
+>
+
+34 
+To
+<
+v8
+::
+Ušt32
+>(v8::
+Loÿl
+<v8::
+IÁeg”
+> 
+i
+) {
+
+35  
+Nª
+::
+To
+<
+v8
+::
+Ušt32
+>(
+i
+).
+ToLoÿlChecked
+();
+
+38 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+> 
+	sFaùÜyBa£
+ {
+
+39 
+	gv8
+::
+	tLoÿl
+<
+	tT
+> 
+	t»tuº_t
+;
+
+42 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+> 
+	sMaybeFaùÜyBa£
+ {
+
+43 
+	gMaybeLoÿl
+<
+	tT
+> 
+	t»tuº_t
+;
+
+46 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+> 
+	gFaùÜy
+;
+
+48 
+	g‹m¶©e
+ <>
+
+49 
+	gFaùÜy
+<
+	gv8
+::
+A¼ay
+> : 
+FaùÜyBa£
+<
+v8
+::Array> {
+
+50 
+šlše
+ 
+»tuº_t
+ 
+New
+();
+
+51 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+Ëngth
+);
+
+54 
+	g‹m¶©e
+ <>
+
+55 
+	gFaùÜy
+<
+	gv8
+::
+BoÞ—n
+> : 
+FaùÜyBa£
+<
+v8
+::Boolean> {
+
+56 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+boÞ
+ 
+v®ue
+);
+
+59 
+	g‹m¶©e
+ <>
+
+60 
+	gFaùÜy
+<
+	gv8
+::
+BoÞ—nObjeù
+> : 
+FaùÜyBa£
+<
+v8
+::BooleanObject> {
+
+61 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+boÞ
+ 
+v®ue
+);
+
+64 
+	g‹m¶©e
+ <>
+
+65 
+	gFaùÜy
+<
+	gv8
+::
+CÚ‹xt
+> : 
+FaùÜyBa£
+<
+v8
+::Context> {
+
+66 
+šlše
+
+
+67 
+»tuº_t
+
+
+68 
+New
+Ð
+v8
+::
+Ex‹nsiÚCÚfigu¿tiÚ
+* 
+ex‹nsiÚs
+ = 
+NULL
+
+
+69 , 
+v8
+::
+Loÿl
+<v8::
+ObjeùTem¶©e
+> 
+tm¶
+ = v8::Local<v8::ObjectTemplate>()
+
+70 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+obj
+ = v8::Local<v8::Value>());
+
+73 
+	g‹m¶©e
+ <>
+
+74 
+	gFaùÜy
+<
+	gv8
+::
+D©e
+> : 
+MaybeFaùÜyBa£
+<
+v8
+::Date> {
+
+75 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+v®ue
+);
+
+78 
+	g‹m¶©e
+ <>
+
+79 
+	gFaùÜy
+<
+	gv8
+::
+Ex‹º®
+> : 
+FaùÜyBa£
+<
+v8
+::External> {
+
+80 
+šlše
+ 
+»tuº_t
+ 
+New
+(*
+v®ue
+);
+
+83 
+	g‹m¶©e
+ <>
+
+84 
+	gFaùÜy
+<
+	gv8
+::
+FunùiÚ
+> : 
+FaùÜyBa£
+<
+v8
+::Function> {
+
+85 
+šlše
+
+
+86 
+»tuº_t
+
+
+87 
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+88 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>());
+
+91 
+	g‹m¶©e
+ <>
+
+92 
+	gFaùÜy
+<
+	gv8
+::
+FunùiÚTem¶©e
+> : 
+FaùÜyBa£
+<
+v8
+::FunctionTemplate> {
+
+93 
+šlše
+
+
+94 
+»tuº_t
+
+
+95 
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+ = 
+NULL
+
+
+96 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()
+
+97 , 
+v8
+::
+Loÿl
+<v8::
+SigÇtu»
+> 
+sigÇtu»
+ = v8::Local<v8::Signature>());
+
+100 
+	g‹m¶©e
+ <>
+
+101 
+	gFaùÜy
+<
+	gv8
+::
+Numb”
+> : 
+FaùÜyBa£
+<
+v8
+::Number> {
+
+102 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+v®ue
+);
+
+105 
+	g‹m¶©e
+ <>
+
+106 
+	gFaùÜy
+<
+	gv8
+::
+Numb”Objeù
+> : 
+FaùÜyBa£
+<
+v8
+::NumberObject> {
+
+107 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+v®ue
+);
+
+110 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+111 
+	gIÁeg”FaùÜy
+ : 
+FaùÜyBa£
+<
+T
+> {
+
+112 
+ty³Çme
+ 
+	tFaùÜyBa£
+<
+	tT
+>::
+	t»tuº_t
+„eturn_t;
+
+113 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+št32_t
+ 
+v®ue
+);
+
+114 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+ušt32_t
+ 
+v®ue
+);
+
+117 
+	g‹m¶©e
+ <>
+
+118 
+	gFaùÜy
+<
+	gv8
+::
+IÁeg”
+> : 
+IÁeg”FaùÜy
+<
+v8
+::Integer> {};
+
+120 
+	g‹m¶©e
+ <>
+
+121 
+	gFaùÜy
+<
+	gv8
+::
+IÁ32
+> : 
+IÁeg”FaùÜy
+<
+v8
+::Int32> {};
+
+123 
+	g‹m¶©e
+ <>
+
+124 
+	gFaùÜy
+<
+	gv8
+::
+Ušt32
+> : 
+FaùÜyBa£
+<
+v8
+::Uint32> {
+
+125 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+št32_t
+ 
+v®ue
+);
+
+126 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+ušt32_t
+ 
+v®ue
+);
+
+129 
+	g‹m¶©e
+ <>
+
+130 
+	gFaùÜy
+<
+	gv8
+::
+Objeù
+> : 
+FaùÜyBa£
+<
+v8
+::Object> {
+
+131 
+šlše
+ 
+»tuº_t
+ 
+New
+();
+
+134 
+	g‹m¶©e
+ <>
+
+135 
+	gFaùÜy
+<
+	gv8
+::
+ObjeùTem¶©e
+> : 
+FaùÜyBa£
+<
+v8
+::ObjectTemplate> {
+
+136 
+šlše
+ 
+»tuº_t
+ 
+New
+();
+
+139 
+	g‹m¶©e
+ <>
+
+140 
+	gFaùÜy
+<
+	gv8
+::
+RegExp
+> : 
+MaybeFaùÜyBa£
+<
+v8
+::RegExp> {
+
+141 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+
+142 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+·‰”n
+, v8::
+RegExp
+::
+FÏgs
+ 
+æags
+);
+
+145 
+	g‹m¶©e
+ <>
+
+146 
+	gFaùÜy
+<
+	gv8
+::
+Sü�t
+> : 
+MaybeFaùÜyBa£
+<
+v8
+::Script> {
+
+147 
+šlše
+ 
+»tuº_t
+ 
+New
+Ð
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+);
+
+148 
+šlše
+ 
+»tuº_t
+ 
+New
+Ð
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+
+
+149 , 
+v8
+::
+Sü�tOrigš
+ cÚ¡& 
+Üigš
+);
+
+152 
+	g‹m¶©e
+ <>
+
+153 
+	gFaùÜy
+<
+	gv8
+::
+SigÇtu»
+> : 
+FaùÜyBa£
+<
+v8
+::Signature> {
+
+154 
+v8
+::
+	tLoÿl
+<
+	tv8
+::
+	tFunùiÚTem¶©e
+> 
+	tFTH
+;
+
+155 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+FTH
+ 
+»ûiv”
+ = FTH());
+
+158 
+	g‹m¶©e
+ <>
+
+159 
+	gFaùÜy
+<
+	gv8
+::
+SŒšg
+> : 
+MaybeFaùÜyBa£
+<
+v8
+::String> {
+
+160 
+šlše
+ 
+»tuº_t
+ 
+New
+();
+
+161 
+šlše
+ 
+»tuº_t
+ 
+New
+(cÚ¡ *
+v®ue
+, 
+Ëngth
+ = -1);
+
+162 
+šlše
+ 
+»tuº_t
+ 
+New
+(cÚ¡ 
+ušt16_t
+ *
+v®ue
+, 
+Ëngth
+ = -1);
+
+163 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+);
+
+165 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+v8
+::
+SŒšg
+::
+Ex‹º®SŒšgResourû
+ * 
+v®ue
+);
+
+166 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+Ex‹º®OÃBy‹SŒšgResourû
+ * 
+v®ue
+);
+
+169 
+	g‹m¶©e
+ <>
+
+170 
+	gFaùÜy
+<
+	gv8
+::
+SŒšgObjeù
+> : 
+FaùÜyBa£
+<
+v8
+::StringObject> {
+
+171 
+šlše
+ 
+»tuº_t
+ 
+New
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+v®ue
+);
+
+176 #ià(
+NODE_MODULE_VERSION
+ >= 12)
+
+178 
+Çme¥aû
+ 
+	gimp
+ {
+
+180 
+	g‹m¶©e
+ <>
+
+181 
+	gFaùÜy
+<
+	gv8
+::
+UnboundSü�t
+> : 
+MaybeFaùÜyBa£
+<
+v8
+::UnboundScript> {
+
+182 
+šlše
+ 
+»tuº_t
+ 
+New
+Ð
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+);
+
+183 
+šlše
+ 
+»tuº_t
+ 
+New
+Ð
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+sourû
+
+
+184 , 
+v8
+::
+Sü�tOrigš
+ cÚ¡& 
+Üigš
+);
+
+189 
+	~"Çn_im¶em’�tiÚ_12_šl.h
+"
+
+193 
+	~"Çn_im¶em’�tiÚ_´e_12_šl.h
+"
+
+199 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+200 
+ty³Çme
+ 
+	gimp
+::
+FaùÜy
+<
+T
+>::
+»tuº_t
+
+
+201 
+	$New
+() {
+
+202  
+imp
+::
+FaùÜy
+<
+T
+>::
+	`New
+();
+
+203 
+	}
+}
+
+205 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gA0
+>
+
+206 
+ty³Çme
+ 
+	gimp
+::
+FaùÜy
+<
+T
+>::
+»tuº_t
+
+
+207 
+	$New
+(
+A0
+ 
+¬g0
+) {
+
+208  
+imp
+::
+FaùÜy
+<
+T
+>::
+	`New
+(
+¬g0
+);
+
+209 
+	}
+}
+
+211 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gA0
+,�y³Çm�
+	gA1
+>
+
+212 
+ty³Çme
+ 
+	gimp
+::
+FaùÜy
+<
+T
+>::
+»tuº_t
+
+
+213 
+	$New
+(
+A0
+ 
+¬g0
+, 
+A1
+ 
+¬g1
+) {
+
+214  
+imp
+::
+FaùÜy
+<
+T
+>::
+	`New
+(
+¬g0
+, 
+¬g1
+);
+
+215 
+	}
+}
+
+217 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gA0
+,�y³Çm�
+	gA1
+,�y³Çm�
+	gA2
+>
+
+218 
+ty³Çme
+ 
+	gimp
+::
+FaùÜy
+<
+T
+>::
+»tuº_t
+
+
+219 
+	$New
+(
+A0
+ 
+¬g0
+, 
+A1
+ 
+¬g1
+, 
+A2
+ 
+¬g2
+) {
+
+220  
+imp
+::
+FaùÜy
+<
+T
+>::
+	`New
+(
+¬g0
+, 
+¬g1
+, 
+¬g2
+);
+
+221 
+	}
+}
+
+223 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gA0
+,�y³Çm�
+	gA1
+,�y³Çm�
+	gA2
+,�y³Çm�
+	gA3
+>
+
+224 
+ty³Çme
+ 
+	gimp
+::
+FaùÜy
+<
+T
+>::
+»tuº_t
+
+
+225 
+	$New
+(
+A0
+ 
+¬g0
+, 
+A1
+ 
+¬g1
+, 
+A2
+ 
+¬g2
+, 
+A3
+ 
+¬g3
+) {
+
+226  
+imp
+::
+FaùÜy
+<
+T
+>::
+	`New
+(
+¬g0
+, 
+¬g1
+, 
+¬g2
+, 
+¬g3
+);
+
+227 
+	}
+}
+
+235 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+236 
+ty³Çme
+ 
+	gimp
+::
+FaùÜy
+<
+T
+>::
+»tuº_t
+
+
+237 
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+238 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()) {
+
+239  
+imp
+::
+FaùÜy
+<
+T
+>::
+New
+(
+ÿÎback
+, 
+d©a
+);
+
+243 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gA2
+>
+
+244 
+ty³Çme
+ 
+	gimp
+::
+FaùÜy
+<
+T
+>::
+»tuº_t
+
+
+245 
+New
+Ð
+FunùiÚC®lback
+ 
+ÿÎback
+
+
+246 , 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+d©a
+ = v8::Local<v8::Value>()
+
+247 , 
+A2
+ 
+a2
+ = 
+	$A2
+()) {
+
+248  
+imp
+::
+FaùÜy
+<
+T
+>::
+	`New
+(
+ÿÎback
+, 
+d©a
+, 
+a2
+);
+
+249 
+	}
+}
+
+253 #ià
+NODE_MODULE_VERSION
+ < 
+IOJS_3_0_MODULE_VERSION
+
+
+254 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+> 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+HªdË
+<T> 
+h
+);
+
+257 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+258 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+259 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+P”si¡’t
+<T, 
+M
+> cÚ¡& 
+p
+);
+
+261 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+> 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+v8
+::
+P”si¡’t
+<T> cÚ¡& 
+p
+);
+
+263 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+264 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+P”si¡’t
+<T, 
+M
+> cÚ¡& 
+p
+);
+
+265 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+266 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+T
+> 
+New
+(
+Glob®
+<T> cÚ¡& 
+p
+);
+
+268 
+šlše
+
+
+269 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+BoÞ—n
+>::
+»tuº_t
+
+
+270 
+	$New
+(
+boÞ
+ 
+v®ue
+) {
+
+271  
+New
+<
+v8
+::
+BoÞ—n
+>(
+v®ue
+);
+
+272 
+	}
+}
+
+274 
+šlše
+
+
+275 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+IÁ32
+>::
+»tuº_t
+
+
+276 
+	$New
+(
+št32_t
+ 
+v®ue
+) {
+
+277  
+New
+<
+v8
+::
+IÁ32
+>(
+v®ue
+);
+
+278 
+	}
+}
+
+280 
+šlše
+
+
+281 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+Ušt32
+>::
+»tuº_t
+
+
+282 
+	$New
+(
+ušt32_t
+ 
+v®ue
+) {
+
+283  
+New
+<
+v8
+::
+Ušt32
+>(
+v®ue
+);
+
+284 
+	}
+}
+
+286 
+šlše
+
+
+287 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+Numb”
+>::
+»tuº_t
+
+
+288 
+	$New
+(
+v®ue
+) {
+
+289  
+New
+<
+v8
+::
+Numb”
+>(
+v®ue
+);
+
+290 
+	}
+}
+
+292 
+šlše
+
+
+293 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+294 
+	$New
+(
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+) {
+
+295  
+New
+<
+v8
+::
+SŒšg
+>(
+v®ue
+);
+
+296 
+	}
+}
+
+298 
+šlše
+
+
+299 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+300 
+	$New
+(cÚ¡ * 
+v®ue
+, 
+Ëngth
+) {
+
+301  
+New
+<
+v8
+::
+SŒšg
+>(
+v®ue
+, 
+Ëngth
+);
+
+302 
+	}
+}
+
+304 
+šlše
+
+
+305 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+306 
+	$New
+(cÚ¡ 
+ušt16_t
+ * 
+v®ue
+, 
+Ëngth
+) {
+
+307  
+New
+<
+v8
+::
+SŒšg
+>(
+v®ue
+, 
+Ëngth
+);
+
+308 
+	}
+}
+
+310 
+šlše
+
+
+311 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+312 
+	$New
+(cÚ¡ * 
+v®ue
+) {
+
+313  
+New
+<
+v8
+::
+SŒšg
+>(
+v®ue
+);
+
+314 
+	}
+}
+
+316 
+šlše
+
+
+317 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+318 
+	$New
+(cÚ¡ 
+ušt16_t
+ * 
+v®ue
+) {
+
+319  
+New
+<
+v8
+::
+SŒšg
+>(
+v®ue
+);
+
+320 
+	}
+}
+
+322 
+šlše
+
+
+323 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+324 
+	$New
+(
+v8
+::
+SŒšg
+::
+Ex‹º®SŒšgResourû
+ * 
+v®ue
+) {
+
+325  
+New
+<
+v8
+::
+SŒšg
+>(
+v®ue
+);
+
+326 
+	}
+}
+
+328 
+šlše
+
+
+329 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+SŒšg
+>::
+»tuº_t
+
+
+330 
+	$New
+(
+Ex‹º®OÃBy‹SŒšgResourû
+ * 
+v®ue
+) {
+
+331  
+New
+<
+v8
+::
+SŒšg
+>(
+v®ue
+);
+
+332 
+	}
+}
+
+334 
+šlše
+
+
+335 
+	gimp
+::
+FaùÜy
+<
+v8
+::
+RegExp
+>::
+»tuº_t
+
+
+336 
+New
+(
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+·‰”n
+, v8::
+RegExp
+::
+FÏgs
+ 
+æags
+) {
+
+337  
+New
+<
+v8
+::
+RegExp
+>(
+·‰”n
+, 
+	gæags
+);
+
+	@interface/node_modules/nan/nan_object_wrap.h
+
+9 #iâdeà
+NAN_OBJECT_WRAP_H_
+
+
+10 
+	#NAN_OBJECT_WRAP_H_
+
+
+	)
+
+12 þas 
+	cObjeùW¿p
+ {
+
+13 
+	mpublic
+:
+
+14 
+	$ObjeùW¿p
+() {
+
+15 
+»fs_
+ = 0;
+
+19 
+vœtu®
+ ~
+	$ObjeùW¿p
+() {
+
+20 ià(
+	`³rsi¡’t
+().
+	`IsEm±y
+()) {
+
+24 
+	`³rsi¡’t
+().
+	`CË¬W—k
+();
+
+25 
+	`³rsi¡’t
+().
+	`Re£t
+();
+
+26 
+	}
+}
+
+29 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+30 
+šlše
+ 
+T
+* 
+Unw¿p
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+) {
+
+31 
+as£¹
+(!
+objeù
+.
+IsEm±y
+());
+
+32 
+as£¹
+(
+objeù
+->
+IÁ”ÇlF›ldCouÁ
+() > 0);
+
+35 * 
+	g±r
+ = 
+G‘IÁ”ÇlF›ldPoš‹r
+(
+objeù
+, 0);
+
+36 
+ObjeùW¿p
+* 
+	gw¿p
+ = 
+¡©ic_ÿ¡
+<ObjeùW¿p*>(
+±r
+);
+
+37  
+	g¡©ic_ÿ¡
+<
+	gT
+*>(
+	gw¿p
+);
+
+41 
+šlše
+ 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$hªdË
+() const {
+
+42  
+	`New
+(
+hªdË_
+);
+
+43 
+	}
+}
+
+46 
+šlše
+ 
+	gP”si¡’t
+<
+	gv8
+::
+Objeù
+>& 
+	$³rsi¡’t
+() {
+
+47  
+hªdË_
+;
+
+48 
+	}
+}
+
+51 
+	g´Ùeùed
+:
+
+52 
+šlše
+ 
+W¿p
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+) {
+
+53 
+as£¹
+(
+³rsi¡’t
+().
+IsEm±y
+());
+
+54 
+as£¹
+(
+objeù
+->
+IÁ”ÇlF›ldCouÁ
+() > 0);
+
+55 
+S‘IÁ”ÇlF›ldPoš‹r
+(
+objeù
+, 0, 
+this
+);
+
+56 
+³rsi¡’t
+().
+Re£t
+(
+objeù
+);
+
+57 
+MakeW—k
+();
+
+60 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+61 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+63 
+šlše
+ 
+	$MakeW—k
+() {
+
+64 
+	`³rsi¡’t
+().
+v8
+::
+P”si¡’tBa£
+<v8::
+Objeù
+>::
+	`S‘W—k
+(
+
+65 
+this
+, 
+W—kC®lback
+, 
+v8
+::
+W—kC®lbackTy³
+::
+kP¬am‘”
+);
+
+66 #ià
+NODE_MAJOR_VERSION
+ < 10
+
+68 
+	`³rsi¡’t
+().
+	`M¬kInd•’d’t
+();
+
+70 
+	}
+}
+
+72 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+74 
+šlše
+ 
+	$MakeW—k
+() {
+
+75 
+	`³rsi¡’t
+().
+v8
+::
+P”si¡’tBa£
+<v8::
+Objeù
+>::
+	`S‘W—k
+(
+this
+, 
+W—kC®lback
+);
+
+76 
+	`³rsi¡’t
+().
+	`M¬kInd•’d’t
+();
+
+77 
+	}
+}
+
+81 
+šlše
+ 
+	$MakeW—k
+() {
+
+82 
+	`³rsi¡’t
+().
+³rsi¡’t
+.
+	`MakeW—k
+(
+this
+, 
+W—kC®lback
+);
+
+83 
+	`³rsi¡’t
+().
+	`M¬kInd•’d’t
+();
+
+84 
+	}
+}
+
+92 
+vœtu®
+ 
+	$Ref
+() {
+
+93 
+	`as£¹
+(!
+	`³rsi¡’t
+().
+	`IsEm±y
+());
+
+94 
+	`³rsi¡’t
+().
+	`CË¬W—k
+();
+
+95 
+»fs_
+++;
+
+96 
+	}
+}
+
+107 
+vœtu®
+ 
+	$UÄef
+() {
+
+108 
+	`as£¹
+(!
+	`³rsi¡’t
+().
+	`IsEm±y
+());
+
+109 
+	`as£¹
+(!
+	`³rsi¡’t
+().
+	`IsW—k
+());
+
+110 
+	`as£¹
+(
+»fs_
+ > 0);
+
+111 ià(--
+»fs_
+ == 0)
+
+112 
+	`MakeW—k
+();
+
+113 
+	}
+}
+
+115 
+	g»fs_
+;
+
+117 
+	g´iv©e
+:
+
+118 
+	$NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+ObjeùW¿p
+)
+
+119 #ià
+	`defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+120 (
+V8_MAJOR_VERSION
+ =ð4 && 
+	`defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+123 
+	`W—kC®lback
+(
+v8
+::
+W—kC®lbackInfo
+<
+ObjeùW¿p
+> cÚ¡& 
+šfo
+) {
+
+124 
+ObjeùW¿p
+* 
+w¿p
+ = 
+šfo
+.
+	`G‘P¬am‘”
+();
+
+125 
+	`as£¹
+(
+w¿p
+->
+»fs_
+ == 0);
+
+126 
+w¿p
+->
+hªdË_
+.
+	`Re£t
+();
+
+127 
+d–‘e
+ 
+w¿p
+;
+
+128 
+	}
+}
+
+130 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+133 
+W—kC®lback
+(
+v8
+::
+W—kC®lbackD©a
+<v8::
+Objeù
+, 
+ObjeùW¿p
+> cÚ¡& 
+d©a
+) {
+
+134 
+ObjeùW¿p
+* 
+	gw¿p
+ = 
+d©a
+.
+G‘P¬am‘”
+();
+
+135 
+as£¹
+(
+w¿p
+->
+»fs_
+ == 0);
+
+136 
+as£¹
+(
+w¿p
+->
+hªdË_
+.
+IsN—rD—th
+());
+
+137 
+	gw¿p
+->
+	ghªdË_
+.
+Re£t
+();
+
+138 
+d–‘e
+ 
+	gw¿p
+;
+
+143 
+W—kC®lback
+(
+v8
+::
+P”si¡’t
+<v8::
+V®ue
+> 
+v®ue
+, *
+d©a
+) {
+
+144 
+ObjeùW¿p
+ *
+	gw¿p
+ = 
+¡©ic_ÿ¡
+<ObjeùW¿p*>(
+d©a
+);
+
+145 
+as£¹
+(
+w¿p
+->
+»fs_
+ == 0);
+
+146 
+as£¹
+(
+w¿p
+->
+hªdË_
+.
+IsN—rD—th
+());
+
+147 
+	gw¿p
+->
+	ghªdË_
+.
+Re£t
+();
+
+148 
+d–‘e
+ 
+	gw¿p
+;
+
+152 
+	gP”si¡’t
+<
+	gv8
+::
+Objeù
+> 
+hªdË_
+;
+
+	@interface/node_modules/nan/nan_persistent_12_inl.h
+
+9 #iâdeà
+NAN_PERSISTENT_12_INL_H_
+
+
+10 
+	#NAN_PERSISTENT_12_INL_H_
+
+
+	)
+
+12 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+> 
+þass
+ 
+	gP”si¡’t
+ :
+
+13 
+public
+ 
+v8
+::
+P”si¡’t
+<
+T
+, 
+	gM
+> {
+
+14 
+	gpublic
+:
+
+15 
+šlše
+ 
+P”si¡’t
+(è: 
+v8
+::P”si¡’t<
+T
+, 
+	gM
+>() {}
+
+17 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+> 
+šlše
+ 
+P”si¡’t
+(
+v8
+::
+Loÿl
+<
+S
+> 
+th©
+) :
+
+18 
+v8
+::
+P”si¡’t
+<
+T
+, 
+	gM
+>(
+	gv8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+	gth©
+) {}
+
+20 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+,�y³Çm�
+	gM2
+>
+
+21 
+šlše
+
+
+22 
+P”si¡’t
+(cÚ¡ 
+v8
+::P”si¡’t<
+S
+, 
+M2
+> &
+th©
+) :
+
+23 
+v8
+::
+P”si¡’t
+<
+T
+, 
+	gM2
+>(
+	gv8
+::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+	gth©
+) {}
+
+25 
+šlše
+ 
+Re£t
+(è{ 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::Reset(); }
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+>
+
+28 
+šlše
+ 
+Re£t
+(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+Ùh”
+) {
+
+29 
+v8
+::
+P”si¡’tBa£
+<
+T
+>::
+Re£t
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Ùh”
+);
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+>
+
+33 
+šlše
+ 
+Re£t
+(cÚ¡ 
+v8
+::
+P”si¡’tBa£
+<
+S
+> &
+Ùh”
+) {
+
+34 
+v8
+::
+P”si¡’tBa£
+<
+T
+>::
+Re£t
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Ùh”
+);
+
+37 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+38 
+šlše
+ 
+S‘W—k
+(
+
+39 
+P
+ *
+·¿m‘”
+
+
+40 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+41 , 
+W—kC®lbackTy³
+ 
+ty³
+);
+
+43 
+	g´iv©e
+:
+
+44 
+šlše
+ 
+T
+ *
+Ý”©Ü
+*(ècÚ¡ {  *
+P”si¡’tBa£
+<T>::
+³rsi¡’t
+; }
+
+46 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+,�y³Çm�
+	gM2
+>
+
+47 
+šlše
+ 
+CÝy
+(cÚ¡ 
+P”si¡’t
+<
+S
+, 
+M2
+> &
+th©
+) {
+
+48 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+50 
+	gthis
+->
+Re£t
+();
+
+52 ià(!
+	gth©
+.
+IsEm±y
+()) {
+
+53 
+	gthis
+->
+Re£t
+(
+th©
+);
+
+54 
+	gM
+::
+CÝy
+(
+th©
+, 
+this
+);
+
+59 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+60 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+61 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+>
+
+62 
+þass
+ 
+Glob®
+ : 
+public
+ 
+v8
+::Glob®<
+T
+> {
+
+63 
+public
+:
+
+64 
+šlše
+ 
+Glob®
+(è: 
+v8
+::Glob®<
+T
+>() {}
+
+66 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+> 
+šlše
+ 
+Glob®
+(
+v8
+::
+Loÿl
+<S> 
+th©
+) :
+
+67 
+v8
+::
+Glob®
+<
+T
+>(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+th©
+) {}
+
+69 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+>
+
+70 
+šlše
+
+
+71 
+Glob®
+(cÚ¡ 
+v8
+::
+P”si¡’tBa£
+<
+S
+> &
+th©
+) :
+
+72 
+v8
+::
+Glob®
+<
+S
+>(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+th©
+) {}
+
+74 
+šlše
+ 
+Re£t
+(è{ 
+v8
+::
+P”si¡’tBa£
+<
+T
+>::Reset(); }
+
+76 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+>
+
+77 
+šlše
+ 
+Re£t
+(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+Ùh”
+) {
+
+78 
+v8
+::
+P”si¡’tBa£
+<
+T
+>::
+Re£t
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Ùh”
+);
+
+81 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+>
+
+82 
+šlše
+ 
+Re£t
+(cÚ¡ 
+v8
+::
+P”si¡’tBa£
+<
+S
+> &
+Ùh”
+) {
+
+83 
+v8
+::
+P”si¡’tBa£
+<
+T
+>::
+Re£t
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Ùh”
+);
+
+86 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+87 
+šlše
+ 
+S‘W—k
+(
+
+88 
+P
+ *
+·¿m‘”
+
+
+89 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+90 , 
+W—kC®lbackTy³
+ 
+ty³
+) {
+
+91 
+	g»š‹½»t_ÿ¡
+<
+	gP”si¡’t
+<
+	gT
+>*>(
+	gthis
+)->
+S‘W—k
+(
+
+92 
+·¿m‘”
+, 
+ÿÎback
+, 
+ty³
+);
+
+96 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+97 
+þass
+ 
+	gGlob®
+ : 
+public
+ 
+v8
+::
+UniqueP”si¡’t
+<
+T
+> {
+
+98 
+public
+:
+
+99 
+šlše
+ 
+Glob®
+(è: 
+v8
+::
+UniqueP”si¡’t
+<
+T
+>() {}
+
+101 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+> 
+šlše
+ 
+Glob®
+(
+v8
+::
+Loÿl
+<S> 
+th©
+) :
+
+102 
+v8
+::
+UniqueP”si¡’t
+<
+T
+>(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+	gth©
+) {}
+
+104 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+105 
+šlše
+
+
+106 
+Glob®
+(cÚ¡ 
+v8
+::
+P”si¡’tBa£
+<
+S
+> &
+th©
+) :
+
+107 
+v8
+::
+UniqueP”si¡’t
+<
+S
+>(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+	gth©
+) {}
+
+109 
+šlše
+ 
+Re£t
+(è{ 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::Reset(); }
+
+111 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+>
+
+112 
+šlše
+ 
+Re£t
+(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+Ùh”
+) {
+
+113 
+v8
+::
+P”si¡’tBa£
+<
+T
+>::
+Re£t
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Ùh”
+);
+
+116 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+>
+
+117 
+šlše
+ 
+Re£t
+(cÚ¡ 
+v8
+::
+P”si¡’tBa£
+<
+S
+> &
+Ùh”
+) {
+
+118 
+v8
+::
+P”si¡’tBa£
+<
+T
+>::
+Re£t
+(v8::
+IsÞ©e
+::
+G‘Cu¼’t
+(), 
+Ùh”
+);
+
+121 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+122 
+šlše
+ 
+S‘W—k
+(
+
+123 
+P
+ *
+·¿m‘”
+
+
+124 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+125 , 
+W—kC®lbackTy³
+ 
+ty³
+) {
+
+126 
+	g»š‹½»t_ÿ¡
+<
+	gP”si¡’t
+<
+	gT
+>*>(
+	gthis
+)->
+S‘W—k
+(
+
+127 
+·¿m‘”
+, 
+ÿÎback
+, 
+ty³
+);
+
+	@interface/node_modules/nan/nan_persistent_pre_12_inl.h
+
+9 #iâdeà
+NAN_PERSISTENT_PRE_12_INL_H_
+
+
+10 
+	#NAN_PERSISTENT_PRE_12_INL_H_
+
+
+	)
+
+12 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+13 þas 
+	cP”si¡’tBa£
+ {
+
+14 
+	mv8
+::
+P”si¡’t
+<
+T
+> 
+³rsi¡’t
+;
+
+15 
+	m‹m¶©e
+<
+ty³Çme
+ 
+	mU
+>
+
+16 
+ä›nd
+ 
+	mv8
+::
+Loÿl
+<
+U
+> 
+New
+(cÚ¡ 
+P”si¡’tBa£
+<U> &
+p
+);
+
+17 
+	m‹m¶©e
+<
+ty³Çme
+ 
+	mU
+,�y³Çm�
+	mM
+>
+
+18 
+ä›nd
+ 
+	mv8
+::
+Loÿl
+<
+U
+> 
+New
+(cÚ¡ 
+P”si¡’t
+<U, 
+M
+> &
+p
+);
+
+19 
+	m‹m¶©e
+<
+ty³Çme
+ 
+	mU
+>
+
+20 
+ä›nd
+ 
+	mv8
+::
+Loÿl
+<
+U
+> 
+New
+(cÚ¡ 
+Glob®
+<U> &
+p
+);
+
+21 
+	m‹m¶©e
+<
+ty³Çme
+ 
+	mS
+> 
+ä›nd
+ 
+þass
+ 
+	mR‘uºV®ue
+;
+
+23 
+	mpublic
+:
+
+24 
+šlše
+ 
+	$P”si¡’tBa£
+() :
+
+25 
+	$³rsi¡’t
+() {}
+
+27 
+šlše
+ 
+	$Re£t
+() {
+
+28 
+³rsi¡’t
+.
+	`Di¥o£
+();
+
+29 
+³rsi¡’t
+.
+	`CË¬
+();
+
+30 
+	}
+}
+
+32 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+33 
+šlše
+ 
+Re£t
+(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+Ùh”
+) {
+
+34 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+36 ià(!
+	g³rsi¡’t
+.
+IsEm±y
+()) {
+
+37 
+	g³rsi¡’t
+.
+Di¥o£
+();
+
+40 ià(
+	gÙh”
+.
+IsEm±y
+()) {
+
+41 
+	g³rsi¡’t
+.
+CË¬
+();
+
+43 
+	g³rsi¡’t
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+New
+(
+Ùh”
+);
+
+47 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+48 
+šlše
+ 
+Re£t
+(cÚ¡ 
+P”si¡’tBa£
+<
+S
+> &
+Ùh”
+) {
+
+49 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+51 ià(!
+	g³rsi¡’t
+.
+IsEm±y
+()) {
+
+52 
+	g³rsi¡’t
+.
+Di¥o£
+();
+
+55 ià(
+	gÙh”
+.
+IsEm±y
+()) {
+
+56 
+	g³rsi¡’t
+.
+CË¬
+();
+
+58 
+	g³rsi¡’t
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+New
+(
+Ùh”
+.
+³rsi¡’t
+);
+
+62 
+šlše
+ 
+boÞ
+ 
+	$IsEm±y
+(ècÚ¡ {  
+³rsi¡’t
+.
+	`IsEm±y
+(); 
+	}
+}
+
+64 
+šlše
+ 
+	$Em±y
+(è{ 
+³rsi¡’t
+.
+	`CË¬
+(); 
+	}
+}
+
+66 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+67 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+P”si¡’tBa£
+<
+S
+> &
+th©
+) const {
+
+68  
+this
+->
+³rsi¡’t
+ =ð
+th©
+.persistent;
+
+71 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+72 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+th©
+) const {
+
+73  
+this
+->
+³rsi¡’t
+ =ð
+th©
+;
+
+76 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+77 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+P”si¡’tBa£
+<
+S
+> &
+th©
+) const {
+
+78  !
+Ý”©Ü
+==(
+th©
+);
+
+81 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+82 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+v8
+::
+Loÿl
+<
+S
+> &
+th©
+) const {
+
+83  !
+Ý”©Ü
+==(
+th©
+);
+
+86 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+87 
+šlše
+ 
+S‘W—k
+(
+
+88 
+P
+ *
+·¿m‘”
+
+
+89 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+90 , 
+W—kC®lbackTy³
+ 
+ty³
+);
+
+92 
+šlše
+ 
+	$CË¬W—k
+(è{ 
+³rsi¡’t
+.
+	`CË¬W—k
+(); 
+	}
+}
+
+94 
+šlše
+ 
+	$M¬kInd•’d’t
+(è{ 
+³rsi¡’t
+.
+	`M¬kInd•’d’t
+(); 
+	}
+}
+
+96 
+šlše
+ 
+boÞ
+ 
+	$IsInd•’d’t
+(ècÚ¡ {  
+³rsi¡’t
+.
+	`IsInd•’d’t
+(); 
+	}
+}
+
+98 
+šlše
+ 
+boÞ
+ 
+	$IsN—rD—th
+(ècÚ¡ {  
+³rsi¡’t
+.
+	`IsN—rD—th
+(); 
+	}
+}
+
+100 
+šlše
+ 
+boÞ
+ 
+	$IsW—k
+(ècÚ¡ {  
+³rsi¡’t
+.
+	`IsW—k
+(); 
+	}
+}
+
+102 
+	g´iv©e
+:
+
+103 
+šlše
+ 
+ex¶ic™
+ 
+P”si¡’tBa£
+(
+v8
+::
+P”si¡’t
+<
+T
+> 
+th©
+) :
+
+104 
+	$³rsi¡’t
+(
+th©
+è{ 
+	}
+}
+
+105 
+šlše
+ 
+ex¶ic™
+ 
+	$P”si¡’tBa£
+(
+T
+ *
+v®
+è: 
+	$³rsi¡’t
+(
+v®
+è{
+	}
+}
+
+106 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+,�y³Çm�
+	gM
+> 
+ä›nd
+ 
+þass
+ 
+	gP”si¡’t
+;
+
+107 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+> 
+ä›nd
+ 
+þass
+ 
+	gGlob®
+;
+
+108 
+ä›nd
+ 
+þass
+ 
+	gObjeùW¿p
+;
+
+111 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+112 þas 
+	cNÚCÝyabËP”si¡’tT¿™s
+ {
+
+113 
+	mpublic
+:
+
+114 
+P”si¡’t
+<
+	tT
+, 
+	tNÚCÝyabËP”si¡’tT¿™s
+<T> >
+
+115 
+	tNÚCÝyabËP”si¡’t
+;
+
+116 cÚ¡ 
+boÞ
+ 
+	mkRe£tInDe¡ruùÜ
+ = 
+çl£
+;
+
+117 
+	m‹m¶©e
+<
+ty³Çme
+ 
+	mS
+,�y³Çm�
+	mM
+>
+
+118 
+šlše
+ 
+CÝy
+(cÚ¡ 
+P”si¡’t
+<
+S
+, 
+M
+> &
+sourû
+,
+
+119 
+NÚCÝyabËP”si¡’t
+ *
+de¡
+) {
+
+120 
+	mUncompžabË
+<
+	mv8
+::
+Objeù
+>();
+
+123 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gO
+> 
+šlše
+ 
+	$UncompžabË
+() {
+
+124 
+	`TYPE_CHECK
+(
+O
+, 
+v8
+::
+Prim™ive
+);
+
+125 
+	}
+}
+
+128 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+129 
+	sCÝyabËP”si¡’tT¿™s
+ {
+
+130 
+	mP”si¡’t
+<
+	tT
+, 
+	tCÝyabËP”si¡’tT¿™s
+<T> > 
+	tCÝyabËP”si¡’t
+;
+
+131 cÚ¡ 
+boÞ
+ 
+	mkRe£tInDe¡ruùÜ
+ = 
+Œue
+;
+
+132 
+	m‹m¶©e
+<
+ty³Çme
+ 
+	mS
+,�y³Çm�
+	mM
+>
+
+133 
+šlše
+ 
+CÝy
+(cÚ¡ 
+P”si¡’t
+<
+S
+, 
+M
+> &
+sourû
+,
+
+134 
+CÝyabËP”si¡’t
+ *
+de¡
+) {}
+
+137 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+> 
+þass
+ 
+	gP”si¡’t
+ :
+
+138 
+public
+ 
+P”si¡’tBa£
+<
+T
+> {
+
+139 
+public
+:
+
+140 
+šlše
+ 
+P”si¡’t
+() {}
+
+142 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+> 
+šlše
+ 
+P”si¡’t
+(
+v8
+::
+HªdË
+<S> 
+th©
+)
+
+143 : 
+P”si¡’tBa£
+<
+T
+>(
+v8
+::
+P”si¡’t
+<T>::
+New
+(
+th©
+)) {
+
+144 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+147 
+šlše
+ 
+P”si¡’t
+(cÚ¡ P”si¡’ˆ&
+th©
+è: 
+P”si¡’tBa£
+<
+T
+>() {
+
+148 
+CÝy
+(
+th©
+);
+
+151 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+,�y³Çm�
+	gM2
+>
+
+152 
+šlše
+ 
+P”si¡’t
+(cÚ¡ P”si¡’t<
+S
+, 
+M2
+> &
+th©
+) :
+
+153 
+P”si¡’tBa£
+<
+T
+>() {
+
+154 
+CÝy
+(
+th©
+);
+
+157 
+šlše
+ 
+	gP”si¡’t
+ &
+	gÝ”©Ü
+=(cÚ¡ 
+P”si¡’t
+ &
+th©
+) {
+
+158 
+CÝy
+(
+th©
+);
+
+159  *
+	gthis
+;
+
+162 
+	g‹m¶©e
+ <
+þass
+ 
+	gS
+, cÏs 
+	gM2
+>
+
+163 
+šlše
+ 
+	gP”si¡’t
+ &
+	gÝ”©Ü
+=(cÚ¡ 
+P”si¡’t
+<
+S
+, 
+	gM2
+> &
+	gth©
+) {
+
+164 
+CÝy
+(
+th©
+);
+
+165  *
+	gthis
+;
+
+168 
+	gšlše
+ ~
+P”si¡’t
+() {
+
+169 ià(
+	gM
+::
+kRe£tInDe¡ruùÜ
+è
+this
+->
+Re£t
+();
+
+172 
+	g´iv©e
+:
+
+173 
+šlše
+ 
+T
+ *
+Ý”©Ü
+*(ècÚ¡ {  *
+P”si¡’tBa£
+<T>::
+³rsi¡’t
+; }
+
+175 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+,�y³Çm�
+	gM2
+>
+
+176 
+šlše
+ 
+CÝy
+(cÚ¡ 
+P”si¡’t
+<
+S
+, 
+M2
+> &
+th©
+) {
+
+177 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+179 
+	gthis
+->
+Re£t
+();
+
+181 ià(!
+	gth©
+.
+IsEm±y
+()) {
+
+182 
+	gthis
+->
+	g³rsi¡’t
+ = 
+v8
+::
+P”si¡’t
+<
+T
+>::
+New
+(
+th©
+.
+³rsi¡’t
+);
+
+183 
+	gM
+::
+CÝy
+(
+th©
+, 
+this
+);
+
+188 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+189 
+þass
+ 
+	gGlob®
+ : 
+public
+ 
+P”si¡’tBa£
+<
+T
+> {
+
+190 
+	sRV®ue
+ {
+
+191 
+šlše
+ 
+ex¶ic™
+ 
+RV®ue
+(
+Glob®
+* 
+obj
+è: 
+objeù
+(obj) {}
+
+192 
+Glob®
+* 
+objeù
+;
+
+195 
+	gpublic
+:
+
+196 
+šlše
+ 
+Glob®
+(è: 
+P”si¡’tBa£
+<
+T
+>(0) { }
+
+198 
+‹m¶©e
+ <
+ty³Çme
+ 
+S
+>
+
+199 
+šlše
+ 
+Glob®
+(
+v8
+::
+Loÿl
+<
+S
+> 
+th©
+)
+
+200 : 
+P”si¡’tBa£
+<
+T
+>(
+v8
+::
+P”si¡’t
+<T>::
+New
+(
+th©
+)) {
+
+201 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+204 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gS
+>
+
+205 
+šlše
+ 
+Glob®
+(cÚ¡ 
+P”si¡’tBa£
+<
+S
+> &
+th©
+)
+
+206 : 
+P”si¡’tBa£
+<
+T
+>(
+th©
+) {
+
+207 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+212 
+šlše
+ 
+Glob®
+(
+RV®ue
+ 
+rv®ue
+)
+
+213 : 
+P”si¡’tBa£
+<
+T
+>(
+rv®ue
+.
+objeù
+->
+³rsi¡’t
+) {
+
+214 
+rv®ue
+.
+objeù
+->
+Re£t
+();
+
+216 
+	gšlše
+ ~
+Glob®
+(è{ 
+	gthis
+->
+Re£t
+(); }
+
+220 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+221 
+šlše
+ 
+	gGlob®
+ &
+	gÝ”©Ü
+=(
+Glob®
+<
+S
+> 
+rhs
+) {
+
+222 
+TYPE_CHECK
+(
+T
+, 
+S
+);
+
+223 
+	gthis
+->
+Re£t
+(
+rhs
+.
+³rsi¡’t
+);
+
+224 
+	grhs
+.
+Re£t
+();
+
+225  *
+	gthis
+;
+
+230 
+šlše
+ 
+Ý”©Ü
+ 
+RV®ue
+(è{  RV®ue(
+this
+); }
+
+234 
+Glob®
+ 
+Pass
+(è{  Glob®(
+RV®ue
+(
+this
+)); }
+
+236 
+	g´iv©e
+:
+
+237 
+Glob®
+(Global &);
+
+238 
+	gÝ”©Ü
+=(
+Glob®
+ &);
+
+239 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+> 
+ä›nd
+ 
+þass
+ 
+	gR‘uºV®ue
+;
+
+	@interface/node_modules/nan/nan_private.h
+
+9 #iâdeà
+NAN_PRIVATE_H_
+
+
+10 
+	#NAN_PRIVATE_H_
+
+
+	)
+
+12 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+>
+
+13 
+HasPriv©e
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+, v8::Loÿl<v8::
+SŒšg
+> 
+key
+) {
+
+14 
+HªdËScÝe
+ 
+scÝe
+;
+
+15 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_6_0_MODULE_VERSION
+
+
+16 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+17 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+18 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Priv©e
+> 
+´iv©e_key
+ = v8::Priv©e::
+FÜApi
+(
+isÞ©e
+, 
+key
+);
+
+19  
+	gobjeù
+->
+HasPriv©e
+(
+cÚ‹xt
+, 
+´iv©e_key
+);
+
+21  
+Ju¡
+(!
+objeù
+->
+G‘Hidd’V®ue
+(
+key
+).
+IsEm±y
+());
+
+25 
+šlše
+ 
+	gMaybeLoÿl
+<
+	gv8
+::
+V®ue
+>
+
+26 
+G‘Priv©e
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+, v8::Loÿl<v8::
+SŒšg
+> 
+key
+) {
+
+27 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_6_0_MODULE_VERSION
+
+
+28 
+v8
+::
+IsÞ©e
+ *
+isÞ©e
+ = v8::IsÞ©e::
+G‘Cu¼’t
+();
+
+29 
+	gv8
+::
+Esÿ·bËHªdËScÝe
+ 
+scÝe
+(
+isÞ©e
+);
+
+30 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+31 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Priv©e
+> 
+´iv©e_key
+ = v8::Priv©e::
+FÜApi
+(
+isÞ©e
+, 
+key
+);
+
+32 
+	gv8
+::
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+v
+ = 
+objeù
+->
+G‘Priv©e
+(
+cÚ‹xt
+, 
+´iv©e_key
+);
+
+33  
+	gscÝe
+.
+Esÿ³
+(
+v
+.
+ToLoÿlChecked
+());
+
+35 
+Esÿ·bËHªdËScÝe
+ 
+	gscÝe
+;
+
+36 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+> 
+v
+ = 
+objeù
+->
+G‘Hidd’V®ue
+(
+key
+);
+
+37 ià(
+	gv
+.
+IsEm±y
+()) {
+
+38 
+	gv
+ = 
+Undefšed
+();
+
+40  
+	gscÝe
+.
+Esÿ³
+(
+v
+);
+
+44 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+S‘Priv©e
+(
+
+45 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+,
+
+46 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+,
+
+47 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+v®ue
+) {
+
+48 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_6_0_MODULE_VERSION
+
+
+49 
+HªdËScÝe
+ 
+scÝe
+;
+
+50 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+51 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+52 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Priv©e
+> 
+´iv©e_key
+ = v8::Priv©e::
+FÜApi
+(
+isÞ©e
+, 
+key
+);
+
+53  
+	gobjeù
+->
+S‘Priv©e
+(
+cÚ‹xt
+, 
+´iv©e_key
+, 
+v®ue
+);
+
+55  
+Ju¡
+(
+objeù
+->
+S‘Hidd’V®ue
+(
+key
+, 
+v®ue
+));
+
+59 
+šlše
+ 
+	gMaybe
+<
+	gboÞ
+> 
+D–‘ePriv©e
+(
+
+60 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+,
+
+61 
+v8
+::
+Loÿl
+<v8::
+SŒšg
+> 
+key
+) {
+
+62 #ià
+NODE_MODULE_VERSION
+ >ð
+NODE_6_0_MODULE_VERSION
+
+
+63 
+HªdËScÝe
+ 
+scÝe
+;
+
+64 
+	gv8
+::
+IsÞ©e
+ *
+isÞ©e
+ = 
+v8
+::IsÞ©e::
+G‘Cu¼’t
+();
+
+65 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Priv©e
+> 
+´iv©e_key
+ = v8::Priv©e::
+FÜApi
+(
+isÞ©e
+, 
+key
+);
+
+66  
+	gobjeù
+->
+D–‘ePriv©e
+(
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+(), 
+´iv©e_key
+);
+
+68  
+Ju¡
+(
+objeù
+->
+D–‘eHidd’V®ue
+(
+key
+));
+
+	@interface/node_modules/nan/nan_string_bytes.h
+
+22 #iâdeà
+NAN_STRING_BYTES_H_
+
+
+23 
+	#NAN_STRING_BYTES_H_
+
+
+	)
+
+27 
+Çme¥aû
+ 
+	gimp
+ {
+
+29 
+usšg
+ 
+	gv8
+::
+Loÿl
+;
+
+30 
+usšg
+ 
+	gv8
+::
+Objeù
+;
+
+31 
+usšg
+ 
+	gv8
+::
+SŒšg
+;
+
+32 
+usšg
+ 
+	gv8
+::
+V®ue
+;
+
+37 
+	#ba£64_’coded_size
+(
+size
+è((siz�+ 2 - ((siz�+ 2è% 3)è/ 3 * 4)
+
+	)
+
+43 
+boÞ
+ 
+cÚ�šs_nÚ_ascii_¦ow
+(cÚ¡ * 
+buf
+, 
+size_t
+ 
+Ën
+) {
+
+44 
+size_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; ++i) {
+
+45 ià(
+	gbuf
+[
+i
+] & 0x80è 
+	gŒue
+;
+
+47  
+	gçl£
+;
+
+51 
+boÞ
+ 
+cÚ�šs_nÚ_ascii
+(cÚ¡ * 
+¤c
+, 
+size_t
+ 
+Ën
+) {
+
+52 ià(
+	gËn
+ < 16) {
+
+53  
+cÚ�šs_nÚ_ascii_¦ow
+(
+¤c
+, 
+Ën
+);
+
+56 cÚ¡ 
+	gby‹s_³r_wÜd
+ = (*);
+
+57 cÚ¡ 
+	g®ign_mask
+ = 
+by‹s_³r_wÜd
+ - 1;
+
+58 cÚ¡ 
+	guÇligÃd
+ = 
+»š‹½»t_ÿ¡
+<
+uš�Œ_t
+>(
+¤c
+è& 
+®ign_mask
+;
+
+60 ià(
+	guÇligÃd
+ > 0) {
+
+61 cÚ¡ 
+	gn
+ = 
+by‹s_³r_wÜd
+ - 
+uÇligÃd
+;
+
+62 ià(
+cÚ�šs_nÚ_ascii_¦ow
+(
+¤c
+, 
+n
+)è 
+	gŒue
+;
+
+63 
+	g¤c
+ +ð
+n
+;
+
+64 
+	gËn
+ -ð
+n
+;
+
+68 #ià
+defšed
+(
+__x86_64__
+è|| defšed(
+_WIN64
+)
+
+69 cÚ¡ 
+uš�Œ_t
+ 
+	gmask
+ = 0x8080808080808080ll;
+
+71 cÚ¡ 
+uš�Œ_t
+ 
+	gmask
+ = 0x80808080l;
+
+74 cÚ¡ 
+uš�Œ_t
+* 
+	g¤cw
+ = 
+»š‹½»t_ÿ¡
+<cÚ¡ uš�Œ_t*>(
+¤c
+);
+
+76 
+size_t
+ 
+	gi
+ = 0, 
+	gn
+ = 
+Ën
+ / 
+by‹s_³r_wÜd
+; i <‚; ++i) {
+
+77 ià(
+	g¤cw
+[
+i
+] & 
+	gmask
+è 
+	gŒue
+;
+
+80 cÚ¡ 
+	g»mašd”
+ = 
+Ën
+ & 
+®ign_mask
+;
+
+81 ià(
+	g»mašd”
+ > 0) {
+
+82 cÚ¡ 
+size_t
+ 
+	goff£t
+ = 
+Ën
+ - 
+»mašd”
+;
+
+83 ià(
+cÚ�šs_nÚ_ascii_¦ow
+(
+¤c
+ + 
+off£t
+, 
+»mašd”
+)è 
+	gŒue
+;
+
+86  
+	gçl£
+;
+
+90 
+fÜû_ascii_¦ow
+(cÚ¡ * 
+¤c
+, * 
+d¡
+, 
+size_t
+ 
+Ën
+) {
+
+91 
+size_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; ++i) {
+
+92 
+	gd¡
+[
+i
+] = 
+¤c
+[i] & 0x7f;
+
+97 
+fÜû_ascii
+(cÚ¡ * 
+¤c
+, * 
+d¡
+, 
+size_t
+ 
+Ën
+) {
+
+98 ià(
+	gËn
+ < 16) {
+
+99 
+fÜû_ascii_¦ow
+(
+¤c
+, 
+d¡
+, 
+Ën
+);
+
+103 cÚ¡ 
+	gby‹s_³r_wÜd
+ = (*);
+
+104 cÚ¡ 
+	g®ign_mask
+ = 
+by‹s_³r_wÜd
+ - 1;
+
+105 cÚ¡ 
+	g¤c_uÇlign
+ = 
+»š‹½»t_ÿ¡
+<
+uš�Œ_t
+>(
+¤c
+è& 
+®ign_mask
+;
+
+106 cÚ¡ 
+	gd¡_uÇlign
+ = 
+»š‹½»t_ÿ¡
+<
+uš�Œ_t
+>(
+d¡
+è& 
+®ign_mask
+;
+
+108 ià(
+	g¤c_uÇlign
+ > 0) {
+
+109 ià(
+	g¤c_uÇlign
+ =ð
+d¡_uÇlign
+) {
+
+110 cÚ¡ 
+uÇlign
+ = 
+by‹s_³r_wÜd
+ - 
+¤c_uÇlign
+;
+
+111 
+fÜû_ascii_¦ow
+(
+¤c
+, 
+d¡
+, 
+uÇlign
+);
+
+112 
+	g¤c
+ +ð
+uÇlign
+;
+
+113 
+	gd¡
+ +ð
+uÇlign
+;
+
+114 
+	gËn
+ -ð
+¤c_uÇlign
+;
+
+116 
+fÜû_ascii_¦ow
+(
+¤c
+, 
+d¡
+, 
+Ën
+);
+
+121 #ià
+defšed
+(
+__x86_64__
+è|| defšed(
+_WIN64
+)
+
+122 cÚ¡ 
+uš�Œ_t
+ 
+	gmask
+ = ~0x8080808080808080ll;
+
+124 cÚ¡ 
+uš�Œ_t
+ 
+	gmask
+ = ~0x80808080l;
+
+127 cÚ¡ 
+uš�Œ_t
+* 
+	g¤cw
+ = 
+»š‹½»t_ÿ¡
+<cÚ¡ uš�Œ_t*>(
+¤c
+);
+
+128 
+uš�Œ_t
+* 
+	gd¡w
+ = 
+»š‹½»t_ÿ¡
+<uš�Œ_t*>(
+d¡
+);
+
+130 
+size_t
+ 
+	gi
+ = 0, 
+	gn
+ = 
+Ën
+ / 
+by‹s_³r_wÜd
+; i <‚; ++i) {
+
+131 
+	gd¡w
+[
+i
+] = 
+¤cw
+[i] & 
+mask
+;
+
+134 cÚ¡ 
+	g»mašd”
+ = 
+Ën
+ & 
+®ign_mask
+;
+
+135 ià(
+	g»mašd”
+ > 0) {
+
+136 cÚ¡ 
+size_t
+ 
+	goff£t
+ = 
+Ën
+ - 
+»mašd”
+;
+
+137 
+fÜû_ascii_¦ow
+(
+¤c
+ + 
+off£t
+, 
+d¡
+ + off£t, 
+»mašd”
+);
+
+142 
+size_t
+ 
+ba£64_’code
+(cÚ¡ * 
+¤c
+,
+
+143 
+size_t
+ 
+¦’
+,
+
+144 * 
+d¡
+,
+
+145 
+size_t
+ 
+dËn
+) {
+
+147 
+as£¹
+(
+dËn
+ >ð
+ba£64_’coded_size
+(
+¦’
+) &&
+
+150 
+	gdËn
+ = 
+ba£64_’coded_size
+(
+¦’
+);
+
+152 
+	ga
+;
+
+153 
+	gb
+;
+
+154 
+	gc
+;
+
+155 
+	gi
+;
+
+156 
+	gk
+;
+
+157 
+	gn
+;
+
+159 cÚ¡ 
+	g�bË
+[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+163 
+	gi
+ = 0;
+
+164 
+	gk
+ = 0;
+
+165 
+	gn
+ = 
+¦’
+ / 3 * 3;
+
+167 
+	gi
+ < 
+	gn
+) {
+
+168 
+	ga
+ = 
+¤c
+[
+i
+ + 0] & 0xff;
+
+169 
+	gb
+ = 
+¤c
+[
+i
+ + 1] & 0xff;
+
+170 
+	gc
+ = 
+¤c
+[
+i
+ + 2] & 0xff;
+
+172 
+	gd¡
+[
+k
+ + 0] = 
+�bË
+[
+a
+ >> 2];
+
+173 
+	gd¡
+[
+k
+ + 1] = 
+�bË
+[((
+a
+ & 3è<< 4è| (
+b
+ >> 4)];
+
+174 
+	gd¡
+[
+k
+ + 2] = 
+�bË
+[((
+b
+ & 0x0fè<< 2è| (
+c
+ >> 6)];
+
+175 
+	gd¡
+[
+k
+ + 3] = 
+�bË
+[
+c
+ & 0x3f];
+
+177 
+	gi
+ += 3;
+
+178 
+	gk
+ += 4;
+
+181 ià(
+	gn
+ !ð
+¦’
+) {
+
+182 
+¦’
+ - 
+n
+) {
+
+184 
+a
+ = 
+¤c
+[
+i
+ + 0] & 0xff;
+
+185 
+	gd¡
+[
+k
+ + 0] = 
+�bË
+[
+a
+ >> 2];
+
+186 
+	gd¡
+[
+k
+ + 1] = 
+�bË
+[(
+a
+ & 3) << 4];
+
+187 
+	gd¡
+[
+k
+ + 2] = '=';
+
+188 
+	gd¡
+[
+k
+ + 3] = '=';
+
+192 
+a
+ = 
+¤c
+[
+i
+ + 0] & 0xff;
+
+193 
+	gb
+ = 
+¤c
+[
+i
+ + 1] & 0xff;
+
+194 
+	gd¡
+[
+k
+ + 0] = 
+�bË
+[
+a
+ >> 2];
+
+195 
+	gd¡
+[
+k
+ + 1] = 
+�bË
+[((
+a
+ & 3è<< 4è| (
+b
+ >> 4)];
+
+196 
+	gd¡
+[
+k
+ + 2] = 
+�bË
+[(
+b
+ & 0x0f) << 2];
+
+197 
+	gd¡
+[
+k
+ + 3] = '=';
+
+202  
+	gdËn
+;
+
+206 
+size_t
+ 
+hex_’code
+(cÚ¡ * 
+¤c
+, size_ˆ
+¦’
+, * 
+d¡
+, size_ˆ
+dËn
+) {
+
+208 
+as£¹
+(
+dËn
+ >ð
+¦’
+ * 2 &&
+
+211 
+	gdËn
+ = 
+¦’
+ * 2;
+
+212 
+ušt32_t
+ 
+	gi
+ = 0, 
+	gk
+ = 0; k < 
+	gdËn
+; i += 1, k += 2) {
+
+213 cÚ¡ 
+hex
+[] = "0123456789abcdef";
+
+214 
+ušt8_t
+ 
+	gv®
+ = 
+¡©ic_ÿ¡
+<ušt8_t>(
+¤c
+[
+i
+]);
+
+215 
+	gd¡
+[
+k
+ + 0] = 
+hex
+[
+v®
+ >> 4];
+
+216 
+	gd¡
+[
+k
+ + 1] = 
+hex
+[
+v®
+ & 15];
+
+219  
+	gdËn
+;
+
+224 
+	gLoÿl
+<
+	gV®ue
+> 
+Encode
+(cÚ¡ * 
+buf
+,
+
+225 
+size_t
+ 
+buæ’
+,
+
+226 
+Encodšg
+ 
+’codšg
+) {
+
+227 
+as£¹
+(
+buæ’
+ <ð
+node
+::
+Bufãr
+::
+kMaxL’gth
+);
+
+228 ià(!
+	gbuæ’
+ && 
+	g’codšg
+ !ð
+BUFFER
+)
+
+229  
+New
+("").
+ToLoÿlChecked
+();
+
+231 
+	gLoÿl
+<
+	gSŒšg
+> 
+	gv®
+;
+
+232 
+	g’codšg
+) {
+
+233 
+	gBUFFER
+:
+
+234  
+CÝyBufãr
+(
+buf
+, 
+buæ’
+).
+ToLoÿlChecked
+();
+
+236 
+	gASCII
+:
+
+237 ià(
+cÚ�šs_nÚ_ascii
+(
+buf
+, 
+buæ’
+)) {
+
+238 * 
+	gout
+ = 
+Ãw
+ [
+buæ’
+];
+
+239 
+fÜû_ascii
+(
+buf
+, 
+out
+, 
+buæ’
+);
+
+240 
+	gv®
+ = 
+New
+<
+SŒšg
+>(
+out
+, 
+	gbuæ’
+).
+ToLoÿlChecked
+();
+
+241 
+	gd–‘e
+[] 
+	gout
+;
+
+243 
+	gv®
+ = 
+New
+<
+SŒšg
+>(
+buf
+, 
+	gbuæ’
+).
+ToLoÿlChecked
+();
+
+247 
+	gUTF8
+:
+
+248 
+v®
+ = 
+New
+<
+SŒšg
+>(
+buf
+, 
+	gbuæ’
+).
+ToLoÿlChecked
+();
+
+251 
+	gBINARY
+: {
+
+253 cÚ¡ *
+cbuf
+ = 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+buf
+);
+
+254 
+ušt16_t
+ * 
+	gtwoby‹buf
+ = 
+Ãw
+ ušt16_t[
+buæ’
+];
+
+255 
+size_t
+ 
+	gi
+ = 0; i < 
+	gbuæ’
+; i++) {
+
+257 
+	gtwoby‹buf
+[
+i
+] = 
+cbuf
+[i];
+
+259 
+	gv®
+ = 
+New
+<
+SŒšg
+>(
+twoby‹buf
+, 
+	gbuæ’
+).
+ToLoÿlChecked
+();
+
+260 
+	gd–‘e
+[] 
+	gtwoby‹buf
+;
+
+264 
+	gBASE64
+: {
+
+265 
+size_t
+ 
+dËn
+ = 
+ba£64_’coded_size
+(
+buæ’
+);
+
+266 * 
+	gd¡
+ = 
+Ãw
+ [
+dËn
+];
+
+268 
+size_t
+ 
+	gwr™‹n
+ = 
+ba£64_’code
+(
+buf
+, 
+buæ’
+, 
+d¡
+, 
+dËn
+);
+
+269 
+as£¹
+(
+wr™‹n
+ =ð
+dËn
+);
+
+271 
+	gv®
+ = 
+New
+<
+SŒšg
+>(
+d¡
+, 
+	gdËn
+).
+ToLoÿlChecked
+();
+
+272 
+	gd–‘e
+[] 
+	gd¡
+;
+
+276 
+	gUCS2
+: {
+
+277 cÚ¡ 
+ušt16_t
+* 
+d©a
+ = 
+»š‹½»t_ÿ¡
+<cÚ¡ ušt16_t*>(
+buf
+);
+
+278 
+	gv®
+ = 
+New
+<
+SŒšg
+>(
+d©a
+, 
+	gbuæ’
+ / 2).
+ToLoÿlChecked
+();
+
+282 
+	gHEX
+: {
+
+283 
+size_t
+ 
+dËn
+ = 
+buæ’
+ * 2;
+
+284 * 
+	gd¡
+ = 
+Ãw
+ [
+dËn
+];
+
+285 
+size_t
+ 
+	gwr™‹n
+ = 
+hex_’code
+(
+buf
+, 
+buæ’
+, 
+d¡
+, 
+dËn
+);
+
+286 
+as£¹
+(
+wr™‹n
+ =ð
+dËn
+);
+
+288 
+	gv®
+ = 
+New
+<
+SŒšg
+>(
+d¡
+, 
+	gdËn
+).
+ToLoÿlChecked
+();
+
+289 
+	gd–‘e
+[] 
+	gd¡
+;
+
+294 
+as£¹
+(0 && "unknownƒncoding");
+
+298  
+	gv®
+;
+
+301 #undeà
+ba£64_’coded_size
+
+
+	@interface/node_modules/nan/nan_typedarray_contents.h
+
+9 #iâdeà
+NAN_TYPEDARRAY_CONTENTS_H_
+
+
+10 
+	#NAN_TYPEDARRAY_CONTENTS_H_
+
+
+	)
+
+12 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+13 þas 
+	cTy³dA¼ayCÚ‹Ás
+ {
+
+14 
+	mpublic
+:
+
+15 
+šlše
+ 
+ex¶ic™
+ 
+Ty³dA¼ayCÚ‹Ás
+(
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+äom
+) :
+
+16 
+Ëngth_
+(0), 
+	$d©a_
+(
+NULL
+) {
+
+17 
+HªdËScÝe
+ 
+scÝe
+;
+
+19 
+size_t
+ 
+Ëngth
+ = 0;
+
+20 * 
+d©a
+ = 
+NULL
+;
+
+22 #ià
+	`defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+23 (
+V8_MAJOR_VERSION
+ =ð4 && 
+	`defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+25 ià(
+äom
+->
+	`IsA¼ayBufãrV›w
+()) {
+
+26 
+v8
+::
+Loÿl
+<v8::
+A¼ayBufãrV›w
+> 
+¬¿y
+ =
+
+27 
+v8
+::
+Loÿl
+<v8::
+A¼ayBufãrV›w
+>::
+	`Ca¡
+(
+äom
+);
+
+29 cÚ¡ 
+size_t
+ 
+by‹_Ëngth
+ = 
+¬¿y
+->
+	`By‹L’gth
+();
+
+30 cÚ¡ 
+±rdiff_t
+ 
+by‹_off£t
+ = 
+¬¿y
+->
+	`By‹Off£t
+();
+
+31 
+v8
+::
+Loÿl
+<v8::
+A¼ayBufãr
+> 
+bufãr
+ = 
+¬¿y
+->
+	`Bufãr
+();
+
+33 
+Ëngth
+ = 
+by‹_Ëngth
+ / (
+T
+);
+
+36 #ià(
+V8_MAJOR_VERSION
+ >= 8)
+
+37 
+d©a
+ = 
+¡©ic_ÿ¡
+<*>(
+bufãr
+->
+	`G‘BackšgStÜe
+()->
+	`D©a
+()è+ 
+by‹_off£t
+;
+
+39 
+d©a
+ = 
+¡©ic_ÿ¡
+<*>(
+bufãr
+->
+	`G‘CÚ‹Ás
+().
+	`D©a
+()è+ 
+by‹_off£t
+;
+
+45 ià(
+äom
+->
+	`IsObjeù
+(è&& !äom->
+	`IsNuÎ
+()) {
+
+46 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+¬¿y
+ = v8::Loÿl<v8::Objeù>::
+	`Ca¡
+(
+äom
+);
+
+48 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+bufãr
+ = 
+	`G‘
+(
+¬¿y
+,
+
+49 
+New
+<
+v8
+::
+SŒšg
+>("bufãr").
+	`ToLoÿlChecked
+());
+
+50 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+by‹_Ëngth
+ = 
+	`G‘
+(
+¬¿y
+,
+
+51 
+New
+<
+v8
+::
+SŒšg
+>("by‹L’gth").
+	`ToLoÿlChecked
+());
+
+52 
+MaybeLoÿl
+<
+v8
+::
+V®ue
+> 
+by‹_off£t
+ = 
+	`G‘
+(
+¬¿y
+,
+
+53 
+New
+<
+v8
+::
+SŒšg
+>("by‹Off£t").
+	`ToLoÿlChecked
+());
+
+55 ià(!
+bufãr
+.
+	`IsEm±y
+() &&
+
+56 !
+by‹_Ëngth
+.
+	`IsEm±y
+(è&& by‹_Ëngth.
+	`ToLoÿlChecked
+()->
+	`IsUšt32
+() &&
+
+57 !
+by‹_off£t
+.
+	`IsEm±y
+(è&& by‹_off£t.
+	`ToLoÿlChecked
+()->
+	`IsUšt32
+()) {
+
+58 
+d©a
+ = 
+¬¿y
+->
+	`G‘IndexedPrÝ”t›sEx‹º®A¼ayD©a
+();
+
+59 if(
+d©a
+) {
+
+60 
+Ëngth
+ = 
+by‹_Ëngth
+.
+	`ToLoÿlChecked
+()->
+	`Ušt32V®ue
+(è/ (
+T
+);
+
+67 #ià
+	`defšed
+(
+_MSC_VER
+è&& _MSC_VER >ð1900 || 
+__ýlu¥lus
+ >= 201103L
+
+68 
+	`as£¹
+(
+»š‹½»t_ÿ¡
+<
+uš�Œ_t
+>(
+d©a
+è% 
+	`®ignof
+ (
+T
+) == 0);
+
+69 #–ià
+	`defšed
+(
+_MSC_VER
+è&& _MSC_VER >ð1600 || defšed(
+__GNUC__
+)
+
+70 
+	`as£¹
+(
+»š‹½»t_ÿ¡
+<
+uš�Œ_t
+>(
+d©a
+è% 
+	`__®ignof
+(
+T
+) == 0);
+
+72 
+	`as£¹
+(
+»š‹½»t_ÿ¡
+<
+uš�Œ_t
+>(
+d©a
+è%  (
+T
+) == 0);
+
+75 
+Ëngth_
+ = 
+Ëngth
+;
+
+76 
+d©a_
+ = 
+¡©ic_ÿ¡
+<
+T
+*>(
+d©a
+);
+
+79 
+šlše
+ 
+size_t
+ 
+	$Ëngth
+(ècÚ¡ {  
+Ëngth_
+; 
+	}
+}
+
+80 
+šlše
+ 
+T
+* 
+	gÝ”©Ü
+*(è{  
+	gd©a_
+; }
+
+81 
+šlše
+ cÚ¡ 
+T
+* 
+	gÝ”©Ü
+*(ècÚ¡ {  
+	gd©a_
+; }
+
+83 
+	g´iv©e
+:
+
+84 
+	$NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+Ty³dA¼ayCÚ‹Ás
+)
+
+87 *
+Ý”©Ü
+ 
+	`Ãw
+(
+size_t
+ 
+size
+);
+
+88 
+Ý”©Ü
+ 
+	$d–‘e
+(*, 
+size_t
+) {
+
+89 
+	`abÜt
+();
+
+90 
+	}
+}
+
+92 
+size_t
+ 
+	gËngth_
+;
+
+93 
+T
+* 
+	gd©a_
+;
+
+	@interface/node_modules/nan/nan_weak.h
+
+9 #iâdeà
+NAN_WEAK_H_
+
+
+10 
+	#NAN_WEAK_H_
+
+
+	)
+
+12 cÚ¡ 
+	gkIÁ”ÇlF›ldsInW—kC®lback
+ = 2;
+
+13 cÚ¡ 
+	gkNoIÁ”ÇlF›ldIndex
+ = -1;
+
+15 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+16 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+17 
+	#NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+ \
+
+18 
+v8
+::
+W—kC®lbackInfo
+<W—kC®lbackInfo<
+T
+> > cÚ¡&
+
+	)
+
+19 
+	#NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+ \
+
+20 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+
+
+	)
+
+21 
+	#NAN_WEAK_PARAMETER_CALLBACK_SIG_
+ 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+
+
+	)
+
+22 
+	#NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+ 
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+
+
+	)
+
+23 #–ià
+NODE_MODULE_VERSION
+ > 
+IOJS_1_1_MODULE_VERSION
+
+
+24 
+	#NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+ \
+
+25 
+v8
+::
+PhªtomC®lbackD©a
+<
+W—kC®lbackInfo
+<
+T
+> > cÚ¡&
+
+	)
+
+26 
+	#NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+ \
+
+27 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+
+
+	)
+
+28 
+	#NAN_WEAK_PARAMETER_CALLBACK_SIG_
+ 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+
+
+	)
+
+29 
+	#NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+ 
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+
+
+	)
+
+30 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+31 
+	#NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+ \
+
+32 
+v8
+::
+PhªtomC®lbackD©a
+<
+W—kC®lbackInfo
+<
+T
+> > cÚ¡&
+
+	)
+
+33 
+	#NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+ \
+
+34 
+v8
+::
+IÁ”ÇlF›ldsC®lbackD©a
+<
+W—kC®lbackInfo
+<
+T
+>, > cÚ¡&
+
+	)
+
+35 
+	#NAN_WEAK_PARAMETER_CALLBACK_SIG_
+ 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+
+
+	)
+
+36 
+	#NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+ 
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+
+
+	)
+
+37 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+38 
+	#NAN_WEAK_CALLBACK_DATA_TYPE_
+ \
+
+39 
+v8
+::
+W—kC®lbackD©a
+<
+S
+, 
+W—kC®lbackInfo
+<
+T
+> > cÚ¡&
+
+	)
+
+40 
+	#NAN_WEAK_CALLBACK_SIG_
+ 
+NAN_WEAK_CALLBACK_DATA_TYPE_
+
+
+	)
+
+42 
+	#NAN_WEAK_CALLBACK_DATA_TYPE_
+ *
+
+	)
+
+43 
+	#NAN_WEAK_CALLBACK_SIG_
+ \
+
+44 
+v8
+::
+P”si¡’t
+<v8::
+V®ue
+>, 
+NAN_WEAK_CALLBACK_DATA_TYPE_
+
+
+	)
+
+47 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+48 þas 
+	cW—kC®lbackInfo
+ {
+
+49 
+	mpublic
+:
+
+50 (*
+	tC®lback
+)(cÚ¡ 
+	tW—kC®lbackInfo
+<
+	tT
+>& 
+	td©a
+);
+
+51 
+	`W—kC®lbackInfo
+(
+
+52 
+P”si¡’t
+<
+v8
+::
+V®ue
+> *
+³rsi¡’t
+
+
+53 , 
+C®lback
+ 
+ÿÎback
+
+
+54 , *
+·¿m‘”
+
+
+55 , *
+f›ld1
+ = 0
+
+56 , *
+f›ld2
+ = 0) :
+
+57 
+	`ÿÎback_
+(
+ÿÎback
+), 
+	`isÞ©e_
+(0), 
+	$·¿m‘”_
+(
+·¿m‘”
+) {
+
+58 
+¡d
+::
+	`memýy
+(&
+³rsi¡’t_
+, 
+³rsi¡’t
+,  (
+v8
+::
+P”si¡’t
+<v8::
+V®ue
+>));
+
+59 
+š‹º®_f›lds_
+[0] = 
+f›ld1
+;
+
+60 
+š‹º®_f›lds_
+[1] = 
+f›ld2
+;
+
+62 
+šlše
+ 
+v8
+::
+IsÞ©e
+ *
+	$G‘IsÞ©e
+(ècÚ¡ {  
+isÞ©e_
+; 
+	}
+}
+
+63 
+šlše
+ 
+T
+ *
+	$G‘P¬am‘”
+(ècÚ¡ {  
+¡©ic_ÿ¡
+<
+T
+*>(
+·¿m‘”_
+); 
+	}
+}
+
+64 
+šlše
+ *
+	$G‘IÁ”ÇlF›ld
+(
+šdex
+) const {
+
+65 
+	`as£¹
+((
+šdex
+ == 0 || index == 1) && "internal field index out of bounds");
+
+66 ià(
+šdex
+ == 0) {
+
+67  
+š‹º®_f›lds_
+[0];
+
+69  
+š‹º®_f›lds_
+[1];
+
+71 
+	}
+}
+
+73 
+	g´iv©e
+:
+
+74 
+	$NAN_DISALLOW_ASSIGN_COPY_MOVE
+(
+W—kC®lbackInfo
+)
+
+75 
+C®lback
+ 
+ÿÎback_
+;
+
+76 
+v8
+::
+IsÞ©e
+ *
+isÞ©e_
+;
+
+77 *
+·¿m‘”_
+;
+
+78 *
+š‹º®_f›lds_
+[
+kIÁ”ÇlF›ldsInW—kC®lback
+];
+
+79 
+v8
+::
+P”si¡’t
+<v8::
+V®ue
+> 
+³rsi¡’t_
+;
+
+80 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+,�y³Çm�
+M
+> 
+ä›nd
+ 
+þass
+ 
+P”si¡’t
+;
+
+81 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+> 
+ä›nd
+ 
+þass
+ 
+P”si¡’tBa£
+;
+
+82 #ià
+NODE_MODULE_VERSION
+ <ð
+NODE_0_12_MODULE_VERSION
+
+
+83 #ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+84 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+>
+
+85 
+	`švoke
+(
+NAN_WEAK_CALLBACK_SIG_
+ 
+d©a
+);
+
+86 
+‹m¶©e
+<
+ty³Çme
+ 
+S
+>
+
+87 
+W—kC®lbackInfo
+ *
+	`unw¿p
+(
+NAN_WEAK_CALLBACK_DATA_TYPE_
+ 
+d©a
+);
+
+89 
+	`švoke
+(
+NAN_WEAK_CALLBACK_SIG_
+ 
+d©a
+);
+
+90 
+W—kC®lbackInfo
+ *
+	`unw¿p
+(
+NAN_WEAK_CALLBACK_DATA_TYPE_
+ 
+d©a
+);
+
+93 #ià
+	`defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+94 (
+V8_MAJOR_VERSION
+ =ð4 && 
+	`defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+95 
+‹m¶©e
+<
+boÞ
+ 
+isFœ¡Pass
+>
+
+96 
+	`švok•¬am‘”
+(
+NAN_WEAK_PARAMETER_CALLBACK_SIG_
+ 
+d©a
+);
+
+97 
+‹m¶©e
+<
+boÞ
+ 
+isFœ¡Pass
+>
+
+98 
+	`švok‘wof›ld
+(
+NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+ 
+d©a
+);
+
+100 
+	`švok•¬am‘”
+(
+NAN_WEAK_PARAMETER_CALLBACK_SIG_
+ 
+d©a
+);
+
+101 
+	`švok‘wof›ld
+(
+NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+ 
+d©a
+);
+
+103 
+W—kC®lbackInfo
+ *
+	`unw¿µ¬am‘”
+(
+
+104 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+ 
+d©a
+);
+
+105 
+W—kC®lbackInfo
+ *
+	`unw¿±wof›ld
+(
+
+106 
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+ 
+d©a
+);
+
+108 
+	}
+};
+
+111 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+112 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+114 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+>
+
+115 
+‹m¶©e
+<
+boÞ
+ 
+isFœ¡Pass
+>
+
+117 
+W—kC®lbackInfo
+<
+T
+>::
+	$švok•¬am‘”
+(
+NAN_WEAK_PARAMETER_CALLBACK_SIG_
+ 
+d©a
+) {
+
+118 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ = 
+	`unw¿µ¬am‘”
+(
+d©a
+);
+
+119 ià(
+isFœ¡Pass
+) {
+
+120 
+cbšfo
+->
+³rsi¡’t_
+.
+	`Re£t
+();
+
+121 
+d©a
+.
+	`S‘SecÚdPassC®lback
+(
+švok•¬am‘”
+<
+çl£
+>);
+
+123 
+cbšfo
+->
+	`ÿÎback_
+(*cbinfo);
+
+124 
+d–‘e
+ 
+cbšfo
+;
+
+126 
+	}
+}
+
+128 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+129 
+	g‹m¶©e
+<
+boÞ
+ 
+	gisFœ¡Pass
+>
+
+131 
+	gW—kC®lbackInfo
+<
+	gT
+>::
+	$švok‘wof›ld
+(
+NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+ 
+d©a
+) {
+
+132 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ = 
+	`unw¿±wof›ld
+(
+d©a
+);
+
+133 ià(
+isFœ¡Pass
+) {
+
+134 
+cbšfo
+->
+³rsi¡’t_
+.
+	`Re£t
+();
+
+135 
+d©a
+.
+	`S‘SecÚdPassC®lback
+(
+švok‘wof›ld
+<
+çl£
+>);
+
+137 
+cbšfo
+->
+	`ÿÎback_
+(*cbinfo);
+
+138 
+d–‘e
+ 
+cbšfo
+;
+
+140 
+	}
+}
+
+142 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+143 
+	gW—kC®lbackInfo
+<
+	gT
+> *W—kC®lbackInfo<T>::
+	$unw¿µ¬am‘”
+(
+
+144 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+ 
+d©a
+) {
+
+145 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ =
+
+146 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+T
+>*>(
+d©a
+.
+	`G‘P¬am‘”
+());
+
+147 
+cbšfo
+->
+isÞ©e_
+ = 
+d©a
+.
+	`G‘IsÞ©e
+();
+
+148  
+cbšfo
+;
+
+149 
+	}
+}
+
+151 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+152 
+	gW—kC®lbackInfo
+<
+	gT
+> *W—kC®lbackInfo<T>::
+	$unw¿±wof›ld
+(
+
+153 
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+ 
+d©a
+) {
+
+154 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ =
+
+155 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+T
+>*>(
+d©a
+.
+	`G‘IÁ”ÇlF›ld
+(0));
+
+156 
+cbšfo
+->
+isÞ©e_
+ = 
+d©a
+.
+	`G‘IsÞ©e
+();
+
+157  
+cbšfo
+;
+
+158 
+	}
+}
+
+160 #undeà
+NAN_WEAK_PARAMETER_CALLBACK_SIG_
+
+
+161 #undeà
+NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+
+
+162 #undeà
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+
+
+163 #undeà
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+
+
+164 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+166 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+168 
+	gW—kC®lbackInfo
+<
+	gT
+>::
+	$švok•¬am‘”
+(
+NAN_WEAK_PARAMETER_CALLBACK_SIG_
+ 
+d©a
+) {
+
+169 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ = 
+	`unw¿µ¬am‘”
+(
+d©a
+);
+
+170 
+cbšfo
+->
+³rsi¡’t_
+.
+	`Re£t
+();
+
+171 
+cbšfo
+->
+	`ÿÎback_
+(*cbinfo);
+
+172 
+d–‘e
+ 
+cbšfo
+;
+
+173 
+	}
+}
+
+175 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+177 
+	gW—kC®lbackInfo
+<
+	gT
+>::
+	$švok‘wof›ld
+(
+NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+ 
+d©a
+) {
+
+178 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ = 
+	`unw¿±wof›ld
+(
+d©a
+);
+
+179 
+cbšfo
+->
+³rsi¡’t_
+.
+	`Re£t
+();
+
+180 
+cbšfo
+->
+	`ÿÎback_
+(*cbinfo);
+
+181 
+d–‘e
+ 
+cbšfo
+;
+
+182 
+	}
+}
+
+184 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+185 
+	gW—kC®lbackInfo
+<
+	gT
+> *W—kC®lbackInfo<T>::
+	$unw¿µ¬am‘”
+(
+
+186 
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+ 
+d©a
+) {
+
+187 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ =
+
+188 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+T
+>*>(
+d©a
+.
+	`G‘P¬am‘”
+());
+
+189 
+cbšfo
+->
+isÞ©e_
+ = 
+d©a
+.
+	`G‘IsÞ©e
+();
+
+190  
+cbšfo
+;
+
+191 
+	}
+}
+
+193 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+194 
+	gW—kC®lbackInfo
+<
+	gT
+> *W—kC®lbackInfo<T>::
+	$unw¿±wof›ld
+(
+
+195 
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+ 
+d©a
+) {
+
+196 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ =
+
+197 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+T
+>*>(
+d©a
+.
+	`G‘IÁ”ÇlF›ld1
+());
+
+198 
+cbšfo
+->
+isÞ©e_
+ = 
+d©a
+.
+	`G‘IsÞ©e
+();
+
+199  
+cbšfo
+;
+
+200 
+	}
+}
+
+202 #undeà
+NAN_WEAK_PARAMETER_CALLBACK_SIG_
+
+
+203 #undeà
+NAN_WEAK_TWOFIELD_CALLBACK_SIG_
+
+
+204 #undeà
+NAN_WEAK_PARAMETER_CALLBACK_DATA_TYPE_
+
+
+205 #undeà
+NAN_WEAK_TWOFIELD_CALLBACK_DATA_TYPE_
+
+
+206 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+208 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+209 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+210 
+	gW—kC®lbackInfo
+<
+	gT
+>::
+	$švoke
+(
+NAN_WEAK_CALLBACK_SIG_
+ 
+d©a
+) {
+
+211 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ = 
+	`unw¿p
+(
+d©a
+);
+
+212 
+cbšfo
+->
+³rsi¡’t_
+.
+	`Re£t
+();
+
+213 
+cbšfo
+->
+	`ÿÎback_
+(*cbinfo);
+
+214 
+d–‘e
+ 
+cbšfo
+;
+
+215 
+	}
+}
+
+217 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+218 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gS
+>
+
+219 
+	gW—kC®lbackInfo
+<
+	gT
+> *W—kC®lbackInfo<T>::
+	$unw¿p
+(
+
+220 
+NAN_WEAK_CALLBACK_DATA_TYPE_
+ 
+d©a
+) {
+
+221 *
+·¿m‘”
+ = 
+d©a
+.
+	`G‘P¬am‘”
+();
+
+222 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ =
+
+223 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+T
+>*>(
+·¿m‘”
+);
+
+224 
+cbšfo
+->
+isÞ©e_
+ = 
+d©a
+.
+	`G‘IsÞ©e
+();
+
+225  
+cbšfo
+;
+
+226 
+	}
+}
+
+228 #undeà
+NAN_WEAK_CALLBACK_SIG_
+
+
+229 #undeà
+NAN_WEAK_CALLBACK_DATA_TYPE_
+
+
+232 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+233 
+	gW—kC®lbackInfo
+<
+	gT
+>::
+	$švoke
+(
+NAN_WEAK_CALLBACK_SIG_
+ 
+d©a
+) {
+
+234 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ = 
+	`unw¿p
+(
+d©a
+);
+
+235 
+cbšfo
+->
+³rsi¡’t_
+.
+	`Di¥o£
+();
+
+236 
+cbšfo
+->
+³rsi¡’t_
+.
+	`CË¬
+();
+
+237 
+cbšfo
+->
+	`ÿÎback_
+(*cbinfo);
+
+238 
+d–‘e
+ 
+cbšfo
+;
+
+239 
+	}
+}
+
+241 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+242 
+	gW—kC®lbackInfo
+<
+	gT
+> *W—kC®lbackInfo<T>::
+	$unw¿p
+(
+
+243 
+NAN_WEAK_CALLBACK_DATA_TYPE_
+ 
+d©a
+) {
+
+244 
+W—kC®lbackInfo
+<
+T
+> *
+cbšfo
+ =
+
+245 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+T
+>*>(
+d©a
+);
+
+246 
+cbšfo
+->
+isÞ©e_
+ = 
+v8
+::
+IsÞ©e
+::
+	`G‘Cu¼’t
+();
+
+247  
+cbšfo
+;
+
+248 
+	}
+}
+
+250 #undeà
+NAN_WEAK_CALLBACK_SIG_
+
+
+251 #undeà
+NAN_WEAK_CALLBACK_DATA_TYPE_
+
+
+254 #ià
+defšed
+(
+V8_MAJOR_VERSION
+) && (V8_MAJOR_VERSION > 4 || \
+
+255 (
+	gV8_MAJOR_VERSION
+ =ð4 && 
+defšed
+(
+V8_MINOR_VERSION
+) && V8_MINOR_VERSION >= 3))
+
+256 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+,�y³Çm�
+	gM
+>
+
+257 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+258 
+šlše
+ 
+	gP”si¡’t
+<
+	gT
+, 
+	gM
+>::
+S‘W—k
+(
+
+259 
+P
+ *
+·¿m‘”
+
+
+260 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+261 , 
+W—kC®lbackTy³
+ 
+ty³
+) {
+
+262 
+	gW—kC®lbackInfo
+<
+	gP
+> *
+	gwcbd
+;
+
+263 ià(
+	gty³
+ =ð
+W—kC®lbackTy³
+::
+kP¬am‘”
+) {
+
+264 
+wcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+265 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+266 , 
+	gÿÎback
+
+
+267 , 
+	g·¿m‘”
+);
+
+268 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘W—k
+(
+
+269 
+wcbd
+
+
+270 , 
+W—kC®lbackInfo
+<
+P
+>::
+‹m¶©e
+ 
+švok•¬am‘”
+<
+Œue
+>
+
+271 , 
+ty³
+);
+
+273 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+>* 
+£lf_v
+(
+»š‹½»t_ÿ¡
+<v8::Loÿl<v8::V®ue>*>(
+this
+));
+
+274 
+as£¹
+((*
+£lf_v
+)->
+IsObjeù
+());
+
+275 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+£lf
+((*
+£lf_v
+).
+As
+<v8::Object>());
+
+276 
+	gcouÁ
+ = 
+£lf
+->
+IÁ”ÇlF›ldCouÁ
+();
+
+277 *
+	gš‹º®_f›lds
+[
+kIÁ”ÇlF›ldsInW—kC®lback
+] = {0, 0};
+
+278 
+	gi
+ = 0; i < 
+	gcouÁ
+ && i < 
+	gkIÁ”ÇlF›ldsInW—kC®lback
+; i++) {
+
+279 
+	gš‹º®_f›lds
+[
+i
+] = 
+£lf
+->
+G‘AligÃdPoš‹rFromIÁ”ÇlF›ld
+(i);
+
+281 
+	gwcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+282 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+283 , 
+	gÿÎback
+
+
+285 , 
+	gš‹º®_f›lds
+[0]
+
+286 , 
+	gš‹º®_f›lds
+[1]);
+
+287 
+	g£lf
+->
+S‘AligÃdPoš‹rInIÁ”ÇlF›ld
+(0, 
+wcbd
+);
+
+288 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘W—k
+(
+
+289 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+P
+>*>(0)
+
+290 , 
+W—kC®lbackInfo
+<
+P
+>::
+‹m¶©e
+ 
+švok‘wof›ld
+<
+Œue
+>
+
+291 , 
+ty³
+);
+
+294 #–ià
+NODE_MODULE_VERSION
+ > 
+IOJS_1_1_MODULE_VERSION
+
+
+295 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+296 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+297 
+šlše
+ 
+	gP”si¡’t
+<
+	gT
+, 
+	gM
+>::
+S‘W—k
+(
+
+298 
+P
+ *
+·¿m‘”
+
+
+299 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+300 , 
+W—kC®lbackTy³
+ 
+ty³
+) {
+
+301 
+	gW—kC®lbackInfo
+<
+	gP
+> *
+	gwcbd
+;
+
+302 ià(
+	gty³
+ =ð
+W—kC®lbackTy³
+::
+kP¬am‘”
+) {
+
+303 
+wcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+304 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+305 , 
+	gÿÎback
+
+
+306 , 
+	g·¿m‘”
+);
+
+307 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘Phªtom
+(
+
+308 
+wcbd
+
+
+309 , 
+W—kC®lbackInfo
+<
+P
+>::
+švok•¬am‘”
+);
+
+311 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+>* 
+£lf_v
+(
+»š‹½»t_ÿ¡
+<v8::Loÿl<v8::V®ue>*>(
+this
+));
+
+312 
+as£¹
+((*
+£lf_v
+)->
+IsObjeù
+());
+
+313 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+£lf
+((*
+£lf_v
+).
+As
+<v8::Object>());
+
+314 
+	gcouÁ
+ = 
+£lf
+->
+IÁ”ÇlF›ldCouÁ
+();
+
+315 *
+	gš‹º®_f›lds
+[
+kIÁ”ÇlF›ldsInW—kC®lback
+] = {0, 0};
+
+316 
+	gi
+ = 0; i < 
+	gcouÁ
+ && i < 
+	gkIÁ”ÇlF›ldsInW—kC®lback
+; i++) {
+
+317 
+	gš‹º®_f›lds
+[
+i
+] = 
+£lf
+->
+G‘AligÃdPoš‹rFromIÁ”ÇlF›ld
+(i);
+
+319 
+	gwcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+320 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+321 , 
+	gÿÎback
+
+
+323 , 
+	gš‹º®_f›lds
+[0]
+
+324 , 
+	gš‹º®_f›lds
+[1]);
+
+325 
+	g£lf
+->
+S‘AligÃdPoš‹rInIÁ”ÇlF›ld
+(0, 
+wcbd
+);
+
+326 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘Phªtom
+(
+
+327 
+¡©ic_ÿ¡
+<
+W—kC®lbackInfo
+<
+P
+>*>(0)
+
+328 , 
+W—kC®lbackInfo
+<
+P
+>::
+švok‘wof›ld
+
+
+330 , 
+couÁ
+ > 1 ? 1 : 
+kNoIÁ”ÇlF›ldIndex
+);
+
+333 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_12_MODULE_VERSION
+
+
+334 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+335 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+336 
+šlše
+ 
+	gP”si¡’t
+<
+	gT
+, 
+	gM
+>::
+S‘W—k
+(
+
+337 
+P
+ *
+·¿m‘”
+
+
+338 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+339 , 
+W—kC®lbackTy³
+ 
+ty³
+) {
+
+340 
+	gW—kC®lbackInfo
+<
+	gP
+> *
+	gwcbd
+;
+
+341 ià(
+	gty³
+ =ð
+W—kC®lbackTy³
+::
+kP¬am‘”
+) {
+
+342 
+wcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+343 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+344 , 
+	gÿÎback
+
+
+345 , 
+	g·¿m‘”
+);
+
+346 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘Phªtom
+(
+
+347 
+wcbd
+
+
+348 , 
+W—kC®lbackInfo
+<
+P
+>::
+švok•¬am‘”
+);
+
+350 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+>* 
+£lf_v
+(
+»š‹½»t_ÿ¡
+<v8::Loÿl<v8::V®ue>*>(
+this
+));
+
+351 
+as£¹
+((*
+£lf_v
+)->
+IsObjeù
+());
+
+352 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+£lf
+((*
+£lf_v
+).
+As
+<v8::Object>());
+
+353 
+	gcouÁ
+ = 
+£lf
+->
+IÁ”ÇlF›ldCouÁ
+();
+
+354 *
+	gš‹º®_f›lds
+[
+kIÁ”ÇlF›ldsInW—kC®lback
+] = {0, 0};
+
+355 
+	gi
+ = 0; i < 
+	gcouÁ
+ && i < 
+	gkIÁ”ÇlF›ldsInW—kC®lback
+; i++) {
+
+356 
+	gš‹º®_f›lds
+[
+i
+] = 
+£lf
+->
+G‘AligÃdPoš‹rFromIÁ”ÇlF›ld
+(i);
+
+358 
+	gwcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+359 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+360 , 
+	gÿÎback
+
+
+362 , 
+	gš‹º®_f›lds
+[0]
+
+363 , 
+	gš‹º®_f›lds
+[1]);
+
+364 
+	g£lf
+->
+S‘AligÃdPoš‹rInIÁ”ÇlF›ld
+(0, 
+wcbd
+);
+
+365 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘Phªtom
+(
+
+366 
+W—kC®lbackInfo
+<
+P
+>::
+švok‘wof›ld
+
+
+368 , 
+couÁ
+ > 1 ? 1 : 
+kNoIÁ”ÇlF›ldIndex
+);
+
+371 #–ià
+NODE_MODULE_VERSION
+ > 
+NODE_0_10_MODULE_VERSION
+
+
+372 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gM
+>
+
+373 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+374 
+šlše
+ 
+	gP”si¡’t
+<
+	gT
+, 
+	gM
+>::
+S‘W—k
+(
+
+375 
+P
+ *
+·¿m‘”
+
+
+376 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+377 , 
+W—kC®lbackTy³
+ 
+ty³
+) {
+
+378 
+	gW—kC®lbackInfo
+<
+	gP
+> *
+	gwcbd
+;
+
+379 ià(
+	gty³
+ =ð
+W—kC®lbackTy³
+::
+kP¬am‘”
+) {
+
+380 
+wcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+381 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+382 , 
+	gÿÎback
+
+
+383 , 
+	g·¿m‘”
+);
+
+384 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘W—k
+(
+wcbd
+, 
+W—kC®lbackInfo
+<
+P
+>::
+švoke
+);
+
+386 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+>* 
+£lf_v
+(
+»š‹½»t_ÿ¡
+<v8::Loÿl<v8::V®ue>*>(
+this
+));
+
+387 
+as£¹
+((*
+£lf_v
+)->
+IsObjeù
+());
+
+388 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+£lf
+((*
+£lf_v
+).
+As
+<v8::Object>());
+
+389 
+	gcouÁ
+ = 
+£lf
+->
+IÁ”ÇlF›ldCouÁ
+();
+
+390 *
+	gš‹º®_f›lds
+[
+kIÁ”ÇlF›ldsInW—kC®lback
+] = {0, 0};
+
+391 
+	gi
+ = 0; i < 
+	gcouÁ
+ && i < 
+	gkIÁ”ÇlF›ldsInW—kC®lback
+; i++) {
+
+392 
+	gš‹º®_f›lds
+[
+i
+] = 
+£lf
+->
+G‘AligÃdPoš‹rFromIÁ”ÇlF›ld
+(i);
+
+394 
+	gwcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+395 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+396 , 
+	gÿÎback
+
+
+398 , 
+	gš‹º®_f›lds
+[0]
+
+399 , 
+	gš‹º®_f›lds
+[1]);
+
+400 
+	gv8
+::
+P”si¡’tBa£
+<
+T
+>::
+S‘W—k
+(
+wcbd
+, 
+W—kC®lbackInfo
+<
+P
+>::
+švoke
+);
+
+404 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+405 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gP
+>
+
+406 
+šlše
+ 
+	gP”si¡’tBa£
+<
+	gT
+>::
+S‘W—k
+(
+
+407 
+P
+ *
+·¿m‘”
+
+
+408 , 
+ty³Çme
+ 
+W—kC®lbackInfo
+<
+P
+>::
+C®lback
+ 
+ÿÎback
+
+
+409 , 
+W—kC®lbackTy³
+ 
+ty³
+) {
+
+410 
+	gW—kC®lbackInfo
+<
+	gP
+> *
+	gwcbd
+;
+
+411 ià(
+	gty³
+ =ð
+W—kC®lbackTy³
+::
+kP¬am‘”
+) {
+
+412 
+wcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+413 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+414 , 
+	gÿÎback
+
+
+415 , 
+	g·¿m‘”
+);
+
+416 
+	g³rsi¡’t
+.
+MakeW—k
+(
+wcbd
+, 
+W—kC®lbackInfo
+<
+P
+>::
+švoke
+);
+
+418 
+	gv8
+::
+Loÿl
+<
+v8
+::
+V®ue
+>* 
+£lf_v
+(
+»š‹½»t_ÿ¡
+<v8::Loÿl<v8::V®ue>*>(
+this
+));
+
+419 
+as£¹
+((*
+£lf_v
+)->
+IsObjeù
+());
+
+420 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+£lf
+((*
+£lf_v
+).
+As
+<v8::Object>());
+
+421 
+	gcouÁ
+ = 
+£lf
+->
+IÁ”ÇlF›ldCouÁ
+();
+
+422 *
+	gš‹º®_f›lds
+[
+kIÁ”ÇlF›ldsInW—kC®lback
+] = {0, 0};
+
+423 
+	gi
+ = 0; i < 
+	gcouÁ
+ && i < 
+	gkIÁ”ÇlF›ldsInW—kC®lback
+; i++) {
+
+424 
+	gš‹º®_f›lds
+[
+i
+] = 
+£lf
+->
+G‘Poš‹rFromIÁ”ÇlF›ld
+(i);
+
+426 
+	gwcbd
+ = 
+Ãw
+ 
+W—kC®lbackInfo
+<
+P
+>(
+
+427 
+»š‹½»t_ÿ¡
+<
+P”si¡’t
+<
+v8
+::
+V®ue
+>*>(
+this
+)
+
+428 , 
+	gÿÎback
+
+
+430 , 
+	gš‹º®_f›lds
+[0]
+
+431 , 
+	gš‹º®_f›lds
+[1]);
+
+432 
+	g³rsi¡’t
+.
+MakeW—k
+(
+wcbd
+, 
+W—kC®lbackInfo
+<
+P
+>::
+švoke
+);
+
+	@interface/node_modules/watchpack-chokidar2/node_modules/fsevents/fsevents.cc
+
+6 
+	~"Çn.h
+"
+
+7 
+	~"uv.h
+"
+
+8 
+	~"v8.h
+"
+
+9 
+	~"CÜeFound©iÚ/CÜeFound©iÚ.h
+"
+
+10 
+	~"CÜeS”viûs/CÜeS”viûs.h
+"
+
+11 
+	~<io¡»am
+>
+
+12 
+	~<veùÜ
+>
+
+14 
+	~"¤c/¡Üage.cc
+"
+
+15 
+Çme¥aû
+ 
+	gf£
+ {
+
+16 þas 
+	cFSEv’ts
+ : 
+public
+ 
+Nª
+::
+ObjeùW¿p
+ {
+
+17 
+public
+:
+
+18 
+ex¶ic™
+ 
+FSEv’ts
+(cÚ¡ *
+·th
+);
+
+19 ~
+FSEv’ts
+();
+
+21 
+uv_mu‹x_t
+ 
+	gmu‹x
+;
+
+24 
+uv_async_t
+ 
+	gasync
+;
+
+25 
+asyncS�¹
+();
+
+26 
+asyncTrigg”
+();
+
+27 
+asyncStÝ
+();
+
+30 
+uv_th»ad_t
+ 
+	gth»ad
+;
+
+31 
+CFRunLoÝRef
+ 
+	gth»adloÝ
+;
+
+32 
+th»adS�¹
+();
+
+33 
+th»adRun
+(*
+ùx
+);
+
+34 
+th»adStÝ
+();
+
+37 
+	gNª
+::
+AsyncResourû
+ 
+async_»sourû
+;
+
+38 
+em™Ev’t
+(cÚ¡ *
+·th
+, 
+UIÁ32
+ 
+æags
+, 
+UIÁ64
+ 
+id
+);
+
+41 
+CFA¼ayRef
+ 
+	g·ths
+;
+
+42 
+	g¡d
+::
+veùÜ
+<
+f£_ev’t
+*> 
+ev’ts
+;
+
+43 
+In™Ÿlize
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+expÜts
+);
+
+46 
+NAN_METHOD
+(
+New
+);
+
+47 
+NAN_METHOD
+(
+StÝ
+);
+
+48 
+NAN_METHOD
+(
+S�¹
+);
+
+53 
+usšg
+ 
+Çme¥aû
+ 
+	gf£
+;
+
+55 
+	gFSEv’ts
+::
+	$FSEv’ts
+(cÚ¡ *
+·th
+)
+
+56 : 
+	`async_»sourû
+("fsevents:FSEvents") {
+
+57 
+CFSŒšgRef
+ 
+dœs
+[] = { 
+	`CFSŒšgC»©eW™hCSŒšg
+(
+NULL
+, 
+·th
+, 
+kCFSŒšgEncodšgUTF8
+) };
+
+58 
+·ths
+ = 
+	`CFA¼ayC»©e
+(
+NULL
+, (cÚ¡ **)&
+dœs
+, 1, NULL);
+
+59 
+th»adloÝ
+ = 
+NULL
+;
+
+60 ià(
+	`uv_mu‹x_š™
+(&
+mu‹x
+)è
+	`abÜt
+();
+
+61 
+	}
+}
+
+62 
+	gFSEv’ts
+::~
+	$FSEv’ts
+() {
+
+63 
+	`CFR–—£
+(
+·ths
+);
+
+64 
+	`uv_mu‹x_de¡roy
+(&
+mu‹x
+);
+
+65 
+	}
+}
+
+67 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+
+
+68 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+ 0x00000010
+
+	)
+
+71 
+	~"¤c/async.cc
+"
+
+72 
+	~"¤c/th»ad.cc
+"
+
+73 
+	~"¤c/cÚ¡ªts.cc
+"
+
+74 
+	~"¤c/m‘hods.cc
+"
+
+76 
+	gFSEv’ts
+::
+In™Ÿlize
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+expÜts
+) {
+
+77 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = 
+expÜts
+->
+G‘IsÞ©e
+();
+
+78 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+79 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚTem¶©e
+> 
+�l
+ = 
+Nª
+::
+New
+<v8::FunùiÚTem¶©e>(
+FSEv’ts
+::New);
+
+80 
+	g�l
+->
+S‘CÏssName
+(
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("FSEv’ts").
+ToLoÿlChecked
+());
+
+81 
+	g�l
+->
+In¡ªûTem¶©e
+()->
+S‘IÁ”ÇlF›ldCouÁ
+(1);
+
+82 
+	gNª
+::
+S‘PrÙÙy³Tem¶©e
+(
+�l
+, "¡¬t", 
+Nª
+::
+New
+<
+v8
+::
+FunùiÚTem¶©e
+>(
+FSEv’ts
+::
+S�¹
+));
+
+83 
+	gNª
+::
+S‘PrÙÙy³Tem¶©e
+(
+�l
+, "¡Ý", 
+Nª
+::
+New
+<
+v8
+::
+FunùiÚTem¶©e
+>(
+FSEv’ts
+::
+StÝ
+));
+
+84 
+	gNª
+::
+S‘
+(
+expÜts
+, 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("CÚ¡ªts").
+ToLoÿlChecked
+(), 
+CÚ¡ªts
+());
+
+85 
+	gNª
+::
+S‘
+(
+expÜts
+, 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("FSEv’ts").
+ToLoÿlChecked
+(), 
+�l
+->
+G‘FunùiÚ
+(
+cÚ‹xt
+).ToLocalChecked());
+
+88 
+NODE_MODULE
+(
+f£
+, 
+FSEv’ts
+::
+In™Ÿlize
+)
+
+	@interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/async.cc
+
+7 
+	$async_´Ýag©e
+(
+uv_async_t
+ *
+async
+) {
+
+8 ià(!
+async
+->
+d©a
+) ;
+
+9 
+FSEv’ts
+ *
+f£
+ = (FSEv’t *)
+async
+->
+d©a
+;
+
+10 
+CFIndex
+ 
+idx
+, 
+út
+;
+
+11 
+f£_ev’t
+ *
+ev’t
+;
+
+12 
+·thbuf
+[1024];
+
+13 cÚ¡ *
+·th±r
+ = 
+NULL
+;
+
+14 
+	`uv_mu‹x_lock
+(&
+f£
+->
+mu‹x
+);
+
+15 
+út
+ = 
+f£
+->
+ev’ts
+.
+	`size
+();
+
+16 
+idx
+=0; idx<
+út
+; idx++) {
+
+17 
+ev’t
+ = 
+f£
+->
+ev’ts
+.
+	`©
+(
+idx
+);
+
+18 ià(
+ev’t
+ =ð
+NULL
+) ;
+
+19 
+·th±r
+ = 
+	`CFSŒšgG‘CSŒšgPŒ
+(
+ev’t
+->
+·th
+, 
+kCFSŒšgEncodšgUTF8
+);
+
+20 ià(!
+·th±r
+è
+	`CFSŒšgG‘CSŒšg
+(
+ev’t
+->
+·th
+, 
+·thbuf
+, 1024, 
+kCFSŒšgEncodšgUTF8
+);
+
+21 
+f£
+->
+	`em™Ev’t
+(
+·th±r
+ ?…©h±¸: 
+·thbuf
+, 
+ev’t
+->
+æags
+,ƒv’t->
+id
+);
+
+22 
+d–‘e
+ 
+ev’t
+;
+
+24 ià(
+út
+>0è
+f£
+->
+ev’ts
+.
+	`þ—r
+();
+
+25 
+	`uv_mu‹x_uÆock
+(&
+f£
+->
+mu‹x
+);
+
+26 
+	}
+}
+
+28 
+	gFSEv’ts
+::
+	$asyncS�¹
+() {
+
+29 ià(
+async
+.
+d©a
+ =ð
+this
+) ;
+
+30 
+async
+.
+d©a
+ = 
+this
+;
+
+31 
+	`uv_async_š™
+(
+	`uv_deçuÉ_loÝ
+(), &
+async
+, (
+uv_async_cb
+è
+async_´Ýag©e
+);
+
+32 
+	}
+}
+
+34 
+	gFSEv’ts
+::
+	$asyncTrigg”
+() {
+
+35 ià(
+async
+.
+d©a
+ !ð
+this
+) ;
+
+36 
+	`uv_async_£nd
+(&
+async
+);
+
+37 
+	}
+}
+
+39 
+	gFSEv’ts
+::
+	$asyncStÝ
+() {
+
+40 ià(
+async
+.
+d©a
+ !ð
+this
+) ;
+
+41 
+async
+.
+d©a
+ = 
+NULL
+;
+
+42 
+	`uv_þo£
+((
+uv_hªdË_t
+ *è&
+async
+, 
+NULL
+);
+
+43 
+	}
+}
+
+	@interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/constants.cc
+
+7 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgNÚe
+
+
+8 
+	#kFSEv’tSŒ—mEv’tFÏgNÚe
+ 0x00000000
+
+	)
+
+11 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+
+
+12 
+	#kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+ 0x00000001
+
+	)
+
+15 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+
+
+16 
+	#kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+ 0x00000002
+
+	)
+
+19 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+
+
+20 
+	#kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+ 0x00000004
+
+	)
+
+23 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+
+
+24 
+	#kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+ 0x00000008
+
+	)
+
+27 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+
+
+28 
+	#kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+ 0x00000010
+
+	)
+
+31 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+
+
+32 
+	#kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+ 0x00000020
+
+	)
+
+35 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgMouÁ
+
+
+36 
+	#kFSEv’tSŒ—mEv’tFÏgMouÁ
+ 0x00000040
+
+	)
+
+39 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+
+
+40 
+	#kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+ 0x00000080
+
+	)
+
+43 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+
+
+44 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+ 0x00000100
+
+	)
+
+47 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+
+
+48 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+ 0x00000200
+
+	)
+
+51 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+
+
+52 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+ 0x00000400
+
+	)
+
+55 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+
+
+56 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+ 0x00000800
+
+	)
+
+59 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+
+
+60 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+ 0x00001000
+
+	)
+
+63 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+
+
+64 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+ 0x00002000
+
+	)
+
+67 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+
+
+68 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+ 0x00004000
+
+	)
+
+71 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+
+
+72 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+ 0x00008000
+
+	)
+
+75 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+
+
+76 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+ 0x00010000
+
+	)
+
+79 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+
+
+80 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+ 0x00020000
+
+	)
+
+83 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+
+
+84 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+ 0x00040000
+
+	)
+
+87 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$CÚ¡ªts
+() {
+
+88 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+ = 
+Nª
+::
+New
+<v8::Object>();
+
+89 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgNÚe").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgNÚe
+));
+
+90 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+));
+
+91 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+));
+
+92 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+));
+
+93 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+));
+
+94 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+));
+
+95 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgRoÙChªged").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+));
+
+96 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgMouÁ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgMouÁ
+));
+
+97 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgUnmouÁ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+));
+
+98 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+));
+
+99 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mRemoved").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+));
+
+100 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+));
+
+101 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mR’amed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+));
+
+102 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mModif›d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+));
+
+103 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+));
+
+104 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+));
+
+105 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+));
+
+106 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsFže").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+));
+
+107 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+));
+
+108 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+));
+
+109  
+objeù
+;
+
+110 
+	}
+}
+
+	@interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/methods.cc
+
+6 
+	gFSEv’ts
+::
+	$em™Ev’t
+(cÚ¡ *
+·th
+, 
+UIÁ32
+ 
+æags
+, 
+UIÁ64
+ 
+id
+) {
+
+7 
+Nª
+::
+HªdËScÝe
+ 
+hªdË_scÝe
+;
+
+8 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+ = 
+	`hªdË
+();
+
+9 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+key
+ = 
+Nª
+::
+New
+<v8::
+SŒšg
+>("hªdËr").
+	`ToLoÿlChecked
+();
+
+10 
+Nª
+::
+C®lback
+ 
+	`hªdËr
+(Nª::
+To
+<
+v8
+::
+FunùiÚ
+>(Nª::
+	`G‘
+(
+objeù
+, 
+key
+).
+	`ToLoÿlChecked
+()).ToLocalChecked());
+
+11 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[] = {
+
+12 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>(
+·th
+).
+	`ToLoÿlChecked
+(),
+
+13 
+Nª
+::
+New
+<
+v8
+::
+Numb”
+>(
+æags
+),
+
+14 
+Nª
+::
+New
+<
+v8
+::
+Numb”
+>(
+id
+)
+
+16 
+hªdËr
+.
+	`C®l
+(3, 
+¬gv
+, &
+async_»sourû
+);
+
+17 
+	}
+}
+
+19 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+New
+) {
+
+20 
+Nª
+::
+Utf8SŒšg
+ 
+	`·th
+(
+šfo
+[0]);
+
+22 
+FSEv’ts
+ *
+f£
+ = 
+Ãw
+ 
+	`FSEv’ts
+(*
+·th
+);
+
+23 
+f£
+->
+	`W¿p
+(
+šfo
+.
+	`This
+());
+
+24 
+Nª
+::
+	`S‘
+(
+šfo
+.
+	`This
+(), Nª::
+New
+<
+v8
+::
+SŒšg
+>("hªdËr").
+	`ToLoÿlChecked
+(), info[1]);
+
+26 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+27 
+	}
+}
+
+29 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+StÝ
+) {
+
+30 
+FSEv’ts
+* 
+f£
+ = 
+Nª
+::
+ObjeùW¿p
+::
+Unw¿p
+<FSEv’ts>(
+šfo
+.
+	`This
+());
+
+32 
+f£
+->
+	`th»adStÝ
+();
+
+33 
+f£
+->
+	`asyncStÝ
+();
+
+35 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+36 
+	}
+}
+
+38 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+S�¹
+) {
+
+39 
+FSEv’ts
+* 
+f£
+ = 
+Nª
+::
+ObjeùW¿p
+::
+Unw¿p
+<FSEv’ts>(
+šfo
+.
+	`This
+());
+
+40 
+f£
+->
+	`asyncS�¹
+();
+
+41 
+f£
+->
+	`th»adS�¹
+();
+
+43 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+44 
+	}
+}
+
+	@interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/storage.cc
+
+6 
+	sf£_ev’t
+ {
+
+7 
+UIÁ64
+ 
+	mid
+;
+
+8 
+UIÁ32
+ 
+	mæags
+;
+
+9 
+CFSŒšgRef
+ 
+	m·th
+;
+
+11 
+f£_ev’t
+(
+CFSŒšgRef
+ 
+ev’tP©h
+, 
+UIÁ32
+ 
+ev’tFÏg
+, 
+UIÁ64
+ 
+ev’tId
+) {
+
+12 
+	mthis
+->
+	m·th
+ = 
+ev’tP©h
+;
+
+13 
+	mthis
+->
+	mæags
+ = 
+ev’tFÏg
+;
+
+14 
+	mthis
+->
+	mid
+ = 
+ev’tId
+;
+
+15 ià(
+	mthis
+->
+	m·th
+ !ð
+NULL
+)
+
+16 
+CFR‘aš
+(
+this
+->
+·th
+);
+
+19 ~
+f£_ev’t
+() {
+
+20 ià(
+	mthis
+->
+	m·th
+ !ð
+NULL
+)
+
+21 
+CFR–—£
+(
+this
+->
+·th
+);
+
+24 
+	m´iv©e
+:
+
+25 
+f£_ev’t
+(const fse_event&);
+
+26 
+	mÝ”©Ü
+=(cÚ¡ 
+f£_ev’t
+&);
+
+	@interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/thread.cc
+
+7 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgNÚe
+
+
+8 
+	#kFSEv’tSŒ—mC»©eFÏgNÚe
+ 0x00000000
+
+	)
+
+11 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+
+
+12 
+	#kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+ 0x00000001
+
+	)
+
+15 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgNoDeãr
+
+
+16 
+	#kFSEv’tSŒ—mC»©eFÏgNoDeãr
+ 0x00000002
+
+	)
+
+19 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+
+
+20 
+	#kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+ 0x00000004
+
+	)
+
+23 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgIgnÜeS–f
+
+
+24 
+	#kFSEv’tSŒ—mC»©eFÏgIgnÜeS–f
+ 0x00000008
+
+	)
+
+27 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+
+
+28 
+	#kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+ 0x00000010
+
+	)
+
+31 
+	gFSEv’ts
+::
+	$th»adS�¹
+() {
+
+32 ià(
+th»adloÝ
+) ;
+
+33 ià(
+	`uv_th»ad_ü—‹
+(&
+th»ad
+, &
+FSEv’ts
+::
+th»adRun
+, 
+this
+)è
+	`abÜt
+();
+
+34 
+	}
+}
+
+36 
+	$HªdËSŒ—mEv’ts
+(
+CÚ¡FSEv’tSŒ—mRef
+ 
+¡»am
+, *
+ùx
+, 
+size_t
+ 
+numEv’ts
+, *
+ev’tP©hs
+, cÚ¡ 
+FSEv’tSŒ—mEv’tFÏgs
+ 
+ev’tFÏgs
+[], cÚ¡ 
+FSEv’tSŒ—mEv’tId
+ 
+ev’tIds
+[]) {
+
+37 
+FSEv’ts
+ * 
+f£
+ = (FSEv’t *)
+ùx
+;
+
+38 
+size_t
+ 
+idx
+;
+
+39 
+	`uv_mu‹x_lock
+(&
+f£
+->
+mu‹x
+);
+
+40 
+idx
+=0; idx < 
+numEv’ts
+; idx++) {
+
+41 
+f£_ev’t
+ *
+ev’t
+ = 
+Ãw
+ 
+	`f£_ev’t
+(
+
+42 (
+CFSŒšgRef
+)
+	`CFA¼ayG‘V®ueAtIndex
+((
+CFA¼ayRef
+)
+ev’tP©hs
+, 
+idx
+),
+
+43 
+ev’tFÏgs
+[
+idx
+],
+
+44 
+ev’tIds
+[
+idx
+]
+
+46 
+f£
+->
+ev’ts
+.
+	`push_back
+(
+ev’t
+);
+
+48 
+f£
+->
+	`asyncTrigg”
+();
+
+49 
+	`uv_mu‹x_uÆock
+(&
+f£
+->
+mu‹x
+);
+
+50 
+	}
+}
+
+52 
+	gFSEv’ts
+::
+	$th»adRun
+(*
+ùx
+) {
+
+53 
+FSEv’ts
+ *
+f£
+ = (FSEv’ts*)
+ùx
+;
+
+54 
+FSEv’tSŒ—mCÚ‹xt
+ 
+cÚ‹xt
+ = { 0, 
+ùx
+, 
+NULL
+, NULL, NULL };
+
+55 
+f£
+->
+th»adloÝ
+ = 
+	`CFRunLoÝG‘Cu¼’t
+();
+
+56 
+FSEv’tSŒ—mRef
+ 
+¡»am
+ = 
+	`FSEv’tSŒ—mC»©e
+(
+NULL
+, &
+HªdËSŒ—mEv’ts
+, &
+cÚ‹xt
+, 
+f£
+->
+·ths
+, 
+kFSEv’tSŒ—mEv’tIdSšûNow
+, (
+CFAbsÞu‹Time
+è0.1, 
+kFSEv’tSŒ—mC»©eFÏgNÚe
+ | 
+kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+ | 
+kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+ | 
+kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+);
+
+57 
+	`FSEv’tSŒ—mScheduËW™hRunLoÝ
+(
+¡»am
+, 
+f£
+->
+th»adloÝ
+, 
+kCFRunLoÝDeçuÉMode
+);
+
+58 
+	`FSEv’tSŒ—mS�¹
+(
+¡»am
+);
+
+59 
+	`CFRunLoÝRun
+();
+
+60 
+	`FSEv’tSŒ—mStÝ
+(
+¡»am
+);
+
+61 
+	`FSEv’tSŒ—mUnscheduËFromRunLoÝ
+(
+¡»am
+, 
+f£
+->
+th»adloÝ
+, 
+kCFRunLoÝDeçuÉMode
+);
+
+62 
+	`FSEv’tSŒ—mInv®id©e
+(
+¡»am
+);
+
+63 
+	`FSEv’tSŒ—mR–—£
+(
+¡»am
+);
+
+64 
+f£
+->
+th»adloÝ
+ = 
+NULL
+;
+
+65 
+	}
+}
+
+67 
+	gFSEv’ts
+::
+	$th»adStÝ
+() {
+
+68 ià(!
+th»adloÝ
+) ;
+
+69 
+	`CFRunLoÝStÝ
+(
+th»adloÝ
+);
+
+70 ià(
+	`uv_th»ad_još
+(&
+th»ad
+)è
+	`abÜt
+();
+
+71 
+	}
+}
+
+	@interface/node_modules/webpack-dev-server/node_modules/fsevents/fsevents.cc
+
+6 
+	~"Çn.h
+"
+
+7 
+	~"uv.h
+"
+
+8 
+	~"v8.h
+"
+
+9 
+	~"CÜeFound©iÚ/CÜeFound©iÚ.h
+"
+
+10 
+	~"CÜeS”viûs/CÜeS”viûs.h
+"
+
+11 
+	~<io¡»am
+>
+
+12 
+	~<veùÜ
+>
+
+14 
+	~"¤c/¡Üage.cc
+"
+
+15 
+Çme¥aû
+ 
+	gf£
+ {
+
+16 þas 
+	cFSEv’ts
+ : 
+public
+ 
+Nª
+::
+ObjeùW¿p
+ {
+
+17 
+public
+:
+
+18 
+ex¶ic™
+ 
+FSEv’ts
+(cÚ¡ *
+·th
+);
+
+19 ~
+FSEv’ts
+();
+
+21 
+uv_mu‹x_t
+ 
+	gmu‹x
+;
+
+24 
+uv_async_t
+ 
+	gasync
+;
+
+25 
+asyncS�¹
+();
+
+26 
+asyncTrigg”
+();
+
+27 
+asyncStÝ
+();
+
+30 
+uv_th»ad_t
+ 
+	gth»ad
+;
+
+31 
+CFRunLoÝRef
+ 
+	gth»adloÝ
+;
+
+32 
+th»adS�¹
+();
+
+33 
+th»adRun
+(*
+ùx
+);
+
+34 
+th»adStÝ
+();
+
+37 
+	gNª
+::
+AsyncResourû
+ 
+async_»sourû
+;
+
+38 
+em™Ev’t
+(cÚ¡ *
+·th
+, 
+UIÁ32
+ 
+æags
+, 
+UIÁ64
+ 
+id
+);
+
+41 
+CFA¼ayRef
+ 
+	g·ths
+;
+
+42 
+	g¡d
+::
+veùÜ
+<
+f£_ev’t
+*> 
+ev’ts
+;
+
+43 
+In™Ÿlize
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+expÜts
+);
+
+46 
+NAN_METHOD
+(
+New
+);
+
+47 
+NAN_METHOD
+(
+StÝ
+);
+
+48 
+NAN_METHOD
+(
+S�¹
+);
+
+53 
+usšg
+ 
+Çme¥aû
+ 
+	gf£
+;
+
+55 
+	gFSEv’ts
+::
+	$FSEv’ts
+(cÚ¡ *
+·th
+)
+
+56 : 
+	`async_»sourû
+("fsevents:FSEvents") {
+
+57 
+CFSŒšgRef
+ 
+dœs
+[] = { 
+	`CFSŒšgC»©eW™hCSŒšg
+(
+NULL
+, 
+·th
+, 
+kCFSŒšgEncodšgUTF8
+) };
+
+58 
+·ths
+ = 
+	`CFA¼ayC»©e
+(
+NULL
+, (cÚ¡ **)&
+dœs
+, 1, NULL);
+
+59 
+th»adloÝ
+ = 
+NULL
+;
+
+60 ià(
+	`uv_mu‹x_š™
+(&
+mu‹x
+)è
+	`abÜt
+();
+
+61 
+	}
+}
+
+62 
+	gFSEv’ts
+::~
+	$FSEv’ts
+() {
+
+63 
+	`CFR–—£
+(
+·ths
+);
+
+64 
+	`uv_mu‹x_de¡roy
+(&
+mu‹x
+);
+
+65 
+	}
+}
+
+67 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+
+
+68 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+ 0x00000010
+
+	)
+
+71 
+	~"¤c/async.cc
+"
+
+72 
+	~"¤c/th»ad.cc
+"
+
+73 
+	~"¤c/cÚ¡ªts.cc
+"
+
+74 
+	~"¤c/m‘hods.cc
+"
+
+76 
+	gFSEv’ts
+::
+In™Ÿlize
+(
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+expÜts
+) {
+
+77 
+v8
+::
+IsÞ©e
+* 
+isÞ©e
+ = 
+expÜts
+->
+G‘IsÞ©e
+();
+
+78 
+	gv8
+::
+Loÿl
+<
+v8
+::
+CÚ‹xt
+> 
+cÚ‹xt
+ = 
+isÞ©e
+->
+G‘Cu¼’tCÚ‹xt
+();
+
+79 
+	gv8
+::
+Loÿl
+<
+v8
+::
+FunùiÚTem¶©e
+> 
+�l
+ = 
+Nª
+::
+New
+<v8::FunùiÚTem¶©e>(
+FSEv’ts
+::New);
+
+80 
+	g�l
+->
+S‘CÏssName
+(
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("FSEv’ts").
+ToLoÿlChecked
+());
+
+81 
+	g�l
+->
+In¡ªûTem¶©e
+()->
+S‘IÁ”ÇlF›ldCouÁ
+(1);
+
+82 
+	gNª
+::
+S‘PrÙÙy³Tem¶©e
+(
+�l
+, "¡¬t", 
+Nª
+::
+New
+<
+v8
+::
+FunùiÚTem¶©e
+>(
+FSEv’ts
+::
+S�¹
+));
+
+83 
+	gNª
+::
+S‘PrÙÙy³Tem¶©e
+(
+�l
+, "¡Ý", 
+Nª
+::
+New
+<
+v8
+::
+FunùiÚTem¶©e
+>(
+FSEv’ts
+::
+StÝ
+));
+
+84 
+	gNª
+::
+S‘
+(
+expÜts
+, 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("CÚ¡ªts").
+ToLoÿlChecked
+(), 
+CÚ¡ªts
+());
+
+85 
+	gNª
+::
+S‘
+(
+expÜts
+, 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>("FSEv’ts").
+ToLoÿlChecked
+(), 
+�l
+->
+G‘FunùiÚ
+(
+cÚ‹xt
+).ToLocalChecked());
+
+88 
+NODE_MODULE
+(
+f£
+, 
+FSEv’ts
+::
+In™Ÿlize
+)
+
+	@interface/node_modules/webpack-dev-server/node_modules/fsevents/src/async.cc
+
+7 
+	$async_´Ýag©e
+(
+uv_async_t
+ *
+async
+) {
+
+8 ià(!
+async
+->
+d©a
+) ;
+
+9 
+FSEv’ts
+ *
+f£
+ = (FSEv’t *)
+async
+->
+d©a
+;
+
+10 
+CFIndex
+ 
+idx
+, 
+út
+;
+
+11 
+f£_ev’t
+ *
+ev’t
+;
+
+12 
+·thbuf
+[1024];
+
+13 cÚ¡ *
+·th±r
+ = 
+NULL
+;
+
+14 
+	`uv_mu‹x_lock
+(&
+f£
+->
+mu‹x
+);
+
+15 
+út
+ = 
+f£
+->
+ev’ts
+.
+	`size
+();
+
+16 
+idx
+=0; idx<
+út
+; idx++) {
+
+17 
+ev’t
+ = 
+f£
+->
+ev’ts
+.
+	`©
+(
+idx
+);
+
+18 ià(
+ev’t
+ =ð
+NULL
+) ;
+
+19 
+·th±r
+ = 
+	`CFSŒšgG‘CSŒšgPŒ
+(
+ev’t
+->
+·th
+, 
+kCFSŒšgEncodšgUTF8
+);
+
+20 ià(!
+·th±r
+è
+	`CFSŒšgG‘CSŒšg
+(
+ev’t
+->
+·th
+, 
+·thbuf
+, 1024, 
+kCFSŒšgEncodšgUTF8
+);
+
+21 
+f£
+->
+	`em™Ev’t
+(
+·th±r
+ ?…©h±¸: 
+·thbuf
+, 
+ev’t
+->
+æags
+,ƒv’t->
+id
+);
+
+22 
+d–‘e
+ 
+ev’t
+;
+
+24 ià(
+út
+>0è
+f£
+->
+ev’ts
+.
+	`þ—r
+();
+
+25 
+	`uv_mu‹x_uÆock
+(&
+f£
+->
+mu‹x
+);
+
+26 
+	}
+}
+
+28 
+	gFSEv’ts
+::
+	$asyncS�¹
+() {
+
+29 ià(
+async
+.
+d©a
+ =ð
+this
+) ;
+
+30 
+async
+.
+d©a
+ = 
+this
+;
+
+31 
+	`uv_async_š™
+(
+	`uv_deçuÉ_loÝ
+(), &
+async
+, (
+uv_async_cb
+è
+async_´Ýag©e
+);
+
+32 
+	}
+}
+
+34 
+	gFSEv’ts
+::
+	$asyncTrigg”
+() {
+
+35 ià(
+async
+.
+d©a
+ !ð
+this
+) ;
+
+36 
+	`uv_async_£nd
+(&
+async
+);
+
+37 
+	}
+}
+
+39 
+	gFSEv’ts
+::
+	$asyncStÝ
+() {
+
+40 ià(
+async
+.
+d©a
+ !ð
+this
+) ;
+
+41 
+async
+.
+d©a
+ = 
+NULL
+;
+
+42 
+	`uv_þo£
+((
+uv_hªdË_t
+ *è&
+async
+, 
+NULL
+);
+
+43 
+	}
+}
+
+	@interface/node_modules/webpack-dev-server/node_modules/fsevents/src/constants.cc
+
+7 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgNÚe
+
+
+8 
+	#kFSEv’tSŒ—mEv’tFÏgNÚe
+ 0x00000000
+
+	)
+
+11 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+
+
+12 
+	#kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+ 0x00000001
+
+	)
+
+15 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+
+
+16 
+	#kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+ 0x00000002
+
+	)
+
+19 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+
+
+20 
+	#kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+ 0x00000004
+
+	)
+
+23 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+
+
+24 
+	#kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+ 0x00000008
+
+	)
+
+27 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+
+
+28 
+	#kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+ 0x00000010
+
+	)
+
+31 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+
+
+32 
+	#kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+ 0x00000020
+
+	)
+
+35 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgMouÁ
+
+
+36 
+	#kFSEv’tSŒ—mEv’tFÏgMouÁ
+ 0x00000040
+
+	)
+
+39 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+
+
+40 
+	#kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+ 0x00000080
+
+	)
+
+43 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+
+
+44 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+ 0x00000100
+
+	)
+
+47 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+
+
+48 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+ 0x00000200
+
+	)
+
+51 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+
+
+52 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+ 0x00000400
+
+	)
+
+55 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+
+
+56 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+ 0x00000800
+
+	)
+
+59 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+
+
+60 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+ 0x00001000
+
+	)
+
+63 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+
+
+64 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+ 0x00002000
+
+	)
+
+67 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+
+
+68 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+ 0x00004000
+
+	)
+
+71 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+
+
+72 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+ 0x00008000
+
+	)
+
+75 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+
+
+76 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+ 0x00010000
+
+	)
+
+79 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+
+
+80 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+ 0x00020000
+
+	)
+
+83 #iâdeà
+kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+
+
+84 
+	#kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+ 0x00040000
+
+	)
+
+87 
+	gv8
+::
+Loÿl
+<
+v8
+::
+Objeù
+> 
+	$CÚ¡ªts
+() {
+
+88 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+ = 
+Nª
+::
+New
+<v8::Object>();
+
+89 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgNÚe").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgNÚe
+));
+
+90 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgMu¡SÿnSubDœs
+));
+
+91 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgU£rDrÝ³d
+));
+
+92 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgK”ÃlDrÝ³d
+));
+
+93 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgEv’tIdsW¿µed
+));
+
+94 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgHi¡ÜyDÚe
+));
+
+95 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgRoÙChªged").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgRoÙChªged
+));
+
+96 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgMouÁ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgMouÁ
+));
+
+97 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgUnmouÁ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgUnmouÁ
+));
+
+98 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mC»©ed
+));
+
+99 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mRemoved").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mRemoved
+));
+
+100 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mInodeM‘aMod
+));
+
+101 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mR’amed").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mR’amed
+));
+
+102 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mModif›d").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mModif›d
+));
+
+103 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mFšd”InfoMod
+));
+
+104 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mChªgeOwÃr
+));
+
+105 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mX©ŒMod
+));
+
+106 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsFže").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsFže
+));
+
+107 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsDœ
+));
+
+108 
+Nª
+::
+	`S‘
+(
+objeù
+, Nª::
+New
+<
+v8
+::
+SŒšg
+>("kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk").
+	`ToLoÿlChecked
+(), Nª::New<v8::
+IÁeg”
+>(
+kFSEv’tSŒ—mEv’tFÏgI‹mIsSymlšk
+));
+
+109  
+objeù
+;
+
+110 
+	}
+}
+
+	@interface/node_modules/webpack-dev-server/node_modules/fsevents/src/methods.cc
+
+6 
+	gFSEv’ts
+::
+	$em™Ev’t
+(cÚ¡ *
+·th
+, 
+UIÁ32
+ 
+æags
+, 
+UIÁ64
+ 
+id
+) {
+
+7 
+Nª
+::
+HªdËScÝe
+ 
+hªdË_scÝe
+;
+
+8 
+v8
+::
+Loÿl
+<v8::
+Objeù
+> 
+objeù
+ = 
+	`hªdË
+();
+
+9 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+key
+ = 
+Nª
+::
+New
+<v8::
+SŒšg
+>("hªdËr").
+	`ToLoÿlChecked
+();
+
+10 
+Nª
+::
+C®lback
+ 
+	`hªdËr
+(Nª::
+To
+<
+v8
+::
+FunùiÚ
+>(Nª::
+	`G‘
+(
+objeù
+, 
+key
+).
+	`ToLoÿlChecked
+()).ToLocalChecked());
+
+11 
+v8
+::
+Loÿl
+<v8::
+V®ue
+> 
+¬gv
+[] = {
+
+12 
+Nª
+::
+New
+<
+v8
+::
+SŒšg
+>(
+·th
+).
+	`ToLoÿlChecked
+(),
+
+13 
+Nª
+::
+New
+<
+v8
+::
+Numb”
+>(
+æags
+),
+
+14 
+Nª
+::
+New
+<
+v8
+::
+Numb”
+>(
+id
+)
+
+16 
+hªdËr
+.
+	`C®l
+(3, 
+¬gv
+, &
+async_»sourû
+);
+
+17 
+	}
+}
+
+19 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+New
+) {
+
+20 
+Nª
+::
+Utf8SŒšg
+ 
+	`·th
+(
+šfo
+[0]);
+
+22 
+FSEv’ts
+ *
+f£
+ = 
+Ãw
+ 
+	`FSEv’ts
+(*
+·th
+);
+
+23 
+f£
+->
+	`W¿p
+(
+šfo
+.
+	`This
+());
+
+24 
+Nª
+::
+	`S‘
+(
+šfo
+.
+	`This
+(), Nª::
+New
+<
+v8
+::
+SŒšg
+>("hªdËr").
+	`ToLoÿlChecked
+(), info[1]);
+
+26 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+27 
+	}
+}
+
+29 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+StÝ
+) {
+
+30 
+FSEv’ts
+* 
+f£
+ = 
+Nª
+::
+ObjeùW¿p
+::
+Unw¿p
+<FSEv’ts>(
+šfo
+.
+	`This
+());
+
+32 
+f£
+->
+	`th»adStÝ
+();
+
+33 
+f£
+->
+	`asyncStÝ
+();
+
+35 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+36 
+	}
+}
+
+38 
+	$NAN_METHOD
+(
+FSEv’ts
+::
+S�¹
+) {
+
+39 
+FSEv’ts
+* 
+f£
+ = 
+Nª
+::
+ObjeùW¿p
+::
+Unw¿p
+<FSEv’ts>(
+šfo
+.
+	`This
+());
+
+40 
+f£
+->
+	`asyncS�¹
+();
+
+41 
+f£
+->
+	`th»adS�¹
+();
+
+43 
+šfo
+.
+	`G‘R‘uºV®ue
+().
+	`S‘
+(šfo.
+	`This
+());
+
+44 
+	}
+}
+
+	@interface/node_modules/webpack-dev-server/node_modules/fsevents/src/storage.cc
+
+6 
+	sf£_ev’t
+ {
+
+7 
+UIÁ64
+ 
+	mid
+;
+
+8 
+UIÁ32
+ 
+	mæags
+;
+
+9 
+CFSŒšgRef
+ 
+	m·th
+;
+
+11 
+f£_ev’t
+(
+CFSŒšgRef
+ 
+ev’tP©h
+, 
+UIÁ32
+ 
+ev’tFÏg
+, 
+UIÁ64
+ 
+ev’tId
+) {
+
+12 
+	mthis
+->
+	m·th
+ = 
+ev’tP©h
+;
+
+13 
+	mthis
+->
+	mæags
+ = 
+ev’tFÏg
+;
+
+14 
+	mthis
+->
+	mid
+ = 
+ev’tId
+;
+
+15 ià(
+	mthis
+->
+	m·th
+ !ð
+NULL
+)
+
+16 
+CFR‘aš
+(
+this
+->
+·th
+);
+
+19 ~
+f£_ev’t
+() {
+
+20 ià(
+	mthis
+->
+	m·th
+ !ð
+NULL
+)
+
+21 
+CFR–—£
+(
+this
+->
+·th
+);
+
+24 
+	m´iv©e
+:
+
+25 
+f£_ev’t
+(const fse_event&);
+
+26 
+	mÝ”©Ü
+=(cÚ¡ 
+f£_ev’t
+&);
+
+	@interface/node_modules/webpack-dev-server/node_modules/fsevents/src/thread.cc
+
+7 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgNÚe
+
+
+8 
+	#kFSEv’tSŒ—mC»©eFÏgNÚe
+ 0x00000000
+
+	)
+
+11 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+
+
+12 
+	#kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+ 0x00000001
+
+	)
+
+15 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgNoDeãr
+
+
+16 
+	#kFSEv’tSŒ—mC»©eFÏgNoDeãr
+ 0x00000002
+
+	)
+
+19 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+
+
+20 
+	#kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+ 0x00000004
+
+	)
+
+23 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgIgnÜeS–f
+
+
+24 
+	#kFSEv’tSŒ—mC»©eFÏgIgnÜeS–f
+ 0x00000008
+
+	)
+
+27 #iâdeà
+kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+
+
+28 
+	#kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+ 0x00000010
+
+	)
+
+31 
+	gFSEv’ts
+::
+	$th»adS�¹
+() {
+
+32 ià(
+th»adloÝ
+) ;
+
+33 ià(
+	`uv_th»ad_ü—‹
+(&
+th»ad
+, &
+FSEv’ts
+::
+th»adRun
+, 
+this
+)è
+	`abÜt
+();
+
+34 
+	}
+}
+
+36 
+	$HªdËSŒ—mEv’ts
+(
+CÚ¡FSEv’tSŒ—mRef
+ 
+¡»am
+, *
+ùx
+, 
+size_t
+ 
+numEv’ts
+, *
+ev’tP©hs
+, cÚ¡ 
+FSEv’tSŒ—mEv’tFÏgs
+ 
+ev’tFÏgs
+[], cÚ¡ 
+FSEv’tSŒ—mEv’tId
+ 
+ev’tIds
+[]) {
+
+37 
+FSEv’ts
+ * 
+f£
+ = (FSEv’t *)
+ùx
+;
+
+38 
+size_t
+ 
+idx
+;
+
+39 
+	`uv_mu‹x_lock
+(&
+f£
+->
+mu‹x
+);
+
+40 
+idx
+=0; idx < 
+numEv’ts
+; idx++) {
+
+41 
+f£_ev’t
+ *
+ev’t
+ = 
+Ãw
+ 
+	`f£_ev’t
+(
+
+42 (
+CFSŒšgRef
+)
+	`CFA¼ayG‘V®ueAtIndex
+((
+CFA¼ayRef
+)
+ev’tP©hs
+, 
+idx
+),
+
+43 
+ev’tFÏgs
+[
+idx
+],
+
+44 
+ev’tIds
+[
+idx
+]
+
+46 
+f£
+->
+ev’ts
+.
+	`push_back
+(
+ev’t
+);
+
+48 
+f£
+->
+	`asyncTrigg”
+();
+
+49 
+	`uv_mu‹x_uÆock
+(&
+f£
+->
+mu‹x
+);
+
+50 
+	}
+}
+
+52 
+	gFSEv’ts
+::
+	$th»adRun
+(*
+ùx
+) {
+
+53 
+FSEv’ts
+ *
+f£
+ = (FSEv’ts*)
+ùx
+;
+
+54 
+FSEv’tSŒ—mCÚ‹xt
+ 
+cÚ‹xt
+ = { 0, 
+ùx
+, 
+NULL
+, NULL, NULL };
+
+55 
+f£
+->
+th»adloÝ
+ = 
+	`CFRunLoÝG‘Cu¼’t
+();
+
+56 
+FSEv’tSŒ—mRef
+ 
+¡»am
+ = 
+	`FSEv’tSŒ—mC»©e
+(
+NULL
+, &
+HªdËSŒ—mEv’ts
+, &
+cÚ‹xt
+, 
+f£
+->
+·ths
+, 
+kFSEv’tSŒ—mEv’tIdSšûNow
+, (
+CFAbsÞu‹Time
+è0.1, 
+kFSEv’tSŒ—mC»©eFÏgNÚe
+ | 
+kFSEv’tSŒ—mC»©eFÏgW©chRoÙ
+ | 
+kFSEv’tSŒ—mC»©eFÏgFžeEv’ts
+ | 
+kFSEv’tSŒ—mC»©eFÏgU£CFTy³s
+);
+
+57 
+	`FSEv’tSŒ—mScheduËW™hRunLoÝ
+(
+¡»am
+, 
+f£
+->
+th»adloÝ
+, 
+kCFRunLoÝDeçuÉMode
+);
+
+58 
+	`FSEv’tSŒ—mS�¹
+(
+¡»am
+);
+
+59 
+	`CFRunLoÝRun
+();
+
+60 
+	`FSEv’tSŒ—mStÝ
+(
+¡»am
+);
+
+61 
+	`FSEv’tSŒ—mUnscheduËFromRunLoÝ
+(
+¡»am
+, 
+f£
+->
+th»adloÝ
+, 
+kCFRunLoÝDeçuÉMode
+);
+
+62 
+	`FSEv’tSŒ—mInv®id©e
+(
+¡»am
+);
+
+63 
+	`FSEv’tSŒ—mR–—£
+(
+¡»am
+);
+
+64 
+f£
+->
+th»adloÝ
+ = 
+NULL
+;
+
+65 
+	}
+}
+
+67 
+	gFSEv’ts
+::
+	$th»adStÝ
+() {
+
+68 ià(!
+th»adloÝ
+) ;
+
+69 
+	`CFRunLoÝStÝ
+(
+th»adloÝ
+);
+
+70 ià(
+	`uv_th»ad_još
+(&
+th»ad
+)è
+	`abÜt
+();
+
+71 
+	}
+}
+
+	@interface/node_modules/zlib/src/node-zlib.cc
+
+1 
+	~<v8.h
+>
+
+2 
+	~<node.h
+>
+
+3 
+	~<node_bufãr.h
+>
+
+4 
+	~<node_v”siÚ.h
+>
+
+6 
+	~<zlib.h
+>
+
+7 
+	~<c¡ršg
+>
+
+8 
+	~<c¡dlib
+>
+
+10 
+usšg
+ 
+Çme¥aû
+ 
+	gv8
+;
+
+11 
+usšg
+ 
+Çme¥aû
+ 
+	gnode
+;
+
+14 #ià
+NODE_VERSION_AT_LEAST
+(0,3,0)
+
+15 
+	#Bufãr_D©a
+ 
+Bufãr
+::
+D©a
+
+
+	)
+
+16 
+	#Bufãr_L’gth
+ 
+Bufãr
+::
+L’gth
+
+
+	)
+
+17 
+	#Bufãr_New
+ 
+Bufãr
+::
+New
+
+
+	)
+
+19 
+šlše
+ * 
+Bufãr_D©a
+(
+HªdË
+<
+Objeù
+> 
+obj
+) {
+
+20  (
+	gObjeùW¿p
+::
+Unw¿p
+<
+Bufãr
+>(
+obj
+))->
+d©a
+();
+
+22 
+šlše
+ 
+size_t
+ 
+Bufãr_L’gth
+(
+HªdË
+<
+Objeù
+> 
+obj
+) {
+
+23  (
+	gObjeùW¿p
+::
+Unw¿p
+<
+Bufãr
+>(
+obj
+))->
+Ëngth
+();
+
+25 
+šlše
+ 
+Bufãr
+* 
+	$Bufãr_New
+(* 
+d©a
+, 
+size_t
+ 
+Ëngth
+) {
+
+26 
+Bufãr
+* 
+bufãr
+ = Bufãr::
+	`New
+(
+Ëngth
+);
+
+27 
+	`memýy
+(
+bufãr
+->
+	`d©a
+(), 
+d©a
+, 
+Ëngth
+);
+
+28  
+bufãr
+;
+
+29 
+	}
+}
+
+33 
+z_¡»am
+ 
+	gdeæ©e_s
+;
+
+34 
+z_¡»am
+ 
+	gšæ©e_s
+;
+
+36 
+šlše
+ 
+	gHªdË
+<
+	gV®ue
+> 
+	$ZLib_”rÜ
+(cÚ¡ * 
+msg
+ = 
+NULL
+) {
+
+37  
+	`ThrowExû±iÚ
+(
+Exû±iÚ
+::
+	`E¼Ü
+(
+
+38 
+SŒšg
+::
+	`New
+(
+msg
+ ? msg : "Unknown Error")));
+
+39 
+	}
+}
+
+41 
+	#ZLib_Xæ©e
+(
+x
+, 
+çùÜ
+) \
+
+42 
+HªdË
+<
+V®ue
+> 
+ZLib_
+##
+x
+##
+	`æ©e
+(cÚ¡ 
+Argum’ts
+& 
+¬gs
+) { \
+
+43 
+HªdËScÝe
+ 
+scÝe
+; \
+
+45 ià(
+¬gs
+.
+	`L’gth
+(è< 1 || !
+Bufãr
+::
+	`HasIn¡ªû
+(args[0])) { \
+
+46  
+	`ZLib_”rÜ
+("Expected Buffer‡s first‡rgument"); \
+
+49 ià((
+x
+##
+	`æ©eRe£t
+(&x##
+æ©e_s
+)è!ð
+Z_OK
+) { \
+
+50 
+	`as£¹
+((
+çl£
+, "ZLib stream is beyond„epair")); \
+
+53 
+Loÿl
+<
+Objeù
+> 
+šput
+ = 
+¬gs
+[0]->
+	`ToObjeù
+(); \
+
+54 
+x
+##
+æ©e_s
+.
+Ãxt_š
+ = (
+By‹f
+*)
+	`Bufãr_D©a
+(
+šput
+); \
+
+55 
+Ëngth
+ = 
+x
+##
+æ©e_s
+.
+avaž_š
+ = 
+	`Bufãr_L’gth
+(
+šput
+); \
+
+57 
+»t
+; \
+
+58 * 
+»suÉ
+ = 
+NULL
+; \
+
+60 
+com´es£d
+ = 0; \
+
+62 
+»suÉ
+ = (*)
+	`»®loc
+ÔesuÉ, 
+com´es£d
+ + 
+çùÜ
+ * 
+Ëngth
+); \
+
+63 ià(!
+»suÉ
+è 
+	`ZLib_”rÜ
+("Could‚ot‡llocate memory"); \
+
+65 
+x
+##
+æ©e_s
+.
+avaž_out
+ = 
+çùÜ
+ * 
+Ëngth
+; \
+
+66 
+x
+##
+æ©e_s
+.
+Ãxt_out
+ = (
+By‹f
+*)
+»suÉ
+ + 
+com´es£d
+; \
+
+68 
+»t
+ = 
+x
+##
+	`æ©e
+(&x##
+æ©e_s
+, 
+Z_FINISH
+); \
+
+69 ià(
+»t
+ !ð
+Z_STREAM_END
+ &&„‘ !ð
+Z_OK
+ &&„‘ !ð
+Z_BUF_ERROR
+) { \
+
+70 
+	`ä“
+(
+»suÉ
+); \
+
+71  
+	`ZLib_”rÜ
+(
+x
+##
+æ©e_s
+.
+msg
+); \
+
+74 
+com´es£d
+ +ð(
+çùÜ
+ * 
+Ëngth
+ - 
+x
+##
+æ©e_s
+.
+avaž_out
+); \
+
+75 } 
+x
+##
+æ©e_s
+.
+avaž_out
+ == 0); \
+
+77 
+Bufãr
+* 
+ou�ut
+ = 
+	`Bufãr_New
+(
+»suÉ
+, 
+com´es£d
+); \
+
+78 
+	`ä“
+(
+»suÉ
+); \
+
+79  
+scÝe
+.
+	`Clo£
+(
+Loÿl
+<
+V®ue
+>::
+	`New
+(
+ou�ut
+->
+hªdË_
+)); \
+
+80 }
+
+	)
+
+82 
+ZLib_Xæ©e
+(
+de
+, 1);
+
+83 
+ZLib_Xæ©e
+(
+š
+, 2);
+
+85 
"C" 
+š™
+ (
+HªdË
+<
+Objeù
+> 
+�rg‘
+) {
+
+86 
+deæ©e_s
+.
+z®loc
+ = 
+šæ©e_s
+.z®loøð
+Z_NULL
+;
+
+87 
+deæ©e_s
+.
+zä“
+ = 
+šæ©e_s
+.zä“ = 
+Z_NULL
+;
+
+88 
+deæ©e_s
+.
+Ýaque
+ = 
+šæ©e_s
+.Ýaqu�ð
+Z_NULL
+;
+
+90 
+deæ©eIn™
+(&
+deæ©e_s
+, 
+Z_DEFAULT_COMPRESSION
+);
+
+91 
+šæ©eIn™
+(&
+šæ©e_s
+);
+
+93 
+NODE_SET_METHOD
+(
+�rg‘
+, "deæ©e", 
+ZLib_deæ©e
+);
+
+94 
+NODE_SET_METHOD
+(
+�rg‘
+, "šæ©e", 
+ZLib_šæ©e
+);
+
+	@lib/ESPAsyncWebServer/AsyncEventSource.cpp
+
+20 
+	~"Ardušo.h
+"
+
+21 
+	~"AsyncEv’tSourû.h
+"
+
+23 
+SŒšg
+ 
+	$g’”©eEv’tMes§ge
+(cÚ¡ *
+mes§ge
+, cÚ¡ *
+ev’t
+, 
+ušt32_t
+ 
+id
+, ušt32_ˆ
+»cÚÃù
+){
+
+24 
+SŒšg
+ 
+ev
+;
+
+26 if(
+»cÚÃù
+){
+
+27 
+ev
+ +ð
+	`F
+("retry: ");
+
+28 
+ev
+ +ð
+»cÚÃù
+;
+
+29 
+ev
+ +ð
+	`F
+("\r\n");
+
+32 if(
+id
+){
+
+33 
+ev
+ +ð
+	`F
+("id: ");
+
+34 
+ev
+ +ð
+	`SŒšg
+(
+id
+);
+
+35 
+ev
+ +ð
+	`F
+("\r\n");
+
+38 if(
+ev’t
+ !ð
+NULL
+){
+
+39 
+ev
+ +ð
+	`F
+("event: ");
+
+40 
+ev
+ +ð
+	`SŒšg
+(
+ev’t
+);
+
+41 
+ev
+ +ð
+	`F
+("\r\n");
+
+44 if(
+mes§ge
+ !ð
+NULL
+){
+
+45 
+size_t
+ 
+mes§geL’
+ = 
+	`¡¾’
+(
+mes§ge
+);
+
+46 * 
+lšeS�¹
+ = (*)
+mes§ge
+;
+
+47 * 
+lšeEnd
+;
+
+49 * 
+ÃxtN
+ = 
+	`¡rchr
+(
+lšeS�¹
+, '\n');
+
+50 * 
+ÃxtR
+ = 
+	`¡rchr
+(
+lšeS�¹
+, '\r');
+
+51 if(
+ÃxtN
+ =ð
+NULL
+ && 
+ÃxtR
+ == NULL){
+
+52 
+size_t
+ 
+Î’
+ = ((*)
+mes§ge
+ + 
+mes§geL’
+è- 
+lšeS�¹
+;
+
+53 * 
+ld©a
+ = (*)
+	`m®loc
+(
+Î’
++1);
+
+54 if(
+ld©a
+ !ð
+NULL
+){
+
+55 
+	`memýy
+(
+ld©a
+, 
+lšeS�¹
+, 
+Î’
+);
+
+56 
+ld©a
+[
+Î’
+] = 0;
+
+57 
+ev
+ +ð
+	`F
+("data: ");
+
+58 
+ev
+ +ð
+ld©a
+;
+
+59 
+ev
+ +ð
+	`F
+("\r\n\r\n");
+
+60 
+	`ä“
+(
+ld©a
+);
+
+62 
+lšeS�¹
+ = (*)
+mes§ge
+ + 
+mes§geL’
+;
+
+64 * 
+ÃxtLše
+ = 
+NULL
+;
+
+65 if(
+ÃxtN
+ !ð
+NULL
+ && 
+ÃxtR
+ != NULL){
+
+66 if(
+ÃxtR
+ < 
+ÃxtN
+){
+
+67 
+lšeEnd
+ = 
+ÃxtR
+;
+
+68 if(
+ÃxtN
+ =ð(
+ÃxtR
+ + 1))
+
+69 
+ÃxtLše
+ = 
+ÃxtN
+ + 1;
+
+71 
+ÃxtLše
+ = 
+ÃxtR
+ + 1;
+
+73 
+lšeEnd
+ = 
+ÃxtN
+;
+
+74 if(
+ÃxtR
+ =ð(
+ÃxtN
+ + 1))
+
+75 
+ÃxtLše
+ = 
+ÃxtR
+ + 1;
+
+77 
+ÃxtLše
+ = 
+ÃxtN
+ + 1;
+
+79 } if(
+ÃxtN
+ !ð
+NULL
+){
+
+80 
+lšeEnd
+ = 
+ÃxtN
+;
+
+81 
+ÃxtLše
+ = 
+ÃxtN
+ + 1;
+
+83 
+lšeEnd
+ = 
+ÃxtR
+;
+
+84 
+ÃxtLše
+ = 
+ÃxtR
+ + 1;
+
+87 
+size_t
+ 
+Î’
+ = 
+lšeEnd
+ - 
+lšeS�¹
+;
+
+88 * 
+ld©a
+ = (*)
+	`m®loc
+(
+Î’
++1);
+
+89 if(
+ld©a
+ !ð
+NULL
+){
+
+90 
+	`memýy
+(
+ld©a
+, 
+lšeS�¹
+, 
+Î’
+);
+
+91 
+ld©a
+[
+Î’
+] = 0;
+
+92 
+ev
+ +ð
+	`F
+("data: ");
+
+93 
+ev
+ +ð
+ld©a
+;
+
+94 
+ev
+ +ð
+	`F
+("\r\n");
+
+95 
+	`ä“
+(
+ld©a
+);
+
+97 
+lšeS�¹
+ = 
+ÃxtLše
+;
+
+98 if(
+lšeS�¹
+ =ð((*)
+mes§ge
+ + 
+mes§geL’
+))
+
+99 
+ev
+ +ð
+	`F
+("\r\n");
+
+101 } 
+lšeS�¹
+ < ((*)
+mes§ge
+ + 
+mes§geL’
+));
+
+104  
+ev
+;
+
+105 
+	}
+}
+
+109 
+	gAsyncEv’tSourûMes§ge
+::
+	$AsyncEv’tSourûMes§ge
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+Ën
+)
+
+110 : 
+	`_d©a
+(
+nuÎ±r
+), 
+	`_Ën
+(
+Ën
+), 
+	`_£Á
+(0), 
+	$_acked
+(0)
+
+112 
+_d©a
+ = (
+ušt8_t
+*)
+	`m®loc
+(
+_Ën
++1);
+
+113 if(
+_d©a
+ =ð
+nuÎ±r
+){
+
+114 
+_Ën
+ = 0;
+
+116 
+	`memýy
+(
+_d©a
+, 
+d©a
+, 
+Ën
+);
+
+117 
+_d©a
+[
+_Ën
+] = 0;
+
+119 
+	}
+}
+
+121 
+	gAsyncEv’tSourûMes§ge
+::~
+	$AsyncEv’tSourûMes§ge
+() {
+
+122 if(
+_d©a
+ !ð
+NULL
+)
+
+123 
+	`ä“
+(
+_d©a
+);
+
+124 
+	}
+}
+
+126 
+size_t
+ 
+	gAsyncEv’tSourûMes§ge
+::
+	$ack
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+) {
+
+127 ()
+time
+;
+
+129 if(
+_acked
+ + 
+Ën
+ > 
+_Ën
+){
+
+131 cÚ¡ 
+size_t
+ 
+exŒa
+ = 
+_acked
+ + 
+Ën
+ - 
+_Ën
+;
+
+132 
+_acked
+ = 
+_Ën
+;
+
+133  
+exŒa
+;
+
+136 
+_acked
+ +ð
+Ën
+;
+
+138 
+	}
+}
+
+140 
+size_t
+ 
+	gAsyncEv’tSourûMes§ge
+::
+	$£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+) {
+
+141 cÚ¡ 
+size_t
+ 
+Ën
+ = 
+_Ën
+ - 
+_£Á
+;
+
+142 if(
+þ›Á
+->
+	`¥aû
+(è< 
+Ën
+){
+
+145 
+size_t
+ 
+£Á
+ = 
+þ›Á
+->
+	`add
+((cÚ¡ *)
+_d©a
+, 
+Ën
+);
+
+146 if(
+þ›Á
+->
+	`ÿnS’d
+())
+
+147 
+þ›Á
+->
+	`£nd
+();
+
+148 
+_£Á
+ +ð
+£Á
+;
+
+149  
+£Á
+;
+
+150 
+	}
+}
+
+154 
+	gAsyncEv’tSourûCl›Á
+::
+	$AsyncEv’tSourûCl›Á
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+AsyncEv’tSourû
+ *
+£rv”
+)
+
+155 : 
+	`_mes§geQueue
+(
+LškedLi¡
+<
+AsyncEv’tSourûMes§ge
+ *>([](AsyncEv’tSourûMes§g�*
+m
+){ 
+d–‘e
+ m; 
+	}
+}))
+
+157 
+	g_þ›Á
+ = 
+»que¡
+->
+þ›Á
+();
+
+158 
+	g_£rv”
+ = 
+£rv”
+;
+
+159 
+	g_Ï¡Id
+ = 0;
+
+160 if(
+	g»que¡
+->
+hasH—d”
+(
+F
+("Last-Event-ID")))
+
+161 
+	g_Ï¡Id
+ = 
+©oi
+(
+»que¡
+->
+g‘H—d”
+(
+F
+("La¡-Ev’t-ID"))->
+v®ue
+().
+c_¡r
+());
+
+163 
+	g_þ›Á
+->
+£tRxTimeout
+(0);
+
+164 
+	g_þ›Á
+->
+ÚE¼Ü
+(
+NULL
+, NULL);
+
+165 
+	g_þ›Á
+->
+ÚAck
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){ ()c; ((
+AsyncEv’tSourûCl›Á
+*)Ô))->
+_ÚAck
+Ö’,�ime); }, 
+this
+);
+
+166 
+	g_þ›Á
+->
+ÚPÞl
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+){ ()c; ((
+AsyncEv’tSourûCl›Á
+*)Ô))->
+_ÚPÞl
+(); }, 
+this
+);
+
+167 
+	g_þ›Á
+->
+ÚD©a
+(
+NULL
+, NULL);
+
+168 
+	g_þ›Á
+->
+ÚTimeout
+([
+this
+](*
+r
+, 
+AsyncCl›Á
+* 
+c
+ 
+__©Œibu‹__
+((
+unu£d
+)), 
+ušt32_t
+ 
+time
+){ ((
+AsyncEv’tSourûCl›Á
+*)Ô))->
+_ÚTimeout
+(time); },�his);
+
+169 
+	g_þ›Á
+->
+ÚDiscÚÃù
+([
+this
+](*
+r
+, 
+AsyncCl›Á
+* 
+c
+){ ((
+AsyncEv’tSourûCl›Á
+*)Ô))->
+_ÚDiscÚÃù
+(); 
+d–‘e
+ c; },�his);
+
+171 
+	g_£rv”
+->
+_addCl›Á
+(
+this
+);
+
+172 
+d–‘e
+ 
+	g»que¡
+;
+
+175 
+	gAsyncEv’tSourûCl›Á
+::~
+	$AsyncEv’tSourûCl›Á
+(){
+
+176 
+_mes§geQueue
+.
+	`ä“
+();
+
+177 
+	`þo£
+();
+
+178 
+	}
+}
+
+180 
+	gAsyncEv’tSourûCl›Á
+::
+	$_queueMes§ge
+(
+AsyncEv’tSourûMes§ge
+ *
+d©aMes§ge
+){
+
+181 if(
+d©aMes§ge
+ =ð
+NULL
+)
+
+183 if(!
+	`cÚÃùed
+()){
+
+184 
+d–‘e
+ 
+d©aMes§ge
+;
+
+187 if(
+_mes§geQueue
+.
+	`Ëngth
+(è>ð
+SSE_MAX_QUEUED_MESSAGES
+){
+
+188 
+	`‘s_´štf
+(
+	`SŒšg
+(
+	`F
+("ERROR: ToØmªy mes§ge queued\n")).
+	`c_¡r
+());
+
+189 
+d–‘e
+ 
+d©aMes§ge
+;
+
+191 
+_mes§geQueue
+.
+	`add
+(
+d©aMes§ge
+);
+
+193 if(
+_þ›Á
+->
+	`ÿnS’d
+())
+
+194 
+	`_runQueue
+();
+
+195 
+	}
+}
+
+197 
+	gAsyncEv’tSourûCl›Á
+::
+	$_ÚAck
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){
+
+198 
+Ën
+ && !
+_mes§geQueue
+.
+	`isEm±y
+()){
+
+199 
+Ën
+ = 
+_mes§geQueue
+.
+	`äÚt
+()->
+	`ack
+Ö’, 
+time
+);
+
+200 if(
+_mes§geQueue
+.
+	`äÚt
+()->
+	`fšished
+())
+
+201 
+_mes§geQueue
+.
+	`»move
+(_mes§geQueue.
+	`äÚt
+());
+
+204 
+	`_runQueue
+();
+
+205 
+	}
+}
+
+207 
+	gAsyncEv’tSourûCl›Á
+::
+	$_ÚPÞl
+(){
+
+208 if(!
+_mes§geQueue
+.
+	`isEm±y
+()){
+
+209 
+	`_runQueue
+();
+
+211 
+	}
+}
+
+214 
+	gAsyncEv’tSourûCl›Á
+::
+_ÚTimeout
+(
+ušt32_t
+ 
+time
+ 
+__©Œibu‹__
+((
+unu£d
+))){
+
+215 
+_þ›Á
+->
+þo£
+(
+Œue
+);
+
+218 
+	gAsyncEv’tSourûCl›Á
+::
+	$_ÚDiscÚÃù
+(){
+
+219 
+_þ›Á
+ = 
+NULL
+;
+
+220 
+_£rv”
+->
+	`_hªdËDiscÚÃù
+(
+this
+);
+
+221 
+	}
+}
+
+223 
+	gAsyncEv’tSourûCl›Á
+::
+	$þo£
+(){
+
+224 if(
+_þ›Á
+ !ð
+NULL
+)
+
+225 
+_þ›Á
+->
+	`þo£
+();
+
+226 
+	}
+}
+
+228 
+	gAsyncEv’tSourûCl›Á
+::
+	$wr™e
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+229 
+	`_queueMes§ge
+(
+Ãw
+ 
+	`AsyncEv’tSourûMes§ge
+(
+mes§ge
+, 
+Ën
+));
+
+230 
+	}
+}
+
+232 
+	gAsyncEv’tSourûCl›Á
+::
+	$£nd
+(cÚ¡ *
+mes§ge
+, cÚ¡ *
+ev’t
+, 
+ušt32_t
+ 
+id
+, ušt32_ˆ
+»cÚÃù
+){
+
+233 
+SŒšg
+ 
+ev
+ = 
+	`g’”©eEv’tMes§ge
+(
+mes§ge
+, 
+ev’t
+, 
+id
+, 
+»cÚÃù
+);
+
+234 
+	`_queueMes§ge
+(
+Ãw
+ 
+	`AsyncEv’tSourûMes§ge
+(
+ev
+.
+	`c_¡r
+(),ƒv.
+	`Ëngth
+()));
+
+235 
+	}
+}
+
+237 
+	gAsyncEv’tSourûCl›Á
+::
+	$_runQueue
+(){
+
+238 !
+_mes§geQueue
+.
+	`isEm±y
+(è&& _mes§geQueue.
+	`äÚt
+()->
+	`fšished
+()){
+
+239 
+_mes§geQueue
+.
+	`»move
+(_mes§geQueue.
+	`äÚt
+());
+
+242 autØ
+i
+ = 
+_mes§geQueue
+.
+	`begš
+(); i !ð_mes§geQueue.
+	`’d
+(); ++i)
+
+244 if(!(*
+i
+)->
+	`£Á
+())
+
+245 (*
+i
+)->
+	`£nd
+(
+_þ›Á
+);
+
+247 
+	}
+}
+
+252 
+	gAsyncEv’tSourû
+::
+	$AsyncEv’tSourû
+(cÚ¡ 
+SŒšg
+& 
+u¾
+)
+
+253 : 
+	`_u¾
+(
+u¾
+)
+
+254 , 
+	`_þ›Ás
+(
+LškedLi¡
+<
+AsyncEv’tSourûCl›Á
+ *>([](AsyncEv’tSourûCl›Á *
+c
+){ 
+d–‘e
+ c; 
+	}
+}))
+
+255 , 
+	$_cÚÃùcb
+(
+NULL
+)
+
+256 {
+	}
+}
+
+258 
+	gAsyncEv’tSourû
+::~
+	$AsyncEv’tSourû
+(){
+
+259 
+	`þo£
+();
+
+260 
+	}
+}
+
+262 
+	gAsyncEv’tSourû
+::
+	$ÚCÚÃù
+(
+ArEv’tHªdËrFunùiÚ
+ 
+cb
+){
+
+263 
+_cÚÃùcb
+ = 
+cb
+;
+
+264 
+	}
+}
+
+266 
+	gAsyncEv’tSourû
+::
+	$_addCl›Á
+(
+AsyncEv’tSourûCl›Á
+ * 
+þ›Á
+){
+
+280 
+_þ›Ás
+.
+	`add
+(
+þ›Á
+);
+
+281 if(
+_cÚÃùcb
+)
+
+282 
+	`_cÚÃùcb
+(
+þ›Á
+);
+
+283 
+	}
+}
+
+285 
+	gAsyncEv’tSourû
+::
+	$_hªdËDiscÚÃù
+(
+AsyncEv’tSourûCl›Á
+ * 
+þ›Á
+){
+
+286 
+_þ›Ás
+.
+	`»move
+(
+þ›Á
+);
+
+287 
+	}
+}
+
+289 
+	gAsyncEv’tSourû
+::
+	$þo£
+(){
+
+290 cÚ¡‡utØ&
+c
+: 
+_þ›Ás
+){
+
+291 if(
+c
+->
+	`cÚÃùed
+())
+
+292 
+c
+->
+	`þo£
+();
+
+294 
+	}
+}
+
+297 
+size_t
+ 
+	gAsyncEv’tSourû
+::
+	$avgPack‘sWa™šg
+() const {
+
+298 if(
+_þ›Ás
+.
+	`isEm±y
+())
+
+301 
+size_t
+ 
+aql
+=0;
+
+302 
+ušt32_t
+ 
+nCÚÃùedCl›Ás
+=0;
+
+304 cÚ¡‡utØ&
+c
+: 
+_þ›Ás
+){
+
+305 if(
+c
+->
+	`cÚÃùed
+()) {
+
+306 
+aql
++=
+c
+->
+	`·ck‘sWa™šg
+();
+
+307 ++
+nCÚÃùedCl›Ás
+;
+
+311  ((
+aql
+è+ (
+nCÚÃùedCl›Ás
+/2))/(nConnectedClients);
+
+312 
+	}
+}
+
+314 
+	gAsyncEv’tSourû
+::
+	$£nd
+(cÚ¡ *
+mes§ge
+, cÚ¡ *
+ev’t
+, 
+ušt32_t
+ 
+id
+, ušt32_ˆ
+»cÚÃù
+){
+
+317 
+SŒšg
+ 
+ev
+ = 
+	`g’”©eEv’tMes§ge
+(
+mes§ge
+, 
+ev’t
+, 
+id
+, 
+»cÚÃù
+);
+
+318 cÚ¡‡utØ&
+c
+: 
+_þ›Ás
+){
+
+319 if(
+c
+->
+	`cÚÃùed
+()) {
+
+320 
+c
+->
+	`wr™e
+(
+ev
+.
+	`c_¡r
+(),ƒv.
+	`Ëngth
+());
+
+323 
+	}
+}
+
+325 
+size_t
+ 
+	gAsyncEv’tSourû
+::
+	$couÁ
+() const {
+
+326  
+_þ›Ás
+.
+	`couÁ_if
+([](
+AsyncEv’tSourûCl›Á
+ *
+c
+){
+
+327  
+c
+->
+	`cÚÃùed
+();
+
+329 
+	}
+}
+
+331 
+boÞ
+ 
+	gAsyncEv’tSourû
+::
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+332 if(
+»que¡
+->
+	`m‘hod
+(è!ð
+HTTP_GET
+ || !»que¡->
+	`u¾
+().
+	`equ®s
+(
+_u¾
+)) {
+
+333  
+çl£
+;
+
+335 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+	`F
+("Last-Event-ID"));
+
+336  
+Œue
+;
+
+337 
+	}
+}
+
+339 
+	gAsyncEv’tSourû
+::
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+340 if((
+_u£ºame
+.
+	`Ëngth
+(è&& 
+_·sswÜd
+.Ëngth()è&& !
+»que¡
+->
+	`auth’tiÿ‹
+(_u£ºame.
+	`c_¡r
+(), _password.c_str())) {
+
+341  
+»que¡
+->
+	`»que¡Auth’tiÿtiÚ
+();
+
+343 
+»que¡
+->
+	`£nd
+(
+Ãw
+ 
+	`AsyncEv’tSourûRe¥Ú£
+(
+this
+));
+
+344 
+	}
+}
+
+348 
+	gAsyncEv’tSourûRe¥Ú£
+::
+	$AsyncEv’tSourûRe¥Ú£
+(
+AsyncEv’tSourû
+ *
+£rv”
+){
+
+349 
+_£rv”
+ = 
+£rv”
+;
+
+350 
+_code
+ = 200;
+
+351 
+_cÚ‹ÁTy³
+ = 
+	`F
+("text/event-stream");
+
+352 
+_£ndCÚ‹ÁL’gth
+ = 
+çl£
+;
+
+353 
+	`addH—d”
+(
+	`F
+("Cache-Control"), F("no-cache"));
+
+354 
+	`addH—d”
+(
+	`F
+("Connection"), F("keep-alive"));
+
+355 
+	}
+}
+
+357 
+	gAsyncEv’tSourûRe¥Ú£
+::
+	$_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+358 
+SŒšg
+ 
+out
+ = 
+	`_as£mbËH—d
+(
+»que¡
+->
+	`v”siÚ
+());
+
+359 
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+out
+.
+	`c_¡r
+(), 
+_h—dL’gth
+);
+
+360 
+_¡©e
+ = 
+RESPONSE_WAIT_ACK
+;
+
+361 
+	}
+}
+
+363 
+size_t
+ 
+	gAsyncEv’tSourûRe¥Ú£
+::
+_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, size_ˆ
+Ën
+, 
+ušt32_t
+ 
+time
+ 
+__©Œibu‹__
+((
+unu£d
+))){
+
+364 if(
+	gËn
+){
+
+365 
+Ãw
+ 
+AsyncEv’tSourûCl›Á
+(
+»que¡
+, 
+_£rv”
+);
+
+	@lib/ESPAsyncWebServer/AsyncEventSource.h
+
+20 #iâdeà
+ASYNCEVENTSOURCE_H_
+
+
+21 
+	#ASYNCEVENTSOURCE_H_
+
+
+	)
+
+23 
+	~<Ardušo.h
+>
+
+24 #ifdeà
+ESP32
+
+
+25 
+	~<AsyncTCP.h
+>
+
+26 
+	#SSE_MAX_QUEUED_MESSAGES
+ 32
+
+	)
+
+28 
+	~<ESPAsyncTCP.h
+>
+
+29 
+	#SSE_MAX_QUEUED_MESSAGES
+ 8
+
+	)
+
+31 
+	~<ESPAsyncWebS”v”.h
+>
+
+33 
+	~"AsyncWebSynchrÚiz©iÚ.h
+"
+
+35 #ifdeà
+ESP8266
+
+
+36 
+	~<Hash.h
+>
+
+37 #ifdeà
+CRYPTO_HASH_h
+
+
+38 
+	~<../¤c/Hash.h
+>
+
+42 #ifdeà
+ESP32
+
+
+43 
+	#DEFAULT_MAX_SSE_CLIENTS
+ 8
+
+	)
+
+45 
+	#DEFAULT_MAX_SSE_CLIENTS
+ 4
+
+	)
+
+48 
+þass
+ 
+	gAsyncEv’tSourû
+;
+
+49 
+þass
+ 
+	gAsyncEv’tSourûRe¥Ú£
+;
+
+50 
+þass
+ 
+	gAsyncEv’tSourûCl›Á
+;
+
+51 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncEv’tSourûCl›Á
+ *
+	tþ›Á
+)> 
+	tArEv’tHªdËrFunùiÚ
+;
+
+53 þas 
+	cAsyncEv’tSourûMes§ge
+ {
+
+54 
+	m´iv©e
+:
+
+55 
+ušt8_t
+ * 
+_d©a
+;
+
+56 
+size_t
+ 
+	m_Ën
+;
+
+57 
+size_t
+ 
+	m_£Á
+;
+
+59 
+size_t
+ 
+	m_acked
+;
+
+60 
+	mpublic
+:
+
+61 
+AsyncEv’tSourûMes§ge
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+62 ~
+AsyncEv’tSourûMes§ge
+();
+
+63 
+size_t
+ 
+ack
+(size_ˆ
+Ën
+, 
+ušt32_t
+ 
+time
+ 
+__©Œibu‹__
+((
+unu£d
+)));
+
+64 
+size_t
+ 
+£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+);
+
+65 
+boÞ
+ 
+	$fšished
+(){  
+_acked
+ =ð
+_Ën
+; }
+
+66 
+boÞ
+ 
+	$£Á
+(è{  
+_£Á
+ =ð
+_Ën
+; 
+	}
+}
+
+69 þas 
+	cAsyncEv’tSourûCl›Á
+ {
+
+70 
+	m´iv©e
+:
+
+71 
+AsyncCl›Á
+ *
+_þ›Á
+;
+
+72 
+AsyncEv’tSourû
+ *
+	m_£rv”
+;
+
+73 
+ušt32_t
+ 
+	m_Ï¡Id
+;
+
+74 
+	mLškedLi¡
+<
+	mAsyncEv’tSourûMes§ge
+ *> 
+	m_mes§geQueue
+;
+
+75 
+_queueMes§ge
+(
+AsyncEv’tSourûMes§ge
+ *
+d©aMes§ge
+);
+
+76 
+_runQueue
+();
+
+78 
+	mpublic
+:
+
+80 
+AsyncEv’tSourûCl›Á
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+AsyncEv’tSourû
+ *
+£rv”
+);
+
+81 ~
+AsyncEv’tSourûCl›Á
+();
+
+83 
+AsyncCl›Á
+* 
+	$þ›Á
+(){  
+_þ›Á
+; }
+
+84 
+	`þo£
+();
+
+85 
+	`wr™e
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+86 
+	`£nd
+(cÚ¡ *
+mes§ge
+, cÚ¡ *
+ev’t
+=
+NULL
+, 
+ušt32_t
+ 
+id
+=0, ušt32_ˆ
+»cÚÃù
+=0);
+
+87 
+boÞ
+ 
+	$cÚÃùed
+(ècÚ¡ {  (
+_þ›Á
+ !ð
+NULL
+è&& _þ›Á->
+	`cÚÃùed
+(); 
+	}
+}
+
+88 
+ušt32_t
+ 
+	$Ï¡Id
+(ècÚ¡ {  
+_Ï¡Id
+; 
+	}
+}
+
+89 
+size_t
+ 
+	$·ck‘sWa™šg
+(ècÚ¡ {  
+_mes§geQueue
+.
+	`Ëngth
+(); 
+	}
+}
+
+92 
+_ÚAck
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+93 
+_ÚPÞl
+();
+
+94 
+_ÚTimeout
+(
+ušt32_t
+ 
+time
+);
+
+95 
+_ÚDiscÚÃù
+();
+
+98 þas 
+	cAsyncEv’tSourû
+: 
+public
+ 
+AsyncWebHªdËr
+ {
+
+99 
+´iv©e
+:
+
+100 
+SŒšg
+ 
+_u¾
+;
+
+101 
+	mLškedLi¡
+<
+	mAsyncEv’tSourûCl›Á
+ *> 
+	m_þ›Ás
+;
+
+102 
+ArEv’tHªdËrFunùiÚ
+ 
+	m_cÚÃùcb
+;
+
+103 
+	mpublic
+:
+
+104 
+AsyncEv’tSourû
+(cÚ¡ 
+SŒšg
+& 
+u¾
+);
+
+105 ~
+AsyncEv’tSourû
+();
+
+107 cÚ¡ * 
+	$u¾
+(ècÚ¡ {  
+_u¾
+.
+	`c_¡r
+(); }
+
+108 
+	`þo£
+();
+
+109 
+	`ÚCÚÃù
+(
+ArEv’tHªdËrFunùiÚ
+ 
+cb
+);
+
+110 
+	`£nd
+(cÚ¡ *
+mes§ge
+, cÚ¡ *
+ev’t
+=
+NULL
+, 
+ušt32_t
+ 
+id
+=0, ušt32_ˆ
+»cÚÃù
+=0);
+
+111 
+size_t
+ 
+	$couÁ
+() const;
+
+112 
+size_t
+ 
+	$avgPack‘sWa™šg
+() const;
+
+115 
+	`_addCl›Á
+(
+AsyncEv’tSourûCl›Á
+ * 
+þ›Á
+);
+
+116 
+	`_hªdËDiscÚÃù
+(
+AsyncEv’tSourûCl›Á
+ * 
+þ›Á
+);
+
+117 
+vœtu®
+ 
+boÞ
+ 
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+118 
+vœtu®
+ 
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+119 
+	}
+};
+
+121 þas 
+	cAsyncEv’tSourûRe¥Ú£
+: 
+public
+ 
+AsyncWebS”v”Re¥Ú£
+ {
+
+122 
+´iv©e
+:
+
+123 
+SŒšg
+ 
+_cÚ‹Á
+;
+
+124 
+AsyncEv’tSourû
+ *
+	m_£rv”
+;
+
+125 
+	mpublic
+:
+
+126 
+AsyncEv’tSourûRe¥Ú£
+(
+AsyncEv’tSourû
+ *
+£rv”
+);
+
+127 
+_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+128 
+size_t
+ 
+_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, size_ˆ
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+129 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  
+Œue
+; }
+
+130 
+	}
+};
+
+	@lib/ESPAsyncWebServer/AsyncJson.h
+
+35 #iâdeà
+ASYNC_JSON_H_
+
+
+36 
+	#ASYNC_JSON_H_
+
+
+	)
+
+37 
+	~<ArdušoJsÚ.h
+>
+
+38 
+	~<ESPAsyncWebS”v”.h
+>
+
+39 
+	~<Pršt.h
+>
+
+41 #ià
+ARDUINOJSON_VERSION_MAJOR
+ == 5
+
+42 
+	#ARDUINOJSON_5_COMPATIBILITY
+
+
+	)
+
+44 
+	#DYNAMIC_JSON_DOCUMENT_SIZE
+ 1024
+
+	)
+
+47 
+cÚ¡ex´
+ cÚ¡ * 
+	gJSON_MIMETYPE
+ = "application/json";
+
+53 þas 
+	cChunkPršt
+ : 
+public
+ 
+Pršt
+ {
+
+54 
+´iv©e
+:
+
+55 
+ušt8_t
+* 
+_de¡š©iÚ
+;
+
+56 
+size_t
+ 
+	m_to_sk�
+;
+
+57 
+size_t
+ 
+	m_to_wr™e
+;
+
+58 
+size_t
+ 
+	m_pos
+;
+
+59 
+	mpublic
+:
+
+60 
+	$ChunkPršt
+(
+ušt8_t
+* 
+de¡š©iÚ
+, 
+size_t
+ 
+äom
+, size_ˆ
+Ën
+)
+
+61 : 
+	`_de¡š©iÚ
+(
+de¡š©iÚ
+), 
+	`_to_sk�
+(
+äom
+), 
+	`_to_wr™e
+(
+Ën
+), 
+_pos
+{0} {
+	}
+}
+
+62 
+	gvœtu®
+ ~
+	$ChunkPršt
+(){
+	}
+}
+
+63 
+size_t
+ 
+	$wr™e
+(
+ušt8_t
+ 
+c
+){
+
+64 ià(
+_to_sk�
+ > 0) {
+
+65 
+_to_sk�
+--;
+
+67 } ià(
+_to_wr™e
+ > 0) {
+
+68 
+_to_wr™e
+--;
+
+69 
+_de¡š©iÚ
+[
+_pos
+++] = 
+c
+;
+
+73 
+	}
+}
+
+74 
+size_t
+ 
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ *
+bufãr
+, 
+size_t
+ 
+size
+)
+
+76  
+this
+->
+Pršt
+::
+	`wr™e
+(
+bufãr
+, 
+size
+);
+
+77 
+	}
+}
+
+80 þas 
+	cAsyncJsÚRe¥Ú£
+: 
+public
+ 
+AsyncAb¡¿ùRe¥Ú£
+ {
+
+81 
+´Ùeùed
+:
+
+83 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+84 
+DyÇmicJsÚBufãr
+ 
+_jsÚBufãr
+;
+
+86 
+DyÇmicJsÚDocum’t
+ 
+	m_jsÚBufãr
+;
+
+89 
+JsÚV¬ŸÁ
+ 
+	m_roÙ
+;
+
+90 
+boÞ
+ 
+	m_isV®id
+;
+
+92 
+	mpublic
+:
+
+94 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+95 
+	$AsyncJsÚRe¥Ú£
+(
+boÞ
+ 
+isA¼ay
+=
+çl£
+): 
+_isV®id
+{false} {
+
+96 
+_code
+ = 200;
+
+97 
+_cÚ‹ÁTy³
+ = 
+JSON_MIMETYPE
+;
+
+98 if(
+isA¼ay
+)
+
+99 
+_roÙ
+ = 
+_jsÚBufãr
+.
+	`ü—‹A¼ay
+();
+
+101 
+_roÙ
+ = 
+_jsÚBufãr
+.
+	`ü—‹Objeù
+();
+
+102 
+	}
+}
+
+104 
+	$AsyncJsÚRe¥Ú£
+(
+boÞ
+ 
+isA¼ay
+=
+çl£
+, 
+size_t
+ 
+maxJsÚBufãrSize
+ = 
+DYNAMIC_JSON_DOCUMENT_SIZE
+è: 
+	`_jsÚBufãr
+(maxJsÚBufãrSize), 
+_isV®id
+{
+	}
+false} {
+
+105 
+	g_code
+ = 200;
+
+106 
+	g_cÚ‹ÁTy³
+ = 
+JSON_MIMETYPE
+;
+
+107 if(
+	gisA¼ay
+)
+
+108 
+	g_roÙ
+ = 
+_jsÚBufãr
+.
+ü—‹Ne¡edA¼ay
+();
+
+110 
+	g_roÙ
+ = 
+_jsÚBufãr
+.
+ü—‹Ne¡edObjeù
+();
+
+114 ~
+	$AsyncJsÚRe¥Ú£
+(è{
+	}
+}
+
+115 
+	gJsÚV¬ŸÁ
+ & 
+	$g‘RoÙ
+(è{  
+_roÙ
+; 
+	}
+}
+
+116 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  
+_isV®id
+; 
+	}
+}
+
+117 
+size_t
+ 
+	$£tL’gth
+() {
+
+119 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+120 
+_cÚ‹ÁL’gth
+ = 
+_roÙ
+.
+	`m—su»L’gth
+();
+
+122 
+_cÚ‹ÁL’gth
+ = 
+	`m—su»JsÚ
+(
+_roÙ
+);
+
+125 ià(
+_cÚ‹ÁL’gth
+è{ 
+_isV®id
+ = 
+Œue
+; }
+
+126  
+_cÚ‹ÁL’gth
+;
+
+127 
+	}
+}
+
+129 
+size_t
+ 
+	$g‘Size
+(è{  
+_jsÚBufãr
+.
+	`size
+(); 
+	}
+}
+
+131 
+size_t
+ 
+	$_fžlBufãr
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+132 
+ChunkPršt
+ 
+	`de¡
+(
+d©a
+, 
+_£ÁL’gth
+, 
+Ën
+);
+
+134 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+135 
+_roÙ
+.
+	`´štTo
+Ð
+de¡
+ ) ;
+
+137 
+	`£rŸlizeJsÚ
+(
+_roÙ
+, 
+de¡
+);
+
+139  
+Ën
+;
+
+140 
+	}
+}
+
+143 þas 
+	cP»‰yAsyncJsÚRe¥Ú£
+: 
+public
+ 
+AsyncJsÚRe¥Ú£
+ {
+
+144 
+public
+:
+
+145 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+146 
+	$P»‰yAsyncJsÚRe¥Ú£
+ (
+boÞ
+ 
+isA¼ay
+=
+çl£
+è: 
+AsyncJsÚRe¥Ú£
+{isA¼ay} {
+	}
+}
+
+148 
+	$P»‰yAsyncJsÚRe¥Ú£
+ (
+boÞ
+ 
+isA¼ay
+=
+çl£
+, 
+size_t
+ 
+maxJsÚBufãrSize
+ = 
+DYNAMIC_JSON_DOCUMENT_SIZE
+è: 
+AsyncJsÚRe¥Ú£
+{isA¼ay, 
+	}
+maxJsonBufferSize} {}
+
+150 
+size_t
+ 
+	$£tL’gth
+ () {
+
+151 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+152 
+_cÚ‹ÁL’gth
+ = 
+_roÙ
+.
+	`m—su»P»‰yL’gth
+ ();
+
+154 
+_cÚ‹ÁL’gth
+ = 
+	`m—su»JsÚP»‰y
+(
+_roÙ
+);
+
+156 ià(
+_cÚ‹ÁL’gth
+è{
+_isV®id
+ = 
+Œue
+;}
+
+157  
+_cÚ‹ÁL’gth
+;
+
+158 
+	}
+}
+
+159 
+size_t
+ 
+	$_fžlBufãr
+ (
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+) {
+
+160 
+ChunkPršt
+ 
+	`de¡
+ (
+d©a
+, 
+_£ÁL’gth
+, 
+Ën
+);
+
+161 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+162 
+_roÙ
+.
+	`´‘tyPrštTo
+ (
+de¡
+);
+
+164 
+	`£rŸlizeJsÚP»‰y
+(
+_roÙ
+, 
+de¡
+);
+
+166  
+Ën
+;
+
+167 
+	}
+}
+
+170 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ *
+	t»que¡
+, 
+	tJsÚV¬ŸÁ
+ &
+	tjsÚ
+)> 
+	tArJsÚReque¡HªdËrFunùiÚ
+;
+
+172 þas 
+	cAsyncC®lbackJsÚWebHªdËr
+: 
+public
+ 
+AsyncWebHªdËr
+ {
+
+173 
+´iv©e
+:
+
+174 
+´Ùeùed
+:
+
+175 cÚ¡ 
+SŒšg
+ 
+_uri
+;
+
+176 
+WebReque¡M‘hodCompos™e
+ 
+	m_m‘hod
+;
+
+177 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	m_ÚReque¡
+;
+
+178 
+size_t
+ 
+	m_cÚ‹ÁL’gth
+;
+
+179 #iâdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+180 cÚ¡ 
+size_t
+ 
+	mmaxJsÚBufãrSize
+;
+
+182 
+size_t
+ 
+	m_maxCÚ‹ÁL’gth
+;
+
+183 
+	mpublic
+:
+
+184 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+185 
+	$AsyncC®lbackJsÚWebHªdËr
+(cÚ¡ 
+SŒšg
+& 
+uri
+, 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+)
+
+186 : 
+	`_uri
+(
+uri
+), 
+	`_m‘hod
+(
+HTTP_POST
+|
+HTTP_PUT
+|
+HTTP_PATCH
+), 
+	`_ÚReque¡
+(
+ÚReque¡
+), 
+	$_maxCÚ‹ÁL’gth
+(16384) {}
+
+188 
+	$AsyncC®lbackJsÚWebHªdËr
+(cÚ¡ 
+SŒšg
+& 
+uri
+, 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+, 
+size_t
+ 
+maxJsÚBufãrSize
+=
+DYNAMIC_JSON_DOCUMENT_SIZE
+)
+
+189 : 
+	`_uri
+(
+uri
+), 
+	`_m‘hod
+(
+HTTP_POST
+|
+HTTP_PUT
+|
+HTTP_PATCH
+), 
+	`_ÚReque¡
+(
+ÚReque¡
+), 
+	`maxJsÚBufãrSize
+(
+maxJsÚBufãrSize
+), 
+	$_maxCÚ‹ÁL’gth
+(16384è{
+	}
+}
+
+192 
+	$£tM‘hod
+(
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+){ 
+_m‘hod
+ = m‘hod; 
+	}
+}
+
+193 
+	$£tMaxCÚ‹ÁL’gth
+(
+maxCÚ‹ÁL’gth
+){ 
+_maxCÚ‹ÁL’gth
+ = maxCÚ‹ÁL’gth; 
+	}
+}
+
+194 
+	$ÚReque¡
+(
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+â
+){ 
+_ÚReque¡
+ = fn; 
+	}
+}
+
+196 
+vœtu®
+ 
+boÞ
+ 
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+{
+
+197 if(!
+_ÚReque¡
+)
+
+198  
+çl£
+;
+
+200 if(!(
+_m‘hod
+ & 
+»que¡
+->
+	`m‘hod
+()))
+
+201  
+çl£
+;
+
+203 if(
+_uri
+.
+	`Ëngth
+(è&& (_ur˜!ð
+»que¡
+->
+	`u¾
+(è&& !»que¡->u¾().
+	`¡¬tsW™h
+(_uri+"/")))
+
+204  
+çl£
+;
+
+206 iàÐ!
+»que¡
+->
+	`cÚ‹ÁTy³
+().
+	`equ®sIgnÜeCa£
+(
+JSON_MIMETYPE
+) )
+
+207  
+çl£
+;
+
+209 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+("ANY");
+
+210  
+Œue
+;
+
+211 
+	}
+}
+
+213 
+vœtu®
+ 
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+ {
+
+214 if(
+_ÚReque¡
+) {
+
+215 ià(
+»que¡
+->
+_‹mpObjeù
+ !ð
+NULL
+) {
+
+217 #ifdeà
+ARDUINOJSON_5_COMPATIBILITY
+
+
+218 
+DyÇmicJsÚBufãr
+ 
+jsÚBufãr
+;
+
+219 
+JsÚV¬ŸÁ
+ 
+jsÚ
+ = 
+jsÚBufãr
+.
+	`·r£
+((
+ušt8_t
+*)(
+»que¡
+->
+_‹mpObjeù
+));
+
+220 ià(
+jsÚ
+.
+	`sucûss
+()) {
+
+222 
+DyÇmicJsÚDocum’t
+ 
+	`jsÚBufãr
+(
+this
+->
+maxJsÚBufãrSize
+);
+
+223 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeJsÚ
+(
+jsÚBufãr
+, (
+ušt8_t
+*)(
+»que¡
+->
+_‹mpObjeù
+));
+
+224 if(!
+”rÜ
+) {
+
+225 
+JsÚV¬ŸÁ
+ 
+jsÚ
+ = 
+jsÚBufãr
+.
+as
+<JsonVariant>();
+
+228 
+	`_ÚReque¡
+(
+»que¡
+, 
+jsÚ
+);
+
+232 
+»que¡
+->
+	`£nd
+(
+_cÚ‹ÁL’gth
+ > 
+_maxCÚ‹ÁL’gth
+ ? 413 : 400);
+
+234 
+»que¡
+->
+	`£nd
+(500);
+
+236 
+	}
+}
+
+237 
+vœtu®
+ 
+	$hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, cÚ¡ 
+SŒšg
+& 
+fž’ame
+, 
+size_t
+ 
+šdex
+, 
+ušt8_t
+ *
+d©a
+, size_ˆ
+Ën
+, 
+boÞ
+ 
+fš®
+è
+ov”ride
+ final {
+
+238 
+	}
+}
+
+239 
+vœtu®
+ 
+	$hªdËBody
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+, size_ˆ
+šdex
+, size_ˆ
+tÙ®
+è
+ov”ride
+ 
+fš®
+ {
+
+240 ià(
+_ÚReque¡
+) {
+
+241 
+_cÚ‹ÁL’gth
+ = 
+tÙ®
+;
+
+242 ià(
+tÙ®
+ > 0 && 
+»que¡
+->
+_‹mpObjeù
+ =ð
+NULL
+ &&�Ù® < 
+_maxCÚ‹ÁL’gth
+) {
+
+243 
+»que¡
+->
+_‹mpObjeù
+ = 
+	`m®loc
+(
+tÙ®
+);
+
+245 ià(
+»que¡
+->
+_‹mpObjeù
+ !ð
+NULL
+) {
+
+246 
+	`memýy
+((
+ušt8_t
+*)(
+»que¡
+->
+_‹mpObjeù
+è+ 
+šdex
+, 
+d©a
+, 
+Ën
+);
+
+249 
+	}
+}
+
+250 
+vœtu®
+ 
+boÞ
+ 
+	$isReque¡HªdËrTrivŸl
+(è
+ov”ride
+ 
+fš®
+ { 
+_ÚReque¡
+ ? 
+çl£
+ : 
+Œue
+;
+	}
+}
+
+	@lib/ESPAsyncWebServer/AsyncWebSocket.cpp
+
+21 
+	~"Ardušo.h
+"
+
+22 
+	~"AsyncWebSock‘.h
+"
+
+24 
+	~<libb64/ûncode.h
+>
+
+26 #iâdeà
+ESP8266
+
+
+29 
+ušt32_t
+ 
+¡©e
+[5];
+
+30 
+ušt32_t
+ 
+couÁ
+[2];
+
+31 
+bufãr
+[64];
+
+32 } 
+	tSHA1_CTX
+;
+
+34 
+SHA1T¿nsfÜm
+(
+ušt32_t
+ 
+¡©e
+[5], cÚ¡ 
+bufãr
+[64]);
+
+35 
+SHA1In™
+(
+SHA1_CTX
+* 
+cÚ‹xt
+);
+
+36 
+SHA1Upd©e
+(
+SHA1_CTX
+* 
+cÚ‹xt
+, cÚ¡ * 
+d©a
+, 
+ušt32_t
+ 
+Ën
+);
+
+37 
+SHA1Fš®
+(
+dige¡
+[20], 
+SHA1_CTX
+* 
+cÚ‹xt
+);
+
+40 
+	~<Hash.h
+>
+
+43 
+	#MAX_PRINTF_LEN
+ 64
+
+	)
+
+45 
+size_t
+ 
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®CouÁ
+ = 0;
+
+46 
+size_t
+ 
+	gAsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®Size
+ = 0;
+
+48 
+size_t
+ 
+	$webSock‘S’dF¿meWšdow
+(
+AsyncCl›Á
+ *
+þ›Á
+){
+
+49 if(!
+þ›Á
+->
+	`ÿnS’d
+())
+
+51 
+size_t
+ 
+¥aû
+ = 
+þ›Á
+->
+	`¥aû
+();
+
+52 if(
+¥aû
+ < 9)
+
+54  
+¥aû
+ - 8;
+
+55 
+	}
+}
+
+57 
+size_t
+ 
+	$webSock‘S’dF¿me
+(
+AsyncCl›Á
+ *
+þ›Á
+, 
+boÞ
+ 
+fš®
+, 
+ušt8_t
+ 
+Ýcode
+, boÞ 
+mask
+, ušt8_ˆ*
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+58 if(!
+þ›Á
+->
+	`ÿnS’d
+())
+
+60 
+size_t
+ 
+¥aû
+ = 
+þ›Á
+->
+	`¥aû
+();
+
+61 if(
+¥aû
+ < 2)
+
+63 
+ušt8_t
+ 
+mbuf
+[4] = {0,0,0,0};
+
+64 
+ušt8_t
+ 
+h—dL’
+ = 2;
+
+65 if(
+Ën
+ && 
+mask
+){
+
+66 
+h—dL’
+ += 4;
+
+67 
+mbuf
+[0] = 
+	`¿nd
+() % 0xFF;
+
+68 
+mbuf
+[1] = 
+	`¿nd
+() % 0xFF;
+
+69 
+mbuf
+[2] = 
+	`¿nd
+() % 0xFF;
+
+70 
+mbuf
+[3] = 
+	`¿nd
+() % 0xFF;
+
+72 if(
+Ën
+ > 125)
+
+73 
+h—dL’
+ += 2;
+
+74 if(
+¥aû
+ < 
+h—dL’
+)
+
+76 
+¥aû
+ -ð
+h—dL’
+;
+
+78 if(
+Ën
+ > 
+¥aû
+)†en = space;
+
+80 
+ušt8_t
+ *
+buf
+ = (ušt8_t*)
+	`m®loc
+(
+h—dL’
+);
+
+81 if(
+buf
+ =ð
+NULL
+){
+
+86 
+buf
+[0] = 
+Ýcode
+ & 0x0F;
+
+87 if(
+fš®
+)
+
+88 
+buf
+[0] |= 0x80;
+
+89 if(
+Ën
+ < 126)
+
+90 
+buf
+[1] = 
+Ën
+ & 0x7F;
+
+92 
+buf
+[1] = 126;
+
+93 
+buf
+[2] = (
+ušt8_t
+)((
+Ën
+ >> 8) & 0xFF);
+
+94 
+buf
+[3] = (
+ušt8_t
+)(
+Ën
+ & 0xFF);
+
+96 if(
+Ën
+ && 
+mask
+){
+
+97 
+buf
+[1] |= 0x80;
+
+98 
+	`memýy
+(
+buf
+ + (
+h—dL’
+ - 4), 
+mbuf
+, 4);
+
+100 if(
+þ›Á
+->
+	`add
+((cÚ¡ *)
+buf
+, 
+h—dL’
+) != headLen){
+
+102 
+	`ä“
+(
+buf
+);
+
+105 
+	`ä“
+(
+buf
+);
+
+107 if(
+Ën
+){
+
+108 if(
+Ën
+ && 
+mask
+){
+
+109 
+size_t
+ 
+i
+;
+
+110 
+i
+=0;i<
+Ën
+;i++)
+
+111 
+d©a
+[
+i
+] = d©a[i] ^ 
+mbuf
+[i%4];
+
+113 if(
+þ›Á
+->
+	`add
+((cÚ¡ *)
+d©a
+, 
+Ën
+) !=†en){
+
+118 if(!
+þ›Á
+->
+	`£nd
+()){
+
+122  
+Ën
+;
+
+123 
+	}
+}
+
+132 
+	gAsyncWebSock‘Mes§geBufãr
+::
+	$AsyncWebSock‘Mes§geBufãr
+()
+
+133 :
+	`_d©a
+(
+nuÎ±r
+)
+
+134 ,
+	`_Ën
+(0)
+
+135 ,
+	`_lock
+(
+çl£
+)
+
+136 ,
+	$_couÁ
+(0)
+
+139 
+	}
+}
+
+141 
+	gAsyncWebSock‘Mes§geBufãr
+::
+	$AsyncWebSock‘Mes§geBufãr
+(
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+size
+)
+
+142 :
+	`_d©a
+(
+nuÎ±r
+)
+
+143 ,
+	`_Ën
+(
+size
+)
+
+144 ,
+	`_lock
+(
+çl£
+)
+
+145 ,
+	$_couÁ
+(0)
+
+148 ià(!
+d©a
+) {
+
+152 
+_d©a
+ = 
+Ãw
+ 
+ušt8_t
+[
+_Ën
+ + 1];
+
+154 ià(
+_d©a
+) {
+
+155 
+	`memýy
+(
+_d©a
+, 
+d©a
+, 
+_Ën
+);
+
+156 
+_d©a
+[
+_Ën
+] = 0;
+
+158 
+	}
+}
+
+161 
+	gAsyncWebSock‘Mes§geBufãr
+::
+	$AsyncWebSock‘Mes§geBufãr
+(
+size_t
+ 
+size
+)
+
+162 :
+	`_d©a
+(
+nuÎ±r
+)
+
+163 ,
+	`_Ën
+(
+size
+)
+
+164 ,
+	`_lock
+(
+çl£
+)
+
+165 ,
+	$_couÁ
+(0)
+
+167 
+_d©a
+ = 
+Ãw
+ 
+ušt8_t
+[
+_Ën
+ + 1];
+
+169 ià(
+_d©a
+) {
+
+170 
+_d©a
+[
+_Ën
+] = 0;
+
+173 
+	}
+}
+
+175 
+	gAsyncWebSock‘Mes§geBufãr
+::
+	$AsyncWebSock‘Mes§geBufãr
+(cÚ¡ 
+AsyncWebSock‘Mes§geBufãr
+ & 
+cÝy
+)
+
+176 :
+	`_d©a
+(
+nuÎ±r
+)
+
+177 ,
+	`_Ën
+(0)
+
+178 ,
+	`_lock
+(
+çl£
+)
+
+179 ,
+	$_couÁ
+(0)
+
+181 
+_Ën
+ = 
+cÝy
+._len;
+
+182 
+_lock
+ = 
+cÝy
+._lock;
+
+183 
+_couÁ
+ = 0;
+
+185 ià(
+_Ën
+) {
+
+186 
+_d©a
+ = 
+Ãw
+ 
+ušt8_t
+[
+_Ën
+ + 1];
+
+187 
+_d©a
+[
+_Ën
+] = 0;
+
+190 ià(
+_d©a
+) {
+
+191 
+	`memýy
+(
+_d©a
+, 
+cÝy
+._d©a, 
+_Ën
+);
+
+192 
+_d©a
+[
+_Ën
+] = 0;
+
+195 
+	}
+}
+
+197 
+	gAsyncWebSock‘Mes§geBufãr
+::
+	$AsyncWebSock‘Mes§geBufãr
+(
+AsyncWebSock‘Mes§geBufãr
+ && 
+cÝy
+)
+
+198 :
+	`_d©a
+(
+nuÎ±r
+)
+
+199 ,
+	`_Ën
+(0)
+
+200 ,
+	`_lock
+(
+çl£
+)
+
+201 ,
+	$_couÁ
+(0)
+
+203 
+_Ën
+ = 
+cÝy
+._len;
+
+204 
+_lock
+ = 
+cÝy
+._lock;
+
+205 
+_couÁ
+ = 0;
+
+207 ià(
+cÝy
+.
+_d©a
+) {
+
+208 
+_d©a
+ = 
+cÝy
+._data;
+
+209 
+cÝy
+.
+_d©a
+ = 
+nuÎ±r
+;
+
+212 
+	}
+}
+
+214 
+	gAsyncWebSock‘Mes§geBufãr
+::~
+	$AsyncWebSock‘Mes§geBufãr
+()
+
+216 ià(
+_d©a
+) {
+
+217 
+d–‘e
+[] 
+_d©a
+;
+
+219 
+	}
+}
+
+221 
+boÞ
+ 
+	gAsyncWebSock‘Mes§geBufãr
+::
+	$»£rve
+(
+size_t
+ 
+size
+)
+
+223 
+_Ën
+ = 
+size
+;
+
+225 ià(
+_d©a
+) {
+
+226 
+d–‘e
+[] 
+_d©a
+;
+
+227 
+_d©a
+ = 
+nuÎ±r
+;
+
+230 
+_d©a
+ = 
+Ãw
+ 
+ušt8_t
+[
+_Ën
+ + 1];
+
+232 ià(
+_d©a
+) {
+
+233 
+_d©a
+[
+_Ën
+] = 0;
+
+234  
+Œue
+;
+
+236  
+çl£
+;
+
+239 
+	}
+}
+
+247 þas 
+	cAsyncWebSock‘CÚŒÞ
+ {
+
+248 
+	m´iv©e
+:
+
+249 
+ušt8_t
+ 
+_Ýcode
+;
+
+250 
+ušt8_t
+ *
+	m_d©a
+;
+
+251 
+size_t
+ 
+	m_Ën
+;
+
+252 
+boÞ
+ 
+	m_mask
+;
+
+253 
+boÞ
+ 
+	m_fšished
+;
+
+254 
+	mpublic
+:
+
+255 
+	$AsyncWebSock‘CÚŒÞ
+(
+ušt8_t
+ 
+Ýcode
+, ušt8_ˆ*
+d©a
+=
+NULL
+, 
+size_t
+ 
+Ën
+=0, 
+boÞ
+ 
+mask
+=
+çl£
+)
+
+256 :
+	`_Ýcode
+(
+Ýcode
+)
+
+257 ,
+	`_Ën
+(
+Ën
+)
+
+258 ,
+	`_mask
+(
+Ën
+ && 
+mask
+)
+
+259 ,
+	$_fšished
+(
+çl£
+)
+
+261 if(
+d©a
+ =ð
+NULL
+)
+
+262 
+_Ën
+ = 0;
+
+263 if(
+_Ën
+){
+
+264 if(
+_Ën
+ > 125)
+
+265 
+_Ën
+ = 125;
+
+266 
+_d©a
+ = (
+ušt8_t
+*)
+	`m®loc
+(
+_Ën
+);
+
+267 if(
+_d©a
+ =ð
+NULL
+)
+
+268 
+_Ën
+ = 0;
+
+269 
+	`memýy_P
+(
+_d©a
+, 
+d©a
+, 
+Ën
+);
+
+270 } 
+_d©a
+ = 
+NULL
+;
+
+272 
+vœtu®
+ ~
+	$AsyncWebSock‘CÚŒÞ
+(){
+
+273 if(
+_d©a
+ !ð
+NULL
+)
+
+274 
+	`ä“
+(
+_d©a
+);
+
+275 
+	}
+}
+
+276 
+vœtu®
+ 
+boÞ
+ 
+	$fšished
+(ècÚ¡ {  
+_fšished
+; 
+	}
+}
+
+277 
+ušt8_t
+ 
+	$Ýcode
+(){  
+_Ýcode
+; 
+	}
+}
+
+278 
+ušt8_t
+ 
+	$Ën
+(){  
+_Ën
+ + 2; 
+	}
+}
+
+279 
+size_t
+ 
+	$£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+){
+
+280 
+_fšished
+ = 
+Œue
+;
+
+281  
+	`webSock‘S’dF¿me
+(
+þ›Á
+, 
+Œue
+, 
+_Ýcode
+ & 0x0F, 
+_mask
+, 
+_d©a
+, 
+_Ën
+);
+
+282 
+	}
+}
+
+290 
+	gAsyncWebSock‘BasicMes§ge
+::
+	$AsyncWebSock‘BasicMes§ge
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+Ën
+, 
+ušt8_t
+ 
+Ýcode
+, 
+boÞ
+ 
+mask
+)
+
+291 :
+	`_Ën
+(
+Ën
+)
+
+292 ,
+	`_£Á
+(0)
+
+293 ,
+	`_ack
+(0)
+
+294 ,
+	$_acked
+(0)
+
+296 
+_Ýcode
+ = 
+Ýcode
+ & 0x07;
+
+297 
+_mask
+ = 
+mask
+;
+
+298 
+_d©a
+ = (
+ušt8_t
+*)
+	`m®loc
+(
+_Ën
++1);
+
+299 if(
+_d©a
+ =ð
+NULL
+){
+
+300 
+_Ën
+ = 0;
+
+301 
+_¡©us
+ = 
+WS_MSG_ERROR
+;
+
+303 
+_¡©us
+ = 
+WS_MSG_SENDING
+;
+
+304 
+	`memýy
+(
+_d©a
+, 
+d©a
+, 
+_Ën
+);
+
+305 
+_d©a
+[
+_Ën
+] = 0;
+
+307 
+	}
+}
+
+308 
+	gAsyncWebSock‘BasicMes§ge
+::
+	$AsyncWebSock‘BasicMes§ge
+(
+ušt8_t
+ 
+Ýcode
+, 
+boÞ
+ 
+mask
+)
+
+309 :
+	`_Ën
+(0)
+
+310 ,
+	`_£Á
+(0)
+
+311 ,
+	`_ack
+(0)
+
+312 ,
+	`_acked
+(0)
+
+313 ,
+	$_d©a
+(
+NULL
+)
+
+315 
+_Ýcode
+ = 
+Ýcode
+ & 0x07;
+
+316 
+_mask
+ = 
+mask
+;
+
+318 
+	}
+}
+
+321 
+	gAsyncWebSock‘BasicMes§ge
+::~
+	$AsyncWebSock‘BasicMes§ge
+() {
+
+322 if(
+_d©a
+ !ð
+NULL
+)
+
+323 
+	`ä“
+(
+_d©a
+);
+
+324 
+	}
+}
+
+326 
+	gAsyncWebSock‘BasicMes§ge
+::
+	$ack
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+) {
+
+327 ()
+time
+;
+
+328 
+_acked
+ +ð
+Ën
+;
+
+329 if(
+_£Á
+ =ð
+_Ën
+ && 
+_acked
+ =ð
+_ack
+){
+
+330 
+_¡©us
+ = 
+WS_MSG_SENT
+;
+
+332 
+	}
+}
+
+333 
+size_t
+ 
+	gAsyncWebSock‘BasicMes§ge
+::
+	$£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+) {
+
+334 if(
+_¡©us
+ !ð
+WS_MSG_SENDING
+)
+
+336 if(
+_acked
+ < 
+_ack
+){
+
+339 if(
+_£Á
+ =ð
+_Ën
+){
+
+340 if(
+_acked
+ =ð
+_ack
+)
+
+341 
+_¡©us
+ = 
+WS_MSG_SENT
+;
+
+344 if(
+_£Á
+ > 
+_Ën
+){
+
+345 
+_¡©us
+ = 
+WS_MSG_ERROR
+;
+
+349 
+size_t
+ 
+toS’d
+ = 
+_Ën
+ - 
+_£Á
+;
+
+350 
+size_t
+ 
+wšdow
+ = 
+	`webSock‘S’dF¿meWšdow
+(
+þ›Á
+);
+
+352 if(
+wšdow
+ < 
+toS’d
+) {
+
+353 
+toS’d
+ = 
+wšdow
+;
+
+356 
+_£Á
+ +ð
+toS’d
+;
+
+357 
+_ack
+ +ð
+toS’d
+ + (ÑoS’d < 126)?2:4è+ (
+_mask
+ * 4);
+
+359 
+boÞ
+ 
+fš®
+ = (
+_£Á
+ =ð
+_Ën
+);
+
+360 
+ušt8_t
+* 
+dPŒ
+ = (ušt8_t*)(
+_d©a
+ + (
+_£Á
+ - 
+toS’d
+));
+
+361 
+ušt8_t
+ 
+ÝCode
+ = (
+toS’d
+ && 
+_£Á
+ =ðtoS’d)?
+_Ýcode
+:(ušt8_t)
+WS_CONTINUATION
+;
+
+363 
+size_t
+ 
+£Á
+ = 
+	`webSock‘S’dF¿me
+(
+þ›Á
+, 
+fš®
+, 
+ÝCode
+, 
+_mask
+, 
+dPŒ
+, 
+toS’d
+);
+
+364 
+_¡©us
+ = 
+WS_MSG_SENDING
+;
+
+365 if(
+toS’d
+ && 
+£Á
+ !=�oSend){
+
+366 
+_£Á
+ -ð(
+toS’d
+ - 
+£Á
+);
+
+367 
+_ack
+ -ð(
+toS’d
+ - 
+£Á
+);
+
+369  
+£Á
+;
+
+370 
+	}
+}
+
+391 
+	gAsyncWebSock‘MuÉiMes§ge
+::
+	$AsyncWebSock‘MuÉiMes§ge
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+, 
+ušt8_t
+ 
+Ýcode
+, 
+boÞ
+ 
+mask
+)
+
+392 :
+	`_Ën
+(0)
+
+393 ,
+	`_£Á
+(0)
+
+394 ,
+	`_ack
+(0)
+
+395 ,
+	`_acked
+(0)
+
+396 ,
+	$_WSbufãr
+(
+nuÎ±r
+)
+
+399 
+_Ýcode
+ = 
+Ýcode
+ & 0x07;
+
+400 
+_mask
+ = 
+mask
+;
+
+402 ià(
+bufãr
+) {
+
+403 
+_WSbufãr
+ = 
+bufãr
+;
+
+404 (*
+_WSbufãr
+)++;
+
+405 
+_d©a
+ = 
+bufãr
+->
+	`g‘
+();
+
+406 
+_Ën
+ = 
+bufãr
+->
+	`Ëngth
+();
+
+407 
+_¡©us
+ = 
+WS_MSG_SENDING
+;
+
+410 
+_¡©us
+ = 
+WS_MSG_ERROR
+;
+
+413 
+	}
+}
+
+416 
+	gAsyncWebSock‘MuÉiMes§ge
+::~
+	$AsyncWebSock‘MuÉiMes§ge
+() {
+
+417 ià(
+_WSbufãr
+) {
+
+418 (*
+_WSbufãr
+)--;
+
+420 
+	}
+}
+
+422 
+	gAsyncWebSock‘MuÉiMes§ge
+::
+	$ack
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+) {
+
+423 ()
+time
+;
+
+424 
+_acked
+ +ð
+Ën
+;
+
+425 if(
+_£Á
+ >ð
+_Ën
+ && 
+_acked
+ >ð
+_ack
+){
+
+426 
+_¡©us
+ = 
+WS_MSG_SENT
+;
+
+429 
+	}
+}
+
+430 
+size_t
+ 
+	gAsyncWebSock‘MuÉiMes§ge
+::
+	$£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+) {
+
+431 if(
+_¡©us
+ !ð
+WS_MSG_SENDING
+)
+
+433 if(
+_acked
+ < 
+_ack
+){
+
+436 if(
+_£Á
+ =ð
+_Ën
+){
+
+437 
+_¡©us
+ = 
+WS_MSG_SENT
+;
+
+440 if(
+_£Á
+ > 
+_Ën
+){
+
+441 
+_¡©us
+ = 
+WS_MSG_ERROR
+;
+
+446 
+size_t
+ 
+toS’d
+ = 
+_Ën
+ - 
+_£Á
+;
+
+447 
+size_t
+ 
+wšdow
+ = 
+	`webSock‘S’dF¿meWšdow
+(
+þ›Á
+);
+
+449 if(
+wšdow
+ < 
+toS’d
+) {
+
+450 
+toS’d
+ = 
+wšdow
+;
+
+453 
+_£Á
+ +ð
+toS’d
+;
+
+454 
+_ack
+ +ð
+toS’d
+ + (ÑoS’d < 126)?2:4è+ (
+_mask
+ * 4);
+
+458 
+boÞ
+ 
+fš®
+ = (
+_£Á
+ =ð
+_Ën
+);
+
+459 
+ušt8_t
+* 
+dPŒ
+ = (ušt8_t*)(
+_d©a
+ + (
+_£Á
+ - 
+toS’d
+));
+
+460 
+ušt8_t
+ 
+ÝCode
+ = (
+toS’d
+ && 
+_£Á
+ =ðtoS’d)?
+_Ýcode
+:(ušt8_t)
+WS_CONTINUATION
+;
+
+462 
+size_t
+ 
+£Á
+ = 
+	`webSock‘S’dF¿me
+(
+þ›Á
+, 
+fš®
+, 
+ÝCode
+, 
+_mask
+, 
+dPŒ
+, 
+toS’d
+);
+
+463 
+_¡©us
+ = 
+WS_MSG_SENDING
+;
+
+464 if(
+toS’d
+ && 
+£Á
+ !=�oSend){
+
+466 
+_£Á
+ -ð(
+toS’d
+ - 
+£Á
+);
+
+467 
+_ack
+ -ð(
+toS’d
+ - 
+£Á
+);
+
+470  
+£Á
+;
+
+471 
+	}
+}
+
+477 cÚ¡ *
+	gAWSC_PING_PAYLOAD
+[] 
+	gPROGMEM
+ = { "ESPAsyncWebServer-PING" };
+
+478 cÚ¡ 
+size_t
+ 
+	gAWSC_PING_PAYLOAD_LEN
+ = 22;
+
+480 
+	gAsyncWebSock‘Cl›Á
+::
+	$AsyncWebSock‘Cl›Á
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+AsyncWebSock‘
+ *
+£rv”
+)
+
+481 : 
+	`_cÚŒÞQueue
+(
+LškedLi¡
+<
+AsyncWebSock‘CÚŒÞ
+ *>([](AsyncWebSock‘CÚŒÞ *
+c
+){ 
+d–‘e
+ c; 
+	}
+}))
+
+482 , 
+_mes§geQueue
+(
+LškedLi¡
+<
+AsyncWebSock‘Mes§ge
+ *>([](AsyncWebSock‘Mes§g�*
+m
+){ 
+d–‘e
+ m; }))
+
+483 , 
+	$_‹mpObjeù
+(
+NULL
+)
+
+485 
+_þ›Á
+ = 
+»que¡
+->
+	`þ›Á
+();
+
+486 
+_£rv”
+ = 
+£rv”
+;
+
+487 
+_þ›ÁId
+ = 
+_£rv”
+->
+	`_g‘NextId
+();
+
+488 
+_¡©us
+ = 
+WS_CONNECTED
+;
+
+489 
+_p¡©e
+ = 0;
+
+490 
+_Ï¡Mes§geTime
+ = 
+	`mžlis
+();
+
+491 
+_k“pAliveP”iod
+ = 0;
+
+492 
+_þ›Á
+->
+	`£tRxTimeout
+(0);
+
+493 
+_þ›Á
+->
+	`ÚE¼Ü
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+, 
+št8_t
+ 
+”rÜ
+){ ()c; ((
+AsyncWebSock‘Cl›Á
+*)Ô))->
+	`_ÚE¼Ü
+Ó¼Ü); }, 
+this
+);
+
+494 
+_þ›Á
+->
+	`ÚAck
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){ ()c; ((
+AsyncWebSock‘Cl›Á
+*)Ô))->
+	`_ÚAck
+Ö’,�ime); }, 
+this
+);
+
+495 
+_þ›Á
+->
+	`ÚDiscÚÃù
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+){ ((
+AsyncWebSock‘Cl›Á
+*)Ô))->
+	`_ÚDiscÚÃù
+(); 
+d–‘e
+ c; }, 
+this
+);
+
+496 
+_þ›Á
+->
+	`ÚTimeout
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+, 
+ušt32_t
+ 
+time
+){ ()c; ((
+AsyncWebSock‘Cl›Á
+*)Ô))->
+	`_ÚTimeout
+Ñime); }, 
+this
+);
+
+497 
+_þ›Á
+->
+	`ÚD©a
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+, *
+buf
+, 
+size_t
+ 
+Ën
+){ ()c; ((
+AsyncWebSock‘Cl›Á
+*)Ô))->
+	`_ÚD©a
+(buf,†’); }, 
+this
+);
+
+498 
+_þ›Á
+->
+	`ÚPÞl
+([](*
+r
+, 
+AsyncCl›Á
+* 
+c
+){ ()c; ((
+AsyncWebSock‘Cl›Á
+*)Ô))->
+	`_ÚPÞl
+(); }, 
+this
+);
+
+499 
+_£rv”
+->
+	`_addCl›Á
+(
+this
+);
+
+500 
+_£rv”
+->
+	`_hªdËEv’t
+(
+this
+, 
+WS_EVT_CONNECT
+, 
+»que¡
+, 
+NULL
+, 0);
+
+501 
+d–‘e
+ 
+»que¡
+;
+
+502 
+	}
+}
+
+504 
+	gAsyncWebSock‘Cl›Á
+::~
+	$AsyncWebSock‘Cl›Á
+(){
+
+505 
+_mes§geQueue
+.
+	`ä“
+();
+
+506 
+_cÚŒÞQueue
+.
+	`ä“
+();
+
+507 
+_£rv”
+->
+	`_hªdËEv’t
+(
+this
+, 
+WS_EVT_DISCONNECT
+, 
+NULL
+, NULL, 0);
+
+508 
+	}
+}
+
+510 
+	gAsyncWebSock‘Cl›Á
+::
+	$_ÚAck
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){
+
+511 
+_Ï¡Mes§geTime
+ = 
+	`mžlis
+();
+
+512 if(!
+_cÚŒÞQueue
+.
+	`isEm±y
+()){
+
+513 autØ
+h—d
+ = 
+_cÚŒÞQueue
+.
+	`äÚt
+();
+
+514 if(
+h—d
+->
+	`fšished
+()){
+
+515 
+Ën
+ -ð
+h—d
+->
+	`Ën
+();
+
+516 if(
+_¡©us
+ =ð
+WS_DISCONNECTING
+ && 
+h—d
+->
+	`Ýcode
+(è=ð
+WS_DISCONNECT
+){
+
+517 
+_cÚŒÞQueue
+.
+	`»move
+(
+h—d
+);
+
+518 
+_¡©us
+ = 
+WS_DISCONNECTED
+;
+
+519 
+_þ›Á
+->
+	`þo£
+(
+Œue
+);
+
+522 
+_cÚŒÞQueue
+.
+	`»move
+(
+h—d
+);
+
+525 if(
+Ën
+ && !
+_mes§geQueue
+.
+	`isEm±y
+()){
+
+526 
+_mes§geQueue
+.
+	`äÚt
+()->
+	`ack
+(
+Ën
+, 
+time
+);
+
+528 
+_£rv”
+->
+	`_þ—nBufãrs
+();
+
+529 
+	`_runQueue
+();
+
+530 
+	}
+}
+
+532 
+	gAsyncWebSock‘Cl›Á
+::
+	$_ÚPÞl
+(){
+
+533 if(
+_þ›Á
+->
+	`ÿnS’d
+(è&& (!
+_cÚŒÞQueue
+.
+	`isEm±y
+(è|| !
+_mes§geQueue
+.isEmpty())){
+
+534 
+	`_runQueue
+();
+
+535 } if(
+_k“pAliveP”iod
+ > 0 && 
+_cÚŒÞQueue
+.
+	`isEm±y
+(è&& 
+_mes§geQueue
+.isEm±y(è&& (
+	`mžlis
+(è- 
+_Ï¡Mes§geTime
+) >= _keepAlivePeriod){
+
+536 
+	`pšg
+((
+ušt8_t
+ *)
+AWSC_PING_PAYLOAD
+, 
+AWSC_PING_PAYLOAD_LEN
+);
+
+538 
+	}
+}
+
+540 
+	gAsyncWebSock‘Cl›Á
+::
+	$_runQueue
+(){
+
+541 !
+_mes§geQueue
+.
+	`isEm±y
+(è&& _mes§geQueue.
+	`äÚt
+()->
+	`fšished
+()){
+
+542 
+_mes§geQueue
+.
+	`»move
+(_mes§geQueue.
+	`äÚt
+());
+
+545 if(!
+_cÚŒÞQueue
+.
+	`isEm±y
+(è&& (
+_mes§geQueue
+.isEm±y(è|| _mes§geQueue.
+	`äÚt
+()->
+	`b‘w“nF¿mes
+()è&& 
+	`webSock‘S’dF¿meWšdow
+(
+_þ›Á
+è> (
+size_t
+)(_cÚŒÞQueue.äÚt()->
+	`Ën
+() - 1)){
+
+546 
+_cÚŒÞQueue
+.
+	`äÚt
+()->
+	`£nd
+(
+_þ›Á
+);
+
+547 } if(!
+_mes§geQueue
+.
+	`isEm±y
+(è&& _mes§geQueue.
+	`äÚt
+()->
+	`b‘w“nF¿mes
+(è&& 
+	`webSock‘S’dF¿meWšdow
+(
+_þ›Á
+)){
+
+548 
+_mes§geQueue
+.
+	`äÚt
+()->
+	`£nd
+(
+_þ›Á
+);
+
+550 
+	}
+}
+
+552 
+boÞ
+ 
+	gAsyncWebSock‘Cl›Á
+::
+	$queueIsFuÎ
+(){
+
+553 if(
+	`_queueIsFuÎ
+(è|| (
+_¡©us
+ !ð
+WS_CONNECTED
+èè 
+Œue
+;
+
+554  
+çl£
+;
+
+555 
+	}
+}
+
+557 
+boÞ
+ 
+	gAsyncWebSock‘Cl›Á
+::
+	$_queueIsFuÎ
+() const {
+
+559 (
+_£rv”
+->
+	`g‘QueuedMes§geCouÁ
+(è>ð
+WS_MAX_QUEUED_MESSAGES
+) ||
+
+560 (
+_£rv”
+->
+	`g‘QueuedMes§geSize
+(è>ð
+WS_MAX_QUEUED_MESSAGES_SIZE
+)
+
+561 #ià
+WS_MAX_QUEUED_MESSAGES_MIN_HEAP
+
+
+562 || (
+ESP
+.
+	`g‘F»eH—p
+(è< 
+WS_MAX_QUEUED_MESSAGES_MIN_HEAP
+)
+
+565 
+	}
+}
+
+567 
+	gAsyncWebSock‘Cl›Á
+::
+	$_queueMes§ge
+(
+AsyncWebSock‘Mes§ge
+ *
+d©aMes§ge
+){
+
+568 if(
+d©aMes§ge
+ =ð
+NULL
+)
+
+570 if(
+_¡©us
+ !ð
+WS_CONNECTED
+){
+
+571 
+d–‘e
+ 
+d©aMes§ge
+;
+
+574 if(
+	`_queueIsFuÎ
+()){
+
+575 #ià
+DEBUG
+
+
+576 ::
+	`´štf
+(
+	`PSTR
+("AsyncWebSocketClient: Too many messages queued\n"));
+
+578 
+d–‘e
+ 
+d©aMes§ge
+;
+
+580 
+_mes§geQueue
+.
+	`add
+(
+d©aMes§ge
+);
+
+582 if(
+_þ›Á
+->
+	`ÿnS’d
+())
+
+583 
+	`_runQueue
+();
+
+584 
+	}
+}
+
+586 
+	gAsyncWebSock‘Cl›Á
+::
+	$_queueCÚŒÞ
+(
+AsyncWebSock‘CÚŒÞ
+ *
+cÚŒÞMes§ge
+){
+
+587 if(
+cÚŒÞMes§ge
+ =ð
+NULL
+)
+
+589 
+_cÚŒÞQueue
+.
+	`add
+(
+cÚŒÞMes§ge
+);
+
+590 if(
+_þ›Á
+->
+	`ÿnS’d
+())
+
+591 
+	`_runQueue
+();
+
+592 
+	}
+}
+
+594 
+	gAsyncWebSock‘Cl›Á
+::
+	$þo£
+(
+ušt16_t
+ 
+code
+, cÚ¡ * 
+mes§ge
+){
+
+595 if(
+_¡©us
+ !ð
+WS_CONNECTED
+)
+
+597 if(
+code
+){
+
+598 
+ušt8_t
+ 
+·ck‘L’
+ = 2;
+
+599 if(
+mes§ge
+ !ð
+NULL
+){
+
+600 
+size_t
+ 
+mËn
+ = 
+	`¡¾’
+(
+mes§ge
+);
+
+601 if(
+mËn
+ > 123) mlen = 123;
+
+602 
+·ck‘L’
+ +ð
+mËn
+;
+
+604 * 
+buf
+ = (*)
+	`m®loc
+(
+·ck‘L’
+);
+
+605 if(
+buf
+ !ð
+NULL
+){
+
+606 
+buf
+[0] = (
+ušt8_t
+)(
+code
+ >> 8);
+
+607 
+buf
+[1] = (
+ušt8_t
+)(
+code
+ & 0xFF);
+
+608 if(
+mes§ge
+ !ð
+NULL
+){
+
+609 
+	`memýy
+(
+buf
++2, 
+mes§ge
+, 
+·ck‘L’
+ -2);
+
+611 
+	`_queueCÚŒÞ
+(
+Ãw
+ 
+	`AsyncWebSock‘CÚŒÞ
+(
+WS_DISCONNECT
+,(
+ušt8_t
+*)
+buf
+,
+·ck‘L’
+));
+
+612 
+	`ä“
+(
+buf
+);
+
+616 
+	`_queueCÚŒÞ
+(
+Ãw
+ 
+	`AsyncWebSock‘CÚŒÞ
+(
+WS_DISCONNECT
+));
+
+617 
+	}
+}
+
+619 
+	gAsyncWebSock‘Cl›Á
+::
+	$pšg
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+620 if(
+_¡©us
+ =ð
+WS_CONNECTED
+)
+
+621 
+	`_queueCÚŒÞ
+(
+Ãw
+ 
+	`AsyncWebSock‘CÚŒÞ
+(
+WS_PING
+, 
+d©a
+, 
+Ën
+));
+
+622 
+	}
+}
+
+624 
+	gAsyncWebSock‘Cl›Á
+::
+	$_ÚE¼Ü
+(
+št8_t
+){
+	}
+}
+
+626 
+AsyncWebSock‘Cl›Á
+::
+	$_ÚTimeout
+(
+ušt32_t
+ 
+time
+){
+
+627 ()
+time
+;
+
+628 
+_þ›Á
+->
+	`þo£
+(
+Œue
+);
+
+629 
+	}
+}
+
+631 
+	gAsyncWebSock‘Cl›Á
+::
+	$_ÚDiscÚÃù
+(){
+
+632 
+_þ›Á
+ = 
+NULL
+;
+
+633 
+_£rv”
+->
+	`_hªdËDiscÚÃù
+(
+this
+);
+
+634 
+	}
+}
+
+636 
+	gAsyncWebSock‘Cl›Á
+::
+	$_ÚD©a
+(*
+pbuf
+, 
+size_t
+ 
+¶’
+){
+
+637 
+_Ï¡Mes§geTime
+ = 
+	`mžlis
+();
+
+638 
+ušt8_t
+ *
+d©a
+ = (ušt8_t*)
+pbuf
+;
+
+639 
+¶’
+ > 0){
+
+640 if(!
+_p¡©e
+){
+
+641 cÚ¡ 
+ušt8_t
+ *
+fd©a
+ = 
+d©a
+;
+
+642 
+_pšfo
+.
+šdex
+ = 0;
+
+643 
+_pšfo
+.
+fš®
+ = (
+fd©a
+[0] & 0x80) != 0;
+
+644 
+_pšfo
+.
+Ýcode
+ = 
+fd©a
+[0] & 0x0F;
+
+645 
+_pšfo
+.
+masked
+ = (
+fd©a
+[1] & 0x80) != 0;
+
+646 
+_pšfo
+.
+Ën
+ = 
+fd©a
+[1] & 0x7F;
+
+647 
+d©a
+ += 2;
+
+648 
+¶’
+ -= 2;
+
+649 if(
+_pšfo
+.
+Ën
+ == 126){
+
+650 
+_pšfo
+.
+Ën
+ = 
+fd©a
+[3] | (
+ušt16_t
+)(fdata[2]) << 8;
+
+651 
+d©a
+ += 2;
+
+652 
+¶’
+ -= 2;
+
+653 } if(
+_pšfo
+.
+Ën
+ == 127){
+
+654 
+_pšfo
+.
+Ën
+ = 
+fd©a
+[9] | (
+ušt16_t
+)(fd©a[8]è<< 8 | (
+ušt32_t
+)(fd©a[7]è<< 16 | (ušt32_t)(fd©a[6]è<< 24 | (
+ušt64_t
+)(fdata[5]) << 32 | (uint64_t)(fdata[4]) << 40 | (uint64_t)(fdata[3]) << 48 | (uint64_t)(fdata[2]) << 56;
+
+655 
+d©a
+ += 8;
+
+656 
+¶’
+ -= 8;
+
+659 if(
+_pšfo
+.
+masked
+){
+
+660 
+	`memýy
+(
+_pšfo
+.
+mask
+, 
+d©a
+, 4);
+
+661 
+d©a
+ += 4;
+
+662 
+¶’
+ -= 4;
+
+666 cÚ¡ 
+size_t
+ 
+d©®’
+ = 
+¡d
+::
+	`mš
+((size_t)(
+_pšfo
+.
+Ën
+ - _pšfo.
+šdex
+), 
+¶’
+);
+
+667 cÚ¡‡utØ
+d©®a¡
+ = 
+d©a
+[
+d©®’
+];
+
+669 if(
+_pšfo
+.
+masked
+){
+
+670 
+size_t
+ 
+i
+=0;i<
+d©®’
+;i++)
+
+671 
+d©a
+[
+i
+] ^ð
+_pšfo
+.
+mask
+[(_pšfo.
+šdex
++i)%4];
+
+674 if((
+d©®’
+ + 
+_pšfo
+.
+šdex
+è< _pšfo.
+Ën
+){
+
+675 
+_p¡©e
+ = 1;
+
+677 if(
+_pšfo
+.
+šdex
+ == 0){
+
+678 if(
+_pšfo
+.
+Ýcode
+){
+
+679 
+_pšfo
+.
+mes§ge_Ýcode
+ = _pšfo.
+Ýcode
+;
+
+680 
+_pšfo
+.
+num
+ = 0;
+
+681 } 
+_pšfo
+.
+num
+ += 1;
+
+683 
+_£rv”
+->
+	`_hªdËEv’t
+(
+this
+, 
+WS_EVT_DATA
+, (*)&
+_pšfo
+, (
+ušt8_t
+*)
+d©a
+, 
+d©®’
+);
+
+685 
+_pšfo
+.
+šdex
+ +ð
+d©®’
+;
+
+686 } if((
+d©®’
+ + 
+_pšfo
+.
+šdex
+è=ð_pšfo.
+Ën
+){
+
+687 
+_p¡©e
+ = 0;
+
+688 if(
+_pšfo
+.
+Ýcode
+ =ð
+WS_DISCONNECT
+){
+
+689 if(
+d©®’
+){
+
+690 
+ušt16_t
+ 
+»asÚCode
+ = (ušt16_t)(
+d©a
+[0] << 8) + data[1];
+
+691 * 
+»asÚSŒšg
+ = (*)(
+d©a
++2);
+
+692 if(
+»asÚCode
+ > 1001){
+
+693 
+_£rv”
+->
+	`_hªdËEv’t
+(
+this
+, 
+WS_EVT_ERROR
+, (*)&
+»asÚCode
+, (
+ušt8_t
+*)
+»asÚSŒšg
+, 
+	`¡¾’
+(reasonString));
+
+696 if(
+_¡©us
+ =ð
+WS_DISCONNECTING
+){
+
+697 
+_¡©us
+ = 
+WS_DISCONNECTED
+;
+
+698 
+_þ›Á
+->
+	`þo£
+(
+Œue
+);
+
+700 
+_¡©us
+ = 
+WS_DISCONNECTING
+;
+
+701 
+_þ›Á
+->
+	`ackL©”
+();
+
+702 
+	`_queueCÚŒÞ
+(
+Ãw
+ 
+	`AsyncWebSock‘CÚŒÞ
+(
+WS_DISCONNECT
+, 
+d©a
+, 
+d©®’
+));
+
+704 } if(
+_pšfo
+.
+Ýcode
+ =ð
+WS_PING
+){
+
+705 
+	`_queueCÚŒÞ
+(
+Ãw
+ 
+	`AsyncWebSock‘CÚŒÞ
+(
+WS_PONG
+, 
+d©a
+, 
+d©®’
+));
+
+706 } if(
+_pšfo
+.
+Ýcode
+ =ð
+WS_PONG
+){
+
+707 if(
+d©®’
+ !ð
+AWSC_PING_PAYLOAD_LEN
+ || 
+	`memcmp_P
+(
+d©a
+, 
+AWSC_PING_PAYLOAD
+, AWSC_PING_PAYLOAD_LEN) != 0)
+
+708 
+_£rv”
+->
+	`_hªdËEv’t
+(
+this
+, 
+WS_EVT_PONG
+, 
+NULL
+, 
+d©a
+, 
+d©®’
+);
+
+709 } if(
+_pšfo
+.
+Ýcode
+ < 8){
+
+710 
+_£rv”
+->
+	`_hªdËEv’t
+(
+this
+, 
+WS_EVT_DATA
+, (*)&
+_pšfo
+, 
+d©a
+, 
+d©®’
+);
+
+719 ià(
+d©®’
+ > 0)
+
+720 
+d©a
+[
+d©®’
+] = 
+d©®a¡
+;
+
+722 
+d©a
+ +ð
+d©®’
+;
+
+723 
+¶’
+ -ð
+d©®’
+;
+
+725 
+	}
+}
+
+727 
+size_t
+ 
+	gAsyncWebSock‘Cl›Á
+::
+	$´štf
+(cÚ¡ *
+fÜm©
+, ...) {
+
+728 
+va_li¡
+ 
+¬g
+;
+
+729 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©
+);
+
+730 * 
+‹mp
+ = 
+Ãw
+ [
+MAX_PRINTF_LEN
+];
+
+731 if(!
+‹mp
+){
+
+732 
+	`va_’d
+(
+¬g
+);
+
+735 * 
+bufãr
+ = 
+‹mp
+;
+
+736 
+size_t
+ 
+Ën
+ = 
+	`v¢´štf
+(
+‹mp
+, 
+MAX_PRINTF_LEN
+, 
+fÜm©
+, 
+¬g
+);
+
+737 
+	`va_’d
+(
+¬g
+);
+
+739 ià(
+Ën
+ > (
+MAX_PRINTF_LEN
+ - 1)) {
+
+740 
+bufãr
+ = 
+Ãw
+ [
+Ën
+ + 1];
+
+741 ià(!
+bufãr
+) {
+
+742 
+d–‘e
+[] 
+‹mp
+;
+
+745 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©
+);
+
+746 
+	`v¢´štf
+(
+bufãr
+, 
+Ën
+ + 1, 
+fÜm©
+, 
+¬g
+);
+
+747 
+	`va_’d
+(
+¬g
+);
+
+749 
+	`‹xt
+(
+bufãr
+, 
+Ën
+);
+
+750 ià(
+bufãr
+ !ð
+‹mp
+) {
+
+751 
+d–‘e
+[] 
+bufãr
+;
+
+753 
+d–‘e
+[] 
+‹mp
+;
+
+754  
+Ën
+;
+
+755 
+	}
+}
+
+757 #iâdeà
+ESP32
+
+
+758 
+size_t
+ 
+	gAsyncWebSock‘Cl›Á
+::
+	$´štf_P
+(
+PGM_P
+ 
+fÜm©P
+, ...) {
+
+759 
+va_li¡
+ 
+¬g
+;
+
+760 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©P
+);
+
+761 * 
+‹mp
+ = 
+Ãw
+ [
+MAX_PRINTF_LEN
+];
+
+762 if(!
+‹mp
+){
+
+763 
+	`va_’d
+(
+¬g
+);
+
+766 * 
+bufãr
+ = 
+‹mp
+;
+
+767 
+size_t
+ 
+Ën
+ = 
+	`v¢´štf_P
+(
+‹mp
+, 
+MAX_PRINTF_LEN
+, 
+fÜm©P
+, 
+¬g
+);
+
+768 
+	`va_’d
+(
+¬g
+);
+
+770 ià(
+Ën
+ > (
+MAX_PRINTF_LEN
+ - 1)) {
+
+771 
+bufãr
+ = 
+Ãw
+ [
+Ën
+ + 1];
+
+772 ià(!
+bufãr
+) {
+
+773 
+d–‘e
+[] 
+‹mp
+;
+
+776 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©P
+);
+
+777 
+	`v¢´štf_P
+(
+bufãr
+, 
+Ën
+ + 1, 
+fÜm©P
+, 
+¬g
+);
+
+778 
+	`va_’d
+(
+¬g
+);
+
+780 
+	`‹xt
+(
+bufãr
+, 
+Ën
+);
+
+781 ià(
+bufãr
+ !ð
+‹mp
+) {
+
+782 
+d–‘e
+[] 
+bufãr
+;
+
+784 
+d–‘e
+[] 
+‹mp
+;
+
+785  
+Ën
+;
+
+786 
+	}
+}
+
+789 
+	gAsyncWebSock‘Cl›Á
+::
+	$‹xt
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+790 
+	`_queueMes§ge
+(
+Ãw
+ 
+	`AsyncWebSock‘BasicMes§ge
+(
+mes§ge
+, 
+Ën
+));
+
+791 
+	}
+}
+
+792 
+	gAsyncWebSock‘Cl›Á
+::
+	$‹xt
+(cÚ¡ * 
+mes§ge
+){
+
+793 
+	`‹xt
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+794 
+	}
+}
+
+795 
+	gAsyncWebSock‘Cl›Á
+::
+	$‹xt
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+796 
+	`‹xt
+((cÚ¡ *)
+mes§ge
+, 
+Ën
+);
+
+797 
+	}
+}
+
+798 
+	gAsyncWebSock‘Cl›Á
+::
+	$‹xt
+(* 
+mes§ge
+){
+
+799 
+	`‹xt
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+800 
+	}
+}
+
+801 
+	gAsyncWebSock‘Cl›Á
+::
+	$‹xt
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+){
+
+802 
+	`‹xt
+(
+mes§ge
+.
+	`c_¡r
+(), mes§ge.
+	`Ëngth
+());
+
+803 
+	}
+}
+
+804 
+	gAsyncWebSock‘Cl›Á
+::
+	$‹xt
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+d©a
+){
+
+805 
+	`‹xt
+(
+	`SŒšg
+(
+d©a
+));
+
+806 
+	}
+}
+
+807 
+	gAsyncWebSock‘Cl›Á
+::
+	$‹xt
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+)
+
+809 
+	`_queueMes§ge
+(
+Ãw
+ 
+	`AsyncWebSock‘MuÉiMes§ge
+(
+bufãr
+));
+
+810 
+	}
+}
+
+812 
+	gAsyncWebSock‘Cl›Á
+::
+	$bš¬y
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+813 
+	`_queueMes§ge
+(
+Ãw
+ 
+	`AsyncWebSock‘BasicMes§ge
+(
+mes§ge
+, 
+Ën
+, 
+WS_BINARY
+));
+
+814 
+	}
+}
+
+815 
+	gAsyncWebSock‘Cl›Á
+::
+	$bš¬y
+(cÚ¡ * 
+mes§ge
+){
+
+816 
+	`bš¬y
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+817 
+	}
+}
+
+818 
+	gAsyncWebSock‘Cl›Á
+::
+	$bš¬y
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+819 
+	`bš¬y
+((cÚ¡ *)
+mes§ge
+, 
+Ën
+);
+
+820 
+	}
+}
+
+821 
+	gAsyncWebSock‘Cl›Á
+::
+	$bš¬y
+(* 
+mes§ge
+){
+
+822 
+	`bš¬y
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+823 
+	}
+}
+
+824 
+	gAsyncWebSock‘Cl›Á
+::
+	$bš¬y
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+){
+
+825 
+	`bš¬y
+(
+mes§ge
+.
+	`c_¡r
+(), mes§ge.
+	`Ëngth
+());
+
+826 
+	}
+}
+
+827 
+	gAsyncWebSock‘Cl›Á
+::
+	$bš¬y
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+828 
+PGM_P
+ 
+p
+ = 
+»š‹½»t_ÿ¡
+<PGM_P>(
+d©a
+);
+
+829 * 
+mes§ge
+ = (*è
+	`m®loc
+(
+Ën
+);
+
+830 if(
+mes§ge
+){
+
+831 
+	`memýy_P
+(
+mes§ge
+, 
+p
+, 
+Ën
+);
+
+832 
+	`bš¬y
+(
+mes§ge
+, 
+Ën
+);
+
+833 
+	`ä“
+(
+mes§ge
+);
+
+836 
+	}
+}
+
+837 
+	gAsyncWebSock‘Cl›Á
+::
+	$bš¬y
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+)
+
+839 
+	`_queueMes§ge
+(
+Ãw
+ 
+	`AsyncWebSock‘MuÉiMes§ge
+(
+bufãr
+, 
+WS_BINARY
+));
+
+840 
+	}
+}
+
+842 
+IPAdd»ss
+ 
+	gAsyncWebSock‘Cl›Á
+::
+	$»mÙeIP
+() {
+
+843 if(!
+_þ›Á
+) {
+
+844  
+	`IPAdd»ss
+(0U);
+
+846  
+_þ›Á
+->
+	`»mÙeIP
+();
+
+847 
+	}
+}
+
+849 
+ušt16_t
+ 
+	gAsyncWebSock‘Cl›Á
+::
+	$»mÙePÜt
+() {
+
+850 if(!
+_þ›Á
+) {
+
+853  
+_þ›Á
+->
+	`»mÙePÜt
+();
+
+854 
+	}
+}
+
+862 
+	gAsyncWebSock‘
+::
+	$AsyncWebSock‘
+(cÚ¡ 
+SŒšg
+& 
+u¾
+)
+
+863 :
+	`_u¾
+(
+u¾
+)
+
+864 ,
+	`_þ›Ás
+(
+LškedLi¡
+<
+AsyncWebSock‘Cl›Á
+ *>([](AsyncWebSock‘Cl›Á *
+c
+){ 
+d–‘e
+ c; 
+	}
+}))
+
+865 ,
+_cNextId
+(1)
+
+866 ,
+	$_’abËd
+(
+Œue
+)
+
+868 
+_ev’tHªdËr
+ = 
+NULL
+;
+
+869 
+	}
+}
+
+871 
+	gAsyncWebSock‘
+::~
+	$AsyncWebSock‘
+(){
+	}
+}
+
+873 
+AsyncWebSock‘
+::
+	$_hªdËEv’t
+(
+AsyncWebSock‘Cl›Á
+ * 
+þ›Á
+, 
+AwsEv’tTy³
+ 
+ty³
+, * 
+¬g
+, 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+874 if(
+_ev’tHªdËr
+ !ð
+NULL
+){
+
+875 
+	`_ev’tHªdËr
+(
+this
+, 
+þ›Á
+, 
+ty³
+, 
+¬g
+, 
+d©a
+, 
+Ën
+);
+
+877 
+	}
+}
+
+879 
+	gAsyncWebSock‘
+::
+	$_addCl›Á
+(
+AsyncWebSock‘Cl›Á
+ * 
+þ›Á
+){
+
+880 
+_þ›Ás
+.
+	`add
+(
+þ›Á
+);
+
+881 
+	}
+}
+
+883 
+	gAsyncWebSock‘
+::
+	$_hªdËDiscÚÃù
+(
+AsyncWebSock‘Cl›Á
+ * 
+þ›Á
+){
+
+885 
+_þ›Ás
+.
+	`»move_fœ¡
+([=](
+AsyncWebSock‘Cl›Á
+ * 
+c
+){
+
+886  
+c
+->
+	`id
+(è=ð
+þ›Á
+->id();
+
+888 
+	}
+}
+
+890 
+boÞ
+ 
+	gAsyncWebSock‘
+::
+	$avažabËFÜWr™eAÎ
+(){
+
+891 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+892 if(
+c
+->
+	`queueIsFuÎ
+()è 
+çl£
+;
+
+894  
+Œue
+;
+
+895 
+	}
+}
+
+897 
+boÞ
+ 
+	gAsyncWebSock‘
+::
+	$avažabËFÜWr™e
+(
+ušt32_t
+ 
+id
+){
+
+898 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+899 if(
+c
+->
+	`queueIsFuÎ
+(è&& (c->
+	`id
+(è=ð
+id
+ )è 
+çl£
+;
+
+901  
+Œue
+;
+
+902 
+	}
+}
+
+904 
+size_t
+ 
+	gAsyncWebSock‘
+::
+	$couÁ
+() const {
+
+905  
+_þ›Ás
+.
+	`couÁ_if
+([](
+AsyncWebSock‘Cl›Á
+ * 
+c
+){
+
+906  
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+;
+
+908 
+	}
+}
+
+910 
+AsyncWebSock‘Cl›Á
+ * 
+	gAsyncWebSock‘
+::
+	$þ›Á
+(
+ušt32_t
+ 
+id
+){
+
+911 cÚ¡‡utØ&
+c
+: 
+_þ›Ás
+){
+
+912 if(
+c
+->
+	`id
+(è=ð
+id
+ && c->
+	`¡©us
+(è=ð
+WS_CONNECTED
+){
+
+913  
+c
+;
+
+916  
+nuÎ±r
+;
+
+917 
+	}
+}
+
+920 
+	gAsyncWebSock‘
+::
+	$þo£
+(
+ušt32_t
+ 
+id
+, 
+ušt16_t
+ 
+code
+, cÚ¡ * 
+mes§ge
+){
+
+921 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+922 if(
+c
+)
+
+923 
+c
+->
+	`þo£
+(
+code
+, 
+mes§ge
+);
+
+924 
+	}
+}
+
+926 
+	gAsyncWebSock‘
+::
+	$þo£AÎ
+(
+ušt16_t
+ 
+code
+, cÚ¡ * 
+mes§ge
+){
+
+927 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+928 if(
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+)
+
+929 
+c
+->
+	`þo£
+(
+code
+, 
+mes§ge
+);
+
+931 
+	}
+}
+
+933 
+	gAsyncWebSock‘
+::
+	$þ—nupCl›Ás
+(
+ušt16_t
+ 
+maxCl›Ás
+)
+
+935 ià(
+	`couÁ
+(è> 
+maxCl›Ás
+){
+
+936 
+_þ›Ás
+.
+	`äÚt
+()->
+	`þo£
+();
+
+938 
+	}
+}
+
+940 
+	gAsyncWebSock‘
+::
+	$pšg
+(
+ušt32_t
+ 
+id
+, 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+941 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+942 if(
+c
+)
+
+943 
+c
+->
+	`pšg
+(
+d©a
+, 
+Ën
+);
+
+944 
+	}
+}
+
+946 
+	gAsyncWebSock‘
+::
+	$pšgAÎ
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+947 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+948 if(
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+)
+
+949 
+c
+->
+	`pšg
+(
+d©a
+, 
+Ën
+);
+
+951 
+	}
+}
+
+953 
+	gAsyncWebSock‘
+::
+	$‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+954 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+955 if(
+c
+)
+
+956 
+c
+->
+	`‹xt
+(
+mes§ge
+, 
+Ën
+);
+
+957 
+	}
+}
+
+959 
+	gAsyncWebSock‘
+::
+	$‹xtAÎ
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+){
+
+960 ià(!
+bufãr
+) ;
+
+961 
+bufãr
+->
+	`lock
+();
+
+962 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+963 if(
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+){
+
+964 
+c
+->
+	`‹xt
+(
+bufãr
+);
+
+967 
+bufãr
+->
+	`uÆock
+();
+
+968 
+	`_þ—nBufãrs
+();
+
+969 
+	}
+}
+
+972 
+	gAsyncWebSock‘
+::
+	$‹xtAÎ
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+973 
+AsyncWebSock‘Mes§geBufãr
+ * 
+WSBufãr
+ = 
+	`makeBufãr
+((
+ušt8_t
+ *)
+mes§ge
+, 
+Ën
+);
+
+974 
+	`‹xtAÎ
+(
+WSBufãr
+);
+
+975 
+	}
+}
+
+977 
+	gAsyncWebSock‘
+::
+	$bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+978 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+979 if(
+c
+)
+
+980 
+c
+->
+	`bš¬y
+(
+mes§ge
+, 
+Ën
+);
+
+981 
+	}
+}
+
+983 
+	gAsyncWebSock‘
+::
+	$bš¬yAÎ
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+984 
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+ = 
+	`makeBufãr
+((
+ušt8_t
+ *)
+mes§ge
+, 
+Ën
+);
+
+985 
+	`bš¬yAÎ
+(
+bufãr
+);
+
+986 
+	}
+}
+
+988 
+	gAsyncWebSock‘
+::
+	$bš¬yAÎ
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+)
+
+990 ià(!
+bufãr
+) ;
+
+991 
+bufãr
+->
+	`lock
+();
+
+992 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+993 if(
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+)
+
+994 
+c
+->
+	`bš¬y
+(
+bufãr
+);
+
+996 
+bufãr
+->
+	`uÆock
+();
+
+997 
+	`_þ—nBufãrs
+();
+
+998 
+	}
+}
+
+1000 
+	gAsyncWebSock‘
+::
+	$mes§ge
+(
+ušt32_t
+ 
+id
+, 
+AsyncWebSock‘Mes§ge
+ *
+mes§ge
+){
+
+1001 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+1002 if(
+c
+)
+
+1003 
+c
+->
+	`mes§ge
+(
+mes§ge
+);
+
+1004 
+	}
+}
+
+1006 
+	gAsyncWebSock‘
+::
+	$mes§geAÎ
+(
+AsyncWebSock‘MuÉiMes§ge
+ *
+mes§ge
+){
+
+1007 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+1008 if(
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+)
+
+1009 
+c
+->
+	`mes§ge
+(
+mes§ge
+);
+
+1011 
+	`_þ—nBufãrs
+();
+
+1012 
+	}
+}
+
+1014 
+size_t
+ 
+	gAsyncWebSock‘
+::
+	$´štf
+(
+ušt32_t
+ 
+id
+, cÚ¡ *
+fÜm©
+, ...){
+
+1015 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+1016 if(
+c
+){
+
+1017 
+va_li¡
+ 
+¬g
+;
+
+1018 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©
+);
+
+1019 
+size_t
+ 
+Ën
+ = 
+c
+->
+	`´štf
+(
+fÜm©
+, 
+¬g
+);
+
+1020 
+	`va_’d
+(
+¬g
+);
+
+1021  
+Ën
+;
+
+1024 
+	}
+}
+
+1026 
+size_t
+ 
+	gAsyncWebSock‘
+::
+	$´štfAÎ
+(cÚ¡ *
+fÜm©
+, ...) {
+
+1027 
+va_li¡
+ 
+¬g
+;
+
+1028 * 
+‹mp
+ = 
+Ãw
+ [
+MAX_PRINTF_LEN
+];
+
+1029 if(!
+‹mp
+){
+
+1032 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©
+);
+
+1033 
+size_t
+ 
+Ën
+ = 
+	`v¢´štf
+(
+‹mp
+, 
+MAX_PRINTF_LEN
+, 
+fÜm©
+, 
+¬g
+);
+
+1034 
+	`va_’d
+(
+¬g
+);
+
+1035 
+d–‘e
+[] 
+‹mp
+;
+
+1037 
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+ = 
+	`makeBufãr
+(
+Ën
+);
+
+1038 ià(!
+bufãr
+) {
+
+1042 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©
+);
+
+1043 
+	`v¢´štf
+Ð(*)
+bufãr
+->
+	`g‘
+(), 
+Ën
+ + 1, 
+fÜm©
+, 
+¬g
+);
+
+1044 
+	`va_’d
+(
+¬g
+);
+
+1046 
+	`‹xtAÎ
+(
+bufãr
+);
+
+1047  
+Ën
+;
+
+1048 
+	}
+}
+
+1050 #iâdeà
+ESP32
+
+
+1051 
+size_t
+ 
+	gAsyncWebSock‘
+::
+	$´štf_P
+(
+ušt32_t
+ 
+id
+, 
+PGM_P
+ 
+fÜm©P
+, ...){
+
+1052 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+1053 if(
+c
+ !ð
+NULL
+){
+
+1054 
+va_li¡
+ 
+¬g
+;
+
+1055 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©P
+);
+
+1056 
+size_t
+ 
+Ën
+ = 
+c
+->
+	`´štf_P
+(
+fÜm©P
+, 
+¬g
+);
+
+1057 
+	`va_’d
+(
+¬g
+);
+
+1058  
+Ën
+;
+
+1061 
+	}
+}
+
+1064 
+size_t
+ 
+	gAsyncWebSock‘
+::
+	$´štfAÎ_P
+(
+PGM_P
+ 
+fÜm©P
+, ...) {
+
+1065 
+va_li¡
+ 
+¬g
+;
+
+1066 * 
+‹mp
+ = 
+Ãw
+ [
+MAX_PRINTF_LEN
+];
+
+1067 if(!
+‹mp
+){
+
+1070 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©P
+);
+
+1071 
+size_t
+ 
+Ën
+ = 
+	`v¢´štf_P
+(
+‹mp
+, 
+MAX_PRINTF_LEN
+, 
+fÜm©P
+, 
+¬g
+);
+
+1072 
+	`va_’d
+(
+¬g
+);
+
+1073 
+d–‘e
+[] 
+‹mp
+;
+
+1075 
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+ = 
+	`makeBufãr
+(
+Ën
+ + 1);
+
+1076 ià(!
+bufãr
+) {
+
+1080 
+	`va_¡¬t
+(
+¬g
+, 
+fÜm©P
+);
+
+1081 
+	`v¢´štf_P
+((*)
+bufãr
+->
+	`g‘
+(), 
+Ën
+ + 1, 
+fÜm©P
+, 
+¬g
+);
+
+1082 
+	`va_’d
+(
+¬g
+);
+
+1084 
+	`‹xtAÎ
+(
+bufãr
+);
+
+1085  
+Ën
+;
+
+1086 
+	}
+}
+
+1088 
+	gAsyncWebSock‘
+::
+	$‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+){
+
+1089 
+	`‹xt
+(
+id
+, 
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1090 
+	}
+}
+
+1091 
+	gAsyncWebSock‘
+::
+	$‹xt
+(
+ušt32_t
+ 
+id
+, 
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+1092 
+	`‹xt
+(
+id
+, (cÚ¡ *)
+mes§ge
+, 
+Ën
+);
+
+1093 
+	}
+}
+
+1094 
+	gAsyncWebSock‘
+::
+	$‹xt
+(
+ušt32_t
+ 
+id
+, * 
+mes§ge
+){
+
+1095 
+	`‹xt
+(
+id
+, 
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1096 
+	}
+}
+
+1097 
+	gAsyncWebSock‘
+::
+	$‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+SŒšg
+ &
+mes§ge
+){
+
+1098 
+	`‹xt
+(
+id
+, 
+mes§ge
+.
+	`c_¡r
+(), mes§ge.
+	`Ëngth
+());
+
+1099 
+	}
+}
+
+1100 
+	gAsyncWebSock‘
+::
+	$‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+){
+
+1101 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+1102 if(
+c
+ !ð
+NULL
+)
+
+1103 
+c
+->
+	`‹xt
+(
+mes§ge
+);
+
+1104 
+	}
+}
+
+1105 
+	gAsyncWebSock‘
+::
+	$‹xtAÎ
+(cÚ¡ * 
+mes§ge
+){
+
+1106 
+	`‹xtAÎ
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1107 
+	}
+}
+
+1108 
+	gAsyncWebSock‘
+::
+	$‹xtAÎ
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+1109 
+	`‹xtAÎ
+((cÚ¡ *)
+mes§ge
+, 
+Ën
+);
+
+1110 
+	}
+}
+
+1111 
+	gAsyncWebSock‘
+::
+	$‹xtAÎ
+(* 
+mes§ge
+){
+
+1112 
+	`‹xtAÎ
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1113 
+	}
+}
+
+1114 
+	gAsyncWebSock‘
+::
+	$‹xtAÎ
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+){
+
+1115 
+	`‹xtAÎ
+(
+mes§ge
+.
+	`c_¡r
+(), mes§ge.
+	`Ëngth
+());
+
+1116 
+	}
+}
+
+1117 
+	gAsyncWebSock‘
+::
+	$‹xtAÎ
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+){
+
+1118 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+1119 if(
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+)
+
+1120 
+c
+->
+	`‹xt
+(
+mes§ge
+);
+
+1122 
+	}
+}
+
+1123 
+	gAsyncWebSock‘
+::
+	$bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+){
+
+1124 
+	`bš¬y
+(
+id
+, 
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1125 
+	}
+}
+
+1126 
+	gAsyncWebSock‘
+::
+	$bš¬y
+(
+ušt32_t
+ 
+id
+, 
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+1127 
+	`bš¬y
+(
+id
+, (cÚ¡ *)
+mes§ge
+, 
+Ën
+);
+
+1128 
+	}
+}
+
+1129 
+	gAsyncWebSock‘
+::
+	$bš¬y
+(
+ušt32_t
+ 
+id
+, * 
+mes§ge
+){
+
+1130 
+	`bš¬y
+(
+id
+, 
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1131 
+	}
+}
+
+1132 
+	gAsyncWebSock‘
+::
+	$bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+SŒšg
+ &
+mes§ge
+){
+
+1133 
+	`bš¬y
+(
+id
+, 
+mes§ge
+.
+	`c_¡r
+(), mes§ge.
+	`Ëngth
+());
+
+1134 
+	}
+}
+
+1135 
+	gAsyncWebSock‘
+::
+	$bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+1136 
+AsyncWebSock‘Cl›Á
+ * 
+c
+ = 
+	`þ›Á
+(
+id
+);
+
+1137 if(
+c
+ !ð
+NULL
+)
+
+1138 
+c
+-> 
+	`bš¬y
+(
+mes§ge
+, 
+Ën
+);
+
+1139 
+	}
+}
+
+1140 
+	gAsyncWebSock‘
+::
+	$bš¬yAÎ
+(cÚ¡ * 
+mes§ge
+){
+
+1141 
+	`bš¬yAÎ
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1142 
+	}
+}
+
+1143 
+	gAsyncWebSock‘
+::
+	$bš¬yAÎ
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+1144 
+	`bš¬yAÎ
+((cÚ¡ *)
+mes§ge
+, 
+Ën
+);
+
+1145 
+	}
+}
+
+1146 
+	gAsyncWebSock‘
+::
+	$bš¬yAÎ
+(* 
+mes§ge
+){
+
+1147 
+	`bš¬yAÎ
+(
+mes§ge
+, 
+	`¡¾’
+(message));
+
+1148 
+	}
+}
+
+1149 
+	gAsyncWebSock‘
+::
+	$bš¬yAÎ
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+){
+
+1150 
+	`bš¬yAÎ
+(
+mes§ge
+.
+	`c_¡r
+(), mes§ge.
+	`Ëngth
+());
+
+1151 
+	}
+}
+
+1152 
+	gAsyncWebSock‘
+::
+	$bš¬yAÎ
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+, 
+size_t
+ 
+Ën
+){
+
+1153 cÚ¡‡uto& 
+c
+: 
+_þ›Ás
+){
+
+1154 if(
+c
+->
+	`¡©us
+(è=ð
+WS_CONNECTED
+)
+
+1155 
+c
+-> 
+	`bš¬y
+(
+mes§ge
+, 
+Ën
+);
+
+1157 
+	}
+}
+
+1159 cÚ¡ 
+	g__WS_STR_CONNECTION
+[] 
+	gPROGMEM
+ = { "Connection" };
+
+1160 cÚ¡ 
+	g__WS_STR_UPGRADE
+[] 
+	gPROGMEM
+ = { "Upgrade" };
+
+1161 cÚ¡ 
+	g__WS_STR_ORIGIN
+[] 
+	gPROGMEM
+ = { "Origin" };
+
+1162 cÚ¡ 
+	g__WS_STR_VERSION
+[] 
+	gPROGMEM
+ = { "Sec-WebSocket-Version" };
+
+1163 cÚ¡ 
+	g__WS_STR_KEY
+[] 
+	gPROGMEM
+ = { "Sec-WebSocket-Key" };
+
+1164 cÚ¡ 
+	g__WS_STR_PROTOCOL
+[] 
+	gPROGMEM
+ = { "Sec-WebSocket-Protocol" };
+
+1165 cÚ¡ 
+	g__WS_STR_ACCEPT
+[] 
+	gPROGMEM
+ = { "Sec-WebSocket-Accept" };
+
+1166 cÚ¡ 
+	g__WS_STR_UUID
+[] 
+	gPROGMEM
+ = { "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" };
+
+1168 
+	#WS_STR_CONNECTION
+ 
+	`FPSTR
+(
+__WS_STR_CONNECTION
+)
+
+	)
+
+1169 
+	#WS_STR_UPGRADE
+ 
+	`FPSTR
+(
+__WS_STR_UPGRADE
+)
+
+	)
+
+1170 
+	#WS_STR_ORIGIN
+ 
+	`FPSTR
+(
+__WS_STR_ORIGIN
+)
+
+	)
+
+1171 
+	#WS_STR_VERSION
+ 
+	`FPSTR
+(
+__WS_STR_VERSION
+)
+
+	)
+
+1172 
+	#WS_STR_KEY
+ 
+	`FPSTR
+(
+__WS_STR_KEY
+)
+
+	)
+
+1173 
+	#WS_STR_PROTOCOL
+ 
+	`FPSTR
+(
+__WS_STR_PROTOCOL
+)
+
+	)
+
+1174 
+	#WS_STR_ACCEPT
+ 
+	`FPSTR
+(
+__WS_STR_ACCEPT
+)
+
+	)
+
+1175 
+	#WS_STR_UUID
+ 
+	`FPSTR
+(
+__WS_STR_UUID
+)
+
+	)
+
+1177 
+boÞ
+ 
+	gAsyncWebSock‘
+::
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+1178 if(!
+_’abËd
+)
+
+1179  
+çl£
+;
+
+1181 if(
+»que¡
+->
+	`m‘hod
+(è!ð
+HTTP_GET
+ || !»que¡->
+	`u¾
+().
+	`equ®s
+(
+_u¾
+è|| !»que¡->
+	`isEx³ùedReque¡edCÚnTy³
+(
+RCT_WS
+))
+
+1182  
+çl£
+;
+
+1184 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+WS_STR_CONNECTION
+);
+
+1185 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+WS_STR_UPGRADE
+);
+
+1186 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+WS_STR_ORIGIN
+);
+
+1187 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+WS_STR_VERSION
+);
+
+1188 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+WS_STR_KEY
+);
+
+1189 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+WS_STR_PROTOCOL
+);
+
+1190  
+Œue
+;
+
+1191 
+	}
+}
+
+1193 
+	gAsyncWebSock‘
+::
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+1194 if(!
+»que¡
+->
+	`hasH—d”
+(
+WS_STR_VERSION
+è|| !»que¡->hasH—d”(
+WS_STR_KEY
+)){
+
+1195 
+»que¡
+->
+	`£nd
+(400);
+
+1198 if((
+_u£ºame
+.
+	`Ëngth
+(è&& 
+_·sswÜd
+.Ëngth()è&& !
+»que¡
+->
+	`auth’tiÿ‹
+(_u£ºame.
+	`c_¡r
+(), _password.c_str())){
+
+1199  
+»que¡
+->
+	`»que¡Auth’tiÿtiÚ
+();
+
+1201 
+AsyncWebH—d”
+* 
+v”siÚ
+ = 
+»que¡
+->
+	`g‘H—d”
+(
+WS_STR_VERSION
+);
+
+1202 if(
+v”siÚ
+->
+	`v®ue
+().
+	`toIÁ
+() != 13){
+
+1203 
+AsyncWebS”v”Re¥Ú£
+ *
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£
+(400);
+
+1204 
+»¥Ú£
+->
+	`addH—d”
+(
+WS_STR_VERSION
+, 
+	`F
+("13"));
+
+1205 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+1208 
+AsyncWebH—d”
+* 
+key
+ = 
+»que¡
+->
+	`g‘H—d”
+(
+WS_STR_KEY
+);
+
+1209 
+AsyncWebS”v”Re¥Ú£
+ *
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncWebSock‘Re¥Ú£
+(
+key
+->
+	`v®ue
+(), 
+this
+);
+
+1210 if(
+»que¡
+->
+	`hasH—d”
+(
+WS_STR_PROTOCOL
+)){
+
+1211 
+AsyncWebH—d”
+* 
+´ÙocÞ
+ = 
+»que¡
+->
+	`g‘H—d”
+(
+WS_STR_PROTOCOL
+);
+
+1213 
+»¥Ú£
+->
+	`addH—d”
+(
+WS_STR_PROTOCOL
+, 
+´ÙocÞ
+->
+	`v®ue
+());
+
+1215 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+1216 
+	}
+}
+
+1218 
+AsyncWebSock‘Mes§geBufãr
+ * 
+	gAsyncWebSock‘
+::
+	$makeBufãr
+(
+size_t
+ 
+size
+)
+
+1220 
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+ = 
+Ãw
+ 
+	`AsyncWebSock‘Mes§geBufãr
+(
+size
+);
+
+1221 ià(
+bufãr
+) {
+
+1222 
+AsyncWebLockGu¬d
+ 
+	`l
+(
+_lock
+);
+
+1223 
+_bufãrs
+.
+	`add
+(
+bufãr
+);
+
+1225  
+bufãr
+;
+
+1226 
+	}
+}
+
+1228 
+AsyncWebSock‘Mes§geBufãr
+ * 
+	gAsyncWebSock‘
+::
+	$makeBufãr
+(
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+size
+)
+
+1230 
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+ = 
+Ãw
+ 
+	`AsyncWebSock‘Mes§geBufãr
+(
+d©a
+, 
+size
+);
+
+1232 ià(
+bufãr
+) {
+
+1233 
+AsyncWebLockGu¬d
+ 
+	`l
+(
+_lock
+);
+
+1234 
+_bufãrs
+.
+	`add
+(
+bufãr
+);
+
+1237  
+bufãr
+;
+
+1238 
+	}
+}
+
+1240 
+	gAsyncWebSock‘
+::
+	$_þ—nBufãrs
+()
+
+1242 
+AsyncWebLockGu¬d
+ 
+	`l
+(
+_lock
+);
+
+1244 
+AsyncWebSock‘Mes§geBufãr
+ * 
+c
+: 
+_bufãrs
+){
+
+1245 if(
+c
+ && c->
+	`ÿnD–‘e
+()){
+
+1246 
+_bufãrs
+.
+	`»move
+(
+c
+);
+
+1249 
+	}
+}
+
+1251 
+	gAsyncWebSock‘
+::
+AsyncWebSock‘Cl›ÁLškedLi¡
+ 
+AsyncWebSock‘
+::
+	$g‘Cl›Ás
+() const {
+
+1252  
+_þ›Ás
+;
+
+1253 
+	}
+}
+
+1260 
+	gAsyncWebSock‘Re¥Ú£
+::
+	$AsyncWebSock‘Re¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+key
+, 
+AsyncWebSock‘
+ *
+£rv”
+){
+
+1261 
+_£rv”
+ = 
+£rv”
+;
+
+1262 
+_code
+ = 101;
+
+1263 
+_£ndCÚ‹ÁL’gth
+ = 
+çl£
+;
+
+1265 
+ušt8_t
+ * 
+hash
+ = (ušt8_t*)
+	`m®loc
+(20);
+
+1266 if(
+hash
+ =ð
+NULL
+){
+
+1267 
+_¡©e
+ = 
+RESPONSE_FAILED
+;
+
+1270 * 
+bufãr
+ = (*è
+	`m®loc
+(33);
+
+1271 if(
+bufãr
+ =ð
+NULL
+){
+
+1272 
+	`ä“
+(
+hash
+);
+
+1273 
+_¡©e
+ = 
+RESPONSE_FAILED
+;
+
+1276 #ifdeà
+ESP8266
+
+
+1277 
+	`sha1
+(
+key
+ + 
+WS_STR_UUID
+, 
+hash
+);
+
+1279 (
+SŒšg
+&)
+key
+ +ð
+WS_STR_UUID
+;
+
+1280 
+SHA1_CTX
+ 
+ùx
+;
+
+1281 
+	`SHA1In™
+(&
+ùx
+);
+
+1282 
+	`SHA1Upd©e
+(&
+ùx
+, (cÚ¡ *)
+key
+.
+	`c_¡r
+(), key.
+	`Ëngth
+());
+
+1283 
+	`SHA1Fš®
+(
+hash
+, &
+ùx
+);
+
+1285 
+ba£64_’code¡©e
+ 
+_¡©e
+;
+
+1286 
+	`ba£64_š™_’code¡©e
+(&
+_¡©e
+);
+
+1287 
+Ën
+ = 
+	`ba£64_’code_block
+((cÚ¡ *è
+hash
+, 20, 
+bufãr
+, &
+_¡©e
+);
+
+1288 
+Ën
+ = 
+	`ba£64_’code_block’d
+((
+bufãr
+ +†’), &
+_¡©e
+);
+
+1289 
+	`addH—d”
+(
+WS_STR_CONNECTION
+, 
+WS_STR_UPGRADE
+);
+
+1290 
+	`addH—d”
+(
+WS_STR_UPGRADE
+, 
+	`F
+("websocket"));
+
+1291 
+	`addH—d”
+(
+WS_STR_ACCEPT
+,
+bufãr
+);
+
+1292 
+	`ä“
+(
+bufãr
+);
+
+1293 
+	`ä“
+(
+hash
+);
+
+1294 
+	}
+}
+
+1296 
+	gAsyncWebSock‘Re¥Ú£
+::
+	$_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+1297 if(
+_¡©e
+ =ð
+RESPONSE_FAILED
+){
+
+1298 
+»que¡
+->
+	`þ›Á
+()->
+	`þo£
+(
+Œue
+);
+
+1301 
+SŒšg
+ 
+out
+ = 
+	`_as£mbËH—d
+(
+»que¡
+->
+	`v”siÚ
+());
+
+1302 
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+out
+.
+	`c_¡r
+(), 
+_h—dL’gth
+);
+
+1303 
+_¡©e
+ = 
+RESPONSE_WAIT_ACK
+;
+
+1304 
+	}
+}
+
+1306 
+size_t
+ 
+	gAsyncWebSock‘Re¥Ú£
+::
+	$_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){
+
+1307 ()
+time
+;
+
+1308 if(
+Ën
+){
+
+1309 
+Ãw
+ 
+	`AsyncWebSock‘Cl›Á
+(
+»que¡
+, 
+_£rv”
+);
+
+1312 
+	}
+}
+
+	@lib/ESPAsyncWebServer/AsyncWebSocket.h
+
+21 #iâdeà
+ASYNCWEBSOCKET_H_
+
+
+22 
+	#ASYNCWEBSOCKET_H_
+
+
+	)
+
+24 
+	~<Ardušo.h
+>
+
+25 #ifdeà
+ESP32
+
+
+26 
+	~<AsyncTCP.h
+>
+
+27 #iâdeà
+WS_MAX_QUEUED_MESSAGES
+
+
+28 
+	#WS_MAX_QUEUED_MESSAGES
+ 32
+
+	)
+
+30 #iâdeà
+WS_MAX_QUEUED_MESSAGES_SIZE
+
+
+31 
+	#WS_MAX_QUEUED_MESSAGES_SIZE
+ 65535
+
+	)
+
+34 
+	~<ESPAsyncTCP.h
+>
+
+35 #iâdeà
+WS_MAX_QUEUED_MESSAGES
+
+
+36 
+	#WS_MAX_QUEUED_MESSAGES
+ 8
+
+	)
+
+38 #iâdeà
+WS_MAX_QUEUED_MESSAGES_SIZE
+
+
+39 
+	#WS_MAX_QUEUED_MESSAGES_SIZE
+ 8192
+
+	)
+
+42 
+	~<ESPAsyncWebS”v”.h
+>
+
+45 #iâdeà
+WS_MAX_QUEUED_MESSAGES_MIN_HEAP
+
+
+46 
+	#WS_MAX_QUEUED_MESSAGES_MIN_HEAP
+ 0
+
+	)
+
+49 
+	~"AsyncWebSynchrÚiz©iÚ.h
+"
+
+51 #ifdeà
+ESP8266
+
+
+52 
+	~<Hash.h
+>
+
+53 #ifdeà
+CRYPTO_HASH_h
+
+
+54 
+	~<../¤c/Hash.h
+>
+
+58 #ifdeà
+ESP32
+
+
+59 
+	#DEFAULT_MAX_WS_CLIENTS
+ 8
+
+	)
+
+61 
+	#DEFAULT_MAX_WS_CLIENTS
+ 4
+
+	)
+
+64 
+þass
+ 
+	gAsyncWebSock‘
+;
+
+65 
+þass
+ 
+	gAsyncWebSock‘Re¥Ú£
+;
+
+66 
+þass
+ 
+	gAsyncWebSock‘Cl›Á
+;
+
+67 
+þass
+ 
+	gAsyncWebSock‘CÚŒÞ
+;
+
+73 
+ušt8_t
+ 
+	mmes§ge_Ýcode
+;
+
+75 
+ušt32_t
+ 
+	mnum
+;
+
+77 
+ušt8_t
+ 
+	mfš®
+;
+
+79 
+ušt8_t
+ 
+	mmasked
+;
+
+83 
+ušt8_t
+ 
+	mÝcode
+;
+
+86 
+ušt64_t
+ 
+	mËn
+;
+
+88 
+ušt8_t
+ 
+	mmask
+[4];
+
+90 
+ušt64_t
+ 
+	mšdex
+;
+
+91 } 
+	tAwsF¿meInfo
+;
+
+93 ’um { 
+	mWS_DISCONNECTED
+, 
+	mWS_CONNECTED
+, 
+	mWS_DISCONNECTING
+ } 
+	tAwsCl›ÁS�tus
+;
+
+94 ’um { 
+	mWS_CONTINUATION
+, 
+	mWS_TEXT
+, 
+	mWS_BINARY
+, 
+	mWS_DISCONNECT
+ = 0x08, 
+	mWS_PING
+, 
+	mWS_PONG
+ } 
+	tAwsF¿meTy³
+;
+
+95 ’um { 
+	mWS_MSG_SENDING
+, 
+	mWS_MSG_SENT
+, 
+	mWS_MSG_ERROR
+ } 
+	tAwsMes§geS�tus
+;
+
+96 ’um { 
+	mWS_EVT_CONNECT
+, 
+	mWS_EVT_DISCONNECT
+, 
+	mWS_EVT_PONG
+, 
+	mWS_EVT_ERROR
+, 
+	mWS_EVT_DATA
+ } 
+	tAwsEv’tTy³
+;
+
+98 þas 
+	cAsyncWebSock‘Mes§geBufãr
+ {
+
+99 
+	m´iv©e
+:
+
+100 
+ušt8_t
+ * 
+_d©a
+;
+
+101 
+size_t
+ 
+	m_Ën
+;
+
+102 
+boÞ
+ 
+	m_lock
+;
+
+103 
+ušt32_t
+ 
+	m_couÁ
+;
+
+105 
+	mpublic
+:
+
+106 
+AsyncWebSock‘Mes§geBufãr
+();
+
+107 
+AsyncWebSock‘Mes§geBufãr
+(
+size_t
+ 
+size
+);
+
+108 
+AsyncWebSock‘Mes§geBufãr
+(
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+size
+);
+
+109 
+AsyncWebSock‘Mes§geBufãr
+(const AsyncWebSocketMessageBuffer &);
+
+110 
+AsyncWebSock‘Mes§geBufãr
+(AsyncWebSocketMessageBuffer &&);
+
+111 ~
+AsyncWebSock‘Mes§geBufãr
+();
+
+112 
+	mÝ”©Ü
+ ++(
+	mi
+è{ ()i; 
+	m_couÁ
+++; }
+
+113 
+	gÝ”©Ü
+ --(
+	gi
+è{ ()i; ià(
+	g_couÁ
+ > 0) { _count--; } ; }
+
+114 
+boÞ
+ 
+»£rve
+(
+size_t
+ 
+size
+);
+
+115 
+	$lock
+(è{ 
+_lock
+ = 
+Œue
+; 
+	}
+}
+
+116 
+	$uÆock
+(è{ 
+_lock
+ = 
+çl£
+; 
+	}
+}
+
+117 
+ušt8_t
+ * 
+	$g‘
+(è{  
+_d©a
+; 
+	}
+}
+
+118 
+size_t
+ 
+	$Ëngth
+(è{  
+_Ën
+; 
+	}
+}
+
+119 
+ušt32_t
+ 
+	$couÁ
+(è{  
+_couÁ
+; 
+	}
+}
+
+120 
+boÞ
+ 
+	$ÿnD–‘e
+(è{  (!
+_couÁ
+ && !
+_lock
+); 
+	}
+}
+
+122 
+ä›nd
+ 
+	gAsyncWebSock‘
+;
+
+126 þas 
+	cAsyncWebSock‘Mes§ge
+ {
+
+127 
+	m´Ùeùed
+:
+
+128 
+ušt8_t
+ 
+_Ýcode
+;
+
+129 
+boÞ
+ 
+	m_mask
+;
+
+130 
+AwsMes§geS�tus
+ 
+	m_¡©us
+;
+
+131 
+	mpublic
+:
+
+132 
+	$AsyncWebSock‘Mes§ge
+():
+	`_Ýcode
+(
+WS_TEXT
+),
+	`_mask
+(
+çl£
+),
+	$_¡©us
+(
+WS_MSG_ERROR
+){}
+
+133 
+vœtu®
+ ~
+	$AsyncWebSock‘Mes§ge
+(){
+	}
+}
+
+134 
+vœtu®
+ 
+ack
+(
+size_t
+ 
+Ën
+ 
+__©Œibu‹__
+((
+unu£d
+)), 
+ušt32_t
+ 
+time
+ __attribute__((unused))){}
+
+135 
+vœtu®
+ 
+size_t
+ 
+£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+ 
+__©Œibu‹__
+((
+unu£d
+))){  0; }
+
+136 
+vœtu®
+ 
+boÞ
+ 
+	$fšished
+(){  
+_¡©us
+ !ð
+WS_MSG_SENDING
+; 
+	}
+}
+
+137 
+vœtu®
+ 
+boÞ
+ 
+	$b‘w“nF¿mes
+(ècÚ¡ {  
+çl£
+; 
+	}
+}
+
+140 þas 
+	cAsyncWebSock‘BasicMes§ge
+: 
+public
+ 
+AsyncWebSock‘Mes§ge
+ {
+
+141 
+´iv©e
+:
+
+142 
+size_t
+ 
+_Ën
+;
+
+143 
+size_t
+ 
+	m_£Á
+;
+
+144 
+size_t
+ 
+	m_ack
+;
+
+145 
+size_t
+ 
+	m_acked
+;
+
+146 
+ušt8_t
+ * 
+	m_d©a
+;
+
+147 
+	mpublic
+:
+
+148 
+AsyncWebSock‘BasicMes§ge
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+Ën
+, 
+ušt8_t
+ 
+Ýcode
+=
+WS_TEXT
+, 
+boÞ
+ 
+mask
+=
+çl£
+);
+
+149 
+AsyncWebSock‘BasicMes§ge
+(
+ušt8_t
+ 
+Ýcode
+=
+WS_TEXT
+, 
+boÞ
+ 
+mask
+=
+çl£
+);
+
+150 
+	mvœtu®
+ ~
+	$AsyncWebSock‘BasicMes§ge
+(è
+ov”ride
+;
+
+151 
+vœtu®
+ 
+boÞ
+ 
+	$b‘w“nF¿mes
+(ècÚ¡ 
+ov”ride
+ {  
+_acked
+ =ð
+_ack
+; }
+
+152 
+vœtu®
+ 
+	$ack
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+è
+ov”ride
+ ;
+
+153 
+vœtu®
+ 
+size_t
+ 
+	$£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+è
+ov”ride
+ ;
+
+154 
+	}
+};
+
+156 þas 
+	cAsyncWebSock‘MuÉiMes§ge
+: 
+public
+ 
+AsyncWebSock‘Mes§ge
+ {
+
+157 
+´iv©e
+:
+
+158 
+ušt8_t
+ * 
+_d©a
+;
+
+159 
+size_t
+ 
+	m_Ën
+;
+
+160 
+size_t
+ 
+	m_£Á
+;
+
+161 
+size_t
+ 
+	m_ack
+;
+
+162 
+size_t
+ 
+	m_acked
+;
+
+163 
+AsyncWebSock‘Mes§geBufãr
+ * 
+	m_WSbufãr
+;
+
+164 
+	mpublic
+:
+
+165 
+AsyncWebSock‘MuÉiMes§ge
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+, 
+ušt8_t
+ 
+Ýcode
+=
+WS_TEXT
+, 
+boÞ
+ 
+mask
+=
+çl£
+);
+
+166 
+	mvœtu®
+ ~
+	$AsyncWebSock‘MuÉiMes§ge
+(è
+ov”ride
+;
+
+167 
+vœtu®
+ 
+boÞ
+ 
+	$b‘w“nF¿mes
+(ècÚ¡ 
+ov”ride
+ {  
+_acked
+ =ð
+_ack
+; }
+
+168 
+vœtu®
+ 
+	$ack
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+è
+ov”ride
+ ;
+
+169 
+vœtu®
+ 
+size_t
+ 
+	$£nd
+(
+AsyncCl›Á
+ *
+þ›Á
+è
+ov”ride
+ ;
+
+170 
+	}
+};
+
+172 
+þass
+ 
+	gAsyncWebSock‘Mes§geBufãrLškedLi¡
+ : 
+public
+ 
+LškedLi¡
+<
+AsyncWebSock‘Mes§geBufãr
+ *> {
+
+173 
+public
+:
+
+174 
+usšg
+ 
+T
+ = 
+AsyncWebSock‘Mes§geBufãr
+ *;
+
+175 
+usšg
+ 
+	gLT
+ = 
+LškedLi¡
+<
+T
+>;
+
+177 
+	g´iv©e
+:
+
+178 
+ÚRemove
+(
+AsyncWebSock‘Mes§geBufãr
+ *
+t
+) {
+
+179 
+_tÙ®Size
+ -ð
+t
+->
+Ëngth
+();
+
+180 
+	g_tÙ®CouÁ
+--;
+
+181 
+d–‘e
+ 
+	gt
+;
+
+184 
+	gpublic
+:
+
+185 
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+(è: 
+LT
+([
+this
+](
+AsyncWebSock‘Mes§geBufãr
+ *
+b
+){�his->
+ÚRemove
+(b); }) {
+
+188 
+add
+(cÚ¡ 
+T
+& 
+t
+){
+
+189 
+	g_tÙ®Size
+ +ð
+t
+->
+Ëngth
+();
+
+190 
+	g_tÙ®CouÁ
+++;
+
+191 
+	gLT
+::
+add
+(
+t
+);
+
+194 
+	g´iv©e
+:
+
+195 
+ä›nd
+ 
+þass
+ 
+AsyncWebSock‘
+;
+
+198 
+size_t
+ 
+	g_tÙ®CouÁ
+;
+
+199 
+size_t
+ 
+	g_tÙ®Size
+;
+
+202 þas 
+	cAsyncWebSock‘Cl›Á
+ {
+
+203 
+	m´iv©e
+:
+
+204 
+AsyncCl›Á
+ *
+_þ›Á
+;
+
+205 
+AsyncWebSock‘
+ *
+	m_£rv”
+;
+
+206 
+ušt32_t
+ 
+	m_þ›ÁId
+;
+
+207 
+AwsCl›ÁS�tus
+ 
+	m_¡©us
+;
+
+209 
+	mLškedLi¡
+<
+	mAsyncWebSock‘CÚŒÞ
+ *> 
+	m_cÚŒÞQueue
+;
+
+210 
+	mLškedLi¡
+<
+	mAsyncWebSock‘Mes§ge
+ *> 
+	m_mes§geQueue
+;
+
+212 
+ušt8_t
+ 
+	m_p¡©e
+;
+
+213 
+AwsF¿meInfo
+ 
+	m_pšfo
+;
+
+215 
+ušt32_t
+ 
+	m_Ï¡Mes§geTime
+;
+
+216 
+ušt32_t
+ 
+	m_k“pAliveP”iod
+;
+
+218 
+_queueMes§ge
+(
+AsyncWebSock‘Mes§ge
+ *
+d©aMes§ge
+);
+
+219 
+_queueCÚŒÞ
+(
+AsyncWebSock‘CÚŒÞ
+ *
+cÚŒÞMes§ge
+);
+
+220 
+_runQueue
+();
+
+222 
+	mpublic
+:
+
+223 *
+_‹mpObjeù
+;
+
+225 
+AsyncWebSock‘Cl›Á
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+AsyncWebSock‘
+ *
+£rv”
+);
+
+226 ~
+AsyncWebSock‘Cl›Á
+();
+
+229 
+ušt32_t
+ 
+	$id
+(){  
+_þ›ÁId
+; }
+
+230 
+AwsCl›ÁS�tus
+ 
+	$¡©us
+(){  
+_¡©us
+; 
+	}
+}
+
+231 
+AsyncCl›Á
+* 
+	$þ›Á
+(){  
+_þ›Á
+; 
+	}
+}
+
+232 
+AsyncWebSock‘
+ *
+	$£rv”
+(){  
+_£rv”
+; 
+	}
+}
+
+233 
+AwsF¿meInfo
+ cÚ¡ &
+	$pšfo
+(ècÚ¡ {  
+_pšfo
+; 
+	}
+}
+
+235 
+IPAdd»ss
+ 
+»mÙeIP
+();
+
+236 
+ušt16_t
+ 
+»mÙePÜt
+();
+
+239 
+þo£
+(
+ušt16_t
+ 
+code
+=0, cÚ¡ * 
+mes§ge
+=
+NULL
+);
+
+240 
+pšg
+(
+ušt8_t
+ *
+d©a
+=
+NULL
+, 
+size_t
+ 
+Ën
+=0);
+
+243 
+	$k“pAliveP”iod
+(
+ušt16_t
+ 
+£cÚds
+){
+
+244 
+_k“pAliveP”iod
+ = 
+£cÚds
+ * 1000;
+
+245 
+	}
+}
+
+246 
+ušt16_t
+ 
+	$k“pAliveP”iod
+(){
+
+247  (
+ušt16_t
+)(
+_k“pAliveP”iod
+ / 1000);
+
+248 
+	}
+}
+
+251 
+	$mes§ge
+(
+AsyncWebSock‘Mes§ge
+ *
+mes§ge
+){ 
+	`_queueMes§ge
+(mes§ge); 
+	}
+}
+
+252 
+boÞ
+ 
+queueIsFuÎ
+();
+
+254 
+size_t
+ 
+	$´štf
+(cÚ¡ *
+fÜm©
+, ...è
+	`__©Œibu‹__
+ ((
+	`fÜm©
+ (
+´štf
+, 2, 3)));
+
+255 #iâdeà
+ESP32
+
+
+256 
+size_t
+ 
+	$´štf_P
+(
+PGM_P
+ 
+fÜm©P
+, ...è
+	`__©Œibu‹__
+ ((
+	`fÜm©
+ (
+´štf
+, 2, 3)));
+
+258 
+	`‹xt
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+259 
+	`‹xt
+(cÚ¡ * 
+mes§ge
+);
+
+260 
+	`‹xt
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+261 
+	`‹xt
+(* 
+mes§ge
+);
+
+262 
+	`‹xt
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+);
+
+263 
+	`‹xt
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+d©a
+);
+
+264 
+	`‹xt
+(
+AsyncWebSock‘Mes§geBufãr
+ *
+bufãr
+);
+
+266 
+	`bš¬y
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+267 
+	`bš¬y
+(cÚ¡ * 
+mes§ge
+);
+
+268 
+	`bš¬y
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+269 
+	`bš¬y
+(* 
+mes§ge
+);
+
+270 
+	`bš¬y
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+);
+
+271 
+	`bš¬y
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+272 
+	`bš¬y
+(
+AsyncWebSock‘Mes§geBufãr
+ *
+bufãr
+);
+
+274 
+boÞ
+ 
+	$ÿnS’d
+(è{  !
+	`_queueIsFuÎ
+(); 
+	}
+}
+
+276 
+boÞ
+ 
+	$_queueIsFuÎ
+() const;
+
+279 
+	`_ÚAck
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+280 
+	`_ÚE¼Ü
+(
+št8_t
+);
+
+281 
+	`_ÚPÞl
+();
+
+282 
+	`_ÚTimeout
+(
+ušt32_t
+ 
+time
+);
+
+283 
+	`_ÚDiscÚÃù
+();
+
+284 
+	`_ÚD©a
+(*
+pbuf
+, 
+size_t
+ 
+¶’
+);
+
+285 
+	}
+};
+
+287 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebSock‘
+ * 
+	t£rv”
+, 
+	tAsyncWebSock‘Cl›Á
+ * 
+	tþ›Á
+, 
+	tAwsEv’tTy³
+ 
+	tty³
+, * 
+	t¬g
+, 
+	tušt8_t
+ *
+	td©a
+, 
+	tsize_t
+ 
+	tËn
+)> 
+	tAwsEv’tHªdËr
+;
+
+290 þas 
+	cAsyncWebSock‘
+: 
+public
+ 
+AsyncWebHªdËr
+ {
+
+291 
+public
+:
+
+292 
+LškedLi¡
+<
+	tAsyncWebSock‘Cl›Á
+ *> 
+	tAsyncWebSock‘Cl›ÁLškedLi¡
+;
+
+293 
+	m´iv©e
+:
+
+294 
+SŒšg
+ 
+_u¾
+;
+
+295 
+AsyncWebSock‘Cl›ÁLškedLi¡
+ 
+	m_þ›Ás
+;
+
+296 
+ušt32_t
+ 
+	m_cNextId
+;
+
+297 
+AwsEv’tHªdËr
+ 
+	m_ev’tHªdËr
+;
+
+298 
+boÞ
+ 
+	m_’abËd
+;
+
+299 
+AsyncWebLock
+ 
+	m_lock
+;
+
+301 
+	mpublic
+:
+
+302 
+AsyncWebSock‘
+(cÚ¡ 
+SŒšg
+& 
+u¾
+);
+
+303 ~
+AsyncWebSock‘
+();
+
+304 cÚ¡ * 
+	$u¾
+(ècÚ¡ {  
+_u¾
+.
+	`c_¡r
+(); }
+
+305 
+	$’abË
+(
+boÞ
+ 
+e
+){ 
+_’abËd
+ =ƒ; 
+	}
+}
+
+306 
+boÞ
+ 
+	$’abËd
+(ècÚ¡ {  
+_’abËd
+; 
+	}
+}
+
+307 
+boÞ
+ 
+avažabËFÜWr™eAÎ
+();
+
+308 
+boÞ
+ 
+avažabËFÜWr™e
+(
+ušt32_t
+ 
+id
+);
+
+310 
+size_t
+ 
+	$couÁ
+() const;
+
+311 
+AsyncWebSock‘Cl›Á
+ * 
+	`þ›Á
+(
+ušt32_t
+ 
+id
+);
+
+312 
+boÞ
+ 
+	$hasCl›Á
+(
+ušt32_t
+ 
+id
+){  
+	`þ›Á
+(idè!ð
+NULL
+; 
+	}
+}
+
+314 
+þo£
+(
+ušt32_t
+ 
+id
+, 
+ušt16_t
+ 
+code
+=0, cÚ¡ * 
+mes§ge
+=
+NULL
+);
+
+315 
+þo£AÎ
+(
+ušt16_t
+ 
+code
+=0, cÚ¡ * 
+mes§ge
+=
+NULL
+);
+
+316 
+þ—nupCl›Ás
+(
+ušt16_t
+ 
+maxCl›Ás
+ = 
+DEFAULT_MAX_WS_CLIENTS
+);
+
+318 
+pšg
+(
+ušt32_t
+ 
+id
+, 
+ušt8_t
+ *
+d©a
+=
+NULL
+, 
+size_t
+ 
+Ën
+=0);
+
+319 
+pšgAÎ
+(
+ušt8_t
+ *
+d©a
+=
+NULL
+, 
+size_t
+ 
+Ën
+=0);
+
+321 
+‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+322 
+‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+);
+
+323 
+‹xt
+(
+ušt32_t
+ 
+id
+, 
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+324 
+‹xt
+(
+ušt32_t
+ 
+id
+, * 
+mes§ge
+);
+
+325 
+‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+SŒšg
+ &
+mes§ge
+);
+
+326 
+‹xt
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+);
+
+328 
+‹xtAÎ
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+329 
+‹xtAÎ
+(cÚ¡ * 
+mes§ge
+);
+
+330 
+‹xtAÎ
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+331 
+‹xtAÎ
+(* 
+mes§ge
+);
+
+332 
+‹xtAÎ
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+);
+
+333 
+‹xtAÎ
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+);
+
+334 
+‹xtAÎ
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+);
+
+336 
+bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+337 
+bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ * 
+mes§ge
+);
+
+338 
+bš¬y
+(
+ušt32_t
+ 
+id
+, 
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+339 
+bš¬y
+(
+ušt32_t
+ 
+id
+, * 
+mes§ge
+);
+
+340 
+bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+SŒšg
+ &
+mes§ge
+);
+
+341 
+bš¬y
+(
+ušt32_t
+ 
+id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+343 
+bš¬yAÎ
+(cÚ¡ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+344 
+bš¬yAÎ
+(cÚ¡ * 
+mes§ge
+);
+
+345 
+bš¬yAÎ
+(
+ušt8_t
+ * 
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+346 
+bš¬yAÎ
+(* 
+mes§ge
+);
+
+347 
+bš¬yAÎ
+(cÚ¡ 
+SŒšg
+ &
+mes§ge
+);
+
+348 
+bš¬yAÎ
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+mes§ge
+, 
+size_t
+ 
+Ën
+);
+
+349 
+bš¬yAÎ
+(
+AsyncWebSock‘Mes§geBufãr
+ * 
+bufãr
+);
+
+351 
+mes§ge
+(
+ušt32_t
+ 
+id
+, 
+AsyncWebSock‘Mes§ge
+ *message);
+
+352 
+mes§geAÎ
+(
+AsyncWebSock‘MuÉiMes§ge
+ *
+mes§ge
+);
+
+354 
+size_t
+ 
+	$´štf
+(
+ušt32_t
+ 
+id
+, cÚ¡ *
+fÜm©
+, ...è
+	`__©Œibu‹__
+ ((
+	`fÜm©
+ (
+´štf
+, 3, 4)));
+
+355 
+size_t
+ 
+	$´štfAÎ
+(cÚ¡ *
+fÜm©
+, ...è
+	`__©Œibu‹__
+ ((
+	`fÜm©
+ (
+´štf
+, 2, 3)));
+
+356 #iâdeà
+ESP32
+
+
+357 
+size_t
+ 
+	$´štf_P
+(
+ušt32_t
+ 
+id
+, 
+PGM_P
+ 
+fÜm©P
+, ...è
+	`__©Œibu‹__
+ ((
+	`fÜm©
+ (
+´štf
+, 3, 4)));
+
+359 
+size_t
+ 
+	$´štfAÎ_P
+(
+PGM_P
+ 
+fÜm©P
+, ...è
+	`__©Œibu‹__
+ ((
+	`fÜm©
+ (
+´štf
+, 2, 3)));
+
+362 
+	$ÚEv’t
+(
+AwsEv’tHªdËr
+ 
+hªdËr
+){
+
+363 
+_ev’tHªdËr
+ = 
+hªdËr
+;
+
+364 
+	}
+}
+
+367 
+ušt32_t
+ 
+	$_g‘NextId
+(){  
+_cNextId
+++; 
+	}
+}
+
+368 
+_addCl›Á
+(
+AsyncWebSock‘Cl›Á
+ * 
+þ›Á
+);
+
+369 
+_hªdËDiscÚÃù
+(
+AsyncWebSock‘Cl›Á
+ * 
+þ›Á
+);
+
+370 
+_hªdËEv’t
+(
+AsyncWebSock‘Cl›Á
+ * 
+þ›Á
+, 
+AwsEv’tTy³
+ 
+ty³
+, * 
+¬g
+, 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+);
+
+371 
+vœtu®
+ 
+boÞ
+ 
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+372 
+vœtu®
+ 
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+376 
+AsyncWebSock‘Mes§geBufãr
+ * 
+	`makeBufãr
+(
+size_t
+ 
+size
+ = 0);
+
+377 
+AsyncWebSock‘Mes§geBufãr
+ * 
+	`makeBufãr
+(
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+size
+);
+
+378 
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+ 
+_bufãrs
+;
+
+379 
+	`_þ—nBufãrs
+();
+
+381 
+AsyncWebSock‘Cl›ÁLškedLi¡
+ 
+	$g‘Cl›Ás
+() const;
+
+383 
+public
+:
+
+384 #iâdeà
+DEBUG_AWS_QUEUE_COUNTERS
+
+
+385 
+	#DEBUG_AWS_QUEUE_COUNTERS
+ 0
+
+	)
+
+388 #ià
+DEBUG_AWS_QUEUE_COUNTERS
+
+
+390 
+size_t
+ 
+	$g‘QueuedMes§geCouÁ
+() const {
+
+391 
+	`_v”ifyCouÁ”s
+();
+
+392  
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®CouÁ
+;
+
+393 
+	}
+}
+
+394 
+size_t
+ 
+	$g‘QueuedMes§geSize
+() const {
+
+395 
+	`_v”ifyCouÁ”s
+();
+
+396  
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®Size
+;
+
+397 
+	}
+}
+
+399 
+size_t
+ 
+	$_g‘QueuedMes§geCouÁ
+() {
+
+400  
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®CouÁ
+;
+
+401 
+	}
+}
+
+402 
+size_t
+ 
+	$_g‘QueuedMes§geSize
+() {
+
+403  
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®Size
+;
+
+404 
+	}
+}
+
+405 
+	g´iv©e
+:
+
+406 
+	$_v”ifyCouÁ”s
+() const {
+
+407 
+size_t
+ 
+t
+=0,
+c
+=0;
+
+408 cÚ¡‡utØ
+b
+: 
+_bufãrs
+) {
+
+409 
+t
++=
+b
+->
+	`Ëngth
+();
+
+410 
+c
+++;
+
+412 ià(
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®Size
+!=
+t
+ || AsyncWebSock‘Mes§geBufãrLškedLi¡::
+_tÙ®CouÁ
+!=
+c
+) {
+
+413 ::
+	`´štf
+(
+	`PSTR
+("AsyncWebSock‘Mes§geBufãrLškedLi¡ siz�%u=%u cÁ %u=%u\n"), 
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®Size
+, 
+t
+,AsyncWebSock‘Mes§geBufãrLškedLi¡::
+_tÙ®CouÁ
+, 
+c
+);
+
+414 
+	`·nic
+();
+
+416 
+	}
+}
+
+418 
+size_t
+ 
+	$g‘QueuedMes§geCouÁ
+() const {
+
+419  
+	`_g‘QueuedMes§geCouÁ
+();
+
+420 
+	}
+}
+
+421 
+size_t
+ 
+	$g‘QueuedMes§geSize
+() const {
+
+422  
+	`_g‘QueuedMes§geSize
+();
+
+423 
+	}
+}
+
+425 
+size_t
+ 
+	$_g‘QueuedMes§geCouÁ
+() {
+
+426  
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®CouÁ
+;
+
+427 
+	}
+}
+
+428 
+size_t
+ 
+	$_g‘QueuedMes§geSize
+() {
+
+429  
+AsyncWebSock‘Mes§geBufãrLškedLi¡
+::
+_tÙ®Size
+;
+
+430 
+	}
+}
+
+436 þas 
+	cAsyncWebSock‘Re¥Ú£
+: 
+public
+ 
+AsyncWebS”v”Re¥Ú£
+ {
+
+437 
+´iv©e
+:
+
+438 
+SŒšg
+ 
+_cÚ‹Á
+;
+
+439 
+AsyncWebSock‘
+ *
+	m_£rv”
+;
+
+440 
+	mpublic
+:
+
+441 
+AsyncWebSock‘Re¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+key
+, 
+AsyncWebSock‘
+ *
+£rv”
+);
+
+442 
+_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+443 
+size_t
+ 
+_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, size_ˆ
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+444 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  
+Œue
+; }
+
+445 
+	}
+};
+
+	@lib/ESPAsyncWebServer/AsyncWebSynchronization.h
+
+1 #iâdeà
+ASYNCWEBSYNCHRONIZATION_H_
+
+
+2 
+	#ASYNCWEBSYNCHRONIZATION_H_
+
+
+	)
+
+6 
+	~<ESPAsyncWebS”v”.h
+>
+
+8 #ifdeà
+ESP32
+
+
+11 þas 
+	cAsyncWebLock
+
+
+13 
+	m´iv©e
+:
+
+14 
+Sem­hÜeHªdË_t
+ 
+_lock
+;
+
+15 
+mu�bË
+ *
+	m_lockedBy
+;
+
+17 
+	mpublic
+:
+
+18 
+	$AsyncWebLock
+() {
+
+19 
+_lock
+ = 
+	`xSem­hÜeC»©eBš¬y
+();
+
+20 
+_lockedBy
+ = 
+NULL
+;
+
+21 
+	`xSem­hÜeGive
+(
+_lock
+);
+
+24 ~
+	$AsyncWebLock
+() {
+
+25 
+	`vSem­hÜeD–‘e
+(
+_lock
+);
+
+26 
+	}
+}
+
+28 
+boÞ
+ 
+	$lock
+() const {
+
+29 
*
+pxCu¼’tTCB
+;
+
+30 ià(
+_lockedBy
+ !ð
+pxCu¼’tTCB
+) {
+
+31 
+	`xSem­hÜeTake
+(
+_lock
+, 
+pÜtMAX_DELAY
+);
+
+32 
+_lockedBy
+ = 
+pxCu¼’tTCB
+;
+
+33  
+Œue
+;
+
+35  
+çl£
+;
+
+36 
+	}
+}
+
+38 
+	$uÆock
+() const {
+
+39 
+_lockedBy
+ = 
+NULL
+;
+
+40 
+	`xSem­hÜeGive
+(
+_lock
+);
+
+41 
+	}
+}
+
+47 þas 
+	cAsyncWebLock
+
+
+50 
+	mpublic
+:
+
+51 
+	$AsyncWebLock
+() {
+
+54 ~
+	$AsyncWebLock
+() {
+
+55 
+	}
+}
+
+57 
+boÞ
+ 
+	$lock
+() const {
+
+58  
+çl£
+;
+
+59 
+	}
+}
+
+61 
+	$uÆock
+() const {
+
+62 
+	}
+}
+
+66 þas 
+	cAsyncWebLockGu¬d
+
+
+68 
+	m´iv©e
+:
+
+69 cÚ¡ 
+AsyncWebLock
+ *
+_lock
+;
+
+71 
+	mpublic
+:
+
+72 
+	$AsyncWebLockGu¬d
+(cÚ¡ 
+AsyncWebLock
+ &
+l
+) {
+
+73 ià(
+l
+.
+	`lock
+()) {
+
+74 
+_lock
+ = &
+l
+;
+
+76 
+_lock
+ = 
+NULL
+;
+
+80 ~
+	$AsyncWebLockGu¬d
+() {
+
+81 ià(
+_lock
+) {
+
+82 
+_lock
+->
+	`uÆock
+();
+
+84 
+	}
+}
+
+	@lib/ESPAsyncWebServer/ESPAsyncWebServer.h
+
+21 #iâdeà
+_ESPAsyncWebS”v”_H_
+
+
+22 
+	#_ESPAsyncWebS”v”_H_
+
+
+	)
+
+24 
+	~"Ardušo.h
+"
+
+26 
+	~<funùiÚ®
+>
+
+27 
+	~"FS.h
+"
+
+29 
+	~"SŒšgA¼ay.h
+"
+
+31 #ifdeà
+ESP32
+
+
+32 
+	~<WiFi.h
+>
+
+33 
+	~<AsyncTCP.h
+>
+
+34 #–ià
+defšed
+(
+ESP8266
+)
+
+35 
+	~<ESP8266WiFi.h
+>
+
+36 
+	~<ESPAsyncTCP.h
+>
+
+38 #”rÜ 
+PÏtfÜm
+ 
+nÙ
+ 
+suµÜ‹d
+
+
+41 #ifdeà
+ASYNCWEBSERVER_REGEX
+
+
+42 
+	#ASYNCWEBSERVER_REGEX_ATTRIBUTE
+
+
+	)
+
+44 
+	#ASYNCWEBSERVER_REGEX_ATTRIBUTE
+ 
+	`__©Œibu‹__
+((
+	`w¬nšg
+("ASYNCWEBSERVER_REGEX‚Ù defšed")))
+
+	)
+
+47 
+	#DEBUGF
+(...)
+
+48 
+
+	)
+
+49 
+þass
+ 
+	gAsyncWebS”v”
+;
+
+50 
+þass
+ 
+	gAsyncWebS”v”Reque¡
+;
+
+51 
+þass
+ 
+	gAsyncWebS”v”Re¥Ú£
+;
+
+52 
+þass
+ 
+	gAsyncWebH—d”
+;
+
+53 
+þass
+ 
+	gAsyncWebP¬am‘”
+;
+
+54 
+þass
+ 
+	gAsyncWebRewr™e
+;
+
+55 
+þass
+ 
+	gAsyncWebHªdËr
+;
+
+56 
+þass
+ 
+	gAsyncS�ticWebHªdËr
+;
+
+57 
+þass
+ 
+	gAsyncC®lbackWebHªdËr
+;
+
+58 
+þass
+ 
+	gAsyncRe¥Ú£SŒ—m
+;
+
+60 #iâdeà
+WEBSERVER_H
+
+
+62 
+	mHTTP_GET
+ = 0b00000001,
+
+63 
+	mHTTP_POST
+ = 0b00000010,
+
+64 
+	mHTTP_DELETE
+ = 0b00000100,
+
+65 
+	mHTTP_PUT
+ = 0b00001000,
+
+66 
+	mHTTP_PATCH
+ = 0b00010000,
+
+67 
+	mHTTP_HEAD
+ = 0b00100000,
+
+68 
+	mHTTP_OPTIONS
+ = 0b01000000,
+
+69 
+	mHTTP_ANY
+ = 0b01111111,
+
+70 } 
+	tWebReque¡M‘hod
+;
+
+73 #iâdeà
+HAVE_FS_FILE_OPEN_MODE
+
+
+74 
+Çme¥aû
+ 
+	gfs
+ {
+
+75 þas 
+	cFžeO³nMode
+ {
+
+76 
+	gpublic
+:
+
+77 cÚ¡ *
+»ad
+;
+
+78 cÚ¡ *
+	gwr™e
+;
+
+79 cÚ¡ *
+	g­³nd
+;
+
+83 
+	~"FžeO³nMode.h
+"
+
+87 
+	#RESPONSE_TRY_AGAIN
+ 0xFFFFFFFF
+
+	)
+
+89 
+ušt8_t
+ 
+	tWebReque¡M‘hodCompos™e
+;
+
+90 
+	g¡d
+::
+	tfunùiÚ
+<()> 
+	tArDiscÚÃùHªdËr
+;
+
+96 þas 
+	cAsyncWebP¬am‘”
+ {
+
+97 
+	m´iv©e
+:
+
+98 
+SŒšg
+ 
+_Çme
+;
+
+99 
+SŒšg
+ 
+	m_v®ue
+;
+
+100 
+size_t
+ 
+	m_size
+;
+
+101 
+boÞ
+ 
+	m_isFÜm
+;
+
+102 
+boÞ
+ 
+	m_isFže
+;
+
+104 
+	mpublic
+:
+
+106 
+	$AsyncWebP¬am‘”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, cÚ¡ SŒšg& 
+v®ue
+, 
+boÞ
+ 
+fÜm
+=
+çl£
+, boÞ 
+fže
+=çl£, 
+size_t
+ 
+size
+=0): 
+	`_Çme
+Òame), 
+	`_v®ue
+(v®ue), 
+	`_size
+(size), 
+	`_isFÜm
+(fÜm), 
+	$_isFže
+(
+fže
+){}
+
+107 cÚ¡ 
+SŒšg
+& 
+	$Çme
+(ècÚ¡ {  
+_Çme
+; 
+	}
+}
+
+108 cÚ¡ 
+	gSŒšg
+& 
+	$v®ue
+(ècÚ¡ {  
+_v®ue
+; 
+	}
+}
+
+109 
+size_t
+ 
+	$size
+(ècÚ¡ {  
+_size
+; 
+	}
+}
+
+110 
+boÞ
+ 
+	$isPo¡
+(ècÚ¡ {  
+_isFÜm
+; 
+	}
+}
+
+111 
+boÞ
+ 
+	$isFže
+(ècÚ¡ {  
+_isFže
+; 
+	}
+}
+
+118 þas 
+	cAsyncWebH—d”
+ {
+
+119 
+	m´iv©e
+:
+
+120 
+SŒšg
+ 
+_Çme
+;
+
+121 
+SŒšg
+ 
+	m_v®ue
+;
+
+123 
+	mpublic
+:
+
+124 
+	$AsyncWebH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, cÚ¡ SŒšg& 
+v®ue
+): 
+	`_Çme
+Òame), 
+	$_v®ue
+(
+v®ue
+){}
+
+125 
+	$AsyncWebH—d”
+(cÚ¡ 
+SŒšg
+& 
+d©a
+): 
+	`_Çme
+(), 
+	$_v®ue
+(){
+
+126 if(!
+d©a
+) ;
+
+127 
+šdex
+ = 
+d©a
+.
+	`šdexOf
+(':');
+
+128 ià(
+šdex
+ < 0) ;
+
+129 
+_Çme
+ = 
+d©a
+.
+	`sub¡ršg
+(0, 
+šdex
+);
+
+130 
+_v®ue
+ = 
+d©a
+.
+	`sub¡ršg
+(
+šdex
+ + 2);
+
+131 
+	}
+}
+
+132 ~
+	$AsyncWebH—d”
+(){
+	}
+}
+
+133 cÚ¡ 
+	gSŒšg
+& 
+	$Çme
+(ècÚ¡ {  
+_Çme
+; 
+	}
+}
+
+134 cÚ¡ 
+	gSŒšg
+& 
+	$v®ue
+(ècÚ¡ {  
+_v®ue
+; 
+	}
+}
+
+135 
+SŒšg
+ 
+	$toSŒšg
+(ècÚ¡ {  
+	`SŒšg
+(
+_Çme
+ + 
+	`F
+(": "è+ 
+_v®ue
+ + F("\r\n")); 
+	}
+}
+
+142 ’um { 
+	mRCT_NOT_USED
+ = -1, 
+	mRCT_DEFAULT
+ = 0, 
+	mRCT_HTTP
+, 
+	mRCT_WS
+, 
+	mRCT_EVENT
+, 
+	mRCT_MAX
+ } 
+	tReque¡edCÚÃùiÚTy³
+;
+
+144 
+	g¡d
+::
+	tfunùiÚ
+<
+	tsize_t
+(
+	tušt8_t
+*, size_t, size_t)> 
+	tAwsRe¥Ú£FžËr
+;
+
+145 
+	g¡d
+::
+	tfunùiÚ
+<
+	tSŒšg
+(cÚ¡ SŒšg&)> 
+	tAwsTem¶©eProûssÜ
+;
+
+147 þas 
+	cAsyncWebS”v”Reque¡
+ {
+
+148 
+usšg
+ 
+	mFže
+ = 
+fs
+::
+Fže
+;
+
+149 
+usšg
+ 
+	mFS
+ = 
+fs
+::
+FS
+;
+
+150 
+ä›nd
+ 
+þass
+ 
+	mAsyncWebS”v”
+;
+
+151 
+ä›nd
+ 
+þass
+ 
+	mAsyncC®lbackWebHªdËr
+;
+
+152 
+ä›nd
+ 
+þass
+ 
+	mH‰pCook›H—d”
+;
+
+153 
+	m´iv©e
+:
+
+154 
+AsyncCl›Á
+* 
+_þ›Á
+;
+
+155 
+AsyncWebS”v”
+* 
+	m_£rv”
+;
+
+156 
+AsyncWebHªdËr
+* 
+	m_hªdËr
+;
+
+157 
+AsyncWebS”v”Re¥Ú£
+* 
+	m_»¥Ú£
+;
+
+158 
+SŒšgA¼ay
+ 
+	m_š‹»¡šgH—d”s
+;
+
+159 
+ArDiscÚÃùHªdËr
+ 
+	m_ÚDiscÚÃùâ
+;
+
+161 
+SŒšg
+ 
+	m_‹mp
+;
+
+162 
+ušt8_t
+ 
+	m_·r£S�‹
+;
+
+164 
+ušt8_t
+ 
+	m_v”siÚ
+;
+
+165 
+WebReque¡M‘hodCompos™e
+ 
+	m_m‘hod
+;
+
+166 
+SŒšg
+ 
+	m_u¾
+;
+
+167 
+SŒšg
+ 
+	m_ho¡
+;
+
+168 
+SŒšg
+ 
+	m_cÚ‹ÁTy³
+;
+
+169 
+SŒšg
+ 
+	m_bound¬y
+;
+
+170 
+SŒšg
+ 
+	m_authÜiz©iÚ
+;
+
+171 
+Reque¡edCÚÃùiÚTy³
+ 
+	m_»qcÚÁy³
+;
+
+172 
+_»moveNÙIÁ”e¡šgH—d”s
+();
+
+173 
+boÞ
+ 
+	m_isDige¡
+;
+
+174 
+boÞ
+ 
+	m_isMuÉ�¬t
+;
+
+175 
+boÞ
+ 
+	m_isPÏšPo¡
+;
+
+176 
+boÞ
+ 
+	m_ex³ùšgCÚtšue
+;
+
+177 
+size_t
+ 
+	m_cÚ‹ÁL’gth
+;
+
+178 
+size_t
+ 
+	m_·r£dL’gth
+;
+
+180 
+	mLškedLi¡
+<
+	mAsyncWebH—d”
+ *> 
+	m_h—d”s
+;
+
+181 
+	mLškedLi¡
+<
+	mAsyncWebP¬am‘”
+ *> 
+	m_·¿ms
+;
+
+182 
+	mLškedLi¡
+<
+	mSŒšg
+ *> 
+	m_·thP¬ams
+;
+
+184 
+ušt8_t
+ 
+	m_muÉiP¬£S�‹
+;
+
+185 
+ušt8_t
+ 
+	m_bound¬yPos™iÚ
+;
+
+186 
+size_t
+ 
+	m_™emS�¹Index
+;
+
+187 
+size_t
+ 
+	m_™emSize
+;
+
+188 
+SŒšg
+ 
+	m_™emName
+;
+
+189 
+SŒšg
+ 
+	m_™emFž’ame
+;
+
+190 
+SŒšg
+ 
+	m_™emTy³
+;
+
+191 
+SŒšg
+ 
+	m_™emV®ue
+;
+
+192 
+ušt8_t
+ *
+	m_™emBufãr
+;
+
+193 
+size_t
+ 
+	m_™emBufãrIndex
+;
+
+194 
+boÞ
+ 
+	m_™emIsFže
+;
+
+196 
+_ÚPÞl
+();
+
+197 
+_ÚAck
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+198 
+_ÚE¼Ü
+(
+št8_t
+ 
+”rÜ
+);
+
+199 
+_ÚTimeout
+(
+ušt32_t
+ 
+time
+);
+
+200 
+_ÚDiscÚÃù
+();
+
+201 
+_ÚD©a
+(*
+buf
+, 
+size_t
+ 
+Ën
+);
+
+203 
+_addP¬am
+(
+AsyncWebP¬am‘”
+*);
+
+204 
+_addP©hP¬am
+(cÚ¡ *
+·¿m
+);
+
+206 
+boÞ
+ 
+_·r£ReqH—d
+();
+
+207 
+boÞ
+ 
+_·r£ReqH—d”
+();
+
+208 
+_·r£Lše
+();
+
+209 
+_·r£PÏšPo¡Ch¬
+(
+ušt8_t
+ 
+d©a
+);
+
+210 
+_·r£MuÉ�¬tPo¡By‹
+(
+ušt8_t
+ 
+d©a
+, 
+boÞ
+ 
+Ï¡
+);
+
+211 
+_addG‘P¬ams
+(cÚ¡ 
+SŒšg
+& 
+·¿ms
+);
+
+213 
+_hªdËU¶ßdS�¹
+();
+
+214 
+_hªdËU¶ßdBy‹
+(
+ušt8_t
+ 
+d©a
+, 
+boÞ
+ 
+Ï¡
+);
+
+215 
+_hªdËU¶ßdEnd
+();
+
+217 
+	mpublic
+:
+
+218 
+Fže
+ 
+_‹mpFže
+;
+
+219 *
+	m_‹mpObjeù
+;
+
+221 
+AsyncWebS”v”Reque¡
+(
+AsyncWebS”v”
+*, 
+AsyncCl›Á
+*);
+
+222 ~
+AsyncWebS”v”Reque¡
+();
+
+224 
+AsyncCl›Á
+* 
+	$þ›Á
+(){  
+_þ›Á
+; }
+
+225 
+ušt8_t
+ 
+	$v”siÚ
+(ècÚ¡ {  
+_v”siÚ
+; 
+	}
+}
+
+226 
+WebReque¡M‘hodCompos™e
+ 
+	$m‘hod
+(ècÚ¡ {  
+_m‘hod
+; 
+	}
+}
+
+227 cÚ¡ 
+	gSŒšg
+& 
+	$u¾
+(ècÚ¡ {  
+_u¾
+; 
+	}
+}
+
+228 cÚ¡ 
+	gSŒšg
+& 
+	$ho¡
+(ècÚ¡ {  
+_ho¡
+; 
+	}
+}
+
+229 cÚ¡ 
+	gSŒšg
+& 
+	$cÚ‹ÁTy³
+(ècÚ¡ {  
+_cÚ‹ÁTy³
+; 
+	}
+}
+
+230 
+size_t
+ 
+	$cÚ‹ÁL’gth
+(ècÚ¡ {  
+_cÚ‹ÁL’gth
+; 
+	}
+}
+
+231 
+boÞ
+ 
+	$muÉ�¬t
+(ècÚ¡ {  
+_isMuÉ�¬t
+; 
+	}
+}
+
+232 cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+	$m‘hodToSŒšg
+() const;
+
+233 cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+	$»que¡edCÚnTy³ToSŒšg
+() const;
+
+234 
+Reque¡edCÚÃùiÚTy³
+ 
+	$»que¡edCÚnTy³
+(ècÚ¡ {  
+_»qcÚÁy³
+; 
+	}
+}
+
+235 
+boÞ
+ 
+isEx³ùedReque¡edCÚnTy³
+(
+Reque¡edCÚÃùiÚTy³
+ 
+”ù1
+, Reque¡edCÚÃùiÚTy³ 
+”ù2
+ = 
+RCT_NOT_USED
+, Reque¡edCÚÃùiÚTy³ 
+”ù3
+ = RCT_NOT_USED);
+
+236 
+ÚDiscÚÃù
+ (
+ArDiscÚÃùHªdËr
+ 
+â
+);
+
+241 
+boÞ
+ 
+auth’tiÿ‹
+(cÚ¡ * 
+hash
+);
+
+242 
+boÞ
+ 
+auth’tiÿ‹
+(cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+, cÚ¡ * 
+»®m
+ = 
+NULL
+, boÞ 
+·sswÜdIsHash
+ = 
+çl£
+);
+
+243 
+»que¡Auth’tiÿtiÚ
+(cÚ¡ * 
+»®m
+ = 
+NULL
+, 
+boÞ
+ 
+isDige¡
+ = 
+Œue
+);
+
+245 
+	$£tHªdËr
+(
+AsyncWebHªdËr
+ *
+hªdËr
+){ 
+_hªdËr
+ = hªdËr; 
+	}
+}
+
+246 
+addIÁ”e¡šgH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+);
+
+248 
+»dœeù
+(cÚ¡ 
+SŒšg
+& 
+u¾
+);
+
+250 
+£nd
+(
+AsyncWebS”v”Re¥Ú£
+ *
+»¥Ú£
+);
+
+251 
+£nd
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+=SŒšg(), cÚ¡ SŒšg& 
+cÚ‹Á
+=String());
+
+252 
+£nd
+(
+FS
+ &
+fs
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+=SŒšg(), 
+boÞ
+ 
+dowÆßd
+=
+çl£
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+253 
+£nd
+(
+Fže
+ 
+cÚ‹Á
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+=SŒšg(), 
+boÞ
+ 
+dowÆßd
+=
+çl£
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+254 
+£nd
+(
+SŒ—m
+ &
+¡»am
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+255 
+£nd
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+=
+nuÎ±r
+);
+
+256 
+£ndChunked
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+=
+nuÎ±r
+);
+
+257 
+£nd_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ 
+ušt8_t
+ * 
+cÚ‹Á
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+258 
+£nd_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+PGM_P
+ 
+cÚ‹Á
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+260 
+AsyncWebS”v”Re¥Ú£
+ *
+begšRe¥Ú£
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+=SŒšg(), cÚ¡ SŒšg& 
+cÚ‹Á
+=String());
+
+261 
+AsyncWebS”v”Re¥Ú£
+ *
+begšRe¥Ú£
+(
+FS
+ &
+fs
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+=SŒšg(), 
+boÞ
+ 
+dowÆßd
+=
+çl£
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+262 
+AsyncWebS”v”Re¥Ú£
+ *
+begšRe¥Ú£
+(
+Fže
+ 
+cÚ‹Á
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+=SŒšg(), 
+boÞ
+ 
+dowÆßd
+=
+çl£
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+263 
+AsyncWebS”v”Re¥Ú£
+ *
+begšRe¥Ú£
+(
+SŒ—m
+ &
+¡»am
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+264 
+AsyncWebS”v”Re¥Ú£
+ *
+begšRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+=
+nuÎ±r
+);
+
+265 
+AsyncWebS”v”Re¥Ú£
+ *
+begšChunkedRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+=
+nuÎ±r
+);
+
+266 
+AsyncRe¥Ú£SŒ—m
+ *
+begšRe¥Ú£SŒ—m
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+bufãrSize
+=1460);
+
+267 
+AsyncWebS”v”Re¥Ú£
+ *
+begšRe¥Ú£_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ 
+ušt8_t
+ * 
+cÚ‹Á
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+268 
+AsyncWebS”v”Re¥Ú£
+ *
+begšRe¥Ú£_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+PGM_P
+ 
+cÚ‹Á
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+270 
+size_t
+ 
+	$h—d”s
+() const;
+
+271 
+boÞ
+ 
+	$hasH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+) const;
+
+272 
+boÞ
+ 
+	$hasH—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const;
+
+274 
+AsyncWebH—d”
+* 
+	$g‘H—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+) const;
+
+275 
+AsyncWebH—d”
+* 
+	$g‘H—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const;
+
+276 
+AsyncWebH—d”
+* 
+	$g‘H—d”
+(
+size_t
+ 
+num
+) const;
+
+278 
+size_t
+ 
+	$·¿ms
+() const;
+
+279 
+boÞ
+ 
+	$hasP¬am
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, 
+boÞ
+ 
+po¡
+=
+çl£
+, boÞ 
+fže
+=false) const;
+
+280 
+boÞ
+ 
+	$hasP¬am
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+, 
+boÞ
+ 
+po¡
+=
+çl£
+, boÞ 
+fže
+=false) const;
+
+282 
+AsyncWebP¬am‘”
+* 
+	$g‘P¬am
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, 
+boÞ
+ 
+po¡
+=
+çl£
+, boÞ 
+fže
+=false) const;
+
+283 
+AsyncWebP¬am‘”
+* 
+	$g‘P¬am
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+, 
+boÞ
+ 
+po¡
+, boÞ 
+fže
+) const;
+
+284 
+AsyncWebP¬am‘”
+* 
+	$g‘P¬am
+(
+size_t
+ 
+num
+) const;
+
+286 
+size_t
+ 
+	$¬gs
+(ècÚ¡ {  
+	`·¿ms
+(); 
+	}
+}
+
+287 cÚ¡ 
+	gSŒšg
+& 
+	$¬g
+(cÚ¡ 
+SŒšg
+& 
+Çme
+) const;
+
+288 cÚ¡ 
+SŒšg
+& 
+	$¬g
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const;
+
+289 cÚ¡ 
+SŒšg
+& 
+	$¬g
+(
+size_t
+ 
+i
+) const;
+
+290 cÚ¡ 
+SŒšg
+& 
+	$¬gName
+(
+size_t
+ 
+i
+) const;
+
+291 
+boÞ
+ 
+	$hasArg
+(cÚ¡ * 
+Çme
+) const;
+
+292 
+boÞ
+ 
+	$hasArg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const;
+
+294 cÚ¡ 
+SŒšg
+& 
+ASYNCWEBSERVER_REGEX_ATTRIBUTE
+ 
+	$·thArg
+(
+size_t
+ 
+i
+) const;
+
+296 cÚ¡ 
+SŒšg
+& 
+	$h—d”
+(cÚ¡ * 
+Çme
+) const;
+
+297 cÚ¡ 
+SŒšg
+& 
+	$h—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const;
+
+298 cÚ¡ 
+SŒšg
+& 
+	$h—d”
+(
+size_t
+ 
+i
+) const;
+
+299 cÚ¡ 
+SŒšg
+& 
+	$h—d”Name
+(
+size_t
+ 
+i
+) const;
+
+300 
+SŒšg
+ 
+	$u¾Decode
+(cÚ¡ 
+SŒšg
+& 
+‹xt
+) const;
+
+301 
+	}
+};
+
+307 
+	g¡d
+::
+	tfunùiÚ
+<
+	tboÞ
+(
+	tAsyncWebS”v”Reque¡
+ *
+	t»que¡
+)> 
+	tArReque¡Fž‹rFunùiÚ
+;
+
+309 
+boÞ
+ 
+ON_STA_FILTER
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+311 
+boÞ
+ 
+ON_AP_FILTER
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+317 þas 
+	cAsyncWebRewr™e
+ {
+
+318 
+	m´Ùeùed
+:
+
+319 
+SŒšg
+ 
+_äom
+;
+
+320 
+SŒšg
+ 
+	m_toU¾
+;
+
+321 
+SŒšg
+ 
+	m_·¿ms
+;
+
+322 
+ArReque¡Fž‹rFunùiÚ
+ 
+	m_fž‹r
+;
+
+323 
+	mpublic
+:
+
+324 
+	$AsyncWebRewr™e
+(cÚ¡ * 
+äom
+, cÚ¡ * 
+to
+): 
+	`_äom
+(äom), 
+	`_toU¾
+Ño), 
+	`_·¿ms
+(
+	`SŒšg
+()), 
+	$_fž‹r
+(
+NULL
+){
+
+325 
+šdex
+ = 
+_toU¾
+.
+	`šdexOf
+('?');
+
+326 ià(
+šdex
+ > 0) {
+
+327 
+_·¿ms
+ = 
+_toU¾
+.
+	`sub¡ršg
+(
+šdex
+ +1);
+
+328 
+_toU¾
+ = _toU¾.
+	`sub¡ršg
+(0, 
+šdex
+);
+
+331 
+vœtu®
+ ~
+	$AsyncWebRewr™e
+(){
+	}
+}
+
+332 
+	gAsyncWebRewr™e
+& 
+	$£tFž‹r
+(
+ArReque¡Fž‹rFunùiÚ
+ 
+â
+è{ 
+_fž‹r
+ = fn;  *
+this
+; 
+	}
+}
+
+333 
+boÞ
+ 
+	$fž‹r
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+ècÚ¡ {  
+_fž‹r
+ =ð
+NULL
+ || 
+	`_fž‹r
+Ôeque¡); 
+	}
+}
+
+334 cÚ¡ 
+	gSŒšg
+& 
+	$äom
+(ècÚ¡ {  
+_äom
+; 
+	}
+}
+
+335 cÚ¡ 
+	gSŒšg
+& 
+	$toU¾
+(ècÚ¡ {  
+_toU¾
+; 
+	}
+}
+
+336 cÚ¡ 
+	gSŒšg
+& 
+	$·¿ms
+(ècÚ¡ {  
+_·¿ms
+; 
+	}
+}
+
+337 
+vœtu®
+ 
+boÞ
+ 
+	$m©ch
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è{  
+	`äom
+(è=ð»que¡->
+	`u¾
+(è&& 
+	`fž‹r
+Ôeque¡); 
+	}
+}
+
+344 þas 
+	cAsyncWebHªdËr
+ {
+
+345 
+	m´Ùeùed
+:
+
+346 
+ArReque¡Fž‹rFunùiÚ
+ 
+_fž‹r
+;
+
+347 
+SŒšg
+ 
+	m_u£ºame
+;
+
+348 
+SŒšg
+ 
+	m_·sswÜd
+;
+
+349 
+	mpublic
+:
+
+350 
+	$AsyncWebHªdËr
+():
+	`_u£ºame
+(""), 
+	`_·sswÜd
+(""){}
+
+351 
+AsyncWebHªdËr
+& 
+	$£tFž‹r
+(
+ArReque¡Fž‹rFunùiÚ
+ 
+â
+è{ 
+_fž‹r
+ = fn;  *
+this
+; 
+	}
+}
+
+352 
+	gAsyncWebHªdËr
+& 
+	$£tAuth’tiÿtiÚ
+(cÚ¡ *
+u£ºame
+, cÚ¡ *
+·sswÜd
+){ 
+_u£ºame
+ = 
+	`SŒšg
+(u£ºame);
+_·sswÜd
+ = SŒšgÕasswÜd);  *
+this
+; 
+	}
+};
+
+353 
+boÞ
+ 
+	$fž‹r
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){  
+_fž‹r
+ =ð
+NULL
+ || 
+	`_fž‹r
+Ôeque¡); 
+	}
+}
+
+354 
+	gvœtu®
+ ~
+	$AsyncWebHªdËr
+(){
+	}
+}
+
+355 
+vœtu®
+ 
+boÞ
+ 
+ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+))){
+
+356  
+	gçl£
+;
+
+358 
+vœtu®
+ 
+hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+))){}
+
+359 
+vœtu®
+ 
+hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+SŒšg
+& 
+fž’ame
+ __©Œibu‹__((unu£d)), 
+size_t
+ 
+šdex
+ __©Œibu‹__((unu£d)), 
+ušt8_t
+ *
+d©a
+ __©Œibu‹__((unu£d)), size_ˆ
+Ën
+ __©Œibu‹__((unu£d)), 
+boÞ
+ 
+fš®
+ __attribute__((unused))){}
+
+360 
+vœtu®
+ 
+hªdËBody
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+)), 
+ušt8_t
+ *
+d©a
+ __©Œibu‹__((unu£d)), 
+size_t
+ 
+Ën
+ __©Œibu‹__((unu£d)), size_ˆ
+šdex
+ __©Œibu‹__((unu£d)), size_ˆ
+tÙ®
+ __attribute__((unused))){}
+
+361 
+vœtu®
+ 
+boÞ
+ 
+	$isReque¡HªdËrTrivŸl
+(){ 
+Œue
+;
+	}
+}
+
+369 
+	mRESPONSE_SETUP
+, 
+	mRESPONSE_HEADERS
+, 
+	mRESPONSE_CONTENT
+, 
+	mRESPONSE_WAIT_ACK
+, 
+	mRESPONSE_END
+, 
+	mRESPONSE_FAILED
+
+
+370 } 
+	tWebRe¥Ú£S�‹
+;
+
+372 þas 
+	cAsyncWebS”v”Re¥Ú£
+ {
+
+373 
+	m´Ùeùed
+:
+
+374 
+_code
+;
+
+375 
+	mLškedLi¡
+<
+	mAsyncWebH—d”
+ *> 
+	m_h—d”s
+;
+
+376 
+SŒšg
+ 
+	m_cÚ‹ÁTy³
+;
+
+377 
+size_t
+ 
+	m_cÚ‹ÁL’gth
+;
+
+378 
+boÞ
+ 
+	m_£ndCÚ‹ÁL’gth
+;
+
+379 
+boÞ
+ 
+	m_chunked
+;
+
+380 
+size_t
+ 
+	m_h—dL’gth
+;
+
+381 
+size_t
+ 
+	m_£ÁL’gth
+;
+
+382 
+size_t
+ 
+	m_ackedL’gth
+;
+
+383 
+size_t
+ 
+	m_wr™‹nL’gth
+;
+
+384 
+WebRe¥Ú£S�‹
+ 
+	m_¡©e
+;
+
+385 cÚ¡ * 
+_»¥Ú£CodeToSŒšg
+(
+code
+);
+
+386 
+	mpublic
+:
+
+387 cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+»¥Ú£CodeToSŒšg
+(
+code
+);
+
+389 
+	mpublic
+:
+
+390 
+AsyncWebS”v”Re¥Ú£
+();
+
+391 
+	mvœtu®
+ ~
+AsyncWebS”v”Re¥Ú£
+();
+
+392 
+vœtu®
+ 
+£tCode
+(
+code
+);
+
+393 
+vœtu®
+ 
+£tCÚ‹ÁL’gth
+(
+size_t
+ 
+Ën
+);
+
+394 
+vœtu®
+ 
+£tCÚ‹ÁTy³
+(cÚ¡ 
+SŒšg
+& 
+ty³
+);
+
+395 
+vœtu®
+ 
+addH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, cÚ¡ SŒšg& 
+v®ue
+);
+
+396 
+vœtu®
+ 
+SŒšg
+ 
+_as£mbËH—d
+(
+ušt8_t
+ 
+v”siÚ
+);
+
+397 
+vœtu®
+ 
+boÞ
+ 
+	$_¡¬‹d
+() const;
+
+398 
+vœtu®
+ 
+boÞ
+ 
+	$_fšished
+() const;
+
+399 
+vœtu®
+ 
+boÞ
+ 
+	$_çžed
+() const;
+
+400 
+vœtu®
+ 
+boÞ
+ 
+	$_sourûV®id
+() const;
+
+401 
+vœtu®
+ 
+	`_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+402 
+vœtu®
+ 
+size_t
+ 
+	`_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, size_ˆ
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+409 
+¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ *
+	t»que¡
+)> 
+	tArReque¡HªdËrFunùiÚ
+;
+
+410 
+¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ *
+	t»que¡
+, cÚ¡ 
+	tSŒšg
+& 
+	tfž’ame
+, 
+	tsize_t
+ 
+	tšdex
+, 
+	tušt8_t
+ *
+	td©a
+, size_ˆ
+	tËn
+, 
+	tboÞ
+ 
+	tfš®
+)> 
+	tArU¶ßdHªdËrFunùiÚ
+;
+
+411 
+¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ *
+	t»que¡
+, 
+	tušt8_t
+ *
+	td©a
+, 
+	tsize_t
+ 
+	tËn
+, size_ˆ
+	tšdex
+, size_ˆ
+	ttÙ®
+)> 
+	tArBodyHªdËrFunùiÚ
+;
+
+413 þas 
+	cAsyncWebS”v”
+ {
+
+414 
+´Ùeùed
+:
+
+415 
+AsyncS”v”
+ 
+_£rv”
+;
+
+416 
+LškedLi¡
+<
+AsyncWebRewr™e
+*> 
+_»wr™es
+;
+
+417 
+LškedLi¡
+<
+AsyncWebHªdËr
+*> 
+_hªdËrs
+;
+
+418 
+AsyncC®lbackWebHªdËr
+* 
+_ÿtchAÎHªdËr
+;
+
+420 
+public
+:
+
+421 
+	`AsyncWebS”v”
+(
+ušt16_t
+ 
+pÜt
+);
+
+422 ~
+	`AsyncWebS”v”
+();
+
+424 
+	`begš
+();
+
+425 
+	`’d
+();
+
+427 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+428 
+	`ÚS¦FžeReque¡
+(
+AcSSlFžeHªdËr
+ 
+cb
+, * 
+¬g
+);
+
+429 
+	`begšSecu»
+(cÚ¡ *
+û¹
+, cÚ¡ *
+´iv©e_key_fže
+, cÚ¡ *
+·sswÜd
+);
+
+432 
+AsyncWebRewr™e
+& 
+	`addRewr™e
+(AsyncWebRewr™e* 
+»wr™e
+);
+
+433 
+boÞ
+ 
+	`»moveRewr™e
+(
+AsyncWebRewr™e
+* 
+»wr™e
+);
+
+434 
+AsyncWebRewr™e
+& 
+	`»wr™e
+(cÚ¡ * 
+äom
+, cÚ¡ * 
+to
+);
+
+436 
+AsyncWebHªdËr
+& 
+	`addHªdËr
+(AsyncWebHªdËr* 
+hªdËr
+);
+
+437 
+boÞ
+ 
+	`»moveHªdËr
+(
+AsyncWebHªdËr
+* 
+hªdËr
+);
+
+439 
+AsyncC®lbackWebHªdËr
+& 
+	`Ú
+(cÚ¡ * 
+uri
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+);
+
+440 
+AsyncC®lbackWebHªdËr
+& 
+	`Ú
+(cÚ¡ * 
+uri
+, 
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+);
+
+441 
+AsyncC®lbackWebHªdËr
+& 
+	`Ú
+(cÚ¡ * 
+uri
+, 
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+, 
+ArU¶ßdHªdËrFunùiÚ
+ 
+ÚU¶ßd
+);
+
+442 
+AsyncC®lbackWebHªdËr
+& 
+	`Ú
+(cÚ¡ * 
+uri
+, 
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+, 
+ArU¶ßdHªdËrFunùiÚ
+ 
+ÚU¶ßd
+, 
+ArBodyHªdËrFunùiÚ
+ 
+ÚBody
+);
+
+444 
+AsyncS�ticWebHªdËr
+& 
+	`£rveS�tic
+(cÚ¡ * 
+uri
+, 
+fs
+::
+FS
+& fs, cÚ¡ * 
+·th
+, cÚ¡ * 
+ÿche_cÚŒÞ
+ = 
+NULL
+);
+
+446 
+	`ÚNÙFound
+(
+ArReque¡HªdËrFunùiÚ
+ 
+â
+);
+
+447 
+	`ÚFžeU¶ßd
+(
+ArU¶ßdHªdËrFunùiÚ
+ 
+â
+);
+
+448 
+	`ÚReque¡Body
+(
+ArBodyHªdËrFunùiÚ
+ 
+â
+);
+
+450 
+	`»£t
+();
+
+452 
+	`_hªdËDiscÚÃù
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+453 
+	`_©�chHªdËr
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+454 
+	`_»wr™eReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+457 þas 
+	cDeçuÉH—d”s
+ {
+
+458 
+usšg
+ 
+h—d”s_t
+ = 
+LškedLi¡
+<
+AsyncWebH—d”
+ *>;
+
+459 
+h—d”s_t
+ 
+_h—d”s
+;
+
+461 
+	$DeçuÉH—d”s
+()
+
+462 :
+	`_h—d”s
+(
+	`h—d”s_t
+([](
+AsyncWebH—d”
+ *
+h
+){ 
+d–‘e
+ h; }))
+
+463 {
+	}
+}
+
+464 
+	gpublic
+:
+
+465 
+usšg
+ 
+CÚ¡I‹¿tÜ
+ = 
+h—d”s_t
+::ConstIterator;
+
+467 
+	$addH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, cÚ¡ SŒšg& 
+v®ue
+){
+
+468 
+_h—d”s
+.
+	`add
+(
+Ãw
+ 
+	`AsyncWebH—d”
+(
+Çme
+, 
+v®ue
+));
+
+469 
+	}
+}
+
+471 
+CÚ¡I‹¿tÜ
+ 
+	$begš
+(ècÚ¡ {  
+_h—d”s
+.
+	`begš
+(); 
+	}
+}
+
+472 
+CÚ¡I‹¿tÜ
+ 
+	$’d
+(ècÚ¡ {  
+_h—d”s
+.
+	`’d
+(); 
+	}
+}
+
+474 
+DeçuÉH—d”s
+(DeçuÉH—d” cÚ¡ &èð
+d–‘e
+;
+
+475 
+	gDeçuÉH—d”s
+ &
+	gÝ”©Ü
+=(
+DeçuÉH—d”s
+ cÚ¡ &èð
+d–‘e
+;
+
+476 
+	gDeçuÉH—d”s
+ &
+	$In¡ªû
+() {
+
+477 
+DeçuÉH—d”s
+ 
+š¡ªû
+;
+
+478  
+š¡ªû
+;
+
+479 
+	}
+}
+
+482 
+	~"WebRe¥Ú£Im¶.h
+"
+
+483 
+	~"WebHªdËrIm¶.h
+"
+
+484 
+	~"AsyncWebSock‘.h
+"
+
+485 
+	~"AsyncEv’tSourû.h
+"
+
+	@lib/ESPAsyncWebServer/SPIFFSEditor.cpp
+
+1 
+	~"SPIFFSEd™Ü.h
+"
+
+2 
+	~<FS.h
+>
+
+5 
+	#ed™_htm_gz_Ën
+ 4151
+
+	)
+
+6 cÚ¡ 
+ušt8_t
+ 
+	ged™_htm_gz
+[] 
+	gPROGMEM
+ = {
+
+269 
+	#SPIFFS_MAXLENGTH_FILEPATH
+ 32
+
+	)
+
+270 cÚ¡ *
+	gexþudeLi¡Fže
+ = "/.exclude.files";
+
+272 
+	sExþudeLi¡S
+ {
+
+273 *
+	m™em
+;
+
+274 
+ExþudeLi¡S
+ *
+	mÃxt
+;
+
+275 } 
+	tExþudeLi¡
+;
+
+277 
+ExþudeLi¡
+ *
+	gexþudes
+ = 
+NULL
+;
+
+279 
+boÞ
+ 
+	$m©chWžd
+(cÚ¡ *
+·‰”n
+, cÚ¡ *
+‹¡“
+) {
+
+280 cÚ¡ *
+nxP©
+ = 
+NULL
+, *
+nxT¡
+ = NULL;
+
+282 *
+‹¡“
+) {
+
+283 ià(Ð*
+·‰”n
+ =ð'?' ) || (*·‰”À=ð*
+‹¡“
+)){
+
+284 
+·‰”n
+++;
+‹¡“
+++;
+
+287 ià(*
+·‰”n
+=='*'){
+
+288 
+nxP©
+=
+·‰”n
+++; 
+nxT¡
+=
+‹¡“
+;
+
+291 ià(
+nxP©
+){
+
+292 
+·‰”n
+ = 
+nxP©
++1; 
+‹¡“
+=++
+nxT¡
+;
+
+295  
+çl£
+;
+
+297 *
+·‰”n
+=='*'){pattern++;}
+
+298  (*
+·‰”n
+ == 0);
+
+299 
+	}
+}
+
+301 
+boÞ
+ 
+	$addExþude
+(cÚ¡ *
+™em
+){
+
+302 
+size_t
+ 
+Ën
+ = 
+	`¡¾’
+(
+™em
+);
+
+303 if(!
+Ën
+){
+
+304  
+çl£
+;
+
+306 
+ExþudeLi¡
+ *
+e
+ = (ExþudeLi¡ *)
+	`m®loc
+((ExcludeList));
+
+307 if(!
+e
+){
+
+308  
+çl£
+;
+
+310 
+e
+->
+™em
+ = (*)
+	`m®loc
+(
+Ën
++1);
+
+311 if(!
+e
+->
+™em
+){
+
+312 
+	`ä“
+(
+e
+);
+
+313  
+çl£
+;
+
+315 
+	`memýy
+(
+e
+->
+™em
+, i‹m, 
+Ën
++1);
+
+316 
+e
+->
+Ãxt
+ = 
+exþudes
+;
+
+317 
+exþudes
+ = 
+e
+;
+
+318  
+Œue
+;
+
+319 
+	}
+}
+
+321 
+	$lßdExþudeLi¡
+(
+fs
+::
+FS
+ &
+_fs
+, cÚ¡ *
+fž’ame
+){
+
+322 
+lšebuf
+[
+SPIFFS_MAXLENGTH_FILEPATH
+];
+
+323 
+fs
+::
+Fže
+ 
+exþudeFže
+=
+_fs
+.
+	`Ý’
+(
+fž’ame
+, "r");
+
+324 if(!
+exþudeFže
+){
+
+328 #ifdeà
+ESP32
+
+
+329 if(
+exþudeFže
+.
+	`isDœeùÜy
+()){
+
+330 
+exþudeFže
+.
+	`þo£
+();
+
+334 ià(
+exþudeFže
+.
+	`size
+() > 0){
+
+335 
+ušt8_t
+ 
+idx
+;
+
+336 
+boÞ
+ 
+isOv”æowed
+ = 
+çl£
+;
+
+337 
+exþudeFže
+.
+	`avažabË
+()){
+
+338 
+lšebuf
+[0] = '\0';
+
+339 
+idx
+ = 0;
+
+340 
+Ï¡Ch¬
+;
+
+342 
+Ï¡Ch¬
+ = 
+exþudeFže
+.
+	`»ad
+();
+
+343 if(
+Ï¡Ch¬
+ != '\r'){
+
+344 
+lšebuf
+[
+idx
+++] = (è
+Ï¡Ch¬
+;
+
+346 } (
+Ï¡Ch¬
+ >ð0è&& (Ï¡Ch¬ !ð'\n'è&& (
+idx
+ < 
+SPIFFS_MAXLENGTH_FILEPATH
+));
+
+348 if(
+isOv”æowed
+){
+
+349 
+isOv”æowed
+ = (
+Ï¡Ch¬
+ != '\n');
+
+352 
+isOv”æowed
+ = (
+idx
+ >ð
+SPIFFS_MAXLENGTH_FILEPATH
+);
+
+353 
+lšebuf
+[
+idx
+-1] = '\0';
+
+354 if(!
+	`addExþude
+(
+lšebuf
+)){
+
+355 
+exþudeFže
+.
+	`þo£
+();
+
+360 
+exþudeFže
+.
+	`þo£
+();
+
+361 
+	}
+}
+
+363 
+boÞ
+ 
+	$isExþuded
+(
+fs
+::
+FS
+ &
+_fs
+, cÚ¡ *
+fž’ame
+) {
+
+364 if(
+exþudes
+ =ð
+NULL
+){
+
+365 
+	`lßdExþudeLi¡
+(
+_fs
+, 
+exþudeLi¡Fže
+);
+
+367 
+ExþudeLi¡
+ *
+e
+ = 
+exþudes
+;
+
+368 
+e
+){
+
+369 ià(
+	`m©chWžd
+(
+e
+->
+™em
+, 
+fž’ame
+)){
+
+370  
+Œue
+;
+
+372 
+e
+ =ƒ->
+Ãxt
+;
+
+374  
+çl£
+;
+
+375 
+	}
+}
+
+379 #ifdeà
+ESP32
+
+
+380 
+	gSPIFFSEd™Ü
+::
+	$SPIFFSEd™Ü
+(cÚ¡ 
+fs
+::
+FS
+& fs, cÚ¡ 
+SŒšg
+& 
+u£ºame
+, cÚ¡ SŒšg& 
+·sswÜd
+)
+
+382 
+SPIFFSEd™Ü
+::
+	$SPIFFSEd™Ü
+(cÚ¡ 
+SŒšg
+& 
+u£ºame
+, cÚ¡ SŒšg& 
+·sswÜd
+, cÚ¡ 
+fs
+::
+FS
+& fs)
+
+384 :
+	`_fs
+(
+fs
+)
+
+385 ,
+	`_u£ºame
+(
+u£ºame
+)
+
+386 ,
+	`_·sswÜd
+(
+·sswÜd
+)
+
+387 ,
+	`_auth’tiÿ‹d
+(
+çl£
+)
+
+388 ,
+	$_¡¬tTime
+(0)
+
+389 {
+	}
+}
+
+391 
+boÞ
+ 
+	gSPIFFSEd™Ü
+::
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+392 if(
+»que¡
+->
+	`u¾
+().
+	`equ®sIgnÜeCa£
+("/edit")){
+
+393 if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_GET
+){
+
+394 if(
+»que¡
+->
+	`hasP¬am
+("list"))
+
+395  
+Œue
+;
+
+396 if(
+»que¡
+->
+	`hasP¬am
+("edit")){
+
+397 
+»que¡
+->
+_‹mpFže
+ = 
+_fs
+.
+	`Ý’
+Ôeque¡->
+	`¬g
+("edit"), "r");
+
+398 if(!
+»que¡
+->
+_‹mpFže
+){
+
+399  
+çl£
+;
+
+401 #ifdeà
+ESP32
+
+
+402 if(
+»que¡
+->
+_‹mpFže
+.
+	`isDœeùÜy
+()){
+
+403 
+»que¡
+->
+_‹mpFže
+.
+	`þo£
+();
+
+404  
+çl£
+;
+
+408 if(
+»que¡
+->
+	`hasP¬am
+("download")){
+
+409 
+»que¡
+->
+_‹mpFže
+ = 
+_fs
+.
+	`Ý’
+Ôeque¡->
+	`¬g
+("download"), "r");
+
+410 if(!
+»que¡
+->
+_‹mpFže
+){
+
+411  
+çl£
+;
+
+413 #ifdeà
+ESP32
+
+
+414 if(
+»que¡
+->
+_‹mpFže
+.
+	`isDœeùÜy
+()){
+
+415 
+»que¡
+->
+_‹mpFže
+.
+	`þo£
+();
+
+416  
+çl£
+;
+
+420 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+("If-Modified-Since");
+
+421  
+Œue
+;
+
+423 if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_POST
+)
+
+424  
+Œue
+;
+
+425 if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_DELETE
+)
+
+426  
+Œue
+;
+
+427 if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_PUT
+)
+
+428  
+Œue
+;
+
+431  
+çl£
+;
+
+432 
+	}
+}
+
+435 
+	gSPIFFSEd™Ü
+::
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+436 if(
+_u£ºame
+.
+	`Ëngth
+(è&& 
+_·sswÜd
+.Ëngth(è&& !
+»que¡
+->
+	`auth’tiÿ‹
+(_u£ºame.
+	`c_¡r
+(), _password.c_str()))
+
+437  
+»que¡
+->
+	`»que¡Auth’tiÿtiÚ
+();
+
+439 if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_GET
+){
+
+440 if(
+»que¡
+->
+	`hasP¬am
+("list")){
+
+441 
+SŒšg
+ 
+·th
+ = 
+»que¡
+->
+	`g‘P¬am
+("li¡")->
+	`v®ue
+();
+
+442 #ifdeà
+ESP32
+
+
+443 
+Fže
+ 
+dœ
+ = 
+_fs
+.
+	`Ý’
+(
+·th
+);
+
+445 
+Dœ
+ 
+dœ
+ = 
+_fs
+.
+	`Ý’Dœ
+(
+·th
+);
+
+447 
+·th
+ = 
+	`SŒšg
+();
+
+448 
+SŒšg
+ 
+ou�ut
+ = "[";
+
+449 #ifdeà
+ESP32
+
+
+450 
+Fže
+ 
+’Œy
+ = 
+dœ
+.
+	`Ý’NextFže
+();
+
+451 
+’Œy
+){
+
+453 
+dœ
+.
+	`Ãxt
+()){
+
+454 
+fs
+::
+Fže
+ 
+’Œy
+ = 
+dœ
+.
+	`Ý’Fže
+("r");
+
+456 ià(
+	`isExþuded
+(
+_fs
+, 
+’Œy
+.
+	`Çme
+())) {
+
+457 #ifdeà
+ESP32
+
+
+458 
+’Œy
+ = 
+dœ
+.
+	`Ý’NextFže
+();
+
+462 ià(
+ou�ut
+ != "[") output += ',';
+
+463 
+ou�ut
+ += "{\"type\":\"";
+
+464 
+ou�ut
+ += "file";
+
+465 
+ou�ut
+ += "\",\"name\":\"";
+
+466 
+ou�ut
+ +ð
+	`SŒšg
+(
+’Œy
+.
+	`Çme
+());
+
+467 
+ou�ut
+ += "\",\"size\":";
+
+468 
+ou�ut
+ +ð
+	`SŒšg
+(
+’Œy
+.
+	`size
+());
+
+469 
+ou�ut
+ += "}";
+
+470 #ifdeà
+ESP32
+
+
+471 
+’Œy
+ = 
+dœ
+.
+	`Ý’NextFže
+();
+
+473 
+’Œy
+.
+	`þo£
+();
+
+476 #ifdeà
+ESP32
+
+
+477 
+dœ
+.
+	`þo£
+();
+
+479 
+ou�ut
+ += "]";
+
+480 
+»que¡
+->
+	`£nd
+(200, "­¶iÿtiÚ/jsÚ", 
+ou�ut
+);
+
+481 
+ou�ut
+ = 
+	`SŒšg
+();
+
+483 if(
+»que¡
+->
+	`hasP¬am
+("edit") ||„equest->hasParam("download")){
+
+484 
+»que¡
+->
+	`£nd
+Ôeque¡->
+_‹mpFže
+,„eque¡->_‹mpFže.
+	`Çme
+(), 
+	`SŒšg
+(),„eque¡->
+	`hasP¬am
+("download"));
+
+487 cÚ¡ * 
+buždTime
+ = 
+__DATE__
+ " " 
+__TIME__
+ " GMT";
+
+488 ià(
+»que¡
+->
+	`h—d”
+("If-Modif›d-Sšû").
+	`equ®s
+(
+buždTime
+)) {
+
+489 
+»que¡
+->
+	`£nd
+(304);
+
+491 
+AsyncWebS”v”Re¥Ú£
+ *
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£_P
+(200, "‹xt/html", 
+ed™_htm_gz
+, 
+ed™_htm_gz_Ën
+);
+
+492 
+»¥Ú£
+->
+	`addH—d”
+("Content-Encoding", "gzip");
+
+493 
+»¥Ú£
+->
+	`addH—d”
+("La¡-Modif›d", 
+buždTime
+);
+
+494 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+497 } if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_DELETE
+){
+
+498 if(
+»que¡
+->
+	`hasP¬am
+("·th", 
+Œue
+)){
+
+499 
+_fs
+.
+	`»move
+(
+»que¡
+->
+	`g‘P¬am
+("·th", 
+Œue
+)->
+	`v®ue
+());
+
+500 
+»que¡
+->
+	`£nd
+(200, "", "DELETE: "+»que¡->
+	`g‘P¬am
+("·th", 
+Œue
+)->
+	`v®ue
+());
+
+502 
+»que¡
+->
+	`£nd
+(404);
+
+503 } if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_POST
+){
+
+504 if(
+»que¡
+->
+	`hasP¬am
+("d©a", 
+Œue
+,�rueè&& 
+_fs
+.
+	`exi¡s
+Ôeque¡->
+	`g‘P¬am
+("d©a",�rue,�rue)->
+	`v®ue
+()))
+
+505 
+»que¡
+->
+	`£nd
+(200, "", "UPLOADED: "+»que¡->
+	`g‘P¬am
+("d©a", 
+Œue
+,�rue)->
+	`v®ue
+());
+
+507 
+»que¡
+->
+	`£nd
+(500);
+
+508 } if(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_PUT
+){
+
+509 if(
+»que¡
+->
+	`hasP¬am
+("·th", 
+Œue
+)){
+
+510 
+SŒšg
+ 
+fž’ame
+ = 
+»que¡
+->
+	`g‘P¬am
+("·th", 
+Œue
+)->
+	`v®ue
+();
+
+511 if(
+_fs
+.
+	`exi¡s
+(
+fž’ame
+)){
+
+512 
+»que¡
+->
+	`£nd
+(200);
+
+514 
+fs
+::
+Fže
+ 
+f
+ = 
+_fs
+.
+	`Ý’
+(
+fž’ame
+, "w");
+
+515 if(
+f
+){
+
+516 
+f
+.
+	`wr™e
+((
+ušt8_t
+)0x00);
+
+517 
+f
+.
+	`þo£
+();
+
+518 
+»que¡
+->
+	`£nd
+(200, "", "CREATE: "+
+fž’ame
+);
+
+520 
+»que¡
+->
+	`£nd
+(500);
+
+524 
+»que¡
+->
+	`£nd
+(400);
+
+526 
+	}
+}
+
+528 
+	gSPIFFSEd™Ü
+::
+	$hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, cÚ¡ 
+SŒšg
+& 
+fž’ame
+, 
+size_t
+ 
+šdex
+, 
+ušt8_t
+ *
+d©a
+, size_ˆ
+Ën
+, 
+boÞ
+ 
+fš®
+){
+
+529 if(!
+šdex
+){
+
+530 if(!
+_u£ºame
+.
+	`Ëngth
+(è|| 
+»que¡
+->
+	`auth’tiÿ‹
+(_u£ºame.
+	`c_¡r
+(),
+_·sswÜd
+.c_str())){
+
+531 
+_auth’tiÿ‹d
+ = 
+Œue
+;
+
+532 
+»que¡
+->
+_‹mpFže
+ = 
+_fs
+.
+	`Ý’
+(
+fž’ame
+, "w");
+
+533 
+_¡¬tTime
+ = 
+	`mžlis
+();
+
+536 if(
+_auth’tiÿ‹d
+ && 
+»que¡
+->
+_‹mpFže
+){
+
+537 if(
+Ën
+){
+
+538 
+»que¡
+->
+_‹mpFže
+.
+	`wr™e
+(
+d©a
+,
+Ën
+);
+
+540 if(
+fš®
+){
+
+541 
+»que¡
+->
+_‹mpFže
+.
+	`þo£
+();
+
+544 
+	}
+}
+
+	@lib/ESPAsyncWebServer/SPIFFSEditor.h
+
+1 #iâdeà
+SPIFFSEd™Ü_H_
+
+
+2 
+	#SPIFFSEd™Ü_H_
+
+
+	)
+
+3 
+	~<ESPAsyncWebS”v”.h
+>
+
+5 þas 
+	cSPIFFSEd™Ü
+ : 
+public
+ 
+AsyncWebHªdËr
+ {
+
+6 
+´iv©e
+:
+
+7 
+fs
+::
+FS
+ 
+_fs
+;
+
+8 
+SŒšg
+ 
+	m_u£ºame
+;
+
+9 
+SŒšg
+ 
+	m_·sswÜd
+;
+
+10 
+boÞ
+ 
+	m_auth’tiÿ‹d
+;
+
+11 
+ušt32_t
+ 
+	m_¡¬tTime
+;
+
+13 
+	mpublic
+:
+
+14 #ifdeà
+ESP32
+
+
+15 
+SPIFFSEd™Ü
+(cÚ¡ 
+fs
+::
+FS
+ & fs, cÚ¡ 
+SŒšg
+ & 
+u£ºame
+ = SŒšg(), cÚ¡ SŒšg & 
+·sswÜd
+ = String());
+
+17 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+18 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wdeprecated-declarations"
+
+19 
+SPIFFSEd™Ü
+(cÚ¡ 
+SŒšg
+ & 
+u£ºame
+ = SŒšg(), cÚ¡ SŒšg & 
+·sswÜd
+ = SŒšg(), cÚ¡ 
+fs
+::
+FS
+ & f ð
+SPIFFS
+);
+
+20 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+22 
+vœtu®
+ 
+boÞ
+ 
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+23 
+vœtu®
+ 
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+24 
+vœtu®
+ 
+	$hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+, cÚ¡ 
+SŒšg
+ & 
+fž’ame
+, 
+size_t
+ 
+šdex
+, 
+ušt8_t
+ * 
+d©a
+, size_ˆ
+Ën
+, 
+boÞ
+ 
+fš®
+è
+ov”ride
+ final;
+
+25 
+vœtu®
+ 
+boÞ
+ 
+	$isReque¡HªdËrTrivŸl
+(è
+ov”ride
+ 
+fš®
+ {
+
+26  
+çl£
+;
+
+28 
+	}
+};
+
+	@lib/ESPAsyncWebServer/StringArray.h
+
+21 #iâdeà
+STRINGARRAY_H_
+
+
+22 
+	#STRINGARRAY_H_
+
+
+	)
+
+24 
+	~"¡ddef.h
+"
+
+25 
+	~"WSŒšg.h
+"
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+28 þas 
+	cLškedLi¡Node
+ {
+
+29 
+T
+ 
+	m_v®ue
+;
+
+30 
+	mpublic
+:
+
+31 
+LškedLi¡Node
+<
+T
+>* 
+Ãxt
+;
+
+32 
+	$LškedLi¡Node
+(cÚ¡ 
+T
+ 
+v®
+): 
+	`_v®ue
+(v®), 
+	$Ãxt
+(
+nuÎ±r
+) {}
+
+33 ~
+	$LškedLi¡Node
+(){
+	}
+}
+
+34 cÚ¡ 
+	gT
+& 
+	$v®ue
+(ècÚ¡ {  
+_v®ue
+; 
+	}
+};
+
+35 
+	gT
+& 
+	$v®ue
+(){  
+_v®ue
+; 
+	}
+}
+
+38 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�em¶©e<
+	gty³Çme
+> 
+þass
+ 
+	gI‹m
+ = 
+LškedLi¡Node
+>
+
+39 þas 
+	cLškedLi¡
+ {
+
+40 
+public
+:
+
+41 
+I‹m
+<
+	tT
+> 
+	tI‹mTy³
+;
+
+42 
+	m¡d
+::
+	tfunùiÚ
+<(cÚ¡ 
+	tT
+&)> 
+	tOnRemove
+;
+
+43 
+	m¡d
+::
+	tfunùiÚ
+<
+	tboÞ
+(cÚ¡ 
+	tT
+&)> 
+	tP»diÿ‹
+;
+
+44 
+	m´iv©e
+:
+
+45 
+I‹mTy³
+* 
+_roÙ
+;
+
+46 
+OnRemove
+ 
+	m_ÚRemove
+;
+
+48 þas 
+	cI‹¿tÜ
+ {
+
+49 
+I‹mTy³
+* 
+	m_node
+;
+
+50 
+	mpublic
+:
+
+51 
+I‹¿tÜ
+(
+I‹mTy³
+* 
+cu¼’t
+ = 
+nuÎ±r
+è: 
+_node
+(current) {}
+
+52 
+I‹¿tÜ
+(cÚ¡ I‹¿tÜ& 
+i
+è: 
+_node
+(i._node) {}
+
+53 
+I‹¿tÜ
+& 
+Ý”©Ü
+ ++(è{ 
+_node
+ = _node->
+Ãxt
+;  *
+	mthis
+; }
+
+54 
+boÞ
+ 
+	mÝ”©Ü
+ !ð(cÚ¡ 
+I‹¿tÜ
+& 
+i
+ècÚ¡ {  
+_node
+ != i._node; }
+
+55 cÚ¡ 
+	mT
+& 
+	mÝ”©Ü
+ * (ècÚ¡ {  
+	m_node
+->
+v®ue
+(); }
+
+56 cÚ¡ 
+T
+* 
+	mÝ”©Ü
+ -> (ècÚ¡ {  &
+	m_node
+->
+v®ue
+(); }
+
+59 
+	gpublic
+:
+
+60 cÚ¡ 
+	tI‹¿tÜ
+ 
+	tCÚ¡I‹¿tÜ
+;
+
+61 
+CÚ¡I‹¿tÜ
+ 
+	$begš
+(ècÚ¡ {  
+	`CÚ¡I‹¿tÜ
+(
+_roÙ
+); 
+	}
+}
+
+62 
+CÚ¡I‹¿tÜ
+ 
+	$’d
+(ècÚ¡ {  
+	`CÚ¡I‹¿tÜ
+(
+nuÎ±r
+); 
+	}
+}
+
+64 
+	$LškedLi¡
+(
+OnRemove
+ 
+ÚRemove
+è: 
+	`_roÙ
+(
+nuÎ±r
+), 
+	$_ÚRemove
+(
+ÚRemove
+è{
+	}
+}
+
+65 ~
+	$LškedLi¡
+(){
+	}
+}
+
+66 
+	$add
+(cÚ¡ 
+T
+& 
+t
+){
+
+67 autØ
+™
+ = 
+Ãw
+ 
+	`I‹mTy³
+(
+t
+);
+
+68 if(!
+_roÙ
+){
+
+69 
+_roÙ
+ = 
+™
+;
+
+71 autØ
+i
+ = 
+_roÙ
+;
+
+72 
+i
+->
+Ãxt
+) i = i->next;
+
+73 
+i
+->
+Ãxt
+ = 
+™
+;
+
+75 
+	}
+}
+
+76 
+	gT
+& 
+	$äÚt
+() const {
+
+77  
+_roÙ
+->
+	`v®ue
+();
+
+78 
+	}
+}
+
+80 
+boÞ
+ 
+	$isEm±y
+() const {
+
+81  
+_roÙ
+ =ð
+nuÎ±r
+;
+
+82 
+	}
+}
+
+83 
+size_t
+ 
+	$Ëngth
+() const {
+
+84 
+size_t
+ 
+i
+ = 0;
+
+85 autØ
+™
+ = 
+_roÙ
+;
+
+86 
+™
+){
+
+87 
+i
+++;
+
+88 
+™
+ = it->
+Ãxt
+;
+
+90  
+i
+;
+
+91 
+	}
+}
+
+92 
+size_t
+ 
+	$couÁ_if
+(
+P»diÿ‹
+ 
+´ediÿ‹
+) const {
+
+93 
+size_t
+ 
+i
+ = 0;
+
+94 autØ
+™
+ = 
+_roÙ
+;
+
+95 
+™
+){
+
+96 ià(!
+´ediÿ‹
+){
+
+97 
+i
+++;
+
+99 ià(
+	`´ediÿ‹
+(
+™
+->
+	`v®ue
+())) {
+
+100 
+i
+++;
+
+102 
+™
+ = it->
+Ãxt
+;
+
+104  
+i
+;
+
+105 
+	}
+}
+
+106 cÚ¡ 
+T
+* 
+	$Áh
+(
+size_t
+ 
+N
+) const {
+
+107 
+size_t
+ 
+i
+ = 0;
+
+108 autØ
+™
+ = 
+_roÙ
+;
+
+109 
+™
+){
+
+110 if(
+i
+++ =ð
+N
+)
+
+111  &(
+™
+->
+	`v®ue
+());
+
+112 
+™
+ = it->
+Ãxt
+;
+
+114  
+nuÎ±r
+;
+
+115 
+	}
+}
+
+116 
+boÞ
+ 
+	$»move
+(cÚ¡ 
+T
+& 
+t
+){
+
+117 autØ
+™
+ = 
+_roÙ
+;
+
+118 autØ
+p™
+ = 
+_roÙ
+;
+
+119 
+™
+){
+
+120 if(
+™
+->
+	`v®ue
+(è=ð
+t
+){
+
+121 if(
+™
+ =ð
+_roÙ
+){
+
+122 
+_roÙ
+ = _roÙ->
+Ãxt
+;
+
+124 
+p™
+->
+Ãxt
+ = 
+™
+->next;
+
+127 ià(
+_ÚRemove
+) {
+
+128 
+	`_ÚRemove
+(
+™
+->
+	`v®ue
+());
+
+131 
+d–‘e
+ 
+™
+;
+
+132  
+Œue
+;
+
+134 
+p™
+ = 
+™
+;
+
+135 
+™
+ = it->
+Ãxt
+;
+
+137  
+çl£
+;
+
+138 
+	}
+}
+
+139 
+boÞ
+ 
+	$»move_fœ¡
+(
+P»diÿ‹
+ 
+´ediÿ‹
+){
+
+140 autØ
+™
+ = 
+_roÙ
+;
+
+141 autØ
+p™
+ = 
+_roÙ
+;
+
+142 
+™
+){
+
+143 if(
+	`´ediÿ‹
+(
+™
+->
+	`v®ue
+())){
+
+144 if(
+™
+ =ð
+_roÙ
+){
+
+145 
+_roÙ
+ = _roÙ->
+Ãxt
+;
+
+147 
+p™
+->
+Ãxt
+ = 
+™
+->next;
+
+149 ià(
+_ÚRemove
+) {
+
+150 
+	`_ÚRemove
+(
+™
+->
+	`v®ue
+());
+
+152 
+d–‘e
+ 
+™
+;
+
+153  
+Œue
+;
+
+155 
+p™
+ = 
+™
+;
+
+156 
+™
+ = it->
+Ãxt
+;
+
+158  
+çl£
+;
+
+159 
+	}
+}
+
+161 
+	$ä“
+(){
+
+162 
+_roÙ
+ !ð
+nuÎ±r
+){
+
+163 autØ
+™
+ = 
+_roÙ
+;
+
+164 
+_roÙ
+ = _roÙ->
+Ãxt
+;
+
+165 ià(
+_ÚRemove
+) {
+
+166 
+	`_ÚRemove
+(
+™
+->
+	`v®ue
+());
+
+168 
+d–‘e
+ 
+™
+;
+
+170 
+_roÙ
+ = 
+nuÎ±r
+;
+
+171 
+	}
+}
+
+175 
+þass
+ 
+	gSŒšgA¼ay
+ : 
+public
+ 
+LškedLi¡
+<
+SŒšg
+> {
+
+176 
+public
+:
+
+178 
+SŒšgA¼ay
+(è: 
+LškedLi¡
+(
+nuÎ±r
+) {}
+
+180 
+boÞ
+ 
+cÚ�šsIgnÜeCa£
+(cÚ¡ 
+SŒšg
+& 
+¡r
+){
+
+181 cÚ¡‡uto& 
+s
+ : *
+this
+) {
+
+182 ià(
+¡r
+.
+equ®sIgnÜeCa£
+(
+s
+)) {
+
+183  
+Œue
+;
+
+186  
+	gçl£
+;
+
+	@lib/ESPAsyncWebServer/WebAuthentication.cpp
+
+21 
+	~"WebAuth’tiÿtiÚ.h
+"
+
+22 
+	~<libb64/ûncode.h
+>
+
+23 #ifdeà
+ESP32
+
+
+24 
+	~"mbedŽs/md5.h
+"
+
+26 
+	~"md5.h
+"
+
+32 
+boÞ
+ 
+	$checkBasicAuth’tiÿtiÚ
+(cÚ¡ * 
+hash
+, cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+){
+
+33 if(
+u£ºame
+ =ð
+NULL
+ || 
+·sswÜd
+ =ðNULL || 
+hash
+ == NULL)
+
+34  
+çl£
+;
+
+36 
+size_t
+ 
+tÛncodeL’
+ = 
+	`¡¾’
+(
+u£ºame
+)+¡¾’(
+·sswÜd
+)+1;
+
+37 
+size_t
+ 
+’codedL’
+ = 
+	`ba£64_’code_ex³ùed_Ën
+(
+tÛncodeL’
+);
+
+38 if(
+	`¡¾’
+(
+hash
+è!ð
+’codedL’
+)
+
+39  
+çl£
+;
+
+41 *
+tÛncode
+ = 
+Ãw
+ [
+tÛncodeL’
++1];
+
+42 if(
+tÛncode
+ =ð
+NULL
+){
+
+43  
+çl£
+;
+
+45 *
+’coded
+ = 
+Ãw
+ [
+	`ba£64_’code_ex³ùed_Ën
+(
+tÛncodeL’
+)+1];
+
+46 if(
+’coded
+ =ð
+NULL
+){
+
+47 
+d–‘e
+[] 
+tÛncode
+;
+
+48  
+çl£
+;
+
+50 
+	`¥rštf_P
+(
+tÛncode
+, 
+	`PSTR
+("%s:%s"), 
+u£ºame
+, 
+·sswÜd
+);
+
+51 if(
+	`ba£64_’code_ch¬s
+(
+tÛncode
+, 
+tÛncodeL’
+, 
+’coded
+è> 0 && 
+	`memcmp
+(
+hash
+,ƒncoded, 
+’codedL’
+) == 0){
+
+52 
+d–‘e
+[] 
+tÛncode
+;
+
+53 
+d–‘e
+[] 
+’coded
+;
+
+54  
+Œue
+;
+
+56 
+d–‘e
+[] 
+tÛncode
+;
+
+57 
+d–‘e
+[] 
+’coded
+;
+
+58  
+çl£
+;
+
+59 
+	}
+}
+
+61 
+boÞ
+ 
+	$g‘MD5
+(
+ušt8_t
+ * 
+d©a
+, 
+ušt16_t
+ 
+Ën
+, * 
+ou�ut
+){
+
+62 #ifdeà
+ESP32
+
+
+63 
+mbedŽs_md5_cÚ‹xt
+ 
+_ùx
+;
+
+65 
+md5_cÚ‹xt_t
+ 
+_ùx
+;
+
+67 
+ušt8_t
+ 
+i
+;
+
+68 
+ušt8_t
+ * 
+_buf
+ = (ušt8_t*)
+	`m®loc
+(16);
+
+69 if(
+_buf
+ =ð
+NULL
+)
+
+70  
+çl£
+;
+
+71 
+	`mem£t
+(
+_buf
+, 0x00, 16);
+
+72 #ifdeà
+ESP32
+
+
+73 
+	`mbedŽs_md5_š™
+(&
+_ùx
+);
+
+74 
+	`mbedŽs_md5_¡¬ts
+(&
+_ùx
+);
+
+75 
+	`mbedŽs_md5_upd©e
+(&
+_ùx
+, 
+d©a
+, 
+Ën
+);
+
+76 
+	`mbedŽs_md5_fšish
+(&
+_ùx
+, 
+_buf
+);
+
+78 
+	`MD5In™
+(&
+_ùx
+);
+
+79 
+	`MD5Upd©e
+(&
+_ùx
+, 
+d©a
+, 
+Ën
+);
+
+80 
+	`MD5Fš®
+(
+_buf
+, &
+_ùx
+);
+
+82 
+i
+ = 0; i < 16; i++) {
+
+83 
+	`¥rštf_P
+(
+ou�ut
+ + (
+i
+ * 2), 
+	`PSTR
+("%02x"), 
+_buf
+[i]);
+
+85 
+	`ä“
+(
+_buf
+);
+
+86  
+Œue
+;
+
+87 
+	}
+}
+
+89 
+SŒšg
+ 
+	$g’RªdomMD5
+(){
+
+90 #ifdeà
+ESP8266
+
+
+91 
+ušt32_t
+ 
+r
+ = 
+RANDOM_REG32
+;
+
+93 
+ušt32_t
+ 
+r
+ = 
+	`¿nd
+();
+
+95 * 
+out
+ = (*)
+	`m®loc
+(33);
+
+96 if(
+out
+ =ð
+NULL
+ || !
+	`g‘MD5
+((
+ušt8_t
+*)(&
+r
+), 4, out))
+
+97  
+em±ySŒšg
+;
+
+98 
+SŒšg
+ 
+»s
+ = 
+	`SŒšg
+(
+out
+);
+
+99 
+	`ä“
+(
+out
+);
+
+100  
+»s
+;
+
+101 
+	}
+}
+
+103 
+SŒšg
+ 
+	$¡ršgMD5
+(cÚ¡ 
+SŒšg
+& 
+š
+){
+
+104 * 
+out
+ = (*)
+	`m®loc
+(33);
+
+105 if(
+out
+ =ð
+NULL
+ || !
+	`g‘MD5
+((
+ušt8_t
+*)(
+š
+.
+	`c_¡r
+()), in.
+	`Ëngth
+(), out))
+
+106  
+em±ySŒšg
+;
+
+107 
+SŒšg
+ 
+»s
+ = 
+	`SŒšg
+(
+out
+);
+
+108 
+	`ä“
+(
+out
+);
+
+109  
+»s
+;
+
+110 
+	}
+}
+
+112 
+SŒšg
+ 
+	$g’”©eDige¡Hash
+(cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+, cÚ¡ * 
+»®m
+){
+
+113 if(
+u£ºame
+ =ð
+NULL
+ || 
+·sswÜd
+ =ðNULL || 
+»®m
+ == NULL){
+
+114  
+em±ySŒšg
+;
+
+116 * 
+out
+ = (*)
+	`m®loc
+(33);
+
+117 
+SŒšg
+ 
+»s
+ = 
+	`SŒšg
+(
+u£ºame
+);
+
+118 
+»s
+ += ':';
+
+119 
+»s
+.
+	`cÚÿt
+(
+»®m
+);
+
+120 
+»s
+ += ':';
+
+121 
+SŒšg
+ 
+š
+ = 
+»s
+;
+
+122 
+š
+.
+	`cÚÿt
+(
+·sswÜd
+);
+
+123 if(
+out
+ =ð
+NULL
+ || !
+	`g‘MD5
+((
+ušt8_t
+*)(
+š
+.
+	`c_¡r
+()), in.
+	`Ëngth
+(), out))
+
+124  
+em±ySŒšg
+;
+
+125 
+»s
+.
+	`cÚÿt
+(
+out
+);
+
+126 
+	`ä“
+(
+out
+);
+
+127  
+»s
+;
+
+128 
+	}
+}
+
+130 
+SŒšg
+ 
+	$»que¡Dige¡Auth’tiÿtiÚ
+(cÚ¡ * 
+»®m
+){
+
+131 
+SŒšg
+ 
+h—d”
+ = 
+	`F
+("realm=\"");
+
+132 if(
+»®m
+ =ð
+NULL
+)
+
+133 
+h—d”
+.
+	`cÚÿt
+(
+	`F
+("asyncesp"));
+
+135 
+h—d”
+.
+	`cÚÿt
+(
+»®m
+);
+
+136 
+h—d”
+.
+	`cÚÿt
+(
+	`F
+("\", qop=\"auth\",‚once=\""));
+
+137 
+h—d”
+.
+	`cÚÿt
+(
+	`g’RªdomMD5
+());
+
+138 
+h—d”
+.
+	`cÚÿt
+(
+	`F
+("\", opaque=\""));
+
+139 
+h—d”
+.
+	`cÚÿt
+(
+	`g’RªdomMD5
+());
+
+140 
+h—d”
+ += '"';
+
+141  
+h—d”
+;
+
+142 
+	}
+}
+
+144 
+boÞ
+ 
+	$checkDige¡Auth’tiÿtiÚ
+(cÚ¡ * 
+h—d”
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+m‘hod
+, cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+, cÚ¡ * 
+»®m
+, 
+boÞ
+ 
+·sswÜdIsHash
+, cÚ¡ * 
+nÚû
+, cÚ¡ * 
+Ýaque
+, cÚ¡ * 
+uri
+){
+
+145 if(
+u£ºame
+ =ð
+NULL
+ || 
+·sswÜd
+ =ðNULL || 
+h—d”
+ =ðNULL || 
+m‘hod
+ == NULL){
+
+147  
+çl£
+;
+
+150 
+SŒšg
+ 
+myH—d”
+ = 
+	`SŒšg
+(
+h—d”
+);
+
+151 
+ÃxtB»ak
+ = 
+myH—d”
+.
+	`šdexOf
+(',');
+
+152 if(
+ÃxtB»ak
+ < 0){
+
+154  
+çl£
+;
+
+157 
+SŒšg
+ 
+myU£ºame
+ = 
+	`SŒšg
+();
+
+158 
+SŒšg
+ 
+myR—lm
+ = 
+	`SŒšg
+();
+
+159 
+SŒšg
+ 
+myNÚû
+ = 
+	`SŒšg
+();
+
+160 
+SŒšg
+ 
+myUri
+ = 
+	`SŒšg
+();
+
+161 
+SŒšg
+ 
+myRe¥Ú£
+ = 
+	`SŒšg
+();
+
+162 
+SŒšg
+ 
+myQÝ
+ = 
+	`SŒšg
+();
+
+163 
+SŒšg
+ 
+myNc
+ = 
+	`SŒšg
+();
+
+164 
+SŒšg
+ 
+myCnÚû
+ = 
+	`SŒšg
+();
+
+166 
+myH—d”
+ +ð
+	`F
+(", ");
+
+168 
+SŒšg
+ 
+avLše
+ = 
+myH—d”
+.
+	`sub¡ršg
+(0, 
+ÃxtB»ak
+);
+
+169 
+avLše
+.
+	`Œim
+();
+
+170 
+myH—d”
+ = myH—d”.
+	`sub¡ršg
+(
+ÃxtB»ak
++1);
+
+171 
+ÃxtB»ak
+ = 
+myH—d”
+.
+	`šdexOf
+(',');
+
+173 
+eqSign
+ = 
+avLše
+.
+	`šdexOf
+('=');
+
+174 if(
+eqSign
+ < 0){
+
+176  
+çl£
+;
+
+178 
+SŒšg
+ 
+v¬Name
+ = 
+avLše
+.
+	`sub¡ršg
+(0, 
+eqSign
+);
+
+179 
+avLše
+ =‡vLše.
+	`sub¡ršg
+(
+eqSign
+ + 1);
+
+180 if(
+avLše
+.
+	`¡¬tsW™h
+(
+	`SŒšg
+('"'))){
+
+181 
+avLše
+ =‡vLše.
+	`sub¡ršg
+(1,‡vLše.
+	`Ëngth
+() - 1);
+
+184 if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("username"))){
+
+185 if(!
+avLše
+.
+	`equ®s
+(
+u£ºame
+)){
+
+187  
+çl£
+;
+
+189 
+myU£ºame
+ = 
+avLše
+;
+
+190 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("realm"))){
+
+191 if(
+»®m
+ !ð
+NULL
+ && !
+avLše
+.
+	`equ®s
+(realm)){
+
+193  
+çl£
+;
+
+195 
+myR—lm
+ = 
+avLše
+;
+
+196 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("nonce"))){
+
+197 if(
+nÚû
+ !ð
+NULL
+ && !
+avLše
+.
+	`equ®s
+(nonce)){
+
+199  
+çl£
+;
+
+201 
+myNÚû
+ = 
+avLše
+;
+
+202 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("opaque"))){
+
+203 if(
+Ýaque
+ !ð
+NULL
+ && !
+avLše
+.
+	`equ®s
+(opaque)){
+
+205  
+çl£
+;
+
+207 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("uri"))){
+
+208 if(
+uri
+ !ð
+NULL
+ && !
+avLše
+.
+	`equ®s
+(uri)){
+
+210  
+çl£
+;
+
+212 
+myUri
+ = 
+avLše
+;
+
+213 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("response"))){
+
+214 
+myRe¥Ú£
+ = 
+avLše
+;
+
+215 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("qop"))){
+
+216 
+myQÝ
+ = 
+avLše
+;
+
+217 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("nc"))){
+
+218 
+myNc
+ = 
+avLše
+;
+
+219 } if(
+v¬Name
+.
+	`equ®s
+(
+	`F
+("cnonce"))){
+
+220 
+myCnÚû
+ = 
+avLše
+;
+
+222 } 
+ÃxtB»ak
+ > 0);
+
+224 
+SŒšg
+ 
+ha1
+ = (
+·sswÜdIsHash
+è? 
+	`SŒšg
+(
+·sswÜd
+è: 
+	`¡ršgMD5
+(
+myU£ºame
+ + ':' + 
+myR—lm
+ + ':' + String(password));
+
+225 
+SŒšg
+ 
+ha2
+ = 
+	`SŒšg
+(
+m‘hod
+è+ ':' + 
+myUri
+;
+
+226 
+SŒšg
+ 
+»¥Ú£
+ = 
+ha1
+ + ':' + 
+myNÚû
+ + ':' + 
+myNc
+ + ':' + 
+myCnÚû
+ + ':' + 
+myQÝ
+ + ':' + 
+	`¡ršgMD5
+(
+ha2
+);
+
+228 if(
+myRe¥Ú£
+.
+	`equ®s
+(
+	`¡ršgMD5
+(
+»¥Ú£
+))){
+
+230  
+Œue
+;
+
+234  
+çl£
+;
+
+235 
+	}
+}
+
+	@lib/ESPAsyncWebServer/WebAuthentication.h
+
+22 #iâdeà
+WEB_AUTHENTICATION_H_
+
+
+23 
+	#WEB_AUTHENTICATION_H_
+
+
+	)
+
+25 
+	~"Ardušo.h
+"
+
+27 
+boÞ
+ 
+checkBasicAuth’tiÿtiÚ
+(cÚ¡ * 
+h—d”
+, cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+);
+
+28 
+SŒšg
+ 
+»que¡Dige¡Auth’tiÿtiÚ
+(cÚ¡ * 
+»®m
+);
+
+29 
+boÞ
+ 
+checkDige¡Auth’tiÿtiÚ
+(cÚ¡ * 
+h—d”
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+m‘hod
+, cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+, cÚ¡ * 
+»®m
+, boÞ 
+·sswÜdIsHash
+, cÚ¡ * 
+nÚû
+, cÚ¡ * 
+Ýaque
+, cÚ¡ * 
+uri
+);
+
+32 
+SŒšg
+ 
+g’”©eDige¡Hash
+(cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+, cÚ¡ * 
+»®m
+);
+
+	@lib/ESPAsyncWebServer/WebHandlerImpl.h
+
+21 #iâdeà
+ASYNCWEBSERVERHANDLERIMPL_H_
+
+
+22 
+	#ASYNCWEBSERVERHANDLERIMPL_H_
+
+
+	)
+
+24 
+	~<¡ršg
+>
+
+25 #ifdeà
+ASYNCWEBSERVER_REGEX
+
+
+26 
+	~<»gex
+>
+
+29 
+	~"¡ddef.h
+"
+
+30 
+	~<time.h
+>
+
+32 þas 
+	cAsyncS�ticWebHªdËr
+: 
+public
+ 
+AsyncWebHªdËr
+ {
+
+33 
+usšg
+ 
+Fže
+ = 
+fs
+::File;
+
+34 
+usšg
+ 
+	mFS
+ = 
+fs
+::
+FS
+;
+
+35 
+	m´iv©e
+:
+
+36 
+boÞ
+ 
+_g‘Fže
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+37 
+boÞ
+ 
+_fžeExi¡s
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, cÚ¡ 
+SŒšg
+& 
+·th
+);
+
+38 
+ušt8_t
+ 
+	$_couÁB™s
+(cÚ¡ 
+ušt8_t
+ 
+v®ue
+) const;
+
+39 
+´Ùeùed
+:
+
+40 
+FS
+ 
+_fs
+;
+
+41 
+SŒšg
+ 
+_uri
+;
+
+42 
+SŒšg
+ 
+_·th
+;
+
+43 
+SŒšg
+ 
+_deçuÉ_fže
+;
+
+44 
+SŒšg
+ 
+_ÿche_cÚŒÞ
+;
+
+45 
+SŒšg
+ 
+_Ï¡_modif›d
+;
+
+46 
+AwsTem¶©eProûssÜ
+ 
+_ÿÎback
+;
+
+47 
+boÞ
+ 
+_isDœ
+;
+
+48 
+boÞ
+ 
+_gz�Fœ¡
+;
+
+49 
+ušt8_t
+ 
+_gz�S�ts
+;
+
+50 
+public
+:
+
+51 
+	`AsyncS�ticWebHªdËr
+(cÚ¡ * 
+uri
+, 
+FS
+& 
+fs
+, cÚ¡ * 
+·th
+, cÚ¡ * 
+ÿche_cÚŒÞ
+);
+
+52 
+vœtu®
+ 
+boÞ
+ 
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+53 
+vœtu®
+ 
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+;
+
+54 
+AsyncS�ticWebHªdËr
+& 
+	`£tIsDœ
+(
+boÞ
+ 
+isDœ
+);
+
+55 
+AsyncS�ticWebHªdËr
+& 
+	`£tDeçuÉFže
+(cÚ¡ * 
+fž’ame
+);
+
+56 
+AsyncS�ticWebHªdËr
+& 
+	`£tCacheCÚŒÞ
+(cÚ¡ * 
+ÿche_cÚŒÞ
+);
+
+57 
+AsyncS�ticWebHªdËr
+& 
+	`£tLa¡Modif›d
+(cÚ¡ * 
+Ï¡_modif›d
+);
+
+58 
+AsyncS�ticWebHªdËr
+& 
+	`£tLa¡Modif›d
+(
+tm
+* 
+Ï¡_modif›d
+);
+
+59 #ifdeà
+ESP8266
+
+
+60 
+AsyncS�ticWebHªdËr
+& 
+	`£tLa¡Modif›d
+(
+time_t
+ 
+Ï¡_modif›d
+);
+
+61 
+AsyncS�ticWebHªdËr
+& 
+	`£tLa¡Modif›d
+();
+
+63 
+AsyncS�ticWebHªdËr
+& 
+	$£tTem¶©eProûssÜ
+(
+AwsTem¶©eProûssÜ
+ 
+ÃwC®lback
+è{
+_ÿÎback
+ =‚ewC®lback;  *
+this
+;}
+
+64 
+	}
+};
+
+66 þas 
+	cAsyncC®lbackWebHªdËr
+: 
+public
+ 
+AsyncWebHªdËr
+ {
+
+67 
+´iv©e
+:
+
+68 
+´Ùeùed
+:
+
+69 
+SŒšg
+ 
+_uri
+;
+
+70 
+WebReque¡M‘hodCompos™e
+ 
+	m_m‘hod
+;
+
+71 
+ArReque¡HªdËrFunùiÚ
+ 
+	m_ÚReque¡
+;
+
+72 
+ArU¶ßdHªdËrFunùiÚ
+ 
+	m_ÚU¶ßd
+;
+
+73 
+ArBodyHªdËrFunùiÚ
+ 
+	m_ÚBody
+;
+
+74 
+boÞ
+ 
+	m_isRegex
+;
+
+75 
+	mpublic
+:
+
+76 
+	$AsyncC®lbackWebHªdËr
+(è: 
+	`_uri
+(), 
+	`_m‘hod
+(
+HTTP_ANY
+), 
+	`_ÚReque¡
+(
+NULL
+), 
+	`_ÚU¶ßd
+(NULL), 
+	`_ÚBody
+(NULL), 
+	$_isRegex
+(
+çl£
+) {}
+
+77 
+	$£tUri
+(cÚ¡ 
+SŒšg
+& 
+uri
+){
+
+78 
+_uri
+ = 
+uri
+;
+
+79 
+_isRegex
+ = 
+uri
+.
+	`¡¬tsW™h
+("^"è&& uri.
+	`’dsW™h
+("$");
+
+80 
+	}
+}
+
+81 
+	$£tM‘hod
+(
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+){ 
+_m‘hod
+ = m‘hod; 
+	}
+}
+
+82 
+	$ÚReque¡
+(
+ArReque¡HªdËrFunùiÚ
+ 
+â
+){ 
+_ÚReque¡
+ = fn; 
+	}
+}
+
+83 
+	$ÚU¶ßd
+(
+ArU¶ßdHªdËrFunùiÚ
+ 
+â
+){ 
+_ÚU¶ßd
+ = fn; 
+	}
+}
+
+84 
+	$ÚBody
+(
+ArBodyHªdËrFunùiÚ
+ 
+â
+){ 
+_ÚBody
+ = fn; 
+	}
+}
+
+86 
+vœtu®
+ 
+boÞ
+ 
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+{
+
+88 if(!
+_ÚReque¡
+)
+
+89  
+çl£
+;
+
+91 if(!(
+_m‘hod
+ & 
+»que¡
+->
+	`m‘hod
+()))
+
+92  
+çl£
+;
+
+94 #ifdeà
+ASYNCWEBSERVER_REGEX
+
+
+95 ià(
+_isRegex
+) {
+
+96 
+¡d
+::
+»gex
+ 
+	`·‰”n
+(
+_uri
+.
+	`c_¡r
+());
+
+97 
+¡d
+::
+sm©ch
+ 
+m©ches
+;
+
+98 
+¡d
+::
+¡ršg
+ 
+	`s
+(
+»que¡
+->
+	`u¾
+().
+	`c_¡r
+());
+
+99 if(
+¡d
+::
+	`»gex_£¬ch
+(
+s
+, 
+m©ches
+, 
+·‰”n
+)) {
+
+100 
+size_t
+ 
+i
+ = 1; i < 
+m©ches
+.
+	`size
+(); ++i) {
+
+101 
+»que¡
+->
+	`_addP©hP¬am
+(
+m©ches
+[
+i
+].
+	`¡r
+().
+	`c_¡r
+());
+
+104  
+çl£
+;
+
+108 ià(
+_uri
+.
+	`Ëngth
+(è&& _uri.
+	`’dsW™h
+("*")) {
+
+109 
+SŒšg
+ 
+uriTem¶©e
+ = 
+	`SŒšg
+(
+_uri
+);
+
+110 
+uriTem¶©e
+ = uriTem¶©e.
+	`sub¡ršg
+(0, uriTem¶©e.
+	`Ëngth
+() - 1);
+
+111 ià(!
+»que¡
+->
+	`u¾
+().
+	`¡¬tsW™h
+(
+uriTem¶©e
+))
+
+112  
+çl£
+;
+
+114 if(
+_uri
+.
+	`Ëngth
+(è&& (_ur˜!ð
+»que¡
+->
+	`u¾
+(è&& !»que¡->u¾().
+	`¡¬tsW™h
+(_uri+"/")))
+
+115  
+çl£
+;
+
+117 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+("ANY");
+
+118  
+Œue
+;
+
+119 
+	}
+}
+
+121 
+vœtu®
+ 
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+è
+ov”ride
+ 
+fš®
+ {
+
+122 if(
+_ÚReque¡
+)
+
+123 
+	`_ÚReque¡
+(
+»que¡
+);
+
+125 
+»que¡
+->
+	`£nd
+(500);
+
+126 
+	}
+}
+
+127 
+vœtu®
+ 
+	$hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, cÚ¡ 
+SŒšg
+& 
+fž’ame
+, 
+size_t
+ 
+šdex
+, 
+ušt8_t
+ *
+d©a
+, size_ˆ
+Ën
+, 
+boÞ
+ 
+fš®
+è
+ov”ride
+ final {
+
+128 if(
+_ÚU¶ßd
+)
+
+129 
+	`_ÚU¶ßd
+(
+»que¡
+, 
+fž’ame
+, 
+šdex
+, 
+d©a
+, 
+Ën
+, 
+fš®
+);
+
+130 
+	}
+}
+
+131 
+vœtu®
+ 
+	$hªdËBody
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+, size_ˆ
+šdex
+, size_ˆ
+tÙ®
+è
+ov”ride
+ 
+fš®
+ {
+
+132 if(
+_ÚBody
+)
+
+133 
+	`_ÚBody
+(
+»que¡
+, 
+d©a
+, 
+Ën
+, 
+šdex
+, 
+tÙ®
+);
+
+134 
+	}
+}
+
+135 
+vœtu®
+ 
+boÞ
+ 
+	$isReque¡HªdËrTrivŸl
+(è
+ov”ride
+ 
+fš®
+ { 
+_ÚReque¡
+ ? 
+çl£
+ : 
+Œue
+;
+	}
+}
+
+	@lib/ESPAsyncWebServer/WebHandlers.cpp
+
+21 
+	~"ESPAsyncWebS”v”.h
+"
+
+22 
+	~"WebHªdËrIm¶.h
+"
+
+24 
+	gAsyncS�ticWebHªdËr
+::
+	$AsyncS�ticWebHªdËr
+(cÚ¡ * 
+uri
+, 
+FS
+& 
+fs
+, cÚ¡ * 
+·th
+, cÚ¡ * 
+ÿche_cÚŒÞ
+)
+
+25 : 
+	`_fs
+(
+fs
+), 
+	`_uri
+(
+uri
+), 
+	`_·th
+(
+·th
+), 
+	`_deçuÉ_fže
+(
+	`F
+("šdex.htm")), 
+	`_ÿche_cÚŒÞ
+(
+ÿche_cÚŒÞ
+), 
+	`_Ï¡_modif›d
+(), 
+	$_ÿÎback
+(
+nuÎ±r
+)
+
+28 ià(
+_uri
+.
+	`Ëngth
+(è=ð0 || _uri[0] !ð'/'è_ur˜ð
+	`SŒšg
+('/') + _uri;
+
+29 ià(
+_·th
+.
+	`Ëngth
+(è=ð0 || _·th[0] !ð'/'è_·th = 
+	`SŒšg
+('/') + _path;
+
+33 
+_isDœ
+ = 
+_·th
+[_·th.
+	`Ëngth
+()-1] == '/';
+
+37 ià(
+_uri
+[_uri.
+	`Ëngth
+()-1] =ð'/'è_ur˜ð_uri.
+	`sub¡ršg
+(0, _uri.length()-1);
+
+38 ià(
+_·th
+[_·th.
+	`Ëngth
+()-1] =ð'/'è_·th = _·th.
+	`sub¡ršg
+(0, _path.length()-1);
+
+41 
+_gz�Fœ¡
+ = 
+çl£
+;
+
+42 
+_gz�S�ts
+ = 0xF8;
+
+43 
+	}
+}
+
+45 
+	gAsyncS�ticWebHªdËr
+& AsyncS�ticWebHªdËr::
+	$£tIsDœ
+(
+boÞ
+ 
+isDœ
+){
+
+46 
+_isDœ
+ = 
+isDœ
+;
+
+47  *
+this
+;
+
+48 
+	}
+}
+
+50 
+	gAsyncS�ticWebHªdËr
+& AsyncS�ticWebHªdËr::
+	$£tDeçuÉFže
+(cÚ¡ * 
+fž’ame
+){
+
+51 
+_deçuÉ_fže
+ = 
+	`SŒšg
+(
+fž’ame
+);
+
+52  *
+this
+;
+
+53 
+	}
+}
+
+55 
+	gAsyncS�ticWebHªdËr
+& AsyncS�ticWebHªdËr::
+	$£tCacheCÚŒÞ
+(cÚ¡ * 
+ÿche_cÚŒÞ
+){
+
+56 
+_ÿche_cÚŒÞ
+ = 
+	`SŒšg
+(
+ÿche_cÚŒÞ
+);
+
+57  *
+this
+;
+
+58 
+	}
+}
+
+60 
+	gAsyncS�ticWebHªdËr
+& AsyncS�ticWebHªdËr::
+	$£tLa¡Modif›d
+(cÚ¡ * 
+Ï¡_modif›d
+){
+
+61 
+_Ï¡_modif›d
+ = 
+	`SŒšg
+(
+Ï¡_modif›d
+);
+
+62  *
+this
+;
+
+63 
+	}
+}
+
+65 
+	gAsyncS�ticWebHªdËr
+& AsyncS�ticWebHªdËr::
+	$£tLa¡Modif›d
+(
+tm
+* 
+Ï¡_modif›d
+){
+
+66 autØ
+fÜm©P
+ = 
+	`PSTR
+("%a, %d %b %Y %H:%M:%S %Z");
+
+67 
+fÜm©
+[
+	`¡¾’_P
+(
+fÜm©P
+) + 1];
+
+68 
+	`¡rýy_P
+(
+fÜm©
+, 
+fÜm©P
+);
+
+70 
+»suÉ
+[30];
+
+71 
+	`¡ráime
+(
+»suÉ
+, ÔesuÉ), 
+fÜm©
+, 
+Ï¡_modif›d
+);
+
+72  
+	`£tLa¡Modif›d
+((cÚ¡ *)
+»suÉ
+);
+
+73 
+	}
+}
+
+75 #ifdeà
+ESP8266
+
+
+76 
+	gAsyncS�ticWebHªdËr
+& AsyncS�ticWebHªdËr::
+	$£tLa¡Modif›d
+(
+time_t
+ 
+Ï¡_modif›d
+){
+
+77  
+	`£tLa¡Modif›d
+((
+tm
+ *)
+	`gmtime
+(&
+Ï¡_modif›d
+));
+
+78 
+	}
+}
+
+80 
+	gAsyncS�ticWebHªdËr
+& AsyncS�ticWebHªdËr::
+	$£tLa¡Modif›d
+(){
+
+81 
+time_t
+ 
+Ï¡_modif›d
+;
+
+82 if(
+	`time
+(&
+Ï¡_modif›d
+) == 0)
+
+83  *
+this
+;
+
+84  
+	`£tLa¡Modif›d
+(
+Ï¡_modif›d
+);
+
+85 
+	}
+}
+
+87 
+boÞ
+ 
+	gAsyncS�ticWebHªdËr
+::
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+88 if(
+»que¡
+->
+	`m‘hod
+(è!ð
+HTTP_GET
+
+
+89 || !
+»que¡
+->
+	`u¾
+().
+	`¡¬tsW™h
+(
+_uri
+)
+
+90 || !
+»que¡
+->
+	`isEx³ùedReque¡edCÚnTy³
+(
+RCT_DEFAULT
+, 
+RCT_HTTP
+)
+
+92  
+çl£
+;
+
+94 ià(
+	`_g‘Fže
+(
+»que¡
+)) {
+
+96 ià(
+_Ï¡_modif›d
+.
+	`Ëngth
+())
+
+97 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+	`F
+("If-Modified-Since"));
+
+99 if(
+_ÿche_cÚŒÞ
+.
+	`Ëngth
+())
+
+100 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+	`F
+("If-None-Match"));
+
+102 
+	`DEBUGF
+("[AsyncStaticWebHandler::canHandle] TRUE\n");
+
+103  
+Œue
+;
+
+106  
+çl£
+;
+
+107 
+	}
+}
+
+109 
+boÞ
+ 
+	gAsyncS�ticWebHªdËr
+::
+	$_g‘Fže
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+)
+
+112 
+SŒšg
+ 
+·th
+ = 
+»que¡
+->
+	`u¾
+().
+	`sub¡ršg
+(
+_uri
+.
+	`Ëngth
+());
+
+115 
+boÞ
+ 
+ÿnSk�FžeCheck
+ = (
+_isDœ
+ && 
+·th
+.
+	`Ëngth
+() == 0) || (path.length() &&…ath[path.length()-1] == '/');
+
+117 
+·th
+ = 
+_·th
+ +…ath;
+
+120 ià(!
+ÿnSk�FžeCheck
+ && 
+	`_fžeExi¡s
+(
+»que¡
+, 
+·th
+))
+
+121  
+Œue
+;
+
+124 ià(
+_deçuÉ_fže
+.
+	`Ëngth
+() == 0)
+
+125  
+çl£
+;
+
+128 ià(
+·th
+.
+	`Ëngth
+() == 0 ||…ath[path.length()-1] != '/')
+
+129 
+·th
+ +ð
+	`SŒšg
+('/');
+
+130 
+·th
+ +ð
+_deçuÉ_fže
+;
+
+132  
+	`_fžeExi¡s
+(
+»que¡
+, 
+·th
+);
+
+133 
+	}
+}
+
+135 #ifdeà
+ESP32
+
+
+136 
+	#FILE_IS_REAL
+(
+f
+è(à=ð
+Œue
+ && !f.
+	`isDœeùÜy
+())
+
+	)
+
+138 
+	#FILE_IS_REAL
+(
+f
+è(à=ð
+Œue
+)
+
+	)
+
+141 
+boÞ
+ 
+	gAsyncS�ticWebHªdËr
+::
+	$_fžeExi¡s
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, cÚ¡ 
+SŒšg
+& 
+·th
+)
+
+143 
+boÞ
+ 
+fžeFound
+ = 
+çl£
+;
+
+144 
+boÞ
+ 
+gz�Found
+ = 
+çl£
+;
+
+146 
+SŒšg
+ 
+gz�
+ = 
+·th
+ + 
+	`F
+(".gz");
+
+148 ià(
+_gz�Fœ¡
+) {
+
+149 
+»que¡
+->
+_‹mpFže
+ = 
+_fs
+.
+	`Ý’
+(
+gz�
+, 
+fs
+::
+FžeO³nMode
+::
+»ad
+);
+
+150 
+gz�Found
+ = 
+	`FILE_IS_REAL
+(
+»que¡
+->
+_‹mpFže
+);
+
+151 ià(!
+gz�Found
+){
+
+152 
+»que¡
+->
+_‹mpFže
+ = 
+_fs
+.
+	`Ý’
+(
+·th
+, 
+fs
+::
+FžeO³nMode
+::
+»ad
+);
+
+153 
+fžeFound
+ = 
+	`FILE_IS_REAL
+(
+»que¡
+->
+_‹mpFže
+);
+
+156 
+»que¡
+->
+_‹mpFže
+ = 
+_fs
+.
+	`Ý’
+(
+·th
+, 
+fs
+::
+FžeO³nMode
+::
+»ad
+);
+
+157 
+fžeFound
+ = 
+	`FILE_IS_REAL
+(
+»que¡
+->
+_‹mpFže
+);
+
+158 ià(!
+fžeFound
+){
+
+159 
+»que¡
+->
+_‹mpFže
+ = 
+_fs
+.
+	`Ý’
+(
+gz�
+, 
+fs
+::
+FžeO³nMode
+::
+»ad
+);
+
+160 
+gz�Found
+ = 
+	`FILE_IS_REAL
+(
+»que¡
+->
+_‹mpFže
+);
+
+164 
+boÞ
+ 
+found
+ = 
+fžeFound
+ || 
+gz�Found
+;
+
+166 ià(
+found
+) {
+
+168 
+size_t
+ 
+·thL’
+ = 
+·th
+.
+	`Ëngth
+();
+
+169 * 
+_‹mpP©h
+ = (*)
+	`m®loc
+(
+·thL’
++1);
+
+170 
+	`¢´štf_P
+(
+_‹mpP©h
+, 
+·thL’
++1, 
+	`PSTR
+("%s"), 
+·th
+.
+	`c_¡r
+());
+
+171 
+»que¡
+->
+_‹mpObjeù
+ = (*)
+_‹mpP©h
+;
+
+174 
+_gz�S�ts
+ = (_gz�S�t << 1è+ (
+gz�Found
+ ? 1 : 0);
+
+175 ià(
+_gz�S�ts
+ =ð0x00è
+_gz�Fœ¡
+ = 
+çl£
+;
+
+176 ià(
+_gz�S�ts
+ =ð0xFFè
+_gz�Fœ¡
+ = 
+Œue
+;
+
+177 
+_gz�Fœ¡
+ = 
+	`_couÁB™s
+(
+_gz�S�ts
+) > 4;
+
+180  
+found
+;
+
+181 
+	}
+}
+
+183 
+ušt8_t
+ 
+	gAsyncS�ticWebHªdËr
+::
+	$_couÁB™s
+(cÚ¡ 
+ušt8_t
+ 
+v®ue
+) const
+
+185 
+ušt8_t
+ 
+w
+ = 
+v®ue
+;
+
+186 
+ušt8_t
+ 
+n
+;
+
+187 
+n
+=0; 
+w
+!=0;‚++) w&=w-1;
+
+188  
+n
+;
+
+189 
+	}
+}
+
+191 
+	gAsyncS�ticWebHªdËr
+::
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+)
+
+194 
+SŒšg
+ 
+fž’ame
+ = 
+	`SŒšg
+((*)
+»que¡
+->
+_‹mpObjeù
+);
+
+195 
+	`ä“
+(
+»que¡
+->
+_‹mpObjeù
+);
+
+196 
+»que¡
+->
+_‹mpObjeù
+ = 
+NULL
+;
+
+197 if((
+_u£ºame
+.
+	`Ëngth
+(è&& 
+_·sswÜd
+.Ëngth()è&& !
+»que¡
+->
+	`auth’tiÿ‹
+(_u£ºame.
+	`c_¡r
+(), _password.c_str()))
+
+198  
+»que¡
+->
+	`»que¡Auth’tiÿtiÚ
+();
+
+200 ià(
+»que¡
+->
+_‹mpFže
+ =ð
+Œue
+) {
+
+201 
+SŒšg
+ 
+‘ag
+ = 
+	`SŒšg
+(
+»que¡
+->
+_‹mpFže
+.
+	`size
+());
+
+202 ià(
+_Ï¡_modif›d
+.
+	`Ëngth
+(è&& _Ï¡_modif›d =ð
+»que¡
+->
+	`h—d”
+(
+	`F
+("If-Modified-Since"))) {
+
+203 
+»que¡
+->
+_‹mpFže
+.
+	`þo£
+();
+
+204 
+»que¡
+->
+	`£nd
+(304);
+
+205 } ià(
+_ÿche_cÚŒÞ
+.
+	`Ëngth
+(è&& 
+»que¡
+->
+	`hasH—d”
+(
+	`F
+("If-NÚe-M©ch")è&&„eque¡->
+	`h—d”
+(F("If-NÚe-M©ch")).
+	`equ®s
+(
+‘ag
+)) {
+
+206 
+»que¡
+->
+_‹mpFže
+.
+	`þo£
+();
+
+207 
+AsyncWebS”v”Re¥Ú£
+ * 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncBasicRe¥Ú£
+(304);
+
+208 
+»¥Ú£
+->
+	`addH—d”
+(
+	`F
+("Cache-CÚŒÞ"), 
+_ÿche_cÚŒÞ
+);
+
+209 
+»¥Ú£
+->
+	`addH—d”
+(
+	`F
+("ETag"), 
+‘ag
+);
+
+210 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+212 
+AsyncWebS”v”Re¥Ú£
+ * 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncFžeRe¥Ú£
+(
+»que¡
+->
+_‹mpFže
+, 
+fž’ame
+, 
+	`SŒšg
+(), 
+çl£
+, 
+_ÿÎback
+);
+
+213 ià(
+_Ï¡_modif›d
+.
+	`Ëngth
+())
+
+214 
+»¥Ú£
+->
+	`addH—d”
+(
+	`F
+("La¡-Modif›d"), 
+_Ï¡_modif›d
+);
+
+215 ià(
+_ÿche_cÚŒÞ
+.
+	`Ëngth
+()){
+
+216 
+»¥Ú£
+->
+	`addH—d”
+(
+	`F
+("Cache-CÚŒÞ"), 
+_ÿche_cÚŒÞ
+);
+
+217 
+»¥Ú£
+->
+	`addH—d”
+(
+	`F
+("ETag"), 
+‘ag
+);
+
+219 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+222 
+»que¡
+->
+	`£nd
+(404);
+
+224 
+	}
+}
+
+	@lib/ESPAsyncWebServer/WebRequest.cpp
+
+21 
+	~"ESPAsyncWebS”v”.h
+"
+
+22 
+	~"WebRe¥Ú£Im¶.h
+"
+
+23 
+	~"WebAuth’tiÿtiÚ.h
+"
+
+25 #iâdeà
+ESP8266
+
+
+26 
+	#os_¡¾’
+ 
+¡¾’
+
+
+	)
+
+29 
+	#__is_·¿m_ch¬
+(
+c
+è((cè&& ((cè!ð'{'è&& ((cè!ð'['è&& ((cè!ð'&'è&& ((cè!ð'='))
+
+	)
+
+31 ’um { 
+	mPARSE_REQ_START
+, 
+	mPARSE_REQ_HEADERS
+, 
+	mPARSE_REQ_BODY
+, 
+	mPARSE_REQ_END
+, 
+	mPARSE_REQ_FAIL
+ };
+
+33 
+	gAsyncWebS”v”Reque¡
+::
+	$AsyncWebS”v”Reque¡
+(
+AsyncWebS”v”
+* 
+s
+, 
+AsyncCl›Á
+* 
+c
+)
+
+34 : 
+	`_þ›Á
+(
+c
+)
+
+35 , 
+	`_£rv”
+(
+s
+)
+
+36 , 
+	`_hªdËr
+(
+NULL
+)
+
+37 , 
+	`_»¥Ú£
+(
+NULL
+)
+
+38 , 
+	`_‹mp
+()
+
+39 , 
+	`_·r£S�‹
+(0)
+
+40 , 
+	`_v”siÚ
+(0)
+
+41 , 
+	`_m‘hod
+(
+HTTP_ANY
+)
+
+42 , 
+	`_u¾
+()
+
+43 , 
+	`_ho¡
+()
+
+44 , 
+	`_cÚ‹ÁTy³
+()
+
+45 , 
+	`_bound¬y
+()
+
+46 , 
+	`_authÜiz©iÚ
+()
+
+47 , 
+	`_»qcÚÁy³
+(
+RCT_HTTP
+)
+
+48 , 
+	`_isDige¡
+(
+çl£
+)
+
+49 , 
+	`_isMuÉ�¬t
+(
+çl£
+)
+
+50 , 
+	`_isPÏšPo¡
+(
+çl£
+)
+
+51 , 
+	`_ex³ùšgCÚtšue
+(
+çl£
+)
+
+52 , 
+	`_cÚ‹ÁL’gth
+(0)
+
+53 , 
+	`_·r£dL’gth
+(0)
+
+54 , 
+	`_h—d”s
+(
+LškedLi¡
+<
+AsyncWebH—d”
+ *>([](AsyncWebH—d” *
+h
+){ 
+d–‘e
+ h; 
+	}
+}))
+
+55 , 
+_·¿ms
+(
+LškedLi¡
+<
+AsyncWebP¬am‘”
+ *>([](AsyncWebP¬am‘” *
+p
+){ 
+d–‘e
+…; }))
+
+56 , 
+_·thP¬ams
+(
+LškedLi¡
+<
+SŒšg
+ *>([](SŒšg *
+p
+){ 
+d–‘e
+…; }))
+
+57 , 
+_muÉiP¬£S�‹
+(0)
+
+58 , 
+_bound¬yPos™iÚ
+(0)
+
+59 , 
+_™emS�¹Index
+(0)
+
+60 , 
+_™emSize
+(0)
+
+61 , 
+_™emName
+()
+
+62 , 
+_™emFž’ame
+()
+
+63 , 
+_™emTy³
+()
+
+64 , 
+_™emV®ue
+()
+
+65 , 
+_™emBufãr
+(0)
+
+66 , 
+_™emBufãrIndex
+(0)
+
+67 , 
+_™emIsFže
+(
+çl£
+)
+
+68 , 
+	$_‹mpObjeù
+(
+NULL
+)
+
+70 
+c
+->
+	`ÚE¼Ü
+([](*
+r
+, 
+AsyncCl›Á
+* c, 
+št8_t
+ 
+”rÜ
+){ ()c; 
+AsyncWebS”v”Reque¡
+ *
+»q
+ = (AsyncWebS”v”Reque¡*ì;„eq->
+	`_ÚE¼Ü
+Ó¼Ü); }, 
+this
+);
+
+71 
+c
+->
+	`ÚAck
+([](*
+r
+, 
+AsyncCl›Á
+* c, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){ ()c; 
+AsyncWebS”v”Reque¡
+ *
+»q
+ = (AsyncWebS”v”Reque¡*ì;„eq->
+	`_ÚAck
+Ö’,�ime); }, 
+this
+);
+
+72 
+c
+->
+	`ÚDiscÚÃù
+([](*
+r
+, 
+AsyncCl›Á
+* c){ 
+AsyncWebS”v”Reque¡
+ *
+»q
+ = (AsyncWebS”v”Reque¡*ì;„eq->
+	`_ÚDiscÚÃù
+(); 
+d–‘e
+ c; }, 
+this
+);
+
+73 
+c
+->
+	`ÚTimeout
+([](*
+r
+, 
+AsyncCl›Á
+* c, 
+ušt32_t
+ 
+time
+){ ()c; 
+AsyncWebS”v”Reque¡
+ *
+»q
+ = (AsyncWebS”v”Reque¡*ì;„eq->
+	`_ÚTimeout
+Ñime); }, 
+this
+);
+
+74 
+c
+->
+	`ÚD©a
+([](*
+r
+, 
+AsyncCl›Á
+* c, *
+buf
+, 
+size_t
+ 
+Ën
+){ ()c; 
+AsyncWebS”v”Reque¡
+ *
+»q
+ = (AsyncWebS”v”Reque¡*ì;„eq->
+	`_ÚD©a
+(buf,†’); }, 
+this
+);
+
+75 
+c
+->
+	`ÚPÞl
+([](*
+r
+, 
+AsyncCl›Á
+* c){ ()c; 
+AsyncWebS”v”Reque¡
+ *
+»q
+ = ( AsyncWebS”v”Reque¡*ì;„eq->
+	`_ÚPÞl
+(); }, 
+this
+);
+
+76 
+	}
+}
+
+78 
+	gAsyncWebS”v”Reque¡
+::~
+	$AsyncWebS”v”Reque¡
+(){
+
+79 
+_h—d”s
+.
+	`ä“
+();
+
+81 
+_·¿ms
+.
+	`ä“
+();
+
+82 
+_·thP¬ams
+.
+	`ä“
+();
+
+84 
+_š‹»¡šgH—d”s
+.
+	`ä“
+();
+
+86 if(
+_»¥Ú£
+ !ð
+NULL
+){
+
+87 
+d–‘e
+ 
+_»¥Ú£
+;
+
+90 if(
+_‹mpObjeù
+ !ð
+NULL
+){
+
+91 
+	`ä“
+(
+_‹mpObjeù
+);
+
+94 if(
+_‹mpFže
+){
+
+95 
+_‹mpFže
+.
+	`þo£
+();
+
+97 
+	}
+}
+
+99 
+	gAsyncWebS”v”Reque¡
+::
+	$_ÚD©a
+(*
+buf
+, 
+size_t
+ 
+Ën
+){
+
+100 
+size_t
+ 
+i
+ = 0;
+
+101 
+Œue
+) {
+
+103 if(
+_·r£S�‹
+ < 
+PARSE_REQ_BODY
+){
+
+105 *
+¡r
+ = (*)
+buf
+;
+
+106 
+i
+ = 0; i < 
+Ën
+; i++) {
+
+107 ià(
+¡r
+[
+i
+] == '\n') {
+
+111 ià(
+i
+ =ð
+Ën
+) {
+
+112 
+ch
+ = 
+¡r
+[
+Ën
+-1];
+
+113 
+¡r
+[
+Ën
+-1] = 0;
+
+114 
+_‹mp
+.
+	`»£rve
+(_‹mp.
+	`Ëngth
+()+
+Ën
+);
+
+115 
+_‹mp
+.
+	`cÚÿt
+(
+¡r
+);
+
+116 
+_‹mp
+.
+	`cÚÿt
+(
+ch
+);
+
+118 
+¡r
+[
+i
+] = 0;
+
+119 
+_‹mp
+.
+	`cÚÿt
+(
+¡r
+);
+
+120 
+_‹mp
+.
+	`Œim
+();
+
+121 
+	`_·r£Lše
+();
+
+122 ià(++
+i
+ < 
+Ën
+) {
+
+124 
+buf
+ = 
+¡r
++
+i
+;
+
+125 
+Ën
+-ð
+i
+;
+
+129 } if(
+_·r£S�‹
+ =ð
+PARSE_REQ_BODY
+){
+
+132 cÚ¡ 
+boÞ
+ 
+ÃedP¬£
+ = 
+_hªdËr
+ && !_hªdËr->
+	`isReque¡HªdËrTrivŸl
+();
+
+133 if(
+_isMuÉ�¬t
+){
+
+134 if(
+ÃedP¬£
+){
+
+135 
+size_t
+ 
+i
+;
+
+136 
+i
+=0; i<
+Ën
+; i++){
+
+137 
+	`_·r£MuÉ�¬tPo¡By‹
+(((
+ušt8_t
+*)
+buf
+)[
+i
+], i =ð
+Ën
+ - 1);
+
+138 
+_·r£dL’gth
+++;
+
+141 
+_·r£dL’gth
+ +ð
+Ën
+;
+
+143 if(
+_·r£dL’gth
+ == 0){
+
+144 if(
+_cÚ‹ÁTy³
+.
+	`¡¬tsW™h
+(
+	`F
+("application/x-www-form-urlencoded"))){
+
+145 
+_isPÏšPo¡
+ = 
+Œue
+;
+
+146 } if(
+_cÚ‹ÁTy³
+ =ð
+	`F
+("‹xt/¶aš"è&& 
+	`__is_·¿m_ch¬
+(((*)
+buf
+)[0])){
+
+147 
+size_t
+ 
+i
+ = 0;
+
+148 
+i
+<
+Ën
+ && 
+	`__is_·¿m_ch¬
+(((*)
+buf
+)[i++]));
+
+149 if(
+i
+ < 
+Ën
+ && ((*)
+buf
+)[i-1] == '='){
+
+150 
+_isPÏšPo¡
+ = 
+Œue
+;
+
+154 if(!
+_isPÏšPo¡
+) {
+
+156 if(
+_hªdËr
+è_hªdËr->
+	`hªdËBody
+(
+this
+, (
+ušt8_t
+*)
+buf
+, 
+Ën
+, 
+_·r£dL’gth
+, 
+_cÚ‹ÁL’gth
+);
+
+157 
+_·r£dL’gth
+ +ð
+Ën
+;
+
+158 } if(
+ÃedP¬£
+) {
+
+159 
+size_t
+ 
+i
+;
+
+160 
+i
+=0; i<
+Ën
+; i++){
+
+161 
+_·r£dL’gth
+++;
+
+162 
+	`_·r£PÏšPo¡Ch¬
+(((
+ušt8_t
+*)
+buf
+)[
+i
+]);
+
+165 
+_·r£dL’gth
+ +ð
+Ën
+;
+
+168 if(
+_·r£dL’gth
+ =ð
+_cÚ‹ÁL’gth
+){
+
+169 
+_·r£S�‹
+ = 
+PARSE_REQ_END
+;
+
+171 if(
+_hªdËr
+è_hªdËr->
+	`hªdËReque¡
+(
+this
+);
+
+172 
+	`£nd
+(501);
+
+177 
+	}
+}
+
+179 
+	gAsyncWebS”v”Reque¡
+::
+	$_»moveNÙIÁ”e¡šgH—d”s
+(){
+
+180 ià(
+_š‹»¡šgH—d”s
+.
+	`cÚ�šsIgnÜeCa£
+(
+	`F
+("ANY"))) ;
+
+181 cÚ¡‡uto& 
+h—d”
+: 
+_h—d”s
+){
+
+182 if(!
+_š‹»¡šgH—d”s
+.
+	`cÚ�šsIgnÜeCa£
+(
+h—d”
+->
+	`Çme
+().
+	`c_¡r
+())){
+
+183 
+_h—d”s
+.
+	`»move
+(
+h—d”
+);
+
+186 
+	}
+}
+
+188 
+	gAsyncWebS”v”Reque¡
+::
+	$_ÚPÞl
+(){
+
+190 if(
+_»¥Ú£
+ !ð
+NULL
+ && 
+_þ›Á
+ !ðNULL && _þ›Á->
+	`ÿnS’d
+(è&& !_»¥Ú£->
+	`_fšished
+()){
+
+191 
+_»¥Ú£
+->
+	`_ack
+(
+this
+, 0, 0);
+
+193 
+	}
+}
+
+195 
+	gAsyncWebS”v”Reque¡
+::
+	$_ÚAck
+(
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){
+
+197 if(
+_»¥Ú£
+ !ð
+NULL
+){
+
+198 if(!
+_»¥Ú£
+->
+	`_fšished
+()){
+
+199 
+_»¥Ú£
+->
+	`_ack
+(
+this
+, 
+Ën
+, 
+time
+);
+
+201 
+AsyncWebS”v”Re¥Ú£
+* 
+r
+ = 
+_»¥Ú£
+;
+
+202 
+_»¥Ú£
+ = 
+NULL
+;
+
+203 
+d–‘e
+ 
+r
+;
+
+206 
+	}
+}
+
+208 
+	gAsyncWebS”v”Reque¡
+::
+	$_ÚE¼Ü
+(
+št8_t
+ 
+”rÜ
+){
+
+209 ()
+”rÜ
+;
+
+210 
+	}
+}
+
+212 
+	gAsyncWebS”v”Reque¡
+::
+	$_ÚTimeout
+(
+ušt32_t
+ 
+time
+){
+
+213 ()
+time
+;
+
+215 
+_þ›Á
+->
+	`þo£
+();
+
+216 
+	}
+}
+
+218 
+	gAsyncWebS”v”Reque¡
+::
+	$ÚDiscÚÃù
+ (
+ArDiscÚÃùHªdËr
+ 
+â
+){
+
+219 
+_ÚDiscÚÃùâ
+=
+â
+;
+
+220 
+	}
+}
+
+222 
+	gAsyncWebS”v”Reque¡
+::
+	$_ÚDiscÚÃù
+(){
+
+224 if(
+_ÚDiscÚÃùâ
+) {
+
+225 
+	`_ÚDiscÚÃùâ
+();
+
+227 
+_£rv”
+->
+	`_hªdËDiscÚÃù
+(
+this
+);
+
+228 
+	}
+}
+
+230 
+	gAsyncWebS”v”Reque¡
+::
+	$_addP¬am
+(
+AsyncWebP¬am‘”
+ *
+p
+){
+
+231 
+_·¿ms
+.
+	`add
+(
+p
+);
+
+232 
+	}
+}
+
+234 
+	gAsyncWebS”v”Reque¡
+::
+	$_addP©hP¬am
+(cÚ¡ *
+p
+){
+
+235 
+_·thP¬ams
+.
+	`add
+(
+Ãw
+ 
+	`SŒšg
+(
+p
+));
+
+236 
+	}
+}
+
+238 
+	gAsyncWebS”v”Reque¡
+::
+	$_addG‘P¬ams
+(cÚ¡ 
+SŒšg
+& 
+·¿ms
+){
+
+239 
+size_t
+ 
+¡¬t
+ = 0;
+
+240 
+¡¬t
+ < 
+·¿ms
+.
+	`Ëngth
+()){
+
+241 
+’d
+ = 
+·¿ms
+.
+	`šdexOf
+('&', 
+¡¬t
+);
+
+242 ià(
+’d
+ < 0è’d = 
+·¿ms
+.
+	`Ëngth
+();
+
+243 
+equ®
+ = 
+·¿ms
+.
+	`šdexOf
+('=', 
+¡¬t
+);
+
+244 ià(
+equ®
+ < 0 ||ƒqu® > 
+’d
+)ƒqual =ƒnd;
+
+245 
+SŒšg
+ 
+Çme
+ = 
+·¿ms
+.
+	`sub¡ršg
+(
+¡¬t
+, 
+equ®
+);
+
+246 
+SŒšg
+ 
+v®ue
+ = 
+equ®
+ + 1 < 
+’d
+ ? 
+·¿ms
+.
+	`sub¡ršg
+Óqu® + 1,ƒndè: 
+	`SŒšg
+();
+
+247 
+	`_addP¬am
+(
+Ãw
+ 
+	`AsyncWebP¬am‘”
+(
+	`u¾Decode
+(
+Çme
+), u¾Decode(
+v®ue
+)));
+
+248 
+¡¬t
+ = 
+’d
+ + 1;
+
+250 
+	}
+}
+
+252 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$_·r£ReqH—d
+(){
+
+254 
+šdex
+ = 
+_‹mp
+.
+	`šdexOf
+(' ');
+
+255 
+SŒšg
+ 
+m
+ = 
+_‹mp
+.
+	`sub¡ršg
+(0, 
+šdex
+);
+
+256 
+šdex
+ = 
+_‹mp
+.
+	`šdexOf
+(' ', index+1);
+
+257 
+SŒšg
+ 
+u
+ = 
+_‹mp
+.
+	`sub¡ršg
+(
+m
+.
+	`Ëngth
+()+1, 
+šdex
+);
+
+258 
+_‹mp
+ = _‹mp.
+	`sub¡ršg
+(
+šdex
++1);
+
+260 if(
+m
+ =ð
+	`F
+("GET")){
+
+261 
+_m‘hod
+ = 
+HTTP_GET
+;
+
+262 } if(
+m
+ =ð
+	`F
+("POST")){
+
+263 
+_m‘hod
+ = 
+HTTP_POST
+;
+
+264 } if(
+m
+ =ð
+	`F
+("DELETE")){
+
+265 
+_m‘hod
+ = 
+HTTP_DELETE
+;
+
+266 } if(
+m
+ =ð
+	`F
+("PUT")){
+
+267 
+_m‘hod
+ = 
+HTTP_PUT
+;
+
+268 } if(
+m
+ =ð
+	`F
+("PATCH")){
+
+269 
+_m‘hod
+ = 
+HTTP_PATCH
+;
+
+270 } if(
+m
+ =ð
+	`F
+("HEAD")){
+
+271 
+_m‘hod
+ = 
+HTTP_HEAD
+;
+
+272 } if(
+m
+ =ð
+	`F
+("OPTIONS")){
+
+273 
+_m‘hod
+ = 
+HTTP_OPTIONS
+;
+
+276 
+SŒšg
+ 
+g
+;
+
+277 
+šdex
+ = 
+u
+.
+	`šdexOf
+('?');
+
+278 if(
+šdex
+ > 0){
+
+279 
+g
+ = 
+u
+.
+	`sub¡ršg
+(
+šdex
+ +1);
+
+280 
+u
+ = u.
+	`sub¡ršg
+(0, 
+šdex
+);
+
+282 
+_u¾
+ = 
+	`u¾Decode
+(
+u
+);
+
+283 
+	`_addG‘P¬ams
+(
+g
+);
+
+285 if(!
+_‹mp
+.
+	`¡¬tsW™h
+(
+	`F
+("HTTP/1.0")))
+
+286 
+_v”siÚ
+ = 1;
+
+288 
+_‹mp
+ = 
+	`SŒšg
+();
+
+289  
+Œue
+;
+
+290 
+	}
+}
+
+292 
+boÞ
+ 
+	$¡rCÚ�šs
+(cÚ¡ 
+SŒšg
+ &
+¤c
+, cÚ¡ SŒšg &
+fšd
+, 
+boÞ
+ 
+mšdÿ£
+ = 
+Œue
+) {
+
+293 
+pos
+=0, 
+i
+=0;
+
+294 cÚ¡ 
+¦’
+ = 
+¤c
+.
+	`Ëngth
+();
+
+295 cÚ¡ 
+æ’
+ = 
+fšd
+.
+	`Ëngth
+();
+
+297 ià(
+¦’
+ < 
+æ’
+è 
+çl£
+;
+
+298 
+pos
+ <ð(
+¦’
+ - 
+æ’
+)) {
+
+299 
+i
+=0; i < 
+æ’
+; i++) {
+
+300 ià(
+mšdÿ£
+) {
+
+301 ià(
+¤c
+[
+pos
++
+i
+] !ð
+fšd
+[i]è˜ð
+æ’
+ + 1;
+
+303 ià(
+	`tÞow”
+(
+¤c
+[
+pos
++
+i
+]è!ðtÞow”(
+fšd
+[i])) {
+
+304 
+i
+ = 
+æ’
+ + 1;
+
+307 ià(
+i
+ =ð
+æ’
+è 
+Œue
+;
+
+308 
+pos
+++;
+
+310  
+çl£
+;
+
+311 
+	}
+}
+
+313 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$_·r£ReqH—d”
+(){
+
+314 
+šdex
+ = 
+_‹mp
+.
+	`šdexOf
+(':');
+
+315 if(
+šdex
+){
+
+316 
+SŒšg
+ 
+Çme
+ = 
+_‹mp
+.
+	`sub¡ršg
+(0, 
+šdex
+);
+
+317 
+SŒšg
+ 
+v®ue
+ = 
+_‹mp
+.
+	`sub¡ršg
+(
+šdex
+ + 2);
+
+318 if(
+Çme
+.
+	`equ®sIgnÜeCa£
+("Host")){
+
+319 
+_ho¡
+ = 
+v®ue
+;
+
+320 } if(
+Çme
+.
+	`equ®sIgnÜeCa£
+(
+	`F
+("Content-Type"))){
+
+321 
+_cÚ‹ÁTy³
+ = 
+v®ue
+.
+	`sub¡ršg
+(0, v®ue.
+	`šdexOf
+(';'));
+
+322 ià(
+v®ue
+.
+	`¡¬tsW™h
+(
+	`F
+("multipart/"))){
+
+323 
+_bound¬y
+ = 
+v®ue
+.
+	`sub¡ršg
+(v®ue.
+	`šdexOf
+('=')+1);
+
+324 
+_bound¬y
+.
+	`»¶aû
+(
+	`SŒšg
+('"'), String());
+
+325 
+_isMuÉ�¬t
+ = 
+Œue
+;
+
+327 } if(
+Çme
+.
+	`equ®sIgnÜeCa£
+(
+	`F
+("Content-Length"))){
+
+328 
+_cÚ‹ÁL’gth
+ = 
+	`©oi
+(
+v®ue
+.
+	`c_¡r
+());
+
+329 } if(
+Çme
+.
+	`equ®sIgnÜeCa£
+(
+	`F
+("Ex³ù")è&& 
+v®ue
+ == F("100-continue")){
+
+330 
+_ex³ùšgCÚtšue
+ = 
+Œue
+;
+
+331 } if(
+Çme
+.
+	`equ®sIgnÜeCa£
+(
+	`F
+("Authorization"))){
+
+332 if(
+v®ue
+.
+	`Ëngth
+(è> 5 && v®ue.
+	`sub¡ršg
+(0,5).
+	`equ®sIgnÜeCa£
+(
+	`F
+("Basic"))){
+
+333 
+_authÜiz©iÚ
+ = 
+v®ue
+.
+	`sub¡ršg
+(6);
+
+334 } if(
+v®ue
+.
+	`Ëngth
+(è> 6 && v®ue.
+	`sub¡ršg
+(0,6).
+	`equ®sIgnÜeCa£
+(
+	`F
+("Digest"))){
+
+335 
+_isDige¡
+ = 
+Œue
+;
+
+336 
+_authÜiz©iÚ
+ = 
+v®ue
+.
+	`sub¡ršg
+(7);
+
+339 if(
+Çme
+.
+	`equ®sIgnÜeCa£
+(
+	`F
+("Upg¿de")è&& 
+v®ue
+.equalsIgnoreCase(F("websocket"))){
+
+341 
+_»qcÚÁy³
+ = 
+RCT_WS
+;
+
+343 if(
+Çme
+.
+	`equ®sIgnÜeCa£
+(
+	`F
+("Acû±")è&& 
+	`¡rCÚ�šs
+(
+v®ue
+, F("‹xt/ev’t-¡»am"), 
+çl£
+)){
+
+345 
+_»qcÚÁy³
+ = 
+RCT_EVENT
+;
+
+349 
+_h—d”s
+.
+	`add
+(
+Ãw
+ 
+	`AsyncWebH—d”
+(
+Çme
+, 
+v®ue
+));
+
+351 
+_‹mp
+ = 
+	`SŒšg
+();
+
+352  
+Œue
+;
+
+353 
+	}
+}
+
+355 
+	gAsyncWebS”v”Reque¡
+::
+	$_·r£PÏšPo¡Ch¬
+(
+ušt8_t
+ 
+d©a
+){
+
+356 if(
+d©a
+ && ()data != '&')
+
+357 
+_‹mp
+ +ð()
+d©a
+;
+
+358 if(!
+d©a
+ || ()d©¨=ð'&' || 
+_·r£dL’gth
+ =ð
+_cÚ‹ÁL’gth
+){
+
+359 
+SŒšg
+ 
+Çme
+ = 
+	`F
+("body");
+
+360 
+SŒšg
+ 
+v®ue
+ = 
+_‹mp
+;
+
+361 if(!
+_‹mp
+.
+	`¡¬tsW™h
+(
+	`SŒšg
+('{')è&& !_‹mp.¡¬tsW™h(SŒšg('[')è&& _‹mp.
+	`šdexOf
+('=') > 0){
+
+362 
+Çme
+ = 
+_‹mp
+.
+	`sub¡ršg
+(0, _‹mp.
+	`šdexOf
+('='));
+
+363 
+v®ue
+ = 
+_‹mp
+.
+	`sub¡ršg
+(_‹mp.
+	`šdexOf
+('=') + 1);
+
+365 
+	`_addP¬am
+(
+Ãw
+ 
+	`AsyncWebP¬am‘”
+(
+	`u¾Decode
+(
+Çme
+), u¾Decode(
+v®ue
+), 
+Œue
+));
+
+366 
+_‹mp
+ = 
+	`SŒšg
+();
+
+368 
+	}
+}
+
+370 
+	gAsyncWebS”v”Reque¡
+::
+	$_hªdËU¶ßdBy‹
+(
+ušt8_t
+ 
+d©a
+, 
+boÞ
+ 
+Ï¡
+){
+
+371 
+_™emBufãr
+[
+_™emBufãrIndex
+++] = 
+d©a
+;
+
+373 if(
+Ï¡
+ || 
+_™emBufãrIndex
+ == 1460){
+
+375 if(
+_hªdËr
+)
+
+376 
+_hªdËr
+->
+	`hªdËU¶ßd
+(
+this
+, 
+_™emFž’ame
+, 
+_™emSize
+ - 
+_™emBufãrIndex
+, 
+_™emBufãr
+, _™emBufãrIndex, 
+çl£
+);
+
+377 
+_™emBufãrIndex
+ = 0;
+
+379 
+	}
+}
+
+382 
+	mEXPECT_BOUNDARY
+,
+
+383 
+	mPARSE_HEADERS
+,
+
+384 
+	mWAIT_FOR_RETURN1
+,
+
+385 
+	mEXPECT_FEED1
+,
+
+386 
+	mEXPECT_DASH1
+,
+
+387 
+	mEXPECT_DASH2
+,
+
+388 
+	mBOUNDARY_OR_DATA
+,
+
+389 
+	mDASH3_OR_RETURN2
+,
+
+390 
+	mEXPECT_FEED2
+,
+
+391 
+	mPARSING_FINISHED
+,
+
+392 
+	mPARSE_ERROR
+
+
+395 
+	gAsyncWebS”v”Reque¡
+::
+	$_·r£MuÉ�¬tPo¡By‹
+(
+ušt8_t
+ 
+d©a
+, 
+boÞ
+ 
+Ï¡
+){
+
+396 
+	#™emWr™eBy‹
+(
+b
+èdØ{ 
+_™emSize
+++; if(
+_™emIsFže
+è
+	`_hªdËU¶ßdBy‹
+(b, 
+Ï¡
+); 
+_™emV®ue
++=()(b); } 0)
+
+	)
+
+398 if(!
+_·r£dL’gth
+){
+
+399 
+_muÉiP¬£S�‹
+ = 
+EXPECT_BOUNDARY
+;
+
+400 
+_‹mp
+ = 
+	`SŒšg
+();
+
+401 
+_™emName
+ = 
+	`SŒšg
+();
+
+402 
+_™emFž’ame
+ = 
+	`SŒšg
+();
+
+403 
+_™emTy³
+ = 
+	`SŒšg
+();
+
+406 if(
+_muÉiP¬£S�‹
+ =ð
+WAIT_FOR_RETURN1
+){
+
+407 if(
+d©a
+ != '\r'){
+
+408 
+	`™emWr™eBy‹
+(
+d©a
+);
+
+410 
+_muÉiP¬£S�‹
+ = 
+EXPECT_FEED1
+;
+
+412 } if(
+_muÉiP¬£S�‹
+ =ð
+EXPECT_BOUNDARY
+){
+
+413 if(
+_·r£dL’gth
+ < 2 && 
+d©a
+ != '-'){
+
+414 
+_muÉiP¬£S�‹
+ = 
+PARSE_ERROR
+;
+
+416 } if(
+_·r£dL’gth
+ - 2 < 
+_bound¬y
+.
+	`Ëngth
+(è&& _bound¬y.
+	`c_¡r
+()[_·r£dL’gth - 2] !ð
+d©a
+){
+
+417 
+_muÉiP¬£S�‹
+ = 
+PARSE_ERROR
+;
+
+419 } if(
+_·r£dL’gth
+ - 2 =ð
+_bound¬y
+.
+	`Ëngth
+(è&& 
+d©a
+ != '\r'){
+
+420 
+_muÉiP¬£S�‹
+ = 
+PARSE_ERROR
+;
+
+422 } if(
+_·r£dL’gth
+ - 3 =ð
+_bound¬y
+.
+	`Ëngth
+()){
+
+423 if(
+d©a
+ != '\n'){
+
+424 
+_muÉiP¬£S�‹
+ = 
+PARSE_ERROR
+;
+
+427 
+_muÉiP¬£S�‹
+ = 
+PARSE_HEADERS
+;
+
+428 
+_™emIsFže
+ = 
+çl£
+;
+
+430 } if(
+_muÉiP¬£S�‹
+ =ð
+PARSE_HEADERS
+){
+
+431 if(()
+d©a
+ != '\r' && ()data != '\n')
+
+432 
+_‹mp
+ +ð()
+d©a
+;
+
+433 if(()
+d©a
+ == '\n'){
+
+434 if(
+_‹mp
+.
+	`Ëngth
+()){
+
+435 if(
+_‹mp
+.
+	`Ëngth
+(è> 12 && _‹mp.
+	`sub¡ršg
+(0, 12).
+	`equ®sIgnÜeCa£
+(
+	`F
+("Content-Type"))){
+
+436 
+_™emTy³
+ = 
+_‹mp
+.
+	`sub¡ršg
+(14);
+
+437 
+_™emIsFže
+ = 
+Œue
+;
+
+438 } if(
+_‹mp
+.
+	`Ëngth
+(è> 19 && _‹mp.
+	`sub¡ršg
+(0, 19).
+	`equ®sIgnÜeCa£
+(
+	`F
+("Content-Disposition"))){
+
+439 
+_‹mp
+ = _‹mp.
+	`sub¡ršg
+(_‹mp.
+	`šdexOf
+(';') + 2);
+
+440 
+_‹mp
+.
+	`šdexOf
+(';') > 0){
+
+441 
+SŒšg
+ 
+Çme
+ = 
+_‹mp
+.
+	`sub¡ršg
+(0, _‹mp.
+	`šdexOf
+('='));
+
+442 
+SŒšg
+ 
+ÇmeV®
+ = 
+_‹mp
+.
+	`sub¡ršg
+(_‹mp.
+	`šdexOf
+('=') + 2, _temp.indexOf(';') - 1);
+
+443 if(
+Çme
+ =ð
+	`F
+("name")){
+
+444 
+_™emName
+ = 
+ÇmeV®
+;
+
+445 } if(
+Çme
+ =ð
+	`F
+("filename")){
+
+446 
+_™emFž’ame
+ = 
+ÇmeV®
+;
+
+447 
+_™emIsFže
+ = 
+Œue
+;
+
+449 
+_‹mp
+ = _‹mp.
+	`sub¡ršg
+(_‹mp.
+	`šdexOf
+(';') + 2);
+
+451 
+SŒšg
+ 
+Çme
+ = 
+_‹mp
+.
+	`sub¡ršg
+(0, _‹mp.
+	`šdexOf
+('='));
+
+452 
+SŒšg
+ 
+ÇmeV®
+ = 
+_‹mp
+.
+	`sub¡ršg
+(_‹mp.
+	`šdexOf
+('='è+ 2, _‹mp.
+	`Ëngth
+() - 1);
+
+453 if(
+Çme
+ =ð
+	`F
+("name")){
+
+454 
+_™emName
+ = 
+ÇmeV®
+;
+
+455 } if(
+Çme
+ =ð
+	`F
+("filename")){
+
+456 
+_™emFž’ame
+ = 
+ÇmeV®
+;
+
+457 
+_™emIsFže
+ = 
+Œue
+;
+
+460 
+_‹mp
+ = 
+	`SŒšg
+();
+
+462 
+_muÉiP¬£S�‹
+ = 
+WAIT_FOR_RETURN1
+;
+
+464 
+_™emSize
+ = 0;
+
+465 
+_™emS�¹Index
+ = 
+_·r£dL’gth
+;
+
+466 
+_™emV®ue
+ = 
+	`SŒšg
+();
+
+467 if(
+_™emIsFže
+){
+
+468 if(
+_™emBufãr
+)
+
+469 
+	`ä“
+(
+_™emBufãr
+);
+
+470 
+_™emBufãr
+ = (
+ušt8_t
+*)
+	`m®loc
+(1460);
+
+471 if(
+_™emBufãr
+ =ð
+NULL
+){
+
+472 
+_muÉiP¬£S�‹
+ = 
+PARSE_ERROR
+;
+
+475 
+_™emBufãrIndex
+ = 0;
+
+479 } if(
+_muÉiP¬£S�‹
+ =ð
+EXPECT_FEED1
+){
+
+480 if(
+d©a
+ != '\n'){
+
+481 
+_muÉiP¬£S�‹
+ = 
+WAIT_FOR_RETURN1
+;
+
+482 
+	`™emWr™eBy‹
+('\r'); 
+	`_·r£MuÉ�¬tPo¡By‹
+(
+d©a
+, 
+Ï¡
+);
+
+484 
+_muÉiP¬£S�‹
+ = 
+EXPECT_DASH1
+;
+
+486 } if(
+_muÉiP¬£S�‹
+ =ð
+EXPECT_DASH1
+){
+
+487 if(
+d©a
+ != '-'){
+
+488 
+_muÉiP¬£S�‹
+ = 
+WAIT_FOR_RETURN1
+;
+
+489 
+	`™emWr™eBy‹
+('\r'); i‹mWr™eBy‹('\n'); 
+	`_·r£MuÉ�¬tPo¡By‹
+(
+d©a
+, 
+Ï¡
+);
+
+491 
+_muÉiP¬£S�‹
+ = 
+EXPECT_DASH2
+;
+
+493 } if(
+_muÉiP¬£S�‹
+ =ð
+EXPECT_DASH2
+){
+
+494 if(
+d©a
+ != '-'){
+
+495 
+_muÉiP¬£S�‹
+ = 
+WAIT_FOR_RETURN1
+;
+
+496 
+	`™emWr™eBy‹
+('\r'); i‹mWr™eBy‹('\n'); i‹mWr™eBy‹('-'); 
+	`_·r£MuÉ�¬tPo¡By‹
+(
+d©a
+, 
+Ï¡
+);
+
+498 
+_muÉiP¬£S�‹
+ = 
+BOUNDARY_OR_DATA
+;
+
+499 
+_bound¬yPos™iÚ
+ = 0;
+
+501 } if(
+_muÉiP¬£S�‹
+ =ð
+BOUNDARY_OR_DATA
+){
+
+502 if(
+_bound¬yPos™iÚ
+ < 
+_bound¬y
+.
+	`Ëngth
+(è&& _bound¬y.
+	`c_¡r
+()[_bound¬yPos™iÚ] !ð
+d©a
+){
+
+503 
+_muÉiP¬£S�‹
+ = 
+WAIT_FOR_RETURN1
+;
+
+504 
+	`™emWr™eBy‹
+('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-');
+
+505 
+ušt8_t
+ 
+i
+;
+
+506 
+i
+=0; i<
+_bound¬yPos™iÚ
+; i++)
+
+507 
+	`™emWr™eBy‹
+(
+_bound¬y
+.
+	`c_¡r
+()[
+i
+]);
+
+508 
+	`_·r£MuÉ�¬tPo¡By‹
+(
+d©a
+, 
+Ï¡
+);
+
+509 } if(
+_bound¬yPos™iÚ
+ =ð
+_bound¬y
+.
+	`Ëngth
+() - 1){
+
+510 
+_muÉiP¬£S�‹
+ = 
+DASH3_OR_RETURN2
+;
+
+511 if(!
+_™emIsFže
+){
+
+512 
+	`_addP¬am
+(
+Ãw
+ 
+	`AsyncWebP¬am‘”
+(
+_™emName
+, 
+_™emV®ue
+, 
+Œue
+));
+
+514 if(
+_™emSize
+){
+
+516 if(
+_hªdËr
+è_hªdËr->
+	`hªdËU¶ßd
+(
+this
+, 
+_™emFž’ame
+, 
+_™emSize
+ - 
+_™emBufãrIndex
+, 
+_™emBufãr
+, _™emBufãrIndex, 
+Œue
+);
+
+517 
+_™emBufãrIndex
+ = 0;
+
+518 
+	`_addP¬am
+(
+Ãw
+ 
+	`AsyncWebP¬am‘”
+(
+_™emName
+, 
+_™emFž’ame
+, 
+Œue
+,�rue, 
+_™emSize
+));
+
+520 
+	`ä“
+(
+_™emBufãr
+);
+
+521 
+_™emBufãr
+ = 
+NULL
+;
+
+525 
+_bound¬yPos™iÚ
+++;
+
+527 } if(
+_muÉiP¬£S�‹
+ =ð
+DASH3_OR_RETURN2
+){
+
+528 if(
+d©a
+ =ð'-' && (
+_cÚ‹ÁL’gth
+ - 
+_·r£dL’gth
+ - 4) != 0){
+
+530 
+_cÚ‹ÁL’gth
+ = 
+_·r£dL’gth
+ + 4;
+
+532 if(
+d©a
+ == '\r'){
+
+533 
+_muÉiP¬£S�‹
+ = 
+EXPECT_FEED2
+;
+
+534 } if(
+d©a
+ =ð'-' && 
+_cÚ‹ÁL’gth
+ =ð(
+_·r£dL’gth
+ + 4)){
+
+535 
+_muÉiP¬£S�‹
+ = 
+PARSING_FINISHED
+;
+
+537 
+_muÉiP¬£S�‹
+ = 
+WAIT_FOR_RETURN1
+;
+
+538 
+	`™emWr™eBy‹
+('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-');
+
+539 
+ušt8_t
+ 
+i
+; i=0; i<
+_bound¬y
+.
+	`Ëngth
+(); i++è
+	`™emWr™eBy‹
+(_bound¬y.
+	`c_¡r
+()[i]);
+
+540 
+	`_·r£MuÉ�¬tPo¡By‹
+(
+d©a
+, 
+Ï¡
+);
+
+542 } if(
+_muÉiP¬£S�‹
+ =ð
+EXPECT_FEED2
+){
+
+543 if(
+d©a
+ == '\n'){
+
+544 
+_muÉiP¬£S�‹
+ = 
+PARSE_HEADERS
+;
+
+545 
+_™emIsFže
+ = 
+çl£
+;
+
+547 
+_muÉiP¬£S�‹
+ = 
+WAIT_FOR_RETURN1
+;
+
+548 
+	`™emWr™eBy‹
+('\r'); itemWriteByte('\n'); itemWriteByte('-'); itemWriteByte('-');
+
+549 
+ušt8_t
+ 
+i
+; i=0; i<
+_bound¬y
+.
+	`Ëngth
+(); i++è
+	`™emWr™eBy‹
+(_bound¬y.
+	`c_¡r
+()[i]);
+
+550 
+	`™emWr™eBy‹
+('\r'); 
+	`_·r£MuÉ�¬tPo¡By‹
+(
+d©a
+, 
+Ï¡
+);
+
+553 
+	}
+}
+
+555 
+	gAsyncWebS”v”Reque¡
+::
+	$_·r£Lše
+(){
+
+556 if(
+_·r£S�‹
+ =ð
+PARSE_REQ_START
+){
+
+557 if(!
+_‹mp
+.
+	`Ëngth
+()){
+
+558 
+_·r£S�‹
+ = 
+PARSE_REQ_FAIL
+;
+
+559 
+_þ›Á
+->
+	`þo£
+();
+
+561 
+	`_·r£ReqH—d
+();
+
+562 
+_·r£S�‹
+ = 
+PARSE_REQ_HEADERS
+;
+
+567 if(
+_·r£S�‹
+ =ð
+PARSE_REQ_HEADERS
+){
+
+568 if(!
+_‹mp
+.
+	`Ëngth
+()){
+
+570 
+_£rv”
+->
+	`_»wr™eReque¡
+(
+this
+);
+
+571 
+_£rv”
+->
+	`_©�chHªdËr
+(
+this
+);
+
+572 
+	`_»moveNÙIÁ”e¡šgH—d”s
+();
+
+573 if(
+_ex³ùšgCÚtšue
+){
+
+574 
+SŒšg
+ 
+»¥Ú£
+ = 
+	`F
+("HTTP/1.1 100 Continue\r\n\r\n");
+
+575 
+_þ›Á
+->
+	`wr™e
+(
+»¥Ú£
+.
+	`c_¡r
+(),„e¥Ú£.
+	`Ëngth
+());
+
+578 if(
+_cÚ‹ÁL’gth
+){
+
+579 
+_·r£S�‹
+ = 
+PARSE_REQ_BODY
+;
+
+581 
+_·r£S�‹
+ = 
+PARSE_REQ_END
+;
+
+582 if(
+_hªdËr
+è_hªdËr->
+	`hªdËReque¡
+(
+this
+);
+
+583 
+	`£nd
+(501);
+
+585 } 
+	`_·r£ReqH—d”
+();
+
+587 
+	}
+}
+
+589 
+size_t
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$h—d”s
+() const{
+
+590  
+_h—d”s
+.
+	`Ëngth
+();
+
+591 
+	}
+}
+
+593 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$hasH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+) const {
+
+594 cÚ¡‡uto& 
+h
+: 
+_h—d”s
+){
+
+595 if(
+h
+->
+	`Çme
+().
+	`equ®sIgnÜeCa£
+(
+Çme
+)){
+
+596  
+Œue
+;
+
+599  
+çl£
+;
+
+600 
+	}
+}
+
+602 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$hasH—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const {
+
+603  
+	`hasH—d”
+(
+	`SŒšg
+(
+d©a
+));
+
+604 
+	}
+}
+
+606 
+AsyncWebH—d”
+* 
+	gAsyncWebS”v”Reque¡
+::
+	$g‘H—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+) const {
+
+607 cÚ¡‡uto& 
+h
+: 
+_h—d”s
+){
+
+608 if(
+h
+->
+	`Çme
+().
+	`equ®sIgnÜeCa£
+(
+Çme
+)){
+
+609  
+h
+;
+
+612  
+nuÎ±r
+;
+
+613 
+	}
+}
+
+615 
+AsyncWebH—d”
+* 
+	gAsyncWebS”v”Reque¡
+::
+	$g‘H—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const {
+
+616  
+	`g‘H—d”
+(
+	`SŒšg
+(
+d©a
+));
+
+617 
+	}
+}
+
+619 
+AsyncWebH—d”
+* 
+	gAsyncWebS”v”Reque¡
+::
+	$g‘H—d”
+(
+size_t
+ 
+num
+) const {
+
+620 autØ
+h—d”
+ = 
+_h—d”s
+.
+	`Áh
+(
+num
+);
+
+621  
+h—d”
+ ? *h—d” : 
+nuÎ±r
+;
+
+622 
+	}
+}
+
+624 
+size_t
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$·¿ms
+() const {
+
+625  
+_·¿ms
+.
+	`Ëngth
+();
+
+626 
+	}
+}
+
+628 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$hasP¬am
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, 
+boÞ
+ 
+po¡
+, boÞ 
+fže
+) const {
+
+629 cÚ¡‡uto& 
+p
+: 
+_·¿ms
+){
+
+630 if(
+p
+->
+	`Çme
+(è=ð
+Çme
+ &&…->
+	`isPo¡
+(è=ð
+po¡
+ &&…->
+	`isFže
+(è=ð
+fže
+){
+
+631  
+Œue
+;
+
+634  
+çl£
+;
+
+635 
+	}
+}
+
+637 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$hasP¬am
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+, 
+boÞ
+ 
+po¡
+, boÞ 
+fže
+) const {
+
+638  
+	`hasP¬am
+(
+	`SŒšg
+(
+d©a
+).
+	`c_¡r
+(), 
+po¡
+, 
+fže
+);
+
+639 
+	}
+}
+
+641 
+AsyncWebP¬am‘”
+* 
+	gAsyncWebS”v”Reque¡
+::
+	$g‘P¬am
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, 
+boÞ
+ 
+po¡
+, boÞ 
+fže
+) const {
+
+642 cÚ¡‡uto& 
+p
+: 
+_·¿ms
+){
+
+643 if(
+p
+->
+	`Çme
+(è=ð
+Çme
+ &&…->
+	`isPo¡
+(è=ð
+po¡
+ &&…->
+	`isFže
+(è=ð
+fže
+){
+
+644  
+p
+;
+
+647  
+nuÎ±r
+;
+
+648 
+	}
+}
+
+650 
+AsyncWebP¬am‘”
+* 
+	gAsyncWebS”v”Reque¡
+::
+	$g‘P¬am
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+, 
+boÞ
+ 
+po¡
+, boÞ 
+fže
+) const {
+
+651  
+	`g‘P¬am
+(
+	`SŒšg
+(
+d©a
+).
+	`c_¡r
+(), 
+po¡
+, 
+fže
+);
+
+652 
+	}
+}
+
+654 
+AsyncWebP¬am‘”
+* 
+	gAsyncWebS”v”Reque¡
+::
+	$g‘P¬am
+(
+size_t
+ 
+num
+) const {
+
+655 autØ
+·¿m
+ = 
+_·¿ms
+.
+	`Áh
+(
+num
+);
+
+656  
+·¿m
+ ? *·¿m : 
+nuÎ±r
+;
+
+657 
+	}
+}
+
+659 
+	gAsyncWebS”v”Reque¡
+::
+	$addIÁ”e¡šgH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+){
+
+660 if(!
+_š‹»¡šgH—d”s
+.
+	`cÚ�šsIgnÜeCa£
+(
+Çme
+))
+
+661 
+_š‹»¡šgH—d”s
+.
+	`add
+(
+Çme
+);
+
+662 
+	}
+}
+
+664 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd
+(
+AsyncWebS”v”Re¥Ú£
+ *
+»¥Ú£
+){
+
+665 
+_»¥Ú£
+ = 
+»¥Ú£
+;
+
+666 if(
+_»¥Ú£
+ =ð
+NULL
+){
+
+667 
+_þ›Á
+->
+	`þo£
+(
+Œue
+);
+
+668 
+	`_ÚDiscÚÃù
+();
+
+671 if(!
+_»¥Ú£
+->
+	`_sourûV®id
+()){
+
+672 
+d–‘e
+ 
+»¥Ú£
+;
+
+673 
+_»¥Ú£
+ = 
+NULL
+;
+
+674 
+	`£nd
+(500);
+
+677 
+_þ›Á
+->
+	`£tRxTimeout
+(0);
+
+678 
+_»¥Ú£
+->
+	`_»¥Úd
+(
+this
+);
+
+680 
+	}
+}
+
+682 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ SŒšg& 
+cÚ‹Á
+){
+
+683  
+Ãw
+ 
+	`AsyncBasicRe¥Ú£
+(
+code
+, 
+cÚ‹ÁTy³
+, 
+cÚ‹Á
+);
+
+684 
+	}
+}
+
+686 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£
+(
+FS
+ &
+fs
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+, 
+boÞ
+ 
+dowÆßd
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+687 if(
+fs
+.
+	`exi¡s
+(
+·th
+è|| (!
+dowÆßd
+ && fs.exi¡sÕ©h+
+	`F
+(".gz"))))
+
+688  
+Ãw
+ 
+	`AsyncFžeRe¥Ú£
+(
+fs
+, 
+·th
+, 
+cÚ‹ÁTy³
+, 
+dowÆßd
+, 
+ÿÎback
+);
+
+689  
+NULL
+;
+
+690 
+	}
+}
+
+692 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£
+(
+Fže
+ 
+cÚ‹Á
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+, 
+boÞ
+ 
+dowÆßd
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+693 if(
+cÚ‹Á
+ =ð
+Œue
+)
+
+694  
+Ãw
+ 
+	`AsyncFžeRe¥Ú£
+(
+cÚ‹Á
+, 
+·th
+, 
+cÚ‹ÁTy³
+, 
+dowÆßd
+, 
+ÿÎback
+);
+
+695  
+NULL
+;
+
+696 
+	}
+}
+
+698 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£
+(
+SŒ—m
+ &
+¡»am
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+699  
+Ãw
+ 
+	`AsyncSŒ—mRe¥Ú£
+(
+¡»am
+, 
+cÚ‹ÁTy³
+, 
+Ën
+, 
+ÿÎback
+);
+
+700 
+	}
+}
+
+702 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+){
+
+703  
+Ãw
+ 
+	`AsyncC®lbackRe¥Ú£
+(
+cÚ‹ÁTy³
+, 
+Ën
+, 
+ÿÎback
+, 
+‹m¶©eC®lback
+);
+
+704 
+	}
+}
+
+706 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšChunkedRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+){
+
+707 if(
+_v”siÚ
+)
+
+708  
+Ãw
+ 
+	`AsyncChunkedRe¥Ú£
+(
+cÚ‹ÁTy³
+, 
+ÿÎback
+, 
+‹m¶©eC®lback
+);
+
+709  
+Ãw
+ 
+	`AsyncC®lbackRe¥Ú£
+(
+cÚ‹ÁTy³
+, 0, 
+ÿÎback
+, 
+‹m¶©eC®lback
+);
+
+710 
+	}
+}
+
+712 
+AsyncRe¥Ú£SŒ—m
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£SŒ—m
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+bufãrSize
+){
+
+713  
+Ãw
+ 
+	`AsyncRe¥Ú£SŒ—m
+(
+cÚ‹ÁTy³
+, 
+bufãrSize
+);
+
+714 
+	}
+}
+
+716 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ 
+ušt8_t
+ * 
+cÚ‹Á
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+717  
+Ãw
+ 
+	`AsyncProgmemRe¥Ú£
+(
+code
+, 
+cÚ‹ÁTy³
+, 
+cÚ‹Á
+, 
+Ën
+, 
+ÿÎback
+);
+
+718 
+	}
+}
+
+720 
+AsyncWebS”v”Re¥Ú£
+ * 
+	gAsyncWebS”v”Reque¡
+::
+	$begšRe¥Ú£_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+PGM_P
+ 
+cÚ‹Á
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+721  
+	`begšRe¥Ú£_P
+(
+code
+, 
+cÚ‹ÁTy³
+, (cÚ¡ 
+ušt8_t
+ *)
+cÚ‹Á
+, 
+	`¡¾’_P
+(cÚ‹Á), 
+ÿÎback
+);
+
+722 
+	}
+}
+
+724 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ SŒšg& 
+cÚ‹Á
+){
+
+725 
+	`£nd
+(
+	`begšRe¥Ú£
+(
+code
+, 
+cÚ‹ÁTy³
+, 
+cÚ‹Á
+));
+
+726 
+	}
+}
+
+728 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd
+(
+FS
+ &
+fs
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+, 
+boÞ
+ 
+dowÆßd
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+729 if(
+fs
+.
+	`exi¡s
+(
+·th
+è|| (!
+dowÆßd
+ && fs.exi¡sÕ©h+
+	`F
+(".gz")))){
+
+730 
+	`£nd
+(
+	`begšRe¥Ú£
+(
+fs
+, 
+·th
+, 
+cÚ‹ÁTy³
+, 
+dowÆßd
+, 
+ÿÎback
+));
+
+731 } 
+	`£nd
+(404);
+
+732 
+	}
+}
+
+734 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd
+(
+Fže
+ 
+cÚ‹Á
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+, 
+boÞ
+ 
+dowÆßd
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+735 if(
+cÚ‹Á
+ =ð
+Œue
+){
+
+736 
+	`£nd
+(
+	`begšRe¥Ú£
+(
+cÚ‹Á
+, 
+·th
+, 
+cÚ‹ÁTy³
+, 
+dowÆßd
+, 
+ÿÎback
+));
+
+737 } 
+	`£nd
+(404);
+
+738 
+	}
+}
+
+740 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd
+(
+SŒ—m
+ &
+¡»am
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+741 
+	`£nd
+(
+	`begšRe¥Ú£
+(
+¡»am
+, 
+cÚ‹ÁTy³
+, 
+Ën
+, 
+ÿÎback
+));
+
+742 
+	}
+}
+
+744 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+){
+
+745 
+	`£nd
+(
+	`begšRe¥Ú£
+(
+cÚ‹ÁTy³
+, 
+Ën
+, 
+ÿÎback
+, 
+‹m¶©eC®lback
+));
+
+746 
+	}
+}
+
+748 
+	gAsyncWebS”v”Reque¡
+::
+	$£ndChunked
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+){
+
+749 
+	`£nd
+(
+	`begšChunkedRe¥Ú£
+(
+cÚ‹ÁTy³
+, 
+ÿÎback
+, 
+‹m¶©eC®lback
+));
+
+750 
+	}
+}
+
+752 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ 
+ušt8_t
+ * 
+cÚ‹Á
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+753 
+	`£nd
+(
+	`begšRe¥Ú£_P
+(
+code
+, 
+cÚ‹ÁTy³
+, 
+cÚ‹Á
+, 
+Ën
+, 
+ÿÎback
+));
+
+754 
+	}
+}
+
+756 
+	gAsyncWebS”v”Reque¡
+::
+	$£nd_P
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+PGM_P
+ 
+cÚ‹Á
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+){
+
+757 
+	`£nd
+(
+	`begšRe¥Ú£_P
+(
+code
+, 
+cÚ‹ÁTy³
+, 
+cÚ‹Á
+, 
+ÿÎback
+));
+
+758 
+	}
+}
+
+760 
+	gAsyncWebS”v”Reque¡
+::
+	$»dœeù
+(cÚ¡ 
+SŒšg
+& 
+u¾
+){
+
+761 
+AsyncWebS”v”Re¥Ú£
+ * 
+»¥Ú£
+ = 
+	`begšRe¥Ú£
+(302);
+
+762 
+»¥Ú£
+->
+	`addH—d”
+(
+	`F
+("LoÿtiÚ"), 
+u¾
+);
+
+763 
+	`£nd
+(
+»¥Ú£
+);
+
+764 
+	}
+}
+
+766 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$auth’tiÿ‹
+(cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+, cÚ¡ * 
+»®m
+, 
+boÞ
+ 
+·sswÜdIsHash
+){
+
+767 if(
+_authÜiz©iÚ
+.
+	`Ëngth
+()){
+
+768 if(
+_isDige¡
+)
+
+769  
+	`checkDige¡Auth’tiÿtiÚ
+(
+_authÜiz©iÚ
+.
+	`c_¡r
+(), 
+	`m‘hodToSŒšg
+(), 
+u£ºame
+, 
+·sswÜd
+, 
+»®m
+, 
+·sswÜdIsHash
+, 
+NULL
+, NULL, NULL);
+
+770 if(!
+·sswÜdIsHash
+)
+
+771  
+	`checkBasicAuth’tiÿtiÚ
+(
+_authÜiz©iÚ
+.
+	`c_¡r
+(), 
+u£ºame
+, 
+·sswÜd
+);
+
+773  
+_authÜiz©iÚ
+.
+	`equ®s
+(
+·sswÜd
+);
+
+775  
+çl£
+;
+
+776 
+	}
+}
+
+778 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$auth’tiÿ‹
+(cÚ¡ * 
+hash
+){
+
+779 if(!
+_authÜiz©iÚ
+.
+	`Ëngth
+(è|| 
+hash
+ =ð
+NULL
+)
+
+780  
+çl£
+;
+
+782 if(
+_isDige¡
+){
+
+783 
+SŒšg
+ 
+hSŒ
+ = 
+	`SŒšg
+(
+hash
+);
+
+784 
+£·¿tÜ
+ = 
+hSŒ
+.
+	`šdexOf
+(':');
+
+785 if(
+£·¿tÜ
+ <= 0)
+
+786  
+çl£
+;
+
+787 
+SŒšg
+ 
+u£ºame
+ = 
+hSŒ
+.
+	`sub¡ršg
+(0, 
+£·¿tÜ
+);
+
+788 
+hSŒ
+ = hSŒ.
+	`sub¡ršg
+(
+£·¿tÜ
+ + 1);
+
+789 
+£·¿tÜ
+ = 
+hSŒ
+.
+	`šdexOf
+(':');
+
+790 if(
+£·¿tÜ
+ <= 0)
+
+791  
+çl£
+;
+
+792 
+SŒšg
+ 
+»®m
+ = 
+hSŒ
+.
+	`sub¡ršg
+(0, 
+£·¿tÜ
+);
+
+793 
+hSŒ
+ = hSŒ.
+	`sub¡ršg
+(
+£·¿tÜ
+ + 1);
+
+794  
+	`checkDige¡Auth’tiÿtiÚ
+(
+_authÜiz©iÚ
+.
+	`c_¡r
+(), 
+	`m‘hodToSŒšg
+(), 
+u£ºame
+.c_¡r(), 
+hSŒ
+.c_¡r(), 
+»®m
+.c_¡r(), 
+Œue
+, 
+NULL
+, NULL, NULL);
+
+797  (
+_authÜiz©iÚ
+.
+	`equ®s
+(
+hash
+));
+
+798 
+	}
+}
+
+800 
+	gAsyncWebS”v”Reque¡
+::
+	$»que¡Auth’tiÿtiÚ
+(cÚ¡ * 
+»®m
+, 
+boÞ
+ 
+isDige¡
+){
+
+801 
+AsyncWebS”v”Re¥Ú£
+ * 
+r
+ = 
+	`begšRe¥Ú£
+(401);
+
+802 if(!
+isDige¡
+ && 
+»®m
+ =ð
+NULL
+){
+
+803 
+r
+->
+	`addH—d”
+(
+	`F
+("WWW-Authenticate"), F("Basic„ealm=\"Login Required\""));
+
+804 } if(!
+isDige¡
+){
+
+805 
+SŒšg
+ 
+h—d”
+ = 
+	`F
+("Basic„ealm=\"");
+
+806 
+h—d”
+.
+	`cÚÿt
+(
+»®m
+);
+
+807 
+h—d”
+ += '"';
+
+808 
+r
+->
+	`addH—d”
+(
+	`F
+("WWW-Auth’tiÿ‹"), 
+h—d”
+);
+
+810 
+SŒšg
+ 
+h—d”
+ = 
+	`F
+("Digest ");
+
+811 
+h—d”
+.
+	`cÚÿt
+(
+	`»que¡Dige¡Auth’tiÿtiÚ
+(
+»®m
+));
+
+812 
+r
+->
+	`addH—d”
+(
+	`F
+("WWW-Auth’tiÿ‹"), 
+h—d”
+);
+
+814 
+	`£nd
+(
+r
+);
+
+815 
+	}
+}
+
+817 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$hasArg
+(cÚ¡ * 
+Çme
+) const {
+
+818 cÚ¡‡uto& 
+¬g
+: 
+_·¿ms
+){
+
+819 if(
+¬g
+->
+	`Çme
+(è=ð
+Çme
+){
+
+820  
+Œue
+;
+
+823  
+çl£
+;
+
+824 
+	}
+}
+
+826 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$hasArg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const {
+
+827  
+	`hasArg
+(
+	`SŒšg
+(
+d©a
+).
+	`c_¡r
+());
+
+828 
+	}
+}
+
+831 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$¬g
+(cÚ¡ 
+SŒšg
+& 
+Çme
+) const {
+
+832 cÚ¡‡uto& 
+¬g
+: 
+_·¿ms
+){
+
+833 if(
+¬g
+->
+	`Çme
+(è=ð
+Çme
+){
+
+834  
+¬g
+->
+	`v®ue
+();
+
+837  
+em±ySŒšg
+;
+
+838 
+	}
+}
+
+840 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$¬g
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const {
+
+841  
+	`¬g
+(
+	`SŒšg
+(
+d©a
+).
+	`c_¡r
+());
+
+842 
+	}
+}
+
+844 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$¬g
+(
+size_t
+ 
+i
+) const {
+
+845  
+	`g‘P¬am
+(
+i
+)->
+	`v®ue
+();
+
+846 
+	}
+}
+
+848 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$¬gName
+(
+size_t
+ 
+i
+) const {
+
+849  
+	`g‘P¬am
+(
+i
+)->
+	`Çme
+();
+
+850 
+	}
+}
+
+852 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$·thArg
+(
+size_t
+ 
+i
+) const {
+
+853 autØ
+·¿m
+ = 
+_·thP¬ams
+.
+	`Áh
+(
+i
+);
+
+854  
+·¿m
+ ? **·¿m : 
+em±ySŒšg
+;
+
+855 
+	}
+}
+
+857 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$h—d”
+(cÚ¡ * 
+Çme
+) const {
+
+858 
+AsyncWebH—d”
+* 
+h
+ = 
+	`g‘H—d”
+(
+	`SŒšg
+(
+Çme
+));
+
+859  
+h
+ ? h->
+	`v®ue
+(è: 
+em±ySŒšg
+;
+
+860 
+	}
+}
+
+862 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$h—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) const {
+
+863  
+	`h—d”
+(
+	`SŒšg
+(
+d©a
+).
+	`c_¡r
+());
+
+864 
+	}
+};
+
+867 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$h—d”
+(
+size_t
+ 
+i
+) const {
+
+868 
+AsyncWebH—d”
+* 
+h
+ = 
+	`g‘H—d”
+(
+i
+);
+
+869  
+h
+ ? h->
+	`v®ue
+(è: 
+em±ySŒšg
+;
+
+870 
+	}
+}
+
+872 cÚ¡ 
+	gSŒšg
+& 
+	gAsyncWebS”v”Reque¡
+::
+	$h—d”Name
+(
+size_t
+ 
+i
+) const {
+
+873 
+AsyncWebH—d”
+* 
+h
+ = 
+	`g‘H—d”
+(
+i
+);
+
+874  
+h
+ ? h->
+	`Çme
+(è: 
+em±ySŒšg
+;
+
+875 
+	}
+}
+
+877 
+SŒšg
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$u¾Decode
+(cÚ¡ 
+SŒšg
+& 
+‹xt
+) const {
+
+878 
+‹mp
+[] = "0x00";
+
+879 
+Ën
+ = 
+‹xt
+.
+	`Ëngth
+();
+
+880 
+i
+ = 0;
+
+881 
+SŒšg
+ 
+decoded
+ = 
+	`SŒšg
+();
+
+882 
+decoded
+.
+	`»£rve
+(
+Ën
+);
+
+883 
+i
+ < 
+Ën
+){
+
+884 
+decodedCh¬
+;
+
+885 
+’codedCh¬
+ = 
+‹xt
+.
+	`ch¬At
+(
+i
+++);
+
+886 ià((
+’codedCh¬
+ =ð'%'è&& (
+i
+ + 1 < 
+Ën
+)){
+
+887 
+‹mp
+[2] = 
+‹xt
+.
+	`ch¬At
+(
+i
+++);
+
+888 
+‹mp
+[3] = 
+‹xt
+.
+	`ch¬At
+(
+i
+++);
+
+889 
+decodedCh¬
+ = 
+	`¡¹Þ
+(
+‹mp
+, 
+NULL
+, 16);
+
+890 } ià(
+’codedCh¬
+ == '+') {
+
+891 
+decodedCh¬
+ = ' ';
+
+893 
+decodedCh¬
+ = 
+’codedCh¬
+;
+
+895 
+decoded
+.
+	`cÚÿt
+(
+decodedCh¬
+);
+
+897  
+decoded
+;
+
+898 
+	}
+}
+
+901 cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+	gAsyncWebS”v”Reque¡
+::
+	$m‘hodToSŒšg
+() const {
+
+902 if(
+_m‘hod
+ =ð
+HTTP_ANY
+è 
+	`F
+("ANY");
+
+903 if(
+_m‘hod
+ & 
+HTTP_GET
+è 
+	`F
+("GET");
+
+904 if(
+_m‘hod
+ & 
+HTTP_POST
+è 
+	`F
+("POST");
+
+905 if(
+_m‘hod
+ & 
+HTTP_DELETE
+è 
+	`F
+("DELETE");
+
+906 if(
+_m‘hod
+ & 
+HTTP_PUT
+è 
+	`F
+("PUT");
+
+907 if(
+_m‘hod
+ & 
+HTTP_PATCH
+è 
+	`F
+("PATCH");
+
+908 if(
+_m‘hod
+ & 
+HTTP_HEAD
+è 
+	`F
+("HEAD");
+
+909 if(
+_m‘hod
+ & 
+HTTP_OPTIONS
+è 
+	`F
+("OPTIONS");
+
+910  
+	`F
+("UNKNOWN");
+
+911 
+	}
+}
+
+913 cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+	gAsyncWebS”v”Reque¡
+::
+	$»que¡edCÚnTy³ToSŒšg
+() const {
+
+914 
+_»qcÚÁy³
+) {
+
+915 
+RCT_NOT_USED
+:  
+	`F
+("RCT_NOT_USED");
+
+916 
+RCT_DEFAULT
+:  
+	`F
+("RCT_DEFAULT");
+
+917 
+RCT_HTTP
+:  
+	`F
+("RCT_HTTP");
+
+918 
+RCT_WS
+:  
+	`F
+("RCT_WS");
+
+919 
+RCT_EVENT
+:  
+	`F
+("RCT_EVENT");
+
+920 :  
+	`F
+("ERROR");
+
+922 
+	}
+}
+
+924 
+boÞ
+ 
+	gAsyncWebS”v”Reque¡
+::
+	$isEx³ùedReque¡edCÚnTy³
+(
+Reque¡edCÚÃùiÚTy³
+ 
+”ù1
+, Reque¡edCÚÃùiÚTy³ 
+”ù2
+, Reque¡edCÚÃùiÚTy³ 
+”ù3
+) {
+
+925 
+boÞ
+ 
+»s
+ = 
+çl£
+;
+
+926 ià((
+”ù1
+ !ð
+RCT_NOT_USED
+è&& (”ù1 =ð
+_»qcÚÁy³
+)è
+»s
+ = 
+Œue
+;
+
+927 ià((
+”ù2
+ !ð
+RCT_NOT_USED
+è&& (”ù2 =ð
+_»qcÚÁy³
+)è
+»s
+ = 
+Œue
+;
+
+928 ià((
+”ù3
+ !ð
+RCT_NOT_USED
+è&& (”ù3 =ð
+_»qcÚÁy³
+)è
+»s
+ = 
+Œue
+;
+
+929  
+»s
+;
+
+930 
+	}
+}
+
+	@lib/ESPAsyncWebServer/WebResponseImpl.h
+
+21 #iâdeà
+ASYNCWEBSERVERRESPONSEIMPL_H_
+
+
+22 
+	#ASYNCWEBSERVERRESPONSEIMPL_H_
+
+
+	)
+
+24 #ifdeà
+Ardušo_h
+
+
+26 #undeà
+mš
+
+
+27 #undeà
+max
+
+
+29 
+	~<veùÜ
+>
+
+32 þas 
+	cAsyncBasicRe¥Ú£
+: 
+public
+ 
+AsyncWebS”v”Re¥Ú£
+ {
+
+33 
+´iv©e
+:
+
+34 
+SŒšg
+ 
+_cÚ‹Á
+;
+
+35 
+	mpublic
+:
+
+36 
+AsyncBasicRe¥Ú£
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+=SŒšg(), cÚ¡ SŒšg& 
+cÚ‹Á
+=String());
+
+37 
+_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+38 
+size_t
+ 
+_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, size_ˆ
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+39 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  
+Œue
+; }
+
+40 
+	}
+};
+
+42 þas 
+	cAsyncAb¡¿ùRe¥Ú£
+: 
+public
+ 
+AsyncWebS”v”Re¥Ú£
+ {
+
+43 
+´iv©e
+:
+
+44 
+SŒšg
+ 
+_h—d
+;
+
+49 
+	m¡d
+::
+veùÜ
+<
+ušt8_t
+> 
+_ÿche
+;
+
+50 
+size_t
+ 
+_»adD©aFromCacheOrCÚ‹Á
+(
+ušt8_t
+* 
+d©a
+, cÚ¡ size_ˆ
+Ën
+);
+
+51 
+size_t
+ 
+_fžlBufãrAndProûssTem¶©es
+(
+ušt8_t
+* 
+buf
+, size_ˆ
+maxL’
+);
+
+52 
+	m´Ùeùed
+:
+
+53 
+AwsTem¶©eProûssÜ
+ 
+_ÿÎback
+;
+
+54 
+	mpublic
+:
+
+55 
+AsyncAb¡¿ùRe¥Ú£
+(
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+56 
+_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+);
+
+57 
+size_t
+ 
+_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, size_ˆ
+Ën
+, 
+ušt32_t
+ 
+time
+);
+
+58 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  
+çl£
+; }
+
+59 
+vœtu®
+ 
+size_t
+ 
+	`_fžlBufãr
+(
+ušt8_t
+ *
+buf
+ 
+	`__©Œibu‹__
+((
+unu£d
+)), size_ˆ
+maxL’
+ __©Œibu‹__((unu£d))è{  0; 
+	}
+}
+
+62 #iâdeà
+TEMPLATE_PLACEHOLDER
+
+
+63 
+	#TEMPLATE_PLACEHOLDER
+ '%'
+
+	)
+
+66 
+	#TEMPLATE_PARAM_NAME_LENGTH
+ 32
+
+	)
+
+67 þas 
+	cAsyncFžeRe¥Ú£
+: 
+public
+ 
+AsyncAb¡¿ùRe¥Ú£
+ {
+
+68 
+usšg
+ 
+Fže
+ = 
+fs
+::File;
+
+69 
+usšg
+ 
+	mFS
+ = 
+fs
+::
+FS
+;
+
+70 
+	m´iv©e
+:
+
+71 
+Fže
+ 
+_cÚ‹Á
+;
+
+72 
+SŒšg
+ 
+	m_·th
+;
+
+73 
+_£tCÚ‹ÁTy³
+(cÚ¡ 
+SŒšg
+& 
+·th
+);
+
+74 
+	mpublic
+:
+
+75 
+AsyncFžeRe¥Ú£
+(
+FS
+ &
+fs
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+=SŒšg(), 
+boÞ
+ 
+dowÆßd
+=
+çl£
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+76 
+AsyncFžeRe¥Ú£
+(
+Fže
+ 
+cÚ‹Á
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+=SŒšg(), 
+boÞ
+ 
+dowÆßd
+=
+çl£
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+77 ~
+AsyncFžeRe¥Ú£
+();
+
+78 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  !!(
+_cÚ‹Á
+); }
+
+79 
+vœtu®
+ 
+size_t
+ 
+	$_fžlBufãr
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+maxL’
+è
+ov”ride
+;
+
+80 
+	}
+};
+
+82 þas 
+	cAsyncSŒ—mRe¥Ú£
+: 
+public
+ 
+AsyncAb¡¿ùRe¥Ú£
+ {
+
+83 
+´iv©e
+:
+
+84 
+SŒ—m
+ *
+_cÚ‹Á
+;
+
+85 
+	mpublic
+:
+
+86 
+AsyncSŒ—mRe¥Ú£
+(
+SŒ—m
+ &
+¡»am
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+87 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  !!(
+_cÚ‹Á
+); }
+
+88 
+vœtu®
+ 
+size_t
+ 
+	$_fžlBufãr
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+maxL’
+è
+ov”ride
+;
+
+89 
+	}
+};
+
+91 þas 
+	cAsyncC®lbackRe¥Ú£
+: 
+public
+ 
+AsyncAb¡¿ùRe¥Ú£
+ {
+
+92 
+´iv©e
+:
+
+93 
+AwsRe¥Ú£FžËr
+ 
+_cÚ‹Á
+;
+
+94 
+size_t
+ 
+	m_fžËdL’gth
+;
+
+95 
+	mpublic
+:
+
+96 
+AsyncC®lbackRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+=
+nuÎ±r
+);
+
+97 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  !!(
+_cÚ‹Á
+); }
+
+98 
+vœtu®
+ 
+size_t
+ 
+	$_fžlBufãr
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+maxL’
+è
+ov”ride
+;
+
+99 
+	}
+};
+
+101 þas 
+	cAsyncChunkedRe¥Ú£
+: 
+public
+ 
+AsyncAb¡¿ùRe¥Ú£
+ {
+
+102 
+´iv©e
+:
+
+103 
+AwsRe¥Ú£FžËr
+ 
+_cÚ‹Á
+;
+
+104 
+size_t
+ 
+	m_fžËdL’gth
+;
+
+105 
+	mpublic
+:
+
+106 
+AsyncChunkedRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+=
+nuÎ±r
+);
+
+107 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  !!(
+_cÚ‹Á
+); }
+
+108 
+vœtu®
+ 
+size_t
+ 
+	$_fžlBufãr
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+maxL’
+è
+ov”ride
+;
+
+109 
+	}
+};
+
+111 þas 
+	cAsyncProgmemRe¥Ú£
+: 
+public
+ 
+AsyncAb¡¿ùRe¥Ú£
+ {
+
+112 
+´iv©e
+:
+
+113 cÚ¡ 
+ušt8_t
+ * 
+_cÚ‹Á
+;
+
+114 
+size_t
+ 
+	m_»adL’gth
+;
+
+115 
+	mpublic
+:
+
+116 
+AsyncProgmemRe¥Ú£
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ 
+ušt8_t
+ * 
+cÚ‹Á
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+=
+nuÎ±r
+);
+
+117 
+boÞ
+ 
+	$_sourûV®id
+(ècÚ¡ {  
+Œue
+; }
+
+118 
+vœtu®
+ 
+size_t
+ 
+	$_fžlBufãr
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+maxL’
+è
+ov”ride
+;
+
+119 
+	}
+};
+
+121 
+þass
+ 
+	gcbuf
+;
+
+123 
+þass
+ 
+	gAsyncRe¥Ú£SŒ—m
+: 
+public
+ 
+AsyncAb¡¿ùRe¥Ú£
+,…ubliø
+	gPršt
+ {
+
+124 
+	g´iv©e
+:
+
+125 
+cbuf
+ *
+_cÚ‹Á
+;
+
+126 
+	gpublic
+:
+
+127 
+AsyncRe¥Ú£SŒ—m
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+bufãrSize
+);
+
+128 ~
+AsyncRe¥Ú£SŒ—m
+();
+
+129 
+boÞ
+ 
+_sourûV®id
+(ècÚ¡ {  (
+	g_¡©e
+ < 
+	gRESPONSE_END
+); }
+
+130 
+vœtu®
+ 
+size_t
+ 
+_fžlBufãr
+(
+ušt8_t
+ *
+buf
+, size_ˆ
+maxL’
+è
+	gov”ride
+;
+
+131 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, size_ˆ
+Ën
+);
+
+132 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+);
+
+133 
+usšg
+ 
+	gPršt
+::
+wr™e
+;
+
+	@lib/ESPAsyncWebServer/WebResponses.cpp
+
+21 
+	~"ESPAsyncWebS”v”.h
+"
+
+22 
+	~"WebRe¥Ú£Im¶.h
+"
+
+23 
+	~"cbuf.h
+"
+
+26 * 
+	$memchr
+(* 
+±r
+, 
+ch
+, 
+size_t
+ 
+couÁ
+)
+
+28 * 
+p
+ = 
+¡©ic_ÿ¡
+<*>(
+±r
+);
+
+29 
+couÁ
+--)
+
+30 if(*
+p
+++ =ð
+¡©ic_ÿ¡
+<>(
+ch
+))
+
+31  --
+p
+;
+
+32  
+nuÎ±r
+;
+
+33 
+	}
+}
+
+39 cÚ¡ * 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_»¥Ú£CodeToSŒšg
+(
+code
+) {
+
+40  
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+	`»¥Ú£CodeToSŒšg
+(
+code
+));
+
+41 
+	}
+}
+
+43 cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+	gAsyncWebS”v”Re¥Ú£
+::
+	$»¥Ú£CodeToSŒšg
+(
+code
+) {
+
+44 
+code
+) {
+
+45 100:  
+	`F
+("Continue");
+
+46 101:  
+	`F
+("Switching Protocols");
+
+47 200:  
+	`F
+("OK");
+
+48 201:  
+	`F
+("Created");
+
+49 202:  
+	`F
+("Accepted");
+
+50 203:  
+	`F
+("Non-Authoritative Information");
+
+51 204:  
+	`F
+("No Content");
+
+52 205:  
+	`F
+("Reset Content");
+
+53 206:  
+	`F
+("Partial Content");
+
+54 300:  
+	`F
+("Multiple Choices");
+
+55 301:  
+	`F
+("Moved Permanently");
+
+56 302:  
+	`F
+("Found");
+
+57 303:  
+	`F
+("See Other");
+
+58 304:  
+	`F
+("Not Modified");
+
+59 305:  
+	`F
+("Use Proxy");
+
+60 307:  
+	`F
+("Temporary Redirect");
+
+61 400:  
+	`F
+("Bad Request");
+
+62 401:  
+	`F
+("Unauthorized");
+
+63 402:  
+	`F
+("Payment Required");
+
+64 403:  
+	`F
+("Forbidden");
+
+65 404:  
+	`F
+("Not Found");
+
+66 405:  
+	`F
+("Method Not Allowed");
+
+67 406:  
+	`F
+("Not Acceptable");
+
+68 407:  
+	`F
+("Proxy Authentication Required");
+
+69 408:  
+	`F
+("Request Time-out");
+
+70 409:  
+	`F
+("Conflict");
+
+71 410:  
+	`F
+("Gone");
+
+72 411:  
+	`F
+("Length Required");
+
+73 412:  
+	`F
+("Precondition Failed");
+
+74 413:  
+	`F
+("Request Entity Too Large");
+
+75 414:  
+	`F
+("Request-URI Too Large");
+
+76 415:  
+	`F
+("Unsupported Media Type");
+
+77 416:  
+	`F
+("Requested„ange‚ot satisfiable");
+
+78 417:  
+	`F
+("Expectation Failed");
+
+79 500:  
+	`F
+("Internal Server Error");
+
+80 501:  
+	`F
+("Not Implemented");
+
+81 502:  
+	`F
+("Bad Gateway");
+
+82 503:  
+	`F
+("Service Unavailable");
+
+83 504:  
+	`F
+("Gateway Time-out");
+
+84 505:  
+	`F
+("HTTP Version‚ot supported");
+
+85 :  
+	`F
+("");
+
+87 
+	}
+}
+
+89 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$AsyncWebS”v”Re¥Ú£
+()
+
+90 : 
+	`_code
+(0)
+
+91 , 
+	`_h—d”s
+(
+LškedLi¡
+<
+AsyncWebH—d”
+ *>([](AsyncWebH—d” *
+h
+){ 
+d–‘e
+ h; 
+	}
+}))
+
+92 , 
+_cÚ‹ÁTy³
+()
+
+93 , 
+_cÚ‹ÁL’gth
+(0)
+
+94 , 
+_£ndCÚ‹ÁL’gth
+(
+Œue
+)
+
+95 , 
+_chunked
+(
+çl£
+)
+
+96 , 
+_h—dL’gth
+(0)
+
+97 , 
+_£ÁL’gth
+(0)
+
+98 , 
+_ackedL’gth
+(0)
+
+99 , 
+_wr™‹nL’gth
+(0)
+
+100 , 
+	$_¡©e
+(
+RESPONSE_SETUP
+)
+
+102 autØ
+h—d”
+: 
+DeçuÉH—d”s
+::
+	`In¡ªû
+()) {
+
+103 
+_h—d”s
+.
+	`add
+(
+Ãw
+ 
+	`AsyncWebH—d”
+(
+h—d”
+->
+	`Çme
+(), h—d”->
+	`v®ue
+()));
+
+105 
+	}
+}
+
+107 
+	gAsyncWebS”v”Re¥Ú£
+::~
+	$AsyncWebS”v”Re¥Ú£
+(){
+
+108 
+_h—d”s
+.
+	`ä“
+();
+
+109 
+	}
+}
+
+111 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$£tCode
+(
+code
+){
+
+112 if(
+_¡©e
+ =ð
+RESPONSE_SETUP
+)
+
+113 
+_code
+ = 
+code
+;
+
+114 
+	}
+}
+
+116 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$£tCÚ‹ÁL’gth
+(
+size_t
+ 
+Ën
+){
+
+117 if(
+_¡©e
+ =ð
+RESPONSE_SETUP
+)
+
+118 
+_cÚ‹ÁL’gth
+ = 
+Ën
+;
+
+119 
+	}
+}
+
+121 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$£tCÚ‹ÁTy³
+(cÚ¡ 
+SŒšg
+& 
+ty³
+){
+
+122 if(
+_¡©e
+ =ð
+RESPONSE_SETUP
+)
+
+123 
+_cÚ‹ÁTy³
+ = 
+ty³
+;
+
+124 
+	}
+}
+
+126 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$addH—d”
+(cÚ¡ 
+SŒšg
+& 
+Çme
+, cÚ¡ SŒšg& 
+v®ue
+){
+
+127 
+_h—d”s
+.
+	`add
+(
+Ãw
+ 
+	`AsyncWebH—d”
+(
+Çme
+, 
+v®ue
+));
+
+128 
+	}
+}
+
+130 
+SŒšg
+ 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_as£mbËH—d
+(
+ušt8_t
+ 
+v”siÚ
+){
+
+131 if(
+v”siÚ
+){
+
+132 
+	`addH—d”
+(
+	`F
+("Accept-Ranges"), F("none"));
+
+133 if(
+_chunked
+)
+
+134 
+	`addH—d”
+(
+	`F
+("Transfer-Encoding"), F("chunked"));
+
+136 
+SŒšg
+ 
+out
+ = 
+	`SŒšg
+();
+
+137 
+bufSize
+ = 300;
+
+138 
+buf
+[
+bufSize
+];
+
+140 
+	`¢´štf_P
+(
+buf
+, 
+bufSize
+, 
+	`PSTR
+("HTTP/1.%d %d %s\r\n"), 
+v”siÚ
+, 
+_code
+, 
+	`_»¥Ú£CodeToSŒšg
+(_code));
+
+141 
+out
+.
+	`cÚÿt
+(
+buf
+);
+
+143 if(
+_£ndCÚ‹ÁL’gth
+) {
+
+144 
+	`¢´štf_P
+(
+buf
+, 
+bufSize
+, 
+	`PSTR
+("CÚ‹Á-L’gth: %d\r\n"), 
+_cÚ‹ÁL’gth
+);
+
+145 
+out
+.
+	`cÚÿt
+(
+buf
+);
+
+147 if(
+_cÚ‹ÁTy³
+.
+	`Ëngth
+()) {
+
+148 
+	`¢´štf_P
+(
+buf
+, 
+bufSize
+, 
+	`PSTR
+("CÚ‹Á-Ty³: %s\r\n"), 
+_cÚ‹ÁTy³
+.
+	`c_¡r
+());
+
+149 
+out
+.
+	`cÚÿt
+(
+buf
+);
+
+152 cÚ¡‡uto& 
+h—d”
+: 
+_h—d”s
+){
+
+153 
+	`¢´štf_P
+(
+buf
+, 
+bufSize
+, 
+	`PSTR
+("%s: %s\r\n"), 
+h—d”
+->
+	`Çme
+().
+	`c_¡r
+(), h—d”->
+	`v®ue
+().c_str());
+
+154 
+out
+.
+	`cÚÿt
+(
+buf
+);
+
+156 
+_h—d”s
+.
+	`ä“
+();
+
+158 
+out
+.
+	`cÚÿt
+(
+	`F
+("\r\n"));
+
+159 
+_h—dL’gth
+ = 
+out
+.
+	`Ëngth
+();
+
+160  
+out
+;
+
+161 
+	}
+}
+
+163 
+boÞ
+ 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_¡¬‹d
+(ècÚ¡ {  
+_¡©e
+ > 
+RESPONSE_SETUP
+; 
+	}
+}
+
+164 
+boÞ
+ 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_fšished
+(ècÚ¡ {  
+_¡©e
+ > 
+RESPONSE_WAIT_ACK
+; 
+	}
+}
+
+165 
+boÞ
+ 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_çžed
+(ècÚ¡ {  
+_¡©e
+ =ð
+RESPONSE_FAILED
+; 
+	}
+}
+
+166 
+boÞ
+ 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_sourûV®id
+(ècÚ¡ {  
+çl£
+; 
+	}
+}
+
+167 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){ 
+_¡©e
+ = 
+RESPONSE_END
+;„eque¡->
+	`þ›Á
+()->
+	`þo£
+(); 
+	}
+}
+
+168 
+size_t
+ 
+	gAsyncWebS”v”Re¥Ú£
+::
+	$_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){ (ìeque¡; (î’; (éime;  0; 
+	}
+}
+
+173 
+	gAsyncBasicRe¥Ú£
+::
+	$AsyncBasicRe¥Ú£
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ SŒšg& 
+cÚ‹Á
+){
+
+174 
+_code
+ = 
+code
+;
+
+175 
+_cÚ‹Á
+ = 
+cÚ‹Á
+;
+
+176 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+177 if(
+_cÚ‹Á
+.
+	`Ëngth
+()){
+
+178 
+_cÚ‹ÁL’gth
+ = 
+_cÚ‹Á
+.
+	`Ëngth
+();
+
+179 if(!
+_cÚ‹ÁTy³
+.
+	`Ëngth
+())
+
+180 
+_cÚ‹ÁTy³
+ = 
+	`F
+("text/plain");
+
+182 
+	`addH—d”
+(
+	`F
+("Connection"), F("close"));
+
+183 
+	}
+}
+
+185 
+	gAsyncBasicRe¥Ú£
+::
+	$_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+186 
+_¡©e
+ = 
+RESPONSE_HEADERS
+;
+
+187 
+SŒšg
+ 
+out
+ = 
+	`_as£mbËH—d
+(
+»que¡
+->
+	`v”siÚ
+());
+
+188 
+size_t
+ 
+outL’
+ = 
+out
+.
+	`Ëngth
+();
+
+189 
+size_t
+ 
+¥aû
+ = 
+»que¡
+->
+	`þ›Á
+()->
+	`¥aû
+();
+
+190 if(!
+_cÚ‹ÁL’gth
+ && 
+¥aû
+ >ð
+outL’
+){
+
+191 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+out
+.
+	`c_¡r
+(), 
+outL’
+);
+
+192 
+_¡©e
+ = 
+RESPONSE_WAIT_ACK
+;
+
+193 } if(
+_cÚ‹ÁL’gth
+ && 
+¥aû
+ >ð
+outL’
+ + _contentLength){
+
+194 
+out
+ +ð
+_cÚ‹Á
+;
+
+195 
+outL’
+ +ð
+_cÚ‹ÁL’gth
+;
+
+196 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+out
+.
+	`c_¡r
+(), 
+outL’
+);
+
+197 
+_¡©e
+ = 
+RESPONSE_WAIT_ACK
+;
+
+198 } if(
+¥aû
+ && s·û < 
+outL’
+){
+
+199 
+SŒšg
+ 
+·¹Ÿl
+ = 
+out
+.
+	`sub¡ršg
+(0, 
+¥aû
+);
+
+200 
+_cÚ‹Á
+ = 
+out
+.
+	`sub¡ršg
+(
+¥aû
+) + _content;
+
+201 
+_cÚ‹ÁL’gth
+ +ð
+outL’
+ - 
+¥aû
+;
+
+202 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+·¹Ÿl
+.
+	`c_¡r
+(),…¬tŸl.
+	`Ëngth
+());
+
+203 
+_¡©e
+ = 
+RESPONSE_CONTENT
+;
+
+204 } if(
+¥aû
+ > 
+outL’
+ && s·û < (outL’ + 
+_cÚ‹ÁL’gth
+)){
+
+205 
+size_t
+ 
+shiá
+ = 
+¥aû
+ - 
+outL’
+;
+
+206 
+outL’
+ +ð
+shiá
+;
+
+207 
+_£ÁL’gth
+ +ð
+shiá
+;
+
+208 
+out
+ +ð
+_cÚ‹Á
+.
+	`sub¡ršg
+(0, 
+shiá
+);
+
+209 
+_cÚ‹Á
+ = _cÚ‹Á.
+	`sub¡ršg
+(
+shiá
+);
+
+210 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+out
+.
+	`c_¡r
+(), 
+outL’
+);
+
+211 
+_¡©e
+ = 
+RESPONSE_CONTENT
+;
+
+213 
+_cÚ‹Á
+ = 
+out
+ + _content;
+
+214 
+_cÚ‹ÁL’gth
+ +ð
+outL’
+;
+
+215 
+_¡©e
+ = 
+RESPONSE_CONTENT
+;
+
+217 
+	}
+}
+
+219 
+size_t
+ 
+	gAsyncBasicRe¥Ú£
+::
+	$_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){
+
+220 ()
+time
+;
+
+221 
+_ackedL’gth
+ +ð
+Ën
+;
+
+222 if(
+_¡©e
+ =ð
+RESPONSE_CONTENT
+){
+
+223 
+size_t
+ 
+avažabË
+ = 
+_cÚ‹ÁL’gth
+ - 
+_£ÁL’gth
+;
+
+224 
+size_t
+ 
+¥aû
+ = 
+»que¡
+->
+	`þ›Á
+()->
+	`¥aû
+();
+
+226 if(
+¥aû
+ > 
+avažabË
+){
+
+227 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+_cÚ‹Á
+.
+	`c_¡r
+(), 
+avažabË
+);
+
+228 
+_cÚ‹Á
+ = 
+	`SŒšg
+();
+
+229 
+_¡©e
+ = 
+RESPONSE_WAIT_ACK
+;
+
+230  
+avažabË
+;
+
+233 
+SŒšg
+ 
+out
+ = 
+_cÚ‹Á
+.
+	`sub¡ršg
+(0, 
+¥aû
+);
+
+234 
+_cÚ‹Á
+ = _cÚ‹Á.
+	`sub¡ršg
+(
+¥aû
+);
+
+235 
+_£ÁL’gth
+ +ð
+¥aû
+;
+
+236 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+out
+.
+	`c_¡r
+(), 
+¥aû
+);
+
+237  
+¥aû
+;
+
+238 } if(
+_¡©e
+ =ð
+RESPONSE_WAIT_ACK
+){
+
+239 if(
+_ackedL’gth
+ >ð
+_wr™‹nL’gth
+){
+
+240 
+_¡©e
+ = 
+RESPONSE_END
+;
+
+244 
+	}
+}
+
+251 
+	gAsyncAb¡¿ùRe¥Ú£
+::
+	$AsyncAb¡¿ùRe¥Ú£
+(
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+): 
+	$_ÿÎback
+(
+ÿÎback
+)
+
+254 if(
+ÿÎback
+) {
+
+255 
+_cÚ‹ÁL’gth
+ = 0;
+
+256 
+_£ndCÚ‹ÁL’gth
+ = 
+çl£
+;
+
+257 
+_chunked
+ = 
+Œue
+;
+
+259 
+	}
+}
+
+261 
+	gAsyncAb¡¿ùRe¥Ú£
+::
+	$_»¥Úd
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+262 
+	`addH—d”
+(
+	`F
+("Connection"), F("close"));
+
+263 
+_h—d
+ = 
+	`_as£mbËH—d
+(
+»que¡
+->
+	`v”siÚ
+());
+
+264 
+_¡©e
+ = 
+RESPONSE_HEADERS
+;
+
+265 
+	`_ack
+(
+»que¡
+, 0, 0);
+
+266 
+	}
+}
+
+268 
+size_t
+ 
+	gAsyncAb¡¿ùRe¥Ú£
+::
+	$_ack
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+, 
+size_t
+ 
+Ën
+, 
+ušt32_t
+ 
+time
+){
+
+269 ()
+time
+;
+
+270 if(!
+	`_sourûV®id
+()){
+
+271 
+_¡©e
+ = 
+RESPONSE_FAILED
+;
+
+272 
+»que¡
+->
+	`þ›Á
+()->
+	`þo£
+();
+
+275 
+_ackedL’gth
+ +ð
+Ën
+;
+
+276 
+size_t
+ 
+¥aû
+ = 
+»que¡
+->
+	`þ›Á
+()->
+	`¥aû
+();
+
+278 
+size_t
+ 
+h—dL’
+ = 
+_h—d
+.
+	`Ëngth
+();
+
+279 if(
+_¡©e
+ =ð
+RESPONSE_HEADERS
+){
+
+280 if(
+¥aû
+ >ð
+h—dL’
+){
+
+281 
+_¡©e
+ = 
+RESPONSE_CONTENT
+;
+
+282 
+¥aû
+ -ð
+h—dL’
+;
+
+284 
+SŒšg
+ 
+out
+ = 
+_h—d
+.
+	`sub¡ršg
+(0, 
+¥aû
+);
+
+285 
+_h—d
+ = _h—d.
+	`sub¡ršg
+(
+¥aû
+);
+
+286 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+(
+out
+.
+	`c_¡r
+(), out.
+	`Ëngth
+());
+
+287  
+out
+.
+	`Ëngth
+();
+
+291 if(
+_¡©e
+ =ð
+RESPONSE_CONTENT
+){
+
+292 
+size_t
+ 
+outL’
+;
+
+293 if(
+_chunked
+){
+
+294 if(
+¥aû
+ <= 8){
+
+297 
+outL’
+ = 
+¥aû
+;
+
+298 } if(!
+_£ndCÚ‹ÁL’gth
+){
+
+299 
+outL’
+ = 
+¥aû
+;
+
+301 
+outL’
+ = ((
+_cÚ‹ÁL’gth
+ - 
+_£ÁL’gth
+è> 
+¥aû
+)?space:(_contentLength - _sentLength);
+
+304 
+ušt8_t
+ *
+buf
+ = (ušt8_ˆ*)
+	`m®loc
+(
+outL’
++
+h—dL’
+);
+
+305 ià(!
+buf
+) {
+
+310 if(
+h—dL’
+){
+
+311 
+	`memýy
+(
+buf
+, 
+_h—d
+.
+	`c_¡r
+(), _h—d.
+	`Ëngth
+());
+
+314 
+size_t
+ 
+»adL’
+ = 0;
+
+316 if(
+_chunked
+){
+
+319 
+»adL’
+ = 
+	`_fžlBufãrAndProûssTem¶©es
+(
+buf
++
+h—dL’
++6, 
+outL’
+ - 8);
+
+320 if(
+»adL’
+ =ð
+RESPONSE_TRY_AGAIN
+){
+
+321 
+	`ä“
+(
+buf
+);
+
+324 
+outL’
+ = 
+	`¥rštf_P
+((*)
+buf
++
+h—dL’
+, 
+	`PSTR
+("%x"), 
+»adL’
+) + headLen;
+
+325 
+outL’
+ < 
+h—dL’
+ + 4è
+buf
+[outLen++] = ' ';
+
+326 
+buf
+[
+outL’
+++] = '\r';
+
+327 
+buf
+[
+outL’
+++] = '\n';
+
+328 
+outL’
+ +ð
+»adL’
+;
+
+329 
+buf
+[
+outL’
+++] = '\r';
+
+330 
+buf
+[
+outL’
+++] = '\n';
+
+332 
+»adL’
+ = 
+	`_fžlBufãrAndProûssTem¶©es
+(
+buf
++
+h—dL’
+, 
+outL’
+);
+
+333 if(
+»adL’
+ =ð
+RESPONSE_TRY_AGAIN
+){
+
+334 
+	`ä“
+(
+buf
+);
+
+337 
+outL’
+ = 
+»adL’
+ + 
+h—dL’
+;
+
+340 if(
+h—dL’
+){
+
+341 
+_h—d
+ = 
+	`SŒšg
+();
+
+344 if(
+outL’
+){
+
+345 
+_wr™‹nL’gth
+ +ð
+»que¡
+->
+	`þ›Á
+()->
+	`wr™e
+((cÚ¡ *)
+buf
+, 
+outL’
+);
+
+348 if(
+_chunked
+){
+
+349 
+_£ÁL’gth
+ +ð
+»adL’
+;
+
+351 
+_£ÁL’gth
+ +ð
+outL’
+ - 
+h—dL’
+;
+
+354 
+	`ä“
+(
+buf
+);
+
+356 if((
+_chunked
+ && 
+»adL’
+ =ð0è|| (!
+_£ndCÚ‹ÁL’gth
+ && 
+outL’
+ =ð0è|| (!_chunked && 
+_£ÁL’gth
+ =ð
+_cÚ‹ÁL’gth
+)){
+
+357 
+_¡©e
+ = 
+RESPONSE_WAIT_ACK
+;
+
+359  
+outL’
+;
+
+361 } if(
+_¡©e
+ =ð
+RESPONSE_WAIT_ACK
+){
+
+362 if(!
+_£ndCÚ‹ÁL’gth
+ || 
+_ackedL’gth
+ >ð
+_wr™‹nL’gth
+){
+
+363 
+_¡©e
+ = 
+RESPONSE_END
+;
+
+364 if(!
+_chunked
+ && !
+_£ndCÚ‹ÁL’gth
+)
+
+365 
+»que¡
+->
+	`þ›Á
+()->
+	`þo£
+(
+Œue
+);
+
+369 
+	}
+}
+
+371 
+size_t
+ 
+	gAsyncAb¡¿ùRe¥Ú£
+::
+	$_»adD©aFromCacheOrCÚ‹Á
+(
+ušt8_t
+* 
+d©a
+, cÚ¡ 
+size_t
+ 
+Ën
+)
+
+374 cÚ¡ 
+size_t
+ 
+»adFromCache
+ = 
+¡d
+::
+	`mš
+(
+Ën
+, 
+_ÿche
+.
+	`size
+());
+
+375 if(
+»adFromCache
+) {
+
+376 
+	`memýy
+(
+d©a
+, 
+_ÿche
+.
+	`d©a
+(), 
+»adFromCache
+);
+
+377 
+_ÿche
+.
+	`”a£
+(_ÿche.
+	`begš
+(), _ÿche.begš(è+ 
+»adFromCache
+);
+
+380 cÚ¡ 
+size_t
+ 
+ÃedFromFže
+ = 
+Ën
+ - 
+»adFromCache
+;
+
+381 cÚ¡ 
+size_t
+ 
+»adFromCÚ‹Á
+ = 
+	`_fžlBufãr
+(
+d©a
+ + 
+»adFromCache
+, 
+ÃedFromFže
+);
+
+382  
+»adFromCache
+ + 
+»adFromCÚ‹Á
+;
+
+383 
+	}
+}
+
+385 
+size_t
+ 
+	gAsyncAb¡¿ùRe¥Ú£
+::
+	$_fžlBufãrAndProûssTem¶©es
+(
+ušt8_t
+* 
+d©a
+, 
+size_t
+ 
+Ën
+)
+
+387 if(!
+_ÿÎback
+)
+
+388  
+	`_fžlBufãr
+(
+d©a
+, 
+Ën
+);
+
+390 cÚ¡ 
+size_t
+ 
+Üigš®L’
+ = 
+Ën
+;
+
+391 
+Ën
+ = 
+	`_»adD©aFromCacheOrCÚ‹Á
+(
+d©a
+,†en);
+
+394 
+ušt8_t
+* 
+pTem¶©eS�¹
+ = 
+d©a
+;
+
+395 (
+pTem¶©eS�¹
+ < &
+d©a
+[
+Ën
+]è&& (pTem¶©eS�¹ = (
+ušt8_t
+*)
+	`memchr
+ÕTem¶©eS�¹, 
+TEMPLATE_PLACEHOLDER
+, &data[len - 1] -…TemplateStart + 1))) {
+
+396 
+ušt8_t
+* 
+pTem¶©eEnd
+ = (
+pTem¶©eS�¹
+ < &
+d©a
+[
+Ën
+ - 1]è? (ušt8_t*)
+	`memchr
+ÕTem¶©eS�¹ + 1, 
+TEMPLATE_PLACEHOLDER
+, &d©a[ËÀ- 1] -…Tem¶©eS�¹è: 
+nuÎ±r
+;
+
+398 
+ušt8_t
+ 
+buf
+[
+TEMPLATE_PARAM_NAME_LENGTH
+ + 1];
+
+399 
+SŒšg
+ 
+·¿mName
+;
+
+401 if(
+pTem¶©eEnd
+) {
+
+403 cÚ¡ 
+size_t
+ 
+·¿mNameL’gth
+ = 
+¡d
+::
+	`mš
+((size_t)(
+buf
+è- 1, (size_t)(
+pTem¶©eEnd
+ - 
+pTem¶©eS�¹
+ - 1));
+
+404 if(
+·¿mNameL’gth
+) {
+
+405 
+	`memýy
+(
+buf
+, 
+pTem¶©eS�¹
+ + 1, 
+·¿mNameL’gth
+);
+
+406 
+buf
+[
+·¿mNameL’gth
+] = 0;
+
+407 
+·¿mName
+ = 
+	`SŒšg
+(
+»š‹½»t_ÿ¡
+<*>(
+buf
+));
+
+410 
+	`memmove
+(
+pTem¶©eEnd
+,…Tem¶©eEnd + 1, &
+d©a
+[
+Ën
+] -…TemplateEnd - 1);
+
+411 
+Ën
+ +ð
+	`_»adD©aFromCacheOrCÚ‹Á
+(&
+d©a
+[len - 1], 1) - 1;
+
+412 ++
+pTem¶©eS�¹
+;
+
+414 } if(&
+d©a
+[
+Ën
+ - 1] - 
+pTem¶©eS�¹
+ + 1 < 
+TEMPLATE_PARAM_NAME_LENGTH
+ + 2) {
+
+415 
+	`memýy
+(
+buf
+, 
+pTem¶©eS�¹
+ + 1, &
+d©a
+[
+Ën
+ - 1] -…TemplateStart);
+
+416 cÚ¡ 
+size_t
+ 
+»adFromCacheOrCÚ‹Á
+ = 
+	`_»adD©aFromCacheOrCÚ‹Á
+(
+buf
+ + (&
+d©a
+[
+Ën
+ - 1] - 
+pTem¶©eS�¹
+), 
+TEMPLATE_PARAM_NAME_LENGTH
+ + 2 - (&data[len - 1] -…TemplateStart + 1));
+
+417 if(
+»adFromCacheOrCÚ‹Á
+) {
+
+418 
+pTem¶©eEnd
+ = (
+ušt8_t
+*)
+	`memchr
+(
+buf
+ + (&
+d©a
+[
+Ën
+ - 1] - 
+pTem¶©eS�¹
+), 
+TEMPLATE_PLACEHOLDER
+, 
+»adFromCacheOrCÚ‹Á
+);
+
+419 if(
+pTem¶©eEnd
+) {
+
+421 *
+pTem¶©eEnd
+ = 0;
+
+422 
+·¿mName
+ = 
+	`SŒšg
+(
+»š‹½»t_ÿ¡
+<*>(
+buf
+));
+
+424 
+_ÿche
+.
+	`š£¹
+(_ÿche.
+	`begš
+(), 
+pTem¶©eEnd
+ + 1, 
+buf
+ + (&
+d©a
+[
+Ën
+ - 1] - 
+pTem¶©eS�¹
+è+ 
+»adFromCacheOrCÚ‹Á
+);
+
+425 
+pTem¶©eEnd
+ = &
+d©a
+[
+Ën
+ - 1];
+
+430 
+_ÿche
+.
+	`š£¹
+(_ÿche.
+	`begš
+(), 
+buf
+ + (&
+d©a
+[
+Ën
+ - 1] - 
+pTem¶©eS�¹
+), buà+ (&d©a[ËÀ- 1] -…Tem¶©eS�¹è+ 
+»adFromCacheOrCÚ‹Á
+);
+
+431 ++
+pTem¶©eS�¹
+;
+
+435 ++
+pTem¶©eS�¹
+;
+
+438 ++
+pTem¶©eS�¹
+;
+
+439 if(
+·¿mName
+.
+	`Ëngth
+()) {
+
+445 cÚ¡ 
+SŒšg
+ 
+	`·¿mV®ue
+(
+	`_ÿÎback
+(
+·¿mName
+));
+
+446 cÚ¡ * 
+pv¡r
+ = 
+·¿mV®ue
+.
+	`c_¡r
+();
+
+447 cÚ¡ 
+pvËn
+ = 
+·¿mV®ue
+.
+	`Ëngth
+();
+
+448 cÚ¡ 
+size_t
+ 
+numBy‹sCÝ›d
+ = 
+¡d
+::
+	`mš
+(
+pvËn
+, 
+¡©ic_ÿ¡
+<>(&
+d©a
+[
+Üigš®L’
+ - 1] - 
+pTem¶©eS�¹
+ + 1));
+
+451 if((
+pTem¶©eEnd
+ + 1 < 
+pTem¶©eS�¹
+ + 
+numBy‹sCÝ›d
+è&& (
+Üigš®L’
+ - (pTem¶©eS�¹ +‚umBy‹sCÝ›d -…Tem¶©eEnd - 1è< 
+Ën
+)) {
+
+452 
+_ÿche
+.
+	`š£¹
+(_ÿche.
+	`begš
+(), &
+d©a
+[
+Üigš®L’
+ - (
+pTem¶©eS�¹
+ + 
+numBy‹sCÝ›d
+ - 
+pTem¶©eEnd
+ - 1)], &d©a[
+Ën
+]);
+
+454 
+	`memmove
+(
+pTem¶©eS�¹
+ + 
+numBy‹sCÝ›d
+, 
+pTem¶©eEnd
+ + 1, &
+d©a
+[
+Üigš®L’
+] -…TemplateStart -‚umBytesCopied);
+
+455 
+Ën
+ = 
+Üigš®L’
+;
+
+456 } if(
+pTem¶©eEnd
+ + 1 !ð
+pTem¶©eS�¹
+ + 
+numBy‹sCÝ›d
+)
+
+459 
+	`memmove
+(
+pTem¶©eS�¹
+ + 
+numBy‹sCÝ›d
+, 
+pTem¶©eEnd
+ + 1, &
+d©a
+[
+Ën
+] -…TemplateEnd - 1);
+
+461 
+	`memýy
+(
+pTem¶©eS�¹
+, 
+pv¡r
+, 
+numBy‹sCÝ›d
+);
+
+463 if(
+numBy‹sCÝ›d
+ < 
+pvËn
+) {
+
+464 
+_ÿche
+.
+	`š£¹
+(_ÿche.
+	`begš
+(), 
+pv¡r
+ + 
+numBy‹sCÝ›d
+,…v¡¸+ 
+pvËn
+);
+
+465 } if(
+pTem¶©eS�¹
+ + 
+numBy‹sCÝ›d
+ < 
+pTem¶©eEnd
+ + 1) {
+
+467 cÚ¡ 
+size_t
+ 
+roomF»ed
+ = 
+pTem¶©eEnd
+ + 1 - 
+pTem¶©eS�¹
+ - 
+numBy‹sCÝ›d
+;
+
+468 cÚ¡ 
+size_t
+ 
+tÙ®F»eRoom
+ = 
+Üigš®L’
+ - 
+Ën
+ + 
+roomF»ed
+;
+
+469 
+Ën
+ +ð
+	`_»adD©aFromCacheOrCÚ‹Á
+(&
+d©a
+[ËÀ- 
+roomF»ed
+], 
+tÙ®F»eRoom
+) -„oomFreed;
+
+471 cÚ¡ 
+size_t
+ 
+roomTak’
+ = 
+pTem¶©eS�¹
+ + 
+numBy‹sCÝ›d
+ - 
+pTem¶©eEnd
+ - 1;
+
+472 
+Ën
+ = 
+¡d
+::
+	`mš
+Ö’ + 
+roomTak’
+, 
+Üigš®L’
+);
+
+476  
+Ën
+;
+
+477 
+	}
+}
+
+484 
+	gAsyncFžeRe¥Ú£
+::~
+	$AsyncFžeRe¥Ú£
+(){
+
+485 if(
+_cÚ‹Á
+)
+
+486 
+_cÚ‹Á
+.
+	`þo£
+();
+
+487 
+	}
+}
+
+489 
+	gAsyncFžeRe¥Ú£
+::
+	$_£tCÚ‹ÁTy³
+(cÚ¡ 
+SŒšg
+& 
+·th
+){
+
+490 #ià
+HAVE_EXTERN_GET_CONTENT_TYPE_FUNCTION
+
+
+491 
cÚ¡ 
+__FÏshSŒšgH–³r
+ *
+	`g‘CÚ‹ÁTy³
+(cÚ¡ 
+SŒšg
+ &
+·th
+);
+
+492 
+_cÚ‹ÁTy³
+ = 
+	`g‘CÚ‹ÁTy³
+(
+·th
+);
+
+494 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".html"))è
+_cÚ‹ÁTy³
+ = F("text/html");
+
+495 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".htm"))è
+_cÚ‹ÁTy³
+ = F("text/html");
+
+496 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".css"))è
+_cÚ‹ÁTy³
+ = F("text/css");
+
+497 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".jsÚ"))è
+_cÚ‹ÁTy³
+ = F("application/json");
+
+498 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".js"))è
+_cÚ‹ÁTy³
+ = F("application/javascript");
+
+499 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".²g"))è
+_cÚ‹ÁTy³
+ = F("image/png");
+
+500 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".gif"))è
+_cÚ‹ÁTy³
+ = F("image/gif");
+
+501 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".jpg"))è
+_cÚ‹ÁTy³
+ = F("image/jpeg");
+
+502 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".ico"))è
+_cÚ‹ÁTy³
+ = F("image/x-icon");
+
+503 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".svg"))è
+_cÚ‹ÁTy³
+ = F("image/svg+xml");
+
+504 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".eÙ"))è
+_cÚ‹ÁTy³
+ = F("font/eot");
+
+505 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".woff"))è
+_cÚ‹ÁTy³
+ = F("font/woff");
+
+506 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".woff2"))è
+_cÚ‹ÁTy³
+ = F("font/woff2");
+
+507 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".‰f"))è
+_cÚ‹ÁTy³
+ = F("font/ttf");
+
+508 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".xml"))è
+_cÚ‹ÁTy³
+ = F("text/xml");
+
+509 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".pdf"))è
+_cÚ‹ÁTy³
+ = F("application/pdf");
+
+510 ià(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".z�"))è
+_cÚ‹ÁTy³
+ = F("application/zip");
+
+511 if(
+·th
+.
+	`’dsW™h
+(
+	`F
+(".gz"))è
+_cÚ‹ÁTy³
+ = F("application/x-gzip");
+
+512 
+_cÚ‹ÁTy³
+ = 
+	`F
+("text/plain");
+
+514 
+	}
+}
+
+516 
+	gAsyncFžeRe¥Ú£
+::
+	$AsyncFžeRe¥Ú£
+(
+FS
+ &
+fs
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+, 
+boÞ
+ 
+dowÆßd
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+): 
+	$AsyncAb¡¿ùRe¥Ú£
+(
+ÿÎback
+){
+
+517 
+_code
+ = 200;
+
+518 
+_·th
+ = 
+·th
+;
+
+520 if(!
+dowÆßd
+ && !
+fs
+.
+	`exi¡s
+(
+_·th
+è&& fs.exi¡s(_·th + 
+	`F
+(".gz"))){
+
+521 
+_·th
+ = _·th + 
+	`F
+(".gz");
+
+522 
+	`addH—d”
+(
+	`F
+("Content-Encoding"), F("gzip"));
+
+523 
+_ÿÎback
+ = 
+nuÎ±r
+;
+
+524 
+_£ndCÚ‹ÁL’gth
+ = 
+Œue
+;
+
+525 
+_chunked
+ = 
+çl£
+;
+
+528 
+_cÚ‹Á
+ = 
+fs
+.
+	`Ý’
+(
+_·th
+, fs::
+FžeO³nMode
+::
+»ad
+);
+
+529 
+_cÚ‹ÁL’gth
+ = 
+_cÚ‹Á
+.
+	`size
+();
+
+531 if(
+cÚ‹ÁTy³
+.
+	`Ëngth
+() == 0)
+
+532 
+	`_£tCÚ‹ÁTy³
+(
+·th
+);
+
+534 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+536 
+fž’ameS�¹
+ = 
+·th
+.
+	`Ï¡IndexOf
+('/') + 1;
+
+537 
+buf
+[26+
+·th
+.
+	`Ëngth
+()-
+fž’ameS�¹
+];
+
+538 * 
+fž’ame
+ = (*)
+·th
+.
+	`c_¡r
+(è+ 
+fž’ameS�¹
+;
+
+540 if(
+dowÆßd
+) {
+
+542 
+	`¢´štf_P
+(
+buf
+,  (buf), 
+	`PSTR
+("©�chm’t; fž’ame=\"%s\""), 
+fž’ame
+);
+
+545 
+	`¢´štf_P
+(
+buf
+,  (buf), 
+	`PSTR
+("šlše; fž’ame=\"%s\""), 
+fž’ame
+);
+
+547 
+	`addH—d”
+(
+	`F
+("CÚ‹Á-Di¥os™iÚ"), 
+buf
+);
+
+548 
+	}
+}
+
+550 
+	gAsyncFžeRe¥Ú£
+::
+	$AsyncFžeRe¥Ú£
+(
+Fže
+ 
+cÚ‹Á
+, cÚ¡ 
+SŒšg
+& 
+·th
+, cÚ¡ SŒšg& 
+cÚ‹ÁTy³
+, 
+boÞ
+ 
+dowÆßd
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+): 
+	$AsyncAb¡¿ùRe¥Ú£
+(
+ÿÎback
+){
+
+551 
+_code
+ = 200;
+
+552 
+_·th
+ = 
+·th
+;
+
+554 if(!
+dowÆßd
+ && 
+	`SŒšg
+(
+cÚ‹Á
+.
+	`Çme
+()).
+	`’dsW™h
+(
+	`F
+(".gz")è&& !
+·th
+.endsWith(F(".gz"))){
+
+555 
+	`addH—d”
+(
+	`F
+("Content-Encoding"), F("gzip"));
+
+556 
+_ÿÎback
+ = 
+nuÎ±r
+;
+
+557 
+_£ndCÚ‹ÁL’gth
+ = 
+Œue
+;
+
+558 
+_chunked
+ = 
+çl£
+;
+
+561 
+_cÚ‹Á
+ = 
+cÚ‹Á
+;
+
+562 
+_cÚ‹ÁL’gth
+ = 
+_cÚ‹Á
+.
+	`size
+();
+
+564 if(
+cÚ‹ÁTy³
+.
+	`Ëngth
+() == 0)
+
+565 
+	`_£tCÚ‹ÁTy³
+(
+·th
+);
+
+567 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+569 
+fž’ameS�¹
+ = 
+·th
+.
+	`Ï¡IndexOf
+('/') + 1;
+
+570 
+buf
+[26+
+·th
+.
+	`Ëngth
+()-
+fž’ameS�¹
+];
+
+571 * 
+fž’ame
+ = (*)
+·th
+.
+	`c_¡r
+(è+ 
+fž’ameS�¹
+;
+
+573 if(
+dowÆßd
+) {
+
+574 
+	`¢´štf_P
+(
+buf
+,  (buf), 
+	`PSTR
+("©�chm’t; fž’ame=\"%s\""), 
+fž’ame
+);
+
+576 
+	`¢´štf_P
+(
+buf
+,  (buf), 
+	`PSTR
+("šlše; fž’ame=\"%s\""), 
+fž’ame
+);
+
+578 
+	`addH—d”
+(
+	`F
+("CÚ‹Á-Di¥os™iÚ"), 
+buf
+);
+
+579 
+	}
+}
+
+581 
+size_t
+ 
+	gAsyncFžeRe¥Ú£
+::
+	$_fžlBufãr
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+582  
+_cÚ‹Á
+.
+	`»ad
+(
+d©a
+, 
+Ën
+);
+
+583 
+	}
+}
+
+589 
+	gAsyncSŒ—mRe¥Ú£
+::
+	$AsyncSŒ—mRe¥Ú£
+(
+SŒ—m
+ &
+¡»am
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+): 
+	$AsyncAb¡¿ùRe¥Ú£
+(
+ÿÎback
+) {
+
+590 
+_code
+ = 200;
+
+591 
+_cÚ‹Á
+ = &
+¡»am
+;
+
+592 
+_cÚ‹ÁL’gth
+ = 
+Ën
+;
+
+593 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+594 
+	}
+}
+
+596 
+size_t
+ 
+	gAsyncSŒ—mRe¥Ú£
+::
+	$_fžlBufãr
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+597 
+size_t
+ 
+avažabË
+ = 
+_cÚ‹Á
+->
+	`avažabË
+();
+
+598 
+size_t
+ 
+outL’
+ = (
+avažabË
+ > 
+Ën
+)?len:available;
+
+599 
+size_t
+ 
+i
+;
+
+600 
+i
+=0;i<
+outL’
+;i++)
+
+601 
+d©a
+[
+i
+] = 
+_cÚ‹Á
+->
+	`»ad
+();
+
+602  
+outL’
+;
+
+603 
+	}
+}
+
+609 
+	gAsyncC®lbackRe¥Ú£
+::
+	$AsyncC®lbackRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+Ën
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+‹m¶©eC®lback
+): 
+	$AsyncAb¡¿ùRe¥Ú£
+(
+‹m¶©eC®lback
+) {
+
+610 
+_code
+ = 200;
+
+611 
+_cÚ‹Á
+ = 
+ÿÎback
+;
+
+612 
+_cÚ‹ÁL’gth
+ = 
+Ën
+;
+
+613 if(!
+Ën
+)
+
+614 
+_£ndCÚ‹ÁL’gth
+ = 
+çl£
+;
+
+615 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+616 
+_fžËdL’gth
+ = 0;
+
+617 
+	}
+}
+
+619 
+size_t
+ 
+	gAsyncC®lbackRe¥Ú£
+::
+	$_fžlBufãr
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+620 
+size_t
+ 
+»t
+ = 
+	`_cÚ‹Á
+(
+d©a
+, 
+Ën
+, 
+_fžËdL’gth
+);
+
+621 if(
+»t
+ !ð
+RESPONSE_TRY_AGAIN
+){
+
+622 
+_fžËdL’gth
+ +ð
+»t
+;
+
+624  
+»t
+;
+
+625 
+	}
+}
+
+631 
+	gAsyncChunkedRe¥Ú£
+::
+	$AsyncChunkedRe¥Ú£
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+AwsRe¥Ú£FžËr
+ 
+ÿÎback
+, 
+AwsTem¶©eProûssÜ
+ 
+´oûssÜC®lback
+): 
+	$AsyncAb¡¿ùRe¥Ú£
+(
+´oûssÜC®lback
+) {
+
+632 
+_code
+ = 200;
+
+633 
+_cÚ‹Á
+ = 
+ÿÎback
+;
+
+634 
+_cÚ‹ÁL’gth
+ = 0;
+
+635 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+636 
+_£ndCÚ‹ÁL’gth
+ = 
+çl£
+;
+
+637 
+_chunked
+ = 
+Œue
+;
+
+638 
+_fžËdL’gth
+ = 0;
+
+639 
+	}
+}
+
+641 
+size_t
+ 
+	gAsyncChunkedRe¥Ú£
+::
+	$_fžlBufãr
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+642 
+size_t
+ 
+»t
+ = 
+	`_cÚ‹Á
+(
+d©a
+, 
+Ën
+, 
+_fžËdL’gth
+);
+
+643 if(
+»t
+ !ð
+RESPONSE_TRY_AGAIN
+){
+
+644 
+_fžËdL’gth
+ +ð
+»t
+;
+
+646  
+»t
+;
+
+647 
+	}
+}
+
+653 
+	gAsyncProgmemRe¥Ú£
+::
+	$AsyncProgmemRe¥Ú£
+(
+code
+, cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, cÚ¡ 
+ušt8_t
+ * 
+cÚ‹Á
+, 
+size_t
+ 
+Ën
+, 
+AwsTem¶©eProûssÜ
+ 
+ÿÎback
+): 
+	$AsyncAb¡¿ùRe¥Ú£
+(
+ÿÎback
+) {
+
+654 
+_code
+ = 
+code
+;
+
+655 
+_cÚ‹Á
+ = 
+cÚ‹Á
+;
+
+656 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+657 
+_cÚ‹ÁL’gth
+ = 
+Ën
+;
+
+658 
+_»adL’gth
+ = 0;
+
+659 
+	}
+}
+
+661 
+size_t
+ 
+	gAsyncProgmemRe¥Ú£
+::
+	$_fžlBufãr
+(
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+662 
+size_t
+ 
+Ëá
+ = 
+_cÚ‹ÁL’gth
+ - 
+_»adL’gth
+;
+
+663 ià(
+Ëá
+ > 
+Ën
+) {
+
+664 
+	`memýy_P
+(
+d©a
+, 
+_cÚ‹Á
+ + 
+_»adL’gth
+, 
+Ën
+);
+
+665 
+_»adL’gth
+ +ð
+Ën
+;
+
+666  
+Ën
+;
+
+668 
+	`memýy_P
+(
+d©a
+, 
+_cÚ‹Á
+ + 
+_»adL’gth
+, 
+Ëá
+);
+
+669 
+_»adL’gth
+ +ð
+Ëá
+;
+
+670  
+Ëá
+;
+
+671 
+	}
+}
+
+678 
+	gAsyncRe¥Ú£SŒ—m
+::
+	$AsyncRe¥Ú£SŒ—m
+(cÚ¡ 
+SŒšg
+& 
+cÚ‹ÁTy³
+, 
+size_t
+ 
+bufãrSize
+){
+
+679 
+_code
+ = 200;
+
+680 
+_cÚ‹ÁL’gth
+ = 0;
+
+681 
+_cÚ‹ÁTy³
+ = 
+cÚ‹ÁTy³
+;
+
+682 
+_cÚ‹Á
+ = 
+Ãw
+ 
+	`cbuf
+(
+bufãrSize
+);
+
+683 
+	}
+}
+
+685 
+	gAsyncRe¥Ú£SŒ—m
+::~
+	$AsyncRe¥Ú£SŒ—m
+(){
+
+686 
+d–‘e
+ 
+_cÚ‹Á
+;
+
+687 
+	}
+}
+
+689 
+size_t
+ 
+	gAsyncRe¥Ú£SŒ—m
+::
+	$_fžlBufãr
+(
+ušt8_t
+ *
+buf
+, 
+size_t
+ 
+maxL’
+){
+
+690  
+_cÚ‹Á
+->
+	`»ad
+((*)
+buf
+, 
+maxL’
+);
+
+691 
+	}
+}
+
+693 
+size_t
+ 
+	gAsyncRe¥Ú£SŒ—m
+::
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+Ën
+){
+
+694 if(
+	`_¡¬‹d
+())
+
+697 if(
+Ën
+ > 
+_cÚ‹Á
+->
+	`room
+()){
+
+698 
+size_t
+ 
+Ãeded
+ = 
+Ën
+ - 
+_cÚ‹Á
+->
+	`room
+();
+
+699 
+_cÚ‹Á
+->
+	`»sizeAdd
+(
+Ãeded
+);
+
+701 
+size_t
+ 
+wr™‹n
+ = 
+_cÚ‹Á
+->
+	`wr™e
+((cÚ¡ *)
+d©a
+, 
+Ën
+);
+
+702 
+_cÚ‹ÁL’gth
+ +ð
+wr™‹n
+;
+
+703  
+wr™‹n
+;
+
+704 
+	}
+}
+
+706 
+size_t
+ 
+	gAsyncRe¥Ú£SŒ—m
+::
+	$wr™e
+(
+ušt8_t
+ 
+d©a
+){
+
+707  
+	`wr™e
+(&
+d©a
+, 1);
+
+708 
+	}
+}
+
+	@lib/ESPAsyncWebServer/WebServer.cpp
+
+21 
+	~"ESPAsyncWebS”v”.h
+"
+
+22 
+	~"WebHªdËrIm¶.h
+"
+
+24 
+boÞ
+ 
+	$ON_STA_FILTER
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+) {
+
+25  
+WiFi
+.
+	`loÿlIP
+(è=ð
+»que¡
+->
+	`þ›Á
+()->localIP();
+
+26 
+	}
+}
+
+28 
+boÞ
+ 
+	$ON_AP_FILTER
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+) {
+
+29  
+WiFi
+.
+	`loÿlIP
+(è!ð
+»que¡
+->
+	`þ›Á
+()->localIP();
+
+30 
+	}
+}
+
+32 #iâdeà
+HAVE_FS_FILE_OPEN_MODE
+
+
+33 cÚ¡ *
+	gfs
+::
+FžeO³nMode
+::
+»ad
+ = "r";
+
+34 cÚ¡ *
+	gfs
+::
+FžeO³nMode
+::
+wr™e
+ = "w";
+
+35 cÚ¡ *
+	gfs
+::
+FžeO³nMode
+::
+­³nd
+ = "a";
+
+38 
+	gAsyncWebS”v”
+::
+	$AsyncWebS”v”
+(
+ušt16_t
+ 
+pÜt
+)
+
+39 : 
+	`_£rv”
+(
+pÜt
+)
+
+40 , 
+	`_»wr™es
+(
+LškedLi¡
+<
+AsyncWebRewr™e
+*>([](AsyncWebRewr™e* 
+r
+){ 
+d–‘e
+„; 
+	}
+}))
+
+41 , 
+_hªdËrs
+(
+LškedLi¡
+<
+AsyncWebHªdËr
+*>([](AsyncWebHªdËr* 
+h
+){ 
+d–‘e
+ h; }))
+
+43 
+	g_ÿtchAÎHªdËr
+ = 
+Ãw
+ 
+AsyncC®lbackWebHªdËr
+();
+
+44 if(
+	g_ÿtchAÎHªdËr
+ =ð
+NULL
+)
+
+46 
+	g_£rv”
+.
+ÚCl›Á
+([](*
+s
+, 
+AsyncCl›Á
+* 
+c
+){
+
+47 if(
+c
+ =ð
+NULL
+)
+
+49 
+c
+->
+£tRxTimeout
+(3);
+
+50 
+AsyncWebS”v”Reque¡
+ *
+r
+ = 
+Ãw
+ AsyncWebS”v”Reque¡((
+AsyncWebS”v”
+*)
+s
+, 
+c
+);
+
+51 if(
+r
+ =ð
+NULL
+){
+
+52 
+c
+->
+þo£
+(
+Œue
+);
+
+53 
+c
+->
+ä“
+();
+
+54 
+d–‘e
+ 
+c
+;
+
+56 }, 
+this
+);
+
+59 
+	gAsyncWebS”v”
+::~
+	$AsyncWebS”v”
+(){
+
+60 
+	`»£t
+();
+
+61 
+	`’d
+();
+
+62 if(
+_ÿtchAÎHªdËr
+è
+d–‘e
+ _catchAllHandler;
+
+63 
+	}
+}
+
+65 
+	gAsyncWebRewr™e
+& 
+	gAsyncWebS”v”
+::
+	$addRewr™e
+(
+AsyncWebRewr™e
+* 
+»wr™e
+){
+
+66 
+_»wr™es
+.
+	`add
+(
+»wr™e
+);
+
+67  *
+»wr™e
+;
+
+68 
+	}
+}
+
+70 
+boÞ
+ 
+	gAsyncWebS”v”
+::
+	$»moveRewr™e
+(
+AsyncWebRewr™e
+ *
+»wr™e
+){
+
+71  
+_»wr™es
+.
+	`»move
+(
+»wr™e
+);
+
+72 
+	}
+}
+
+74 
+	gAsyncWebRewr™e
+& 
+	gAsyncWebS”v”
+::
+	$»wr™e
+(cÚ¡ * 
+äom
+, cÚ¡ * 
+to
+){
+
+75  
+	`addRewr™e
+(
+Ãw
+ 
+	`AsyncWebRewr™e
+(
+äom
+, 
+to
+));
+
+76 
+	}
+}
+
+78 
+	gAsyncWebHªdËr
+& 
+	gAsyncWebS”v”
+::
+	$addHªdËr
+(
+AsyncWebHªdËr
+* 
+hªdËr
+){
+
+79 
+_hªdËrs
+.
+	`add
+(
+hªdËr
+);
+
+80  *
+hªdËr
+;
+
+81 
+	}
+}
+
+83 
+boÞ
+ 
+	gAsyncWebS”v”
+::
+	$»moveHªdËr
+(
+AsyncWebHªdËr
+ *
+hªdËr
+){
+
+84  
+_hªdËrs
+.
+	`»move
+(
+hªdËr
+);
+
+85 
+	}
+}
+
+87 
+	gAsyncWebS”v”
+::
+	$begš
+(){
+
+88 
+_£rv”
+.
+	`£tNoD–ay
+(
+Œue
+);
+
+89 
+_£rv”
+.
+	`begš
+();
+
+90 
+	}
+}
+
+92 
+	gAsyncWebS”v”
+::
+	$’d
+(){
+
+93 
+_£rv”
+.
+	`’d
+();
+
+94 
+	}
+}
+
+96 #ià
+ASYNC_TCP_SSL_ENABLED
+
+
+97 
+	gAsyncWebS”v”
+::
+	$ÚS¦FžeReque¡
+(
+AcSSlFžeHªdËr
+ 
+cb
+, * 
+¬g
+){
+
+98 
+_£rv”
+.
+	`ÚS¦FžeReque¡
+(
+cb
+, 
+¬g
+);
+
+99 
+	}
+}
+
+101 
+	gAsyncWebS”v”
+::
+	$begšSecu»
+(cÚ¡ *
+û¹
+, cÚ¡ *
+key
+, cÚ¡ *
+·sswÜd
+){
+
+102 
+_£rv”
+.
+	`begšSecu»
+(
+û¹
+, 
+key
+, 
+·sswÜd
+);
+
+103 
+	}
+}
+
+106 
+	gAsyncWebS”v”
+::
+	$_hªdËDiscÚÃù
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+107 
+d–‘e
+ 
+»que¡
+;
+
+108 
+	}
+}
+
+110 
+	gAsyncWebS”v”
+::
+	$_»wr™eReque¡
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+111 cÚ¡‡uto& 
+r
+: 
+_»wr™es
+){
+
+112 ià(
+r
+->
+	`m©ch
+(
+»que¡
+)){
+
+113 
+»que¡
+->
+_u¾
+ = 
+r
+->
+	`toU¾
+();
+
+114 
+»que¡
+->
+	`_addG‘P¬ams
+(
+r
+->
+	`·¿ms
+());
+
+117 
+	}
+}
+
+119 
+	gAsyncWebS”v”
+::
+	$_©�chHªdËr
+(
+AsyncWebS”v”Reque¡
+ *
+»que¡
+){
+
+120 cÚ¡‡uto& 
+h
+: 
+_hªdËrs
+){
+
+121 ià(
+h
+->
+	`fž‹r
+(
+»que¡
+è&& h->
+	`ÿnHªdË
+(request)){
+
+122 
+»que¡
+->
+	`£tHªdËr
+(
+h
+);
+
+127 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+(
+	`F
+("ANY"));
+
+128 
+»que¡
+->
+	`£tHªdËr
+(
+_ÿtchAÎHªdËr
+);
+
+129 
+	}
+}
+
+132 
+	gAsyncC®lbackWebHªdËr
+& 
+	gAsyncWebS”v”
+::
+	$Ú
+(cÚ¡ * 
+uri
+, 
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+, 
+ArU¶ßdHªdËrFunùiÚ
+ 
+ÚU¶ßd
+, 
+ArBodyHªdËrFunùiÚ
+ 
+ÚBody
+){
+
+133 
+AsyncC®lbackWebHªdËr
+* 
+hªdËr
+ = 
+Ãw
+ 
+	`AsyncC®lbackWebHªdËr
+();
+
+134 
+hªdËr
+->
+	`£tUri
+(
+uri
+);
+
+135 
+hªdËr
+->
+	`£tM‘hod
+(
+m‘hod
+);
+
+136 
+hªdËr
+->
+	`ÚReque¡
+(
+ÚReque¡
+);
+
+137 
+hªdËr
+->
+	`ÚU¶ßd
+(
+ÚU¶ßd
+);
+
+138 
+hªdËr
+->
+	`ÚBody
+(
+ÚBody
+);
+
+139 
+	`addHªdËr
+(
+hªdËr
+);
+
+140  *
+hªdËr
+;
+
+141 
+	}
+}
+
+143 
+	gAsyncC®lbackWebHªdËr
+& 
+	gAsyncWebS”v”
+::
+	$Ú
+(cÚ¡ * 
+uri
+, 
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+, 
+ArU¶ßdHªdËrFunùiÚ
+ 
+ÚU¶ßd
+){
+
+144 
+AsyncC®lbackWebHªdËr
+* 
+hªdËr
+ = 
+Ãw
+ 
+	`AsyncC®lbackWebHªdËr
+();
+
+145 
+hªdËr
+->
+	`£tUri
+(
+uri
+);
+
+146 
+hªdËr
+->
+	`£tM‘hod
+(
+m‘hod
+);
+
+147 
+hªdËr
+->
+	`ÚReque¡
+(
+ÚReque¡
+);
+
+148 
+hªdËr
+->
+	`ÚU¶ßd
+(
+ÚU¶ßd
+);
+
+149 
+	`addHªdËr
+(
+hªdËr
+);
+
+150  *
+hªdËr
+;
+
+151 
+	}
+}
+
+153 
+	gAsyncC®lbackWebHªdËr
+& 
+	gAsyncWebS”v”
+::
+	$Ú
+(cÚ¡ * 
+uri
+, 
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+){
+
+154 
+AsyncC®lbackWebHªdËr
+* 
+hªdËr
+ = 
+Ãw
+ 
+	`AsyncC®lbackWebHªdËr
+();
+
+155 
+hªdËr
+->
+	`£tUri
+(
+uri
+);
+
+156 
+hªdËr
+->
+	`£tM‘hod
+(
+m‘hod
+);
+
+157 
+hªdËr
+->
+	`ÚReque¡
+(
+ÚReque¡
+);
+
+158 
+	`addHªdËr
+(
+hªdËr
+);
+
+159  *
+hªdËr
+;
+
+160 
+	}
+}
+
+162 
+	gAsyncC®lbackWebHªdËr
+& 
+	gAsyncWebS”v”
+::
+	$Ú
+(cÚ¡ * 
+uri
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+){
+
+163 
+AsyncC®lbackWebHªdËr
+* 
+hªdËr
+ = 
+Ãw
+ 
+	`AsyncC®lbackWebHªdËr
+();
+
+164 
+hªdËr
+->
+	`£tUri
+(
+uri
+);
+
+165 
+hªdËr
+->
+	`ÚReque¡
+(
+ÚReque¡
+);
+
+166 
+	`addHªdËr
+(
+hªdËr
+);
+
+167  *
+hªdËr
+;
+
+168 
+	}
+}
+
+170 
+	gAsyncS�ticWebHªdËr
+& 
+	gAsyncWebS”v”
+::
+	$£rveS�tic
+(cÚ¡ * 
+uri
+, 
+fs
+::
+FS
+& fs, cÚ¡ * 
+·th
+, cÚ¡ * 
+ÿche_cÚŒÞ
+){
+
+171 
+AsyncS�ticWebHªdËr
+* 
+hªdËr
+ = 
+Ãw
+ 
+	`AsyncS�ticWebHªdËr
+(
+uri
+, 
+fs
+, 
+·th
+, 
+ÿche_cÚŒÞ
+);
+
+172 
+	`addHªdËr
+(
+hªdËr
+);
+
+173  *
+hªdËr
+;
+
+174 
+	}
+}
+
+176 
+	gAsyncWebS”v”
+::
+	$ÚNÙFound
+(
+ArReque¡HªdËrFunùiÚ
+ 
+â
+){
+
+177 
+_ÿtchAÎHªdËr
+->
+	`ÚReque¡
+(
+â
+);
+
+178 
+	}
+}
+
+180 
+	gAsyncWebS”v”
+::
+	$ÚFžeU¶ßd
+(
+ArU¶ßdHªdËrFunùiÚ
+ 
+â
+){
+
+181 
+_ÿtchAÎHªdËr
+->
+	`ÚU¶ßd
+(
+â
+);
+
+182 
+	}
+}
+
+184 
+	gAsyncWebS”v”
+::
+	$ÚReque¡Body
+(
+ArBodyHªdËrFunùiÚ
+ 
+â
+){
+
+185 
+_ÿtchAÎHªdËr
+->
+	`ÚBody
+(
+â
+);
+
+186 
+	}
+}
+
+188 
+	gAsyncWebS”v”
+::
+	$»£t
+(){
+
+189 
+_»wr™es
+.
+	`ä“
+();
+
+190 
+_hªdËrs
+.
+	`ä“
+();
+
+192 ià(
+_ÿtchAÎHªdËr
+ !ð
+NULL
+){
+
+193 
+_ÿtchAÎHªdËr
+->
+	`ÚReque¡
+(
+NULL
+);
+
+194 
+_ÿtchAÎHªdËr
+->
+	`ÚU¶ßd
+(
+NULL
+);
+
+195 
+_ÿtchAÎHªdËr
+->
+	`ÚBody
+(
+NULL
+);
+
+197 
+	}
+}
+
+	@lib/OneWire/OneWire.cpp
+
+142 
+	~<Ardušo.h
+>
+
+143 
+	~"OÃWœe.h
+"
+
+144 
+	~"OÃWœe_dœeù_gpio.h
+"
+
+146 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+147 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-variable"
+
+149 
+	gOÃWœe
+::
+	$begš
+(
+ušt8_t
+ 
+pš
+) {
+
+150 
+	`pšMode
+(
+pš
+, 
+INPUT
+);
+
+151 
+b™mask
+ = 
+	`PIN_TO_BITMASK
+(
+pš
+);
+
+152 
+ba£Reg
+ = 
+	`PIN_TO_BASEREG
+(
+pš
+);
+
+153 #ià
+ONEWIRE_SEARCH
+
+
+154 
+	`»£t_£¬ch
+();
+
+156 
+	}
+}
+
+164 #ifdeà
+ARDUINO_ARCH_ESP32
+
+
+165 
+ušt8_t
+ 
+IRAM_ATTR
+ 
+	gOÃWœe
+::
+	$»£t
+() {
+
+167 
+ušt8_t
+ 
+OÃWœe
+::
+	$»£t
+() {
+
+169 
+IO_REG_TYPE
+ 
+mask
+ 
+IO_REG_MASK_ATTR
+ = 
+b™mask
+;
+
+170 vÞ©ž�
+IO_REG_TYPE
+ * 
+»g
+ 
+IO_REG_BASE_ATTR
+ = 
+ba£Reg
+;
+
+171 
+ušt8_t
+ 
+r
+;
+
+172 
+ušt8_t
+ 
+»Œ›s
+ = 125;
+
+174 
+	`noIÁ”ru±s
+();
+
+175 
+	`DIRECT_MODE_INPUT
+(
+»g
+, 
+mask
+);
+
+176 
+	`š‹¼u±s
+();
+
+179 ià(--
+»Œ›s
+ == 0)
+
+181 
+	`d–ayMiüo£cÚds
+(2);
+
+182 } !
+	`DIRECT_READ
+(
+»g
+, 
+mask
+));
+
+184 
+	`noIÁ”ru±s
+();
+
+185 
+	`DIRECT_WRITE_LOW
+(
+»g
+, 
+mask
+);
+
+186 
+	`DIRECT_MODE_OUTPUT
+(
+»g
+, 
+mask
+);
+
+187 
+	`š‹¼u±s
+();
+
+188 
+	`d–ayMiüo£cÚds
+(480);
+
+189 
+	`noIÁ”ru±s
+();
+
+190 
+	`DIRECT_MODE_INPUT
+(
+»g
+, 
+mask
+);
+
+191 
+	`d–ayMiüo£cÚds
+(70);
+
+192 
+r
+ = !
+	`DIRECT_READ
+(
+»g
+, 
+mask
+);
+
+193 
+	`š‹¼u±s
+();
+
+194 
+	`d–ayMiüo£cÚds
+(410);
+
+195  
+r
+;
+
+196 
+	}
+}
+
+202 #ifdeà
+ARDUINO_ARCH_ESP32
+
+
+203 
+IRAM_ATTR
+ 
+	gOÃWœe
+::
+	$wr™e_b™
+(
+ušt8_t
+ 
+v
+) {
+
+205 
+OÃWœe
+::
+	$wr™e_b™
+(
+ušt8_t
+ 
+v
+) {
+
+207 
+IO_REG_TYPE
+ 
+mask
+ 
+IO_REG_MASK_ATTR
+ = 
+b™mask
+;
+
+208 vÞ©ž�
+IO_REG_TYPE
+ * 
+»g
+ 
+IO_REG_BASE_ATTR
+ = 
+ba£Reg
+;
+
+210 ià(
+v
+ & 1) {
+
+211 
+	`noIÁ”ru±s
+();
+
+212 
+	`DIRECT_WRITE_LOW
+(
+»g
+, 
+mask
+);
+
+213 
+	`DIRECT_MODE_OUTPUT
+(
+»g
+, 
+mask
+);
+
+214 
+	`d–ayMiüo£cÚds
+(10);
+
+215 
+	`DIRECT_WRITE_HIGH
+(
+»g
+, 
+mask
+);
+
+216 
+	`š‹¼u±s
+();
+
+217 
+	`d–ayMiüo£cÚds
+(55);
+
+219 
+	`noIÁ”ru±s
+();
+
+220 
+	`DIRECT_WRITE_LOW
+(
+»g
+, 
+mask
+);
+
+221 
+	`DIRECT_MODE_OUTPUT
+(
+»g
+, 
+mask
+);
+
+222 
+	`d–ayMiüo£cÚds
+(65);
+
+223 
+	`DIRECT_WRITE_HIGH
+(
+»g
+, 
+mask
+);
+
+224 
+	`š‹¼u±s
+();
+
+225 
+	`d–ayMiüo£cÚds
+(5);
+
+227 
+	}
+}
+
+233 #ifdeà
+ARDUINO_ARCH_ESP32
+
+
+234 
+ušt8_t
+ 
+IRAM_ATTR
+ 
+	gOÃWœe
+::
+	$»ad_b™
+() {
+
+236 
+ušt8_t
+ 
+OÃWœe
+::
+	$»ad_b™
+() {
+
+238 
+IO_REG_TYPE
+ 
+mask
+ 
+IO_REG_MASK_ATTR
+ = 
+b™mask
+;
+
+239 vÞ©ž�
+IO_REG_TYPE
+ * 
+»g
+ 
+IO_REG_BASE_ATTR
+ = 
+ba£Reg
+;
+
+240 
+ušt8_t
+ 
+r
+;
+
+242 
+	`noIÁ”ru±s
+();
+
+243 
+	`DIRECT_MODE_OUTPUT
+(
+»g
+, 
+mask
+);
+
+244 
+	`DIRECT_WRITE_LOW
+(
+»g
+, 
+mask
+);
+
+245 
+	`d–ayMiüo£cÚds
+(3);
+
+246 
+	`DIRECT_MODE_INPUT
+(
+»g
+, 
+mask
+);
+
+247 
+	`d–ayMiüo£cÚds
+(10);
+
+248 
+r
+ = 
+	`DIRECT_READ
+(
+»g
+, 
+mask
+);
+
+249 
+	`š‹¼u±s
+();
+
+250 
+	`d–ayMiüo£cÚds
+(53);
+
+251  
+r
+;
+
+252 
+	}
+}
+
+261 
+	gOÃWœe
+::
+	$wr™e
+(
+ušt8_t
+ 
+v
+, ušt8_ˆ
+pow”
+ ) {
+
+262 
+ušt8_t
+ 
+b™Mask
+;
+
+264 
+b™Mask
+ = 0x01; bitMask; bitMask <<= 1) {
+
+265 
+OÃWœe
+::
+	`wr™e_b™
+((
+b™Mask
+ & 
+v
+) ? 1 : 0);
+
+267 ià(!
+pow”
+) {
+
+268 
+	`noIÁ”ru±s
+();
+
+269 
+	`DIRECT_MODE_INPUT
+(
+ba£Reg
+, 
+b™mask
+);
+
+270 
+	`DIRECT_WRITE_LOW
+(
+ba£Reg
+, 
+b™mask
+);
+
+271 
+	`š‹¼u±s
+();
+
+273 
+	}
+}
+
+275 
+	gOÃWœe
+::
+	$wr™e_by‹s
+(cÚ¡ 
+ušt8_t
+ * 
+buf
+, 
+ušt16_t
+ 
+couÁ
+, 
+boÞ
+ 
+pow”
+ ) {
+
+276 
+ušt16_t
+ 
+i
+ = 0; i < 
+couÁ
+; i++)
+
+277 
+	`wr™e
+(
+buf
+[
+i
+]);
+
+278 ià(!
+pow”
+) {
+
+279 
+	`noIÁ”ru±s
+();
+
+280 
+	`DIRECT_MODE_INPUT
+(
+ba£Reg
+, 
+b™mask
+);
+
+281 
+	`DIRECT_WRITE_LOW
+(
+ba£Reg
+, 
+b™mask
+);
+
+282 
+	`š‹¼u±s
+();
+
+284 
+	}
+}
+
+289 
+ušt8_t
+ 
+	gOÃWœe
+::
+	$»ad
+() {
+
+290 
+ušt8_t
+ 
+b™Mask
+;
+
+291 
+ušt8_t
+ 
+r
+ = 0;
+
+293 
+b™Mask
+ = 0x01; bitMask; bitMask <<= 1) {
+
+294 ià(
+OÃWœe
+::
+	`»ad_b™
+())
+
+295 
+r
+ |ð
+b™Mask
+;
+
+297  
+r
+;
+
+298 
+	}
+}
+
+300 
+	gOÃWœe
+::
+	$»ad_by‹s
+(
+ušt8_t
+ * 
+buf
+, 
+ušt16_t
+ 
+couÁ
+) {
+
+301 
+ušt16_t
+ 
+i
+ = 0; i < 
+couÁ
+; i++)
+
+302 
+buf
+[
+i
+] = 
+	`»ad
+();
+
+303 
+	}
+}
+
+308 
+	gOÃWœe
+::
+	$£Ëù
+(cÚ¡ 
+ušt8_t
+ 
+rom
+[8]) {
+
+309 
+ušt8_t
+ 
+i
+;
+
+311 
+	`wr™e
+(0x55);
+
+313 
+i
+ = 0; i < 8; i++)
+
+314 
+	`wr™e
+(
+rom
+[
+i
+]);
+
+315 
+	}
+}
+
+320 
+	gOÃWœe
+::
+	$sk�
+() {
+
+321 
+	`wr™e
+(0xCC);
+
+322 
+	}
+}
+
+324 
+	gOÃWœe
+::
+	$d•ow”
+() {
+
+325 
+	`noIÁ”ru±s
+();
+
+326 
+	`DIRECT_MODE_INPUT
+(
+ba£Reg
+, 
+b™mask
+);
+
+327 
+	`š‹¼u±s
+();
+
+328 
+	}
+}
+
+330 #ià
+ONEWIRE_SEARCH
+
+
+336 
+	gOÃWœe
+::
+	$»£t_£¬ch
+() {
+
+338 
+La¡Disü•ªcy
+ = 0;
+
+339 
+La¡DeviûFÏg
+ = 
+çl£
+;
+
+340 
+La¡FamžyDisü•ªcy
+ = 0;
+
+341 
+i
+ = 7;; i--) {
+
+342 
+ROM_NO
+[
+i
+] = 0;
+
+343 ià(
+i
+ == 0)
+
+346 
+	}
+}
+
+351 
+	gOÃWœe
+::
+	$�rg‘_£¬ch
+(
+ušt8_t
+ 
+çmžy_code
+) {
+
+353 
+ROM_NO
+[0] = 
+çmžy_code
+;
+
+354 
+ušt8_t
+ 
+i
+ = 1; i < 8; i++)
+
+355 
+ROM_NO
+[
+i
+] = 0;
+
+356 
+La¡Disü•ªcy
+ = 64;
+
+357 
+La¡FamžyDisü•ªcy
+ = 0;
+
+358 
+La¡DeviûFÏg
+ = 
+çl£
+;
+
+359 
+	}
+}
+
+377 
+boÞ
+ 
+	gOÃWœe
+::
+	$£¬ch
+(
+ušt8_t
+ * 
+ÃwAddr
+, 
+boÞ
+ 
+£¬ch_mode
+ ) {
+
+378 
+ušt8_t
+ 
+id_b™_numb”
+;
+
+379 
+ušt8_t
+ 
+Ï¡_z”o
+, 
+rom_by‹_numb”
+;
+
+380 
+boÞ
+ 
+£¬ch_»suÉ
+;
+
+381 
+ušt8_t
+ 
+id_b™
+, 
+cmp_id_b™
+;
+
+383 
+rom_by‹_mask
+, 
+£¬ch_dœeùiÚ
+;
+
+386 
+id_b™_numb”
+ = 1;
+
+387 
+Ï¡_z”o
+ = 0;
+
+388 
+rom_by‹_numb”
+ = 0;
+
+389 
+rom_by‹_mask
+ = 1;
+
+390 
+£¬ch_»suÉ
+ = 
+çl£
+;
+
+393 ià(!
+La¡DeviûFÏg
+) {
+
+395 ià(!
+	`»£t
+()) {
+
+397 
+La¡Disü•ªcy
+ = 0;
+
+398 
+La¡DeviûFÏg
+ = 
+çl£
+;
+
+399 
+La¡FamžyDisü•ªcy
+ = 0;
+
+400  
+çl£
+;
+
+404 ià(
+£¬ch_mode
+ =ð
+Œue
+) {
+
+405 
+	`wr™e
+(0xF0);
+
+407 
+	`wr™e
+(0xEC);
+
+413 
+id_b™
+ = 
+	`»ad_b™
+();
+
+414 
+cmp_id_b™
+ = 
+	`»ad_b™
+();
+
+417 ià((
+id_b™
+ =ð1è&& (
+cmp_id_b™
+ == 1)) {
+
+421 ià(
+id_b™
+ !ð
+cmp_id_b™
+) {
+
+422 
+£¬ch_dœeùiÚ
+ = 
+id_b™
+;
+
+426 ià(
+id_b™_numb”
+ < 
+La¡Disü•ªcy
+) {
+
+427 
+£¬ch_dœeùiÚ
+ = ((
+ROM_NO
+[
+rom_by‹_numb”
+] & 
+rom_by‹_mask
+) > 0);
+
+430 
+£¬ch_dœeùiÚ
+ = (
+id_b™_numb”
+ =ð
+La¡Disü•ªcy
+);
+
+433 ià(
+£¬ch_dœeùiÚ
+ == 0) {
+
+434 
+Ï¡_z”o
+ = 
+id_b™_numb”
+;
+
+437 ià(
+Ï¡_z”o
+ < 9)
+
+438 
+La¡FamžyDisü•ªcy
+ = 
+Ï¡_z”o
+;
+
+444 ià(
+£¬ch_dœeùiÚ
+ == 1)
+
+445 
+ROM_NO
+[
+rom_by‹_numb”
+] |ð
+rom_by‹_mask
+;
+
+447 
+ROM_NO
+[
+rom_by‹_numb”
+] &ð~
+rom_by‹_mask
+;
+
+450 
+	`wr™e_b™
+(
+£¬ch_dœeùiÚ
+);
+
+454 
+id_b™_numb”
+++;
+
+455 
+rom_by‹_mask
+ <<= 1;
+
+458 ià(
+rom_by‹_mask
+ == 0) {
+
+459 
+rom_by‹_numb”
+++;
+
+460 
+rom_by‹_mask
+ = 1;
+
+463 } 
+rom_by‹_numb”
+ < 8);
+
+466 ià(!(
+id_b™_numb”
+ < 65)) {
+
+468 
+La¡Disü•ªcy
+ = 
+Ï¡_z”o
+;
+
+471 ià(
+La¡Disü•ªcy
+ == 0) {
+
+472 
+La¡DeviûFÏg
+ = 
+Œue
+;
+
+474 
+£¬ch_»suÉ
+ = 
+Œue
+;
+
+479 ià(!
+£¬ch_»suÉ
+ || !
+ROM_NO
+[0]) {
+
+480 
+La¡Disü•ªcy
+ = 0;
+
+481 
+La¡DeviûFÏg
+ = 
+çl£
+;
+
+482 
+La¡FamžyDisü•ªcy
+ = 0;
+
+483 
+£¬ch_»suÉ
+ = 
+çl£
+;
+
+485 
+i
+ = 0; i < 8; i++)
+
+486 
+ÃwAddr
+[
+i
+] = 
+ROM_NO
+[i];
+
+489  
+£¬ch_»suÉ
+;
+
+490 
+	}
+}
+
+494 #ià
+ONEWIRE_CRC
+
+
+499 #ià
+ONEWIRE_CRC8_TABLE
+
+
+503 cÚ¡ 
+ušt8_t
+ 
+PROGMEM
+ 
+	gdsüc2x16_�bË
+[] = {0x00, 0x5E, 0xBC, 0xE2, 0x61, 0x3F, 0xDD, 0x83, 0xC2, 0x9C, 0x7E, 0x20, 0xA3, 0xFD, 0x1F, 0x41,
+
+508 
+ušt8_t
+ 
+	gOÃWœe
+::
+	$üc8
+(cÚ¡ 
+ušt8_t
+ * 
+addr
+, ušt8_ˆ
+Ën
+) {
+
+509 
+ušt8_t
+ 
+üc
+ = 0;
+
+511 
+Ën
+--) {
+
+512 
+üc
+ = *
+addr
+++ ^ crc;
+
+513 
+üc
+ = 
+	`pgm_»ad_by‹
+(
+dsüc2x16_�bË
+ + (crc & 0x0f)) ^…gm_read_byte(dscrc2x16_table + 16 + ((crc >> 4) & 0x0f));
+
+516  
+üc
+;
+
+517 
+	}
+}
+
+523 
+ušt8_t
+ 
+	gOÃWœe
+::
+	$üc8
+(cÚ¡ 
+ušt8_t
+ * 
+addr
+, ušt8_ˆ
+Ën
+) {
+
+524 
+ušt8_t
+ 
+üc
+ = 0;
+
+526 
+Ën
+--) {
+
+527 #ià
+	`defšed
+(
+__AVR__
+)
+
+528 
+üc
+ = 
+	`_üc_ibu‰Ú_upd©e
+(üc, *
+addr
+++);
+
+530 
+ušt8_t
+ 
+šby‹
+ = *
+addr
+++;
+
+531 
+ušt8_t
+ 
+i
+ = 8; i; i--) {
+
+532 
+ušt8_t
+ 
+mix
+ = (
+üc
+ ^ 
+šby‹
+) & 0x01;
+
+533 
+üc
+ >>= 1;
+
+534 ià(
+mix
+)
+
+535 
+üc
+ ^= 0x8C;
+
+536 
+šby‹
+ >>= 1;
+
+540  
+üc
+;
+
+541 
+	}
+}
+
+544 #ià
+ONEWIRE_CRC16
+
+
+545 
+boÞ
+ 
+	gOÃWœe
+::
+	$check_üc16
+(cÚ¡ 
+ušt8_t
+ * 
+šput
+, 
+ušt16_t
+ 
+Ën
+, cÚ¡ ušt8_ˆ* 
+šv”‹d_üc
+, ušt16_ˆ
+üc
+) {
+
+546 
+üc
+ = ~
+	`üc16
+(
+šput
+, 
+Ën
+, crc);
+
+547  (
+üc
+ & 0xFFè=ð
+šv”‹d_üc
+[0] && (crc >> 8) == inverted_crc[1];
+
+548 
+	}
+}
+
+550 
+ušt16_t
+ 
+	gOÃWœe
+::
+	$üc16
+(cÚ¡ 
+ušt8_t
+ * 
+šput
+, 
+ušt16_t
+ 
+Ën
+, ušt16_ˆ
+üc
+) {
+
+551 #ià
+	`defšed
+(
+__AVR__
+)
+
+552 
+ušt16_t
+ 
+i
+ = 0; i < 
+Ën
+; i++) {
+
+553 
+üc
+ = 
+	`_üc16_upd©e
+(üc, 
+šput
+[
+i
+]);
+
+556 cÚ¡ 
+ušt8_t
+ 
+odd·r™y
+[16] = {0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0};
+
+558 
+ušt16_t
+ 
+i
+ = 0; i < 
+Ën
+; i++) {
+
+561 
+ušt16_t
+ 
+cd©a
+ = 
+šput
+[
+i
+];
+
+562 
+cd©a
+ = (cd©¨^ 
+üc
+) & 0xff;
+
+563 
+üc
+ >>= 8;
+
+565 ià(
+odd·r™y
+[
+cd©a
+ & 0x0F] ^ oddparity[cdata >> 4])
+
+566 
+üc
+ ^= 0xC001;
+
+568 
+cd©a
+ <<= 6;
+
+569 
+üc
+ ^ð
+cd©a
+;
+
+570 
+cd©a
+ <<= 1;
+
+571 
+üc
+ ^ð
+cd©a
+;
+
+574  
+üc
+;
+
+575 
+	}
+}
+
+581 #´agm¨
+GCC
+ 
+dŸgno¡ic
+…op
+
+	@lib/OneWire/OneWire.h
+
+1 #iâdeà
+OÃWœe_h
+
+
+2 
+	#OÃWœe_h
+
+
+	)
+
+4 #ifdeà
+__ýlu¥lus
+
+
+6 
+	~<¡dšt.h
+>
+
+8 #ià
+defšed
+(
+__AVR__
+)
+
+9 
+	~<utž/üc16.h
+>
+
+12 #ià
+ARDUINO
+ >= 100
+
+13 
+	~<Ardušo.h
+>
+
+15 
+	~"WProg¿m.h
+"
+
+16 
+	~"pšs_¬dušo.h
+"
+
+30 #iâdeà
+ONEWIRE_SEARCH
+
+
+31 
+	#ONEWIRE_SEARCH
+ 1
+
+	)
+
+35 #iâdeà
+ONEWIRE_CRC
+
+
+36 
+	#ONEWIRE_CRC
+ 1
+
+	)
+
+44 #iâdeà
+ONEWIRE_CRC8_TABLE
+
+
+45 
+	#ONEWIRE_CRC8_TABLE
+ 1
+
+	)
+
+50 #iâdeà
+ONEWIRE_CRC16
+
+
+51 
+	#ONEWIRE_CRC16
+ 1
+
+	)
+
+55 
+	~"OÃWœe_dœeù_»gty³.h
+"
+
+57 þas 
+	cOÃWœe
+ {
+
+58 
+	m´iv©e
+:
+
+59 
+IO_REG_TYPE
+ 
+b™mask
+;
+
+60 vÞ©ž�
+IO_REG_TYPE
+ * 
+	mba£Reg
+;
+
+62 #ià
+ONEWIRE_SEARCH
+
+
+64 
+	mROM_NO
+[8];
+
+65 
+ušt8_t
+ 
+	mLa¡Disü•ªcy
+;
+
+66 
+ušt8_t
+ 
+	mLa¡FamžyDisü•ªcy
+;
+
+67 
+boÞ
+ 
+	mLa¡DeviûFÏg
+;
+
+70 
+	mpublic
+:
+
+71 
+	$OÃWœe
+() {
+
+73 
+	$OÃWœe
+(
+ušt8_t
+ 
+pš
+) {
+
+74 
+	`begš
+(
+pš
+);
+
+75 
+	}
+}
+
+76 
+begš
+(
+ušt8_t
+ 
+pš
+);
+
+81 #ifdeà
+ARDUINO_ARCH_ESP32
+
+
+82 
+ušt8_t
+ 
+IRAM_ATTR
+ 
+»£t
+();
+
+84 
+ušt8_t
+ 
+»£t
+();
+
+88 
+£Ëù
+(cÚ¡ 
+ušt8_t
+ 
+rom
+[8]);
+
+91 
+sk�
+();
+
+97 
+wr™e
+(
+ušt8_t
+ 
+v
+, ušt8_ˆ
+pow”
+ = 0);
+
+99 
+wr™e_by‹s
+(cÚ¡ 
+ušt8_t
+ * 
+buf
+, 
+ušt16_t
+ 
+couÁ
+, 
+boÞ
+ 
+pow”
+ = 0);
+
+102 
+ušt8_t
+ 
+»ad
+();
+
+104 
+»ad_by‹s
+(
+ušt8_t
+ * 
+buf
+, 
+ušt16_t
+ 
+couÁ
+);
+
+108 #ifdeà
+ARDUINO_ARCH_ESP32
+
+
+109 
+IRAM_ATTR
+ 
+wr™e_b™
+(
+ušt8_t
+ 
+v
+);
+
+111 
+wr™e_b™
+(
+ušt8_t
+ 
+v
+);
+
+115 #ifdeà
+ARDUINO_ARCH_ESP32
+
+
+116 
+ušt8_t
+ 
+IRAM_ATTR
+ 
+»ad_b™
+();
+
+118 
+ušt8_t
+ 
+»ad_b™
+();
+
+125 
+d•ow”
+();
+
+127 #ià
+ONEWIRE_SEARCH
+
+
+129 
+»£t_£¬ch
+();
+
+133 
+�rg‘_£¬ch
+(
+ušt8_t
+ 
+çmžy_code
+);
+
+141 
+boÞ
+ 
+£¬ch
+(
+ušt8_t
+ * 
+ÃwAddr
+, boÞ 
+£¬ch_mode
+ = 
+Œue
+);
+
+144 #ià
+ONEWIRE_CRC
+
+
+147 
+ušt8_t
+ 
+üc8
+(cÚ¡ ušt8_ˆ* 
+addr
+, ušt8_ˆ
+Ën
+);
+
+149 #ià
+ONEWIRE_CRC16
+
+
+170 
+boÞ
+ 
+check_üc16
+(cÚ¡ 
+ušt8_t
+ * 
+šput
+, 
+ušt16_t
+ 
+Ën
+, cÚ¡ ušt8_ˆ* 
+šv”‹d_üc
+, ušt16_ˆ
+üc
+ = 0);
+
+184 
+ušt16_t
+ 
+üc16
+(cÚ¡ 
+ušt8_t
+ * 
+šput
+, ušt16_ˆ
+Ën
+, ušt16_ˆ
+üc
+ = 0);
+
+190 #ifdeà
+IO_REG_TYPE
+
+
+191 #undeà
+IO_REG_TYPE
+
+
+	@lib/OneWire/OneWire_direct_gpio.h
+
+1 #iâdeà
+OÃWœe_Dœeù_GPIO_h
+
+
+2 
+	#OÃWœe_Dœeù_GPIO_h
+
+
+	)
+
+8 
+	~<¡dšt.h
+>
+
+12 #ià
+defšed
+(
+__AVR__
+)
+
+13 
+	#PIN_TO_BASEREG
+(
+pš
+è(
+	`pÜtIÅutRegi¡”
+(
+	`dig™®PšToPÜt
+Õš)))
+
+	)
+
+14 
+	#PIN_TO_BITMASK
+(
+pš
+è(
+	`dig™®PšToB™Mask
+Õš))
+
+	)
+
+15 
+	#IO_REG_TYPE
+ 
+ušt8_t
+
+
+	)
+
+16 
+	#IO_REG_BASE_ATTR
+ 
+	`asm
+("r30")
+
+	)
+
+17 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+18 #ià
+defšed
+(
+__AVR_ATmega4809__
+)
+
+19 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è(((*(ba£)è& (mask)è? 1 : 0)
+
+	)
+
+20 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è((*((ba£)-8)è&ð~(mask))
+
+	)
+
+21 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è((*((ba£)-8)è|ð(mask))
+
+	)
+
+22 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è((*((ba£)-4)è&ð~(mask))
+
+	)
+
+23 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è((*((ba£)-4)è|ð(mask))
+
+	)
+
+25 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è(((*(ba£)è& (mask)è? 1 : 0)
+
+	)
+
+26 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è((*((ba£è+ 1)è&ð~(mask))
+
+	)
+
+27 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è((*((ba£è+ 1)è|ð(mask))
+
+	)
+
+28 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è((*((ba£è+ 2)è&ð~(mask))
+
+	)
+
+29 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è((*((ba£è+ 2)è|ð(mask))
+
+	)
+
+32 #–ià
+defšed
+(
+__MK20DX128__
+è|| defšed(
+__MK20DX256__
+è|| defšed(
+__MK66FX1M0__
+è|| defšed(
+__MK64FX512__
+)
+
+33 
+	#PIN_TO_BASEREG
+(
+pš
+è(
+	`pÜtOu�utRegi¡”
+Õš))
+
+	)
+
+34 
+	#PIN_TO_BITMASK
+(
+pš
+è(1)
+
+	)
+
+35 
+	#IO_REG_TYPE
+ 
+ušt8_t
+
+
+	)
+
+36 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+37 
+	#IO_REG_MASK_ATTR
+ 
+	`__©Œibu‹__
+((
+unu£d
+))
+
+	)
+
+38 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è(*((ba£è+ 512))
+
+	)
+
+39 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è(*((ba£è+ 640èð0)
+
+	)
+
+40 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è(*((ba£è+ 640èð1)
+
+	)
+
+41 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è(*((ba£è+ 256èð1)
+
+	)
+
+42 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è(*((ba£è+ 128èð1)
+
+	)
+
+44 #–ià
+defšed
+(
+__MKL26Z64__
+)
+
+45 
+	#PIN_TO_BASEREG
+(
+pš
+è(
+	`pÜtOu�utRegi¡”
+Õš))
+
+	)
+
+46 
+	#PIN_TO_BITMASK
+(
+pš
+è(
+	`dig™®PšToB™Mask
+Õš))
+
+	)
+
+47 
+	#IO_REG_TYPE
+ 
+ušt8_t
+
+
+	)
+
+48 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+49 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+50 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è((*((ba£è+ 16è& (mask)è? 1 : 0)
+
+	)
+
+51 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è(*((ba£è+ 20è&ð~(mask))
+
+	)
+
+52 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è(*((ba£è+ 20è|ð(mask))
+
+	)
+
+53 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è(*((ba£è+ 8èð(mask))
+
+	)
+
+54 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è(*((ba£è+ 4èð(mask))
+
+	)
+
+56 #–ià
+defšed
+(
+__IMXRT1052__
+è|| defšed(
+__IMXRT1062__
+)
+
+57 
+	#PIN_TO_BASEREG
+(
+pš
+è(
+	`pÜtOu�utRegi¡”
+Õš))
+
+	)
+
+58 
+	#PIN_TO_BITMASK
+(
+pš
+è(
+	`dig™®PšToB™Mask
+Õš))
+
+	)
+
+59 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+60 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+61 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+62 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è((*((ba£è+ 2è& (mask)è? 1 : 0)
+
+	)
+
+63 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è(*((ba£è+ 1è&ð~(mask))
+
+	)
+
+64 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è(*((ba£è+ 1è|ð(mask))
+
+	)
+
+65 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è(*((ba£è+ 34èð(mask))
+
+	)
+
+66 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è(*((ba£è+ 33èð(mask))
+
+	)
+
+68 #–ià
+defšed
+(
+__SAM3X8E__
+è|| defšed(
+__SAM3A8C__
+è|| defšed(
+__SAM3A4C__
+)
+
+73 
+	#PIN_TO_BASEREG
+(
+pš
+è(&(
+	`dig™®PšToPÜt
+Õš)->
+PIO_PER
+))
+
+	)
+
+74 
+	#PIN_TO_BITMASK
+(
+pš
+è(
+	`dig™®PšToB™Mask
+Õš))
+
+	)
+
+75 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+76 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+77 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+78 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è(((*((ba£è+ 15)è& (mask)è? 1 : 0)
+
+	)
+
+79 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è((*((ba£è+ 5)èð(mask))
+
+	)
+
+80 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è((*((ba£è+ 4)èð(mask))
+
+	)
+
+81 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è((*((ba£è+ 13)èð(mask))
+
+	)
+
+82 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è((*((ba£è+ 12)èð(mask))
+
+	)
+
+83 #iâdeà
+PROGMEM
+
+
+84 
+	#PROGMEM
+
+
+	)
+
+86 #iâdeà
+pgm_»ad_by‹
+
+
+87 
+	#pgm_»ad_by‹
+(
+addr
+è(*(cÚ¡ 
+ušt8_t
+ *)×ddr))
+
+	)
+
+90 #–ià
+defšed
+(
+__PIC32MX__
+)
+
+91 
+	#PIN_TO_BASEREG
+(
+pš
+è(
+	`pÜtModeRegi¡”
+(
+	`dig™®PšToPÜt
+Õš)))
+
+	)
+
+92 
+	#PIN_TO_BITMASK
+(
+pš
+è(
+	`dig™®PšToB™Mask
+Õš))
+
+	)
+
+93 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+94 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+95 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+96 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+) (((*(base + 4)) & (mask)) ? 1 : 0)
+
+97 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+) ((*(base + 2)) = (mask))
+
+98 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+) ((*(base + 1)) = (mask))
+
+99 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+) ((*(base + 8 + 1)) = (mask))
+
+100 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+) ((*(base + 8 + 2)) = (mask))
+
+101 
+
+	)
+
+102 #–ià
+defšed
+(
+ARDUINO_ARCH_ESP8266
+)
+
+108 
+	#PIN_TO_BASEREG
+(
+pš
+è((vÞ©ž�
+ušt32_t
+ *)
+GPO
+)
+
+	)
+
+109 
+	#PIN_TO_BITMASK
+(
+pš
+è(1 <<…š)
+
+	)
+
+110 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+111 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+112 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+113 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è((
+GPI
+ & (mask)) ? 1 : 0)
+
+114 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è(
+GPE
+ &= ~(mask))
+
+115 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è(
+GPE
+ |= (mask))
+
+116 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è(
+GPOC
+ = (mask))
+
+117 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è(
+GPOS
+ = (mask))
+
+118 
+
+	)
+
+119 #–ià
+defšed
+(
+ARDUINO_ARCH_ESP32
+)
+
+120 
+	~<driv”/¹c_io.h
+>
+
+121 
+	#PIN_TO_BASEREG
+(
+pš
+è(0)
+
+	)
+
+122 
+	#PIN_TO_BITMASK
+(
+pš
+èÕš)
+
+	)
+
+123 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+124 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+125 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+127 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+IO_REG_TYPE
+ 
+	$dœeùR—d
+(
+IO_REG_TYPE
+ 
+pš
+) {
+
+128 ià(
+pš
+ < 32)
+
+129  (
+GPIO
+.
+š
+ >> 
+pš
+) & 0x1;
+
+130 ià(
+pš
+ < 40)
+
+131  (
+GPIO
+.
+š1
+.
+v®
+ >> (
+pš
+ - 32)) & 0x1;
+
+134 
+	}
+}
+
+136 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùWr™eLow
+(
+IO_REG_TYPE
+ 
+pš
+) {
+
+137 ià(
+pš
+ < 32)
+
+138 
+GPIO
+.
+out_w1tc
+ = ((
+ušt32_t
+)1 << 
+pš
+);
+
+139 ià(
+pš
+ < 34)
+
+140 
+GPIO
+.
+out1_w1tc
+.
+v®
+ = ((
+ušt32_t
+)1 << (
+pš
+ - 32));
+
+141 
+	}
+}
+
+143 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùWr™eHigh
+(
+IO_REG_TYPE
+ 
+pš
+) {
+
+144 ià(
+pš
+ < 32)
+
+145 
+GPIO
+.
+out_w1ts
+ = ((
+ušt32_t
+)1 << 
+pš
+);
+
+146 ià(
+pš
+ < 34)
+
+147 
+GPIO
+.
+out1_w1ts
+.
+v®
+ = ((
+ušt32_t
+)1 << (
+pš
+ - 32));
+
+148 
+	}
+}
+
+150 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùModeIÅut
+(
+IO_REG_TYPE
+ 
+pš
+) {
+
+151 ià(
+	`dig™®PšIsV®id
+(
+pš
+)) {
+
+152 
+ušt32_t
+ 
+	`¹c_»g
+(
+¹c_gpio_desc
+[
+pš
+].
+»g
+);
+
+154 ià(
+¹c_»g
+)
+
+156 
+	`ESP_REG
+(
+¹c_»g
+èðESP_REGÔtc_»gè& ~(
+¹c_gpio_desc
+[
+pš
+].
+mux
+);
+
+157 
+	`ESP_REG
+(
+¹c_»g
+èðESP_REGÔtc_»gè& ~(
+¹c_gpio_desc
+[
+pš
+].
+puÎup
+ |„tc_gpio_desc[pš].
+puÎdown
+);
+
+160 ià(
+pš
+ < 32)
+
+161 
+GPIO
+.
+’abË_w1tc
+ = ((
+ušt32_t
+)1 << 
+pš
+);
+
+163 
+GPIO
+.
+’abË1_w1tc
+.
+v®
+ = ((
+ušt32_t
+)1 << (
+pš
+ - 32));
+
+165 
+ušt32_t
+ 
+	`pšFunùiÚ
+((ušt32_t)2 << 
+FUN_DRV_S
+);
+
+166 
+pšFunùiÚ
+ |ð
+FUN_IE
+;
+
+167 
+pšFunùiÚ
+ |ð((
+ušt32_t
+)2 << 
+MCU_SEL_S
+);
+
+169 
+	`ESP_REG
+(
+DR_REG_IO_MUX_BASE
+ + 
+e¥32_gpioMux
+[
+pš
+].
+»g
+èð
+pšFunùiÚ
+;
+
+171 
+GPIO
+.
+pš
+[pš].
+v®
+ = 0;
+
+173 
+	}
+}
+
+175 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùModeOu�ut
+(
+IO_REG_TYPE
+ 
+pš
+) {
+
+176 ià(
+	`dig™®PšIsV®id
+(
+pš
+) &&…in <= 33)
+
+178 
+ušt32_t
+ 
+	`¹c_»g
+(
+¹c_gpio_desc
+[
+pš
+].
+»g
+);
+
+180 ià(
+¹c_»g
+)
+
+182 
+	`ESP_REG
+(
+¹c_»g
+èðESP_REGÔtc_»gè& ~(
+¹c_gpio_desc
+[
+pš
+].
+mux
+);
+
+183 
+	`ESP_REG
+(
+¹c_»g
+èðESP_REGÔtc_»gè& ~(
+¹c_gpio_desc
+[
+pš
+].
+puÎup
+ |„tc_gpio_desc[pš].
+puÎdown
+);
+
+186 ià(
+pš
+ < 32)
+
+187 
+GPIO
+.
+’abË_w1ts
+ = ((
+ušt32_t
+)1 << 
+pš
+);
+
+189 
+GPIO
+.
+’abË1_w1ts
+.
+v®
+ = ((
+ušt32_t
+)1 << (
+pš
+ - 32));
+
+191 
+ušt32_t
+ 
+	`pšFunùiÚ
+((ušt32_t)2 << 
+FUN_DRV_S
+);
+
+192 
+pšFunùiÚ
+ |ð
+FUN_IE
+;
+
+193 
+pšFunùiÚ
+ |ð((
+ušt32_t
+)2 << 
+MCU_SEL_S
+);
+
+195 
+	`ESP_REG
+(
+DR_REG_IO_MUX_BASE
+ + 
+e¥32_gpioMux
+[
+pš
+].
+»g
+èð
+pšFunùiÚ
+;
+
+197 
+GPIO
+.
+pš
+[pš].
+v®
+ = 0;
+
+199 
+	}
+}
+
+201 
+	#DIRECT_READ
+(
+ba£
+, 
+pš
+è
+	`dœeùR—d
+Õš)
+
+	)
+
+202 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+pš
+è
+	`dœeùWr™eLow
+Õš)
+
+	)
+
+203 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+pš
+è
+	`dœeùWr™eHigh
+Õš)
+
+	)
+
+204 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+pš
+è
+	`dœeùModeIÅut
+Õš)
+
+	)
+
+205 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+pš
+è
+	`dœeùModeOu�ut
+Õš)
+
+	)
+
+208 #ifdeà
+š‹¼u±s
+
+
+209 #undeà
+š‹¼u±s
+
+
+211 #ifdeà
+noIÁ”ru±s
+
+
+212 #undeà
+noIÁ”ru±s
+
+
+214 
+	#noIÁ”ru±s
+() \
+
+216 
+pÜtMUX_TYPE
+ 
+mux
+ = 
+pÜtMUX_INITIALIZER_UNLOCKED
+; \
+
+217 
+	`pÜtENTER_CRITICAL
+(&
+mux
+)
+
+	)
+
+218 
+	#š‹¼u±s
+() \
+
+219 
+	`pÜtEXIT_CRITICAL
+(&
+mux
+); \
+
+220 }
+
+	)
+
+223 #–ià
+defšed
+(
+ARDUINO_ARCH_STM32
+)
+
+224 
+	#PIN_TO_BASEREG
+(
+pš
+è(0)
+
+	)
+
+225 
+	#PIN_TO_BITMASK
+(
+pš
+è((
+ušt32_t
+)
+	`dig™®PšToPšName
+Õš))
+
+	)
+
+226 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+227 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+228 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+229 
+	#DIRECT_READ
+(
+ba£
+, 
+pš
+è
+	`dig™®R—dFa¡
+((
+PšName
+íš)
+
+	)
+
+230 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+pš
+è
+	`dig™®Wr™eFa¡
+((
+PšName
+íš, 
+LOW
+)
+
+	)
+
+231 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+pš
+è
+	`dig™®Wr™eFa¡
+((
+PšName
+íš, 
+HIGH
+)
+
+	)
+
+232 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+pš
+è
+	`pš_funùiÚ
+((
+PšName
+íš, 
+	`STM_PIN_DATA
+(
+STM_MODE_INPUT
+, 
+GPIO_NOPULL
+, 0))
+
+	)
+
+233 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+pš
+è
+	`pš_funùiÚ
+((
+PšName
+íš, 
+	`STM_PIN_DATA
+(
+STM_MODE_OUTPUT_PP
+, 
+GPIO_NOPULL
+, 0))
+
+	)
+
+235 #–ià
+defšed
+(
+__SAMD21G18A__
+)
+
+236 
+	#PIN_TO_BASEREG
+(
+pš
+è
+	`pÜtModeRegi¡”
+(
+	`dig™®PšToPÜt
+Õš))
+
+	)
+
+237 
+	#PIN_TO_BITMASK
+(
+pš
+è(
+	`dig™®PšToB™Mask
+Õš))
+
+	)
+
+238 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+239 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+240 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+241 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è(((*((ba£è+ 8)è& (mask)è? 1 : 0)
+
+	)
+
+242 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è((*((ba£è+ 1)èð(mask))
+
+	)
+
+243 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è((*((ba£è+ 2)èð(mask))
+
+	)
+
+244 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è((*((ba£è+ 5)èð(mask))
+
+	)
+
+245 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è((*((ba£è+ 6)èð(mask))
+
+	)
+
+247 #–ià
+defšed
+(
+__ASR6501__
+)
+
+248 
+	#PIN_IN_PORT
+(
+pš
+èÕš % 
+PIN_NUMBER_IN_PORT
+)
+
+	)
+
+249 
+	#PORT_FROM_PIN
+(
+pš
+èÕš / 
+PIN_NUMBER_IN_PORT
+)
+
+	)
+
+250 
+	#PORT_OFFSET
+(
+pÜt
+è(
+PORT_REG_SHFIT
+ *…Üt)
+
+	)
+
+251 
+	#PORT_ADDRESS
+(
+pš
+è(
+CYDEV_GPIO_BASE
+ + 
+	`PORT_OFFSET
+(
+	`PORT_FROM_PIN
+Õš)))
+
+	)
+
+253 
+	#PIN_TO_BASEREG
+(
+pš
+è(0)
+
+	)
+
+254 
+	#PIN_TO_BITMASK
+(
+pš
+èÕš)
+
+	)
+
+255 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+256 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+257 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+258 
+	#DIRECT_READ
+(
+ba£
+, 
+pš
+è
+	`CY_SYS_PINS_READ_PIN
+(
+	`PORT_ADDRESS
+Õšè+ 4, 
+	`PIN_IN_PORT
+Õš))
+
+	)
+
+259 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+pš
+è
+	`CY_SYS_PINS_CLEAR_PIN
+(
+	`PORT_ADDRESS
+Õš), 
+	`PIN_IN_PORT
+Õš))
+
+	)
+
+260 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+pš
+è
+	`CY_SYS_PINS_SET_PIN
+(
+	`PORT_ADDRESS
+Õš), 
+	`PIN_IN_PORT
+Õš))
+
+	)
+
+261 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+pš
+è
+	`CY_SYS_PINS_SET_DRIVE_MODE
+(
+	`PORT_ADDRESS
+Õšè+ 8, 
+	`PIN_IN_PORT
+Õš), 
+CY_SYS_PINS_DM_DIG_HIZ
+)
+
+	)
+
+262 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+pš
+è
+	`CY_SYS_PINS_SET_DRIVE_MODE
+(
+	`PORT_ADDRESS
+Õšè+ 8, 
+	`PIN_IN_PORT
+Õš), 
+CY_SYS_PINS_DM_STRONG
+)
+
+	)
+
+264 #–ià
+defšed
+(
+RBL_NRF51822
+)
+
+265 
+	#PIN_TO_BASEREG
+(
+pš
+è(0)
+
+	)
+
+266 
+	#PIN_TO_BITMASK
+(
+pš
+èÕš)
+
+	)
+
+267 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+268 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+269 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+270 
+	#DIRECT_READ
+(
+ba£
+, 
+pš
+è
+	`Äf_gpio_pš_»ad
+Õš)
+
+	)
+
+271 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+pš
+è
+	`Äf_gpio_pš_þ—r
+Õš)
+
+	)
+
+272 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+pš
+è
+	`Äf_gpio_pš_£t
+Õš)
+
+	)
+
+273 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+pš
+è
+	`Äf_gpio_cfg_šput
+Õš, 
+NRF_GPIO_PIN_NOPULL
+)
+
+	)
+
+274 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+pš
+è
+	`Äf_gpio_cfg_ou�ut
+Õš)
+
+	)
+
+276 #–ià
+defšed
+(
+__¬c__
+)
+
+278 
+	~"scss_»gi¡”s.h
+"
+
+279 
+	~"pÜ�bË.h
+"
+
+280 
+	~"avr/pgm¥aû.h
+"
+
+282 
+	#GPIO_ID
+(
+pš
+è(
+g_APšDesü�tiÚ
+[pš].
+ulGPIOId
+)
+
+	)
+
+283 
+	#GPIO_TYPE
+(
+pš
+è(
+g_APšDesü�tiÚ
+[pš].
+ulGPIOTy³
+)
+
+	)
+
+284 
+	#GPIO_BASE
+(
+pš
+è(
+g_APšDesü�tiÚ
+[pš].
+ulGPIOBa£
+)
+
+	)
+
+285 
+	#DIR_OFFSET_SS
+ 0x01
+
+	)
+
+286 
+	#DIR_OFFSET_SOC
+ 0x04
+
+	)
+
+287 
+	#EXT_PORT_OFFSET_SS
+ 0x0A
+
+	)
+
+288 
+	#EXT_PORT_OFFSET_SOC
+ 0x50
+
+	)
+
+291 
+	#PIN_TO_BASEREG
+(
+pš
+è((vÞ©ž�
+ušt32_t
+ *)
+g_APšDesü�tiÚ
+[pš].
+ulGPIOBa£
+)
+
+	)
+
+292 
+	#PIN_TO_BITMASK
+(
+pš
+è
+	)
+pin
+
+293 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+294 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+295 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+297 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+IO_REG_TYPE
+ 
+	$dœeùR—d
+(vÞ©ž�
+IO_REG_TYPE
+ * 
+ba£
+, IO_REG_TYPE 
+pš
+) {
+
+298 
+IO_REG_TYPE
+ 
+»t
+;
+
+299 ià(
+SS_GPIO
+ =ð
+	`GPIO_TYPE
+(
+pš
+)) {
+
+300 
+»t
+ = 
+	`READ_ARC_REG
+(((
+IO_REG_TYPE
+)
+ba£
+ + 
+EXT_PORT_OFFSET_SS
+));
+
+302 
+»t
+ = 
+	`MMIO_REG_VAL_FROM_BASE
+((
+IO_REG_TYPE
+)
+ba£
+, 
+EXT_PORT_OFFSET_SOC
+);
+
+304  ((
+»t
+ >> 
+	`GPIO_ID
+(
+pš
+)) & 0x01);
+
+305 
+	}
+}
+
+307 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùModeIÅut
+(vÞ©ž�
+IO_REG_TYPE
+ * 
+ba£
+, IO_REG_TYPE 
+pš
+) {
+
+308 ià(
+SS_GPIO
+ =ð
+	`GPIO_TYPE
+(
+pš
+)) {
+
+309 
+	`WRITE_ARC_REG
+(
+	`READ_ARC_REG
+((((
+IO_REG_TYPE
+)
+ba£
+è+ 
+DIR_OFFSET_SS
+)è& ~(0x01 << 
+	`GPIO_ID
+(
+pš
+)), ((IO_REG_TYPE)(base) + DIR_OFFSET_SS));
+
+311 
+	`MMIO_REG_VAL_FROM_BASE
+((
+IO_REG_TYPE
+)
+ba£
+, 
+DIR_OFFSET_SOC
+è&ð~(0x01 << 
+	`GPIO_ID
+(
+pš
+));
+
+313 
+	}
+}
+
+315 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùModeOu�ut
+(vÞ©ž�
+IO_REG_TYPE
+ * 
+ba£
+, IO_REG_TYPE 
+pš
+) {
+
+316 ià(
+SS_GPIO
+ =ð
+	`GPIO_TYPE
+(
+pš
+)) {
+
+317 
+	`WRITE_ARC_REG
+(
+	`READ_ARC_REG
+(((
+IO_REG_TYPE
+)(
+ba£
+è+ 
+DIR_OFFSET_SS
+)è| (0x01 << 
+	`GPIO_ID
+(
+pš
+)), ((IO_REG_TYPE)(base) + DIR_OFFSET_SS));
+
+319 
+	`MMIO_REG_VAL_FROM_BASE
+((
+IO_REG_TYPE
+)
+ba£
+, 
+DIR_OFFSET_SOC
+è|ð(0x01 << 
+	`GPIO_ID
+(
+pš
+));
+
+321 
+	}
+}
+
+323 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùWr™eLow
+(vÞ©ž�
+IO_REG_TYPE
+ * 
+ba£
+, IO_REG_TYPE 
+pš
+) {
+
+324 ià(
+SS_GPIO
+ =ð
+	`GPIO_TYPE
+(
+pš
+)) {
+
+325 
+	`WRITE_ARC_REG
+(
+	`READ_ARC_REG
+(
+ba£
+è& ~(0x01 << 
+	`GPIO_ID
+(
+pš
+)), base);
+
+327 
+	`MMIO_REG_VAL
+(
+ba£
+è&ð~(0x01 << 
+	`GPIO_ID
+(
+pš
+));
+
+329 
+	}
+}
+
+331 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùWr™eHigh
+(vÞ©ž�
+IO_REG_TYPE
+ * 
+ba£
+, IO_REG_TYPE 
+pš
+) {
+
+332 ià(
+SS_GPIO
+ =ð
+	`GPIO_TYPE
+(
+pš
+)) {
+
+333 
+	`WRITE_ARC_REG
+(
+	`READ_ARC_REG
+(
+ba£
+è| (0x01 << 
+	`GPIO_ID
+(
+pš
+)), base);
+
+335 
+	`MMIO_REG_VAL
+(
+ba£
+è|ð(0x01 << 
+	`GPIO_ID
+(
+pš
+));
+
+337 
+	}
+}
+
+339 
+	#DIRECT_READ
+(
+ba£
+, 
+pš
+è
+	`dœeùR—d
+(ba£,…š)
+
+	)
+
+340 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+pš
+è
+	`dœeùModeIÅut
+(ba£,…š)
+
+	)
+
+341 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+pš
+è
+	`dœeùModeOu�ut
+(ba£,…š)
+
+	)
+
+342 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+pš
+è
+	`dœeùWr™eLow
+(ba£,…š)
+
+	)
+
+343 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+pš
+è
+	`dœeùWr™eHigh
+(ba£,…š)
+
+	)
+
+345 #–ià
+defšed
+(
+__riscv
+)
+
+354 
+	#PIN_TO_BASEREG
+(
+pš
+è(0)
+
+	)
+
+355 
+	#PIN_TO_BITMASK
+(
+pš
+è
+	`dig™®PšToB™Mask
+Õš)
+
+	)
+
+356 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+357 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+358 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+360 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+IO_REG_TYPE
+ 
+	$dœeùR—d
+(
+IO_REG_TYPE
+ 
+mask
+) {
+
+361  ((
+	`GPIO_REG
+(
+GPIO_INPUT_VAL
+è& 
+mask
+) != 0) ? 1 : 0;
+
+362 
+	}
+}
+
+364 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùModeIÅut
+(
+IO_REG_TYPE
+ 
+mask
+) {
+
+365 
+	`GPIO_REG
+(
+GPIO_OUTPUT_XOR
+è&ð~
+mask
+;
+
+366 
+	`GPIO_REG
+(
+GPIO_IOF_EN
+è&ð~
+mask
+;
+
+368 
+	`GPIO_REG
+(
+GPIO_INPUT_EN
+è|ð
+mask
+;
+
+369 
+	`GPIO_REG
+(
+GPIO_OUTPUT_EN
+è&ð~
+mask
+;
+
+370 
+	}
+}
+
+372 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùModeOu�ut
+(
+IO_REG_TYPE
+ 
+mask
+) {
+
+373 
+	`GPIO_REG
+(
+GPIO_OUTPUT_XOR
+è&ð~
+mask
+;
+
+374 
+	`GPIO_REG
+(
+GPIO_IOF_EN
+è&ð~
+mask
+;
+
+376 
+	`GPIO_REG
+(
+GPIO_INPUT_EN
+è&ð~
+mask
+;
+
+377 
+	`GPIO_REG
+(
+GPIO_OUTPUT_EN
+è|ð
+mask
+;
+
+378 
+	}
+}
+
+380 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùWr™eLow
+(
+IO_REG_TYPE
+ 
+mask
+) {
+
+381 
+	`GPIO_REG
+(
+GPIO_OUTPUT_VAL
+è&ð~
+mask
+;
+
+382 
+	}
+}
+
+384 
+šlše
+ 
+__©Œibu‹__
+((
+®ways_šlše
+)è
+	$dœeùWr™eHigh
+(
+IO_REG_TYPE
+ 
+mask
+) {
+
+385 
+	`GPIO_REG
+(
+GPIO_OUTPUT_VAL
+è|ð
+mask
+;
+
+386 
+	}
+}
+
+388 
+	#DIRECT_READ
+(
+ba£
+, 
+mask
+è
+	`dœeùR—d
+(mask)
+
+	)
+
+389 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+mask
+è
+	`dœeùWr™eLow
+(mask)
+
+	)
+
+390 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+mask
+è
+	`dœeùWr™eHigh
+(mask)
+
+	)
+
+391 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+mask
+è
+	`dœeùModeIÅut
+(mask)
+
+	)
+
+392 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+mask
+è
+	`dœeùModeOu�ut
+(mask)
+
+	)
+
+395 
+	#PIN_TO_BASEREG
+(
+pš
+è(0)
+
+	)
+
+396 
+	#PIN_TO_BITMASK
+(
+pš
+èÕš)
+
+	)
+
+397 
+	#IO_REG_TYPE
+ 
+
+	)
+
+398 
+	#IO_REG_BASE_ATTR
+
+
+	)
+
+399 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+400 
+	#DIRECT_READ
+(
+ba£
+, 
+pš
+è
+	`dig™®R—d
+Õš)
+
+	)
+
+401 
+	#DIRECT_WRITE_LOW
+(
+ba£
+, 
+pš
+è
+	`dig™®Wr™e
+Õš, 
+LOW
+)
+
+	)
+
+402 
+	#DIRECT_WRITE_HIGH
+(
+ba£
+, 
+pš
+è
+	`dig™®Wr™e
+Õš, 
+HIGH
+)
+
+	)
+
+403 
+	#DIRECT_MODE_INPUT
+(
+ba£
+, 
+pš
+è
+	`pšMode
+Õš, 
+INPUT
+)
+
+	)
+
+404 
+	#DIRECT_MODE_OUTPUT
+(
+ba£
+, 
+pš
+è
+	`pšMode
+Õš, 
+OUTPUT
+)
+
+	)
+
+	@lib/OneWire/OneWire_direct_regtype.h
+
+1 #iâdeà
+OÃWœe_Dœeù_RegTy³_h
+
+
+2 
+	#OÃWœe_Dœeù_RegTy³_h
+
+
+	)
+
+4 
+	~<¡dšt.h
+>
+
+8 #ià
+defšed
+(
+__AVR__
+)
+
+9 
+	#IO_REG_TYPE
+ 
+ušt8_t
+
+
+	)
+
+11 #–ià
+defšed
+(
+__MK20DX128__
+è|| defšed(
+__MK20DX256__
+è|| defšed(
+__MK66FX1M0__
+è|| defšed(
+__MK64FX512__
+)
+
+12 
+	#IO_REG_TYPE
+ 
+ušt8_t
+
+
+	)
+
+14 #–ià
+defšed
+(
+__IMXRT1052__
+è|| defšed(
+__IMXRT1062__
+)
+
+15 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+17 #–ià
+defšed
+(
+__MKL26Z64__
+)
+
+18 
+	#IO_REG_TYPE
+ 
+ušt8_t
+
+
+	)
+
+20 #–ià
+defšed
+(
+__SAM3X8E__
+è|| defšed(
+__SAM3A8C__
+è|| defšed(
+__SAM3A4C__
+)
+
+21 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+23 #–ià
+defšed
+(
+__PIC32MX__
+)
+
+24 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+26 #–ià
+defšed
+(
+ARDUINO_ARCH_ESP8266
+)
+
+27 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+29 #–ià
+defšed
+(
+ARDUINO_ARCH_ESP32
+)
+
+30 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+31 
+	#IO_REG_MASK_ATTR
+
+
+	)
+
+33 #–ià
+defšed
+(
+ARDUINO_ARCH_STM32
+)
+
+34 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+36 #–ià
+defšed
+(
+__SAMD21G18A__
+)
+
+37 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+39 #–ià
+defšed
+(
+__ASR6501__
+)
+
+40 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+42 #–ià
+defšed
+(
+RBL_NRF51822
+)
+
+43 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+45 #–ià
+defšed
+(
+__¬c__
+)
+
+46 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+48 #–ià
+defšed
+(
+__riscv
+)
+
+49 
+	#IO_REG_TYPE
+ 
+ušt32_t
+
+
+	)
+
+52 
+	#IO_REG_TYPE
+ 
+
+	)
+
+	@lib/framework/APSettingsService.cpp
+
+1 
+	~<APS‘tšgsS”viû.h
+>
+
+3 
+	gAPS‘tšgsS”viû
+::
+	$APS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) :
+
+4 
+	`_h‰pEndpošt
+(
+APS‘tšgs
+::
+»ad
+, APS‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+AP_SETTINGS_SERVICE_PATH
+, 
+£cur™yMªag”
+),
+
+5 
+	`_fsP”si¡’û
+(
+APS‘tšgs
+::
+»ad
+, APS‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+AP_SETTINGS_FILE
+),
+
+6 
+	`_dnsS”v”
+(
+nuÎ±r
+),
+
+7 
+	`_Ï¡Mªaged
+(0),
+
+8 
+	$_»cÚfigu»Ap
+(
+çl£
+) {
+
+9 
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+& 
+ÜigšId
+è{ 
+	`»cÚfigu»AP
+(); }, 
+çl£
+);
+
+10 
+	}
+}
+
+12 
+	gAPS‘tšgsS”viû
+::
+	$begš
+() {
+
+13 
+_fsP”si¡’û
+.
+	`»adFromFS
+();
+
+14 
+	`»cÚfigu»AP
+();
+
+15 
+	}
+}
+
+17 
+	gAPS‘tšgsS”viû
+::
+	$»cÚfigu»AP
+() {
+
+18 
+_Ï¡Mªaged
+ = 
+uuid
+::
+	`g‘_u±ime
+(è- 
+MANAGE_NETWORK_DELAY
+;
+
+19 
+_»cÚfigu»Ap
+ = 
+Œue
+;
+
+20 
+	}
+}
+
+22 
+	gAPS‘tšgsS”viû
+::
+	$loÝ
+() {
+
+23 
+cu¼’tMžlis
+ = 
+uuid
+::
+	`g‘_u±ime
+();
+
+24 
+mªageEÏp£d
+ = ()(
+cu¼’tMžlis
+ - 
+_Ï¡Mªaged
+);
+
+25 ià(
+mªageEÏp£d
+ >ð
+MANAGE_NETWORK_DELAY
+) {
+
+26 
+_Ï¡Mªaged
+ = 
+cu¼’tMžlis
+;
+
+27 
+	`mªageAP
+();
+
+29 
+	`hªdËDNS
+();
+
+30 
+	}
+}
+
+32 
+	gAPS‘tšgsS”viû
+::
+	$mªageAP
+() {
+
+33 
+WiFiMode_t
+ 
+cu¼’tWiFiMode
+ = 
+WiFi
+.
+	`g‘Mode
+();
+
+34 ià(
+_¡©e
+.
+´ovisiÚMode
+ =ð
+AP_MODE_ALWAYS
+ ||
+
+35 (
+_¡©e
+.
+´ovisiÚMode
+ =ð
+AP_MODE_DISCONNECTED
+ && 
+WiFi
+.
+	`¡©us
+(è!ð
+WL_CONNECTED
+)) {
+
+36 ià(
+_»cÚfigu»Ap
+ || 
+cu¼’tWiFiMode
+ =ð
+WIFI_OFF
+ || cu¼’tWiFiMod�=ð
+WIFI_STA
+) {
+
+37 
+	`¡¬tAP
+();
+
+39 } ià((
+cu¼’tWiFiMode
+ =ð
+WIFI_AP
+ || cu¼’tWiFiMod�=ð
+WIFI_AP_STA
+) &&
+
+40 (
+_»cÚfigu»Ap
+ || !
+WiFi
+.
+	`soáAPg‘S�tiÚNum
+())) {
+
+41 
+	`¡ÝAP
+();
+
+43 
+_»cÚfigu»Ap
+ = 
+çl£
+;
+
+44 
+	}
+}
+
+46 
+	gAPS‘tšgsS”viû
+::
+	$¡¬tAP
+() {
+
+48 
+WiFi
+.
+	`soáAPCÚfig
+(
+_¡©e
+.
+loÿlIP
+, _¡©e.
+g©ewayIP
+, _¡©e.
+subÃtMask
+);
+
+49 
+WiFi
+.
+	`soáAP
+(
+_¡©e
+.
+ssid
+.
+	`c_¡r
+(), _¡©e.
+·sswÜd
+.c_str());
+
+50 ià(!
+_dnsS”v”
+) {
+
+51 
+IPAdd»ss
+ 
+­Ip
+ = 
+WiFi
+.
+	`soáAPIP
+();
+
+54 
+_dnsS”v”
+ = 
+Ãw
+ 
+DNSS”v”
+;
+
+55 
+_dnsS”v”
+->
+	`¡¬t
+(
+DNS_PORT
+, "*", 
+­Ip
+);
+
+57 
+	}
+}
+
+59 
+	gAPS‘tšgsS”viû
+::
+	$¡ÝAP
+() {
+
+60 ià(
+_dnsS”v”
+) {
+
+62 
+_dnsS”v”
+->
+	`¡Ý
+();
+
+63 
+d–‘e
+ 
+_dnsS”v”
+;
+
+64 
+_dnsS”v”
+ = 
+nuÎ±r
+;
+
+67 
+WiFi
+.
+	`soáAPdiscÚÃù
+(
+Œue
+);
+
+68 
+	}
+}
+
+70 
+	gAPS‘tšgsS”viû
+::
+	$hªdËDNS
+() {
+
+71 ià(
+_dnsS”v”
+) {
+
+72 
+_dnsS”v”
+->
+	`´oûssNextReque¡
+();
+
+74 
+	}
+}
+
+76 
+APN‘wÜkS�tus
+ 
+	gAPS‘tšgsS”viû
+::
+	$g‘APN‘wÜkS�tus
+() {
+
+77 
+WiFiMode_t
+ 
+cu¼’tWiFiMode
+ = 
+WiFi
+.
+	`g‘Mode
+();
+
+78 
+boÞ
+ 
+­Aùive
+ = 
+cu¼’tWiFiMode
+ =ð
+WIFI_AP
+ || cu¼’tWiFiMod�=ð
+WIFI_AP_STA
+;
+
+79 ià(
+­Aùive
+ && 
+_¡©e
+.
+´ovisiÚMode
+ !ð
+AP_MODE_ALWAYS
+ && 
+WiFi
+.
+	`¡©us
+(è=ð
+WL_CONNECTED
+) {
+
+80  
+APN‘wÜkS�tus
+::
+LINGERING
+;
+
+82  
+­Aùive
+ ? 
+APN‘wÜkS�tus
+::
+ACTIVE
+ : APN‘wÜkS�tus::
+INACTIVE
+;
+
+83 
+	}
+}
+
+	@lib/framework/APSettingsService.h
+
+1 #iâdeà
+APS‘tšgsCÚfig_h
+
+
+2 
+	#APS‘tšgsCÚfig_h
+
+
+	)
+
+4 
+	~<H‰pEndpošt.h
+>
+
+5 
+	~<FSP”si¡’û.h
+>
+
+6 
+	~<JsÚUtžs.h
+>
+
+8 
+	~<DNSS”v”.h
+>
+
+9 
+	~<IPAdd»ss.h
+>
+
+10 
+	~<uuid/commÚ.h
+>
+
+13 
+	#MANAGE_NETWORK_DELAY
+ 10000
+
+	)
+
+15 
+	#AP_MODE_ALWAYS
+ 0
+
+	)
+
+16 
+	#AP_MODE_DISCONNECTED
+ 1
+
+	)
+
+17 
+	#AP_MODE_NEVER
+ 2
+
+	)
+
+19 
+	#DNS_PORT
+ 53
+
+	)
+
+21 #iâdeà
+FACTORY_AP_PROVISION_MODE
+
+
+22 
+	#FACTORY_AP_PROVISION_MODE
+ 
+AP_MODE_DISCONNECTED
+
+
+	)
+
+25 #iâdeà
+FACTORY_AP_SSID
+
+
+26 
+	#FACTORY_AP_SSID
+ "ems-e¥"
+
+	)
+
+29 #iâdeà
+FACTORY_AP_PASSWORD
+
+
+30 
+	#FACTORY_AP_PASSWORD
+ "e¥-»aù"
+
+	)
+
+33 #iâdeà
+FACTORY_AP_LOCAL_IP
+
+
+34 
+	#FACTORY_AP_LOCAL_IP
+ "192.168.4.1"
+
+	)
+
+37 #iâdeà
+FACTORY_AP_GATEWAY_IP
+
+
+38 
+	#FACTORY_AP_GATEWAY_IP
+ "192.168.4.1"
+
+	)
+
+41 #iâdeà
+FACTORY_AP_SUBNET_MASK
+
+
+42 
+	#FACTORY_AP_SUBNET_MASK
+ "255.255.255.0"
+
+	)
+
+45 
+	#AP_SETTINGS_FILE
+ "/cÚfig/­S‘tšgs.jsÚ"
+
+	)
+
+46 
+	#AP_SETTINGS_SERVICE_PATH
+ "/»¡/­S‘tšgs"
+
+	)
+
+48 
+	eAPN‘wÜkS�tus
+ { 
+	mACTIVE
+ = 0, 
+	mINACTIVE
+, 
+	mLINGERING
+ };
+
+50 þas 
+	cAPS‘tšgs
+ {
+
+51 
+	mpublic
+:
+
+52 
+ušt8_t
+ 
+´ovisiÚMode
+;
+
+53 
+SŒšg
+ 
+	mssid
+;
+
+54 
+SŒšg
+ 
+	m·sswÜd
+;
+
+55 
+IPAdd»ss
+ 
+	mloÿlIP
+;
+
+56 
+IPAdd»ss
+ 
+	mg©ewayIP
+;
+
+57 
+IPAdd»ss
+ 
+	msubÃtMask
+;
+
+59 
+boÞ
+ 
+	mÝ”©Ü
+==(cÚ¡ 
+APS‘tšgs
+& 
+£‰šgs
+) const {
+
+60  
+´ovisiÚMode
+ =ð
+£‰šgs
+.´ovisiÚMod�&& 
+ssid
+ =ð£‰šgs.ssid && 
+·sswÜd
+ == settings.password &&
+
+61 
+loÿlIP
+ =ð
+£‰šgs
+.loÿlIP && 
+g©ewayIP
+ =ð£‰šgs.g©ewayIP && 
+subÃtMask
+ == settings.subnetMask;
+
+64 
+	$»ad
+(
+APS‘tšgs
+& 
+£‰šgs
+, 
+JsÚObjeù
+& 
+roÙ
+) {
+
+65 
+roÙ
+["´ovisiÚ_mode"] = 
+£‰šgs
+.
+´ovisiÚMode
+;
+
+66 
+roÙ
+["ssid"] = 
+£‰šgs
+.
+ssid
+;
+
+67 
+roÙ
+["·sswÜd"] = 
+£‰šgs
+.
+·sswÜd
+;
+
+68 
+roÙ
+["loÿl_�"] = 
+£‰šgs
+.
+loÿlIP
+.
+	`toSŒšg
+();
+
+69 
+roÙ
+["g©eway_�"] = 
+£‰šgs
+.
+g©ewayIP
+.
+	`toSŒšg
+();
+
+70 
+roÙ
+["subÃt_mask"] = 
+£‰šgs
+.
+subÃtMask
+.
+	`toSŒšg
+();
+
+71 
+	}
+}
+
+73 
+S�‹Upd©eResuÉ
+ 
+	$upd©e
+(
+JsÚObjeù
+& 
+roÙ
+, 
+APS‘tšgs
+& 
+£‰šgs
+) {
+
+74 
+APS‘tšgs
+ 
+ÃwS‘tšgs
+ = {};
+
+75 
+ÃwS‘tšgs
+.
+´ovisiÚMode
+ = 
+roÙ
+["´ovisiÚ_mode"] | 
+FACTORY_AP_PROVISION_MODE
+;
+
+76 
+£‰šgs
+.
+´ovisiÚMode
+) {
+
+77 
+AP_MODE_ALWAYS
+:
+
+78 
+AP_MODE_DISCONNECTED
+:
+
+79 
+AP_MODE_NEVER
+:
+
+82 
+ÃwS‘tšgs
+.
+´ovisiÚMode
+ = 
+AP_MODE_ALWAYS
+;
+
+84 
+ÃwS‘tšgs
+.
+ssid
+ = 
+roÙ
+["ssid"] | 
+FACTORY_AP_SSID
+;
+
+85 
+ÃwS‘tšgs
+.
+·sswÜd
+ = 
+roÙ
+["·sswÜd"] | 
+FACTORY_AP_PASSWORD
+;
+
+87 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "loÿl_�", 
+ÃwS‘tšgs
+.
+loÿlIP
+, 
+FACTORY_AP_LOCAL_IP
+);
+
+88 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "g©eway_�", 
+ÃwS‘tšgs
+.
+g©ewayIP
+, 
+FACTORY_AP_GATEWAY_IP
+);
+
+89 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "subÃt_mask", 
+ÃwS‘tšgs
+.
+subÃtMask
+, 
+FACTORY_AP_SUBNET_MASK
+);
+
+91 ià(
+ÃwS‘tšgs
+ =ð
+£‰šgs
+) {
+
+92  
+S�‹Upd©eResuÉ
+::
+UNCHANGED
+;
+
+94 
+£‰šgs
+ = 
+ÃwS‘tšgs
+;
+
+95  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+96 
+	}
+}
+
+99 
+þass
+ 
+	gAPS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+APS‘tšgs
+> {
+
+100 
+public
+:
+
+101 
+APS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+103 
+begš
+();
+
+104 
+loÝ
+();
+
+105 
+APN‘wÜkS�tus
+ 
+g‘APN‘wÜkS�tus
+();
+
+107 
+	g´iv©e
+:
+
+108 
+H‰pEndpošt
+<
+APS‘tšgs
+> 
+_h‰pEndpošt
+;
+
+109 
+	gFSP”si¡’û
+<
+	gAPS‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+112 
+DNSS”v”
+* 
+	g_dnsS”v”
+;
+
+115 vÞ©ž�
+	g_Ï¡Mªaged
+;
+
+116 vÞ©ž�
+boÞ—n
+ 
+	g_»cÚfigu»Ap
+;
+
+118 
+»cÚfigu»AP
+();
+
+119 
+mªageAP
+();
+
+120 
+¡¬tAP
+();
+
+121 
+¡ÝAP
+();
+
+122 
+hªdËDNS
+();
+
+	@lib/framework/APStatus.cpp
+
+1 
+	~<APS�tus.h
+>
+
+3 
+	gAPS�tus
+::
+	$APS�tus
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+, 
+APS‘tšgsS”viû
+* 
+­S‘tšgsS”viû
+) :
+
+4 
+	$_­S‘tšgsS”viû
+(
+­S‘tšgsS”viû
+) {
+
+5 
+£rv”
+->
+	`Ú
+(
+AP_STATUS_SERVICE_PATH
+,
+
+6 
+HTTP_GET
+,
+
+7 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+APS�tus
+::
+­S�tus
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+8 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+9 
+	}
+}
+
+11 
+	gAPS�tus
+::
+	$­S�tus
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+12 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_AP_STATUS_SIZE
+);
+
+13 
+JsÚObjeù
+ 
+roÙ
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+15 
+roÙ
+["¡©us"] = 
+_­S‘tšgsS”viû
+->
+	`g‘APN‘wÜkS�tus
+();
+
+16 
+roÙ
+["�_add»ss"] = 
+WiFi
+.
+	`soáAPIP
+().
+	`toSŒšg
+();
+
+17 
+roÙ
+["mac_add»ss"] = 
+WiFi
+.
+	`soáAPmacAdd»ss
+();
+
+18 
+roÙ
+["¡©iÚ_num"] = 
+WiFi
+.
+	`soáAPg‘S�tiÚNum
+();
+
+20 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+21 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+22 
+	}
+}
+
+	@lib/framework/APStatus.h
+
+1 #iâdeà
+APS�tus_h
+
+
+2 
+	#APS�tus_h
+
+
+	)
+
+4 #ifdeà
+ESP32
+
+
+5 
+	~<WiFi.h
+>
+
+6 
+	~<AsyncTCP.h
+>
+
+7 #–ià
+defšed
+(
+ESP8266
+)
+
+8 
+	~<ESP8266WiFi.h
+>
+
+9 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~<ArdušoJsÚ.h
+>
+
+13 
+	~<AsyncJsÚ.h
+>
+
+14 
+	~<ESPAsyncWebS”v”.h
+>
+
+15 
+	~<IPAdd»ss.h
+>
+
+16 
+	~<Secur™yMªag”.h
+>
+
+17 
+	~<APS‘tšgsS”viû.h
+>
+
+19 
+	#MAX_AP_STATUS_SIZE
+ 1024
+
+	)
+
+20 
+	#AP_STATUS_SERVICE_PATH
+ "/»¡/­S�tus"
+
+	)
+
+22 þas 
+	cAPS�tus
+ {
+
+23 
+	mpublic
+:
+
+24 
+APS�tus
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+, 
+APS‘tšgsS”viû
+* 
+­S‘tšgsS”viû
+);
+
+26 
+	m´iv©e
+:
+
+27 
+APS‘tšgsS”viû
+* 
+_­S‘tšgsS”viû
+;
+
+28 
+­S�tus
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+	@lib/framework/ArduinoJsonJWT.cpp
+
+1 
+	~"ArdušoJsÚJWT.h
+"
+
+3 
+	gArdušoJsÚJWT
+::
+	$ArdušoJsÚJWT
+(
+SŒšg
+ 
+£ü‘
+è: 
+	$_£ü‘
+(
+£ü‘
+) {
+
+4 
+	}
+}
+
+6 
+ArdušoJsÚJWT
+::
+	$£tSeü‘
+(
+SŒšg
+ 
+£ü‘
+) {
+
+7 
+_£ü‘
+ = 
+£ü‘
+;
+
+8 
+	}
+}
+
+10 
+SŒšg
+ 
+	gArdušoJsÚJWT
+::
+	$g‘Seü‘
+() {
+
+11  
+_£ü‘
+;
+
+12 
+	}
+}
+
+21 
+SŒšg
+ 
+	gArdušoJsÚJWT
+::
+	$sign
+(
+SŒšg
+& 
+·ylßd
+) {
+
+22 
+hmacResuÉ
+[32];
+
+24 #ifdeà
+ESP32
+
+
+25 
+mbedŽs_md_cÚ‹xt_t
+ 
+ùx
+;
+
+26 
+mbedŽs_md_ty³_t
+ 
+md_ty³
+ = 
+MBEDTLS_MD_SHA256
+;
+
+27 
+	`mbedŽs_md_š™
+(&
+ùx
+);
+
+28 
+	`mbedŽs_md_£tup
+(&
+ùx
+, 
+	`mbedŽs_md_šfo_äom_ty³
+(
+md_ty³
+), 1);
+
+29 
+	`mbedŽs_md_hmac_¡¬ts
+(&
+ùx
+, (*)
+_£ü‘
+.
+	`c_¡r
+(), _£ü‘.
+	`Ëngth
+());
+
+30 
+	`mbedŽs_md_hmac_upd©e
+(&
+ùx
+, (*)
+·ylßd
+.
+	`c_¡r
+(),…aylßd.
+	`Ëngth
+());
+
+31 
+	`mbedŽs_md_hmac_fšish
+(&
+ùx
+, 
+hmacResuÉ
+);
+
+32 
+	`mbedŽs_md_ä“
+(&
+ùx
+);
+
+33 #–ià
+	`defšed
+(
+ESP8266
+)
+
+34 
+br_hmac_key_cÚ‹xt
+ 
+keyCtx
+;
+
+35 
+	`br_hmac_key_š™
+(&
+keyCtx
+, &
+br_sha256_v�bË
+, 
+_£ü‘
+.
+	`c_¡r
+(), _£ü‘.
+	`Ëngth
+());
+
+36 
+br_hmac_cÚ‹xt
+ 
+hmacCtx
+;
+
+37 
+	`br_hmac_š™
+(&
+hmacCtx
+, &
+keyCtx
+, 0);
+
+38 
+	`br_hmac_upd©e
+(&
+hmacCtx
+, 
+·ylßd
+.
+	`c_¡r
+(),…aylßd.
+	`Ëngth
+());
+
+39 
+	`br_hmac_out
+(&
+hmacCtx
+, 
+hmacResuÉ
+);
+
+42  
+	`’code
+((*)
+hmacResuÉ
+, 32);
+
+43 
+	}
+}
+
+45 
+SŒšg
+ 
+	gArdušoJsÚJWT
+::
+	$buždJWT
+(
+JsÚObjeù
+& 
+·ylßd
+) {
+
+47 
+SŒšg
+ 
+jwt
+;
+
+48 
+	`£rŸlizeJsÚ
+(
+·ylßd
+, 
+jwt
+);
+
+49 
+jwt
+ = 
+	`’code
+(jwt.
+	`c_¡r
+(), jwt.
+	`Ëngth
+());
+
+52 
+jwt
+ = 
+JWT_HEADER
+ + '.' + jwt;
+
+55 
+jwt
+ +ð'.' + 
+	`sign
+(jwt);
+
+57  
+jwt
+;
+
+58 
+	}
+}
+
+60 
+	gArdušoJsÚJWT
+::
+	$·r£JWT
+(
+SŒšg
+ 
+jwt
+, 
+JsÚDocum’t
+& 
+jsÚDocum’t
+) {
+
+62 
+jsÚDocum’t
+.
+	`þ—r
+();
+
+65 ià(!
+jwt
+.
+	`¡¬tsW™h
+(
+JWT_HEADER
+è|| jwt.
+	`šdexOf
+('.'è!ð
+JWT_HEADER_SIZE
+) {
+
+70 
+sigÇtu»D–im™”Index
+ = 
+jwt
+.
+	`Ï¡IndexOf
+('.');
+
+71 ià(
+sigÇtu»D–im™”Index
+ =ð
+JWT_HEADER_SIZE
+) {
+
+76 
+SŒšg
+ 
+sigÇtu»
+ = 
+jwt
+.
+	`sub¡ršg
+(
+sigÇtu»D–im™”Index
+ + 1);
+
+77 
+jwt
+ = jwt.
+	`sub¡ršg
+(0, 
+sigÇtu»D–im™”Index
+);
+
+78 ià(
+	`sign
+(
+jwt
+è!ð
+sigÇtu»
+) {
+
+83 
+jwt
+ = jwt.
+	`sub¡ršg
+(
+JWT_HEADER_SIZE
+ + 1);
+
+84 
+jwt
+ = 
+	`decode
+(jwt);
+
+87 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeJsÚ
+(
+jsÚDocum’t
+, 
+jwt
+);
+
+88 ià(
+”rÜ
+ !ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+ || !
+jsÚDocum’t
+.
+is
+<
+JsÚObjeù
+>()) {
+
+89 
+jsÚDocum’t
+.
+	`þ—r
+();
+
+91 
+	}
+}
+
+93 
+SŒšg
+ 
+	gArdušoJsÚJWT
+::
+	$’code
+(cÚ¡ * 
+c¡r
+, 
+šputL’
+) {
+
+95 
+ba£64_’code¡©e
+ 
+_¡©e
+;
+
+96 #ifdeà
+ESP32
+
+
+97 
+	`ba£64_š™_’code¡©e
+(&
+_¡©e
+);
+
+98 
+size_t
+ 
+’codedL’gth
+ = 
+	`ba£64_’code_ex³ùed_Ën
+(
+šputL’
+) + 1;
+
+99 #–ià
+	`defšed
+(
+ESP8266
+)
+
+100 
+	`ba£64_š™_’code¡©e_nÚewlšes
+(&
+_¡©e
+);
+
+101 
+size_t
+ 
+’codedL’gth
+ = 
+	`ba£64_’code_ex³ùed_Ën_nÚewlšes
+(
+šputL’
+) + 1;
+
+104 * 
+bufãr
+ = (*)
+	`m®loc
+(
+’codedL’gth
+ * ());
+
+105 ià(
+bufãr
+ =ð
+nuÎ±r
+) {
+
+110 
+Ën
+ = 
+	`ba£64_’code_block
+(
+c¡r
+, 
+šputL’
+, &
+bufãr
+[0], &
+_¡©e
+);
+
+111 
+Ën
+ +ð
+	`ba£64_’code_block’d
+(&
+bufãr
+[Ën], &
+_¡©e
+);
+
+112 
+bufãr
+[
+Ën
+] = 0;
+
+115 
+SŒšg
+ 
+v®ue
+ = 
+	`SŒšg
+(
+bufãr
+);
+
+116 
+	`ä“
+(
+bufãr
+);
+
+117 
+bufãr
+ = 
+nuÎ±r
+;
+
+120 
+v®ue
+.
+	`Ëngth
+(è> 0 && v®ue.
+	`ch¬At
+(value.length() - 1) == '=') {
+
+121 
+v®ue
+.
+	`»move
+(v®ue.
+	`Ëngth
+() - 1);
+
+123 
+v®ue
+.
+	`»¶aû
+('+', '-');
+
+124 
+v®ue
+.
+	`»¶aû
+('/', '_');
+
+127  
+v®ue
+;
+
+128 
+	}
+}
+
+130 
+SŒšg
+ 
+	gArdušoJsÚJWT
+::
+	$decode
+(
+SŒšg
+ 
+v®ue
+) {
+
+132 
+v®ue
+.
+	`»¶aû
+('-', '+');
+
+133 
+v®ue
+.
+	`»¶aû
+('_', '/');
+
+136 
+bufãr
+[
+	`ba£64_decode_ex³ùed_Ën
+(
+v®ue
+.
+	`Ëngth
+()) + 1];
+
+139 
+Ën
+ = 
+	`ba£64_decode_ch¬s
+(
+v®ue
+.
+	`c_¡r
+(), v®ue.
+	`Ëngth
+(), &
+bufãr
+[0]);
+
+140 
+bufãr
+[
+Ën
+] = 0;
+
+143  
+	`SŒšg
+(
+bufãr
+);
+
+144 
+	}
+}
+
+	@lib/framework/ArduinoJsonJWT.h
+
+1 #iâdeà
+ArdušoJsÚJWT_H
+
+
+2 
+	#ArdušoJsÚJWT_H
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<libb64/cdecode.h
+>
+
+7 
+	~<libb64/ûncode.h
+>
+
+9 #ifdeà
+ESP32
+
+
+10 
+	~<mbedŽs/md.h
+>
+
+11 #–ià
+defšed
+(
+ESP8266
+)
+
+12 
+	~<b—rs¦/b—rs¦_hmac.h
+>
+
+15 þas 
+	cArdušoJsÚJWT
+ {
+
+16 
+	m´iv©e
+:
+
+17 
+SŒšg
+ 
+_£ü‘
+;
+
+19 cÚ¡ 
+SŒšg
+ 
+	mJWT_HEADER
+ = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
+
+20 cÚ¡ 
+	mJWT_HEADER_SIZE
+ = 
+JWT_HEADER
+.
+Ëngth
+();
+
+22 
+SŒšg
+ 
+sign
+(SŒšg& 
+v®ue
+);
+
+24 
+SŒšg
+ 
+’code
+(cÚ¡ * 
+c¡r
+, 
+Ën
+);
+
+25 
+SŒšg
+ 
+decode
+(SŒšg 
+v®ue
+);
+
+27 
+	mpublic
+:
+
+28 
+ArdušoJsÚJWT
+(
+SŒšg
+ 
+£ü‘
+);
+
+30 
+£tSeü‘
+(
+SŒšg
+ 
+£ü‘
+);
+
+31 
+SŒšg
+ 
+g‘Seü‘
+();
+
+33 
+SŒšg
+ 
+buždJWT
+(
+JsÚObjeù
+& 
+·ylßd
+);
+
+34 
+·r£JWT
+(
+SŒšg
+ 
+jwt
+, 
+JsÚDocum’t
+& 
+jsÚDocum’t
+);
+
+	@lib/framework/AuthenticationService.cpp
+
+1 
+	~<Auth’tiÿtiÚS”viû.h
+>
+
+3 #ià
+FT_ENABLED
+(
+FT_SECURITY
+)
+
+5 
+	gAuth’tiÿtiÚS”viû
+::
+	$Auth’tiÿtiÚS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) :
+
+6 
+	`_£cur™yMªag”
+(
+£cur™yMªag”
+),
+
+7 
+	`_signInHªdËr
+(
+SIGN_IN_PATH
+,
+
+8 
+¡d
+::
+	$bšd
+(&
+Auth’tiÿtiÚS”viû
+::
+signIn
+, 
+this
+, 
+¡d
+::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+)) {
+
+9 
+£rv”
+->
+	`Ú
+(
+VERIFY_AUTHORIZATION_PATH
+,
+
+10 
+HTTP_GET
+,
+
+11 
+¡d
+::
+	`bšd
+(&
+Auth’tiÿtiÚS”viû
+::
+v”ifyAuthÜiz©iÚ
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+12 
+_signInHªdËr
+.
+	`£tM‘hod
+(
+HTTP_POST
+);
+
+13 
+_signInHªdËr
+.
+	`£tMaxCÚ‹ÁL’gth
+(
+MAX_AUTHENTICATION_SIZE
+);
+
+14 
+£rv”
+->
+	`addHªdËr
+(&
+_signInHªdËr
+);
+
+15 
+	}
+}
+
+20 
+	gAuth’tiÿtiÚS”viû
+::
+	$v”ifyAuthÜiz©iÚ
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+21 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+_£cur™yMªag”
+->
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+22 
+»que¡
+->
+	`£nd
+(
+auth’tiÿtiÚ
+.
+auth’tiÿ‹d
+ ? 200 : 401);
+
+23 
+	}
+}
+
+29 
+	gAuth’tiÿtiÚS”viû
+::
+	$signIn
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+) {
+
+30 ià(
+jsÚ
+.
+is
+<
+JsÚObjeù
+>()) {
+
+31 
+SŒšg
+ 
+u£ºame
+ = 
+jsÚ
+["username"];
+
+32 
+SŒšg
+ 
+·sswÜd
+ = 
+jsÚ
+["password"];
+
+33 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+_£cur™yMªag”
+->
+	`auth’tiÿ‹
+(
+u£ºame
+, 
+·sswÜd
+);
+
+34 ià(
+auth’tiÿtiÚ
+.
+auth’tiÿ‹d
+) {
+
+35 
+U£r
+* 
+u£r
+ = 
+auth’tiÿtiÚ
+.user;
+
+36 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_AUTHENTICATION_SIZE
+);
+
+37 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+38 
+jsÚObjeù
+["acûss_tok’"] = 
+_£cur™yMªag”
+->
+	`g’”©eJWT
+(
+u£r
+);
+
+39 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+40 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+44 
+AsyncWebS”v”Re¥Ú£
+* 
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£
+(401);
+
+45 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+46 
+	}
+}
+
+	@lib/framework/AuthenticationService.h
+
+1 #iâdeà
+Auth’tiÿtiÚS”viû_H_
+
+
+2 
+	#Auth’tiÿtiÚS”viû_H_
+
+
+	)
+
+4 
+	~<F—tu»s.h
+>
+
+5 
+	~<AsyncJsÚ.h
+>
+
+6 
+	~<ESPAsyncWebS”v”.h
+>
+
+7 
+	~<Secur™yMªag”.h
+>
+
+9 
+	#VERIFY_AUTHORIZATION_PATH
+ "/»¡/v”ifyAuthÜiz©iÚ"
+
+	)
+
+10 
+	#SIGN_IN_PATH
+ "/»¡/signIn"
+
+	)
+
+12 
+	#MAX_AUTHENTICATION_SIZE
+ 256
+
+	)
+
+14 #ià
+FT_ENABLED
+(
+FT_SECURITY
+)
+
+16 þas 
+	cAuth’tiÿtiÚS”viû
+ {
+
+17 
+	mpublic
+:
+
+18 
+Auth’tiÿtiÚS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+20 
+	m´iv©e
+:
+
+21 
+Secur™yMªag”
+* 
+_£cur™yMªag”
+;
+
+22 
+AsyncC®lbackJsÚWebHªdËr
+ 
+	m_signInHªdËr
+;
+
+25 
+signIn
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+);
+
+26 
+v”ifyAuthÜiz©iÚ
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+	@lib/framework/ESP8266React.cpp
+
+1 
+	~<ESP8266R—ù.h
+>
+
+3 
+	gESP8266R—ù
+::
+	$ESP8266R—ù
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+)
+
+4 : 
+	`_ã©u»S”viû
+(
+£rv”
+)
+
+5 , 
+	`_£cur™yS‘tšgsS”viû
+(
+£rv”
+, 
+fs
+)
+
+6 , 
+	`_wifiS‘tšgsS”viû
+(
+£rv”
+, 
+fs
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+7 , 
+	`_wifiSÿÂ”
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+8 , 
+	`_wifiS�tus
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+9 , 
+	`_­S‘tšgsS”viû
+(
+£rv”
+, 
+fs
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+10 , 
+	`_­S�tus
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+, &
+_­S‘tšgsS”viû
+)
+
+12 #ià
+	`FT_ENABLED
+(
+FT_NTP
+)
+
+13 
+	`_ÁpS‘tšgsS”viû
+(
+£rv”
+, 
+fs
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+14 , 
+	`_ÁpS�tus
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+17 #ià
+	`FT_ENABLED
+(
+FT_OTA
+)
+
+18 
+	`_ÙaS‘tšgsS”viû
+(
+£rv”
+, 
+fs
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+21 #ià
+	`FT_ENABLED
+(
+FT_UPLOAD_FIRMWARE
+)
+
+22 
+	`_u¶ßdFœmw¬eS”viû
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+25 #ià
+	`FT_ENABLED
+(
+FT_MQTT
+)
+
+26 
+	`_mq‰S‘tšgsS”viû
+(
+£rv”
+, 
+fs
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+27 , 
+	`_mq‰S�tus
+(
+£rv”
+, &
+_mq‰S‘tšgsS”viû
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+30 #ià
+	`FT_ENABLED
+(
+FT_SECURITY
+)
+
+31 
+	`_auth’tiÿtiÚS”viû
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+34 
+	`_»¡¬tS”viû
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+35 , 
+	`_çùÜyRe£tS”viû
+(
+£rv”
+, 
+fs
+, &
+_£cur™yS‘tšgsS”viû
+)
+
+36 , 
+	$_sy¡emS�tus
+(
+£rv”
+, &
+_£cur™yS‘tšgsS”viû
+) {
+
+37 #ifdeà
+PROGMEM_WWW
+
+
+39 
+WWWD©a
+::
+	`»gi¡”Rou‹s
+([
+£rv”
+, 
+this
+](cÚ¡ 
+SŒšg
+ & 
+uri
+, cÚ¡ SŒšg & 
+cÚ‹ÁTy³
+, cÚ¡ 
+ušt8_t
+ * 
+cÚ‹Á
+, 
+size_t
+ 
+Ën
+) {
+
+40 
+ArReque¡HªdËrFunùiÚ
+ 
+»que¡HªdËr
+ = [
+cÚ‹ÁTy³
+, 
+cÚ‹Á
+, 
+Ën
+](
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+41 
+AsyncWebS”v”Re¥Ú£
+ * 
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£_P
+(200, 
+cÚ‹ÁTy³
+, 
+cÚ‹Á
+, 
+Ën
+);
+
+42 
+»¥Ú£
+->
+	`addH—d”
+("Content-Encoding", "gzip");
+
+43 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+45 
+£rv”
+->
+	`Ú
+(
+uri
+.
+	`c_¡r
+(), 
+HTTP_GET
+, 
+»que¡HªdËr
+);
+
+48 ià(
+uri
+.
+	`equ®s
+("/index.html")) {
+
+49 
+£rv”
+->
+	`ÚNÙFound
+([
+»que¡HªdËr
+](
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+50 ià(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_GET
+) {
+
+51 
+	`»que¡HªdËr
+(
+»que¡
+);
+
+52 } ià(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_OPTIONS
+) {
+
+53 
+»que¡
+->
+	`£nd
+(200);
+
+55 
+»que¡
+->
+	`£nd
+(404);
+
+62 
+£rv”
+->
+	`£rveS�tic
+("/js/", *
+fs
+, "/www/js/");
+
+63 
+£rv”
+->
+	`£rveS�tic
+("/css/", *
+fs
+, "/www/css/");
+
+64 
+£rv”
+->
+	`£rveS�tic
+("/fÚts/", *
+fs
+, "/www/fonts/");
+
+65 
+£rv”
+->
+	`£rveS�tic
+("/­p/", *
+fs
+, "/www/app/");
+
+66 
+£rv”
+->
+	`£rveS�tic
+("/çvicÚ.ico", *
+fs
+, "/www/favicon.ico");
+
+69 
+£rv”
+->
+	`ÚNÙFound
+([](
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+70 ià(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_GET
+) {
+
+71 #ifdeà
+ESP32
+
+
+72 
+»que¡
+->
+	`£nd
+(
+SPIFFS
+, "/www/index.html");
+
+74 
+»que¡
+->
+	`£nd
+(
+L™ŽeFS
+, "/www/index.html");
+
+77 } ià(
+»que¡
+->
+	`m‘hod
+(è=ð
+HTTP_OPTIONS
+) {
+
+78 
+»que¡
+->
+	`£nd
+(200);
+
+80 
+»que¡
+->
+	`£nd
+(404);
+
+86 #ià
+	`defšed
+(
+ENABLE_CORS
+)
+
+87 
+DeçuÉH—d”s
+::
+	`In¡ªû
+().
+	`addH—d”
+("Acûss-CÚŒÞ-AÎow-Origš", 
+CORS_ORIGIN
+);
+
+88 
+DeçuÉH—d”s
+::
+	`In¡ªû
+().
+	`addH—d”
+("Access-Control-Allow-Headers", "Accept, Content-Type, Authorization");
+
+89 
+DeçuÉH—d”s
+::
+	`In¡ªû
+().
+	`addH—d”
+("Access-Control-Allow-Credentials", "true");
+
+91 
+	}
+}
+
+93 
+	gESP8266R—ù
+::
+	$begš
+() {
+
+94 
+_wifiS‘tšgsS”viû
+.
+	`begš
+();
+
+95 
+_­S‘tšgsS”viû
+.
+	`begš
+();
+
+96 #ià
+	`FT_ENABLED
+(
+FT_NTP
+)
+
+97 
+_ÁpS‘tšgsS”viû
+.
+	`begš
+();
+
+99 #ià
+	`FT_ENABLED
+(
+FT_OTA
+)
+
+100 
+_ÙaS‘tšgsS”viû
+.
+	`begš
+();
+
+102 #ià
+	`FT_ENABLED
+(
+FT_MQTT
+)
+
+103 
+_mq‰S‘tšgsS”viû
+.
+	`begš
+();
+
+105 #ià
+	`FT_ENABLED
+(
+FT_SECURITY
+)
+
+106 
+_£cur™yS‘tšgsS”viû
+.
+	`begš
+();
+
+108 
+	}
+}
+
+110 
+	gESP8266R—ù
+::
+	$loÝ
+() {
+
+111 
+_wifiS‘tšgsS”viû
+.
+	`loÝ
+();
+
+112 
+_­S‘tšgsS”viû
+.
+	`loÝ
+();
+
+113 #ià
+	`FT_ENABLED
+(
+FT_OTA
+)
+
+114 
+_ÙaS‘tšgsS”viû
+.
+	`loÝ
+();
+
+116 #ià
+	`FT_ENABLED
+(
+FT_MQTT
+)
+
+117 
+_mq‰S‘tšgsS”viû
+.
+	`loÝ
+();
+
+119 
+	}
+}
+
+	@lib/framework/ESP8266React.h
+
+1 #iâdeà
+ESP8266R—ù_h
+
+
+2 
+	#ESP8266R—ù_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+6 #ifdeà
+ESP32
+
+
+7 
+	~<AsyncTCP.h
+>
+
+8 
+	~<WiFi.h
+>
+
+9 #–ià
+defšed
+(
+ESP8266
+)
+
+10 
+	~<ESP8266WiFi.h
+>
+
+11 
+	~<ESPAsyncTCP.h
+>
+
+14 
+	~<F—tu»sS”viû.h
+>
+
+15 
+	~<APS‘tšgsS”viû.h
+>
+
+16 
+	~<APS�tus.h
+>
+
+17 
+	~<Auth’tiÿtiÚS”viû.h
+>
+
+18 
+	~<FaùÜyRe£tS”viû.h
+>
+
+19 
+	~<Mq‰S‘tšgsS”viû.h
+>
+
+20 
+	~<Mq‰S�tus.h
+>
+
+21 
+	~<NTPS‘tšgsS”viû.h
+>
+
+22 
+	~<NTPS�tus.h
+>
+
+23 
+	~<OTAS‘tšgsS”viû.h
+>
+
+24 
+	~<U¶ßdFœmw¬eS”viû.h
+>
+
+25 
+	~<Re¡¬tS”viû.h
+>
+
+26 
+	~<Secur™yS‘tšgsS”viû.h
+>
+
+27 
+	~<Sy¡emS�tus.h
+>
+
+28 
+	~<WiFiSÿÂ”.h
+>
+
+29 
+	~<WiFiS‘tšgsS”viû.h
+>
+
+30 
+	~<WiFiS�tus.h
+>
+
+32 #ifdeà
+PROGMEM_WWW
+
+
+33 
+	~<WWWD©a.h
+>
+
+36 þas 
+	cESP8266R—ù
+ {
+
+37 
+	mpublic
+:
+
+38 
+ESP8266R—ù
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+);
+
+40 
+begš
+();
+
+41 
+loÝ
+();
+
+43 
+Secur™yMªag”
+* 
+	$g‘Secur™yMªag”
+() {
+
+44  &
+_£cur™yS‘tšgsS”viû
+;
+
+47 #ià
+	$FT_ENABLED
+(
+FT_SECURITY
+)
+
+48 
+S�‹fulS”viû
+<
+Secur™yS‘tšgs
+>* 
+	$g‘Secur™yS‘tšgsS”viû
+() {
+
+49  &
+_£cur™yS‘tšgsS”viû
+;
+
+50 
+	}
+}
+
+53 
+	gS�‹fulS”viû
+<
+	gWiFiS‘tšgs
+>* 
+	$g‘WiFiS‘tšgsS”viû
+() {
+
+54  &
+_wifiS‘tšgsS”viû
+;
+
+55 
+	}
+}
+
+57 
+	gS�‹fulS”viû
+<
+	gAPS‘tšgs
+>* 
+	$g‘APS‘tšgsS”viû
+() {
+
+58  &
+_­S‘tšgsS”viû
+;
+
+59 
+	}
+}
+
+61 #ià
+	$FT_ENABLED
+(
+FT_NTP
+)
+
+62 
+S�‹fulS”viû
+<
+NTPS‘tšgs
+>* 
+	$g‘NTPS‘tšgsS”viû
+() {
+
+63  &
+_ÁpS‘tšgsS”viû
+;
+
+64 
+	}
+}
+
+67 #ià
+	$FT_ENABLED
+(
+FT_OTA
+)
+
+68 
+S�‹fulS”viû
+<
+OTAS‘tšgs
+>* 
+	$g‘OTAS‘tšgsS”viû
+() {
+
+69  &
+_ÙaS‘tšgsS”viû
+;
+
+70 
+	}
+}
+
+73 #ià
+	$FT_ENABLED
+(
+FT_MQTT
+)
+
+74 
+S�‹fulS”viû
+<
+Mq‰S‘tšgs
+>* 
+	$g‘Mq‰S‘tšgsS”viû
+() {
+
+75  &
+_mq‰S‘tšgsS”viû
+;
+
+76 
+	}
+}
+
+78 
+AsyncMq‰Cl›Á
+* 
+	$g‘Mq‰Cl›Á
+() {
+
+79  
+_mq‰S‘tšgsS”viû
+.
+	`g‘Mq‰Cl›Á
+();
+
+80 
+	}
+}
+
+83 
+	$çùÜyRe£t
+() {
+
+84 
+_çùÜyRe£tS”viû
+.
+	`çùÜyRe£t
+();
+
+85 
+	}
+}
+
+87 
+	g´iv©e
+:
+
+88 
+F—tu»sS”viû
+ 
+_ã©u»S”viû
+;
+
+89 
+Secur™yS‘tšgsS”viû
+ 
+	g_£cur™yS‘tšgsS”viû
+;
+
+90 
+WiFiS‘tšgsS”viû
+ 
+	g_wifiS‘tšgsS”viû
+;
+
+91 
+WiFiSÿÂ”
+ 
+	g_wifiSÿÂ”
+;
+
+92 
+WiFiS�tus
+ 
+	g_wifiS�tus
+;
+
+93 
+APS‘tšgsS”viû
+ 
+	g_­S‘tšgsS”viû
+;
+
+94 
+APS�tus
+ 
+	g_­S�tus
+;
+
+95 #ià
+	$FT_ENABLED
+(
+FT_NTP
+)
+
+96 
+NTPS‘tšgsS”viû
+ 
+_ÁpS‘tšgsS”viû
+;
+
+97 
+NTPS�tus
+ 
+_ÁpS�tus
+;
+
+99 #ià
+	$FT_ENABLED
+(
+FT_OTA
+)
+
+100 
+OTAS‘tšgsS”viû
+ 
+_ÙaS‘tšgsS”viû
+;
+
+102 #ià
+	$FT_ENABLED
+(
+FT_UPLOAD_FIRMWARE
+)
+
+103 
+U¶ßdFœmw¬eS”viû
+ 
+_u¶ßdFœmw¬eS”viû
+;
+
+105 #ià
+	$FT_ENABLED
+(
+FT_MQTT
+)
+
+106 
+Mq‰S‘tšgsS”viû
+ 
+_mq‰S‘tšgsS”viû
+;
+
+107 
+Mq‰S�tus
+ 
+_mq‰S�tus
+;
+
+109 #ià
+	$FT_ENABLED
+(
+FT_SECURITY
+)
+
+110 
+Auth’tiÿtiÚS”viû
+ 
+_auth’tiÿtiÚS”viû
+;
+
+112 
+Re¡¬tS”viû
+ 
+_»¡¬tS”viû
+;
+
+113 
+FaùÜyRe£tS”viû
+ 
+_çùÜyRe£tS”viû
+;
+
+114 
+Sy¡emS�tus
+ 
+_sy¡emS�tus
+;
+
+115 
+	}
+};
+
+	@lib/framework/ESPUtils.h
+
+1 #iâdeà
+ESPUtžs_h
+
+
+2 
+	#ESPUtžs_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+6 þas 
+	cESPUtžs
+ {
+
+7 
+	mpublic
+:
+
+8 
+SŒšg
+ 
+deçuÉDeviûV®ue
+(SŒšg 
+´efix
+ = "") {
+
+9 #ifdeà
+ESP32
+
+
+10  
+´efix
+ + 
+SŒšg
+(()
+ESP
+.
+g‘Efu£Mac
+(), 
+HEX
+);
+
+11 #–ià
+defšed
+(
+ESP8266
+)
+
+12  
+	m´efix
+ + 
+SŒšg
+(
+ESP
+.
+g‘Ch�Id
+(), 
+HEX
+);
+
+	@lib/framework/FSPersistence.h
+
+1 #iâdeà
+FSP”si¡’û_h
+
+
+2 
+	#FSP”si¡’û_h
+
+
+	)
+
+4 
+	~<S�‹fulS”viû.h
+>
+
+5 
+	~<FS.h
+>
+
+7 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+8 þas 
+	cFSP”si¡’û
+ {
+
+9 
+	mpublic
+:
+
+10 
+FSP”si¡’û
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+11 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+12 
+S�‹fulS”viû
+<
+T
+> * 
+¡©efulS”viû
+,
+
+13 
+FS
+ * 
+fs
+,
+
+14 cÚ¡ * 
+fžeP©h
+,
+
+15 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+)
+
+16 : 
+_¡©eR—d”
+(
+¡©eR—d”
+)
+
+17 , 
+_¡©eUpd©”
+(
+¡©eUpd©”
+)
+
+18 , 
+_¡©efulS”viû
+(
+¡©efulS”viû
+)
+
+19 , 
+_fs
+(
+fs
+)
+
+20 , 
+_fžeP©h
+(
+fžeP©h
+)
+
+21 , 
+_bufãrSize
+(
+bufãrSize
+)
+
+22 , 
+	$_upd©eHªdËrId
+(0) {
+
+23 
+	`’abËUpd©eHªdËr
+();
+
+26 
+	$»adFromFS
+() {
+
+27 
+Fže
+ 
+£‰šgsFže
+ = 
+_fs
+->
+	`Ý’
+(
+_fžeP©h
+, "r");
+
+29 ià(
+£‰šgsFže
+) {
+
+30 
+DyÇmicJsÚDocum’t
+ 
+jsÚDocum’t
+ = 
+	`DyÇmicJsÚDocum’t
+(
+_bufãrSize
+);
+
+31 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeJsÚ
+(
+jsÚDocum’t
+, 
+£‰šgsFže
+);
+
+32 ià(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+ && 
+jsÚDocum’t
+.
+is
+<
+JsÚObjeù
+>()) {
+
+33 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+jsÚDocum’t
+.
+as
+<JsonObject>();
+
+40 
+_¡©efulS”viû
+->
+	`upd©eW™houtPrÝag©iÚ
+(
+jsÚObjeù
+, 
+_¡©eUpd©”
+);
+
+41 
+£‰šgsFže
+.
+	`þo£
+();
+
+44 
+£‰šgsFže
+.
+	`þo£
+();
+
+49 
+	`­¶yDeçuÉs
+();
+
+50 
+	}
+}
+
+52 
+boÞ
+ 
+	$wr™eToFS
+() {
+
+54 
+DyÇmicJsÚDocum’t
+ 
+jsÚDocum’t
+ = 
+	`DyÇmicJsÚDocum’t
+(
+_bufãrSize
+);
+
+55 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+56 
+_¡©efulS”viû
+->
+	`»ad
+(
+jsÚObjeù
+, 
+_¡©eR—d”
+);
+
+59 
+Fže
+ 
+£‰šgsFže
+ = 
+_fs
+->
+	`Ý’
+(
+_fžeP©h
+, "w");
+
+62 ià(!
+£‰šgsFže
+) {
+
+63  
+çl£
+;
+
+67 #ià
+	`defšed
+(
+EMSESP_DEBUG
+)
+
+68 
+S”Ÿl
+.
+	`´štf
+("Wr™�Fže: %s: ", 
+_fžeP©h
+);
+
+69 
+	`£rŸlizeJsÚ
+(
+jsÚDocum’t
+, 
+S”Ÿl
+);
+
+70 
+S”Ÿl
+.
+	`´šŽn
+();
+
+74 
+	`£rŸlizeJsÚ
+(
+jsÚDocum’t
+, 
+£‰šgsFže
+);
+
+75 
+£‰šgsFže
+.
+	`þo£
+();
+
+76  
+Œue
+;
+
+77 
+	}
+}
+
+79 
+	$di§bËUpd©eHªdËr
+() {
+
+80 ià(
+_upd©eHªdËrId
+) {
+
+81 
+_¡©efulS”viû
+->
+	`»moveUpd©eHªdËr
+(
+_upd©eHªdËrId
+);
+
+82 
+_upd©eHªdËrId
+ = 0;
+
+84 
+	}
+}
+
+86 
+	$’abËUpd©eHªdËr
+() {
+
+87 ià(!
+_upd©eHªdËrId
+) {
+
+88 
+_upd©eHªdËrId
+ = 
+_¡©efulS”viû
+->
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+è{ 
+	`wr™eToFS
+(); });
+
+90 
+	}
+}
+
+92 
+	g´iv©e
+:
+
+93 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+94 
+	gJsÚS�‹Upd©”
+<
+	gT
+> 
+	g_¡©eUpd©”
+;
+
+95 
+	gS�‹fulS”viû
+<
+	gT
+> * 
+	g_¡©efulS”viû
+;
+
+96 
+FS
+ * 
+	g_fs
+;
+
+97 cÚ¡ * 
+	g_fžeP©h
+;
+
+98 
+size_t
+ 
+	g_bufãrSize
+;
+
+99 
+upd©e_hªdËr_id_t
+ 
+	g_upd©eHªdËrId
+;
+
+101 
+	g´Ùeùed
+:
+
+104 
+vœtu®
+ 
+	$­¶yDeçuÉs
+() {
+
+105 
+DyÇmicJsÚDocum’t
+ 
+jsÚDocum’t
+ = 
+	`DyÇmicJsÚDocum’t
+(
+_bufãrSize
+);
+
+106 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+jsÚDocum’t
+.
+as
+<JsonObject>();
+
+107 
+_¡©efulS”viû
+->
+	`upd©eW™houtPrÝag©iÚ
+(
+jsÚObjeù
+, 
+_¡©eUpd©”
+);
+
+108 
+	}
+}
+
+	@lib/framework/FactoryResetService.cpp
+
+1 
+	~<FaùÜyRe£tS”viû.h
+>
+
+3 
+usšg
+ 
+Çme¥aû
+ 
+	g¡d
+::
+¶aûhÞd”s
+;
+
+5 
+	gFaùÜyRe£tS”viû
+::
+	$FaùÜyRe£tS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+è: 
+	$fs
+(
+fs
+) {
+
+6 
+£rv”
+->
+	`Ú
+(
+FACTORY_RESET_SERVICE_PATH
+,
+
+7 
+HTTP_POST
+,
+
+8 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+FaùÜyRe£tS”viû
+::
+hªdËReque¡
+, 
+this
+, 
+_1
+),
+
+9 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+));
+
+10 
+	}
+}
+
+12 
+	gFaùÜyRe£tS”viû
+::
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+13 
+»que¡
+->
+	`ÚDiscÚÃù
+(
+¡d
+::
+	`bšd
+(&
+FaùÜyRe£tS”viû
+::
+çùÜyRe£t
+, 
+this
+));
+
+14 
+»que¡
+->
+	`£nd
+(200);
+
+15 
+	}
+}
+
+20 
+	gFaùÜyRe£tS”viû
+::
+	$çùÜyRe£t
+() {
+
+21 #ifdeà
+ESP32
+
+
+22 
+Fže
+ 
+roÙ
+ = 
+fs
+->
+	`Ý’
+(
+FS_CONFIG_DIRECTORY
+);
+
+23 
+Fže
+ 
+fže
+;
+
+24 
+fže
+ = 
+roÙ
+.
+	`Ý’NextFže
+()) {
+
+25 
+fs
+->
+	`»move
+(
+fže
+.
+	`Çme
+());
+
+27 #–ià
+	`defšed
+(
+ESP8266
+)
+
+28 
+Dœ
+ 
+cÚfigDœeùÜy
+ = 
+fs
+->
+	`Ý’Dœ
+(
+FS_CONFIG_DIRECTORY
+);
+
+29 
+cÚfigDœeùÜy
+.
+	`Ãxt
+()) {
+
+30 
+SŒšg
+ 
+·th
+ = 
+FS_CONFIG_DIRECTORY
+;
+
+31 
+·th
+.
+	`cÚÿt
+("/");
+
+32 
+·th
+.
+	`cÚÿt
+(
+cÚfigDœeùÜy
+.
+	`fžeName
+());
+
+33 
+fs
+->
+	`»move
+(
+·th
+);
+
+36 
+Re¡¬tS”viû
+::
+	`»¡¬tNow
+();
+
+37 
+	}
+}
+
+	@lib/framework/FactoryResetService.h
+
+1 #iâdeà
+FaùÜyRe£tS”viû_h
+
+
+2 
+	#FaùÜyRe£tS”viû_h
+
+
+	)
+
+4 #ifdeà
+ESP32
+
+
+5 
+	~<WiFi.h
+>
+
+6 
+	~<AsyncTCP.h
+>
+
+7 #–ià
+defšed
+(
+ESP8266
+)
+
+8 
+	~<ESP8266WiFi.h
+>
+
+9 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~<ESPAsyncWebS”v”.h
+>
+
+13 
+	~<Secur™yMªag”.h
+>
+
+14 
+	~<Re¡¬tS”viû.h
+>
+
+15 
+	~<FS.h
+>
+
+17 
+	#FS_CONFIG_DIRECTORY
+ "/cÚfig"
+
+	)
+
+18 
+	#FACTORY_RESET_SERVICE_PATH
+ "/»¡/çùÜyRe£t"
+
+	)
+
+20 þas 
+	cFaùÜyRe£tS”viû
+ {
+
+21 
+FS
+* 
+	mfs
+;
+
+23 
+	mpublic
+:
+
+24 
+FaùÜyRe£tS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+26 
+çùÜyRe£t
+();
+
+28 
+	m´iv©e
+:
+
+29 
+hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+	@lib/framework/Features.h
+
+1 #iâdeà
+F—tu»s_h
+
+
+2 
+	#F—tu»s_h
+
+
+	)
+
+4 
+	#FT_ENABLED
+(
+ã©u»
+è
+	)
+feature
+
+7 #iâdeà
+FT_PROJECT
+
+
+8 
+	#FT_PROJECT
+ 0
+
+	)
+
+12 #iâdeà
+FT_SECURITY
+
+
+13 
+	#FT_SECURITY
+ 1
+
+	)
+
+17 #iâdeà
+FT_MQTT
+
+
+18 
+	#FT_MQTT
+ 1
+
+	)
+
+22 #iâdeà
+FT_NTP
+
+
+23 
+	#FT_NTP
+ 1
+
+	)
+
+27 #iâdeà
+FT_OTA
+
+
+28 
+	#FT_OTA
+ 1
+
+	)
+
+32 #iâdeà
+FT_UPLOAD_FIRMWARE
+
+
+33 
+	#FT_UPLOAD_FIRMWARE
+ 0
+
+	)
+
+	@lib/framework/FeaturesService.cpp
+
+1 
+	~<F—tu»sS”viû.h
+>
+
+3 
+	gF—tu»sS”viû
+::
+	$F—tu»sS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+) {
+
+4 
+£rv”
+->
+	`Ú
+(
+FEATURES_SERVICE_PATH
+, 
+HTTP_GET
+, 
+¡d
+::
+	`bšd
+(&
+F—tu»sS”viû
+::
+ã©u»s
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+5 
+	}
+}
+
+7 
+	gF—tu»sS”viû
+::
+	$ã©u»s
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+8 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_FEATURES_SIZE
+);
+
+9 
+JsÚObjeù
+ 
+roÙ
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+10 #ià
+	`FT_ENABLED
+(
+FT_PROJECT
+)
+
+11 
+roÙ
+["´ojeù"] = 
+Œue
+;
+
+13 
+roÙ
+["´ojeù"] = 
+çl£
+;
+
+15 #ià
+	`FT_ENABLED
+(
+FT_SECURITY
+)
+
+16 
+roÙ
+["£cur™y"] = 
+Œue
+;
+
+18 
+roÙ
+["£cur™y"] = 
+çl£
+;
+
+20 #ià
+	`FT_ENABLED
+(
+FT_MQTT
+)
+
+21 
+roÙ
+["mq‰"] = 
+Œue
+;
+
+23 
+roÙ
+["mq‰"] = 
+çl£
+;
+
+25 #ià
+	`FT_ENABLED
+(
+FT_NTP
+)
+
+26 
+roÙ
+["Áp"] = 
+Œue
+;
+
+28 
+roÙ
+["Áp"] = 
+çl£
+;
+
+30 #ià
+	`FT_ENABLED
+(
+FT_OTA
+)
+
+31 
+roÙ
+["Ùa"] = 
+Œue
+;
+
+33 
+roÙ
+["Ùa"] = 
+çl£
+;
+
+35 #ià
+	`FT_ENABLED
+(
+FT_UPLOAD_FIRMWARE
+)
+
+36 
+roÙ
+["u¶ßd_fœmw¬e"] = 
+Œue
+;
+
+38 
+roÙ
+["u¶ßd_fœmw¬e"] = 
+çl£
+;
+
+40 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+41 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+42 
+	}
+}
+
+	@lib/framework/FeaturesService.h
+
+1 #iâdeà
+F—tu»sS”viû_h
+
+
+2 
+	#F—tu»sS”viû_h
+
+
+	)
+
+4 
+	~<F—tu»s.h
+>
+
+6 #ifdeà
+ESP32
+
+
+7 
+	~<WiFi.h
+>
+
+8 
+	~<AsyncTCP.h
+>
+
+9 #–ià
+defšed
+(
+ESP8266
+)
+
+10 
+	~<ESP8266WiFi.h
+>
+
+11 
+	~<ESPAsyncTCP.h
+>
+
+14 
+	~<ArdušoJsÚ.h
+>
+
+15 
+	~<AsyncJsÚ.h
+>
+
+16 
+	~<ESPAsyncWebS”v”.h
+>
+
+18 
+	#MAX_FEATURES_SIZE
+ 256
+
+	)
+
+19 
+	#FEATURES_SERVICE_PATH
+ "/»¡/ã©u»s"
+
+	)
+
+21 þas 
+	cF—tu»sS”viû
+ {
+
+22 
+	mpublic
+:
+
+23 
+F—tu»sS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+);
+
+25 
+	m´iv©e
+:
+
+26 
+ã©u»s
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+	@lib/framework/HttpEndpoint.h
+
+1 #iâdeà
+H‰pEndpošt_h
+
+
+2 
+	#H‰pEndpošt_h
+
+
+	)
+
+4 
+	~<funùiÚ®
+>
+
+6 
+	~<AsyncJsÚ.h
+>
+
+7 
+	~<ESPAsyncWebS”v”.h
+>
+
+9 
+	~<Secur™yMªag”.h
+>
+
+10 
+	~<S�‹fulS”viû.h
+>
+
+12 
+	#HTTP_ENDPOINT_ORIGIN_ID
+ "h‰p"
+
+	)
+
+14 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+15 þas 
+	cH‰pG‘Endpošt
+ {
+
+16 
+	mpublic
+:
+
+17 
+H‰pG‘Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+18 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+19 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+20 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+21 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+22 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+23 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+24 
+_¡©eR—d”
+(
+¡©eR—d”
+), 
+_¡©efulS”viû
+(
+¡©efulS”viû
+), 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+25 
+£rv”
+->
+	`Ú
+(
+£rviûP©h
+.
+	`c_¡r
+(),
+
+26 
+HTTP_GET
+,
+
+27 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+H‰pG‘Endpošt
+::
+ãtchS‘tšgs
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+28 
+auth’tiÿtiÚP»diÿ‹
+));
+
+31 
+	`H‰pG‘Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+32 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+33 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+34 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+35 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+36 
+	`_¡©eR—d”
+(
+¡©eR—d”
+), 
+	`_¡©efulS”viû
+(
+¡©efulS”viû
+), 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+37 
+£rv”
+->
+	`Ú
+(
+£rviûP©h
+.
+	`c_¡r
+(), 
+HTTP_GET
+, 
+¡d
+::
+	`bšd
+(&
+H‰pG‘Endpošt
+::
+ãtchS‘tšgs
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+38 
+	}
+}
+
+40 
+	g´Ùeùed
+:
+
+41 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+42 
+	gS�‹fulS”viû
+<
+	gT
+>* 
+	g_¡©efulS”viû
+;
+
+43 
+size_t
+ 
+	g_bufãrSize
+;
+
+45 
+	$ãtchS‘tšgs
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+46 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+_bufãrSize
+);
+
+47 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+().
+to
+<JsonObject>();
+
+48 
+_¡©efulS”viû
+->
+	`»ad
+(
+jsÚObjeù
+, 
+_¡©eR—d”
+);
+
+50 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+51 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+52 
+	}
+}
+
+55 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+56 þas 
+	cH‰pPo¡Endpošt
+ {
+
+57 
+	mpublic
+:
+
+58 
+H‰pPo¡Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+59 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+60 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+61 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+62 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+63 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+64 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+65 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+66 
+_¡©eR—d”
+(
+¡©eR—d”
+),
+
+67 
+_¡©eUpd©”
+(
+¡©eUpd©”
+),
+
+68 
+_¡©efulS”viû
+(
+¡©efulS”viû
+),
+
+69 
+_upd©eHªdËr
+(
+
+70 
+£rviûP©h
+,
+
+71 
+£cur™yMªag”
+->
+w¿pC®lback
+(
+
+72 
+¡d
+::
+bšd
+(&
+H‰pPo¡Endpošt
+::
+upd©eS‘tšgs
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+),
+
+73 
+auth’tiÿtiÚP»diÿ‹
+),
+
+74 
+bufãrSize
+),
+
+75 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+76 
+_upd©eHªdËr
+.
+	`£tM‘hod
+(
+HTTP_POST
+);
+
+77 
+£rv”
+->
+	`addHªdËr
+(&
+_upd©eHªdËr
+);
+
+80 
+	`H‰pPo¡Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+81 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+82 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+83 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+84 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+85 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+86 
+	`_¡©eR—d”
+(
+¡©eR—d”
+),
+
+87 
+	`_¡©eUpd©”
+(
+¡©eUpd©”
+),
+
+88 
+	`_¡©efulS”viû
+(
+¡©efulS”viû
+),
+
+89 
+	`_upd©eHªdËr
+(
+£rviûP©h
+,
+
+90 
+¡d
+::
+	`bšd
+(&
+H‰pPo¡Endpošt
+::
+upd©eS‘tšgs
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+),
+
+91 
+bufãrSize
+),
+
+92 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+93 
+_upd©eHªdËr
+.
+	`£tM‘hod
+(
+HTTP_POST
+);
+
+94 
+£rv”
+->
+	`addHªdËr
+(&
+_upd©eHªdËr
+);
+
+95 
+	}
+}
+
+97 
+	g´Ùeùed
+:
+
+98 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+99 
+	gJsÚS�‹Upd©”
+<
+	gT
+> 
+	g_¡©eUpd©”
+;
+
+100 
+	gS�‹fulS”viû
+<
+	gT
+>* 
+	g_¡©efulS”viû
+;
+
+101 
+AsyncC®lbackJsÚWebHªdËr
+ 
+	g_upd©eHªdËr
+;
+
+102 
+size_t
+ 
+	g_bufãrSize
+;
+
+104 
+	$upd©eS‘tšgs
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+) {
+
+105 ià(!
+jsÚ
+.
+is
+<
+JsÚObjeù
+>()) {
+
+106 
+»que¡
+->
+	`£nd
+(400);
+
+109 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+jsÚ
+.
+as
+<JsonObject>();
+
+110 
+S�‹Upd©eResuÉ
+ 
+outcome
+ = 
+_¡©efulS”viû
+->
+	`upd©eW™houtPrÝag©iÚ
+(
+jsÚObjeù
+, 
+_¡©eUpd©”
+);
+
+111 ià(
+outcome
+ =ð
+S�‹Upd©eResuÉ
+::
+ERROR
+) {
+
+112 
+»que¡
+->
+	`£nd
+(400);
+
+115 ià(
+outcome
+ =ð
+S�‹Upd©eResuÉ
+::
+CHANGED
+) {
+
+116 
+»que¡
+->
+	`ÚDiscÚÃù
+([
+this
+](è{ 
+_¡©efulS”viû
+->
+	`ÿÎUpd©eHªdËrs
+(
+HTTP_ENDPOINT_ORIGIN_ID
+); });
+
+118 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+_bufãrSize
+);
+
+119 
+jsÚObjeù
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+().
+to
+<
+JsÚObjeù
+>();
+
+120 
+_¡©efulS”viû
+->
+	`»ad
+(
+jsÚObjeù
+, 
+_¡©eR—d”
+);
+
+121 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+122 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+123 
+	}
+}
+
+126 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+127 
+þass
+ 
+	gH‰pEndpošt
+ : 
+public
+ 
+H‰pG‘Endpošt
+<
+T
+>,…ubliø
+	gH‰pPo¡Endpošt
+<
+	gT
+> {
+
+128 
+	gpublic
+:
+
+129 
+H‰pEndpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+130 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+131 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+132 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+133 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+134 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+135 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+136 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+137 
+H‰pG‘Endpošt
+<
+T
+>(
+¡©eR—d”
+,
+
+138 
+	g¡©efulS”viû
+,
+
+139 
+	g£rv”
+,
+
+140 
+	g£rviûP©h
+,
+
+141 
+	g£cur™yMªag”
+,
+
+142 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+143 
+	gbufãrSize
+),
+
+144 
+	gH‰pPo¡Endpošt
+<
+	gT
+>(
+	g¡©eR—d”
+,
+
+145 
+	g¡©eUpd©”
+,
+
+146 
+	g¡©efulS”viû
+,
+
+147 
+	g£rv”
+,
+
+148 
+	g£rviûP©h
+,
+
+149 
+	g£cur™yMªag”
+,
+
+150 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+151 
+	gbufãrSize
+) {
+
+154 
+H‰pEndpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+155 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+156 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+157 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+158 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+159 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+160 
+H‰pG‘Endpošt
+<
+T
+>(
+¡©eR—d”
+, 
+	g¡©efulS”viû
+, 
+	g£rv”
+, 
+	g£rviûP©h
+, 
+	gbufãrSize
+),
+
+161 
+	gH‰pPo¡Endpošt
+<
+	gT
+>(
+	g¡©eR—d”
+, 
+	g¡©eUpd©”
+, 
+	g¡©efulS”viû
+, 
+	g£rv”
+, 
+	g£rviûP©h
+, 
+	gbufãrSize
+) {
+
+	@lib/framework/JsonUtils.h
+
+1 #iâdeà
+JsÚUtžs_h
+
+
+2 
+	#JsÚUtžs_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+5 
+	~<IPAdd»ss.h
+>
+
+6 
+	~<ArdušoJsÚ.h
+>
+
+8 þas 
+	cJsÚUtžs
+ {
+
+9 
+	mpublic
+:
+
+10 
+	$»adIP
+(
+JsÚObjeù
+& 
+roÙ
+, cÚ¡ 
+SŒšg
+& 
+key
+, 
+IPAdd»ss
+& 
+�
+, cÚ¡ SŒšg& 
+def
+) {
+
+11 
+IPAdd»ss
+ 
+deçuÉIp
+ = {};
+
+12 ià(!
+deçuÉIp
+.
+	`äomSŒšg
+(
+def
+)) {
+
+13 
+deçuÉIp
+ = 
+INADDR_NONE
+;
+
+15 
+	`»adIP
+(
+roÙ
+, 
+key
+, 
+�
+, 
+deçuÉIp
+);
+
+17 
+	$»adIP
+(
+JsÚObjeù
+& 
+roÙ
+, cÚ¡ 
+SŒšg
+& 
+key
+, 
+IPAdd»ss
+& 
+�
+, cÚ¡ IPAdd»ss& 
+deçuÉIp
+ = 
+INADDR_NONE
+) {
+
+18 ià(!
+roÙ
+[
+key
+].
+is
+<
+SŒšg
+>(è|| !
+�
+.
+	`äomSŒšg
+ÔoÙ[key].
+as
+<String>())) {
+
+19 
+�
+ = 
+deçuÉIp
+;
+
+21 
+	}
+}
+
+22 
+	$wr™eIP
+(
+JsÚObjeù
+& 
+roÙ
+, cÚ¡ 
+SŒšg
+& 
+key
+, cÚ¡ 
+IPAdd»ss
+& 
+�
+) {
+
+23 ià(
+�
+ !ð
+INADDR_NONE
+) {
+
+24 
+roÙ
+[
+key
+] = 
+�
+.
+	`toSŒšg
+();
+
+26 
+	}
+}
+
+	@lib/framework/MqttPubSub.h
+
+1 #iâdeà
+Mq‰PubSub_h
+
+
+2 
+	#Mq‰PubSub_h
+
+
+	)
+
+4 
+	~<S�‹fulS”viû.h
+>
+
+5 
+	~<AsyncMq‰Cl›Á.h
+>
+
+7 
+	#MQTT_ORIGIN_ID
+ "mq‰"
+
+	)
+
+9 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+10 þas 
+	cMq‰CÚÃùÜ
+ {
+
+11 
+	m´Ùeùed
+:
+
+12 
+S�‹fulS”viû
+<
+T
+>* 
+_¡©efulS”viû
+;
+
+13 
+AsyncMq‰Cl›Á
+* 
+	m_mq‰Cl›Á
+;
+
+14 
+size_t
+ 
+	m_bufãrSize
+;
+
+16 
+Mq‰CÚÃùÜ
+(
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+, 
+AsyncMq‰Cl›Á
+* 
+mq‰Cl›Á
+, 
+size_t
+ 
+bufãrSize
+) :
+
+17 
+_¡©efulS”viû
+(
+¡©efulS”viû
+), 
+_mq‰Cl›Á
+(
+mq‰Cl›Á
+), 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+18 
+_mq‰Cl›Á
+->
+	`ÚCÚÃù
+(
+¡d
+::
+	`bšd
+(&
+Mq‰CÚÃùÜ
+::
+ÚCÚÃù
+, 
+this
+));
+
+21 
+vœtu®
+ 
+	`ÚCÚÃù
+() = 0;
+
+23 
+public
+:
+
+24 
+šlše
+ 
+AsyncMq‰Cl›Á
+* 
+	$g‘Mq‰Cl›Á
+() const {
+
+25  
+_mq‰Cl›Á
+;
+
+26 
+	}
+}
+
+29 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+30 
+þass
+ 
+	gMq‰Pub
+ : 
+vœtu®
+ 
+public
+ 
+Mq‰CÚÃùÜ
+<
+T
+> {
+
+31 
+public
+:
+
+32 
+Mq‰Pub
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+33 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+34 
+AsyncMq‰Cl›Á
+* 
+mq‰Cl›Á
+,
+
+35 cÚ¡ 
+SŒšg
+& 
+pubTÝic
+ = "",
+
+36 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+37 
+Mq‰CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+, 
+	gmq‰Cl›Á
+, 
+	gbufãrSize
+), 
+_¡©eR—d”
+(
+¡©eR—d”
+), 
+_pubTÝic
+(
+pubTÝic
+) {
+
+38 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_¡©efulS”viû
+->
+addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+& 
+ÜigšId
+è{ 
+publish
+(); }, 
+çl£
+);
+
+41 
+£tPubTÝic
+(cÚ¡ 
+SŒšg
+& 
+pubTÝic
+) {
+
+42 
+	g_pubTÝic
+ = 
+pubTÝic
+;
+
+43 
+publish
+();
+
+46 
+	g´Ùeùed
+:
+
+47 
+vœtu®
+ 
+ÚCÚÃù
+() {
+
+48 
+publish
+();
+
+51 
+	g´iv©e
+:
+
+52 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+53 
+SŒšg
+ 
+	g_pubTÝic
+;
+
+55 
+publish
+() {
+
+56 ià(
+	g_pubTÝic
+.
+Ëngth
+(è> 0 && 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_mq‰Cl›Á
+->
+cÚÃùed
+()) {
+
+58 
+DyÇmicJsÚDocum’t
+ 
+jsÚ
+(
+Mq‰CÚÃùÜ
+<
+T
+>::
+_bufãrSize
+);
+
+59 
+JsÚObjeù
+ 
+	gjsÚObjeù
+ = 
+jsÚ
+.
+to
+<JsonObject>();
+
+60 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_¡©efulS”viû
+->
+»ad
+(
+jsÚObjeù
+, 
+_¡©eR—d”
+);
+
+63 
+SŒšg
+ 
+	g·ylßd
+;
+
+64 
+£rŸlizeJsÚ
+(
+jsÚ
+, 
+·ylßd
+);
+
+67 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_mq‰Cl›Á
+->
+publish
+(
+_pubTÝic
+.
+c_¡r
+(), 0, 
+çl£
+, 
+·ylßd
+.c_str());
+
+72 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+73 
+þass
+ 
+	gMq‰Sub
+ : 
+vœtu®
+ 
+public
+ 
+Mq‰CÚÃùÜ
+<
+T
+> {
+
+74 
+public
+:
+
+75 
+Mq‰Sub
+(
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+76 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+77 
+AsyncMq‰Cl›Á
+* 
+mq‰Cl›Á
+,
+
+78 cÚ¡ 
+SŒšg
+& 
+subTÝic
+ = "",
+
+79 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+80 
+Mq‰CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+, 
+	gmq‰Cl›Á
+, 
+	gbufãrSize
+), 
+_¡©eUpd©”
+(
+¡©eUpd©”
+), 
+_subTÝic
+(
+subTÝic
+) {
+
+81 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_mq‰Cl›Á
+->
+ÚMes§ge
+(
+¡d
+::
+bšd
+(&
+Mq‰Sub
+::
+ÚMq‰Mes§ge
+,
+
+82 
+this
+,
+
+83 
+¡d
+::
+¶aûhÞd”s
+::
+_1
+,
+
+84 
+¡d
+::
+¶aûhÞd”s
+::
+_2
+,
+
+85 
+¡d
+::
+¶aûhÞd”s
+::
+_3
+,
+
+86 
+¡d
+::
+¶aûhÞd”s
+::
+_4
+,
+
+87 
+¡d
+::
+¶aûhÞd”s
+::
+_5
+,
+
+88 
+¡d
+::
+¶aûhÞd”s
+::
+_6
+));
+
+91 
+£tSubTÝic
+(cÚ¡ 
+SŒšg
+& 
+subTÝic
+) {
+
+92 ià(!
+	g_subTÝic
+.
+equ®s
+(
+subTÝic
+)) {
+
+94 ià(
+	g_subTÝic
+.
+Ëngth
+() > 0) {
+
+95 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_mq‰Cl›Á
+->
+unsubsüibe
+(
+_subTÝic
+.
+c_¡r
+());
+
+98 
+	g_subTÝic
+ = 
+subTÝic
+;
+
+99 
+subsüibe
+();
+
+103 
+	g´Ùeùed
+:
+
+104 
+vœtu®
+ 
+ÚCÚÃù
+() {
+
+105 
+subsüibe
+();
+
+108 
+	g´iv©e
+:
+
+109 
+JsÚS�‹Upd©”
+<
+T
+> 
+_¡©eUpd©”
+;
+
+110 
+SŒšg
+ 
+	g_subTÝic
+;
+
+112 
+subsüibe
+() {
+
+113 ià(
+	g_subTÝic
+.
+Ëngth
+() > 0) {
+
+114 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_mq‰Cl›Á
+->
+subsüibe
+(
+_subTÝic
+.
+c_¡r
+(), 2);
+
+118 
+ÚMq‰Mes§ge
+(* 
+tÝic
+,
+
+119 * 
+·ylßd
+,
+
+120 
+AsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ 
+´Ý”t›s
+,
+
+121 
+size_t
+ 
+Ën
+,
+
+122 
+size_t
+ 
+šdex
+,
+
+123 
+size_t
+ 
+tÙ®
+) {
+
+125 ià(
+¡rcmp
+(
+_subTÝic
+.
+c_¡r
+(), 
+tÝic
+)) {
+
+130 
+DyÇmicJsÚDocum’t
+ 
+jsÚ
+(
+Mq‰CÚÃùÜ
+<
+T
+>::
+_bufãrSize
+);
+
+131 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeJsÚ
+(
+jsÚ
+, 
+·ylßd
+, 
+Ën
+);
+
+132 ià(!
+	g”rÜ
+ && 
+	gjsÚ
+.
+	gis
+<
+	gJsÚObjeù
+>()) {
+
+133 
+JsÚObjeù
+ 
+	gjsÚObjeù
+ = 
+jsÚ
+.
+as
+<JsonObject>();
+
+134 
+	gMq‰CÚÃùÜ
+<
+	gT
+>::
+_¡©efulS”viû
+->
+upd©e
+(
+jsÚObjeù
+, 
+_¡©eUpd©”
+, 
+MQTT_ORIGIN_ID
+);
+
+139 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+140 
+þass
+ 
+	gMq‰PubSub
+ : 
+public
+ 
+Mq‰Pub
+<
+T
+>,…ubliø
+	gMq‰Sub
+<
+	gT
+> {
+
+141 
+	gpublic
+:
+
+142 
+Mq‰PubSub
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+143 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+144 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+145 
+AsyncMq‰Cl›Á
+* 
+mq‰Cl›Á
+,
+
+146 cÚ¡ 
+SŒšg
+& 
+pubTÝic
+ = "",
+
+147 cÚ¡ 
+SŒšg
+& 
+subTÝic
+ = "",
+
+148 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+149 
+Mq‰CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+, 
+	gmq‰Cl›Á
+, 
+	gbufãrSize
+),
+
+150 
+	gMq‰Pub
+<
+	gT
+>(
+	g¡©eR—d”
+, 
+	g¡©efulS”viû
+, 
+	gmq‰Cl›Á
+, 
+	gpubTÝic
+, 
+	gbufãrSize
+),
+
+151 
+	gMq‰Sub
+<
+	gT
+>(
+	g¡©eUpd©”
+, 
+	g¡©efulS”viû
+, 
+	gmq‰Cl›Á
+, 
+	gsubTÝic
+, 
+	gbufãrSize
+) {
+
+154 
+	gpublic
+:
+
+155 
+cÚfigu»TÝics
+(cÚ¡ 
+SŒšg
+& 
+pubTÝic
+, cÚ¡ SŒšg& 
+subTÝic
+) {
+
+156 
+	gMq‰Sub
+<
+	gT
+>::
+£tSubTÝic
+(
+subTÝic
+);
+
+157 
+	gMq‰Pub
+<
+	gT
+>::
+£tPubTÝic
+(
+pubTÝic
+);
+
+160 
+	g´Ùeùed
+:
+
+161 
+ÚCÚÃù
+() {
+
+162 
+Mq‰Sub
+<
+T
+>::
+ÚCÚÃù
+();
+
+163 
+	gMq‰Pub
+<
+	gT
+>::
+ÚCÚÃù
+();
+
+	@lib/framework/MqttSettingsService.cpp
+
+1 
+	~<Mq‰S‘tšgsS”viû.h
+>
+
+4 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+5 þas 
+	cEMSESP
+ {
+
+6 
+	gpublic
+:
+
+7 
+Sy¡em
+ 
+sy¡em_
+;
+
+8 
+Mq‰
+ 
+	gmq‰_
+;
+
+9 
+S’sÜs
+ 
+	g£nsÜs_
+;
+
+18 * 
+	$»�šC¡r
+(cÚ¡ * 
+c¡r
+, ** 
+±r
+) {
+
+20 
+	`ä“
+(*
+±r
+);
+
+21 *
+±r
+ = 
+nuÎ±r
+;
+
+24 ià(
+c¡r
+ !ð
+nuÎ±r
+) {
+
+25 *
+±r
+ = (*)
+	`m®loc
+(
+	`¡¾’
+(
+c¡r
+) + 1);
+
+26 
+	`¡rýy
+(*
+±r
+, 
+c¡r
+);
+
+30  *
+±r
+;
+
+31 
+	}
+}
+
+33 
+	gMq‰S‘tšgsS”viû
+::
+	$Mq‰S‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+)
+
+34 : 
+	`_h‰pEndpošt
+(
+Mq‰S‘tšgs
+::
+»ad
+, Mq‰S‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+MQTT_SETTINGS_SERVICE_PATH
+, 
+£cur™yMªag”
+)
+
+35 , 
+	`_fsP”si¡’û
+(
+Mq‰S‘tšgs
+::
+»ad
+, Mq‰S‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+MQTT_SETTINGS_FILE
+)
+
+36 , 
+	`_»�šedHo¡
+(
+nuÎ±r
+)
+
+37 , 
+	`_»�šedCl›ÁId
+(
+nuÎ±r
+)
+
+38 , 
+	`_»�šedU£ºame
+(
+nuÎ±r
+)
+
+39 , 
+	`_»�šedPasswÜd
+(
+nuÎ±r
+)
+
+40 , 
+	`_»cÚfigu»Mq‰
+(
+çl£
+)
+
+41 , 
+	`_discÚÃùedAt
+(0)
+
+42 , 
+	`_discÚÃùR—sÚ
+(
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+TCP_DISCONNECTED
+)
+
+43 , 
+	$_mq‰Cl›Á
+() {
+
+44 #ifdeà
+ESP32
+
+
+45 
+WiFi
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+Mq‰S‘tšgsS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+),
+
+46 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_DISCONNECTED
+);
+
+47 
+WiFi
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+Mq‰S‘tšgsS”viû
+::
+ÚS�tiÚModeGÙIP
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+), 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_GOT_IP
+);
+
+48 #–ià
+	`defšed
+(
+ESP8266
+)
+
+49 
+_ÚS�tiÚModeDiscÚÃùedHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeDiscÚÃùed
+(
+¡d
+::
+	`bšd
+(&
+Mq‰S‘tšgsS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+50 
+_ÚS�tiÚModeGÙIPHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeGÙIP
+(
+¡d
+::
+	`bšd
+(&
+Mq‰S‘tšgsS”viû
+::
+ÚS�tiÚModeGÙIP
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+52 
+_mq‰Cl›Á
+.
+	`ÚCÚÃù
+(
+¡d
+::
+	`bšd
+(&
+Mq‰S‘tšgsS”viû
+::
+ÚMq‰CÚÃù
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+53 
+_mq‰Cl›Á
+.
+	`ÚDiscÚÃù
+(
+¡d
+::
+	`bšd
+(&
+Mq‰S‘tšgsS”viû
+::
+ÚMq‰DiscÚÃù
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+54 
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+è{ 
+	`ÚCÚfigUpd©ed
+(); }, 
+çl£
+);
+
+55 
+	}
+}
+
+57 
+	gMq‰S‘tšgsS”viû
+::~
+	$Mq‰S‘tšgsS”viû
+() {
+
+58 
+	}
+}
+
+60 
+Mq‰S‘tšgsS”viû
+::
+	$begš
+() {
+
+61 
+_fsP”si¡’û
+.
+	`»adFromFS
+();
+
+62 
+	}
+}
+
+64 
+	gMq‰S‘tšgsS”viû
+::
+	$loÝ
+() {
+
+65 ià(
+_»cÚfigu»Mq‰
+ || (
+_discÚÃùedAt
+ && ()(
+uuid
+::
+	`g‘_u±ime
+(è- _discÚÃùedAtè>ð
+MQTT_RECONNECTION_DELAY
+)) {
+
+67 
+	`cÚfigu»Mq‰
+();
+
+70 
+_»cÚfigu»Mq‰
+ = 
+çl£
+;
+
+71 
+_discÚÃùedAt
+ = 0;
+
+73 
+	}
+}
+
+75 
+boÞ
+ 
+	gMq‰S‘tšgsS”viû
+::
+	$isEÇbËd
+() {
+
+76  
+_¡©e
+.
+’abËd
+;
+
+77 
+	}
+}
+
+79 
+boÞ
+ 
+	gMq‰S‘tšgsS”viû
+::
+	$isCÚÃùed
+() {
+
+80  
+_mq‰Cl›Á
+.
+	`cÚÃùed
+();
+
+81 
+	}
+}
+
+83 cÚ¡ * 
+	gMq‰S‘tšgsS”viû
+::
+	$g‘Cl›ÁId
+() {
+
+84  
+_mq‰Cl›Á
+.
+	`g‘Cl›ÁId
+();
+
+85 
+	}
+}
+
+87 
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+	gMq‰S‘tšgsS”viû
+::
+	$g‘DiscÚÃùR—sÚ
+() {
+
+88  
+_discÚÃùR—sÚ
+;
+
+89 
+	}
+}
+
+91 
+AsyncMq‰Cl›Á
+ * 
+	gMq‰S‘tšgsS”viû
+::
+	$g‘Mq‰Cl›Á
+() {
+
+92  &
+_mq‰Cl›Á
+;
+
+93 
+	}
+}
+
+95 
+	gMq‰S‘tšgsS”viû
+::
+	$ÚMq‰CÚÃù
+(
+boÞ
+ 
+£ssiÚP»£Á
+) {
+
+104 
+	}
+}
+
+106 
+Mq‰S‘tšgsS”viû
+::
+	$ÚMq‰DiscÚÃù
+(
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+»asÚ
+) {
+
+109 
+_discÚÃùR—sÚ
+ = 
+»asÚ
+;
+
+110 
+_discÚÃùedAt
+ = 
+uuid
+::
+	`g‘_u±ime
+();
+
+111 
+	}
+}
+
+113 
+	gMq‰S‘tšgsS”viû
+::
+	$ÚCÚfigUpd©ed
+() {
+
+114 
+_»cÚfigu»Mq‰
+ = 
+Œue
+;
+
+115 
+_discÚÃùedAt
+ = 0;
+
+119 
+	}
+}
+
+121 #ifdeà
+ESP32
+
+
+122 
+	gMq‰S‘tšgsS”viû
+::
+	$ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+123 ià(
+_¡©e
+.
+’abËd
+) {
+
+125 
+	`ÚCÚfigUpd©ed
+();
+
+127 
+	}
+}
+
+129 
+	gMq‰S‘tšgsS”viû
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+130 ià(
+_¡©e
+.
+’abËd
+) {
+
+132 
+	`ÚCÚfigUpd©ed
+();
+
+134 
+	}
+}
+
+135 #–ià
+defšed
+(
+ESP8266
+)
+
+136 
+	gMq‰S‘tšgsS”viû
+::
+	$ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+ & 
+ev’t
+) {
+
+137 ià(
+_¡©e
+.
+’abËd
+) {
+
+139 
+	`ÚCÚfigUpd©ed
+();
+
+141 
+	}
+}
+
+143 
+	gMq‰S‘tšgsS”viû
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+ & 
+ev’t
+) {
+
+144 ià(
+_¡©e
+.
+’abËd
+) {
+
+146 
+	`ÚCÚfigUpd©ed
+();
+
+148 
+	}
+}
+
+151 
+	gMq‰S‘tšgsS”viû
+::
+	$cÚfigu»Mq‰
+() {
+
+153 
+_mq‰Cl›Á
+.
+	`discÚÃù
+();
+
+156 ià(
+_¡©e
+.
+’abËd
+ && 
+WiFi
+.
+	`isCÚÃùed
+()) {
+
+158 
+_mq‰Cl›Á
+.
+	`£tS”v”
+(
+	`»�šC¡r
+(
+_¡©e
+.
+ho¡
+.
+	`c_¡r
+(), &
+_»�šedHo¡
+), _¡©e.
+pÜt
+);
+
+159 ià(
+_¡©e
+.
+u£ºame
+.
+	`Ëngth
+() > 0) {
+
+160 
+_mq‰Cl›Á
+.
+	`£tC»d’tŸls
+(
+	`»�šC¡r
+(
+_¡©e
+.
+u£ºame
+.
+	`c_¡r
+(), &
+_»�šedU£ºame
+),
+
+161 
+	`»�šC¡r
+(
+_¡©e
+.
+·sswÜd
+.
+	`Ëngth
+(è> 0 ? _¡©e.·sswÜd.
+	`c_¡r
+(è: 
+nuÎ±r
+, &
+_»�šedPasswÜd
+));
+
+163 
+_mq‰Cl›Á
+.
+	`£tC»d’tŸls
+(
+	`»�šC¡r
+(
+nuÎ±r
+, &
+_»�šedU£ºame
+),„‘ašC¡rÒuÎ±r, &
+_»�šedPasswÜd
+));
+
+165 
+_mq‰Cl›Á
+.
+	`£tCl›ÁId
+(
+	`»�šC¡r
+(
+_¡©e
+.
+þ›ÁId
+.
+	`c_¡r
+(), &
+_»�šedCl›ÁId
+));
+
+166 
+_mq‰Cl›Á
+.
+	`£tK“pAlive
+(
+_¡©e
+.
+k“pAlive
+);
+
+167 
+_mq‰Cl›Á
+.
+	`£tCËªSessiÚ
+(
+_¡©e
+.
+þ—nSessiÚ
+);
+
+168 
+_mq‰Cl›Á
+.
+	`£tMaxTÝicL’gth
+(
+_¡©e
+.
+maxTÝicL’gth
+);
+
+169 
+_mq‰Cl›Á
+.
+	`cÚÃù
+();
+
+172 
+em£¥
+::
+EMSESP
+::
+£nsÜs_
+.
+	`»lßd
+();
+
+173 
+	}
+}
+
+175 
+	gMq‰S‘tšgs
+::
+	$»ad
+(
+Mq‰S‘tšgs
+ & 
+£‰šgs
+, 
+JsÚObjeù
+ & 
+roÙ
+) {
+
+176 
+roÙ
+["’abËd"] = 
+£‰šgs
+.
+’abËd
+;
+
+177 
+roÙ
+["ho¡"] = 
+£‰šgs
+.
+ho¡
+;
+
+178 
+roÙ
+["pÜt"] = 
+£‰šgs
+.
+pÜt
+;
+
+179 
+roÙ
+["u£ºame"] = 
+£‰šgs
+.
+u£ºame
+;
+
+180 
+roÙ
+["·sswÜd"] = 
+£‰šgs
+.
+·sswÜd
+;
+
+181 
+roÙ
+["þ›Á_id"] = 
+£‰šgs
+.
+þ›ÁId
+;
+
+182 
+roÙ
+["k“p_®ive"] = 
+£‰šgs
+.
+k“pAlive
+;
+
+183 
+roÙ
+["þ—n_£ssiÚ"] = 
+£‰šgs
+.
+þ—nSessiÚ
+;
+
+184 
+roÙ
+["max_tÝic_Ëngth"] = 
+£‰šgs
+.
+maxTÝicL’gth
+;
+
+187 
+roÙ
+["sy¡em_h—¹b—t"] = 
+£‰šgs
+.
+sy¡em_h—¹b—t
+;
+
+188 
+roÙ
+["publish_time_bož”"] = 
+£‰šgs
+.
+publish_time_bož”
+;
+
+189 
+roÙ
+["publish_time_th”mo¡©"] = 
+£‰šgs
+.
+publish_time_th”mo¡©
+;
+
+190 
+roÙ
+["publish_time_sÞ¬"] = 
+£‰šgs
+.
+publish_time_sÞ¬
+;
+
+191 
+roÙ
+["publish_time_mixšg"] = 
+£‰šgs
+.
+publish_time_mixšg
+;
+
+192 
+roÙ
+["publish_time_Ùh”"] = 
+£‰šgs
+.
+publish_time_Ùh”
+;
+
+193 
+roÙ
+["publish_time_£nsÜ"] = 
+£‰šgs
+.
+publish_time_£nsÜ
+;
+
+194 
+roÙ
+["mq‰_fÜm©"] = 
+£‰šgs
+.
+mq‰_fÜm©
+;
+
+195 
+roÙ
+["mq‰_qos"] = 
+£‰šgs
+.
+mq‰_qos
+;
+
+196 
+	}
+}
+
+198 
+S�‹Upd©eResuÉ
+ 
+	gMq‰S‘tšgs
+::
+	$upd©e
+(
+JsÚObjeù
+ & 
+roÙ
+, 
+Mq‰S‘tšgs
+ & 
+£‰šgs
+) {
+
+199 
+Mq‰S‘tšgs
+ 
+ÃwS‘tšgs
+ = {};
+
+201 
+ÃwS‘tšgs
+.
+’abËd
+ = 
+roÙ
+["’abËd"] | 
+FACTORY_MQTT_ENABLED
+;
+
+202 
+ÃwS‘tšgs
+.
+ho¡
+ = 
+roÙ
+["ho¡"] | 
+FACTORY_MQTT_HOST
+;
+
+203 
+ÃwS‘tšgs
+.
+pÜt
+ = 
+roÙ
+["pÜt"] | 
+FACTORY_MQTT_PORT
+;
+
+204 
+ÃwS‘tšgs
+.
+u£ºame
+ = 
+roÙ
+["u£ºame"] | 
+FACTORY_MQTT_USERNAME
+;
+
+205 
+ÃwS‘tšgs
+.
+·sswÜd
+ = 
+roÙ
+["·sswÜd"] | 
+FACTORY_MQTT_PASSWORD
+;
+
+206 
+ÃwS‘tšgs
+.
+þ›ÁId
+ = 
+roÙ
+["þ›Á_id"] | 
+FACTORY_MQTT_CLIENT_ID
+;
+
+207 
+ÃwS‘tšgs
+.
+k“pAlive
+ = 
+roÙ
+["k“p_®ive"] | 
+FACTORY_MQTT_KEEP_ALIVE
+;
+
+208 
+ÃwS‘tšgs
+.
+þ—nSessiÚ
+ = 
+roÙ
+["þ—n_£ssiÚ"] | 
+FACTORY_MQTT_CLEAN_SESSION
+;
+
+209 
+ÃwS‘tšgs
+.
+maxTÝicL’gth
+ = 
+roÙ
+["max_tÝic_Ëngth"] | 
+FACTORY_MQTT_MAX_TOPIC_LENGTH
+;
+
+211 
+ÃwS‘tšgs
+.
+sy¡em_h—¹b—t
+ = 
+roÙ
+["sy¡em_h—¹b—t"] | 
+EMSESP_DEFAULT_SYSTEM_HEARTBEAT
+;
+
+212 
+ÃwS‘tšgs
+.
+publish_time_bož”
+ = 
+roÙ
+["publish_time_bož”"] | 
+EMSESP_DEFAULT_PUBLISH_TIME
+;
+
+213 
+ÃwS‘tšgs
+.
+publish_time_th”mo¡©
+ = 
+roÙ
+["publish_time_th”mo¡©"] | 
+EMSESP_DEFAULT_PUBLISH_TIME
+;
+
+214 
+ÃwS‘tšgs
+.
+publish_time_sÞ¬
+ = 
+roÙ
+["publish_time_sÞ¬"] | 
+EMSESP_DEFAULT_PUBLISH_TIME
+;
+
+215 
+ÃwS‘tšgs
+.
+publish_time_mixšg
+ = 
+roÙ
+["publish_time_mixšg"] | 
+EMSESP_DEFAULT_PUBLISH_TIME
+;
+
+216 
+ÃwS‘tšgs
+.
+publish_time_Ùh”
+ = 
+roÙ
+["publish_time_Ùh”"] | 
+EMSESP_DEFAULT_PUBLISH_TIME
+;
+
+217 
+ÃwS‘tšgs
+.
+publish_time_£nsÜ
+ = 
+roÙ
+["publish_time_£nsÜ"] | 
+EMSESP_DEFAULT_PUBLISH_TIME
+;
+
+218 
+ÃwS‘tšgs
+.
+mq‰_fÜm©
+ = 
+roÙ
+["mq‰_fÜm©"] | 
+EMSESP_DEFAULT_MQTT_FORMAT
+;
+
+219 
+ÃwS‘tšgs
+.
+mq‰_qos
+ = 
+roÙ
+["mq‰_qos"] | 
+EMSESP_DEFAULT_MQTT_QOS
+;
+
+221 ià(
+ÃwS‘tšgs
+.
+sy¡em_h—¹b—t
+ !ð
+£‰šgs
+.system_heartbeat) {
+
+222 
+em£¥
+::
+EMSESP
+::
+sy¡em_
+.
+	`£t_h—¹b—t
+(
+ÃwS‘tšgs
+.
+sy¡em_h—¹b—t
+);
+
+225 ià(
+ÃwS‘tšgs
+.
+mq‰_qos
+ !ð
+£‰šgs
+.mqtt_qos) {
+
+226 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`£t_qos
+(
+ÃwS‘tšgs
+.
+mq‰_qos
+);
+
+229 ià(
+ÃwS‘tšgs
+.
+publish_time_bož”
+ !ð
+£‰šgs
+.publish_time_boiler) {
+
+230 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`£t_publish_time_bož”
+(
+ÃwS‘tšgs
+.
+publish_time_bož”
+);
+
+232 ià(
+ÃwS‘tšgs
+.
+publish_time_th”mo¡©
+ !ð
+£‰šgs
+.publish_time_thermostat) {
+
+233 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`£t_publish_time_th”mo¡©
+(
+ÃwS‘tšgs
+.
+publish_time_th”mo¡©
+);
+
+235 ià(
+ÃwS‘tšgs
+.
+publish_time_sÞ¬
+ !ð
+£‰šgs
+.publish_time_solar) {
+
+236 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`£t_publish_time_sÞ¬
+(
+ÃwS‘tšgs
+.
+publish_time_sÞ¬
+);
+
+238 ià(
+ÃwS‘tšgs
+.
+publish_time_mixšg
+ !ð
+£‰šgs
+.publish_time_mixing) {
+
+239 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`£t_publish_time_mixšg
+(
+ÃwS‘tšgs
+.
+publish_time_mixšg
+);
+
+241 ià(
+ÃwS‘tšgs
+.
+publish_time_Ùh”
+ !ð
+£‰šgs
+.publish_time_other) {
+
+242 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`£t_publish_time_Ùh”
+(
+ÃwS‘tšgs
+.
+publish_time_Ùh”
+);
+
+244 ià(
+ÃwS‘tšgs
+.
+publish_time_£nsÜ
+ !ð
+£‰šgs
+.publish_time_sensor) {
+
+245 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`£t_publish_time_£nsÜ
+(
+ÃwS‘tšgs
+.
+publish_time_£nsÜ
+);
+
+248 
+em£¥
+::
+EMSESP
+::
+mq‰_
+.
+	`»£t_publish_çžs
+();
+
+250 
+£‰šgs
+ = 
+ÃwS‘tšgs
+;
+
+252  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+253 
+	}
+}
+
+	@lib/framework/MqttSettingsService.h
+
+1 #iâdeà
+Mq‰S‘tšgsS”viû_h
+
+
+2 
+	#Mq‰S‘tšgsS”viû_h
+
+
+	)
+
+4 
+	~<S�‹fulS”viû.h
+>
+
+5 
+	~<H‰pEndpošt.h
+>
+
+6 
+	~<FSP”si¡’û.h
+>
+
+7 
+	~<AsyncMq‰Cl›Á.h
+>
+
+8 
+	~<ESPUtžs.h
+>
+
+9 
+	~<uuid/commÚ.h
+>
+
+11 
+	~"../../¤c/sy¡em.h
+"
+
+12 
+	~"../../¤c/mq‰.h
+"
+
+13 
+	~"../../¤c/£nsÜs.h
+"
+
+15 
+	#MQTT_RECONNECTION_DELAY
+ 1000
+
+	)
+
+17 
+	#MQTT_SETTINGS_FILE
+ "/cÚfig/mq‰S‘tšgs.jsÚ"
+
+	)
+
+18 
+	#MQTT_SETTINGS_SERVICE_PATH
+ "/»¡/mq‰S‘tšgs"
+
+	)
+
+20 #iâdeà
+FACTORY_MQTT_ENABLED
+
+
+21 
+	#FACTORY_MQTT_ENABLED
+ 
+çl£
+
+
+	)
+
+24 #iâdeà
+FACTORY_MQTT_HOST
+
+
+25 
+	#FACTORY_MQTT_HOST
+ "‹¡.mosqu™to.Üg"
+
+	)
+
+28 #iâdeà
+FACTORY_MQTT_PORT
+
+
+29 
+	#FACTORY_MQTT_PORT
+ 1883
+
+	)
+
+32 #iâdeà
+FACTORY_MQTT_USERNAME
+
+
+33 
+	#FACTORY_MQTT_USERNAME
+ ""
+
+	)
+
+36 #iâdeà
+FACTORY_MQTT_PASSWORD
+
+
+37 
+	#FACTORY_MQTT_PASSWORD
+ ""
+
+	)
+
+40 #iâdeà
+FACTORY_MQTT_CLIENT_ID
+
+
+41 
+	#FACTORY_MQTT_CLIENT_ID
+ 
+	`g’”©eCl›ÁId
+()
+
+	)
+
+42 
+SŒšg
+ 
+	$g’”©eCl›ÁId
+() {
+
+43 #ifdeà
+ESP32
+
+
+44  
+ESPUtžs
+::
+	`deçuÉDeviûV®ue
+("esp32-");
+
+45 #–ià
+	`defšed
+(
+ESP8266
+)
+
+46  
+ESPUtžs
+::
+	`deçuÉDeviûV®ue
+("esp8266-");
+
+48 
+	}
+}
+
+51 #iâdeà
+FACTORY_MQTT_KEEP_ALIVE
+
+
+52 
+	#FACTORY_MQTT_KEEP_ALIVE
+ 16
+
+	)
+
+55 #iâdeà
+FACTORY_MQTT_CLEAN_SESSION
+
+
+56 
+	#FACTORY_MQTT_CLEAN_SESSION
+ 
+Œue
+
+
+	)
+
+59 #iâdeà
+FACTORY_MQTT_MAX_TOPIC_LENGTH
+
+
+60 
+	#FACTORY_MQTT_MAX_TOPIC_LENGTH
+ 128
+
+	)
+
+63 
+	#EMSESP_DEFAULT_SYSTEM_HEARTBEAT
+ 
+Œue
+
+
+	)
+
+64 
+	#EMSESP_DEFAULT_MQTT_FORMAT
+ 2
+
+65 
+	#EMSESP_DEFAULT_MQTT_QOS
+ 0
+
+	)
+
+66 
+	#EMSESP_DEFAULT_PUBLISH_TIME
+ 10
+
+	)
+
+69 þas 
+	cMq‰S‘tšgs
+ {
+
+70 
+	mpublic
+:
+
+72 
+boÞ
+ 
+’abËd
+;
+
+73 
+SŒšg
+ 
+	mho¡
+;
+
+74 
+ušt16_t
+ 
+	mpÜt
+;
+
+77 
+SŒšg
+ 
+	mu£ºame
+;
+
+78 
+SŒšg
+ 
+	m·sswÜd
+;
+
+81 
+SŒšg
+ 
+	mþ›ÁId
+;
+
+84 
+ušt16_t
+ 
+	mk“pAlive
+;
+
+85 
+boÞ
+ 
+	mþ—nSessiÚ
+;
+
+86 
+ušt16_t
+ 
+	mmaxTÝicL’gth
+;
+
+89 
+ušt16_t
+ 
+	mpublish_time_bož”
+;
+
+90 
+ušt16_t
+ 
+	mpublish_time_th”mo¡©
+;
+
+91 
+ušt16_t
+ 
+	mpublish_time_sÞ¬
+;
+
+92 
+ušt16_t
+ 
+	mpublish_time_mixšg
+;
+
+93 
+ušt16_t
+ 
+	mpublish_time_Ùh”
+;
+
+94 
+ušt16_t
+ 
+	mpublish_time_£nsÜ
+;
+
+95 
+ušt8_t
+ 
+	mmq‰_fÜm©
+;
+
+96 
+ušt8_t
+ 
+	mmq‰_qos
+;
+
+97 
+boÞ
+ 
+	msy¡em_h—¹b—t
+;
+
+99 
+»ad
+(
+Mq‰S‘tšgs
+ & 
+£‰šgs
+, 
+JsÚObjeù
+ & 
+roÙ
+);
+
+100 
+S�‹Upd©eResuÉ
+ 
+upd©e
+(
+JsÚObjeù
+ & 
+roÙ
+, 
+Mq‰S‘tšgs
+ & 
+£‰šgs
+);
+
+103 
+þass
+ 
+	gMq‰S‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+Mq‰S‘tšgs
+> {
+
+104 
+public
+:
+
+105 
+Mq‰S‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+);
+
+106 ~
+Mq‰S‘tšgsS”viû
+();
+
+108 
+begš
+();
+
+109 
+loÝ
+();
+
+110 
+boÞ
+ 
+isEÇbËd
+();
+
+111 
+boÞ
+ 
+isCÚÃùed
+();
+
+112 cÚ¡ * 
+g‘Cl›ÁId
+();
+
+113 
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+g‘DiscÚÃùR—sÚ
+();
+
+114 
+AsyncMq‰Cl›Á
+ * 
+g‘Mq‰Cl›Á
+();
+
+116 
+	g´Ùeùed
+:
+
+117 
+ÚCÚfigUpd©ed
+();
+
+119 
+	g´iv©e
+:
+
+120 
+H‰pEndpošt
+<
+Mq‰S‘tšgs
+> 
+_h‰pEndpošt
+;
+
+121 
+	gFSP”si¡’û
+<
+	gMq‰S‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+125 * 
+	g_»�šedHo¡
+;
+
+126 * 
+	g_»�šedCl›ÁId
+;
+
+127 * 
+	g_»�šedU£ºame
+;
+
+128 * 
+	g_»�šedPasswÜd
+;
+
+131 
+boÞ
+ 
+	g_»cÚfigu»Mq‰
+;
+
+132 
+	g_discÚÃùedAt
+;
+
+135 
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+	g_discÚÃùR—sÚ
+;
+
+138 
+AsyncMq‰Cl›Á
+ 
+	g_mq‰Cl›Á
+;
+
+140 #ifdeà
+ESP32
+
+
+141 
+ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+142 
+ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+143 #–ià
+defšed
+(
+ESP8266
+)
+
+144 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeDiscÚÃùedHªdËr
+;
+
+145 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeGÙIPHªdËr
+;
+
+146 
+ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+ & 
+ev’t
+);
+
+147 
+ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+ & 
+ev’t
+);
+
+150 
+ÚMq‰CÚÃù
+(
+boÞ
+ 
+£ssiÚP»£Á
+);
+
+151 
+ÚMq‰DiscÚÃù
+(
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+»asÚ
+);
+
+152 
+cÚfigu»Mq‰
+();
+
+	@lib/framework/MqttStatus.cpp
+
+1 
+	~<Mq‰S�tus.h
+>
+
+3 
+	gMq‰S�tus
+::
+	$Mq‰S�tus
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Mq‰S‘tšgsS”viû
+ * 
+mq‰S‘tšgsS”viû
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+)
+
+4 : 
+	$_mq‰S‘tšgsS”viû
+(
+mq‰S‘tšgsS”viû
+) {
+
+5 
+£rv”
+->
+	`Ú
+(
+MQTT_STATUS_SERVICE_PATH
+,
+
+6 
+HTTP_GET
+,
+
+7 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+Mq‰S�tus
+::
+mq‰S�tus
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+), 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+8 
+	}
+}
+
+10 
+	gMq‰S�tus
+::
+	$mq‰S�tus
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+11 
+AsyncJsÚRe¥Ú£
+ * 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_MQTT_STATUS_SIZE
+);
+
+12 
+JsÚObjeù
+ 
+roÙ
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+14 
+roÙ
+["’abËd"] = 
+_mq‰S‘tšgsS”viû
+->
+	`isEÇbËd
+();
+
+15 
+roÙ
+["cÚÃùed"] = 
+_mq‰S‘tšgsS”viû
+->
+	`isCÚÃùed
+();
+
+16 
+roÙ
+["þ›Á_id"] = 
+_mq‰S‘tšgsS”viû
+->
+	`g‘Cl›ÁId
+();
+
+17 
+roÙ
+["discÚÃù_»asÚ"] = (
+ušt8_t
+)
+_mq‰S‘tšgsS”viû
+->
+	`g‘DiscÚÃùR—sÚ
+();
+
+19 
+roÙ
+["mq‰_çžs"] = 
+em£¥
+::
+Mq‰
+::
+	`publish_çžs
+();
+
+21 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+22 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+23 
+	}
+}
+
+	@lib/framework/MqttStatus.h
+
+1 #iâdeà
+Mq‰S�tus_h
+
+
+2 
+	#Mq‰S�tus_h
+
+
+	)
+
+4 #ifdeà
+ESP32
+
+
+5 
+	~<WiFi.h
+>
+
+6 
+	~<AsyncTCP.h
+>
+
+7 #–ià
+defšed
+(
+ESP8266
+)
+
+8 
+	~<ESP8266WiFi.h
+>
+
+9 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~"../../¤c/mq‰.h
+"
+
+14 
+	~<Mq‰S‘tšgsS”viû.h
+>
+
+15 
+	~<ArdušoJsÚ.h
+>
+
+16 
+	~<AsyncJsÚ.h
+>
+
+17 
+	~<ESPAsyncWebS”v”.h
+>
+
+18 
+	~<Secur™yMªag”.h
+>
+
+20 
+	#MAX_MQTT_STATUS_SIZE
+ 1024
+
+	)
+
+21 
+	#MQTT_STATUS_SERVICE_PATH
+ "/»¡/mq‰S�tus"
+
+	)
+
+23 þas 
+	cMq‰S�tus
+ {
+
+24 
+	mpublic
+:
+
+25 
+Mq‰S�tus
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Mq‰S‘tšgsS”viû
+ * 
+mq‰S‘tšgsS”viû
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+);
+
+27 
+	m´iv©e
+:
+
+28 
+Mq‰S‘tšgsS”viû
+ * 
+_mq‰S‘tšgsS”viû
+;
+
+30 
+mq‰S�tus
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+);
+
+	@lib/framework/NTPSettingsService.cpp
+
+1 
+	~<NTPS‘tšgsS”viû.h
+>
+
+3 
+	gNTPS‘tšgsS”viû
+::
+	$NTPS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) :
+
+4 
+	`_h‰pEndpošt
+(
+NTPS‘tšgs
+::
+»ad
+, NTPS‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+NTP_SETTINGS_SERVICE_PATH
+, 
+£cur™yMªag”
+),
+
+5 
+	`_fsP”si¡’û
+(
+NTPS‘tšgs
+::
+»ad
+, NTPS‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+NTP_SETTINGS_FILE
+),
+
+6 
+	`_timeHªdËr
+(
+TIME_PATH
+,
+
+7 
+£cur™yMªag”
+->
+	`w¿pC®lback
+(
+
+8 
+¡d
+::
+	`bšd
+(&
+NTPS‘tšgsS”viû
+::
+cÚfigu»Time
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+),
+
+9 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+)) {
+
+10 
+_timeHªdËr
+.
+	`£tM‘hod
+(
+HTTP_POST
+);
+
+11 
+_timeHªdËr
+.
+	`£tMaxCÚ‹ÁL’gth
+(
+MAX_TIME_SIZE
+);
+
+12 
+£rv”
+->
+	`addHªdËr
+(&
+_timeHªdËr
+);
+
+13 #ifdeà
+ESP32
+
+
+14 
+WiFi
+.
+	`ÚEv’t
+(
+
+15 
+¡d
+::
+	`bšd
+(&
+NTPS‘tšgsS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+),
+
+16 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_DISCONNECTED
+);
+
+17 
+WiFi
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+NTPS‘tšgsS”viû
+::
+ÚS�tiÚModeGÙIP
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+),
+
+18 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_GOT_IP
+);
+
+19 #–ià
+	`defšed
+(
+ESP8266
+)
+
+20 
+_ÚS�tiÚModeDiscÚÃùedHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeDiscÚÃùed
+(
+
+21 
+¡d
+::
+	`bšd
+(&
+NTPS‘tšgsS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+22 
+_ÚS�tiÚModeGÙIPHªdËr
+ =
+
+23 
+WiFi
+.
+	`ÚS�tiÚModeGÙIP
+(
+¡d
+::
+	`bšd
+(&
+NTPS‘tšgsS”viû
+::
+ÚS�tiÚModeGÙIP
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+25 
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+& 
+ÜigšId
+è{ 
+	`cÚfigu»NTP
+(); }, 
+çl£
+);
+
+26 
+	}
+}
+
+28 
+	gNTPS‘tšgsS”viû
+::
+	$begš
+() {
+
+29 
+_fsP”si¡’û
+.
+	`»adFromFS
+();
+
+30 
+	`cÚfigu»NTP
+();
+
+31 
+	}
+}
+
+33 #ifdeà
+ESP32
+
+
+34 
+	gNTPS‘tšgsS”viû
+::
+	$ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+36 
+	`cÚfigu»NTP
+();
+
+37 
+	}
+}
+
+39 
+	gNTPS‘tšgsS”viû
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+41 
+	`cÚfigu»NTP
+();
+
+42 
+	}
+}
+
+43 #–ià
+defšed
+(
+ESP8266
+)
+
+44 
+	gNTPS‘tšgsS”viû
+::
+	$ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+& 
+ev’t
+) {
+
+46 
+	`cÚfigu»NTP
+();
+
+47 
+	}
+}
+
+49 
+	gNTPS‘tšgsS”viû
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+& 
+ev’t
+) {
+
+51 
+	`cÚfigu»NTP
+();
+
+52 
+	}
+}
+
+55 
+	gNTPS‘tšgsS”viû
+::
+	$cÚfigu»NTP
+() {
+
+56 ià(
+WiFi
+.
+	`isCÚÃùed
+(è&& 
+_¡©e
+.
+’abËd
+) {
+
+58 #ifdeà
+ESP32
+
+
+59 
+	`cÚfigTzTime
+(
+_¡©e
+.
+tzFÜm©
+.
+	`c_¡r
+(), _¡©e.
+£rv”
+.c_str());
+
+60 #–ià
+	`defšed
+(
+ESP8266
+)
+
+61 
+	`cÚfigTime
+(
+_¡©e
+.
+tzFÜm©
+.
+	`c_¡r
+(), _¡©e.
+£rv”
+.c_str());
+
+64 #ifdeà
+ESP32
+
+
+65 
+	`£‹nv
+("TZ", 
+_¡©e
+.
+tzFÜm©
+.
+	`c_¡r
+(), 1);
+
+66 
+	`tz£t
+();
+
+67 #–ià
+	`defšed
+(
+ESP8266
+)
+
+68 
+	`£tTZ
+(
+_¡©e
+.
+tzFÜm©
+.
+	`c_¡r
+());
+
+70 
+	`¢�_¡Ý
+();
+
+72 
+	}
+}
+
+74 
+	gNTPS‘tšgsS”viû
+::
+	$cÚfigu»Time
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+) {
+
+75 ià(!
+	`¢�_’abËd
+(è&& 
+jsÚ
+.
+is
+<
+JsÚObjeù
+>()) {
+
+76 
+SŒšg
+ 
+timeUtc
+ = 
+jsÚ
+["time_utc"];
+
+77 
+tm
+�m = {0};
+
+78 * 
+s
+ = 
+	`¡½time
+(
+timeUtc
+.
+	`c_¡r
+(), "%Y-%m-%dT%H:%M:%SZ", &
+tm
+);
+
+79 ià(
+s
+ !ð
+nuÎ±r
+) {
+
+80 
+time_t
+ 
+time
+ = 
+	`mktime
+(&
+tm
+);
+
+81 
+timev®
+ 
+now
+ = {.
+tv_£c
+ = 
+time
+};
+
+82 
+	`£‰imeofday
+(&
+now
+, 
+nuÎ±r
+);
+
+83 
+AsyncWebS”v”Re¥Ú£
+* 
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£
+(200);
+
+84 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+88 
+AsyncWebS”v”Re¥Ú£
+* 
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£
+(400);
+
+89 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+90 
+	}
+}
+
+	@lib/framework/NTPSettingsService.h
+
+1 #iâdeà
+NTPS‘tšgsS”viû_h
+
+
+2 
+	#NTPS‘tšgsS”viû_h
+
+
+	)
+
+4 
+	~<H‰pEndpošt.h
+>
+
+5 
+	~<FSP”si¡’û.h
+>
+
+7 
+	~<time.h
+>
+
+8 #ifdeà
+ESP32
+
+
+9 
+	~<lw�/­ps/¢�.h
+>
+
+10 #–ià
+defšed
+(
+ESP8266
+)
+
+11 
+	~<¢�.h
+>
+
+14 #iâdeà
+FACTORY_NTP_ENABLED
+
+
+15 
+	#FACTORY_NTP_ENABLED
+ 
+Œue
+
+
+	)
+
+18 #iâdeà
+FACTORY_NTP_TIME_ZONE_LABEL
+
+
+19 
+	#FACTORY_NTP_TIME_ZONE_LABEL
+ "EurÝe/LÚdÚ"
+
+	)
+
+22 #iâdeà
+FACTORY_NTP_TIME_ZONE_FORMAT
+
+
+23 
+	#FACTORY_NTP_TIME_ZONE_FORMAT
+ "GMT0BST,M3.5.0/1,M10.5.0"
+
+	)
+
+26 #iâdeà
+FACTORY_NTP_SERVER
+
+
+27 
+	#FACTORY_NTP_SERVER
+ "time.googË.com"
+
+	)
+
+30 
+	#NTP_SETTINGS_FILE
+ "/cÚfig/ÁpS‘tšgs.jsÚ"
+
+	)
+
+31 
+	#NTP_SETTINGS_SERVICE_PATH
+ "/»¡/ÁpS‘tšgs"
+
+	)
+
+33 
+	#MAX_TIME_SIZE
+ 256
+
+	)
+
+34 
+	#TIME_PATH
+ "/»¡/time"
+
+	)
+
+36 þas 
+	cNTPS‘tšgs
+ {
+
+37 
+	mpublic
+:
+
+38 
+boÞ
+ 
+’abËd
+;
+
+39 
+SŒšg
+ 
+	mtzLab–
+;
+
+40 
+SŒšg
+ 
+	mtzFÜm©
+;
+
+41 
+SŒšg
+ 
+	m£rv”
+;
+
+43 
+	$»ad
+(
+NTPS‘tšgs
+& 
+£‰šgs
+, 
+JsÚObjeù
+& 
+roÙ
+) {
+
+44 
+roÙ
+["’abËd"] = 
+£‰šgs
+.
+’abËd
+;
+
+45 
+roÙ
+["£rv”"] = 
+£‰šgs
+.
+£rv”
+;
+
+46 
+roÙ
+["tz_Ïb–"] = 
+£‰šgs
+.
+tzLab–
+;
+
+47 
+roÙ
+["tz_fÜm©"] = 
+£‰šgs
+.
+tzFÜm©
+;
+
+50 
+S�‹Upd©eResuÉ
+ 
+	$upd©e
+(
+JsÚObjeù
+& 
+roÙ
+, 
+NTPS‘tšgs
+& 
+£‰šgs
+) {
+
+51 
+£‰šgs
+.
+’abËd
+ = 
+roÙ
+["’abËd"] | 
+FACTORY_NTP_ENABLED
+;
+
+52 
+£‰šgs
+.
+£rv”
+ = 
+roÙ
+["£rv”"] | 
+FACTORY_NTP_SERVER
+;
+
+53 
+£‰šgs
+.
+tzLab–
+ = 
+roÙ
+["tz_Ïb–"] | 
+FACTORY_NTP_TIME_ZONE_LABEL
+;
+
+54 
+£‰šgs
+.
+tzFÜm©
+ = 
+roÙ
+["tz_fÜm©"] | 
+FACTORY_NTP_TIME_ZONE_FORMAT
+;
+
+55  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+56 
+	}
+}
+
+59 
+þass
+ 
+	gNTPS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+NTPS‘tšgs
+> {
+
+60 
+public
+:
+
+61 
+NTPS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+63 
+begš
+();
+
+65 
+	g´iv©e
+:
+
+66 
+H‰pEndpošt
+<
+NTPS‘tšgs
+> 
+_h‰pEndpošt
+;
+
+67 
+	gFSP”si¡’û
+<
+	gNTPS‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+68 
+AsyncC®lbackJsÚWebHªdËr
+ 
+	g_timeHªdËr
+;
+
+70 #ifdeà
+ESP32
+
+
+71 
+ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+72 
+ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+73 #–ià
+defšed
+(
+ESP8266
+)
+
+74 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeDiscÚÃùedHªdËr
+;
+
+75 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeGÙIPHªdËr
+;
+
+77 
+ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+& 
+ev’t
+);
+
+78 
+ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+& 
+ev’t
+);
+
+80 
+cÚfigu»NTP
+();
+
+81 
+cÚfigu»Time
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+);
+
+	@lib/framework/NTPStatus.cpp
+
+1 
+	~<NTPS�tus.h
+>
+
+3 
+	gNTPS�tus
+::
+	$NTPS�tus
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) {
+
+4 
+£rv”
+->
+	`Ú
+(
+NTP_STATUS_SERVICE_PATH
+,
+
+5 
+HTTP_GET
+,
+
+6 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+NTPS�tus
+::
+ÁpS�tus
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+7 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+8 
+	}
+}
+
+10 
+SŒšg
+ 
+	$toISOSŒšg
+(
+tm
+* 
+time
+, 
+boÞ
+ 
+šcOff£t
+) {
+
+11 
+time_¡ršg
+[25];
+
+12 
+	`¡ráime
+(
+time_¡ršg
+, 25, 
+šcOff£t
+ ? "%FT%T%z" : "%FT%TZ", 
+time
+);
+
+13  
+	`SŒšg
+(
+time_¡ršg
+);
+
+14 
+	}
+}
+
+16 
+	gNTPS�tus
+::
+	$ÁpS�tus
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+17 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_NTP_STATUS_SIZE
+);
+
+18 
+JsÚObjeù
+ 
+roÙ
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+21 
+time_t
+ 
+now
+ = 
+	`time
+(
+nuÎ±r
+);
+
+24 
+roÙ
+["¡©us"] = 
+	`¢�_’abËd
+() ? 1 : 0;
+
+27 
+roÙ
+["time_utc"] = 
+	`toISOSŒšg
+(
+	`gmtime
+(&
+now
+), 
+çl£
+);
+
+30 
+roÙ
+["time_loÿl"] = 
+	`toISOSŒšg
+(
+	`loÿÉime
+(&
+now
+), 
+Œue
+);
+
+33 
+roÙ
+["£rv”"] = 
+	`¢�_g‘£rv”Çme
+(0);
+
+36 
+roÙ
+["u±ime"] = 
+uuid
+::
+	`g‘_u±ime
+() / 1000;
+
+38 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+39 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+40 
+	}
+}
+
+	@lib/framework/NTPStatus.h
+
+1 #iâdeà
+NTPS�tus_h
+
+
+2 
+	#NTPS�tus_h
+
+
+	)
+
+4 
+	~<time.h
+>
+
+5 #ifdeà
+ESP32
+
+
+6 
+	~<WiFi.h
+>
+
+7 
+	~<AsyncTCP.h
+>
+
+8 
+	~<lw�/­ps/¢�.h
+>
+
+9 #–ià
+defšed
+(
+ESP8266
+)
+
+10 
+	~<ESP8266WiFi.h
+>
+
+11 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~<¢�.h
+>
+
+15 
+	~<ArdušoJsÚ.h
+>
+
+16 
+	~<AsyncJsÚ.h
+>
+
+17 
+	~<ESPAsyncWebS”v”.h
+>
+
+18 
+	~<Secur™yMªag”.h
+>
+
+19 
+	~<uuid/commÚ.h
+>
+
+22 
+	#MAX_NTP_STATUS_SIZE
+ 1024
+
+	)
+
+23 
+	#NTP_STATUS_SERVICE_PATH
+ "/»¡/ÁpS�tus"
+
+	)
+
+25 þas 
+	cNTPS�tus
+ {
+
+26 
+	mpublic
+:
+
+27 
+NTPS�tus
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+29 
+	m´iv©e
+:
+
+30 
+ÁpS�tus
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+	@lib/framework/OTASettingsService.cpp
+
+1 
+	~<OTAS‘tšgsS”viû.h
+>
+
+3 
+	gOTAS‘tšgsS”viû
+::
+	$OTAS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+)
+
+4 : 
+	`_h‰pEndpošt
+(
+OTAS‘tšgs
+::
+»ad
+, OTAS‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+OTA_SETTINGS_SERVICE_PATH
+, 
+£cur™yMªag”
+)
+
+5 , 
+	`_fsP”si¡’û
+(
+OTAS‘tšgs
+::
+»ad
+, OTAS‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+OTA_SETTINGS_FILE
+)
+
+6 , 
+	$_¬dušoOTA
+(
+nuÎ±r
+) {
+
+7 #ifdeà
+ESP32
+
+
+8 
+WiFi
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+OTAS‘tšgsS”viû
+::
+ÚS�tiÚModeGÙIP
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+), 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_GOT_IP
+);
+
+9 #–ià
+	`defšed
+(
+ESP8266
+)
+
+10 
+_ÚS�tiÚModeGÙIPHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeGÙIP
+(
+¡d
+::
+	`bšd
+(&
+OTAS‘tšgsS”viû
+::
+ÚS�tiÚModeGÙIP
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+12 
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+è{ 
+	`cÚfigu»ArdušoOTA
+(); }, 
+çl£
+);
+
+13 
+	}
+}
+
+15 
+	gOTAS‘tšgsS”viû
+::
+	$begš
+() {
+
+16 
+_fsP”si¡’û
+.
+	`»adFromFS
+();
+
+17 
+	`cÚfigu»ArdušoOTA
+();
+
+18 
+	}
+}
+
+20 
+	gOTAS‘tšgsS”viû
+::
+	$loÝ
+() {
+
+21 ià(
+_¡©e
+.
+’abËd
+ && 
+_¬dušoOTA
+) {
+
+22 
+_¬dušoOTA
+->
+	`hªdË
+();
+
+24 
+	}
+}
+
+26 
+	gOTAS‘tšgsS”viû
+::
+	$cÚfigu»ArdušoOTA
+() {
+
+27 ià(
+_¬dušoOTA
+) {
+
+28 #ifdeà
+ESP32
+
+
+29 
+_¬dušoOTA
+->
+	`’d
+();
+
+31 
+d–‘e
+ 
+_¬dušoOTA
+;
+
+32 
+_¬dušoOTA
+ = 
+nuÎ±r
+;
+
+34 ià(
+_¡©e
+.
+’abËd
+) {
+
+36 
+_¬dušoOTA
+ = 
+Ãw
+ 
+ArdušoOTACÏss
+;
+
+37 
+_¬dušoOTA
+->
+	`£tPÜt
+(
+_¡©e
+.
+pÜt
+);
+
+38 
+_¬dušoOTA
+->
+	`£tPasswÜd
+(
+_¡©e
+.
+·sswÜd
+.
+	`c_¡r
+());
+
+40 
+_¬dušoOTA
+->
+	`ÚS�¹
+([]() {
+
+42 
+em£¥
+::
+Sy¡em
+::
+	`u¶ßd_¡©us
+(
+Œue
+);
+
+44 
+_¬dušoOTA
+->
+	`ÚEnd
+([]() {
+
+46 
+em£¥
+::
+Sy¡em
+::
+	`u¶ßd_¡©us
+(
+çl£
+);
+
+67 
+_¬dušoOTA
+->
+	`begš
+();
+
+69 
+	}
+}
+
+71 #ifdeà
+ESP32
+
+
+72 
+	gOTAS‘tšgsS”viû
+::
+	$ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+73 
+	`cÚfigu»ArdušoOTA
+();
+
+74 
+	}
+}
+
+75 #–ià
+defšed
+(
+ESP8266
+)
+
+76 
+	gOTAS‘tšgsS”viû
+::
+	$ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+ & 
+ev’t
+) {
+
+77 
+	`cÚfigu»ArdušoOTA
+();
+
+78 
+	}
+}
+
+	@lib/framework/OTASettingsService.h
+
+1 #iâdeà
+OTAS‘tšgsS”viû_h
+
+
+2 
+	#OTAS‘tšgsS”viû_h
+
+
+	)
+
+4 
+	~<H‰pEndpošt.h
+>
+
+5 
+	~<FSP”si¡’û.h
+>
+
+7 #ifdeà
+ESP32
+
+
+8 
+	~<ESPmDNS.h
+>
+
+9 #–ià
+defšed
+(
+ESP8266
+)
+
+10 
+	~<ESP8266mDNS.h
+>
+
+13 
+	~<ArdušoOTA.h
+>
+
+14 
+	~<WiFiUdp.h
+>
+
+16 
+	~"../../¤c/sy¡em.h
+"
+
+18 #iâdeà
+FACTORY_OTA_PORT
+
+
+19 
+	#FACTORY_OTA_PORT
+ 8266
+
+	)
+
+22 #iâdeà
+FACTORY_OTA_PASSWORD
+
+
+23 
+	#FACTORY_OTA_PASSWORD
+ "e¥-»aù"
+
+	)
+
+26 #iâdeà
+FACTORY_OTA_ENABLED
+
+
+27 
+	#FACTORY_OTA_ENABLED
+ 
+Œue
+
+
+	)
+
+30 
+	#OTA_SETTINGS_FILE
+ "/cÚfig/ÙaS‘tšgs.jsÚ"
+
+	)
+
+31 
+	#OTA_SETTINGS_SERVICE_PATH
+ "/»¡/ÙaS‘tšgs"
+
+	)
+
+33 þas 
+	cOTAS‘tšgs
+ {
+
+34 
+	mpublic
+:
+
+35 
+boÞ
+ 
+’abËd
+;
+
+36 
+	mpÜt
+;
+
+37 
+SŒšg
+ 
+	m·sswÜd
+;
+
+39 
+	$»ad
+(
+OTAS‘tšgs
+& 
+£‰šgs
+, 
+JsÚObjeù
+& 
+roÙ
+) {
+
+40 
+roÙ
+["’abËd"] = 
+£‰šgs
+.
+’abËd
+;
+
+41 
+roÙ
+["pÜt"] = 
+£‰šgs
+.
+pÜt
+;
+
+42 
+roÙ
+["·sswÜd"] = 
+£‰šgs
+.
+·sswÜd
+;
+
+45 
+S�‹Upd©eResuÉ
+ 
+	$upd©e
+(
+JsÚObjeù
+& 
+roÙ
+, 
+OTAS‘tšgs
+& 
+£‰šgs
+) {
+
+46 
+£‰šgs
+.
+’abËd
+ = 
+roÙ
+["’abËd"] | 
+FACTORY_OTA_ENABLED
+;
+
+47 
+£‰šgs
+.
+pÜt
+ = 
+roÙ
+["pÜt"] | 
+FACTORY_OTA_PORT
+;
+
+48 
+£‰šgs
+.
+·sswÜd
+ = 
+roÙ
+["·sswÜd"] | 
+FACTORY_OTA_PASSWORD
+;
+
+49  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+50 
+	}
+}
+
+53 
+þass
+ 
+	gOTAS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+OTAS‘tšgs
+> {
+
+54 
+public
+:
+
+55 
+OTAS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+57 
+begš
+();
+
+58 
+loÝ
+();
+
+60 
+	g´iv©e
+:
+
+61 
+H‰pEndpošt
+<
+OTAS‘tšgs
+> 
+_h‰pEndpošt
+;
+
+62 
+	gFSP”si¡’û
+<
+	gOTAS‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+63 
+ArdušoOTACÏss
+* 
+	g_¬dušoOTA
+;
+
+65 
+cÚfigu»ArdušoOTA
+();
+
+66 #ifdeà
+ESP32
+
+
+67 
+ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+68 #–ià
+defšed
+(
+ESP8266
+)
+
+69 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeGÙIPHªdËr
+;
+
+70 
+ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+& 
+ev’t
+);
+
+	@lib/framework/RestartService.cpp
+
+1 
+	~<Re¡¬tS”viû.h
+>
+
+3 
+	gRe¡¬tS”viû
+::
+	$Re¡¬tS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) {
+
+4 
+£rv”
+->
+	`Ú
+(
+RESTART_SERVICE_PATH
+,
+
+5 
+HTTP_POST
+,
+
+6 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+Re¡¬tS”viû
+::
+»¡¬t
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+7 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+));
+
+8 
+	}
+}
+
+10 
+	gRe¡¬tS”viû
+::
+	$»¡¬t
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+11 
+»que¡
+->
+	`ÚDiscÚÃù
+(
+Re¡¬tS”viû
+::
+»¡¬tNow
+);
+
+12 
+»que¡
+->
+	`£nd
+(200);
+
+13 
+	}
+}
+
+	@lib/framework/RestartService.h
+
+1 #iâdeà
+Re¡¬tS”viû_h
+
+
+2 
+	#Re¡¬tS”viû_h
+
+
+	)
+
+4 #ifdeà
+ESP32
+
+
+5 
+	~<WiFi.h
+>
+
+6 
+	~<AsyncTCP.h
+>
+
+7 #–ià
+defšed
+(
+ESP8266
+)
+
+8 
+	~<ESP8266WiFi.h
+>
+
+9 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~<ESPAsyncWebS”v”.h
+>
+
+13 
+	~<Secur™yMªag”.h
+>
+
+15 
+	#RESTART_SERVICE_PATH
+ "/»¡/»¡¬t"
+
+	)
+
+17 þas 
+	cRe¡¬tS”viû
+ {
+
+18 
+	mpublic
+:
+
+19 
+Re¡¬tS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+21 
+	$»¡¬tNow
+() {
+
+22 
+WiFi
+.
+	`discÚÃù
+(
+Œue
+);
+
+23 
+	`d–ay
+(500);
+
+24 
+ESP
+.
+	`»¡¬t
+();
+
+27 
+´iv©e
+:
+
+28 
+	`»¡¬t
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+29 
+	}
+};
+
+	@lib/framework/SecurityManager.h
+
+1 #iâdeà
+Secur™yMªag”_h
+
+
+2 
+	#Secur™yMªag”_h
+
+
+	)
+
+4 
+	~<F—tu»s.h
+>
+
+5 
+	~<ArdušoJsÚJWT.h
+>
+
+6 
+	~<ESPAsyncWebS”v”.h
+>
+
+7 
+	~<ESPUtžs.h
+>
+
+8 
+	~<AsyncJsÚ.h
+>
+
+9 
+	~<li¡
+>
+
+11 #iâdeà
+FACTORY_JWT_SECRET
+
+
+12 
+	#FACTORY_JWT_SECRET
+ 
+ESPUtžs
+::
+	`deçuÉDeviûV®ue
+()
+
+	)
+
+15 
+	#ACCESS_TOKEN_PARAMATER
+ "acûss_tok’"
+
+	)
+
+17 
+	#AUTHORIZATION_HEADER
+ "AuthÜiz©iÚ"
+
+	)
+
+18 
+	#AUTHORIZATION_HEADER_PREFIX
+ "B—»¸"
+
+	)
+
+19 
+	#AUTHORIZATION_HEADER_PREFIX_LEN
+ 7
+
+	)
+
+21 
+	#MAX_JWT_SIZE
+ 128
+
+	)
+
+23 þas 
+	cU£r
+ {
+
+24 
+	mpublic
+:
+
+25 
+SŒšg
+ 
+u£ºame
+;
+
+26 
+SŒšg
+ 
+	m·sswÜd
+;
+
+27 
+boÞ
+ 
+	madmš
+;
+
+29 
+	mpublic
+:
+
+30 
+	$U£r
+(
+SŒšg
+ 
+u£ºame
+, SŒšg 
+·sswÜd
+, 
+boÞ
+ 
+admš
+è: 
+	`u£ºame
+(u£ºame), 
+	`·sswÜd
+ÕasswÜd), 
+	$admš
+(
+admš
+) {
+
+32 
+	}
+};
+
+34 þas 
+	cAuth’tiÿtiÚ
+ {
+
+35 
+	mpublic
+:
+
+36 
+U£r
+* 
+u£r
+;
+
+37 
+boÞ—n
+ 
+	mauth’tiÿ‹d
+;
+
+39 
+	mpublic
+:
+
+40 
+	$Auth’tiÿtiÚ
+(
+U£r
+& 
+u£r
+è: 
+	`u£r
+(
+Ãw
+ 
+	`U£r
+(u£r)), 
+	$auth’tiÿ‹d
+(
+Œue
+) {
+
+42 
+	$Auth’tiÿtiÚ
+(è: 
+	`u£r
+(
+nuÎ±r
+), 
+	$auth’tiÿ‹d
+(
+çl£
+) {
+
+43 
+	}
+}
+
+44 ~
+	$Auth’tiÿtiÚ
+() {
+
+45 
+	`d–‘e
+ (
+u£r
+);
+
+46 
+	}
+}
+
+49 
+	g¡d
+::
+	tfunùiÚ
+<
+	tboÞ—n
+(
+	tAuth’tiÿtiÚ
+& 
+	tauth’tiÿtiÚ
+)> 
+	tAuth’tiÿtiÚP»diÿ‹
+;
+
+51 þas 
+	cAuth’tiÿtiÚP»diÿ‹s
+ {
+
+52 
+	mpublic
+:
+
+53 
+boÞ
+ 
+	$NONE_REQUIRED
+(
+Auth’tiÿtiÚ
+& 
+auth’tiÿtiÚ
+) {
+
+54  
+Œue
+;
+
+56 
+boÞ
+ 
+	$IS_AUTHENTICATED
+(
+Auth’tiÿtiÚ
+& 
+auth’tiÿtiÚ
+) {
+
+57  
+auth’tiÿtiÚ
+.
+auth’tiÿ‹d
+;
+
+58 
+	}
+};
+
+59 
+boÞ
+ 
+	$IS_ADMIN
+(
+Auth’tiÿtiÚ
+& 
+auth’tiÿtiÚ
+) {
+
+60  
+auth’tiÿtiÚ
+.
+auth’tiÿ‹d
+ &&‡uth’tiÿtiÚ.
+u£r
+->
+admš
+;
+
+61 
+	}
+};
+
+64 þas 
+	cSecur™yMªag”
+ {
+
+65 
+	mpublic
+:
+
+66 #ià
+	$FT_ENABLED
+(
+FT_SECURITY
+)
+
+70 
+vœtu®
+ 
+Auth’tiÿtiÚ
+ 
+	`auth’tiÿ‹
+(cÚ¡ 
+SŒšg
+& 
+u£ºame
+, cÚ¡ SŒšg& 
+·sswÜd
+) = 0;
+
+75 
+vœtu®
+ 
+SŒšg
+ 
+	`g’”©eJWT
+(
+U£r
+* 
+u£r
+) = 0;
+
+82 
+vœtu®
+ 
+Auth’tiÿtiÚ
+ 
+	`auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) = 0;
+
+87 
+vœtu®
+ 
+ArReque¡Fž‹rFunùiÚ
+ 
+	`fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) = 0;
+
+92 
+vœtu®
+ 
+ArReque¡HªdËrFunùiÚ
+ 
+	`w¿pReque¡
+(ArReque¡HªdËrFunùiÚ 
+ÚReque¡
+,
+
+93 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) = 0;
+
+98 
+vœtu®
+ 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	`w¿pC®lback
+(ArJsÚReque¡HªdËrFunùiÚ 
+ÚReque¡
+,
+
+99 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) = 0;
+
+	@lib/framework/SecuritySettingsService.cpp
+
+1 
+	~<Secur™yS‘tšgsS”viû.h
+>
+
+3 #ià
+FT_ENABLED
+(
+FT_SECURITY
+)
+
+5 
+	gSecur™yS‘tšgsS”viû
+::
+	$Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+) :
+
+6 
+	`_h‰pEndpošt
+(
+Secur™yS‘tšgs
+::
+»ad
+, Secur™yS‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+SECURITY_SETTINGS_PATH
+,�his),
+
+7 
+	`_fsP”si¡’û
+(
+Secur™yS‘tšgs
+::
+»ad
+, Secur™yS‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+SECURITY_SETTINGS_FILE
+),
+
+8 
+	$_jwtHªdËr
+(
+FACTORY_JWT_SECRET
+) {
+
+9 
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+& 
+ÜigšId
+è{ 
+	`cÚfigu»JWTHªdËr
+(); }, 
+çl£
+);
+
+10 
+	}
+}
+
+12 
+	gSecur™yS‘tšgsS”viû
+::
+	$begš
+() {
+
+13 
+_fsP”si¡’û
+.
+	`»adFromFS
+();
+
+14 
+	`cÚfigu»JWTHªdËr
+();
+
+15 
+	}
+}
+
+17 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+18 
+AsyncWebH—d”
+* 
+authÜiz©iÚH—d”
+ = 
+»que¡
+->
+	`g‘H—d”
+(
+AUTHORIZATION_HEADER
+);
+
+19 ià(
+authÜiz©iÚH—d”
+) {
+
+20 
+SŒšg
+ 
+v®ue
+ = 
+authÜiz©iÚH—d”
+->
+	`v®ue
+();
+
+21 ià(
+v®ue
+.
+	`¡¬tsW™h
+(
+AUTHORIZATION_HEADER_PREFIX
+)) {
+
+22 
+v®ue
+ = v®ue.
+	`sub¡ršg
+(
+AUTHORIZATION_HEADER_PREFIX_LEN
+);
+
+23  
+	`auth’tiÿ‹JWT
+(
+v®ue
+);
+
+25 } ià(
+»que¡
+->
+	`hasP¬am
+(
+ACCESS_TOKEN_PARAMATER
+)) {
+
+26 
+AsyncWebP¬am‘”
+* 
+tok’P¬am©”
+ = 
+»que¡
+->
+	`g‘P¬am
+(
+ACCESS_TOKEN_PARAMATER
+);
+
+27 
+SŒšg
+ 
+v®ue
+ = 
+tok’P¬am©”
+->
+	`v®ue
+();
+
+28  
+	`auth’tiÿ‹JWT
+(
+v®ue
+);
+
+30  
+	`Auth’tiÿtiÚ
+();
+
+31 
+	}
+}
+
+33 
+	gSecur™yS‘tšgsS”viû
+::
+	$cÚfigu»JWTHªdËr
+() {
+
+34 
+_jwtHªdËr
+.
+	`£tSeü‘
+(
+_¡©e
+.
+jwtSeü‘
+);
+
+35 
+	}
+}
+
+37 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹JWT
+(
+SŒšg
+& 
+jwt
+) {
+
+38 
+DyÇmicJsÚDocum’t
+ 
+	`·ylßdDocum’t
+(
+MAX_JWT_SIZE
+);
+
+39 
+_jwtHªdËr
+.
+	`·r£JWT
+(
+jwt
+, 
+·ylßdDocum’t
+);
+
+40 ià(
+·ylßdDocum’t
+.
+is
+<
+JsÚObjeù
+>()) {
+
+41 
+JsÚObjeù
+ 
+·r£dPaylßd
+ = 
+·ylßdDocum’t
+.
+as
+<JsonObject>();
+
+42 
+SŒšg
+ 
+u£ºame
+ = 
+·r£dPaylßd
+["username"];
+
+43 
+U£r
+ 
+_u£r
+ : 
+_¡©e
+.
+u£rs
+) {
+
+44 ià(
+_u£r
+.
+u£ºame
+ =ðu£ºam�&& 
+	`v®id©ePaylßd
+(
+·r£dPaylßd
+, &_user)) {
+
+45  
+	`Auth’tiÿtiÚ
+(
+_u£r
+);
+
+49  
+	`Auth’tiÿtiÚ
+();
+
+50 
+	}
+}
+
+52 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹
+(cÚ¡ 
+SŒšg
+& 
+u£ºame
+, cÚ¡ SŒšg& 
+·sswÜd
+) {
+
+53 
+U£r
+ 
+_u£r
+ : 
+_¡©e
+.
+u£rs
+) {
+
+54 ià(
+_u£r
+.
+u£ºame
+ =ðu£ºam�&& _u£r.
+·sswÜd
+ ==…assword) {
+
+55  
+	`Auth’tiÿtiÚ
+(
+_u£r
+);
+
+58  
+	`Auth’tiÿtiÚ
+();
+
+59 
+	}
+}
+
+61 
+šlše
+ 
+	$pÝuÏ‹JWTPaylßd
+(
+JsÚObjeù
+& 
+·ylßd
+, 
+U£r
+* 
+u£r
+) {
+
+62 
+·ylßd
+["u£ºame"] = 
+u£r
+->
+u£ºame
+;
+
+63 
+·ylßd
+["admš"] = 
+u£r
+->
+admš
+;
+
+64 
+·ylßd
+["v”siÚ"] = 
+EMSESP_APP_VERSION
+;
+
+65 
+	}
+}
+
+67 
+boÞ—n
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$v®id©ePaylßd
+(
+JsÚObjeù
+& 
+·r£dPaylßd
+, 
+U£r
+* 
+u£r
+) {
+
+68 
+DyÇmicJsÚDocum’t
+ 
+	`jsÚDocum’t
+(
+MAX_JWT_SIZE
+);
+
+69 
+JsÚObjeù
+ 
+·ylßd
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+70 
+	`pÝuÏ‹JWTPaylßd
+(
+·ylßd
+, 
+u£r
+);
+
+71  
+·ylßd
+ =ð
+·r£dPaylßd
+;
+
+72 
+	}
+}
+
+74 
+SŒšg
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$g’”©eJWT
+(
+U£r
+* 
+u£r
+) {
+
+75 
+DyÇmicJsÚDocum’t
+ 
+	`jsÚDocum’t
+(
+MAX_JWT_SIZE
+);
+
+76 
+JsÚObjeù
+ 
+·ylßd
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+77 
+	`pÝuÏ‹JWTPaylßd
+(
+·ylßd
+, 
+u£r
+);
+
+78  
+_jwtHªdËr
+.
+	`buždJWT
+(
+·ylßd
+);
+
+79 
+	}
+}
+
+81 
+ArReque¡Fž‹rFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+82  [
+this
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+83 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+84  
+	`´ediÿ‹
+(
+auth’tiÿtiÚ
+);
+
+86 
+	}
+}
+
+88 
+ArReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pReque¡
+(
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+89 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+90  [
+this
+, 
+ÚReque¡
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+91 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+92 ià(!
+	`´ediÿ‹
+(
+auth’tiÿtiÚ
+)) {
+
+93 
+»que¡
+->
+	`£nd
+(401);
+
+96 
+	`ÚReque¡
+(
+»que¡
+);
+
+98 
+	}
+}
+
+100 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pC®lback
+(
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+101 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+102  [
+this
+, 
+ÚReque¡
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+) {
+
+103 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+104 ià(!
+	`´ediÿ‹
+(
+auth’tiÿtiÚ
+)) {
+
+105 
+»que¡
+->
+	`£nd
+(401);
+
+108 
+	`ÚReque¡
+(
+»que¡
+, 
+jsÚ
+);
+
+110 
+	}
+}
+
+114 
+U£r
+ 
+	gADMIN_USER
+ = U£r(
+FACTORY_ADMIN_USERNAME
+, 
+FACTORY_ADMIN_PASSWORD
+, 
+Œue
+);
+
+116 
+	gSecur™yS‘tšgsS”viû
+::
+	$Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+è: 
+	$Secur™yMªag”
+() {
+
+117 
+	}
+}
+
+118 
+Secur™yS‘tšgsS”viû
+::~
+	$Secur™yS‘tšgsS”viû
+() {
+
+119 
+	}
+}
+
+121 
+ArReque¡Fž‹rFunùiÚ
+ 
+Secur™yS‘tšgsS”viû
+::
+	$fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+122  [
+this
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+è{  
+Œue
+; };
+
+123 
+	}
+}
+
+126 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+127  
+	`Auth’tiÿtiÚ
+(
+ADMIN_USER
+);
+
+128 
+	}
+}
+
+131 
+ArReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pReque¡
+(
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+132 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+133  
+ÚReque¡
+;
+
+134 
+	}
+}
+
+136 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pC®lback
+(
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+137 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+138  
+ÚReque¡
+;
+
+139 
+	}
+}
+
+	@lib/framework/SecuritySettingsService.h
+
+1 #iâdeà
+Secur™yS‘tšgsS”viû_h
+
+
+2 
+	#Secur™yS‘tšgsS”viû_h
+
+
+	)
+
+4 
+	~<F—tu»s.h
+>
+
+5 
+	~<Secur™yMªag”.h
+>
+
+6 
+	~<H‰pEndpošt.h
+>
+
+7 
+	~<FSP”si¡’û.h
+>
+
+9 
+	~"../../¤c/v”siÚ.h
+"
+
+11 #iâdeà
+FACTORY_ADMIN_USERNAME
+
+
+12 
+	#FACTORY_ADMIN_USERNAME
+ "admš"
+
+	)
+
+15 #iâdeà
+FACTORY_ADMIN_PASSWORD
+
+
+16 
+	#FACTORY_ADMIN_PASSWORD
+ "admš"
+
+	)
+
+19 #iâdeà
+FACTORY_GUEST_USERNAME
+
+
+20 
+	#FACTORY_GUEST_USERNAME
+ "gue¡"
+
+	)
+
+23 #iâdeà
+FACTORY_GUEST_PASSWORD
+
+
+24 
+	#FACTORY_GUEST_PASSWORD
+ "gue¡"
+
+	)
+
+27 
+	#SECURITY_SETTINGS_FILE
+ "/cÚfig/£cur™yS‘tšgs.jsÚ"
+
+	)
+
+28 
+	#SECURITY_SETTINGS_PATH
+ "/»¡/£cur™yS‘tšgs"
+
+	)
+
+30 #ià
+FT_ENABLED
+(
+FT_SECURITY
+)
+
+32 þas 
+	cSecur™yS‘tšgs
+ {
+
+33 
+	mpublic
+:
+
+34 
+SŒšg
+ 
+jwtSeü‘
+;
+
+35 
+	m¡d
+::
+li¡
+<
+U£r
+> 
+u£rs
+;
+
+37 
+	$»ad
+(
+Secur™yS‘tšgs
+& 
+£‰šgs
+, 
+JsÚObjeù
+& 
+roÙ
+) {
+
+39 
+roÙ
+["jwt_£ü‘"] = 
+£‰šgs
+.
+jwtSeü‘
+;
+
+42 
+JsÚA¼ay
+ 
+u£rs
+ = 
+roÙ
+.
+	`ü—‹Ne¡edA¼ay
+("users");
+
+43 
+U£r
+ 
+u£r
+ : 
+£‰šgs
+.
+u£rs
+) {
+
+44 
+JsÚObjeù
+ 
+u£rRoÙ
+ = 
+u£rs
+.
+	`ü—‹Ne¡edObjeù
+();
+
+45 
+u£rRoÙ
+["u£ºame"] = 
+u£r
+.
+u£ºame
+;
+
+46 
+u£rRoÙ
+["·sswÜd"] = 
+u£r
+.
+·sswÜd
+;
+
+47 
+u£rRoÙ
+["admš"] = 
+u£r
+.
+admš
+;
+
+51 
+S�‹Upd©eResuÉ
+ 
+	$upd©e
+(
+JsÚObjeù
+& 
+roÙ
+, 
+Secur™yS‘tšgs
+& 
+£‰šgs
+) {
+
+53 
+£‰šgs
+.
+jwtSeü‘
+ = 
+roÙ
+["jwt_£ü‘"] | 
+FACTORY_JWT_SECRET
+;
+
+56 
+£‰šgs
+.
+u£rs
+.
+	`þ—r
+();
+
+57 ià(
+roÙ
+["u£rs"].
+is
+<
+JsÚA¼ay
+>()) {
+
+58 
+JsÚV¬ŸÁ
+ 
+u£r
+ : 
+roÙ
+["u£rs"].
+as
+<
+JsÚA¼ay
+>()) {
+
+59 
+£‰šgs
+.
+u£rs
+.
+	`push_back
+(
+	`U£r
+(
+u£r
+["username"], user["password"], user["admin"]));
+
+62 
+£‰šgs
+.
+u£rs
+.
+	`push_back
+(
+	`U£r
+(
+FACTORY_ADMIN_USERNAME
+, 
+FACTORY_ADMIN_PASSWORD
+, 
+Œue
+));
+
+63 
+£‰šgs
+.
+u£rs
+.
+	`push_back
+(
+	`U£r
+(
+FACTORY_GUEST_USERNAME
+, 
+FACTORY_GUEST_PASSWORD
+, 
+çl£
+));
+
+65  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+66 
+	}
+}
+
+69 
+þass
+ 
+	gSecur™yS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+Secur™yS‘tšgs
+>,…ubliø
+	gSecur™yMªag”
+ {
+
+70 
+	gpublic
+:
+
+71 
+Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+);
+
+73 
+begš
+();
+
+76 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹
+(cÚ¡ 
+SŒšg
+& 
+u£ºame
+, cÚ¡ SŒšg& 
+·sswÜd
+);
+
+77 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+78 
+SŒšg
+ 
+g’”©eJWT
+(
+U£r
+* 
+u£r
+);
+
+79 
+ArReque¡Fž‹rFunùiÚ
+ 
+fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+80 
+ArReque¡HªdËrFunùiÚ
+ 
+w¿pReque¡
+(ArReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+81 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+w¿pC®lback
+(ArJsÚReque¡HªdËrFunùiÚ 
+ÿÎback
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+83 
+	g´iv©e
+:
+
+84 
+H‰pEndpošt
+<
+Secur™yS‘tšgs
+> 
+_h‰pEndpošt
+;
+
+85 
+	gFSP”si¡’û
+<
+	gSecur™yS‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+86 
+ArdušoJsÚJWT
+ 
+	g_jwtHªdËr
+;
+
+88 
+cÚfigu»JWTHªdËr
+();
+
+93 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹JWT
+(
+SŒšg
+& 
+jwt
+);
+
+98 
+boÞ—n
+ 
+v®id©ePaylßd
+(
+JsÚObjeù
+& 
+·r£dPaylßd
+, 
+U£r
+* 
+u£r
+);
+
+103 þas 
+	cSecur™yS‘tšgsS”viû
+ : 
+public
+ 
+Secur™yMªag”
+ {
+
+104 
+public
+:
+
+105 
+Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+);
+
+106 ~
+Secur™yS‘tšgsS”viû
+();
+
+109 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+110 
+ArReque¡Fž‹rFunùiÚ
+ 
+fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+111 
+ArReque¡HªdËrFunùiÚ
+ 
+w¿pReque¡
+(ArReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+112 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+w¿pC®lback
+(ArJsÚReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+	@lib/framework/StatefulService.cpp
+
+1 
+	~<S�‹fulS”viû.h
+>
+
+3 
+upd©e_hªdËr_id_t
+ 
+	gS�‹Upd©eHªdËrInfo
+::
+cu¼’tUpd©edHªdËrId
+ = 0;
+
+	@lib/framework/StatefulService.h
+
+1 #iâdeà
+S�‹fulS”viû_h
+
+
+2 
+	#S�‹fulS”viû_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+7 
+	~<li¡
+>
+
+8 
+	~<funùiÚ®
+>
+
+9 #ifdeà
+ESP32
+
+
+10 
+	~<ä“¹os/F»eRTOS.h
+>
+
+11 
+	~<ä“¹os/£mphr.h
+>
+
+14 #iâdeà
+DEFAULT_BUFFER_SIZE
+
+
+15 
+	#DEFAULT_BUFFER_SIZE
+ 1024
+
+	)
+
+18 þas 
+	cS�‹Upd©eResuÉ
+ {
+
+19 
+	mCHANGED
+ = 0,
+
+20 
+	mUNCHANGED
+,
+
+21 
+	mERROR
+
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+25 
+usšg
+ 
+	gJsÚS�‹Upd©”
+ = 
+¡d
+::
+funùiÚ
+<
+S�‹Upd©eResuÉ
+(
+JsÚObjeù
+& 
+roÙ
+, 
+T
+& 
+£‰šgs
+)>;
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+28 
+usšg
+ 
+	gJsÚS�‹R—d”
+ = 
+¡d
+::
+funùiÚ
+<(
+T
+& 
+£‰šgs
+, 
+	gJsÚObjeù
+& 
+	groÙ
+)>;
+
+30 
+size_t
+ 
+	tupd©e_hªdËr_id_t
+;
+
+31 
+	g¡d
+::
+	tfunùiÚ
+<(cÚ¡ 
+	tSŒšg
+& 
+	tÜigšId
+)> 
+	tS�‹Upd©eC®lback
+;
+
+33 
+	sS�‹Upd©eHªdËrInfo
+ {
+
+34 
+upd©e_hªdËr_id_t
+ 
+	mcu¼’tUpd©edHªdËrId
+;
+
+35 
+upd©e_hªdËr_id_t
+ 
+	m_id
+;
+
+36 
+S�‹Upd©eC®lback
+ 
+	m_cb
+;
+
+37 
+boÞ
+ 
+	m_®lowRemove
+;
+
+38 
+S�‹Upd©eHªdËrInfo
+(
+S�‹Upd©eC®lback
+ 
+cb
+, 
+boÞ
+ 
+®lowRemove
+) :
+
+39 
+_id
+(++
+cu¼’tUpd©edHªdËrId
+), 
+_cb
+(
+cb
+), 
+_®lowRemove
+(
+®lowRemove
+){};
+
+40 } 
+	tS�‹Upd©eHªdËrInfo_t
+;
+
+42 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+43 þas 
+	cS�‹fulS”viû
+ {
+
+44 
+	mpublic
+:
+
+45 
+‹m¶©e
+ <
+ty³Çme
+... 
+Args
+>
+
+46 #ifdeà
+ESP32
+
+
+47 
+	$S�‹fulS”viû
+(
+Args
+&&... 
+¬gs
+) :
+
+48 
+	`_¡©e
+(
+¡d
+::
+fÜw¬d
+<
+Args
+>(
+¬gs
+)...), 
+	`_acûssMu‹x
+(
+	$xSem­hÜeC»©eRecursiveMu‹x
+()) {
+
+51 
+	$S�‹fulS”viû
+(
+Args
+&&... 
+¬gs
+è: 
+	`_¡©e
+(
+¡d
+::
+fÜw¬d
+<Args>(args)...) {
+
+52 
+	}
+}
+
+55 
+upd©e_hªdËr_id_t
+ 
+	$addUpd©eHªdËr
+(
+S�‹Upd©eC®lback
+ 
+cb
+, 
+boÞ
+ 
+®lowRemove
+ = 
+Œue
+) {
+
+56 ià(!
+cb
+) {
+
+59 
+S�‹Upd©eHªdËrInfo_t
+ 
+	`upd©eHªdËr
+(
+cb
+, 
+®lowRemove
+);
+
+60 
+_upd©eHªdËrs
+.
+	`push_back
+(
+upd©eHªdËr
+);
+
+61  
+upd©eHªdËr
+.
+_id
+;
+
+62 
+	}
+}
+
+64 
+	$»moveUpd©eHªdËr
+(
+upd©e_hªdËr_id_t
+ 
+id
+) {
+
+65 autØ
+i
+ = 
+_upd©eHªdËrs
+.
+	`begš
+(); i !ð_upd©eHªdËrs.
+	`’d
+();) {
+
+66 ià((*
+i
+).
+_®lowRemove
+ && (*i).
+_id
+ =ð
+id
+) {
+
+67 
+i
+ = 
+_upd©eHªdËrs
+.
+	`”a£
+(i);
+
+69 ++
+i
+;
+
+72 
+	}
+}
+
+74 
+S�‹Upd©eResuÉ
+ 
+upd©e
+(
+¡d
+::
+funùiÚ
+<S�‹Upd©eResuÉ(
+T
+&)> 
+¡©eUpd©”
+, cÚ¡ 
+SŒšg
+& 
+ÜigšId
+) {
+
+75 
+begšT¿n§ùiÚ
+();
+
+76 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+_¡©e
+);
+
+77 
+’dT¿n§ùiÚ
+();
+
+78 ià(
+	g»suÉ
+ =ð
+S�‹Upd©eResuÉ
+::
+CHANGED
+) {
+
+79 
+ÿÎUpd©eHªdËrs
+(
+ÜigšId
+);
+
+81  
+	g»suÉ
+;
+
+84 
+S�‹Upd©eResuÉ
+ 
+upd©eW™houtPrÝag©iÚ
+(
+¡d
+::
+funùiÚ
+<S�‹Upd©eResuÉ(
+T
+&)> 
+¡©eUpd©”
+) {
+
+85 
+begšT¿n§ùiÚ
+();
+
+86 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+_¡©e
+);
+
+87 
+’dT¿n§ùiÚ
+();
+
+88  
+	g»suÉ
+;
+
+91 
+S�‹Upd©eResuÉ
+ 
+upd©e
+(
+JsÚObjeù
+& 
+jsÚObjeù
+, 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+, cÚ¡ 
+SŒšg
+& 
+ÜigšId
+) {
+
+92 
+begšT¿n§ùiÚ
+();
+
+93 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+jsÚObjeù
+, 
+_¡©e
+);
+
+94 
+’dT¿n§ùiÚ
+();
+
+95 ià(
+	g»suÉ
+ =ð
+S�‹Upd©eResuÉ
+::
+CHANGED
+) {
+
+96 
+ÿÎUpd©eHªdËrs
+(
+ÜigšId
+);
+
+98  
+	g»suÉ
+;
+
+101 
+S�‹Upd©eResuÉ
+ 
+upd©eW™houtPrÝag©iÚ
+(
+JsÚObjeù
+& 
+jsÚObjeù
+, 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+) {
+
+102 
+begšT¿n§ùiÚ
+();
+
+103 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+jsÚObjeù
+, 
+_¡©e
+);
+
+104 
+’dT¿n§ùiÚ
+();
+
+105  
+	g»suÉ
+;
+
+108 
+»ad
+(
+¡d
+::
+funùiÚ
+<(
+T
+&)> 
+¡©eR—d”
+) {
+
+109 
+begšT¿n§ùiÚ
+();
+
+110 
+¡©eR—d”
+(
+_¡©e
+);
+
+111 
+’dT¿n§ùiÚ
+();
+
+114 
+»ad
+(
+JsÚObjeù
+& 
+jsÚObjeù
+, 
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+) {
+
+115 
+begšT¿n§ùiÚ
+();
+
+116 
+¡©eR—d”
+(
+_¡©e
+, 
+jsÚObjeù
+);
+
+117 
+’dT¿n§ùiÚ
+();
+
+120 
+	$ÿÎUpd©eHªdËrs
+(cÚ¡ 
+SŒšg
+& 
+ÜigšId
+) {
+
+121 cÚ¡ 
+S�‹Upd©eHªdËrInfo_t
+& 
+upd©eHªdËr
+ : 
+_upd©eHªdËrs
+) {
+
+122 
+upd©eHªdËr
+.
+	`_cb
+(
+ÜigšId
+);
+
+124 
+	}
+}
+
+126 
+	g´Ùeùed
+:
+
+127 
+T
+ 
+_¡©e
+;
+
+129 
+šlše
+ 
+	$begšT¿n§ùiÚ
+() {
+
+130 #ifdeà
+ESP32
+
+
+131 
+	`xSem­hÜeTakeRecursive
+(
+_acûssMu‹x
+, 
+pÜtMAX_DELAY
+);
+
+133 
+	}
+}
+
+135 
+šlše
+ 
+	$’dT¿n§ùiÚ
+() {
+
+136 #ifdeà
+ESP32
+
+
+137 
+	`xSem­hÜeGiveRecursive
+(
+_acûssMu‹x
+);
+
+139 
+	}
+}
+
+141 
+	g´iv©e
+:
+
+142 #ifdeà
+ESP32
+
+
+143 
+Sem­hÜeHªdË_t
+ 
+_acûssMu‹x
+;
+
+145 
+	g¡d
+::
+li¡
+<
+S�‹Upd©eHªdËrInfo_t
+> 
+_upd©eHªdËrs
+;
+
+	@lib/framework/SystemStatus.cpp
+
+1 
+	~<Sy¡emS�tus.h
+>
+
+3 
+	gSy¡emS�tus
+::
+	$Sy¡emS�tus
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+) {
+
+4 
+£rv”
+->
+	`Ú
+(
+SYSTEM_STATUS_SERVICE_PATH
+,
+
+5 
+HTTP_GET
+,
+
+6 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+Sy¡emS�tus
+::
+sy¡emS�tus
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+), 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+7 
+	}
+}
+
+9 
+	gSy¡emS�tus
+::
+	$sy¡emS�tus
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+10 
+ušt8_t
+ 
+ä“_mem_³rûÁ
+ = 
+em£¥
+::
+Sy¡em
+::
+	`ä“_mem
+();
+
+12 
+AsyncJsÚRe¥Ú£
+ * 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_ESP_STATUS_SIZE
+);
+
+13 
+JsÚObjeù
+ 
+roÙ
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+14 #ifdeà
+ESP32
+
+
+15 
+roÙ
+["esp_platform"] = "esp32";
+
+16 
+roÙ
+["max_®loc_h—p"] = 
+ESP
+.
+	`g‘MaxAÎocH—p
+();
+
+17 
+roÙ
+["p¤am_size"] = 
+ESP
+.
+	`g‘P¤amSize
+();
+
+18 
+roÙ
+["ä“_p¤am"] = 
+ESP
+.
+	`g‘F»eP¤am
+();
+
+19 #–ià
+	`defšed
+(
+ESP8266
+)
+
+20 
+roÙ
+["esp_platform"] = "esp8266";
+
+21 
+roÙ
+["max_®loc_h—p"] = 
+ESP
+.
+	`g‘MaxF»eBlockSize
+();
+
+22 
+roÙ
+["h—p_äagm’�tiÚ"] = 
+ESP
+.
+	`g‘H—pF¿gm’�tiÚ
+();
+
+24 
+roÙ
+["ýu_äeq_mhz"] = 
+ESP
+.
+	`g‘CpuF»qMHz
+();
+
+25 
+roÙ
+["ä“_h—p"] = 
+ESP
+.
+	`g‘F»eH—p
+();
+
+26 
+roÙ
+["sk‘ch_size"] = 
+ESP
+.
+	`g‘Sk‘chSize
+();
+
+27 
+roÙ
+["ä“_sk‘ch_¥aû"] = 
+ESP
+.
+	`g‘F»eSk‘chS·û
+();
+
+28 
+roÙ
+["sdk_v”siÚ"] = 
+ESP
+.
+	`g‘SdkV”siÚ
+();
+
+29 
+roÙ
+["æash_ch�_size"] = 
+ESP
+.
+	`g‘FÏshCh�Size
+();
+
+30 
+roÙ
+["æash_ch�_¥“d"] = 
+ESP
+.
+	`g‘FÏshCh�S³ed
+();
+
+33 #ifdeà
+ESP32
+
+
+34 
+roÙ
+["fs_tÙ®"] = 
+SPIFFS
+.
+	`tÙ®By‹s
+();
+
+35 
+roÙ
+["fs_u£d"] = 
+SPIFFS
+.
+	`u£dBy‹s
+();
+
+36 #–ià
+	`defšed
+(
+ESP8266
+)
+
+37 
+FSInfo
+ 
+fs_šfo
+;
+
+38 
+L™ŽeFS
+.
+	`šfo
+(
+fs_šfo
+);
+
+39 
+roÙ
+["fs_tÙ®"] = 
+fs_šfo
+.
+tÙ®By‹s
+;
+
+40 
+roÙ
+["fs_u£d"] = 
+fs_šfo
+.
+u£dBy‹s
+;
+
+43 
+roÙ
+["u±ime"] = 
+uuid
+::
+log
+::
+	`fÜm©_time¡amp_ms
+(uuid::
+	`g‘_u±ime_ms
+(), 3);
+
+44 
+roÙ
+["ä“_mem"] = 
+ä“_mem_³rûÁ
+;
+
+46 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+47 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+48 
+	}
+}
+
+	@lib/framework/SystemStatus.h
+
+1 #iâdeà
+Sy¡emS�tus_h
+
+
+2 
+	#Sy¡emS�tus_h
+
+
+	)
+
+4 #ifdeà
+ESP32
+
+
+5 
+	~<WiFi.h
+>
+
+6 
+	~<AsyncTCP.h
+>
+
+7 
+	~<SPIFFS.h
+>
+
+8 #–ià
+defšed
+(
+ESP8266
+)
+
+9 
+	~<ESP8266WiFi.h
+>
+
+10 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~<L™ŽeFS.h
+>
+
+15 
+	~<ArdušoJsÚ.h
+>
+
+16 
+	~<AsyncJsÚ.h
+>
+
+17 
+	~<ESPAsyncWebS”v”.h
+>
+
+18 
+	~<Secur™yMªag”.h
+>
+
+20 
+	~<uuid/log.h
+>
+
+21 
+	~"../../¤c/sy¡em.h
+"
+
+23 
+	#MAX_ESP_STATUS_SIZE
+ 1024
+
+	)
+
+24 
+	#SYSTEM_STATUS_SERVICE_PATH
+ "/»¡/sy¡emS�tus"
+
+	)
+
+26 þas 
+	cSy¡emS�tus
+ {
+
+27 
+	mpublic
+:
+
+28 
+Sy¡emS�tus
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+);
+
+30 
+	m´iv©e
+:
+
+31 
+sy¡emS�tus
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+);
+
+	@lib/framework/UploadFirmwareService.cpp
+
+1 
+	~<U¶ßdFœmw¬eS”viû.h
+>
+
+3 
+	gU¶ßdFœmw¬eS”viû
+::
+	$U¶ßdFœmw¬eS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) :
+
+4 
+	$_£cur™yMªag”
+(
+£cur™yMªag”
+) {
+
+5 
+£rv”
+->
+	`Ú
+(
+UPLOAD_FIRMWARE_PATH
+,
+
+6 
+HTTP_POST
+,
+
+7 
+¡d
+::
+	`bšd
+(&
+U¶ßdFœmw¬eS”viû
+::
+u¶ßdCom¶‘e
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+8 
+¡d
+::
+	`bšd
+(&
+U¶ßdFœmw¬eS”viû
+::
+hªdËU¶ßd
+,
+
+9 
+this
+,
+
+10 
+¡d
+::
+¶aûhÞd”s
+::
+_1
+,
+
+11 
+¡d
+::
+¶aûhÞd”s
+::
+_2
+,
+
+12 
+¡d
+::
+¶aûhÞd”s
+::
+_3
+,
+
+13 
+¡d
+::
+¶aûhÞd”s
+::
+_4
+,
+
+14 
+¡d
+::
+¶aûhÞd”s
+::
+_5
+,
+
+15 
+¡d
+::
+¶aûhÞd”s
+::
+_6
+));
+
+16 #ifdeà
+ESP8266
+
+
+17 
+Upd©e
+.
+	`runAsync
+(
+Œue
+);
+
+19 
+	}
+}
+
+21 
+	gU¶ßdFœmw¬eS”viû
+::
+	$hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+,
+
+22 cÚ¡ 
+SŒšg
+& 
+fž’ame
+,
+
+23 
+size_t
+ 
+šdex
+,
+
+24 
+ušt8_t
+* 
+d©a
+,
+
+25 
+size_t
+ 
+Ën
+,
+
+26 
+boÞ
+ 
+fš®
+) {
+
+27 ià(!
+šdex
+) {
+
+28 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+_£cur™yMªag”
+->
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+29 ià(
+Auth’tiÿtiÚP»diÿ‹s
+::
+	`IS_ADMIN
+(
+auth’tiÿtiÚ
+)) {
+
+30 ià(
+Upd©e
+.
+	`begš
+(
+»que¡
+->
+	`cÚ‹ÁL’gth
+())) {
+
+32 
+»que¡
+->
+	`ÚDiscÚÃù
+(
+U¶ßdFœmw¬eS”viû
+::
+hªdËE¬lyDiscÚÃù
+);
+
+35 
+Upd©e
+.
+	`´štE¼Ü
+(
+S”Ÿl
+);
+
+36 
+	`hªdËE¼Ü
+(
+»que¡
+, 500);
+
+40 
+	`hªdËE¼Ü
+(
+»que¡
+, 403);
+
+45 ià(!
+»que¡
+->
+_‹mpObjeù
+) {
+
+46 ià(
+Upd©e
+.
+	`wr™e
+(
+d©a
+, 
+Ën
+) !=†en) {
+
+47 
+Upd©e
+.
+	`´štE¼Ü
+(
+S”Ÿl
+);
+
+48 
+	`hªdËE¼Ü
+(
+»que¡
+, 500);
+
+50 ià(
+fš®
+) {
+
+51 ià(!
+Upd©e
+.
+	`’d
+(
+Œue
+)) {
+
+52 
+Upd©e
+.
+	`´štE¼Ü
+(
+S”Ÿl
+);
+
+53 
+	`hªdËE¼Ü
+(
+»que¡
+, 500);
+
+57 
+	}
+}
+
+59 
+	gU¶ßdFœmw¬eS”viû
+::
+	$u¶ßdCom¶‘e
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+61 ià(!
+»que¡
+->
+_‹mpObjeù
+) {
+
+62 
+»que¡
+->
+	`ÚDiscÚÃù
+(
+Re¡¬tS”viû
+::
+»¡¬tNow
+);
+
+63 
+AsyncWebS”v”Re¥Ú£
+* 
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£
+(200);
+
+64 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+66 
+	}
+}
+
+68 
+	gU¶ßdFœmw¬eS”viû
+::
+	$hªdËE¼Ü
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+code
+) {
+
+70 ià(
+»que¡
+->
+_‹mpObjeù
+) {
+
+74 
+»que¡
+->
+_‹mpObjeù
+ = 
+Ãw
+ (
+code
+);
+
+75 
+AsyncWebS”v”Re¥Ú£
+* 
+»¥Ú£
+ = 
+»que¡
+->
+	`begšRe¥Ú£
+(
+code
+);
+
+76 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+77 
+	}
+}
+
+79 
+	gU¶ßdFœmw¬eS”viû
+::
+	$hªdËE¬lyDiscÚÃù
+() {
+
+80 #ifdeà
+ESP32
+
+
+81 
+Upd©e
+.
+	`abÜt
+();
+
+82 #–ià
+	`defšed
+(
+ESP8266
+)
+
+83 
+Upd©e
+.
+	`’d
+();
+
+85 
+	}
+}
+
+	@lib/framework/UploadFirmwareService.h
+
+1 #iâdeà
+U¶ßdFœmw¬eS”viû_h
+
+
+2 
+	#U¶ßdFœmw¬eS”viû_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+6 #ifdeà
+ESP32
+
+
+7 
+	~<Upd©e.h
+>
+
+8 
+	~<WiFi.h
+>
+
+9 
+	~<AsyncTCP.h
+>
+
+10 #–ià
+defšed
+(
+ESP8266
+)
+
+11 
+	~<ESP8266WiFi.h
+>
+
+12 
+	~<ESPAsyncTCP.h
+>
+
+15 
+	~<ESPAsyncWebS”v”.h
+>
+
+16 
+	~<Secur™yMªag”.h
+>
+
+17 
+	~<Re¡¬tS”viû.h
+>
+
+19 
+	#UPLOAD_FIRMWARE_PATH
+ "/»¡/u¶ßdFœmw¬e"
+
+	)
+
+21 þas 
+	cU¶ßdFœmw¬eS”viû
+ {
+
+22 
+	mpublic
+:
+
+23 
+U¶ßdFœmw¬eS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+25 
+	m´iv©e
+:
+
+26 
+Secur™yMªag”
+* 
+_£cur™yMªag”
+;
+
+27 
+hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+,
+
+28 cÚ¡ 
+SŒšg
+& 
+fž’ame
+,
+
+29 
+size_t
+ 
+šdex
+,
+
+30 
+ušt8_t
+* 
+d©a
+,
+
+31 
+size_t
+ 
+Ën
+,
+
+32 
+boÞ
+ 
+fš®
+);
+
+33 
+u¶ßdCom¶‘e
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+34 
+hªdËE¼Ü
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+code
+);
+
+35 
+hªdËE¬lyDiscÚÃù
+();
+
+	@lib/framework/WWWData.h
+
+1 
+	~<Ardušo.h
+>
+
+3 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_0
+[] 
+	gPROGMEM
+ = {
+
+414 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_1
+[] 
+	gPROGMEM
+ = {
+
+426 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_2
+[] 
+	gPROGMEM
+ = {
+
+445 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_3
+[] 
+	gPROGMEM
+ = {
+
+480 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_4
+[] 
+	gPROGMEM
+ = {
+
+1257 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_5
+[] 
+	gPROGMEM
+ = {
+
+2039 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_6
+[] 
+	gPROGMEM
+ = {
+
+2811 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_7
+[] 
+	gPROGMEM
+ = {
+
+4044 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_8
+[] 
+	gPROGMEM
+ = {
+
+4084 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_9
+[] 
+	gPROGMEM
+ = {
+
+12266 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_10
+[] 
+	gPROGMEM
+ = {
+
+12321 cÚ¡ 
+ušt8_t
+ 
+	gESP_REACT_DATA_11
+[] 
+	gPROGMEM
+ = {
+
+12340 
+	g¡d
+::
+	tfunùiÚ
+<(cÚ¡ 
+	tSŒšg
+& 
+	turi
+, cÚ¡ SŒšg& 
+	tcÚ‹ÁTy³
+, cÚ¡ 
+	tušt8_t
+ * 
+	tcÚ‹Á
+, 
+	tsize_t
+ 
+	tËn
+)> 
+	tRou‹Regi¡¿tiÚHªdËr
+;
+
+12342 þas 
+	cWWWD©a
+ {
+
+12343 
+	mpublic
+:
+
+12344 
+	$»gi¡”Rou‹s
+(
+Rou‹Regi¡¿tiÚHªdËr
+ 
+hªdËr
+) {
+
+12345 
+	`hªdËr
+("/­p/icÚ.²g", "image/²g", 
+ESP_REACT_DATA_0
+, 8148);
+
+12346 
+	`hªdËr
+("/­p/mªiã¡.jsÚ", "­¶iÿtiÚ/jsÚ", 
+ESP_REACT_DATA_1
+, 168);
+
+12347 
+	`hªdËr
+("/css/robÙo.css", "‹xt/css", 
+ESP_REACT_DATA_2
+, 306);
+
+12348 
+	`hªdËr
+("/çvicÚ.ico", "image/vnd.miüosoá.icÚ", 
+ESP_REACT_DATA_3
+, 628);
+
+12349 
+	`hªdËr
+("/fÚts/li.woff2", "fÚt/woff2", 
+ESP_REACT_DATA_4
+, 15463);
+
+12350 
+	`hªdËr
+("/fÚts/me.woff2", "fÚt/woff2", 
+ESP_REACT_DATA_5
+, 15575);
+
+12351 
+	`hªdËr
+("/fÚts/».woff2", "fÚt/woff2", 
+ESP_REACT_DATA_6
+, 15367);
+
+12352 
+	`hªdËr
+("/js/0.aã9.js", "­¶iÿtiÚ/javasü�t", 
+ESP_REACT_DATA_7
+, 24581);
+
+12353 
+	`hªdËr
+("/js/1.b30b.js", "­¶iÿtiÚ/javasü�t", 
+ESP_REACT_DATA_8
+, 735);
+
+12354 
+	`hªdËr
+("/js/2.8e22.js", "­¶iÿtiÚ/javasü�t", 
+ESP_REACT_DATA_9
+, 163600);
+
+12355 
+	`hªdËr
+("/js/2.8e22.js.LICENSE.txt", "‹xt/¶aš", 
+ESP_REACT_DATA_10
+, 1023);
+
+12356 
+	`hªdËr
+("/šdex.html", "‹xt/html", 
+ESP_REACT_DATA_11
+, 301);
+
+12358 
+	}
+};
+
+	@lib/framework/WebSocketTxRx.h
+
+1 #iâdeà
+WebSock‘TxRx_h
+
+
+2 
+	#WebSock‘TxRx_h
+
+
+	)
+
+4 
+	~<S�‹fulS”viû.h
+>
+
+5 
+	~<ESPAsyncWebS”v”.h
+>
+
+6 
+	~<Secur™yMªag”.h
+>
+
+8 
+	#WEB_SOCKET_CLIENT_ID_MSG_SIZE
+ 128
+
+	)
+
+10 
+	#WEB_SOCKET_ORIGIN
+ "websock‘"
+
+	)
+
+11 
+	#WEB_SOCKET_ORIGIN_CLIENT_ID_PREFIX
+ "websock‘:"
+
+	)
+
+13 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+14 þas 
+	cWebSock‘CÚÃùÜ
+ {
+
+15 
+	m´Ùeùed
+:
+
+16 
+S�‹fulS”viû
+<
+T
+>* 
+_¡©efulS”viû
+;
+
+17 
+AsyncWebS”v”
+* 
+	m_£rv”
+;
+
+18 
+AsyncWebSock‘
+ 
+	m_webSock‘
+;
+
+19 
+size_t
+ 
+	m_bufãrSize
+;
+
+21 
+WebSock‘CÚÃùÜ
+(
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+22 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+23 cÚ¡* 
+webSock‘P©h
+,
+
+24 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+25 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+,
+
+26 
+size_t
+ 
+bufãrSize
+) :
+
+27 
+_¡©efulS”viû
+(
+¡©efulS”viû
+), 
+_£rv”
+(
+£rv”
+), 
+_webSock‘
+(
+webSock‘P©h
+), 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+28 
+_webSock‘
+.
+	`£tFž‹r
+(
+£cur™yMªag”
+->
+	`fž‹rReque¡
+(
+auth’tiÿtiÚP»diÿ‹
+));
+
+29 
+_webSock‘
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+WebSock‘CÚÃùÜ
+::
+ÚWSEv’t
+,
+
+30 
+this
+,
+
+31 
+¡d
+::
+¶aûhÞd”s
+::
+_1
+,
+
+32 
+¡d
+::
+¶aûhÞd”s
+::
+_2
+,
+
+33 
+¡d
+::
+¶aûhÞd”s
+::
+_3
+,
+
+34 
+¡d
+::
+¶aûhÞd”s
+::
+_4
+,
+
+35 
+¡d
+::
+¶aûhÞd”s
+::
+_5
+,
+
+36 
+¡d
+::
+¶aûhÞd”s
+::
+_6
+));
+
+37 
+_£rv”
+->
+	`addHªdËr
+(&
+_webSock‘
+);
+
+38 
+_£rv”
+->
+	`Ú
+(
+webSock‘P©h
+, 
+HTTP_GET
+, 
+¡d
+::
+	`bšd
+(&
+WebSock‘CÚÃùÜ
+::
+fÜbidd’
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+41 
+	`WebSock‘CÚÃùÜ
+(
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+42 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+43 cÚ¡* 
+webSock‘P©h
+,
+
+44 
+size_t
+ 
+bufãrSize
+) :
+
+45 
+	`_¡©efulS”viû
+(
+¡©efulS”viû
+), 
+	`_£rv”
+(
+£rv”
+), 
+	`_webSock‘
+(
+webSock‘P©h
+), 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+46 
+_webSock‘
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+WebSock‘CÚÃùÜ
+::
+ÚWSEv’t
+,
+
+47 
+this
+,
+
+48 
+¡d
+::
+¶aûhÞd”s
+::
+_1
+,
+
+49 
+¡d
+::
+¶aûhÞd”s
+::
+_2
+,
+
+50 
+¡d
+::
+¶aûhÞd”s
+::
+_3
+,
+
+51 
+¡d
+::
+¶aûhÞd”s
+::
+_4
+,
+
+52 
+¡d
+::
+¶aûhÞd”s
+::
+_5
+,
+
+53 
+¡d
+::
+¶aûhÞd”s
+::
+_6
+));
+
+54 
+_£rv”
+->
+	`addHªdËr
+(&
+_webSock‘
+);
+
+55 
+	}
+}
+
+57 
+vœtu®
+ 
+ÚWSEv’t
+(
+AsyncWebSock‘
+* 
+£rv”
+,
+
+58 
+AsyncWebSock‘Cl›Á
+* 
+þ›Á
+,
+
+59 
+AwsEv’tTy³
+ 
+ty³
+,
+
+60 * 
+¬g
+,
+
+61 
+ušt8_t
+* 
+d©a
+,
+
+62 
+size_t
+ 
+Ën
+) = 0;
+
+64 
+SŒšg
+ 
+	$þ›ÁId
+(
+AsyncWebSock‘Cl›Á
+* 
+þ›Á
+) {
+
+65  
+WEB_SOCKET_ORIGIN_CLIENT_ID_PREFIX
+ + 
+	`SŒšg
+(
+þ›Á
+->
+	`id
+());
+
+66 
+	}
+}
+
+68 
+	g´iv©e
+:
+
+69 
+	$fÜbidd’
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+70 
+»que¡
+->
+	`£nd
+(403);
+
+71 
+	}
+}
+
+74 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+75 
+þass
+ 
+	gWebSock‘Tx
+ : 
+vœtu®
+ 
+public
+ 
+WebSock‘CÚÃùÜ
+<
+T
+> {
+
+76 
+public
+:
+
+77 
+WebSock‘Tx
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+78 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+79 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+80 cÚ¡* 
+webSock‘P©h
+,
+
+81 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+82 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+83 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+84 
+WebSock‘CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+,
+
+85 
+	g£rv”
+,
+
+86 
+	gwebSock‘P©h
+,
+
+87 
+	g£cur™yMªag”
+,
+
+88 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+89 
+	gbufãrSize
+),
+
+90 
+_¡©eR—d”
+(
+¡©eR—d”
+) {
+
+91 
+	gWebSock‘CÚÃùÜ
+<
+	gT
+>::
+_¡©efulS”viû
+->
+addUpd©eHªdËr
+(
+
+92 [&](cÚ¡ 
+SŒšg
+& 
+ÜigšId
+è{ 
+Œªsm™D©a
+(
+nuÎ±r
+, origšId); }, 
+çl£
+);
+
+95 
+WebSock‘Tx
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+96 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+97 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+98 cÚ¡* 
+webSock‘P©h
+,
+
+99 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+100 
+WebSock‘CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+, 
+	g£rv”
+, 
+	gwebSock‘P©h
+, 
+	gbufãrSize
+), 
+_¡©eR—d”
+(
+¡©eR—d”
+) {
+
+101 
+	gWebSock‘CÚÃùÜ
+<
+	gT
+>::
+_¡©efulS”viû
+->
+addUpd©eHªdËr
+(
+
+102 [&](cÚ¡ 
+SŒšg
+& 
+ÜigšId
+è{ 
+Œªsm™D©a
+(
+nuÎ±r
+, origšId); }, 
+çl£
+);
+
+105 
+	g´Ùeùed
+:
+
+106 
+vœtu®
+ 
+ÚWSEv’t
+(
+AsyncWebSock‘
+* 
+£rv”
+,
+
+107 
+AsyncWebSock‘Cl›Á
+* 
+þ›Á
+,
+
+108 
+AwsEv’tTy³
+ 
+ty³
+,
+
+109 * 
+¬g
+,
+
+110 
+ušt8_t
+* 
+d©a
+,
+
+111 
+size_t
+ 
+Ën
+) {
+
+112 ià(
+	gty³
+ =ð
+WS_EVT_CONNECT
+) {
+
+114 
+Œªsm™Id
+(
+þ›Á
+);
+
+115 
+Œªsm™D©a
+(
+þ›Á
+, 
+WEB_SOCKET_ORIGIN
+);
+
+119 
+	g´iv©e
+:
+
+120 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+122 
+Œªsm™Id
+(
+AsyncWebSock‘Cl›Á
+* 
+þ›Á
+) {
+
+123 
+DyÇmicJsÚDocum’t
+ 
+	gjsÚDocum’t
+ = DyÇmicJsÚDocum’t(
+WEB_SOCKET_CLIENT_ID_MSG_SIZE
+);
+
+124 
+JsÚObjeù
+ 
+	groÙ
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+125 
+	groÙ
+["type"] = "id";
+
+126 
+	groÙ
+["id"] = 
+WebSock‘CÚÃùÜ
+<
+T
+>::
+þ›ÁId
+(
+þ›Á
+);
+
+127 
+size_t
+ 
+	gËn
+ = 
+m—su»JsÚ
+(
+jsÚDocum’t
+);
+
+128 
+AsyncWebSock‘Mes§geBufãr
+* 
+	gbufãr
+ = 
+WebSock‘CÚÃùÜ
+<
+T
+>::
+_webSock‘
+.
+makeBufãr
+(
+Ën
+);
+
+129 ià(
+	gbufãr
+) {
+
+130 
+£rŸlizeJsÚ
+(
+jsÚDocum’t
+, (*)
+bufãr
+->
+g‘
+(), 
+Ën
+ + 1);
+
+131 
+	gþ›Á
+->
+‹xt
+(
+bufãr
+);
+
+142 
+Œªsm™D©a
+(
+AsyncWebSock‘Cl›Á
+* 
+þ›Á
+, cÚ¡ 
+SŒšg
+& 
+ÜigšId
+) {
+
+143 
+DyÇmicJsÚDocum’t
+ 
+	gjsÚDocum’t
+ = DyÇmicJsÚDocum’t(
+WebSock‘CÚÃùÜ
+<
+T
+>::
+_bufãrSize
+);
+
+144 
+JsÚObjeù
+ 
+	groÙ
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+145 
+	groÙ
+["type"] = "payload";
+
+146 
+	groÙ
+["Üigš_id"] = 
+ÜigšId
+;
+
+147 
+JsÚObjeù
+ 
+	g·ylßd
+ = 
+roÙ
+.
+ü—‹Ne¡edObjeù
+("payload");
+
+148 
+	gWebSock‘CÚÃùÜ
+<
+	gT
+>::
+_¡©efulS”viû
+->
+»ad
+(
+·ylßd
+, 
+_¡©eR—d”
+);
+
+150 
+size_t
+ 
+	gËn
+ = 
+m—su»JsÚ
+(
+jsÚDocum’t
+);
+
+151 
+AsyncWebSock‘Mes§geBufãr
+* 
+	gbufãr
+ = 
+WebSock‘CÚÃùÜ
+<
+T
+>::
+_webSock‘
+.
+makeBufãr
+(
+Ën
+);
+
+152 ià(
+	gbufãr
+) {
+
+153 
+£rŸlizeJsÚ
+(
+jsÚDocum’t
+, (*)
+bufãr
+->
+g‘
+(), 
+Ën
+ + 1);
+
+154 ià(
+	gþ›Á
+) {
+
+155 
+	gþ›Á
+->
+‹xt
+(
+bufãr
+);
+
+157 
+	gWebSock‘CÚÃùÜ
+<
+	gT
+>::
+_webSock‘
+.
+‹xtAÎ
+(
+bufãr
+);
+
+163 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+164 
+þass
+ 
+	gWebSock‘Rx
+ : 
+vœtu®
+ 
+public
+ 
+WebSock‘CÚÃùÜ
+<
+T
+> {
+
+165 
+public
+:
+
+166 
+WebSock‘Rx
+(
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+167 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+168 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+169 cÚ¡* 
+webSock‘P©h
+,
+
+170 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+171 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+172 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+173 
+WebSock‘CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+,
+
+174 
+	g£rv”
+,
+
+175 
+	gwebSock‘P©h
+,
+
+176 
+	g£cur™yMªag”
+,
+
+177 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+178 
+	gbufãrSize
+),
+
+179 
+_¡©eUpd©”
+(
+¡©eUpd©”
+) {
+
+182 
+WebSock‘Rx
+(
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+183 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+184 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+185 cÚ¡* 
+webSock‘P©h
+,
+
+186 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+187 
+WebSock‘CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+, 
+	g£rv”
+, 
+	gwebSock‘P©h
+, 
+	gbufãrSize
+), 
+_¡©eUpd©”
+(
+¡©eUpd©”
+) {
+
+190 
+	g´Ùeùed
+:
+
+191 
+vœtu®
+ 
+ÚWSEv’t
+(
+AsyncWebSock‘
+* 
+£rv”
+,
+
+192 
+AsyncWebSock‘Cl›Á
+* 
+þ›Á
+,
+
+193 
+AwsEv’tTy³
+ 
+ty³
+,
+
+194 * 
+¬g
+,
+
+195 
+ušt8_t
+* 
+d©a
+,
+
+196 
+size_t
+ 
+Ën
+) {
+
+197 ià(
+	gty³
+ =ð
+WS_EVT_DATA
+) {
+
+198 
+AwsF¿meInfo
+* 
+šfo
+ = (AwsF¿meInfo*)
+¬g
+;
+
+199 ià(
+	gšfo
+->
+	gfš®
+ && info->
+	gšdex
+ =ð0 && 
+šfo
+->
+Ën
+ ==†en) {
+
+200 ià(
+šfo
+->
+Ýcode
+ =ð
+WS_TEXT
+) {
+
+201 
+DyÇmicJsÚDocum’t
+ 
+jsÚDocum’t
+ = DyÇmicJsÚDocum’t(
+WebSock‘CÚÃùÜ
+<
+T
+>::
+_bufãrSize
+);
+
+202 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeJsÚ
+(
+jsÚDocum’t
+, (*)
+d©a
+);
+
+203 ià(!
+	g”rÜ
+ && 
+	gjsÚDocum’t
+.
+	gis
+<
+	gJsÚObjeù
+>()) {
+
+204 
+JsÚObjeù
+ 
+	gjsÚObjeù
+ = 
+jsÚDocum’t
+.
+as
+<JsonObject>();
+
+205 
+	gWebSock‘CÚÃùÜ
+<
+	gT
+>::
+_¡©efulS”viû
+->
+upd©e
+(
+
+206 
+jsÚObjeù
+, 
+_¡©eUpd©”
+, 
+WebSock‘CÚÃùÜ
+<
+T
+>::
+þ›ÁId
+(
+þ›Á
+));
+
+213 
+	g´iv©e
+:
+
+214 
+JsÚS�‹Upd©”
+<
+T
+> 
+_¡©eUpd©”
+;
+
+217 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+218 
+þass
+ 
+	gWebSock‘TxRx
+ : 
+public
+ 
+WebSock‘Tx
+<
+T
+>,…ubliø
+	gWebSock‘Rx
+<
+	gT
+> {
+
+219 
+	gpublic
+:
+
+220 
+WebSock‘TxRx
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+221 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+222 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+223 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+224 cÚ¡* 
+webSock‘P©h
+,
+
+225 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+226 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+227 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+228 
+WebSock‘CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+,
+
+229 
+	g£rv”
+,
+
+230 
+	gwebSock‘P©h
+,
+
+231 
+	g£cur™yMªag”
+,
+
+232 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+233 
+	gbufãrSize
+),
+
+234 
+	gWebSock‘Tx
+<
+	gT
+>(
+	g¡©eR—d”
+,
+
+235 
+	g¡©efulS”viû
+,
+
+236 
+	g£rv”
+,
+
+237 
+	gwebSock‘P©h
+,
+
+238 
+	g£cur™yMªag”
+,
+
+239 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+240 
+	gbufãrSize
+),
+
+241 
+	gWebSock‘Rx
+<
+	gT
+>(
+	g¡©eUpd©”
+,
+
+242 
+	g¡©efulS”viû
+,
+
+243 
+	g£rv”
+,
+
+244 
+	gwebSock‘P©h
+,
+
+245 
+	g£cur™yMªag”
+,
+
+246 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+247 
+	gbufãrSize
+) {
+
+250 
+WebSock‘TxRx
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+251 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+252 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+253 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+254 cÚ¡* 
+webSock‘P©h
+,
+
+255 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+256 
+WebSock‘CÚÃùÜ
+<
+T
+>(
+¡©efulS”viû
+, 
+	g£rv”
+, 
+	gwebSock‘P©h
+, 
+	gbufãrSize
+),
+
+257 
+	gWebSock‘Tx
+<
+	gT
+>(
+	g¡©eR—d”
+, 
+	g¡©efulS”viû
+, 
+	g£rv”
+, 
+	gwebSock‘P©h
+, 
+	gbufãrSize
+),
+
+258 
+	gWebSock‘Rx
+<
+	gT
+>(
+	g¡©eUpd©”
+, 
+	g¡©efulS”viû
+, 
+	g£rv”
+, 
+	gwebSock‘P©h
+, 
+	gbufãrSize
+) {
+
+261 
+	g´Ùeùed
+:
+
+262 
+ÚWSEv’t
+(
+AsyncWebSock‘
+* 
+£rv”
+,
+
+263 
+AsyncWebSock‘Cl›Á
+* 
+þ›Á
+,
+
+264 
+AwsEv’tTy³
+ 
+ty³
+,
+
+265 * 
+¬g
+,
+
+266 
+ušt8_t
+* 
+d©a
+,
+
+267 
+size_t
+ 
+Ën
+) {
+
+268 
+	gWebSock‘Rx
+<
+	gT
+>::
+ÚWSEv’t
+(
+£rv”
+, 
+þ›Á
+, 
+ty³
+, 
+¬g
+, 
+d©a
+, 
+Ën
+);
+
+269 
+	gWebSock‘Tx
+<
+	gT
+>::
+ÚWSEv’t
+(
+£rv”
+, 
+þ›Á
+, 
+ty³
+, 
+¬g
+, 
+d©a
+, 
+Ën
+);
+
+	@lib/framework/WiFiScanner.cpp
+
+1 
+	~<WiFiSÿÂ”.h
+>
+
+3 
+	gWiFiSÿÂ”
+::
+	$WiFiSÿÂ”
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) {
+
+4 
+£rv”
+->
+	`Ú
+(
+SCAN_NETWORKS_SERVICE_PATH
+,
+
+5 
+HTTP_GET
+,
+
+6 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+WiFiSÿÂ”
+::
+sÿnN‘wÜks
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+7 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+));
+
+8 
+£rv”
+->
+	`Ú
+(
+LIST_NETWORKS_SERVICE_PATH
+,
+
+9 
+HTTP_GET
+,
+
+10 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+WiFiSÿÂ”
+::
+li¡N‘wÜks
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+11 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+));
+
+12 
+	}
+};
+
+14 
+	gWiFiSÿÂ”
+::
+	$sÿnN‘wÜks
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+15 ià(
+WiFi
+.
+	`sÿnCom¶‘e
+() != -1) {
+
+16 
+WiFi
+.
+	`sÿnD–‘e
+();
+
+17 
+WiFi
+.
+	`sÿnN‘wÜks
+(
+Œue
+);
+
+19 
+»que¡
+->
+	`£nd
+(202);
+
+20 
+	}
+}
+
+22 
+	gWiFiSÿÂ”
+::
+	$li¡N‘wÜks
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+23 
+numN‘wÜks
+ = 
+WiFi
+.
+	`sÿnCom¶‘e
+();
+
+24 ià(
+numN‘wÜks
+ > -1) {
+
+25 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_WIFI_SCANNER_SIZE
+);
+
+26 
+JsÚObjeù
+ 
+roÙ
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+27 
+JsÚA¼ay
+ 
+ÃtwÜks
+ = 
+roÙ
+.
+	`ü—‹Ne¡edA¼ay
+("networks");
+
+28 
+i
+ = 0; i < 
+numN‘wÜks
+; i++) {
+
+29 
+JsÚObjeù
+ 
+ÃtwÜk
+ = 
+ÃtwÜks
+.
+	`ü—‹Ne¡edObjeù
+();
+
+30 
+ÃtwÜk
+["rssi"] = 
+WiFi
+.
+	`RSSI
+(
+i
+);
+
+31 
+ÃtwÜk
+["ssid"] = 
+WiFi
+.
+	`SSID
+(
+i
+);
+
+32 
+ÃtwÜk
+["bssid"] = 
+WiFi
+.
+	`BSSID¡r
+(
+i
+);
+
+33 
+ÃtwÜk
+["chªÃl"] = 
+WiFi
+.
+	`chªÃl
+(
+i
+);
+
+34 #ifdeà
+ESP32
+
+
+35 
+ÃtwÜk
+["’üy±iÚ_ty³"] = (
+ušt8_t
+)
+WiFi
+.
+	`’üy±iÚTy³
+(
+i
+);
+
+36 #–ià
+	`defšed
+(
+ESP8266
+)
+
+37 
+ÃtwÜk
+["’üy±iÚ_ty³"] = 
+	`cÚv”tEnüy±iÚTy³
+(
+WiFi
+.
+	`’üy±iÚTy³
+(
+i
+));
+
+40 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+41 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+42 } ià(
+numN‘wÜks
+ == -1) {
+
+43 
+»que¡
+->
+	`£nd
+(202);
+
+45 
+	`sÿnN‘wÜks
+(
+»que¡
+);
+
+47 
+	}
+}
+
+49 #ifdeà
+ESP8266
+
+
+55 
+ušt8_t
+ 
+	gWiFiSÿÂ”
+::
+	$cÚv”tEnüy±iÚTy³
+(
+ušt8_t
+ 
+’üy±iÚTy³
+) {
+
+56 
+’üy±iÚTy³
+) {
+
+57 
+ENC_TYPE_NONE
+:
+
+58  
+AUTH_OPEN
+;
+
+59 
+ENC_TYPE_WEP
+:
+
+60  
+AUTH_WEP
+;
+
+61 
+ENC_TYPE_TKIP
+:
+
+62  
+AUTH_WPA_PSK
+;
+
+63 
+ENC_TYPE_CCMP
+:
+
+64  
+AUTH_WPA2_PSK
+;
+
+65 
+ENC_TYPE_AUTO
+:
+
+66  
+AUTH_WPA_WPA2_PSK
+;
+
+69 
+	}
+}
+
+	@lib/framework/WiFiScanner.h
+
+1 #iâdeà
+WiFiSÿÂ”_h
+
+
+2 
+	#WiFiSÿÂ”_h
+
+
+	)
+
+4 #ifdeà
+ESP32
+
+
+5 
+	~<WiFi.h
+>
+
+6 
+	~<AsyncTCP.h
+>
+
+7 #–ià
+defšed
+(
+ESP8266
+)
+
+8 
+	~<ESP8266WiFi.h
+>
+
+9 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~<ArdušoJsÚ.h
+>
+
+13 
+	~<AsyncJsÚ.h
+>
+
+14 
+	~<ESPAsyncWebS”v”.h
+>
+
+15 
+	~<Secur™yMªag”.h
+>
+
+17 
+	#SCAN_NETWORKS_SERVICE_PATH
+ "/»¡/sÿnN‘wÜks"
+
+	)
+
+18 
+	#LIST_NETWORKS_SERVICE_PATH
+ "/»¡/li¡N‘wÜks"
+
+	)
+
+20 
+	#MAX_WIFI_SCANNER_SIZE
+ 1024
+
+	)
+
+22 þas 
+	cWiFiSÿÂ”
+ {
+
+23 
+	mpublic
+:
+
+24 
+WiFiSÿÂ”
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+26 
+	m´iv©e
+:
+
+27 
+sÿnN‘wÜks
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+28 
+li¡N‘wÜks
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+30 #ifdeà
+ESP8266
+
+
+31 
+ušt8_t
+ 
+cÚv”tEnüy±iÚTy³
+(ušt8_ˆ
+’üy±iÚTy³
+);
+
+	@lib/framework/WiFiSettingsService.cpp
+
+1 
+	~<WiFiS‘tšgsS”viû.h
+>
+
+3 
+	gWiFiS‘tšgsS”viû
+::
+	$WiFiS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+)
+
+4 : 
+	`_h‰pEndpošt
+(
+WiFiS‘tšgs
+::
+»ad
+, WiFiS‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+WIFI_SETTINGS_SERVICE_PATH
+, 
+£cur™yMªag”
+)
+
+5 , 
+	`_fsP”si¡’û
+(
+WiFiS‘tšgs
+::
+»ad
+, WiFiS‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+WIFI_SETTINGS_FILE
+)
+
+6 , 
+	$_Ï¡CÚÃùiÚA‰em±
+(0) {
+
+9 ià(
+WiFi
+.
+	`g‘Mode
+(è!ð
+WIFI_OFF
+) {
+
+10 
+WiFi
+.
+	`mode
+(
+WIFI_OFF
+);
+
+14 
+WiFi
+.
+	`³rsi¡’t
+(
+çl£
+);
+
+15 
+WiFi
+.
+	`£tAutoRecÚÃù
+(
+çl£
+);
+
+16 #ifdeà
+ESP32
+
+
+18 
+WiFi
+.
+	`mode
+(
+WIFI_MODE_MAX
+);
+
+19 
+WiFi
+.
+	`mode
+(
+WIFI_MODE_NULL
+);
+
+20 
+WiFi
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+WiFiS‘tšgsS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+),
+
+21 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_DISCONNECTED
+);
+
+22 
+WiFi
+.
+	`ÚEv’t
+(
+¡d
+::
+	`bšd
+(&
+WiFiS‘tšgsS”viû
+::
+ÚS�tiÚModeStÝ
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+, std::¶aûhÞd”s::
+_2
+), 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_STOP
+);
+
+23 #–ià
+	`defšed
+(
+ESP8266
+)
+
+32 
+_ÚS�tiÚModeDiscÚÃùedHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeDiscÚÃùed
+(
+¡d
+::
+	`bšd
+(&
+WiFiS‘tšgsS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+));
+
+35 
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+è{ 
+	`»cÚfigu»WiFiCÚÃùiÚ
+(); }, 
+çl£
+);
+
+36 
+	}
+}
+
+38 
+	gWiFiS‘tšgsS”viû
+::
+	$begš
+() {
+
+39 
+_fsP”si¡’û
+.
+	`»adFromFS
+();
+
+40 
+	`»cÚfigu»WiFiCÚÃùiÚ
+();
+
+41 
+	}
+}
+
+43 
+	gWiFiS‘tšgsS”viû
+::
+	$»cÚfigu»WiFiCÚÃùiÚ
+() {
+
+45 
+_Ï¡CÚÃùiÚA‰em±
+ = 0;
+
+48 #ifdeà
+ESP32
+
+
+49 ià(
+WiFi
+.
+	`discÚÃù
+(
+Œue
+)) {
+
+50 
+_¡Ýpšg
+ = 
+Œue
+;
+
+52 #–ià
+	`defšed
+(
+ESP8266
+)
+
+53 
+WiFi
+.
+	`discÚÃù
+(
+Œue
+);
+
+55 
+	}
+}
+
+57 
+	gWiFiS‘tšgsS”viû
+::
+	$loÝ
+() {
+
+58 
+cu¼’tMžlis
+ = 
+	`mžlis
+();
+
+59 ià(!
+_Ï¡CÚÃùiÚA‰em±
+ || ()(
+cu¼’tMžlis
+ - _Ï¡CÚÃùiÚA‰em±è>ð
+WIFI_RECONNECTION_DELAY
+) {
+
+60 
+_Ï¡CÚÃùiÚA‰em±
+ = 
+cu¼’tMžlis
+;
+
+61 
+	`mªageSTA
+();
+
+63 
+	}
+}
+
+65 
+	gWiFiS‘tšgsS”viû
+::
+	$mªageSTA
+() {
+
+67 ià(
+WiFi
+.
+	`isCÚÃùed
+(è|| 
+_¡©e
+.
+ssid
+.
+	`Ëngth
+() == 0) {
+
+71 ià((
+WiFi
+.
+	`g‘Mode
+(è& 
+WIFI_STA
+) == 0) {
+
+73 ià(
+_¡©e
+.
+¡©icIPCÚfig
+) {
+
+75 
+WiFi
+.
+	`cÚfig
+(
+_¡©e
+.
+loÿlIP
+, _¡©e.
+g©ewayIP
+, _¡©e.
+subÃtMask
+, _¡©e.
+dnsIP1
+, _¡©e.
+dnsIP2
+);
+
+78 #ifdeà
+ESP32
+
+
+79 
+WiFi
+.
+	`cÚfig
+(
+INADDR_NONE
+, INADDR_NONE, INADDR_NONE);
+
+80 #–ià
+	`defšed
+(
+ESP8266
+)
+
+81 
+WiFi
+.
+	`cÚfig
+(
+INADDR_ANY
+, INADDR_ANY, INADDR_ANY);
+
+85 #ifdeà
+ESP32
+
+
+86 
+WiFi
+.
+	`£tHo¡Çme
+(
+_¡©e
+.
+ho¡Çme
+.
+	`c_¡r
+());
+
+87 #–ià
+	`defšed
+(
+ESP8266
+)
+
+88 
+WiFi
+.
+	`ho¡Çme
+(
+_¡©e
+.
+ho¡Çme
+);
+
+91 
+WiFi
+.
+	`begš
+(
+_¡©e
+.
+ssid
+.
+	`c_¡r
+(), _¡©e.
+·sswÜd
+.c_str());
+
+93 
+	}
+}
+
+95 #ifdeà
+ESP32
+
+
+96 
+	gWiFiS‘tšgsS”viû
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+97 
+WiFi
+.
+	`discÚÃù
+(
+Œue
+);
+
+98 
+	}
+}
+
+99 
+	gWiFiS‘tšgsS”viû
+::
+	$ÚS�tiÚModeStÝ
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+100 ià(
+_¡Ýpšg
+) {
+
+101 
+_Ï¡CÚÃùiÚA‰em±
+ = 0;
+
+102 
+_¡Ýpšg
+ = 
+çl£
+;
+
+104 
+	}
+}
+
+105 #–ià
+defšed
+(
+ESP8266
+)
+
+106 
+	gWiFiS‘tšgsS”viû
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+ & 
+ev’t
+) {
+
+107 
+WiFi
+.
+	`discÚÃù
+(
+Œue
+);
+
+108 
+	}
+}
+
+	@lib/framework/WiFiSettingsService.h
+
+1 #iâdeà
+WiFiS‘tšgsS”viû_h
+
+
+2 
+	#WiFiS‘tšgsS”viû_h
+
+
+	)
+
+4 
+	~<S�‹fulS”viû.h
+>
+
+5 
+	~<FSP”si¡’û.h
+>
+
+6 
+	~<H‰pEndpošt.h
+>
+
+7 
+	~<JsÚUtžs.h
+>
+
+9 
+	#WIFI_SETTINGS_FILE
+ "/cÚfig/wifiS‘tšgs.jsÚ"
+
+	)
+
+10 
+	#WIFI_SETTINGS_SERVICE_PATH
+ "/»¡/wifiS‘tšgs"
+
+	)
+
+11 
+	#WIFI_RECONNECTION_DELAY
+ 1000 * 30
+
+	)
+
+13 #iâdeà
+FACTORY_WIFI_SSID
+
+
+14 
+	#FACTORY_WIFI_SSID
+ ""
+
+	)
+
+17 #iâdeà
+FACTORY_WIFI_PASSWORD
+
+
+18 
+	#FACTORY_WIFI_PASSWORD
+ ""
+
+	)
+
+21 #iâdeà
+FACTORY_WIFI_HOSTNAME
+
+
+22 
+	#FACTORY_WIFI_HOSTNAME
+ ""
+
+	)
+
+25 þas 
+	cWiFiS‘tšgs
+ {
+
+26 
+	mpublic
+:
+
+28 
+SŒšg
+ 
+ssid
+;
+
+29 
+SŒšg
+ 
+	m·sswÜd
+;
+
+30 
+SŒšg
+ 
+	mho¡Çme
+;
+
+31 
+boÞ
+ 
+	m¡©icIPCÚfig
+;
+
+34 
+IPAdd»ss
+ 
+	mloÿlIP
+;
+
+35 
+IPAdd»ss
+ 
+	mg©ewayIP
+;
+
+36 
+IPAdd»ss
+ 
+	msubÃtMask
+;
+
+37 
+IPAdd»ss
+ 
+	mdnsIP1
+;
+
+38 
+IPAdd»ss
+ 
+	mdnsIP2
+;
+
+40 
+	$»ad
+(
+WiFiS‘tšgs
+& 
+£‰šgs
+, 
+JsÚObjeù
+& 
+roÙ
+) {
+
+42 
+roÙ
+["ssid"] = 
+£‰šgs
+.
+ssid
+;
+
+43 
+roÙ
+["·sswÜd"] = 
+£‰šgs
+.
+·sswÜd
+;
+
+44 
+roÙ
+["ho¡Çme"] = 
+£‰šgs
+.
+ho¡Çme
+;
+
+45 
+roÙ
+["¡©ic_�_cÚfig"] = 
+£‰šgs
+.
+¡©icIPCÚfig
+;
+
+48 
+JsÚUtžs
+::
+	`wr™eIP
+(
+roÙ
+, "loÿl_�", 
+£‰šgs
+.
+loÿlIP
+);
+
+49 
+JsÚUtžs
+::
+	`wr™eIP
+(
+roÙ
+, "g©eway_�", 
+£‰šgs
+.
+g©ewayIP
+);
+
+50 
+JsÚUtžs
+::
+	`wr™eIP
+(
+roÙ
+, "subÃt_mask", 
+£‰šgs
+.
+subÃtMask
+);
+
+51 
+JsÚUtžs
+::
+	`wr™eIP
+(
+roÙ
+, "dns_�_1", 
+£‰šgs
+.
+dnsIP1
+);
+
+52 
+JsÚUtžs
+::
+	`wr™eIP
+(
+roÙ
+, "dns_�_2", 
+£‰šgs
+.
+dnsIP2
+);
+
+55 
+S�‹Upd©eResuÉ
+ 
+	$upd©e
+(
+JsÚObjeù
+& 
+roÙ
+, 
+WiFiS‘tšgs
+& 
+£‰šgs
+) {
+
+57 
+£‰šgs
+.
+ssid
+ = 
+roÙ
+["ssid"] | 
+FACTORY_WIFI_SSID
+;
+
+58 
+£‰šgs
+.
+·sswÜd
+ = 
+roÙ
+["·sswÜd"] | 
+FACTORY_WIFI_PASSWORD
+;
+
+59 
+£‰šgs
+.
+ho¡Çme
+ = 
+roÙ
+["ho¡Çme"] | 
+FACTORY_WIFI_HOSTNAME
+;
+
+60 
+£‰šgs
+.
+¡©icIPCÚfig
+ = 
+roÙ
+["¡©ic_�_cÚfig"] | 
+çl£
+;
+
+63 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "loÿl_�", 
+£‰šgs
+.
+loÿlIP
+);
+
+64 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "g©eway_�", 
+£‰šgs
+.
+g©ewayIP
+);
+
+65 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "subÃt_mask", 
+£‰šgs
+.
+subÃtMask
+);
+
+66 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "dns_�_1", 
+£‰šgs
+.
+dnsIP1
+);
+
+67 
+JsÚUtžs
+::
+	`»adIP
+(
+roÙ
+, "dns_�_2", 
+£‰šgs
+.
+dnsIP2
+);
+
+70 ià(
+£‰šgs
+.
+dnsIP1
+ =ð
+INADDR_NONE
+ && s‘tšgs.
+dnsIP2
+ != INADDR_NONE) {
+
+71 
+£‰šgs
+.
+dnsIP1
+ = s‘tšgs.
+dnsIP2
+;
+
+72 
+£‰šgs
+.
+dnsIP2
+ = 
+INADDR_NONE
+;
+
+78 ià(
+£‰šgs
+.
+¡©icIPCÚfig
+ &&
+
+79 (
+£‰šgs
+.
+loÿlIP
+ =ð
+INADDR_NONE
+ || s‘tšgs.
+g©ewayIP
+ =ðINADDR_NONE || s‘tšgs.
+subÃtMask
+ == INADDR_NONE)) {
+
+80 
+£‰šgs
+.
+¡©icIPCÚfig
+ = 
+çl£
+;
+
+82  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+83 
+	}
+}
+
+86 
+þass
+ 
+	gWiFiS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+WiFiS‘tšgs
+> {
+
+87 
+public
+:
+
+88 
+WiFiS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+90 
+begš
+();
+
+91 
+loÝ
+();
+
+93 
+	g´iv©e
+:
+
+94 
+H‰pEndpošt
+<
+WiFiS‘tšgs
+> 
+_h‰pEndpošt
+;
+
+95 
+	gFSP”si¡’û
+<
+	gWiFiS‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+96 
+	g_Ï¡CÚÃùiÚA‰em±
+;
+
+98 #ifdeà
+ESP32
+
+
+99 
+boÞ
+ 
+	g_¡Ýpšg
+;
+
+100 
+ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+101 
+ÚS�tiÚModeStÝ
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+102 #–ià
+defšed
+(
+ESP8266
+)
+
+103 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeDiscÚÃùedHªdËr
+;
+
+104 
+ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+& 
+ev’t
+);
+
+107 
+»cÚfigu»WiFiCÚÃùiÚ
+();
+
+108 
+mªageSTA
+();
+
+	@lib/framework/WiFiStatus.cpp
+
+1 
+	~<WiFiS�tus.h
+>
+
+3 
+	gWiFiS�tus
+::
+	$WiFiS�tus
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+) {
+
+4 
+£rv”
+->
+	`Ú
+(
+WIFI_STATUS_SERVICE_PATH
+,
+
+5 
+HTTP_GET
+,
+
+6 
+£cur™yMªag”
+->
+	`w¿pReque¡
+(
+¡d
+::
+	`bšd
+(&
+WiFiS�tus
+::
+wifiS�tus
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+7 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+8 #ifdeà
+ESP32
+
+
+9 
+WiFi
+.
+	`ÚEv’t
+(
+ÚS�tiÚModeCÚÃùed
+, 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_CONNECTED
+);
+
+10 
+WiFi
+.
+	`ÚEv’t
+(
+ÚS�tiÚModeDiscÚÃùed
+, 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_DISCONNECTED
+);
+
+11 
+WiFi
+.
+	`ÚEv’t
+(
+ÚS�tiÚModeGÙIP
+, 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_GOT_IP
+);
+
+12 #–ià
+	`defšed
+(
+ESP8266
+)
+
+13 
+_ÚS�tiÚModeCÚÃùedHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeCÚÃùed
+(
+ÚS�tiÚModeCÚÃùed
+);
+
+14 
+_ÚS�tiÚModeDiscÚÃùedHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeDiscÚÃùed
+(
+ÚS�tiÚModeDiscÚÃùed
+);
+
+15 
+_ÚS�tiÚModeGÙIPHªdËr
+ = 
+WiFi
+.
+	`ÚS�tiÚModeGÙIP
+(
+ÚS�tiÚModeGÙIP
+);
+
+17 
+	}
+}
+
+19 #ifdeà
+ESP32
+
+
+20 
+	gWiFiS�tus
+::
+	$ÚS�tiÚModeCÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+22 
+	}
+}
+
+24 
+	gWiFiS�tus
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+27 
+	}
+}
+
+29 
+	gWiFiS�tus
+::
+	$ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+31 
+	}
+}
+
+32 #–ià
+defšed
+(
+ESP8266
+)
+
+33 
+	gWiFiS�tus
+::
+	$ÚS�tiÚModeCÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeCÚÃùed
+& 
+ev’t
+) {
+
+36 
+	}
+}
+
+38 
+WiFiS�tus
+::
+	$ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+& 
+ev’t
+) {
+
+41 
+	}
+}
+
+43 
+WiFiS�tus
+::
+	$ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+& 
+ev’t
+) {
+
+45 
+	}
+}
+
+48 
+WiFiS�tus
+::
+	$wifiS�tus
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+49 
+AsyncJsÚRe¥Ú£
+* 
+»¥Ú£
+ = 
+Ãw
+ 
+	`AsyncJsÚRe¥Ú£
+(
+çl£
+, 
+MAX_WIFI_STATUS_SIZE
+);
+
+50 
+JsÚObjeù
+ 
+roÙ
+ = 
+»¥Ú£
+->
+	`g‘RoÙ
+();
+
+51 
+wl_¡©us_t
+ 
+¡©us
+ = 
+WiFi
+.
+	`¡©us
+();
+
+52 
+roÙ
+["¡©us"] = (
+ušt8_t
+)
+¡©us
+;
+
+53 ià(
+¡©us
+ =ð
+WL_CONNECTED
+) {
+
+54 
+roÙ
+["loÿl_�"] = 
+WiFi
+.
+	`loÿlIP
+().
+	`toSŒšg
+();
+
+55 
+roÙ
+["mac_add»ss"] = 
+WiFi
+.
+	`macAdd»ss
+();
+
+56 
+roÙ
+["rssi"] = 
+WiFi
+.
+	`RSSI
+();
+
+57 
+roÙ
+["ssid"] = 
+WiFi
+.
+	`SSID
+();
+
+58 
+roÙ
+["bssid"] = 
+WiFi
+.
+	`BSSID¡r
+();
+
+59 
+roÙ
+["chªÃl"] = 
+WiFi
+.
+	`chªÃl
+();
+
+60 
+roÙ
+["subÃt_mask"] = 
+WiFi
+.
+	`subÃtMask
+().
+	`toSŒšg
+();
+
+61 
+roÙ
+["g©eway_�"] = 
+WiFi
+.
+	`g©ewayIP
+().
+	`toSŒšg
+();
+
+62 
+IPAdd»ss
+ 
+dnsIP1
+ = 
+WiFi
+.
+	`dnsIP
+(0);
+
+63 
+IPAdd»ss
+ 
+dnsIP2
+ = 
+WiFi
+.
+	`dnsIP
+(1);
+
+64 ià(
+dnsIP1
+ !ð
+INADDR_NONE
+) {
+
+65 
+roÙ
+["dns_�_1"] = 
+dnsIP1
+.
+	`toSŒšg
+();
+
+67 ià(
+dnsIP2
+ !ð
+INADDR_NONE
+) {
+
+68 
+roÙ
+["dns_�_2"] = 
+dnsIP2
+.
+	`toSŒšg
+();
+
+71 
+»¥Ú£
+->
+	`£tL’gth
+();
+
+72 
+»que¡
+->
+	`£nd
+(
+»¥Ú£
+);
+
+73 
+	}
+}
+
+	@lib/framework/WiFiStatus.h
+
+1 #iâdeà
+WiFiS�tus_h
+
+
+2 
+	#WiFiS�tus_h
+
+
+	)
+
+4 #ifdeà
+ESP32
+
+
+5 
+	~<WiFi.h
+>
+
+6 
+	~<AsyncTCP.h
+>
+
+7 #–ià
+defšed
+(
+ESP8266
+)
+
+8 
+	~<ESP8266WiFi.h
+>
+
+9 
+	~<ESPAsyncTCP.h
+>
+
+12 
+	~<ArdušoJsÚ.h
+>
+
+13 
+	~<AsyncJsÚ.h
+>
+
+14 
+	~<ESPAsyncWebS”v”.h
+>
+
+15 
+	~<IPAdd»ss.h
+>
+
+16 
+	~<Secur™yMªag”.h
+>
+
+18 
+	#MAX_WIFI_STATUS_SIZE
+ 1024
+
+	)
+
+19 
+	#WIFI_STATUS_SERVICE_PATH
+ "/»¡/wifiS�tus"
+
+	)
+
+21 þas 
+	cWiFiS�tus
+ {
+
+22 
+	mpublic
+:
+
+23 
+WiFiS�tus
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+Secur™yMªag”
+* 
+£cur™yMªag”
+);
+
+25 
+	m´iv©e
+:
+
+26 #ifdeà
+ESP32
+
+
+28 
+ÚS�tiÚModeCÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+29 
+ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+30 
+ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+31 #–ià
+	$defšed
+(
+ESP8266
+)
+
+33 
+WiFiEv’tHªdËr
+ 
+_ÚS�tiÚModeCÚÃùedHªdËr
+;
+
+34 
+WiFiEv’tHªdËr
+ 
+_ÚS�tiÚModeDiscÚÃùedHªdËr
+;
+
+35 
+WiFiEv’tHªdËr
+ 
+_ÚS�tiÚModeGÙIPHªdËr
+;
+
+37 
+	`ÚS�tiÚModeCÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeCÚÃùed
+& 
+ev’t
+);
+
+38 
+	`ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+& 
+ev’t
+);
+
+39 
+	`ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+& 
+ev’t
+);
+
+42 
+	`wifiS�tus
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+);
+
+	@lib/uuid-common/src/common.cpp
+
+19 
+	~<uuid/commÚ.h
+>
+
+	@lib/uuid-common/src/get_uptime_ms.cpp
+
+19 
+	~<uuid/commÚ.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+Çme¥aû
+ 
+	guuid
+ {
+
+25 
+	#UPTIME_OVERFLOW
+ 4294967295
+
+26 
+
+	)
+
+28 
+ušt32_t
+ 
+g‘_u±ime_£c
+() {
+
+29 
+ušt32_t
+ 
+	gÏ¡_u±ime
+ = 0;
+
+30 
+ušt8_t
+ 
+	gu±ime_ov”æows
+ = 0;
+
+32 ià(
+mžlis
+(è< 
+	gÏ¡_u±ime
+) {
+
+33 ++
+	gu±ime_ov”æows
+;
+
+35 
+	gÏ¡_u±ime
+ = 
+mžlis
+();
+
+36 
+ušt32_t
+ 
+	gu±ime_£cÚds
+ = 
+u±ime_ov”æows
+ * (
+UPTIME_OVERFLOW
+ / 1000è+ (
+Ï¡_u±ime
+ / 1000);
+
+38  
+	gu±ime_£cÚds
+;
+
+41 
+ušt64_t
+ 
+g‘_u±ime_ms
+() {
+
+42 
+ušt32_t
+ 
+	ghigh_mžlis
+ = 0;
+
+43 
+ušt32_t
+ 
+	glow_mžlis
+ = 0;
+
+45 ià(
+g‘_u±ime
+(è< 
+	glow_mžlis
+) {
+
+46 
+	ghigh_mžlis
+++;
+
+49 
+	glow_mžlis
+ = 
+g‘_u±ime
+();
+
+51  ((
+	gušt64_t
+)
+	ghigh_mžlis
+ << 32è| 
+	glow_mžlis
+;
+
+55 
+ušt32_t
+ 
+	gnow_mžlis
+;
+
+57 
+£t_u±ime
+() {
+
+58 
+	gnow_mžlis
+ = ::
+mžlis
+();
+
+61 
+ušt32_t
+ 
+g‘_u±ime
+() {
+
+62  
+	gnow_mžlis
+;
+
+	@lib/uuid-common/src/loop.cpp
+
+19 
+	~<uuid/commÚ.h
+>
+
+21 
+Çme¥aû
+ 
+	guuid
+ {
+
+23 
+loÝ
+() {
+
+24 
+£t_u±ime
+();
+
+25 
+g‘_u±ime_ms
+();
+
+	@lib/uuid-common/src/printable_to_string.cpp
+
+19 
+	~<uuid/commÚ.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<¡ršg
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 þas 
+	cPrš�bËSŒšg
+ : 
+public
+ ::
+Pršt
+ {
+
+28 
+public
+:
+
+29 
+ex¶ic™
+ 
+Prš�bËSŒšg
+(
+¡d
+::
+¡ršg
+ & 
+ou�ut
+)
+
+30 : 
+ou�ut_
+(
+ou�ut
+) {
+
+32 ~
+Prš�bËSŒšg
+() = ;
+
+34 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+è
+fš®
+ 
+	gov”ride
+ {
+
+35 
+	gou�ut_
+.
+­³nd
+(1, 
+»š‹½»t_ÿ¡
+<>(
+d©a
+));
+
+39 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ * 
+bufãr
+, size_ˆ
+size
+è
+fš®
+ 
+	gov”ride
+ {
+
+40 
+	gou�ut_
+.
+­³nd
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+bufãr
+), 
+size
+);
+
+41  
+	gsize
+;
+
+44 
+	g´iv©e
+:
+
+45 
+¡d
+::
+¡ršg
+ & 
+ou�ut_
+;
+
+48 
+size_t
+ 
+	$´št_to_¡ršg
+(cÚ¡ 
+Prš�bË
+ & 
+´š�bË
+, 
+¡d
+::
+¡ršg
+ & 
+ou�ut
+) {
+
+49 
+Prš�bËSŒšg
+ 
+p¡r
+{
+ou�ut
+};
+
+51  
+´š�bË
+.
+	`´štTo
+(
+p¡r
+);
+
+52 
+	}
+}
+
+54 
+	g¡d
+::
+¡ršg
+ 
+	$´š�bË_to_¡ršg
+(cÚ¡ 
+Prš�bË
+ & 
+´š�bË
+) {
+
+55 
+¡d
+::
+¡ršg
+ 
+¡r
+;
+
+57 
+	`´št_to_¡ršg
+(
+´š�bË
+, 
+¡r
+);
+
+59  
+¡r
+;
+
+60 
+	}
+}
+
+	@lib/uuid-common/src/read_flash_string.cpp
+
+19 
+	~<uuid/commÚ.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<¡ršg
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 
+	g¡d
+::
+¡ršg
+ 
+»ad_æash_¡ršg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+æash_¡r
+) {
+
+28 
+¡d
+::
+¡ršg
+ 
+¡r
+(::
+¡¾’_P
+(
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+æash_¡r
+)), '\0');
+
+30 ::
+¡ºýy_P
+(&
+¡r
+[0], 
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+æash_¡r
+), sŒ.
+ÿ·c™y
+() + 1);
+
+32  
+	g¡r
+;
+
+	@lib/uuid-common/src/uuid/common.h
+
+19 #iâdeà
+UUID_COMMON_H_
+
+
+20 
+	#UUID_COMMON_H_
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+24 
+	~<¡ršg
+>
+
+25 
+	~<veùÜ
+>
+
+33 
+Çme¥aû
+ 
+	guuid
+ {
+
+45 
+	g¡d
+::
+¡ršg
+ 
+»ad_æash_¡ršg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+æash_¡r
+);
+
+55 
+size_t
+ 
+´št_to_¡ršg
+(cÚ¡ 
+Prš�bË
+ & 
+´š�bË
+, 
+¡d
+::
+¡ršg
+ & 
+ou�ut
+);
+
+64 
+	g¡d
+::
+¡ršg
+ 
+´š�bË_to_¡ršg
+(cÚ¡ 
+Prš�bË
+ & 
+´š�bË
+);
+
+71 
+usšg
+ 
+	gæash_¡ršg_veùÜ
+ = 
+¡d
+::
+veùÜ
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>;
+
+79 
+loÝ
+();
+
+87 
+ušt64_t
+ 
+g‘_u±ime_ms
+();
+
+89 
+ušt32_t
+ 
+g‘_u±ime
+();
+
+90 
+ušt32_t
+ 
+g‘_u±ime_£c
+();
+
+92 
+£t_u±ime
+();
+
+	@lib/uuid-console/src/command_line.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<¡ršg
+>
+
+22 
+	~<veùÜ
+>
+
+24 
+Çme¥aû
+ 
+	guuid
+ {
+
+26 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+28 
+	gCommªdLše
+::
+CommªdLše
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+lše
+) {
+
+29 
+boÞ
+ 
+¡ršg_esÿ³_doubË
+ = 
+çl£
+;
+
+30 
+boÞ
+ 
+	g¡ršg_esÿ³_sšgË
+ = 
+çl£
+;
+
+31 
+boÞ
+ 
+	gch¬_esÿ³
+ = 
+çl£
+;
+
+32 
+boÞ
+ 
+	gquÙed_¬gum’t
+ = 
+çl£
+;
+
+34 ià(!
+	glše
+.
+em±y
+()) {
+
+35 
+	g·¿m‘”s_
+.
+em¶aû_back
+(
+¡d
+::
+¡ršg
+{});
+
+38 
+	gc
+ : 
+lše
+) {
+
+39 
+c
+) {
+
+41 ià(
+¡ršg_esÿ³_doubË
+ || 
+¡ršg_esÿ³_sšgË
+) {
+
+42 ià(
+ch¬_esÿ³
+) {
+
+43 
+·¿m‘”s_
+.
+back
+().
+push_back
+('\\');
+
+44 
+	gch¬_esÿ³
+ = 
+çl£
+;
+
+46 
+	g·¿m‘”s_
+.
+back
+().
+push_back
+(' ');
+
+47 } ià(
+	gch¬_esÿ³
+) {
+
+48 
+	g·¿m‘”s_
+.
+back
+().
+push_back
+(' ');
+
+49 
+	gch¬_esÿ³
+ = 
+çl£
+;
+
+53 ià(
+	gquÙed_¬gum’t
+ || !
+	g·¿m‘”s_
+.
+back
+().
+em±y
+()) {
+
+54 
+	g·¿m‘”s_
+.
+em¶aû_back
+(
+¡d
+::
+¡ršg
+{});
+
+56 
+	gquÙed_¬gum’t
+ = 
+çl£
+;
+
+61 ià(
+ch¬_esÿ³
+ || 
+¡ršg_esÿ³_sšgË
+) {
+
+62 
+·¿m‘”s_
+.
+back
+().
+push_back
+('"');
+
+63 
+	gch¬_esÿ³
+ = 
+çl£
+;
+
+65 
+	g¡ršg_esÿ³_doubË
+ = !
+¡ršg_esÿ³_doubË
+;
+
+66 
+	gquÙed_¬gum’t
+ = 
+Œue
+;
+
+71 ià(
+ch¬_esÿ³
+ || 
+¡ršg_esÿ³_doubË
+) {
+
+72 
+·¿m‘”s_
+.
+back
+().
+push_back
+('\'');
+
+73 
+	gch¬_esÿ³
+ = 
+çl£
+;
+
+75 
+	g¡ršg_esÿ³_sšgË
+ = !
+¡ršg_esÿ³_sšgË
+;
+
+76 
+	gquÙed_¬gum’t
+ = 
+Œue
+;
+
+81 ià(
+ch¬_esÿ³
+) {
+
+82 
+·¿m‘”s_
+.
+back
+().
+push_back
+('\\');
+
+83 
+	gch¬_esÿ³
+ = 
+çl£
+;
+
+85 
+	gch¬_esÿ³
+ = 
+Œue
+;
+
+90 ià(
+ch¬_esÿ³
+) {
+
+91 
+·¿m‘”s_
+.
+back
+().
+push_back
+('\\');
+
+92 
+	gch¬_esÿ³
+ = 
+çl£
+;
+
+94 
+	g·¿m‘”s_
+.
+back
+().
+push_back
+(
+c
+);
+
+99 ià(!
+	g·¿m‘”s_
+.
+em±y
+(è&&…¬am‘”s_.
+back
+().em±y(è&& !
+	gquÙed_¬gum’t
+) {
+
+100 
+	g·¿m‘”s_
+.
+pÝ_back
+();
+
+101 ià(!
+	g·¿m‘”s_
+.
+em±y
+()) {
+
+102 
+	gŒažšg_¥aû
+ = 
+Œue
+;
+
+107 
+	gCommªdLše
+::
+CommªdLše
+(
+¡d
+::
+š™Ÿliz”_li¡
+<cÚ¡ std::
+veùÜ
+<¡d::
+¡ršg
+>> 
+¬gum’ts
+) {
+
+108 autØ& 
+¬gum’t
+ : 
+¬gum’ts
+) {
+
+109 
+·¿m‘”s_
+.
+š£¹
+Õ¬am‘”s_.
+’d
+(), 
+¬gum’t
+.
+begš
+(),‡rgument.end());
+
+113 
+	g¡d
+::
+¡ršg
+ 
+CommªdLše
+::
+to_¡ršg
+(
+size_t
+ 
+»£rve
+) const {
+
+114 
+¡d
+::
+¡ršg
+ 
+lše
+;
+
+115 
+size_t
+ 
+	gesÿ³
+ = 
+esÿ³_·¿m‘”s_
+;
+
+117 
+	glše
+.
+»£rve
+(reserve);
+
+119 autØ& 
+	g™em
+ : 
+·¿m‘”s_
+) {
+
+120 ià(!
+lše
+.
+em±y
+()) {
+
+121 
+lše
+ += ' ';
+
+124 ià(
+	g™em
+.
+em±y
+()) {
+
+125 
+	glše
+ += '\"';
+
+126 
+	glše
+ += '\"';
+
+127 
+	gÃxt
+;
+
+130 
+	gc
+ : 
+™em
+) {
+
+131 
+c
+) {
+
+136 ià(
+esÿ³
+ > 0) {
+
+137 
+lše
+ += '\\';
+
+142 
+	glše
+ +ð
+c
+;
+
+145 
+	gÃxt
+:
+
+146 ià(
+esÿ³
+ > 0) {
+
+147 
+esÿ³
+--;
+
+151 ià(
+	gŒažšg_¥aû
+ && !
+	glše
+.
+em±y
+()) {
+
+152 
+	glše
+ += ' ';
+
+155  
+	glše
+;
+
+158 
+	gCommªdLše
+::
+»£t
+() {
+
+159 
+·¿m‘”s_
+.
+þ—r
+();
+
+160 
+esÿ³_®l_·¿m‘”s
+();
+
+161 
+	gŒažšg_¥aû
+ = 
+çl£
+;
+
+	@lib/uuid-console/src/commands.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<®gÜ™hm
+>
+
+24 
+	~<memÜy
+>
+
+25 
+	~<m­
+>
+
+26 
+	~<£t
+>
+
+27 
+	~<¡ršg
+>
+
+28 
+	~<veùÜ
+>
+
+30 #iâdeà
+__ýp_lib_make_unique
+
+
+31 
+Çme¥aû
+ 
+	g¡d
+ {
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	g_Tp
+, 
+	gty³Çme
+... 
+	g_Args
+>
+
+34 
+šlše
+ 
+	gunique_±r
+<
+	g_Tp
+> 
+make_unique
+(
+_Args
+ &&... 
+__¬gs
+) {
+
+35  
+	gunique_±r
+<
+	g_Tp
+>(
+Ãw
+ 
+_Tp
+(
+¡d
+::
+fÜw¬d
+<
+_Args
+>(
+__¬gs
+)...));
+
+41 
+Çme¥aû
+ 
+	guuid
+ {
+
+43 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+45 
+	gCommªds
+::
+add_commªd
+(cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+) {
+
+46 
+add_commªd
+(0, 0, 
+Çme
+, 
+æash_¡ršg_veùÜ
+{}, 
+funùiÚ
+, 
+nuÎ±r
+);
+
+49 
+	gCommªds
+::
+add_commªd
+(cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, cÚ¡ fÏsh_¡ršg_veùÜ & 
+¬gum’ts
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+) {
+
+50 
+add_commªd
+(0, 0, 
+Çme
+, 
+¬gum’ts
+, 
+funùiÚ
+, 
+nuÎ±r
+);
+
+53 
+	gCommªds
+::
+add_commªd
+(cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+,
+
+54 cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+¬gum’ts
+,
+
+55 
+commªd_funùiÚ
+ 
+funùiÚ
+,
+
+56 
+¬gum’t_com¶‘iÚ_funùiÚ
+ 
+¬g_funùiÚ
+) {
+
+57 
+add_commªd
+(0, 0, 
+Çme
+, 
+¬gum’ts
+, 
+funùiÚ
+, 
+¬g_funùiÚ
+);
+
+60 
+	gCommªds
+::
+add_commªd
+(
+cÚ‹xt
+, 
+æags
+, cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+) {
+
+61 
+add_commªd
+(
+cÚ‹xt
+, 
+æags
+, 
+Çme
+, 
+æash_¡ršg_veùÜ
+{}, 
+funùiÚ
+, 
+nuÎ±r
+);
+
+64 
+	gCommªds
+::
+add_commªd
+(
+cÚ‹xt
+,
+
+65 
+æags
+,
+
+66 cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+,
+
+67 cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+¬gum’ts
+,
+
+68 
+commªd_funùiÚ
+ 
+funùiÚ
+) {
+
+69 
+add_commªd
+(
+cÚ‹xt
+, 
+æags
+, 
+Çme
+, 
+¬gum’ts
+, 
+funùiÚ
+, 
+nuÎ±r
+);
+
+72 
+	gCommªds
+::
+add_commªd
+(
+cÚ‹xt
+,
+
+73 
+æags
+,
+
+74 cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+,
+
+75 cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+¬gum’ts
+,
+
+76 
+commªd_funùiÚ
+ 
+funùiÚ
+,
+
+77 
+¬gum’t_com¶‘iÚ_funùiÚ
+ 
+¬g_funùiÚ
+) {
+
+78 
+	gcommªds_
+.
+em¶aû
+(
+¡d
+::
+p›ûwi£_cÚ¡ruù
+, std::
+fÜw¬d_as_tu¶e
+(
+cÚ‹xt
+), std::fÜw¬d_as_tu¶e(
+æags
+, 
+Çme
+, 
+¬gum’ts
+, 
+funùiÚ
+, 
+¬g_funùiÚ
+));
+
+83 
+	gCommªds
+::
+»move_®l_commªds
+() {
+
+84 
+commªds_
+.
+þ—r
+();
+
+89 
+	gCommªds
+::
+»move_cÚ‹xt_commªds
+(
+cÚ‹xt
+) {
+
+90 
+commªds_
+.
+”a£
+(
+cÚ‹xt
+);
+
+107 
+	gCommªds
+::
+ExecutiÚ
+ 
+Commªds
+::
+execu‹_commªd
+(
+Sh–l
+ & 
+sh–l
+, 
+CommªdLše
+ && 
+commªd_lše
+) {
+
+108 autØ
+	gcommªds
+ = 
+fšd_commªd
+(
+sh–l
+, 
+commªd_lše
+);
+
+109 autØ
+	glÚge¡
+ = 
+commªds
+.
+exaù
+.
+übegš
+();
+
+110 
+ExecutiÚ
+ 
+	g»suÉ
+;
+
+112 
+	g»suÉ
+.
+	g”rÜ
+ = 
+nuÎ±r
+;
+
+114 ià(
+	gcommªds
+.
+	gexaù
+.
+em±y
+()) {
+
+115 
+	g»suÉ
+.
+	g”rÜ
+ = 
+F
+("Command‚ot found");
+
+116 } ià(
+	gcommªds
+.
+	gexaù
+.
+couÁ
+(
+lÚge¡
+->
+fœ¡
+) == 1) {
+
+117 autØ& 
+commªd
+ = 
+lÚge¡
+->
+£cÚd
+;
+
+118 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+¬gum’ts
+;
+
+120 autØ
+	g™
+ = 
+¡d
+::
+Ãxt
+(
+commªd_lše
+->
+cbegš
+(), 
+commªd
+->
+Çme_
+.
+size
+()); iˆ!ðcommªd_lše->
+ûnd
+(); it++) {
+
+121 
+	g¬gum’ts
+.
+push_back
+(
+¡d
+::
+move
+(*
+™
+));
+
+123 
+	gcommªd_lše
+.
+»£t
+();
+
+125 ià(
+	gcommªds
+.
+	g·¹Ÿl
+.
+uµ”_bound
+(
+lÚge¡
+->
+fœ¡
+è!ð
+commªds
+.
+·¹Ÿl
+.
+’d
+(è&& !
+¬gum’ts
+.
+em±y
+()) {
+
+126 
+»suÉ
+.
+”rÜ
+ = 
+F
+("Command‚ot found");
+
+127 } ià(
+	g¬gum’ts
+.
+size
+(è< 
+	gcommªd
+->
+mšimum_¬gum’ts
+()) {
+
+128 
+	g»suÉ
+.
+	g”rÜ
+ = 
+F
+("Notƒnough‡rguments for command");
+
+129 } ià(
+	g¬gum’ts
+.
+size
+(è> 
+	gcommªd
+->
+maximum_¬gum’ts
+()) {
+
+130 
+	g»suÉ
+.
+	g”rÜ
+ = 
+F
+("Too many‡rguments for command");
+
+132 
+	gcommªd
+->
+funùiÚ_
+(
+sh–l
+, 
+¬gum’ts
+);
+
+135 
+	g»suÉ
+.
+	g”rÜ
+ = 
+F
+("Fatalƒrror (multiple commands found)");
+
+138  
+	g»suÉ
+;
+
+141 
+boÞ
+ 
+	gCommªds
+::
+fšd_lÚge¡_commÚ_´efix
+(cÚ¡ 
+¡d
+::
+muÉim­
+<
+size_t
+, cÚ¡ 
+Commªd
+ *> & 
+commªds
+, std::
+veùÜ
+<¡d::
+¡ršg
+> & 
+lÚge¡_Çme
+) {
+
+142 
+size_t
+ 
+compÚ’t_´efix
+ = 0;
+
+143 
+size_t
+ 
+	gshÜ‹¡_m©ch
+ = 
+commªds
+.
+begš
+()->
+fœ¡
+;
+
+145 
+	glÚge¡_Çme
+.
+»£rve
+(
+shÜ‹¡_m©ch
+);
+
+149 autØ& 
+	gfœ¡
+ = 
+commªds
+.
+begš
+()->
+£cÚd
+->
+Çme_
+;
+
+150 
+boÞ
+ 
+	g®l_m©ch
+ = 
+Œue
+;
+
+152 
+size_t
+ 
+	gËngth
+ = 0; 
+	g®l_m©ch
+ &&†’gth < 
+	gshÜ‹¡_m©ch
+;†ength++) {
+
+153 autØ
+	gcommªd_™
+ = 
+¡d
+::
+Ãxt
+(
+commªds
+.
+begš
+()); commªd_™ !ðcommªds.
+’d
+(); command_it++) {
+
+154 ià(
+»ad_æash_¡ršg
+(*
+¡d
+::
+Ãxt
+(
+fœ¡
+.
+begš
+(), 
+Ëngth
+)è!ð»ad_æash_¡ršg(*¡d::Ãxt(
+commªd_™
+->
+£cÚd
+->
+Çme_
+.begin(),†ength))) {
+
+155 
+	g®l_m©ch
+ = 
+çl£
+;
+
+160 ià(
+	g®l_m©ch
+) {
+
+161 
+	gcompÚ’t_´efix
+ = 
+Ëngth
+ + 1;
+
+165 autØ
+	gÇme_™
+ = 
+fœ¡
+.
+begš
+();
+
+166 
+size_t
+ 
+	gi
+ = 0; i < 
+	gcompÚ’t_´efix
+; i++) {
+
+167 
+	glÚge¡_Çme
+.
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(*
+Çme_™
+)));
+
+168 
+	gÇme_™
+++;
+
+172 ià(
+	gcompÚ’t_´efix
+ < 
+	gshÜ‹¡_m©ch
+) {
+
+174 autØ
+	gfœ¡
+ = *
+¡d
+::
+Ãxt
+(
+commªds
+.
+begš
+()->
+£cÚd
+->
+Çme_
+.begš(), 
+compÚ’t_´efix
+);
+
+175 
+boÞ
+ 
+	g®l_m©ch
+ = 
+Œue
+;
+
+176 
+size_t
+ 
+	gch¬s_´efix
+ = 0;
+
+178 
+size_t
+ 
+	gËngth
+ = 0; 
+	g®l_m©ch
+;†ength++) {
+
+179 autØ
+	gcommªd_™
+ = 
+¡d
+::
+Ãxt
+(
+commªds
+.
+begš
+()); commªd_™ !ðcommªds.
+’d
+(); command_it++) {
+
+182 ià(
+pgm_»ad_by‹
+(
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+fœ¡
+è+ 
+Ëngth
+)
+
+183 !ð
+pgm_»ad_by‹
+(
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(*
+¡d
+::
+Ãxt
+(
+commªd_™
+->
+£cÚd
+->
+Çme_
+.
+begš
+(), 
+compÚ’t_´efix
+)è+ 
+Ëngth
+)) {
+
+184 
+	g®l_m©ch
+ = 
+çl£
+;
+
+189 ià(
+	g®l_m©ch
+) {
+
+190 
+	gch¬s_´efix
+ = 
+Ëngth
+ + 1;
+
+194 ià(
+	gch¬s_´efix
+ > 0) {
+
+195 
+	glÚge¡_Çme
+.
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(
+fœ¡
+).
+sub¡r
+(0, 
+ch¬s_´efix
+)));
+
+196  
+	gçl£
+;
+
+200  
+	gŒue
+;
+
+203 
+	g¡d
+::
+¡ršg
+ 
+Commªds
+::
+fšd_lÚge¡_commÚ_´efix
+(cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::¡ršg> & 
+¬gum’ts
+) {
+
+204 autØ& 
+fœ¡
+ = *
+¬gum’ts
+.
+begš
+();
+
+205 
+boÞ
+ 
+	g®l_m©ch
+ = 
+Œue
+;
+
+206 
+size_t
+ 
+	gch¬s_´efix
+ = 0;
+
+208 
+size_t
+ 
+	gËngth
+ = 0; 
+	g®l_m©ch
+;†ength++) {
+
+209 autØ
+	g¬gum’t_™
+ = 
+¡d
+::
+Ãxt
+(
+¬gum’ts
+.
+begš
+());‡rgum’t_™ !ð¬gum’ts.
+’d
+();‡rgument_it++) {
+
+212 ià(
+	gfœ¡
+[
+Ëngth
+] !ð(*
+¬gum’t_™
+)[length]) {
+
+213 
+®l_m©ch
+ = 
+çl£
+;
+
+218 ià(
+	g®l_m©ch
+) {
+
+219 
+	gch¬s_´efix
+ = 
+Ëngth
+ + 1;
+
+223  
+	g¬gum’ts
+.
+begš
+()->
+sub¡r
+(0, 
+ch¬s_´efix
+);
+
+226 
+	gCommªds
+::
+Com¶‘iÚ
+ 
+Commªds
+::
+com¶‘e_commªd
+(
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+CommªdLše
+ & 
+commªd_lše
+) {
+
+227 autØ
+	gcommªds
+ = 
+fšd_commªd
+(
+sh–l
+, 
+commªd_lše
+);
+
+228 
+Com¶‘iÚ
+ 
+	g»suÉ
+;
+
+230 autØ
+	gm©ch
+ = 
+commªds
+.
+·¹Ÿl
+.
+begš
+();
+
+231 
+size_t
+ 
+	gcouÁ
+;
+
+232 ià(
+	gm©ch
+ !ð
+commªds
+.
+·¹Ÿl
+.
+’d
+()) {
+
+233 
+couÁ
+ = 
+commªds
+.
+·¹Ÿl
+.couÁ(
+m©ch
+->
+fœ¡
+);
+
+234 } ià(!
+	gcommªds
+.
+	gexaù
+.
+em±y
+()) {
+
+236 
+	gm©ch
+ = 
+¡d
+::
+´ev
+(
+commªds
+.
+exaù
+.
+’d
+());
+
+237 
+	gcouÁ
+ = 
+commªds
+.
+exaù
+.
+couÁ
+(
+m©ch
+->
+fœ¡
+);
+
+239  
+	g»suÉ
+;
+
+242 
+	g¡d
+::
+unique_±r
+<
+Commªd
+> 
+‹mp_commªd
+;
+
+243 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+‹mp_commªd_Çme
+;
+
+244 
+	g¡d
+::
+muÉim­
+<
+size_t
+, cÚ¡ 
+	gCommªd
+ *>::
+™”©Ü
+ 
+‹mp_commªd_™
+;
+
+246 ià(
+	gcommªds
+.
+	g·¹Ÿl
+.
+size
+(è> 1 && (commªds.
+	gexaù
+.
+em±y
+(è|| 
+	gcommªd_lše
+.
+tÙ®_size
+(è> commªds.exaù.
+begš
+()->
+	g£cÚd
+->
+	gÇme_
+.size())) {
+
+248 
+boÞ
+ 
+	gwhÞe_compÚ’ts
+ = 
+fšd_lÚge¡_commÚ_´efix
+(
+commªds
+.
+·¹Ÿl
+, 
+‹mp_commªd_Çme
+);
+
+250 ià(
+	gcouÁ
+ =ð1 && 
+whÞe_compÚ’ts
+ && 
+‹mp_commªd_Çme
+.
+size
+(è=ð
+m©ch
+->
+fœ¡
+) {
+
+254 
+‹mp_commªd_Çme
+.
+þ—r
+();
+
+255 
+	g»suÉ
+.
+	g»¶aûm’t
+.
+	gŒažšg_¥aû
+ = 
+Œue
+;
+
+258 ià(!
+	g‹mp_commªd_Çme
+.
+em±y
+(è&& 
+	gcommªd_lše
+.
+tÙ®_size
+(è<ð
+‹mp_commªd_Çme
+.
+size
+()) {
+
+259 
+‹mp_commªd
+ = 
+¡d
+::
+make_unique
+<
+Commªd
+>(0, 
+	gæash_¡ršg_veùÜ
+{}, fÏsh_¡ršg_veùÜ{}, 
+	gnuÎ±r
+,‚ullptr);
+
+260 
+	gcouÁ
+ = 1;
+
+261 
+	gm©ch
+ = 
+commªds
+.
+·¹Ÿl
+.
+’d
+();
+
+262 
+	g»suÉ
+.
+	g»¶aûm’t
+.
+	gŒažšg_¥aû
+ = 
+whÞe_compÚ’ts
+;
+
+264 autØ& 
+	gÇme
+ : 
+‹mp_commªd_Çme
+) {
+
+265 
+»suÉ
+.
+»¶aûm’t
+->
+em¶aû_back
+(
+Çme
+);
+
+270 ià(
+	gcouÁ
+ =ð1 && !
+‹mp_commªd
+) {
+
+272 autØ& 
+m©chšg_commªd
+ = 
+m©ch
+->
+£cÚd
+;
+
+274 autØ& 
+	gÇme
+ : 
+m©chšg_commªd
+->
+Çme_
+) {
+
+275 
+»suÉ
+.
+»¶aûm’t
+->
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(
+Çme
+)));
+
+278 ià(
+	gcommªd_lše
+.
+tÙ®_size
+(è> 
+	g»suÉ
+.
+	g»¶aûm’t
+->
+size
+()
+
+279 && 
+	gcommªd_lše
+.
+tÙ®_size
+(è<ð
+m©chšg_commªd
+->
+Çme_
+.
+size
+(è+ m©chšg_commªd->
+maximum_¬gum’ts
+()) {
+
+281 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+¬gum’ts
+{¡d::
+Ãxt
+(
+commªd_lše
+->
+cbegš
+(), 
+»suÉ
+.
+»¶aûm’t
+->
+size
+()), commªd_lše->
+ûnd
+()};
+
+283 
+	g»suÉ
+.
+	g»¶aûm’t
+->
+š£¹
+(
+»suÉ
+.
+»¶aûm’t
+->
+’d
+(), 
+¬gum’ts
+.
+cbegš
+(),‡rgum’ts.
+ûnd
+());
+
+284 
+	g»suÉ
+.
+	g»¶aûm’t
+.
+	gŒažšg_¥aû
+ = 
+commªd_lše
+.
+Œažšg_¥aû
+;
+
+286 autØ
+	gcu¼’t_¬gs_couÁ
+ = 
+¬gum’ts
+.
+size
+();
+
+287 
+	g¡d
+::
+¡ršg
+ 
+Ï¡_¬gum’t
+;
+
+289 ià(!
+	gcommªd_lše
+.
+	gŒažšg_¥aû
+) {
+
+291 
+	gÏ¡_¬gum’t
+ = 
+¡d
+::
+move
+(
+»suÉ
+.
+»¶aûm’t
+->
+back
+());
+
+292 
+	g»suÉ
+.
+	g»¶aûm’t
+->
+pÝ_back
+();
+
+293 ià(!
+	g¬gum’ts
+.
+em±y
+()) {
+
+294 
+	g¬gum’ts
+.
+pÝ_back
+();
+
+295 
+	gcu¼’t_¬gs_couÁ
+--;
+
+299 autØ
+	gpÙ’tŸl_¬gum’ts
+ = 
+m©chšg_commªd
+->
+¬g_funùiÚ_
+ ? m©chšg_commªd->¬g_funùiÚ_(
+sh–l
+, 
+¬gum’ts
+è: 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+>{};
+
+302 ià(!
+	gcommªd_lše
+.
+	gŒažšg_¥aû
+) {
+
+303 autØ
+	g™
+ = 
+pÙ’tŸl_¬gum’ts
+.
+begš
+(); iˆ!ðpÙ’tŸl_¬gum’ts.
+’d
+();) {
+
+304 ià(
+	g™
+->
+rfšd
+(
+Ï¡_¬gum’t
+, 0è=ð
+¡d
+::
+¡ršg
+::
+Åos
+) {
+
+305 
+™
+ = 
+pÙ’tŸl_¬gum’ts
+.
+”a£
+(it);
+
+307 
+	g™
+++;
+
+314 ià(!
+	gcommªd_lše
+.
+	gŒažšg_¥aû
+) {
+
+315 ià(
+	gpÙ’tŸl_¬gum’ts
+.
+size
+() == 1) {
+
+316 ià(
+Ï¡_¬gum’t
+ =ð*
+pÙ’tŸl_¬gum’ts
+.
+begš
+()) {
+
+317 ià(
+»suÉ
+.
+»¶aûm’t
+->
+size
+(è+ 1 < 
+m©chšg_commªd
+->
+Çme_
+.size(è+ m©chšg_commªd->
+maximum_¬gum’ts
+()) {
+
+319 
+»suÉ
+.
+»¶aûm’t
+.
+Œažšg_¥aû
+ = 
+Œue
+;
+
+323 
+	gÏ¡_¬gum’t
+ = *
+pÙ’tŸl_¬gum’ts
+.
+begš
+();
+
+324 
+	gpÙ’tŸl_¬gum’ts
+.
+þ—r
+();
+
+327 
+	gcu¼’t_¬gs_couÁ
+++;
+
+328 } ià(
+	gpÙ’tŸl_¬gum’ts
+.
+size
+() > 1) {
+
+329 
+	gÏ¡_¬gum’t
+ = 
+fšd_lÚge¡_commÚ_´efix
+(
+pÙ’tŸl_¬gum’ts
+);
+
+334 ià(!
+	gcommªd_lše
+.
+	gŒažšg_¥aû
+) {
+
+335 
+	g»suÉ
+.
+	g»¶aûm’t
+->
+push_back
+(
+¡d
+::
+move
+(
+Ï¡_¬gum’t
+));
+
+338 
+CommªdLše
+ 
+	g»maššg_h–p
+;
+
+340 ià(!
+	gpÙ’tŸl_¬gum’ts
+.
+em±y
+()) {
+
+342 
+	gcu¼’t_¬gs_couÁ
+++;
+
+345 ià(
+	gcu¼’t_¬gs_couÁ
+ < 
+	gm©chšg_commªd
+->
+maximum_¬gum’ts
+()) {
+
+346 
+	g»maššg_h–p
+.
+esÿ³_š™Ÿl_·¿m‘”s
+();
+
+348 autØ
+	g™
+ = 
+¡d
+::
+Ãxt
+(
+m©chšg_commªd
+->
+¬gum’ts_
+.
+cbegš
+(), 
+cu¼’t_¬gs_couÁ
+); iˆ!ðm©chšg_commªd->¬gum’ts_.
+ûnd
+(); it++) {
+
+349 
+	g»maššg_h–p
+->
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(*
+™
+)));
+
+353 ià(
+	gpÙ’tŸl_¬gum’ts
+.
+em±y
+()) {
+
+354 ià(!
+	g»maššg_h–p
+->
+em±y
+()) {
+
+355 
+	g»suÉ
+.
+	gh–p
+.
+push_back
+(
+¡d
+::
+move
+(
+»maššg_h–p
+));
+
+358 autØ
+	gpÙ’tŸl_¬gum’t
+ : 
+pÙ’tŸl_¬gum’ts
+) {
+
+359 
+CommªdLše
+ 
+h–p
+;
+
+361 
+	gh–p
+->
+em¶aû_back
+(
+pÙ’tŸl_¬gum’t
+);
+
+363 ià(!
+	g»maššg_h–p
+->
+em±y
+()) {
+
+364 
+	gh–p
+.
+esÿ³_š™Ÿl_·¿m‘”s
+();
+
+365 
+	gh–p
+->
+š£¹
+(
+h–p
+->
+’d
+(), 
+»maššg_h–p
+->
+begš
+(),„emaining_help->end());
+
+368 
+	g»suÉ
+.
+	gh–p
+.
+push_back
+(
+¡d
+::
+move
+(
+h–p
+));
+
+371 } ià(
+	g»suÉ
+.
+	g»¶aûm’t
+->
+size
+(è< 
+	gm©chšg_commªd
+->
+	gÇme_
+.size(è+ m©chšg_commªd->
+maximum_¬gum’ts
+()) {
+
+373 
+	g»suÉ
+.
+	g»¶aûm’t
+.
+	gŒažšg_¥aû
+ = 
+Œue
+;
+
+375 } ià(
+	gcouÁ
+ > 1 || 
+	g‹mp_commªd
+) {
+
+377 autØ
+	gcommªd_™
+ = 
+commªds
+.
+·¹Ÿl
+.
+begš
+(); commªd_™ !ðcommªds.·¹Ÿl.
+’d
+(); command_it++) {
+
+378 
+CommªdLše
+ 
+	gh–p
+;
+
+380 autØ
+	glše_™
+ = 
+commªd_lše
+->
+cbegš
+();
+
+381 autØ
+	gæash_Çme_™
+ = 
+commªd_™
+->
+£cÚd
+->
+Çme_
+.
+cbegš
+();
+
+383 ià(
+	g‹mp_commªd
+) {
+
+385 
+size_t
+ 
+	gsk�
+ = 
+‹mp_commªd_Çme
+.
+size
+();
+
+386 ià(!
+	g»suÉ
+.
+	g»¶aûm’t
+.
+	gŒažšg_¥aû
+) {
+
+387 
+	gsk�
+--;
+
+390 
+	gæash_Çme_™
+ +ð
+sk�
+;
+
+391 
+	glše_™
+ !ð
+commªd_lše
+->
+ûnd
+()) {
+
+392 
+lše_™
+++;
+
+396 ; 
+	gæash_Çme_™
+ !ð
+commªd_™
+->
+£cÚd
+->
+Çme_
+.
+ûnd
+(); flash_name_it++) {
+
+397 
+	g¡d
+::
+¡ršg
+ 
+Çme
+ = 
+»ad_æash_¡ršg
+(*
+æash_Çme_™
+);
+
+400 ià(
+	glše_™
+ !ð
+commªd_lše
+->
+ûnd
+()) {
+
+401 ià(
+Çme
+ =ð*
+lše_™
+++) {
+
+404 
+	glše_™
+ = 
+commªd_lše
+->
+ûnd
+();
+
+408 
+	gh–p
+->
+em¶aû_back
+(
+Çme
+);
+
+411 
+	gh–p
+.
+esÿ³_š™Ÿl_·¿m‘”s
+();
+
+413 autØ
+	g¬gum’t
+ : 
+commªd_™
+->
+£cÚd
+->
+¬gum’ts_
+) {
+
+415 ià(
+lše_™
+ !ð
+commªd_lše
+->
+ûnd
+()) {
+
+416 
+lše_™
+++;
+
+420 
+	gh–p
+->
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(
+¬gum’t
+)));
+
+423 
+	g»suÉ
+.
+	gh–p
+.
+push_back
+(
+¡d
+::
+move
+(
+h–p
+));
+
+427 ià(
+	gcouÁ
+ > 1 && !
+	gcommªds
+.
+	gexaù
+.
+em±y
+()) {
+
+429 autØ
+	glÚge¡
+ = 
+commªds
+.
+exaù
+.
+übegš
+();
+
+431 ià(
+	gcommªds
+.
+	gexaù
+.
+couÁ
+(
+lÚge¡
+->
+fœ¡
+) == 1) {
+
+432 autØ& 
+Çme
+ : 
+lÚge¡
+->
+£cÚd
+->
+Çme_
+) {
+
+433 
+»suÉ
+.
+»¶aûm’t
+->
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(
+Çme
+)));
+
+437 
+	g»suÉ
+.
+	g»¶aûm’t
+.
+	gŒažšg_¥aû
+ = 
+Œue
+;
+
+442 ià(
+	gcommªd_lše
+.
+tÙ®_size
+(è> 
+	g»suÉ
+.
+	g»¶aûm’t
+.tÙ®_size(è||„esuÉ.»¶aûm’ˆ=ð
+commªd_lše
+) {
+
+443 
+»suÉ
+.
+»¶aûm’t
+.
+»£t
+();
+
+446  
+	g»suÉ
+;
+
+449 
+	gCommªds
+::
+M©ch
+ 
+Commªds
+::
+fšd_commªd
+(
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+CommªdLše
+ & 
+commªd_lše
+) {
+
+450 
+M©ch
+ 
+	gcommªds
+;
+
+451 autØ
+	gcÚ‹xt_commªds
+ = 
+commªds_
+.
+equ®_¿nge
+(
+sh–l
+.
+cÚ‹xt
+());
+
+453 autØ
+	g™
+ = 
+cÚ‹xt_commªds
+.
+fœ¡
+; iˆ!ðcÚ‹xt_commªds.
+£cÚd
+; it++) {
+
+454 autØ& 
+	gcommªd
+ = 
+™
+->
+£cÚd
+;
+
+455 
+boÞ
+ 
+	gm©ch
+ = 
+Œue
+;
+
+456 
+boÞ
+ 
+	gexaù
+ = 
+Œue
+;
+
+458 ià(!
+	gsh–l
+.
+has_æags
+(
+commªd
+.
+æags_
+)) {
+
+462 autØ
+	gÇme_™
+ = 
+commªd
+.
+Çme_
+.
+cbegš
+();
+
+463 autØ
+	glše_™
+ = 
+commªd_lše
+->
+cbegš
+();
+
+465 ; 
+	gÇme_™
+ !ð
+commªd
+.
+Çme_
+.
+ûnd
+(è&& 
+lše_™
+ !ð
+commªd_lše
+->ûnd();‚ame_™++, 
+	glše_™
+++) {
+
+466 
+	g¡d
+::
+¡ršg
+ 
+Çme
+ = 
+»ad_æash_¡ršg
+(*
+Çme_™
+);
+
+467 
+size_t
+ 
+	gfound
+ = 
+Çme
+.
+rfšd
+(*
+lše_™
+, 0);
+
+469 ià(
+	gfound
+ =ð
+¡d
+::
+¡ršg
+::
+Åos
+) {
+
+470 
+m©ch
+ = 
+çl£
+;
+
+472 } ià(
+	glše_™
+->
+Ëngth
+(è!ð
+Çme
+.length()) {
+
+473 autØ
+lše_check_™
+ = 
+¡d
+::
+Ãxt
+(
+lše_™
+); 
+	glše_check_™
+ !ð
+commªd_lše
+->
+ûnd
+();†ine_check_it++) {
+
+474 ià(!
+	glše_check_™
+->
+em±y
+()) {
+
+476 
+	gm©ch
+ = 
+çl£
+;
+
+480 ià(
+	gcommªd_lše
+.
+	gŒažšg_¥aû
+) {
+
+482 
+	gm©ch
+ = 
+çl£
+;
+
+490 ià(
+	gÇme_™
+ !ð
+commªd
+.
+Çme_
+.
+ûnd
+()) {
+
+491 
+exaù
+ = 
+çl£
+;
+
+494 ià(
+	gm©ch
+) {
+
+495 ià(
+	gexaù
+) {
+
+496 
+	gcommªds
+.
+	gexaù
+.
+em¶aû
+(
+commªd
+.
+Çme_
+.
+size
+(), &command);
+
+498 
+	gcommªds
+.
+	g·¹Ÿl
+.
+em¶aû
+(
+commªd
+.
+Çme_
+.
+size
+(), &command);
+
+503  
+	gcommªds
+;
+
+506 
+	gCommªds
+::
+fÜ_—ch_avažabË_commªd
+(
+Sh–l
+ & 
+sh–l
+, 
+­¶y_funùiÚ
+ 
+f
+) const {
+
+507 autØ
+	gcommªds
+ = 
+commªds_
+.
+equ®_¿nge
+(
+sh–l
+.
+cÚ‹xt
+());
+
+509 autØ
+	gcommªd_™
+ = 
+commªds
+.
+fœ¡
+; commªd_™ !ðcommªds.
+£cÚd
+; command_it++) {
+
+510 ià(
+	gsh–l
+.
+has_æags
+(
+commªd_™
+->
+£cÚd
+.
+æags_
+)) {
+
+511 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+Çme
+;
+
+512 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+¬gum’ts
+;
+
+514 
+	gÇme
+.
+»£rve
+(
+commªd_™
+->
+£cÚd
+.
+Çme_
+.
+size
+());
+
+515 autØ
+	gæash_Çme
+ : 
+commªd_™
+->
+£cÚd
+.
+Çme_
+) {
+
+516 
+Çme
+.
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(
+æash_Çme
+)));
+
+519 
+	g¬gum’ts
+.
+»£rve
+(
+commªd_™
+->
+£cÚd
+.
+¬gum’ts_
+.
+size
+());
+
+520 autØ
+	gæash_¬gum’t
+ : 
+commªd_™
+->
+£cÚd
+.
+¬gum’ts_
+) {
+
+521 
+¬gum’ts
+.
+push_back
+(
+¡d
+::
+move
+(
+»ad_æash_¡ršg
+(
+æash_¬gum’t
+)));
+
+524 
+f
+(
+Çme
+, 
+¬gum’ts
+);
+
+529 
+	gCommªds
+::
+Commªd
+::Commªd(
+æags
+,
+
+530 cÚ¡ 
+æash_¡ršg_veùÜ
+ 
+Çme
+,
+
+531 cÚ¡ 
+æash_¡ršg_veùÜ
+ 
+¬gum’ts
+,
+
+532 
+commªd_funùiÚ
+ 
+funùiÚ
+,
+
+533 
+¬gum’t_com¶‘iÚ_funùiÚ
+ 
+¬g_funùiÚ
+)
+
+534 : 
+æags_
+(
+æags
+)
+
+535 , 
+Çme_
+(
+Çme
+)
+
+536 , 
+¬gum’ts_
+(
+¬gum’ts
+)
+
+537 , 
+funùiÚ_
+(
+funùiÚ
+)
+
+538 , 
+¬g_funùiÚ_
+(
+¬g_funùiÚ
+) {
+
+541 
+	gCommªds
+::
+Commªd
+::~Command() {
+
+544 
+size_t
+ 
+Commªds
+::
+Commªd
+::
+mšimum_¬gum’ts
+() const {
+
+545  
+¡d
+::
+couÁ_if
+(
+¬gum’ts_
+.
+cbegš
+(),‡rgum’ts_.
+ûnd
+(), [](cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+¬gum’t
+è{  
+pgm_»ad_by‹
+(argument) == '<'; });
+
+	@lib/uuid-console/src/console.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+	@lib/uuid-console/src/shell.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+22 
+	~<¡d¬g.h
+>
+
+24 
+	~<®gÜ™hm
+>
+
+25 
+	~<memÜy
+>
+
+26 
+	~<£t
+>
+
+27 
+	~<¡ršg
+>
+
+28 
+	~<veùÜ
+>
+
+30 
+	~<uuid/commÚ.h
+>
+
+31 
+	~<uuid/log.h
+>
+
+33 #iâdeà
+__ýp_lib_make_unique
+
+
+34 
+Çme¥aû
+ 
+	g¡d
+ {
+
+36 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	g_Tp
+, 
+	gty³Çme
+... 
+	g_Args
+>
+
+37 
+šlše
+ 
+	gunique_±r
+<
+	g_Tp
+> 
+make_unique
+(
+_Args
+ &&... 
+__¬gs
+) {
+
+38  
+	gunique_±r
+<
+	g_Tp
+>(
+Ãw
+ 
+_Tp
+(
+¡d
+::
+fÜw¬d
+<
+_Args
+>(
+__¬gs
+)...));
+
+44 
+Çme¥aû
+ 
+	guuid
+ {
+
+46 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+49 
+	gSh–l
+::
+Sh–l
+(
+¡d
+::
+sh¬ed_±r
+<
+Commªds
+> 
+commªds
+, 
+cÚ‹xt
+, 
+æags
+)
+
+50 : 
+commªds_
+(
+¡d
+::
+move
+(
+commªds
+))
+
+51 , 
+æags_
+(
+æags
+) {
+
+52 
+’‹r_cÚ‹xt
+(
+cÚ‹xt
+);
+
+55 
+	gSh–l
+::~
+Sh–l
+() {
+
+56 
+uuid
+::
+log
+::
+Logg”
+::
+uÄegi¡”_hªdËr
+(
+this
+);
+
+59 
+	gSh–l
+::
+¡¬t
+() {
+
+60 #ifdeà
+EMSESP_DEBUG
+
+
+61 
+uuid
+::
+log
+::
+Logg”
+::
+»gi¡”_hªdËr
+(
+this
+, uuid::log::
+Lev–
+::
+DEBUG
+);
+
+64 
+	guuid
+::
+log
+::
+Logg”
+::
+»gi¡”_hªdËr
+(
+this
+, 
+uuid
+::log::
+Lev–
+::
+NOTICE
+);
+
+67 
+	glše_bufãr_
+.
+»£rve
+(
+maximum_commªd_lše_Ëngth_
+);
+
+68 
+di¥Ïy_bªÃr
+();
+
+69 
+di¥Ïy_´om±
+();
+
+70 
+	gsh–ls_
+.
+š£¹
+(
+sh¬ed_äom_this
+());
+
+71 
+	gidË_time_
+ = 
+uuid
+::
+g‘_u±ime_ms
+();
+
+72 
+¡¬‹d
+();
+
+75 
+	gSh–l
+::
+¡¬‹d
+() {
+
+78 
+boÞ
+ 
+Sh–l
+::
+ruÂšg
+() const {
+
+79  !
+¡Ý³d_
+;
+
+82 
+	gSh–l
+::
+¡Ý
+() {
+
+83 ià(
+mode_
+ =ð
+Mode
+::
+BLOCKING
+) {
+
+84 autØ* 
+blockšg_d©a
+ = 
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+BlockšgD©a
+ *>(
+mode_d©a_
+.
+g‘
+());
+
+86 
+	gblockšg_d©a
+->
+	g¡Ý_
+ = 
+Œue
+;
+
+88 ià(
+ruÂšg
+()) {
+
+89 
+	g¡Ý³d_
+ = 
+Œue
+;
+
+90 
+¡Ý³d
+();
+
+95 
+	gSh–l
+::
+¡Ý³d
+() {
+
+98 
+boÞ
+ 
+Sh–l
+::
+ex™_cÚ‹xt
+() {
+
+99 ià(
+cÚ‹xt_
+.
+size
+() > 1) {
+
+100 
+cÚ‹xt_
+.
+pÝ_back
+();
+
+101  
+	gŒue
+;
+
+103  
+	gçl£
+;
+
+107 
+	gSh–l
+::
+loÝ_Úe
+() {
+
+108 ià(!
+ruÂšg
+()) {
+
+112 
+	gmode_
+) {
+
+113 
+	gMode
+::
+NORMAL
+:
+
+114 
+ou�ut_logs
+();
+
+115 
+loÝ_nÜm®
+();
+
+118 
+	gMode
+::
+PASSWORD
+:
+
+119 
+ou�ut_logs
+();
+
+120 
+loÝ_·sswÜd
+();
+
+123 
+	gMode
+::
+DELAY
+:
+
+124 
+ou�ut_logs
+();
+
+125 
+loÝ_d–ay
+();
+
+128 
+	gMode
+::
+BLOCKING
+:
+
+129 
+loÝ_blockšg
+();
+
+134 
+	gSh–l
+::
+loÝ_nÜm®
+() {
+
+135 cÚ¡ 
+šput
+ = 
+»ad_Úe_ch¬
+();
+
+137 ià(
+	gšput
+ < 0) {
+
+138 
+check_idË_timeout
+();
+
+142 cÚ¡ 
+	gc
+ = 
+šput
+;
+
+144 
+	gc
+) {
+
+147 
+lše_bufãr_
+.
+þ—r
+();
+
+148 
+´šŽn
+();
+
+149 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+150 
+di¥Ïy_´om±
+();
+
+155 ià(
+lše_bufãr_
+.
+em±y
+()) {
+
+156 
+’d_of_ŒªsmissiÚ
+();
+
+164 ià(!
+lše_bufãr_
+.
+em±y
+()) {
+
+165 
+”a£_ch¬aù”s
+(1);
+
+166 
+	glše_bufãr_
+.
+pÝ_back
+();
+
+172 
+´oûss_com¶‘iÚ
+();
+
+177 ià(
+´evious_
+ != '\x0D') {
+
+178 
+´oûss_commªd
+();
+
+184 
+”a£_cu¼’t_lše
+();
+
+185 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+186 
+di¥Ïy_´om±
+();
+
+191 
+´oûss_commªd
+();
+
+196 
+”a£_cu¼’t_lše
+();
+
+197 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+198 
+	glše_bufãr_
+.
+þ—r
+();
+
+199 
+di¥Ïy_´om±
+();
+
+204 
+d–‘e_bufãr_wÜd
+(
+Œue
+);
+
+208 ià(
+c
+ >= '\x20' && c <= '\x7E') {
+
+210 ià(
+lše_bufãr_
+.
+Ëngth
+(è< 
+maximum_commªd_lše_Ëngth_
+) {
+
+211 
+lše_bufãr_
+.
+push_back
+(
+c
+);
+
+212 
+wr™e
+((
+ušt8_t
+)
+c
+);
+
+218 
+	g´evious_
+ = 
+c
+;
+
+222 
+avažabË_ch¬
+();
+
+224 
+	gidË_time_
+ = 
+uuid
+::
+g‘_u±ime_ms
+();
+
+227 
+	gSh–l
+::
+PasswÜdD©a
+::PasswÜdD©a(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+·sswÜd_´om±
+, 
+·sswÜd_funùiÚ
+ &&…assword_function)
+
+228 : 
+·sswÜd_´om±_
+(
+·sswÜd_´om±
+)
+
+229 , 
+·sswÜd_funùiÚ_
+(
+¡d
+::
+move
+(
+·sswÜd_funùiÚ
+)) {
+
+232 
+Sh–l
+::
+loÝ_·sswÜd
+() {
+
+233 cÚ¡ 
+šput
+ = 
+»ad_Úe_ch¬
+();
+
+235 ià(
+	gšput
+ < 0) {
+
+236 
+check_idË_timeout
+();
+
+240 cÚ¡ 
+	gc
+ = 
+šput
+;
+
+242 
+	gc
+) {
+
+245 
+´oûss_·sswÜd
+(
+çl£
+);
+
+252 ià(!
+lše_bufãr_
+.
+em±y
+()) {
+
+253 
+lše_bufãr_
+.
+pÝ_back
+();
+
+259 ià(
+´evious_
+ != '\x0D') {
+
+260 
+´oûss_·sswÜd
+(
+Œue
+);
+
+266 
+”a£_cu¼’t_lše
+();
+
+267 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+268 
+di¥Ïy_´om±
+();
+
+273 
+´oûss_·sswÜd
+(
+Œue
+);
+
+278 
+lše_bufãr_
+.
+þ—r
+();
+
+283 
+d–‘e_bufãr_wÜd
+(
+çl£
+);
+
+287 ià(
+c
+ >= '\x20' && c <= '\x7E') {
+
+289 ià(
+lše_bufãr_
+.
+Ëngth
+(è< 
+maximum_commªd_lše_Ëngth_
+) {
+
+290 
+lše_bufãr_
+.
+push_back
+(
+c
+);
+
+296 
+	g´evious_
+ = 
+c
+;
+
+300 
+avažabË_ch¬
+();
+
+302 
+	gidË_time_
+ = 
+uuid
+::
+g‘_u±ime_ms
+();
+
+305 
+	gSh–l
+::
+D–ayD©a
+::D–ayD©a(
+ušt64_t
+ 
+d–ay_time
+, 
+d–ay_funùiÚ
+ && delay_function)
+
+306 : 
+d–ay_time_
+(
+d–ay_time
+)
+
+307 , 
+d–ay_funùiÚ_
+(
+¡d
+::
+move
+(
+d–ay_funùiÚ
+)) {
+
+310 
+Sh–l
+::
+loÝ_d–ay
+() {
+
+311 autØ* 
+d–ay_d©a
+ = 
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+D–ayD©a
+ *>(
+mode_d©a_
+.
+g‘
+());
+
+313 ià(
+	guuid
+::
+g‘_u±ime_ms
+(è>ð
+d–ay_d©a
+->
+d–ay_time_
+) {
+
+314 autØ
+funùiÚ_cÝy
+ = 
+d–ay_d©a
+->
+d–ay_funùiÚ_
+;
+
+316 
+	gmode_
+ = 
+Mode
+::
+NORMAL
+;
+
+317 
+	gmode_d©a_
+.
+»£t
+();
+
+319 
+funùiÚ_cÝy
+(*
+this
+);
+
+321 ià(
+ruÂšg
+()) {
+
+322 
+di¥Ïy_´om±
+();
+
+325 
+	gidË_time_
+ = 
+uuid
+::
+g‘_u±ime_ms
+();
+
+329 
+	gSh–l
+::
+BlockšgD©a
+::BlockšgD©a(
+blockšg_funùiÚ
+ && blocking_function)
+
+330 : 
+blockšg_funùiÚ_
+(
+¡d
+::
+move
+(
+blockšg_funùiÚ
+)) {
+
+333 
+Sh–l
+::
+loÝ_blockšg
+() {
+
+334 autØ* 
+blockšg_d©a
+ = 
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+BlockšgD©a
+ *>(
+mode_d©a_
+.
+g‘
+());
+
+341 ià(
+	gblockšg_d©a
+->
+blockšg_funùiÚ_
+(*
+this
+, 
+blockšg_d©a
+->
+¡Ý_
+)) {
+
+342 
+boÞ
+ 
+	g¡Ý_³ndšg
+ = 
+blockšg_d©a
+->
+¡Ý_
+;
+
+344 
+	gmode_
+ = 
+Mode
+::
+NORMAL
+;
+
+345 
+	gmode_d©a_
+.
+»£t
+();
+
+347 ià(
+	g¡Ý_³ndšg
+) {
+
+348 
+¡Ý
+();
+
+351 ià(
+ruÂšg
+()) {
+
+352 
+di¥Ïy_´om±
+();
+
+355 
+	gidË_time_
+ = 
+uuid
+::
+g‘_u±ime_ms
+();
+
+359 
+	gSh–l
+::
+’‹r_·sswÜd
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+´om±
+, 
+·sswÜd_funùiÚ
+ 
+funùiÚ
+) {
+
+360 ià(
+	gmode_
+ =ð
+Mode
+::
+NORMAL
+) {
+
+361 
+mode_
+ = 
+Mode
+::
+PASSWORD
+;
+
+362 
+	gmode_d©a_
+ = 
+¡d
+::
+make_unique
+<
+Sh–l
+::
+PasswÜdD©a
+>(
+´om±
+, 
+	g¡d
+::
+move
+(
+funùiÚ
+));
+
+366 
+	gSh–l
+::
+d–ay_fÜ
+(
+ms
+, 
+d–ay_funùiÚ
+ 
+funùiÚ
+) {
+
+367 
+d–ay_uÁž
+(
+uuid
+::
+g‘_u±ime_ms
+(è+ 
+ms
+, 
+¡d
+::
+move
+(
+funùiÚ
+));
+
+370 
+	gSh–l
+::
+d–ay_uÁž
+(
+ušt64_t
+ 
+ms
+, 
+d–ay_funùiÚ
+ 
+funùiÚ
+) {
+
+371 ià(
+	gmode_
+ =ð
+Mode
+::
+NORMAL
+) {
+
+372 
+mode_
+ = 
+Mode
+::
+DELAY
+;
+
+373 
+	gmode_d©a_
+ = 
+¡d
+::
+make_unique
+<
+Sh–l
+::
+D–ayD©a
+>(
+ms
+, 
+	g¡d
+::
+move
+(
+funùiÚ
+));
+
+377 
+	gSh–l
+::
+block_w™h
+(
+blockšg_funùiÚ
+ 
+funùiÚ
+) {
+
+378 ià(
+mode_
+ =ð
+Mode
+::
+NORMAL
+) {
+
+379 
+mode_
+ = 
+Mode
+::
+BLOCKING
+;
+
+380 
+	gmode_d©a_
+ = 
+¡d
+::
+make_unique
+<
+Sh–l
+::
+BlockšgD©a
+>(¡d::
+move
+(
+funùiÚ
+));
+
+384 
+	gSh–l
+::
+d–‘e_bufãr_wÜd
+(
+boÞ
+ 
+di¥Ïy
+) {
+
+385 
+size_t
+ 
+pos
+ = 
+lše_bufãr_
+.
+fšd_Ï¡_of
+(' ');
+
+387 ià(
+	gpos
+ =ð
+¡d
+::
+¡ršg
+::
+Åos
+) {
+
+388 
+lše_bufãr_
+.
+þ—r
+();
+
+389 ià(
+	gdi¥Ïy
+) {
+
+390 
+”a£_cu¼’t_lše
+();
+
+391 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+392 
+di¥Ïy_´om±
+();
+
+395 ià(
+	gdi¥Ïy
+) {
+
+396 
+”a£_ch¬aù”s
+(
+lše_bufãr_
+.
+Ëngth
+(è- 
+pos
+);
+
+398 
+	glše_bufãr_
+.
+»size
+(
+pos
+);
+
+402 
+size_t
+ 
+	gSh–l
+::
+maximum_commªd_lše_Ëngth
+() const {
+
+403  
+maximum_commªd_lše_Ëngth_
+;
+
+406 
+	gSh–l
+::
+maximum_commªd_lše_Ëngth
+(
+size_t
+ 
+Ëngth
+) {
+
+407 
+maximum_commªd_lše_Ëngth_
+ = 
+¡d
+::
+max
+((
+size_t
+)1, 
+Ëngth
+);
+
+408 
+	glše_bufãr_
+.
+»£rve
+(
+maximum_commªd_lše_Ëngth_
+);
+
+411 
+	gSh–l
+::
+´oûss_commªd
+() {
+
+412 
+CommªdLše
+ 
+commªd_lše
+{
+lše_bufãr_
+};
+
+414 
+	glše_bufãr_
+.
+þ—r
+();
+
+415 
+´šŽn
+();
+
+416 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+418 ià(!
+	gcommªd_lše
+->
+em±y
+()) {
+
+419 ià(
+	gcommªds_
+) {
+
+420 autØ
+	gexecutiÚ
+ = 
+commªds_
+->
+execu‹_commªd
+(*
+this
+, 
+¡d
+::
+move
+(
+commªd_lše
+));
+
+422 ià(
+	gexecutiÚ
+.
+	g”rÜ
+ !ð
+nuÎ±r
+) {
+
+423 
+´šŽn
+(
+executiÚ
+.
+”rÜ
+);
+
+426 
+´šŽn
+(
+F
+("No commands configured"));
+
+430 ià(
+ruÂšg
+()) {
+
+431 
+di¥Ïy_´om±
+();
+
+433 ::
+y›ld
+();
+
+436 
+	gSh–l
+::
+´oûss_com¶‘iÚ
+() {
+
+437 
+CommªdLše
+ 
+commªd_lše
+{
+lše_bufãr_
+};
+
+439 ià(!
+	gcommªd_lše
+->
+em±y
+(è&& 
+	gcommªds_
+) {
+
+440 autØ
+	gcom¶‘iÚ
+ = 
+commªds_
+->
+com¶‘e_commªd
+(*
+this
+, 
+commªd_lše
+);
+
+441 
+boÞ
+ 
+	g»di¥Ïy
+ = 
+çl£
+;
+
+443 ià(!
+	gcom¶‘iÚ
+.
+	gh–p
+.
+em±y
+()) {
+
+444 
+´šŽn
+();
+
+445 
+	g»di¥Ïy
+ = 
+Œue
+;
+
+447 autØ& 
+	gh–p
+ : 
+com¶‘iÚ
+.
+h–p
+) {
+
+448 
+¡d
+::
+¡ršg
+ 
+h–p_lše
+ = 
+h–p
+.
+to_¡ršg
+(
+maximum_commªd_lše_Ëngth_
+);
+
+450 
+´šŽn
+(
+h–p_lše
+);
+
+454 ià(!
+	gcom¶‘iÚ
+.
+	g»¶aûm’t
+->
+em±y
+()) {
+
+455 ià(!
+	g»di¥Ïy
+) {
+
+456 
+”a£_cu¼’t_lše
+();
+
+457 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+458 
+	g»di¥Ïy
+ = 
+Œue
+;
+
+461 
+	glše_bufãr_
+ = 
+com¶‘iÚ
+.
+»¶aûm’t
+.
+to_¡ršg
+(
+maximum_commªd_lše_Ëngth_
+);
+
+464 ià(
+	g»di¥Ïy
+) {
+
+465 
+di¥Ïy_´om±
+();
+
+469 ::
+y›ld
+();
+
+472 
+	gSh–l
+::
+´oûss_·sswÜd
+(
+boÞ
+ 
+com¶‘ed
+) {
+
+473 
+´šŽn
+();
+
+475 autØ* 
+	g·sswÜd_d©a
+ = 
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+PasswÜdD©a
+ *>(
+mode_d©a_
+.
+g‘
+());
+
+476 autØ
+	gfunùiÚ_cÝy
+ = 
+·sswÜd_d©a
+->
+·sswÜd_funùiÚ_
+;
+
+478 
+	gmode_
+ = 
+Mode
+::
+NORMAL
+;
+
+479 
+	gmode_d©a_
+.
+»£t
+();
+
+481 
+funùiÚ_cÝy
+(*
+this
+, 
+com¶‘ed
+, 
+lše_bufãr_
+);
+
+482 
+	glše_bufãr_
+.
+þ—r
+();
+
+484 ià(
+ruÂšg
+()) {
+
+485 
+di¥Ïy_´om±
+();
+
+489 
+	gSh–l
+::
+švoke_commªd
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+lše
+) {
+
+490 ià(!
+lše_bufãr_
+.
+em±y
+()) {
+
+491 
+´šŽn
+();
+
+492 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+494 ià(!
+	g´om±_di¥Ïyed_
+) {
+
+495 
+di¥Ïy_´om±
+();
+
+497 
+	glše_bufãr_
+ = 
+lše
+;
+
+498 
+´št
+(
+lše_bufãr_
+);
+
+499 
+´oûss_commªd
+();
+
+502 
+	gSh–l
+::
+idË_timeout
+() const {
+
+503  
+idË_timeout_
+ / 1000;
+
+506 
+	gSh–l
+::
+idË_timeout
+(
+timeout
+) {
+
+507 
+idË_timeout_
+ = (
+ušt64_t
+)
+timeout
+ * 1000;
+
+510 
+	gSh–l
+::
+check_idË_timeout
+() {
+
+511 ià(
+idË_timeout_
+ > 0 && 
+uuid
+::
+g‘_u±ime_ms
+(è- 
+idË_time_
+ >= idle_timeout_) {
+
+512 
+´šŽn
+();
+
+513 
+¡Ý
+();
+
+	@lib/uuid-console/src/shell_log.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<®gÜ™hm
+>
+
+24 
+	~<memÜy
+>
+
+25 
+	~<¡ršg
+>
+
+27 
+	~<uuid/log.h
+>
+
+29 
+Çme¥aû
+ 
+	guuid
+ {
+
+31 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+33 cÚ¡ 
+	g__p¡r__logg”_Çme
+[] 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "shell";
+
+34 cÚ¡ 
+	guuid
+::
+log
+::
+Logg”
+ 
+Sh–l
+::
+logg”_
+{
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+__p¡r__logg”_Çme
+), uuid::log::
+Facž™y
+::
+LPR
+};
+
+36 
+	gSh–l
+::
+QueuedLogMes§ge
+::QueuedLogMes§ge(
+id
+, 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> && 
+cÚ‹Á
+)
+
+37 : 
+id_
+(
+id
+)
+
+38 , 
+cÚ‹Á_
+(
+¡d
+::
+move
+(
+cÚ‹Á
+)) {
+
+41 
+Sh–l
+::
+Ý”©Ü
+<<(
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> 
+mes§ge
+) {
+
+42 ià(
+log_mes§ges_
+.
+size
+(è>ð
+maximum_log_mes§ges_
+) {
+
+43 
+log_mes§ges_
+.
+pÝ_äÚt
+();
+
+46 
+	glog_mes§ges_
+.
+em¶aû_back
+(
+log_mes§ge_id_
+++, 
+¡d
+::
+move
+(
+mes§ge
+));
+
+49 
+	guuid
+::
+log
+::
+Lev–
+ 
+Sh–l
+::
+log_Ëv–
+() const {
+
+50  
+uuid
+::
+log
+::
+Logg”
+::
+g‘_log_Ëv–
+(
+this
+);
+
+53 
+	gSh–l
+::
+log_Ëv–
+(
+uuid
+::
+log
+::
+Lev–
+ 
+Ëv–
+) {
+
+54 
+uuid
+::
+log
+::
+Logg”
+::
+»gi¡”_hªdËr
+(
+this
+, 
+Ëv–
+);
+
+57 
+size_t
+ 
+	gSh–l
+::
+maximum_log_mes§ges
+() const {
+
+58  
+maximum_log_mes§ges_
+;
+
+61 
+	gSh–l
+::
+maximum_log_mes§ges
+(
+size_t
+ 
+couÁ
+) {
+
+62 
+maximum_log_mes§ges_
+ = 
+¡d
+::
+max
+((
+size_t
+)1, 
+couÁ
+);
+
+63 
+	glog_mes§ges_
+.
+size
+(è> 
+	gmaximum_log_mes§ges_
+) {
+
+64 
+	glog_mes§ges_
+.
+pÝ_äÚt
+();
+
+68 
+	gSh–l
+::
+ou�ut_logs
+() {
+
+69 ià(!
+log_mes§ges_
+.
+em±y
+()) {
+
+70 ià(
+mode_
+ !ð
+Mode
+::
+DELAY
+) {
+
+71 
+”a£_cu¼’t_lše
+();
+
+72 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+75 !
+	glog_mes§ges_
+.
+em±y
+()) {
+
+76 autØ
+	gmes§ge
+ = 
+¡d
+::
+move
+(
+log_mes§ges_
+.
+äÚt
+());
+
+77 
+	glog_mes§ges_
+.
+pÝ_äÚt
+();
+
+79 
+´št
+(
+uuid
+::
+log
+::
+fÜm©_time¡amp_ms
+(
+mes§ge
+.
+cÚ‹Á_
+->
+u±ime_ms
+, 3));
+
+80 
+´štf
+(
+F
+(" %ø%lu: [%S] "), 
+uuid
+::
+log
+::
+fÜm©_Ëv–_ch¬
+(
+mes§ge
+.
+cÚ‹Á_
+->
+Ëv–
+), mes§ge.
+id_
+, mes§ge.cÚ‹Á_->
+Çme
+);
+
+82 ià((
+	gmes§ge
+.
+	gcÚ‹Á_
+->
+	gËv–
+ =ð
+uuid
+::
+log
+::
+Lev–
+::
+ERR
+è|| (
+mes§ge
+.
+cÚ‹Á_
+->
+Ëv–
+ =ðuuid::log::Lev–::
+WARNING
+)) {
+
+83 
+´št
+(
+COLOR_RED
+);
+
+84 
+´šŽn
+(
+mes§ge
+.
+cÚ‹Á_
+->
+‹xt
+);
+
+85 
+´št
+(
+COLOR_RESET
+);
+
+86 } ià(
+	gmes§ge
+.
+	gcÚ‹Á_
+->
+	gËv–
+ =ð
+uuid
+::
+log
+::
+Lev–
+::
+INFO
+) {
+
+87 
+´št
+(
+COLOR_YELLOW
+);
+
+88 
+´šŽn
+(
+mes§ge
+.
+cÚ‹Á_
+->
+‹xt
+);
+
+89 
+´št
+(
+COLOR_RESET
+);
+
+90 } ià(
+	gmes§ge
+.
+	gcÚ‹Á_
+->
+	gËv–
+ =ð
+uuid
+::
+log
+::
+Lev–
+::
+DEBUG
+) {
+
+91 
+´št
+(
+COLOR_CYAN
+);
+
+92 
+´šŽn
+(
+mes§ge
+.
+cÚ‹Á_
+->
+‹xt
+);
+
+93 
+´št
+(
+COLOR_RESET
+);
+
+95 
+´šŽn
+(
+mes§ge
+.
+cÚ‹Á_
+->
+‹xt
+);
+
+98 ::
+y›ld
+();
+
+101 
+di¥Ïy_´om±
+();
+
+	@lib/uuid-console/src/shell_loop_all.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<memÜy
+>
+
+22 
+	~<£t
+>
+
+24 
+Çme¥aû
+ 
+	guuid
+ {
+
+26 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+28 
+	g¡d
+::
+£t
+<
+¡d
+::
+sh¬ed_±r
+<
+Sh–l
+>> Sh–l::
+sh–ls_
+;
+
+30 
+	gSh–l
+::
+loÝ_®l
+() {
+
+31 autØ
+sh–l
+ = 
+sh–ls_
+.
+begš
+(); 
+	gsh–l
+ !ðsh–ls_.
+’d
+();) {
+
+32 
+	gsh–l
+->
+g‘
+()->
+loÝ_Úe
+();
+
+35 ià(!
+	gsh–l
+->
+g‘
+()->
+ruÂšg
+()) {
+
+36 
+	gsh–l
+ = 
+sh–ls_
+.
+”a£
+(
+sh–l
+);
+
+38 
+	gsh–l
+++;
+
+	@lib/uuid-console/src/shell_print.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+22 
+	~<¡d¬g.h
+>
+
+24 
+	~<¡ršg
+>
+
+26 
+Çme¥aû
+ 
+	guuid
+ {
+
+28 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+30 
+size_t
+ 
+	gSh–l
+::
+´št
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+d©a
+) {
+
+31 ià(
+d©a
+.
+em±y
+()) {
+
+34  
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+d©a
+.
+c_¡r
+()), d©a.
+Ëngth
+());
+
+38 
+size_t
+ 
+	gSh–l
+::
+´šŽn
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+d©a
+) {
+
+39 
+size_t
+ 
+Ën
+ = 
+´št
+(
+d©a
+);
+
+40 
+	gËn
+ +ð
+´šŽn
+();
+
+41  
+	gËn
+;
+
+44 
+size_t
+ 
+	gSh–l
+::
+´štf
+(cÚ¡ * 
+fÜm©
+, ...) {
+
+45 
+va_li¡
+ 
+	g­
+;
+
+47 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+48 
+size_t
+ 
+	gËn
+ = 
+v´štf
+(
+fÜm©
+, 
+­
+);
+
+49 
+va_’d
+(
+­
+);
+
+51  
+	gËn
+;
+
+54 
+size_t
+ 
+	gSh–l
+::
+´štf
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) {
+
+55 
+va_li¡
+ 
+	g­
+;
+
+57 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+58 
+size_t
+ 
+	gËn
+ = 
+v´štf
+(
+fÜm©
+, 
+­
+);
+
+59 
+va_’d
+(
+­
+);
+
+61  
+	gËn
+;
+
+64 
+size_t
+ 
+	gSh–l
+::
+´štæn
+(cÚ¡ * 
+fÜm©
+, ...) {
+
+65 
+va_li¡
+ 
+	g­
+;
+
+67 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+68 
+size_t
+ 
+	gËn
+ = 
+v´štf
+(
+fÜm©
+, 
+­
+);
+
+69 
+va_’d
+(
+­
+);
+
+71 
+	gËn
+ +ð
+´šŽn
+();
+
+72  
+	gËn
+;
+
+75 
+size_t
+ 
+	gSh–l
+::
+´štæn
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) {
+
+76 
+va_li¡
+ 
+	g­
+;
+
+78 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+79 
+size_t
+ 
+	gËn
+ = 
+v´štf
+(
+fÜm©
+, 
+­
+);
+
+80 
+va_’d
+(
+­
+);
+
+82 
+	gËn
+ +ð
+´šŽn
+();
+
+83  
+	gËn
+;
+
+86 
+size_t
+ 
+	gSh–l
+::
+v´štf
+(cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) {
+
+87 
+size_t
+ 
+	g´št_Ën
+ = 0;
+
+88 
+va_li¡
+ 
+	gcÝy_­
+;
+
+90 
+va_cÝy
+(
+cÝy_­
+, 
+­
+);
+
+92 
+	gfÜm©_Ën
+ = ::
+v¢´štf
+(
+nuÎ±r
+, 0, 
+fÜm©
+, 
+­
+);
+
+93 ià(
+	gfÜm©_Ën
+ > 0) {
+
+94 
+	g¡d
+::
+¡ršg
+ 
+‹xt
+(
+¡©ic_ÿ¡
+<
+¡d
+::¡ršg::
+size_ty³
+>(
+fÜm©_Ën
+), '\0');
+
+96 ::
+v¢´štf
+(&
+‹xt
+[0],�ext.
+ÿ·c™y
+(è+ 1, 
+fÜm©
+, 
+cÝy_­
+);
+
+97 
+	g´št_Ën
+ = 
+´št
+(
+‹xt
+);
+
+100 
+va_’d
+(
+cÝy_­
+);
+
+101  
+	g´št_Ën
+;
+
+104 
+size_t
+ 
+	gSh–l
+::
+v´štf
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) {
+
+105 
+size_t
+ 
+	g´št_Ën
+ = 0;
+
+106 
+va_li¡
+ 
+	gcÝy_­
+;
+
+108 
+va_cÝy
+(
+cÝy_­
+, 
+­
+);
+
+110 
+	gfÜm©_Ën
+ = ::
+v¢´štf_P
+(
+nuÎ±r
+, 0, 
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+fÜm©
+), 
+­
+);
+
+111 ià(
+	gfÜm©_Ën
+ > 0) {
+
+112 
+	g¡d
+::
+¡ršg
+ 
+‹xt
+(
+¡©ic_ÿ¡
+<
+¡d
+::¡ršg::
+size_ty³
+>(
+fÜm©_Ën
+), '\0');
+
+114 ::
+v¢´štf_P
+(&
+‹xt
+[0],�ext.
+ÿ·c™y
+(è+ 1, 
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+fÜm©
+), 
+cÝy_­
+);
+
+115 
+	g´št_Ën
+ = 
+´št
+(
+‹xt
+);
+
+118 
+va_’d
+(
+cÝy_­
+);
+
+119  
+	g´št_Ën
+;
+
+123 
+	gSh–l
+::
+´št_®l_avažabË_commªds
+() {
+
+136 
+¡d
+::
+li¡
+<¡d::
+¡ršg
+> 
+sÜ‹d_cmds
+;
+
+138 
+	gcommªds_
+->
+fÜ_—ch_avažabË_commªd
+(*
+this
+, [&](
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+Çme
+, std::veùÜ<¡d::¡ršg> & 
+¬gum’ts
+) {
+
+139 
+CommªdLše
+ 
+commªd_lše
+{
+Çme
+, 
+¬gum’ts
+};
+
+140 
+commªd_lše
+.
+esÿ³_š™Ÿl_·¿m‘”s
+(
+Çme
+.
+size
+());
+
+141 
+Çme
+.
+þ—r
+();
+
+142 
+¬gum’ts
+.
+þ—r
+();
+
+143 
+sÜ‹d_cmds
+.
+push_back
+(
+commªd_lše
+.
+to_¡ršg
+(
+maximum_commªd_lše_Ëngth
+()));
+
+146 
+	gsÜ‹d_cmds
+.
+sÜt
+();
+
+147 autØ& 
+	gþ
+ : 
+sÜ‹d_cmds
+) {
+
+149 
+´šŽn
+(
+þ
+);
+
+153 
+	gSh–l
+::
+”a£_cu¼’t_lše
+() {
+
+154 
+´št
+(
+F
+("\033[0G\033[K"));
+
+157 
+	gSh–l
+::
+”a£_ch¬aù”s
+(
+size_t
+ 
+couÁ
+) {
+
+158 
+´št
+(
+¡d
+::
+¡ršg
+(
+couÁ
+, '\x08'));
+
+159 
+´št
+(
+F
+("\033[K"));
+
+	@lib/uuid-console/src/shell_prompt.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<¡ršg
+>
+
+23 
+Çme¥aû
+ 
+	guuid
+ {
+
+25 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+27 
+	gSh–l
+::
+di¥Ïy_bªÃr
+() {
+
+30 
+¡d
+::
+¡ršg
+ 
+Sh–l
+::
+ho¡Çme_‹xt
+() {
+
+31  
+¡d
+::
+¡ršg
+{};
+
+34 
+	g¡d
+::
+¡ršg
+ 
+Sh–l
+::
+cÚ‹xt_‹xt
+() {
+
+35  
+¡d
+::
+¡ršg
+{};
+
+38 
+	g¡d
+::
+¡ršg
+ 
+Sh–l
+::
+´om±_´efix
+() {
+
+39  
+¡d
+::
+¡ršg
+{};
+
+42 
+	g¡d
+::
+¡ršg
+ 
+Sh–l
+::
+´om±_suffix
+() {
+
+43  
+¡d
+::
+¡ršg
+{'$'};
+
+46 
+	gSh–l
+::
+’d_of_ŒªsmissiÚ
+() {
+
+47 ià(
+idË_timeout_
+ > 0) {
+
+48 
+´šŽn
+();
+
+49 
+¡Ý
+();
+
+53 
+	gSh–l
+::
+di¥Ïy_´om±
+() {
+
+54 
+mode_
+) {
+
+55 
+Mode
+::
+DELAY
+:
+
+56 
+Mode
+::
+BLOCKING
+:
+
+59 
+	gMode
+::
+PASSWORD
+:
+
+60 
+´št
+(
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+PasswÜdD©a
+ *>(
+mode_d©a_
+.
+g‘
+())->
+·sswÜd_´om±_
+);
+
+63 
+	gMode
+::
+NORMAL
+:
+
+64 
+¡d
+::
+¡ršg
+ 
+ho¡Çme
+ = 
+ho¡Çme_‹xt
+();
+
+65 
+	g¡d
+::
+¡ršg
+ 
+cÚ‹xt
+ = 
+cÚ‹xt_‹xt
+();
+
+67 
+´št
+(
+´om±_´efix
+());
+
+69 ià(!
+	gho¡Çme
+.
+em±y
+()) {
+
+70 
+´št
+(
+COLOR_BRIGHT_GREEN
+);
+
+71 
+´št
+(
+COLOR_BOLD_ON
+);
+
+72 
+´št
+(
+ho¡Çme
+);
+
+73 
+´št
+(
+COLOR_RESET
+);
+
+74 
+´št
+(':');
+
+76 ià(!
+	gcÚ‹xt
+.
+em±y
+()) {
+
+77 
+´št
+(
+COLOR_BRIGHT_BLUE
+);
+
+78 
+´št
+(
+COLOR_BOLD_ON
+);
+
+79 
+´št
+(
+cÚ‹xt
+);
+
+80 
+´št
+(
+COLOR_RESET
+);
+
+83 
+´št
+(
+´om±_suffix
+());
+
+84 
+´št
+(' ');
+
+85 
+´št
+(
+lše_bufãr_
+);
+
+86 
+	g´om±_di¥Ïyed_
+ = 
+Œue
+;
+
+	@lib/uuid-console/src/shell_stream.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+Çme¥aû
+ 
+	guuid
+ {
+
+25 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+27 
+	gSh–l
+::
+avažabË
+() {
+
+28 ià(
+mode_
+ =ð
+Mode
+::
+BLOCKING
+) {
+
+29 autØ* 
+blockšg_d©a
+ = 
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+BlockšgD©a
+ *>(
+mode_d©a_
+.
+g‘
+());
+
+31 ià(!
+avažabË_ch¬
+()) {
+
+35 ià(
+	gblockšg_d©a
+->
+	gcÚsume_lše_ãed_
+) {
+
+36 cÚ¡ 
+	gšput
+ = 
+³ek_Úe_ch¬
+();
+
+38 ià(
+	gšput
+ >= 0) {
+
+39 cÚ¡ 
+c
+ = 
+šput
+;
+
+41 
+	gblockšg_d©a
+->
+	gcÚsume_lše_ãed_
+ = 
+çl£
+;
+
+43 ià(
+	g´evious_
+ =ð'\x0D' && 
+c
+ == '\x0A') {
+
+45 
+»ad_Úe_ch¬
+();
+
+46 
+	g´evious_
+ = 
+c
+;
+
+47  
+avažabË
+();
+
+62 
+	gSh–l
+::
+»ad
+() {
+
+63 ià(
+mode_
+ =ð
+Mode
+::
+BLOCKING
+) {
+
+64 autØ* 
+blockšg_d©a
+ = 
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+BlockšgD©a
+ *>(
+mode_d©a_
+.
+g‘
+());
+
+65 cÚ¡ 
+	gšput
+ = 
+»ad_Úe_ch¬
+();
+
+67 ià(
+	gšput
+ >= 0) {
+
+68 cÚ¡ 
+c
+ = 
+šput
+;
+
+70 ià(
+	gblockšg_d©a
+->
+	gcÚsume_lše_ãed_
+) {
+
+71 
+	gblockšg_d©a
+->
+	gcÚsume_lše_ãed_
+ = 
+çl£
+;
+
+73 ià(
+	g´evious_
+ =ð'\x0D' && 
+c
+ == '\x0A') {
+
+75 
+´evious_
+ = 
+c
+;
+
+76  
+»ad
+();
+
+81 
+	g´evious_
+ = 
+c
+;
+
+84  
+	gšput
+;
+
+90 
+	gSh–l
+::
+³ek
+() {
+
+91 ià(
+mode_
+ =ð
+Mode
+::
+BLOCKING
+) {
+
+92 autØ* 
+blockšg_d©a
+ = 
+»š‹½»t_ÿ¡
+<
+Sh–l
+::
+BlockšgD©a
+ *>(
+mode_d©a_
+.
+g‘
+());
+
+93 cÚ¡ 
+	gšput
+ = 
+³ek_Úe_ch¬
+();
+
+95 ià(
+	gblockšg_d©a
+->
+	gcÚsume_lše_ãed_
+) {
+
+96 ià(
+	gšput
+ >= 0) {
+
+97 cÚ¡ 
+c
+ = 
+šput
+;
+
+99 
+	gblockšg_d©a
+->
+	gcÚsume_lše_ãed_
+ = 
+çl£
+;
+
+101 ià(
+	g´evious_
+ =ð'\x0D' && 
+c
+ == '\x0A') {
+
+103 
+»ad_Úe_ch¬
+();
+
+104 
+	g´evious_
+ = 
+c
+;
+
+105  
+³ek
+();
+
+110  
+	gšput
+;
+
+116 
+	gSh–l
+::
+æush
+() {
+
+	@lib/uuid-console/src/stream_console.cpp
+
+19 
+	~<uuid/cÚsÞe.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<memÜy
+>
+
+24 
+	~<¡ršg
+>
+
+26 
+Çme¥aû
+ 
+	guuid
+ {
+
+28 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+30 
+	gSŒ—mCÚsÞe
+::
+SŒ—mCÚsÞe
+(
+SŒ—m
+ & 
+¡»am
+)
+
+31 : 
+Sh–l
+()
+
+32 , 
+¡»am_
+(
+¡»am
+) {
+
+36 
+	gSŒ—mCÚsÞe
+::
+SŒ—mCÚsÞe
+(
+¡d
+::
+sh¬ed_±r
+<
+Commªds
+> 
+commªds
+, 
+SŒ—m
+ & 
+¡»am
+, 
+cÚ‹xt
+, 
+æags
+)
+
+37 : 
+Sh–l
+(
+¡d
+::
+move
+(
+commªds
+), 
+cÚ‹xt
+, 
+æags
+)
+
+38 , 
+¡»am_
+(
+¡»am
+) {
+
+41 
+size_t
+ 
+	gSŒ—mCÚsÞe
+::
+wr™e
+(
+ušt8_t
+ 
+d©a
+) {
+
+42  
+¡»am_
+.
+wr™e
+(
+d©a
+);
+
+45 
+size_t
+ 
+	gSŒ—mCÚsÞe
+::
+wr™e
+(cÚ¡ 
+ušt8_t
+ * 
+bufãr
+, size_ˆ
+size
+) {
+
+46  
+	g¡»am_
+.
+wr™e
+(
+bufãr
+, 
+size
+);
+
+49 
+boÞ
+ 
+	gSŒ—mCÚsÞe
+::
+avažabË_ch¬
+() {
+
+50  
+¡»am_
+.
+avažabË
+() > 0;
+
+53 
+	gSŒ—mCÚsÞe
+::
+»ad_Úe_ch¬
+() {
+
+54  
+¡»am_
+.
+»ad
+();
+
+57 
+	gSŒ—mCÚsÞe
+::
+³ek_Úe_ch¬
+() {
+
+58  
+¡»am_
+.
+³ek
+();
+
+	@lib/uuid-console/src/uuid/console.h
+
+19 #iâdeà
+UUID_CONSOLE_H_
+
+
+20 
+	#UUID_CONSOLE_H_
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+24 
+	~<c¡d¬g
+>
+
+25 
+	~<c¡dšt
+>
+
+26 
+	~<deque
+>
+
+27 
+	~<funùiÚ®
+>
+
+28 
+	~<lim™s
+>
+
+29 
+	~<li¡
+>
+
+30 
+	~<memÜy
+>
+
+31 
+	~<m­
+>
+
+32 
+	~<£t
+>
+
+33 
+	~<¡ršg
+>
+
+34 
+	~<veùÜ
+>
+
+36 
+	~<uuid/commÚ.h
+>
+
+37 
+	~<uuid/log.h
+>
+
+39 
+Çme¥aû
+ 
+	guuid
+ {
+
+47 
+Çme¥aû
+ 
+	gcÚsÞe
+ {
+
+49 
+þass
+ 
+	gCommªds
+;
+
+62 
+þass
+ 
+	gSh–l
+ : 
+public
+ 
+¡d
+::
+’abË_sh¬ed_äom_this
+<
+Sh–l
+>,…ubliø
+	guuid
+::
+log
+::
+HªdËr
+, 
+	gpublic
+ ::
+SŒ—m
+ {
+
+63 
+public
+:
+
+64 
+cÚ¡ex´
+ 
+size_t
+ 
+MAX_COMMAND_LINE_LENGTH
+ = 80;
+
+65 
+cÚ¡ex´
+ 
+size_t
+ 
+	gMAX_LOG_MESSAGES
+ = 20;
+
+78 
+usšg
+ 
+	g·sswÜd_funùiÚ
+ = 
+¡d
+::
+funùiÚ
+<(
+Sh–l
+ & 
+sh–l
+, 
+boÞ
+ 
+	gcom¶‘ed
+, cÚ¡ 
+	g¡d
+::
+¡ršg
+ & 
+·sswÜd
+)>;
+
+85 
+usšg
+ 
+	gd–ay_funùiÚ
+ = 
+¡d
+::
+funùiÚ
+<(
+Sh–l
+ & 
+sh–l
+)>;
+
+96 
+usšg
+ 
+	gblockšg_funùiÚ
+ = 
+¡d
+::
+funùiÚ
+<
+boÞ
+(
+Sh–l
+ & 
+sh–l
+, boÞ 
+¡Ý
+)>;
+
+98 ~
+Sh–l
+(è
+	gov”ride
+;
+
+108 
+loÝ_®l
+();
+
+124 
+¡¬t
+();
+
+133 
+loÝ_Úe
+();
+
+141 
+boÞ
+ 
+ruÂšg
+() const;
+
+153 
+¡Ý
+();
+
+161 
+šlše
+ cÚ¡ 
+	guuid
+::
+log
+::
+Logg”
+ & 
+logg”
+() {
+
+162  
+logg”_
+;
+
+174 
+vœtu®
+ 
+	gÝ”©Ü
+<<(
+	g¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> 
+mes§ge
+è
+ov”ride
+;
+
+184 
+	guuid
+::
+log
+::
+Lev–
+ 
+log_Ëv–
+() const;
+
+195 
+log_Ëv–
+(
+uuid
+::
+log
+::
+Lev–
+ 
+Ëv–
+);
+
+203 
+size_t
+ 
+maximum_commªd_lše_Ëngth
+() const;
+
+212 
+maximum_commªd_lše_Ëngth
+(
+size_t
+ 
+Ëngth
+);
+
+219 
+size_t
+ 
+maximum_log_mes§ges
+() const;
+
+228 
+maximum_log_mes§ges
+(
+size_t
+ 
+couÁ
+);
+
+235 
+idË_timeout
+() const;
+
+244 
+idË_timeout
+(
+timeout
+);
+
+254 
+šlše
+ 
+cÚ‹xt
+() const {
+
+255 ià(!
+	gcÚ‹xt_
+.
+em±y
+()) {
+
+256  
+	gcÚ‹xt_
+.
+back
+();
+
+269 
+šlše
+ 
+’‹r_cÚ‹xt
+(
+cÚ‹xt
+) {
+
+270 
+	gcÚ‹xt_
+.
+em¶aû_back
+(
+cÚ‹xt
+);
+
+281 
+vœtu®
+ 
+boÞ
+ 
+ex™_cÚ‹xt
+();
+
+292 
+šlše
+ 
+add_æags
+(
+æags
+) {
+
+293 
+	gæags_
+ |ð
+æags
+;
+
+306 
+šlše
+ 
+boÞ
+ 
+has_æags
+(
+æags
+) const {
+
+307  (
+	gæags_
+ & 
+	gæags
+è=ð
+æags
+;
+
+318 
+šlše
+ 
+»move_æags
+(
+æags
+) {
+
+319 
+	gæags_
+ &ð~
+æags
+;
+
+337 
+’‹r_·sswÜd
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+´om±
+, 
+·sswÜd_funùiÚ
+ 
+funùiÚ
+);
+
+352 
+d–ay_fÜ
+(
+ms
+, 
+d–ay_funùiÚ
+ 
+funùiÚ
+);
+
+371 
+d–ay_uÁž
+(
+ušt64_t
+ 
+ms
+, 
+d–ay_funùiÚ
+ 
+funùiÚ
+);
+
+385 
+block_w™h
+(
+blockšg_funùiÚ
+ 
+funùiÚ
+);
+
+396 
+avažabË
+(è
+fš®
+ 
+	gov”ride
+;
+
+406 
+»ad
+(è
+fš®
+ 
+	gov”ride
+;
+
+417 
+³ek
+(è
+fš®
+ 
+	gov”ride
+;
+
+426 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+è
+	gov”ride
+ = 0;
+
+435 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ * 
+bufãr
+, size_ˆ
+size
+è
+	gov”ride
+ = 0;
+
+446 
+æush
+(è
+	gov”ride
+;
+
+448 
+	gusšg
+ ::
+Pršt
+::
+´št
+;
+
+456 
+size_t
+ 
+´št
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+d©a
+);
+
+457 
+	gusšg
+ ::
+Pršt
+::
+´šŽn
+;
+
+465 
+size_t
+ 
+´šŽn
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+d©a
+);
+
+474 
+size_t
+ 
+´štf
+(cÚ¡ * 
+fÜm©
+, ...) ;
+
+483 
+size_t
+ 
+´štf
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) ;
+
+492 
+size_t
+ 
+´štæn
+(cÚ¡ * 
+fÜm©
+, ...) ;
+
+501 
+size_t
+ 
+´štæn
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) ;
+
+508 
+´št_®l_avažabË_commªds
+();
+
+522 
+švoke_commªd
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+lše
+);
+
+524 
+	g´Ùeùed
+:
+
+535 
+Sh–l
+() = ;
+
+547 
+Sh–l
+(
+¡d
+::
+sh¬ed_±r
+<
+Commªds
+> 
+commªds
+, 
+cÚ‹xt
+ = 0, 
+æags
+ = 0);
+
+554 
+vœtu®
+ 
+”a£_cu¼’t_lše
+();
+
+561 
+vœtu®
+ 
+”a£_ch¬aù”s
+(
+size_t
+ 
+couÁ
+);
+
+569 
+vœtu®
+ 
+¡¬‹d
+();
+
+576 
+vœtu®
+ 
+di¥Ïy_bªÃr
+();
+
+586 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+ho¡Çme_‹xt
+();
+
+597 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+cÚ‹xt_‹xt
+();
+
+608 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+´om±_´efix
+();
+
+618 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+´om±_suffix
+();
+
+631 
+vœtu®
+ 
+’d_of_ŒªsmissiÚ
+();
+
+638 
+vœtu®
+ 
+¡Ý³d
+();
+
+640 
+	g´iv©e
+:
+
+646 þas 
+	cMode
+ : 
+ušt8_t
+ {
+
+647 
+NORMAL
+,
+
+648 
+	gPASSWORD
+,
+
+649 
+	gDELAY
+,
+
+650 
+	gBLOCKING
+,
+
+658 þas 
+	cModeD©a
+ {
+
+659 
+	gpublic
+:
+
+660 
+vœtu®
+ ~
+ModeD©a
+() = ;
+
+662 
+	g´Ùeùed
+:
+
+663 
+ModeD©a
+() = ;
+
+671 þas 
+	cPasswÜdD©a
+ : 
+public
+ 
+ModeD©a
+ {
+
+672 
+public
+:
+
+684 
+PasswÜdD©a
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+·sswÜd_´om±
+, 
+·sswÜd_funùiÚ
+ &&…assword_function);
+
+685 ~
+PasswÜdD©a
+(è
+	gov”ride
+ = ;
+
+687 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	g·sswÜd_´om±_
+;
+
+688 
+·sswÜd_funùiÚ
+ 
+	g·sswÜd_funùiÚ_
+;
+
+696 þas 
+	cD–ayD©a
+ : 
+public
+ 
+ModeD©a
+ {
+
+697 
+public
+:
+
+708 
+D–ayD©a
+(
+ušt64_t
+ 
+d–ay_time
+, 
+d–ay_funùiÚ
+ && delay_function);
+
+709 ~
+D–ayD©a
+(è
+	gov”ride
+ = ;
+
+711 
+ušt64_t
+ 
+	gd–ay_time_
+;
+
+712 
+d–ay_funùiÚ
+ 
+	gd–ay_funùiÚ_
+;
+
+720 þas 
+	cBlockšgD©a
+ : 
+public
+ 
+ModeD©a
+ {
+
+721 
+public
+:
+
+730 
+ex¶ic™
+ 
+BlockšgD©a
+(
+blockšg_funùiÚ
+ && blocking_function);
+
+731 ~
+BlockšgD©a
+(è
+	gov”ride
+ = ;
+
+733 
+blockšg_funùiÚ
+ 
+	gblockšg_funùiÚ_
+;
+
+734 
+boÞ
+ 
+	gcÚsume_lše_ãed_
+ = 
+Œue
+;
+
+735 
+boÞ
+ 
+	g¡Ý_
+ = 
+çl£
+;
+
+747 þas 
+	cQueuedLogMes§ge
+ {
+
+748 
+	gpublic
+:
+
+756 
+QueuedLogMes§ge
+(
+id
+, 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> && 
+cÚ‹Á
+);
+
+757 ~
+QueuedLogMes§ge
+() = ;
+
+759 cÚ¡ 
+	gid_
+;
+
+760 cÚ¡ 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+uuid
+::
+log
+::
+Mes§ge
+> 
+cÚ‹Á_
+;
+
+763 
+Sh–l
+(cÚ¡ Sh–È&èð
+d–‘e
+;
+
+764 
+	gSh–l
+ & 
+	gÝ”©Ü
+=(cÚ¡ 
+Sh–l
+ &èð
+d–‘e
+;
+
+773 
+loÝ_nÜm®
+();
+
+781 
+loÝ_·sswÜd
+();
+
+789 
+loÝ_d–ay
+();
+
+797 
+loÝ_blockšg
+();
+
+805 
+vœtu®
+ 
+boÞ
+ 
+avažabË_ch¬
+() = 0;
+
+812 
+vœtu®
+ 
+»ad_Úe_ch¬
+() = 0;
+
+820 
+vœtu®
+ 
+³ek_Úe_ch¬
+() = 0;
+
+831 
+di¥Ïy_´om±
+();
+
+837 
+ou�ut_logs
+();
+
+843 
+´oûss_commªd
+();
+
+849 
+´oûss_com¶‘iÚ
+();
+
+859 
+´oûss_·sswÜd
+(
+boÞ
+ 
+com¶‘ed
+);
+
+866 
+check_idË_timeout
+();
+
+875 
+d–‘e_bufãr_wÜd
+(
+boÞ
+ 
+di¥Ïy
+);
+
+885 
+size_t
+ 
+v´štf
+(cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+);
+
+894 
+size_t
+ 
+v´štf
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+);
+
+896 cÚ¡ 
+	guuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+897 
+	g¡d
+::
+£t
+<
+¡d
+::
+sh¬ed_±r
+<
+Sh–l
+>> 
+sh–ls_
+;
+
+899 
+	g¡d
+::
+sh¬ed_±r
+<
+Commªds
+> 
+commªds_
+;
+
+900 
+	g¡d
+::
+deque
+<> 
+cÚ‹xt_
+;
+
+901 
+	gæags_
+ = 0;
+
+902 
+	glog_mes§ge_id_
+ = 0;
+
+903 
+	g¡d
+::
+li¡
+<
+QueuedLogMes§ge
+> 
+log_mes§ges_
+;
+
+904 
+size_t
+ 
+	gmaximum_log_mes§ges_
+ = 
+MAX_LOG_MESSAGES
+;
+
+905 
+	g¡d
+::
+¡ršg
+ 
+lše_bufãr_
+;
+
+906 
+size_t
+ 
+	gmaximum_commªd_lše_Ëngth_
+ = 
+MAX_COMMAND_LINE_LENGTH
+;
+
+907 
+	g´evious_
+ = 0;
+
+908 
+Mode
+ 
+	gmode_
+ = Mode::
+NORMAL
+;
+
+909 
+	g¡d
+::
+unique_±r
+<
+ModeD©a
+> 
+mode_d©a_
+ = 
+nuÎ±r
+;
+
+910 
+boÞ
+ 
+	g¡Ý³d_
+ = 
+çl£
+;
+
+911 
+boÞ
+ 
+	g´om±_di¥Ïyed_
+ = 
+çl£
+;
+
+912 
+ušt64_t
+ 
+	gidË_time_
+ = 0;
+
+913 
+ušt64_t
+ 
+	gidË_timeout_
+ = 0;
+
+922 þas 
+	cCommªdLše
+ {
+
+923 
+	gpublic
+:
+
+929 
+CommªdLše
+() = ;
+
+938 
+ex¶ic™
+ 
+CommªdLše
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+lše
+);
+
+947 
+ex¶ic™
+ 
+CommªdLše
+(
+¡d
+::
+š™Ÿliz”_li¡
+<cÚ¡ std::
+veùÜ
+<¡d::
+¡ršg
+>> 
+¬gum’ts
+);
+
+949 ~
+CommªdLše
+() = ;
+
+951 #ifdeà
+UNIT_TEST
+
+
+952 
+CommªdLše
+(CommandLine &&) = ;
+
+953 
+	gCommªdLše
+ & 
+	gÝ”©Ü
+=(
+CommªdLše
+ &&) = ;
+
+954 
+CommªdLše
+(cÚ¡ CommªdLš�&è
+__©Œibu‹__
+((
+d•»ÿ‹d
+)) = ;
+
+955 
+	gCommªdLše
+ & 
+	gÝ”©Ü
+=(cÚ¡ 
+CommªdLše
+ &è
+__©Œibu‹__
+((
+d•»ÿ‹d
+)) = ;
+
+968 
+	g¡d
+::
+¡ršg
+ 
+to_¡ršg
+(
+size_t
+ 
+»£rve
+ = 
+Sh–l
+::
+MAX_COMMAND_LINE_LENGTH
+) const;
+
+978 
+šlše
+ 
+size_t
+ 
+tÙ®_size
+() const {
+
+979  
+	g·¿m‘”s_
+.
+size
+(è+ (
+	gŒažšg_¥aû
+ ? 1 : 0);
+
+988 
+»£t
+();
+
+998 
+šlše
+ 
+esÿ³_®l_·¿m‘”s
+() {
+
+999 
+	gesÿ³_·¿m‘”s_
+ = 
+¡d
+::
+num”ic_lim™s
+<
+size_t
+>::
+max
+();
+
+1012 
+šlše
+ 
+esÿ³_š™Ÿl_·¿m‘”s
+() {
+
+1013 
+	gesÿ³_·¿m‘”s_
+ = 
+·¿m‘”s_
+.
+size
+();
+
+1026 
+šlše
+ 
+esÿ³_š™Ÿl_·¿m‘”s
+(
+size_t
+ 
+couÁ
+) {
+
+1027 
+	gesÿ³_·¿m‘”s_
+ = 
+couÁ
+;
+
+1036 
+šlše
+ 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> & 
+Ý”©Ü
+*() {
+
+1037  
+·¿m‘”s_
+;
+
+1045 
+šlše
+ cÚ¡ 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> & 
+Ý”©Ü
+*() const {
+
+1046  
+·¿m‘”s_
+;
+
+1054 
+šlše
+ 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> * 
+Ý”©Ü
+->() {
+
+1055  &
+·¿m‘”s_
+;
+
+1063 
+šlše
+ cÚ¡ 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> * 
+Ý”©Ü
+->() const {
+
+1064  &
+·¿m‘”s_
+;
+
+1075 
+ä›nd
+ 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+CommªdLše
+ & 
+lhs
+, cÚ¡ 
+	gCommªdLše
+ & 
+	grhs
+) {
+
+1076  (
+	glhs
+.
+	gŒažšg_¥aû
+ =ð
+rhs
+.
+Œažšg_¥aû
+è&& (
+lhs
+.
+·¿m‘”s_
+ ==„hs.parameters_);
+
+1086 
+ä›nd
+ 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+CommªdLše
+ & 
+lhs
+, cÚ¡ 
+	gCommªdLše
+ & 
+	grhs
+) {
+
+1087  !(
+	glhs
+ =ð
+rhs
+);
+
+1090 
+boÞ
+ 
+	gŒažšg_¥aû
+ = 
+çl£
+;
+
+1092 
+	g´iv©e
+:
+
+1093 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+·¿m‘”s_
+;
+
+1094 
+size_t
+ 
+	gesÿ³_·¿m‘”s_
+ = 
+¡d
+::
+num”ic_lim™s
+<size_t>::
+max
+();
+
+1104 þas 
+	cCommªds
+ {
+
+1105 
+	gpublic
+:
+
+1113 
+	sCom¶‘iÚ
+ {
+
+1114 
+¡d
+::
+li¡
+<
+CommªdLše
+> 
+h–p
+;
+
+1115 
+CommªdLše
+ 
+	g»¶aûm’t
+;
+
+1123 
+	sExecutiÚ
+ {
+
+1124 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	g”rÜ
+;
+
+1134 
+usšg
+ 
+	gcommªd_funùiÚ
+ = 
+¡d
+::
+funùiÚ
+<(
+Sh–l
+ & 
+sh–l
+, 
+	g¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+)>;
+
+1150 
+usšg
+ 
+	g¬gum’t_com¶‘iÚ_funùiÚ
+ = 
+¡d
+::
+funùiÚ
+<cÚ¡ std::
+veùÜ
+<¡d::
+¡ršg
+>(
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+	g¡d
+::veùÜ<¡d::¡ršg> & 
+¬gum’ts
+)>;
+
+1160 
+usšg
+ 
+	g­¶y_funùiÚ
+ = 
+¡d
+::
+funùiÚ
+<(¡d::
+veùÜ
+<¡d::
+¡ršg
+> & 
+Çme
+, 
+	g¡d
+::veùÜ<¡d::¡ršg> & 
+¬gum’ts
+)>;
+
+1169 
+Commªds
+() = ;
+
+1170 ~
+Commªds
+() = ;
+
+1185 
+add_commªd
+(cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+);
+
+1202 
+add_commªd
+(cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, cÚ¡ fÏsh_¡ršg_veùÜ & 
+¬gum’ts
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+);
+
+1221 
+add_commªd
+(cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, cÚ¡ fÏsh_¡ršg_veùÜ & 
+¬gum’ts
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+, 
+¬gum’t_com¶‘iÚ_funùiÚ
+ 
+¬g_funùiÚ
+);
+
+1236 
+add_commªd
+(
+cÚ‹xt
+, 
+æags
+, cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+);
+
+1254 
+add_commªd
+(
+cÚ‹xt
+, 
+æags
+, cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+, cÚ¡ fÏsh_¡ršg_veùÜ & 
+¬gum’ts
+, 
+commªd_funùiÚ
+ 
+funùiÚ
+);
+
+1274 
+add_commªd
+(
+cÚ‹xt
+,
+
+1275 
+æags
+,
+
+1276 cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+Çme
+,
+
+1277 cÚ¡ 
+æash_¡ršg_veùÜ
+ & 
+¬gum’ts
+,
+
+1278 
+commªd_funùiÚ
+ 
+funùiÚ
+,
+
+1279 
+¬gum’t_com¶‘iÚ_funùiÚ
+ 
+¬g_funùiÚ
+);
+
+1291 
+ExecutiÚ
+ 
+execu‹_commªd
+(
+Sh–l
+ & 
+sh–l
+, 
+CommªdLše
+ && 
+commªd_lše
+);
+
+1303 
+Com¶‘iÚ
+ 
+com¶‘e_commªd
+(
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+CommªdLše
+ & 
+commªd_lše
+);
+
+1313 
+fÜ_—ch_avažabË_commªd
+(
+Sh–l
+ & 
+sh–l
+, 
+­¶y_funùiÚ
+ 
+f
+) const;
+
+1315 
+»move_cÚ‹xt_commªds
+(
+cÚ‹xt
+);
+
+1316 
+»move_®l_commªds
+();
+
+1318 
+	g´iv©e
+:
+
+1323 þas 
+	cCommªd
+ {
+
+1324 
+public
+:
+
+1341 
+Commªd
+(
+æags
+,
+
+1342 cÚ¡ 
+æash_¡ršg_veùÜ
+ 
+Çme
+,
+
+1343 cÚ¡ 
+æash_¡ršg_veùÜ
+ 
+¬gum’ts
+,
+
+1344 
+commªd_funùiÚ
+ 
+funùiÚ
+,
+
+1345 
+¬gum’t_com¶‘iÚ_funùiÚ
+ 
+¬g_funùiÚ
+);
+
+1346 ~
+Commªd
+();
+
+1356 
+size_t
+ 
+mšimum_¬gum’ts
+() const;
+
+1364 
+šlše
+ 
+size_t
+ 
+maximum_¬gum’ts
+() const {
+
+1365  
+	g¬gum’ts_
+.
+size
+();
+
+1368 
+	gæags_
+;
+
+1369 cÚ¡ 
+æash_¡ršg_veùÜ
+ 
+	gÇme_
+;
+
+1370 cÚ¡ 
+æash_¡ršg_veùÜ
+ 
+	g¬gum’ts_
+;
+
+1371 
+commªd_funùiÚ
+ 
+	gfunùiÚ_
+;
+
+1372 
+¬gum’t_com¶‘iÚ_funùiÚ
+ 
+	g¬g_funùiÚ_
+;
+
+1374 
+	g´iv©e
+:
+
+1375 
+Commªd
+(cÚ¡ Commªd &èð
+d–‘e
+;
+
+1376 
+	gCommªd
+ & 
+	gÝ”©Ü
+=(cÚ¡ 
+Commªd
+ &èð
+d–‘e
+;
+
+1385 
+	sM©ch
+ {
+
+1386 
+	g¡d
+::
+muÉim­
+<
+size_t
+, cÚ¡ 
+	gCommªd
+ *> 
+	gexaù
+;
+
+1387 
+	g¡d
+::
+muÉim­
+<
+size_t
+, cÚ¡ 
+	gCommªd
+ *> 
+	g·¹Ÿl
+;
+
+1399 
+M©ch
+ 
+fšd_commªd
+(
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+CommªdLše
+ & 
+commªd_lše
+);
+
+1412 
+boÞ
+ 
+fšd_lÚge¡_commÚ_´efix
+(cÚ¡ 
+¡d
+::
+muÉim­
+<
+size_t
+, cÚ¡ 
+Commªd
+ *> & 
+commªds
+, std::
+veùÜ
+<¡d::
+¡ršg
+> & 
+lÚge¡_Çme
+);
+
+1421 
+	g¡d
+::
+¡ršg
+ 
+fšd_lÚge¡_commÚ_´efix
+(cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::¡ršg> & 
+¬gum’ts
+);
+
+1423 
+	g¡d
+::
+muÉim­
+<, 
+	gCommªd
+> 
+	gcommªds_
+;
+
+1435 þas 
+	cSŒ—mCÚsÞe
+ : 
+vœtu®
+ 
+public
+ 
+Sh–l
+ {
+
+1436 
+public
+:
+
+1449 
+SŒ—mCÚsÞe
+(
+¡d
+::
+sh¬ed_±r
+<
+Commªds
+> 
+commªds
+, 
+SŒ—m
+ & 
+¡»am
+, 
+cÚ‹xt
+ = 0, 
+æags
+ = 0);
+
+1450 ~
+SŒ—mCÚsÞe
+(è
+	gov”ride
+ = ;
+
+1459 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+è
+	gov”ride
+;
+
+1468 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ * 
+bufãr
+, size_ˆ
+size
+è
+	gov”ride
+;
+
+1470 
+	g´Ùeùed
+:
+
+1481 
+ex¶ic™
+ 
+SŒ—mCÚsÞe
+(
+SŒ—m
+ & 
+¡»am
+);
+
+1483 
+	g´iv©e
+:
+
+1484 
+SŒ—mCÚsÞe
+(cÚ¡ SŒ—mCÚsÞ�&èð
+d–‘e
+;
+
+1485 
+	gSŒ—mCÚsÞe
+ & 
+	gÝ”©Ü
+=(cÚ¡ 
+SŒ—mCÚsÞe
+ &èð
+d–‘e
+;
+
+1493 
+boÞ
+ 
+avažabË_ch¬
+(è
+	gov”ride
+;
+
+1500 
+»ad_Úe_ch¬
+(è
+	gov”ride
+;
+
+1508 
+³ek_Úe_ch¬
+(è
+	gov”ride
+;
+
+1510 
+	gSŒ—m
+ & 
+	g¡»am_
+;
+
+	@lib/uuid-log/src/format_level_char.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+Çme¥aû
+ 
+	guuid
+ {
+
+23 
+Çme¥aû
+ 
+	glog
+ {
+
+25 
+fÜm©_Ëv–_ch¬
+(
+Lev–
+ 
+Ëv–
+) {
+
+26 
+cÚ¡ex´
+ 
+	glog_Ëv–_ch¬s
+[()
+Lev–
+::
+ALL
+ - ()Lev–::
+OFF
+ + 1] = {' ', 'P', 'A', 'C', 'E', 'W', 'N', 'I', 'D', 'T', ' '};
+
+27  
+	glog_Ëv–_ch¬s
+[()
+Ëv–
+ + 1];
+
+	@lib/uuid-log/src/format_level_lowercase.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<¡ršg
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 
+Çme¥aû
+ 
+	glog
+ {
+
+29 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_off
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "off";
+
+30 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_em”g
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "emerg";
+
+31 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_ü™
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "crit";
+
+32 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_®”t
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "alert";
+
+33 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_”r
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "err";
+
+34 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_w¬nšg
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "warning";
+
+35 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_nÙiû
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "notice";
+
+36 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_šfo
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "info";
+
+37 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_debug
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "debug";
+
+38 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_Œaû
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "trace";
+
+39 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_low”ÿ£_®l
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "all";
+
+41 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	glog_Ëv–_low”ÿ£
+[()
+Lev–
+::
+ALL
+ - ()Lev–::
+OFF
+ + 1] 
+__©Œibu‹__
+((
+__®igÃd__
+(())))
+
+42 
+PROGMEM
+ = {
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_off
+),
+
+43 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_em”g
+),
+
+44 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_ü™
+),
+
+45 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_®”t
+),
+
+46 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_”r
+),
+
+47 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_w¬nšg
+),
+
+48 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_nÙiû
+),
+
+49 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_šfo
+),
+
+50 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_debug
+),
+
+51 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_Œaû
+),
+
+52 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_low”ÿ£_®l
+)};
+
+54 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+ 
+Ëv–
+) {
+
+55  
+	glog_Ëv–_low”ÿ£
+[()
+Ëv–
+ + 1];
+
+	@lib/uuid-log/src/format_level_uppercase.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<¡ršg
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 
+Çme¥aû
+ 
+	glog
+ {
+
+29 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_off
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "OFF";
+
+30 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_em”g
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "EMERG";
+
+31 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_ü™
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "CRIT";
+
+32 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_®”t
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "ALERT";
+
+33 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_”r
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "ERR";
+
+34 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_w¬nšg
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "WARNING";
+
+35 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_nÙiû
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "NOTICE";
+
+36 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_šfo
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "INFO";
+
+37 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_debug
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "DEBUG";
+
+38 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_Œaû
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "TRACE";
+
+39 
+cÚ¡ex´
+ cÚ¡ * 
+p¡r_Ëv–_uµ”ÿ£_®l
+ 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+	gPROGMEM
+ = "ALL";
+
+41 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	glog_Ëv–_uµ”ÿ£
+[()
+Lev–
+::
+ALL
+ - ()Lev–::
+OFF
+ + 1] 
+__©Œibu‹__
+((
+__®igÃd__
+(())))
+
+42 
+PROGMEM
+ = {
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_off
+),
+
+43 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_em”g
+),
+
+44 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_ü™
+),
+
+45 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_®”t
+),
+
+46 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_”r
+),
+
+47 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_w¬nšg
+),
+
+48 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_nÙiû
+),
+
+49 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_šfo
+),
+
+50 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_debug
+),
+
+51 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_Œaû
+),
+
+52 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+p¡r_Ëv–_uµ”ÿ£_®l
+)};
+
+54 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+ 
+Ëv–
+) {
+
+55  
+	glog_Ëv–_uµ”ÿ£
+[()
+Ëv–
+ + 1];
+
+	@lib/uuid-log/src/format_timestamp_ms.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<c¡dšt
+>
+
+24 
+	~<¡ršg
+>
+
+26 
+Çme¥aû
+ 
+	guuid
+ {
+
+28 
+Çme¥aû
+ 
+	glog
+ {
+
+30 
+	g¡d
+::
+¡ršg
+ 
+fÜm©_time¡amp_ms
+(
+ušt64_t
+ 
+time¡amp_ms
+, 
+days_width
+) {
+
+31 
+	gdays
+;
+
+32 
+	ghours
+, 
+	gmšu‹s
+, 
+	g£cÚds
+, 
+	gmžli£cÚds
+;
+
+34 
+	gdays
+ = 
+time¡amp_ms
+ / 86400000UL;
+
+35 
+	gtime¡amp_ms
+ %= 86400000UL;
+
+37 
+	ghours
+ = 
+time¡amp_ms
+ / 3600000UL;
+
+38 
+	gtime¡amp_ms
+ %= 3600000UL;
+
+40 
+	gmšu‹s
+ = 
+time¡amp_ms
+ / 60000UL;
+
+41 
+	gtime¡amp_ms
+ %= 60000UL;
+
+43 
+	g£cÚds
+ = 
+time¡amp_ms
+ / 1000UL;
+
+44 
+	gtime¡amp_ms
+ %= 1000UL;
+
+46 
+	gmžli£cÚds
+ = 
+time¡amp_ms
+;
+
+48 
+	g¡d
+::
+veùÜ
+<> 
+‹xt
+(10 + 1 + 2 + 1 + 2 + 1 + 2 + 1 + 3 + 1);
+
+50 
+¢´štf_P
+(
+‹xt
+.
+d©a
+(),�ext.
+size
+(), 
+PSTR
+("%0*lu+%02u:%02u:%02u.%03u"), 
+¡d
+::
+mš
+(
+days_width
+, 10U), 
+days
+, 
+hours
+, 
+mšu‹s
+, 
+£cÚds
+, 
+mžli£cÚds
+);
+
+52  
+	g‹xt
+.
+d©a
+();
+
+	@lib/uuid-log/src/levels.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<veùÜ
+>
+
+23 
+Çme¥aû
+ 
+	guuid
+ {
+
+25 
+Çme¥aû
+ 
+	glog
+ {
+
+27 
+	g¡d
+::
+veùÜ
+<
+Lev–
+> 
+Ëv–s
+() {
+
+28  {
+Lev–
+::
+OFF
+,
+
+29 
+	gLev–
+::
+EMERG
+,
+
+30 
+	gLev–
+::
+ALERT
+,
+
+31 
+	gLev–
+::
+CRIT
+,
+
+32 
+	gLev–
+::
+ERR
+,
+
+33 
+	gLev–
+::
+WARNING
+,
+
+34 
+	gLev–
+::
+NOTICE
+,
+
+35 
+	gLev–
+::
+INFO
+,
+
+36 
+	gLev–
+::
+DEBUG
+,
+
+37 
+	gLev–
+::
+TRACE
+,
+
+38 
+	gLev–
+::
+ALL
+};
+
+	@lib/uuid-log/src/levels_lowercase.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<veùÜ
+>
+
+23 
+	~<uuid/commÚ.h
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 
+Çme¥aû
+ 
+	glog
+ {
+
+29 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+Ëv–s_low”ÿ£
+() {
+
+30  {
+uuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+OFF
+)),
+
+31 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+EMERG
+)),
+
+32 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+ALERT
+)),
+
+33 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+CRIT
+)),
+
+34 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+ERR
+)),
+
+35 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+WARNING
+)),
+
+36 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+NOTICE
+)),
+
+37 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+INFO
+)),
+
+38 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+DEBUG
+)),
+
+39 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+TRACE
+)),
+
+40 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+::
+ALL
+))};
+
+	@lib/uuid-log/src/levels_uppercase.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<veùÜ
+>
+
+23 
+	~<uuid/commÚ.h
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 
+Çme¥aû
+ 
+	glog
+ {
+
+29 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+Ëv–s_uµ”ÿ£
+() {
+
+30  {
+uuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+OFF
+)),
+
+31 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+EMERG
+)),
+
+32 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+ALERT
+)),
+
+33 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+CRIT
+)),
+
+34 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+ERR
+)),
+
+35 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+WARNING
+)),
+
+36 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+NOTICE
+)),
+
+37 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+INFO
+)),
+
+38 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+DEBUG
+)),
+
+39 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+TRACE
+)),
+
+40 
+	guuid
+::
+»ad_æash_¡ršg
+(
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+::
+ALL
+))};
+
+	@lib/uuid-log/src/log.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<c¡d¬g
+>
+
+24 
+	~<c¡dšt
+>
+
+25 
+	~<li¡
+>
+
+26 
+	~<m­
+>
+
+27 
+	~<memÜy
+>
+
+28 
+	~<¡ršg
+>
+
+29 
+	~<utž™y
+>
+
+30 
+	~<veùÜ
+>
+
+32 
+Çme¥aû
+ 
+	guuid
+ {
+
+34 
+Çme¥aû
+ 
+	glog
+ {
+
+36 
+	g¡d
+::
+m­
+<
+HªdËr
+ *, 
+	gLev–
+> 
+	gLogg”
+::
+hªdËrs_
+;
+
+37 
+Lev–
+ 
+	gLogg”
+::
+Ëv–_
+ = Lev–::
+OFF
+;
+
+39 
+	gMes§ge
+::
+Mes§ge
+(
+ušt64_t
+ 
+u±ime_ms
+, 
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, cÚ¡ 
+¡d
+::
+¡ršg
+ && 
+‹xt
+)
+
+40 : 
+u±ime_ms
+(uptime_ms)
+
+41 , 
+Ëv–
+(level)
+
+42 , 
+çcž™y
+(facility)
+
+43 , 
+Çme
+(name)
+
+44 , 
+‹xt
+(
+¡d
+::
+move
+(text)) {
+
+47 
+Logg”
+::Logg”(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, 
+Facž™y
+ 
+çcž™y
+)
+
+48 : 
+Çme_
+(
+Çme
+)
+
+49 , 
+çcž™y_
+(
+çcž™y
+){
+
+53 
+	gLogg”
+::
+»gi¡”_hªdËr
+(
+HªdËr
+ * 
+hªdËr
+, 
+Lev–
+ 
+Ëv–
+) {
+
+54 
+	ghªdËrs_
+[
+hªdËr
+] = 
+Ëv–
+;
+
+55 
+»äesh_log_Ëv–
+();
+
+58 
+	gLogg”
+::
+uÄegi¡”_hªdËr
+(
+HªdËr
+ * 
+hªdËr
+) {
+
+59 
+hªdËrs_
+.
+”a£
+(
+hªdËr
+);
+
+60 
+»äesh_log_Ëv–
+();
+
+63 
+Lev–
+ 
+	gLogg”
+::
+g‘_log_Ëv–
+(cÚ¡ 
+HªdËr
+ * 
+hªdËr
+) {
+
+64 cÚ¡‡utØ
+Ëv–
+ = 
+hªdËrs_
+.
+fšd
+(
+cÚ¡_ÿ¡
+<
+HªdËr
+ *>(
+hªdËr
+));
+
+66 ià(
+	gËv–
+ !ð
+hªdËrs_
+.
+’d
+()) {
+
+67  
+Ëv–
+->
+£cÚd
+;
+
+70  
+	gLev–
+::
+OFF
+;
+
+73 
+	gLogg”
+::
+em”g
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+74 ià(
+’abËd
+(
+Lev–
+::
+EMERG
+)) {
+
+75 
+va_li¡
+ 
+­
+;
+
+77 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+78 
+vlog
+(
+Lev–
+::
+EMERG
+, 
+fÜm©
+, 
+­
+);
+
+79 
+va_’d
+(
+­
+);
+
+83 
+	gLogg”
+::
+em”g
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+84 ià(
+’abËd
+(
+Lev–
+::
+EMERG
+)) {
+
+85 
+va_li¡
+ 
+­
+;
+
+87 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+88 
+vlog
+(
+Lev–
+::
+EMERG
+, 
+fÜm©
+, 
+­
+);
+
+89 
+va_’d
+(
+­
+);
+
+93 
+	gLogg”
+::
+ü™
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+94 ià(
+’abËd
+(
+Lev–
+::
+CRIT
+)) {
+
+95 
+va_li¡
+ 
+­
+;
+
+97 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+98 
+vlog
+(
+Lev–
+::
+CRIT
+, 
+fÜm©
+, 
+­
+);
+
+99 
+va_’d
+(
+­
+);
+
+103 
+	gLogg”
+::
+ü™
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+104 ià(
+’abËd
+(
+Lev–
+::
+CRIT
+)) {
+
+105 
+va_li¡
+ 
+­
+;
+
+107 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+108 
+vlog
+(
+Lev–
+::
+CRIT
+, 
+fÜm©
+, 
+­
+);
+
+109 
+va_’d
+(
+­
+);
+
+113 
+	gLogg”
+::
+®”t
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+114 ià(
+’abËd
+(
+Lev–
+::
+ALERT
+)) {
+
+115 
+va_li¡
+ 
+­
+;
+
+117 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+118 
+vlog
+(
+Lev–
+::
+ALERT
+, 
+fÜm©
+, 
+­
+);
+
+119 
+va_’d
+(
+­
+);
+
+123 
+	gLogg”
+::
+®”t
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+124 ià(
+’abËd
+(
+Lev–
+::
+ALERT
+)) {
+
+125 
+va_li¡
+ 
+­
+;
+
+127 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+128 
+vlog
+(
+Lev–
+::
+ALERT
+, 
+fÜm©
+, 
+­
+);
+
+129 
+va_’d
+(
+­
+);
+
+132 
+	gLogg”
+::
+”r
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+133 ià(
+’abËd
+(
+Lev–
+::
+ERR
+)) {
+
+134 
+va_li¡
+ 
+­
+;
+
+136 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+137 
+vlog
+(
+Lev–
+::
+ERR
+, 
+fÜm©
+, 
+­
+);
+
+138 
+va_’d
+(
+­
+);
+
+142 
+	gLogg”
+::
+”r
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+143 ià(
+’abËd
+(
+Lev–
+::
+ERR
+)) {
+
+144 
+va_li¡
+ 
+­
+;
+
+146 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+147 
+vlog
+(
+Lev–
+::
+ERR
+, 
+fÜm©
+, 
+­
+);
+
+148 
+va_’d
+(
+­
+);
+
+152 
+	gLogg”
+::
+w¬nšg
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+153 ià(
+’abËd
+(
+Lev–
+::
+WARNING
+)) {
+
+154 
+va_li¡
+ 
+­
+;
+
+156 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+157 
+vlog
+(
+Lev–
+::
+WARNING
+, 
+fÜm©
+, 
+­
+);
+
+158 
+va_’d
+(
+­
+);
+
+162 
+	gLogg”
+::
+w¬nšg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+163 ià(
+’abËd
+(
+Lev–
+::
+WARNING
+)) {
+
+164 
+va_li¡
+ 
+­
+;
+
+166 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+167 
+vlog
+(
+Lev–
+::
+WARNING
+, 
+fÜm©
+, 
+­
+);
+
+168 
+va_’d
+(
+­
+);
+
+172 
+	gLogg”
+::
+nÙiû
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+173 ià(
+’abËd
+(
+Lev–
+::
+NOTICE
+)) {
+
+174 
+va_li¡
+ 
+­
+;
+
+176 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+177 
+vlog
+(
+Lev–
+::
+NOTICE
+, 
+fÜm©
+, 
+­
+);
+
+178 
+va_’d
+(
+­
+);
+
+182 
+	gLogg”
+::
+nÙiû
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+183 ià(
+’abËd
+(
+Lev–
+::
+NOTICE
+)) {
+
+184 
+va_li¡
+ 
+­
+;
+
+186 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+187 
+vlog
+(
+Lev–
+::
+NOTICE
+, 
+fÜm©
+, 
+­
+);
+
+188 
+va_’d
+(
+­
+);
+
+192 
+	gLogg”
+::
+šfo
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+193 ià(
+’abËd
+(
+Lev–
+::
+INFO
+)) {
+
+194 
+va_li¡
+ 
+­
+;
+
+196 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+197 
+vlog
+(
+Lev–
+::
+INFO
+, 
+fÜm©
+, 
+­
+);
+
+198 
+va_’d
+(
+­
+);
+
+202 
+	gLogg”
+::
+šfo
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+203 ià(
+’abËd
+(
+Lev–
+::
+INFO
+)) {
+
+204 
+va_li¡
+ 
+­
+;
+
+206 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+207 
+vlog
+(
+Lev–
+::
+INFO
+, 
+fÜm©
+, 
+­
+);
+
+208 
+va_’d
+(
+­
+);
+
+212 
+	gLogg”
+::
+debug
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+213 ià(
+’abËd
+(
+Lev–
+::
+DEBUG
+)) {
+
+214 
+va_li¡
+ 
+­
+;
+
+216 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+217 
+vlog
+(
+Lev–
+::
+DEBUG
+, 
+fÜm©
+, 
+­
+);
+
+218 
+va_’d
+(
+­
+);
+
+222 
+	gLogg”
+::
+debug
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+223 ià(
+’abËd
+(
+Lev–
+::
+DEBUG
+)) {
+
+224 
+va_li¡
+ 
+­
+;
+
+226 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+227 
+vlog
+(
+Lev–
+::
+DEBUG
+, 
+fÜm©
+, 
+­
+);
+
+228 
+va_’d
+(
+­
+);
+
+232 
+	gLogg”
+::
+Œaû
+(cÚ¡ * 
+fÜm©
+, ...) const {
+
+233 ià(
+’abËd
+(
+Lev–
+::
+TRACE
+)) {
+
+234 
+va_li¡
+ 
+­
+;
+
+236 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+237 
+vlog
+(
+Lev–
+::
+TRACE
+, 
+fÜm©
+, 
+­
+);
+
+238 
+va_’d
+(
+­
+);
+
+242 
+	gLogg”
+::
+Œaû
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+243 ià(
+’abËd
+(
+Lev–
+::
+TRACE
+)) {
+
+244 
+va_li¡
+ 
+­
+;
+
+246 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+247 
+vlog
+(
+Lev–
+::
+TRACE
+, 
+fÜm©
+, 
+­
+);
+
+248 
+va_’d
+(
+­
+);
+
+252 
+	gLogg”
+::
+log
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ * 
+fÜm©
+, ...) const {
+
+253 ià(
+	gËv–
+ < 
+	gLev–
+::
+EMERG
+) {
+
+254 
+Ëv–
+ = 
+Lev–
+::
+EMERG
+;
+
+255 } ià(
+	gËv–
+ > 
+	gLev–
+::
+TRACE
+) {
+
+256 
+Ëv–
+ = 
+Lev–
+::
+TRACE
+;
+
+259 ià(
+’abËd
+(
+Ëv–
+)) {
+
+260 
+va_li¡
+ 
+	g­
+;
+
+262 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+263 
+vlog
+(
+Ëv–
+, 
+çcž™y
+, 
+fÜm©
+, 
+­
+);
+
+264 
+va_’d
+(
+­
+);
+
+268 
+	gLogg”
+::
+log
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const {
+
+269 ià(
+	gËv–
+ < 
+	gLev–
+::
+EMERG
+) {
+
+270 
+Ëv–
+ = 
+Lev–
+::
+EMERG
+;
+
+271 } ià(
+	gËv–
+ > 
+	gLev–
+::
+TRACE
+) {
+
+272 
+Ëv–
+ = 
+Lev–
+::
+TRACE
+;
+
+275 ià(
+’abËd
+(
+Ëv–
+)) {
+
+276 
+va_li¡
+ 
+	g­
+;
+
+278 
+va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+279 
+vlog
+(
+Ëv–
+, 
+çcž™y
+, 
+fÜm©
+, 
+­
+);
+
+280 
+va_’d
+(
+­
+);
+
+284 
+	gLogg”
+::
+vlog
+(
+Lev–
+ 
+Ëv–
+, cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const {
+
+285 
+vlog
+(
+Ëv–
+, 
+çcž™y_
+, 
+fÜm©
+, 
+­
+);
+
+288 
+	gLogg”
+::
+vlog
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const {
+
+289 
+	g¡d
+::
+veùÜ
+<> 
+‹xt
+(
+MAX_LOG_LENGTH
+ + 1);
+
+291 ià(
+v¢´štf
+(
+‹xt
+.
+d©a
+(),�ext.
+size
+(), 
+fÜm©
+, 
+­
+) <= 0) {
+
+295 
+di¥©ch
+(
+Ëv–
+, 
+çcž™y
+, 
+‹xt
+);
+
+298 
+	gLogg”
+::
+vlog
+(
+Lev–
+ 
+Ëv–
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const {
+
+299 
+vlog
+(
+Ëv–
+, 
+çcž™y_
+, 
+fÜm©
+, 
+­
+);
+
+302 
+	gLogg”
+::
+vlog
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const {
+
+303 
+	g¡d
+::
+veùÜ
+<> 
+‹xt
+(
+MAX_LOG_LENGTH
+ + 1);
+
+305 ià(
+v¢´štf_P
+(
+‹xt
+.
+d©a
+(),�ext.
+size
+(), 
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+fÜm©
+), 
+­
+) <= 0) {
+
+309 
+di¥©ch
+(
+Ëv–
+, 
+çcž™y
+, 
+‹xt
+);
+
+312 
+	gLogg”
+::
+di¥©ch
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, 
+¡d
+::
+veùÜ
+<> & 
+‹xt
+) const {
+
+313 
+¡d
+::
+sh¬ed_±r
+<
+Mes§ge
+> 
+mes§ge
+ = std::
+make_sh¬ed
+<Mes§ge>(
+g‘_u±ime_ms
+(), 
+	gËv–
+, 
+	gçcž™y
+, 
+	gÇme_
+, 
+	g‹xt
+.
+d©a
+());
+
+314 
+	g‹xt
+.
+»size
+(0);
+
+316 autØ& 
+	ghªdËr
+ : 
+hªdËrs_
+) {
+
+317 ià(
+Ëv–
+ <ð
+hªdËr
+.
+£cÚd
+) {
+
+318 *
+hªdËr
+.
+fœ¡
+ << 
+mes§ge
+;
+
+323 
+	gLogg”
+::
+»äesh_log_Ëv–
+() {
+
+324 
+Ëv–_
+ = 
+Lev–
+::
+OFF
+;
+
+326 autØ& 
+	ghªdËr
+ : 
+hªdËrs_
+) {
+
+327 ià(
+Ëv–_
+ < 
+hªdËr
+.
+£cÚd
+) {
+
+328 
+Ëv–_
+ = 
+hªdËr
+.
+£cÚd
+;
+
+	@lib/uuid-log/src/parse_level_lowercase.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<¡ršg
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 
+Çme¥aû
+ 
+	glog
+ {
+
+29 
+boÞ
+ 
+·r£_Ëv–_low”ÿ£
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+Çme
+, 
+Lev–
+ & 
+Ëv–
+) {
+
+30 autØ
+	gv®ue
+ : 
+Ëv–s
+()) {
+
+31 ià(!
+¡rcmp_P
+(
+Çme
+.
+c_¡r
+(), 
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+fÜm©_Ëv–_low”ÿ£
+(
+v®ue
+)))) {
+
+32 
+	gËv–
+ = 
+v®ue
+;
+
+33  
+	gŒue
+;
+
+36  
+	gçl£
+;
+
+	@lib/uuid-log/src/parse_level_uppercase.cpp
+
+19 
+	~<uuid/log.h
+>
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<¡ršg
+>
+
+25 
+Çme¥aû
+ 
+	guuid
+ {
+
+27 
+Çme¥aû
+ 
+	glog
+ {
+
+29 
+boÞ
+ 
+·r£_Ëv–_uµ”ÿ£
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+Çme
+, 
+Lev–
+ & 
+Ëv–
+) {
+
+30 autØ
+	gv®ue
+ : 
+Ëv–s
+()) {
+
+31 ià(!
+¡rcmp_P
+(
+Çme
+.
+c_¡r
+(), 
+»š‹½»t_ÿ¡
+<
+PGM_P
+>(
+fÜm©_Ëv–_uµ”ÿ£
+(
+v®ue
+)))) {
+
+32 
+	gËv–
+ = 
+v®ue
+;
+
+33  
+	gŒue
+;
+
+36  
+	gçl£
+;
+
+	@lib/uuid-log/src/uuid/log.h
+
+19 #iâdeà
+UUID_LOG_H_
+
+
+20 
+	#UUID_LOG_H_
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+24 
+	~<c¡d¬g
+>
+
+25 
+	~<c¡dšt
+>
+
+26 
+	~<li¡
+>
+
+27 
+	~<m­
+>
+
+28 
+	~<memÜy
+>
+
+29 
+	~<¡ršg
+>
+
+30 
+	~<veùÜ
+>
+
+32 
+	~<uuid/commÚ.h
+>
+
+34 
+Çme¥aû
+ 
+	guuid
+ {
+
+49 
+	#COLOR_RESET
+ "\x1B[0m"
+
+	)
+
+50 
+	#COLOR_BLACK
+ "\x1B[0;30m"
+
+	)
+
+51 
+	#COLOR_RED
+ "\x1B[0;31m"
+
+	)
+
+52 
+	#COLOR_GREEN
+ "\x1B[0;32m"
+
+	)
+
+53 
+	#COLOR_YELLOW
+ "\x1B[0;33m"
+
+	)
+
+54 
+	#COLOR_BLUE
+ "\x1B[0;34m"
+
+	)
+
+55 
+	#COLOR_MAGENTA
+ "\x1B[0;35m"
+
+	)
+
+56 
+	#COLOR_CYAN
+ "\x1B[0;36m"
+
+	)
+
+57 
+	#COLOR_WHITE
+ "\x1B[0;37m"
+
+	)
+
+58 
+	#COLOR_BOLD_ON
+ "\x1B[1m"
+
+	)
+
+59 
+	#COLOR_BOLD_OFF
+ "\x1B[22m"
+
+	)
+
+60 
+	#COLOR_BRIGHT_BLACK
+ "\x1B[0;90m"
+
+	)
+
+61 
+	#COLOR_BRIGHT_RED
+ "\x1B[0;91m"
+
+	)
+
+62 
+	#COLOR_BRIGHT_GREEN
+ "\x1B[0;92m"
+
+	)
+
+63 
+	#COLOR_BRIGHT_YELLOW
+ "\x1B[0;99m"
+
+	)
+
+64 
+	#COLOR_BRIGHT_BLUE
+ "\x1B[0;94m"
+
+	)
+
+65 
+	#COLOR_BRIGHT_MAGENTA
+ "\x1B[0;95m"
+
+	)
+
+66 
+	#COLOR_BRIGHT_CYAN
+ "\x1B[0;96m"
+
+	)
+
+67 
+	#COLOR_BRIGHT_WHITE
+ "\x1B[0;97m"
+
+	)
+
+68 
+	#COLOR_UNDERLINE
+ "\x1B[4m"
+
+	)
+
+69 
+	#COLOR_BRIGHT_RED_BACKGROUND
+ "\x1B[41;1m"
+
+	)
+
+71 
+Çme¥aû
+ 
+	glog
+ {
+
+78 
+	gLev–
+ : 
+št8_t
+ {
+
+79 
+OFF
+ = -1,
+
+80 
+	gEMERG
+ = 0,
+
+81 
+	gALERT
+,
+
+82 
+	gCRIT
+,
+
+83 
+	gERR
+,
+
+84 
+	gWARNING
+,
+
+85 
+	gNOTICE
+,
+
+86 
+	gINFO
+,
+
+87 
+	gDEBUG
+,
+
+88 
+	gTRACE
+,
+
+89 
+	gALL
+,
+
+97 
+	gFacž™y
+ : 
+ušt8_t
+ {
+
+98 
+KERN
+ = 0,
+
+99 
+	gUSER
+,
+
+100 
+	gMAIL
+,
+
+101 
+	gDAEMON
+,
+
+102 
+	gAUTH
+,
+
+103 
+	gSYSLOG
+,
+
+104 
+	gLPR
+,
+
+105 
+	gNEWS
+,
+
+106 
+	gUUCP
+,
+
+107 
+	gCRON
+,
+
+108 
+	gAUTHPRIV
+,
+
+109 
+	gFTP
+,
+
+110 
+	gNTP
+,
+
+111 
+	gSECURITY
+,
+
+112 
+	gCONSOLE
+,
+
+113 
+	gCRON2
+,
+
+114 
+	gLOCAL0
+,
+
+115 
+	gLOCAL1
+,
+
+116 
+	gLOCAL2
+,
+
+117 
+	gLOCAL3
+,
+
+118 
+	gLOCAL4
+,
+
+119 
+	gLOCAL5
+,
+
+120 
+	gLOCAL6
+,
+
+121 
+	gLOCAL7
+,
+
+134 
+	g¡d
+::
+¡ršg
+ 
+fÜm©_time¡amp_ms
+(
+ušt64_t
+ 
+time¡amp_ms
+, 
+days_width
+ = 1);
+
+143 
+	g¡d
+::
+veùÜ
+<
+Lev–
+> 
+Ëv–s
+();
+
+155 
+fÜm©_Ëv–_ch¬
+(
+Lev–
+ 
+Ëv–
+);
+
+164 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©_Ëv–_uµ”ÿ£
+(
+Lev–
+ 
+Ëv–
+);
+
+174 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+Ëv–s_uµ”ÿ£
+();
+
+184 
+boÞ
+ 
+·r£_Ëv–_uµ”ÿ£
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+Çme
+, 
+Lev–
+ & 
+Ëv–
+);
+
+193 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©_Ëv–_low”ÿ£
+(
+Lev–
+ 
+Ëv–
+);
+
+203 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+Ëv–s_low”ÿ£
+();
+
+213 
+boÞ
+ 
+·r£_Ëv–_low”ÿ£
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+Çme
+, 
+Lev–
+ & 
+Ëv–
+);
+
+223 
+	sMes§ge
+ {
+
+234 
+Mes§ge
+(
+ušt64_t
+ 
+u±ime_ms
+, 
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, cÚ¡ 
+¡d
+::
+¡ršg
+ && 
+‹xt
+);
+
+235 ~
+Mes§ge
+() = ;
+
+243 cÚ¡ 
+ušt64_t
+ 
+	gu±ime_ms
+;
+
+250 cÚ¡ 
+Lev–
+ 
+	gËv–
+;
+
+257 cÚ¡ 
+Facž™y
+ 
+	gçcž™y
+;
+
+264 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	gÇme
+;
+
+274 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+‹xt
+;
+
+282 þas 
+	cHªdËr
+ {
+
+283 
+	gpublic
+:
+
+284 
+vœtu®
+ ~
+HªdËr
+() = ;
+
+299 
+vœtu®
+ 
+	gÝ”©Ü
+<<(
+	g¡d
+::
+sh¬ed_±r
+<
+Mes§ge
+> 
+mes§ge
+) = 0;
+
+301 
+	g´Ùeùed
+:
+
+302 
+HªdËr
+() = ;
+
+310 þas 
+	cLogg”
+ {
+
+311 
+	gpublic
+:
+
+320 
+cÚ¡ex´
+ 
+size_t
+ 
+MAX_LOG_LENGTH
+ = 255;
+
+330 
+Logg”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, 
+Facž™y
+ 
+çcž™y
+ = Facž™y::
+LOCAL0
+);
+
+331 ~
+Logg”
+() = ;
+
+346 
+»gi¡”_hªdËr
+(
+HªdËr
+ * 
+hªdËr
+, 
+Lev–
+ 
+Ëv–
+);
+
+359 
+uÄegi¡”_hªdËr
+(
+HªdËr
+ * 
+hªdËr
+);
+
+373 
+Lev–
+ 
+g‘_log_Ëv–
+(cÚ¡ 
+HªdËr
+ * 
+hªdËr
+);
+
+383 
+šlše
+ 
+boÞ
+ 
+’abËd
+(
+Lev–
+ 
+Ëv–
+) {
+
+384  
+	gËv–
+ <ð
+Ëv–_
+;
+
+394 
+em”g
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+402 
+em”g
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+411 
+®”t
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+419 
+®”t
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+428 
+ü™
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+436 
+ü™
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+445 
+”r
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+453 
+”r
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+462 
+w¬nšg
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+470 
+w¬nšg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+479 
+nÙiû
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+487 
+nÙiû
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+496 
+šfo
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+503 
+šfo
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+512 
+debug
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+520 
+debug
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+529 
+Œaû
+(cÚ¡ * 
+fÜm©
+, ...) const ;
+
+537 
+Œaû
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+548 
+log
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ * 
+fÜm©
+, ...) const ;
+
+558 
+log
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, ...) const ;
+
+560 
+	g´iv©e
+:
+
+566 
+»äesh_log_Ëv–
+();
+
+576 
+vlog
+(
+Lev–
+ 
+Ëv–
+, cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const;
+
+585 
+vlog
+(
+Lev–
+ 
+Ëv–
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const;
+
+596 
+vlog
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const;
+
+606 
+vlog
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) const;
+
+620 
+di¥©ch
+(
+Lev–
+ 
+Ëv–
+, 
+Facž™y
+ 
+çcž™y
+, 
+¡d
+::
+veùÜ
+<> & 
+‹xt
+) const;
+
+622 
+	g¡d
+::
+m­
+<
+HªdËr
+ *, 
+	gLev–
+> 
+	ghªdËrs_
+;
+
+623 
+Lev–
+ 
+	gËv–_
+;
+
+625 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	gÇme_
+;
+
+626 cÚ¡ 
+Facž™y
+ 
+	gçcž™y_
+;
+
+	@lib/uuid-syslog/src/syslog.cpp
+
+19 
+	~"uuid/sy¦og.h
+"
+
+21 
+	~<Ardušo.h
+>
+
+22 #ifdeà
+ARDUINO_ARCH_ESP8266
+
+
+23 
+	~<ESP8266WiFi.h
+>
+
+25 
+	~<WiFi.h
+>
+
+27 
+	~<WiFiUdp.h
+>
+
+29 #iâdeà
+UUID_SYSLOG_HAVE_GETTIMEOFDAY
+
+
+30 #ià
+defšed
+(
+ARDUINO_ARCH_ESP8266
+è|| defšed(
+ARDUINO_ARCH_ESP32
+)
+
+32 
+	#UUID_SYSLOG_HAVE_GETTIMEOFDAY
+ 1
+
+	)
+
+36 #iâdeà
+UUID_SYSLOG_HAVE_GETTIMEOFDAY
+
+
+37 
+	#UUID_SYSLOG_HAVE_GETTIMEOFDAY
+ 0
+
+	)
+
+40 #iâdeà
+UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+
+
+41 #ià
+defšed
+(
+ARDUINO_ARCH_ESP8266
+)
+
+42 
+	#UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+ 1
+
+	)
+
+46 #iâdeà
+UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+
+
+47 
+	#UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+ 0
+
+	)
+
+50 #iâdeà
+UUID_SYSLOG_ARP_CHECK
+
+
+51 #ià
+defšed
+(
+LWIP_VERSION_MAJOR
+è&& defšed(
+LWIP_IPV4
+) && LWIP_VERSION_MAJOR >= 2 && LWIP_IPV4
+
+52 
+	#UUID_SYSLOG_ARP_CHECK
+ 1
+
+	)
+
+56 #iâdeà
+UUID_SYSLOG_ARP_CHECK
+
+
+57 
+	#UUID_SYSLOG_ARP_CHECK
+ 0
+
+	)
+
+60 #iâdeà
+UUID_SYSLOG_NDP_CHECK
+
+
+61 #ià
+defšed
+(
+LWIP_VERSION_MAJOR
+è&& defšed(
+LWIP_IPV6
+) && LWIP_VERSION_MAJOR >= 2 && LWIP_IPV6
+
+62 
+	#UUID_SYSLOG_NDP_CHECK
+ 1
+
+	)
+
+66 #iâdeà
+UUID_SYSLOG_NDP_CHECK
+
+
+67 
+	#UUID_SYSLOG_NDP_CHECK
+ 0
+
+	)
+
+70 #ià
+UUID_SYSLOG_ARP_CHECK
+ 
+Ü
+ 
+UUID_SYSLOG_NDP_CHECK
+
+
+71 
+	~<lw�/Ãtif.h
+>
+
+73 #ià
+UUID_SYSLOG_ARP_CHECK
+
+
+74 
+	~<lw�/�4_addr.h
+>
+
+75 
+	~<lw�/‘h¬p.h
+>
+
+77 #ià
+UUID_SYSLOG_NDP_CHECK
+
+
+78 
+	~<lw�/�6_addr.h
+>
+
+79 
+	~<lw�/nd6.h
+>
+
+82 
+	~<®gÜ™hm
+>
+
+83 
+	~<li¡
+>
+
+84 
+	~<memÜy
+>
+
+85 
+	~<¡ršg
+>
+
+87 
+	~<uuid/commÚ.h
+>
+
+88 
+	~<uuid/log.h
+>
+
+90 cÚ¡ 
+	g__p¡r__logg”_Çme
+[] 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+PROGMEM
+ = "syslog";
+
+92 
+Çme¥aû
+ 
+uuid
+ {
+
+94 
+Çme¥aû
+ 
+sy¦og
+ {
+
+96 
+uuid
+::
+log
+::
+Logg”
+ 
+Sy¦ogS”viû
+::
+logg”_
+{
+	`FPSTR
+(
+__p¡r__logg”_Çme
+), uuid::log::
+Facž™y
+::
+SYSLOG
+};
+
+97 
+boÞ
+ 
+Sy¦ogS”viû
+::
+QueuedLogMes§ge
+::
+time_good_
+ = 
+çl£
+;
+
+99 
+Sy¦ogS”viû
+::~
+	`Sy¦ogS”viû
+() {
+
+100 
+uuid
+::
+log
+::
+Logg”
+::
+	`uÄegi¡”_hªdËr
+(
+this
+);
+
+103 
+Sy¦ogS”viû
+::
+	`¡¬t
+() {
+
+104 
+uuid
+::
+log
+::
+Logg”
+::
+	`»gi¡”_hªdËr
+(
+this
+, uuid::log::
+Lev–
+::
+ALL
+);
+
+107 
+uuid
+::
+log
+::
+Lev–
+ 
+Sy¦ogS”viû
+::
+	`log_Ëv–
+() const {
+
+108  
+uuid
+::
+log
+::
+Logg”
+::
+	`g‘_log_Ëv–
+(
+this
+);
+
+111 
+Sy¦ogS”viû
+::
+	`»move_queued_mes§ges
+(
+uuid
+::
+log
+::
+Lev–
+ 
+Ëv–
+) {
+
+112 
+off£t
+ = 0;
+
+114 autØ
+™
+ = 
+log_mes§ges_
+.
+	`begš
+(); iˆ!ðlog_mes§ges_.
+	`’d
+();) {
+
+115 ià(
+™
+->
+cÚ‹Á_
+->
+Ëv–
+ >†evel) {
+
+116 
+off£t
+++;
+
+117 
+™
+ = 
+log_mes§ges_
+.
+	`”a£
+(it);
+
+119 
+™
+->
+id_
+ -ð
+off£t
+;
+
+120 
+™
+++;
+
+124 
+log_mes§ge_id_
+ -ð
+off£t
+;
+
+127 
+Sy¦ogS”viû
+::
+	`log_Ëv–
+(
+uuid
+::
+log
+::
+Lev–
+ 
+Ëv–
+) {
+
+128 ià(!
+¡¬‹d_
+) {
+
+129 
+	`»move_queued_mes§ges
+(
+Ëv–
+);
+
+132 
+boÞ
+ 
+Ëv–_£t
+ = 
+çl£
+;
+
+133 
+boÞ
+ 
+Ëv–_chªged
+ = !
+Ëv–_£t
+ || (
+Ëv–
+ !ð
+	`log_Ëv–
+());
+
+134 
+Ëv–_£t
+ = 
+Œue
+;
+
+136 ià(
+Ëv–_chªged
+ && 
+Ëv–
+ < 
+uuid
+::
+log
+::
+Lev–
+::
+NOTICE
+) {
+
+137 
+logg”_
+.
+	`šfo
+(
+	`F
+("Log†ev– s‘�Ø%S"), 
+uuid
+::
+log
+::
+	`fÜm©_Ëv–_uµ”ÿ£
+(
+Ëv–
+));
+
+139 
+uuid
+::
+log
+::
+Logg”
+::
+	`»gi¡”_hªdËr
+(
+this
+, 
+Ëv–
+);
+
+140 ià(
+Ëv–_chªged
+ && 
+Ëv–
+ >ð
+uuid
+::
+log
+::
+Lev–
+::
+NOTICE
+) {
+
+141 
+logg”_
+.
+	`šfo
+(
+	`F
+("Log†ev– s‘�Ø%S"), 
+uuid
+::
+log
+::
+	`fÜm©_Ëv–_uµ”ÿ£
+(
+Ëv–
+));
+
+145 
+size_t
+ 
+Sy¦ogS”viû
+::
+	`maximum_log_mes§ges
+() const {
+
+146  
+maximum_log_mes§ges_
+;
+
+149 
+Sy¦ogS”viû
+::
+	`maximum_log_mes§ges
+(
+size_t
+ 
+couÁ
+) {
+
+150 
+maximum_log_mes§ges_
+ = 
+¡d
+::
+	`max
+((
+size_t
+)1, 
+couÁ
+);
+
+152 
+log_mes§ges_
+.
+	`size
+(è> 
+maximum_log_mes§ges_
+) {
+
+153 
+log_mes§ges_
+.
+	`pÝ_äÚt
+();
+
+157 
+¡d
+::
+·œ
+<
+IPAdd»ss
+, 
+ušt16_t
+> 
+Sy¦ogS”viû
+::
+	`de¡š©iÚ
+() const {
+
+158  
+¡d
+::
+	`make_·œ
+(
+ho¡_
+, 
+pÜt_
+);
+
+161 
+Sy¦ogS”viû
+::
+	`de¡š©iÚ
+(
+IPAdd»ss
+ 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+) {
+
+162 
+ho¡_
+ = 
+ho¡
+;
+
+163 
+pÜt_
+ = 
+pÜt
+;
+
+165 ià((
+ušt32_t
+)
+ho¡_
+ == (uint32_t)0) {
+
+166 
+¡¬‹d_
+ = 
+çl£
+;
+
+167 
+	`»move_queued_mes§ges
+(
+	`log_Ëv–
+());
+
+171 
+¡d
+::
+¡ršg
+ 
+Sy¦ogS”viû
+::
+	`ho¡Çme
+() const {
+
+172  
+ho¡Çme_
+;
+
+175 
+Sy¦ogS”viû
+::
+	`ho¡Çme
+(
+¡d
+::
+¡ršg
+ 
+ho¡Çme
+) {
+
+176 ià(
+ho¡Çme
+.
+	`em±y
+(è|| ho¡Çme.
+	`fšd
+(' 'è!ð
+¡d
+::
+¡ršg
+::
+Åos
+) {
+
+177 
+ho¡Çme_
+ = '-';
+
+179 
+ho¡Çme_
+ = 
+¡d
+::
+	`move
+(
+ho¡Çme
+);
+
+183 
+Sy¦ogS”viû
+::
+	`m¬k_š‹rv®
+() const {
+
+184  
+m¬k_š‹rv®_
+ / 1000;
+
+187 
+Sy¦ogS”viû
+::
+	`m¬k_š‹rv®
+(
+š‹rv®
+) {
+
+188 
+m¬k_š‹rv®_
+ = (
+ušt64_t
+)
+š‹rv®
+ * 1000;
+
+191 
+Sy¦ogS”viû
+::
+QueuedLogMes§ge
+::
+	`QueuedLogMes§ge
+(
+id
+, 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> && 
+cÚ‹Á
+)
+
+192 : 
+	`id_
+(
+id
+)
+
+193 , 
+	`cÚ‹Á_
+(
+¡d
+::
+	`move
+(
+cÚ‹Á
+)) {
+
+194 ià(
+time_good_
+ || 
+WiFi
+.
+	`¡©us
+(è=ð
+WL_CONNECTED
+) {
+
+195 #ià
+UUID_SYSLOG_HAVE_GETTIMEOFDAY
+
+
+196 ià(
+	`g‘timeofday
+(&
+time_
+, 
+nuÎ±r
+) != 0) {
+
+197 
+time_
+.
+tv_£c
+ = (
+time_t
+)-1;
+
+200 
+time_
+.
+tv_£c
+ = 
+	`time
+(
+nuÎ±r
+);
+
+201 
+time_
+.
+tv_u£c
+ = 0;
+
+204 ià(
+time_
+.
+tv_£c
+ >= 0 &&�ime_.tv_sec < 18140 * 86400) {
+
+205 
+time_
+.
+tv_£c
+ = (
+time_t
+)-1;
+
+208 ià(
+time_
+.
+tv_£c
+ !ð(
+time_t
+)-1) {
+
+209 
+time_good_
+ = 
+Œue
+;
+
+212 
+time_
+.
+tv_£c
+ = (
+time_t
+)-1;
+
+216 
+Sy¦ogS”viû
+::
+Ý”©Ü
+<<(
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> 
+mes§ge
+) {
+
+217 ià(
+log_mes§ges_
+.
+	`size
+(è>ð
+maximum_log_mes§ges_
+) {
+
+218 
+log_mes§ges_ov”æow_
+ = 
+Œue
+;
+
+219 
+log_mes§ges_
+.
+	`pÝ_äÚt
+();
+
+222 
+log_mes§ges_
+.
+	`em¶aû_back
+(
+log_mes§ge_id_
+++, 
+¡d
+::
+	`move
+(
+mes§ge
+));
+
+225 
+Sy¦ogS”viû
+::
+	`loÝ
+() {
+
+226 !
+log_mes§ges_
+.
+	`em±y
+(è&& 
+	`ÿn_Œªsm™
+()) {
+
+227 autØ
+mes§ge
+ = 
+log_mes§ges_
+.
+	`äÚt
+();
+
+229 
+¡¬‹d_
+ = 
+Œue
+;
+
+230 
+log_mes§ges_ov”æow_
+ = 
+çl£
+;
+
+231 autØ
+ok
+ = 
+	`Œªsm™
+(
+mes§ge
+);
+
+232 ià(
+ok
+) {
+
+235 ià(!
+log_mes§ges_ov”æow_
+) {
+
+236 
+log_mes§ges_
+.
+	`pÝ_äÚt
+();
+
+238 
+Ï¡_mes§ge_
+ = 
+uuid
+::
+	`g‘_u±ime_ms
+();
+
+241 ::
+	`y›ld
+();
+
+243 ià(!
+ok
+) {
+
+248 ià(
+¡¬‹d_
+ && 
+m¬k_š‹rv®_
+ !ð0 && 
+log_mes§ges_
+.
+	`em±y
+()) {
+
+249 ià(
+uuid
+::
+	`g‘_u±ime_ms
+(è- 
+Ï¡_mes§ge_
+ >ð
+m¬k_š‹rv®_
+) {
+
+252 
+Ý”©Ü
+<<(
+¡d
+::
+make_sh¬ed
+<
+uuid
+::
+log
+::
+Mes§ge
+>(uuid::
+	`g‘_u±ime_ms
+(),
+
+253 
+uuid
+::
+log
+::
+Lev–
+::
+INFO
+,
+
+254 
+uuid
+::
+log
+::
+Facž™y
+::
+SYSLOG
+,
+
+255 
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(
+__p¡r__logg”_Çme
+),
+
+256 
+uuid
+::
+	`»ad_æash_¡ršg
+(
+	`F
+("-- MARK --"))));
+
+261 
+boÞ
+ 
+Sy¦ogS”viû
+::
+	`ÿn_Œªsm™
+() {
+
+262 #ià
+UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+
+
+263 ià(
+ho¡_
+.
+	`isV4
+(è&& (
+ušt32_t
+)host_ == (uint32_t)0) {
+
+264  
+çl£
+;
+
+267 ià((
+ušt32_t
+)
+ho¡_
+ == (uint32_t)0) {
+
+268  
+çl£
+;
+
+272 ià(
+WiFi
+.
+	`¡©us
+(è!ð
+WL_CONNECTED
+) {
+
+273  
+çl£
+;
+
+276 cÚ¡ 
+ušt64_t
+ 
+now
+ = 
+uuid
+::
+	`g‘_u±ime_ms
+();
+
+277 
+ušt64_t
+ 
+mes§ge_d–ay
+ = 100;
+
+279 #ià
+UUID_SYSLOG_ARP_CHECK
+
+
+280 #ià
+UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+
+
+281 ià(
+ho¡_
+.
+	`isV4
+())
+
+284 
+mes§ge_d–ay
+ = 10;
+
+287 #ià
+UUID_SYSLOG_NDP_CHECK
+ && 
+UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+
+
+288 ià(
+ho¡_
+.
+	`isV6
+()) {
+
+289 
+mes§ge_d–ay
+ = 10;
+
+293 ià(
+now
+ < 
+Ï¡_Œªsm™_
+ ||‚ow -†a¡_Œªsm™_ < 
+mes§ge_d–ay
+) {
+
+294  
+çl£
+;
+
+297 #ià
+UUID_SYSLOG_ARP_CHECK
+
+
+298 #ià
+UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+
+
+299 ià(
+ho¡_
+.
+	`isV4
+())
+
+302 
+�4_addr_t
+ 
+�addr
+;
+
+304 
+	`�4_addr_£t_u32
+(&
+�addr
+, (
+ušt32_t
+)
+ho¡_
+);
+
+306 ià(!
+	`�4_addr_i¦oÝback
+(&
+�addr
+è&& !
+	`�4_addr_ismuÉiÿ¡
+(&�addrè&& !
+	`�4_addr_isbrßdÿ¡
+(&�addr, 
+Ãtif_deçuÉ
+)) {
+
+307 
+‘h_addr
+ * 
+‘h_»t
+ = 
+nuÎ±r
+;
+
+308 cÚ¡ 
+�4_addr_t
+ * 
+�_»t
+ = 
+nuÎ±r
+;
+
+310 ià(!
+	`�4_addr_Ãtcmp
+(&
+�addr
+, 
+	`Ãtif_�4_addr
+(
+Ãtif_deçuÉ
+), 
+	`Ãtif_�4_Ãtmask
+(netif_default))) {
+
+312 cÚ¡ 
+�4_addr_t
+ * 
+gw_addr
+ = 
+	`Ãtif_�4_gw
+(
+Ãtif_deçuÉ
+);
+
+314 ià(
+gw_addr
+ !ð
+nuÎ±r
+) {
+
+315 
+�addr
+ = *
+gw_addr
+;
+
+319 ià(
+	`‘h¬p_fšd_addr
+(
+Ãtif_deçuÉ
+, &
+�addr
+, &
+‘h_»t
+, &
+�_»t
+) == -1) {
+
+320 
+	`‘h¬p_qu”y
+(
+Ãtif_deçuÉ
+, &
+�addr
+, 
+NULL
+);
+
+322 
+Ï¡_Œªsm™_
+ = 
+uuid
+::
+	`g‘_u±ime_ms
+(è+ (
+ušt64_t
+)1000 - 
+mes§ge_d–ay
+;
+
+324  
+çl£
+;
+
+330 #ià
+UUID_SYSLOG_NDP_CHECK
+ && 
+UUID_SYSLOG_HAVE_IPADDRESS_TYPE
+
+
+331 ià(
+ho¡_
+.
+	`isV6
+()) {
+
+332 
+�6_addr_t
+ 
+�6addr
+;
+
+334 
+	`IP6_ADDR
+(&
+�6addr
+, 
+ho¡_
+.
+	`¿w6
+()[0], host_.raw6()[1], host_.raw6()[2], host_.raw6()[3]);
+
+335 
+	`�6_addr_assign_zÚe
+(&
+�6addr
+, 
+IP6_UNICAST
+, 
+Ãtif_deçuÉ
+);
+
+337 ià(!
+	`�6_addr_i¦oÝback
+(&
+�6addr
+è&& !
+	`�6_addr_ismuÉiÿ¡
+(&ip6addr)) {
+
+339 
+boÞ
+ 
+have_add»ss
+ = 
+çl£
+;
+
+340 cÚ¡ 
+u8_t
+ * 
+hwaddr
+ = 
+nuÎ±r
+;
+
+342 
+size_t
+ 
+i
+ = 0; i < 
+LWIP_IPV6_NUM_ADDRESSES
+; i++) {
+
+343 ià(
+	`�6_addr_isv®id
+(
+	`Ãtif_�6_addr_¡©e
+(
+Ãtif_deçuÉ
+, 
+i
+))) {
+
+344 ià(
+	`�6_addr_isglob®
+(&
+�6addr
+)) {
+
+345 ià(
+	`�6_addr_isglob®
+(
+	`Ãtif_�6_addr
+(
+Ãtif_deçuÉ
+, 
+i
+))) {
+
+346 
+have_add»ss
+ = 
+Œue
+;
+
+349 } ià(
+	`�6_addr_iss™–oÿl
+(&
+�6addr
+)) {
+
+350 ià(
+	`�6_addr_iss™–oÿl
+(
+	`Ãtif_�6_addr
+(
+Ãtif_deçuÉ
+, 
+i
+))) {
+
+351 
+have_add»ss
+ = 
+Œue
+;
+
+354 } ià(
+	`�6_addr_isuniqu–oÿl
+(&
+�6addr
+)) {
+
+355 ià(
+	`�6_addr_isuniqu–oÿl
+(
+	`Ãtif_�6_addr
+(
+Ãtif_deçuÉ
+, 
+i
+))) {
+
+356 
+have_add»ss
+ = 
+Œue
+;
+
+359 } ià(
+	`�6_addr_i¦škloÿl
+(&
+�6addr
+)) {
+
+360 ià(
+	`�6_addr_i¦škloÿl
+(
+	`Ãtif_�6_addr
+(
+Ãtif_deçuÉ
+, 
+i
+))) {
+
+361 
+have_add»ss
+ = 
+Œue
+;
+
+365 
+have_add»ss
+ = 
+Œue
+;
+
+371 ià(!
+have_add»ss
+) {
+
+373 
+Ï¡_Œªsm™_
+ = 
+uuid
+::
+	`g‘_u±ime_ms
+(è+ (
+ušt64_t
+)1000 - 
+mes§ge_d–ay
+;
+
+375  
+çl£
+;
+
+376 } ià(
+	`nd6_g‘_Ãxt_hÝ_addr_Ü_queue
+(
+Ãtif_deçuÉ
+, 
+NULL
+, &
+�6addr
+, &
+hwaddr
+è!ð
+ERR_OK
+) {
+
+378 
+Ï¡_Œªsm™_
+ = 
+uuid
+::
+	`g‘_u±ime_ms
+(è+ (
+ušt64_t
+)1000 - 
+mes§ge_d–ay
+;
+
+380  
+çl£
+;
+
+386  
+Œue
+;
+
+389 
+boÞ
+ 
+Sy¦ogS”viû
+::
+	`Œªsm™
+(cÚ¡ 
+QueuedLogMes§ge
+ & 
+mes§ge
+) {
+
+400 ià(
+udp_
+.
+	`begšPack‘
+(
+ho¡_
+, 
+pÜt_
+) != 1) {
+
+401 
+Ï¡_Œªsm™_
+ = 
+uuid
+::
+	`g‘_u±ime_ms
+();
+
+402  
+çl£
+;
+
+405 
+udp_
+.
+	`´štf_P
+(
+	`PSTR
+("<%u>1 "), (()
+mes§ge
+.
+cÚ‹Á_
+->
+çcž™y
+ * 8è+ 
+¡d
+::
+	`mš
+(7U, ()mes§ge.cÚ‹Á_->
+Ëv–
+));
+
+422 
+udp_
+.
+	`´št
+('-');
+
+423 
+udp_
+.
+	`´štf_P
+(
+	`PSTR
+(" % - - - - \xEF\xBB\xBF"), 
+ho¡Çme_
+.
+	`c_¡r
+());
+
+424 
+udp_
+.
+	`´št
+(
+uuid
+::
+log
+::
+	`fÜm©_time¡amp_ms
+(
+mes§ge
+.
+cÚ‹Á_
+->
+u±ime_ms
+, 3).
+	`c_¡r
+());
+
+426 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+427 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wformat"
+
+428 
+udp_
+.
+	`´štf_P
+(
+	`PSTR
+(" %ø%lu: [%S] "), 
+uuid
+::
+log
+::
+	`fÜm©_Ëv–_ch¬
+(
+mes§ge
+.
+cÚ‹Á_
+->
+Ëv–
+), mes§ge.
+id_
+, mes§ge.cÚ‹Á_->
+Çme
+);
+
+429 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+430 
+udp_
+.
+	`´št
+(
+mes§ge
+.
+cÚ‹Á_
+->
+‹xt
+.
+	`c_¡r
+());
+
+431 
+boÞ
+ 
+ok
+ = (
+udp_
+.
+	`’dPack‘
+() == 1);
+
+433 
+Ï¡_Œªsm™_
+ = 
+uuid
+::
+	`g‘_u±ime_ms
+();
+
+434  
+ok
+;
+
+439 
+	}
+}
+
+	@lib/uuid-syslog/src/uuid/syslog.h
+
+19 #iâdeà
+UUID_SYSLOG_H_
+
+
+20 
+	#UUID_SYSLOG_H_
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 #ifdeà
+ARDUINO_ARCH_ESP8266
+
+
+24 
+	~<ESP8266WiFi.h
+>
+
+26 
+	~<WiFi.h
+>
+
+28 
+	~<WiFiUdp.h
+>
+
+29 
+	~<time.h
+>
+
+31 
+	~<©omic
+>
+
+32 
+	~<li¡
+>
+
+33 
+	~<memÜy
+>
+
+34 
+	~<¡ršg
+>
+
+36 
+	~<uuid/log.h
+>
+
+38 
+Çme¥aû
+ 
+	guuid
+ {
+
+46 
+Çme¥aû
+ 
+	gsy¦og
+ {
+
+53 þas 
+	cSy¦ogS”viû
+ : 
+public
+ 
+uuid
+::
+log
+::
+HªdËr
+ {
+
+54 
+public
+:
+
+55 
+cÚ¡ex´
+ 
+size_t
+ 
+MAX_LOG_MESSAGES
+ = 50;
+
+56 
+cÚ¡ex´
+ 
+ušt16_t
+ 
+	gDEFAULT_PORT
+ = 514;
+
+63 
+Sy¦ogS”viû
+() = ;
+
+65 ~
+Sy¦ogS”viû
+();
+
+72 
+¡¬t
+();
+
+83 
+	guuid
+::
+log
+::
+Lev–
+ 
+log_Ëv–
+() const;
+
+95 
+log_Ëv–
+(
+uuid
+::
+log
+::
+Lev–
+ 
+Ëv–
+);
+
+103 
+size_t
+ 
+maximum_log_mes§ges
+() const;
+
+111 
+maximum_log_mes§ges
+(
+size_t
+ 
+couÁ
+);
+
+119 
+	g¡d
+::
+·œ
+<
+IPAdd»ss
+, 
+	gušt16_t
+> 
+de¡š©iÚ
+() const;
+
+131 
+de¡š©iÚ
+(
+IPAdd»ss
+ 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+ = 
+DEFAULT_PORT
+);
+
+139 
+	g¡d
+::
+¡ršg
+ 
+ho¡Çme
+() const;
+
+146 
+ho¡Çme
+(
+¡d
+::
+¡ršg
+ hostname);
+
+154 
+m¬k_š‹rv®
+() const;
+
+164 
+m¬k_š‹rv®
+(
+š‹rv®
+);
+
+171 
+loÝ
+();
+
+184 
+vœtu®
+ 
+	gÝ”©Ü
+<<(
+	g¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> 
+mes§ge
+);
+
+186 
+	g´iv©e
+:
+
+196 þas 
+	cQueuedLogMes§ge
+ {
+
+197 
+public
+:
+
+205 
+QueuedLogMes§ge
+(
+id
+, 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+log
+::
+Mes§ge
+> && 
+cÚ‹Á
+);
+
+206 ~
+QueuedLogMes§ge
+() = ;
+
+208 
+	gid_
+;
+
+209 
+timev®
+ 
+	gtime_
+;
+
+210 cÚ¡ 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+uuid
+::
+log
+::
+Mes§ge
+> 
+cÚ‹Á_
+;
+
+212 
+	g´iv©e
+:
+
+213 
+boÞ
+ 
+time_good_
+;
+
+222 
+»move_queued_mes§ges
+(
+uuid
+::
+log
+::
+Lev–
+ 
+Ëv–
+);
+
+231 
+boÞ
+ 
+ÿn_Œªsm™
+();
+
+241 
+boÞ
+ 
+Œªsm™
+(cÚ¡ 
+QueuedLogMes§ge
+ & 
+mes§ge
+);
+
+243 
+	guuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+245 
+boÞ
+ 
+	g¡¬‹d_
+ = 
+çl£
+;
+
+246 
+WiFiUDP
+ 
+	gudp_
+;
+
+247 
+IPAdd»ss
+ 
+	gho¡_
+;
+
+248 
+ušt16_t
+ 
+	gpÜt_
+ = 
+DEFAULT_PORT
+;
+
+249 
+ušt64_t
+ 
+	gÏ¡_Œªsm™_
+ = 0;
+
+250 
+	g¡d
+::
+¡ršg
+ 
+ho¡Çme_
+{'-'};
+
+251 
+size_t
+ 
+	gmaximum_log_mes§ges_
+ = 
+MAX_LOG_MESSAGES
+;
+
+252 
+	glog_mes§ge_id_
+ = 0;
+
+253 
+	g¡d
+::
+li¡
+<
+QueuedLogMes§ge
+> 
+log_mes§ges_
+;
+
+254 
+	g¡d
+::
+©omic
+<
+boÞ
+> 
+log_mes§ges_ov”æow_
+{
+çl£
+};
+
+255 
+ušt64_t
+ 
+	gm¬k_š‹rv®_
+ = 0;
+
+256 
+ušt64_t
+ 
+	gÏ¡_mes§ge_
+ = 0;
+
+	@lib/uuid-telnet/src/stream.cpp
+
+19 
+	~"uuid/‹Ê‘.h
+"
+
+21 
+	~<Ardušo.h
+>
+
+23 
+	~<®gÜ™hm
+>
+
+24 
+	~<¡ršg
+>
+
+25 
+	~<veùÜ
+>
+
+27 
+Çme¥aû
+ 
+	guuid
+ {
+
+29 
+Çme¥aû
+ 
+	g‹Ê‘
+ {
+
+31 
+	gT–ÃtSŒ—m
+::
+T–ÃtSŒ—m
+(
+WiFiCl›Á
+ &
+þ›Á
+)
+
+32 : 
+þ›Á_
+(
+þ›Á
+) {
+
+33 
+ou�ut_bufãr_
+.
+»£rve
+(
+BUFFER_SIZE
+);
+
+36 
+	gT–ÃtSŒ—m
+::
+¡¬t
+() {
+
+37 
+¿w_wr™e
+({
+
+38 
+IAC
+, 
+WILL
+, 
+OPT_ECHO
+,
+
+39 
+IAC
+, 
+WILL
+, 
+OPT_BINARY
+,
+
+40 
+IAC
+, 
+WILL
+, 
+OPT_SGA
+,
+
+41 
+IAC
+, 
+DONT
+, 
+OPT_ECHO
+,
+
+42 
+IAC
+, 
+DO
+, 
+OPT_BINARY
+,
+
+43 
+IAC
+, 
+DO
+, 
+OPT_SGA
+
+
+47 
+	gT–ÃtSŒ—m
+::
+avažabË
+() {
+
+48 ià(
+³ek
+() == -1) {
+
+55 
+	gT–ÃtSŒ—m
+::
+»ad
+() {
+
+56 ià(
+³ek_
+ != -1) {
+
+57 
+d©a
+ = 
+³ek_
+;
+
+58 
+	g³ek_
+ = -1;
+
+59  
+	gd©a
+;
+
+62 
+bufãr_æush
+();
+
+64 
+	g»¡¬t
+:
+
+65 
+d©a
+ = 
+¿w_»ad
+();
+
+67 ià(
+	gd©a
+ == -1) {
+
+71 
+	gc
+ = 
+d©a
+;
+
+73 ià(
+	gsub_ÃgÙŸtiÚ_
+) {
+
+74 ià(
+	g´evious_¿w_š_
+ =ð
+IAC
+) {
+
+75 
+c
+) {
+
+76 
+SE
+:
+
+77 
+sub_ÃgÙŸtiÚ_
+ = 
+çl£
+;
+
+78 
+	g´evious_¿w_š_
+ = 0;
+
+79 
+	g»¡¬t
+;
+
+81 
+	gIAC
+:
+
+82 
+´evious_¿w_š_
+ = 0;
+
+83 
+	g»¡¬t
+;
+
+86 
+	gc
+) {
+
+87 
+	gIAC
+:
+
+88 
+´evious_¿w_š_
+ = 
+c
+;
+
+89 
+	g»¡¬t
+;
+
+92 
+´evious_¿w_š_
+ = 0;
+
+93 
+	g»¡¬t
+;
+
+97 ià(
+	g´evious_¿w_š_
+ =ð
+IAC
+) {
+
+98 
+c
+) {
+
+99 
+IP
+:
+
+101 
+´evious_¿w_š_
+ = 0;
+
+102 
+	gc
+ = '\x03';
+
+105 
+	gEC
+:
+
+107 
+´evious_¿w_š_
+ = 0;
+
+108 
+	gc
+ = '\x08';
+
+111 
+	gEL
+:
+
+113 
+´evious_¿w_š_
+ = 0;
+
+114 
+	gc
+ = '\x15';
+
+117 
+	gIAC
+:
+
+118 
+´evious_¿w_š_
+ = 0;
+
+121 
+	gSB
+:
+
+122 
+WILL
+:
+
+123 
+WONT
+:
+
+124 
+DO
+:
+
+125 
+DONT
+:
+
+126 
+´evious_¿w_š_
+ = 
+c
+;
+
+127 
+	g»¡¬t
+;
+
+129 
+	gSE
+:
+
+130 
+DM
+:
+
+131 
+BRK
+:
+
+132 
+AO
+:
+
+133 
+AYT
+:
+
+134 
+GA
+:
+
+135 
+NOP
+:
+
+137 
+´evious_¿w_š_
+ = 0;
+
+138 
+	g»¡¬t
+;
+
+140 } ià(
+	g´evious_¿w_š_
+ =ð
+SB
+) {
+
+141 
+sub_ÃgÙŸtiÚ_
+ = 
+Œue
+;
+
+142 
+	g´evious_¿w_š_
+ = 0;
+
+143 
+	g»¡¬t
+;
+
+144 } ià(
+	g´evious_¿w_š_
+ =ð
+WILL
+ || 
+´evious_¿w_š_
+ =ð
+WONT
+) {
+
+145 
+c
+) {
+
+146 
+OPT_ECHO
+:
+
+148 
+¿w_wr™e
+({
+IAC
+, 
+DONT
+, 
+c
+});
+
+151 
+	gOPT_BINARY
+:
+
+152 
+OPT_SGA
+:
+
+154 
+¿w_wr™e
+({
+IAC
+, 
+DO
+, 
+c
+});
+
+159 
+¿w_wr™e
+({
+IAC
+, 
+DONT
+, 
+c
+});
+
+163 
+	g´evious_¿w_š_
+ = 0;
+
+164 
+	g»¡¬t
+;
+
+165 } ià(
+	g´evious_¿w_š_
+ =ð
+DO
+) {
+
+166 
+c
+) {
+
+167 
+OPT_ECHO
+:
+
+168 
+OPT_BINARY
+:
+
+169 
+OPT_SGA
+:
+
+175 
+¿w_wr™e
+({
+IAC
+, 
+WONT
+, 
+c
+});
+
+179 
+	g´evious_¿w_š_
+ = 0;
+
+180 
+	g»¡¬t
+;
+
+181 } ià(
+	g´evious_¿w_š_
+ =ð
+DONT
+) {
+
+182 
+c
+) {
+
+183 
+OPT_ECHO
+:
+
+184 
+OPT_BINARY
+:
+
+185 
+OPT_SGA
+:
+
+187 
+¿w_wr™e
+({
+IAC
+, 
+WILL
+, 
+c
+});
+
+195 
+	g´evious_¿w_š_
+ = 0;
+
+196 
+	g»¡¬t
+;
+
+198 
+	gc
+) {
+
+199 
+	gIAC
+:
+
+200 
+´evious_¿w_š_
+ = 
+c
+;
+
+201 
+	g»¡¬t
+;
+
+204 
+´evious_¿w_š_
+ = 0;
+
+210 ià(
+	g´evious_š_
+ =ð
+CR
+) {
+
+211 ià(
+c
+ =ð
+NUL
+) {
+
+212 
+´evious_š_
+ = 0;
+
+213 
+	g»¡¬t
+;
+
+217 
+	g´evious_š_
+ = 
+c
+;
+
+218  
+	gc
+;
+
+221 
+	gT–ÃtSŒ—m
+::
+³ek
+() {
+
+222 
+bufãr_æush
+();
+
+227 ià(
+	g³ek_
+ == -1) {
+
+228 
+³ek_
+ = 
+»ad
+();
+
+231  
+	g³ek_
+;
+
+234 
+size_t
+ 
+	gT–ÃtSŒ—m
+::
+wr™e
+(
+ušt8_t
+ 
+d©a
+) {
+
+235 ià(
+´evious_out_
+ =ð
+CR
+ && 
+d©a
+ !ð
+LF
+) {
+
+236 
+´evious_out_
+ = 
+d©a
+;
+
+238 ià(
+¿w_wr™e
+({
+NUL
+, 
+d©a
+}) != 2) {
+
+242 
+	g´evious_out_
+ = 
+d©a
+;
+
+245 ià(
+	gd©a
+ =ð
+IAC
+) {
+
+246 ià(
+¿w_wr™e
+({
+IAC
+, IAC}) != 2) {
+
+250 ià(
+¿w_wr™e
+(
+d©a
+) != 1) {
+
+258 
+size_t
+ 
+	gT–ÃtSŒ—m
+::
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+bufãr
+, size_ˆ
+size
+) {
+
+259 
+	g¡d
+::
+veùÜ
+<> 
+d©a
+;
+
+260 
+	gd©a
+.
+»£rve
+(
+size
+);
+
+262 
+	gsize
+-- > 0) {
+
+263 
+	gc
+ = *
+bufãr
+++;
+
+265 ià(
+	g´evious_out_
+ =ð
+CR
+ && 
+c
+ !ð
+LF
+) {
+
+266 
+d©a
+.
+push_back
+(()
+NUL
+);
+
+269 ià(
+	gc
+ =ð
+IAC
+) {
+
+270 
+d©a
+.
+push_back
+(()
+IAC
+);
+
+273 
+	g´evious_out_
+ = 
+c
+;
+
+274 
+	gd©a
+.
+push_back
+(
+c
+);
+
+277 
+size_t
+ 
+	gËn
+ = 
+¿w_wr™e
+(
+d©a
+);
+
+278 ià(
+	gËn
+ < 
+	gsize
+) {
+
+279 
+	gËn
+ = 0;
+
+281  
+	gËn
+;
+
+284 
+	gT–ÃtSŒ—m
+::
+æush
+() {
+
+291 
+T–ÃtSŒ—m
+::
+¿w_avažabË
+() {
+
+292  
+þ›Á_
+.
+avažabË
+();
+
+295 
+	gT–ÃtSŒ—m
+::
+¿w_»ad
+() {
+
+296  
+þ›Á_
+.
+»ad
+();
+
+299 
+	gT–ÃtSŒ—m
+::
+bufãr_æush
+() {
+
+300 ià(!
+ou�ut_bufãr_
+.
+em±y
+()) {
+
+301 
+size_t
+ 
+Ën
+ = 
+þ›Á_
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+ou�ut_bufãr_
+.
+d©a
+()), ou�ut_bufãr_.
+size
+());
+
+302 ià(
+	gËn
+ !ð
+ou�ut_bufãr_
+.
+size
+()) {
+
+303 
+þ›Á_
+.
+¡Ý
+();
+
+305 
+	gou�ut_bufãr_
+.
+þ—r
+();
+
+306 
+	gou�ut_bufãr_
+.
+shršk_to_f™
+();
+
+310 
+size_t
+ 
+	gT–ÃtSŒ—m
+::
+¿w_wr™e
+(
+d©a
+) {
+
+311 
+ou�ut_bufãr_
+.
+push_back
+(
+d©a
+);
+
+313 ià(
+	gou�ut_bufãr_
+.
+size
+(è>ð
+BUFFER_SIZE
+) {
+
+314 
+bufãr_æush
+();
+
+320 
+size_t
+ 
+	gT–ÃtSŒ—m
+::
+¿w_wr™e
+(cÚ¡ 
+¡d
+::
+veùÜ
+<> &
+d©a
+) {
+
+321  
+¿w_wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+d©a
+.d©a()), d©a.
+size
+());
+
+324 
+size_t
+ 
+	gT–ÃtSŒ—m
+::
+¿w_wr™e
+(cÚ¡ 
+ušt8_t
+ *
+bufãr
+, size_ˆ
+size
+) {
+
+325 
+size_t
+ 
+	goff£t
+ = 0;
+
+326 
+size_t
+ 
+	g»maššg
+ = 
+size
+;
+
+328 ià(!
+	gou�ut_bufãr_
+.
+em±y
+()) {
+
+330 
+size_t
+ 
+	gblock
+ = 
+¡d
+::
+mš
+(
+»maššg
+, 
+BUFFER_SIZE
+ - 
+ou�ut_bufãr_
+.
+size
+());
+
+332 
+	gou�ut_bufãr_
+.
+š£¹
+(
+ou�ut_bufãr_
+.
+’d
+(), 
+bufãr
+, bufã¸+ 
+block
+);
+
+333 
+	goff£t
+ +ð
+block
+;
+
+334 
+	g»maššg
+ -ð
+block
+;
+
+336 ià(
+	gou�ut_bufãr_
+.
+size
+(è>ð
+BUFFER_SIZE
+) {
+
+337 
+bufãr_æush
+();
+
+341 ià(
+	g»maššg
+ >ð
+BUFFER_SIZE
+) {
+
+343 
+size_t
+ 
+Ën
+ = 
+þ›Á_
+.
+wr™e
+(
+bufãr
+ + 
+off£t
+, 
+»maššg
+);
+
+344 ià(
+	gËn
+ !ð
+»maššg
+) {
+
+345 
+þ›Á_
+.
+¡Ý
+();
+
+346  
+	goff£t
+ + 
+	gËn
+;
+
+348 } ià(
+	g»maššg
+ > 0) {
+
+350 
+	gou�ut_bufãr_
+.
+š£¹
+(
+ou�ut_bufãr_
+.
+’d
+(), 
+bufãr
+ + 
+off£t
+, bufã¸+ off£ˆ+ 
+»maššg
+);
+
+353  
+	gsize
+;
+
+	@lib/uuid-telnet/src/telnet.cpp
+
+19 
+	~"uuid/‹Ê‘.h
+"
+
+21 
+	~<Ardušo.h
+>
+
+22 #ià
+defšed
+(
+ESP8266
+)
+
+23 
+	~<ESP8266WiFi.h
+>
+
+24 #–ià
+defšed
+(
+ESP32
+)
+
+25 
+	~<WiFi.h
+>
+
+28 
+	~<WiFiUdp.h
+>
+
+30 
+	~<®gÜ™hm
+>
+
+31 
+	~<li¡
+>
+
+32 
+	~<memÜy
+>
+
+33 
+	~<¡ršg
+>
+
+35 
+	~<uuid/commÚ.h
+>
+
+36 
+	~<uuid/log.h
+>
+
+38 #iâdeà
+UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+
+
+39 #ià
+defšed
+(
+ARDUINO_ARCH_ESP8266
+è|| defšed(
+ARDUINO_ARCH_ESP32
+)
+
+40 
+	#UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+ 1
+
+	)
+
+42 
+	#UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+ 0
+
+	)
+
+46 #iâdeà
+UUID_TELNET_HAVE_WIFICLIENT_NODELAY
+
+
+47 #ià
+defšed
+(
+ARDUINO_ARCH_ESP8266
+è|| defšed(
+ARDUINO_ARCH_ESP32
+)
+
+48 
+	#UUID_TELNET_HAVE_WIFICLIENT_NODELAY
+ 1
+
+	)
+
+50 
+	#UUID_TELNET_HAVE_WIFICLIENT_NODELAY
+ 0
+
+	)
+
+54 #iâdeà
+UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE
+
+
+55 #ià
+defšed
+(
+ARDUINO_ARCH_ESP8266
+)
+
+56 
+	#UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE
+ 1
+
+	)
+
+58 
+	#UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE
+ 0
+
+	)
+
+62 cÚ¡ 
+	g__p¡r__logg”_Çme
+[] 
+__©Œibu‹__
+((
+__®igÃd__
+(()))è
+PROGMEM
+ = "telnet";
+
+64 
+Çme¥aû
+ 
+uuid
+ {
+
+66 
+Çme¥aû
+ 
+‹Ê‘
+ {
+
+68 
+uuid
+::
+log
+::
+Logg”
+ 
+T–ÃtS”viû
+::
+logg”_
+{
+	`FPSTR
+(
+__p¡r__logg”_Çme
+), uuid::log::
+Facž™y
+::
+DAEMON
+};
+
+70 
+T–ÃtS”viû
+::
+	`T–ÃtS”viû
+(
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Commªds
+> 
+commªds
+, 
+cÚ‹xt
+, 
+æags
+)
+
+71 : 
+	`T–ÃtS”viû
+(
+DEFAULT_PORT
+, 
+commªds
+, 
+cÚ‹xt
+, 
+æags
+) {
+
+74 
+T–ÃtS”viû
+::
+	`T–ÃtS”viû
+(
+ušt16_t
+ 
+pÜt
+, 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Commªds
+> 
+commªds
+, 
+cÚ‹xt
+, 
+æags
+)
+
+75 : 
+	`T–ÃtS”viû
+(
+pÜt
+,
+
+76 [
+commªds
+, 
+cÚ‹xt
+, 
+æags
+](
+SŒ—m
+ & 
+¡»am
+, cÚ¡ 
+IPAdd»ss
+ & 
+addr
+ 
+	`__©Œibu‹__
+((
+unu£d
+)), 
+ušt16_t
+ 
+pÜt
+ __attribute__((unused)))
+
+77 -> 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Sh–l
+> {  std::
+make_sh¬ed
+<uuid::cÚsÞe::
+SŒ—mCÚsÞe
+>(
+commªds
+, 
+¡»am
+, 
+cÚ‹xt
+, 
+æags
+); }) {
+
+80 
+T–ÃtS”viû
+::
+	`T–ÃtS”viû
+(
+sh–l_çùÜy_funùiÚ
+ 
+sh–l_çùÜy
+)
+
+81 : 
+	`T–ÃtS”viû
+(
+DEFAULT_PORT
+, 
+sh–l_çùÜy
+) {
+
+84 
+T–ÃtS”viû
+::
+	`T–ÃtS”viû
+(
+ušt16_t
+ 
+pÜt
+, 
+sh–l_çùÜy_funùiÚ
+ 
+sh–l_çùÜy
+)
+
+85 : 
+	`£rv”_
+(
+pÜt
+)
+
+86 , 
+	`sh–l_çùÜy_
+(
+sh–l_çùÜy
+) {
+
+89 
+T–ÃtS”viû
+::
+	`¡¬t
+() {
+
+90 
+£rv”_
+.
+	`begš
+();
+
+93 
+T–ÃtS”viû
+::
+	`þo£_®l
+() {
+
+94 !
+cÚÃùiÚs_
+.
+	`em±y
+()) {
+
+95 
+cÚÃùiÚs_
+.
+	`äÚt
+().
+	`¡Ý
+();
+
+96 
+cÚÃùiÚs_
+.
+	`pÝ_äÚt
+();
+
+100 
+T–ÃtS”viû
+::
+	`¡Ý
+() {
+
+101 
+£rv”_
+.
+	`¡Ý
+();
+
+104 
+size_t
+ 
+T–ÃtS”viû
+::
+	`maximum_cÚÃùiÚs
+() const {
+
+105  
+maximum_cÚÃùiÚs_
+;
+
+108 
+T–ÃtS”viû
+::
+	`maximum_cÚÃùiÚs
+(
+size_t
+ 
+couÁ
+) {
+
+109 
+maximum_cÚÃùiÚs_
+ = 
+¡d
+::
+	`max
+((
+size_t
+)1, 
+couÁ
+);
+
+111 
+cÚÃùiÚs_
+.
+	`size
+(è> 
+maximum_cÚÃùiÚs_
+) {
+
+112 autØ
+™
+ = 
+cÚÃùiÚs_
+.
+	`begš
+(); iˆ!ðcÚÃùiÚs_.
+	`’d
+();) {
+
+113 ià(
+™
+->
+	`aùive
+()) {
+
+114 
+™
+->
+	`¡Ý
+();
+
+115 
+™
+ = 
+cÚÃùiÚs_
+.
+	`”a£
+(it);
+
+118 
+™
+ = 
+cÚÃùiÚs_
+.
+	`”a£
+(it);
+
+124 
+T–ÃtS”viû
+::
+	`š™Ÿl_idË_timeout
+() const {
+
+125  
+š™Ÿl_idË_timeout_
+;
+
+128 
+T–ÃtS”viû
+::
+	`š™Ÿl_idË_timeout
+(
+timeout
+) {
+
+129 
+š™Ÿl_idË_timeout_
+ = 
+timeout
+;
+
+132 
+T–ÃtS”viû
+::
+	`deçuÉ_wr™e_timeout
+() const {
+
+133  
+wr™e_timeout_
+;
+
+136 
+T–ÃtS”viû
+::
+	`deçuÉ_wr™e_timeout
+(
+timeout
+) {
+
+137 
+wr™e_timeout_
+ = 
+timeout
+;
+
+140 
+T–ÃtS”viû
+::
+	`loÝ
+() {
+
+141 autØ
+™
+ = 
+cÚÃùiÚs_
+.
+	`begš
+(); iˆ!ðcÚÃùiÚs_.
+	`’d
+();) {
+
+142 ià(!
+™
+->
+	`loÝ
+()) {
+
+143 
+™
+ = 
+cÚÃùiÚs_
+.
+	`”a£
+(it);
+
+145 
+™
+++;
+
+149 
+WiFiCl›Á
+ 
+þ›Á
+ = 
+£rv”_
+.
+	`avažabË
+();
+
+150 ià(
+þ›Á
+) {
+
+151 ià(
+cÚÃùiÚs_
+.
+	`size
+(è>ð
+maximum_cÚÃùiÚs_
+) {
+
+152 #ià
+UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+
+
+153 
+logg”_
+.
+	`šfo
+(
+	`F
+("New connection from [%s]:%u„ejected (connection†imit„eached)"),
+
+154 
+uuid
+::
+	`´š�bË_to_¡ršg
+(
+þ›Á
+.
+	`»mÙeIP
+()).
+	`c_¡r
+(),
+
+155 
+þ›Á
+.
+	`»mÙePÜt
+());
+
+157 
+logg”_
+.
+	`šfo
+(
+	`F
+("New connection„ejected (connection†imit„eached)"));
+
+159 
+þ›Á
+.
+	`´šŽn
+(
+	`F
+("Maximum connection†imit„eached"));
+
+160 
+þ›Á
+.
+	`¡Ý
+();
+
+162 #ià
+UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+
+
+163 
+logg”_
+.
+	`šfo
+(
+	`F
+("New cÚÃùiÚ from [%s]:%u‡cû±ed"), 
+uuid
+::
+	`´š�bË_to_¡ršg
+(
+þ›Á
+.
+	`»mÙeIP
+()).
+	`c_¡r
+(), cl›Á.
+	`»mÙePÜt
+());
+
+165 
+cÚÃùiÚs_
+.
+	`em¶aû_back
+(
+sh–l_çùÜy_
+, 
+¡d
+::
+	`move
+(
+þ›Á
+), 
+š™Ÿl_idË_timeout_
+, 
+wr™e_timeout_
+);
+
+166 #ià!(
+UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+)
+
+167 
+logg”_
+.
+	`šfo
+(
+	`F
+("New cÚÃùiÚ %°acû±ed"), &
+cÚÃùiÚs_
+.
+	`back
+());
+
+173 
+T–ÃtS”viû
+::
+CÚÃùiÚ
+::
+	`CÚÃùiÚ
+(
+sh–l_çùÜy_funùiÚ
+ & 
+sh–l_çùÜy
+, 
+WiFiCl›Á
+ && 
+þ›Á
+, 
+idË_timeout
+, 
+wr™e_timeout
+)
+
+174 : 
+	`þ›Á_
+(
+¡d
+::
+	`move
+(
+þ›Á
+))
+
+175 , 
+	`¡»am_
+(
+þ›Á_
+) {
+
+176 #ià
+UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+
+
+178 
+addr_
+ = 
+þ›Á_
+.
+	`»mÙeIP
+();
+
+179 
+pÜt_
+ = 
+þ›Á_
+.
+	`»mÙePÜt
+();
+
+181 
+pÜt_
+ = 0;
+
+184 #ià
+UUID_TELNET_HAVE_WIFICLIENT_NODELAY
+
+
+185 
+þ›Á_
+.
+	`£tNoD–ay
+(
+Œue
+);
+
+188 #ià
+UUID_TELNET_HAVE_WIFICLIENT_KEEPALIVE
+
+
+190 
+þ›Á_
+.
+	`k“pAlive
+(5, 5, 5);
+
+193 ià(
+wr™e_timeout
+ > 0) {
+
+194 
+þ›Á_
+.
+	`£tTimeout
+(
+wr™e_timeout
+);
+
+197 
+¡»am_
+.
+	`¡¬t
+();
+
+199 ià(
+þ›Á_
+.
+	`cÚÃùed
+()) {
+
+200 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Sh–l
+> 
+sh–l
+ = 
+	`sh–l_çùÜy
+(
+¡»am_
+, 
+addr_
+, 
+pÜt_
+);
+
+201 
+sh–l
+->
+	`idË_timeout
+(
+idË_timeout
+);
+
+202 
+sh–l
+->
+	`¡¬t
+();
+
+203 
+sh–l_
+ = 
+sh–l
+;
+
+205 
+sh–l_
+ = 
+nuÎ±r
+;
+
+209 
+boÞ
+ 
+T–ÃtS”viû
+::
+CÚÃùiÚ
+::
+	`aùive
+() {
+
+210  
+sh–l_
+.
+	`u£_couÁ
+() > 1;
+
+213 
+boÞ
+ 
+T–ÃtS”viû
+::
+CÚÃùiÚ
+::
+	`loÝ
+() {
+
+214 ià(
+	`aùive
+()) {
+
+215 ià(!
+þ›Á_
+.
+	`cÚÃùed
+()) {
+
+216 
+sh–l_
+->
+	`¡Ý
+();
+
+218  
+Œue
+;
+
+220 #ià
+UUID_TELNET_HAVE_WIFICLIENT_REMOTE
+
+
+221 
+logg”_
+.
+	`šfo
+(
+	`F
+("CÚÃùiÚ from [%s]:%u clo£d"), 
+uuid
+::
+	`´š�bË_to_¡ršg
+(
+addr_
+).
+	`c_¡r
+(), 
+pÜt_
+);
+
+223 
+logg”_
+.
+	`šfo
+(
+	`F
+("CÚÃùiÚ %°þo£d"), 
+this
+);
+
+225  
+çl£
+;
+
+229 
+T–ÃtS”viû
+::
+CÚÃùiÚ
+::
+	`¡Ý
+() {
+
+230 ià(
+sh–l_
+) {
+
+231 
+sh–l_
+->
+	`¡Ý
+();
+
+237 
+	}
+}
+
+	@lib/uuid-telnet/src/uuid/telnet.h
+
+19 #iâdeà
+UUID_TELNET_H_
+
+
+20 
+	#UUID_TELNET_H_
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 #ifdeà
+ARDUINO_ARCH_ESP8266
+
+
+24 
+	~<ESP8266WiFi.h
+>
+
+26 
+	~<WiFi.h
+>
+
+28 
+	~<WiFiUdp.h
+>
+
+30 
+	~<funùiÚ®
+>
+
+31 
+	~<li¡
+>
+
+32 
+	~<memÜy
+>
+
+33 
+	~<¡ršg
+>
+
+34 
+	~<veùÜ
+>
+
+36 
+	~<uuid/cÚsÞe.h
+>
+
+38 
+Çme¥aû
+ 
+	guuid
+ {
+
+46 
+Çme¥aû
+ 
+	g‹Ê‘
+ {
+
+54 þas 
+	cT–ÃtSŒ—m
+: 
+public
+ ::
+SŒ—m
+ {
+
+55 
+public
+:
+
+62 
+ex¶ic™
+ 
+T–ÃtSŒ—m
+(
+WiFiCl›Á
+ &
+þ›Á
+);
+
+63 
+	gvœtu®
+ ~
+T–ÃtSŒ—m
+() = ;
+
+70 
+¡¬t
+();
+
+78 
+avažabË
+(è
+	gov”ride
+;
+
+85 
+»ad
+(è
+	gov”ride
+;
+
+93 
+³ek
+(è
+	gov”ride
+;
+
+103 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+d©a
+è
+	gov”ride
+;
+
+114 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+bufãr
+, size_ˆ
+size
+è
+	gov”ride
+;
+
+125 
+æush
+(è
+	gov”ride
+;
+
+127 
+	g´iv©e
+:
+
+128 
+cÚ¡ex´
+ cÚ¡ 
+NUL
+ = 0;
+
+129 
+cÚ¡ex´
+ cÚ¡ 
+	gBEL
+ = 7;
+
+130 
+cÚ¡ex´
+ cÚ¡ 
+	gBS
+ = 8;
+
+131 
+cÚ¡ex´
+ cÚ¡ 
+	gHT
+ = 9;
+
+132 
+cÚ¡ex´
+ cÚ¡ 
+	gLF
+ = 10;
+
+133 
+cÚ¡ex´
+ cÚ¡ 
+	gVT
+ = 11;
+
+134 
+cÚ¡ex´
+ cÚ¡ 
+	gFF
+ = 12;
+
+135 
+cÚ¡ex´
+ cÚ¡ 
+	gCR
+ = 13;
+
+136 
+cÚ¡ex´
+ cÚ¡ 
+	gSE
+ = 240;
+
+137 
+cÚ¡ex´
+ cÚ¡ 
+	gNOP
+ = 241;
+
+138 
+cÚ¡ex´
+ cÚ¡ 
+	gDM
+ = 242;
+
+139 
+cÚ¡ex´
+ cÚ¡ 
+	gBRK
+ = 243;
+
+140 
+cÚ¡ex´
+ cÚ¡ 
+	gIP
+ = 244;
+
+141 
+cÚ¡ex´
+ cÚ¡ 
+	gAO
+ = 245;
+
+142 
+cÚ¡ex´
+ cÚ¡ 
+	gAYT
+ = 246;
+
+143 
+cÚ¡ex´
+ cÚ¡ 
+	gEC
+ = 247;
+
+144 
+cÚ¡ex´
+ cÚ¡ 
+	gEL
+ = 248;
+
+145 
+cÚ¡ex´
+ cÚ¡ 
+	gGA
+ = 249;
+
+146 
+cÚ¡ex´
+ cÚ¡ 
+	gSB
+ = 250;
+
+147 
+cÚ¡ex´
+ cÚ¡ 
+	gWILL
+ = 251;
+
+148 
+cÚ¡ex´
+ cÚ¡ 
+	gWONT
+ = 252;
+
+149 
+cÚ¡ex´
+ cÚ¡ 
+	gDO
+ = 253;
+
+150 
+cÚ¡ex´
+ cÚ¡ 
+	gDONT
+ = 254;
+
+151 
+cÚ¡ex´
+ cÚ¡ 
+	gIAC
+ = 255;
+
+153 
+cÚ¡ex´
+ cÚ¡ 
+	gOPT_BINARY
+ = 0;
+
+154 
+cÚ¡ex´
+ cÚ¡ 
+	gOPT_ECHO
+ = 1;
+
+155 
+cÚ¡ex´
+ cÚ¡ 
+	gOPT_SGA
+ = 3;
+
+157 
+cÚ¡ex´
+ cÚ¡ 
+size_t
+ 
+	gBUFFER_SIZE
+ = 536;
+
+159 
+T–ÃtSŒ—m
+(cÚ¡ T–ÃtSŒ—m&èð
+d–‘e
+;
+
+160 
+	gT–ÃtSŒ—m
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+T–ÃtSŒ—m
+&èð
+d–‘e
+;
+
+168 
+¿w_avažabË
+();
+
+175 
+¿w_»ad
+();
+
+183 
+bufãr_æush
+();
+
+193 
+size_t
+ 
+¿w_wr™e
+(
+d©a
+);
+
+203 
+size_t
+ 
+¿w_wr™e
+(cÚ¡ 
+¡d
+::
+veùÜ
+<> &
+d©a
+);
+
+214 
+size_t
+ 
+¿w_wr™e
+(cÚ¡ 
+ušt8_t
+ *
+bufãr
+, size_ˆ
+size
+);
+
+216 
+	gWiFiCl›Á
+ &
+	gþ›Á_
+;
+
+217 
+	g´evious_¿w_š_
+ = 0;
+
+218 
+boÞ
+ 
+	gsub_ÃgÙŸtiÚ_
+ = 
+çl£
+;
+
+219 
+	g´evious_š_
+ = 0;
+
+220 
+	g´evious_out_
+ = 0;
+
+221 
+	g³ek_
+ = -1;
+
+222 
+	g¡d
+::
+veùÜ
+<> 
+ou�ut_bufãr_
+;
+
+230 þas 
+	cT–ÃtS”viû
+ {
+
+231 
+	gpublic
+:
+
+232 
+cÚ¡ex´
+ 
+size_t
+ 
+MAX_CONNECTIONS
+ = 3;
+
+233 
+cÚ¡ex´
+ 
+ušt16_t
+ 
+	gDEFAULT_PORT
+ = 23;
+
+234 
+cÚ¡ex´
+ 
+	gDEFAULT_IDLE_TIMEOUT
+ = 600;
+
+235 
+cÚ¡ex´
+ 
+	gDEFAULT_WRITE_TIMEOUT
+ = 0;
+
+245 
+usšg
+ 
+	gsh–l_çùÜy_funùiÚ
+ = 
+¡d
+::
+funùiÚ
+<¡d::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Sh–l
+>(
+SŒ—m
+ &
+¡»am
+, cÚ¡ 
+	gIPAdd»ss
+ &
+	gaddr
+, 
+ušt16_t
+ 
+	gpÜt
+)>;
+
+255 
+T–ÃtS”viû
+(
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Commªds
+> 
+commªds
+, 
+cÚ‹xt
+ = 0, 
+æags
+ = 0);
+
+266 
+T–ÃtS”viû
+(
+ušt16_t
+ 
+pÜt
+, 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Commªds
+> 
+commªds
+, 
+cÚ‹xt
+ = 0, 
+æags
+ = 0);
+
+274 
+ex¶ic™
+ 
+T–ÃtS”viû
+(
+sh–l_çùÜy_funùiÚ
+ 
+sh–l_çùÜy
+);
+
+283 
+T–ÃtS”viû
+(
+ušt16_t
+ 
+pÜt
+, 
+sh–l_çùÜy_funùiÚ
+ 
+sh–l_çùÜy
+);
+
+285 ~
+T–ÃtS”viû
+() = ;
+
+292 
+¡¬t
+();
+
+300 
+þo£_®l
+();
+
+308 
+¡Ý
+();
+
+316 
+size_t
+ 
+maximum_cÚÃùiÚs
+() const;
+
+324 
+maximum_cÚÃùiÚs
+(
+size_t
+ 
+couÁ
+);
+
+332 
+š™Ÿl_idË_timeout
+() const;
+
+341 
+š™Ÿl_idË_timeout
+(
+timeout
+);
+
+350 
+deçuÉ_wr™e_timeout
+() const;
+
+361 
+deçuÉ_wr™e_timeout
+(
+timeout
+);
+
+368 
+loÝ
+();
+
+370 
+	g´iv©e
+:
+
+378 þas 
+	cCÚÃùiÚ
+ {
+
+379 
+public
+:
+
+389 
+CÚÃùiÚ
+(
+sh–l_çùÜy_funùiÚ
+ &
+sh–l_çùÜy
+, 
+WiFiCl›Á
+ &&
+þ›Á
+, 
+idË_timeout
+, 
+wr™e_timeout
+);
+
+390 ~
+CÚÃùiÚ
+() = ;
+
+398 
+boÞ
+ 
+aùive
+();
+
+405 
+boÞ
+ 
+loÝ
+();
+
+411 
+¡Ý
+();
+
+413 
+	g´iv©e
+:
+
+414 
+CÚÃùiÚ
+(cÚ¡ CÚÃùiÚ&èð
+d–‘e
+;
+
+415 
+	gCÚÃùiÚ
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+CÚÃùiÚ
+&èð
+d–‘e
+;
+
+417 
+WiFiCl›Á
+ 
+	gþ›Á_
+;
+
+418 
+T–ÃtSŒ—m
+ 
+	g¡»am_
+;
+
+419 
+	g¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Sh–l
+> 
+sh–l_
+;
+
+420 
+IPAdd»ss
+ 
+	gaddr_
+;
+
+421 
+ušt16_t
+ 
+	gpÜt_
+;
+
+424 
+T–ÃtS”viû
+(cÚ¡ T–ÃtS”viû&èð
+d–‘e
+;
+
+425 
+	gT–ÃtS”viû
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+T–ÃtS”viû
+&èð
+d–‘e
+;
+
+427 
+	guuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+429 
+WiFiS”v”
+ 
+	g£rv”_
+;
+
+430 
+size_t
+ 
+	gmaximum_cÚÃùiÚs_
+ = 
+MAX_CONNECTIONS
+;
+
+431 
+	g¡d
+::
+li¡
+<
+CÚÃùiÚ
+> 
+cÚÃùiÚs_
+;
+
+432 
+sh–l_çùÜy_funùiÚ
+ 
+	gsh–l_çùÜy_
+;
+
+433 
+	gš™Ÿl_idË_timeout_
+ = 
+DEFAULT_IDLE_TIMEOUT
+;
+
+434 
+	gwr™e_timeout_
+ = 
+DEFAULT_WRITE_TIMEOUT
+;
+
+	@lib_standalone/Arduino.cpp
+
+18 
+	~<Ardušo.h
+>
+
+19 
+	~<¡dio.h
+>
+
+20 
+	~<¡d¬g.h
+>
+
+22 
+	~<¡ršg
+>
+
+24 
+N©iveCÚsÞe
+ 
+	gS”Ÿl
+;
+
+35 
+	g__mžlis
+ = 0;
+
+36 
+boÞ
+ 
+	g__ou�ut_pšs
+[256];
+
+37 
+	g__ou�ut_Ëv–
+[256];
+
+39 
+maš
+(
+¬gc
+ 
+__©Œibu‹__
+((
+unu£d
+)), * 
+¬gv
+[] __attribute__((unused))) {
+
+40 
+mem£t
+(
+__ou�ut_pšs
+, 0, (__output_pins));
+
+41 
+mem£t
+(
+__ou�ut_Ëv–
+, 0, (__output_level));
+
+43 
+£tup
+();
+
+46 
+	g__cyþes
+ = 0;
+
+48 
+mžlis
+(è<ð10 * 1000 && 
+__cyþes
+++ <= 10 * 1000) {
+
+49 
+loÝ
+();
+
+55 
+	$mžlis
+() {
+
+56  
+__mžlis
+;
+
+57 
+	}
+}
+
+59 
+	$d–ay
+(
+mžlis
+) {
+
+60 
+__mžlis
+ +ð
+mžlis
+;
+
+61 
+	}
+}
+
+63 
+	$y›ld
+() {
+
+64 
+	}
+}
+
+66 
+	$¢´štf_P
+(* 
+¡r
+, 
+size_t
+ 
+size
+, cÚ¡ * 
+fÜm©
+, ...) {
+
+67 
+va_li¡
+ 
+­
+;
+
+69 
+	`va_¡¬t
+(
+­
+, 
+fÜm©
+);
+
+70 
+»t
+ = 
+	`v¢´štf_P
+(
+¡r
+, 
+size
+, 
+fÜm©
+, 
+­
+);
+
+71 
+	`va_’d
+(
+­
+);
+
+73  
+»t
+;
+
+74 
+	}
+}
+
+76 
+	$v¢´štf_P
+(* 
+¡r
+, 
+size_t
+ 
+size
+, cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+) {
+
+77 
+¡d
+::
+¡ršg
+ 
+Çtive_fÜm©
+;
+
+79 
+´evious
+ = 0;
+
+80 
+size_t
+ 
+i
+ = 0; i < 
+	`¡¾’
+(
+fÜm©
+); i++) {
+
+81 
+c
+ = 
+fÜm©
+[
+i
+];
+
+86 ià(
+´evious
+ =ð'%' && 
+c
+ == 'S') {
+
+87 
+c
+ = 's';
+
+90 
+Çtive_fÜm©
+ +ð
+c
+;
+
+91 
+´evious
+ = 
+c
+;
+
+94  
+	`v¢´štf
+(
+¡r
+, 
+size
+, 
+Çtive_fÜm©
+.
+	`c_¡r
+(), 
+­
+);
+
+95 
+	}
+}
+
+97 
+	$pšMode
+(
+ušt8_t
+ 
+pš
+, ušt8_ˆ
+mode
+) {
+
+98 
+__ou�ut_pšs
+[
+pš
+] = (
+mode
+ =ð
+OUTPUT
+);
+
+99 
+	}
+}
+
+101 
+	$dig™®Wr™e
+(
+ušt8_t
+ 
+pš
+, ušt8_ˆ
+v®ue
+) {
+
+102 
+__ou�ut_Ëv–
+[
+pš
+] = (
+v®ue
+ =ð
+HIGH
+è? HIGH : 
+LOW
+;
+
+103 
+	}
+}
+
+105 
+	$dig™®R—d
+(
+ušt8_t
+ 
+pš
+) {
+
+106 ià(
+__ou�ut_pšs
+[
+pš
+]) {
+
+107  
+__ou�ut_Ëv–
+[
+pš
+];
+
+108 } ià(
+pš
+ & 1) {
+
+109  
+HIGH
+;
+
+111  
+LOW
+;
+
+113 
+	}
+}
+
+	@lib_standalone/Arduino.h
+
+18 #iâdeà
+ARDUINO_H_
+
+
+19 
+	#ARDUINO_H_
+
+
+	)
+
+21 
+	~<uni¡d.h
+>
+
+23 
+	~<c¡ddef
+>
+
+24 
+	~<c¡dšt
+>
+
+25 
+	~<c¡ršg
+>
+
+26 
+	~<¡ršg
+>
+
+27 
+	~<®gÜ™hm
+>
+
+29 
+	~<io¡»am
+>
+
+31 
+	#IPAdd»ss
+ 
+¡d
+::
+¡ršg
+
+
+	)
+
+32 
+	#ICACHE_FLASH_ATTR
+
+
+	)
+
+33 
+	#ICACHE_RAM_ATTR
+
+
+	)
+
+34 
+	#os_ev’t_t
+ 
+
+	)
+
+35 
+	#by‹
+ 
+ušt8_t
+
+
+	)
+
+36 
+	#Éß
+ 
+™ß
+
+
+	)
+
+37 
+	#boÞ—n
+ 
+boÞ
+
+
+	)
+
+39 
+	#LOW
+ 0
+
+	)
+
+40 
+	#HIGH
+ 1
+
+	)
+
+42 
+	#NAN
+ 0
+
+	)
+
+44 
+	#INPUT
+ 0
+
+	)
+
+45 
+	#OUTPUT
+ 1
+
+	)
+
+46 
+	#INPUT_PULLUP
+ 2
+
+	)
+
+48 
+pšMode
+(
+ušt8_t
+ 
+pš
+, ušt8_ˆ
+mode
+);
+
+49 
+dig™®Wr™e
+(
+ušt8_t
+ 
+pš
+, ušt8_ˆ
+v®ue
+);
+
+50 
+dig™®R—d
+(
+ušt8_t
+ 
+pš
+);
+
+52 
+	#PROGMEM
+
+
+	)
+
+53 
+	#PGM_P
+ cÚ¡ *
+
+	)
+
+54 
+	#PSTR
+(
+s
+) \
+
+55 (
+	`__ex‹nsiÚ__
+({ \
+
+56 cÚ¡ 
+__c
+[] = (
+s
+); \
+
+57 &
+__c
+[0]; \
+
+58 }))
+
+	)
+
+61 
+þass
+ 
+	g__FÏshSŒšgH–³r
+;
+
+62 
+	#FPSTR
+(
+¡ršg_l™”®
+è(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+ *>(¡ršg_l™”®))
+
+	)
+
+63 
+	#F
+(
+¡ršg_l™”®
+è(
+	`FPSTR
+(
+	`PSTR
+(¡ršg_l™”®)))
+
+	)
+
+65 
+¢´štf_P
+(* 
+¡r
+, 
+size_t
+ 
+size
+, cÚ¡ * 
+fÜm©
+, ...);
+
+66 
+v¢´štf_P
+(* 
+¡r
+, 
+size_t
+ 
+size
+, cÚ¡ * 
+fÜm©
+, 
+va_li¡
+ 
+­
+);
+
+68 
+	#pgm_»ad_by‹
+(
+addr
+è(*
+»š‹½»t_ÿ¡
+<cÚ¡ *>×ddr))
+
+	)
+
+70 
+þass
+ 
+	gPršt
+;
+
+72 þas 
+	cPrš�bË
+ {
+
+73 
+	mpublic
+:
+
+74 
+vœtu®
+ 
+size_t
+ 
+	$´štTo
+(
+Pršt
+ & 
+´št
+) const = 0;
+
+77 þas 
+	cPršt
+ {
+
+78 
+public
+:
+
+79 
+vœtu®
+ 
+size_t
+ 
+	`wr™e
+(
+ušt8_t
+ 
+c
+) = 0;
+
+80 
+vœtu®
+ 
+size_t
+ 
+	`wr™e
+(cÚ¡ 
+ušt8_t
+ * 
+bufãr
+, size_ˆ
+size
+) = 0;
+
+81 
+size_t
+ 
+	$´št
+(
+c
+) {
+
+82  
+	`wr™e
+((
+ušt8_t
+)
+c
+);
+
+84 
+size_t
+ 
+	$´št
+(cÚ¡ * 
+d©a
+) {
+
+85  
+	`wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+d©a
+), 
+	`¡¾’
+(data));
+
+86 
+	}
+}
+
+87 
+size_t
+ 
+	$´št
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) {
+
+88  
+	`´št
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+d©a
+));
+
+89 
+	}
+}
+
+90 
+size_t
+ 
+	$´št
+(cÚ¡ 
+Prš�bË
+ & 
+´š�bË
+) {
+
+91  
+´š�bË
+.
+	`´štTo
+(*
+this
+);
+
+92 
+	}
+}
+
+93 
+size_t
+ 
+	$´št
+(
+v®ue
+) {
+
+94  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+());
+
+95 
+	}
+}
+
+96 
+size_t
+ 
+	$´št
+(
+v®ue
+) {
+
+97  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+());
+
+98 
+	}
+}
+
+99 
+size_t
+ 
+	$´št
+(
+v®ue
+) {
+
+100  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+());
+
+101 
+	}
+}
+
+102 
+size_t
+ 
+	$´št
+(
+v®ue
+) {
+
+103  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+());
+
+104 
+	}
+}
+
+105 
+size_t
+ 
+	$´šŽn
+() {
+
+106  
+	`´št
+("\r\n");
+
+107 
+	}
+}
+
+108 
+size_t
+ 
+	$´šŽn
+(cÚ¡ * 
+d©a
+) {
+
+109  
+	`´št
+(
+d©a
+è+ 
+	`´šŽn
+();
+
+110 
+	}
+}
+
+111 
+size_t
+ 
+	$´šŽn
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+d©a
+) {
+
+112  
+	`´št
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+d©a
+)è+ 
+	`´šŽn
+();
+
+113 
+	}
+}
+
+114 
+size_t
+ 
+	$´šŽn
+(cÚ¡ 
+Prš�bË
+ & 
+´š�bË
+) {
+
+115  
+´š�bË
+.
+	`´štTo
+(*
+this
+è+ 
+	`´šŽn
+();
+
+116 
+	}
+}
+
+117 
+size_t
+ 
+	$´šŽn
+(
+v®ue
+) {
+
+118  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+()è+ 
+	`´šŽn
+();
+
+119 
+	}
+}
+
+120 
+size_t
+ 
+	$´šŽn
+(
+v®ue
+) {
+
+121  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+()è+ 
+	`´šŽn
+();
+
+122 
+	}
+}
+
+123 
+size_t
+ 
+	$´šŽn
+(
+v®ue
+) {
+
+124  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+()è+ 
+	`´šŽn
+();
+
+125 
+	}
+}
+
+126 
+size_t
+ 
+	$´šŽn
+(
+v®ue
+) {
+
+127  
+	`´št
+(
+¡d
+::
+	`to_¡ršg
+(
+v®ue
+).
+	`c_¡r
+()è+ 
+	`´šŽn
+();
+
+128 
+	}
+}
+
+129 
+vœtu®
+ 
+	$æush
+(){
+	}
+};
+
+132 þas 
+	cSŒ—m
+ : 
+public
+ 
+Pršt
+ {
+
+133 
+public
+:
+
+134 
+vœtu®
+ 
+avažabË
+() = 0;
+
+135 
+vœtu®
+ 
+»ad
+() = 0;
+
+136 
+vœtu®
+ 
+³ek
+() = 0;
+
+139 þas 
+	cN©iveCÚsÞe
+ : 
+public
+ 
+SŒ—m
+ {
+
+140 
+public
+:
+
+141 
+begš
+(
+baud
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+144 
+	$avažabË
+(è
+ov”ride
+ {
+
+145 ià(
+	`³ek
+() >= 0) {
+
+150 
+	}
+}
+
+152 
+	$»ad
+(è
+ov”ride
+ {
+
+153 
+	`³ek
+();
+
+155 ià(
+³ek_
+) {
+
+156 
+³ek_
+ = 
+çl£
+;
+
+157  
+³ek_d©a_
+;
+
+161 
+	}
+}
+
+163 
+	$³ek
+(è
+ov”ride
+ {
+
+164 ià(!
+³ek_
+) {
+
+165 
+»t
+ = ::
+	`»ad
+(
+STDIN_FILENO
+, &
+³ek_d©a_
+, 1);
+
+166 
+³ek_
+ = 
+»t
+ > 0;
+
+169 ià(
+³ek_
+) {
+
+170  
+³ek_d©a_
+;
+
+174 
+	}
+}
+
+176 
+size_t
+ 
+	$wr™e
+(
+ušt8_t
+ 
+c
+è
+ov”ride
+ {
+
+177  ::
+	`wr™e
+(
+STDOUT_FILENO
+, &
+c
+, 1);
+
+178 
+	}
+}
+
+180 
+size_t
+ 
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ * 
+bufãr
+, 
+size_t
+ 
+size
+è
+ov”ride
+ {
+
+181  ::
+	`wr™e
+(
+STDOUT_FILENO
+, 
+bufãr
+, 
+size
+);
+
+182 
+	}
+}
+
+184 
+	g´iv©e
+:
+
+185 
+boÞ
+ 
+³ek_
+ = 
+çl£
+;
+
+186 
+	g³ek_d©a_
+;
+
+189 
+N©iveCÚsÞe
+ 
+S”Ÿl
+;
+
+191 
+mžlis
+();
+
+193 
+d–ay
+(
+mžlis
+);
+
+195 
+y›ld
+();
+
+197 
+£tup
+();
+
+198 
+loÝ
+();
+
+200 
+	~"WSŒšg.h
+"
+
+	@lib_standalone/ArduinoJson/ArduinoJson.h
+
+5 
+	~"¤c/ArdušoJsÚ.h
+"
+
+	@lib_standalone/ArduinoJson/extras/fuzzing/fuzzer_main.cpp
+
+8 
+	~<¡dšt.h
+>
+
+9 
+	~<¡dio.h
+>
+
+10 
+	~<¡dlib.h
+>
+
+11 
+	~<io¡»am
+>
+
+12 
+	~<veùÜ
+>
+
+14 
"C" 
+LLVMFuzz”Te¡OÃIÅut
+(cÚ¡ 
+ušt8_t
+* 
+d©a
+, 
+size_t
+ 
+size
+);
+
+16 
+	g¡d
+::
+veùÜ
+<
+ušt8_t
+> 
+	$»ad
+(cÚ¡ * 
+·th
+) {
+
+17 
+FILE
+* 
+f
+ = 
+	`fÝ’
+(
+·th
+, "rb");
+
+18 ià(!
+f
+) {
+
+19 
+¡d
+::
+û¼
+ << "Fažed�ØÝ’ " << 
+·th
+ << std::
+’dl
+;
+
+20 
+	`ex™
+(1);
+
+23 
+	`f£ek
+(
+f
+, 0, 
+SEEK_END
+);
+
+24 
+size_t
+ 
+size
+ = 
+	`á–l
+(
+f
+);
+
+25 
+	`f£ek
+(
+f
+, 0, 
+SEEK_SET
+);
+
+27 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> 
+	`bufãr
+(
+size
+);
+
+28 ià(
+	`ä—d
+(
+bufãr
+.
+	`d©a
+(), 1, 
+size
+, 
+f
+) != size) {
+
+29 
+	`fþo£
+(
+f
+);
+
+30 
+¡d
+::
+û¼
+ << "Fažed�Ø»ad " << 
+·th
+ << std::
+’dl
+;
+
+31 
+	`ex™
+(1);
+
+34 
+	`fþo£
+(
+f
+);
+
+35  
+bufãr
+;
+
+36 
+	}
+}
+
+38 
+	$maš
+(
+¬gc
+, cÚ¡ * 
+¬gv
+[]) {
+
+39 ià(
+¬gc
+ < 2) {
+
+40 
+¡d
+::
+û¼
+ << "U§ge: msg·ck_fuzz” fžes" << std::
+’dl
+;
+
+44 
+i
+ = 1; i < 
+¬gc
+; i++) {
+
+45 
+¡d
+::
+cout
+ << "Lßdšg " << 
+¬gv
+[
+i
+] << std::
+’dl
+;
+
+46 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> 
+bufãr
+ = 
+	`»ad
+(
+¬gv
+[
+i
+]);
+
+47 
+	`LLVMFuzz”Te¡OÃIÅut
+(
+bufãr
+.
+	`d©a
+(), bufãr.
+	`size
+());
+
+50 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/fuzzing/json_fuzzer.cpp
+
+1 
+	~<ArdušoJsÚ.h
+>
+
+3 
"C" 
+	$LLVMFuzz”Te¡OÃIÅut
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+size
+) {
+
+4 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+5 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeJsÚ
+(
+doc
+, 
+d©a
+, 
+size
+);
+
+6 ià(!
+”rÜ
+) {
+
+7 
+¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+8 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+11 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/fuzzing/msgpack_fuzzer.cpp
+
+1 
+	~<ArdušoJsÚ.h
+>
+
+3 
"C" 
+	$LLVMFuzz”Te¡OÃIÅut
+(cÚ¡ 
+ušt8_t
+ *
+d©a
+, 
+size_t
+ 
+size
+) {
+
+4 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+5 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeMsgPack
+(
+doc
+, 
+d©a
+, 
+size
+);
+
+6 ià(!
+”rÜ
+) {
+
+7 
+¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+8 
+	`£rŸlizeMsgPack
+(
+doc
+, 
+jsÚ
+);
+
+11 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp
+
+7 
+	~<io¡»am
+>
+
+8 
+	~"ArdušoJsÚ.h
+"
+
+10 
+	$maš
+() {
+
+16 
+S�ticJsÚDocum’t
+<200> 
+doc
+;
+
+30 
+doc
+["sensor"] = "gps";
+
+31 
+doc
+["time"] = 1351824120;
+
+35 
+JsÚA¼ay
+ 
+d©a
+ = 
+doc
+.
+	`ü—‹Ne¡edA¼ay
+("data");
+
+36 
+d©a
+.
+	`add
+(48.756080);
+
+37 
+d©a
+.
+	`add
+(2.302038);
+
+41 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+cout
+);
+
+46 
+¡d
+::
+cout
+ << std::
+’dl
+;
+
+50 
+	`£rŸlizeJsÚP»‰y
+(
+doc
+, 
+¡d
+::
+cout
+);
+
+60 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp
+
+7 
+	~<io¡»am
+>
+
+8 
+	~"ArdušoJsÚ.h
+"
+
+10 
+	$maš
+() {
+
+16 
+S�ticJsÚDocum’t
+<300> 
+doc
+;
+
+31 
+jsÚ
+[] =
+
+35 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+38 ià(
+”rÜ
+) {
+
+39 
+¡d
+::
+û¼
+ << "de£rŸlizeJsÚ(èçžed: " << 
+”rÜ
+.
+	`c_¡r
+(è<< std::
+’dl
+;
+
+47 cÚ¡ * 
+£nsÜ
+ = 
+doc
+["sensor"];
+
+48 
+time
+ = 
+doc
+["time"];
+
+49 
+Ït™ude
+ = 
+doc
+["data"][0];
+
+50 
+lÚg™ude
+ = 
+doc
+["data"][1];
+
+53 
+¡d
+::
+cout
+ << 
+£nsÜ
+ << std::
+’dl
+;
+
+54 
+¡d
+::
+cout
+ << 
+time
+ << std::
+’dl
+;
+
+55 
+¡d
+::
+cout
+ << 
+Ït™ude
+ << std::
+’dl
+;
+
+56 
+¡d
+::
+cout
+ << 
+lÚg™ude
+ << std::
+’dl
+;
+
+59 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp
+
+7 
+	~<io¡»am
+>
+
+8 
+	~"ArdušoJsÚ.h
+"
+
+10 
+	$maš
+() {
+
+16 
+S�ticJsÚDocum’t
+<300> 
+doc
+;
+
+28 
+ušt8_t
+ 
+šput
+[] = {131, 166, 115, 101, 110, 115, 111, 114, 163, 103, 112, 115,
+
+44 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+47 ià(
+”rÜ
+) {
+
+48 
+¡d
+::
+û¼
+ << "de£rŸlizeMsgPack(èçžed: " << 
+”rÜ
+.
+	`c_¡r
+(è<< std::
+’dl
+;
+
+56 cÚ¡ * 
+£nsÜ
+ = 
+doc
+["sensor"];
+
+57 
+time
+ = 
+doc
+["time"];
+
+58 
+Ït™ude
+ = 
+doc
+["data"][0];
+
+59 
+lÚg™ude
+ = 
+doc
+["data"][1];
+
+62 
+¡d
+::
+cout
+ << 
+£nsÜ
+ << std::
+’dl
+;
+
+63 
+¡d
+::
+cout
+ << 
+time
+ << std::
+’dl
+;
+
+64 
+¡d
+::
+cout
+ << 
+Ït™ude
+ << std::
+’dl
+;
+
+65 
+¡d
+::
+cout
+ << 
+lÚg™ude
+ << std::
+’dl
+;
+
+68 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/tests/ElementProxy/add.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("ElementProxy::add()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gdoc
+.
+addEËm’t
+();
+
+13 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	g•
+ = 
+doc
+[0];
+
+15 
+SECTION
+("add(int)") {
+
+16 
+	g•
+.
+add
+(42);
+
+18 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[[42]]");
+
+21 
+SECTION
+("add(const char*)") {
+
+22 
+	g•
+.
+add
+("world");
+
+24 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[[\"world\"]]");
+
+27 
+SECTION
+("set(char[])") {
+
+28 
+	gs
+[] = "world";
+
+29 
+	g•
+.
+add
+(
+s
+);
+
+30 
+¡rýy
+(
+s
+, "!!!!!");
+
+32 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[[\"world\"]]");
+
+	@lib_standalone/ArduinoJson/extras/tests/ElementProxy/clear.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("ElementProxy::clear()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gdoc
+.
+addEËm’t
+();
+
+13 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	g•
+ = 
+doc
+[0];
+
+15 
+SECTION
+("size goes back�o zero") {
+
+16 
+	g•
+.
+add
+(42);
+
+17 
+	g•
+.
+þ—r
+();
+
+19 
+REQUIRE
+(
+•
+.
+size
+() == 0);
+
+22 
+SECTION
+("isNull()„eturn�rue") {
+
+23 
+	g•
+.
+add
+("hello");
+
+24 
+	g•
+.
+þ—r
+();
+
+26 
+REQUIRE
+(
+•
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/ElementProxy/compare.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("ElementProxy::operator==()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+13 
+SECTION
+("same value") {
+
+14 
+	gdoc
+.
+add
+(1);
+
+15 
+	gdoc
+.
+add
+(1);
+
+17 
+REQUIRE
+(
+doc
+[0] == doc[1]);
+
+18 
+REQUIRE_FALSE
+(
+doc
+[0] != doc[1]);
+
+21 
+SECTION
+("different values") {
+
+22 
+	gdoc
+.
+add
+(1);
+
+23 
+	gdoc
+.
+add
+(2);
+
+25 
+REQUIRE_FALSE
+(
+doc
+[0] == doc[1]);
+
+26 
+REQUIRE
+(
+doc
+[0] != doc[1]);
+
+	@lib_standalone/ArduinoJson/extras/tests/ElementProxy/remove.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("ElementProxy::remove()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gdoc
+.
+addEËm’t
+();
+
+13 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	g•
+ = 
+doc
+[0];
+
+15 
+SECTION
+("remove(int)") {
+
+16 
+	g•
+.
+add
+(1);
+
+17 
+	g•
+.
+add
+(2);
+
+18 
+	g•
+.
+add
+(3);
+
+20 
+	g•
+.
+»move
+(1);
+
+22 
+REQUIRE
+(
+•
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[1,3]");
+
+25 
+SECTION
+("remove(const char *)") {
+
+26 
+	g•
+["a"] = 1;
+
+27 
+	g•
+["b"] = 2;
+
+29 
+	g•
+.
+»move
+("a");
+
+31 
+REQUIRE
+(
+•
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"b\":2}");
+
+34 
+SECTION
+("remove(std::string)") {
+
+35 
+	g•
+["a"] = 1;
+
+36 
+	g•
+["b"] = 2;
+
+38 
+	g•
+.
+»move
+(
+¡d
+::
+¡ršg
+("b"));
+
+40 
+REQUIRE
+(
+•
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1}");
+
+43 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+44 
+SECTION
+("remove(vla)") {
+
+45 
+	g•
+["a"] = 1;
+
+46 
+	g•
+["b"] = 2;
+
+48 
+	gi
+ = 4;
+
+49 
+	gvÏ
+[
+i
+];
+
+50 
+¡rýy
+(
+vÏ
+, "b");
+
+51 
+	g•
+.
+»move
+(
+vÏ
+);
+
+53 
+REQUIRE
+(
+•
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1}");
+
+	@lib_standalone/ArduinoJson/extras/tests/ElementProxy/set.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("ElementProxy::set()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	g•
+ = 
+doc
+[0];
+
+14 
+SECTION
+("set(int)") {
+
+15 
+	g•
+.
+£t
+(42);
+
+17 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[42]");
+
+20 
+SECTION
+("set(const char*)") {
+
+21 
+	g•
+.
+£t
+("world");
+
+23 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[\"world\"]");
+
+26 
+SECTION
+("set(char[])") {
+
+27 
+	gs
+[] = "world";
+
+28 
+	g•
+.
+£t
+(
+s
+);
+
+29 
+¡rýy
+(
+s
+, "!!!!!");
+
+31 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[\"world\"]");
+
+	@lib_standalone/ArduinoJson/extras/tests/ElementProxy/size.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("ElementProxy::size()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gdoc
+.
+addEËm’t
+();
+
+13 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	g•
+ = 
+doc
+[0];
+
+15 
+SECTION
+("returns 0") {
+
+16 
+REQUIRE
+(
+•
+.
+size
+() == 0);
+
+19 
+SECTION
+("as‡n‡rray,„eturns 2") {
+
+20 
+	g•
+.
+add
+(1);
+
+21 
+	g•
+.
+add
+(2);
+
+22 
+REQUIRE
+(
+•
+.
+size
+() == 2);
+
+25 
+SECTION
+("as‡n object,„eturns 2") {
+
+26 
+	g•
+["a"] = 1;
+
+27 
+	g•
+["b"] = 2;
+
+28 
+REQUIRE
+(
+•
+.
+size
+() == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/ElementProxy/subscript.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::operator[]") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	g•
+ = 
+doc
+[1];
+
+14 
+SECTION
+("set member") {
+
+15 
+	g•
+["world"] = 42;
+
+17 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[null,{\"world\":42}]");
+
+20 
+SECTION
+("setƒlement") {
+
+21 
+	g•
+[2] = 42;
+
+23 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[null,[null,null,42]]");
+
+	@lib_standalone/ArduinoJson/extras/tests/Helpers/CustomReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<s¡»am
+>
+
+9 þas 
+	cCu¡omR—d”
+ {
+
+10 
+	m¡d
+::
+¡ršg¡»am
+ 
+_¡»am
+;
+
+12 
+	mpublic
+:
+
+13 
+	$Cu¡omR—d”
+(cÚ¡ * 
+šput
+è: 
+	$_¡»am
+(
+šput
+) {}
+
+15 
+	$»ad
+() {
+
+16  
+_¡»am
+.
+	`g‘
+();
+
+17 
+	}
+}
+
+19 
+size_t
+ 
+	$»adBy‹s
+(* 
+bufãr
+, 
+size_t
+ 
+Ëngth
+) {
+
+20 
+_¡»am
+.
+	`»ad
+(
+bufãr
+, 
+¡©ic_ÿ¡
+<
+¡d
+::
+¡»amsize
+>(
+Ëngth
+));
+
+21  
+¡©ic_ÿ¡
+<
+size_t
+>(
+_¡»am
+.
+	`gcouÁ
+());
+
+22 
+	}
+}
+
+24 
+	g´iv©e
+:
+
+25 
+Cu¡omR—d”
+(const CustomReader&);
+
+	@lib_standalone/ArduinoJson/extras/tests/Helpers/Stream.h
+
+5 #´agm¨
+Úû
+
+
+8 þas 
+	cSŒ—m
+
+
+10 
+	mpublic
+:
+
+11 
+vœtu®
+ ~
+	$SŒ—m
+() {}
+
+12 
+vœtu®
+ 
+	`»ad
+() = 0;
+
+13 
+vœtu®
+ 
+size_t
+ 
+	`»adBy‹s
+(*
+bufãr
+, size_ˆ
+Ëngth
+) = 0;
+
+14 
+	}
+};
+
+	@lib_standalone/ArduinoJson/extras/tests/Helpers/WString.h
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ršg
+>
+
+10 þas 
+	cSŒšg
+ {
+
+11 
+	mpublic
+:
+
+12 
+SŒšg
+& 
+Ý”©Ü
++=(cÚ¡ * 
+rhs
+) {
+
+13 
+_¡r
+ +ð
+rhs
+;
+
+14  *
+	mthis
+;
+
+17 
+size_t
+ 
+	$Ëngth
+() const {
+
+18  
+_¡r
+.
+	`size
+();
+
+19 
+	}
+}
+
+21 cÚ¡ * 
+	$c_¡r
+() const {
+
+22  
+_¡r
+.
+	`c_¡r
+();
+
+23 
+	}
+}
+
+25 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ * 
+s
+) const {
+
+26  
+_¡r
+ =ð
+s
+;
+
+29 
+ä›nd
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+<<(
+¡d
+::o¡»am& 
+lhs
+, cÚ¡ ::
+SŒšg
+& 
+rhs
+) {
+
+30 
+lhs
+ << 
+rhs
+.
+_¡r
+;
+
+31  
+	glhs
+;
+
+34 
+	g´iv©e
+:
+
+35 
+¡d
+::
+¡ršg
+ 
+_¡r
+;
+
+38 
+þass
+ 
+	gSŒšgSumH–³r
+;
+
+40 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+¡d
+::
+¡ršg
+& 
+lhs
+, cÚ¡ ::
+SŒšg
+& 
+rhs
+) {
+
+41  
+lhs
+ =ð
+rhs
+.
+c_¡r
+();
+
+	@lib_standalone/ArduinoJson/extras/tests/Helpers/progmem_emulation.hpp
+
+5 
+	~<¡dšt.h
+>
+
+6 
+	~<¡ršg.h
+>
+
+8 
+þass
+ 
+	g__FÏshSŒšgH–³r
+;
+
+10 
+šlše
+ cÚ¡ * 
+	$cÚv”tPŒToFÏsh
+(cÚ¡ * 
+s
+) {
+
+11  
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+) + 42;
+
+12 
+	}
+}
+
+14 
+šlše
+ cÚ¡ * 
+	$cÚv”tFÏshToPŒ
+(cÚ¡ * 
+s
+) {
+
+15  
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+) - 42;
+
+16 
+	}
+}
+
+18 
+	#F
+(
+X
+è
+»š‹½»t_ÿ¡
+<cÚ¡ 
+__FÏshSŒšgH–³r
+*>(
+	`cÚv”tPŒToFÏsh
+(X))
+
+	)
+
+19 
+	#FC
+(
+X
+è
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+	`cÚv”tPŒToFÏsh
+(X))
+
+	)
+
+21 
+šlše
+ 
+ušt8_t
+ 
+	$pgm_»ad_by‹
+(cÚ¡ * 
+p
+) {
+
+22  *
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+*>(
+	`cÚv”tFÏshToPŒ
+(
+p
+));
+
+23 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("Gbathree") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeJsÚ
+(
+
+12 
+doc
+,
+
+23 
+JsÚObjeù
+ 
+	groÙ
+ = 
+doc
+.
+as
+<JsonObject>();
+
+25 
+SECTION
+("Success") {
+
+26 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+29 
+SECTION
+("ProtocolName") {
+
+30 
+REQUIRE
+("æuÜesûnû" =ð
+roÙ
+["protocol_name"]);
+
+33 
+SECTION
+("Repeats") {
+
+34 
+REQUIRE
+(1 =ð
+roÙ
+["repeats"]);
+
+37 
+SECTION
+("Wait") {
+
+38 
+REQUIRE
+(0 =ð
+roÙ
+["wait"]);
+
+41 
+SECTION
+("Measurements") {
+
+42 
+REQUIRE
+(3 =ð
+roÙ
+["measurements"]);
+
+45 
+SECTION
+("Meas2_Light") {
+
+46 
+REQUIRE
+(15 =ð
+roÙ
+["meas2_light"]);
+
+49 
+SECTION
+("Meas1_Baseline") {
+
+50 
+REQUIRE
+(0 =ð
+roÙ
+["meas1_baseline"]);
+
+53 
+SECTION
+("Act_Light") {
+
+54 
+REQUIRE
+(20 =ð
+roÙ
+["act_light"]);
+
+57 
+SECTION
+("Pulsesize") {
+
+58 
+REQUIRE
+(25 =ð
+roÙ
+["pulsesize"]);
+
+61 
+SECTION
+("Pulsedistance") {
+
+62 
+REQUIRE
+(10000 =ð
+roÙ
+["pulsedistance"]);
+
+65 
+SECTION
+("Actintensity1") {
+
+66 
+REQUIRE
+(50 =ð
+roÙ
+["actintensity1"]);
+
+69 
+SECTION
+("Actintensity2") {
+
+70 
+REQUIRE
+(255 =ð
+roÙ
+["actintensity2"]);
+
+73 
+SECTION
+("Measintensity") {
+
+74 
+REQUIRE
+(255 =ð
+roÙ
+["measintensity"]);
+
+77 
+SECTION
+("Calintensity") {
+
+78 
+REQUIRE
+(255 =ð
+roÙ
+["calintensity"]);
+
+81 
+SECTION
+("Pulses") {
+
+84 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["pulses"];
+
+85 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+87 
+REQUIRE
+(3 =ð
+¬¿y
+.
+size
+());
+
+89 
+size_t
+ 
+	gi
+ = 0; i < 3; i++) {
+
+90 
+REQUIRE
+(50 =ð
+¬¿y
+[
+i
+]);
+
+94 
+SECTION
+("Act") {
+
+97 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["act"];
+
+98 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+100 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+101 
+REQUIRE
+(2 =ð
+¬¿y
+[0]);
+
+102 
+REQUIRE
+(1 =ð
+¬¿y
+[1]);
+
+103 
+REQUIRE
+(2 =ð
+¬¿y
+[2]);
+
+104 
+REQUIRE
+(2 =ð
+¬¿y
+[3]);
+
+107 
+SECTION
+("Detectors") {
+
+110 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["detectors"];
+
+111 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+112 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+114 
+size_t
+ 
+	gi
+ = 0; i < 4; i++) {
+
+115 
+JsÚA¼ay
+ 
+	gÃ¡edA¼ay
+ = 
+¬¿y
+[
+i
+];
+
+116 
+REQUIRE
+(4 =ð
+Ã¡edA¼ay
+.
+size
+());
+
+118 
+size_t
+ 
+	gj
+ = 0; j < 4; j++) {
+
+119 
+REQUIRE
+(34 =ð
+Ã¡edA¼ay
+[
+j
+]);
+
+124 
+SECTION
+("Alta") {
+
+127 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["alta"];
+
+128 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+130 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+132 
+size_t
+ 
+	gi
+ = 0; i < 4; i++) {
+
+133 
+REQUIRE
+(2 =ð
+¬¿y
+[
+i
+]);
+
+137 
+SECTION
+("Altb") {
+
+140 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["altb"];
+
+141 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+143 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+145 
+size_t
+ 
+	gi
+ = 0; i < 4; i++) {
+
+146 
+REQUIRE
+(2 =ð
+¬¿y
+[
+i
+]);
+
+150 
+SECTION
+("Measlights") {
+
+153 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["measlights"];
+
+154 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+155 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+157 
+size_t
+ 
+	gi
+ = 0; i < 4; i++) {
+
+158 
+JsÚA¼ay
+ 
+	gÃ¡edA¼ay
+ = 
+¬¿y
+[
+i
+];
+
+160 
+REQUIRE
+(4 =ð
+Ã¡edA¼ay
+.
+size
+());
+
+162 
+size_t
+ 
+	gj
+ = 0; j < 4; j++) {
+
+163 
+REQUIRE
+(15 =ð
+Ã¡edA¼ay
+[
+j
+]);
+
+168 
+SECTION
+("Measlights2") {
+
+171 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["measlights2"];
+
+172 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+173 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+175 
+size_t
+ 
+	gi
+ = 0; i < 4; i++) {
+
+176 
+JsÚA¼ay
+ 
+	gÃ¡edA¼ay
+ = 
+¬¿y
+[
+i
+];
+
+177 
+REQUIRE
+(4 =ð
+Ã¡edA¼ay
+.
+size
+());
+
+179 
+size_t
+ 
+	gj
+ = 0; j < 4; j++) {
+
+180 
+REQUIRE
+(15 =ð
+Ã¡edA¼ay
+[
+j
+]);
+
+185 
+SECTION
+("Altc") {
+
+188 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["altc"];
+
+189 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+191 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+193 
+size_t
+ 
+	gi
+ = 0; i < 4; i++) {
+
+194 
+REQUIRE
+(2 =ð
+¬¿y
+[
+i
+]);
+
+198 
+SECTION
+("Altd") {
+
+201 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+roÙ
+["altd"];
+
+202 
+REQUIRE
+(
+¬¿y
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+204 
+REQUIRE
+(4 =ð
+¬¿y
+.
+size
+());
+
+206 
+size_t
+ 
+	gi
+ = 0; i < 4; i++) {
+
+207 
+REQUIRE
+(2 =ð
+¬¿y
+[
+i
+]);
+
+	@lib_standalone/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+10 
+TEST_CASE
+("Issue772") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+12 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+13 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+;
+
+14 
+	g¡d
+::
+¡ršg
+ 
+d©a
+ =
+
+20 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc1
+, 
+d©a
+);
+
+21 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+23 
+	gd©a
+ = "";
+
+24 
+£rŸlizeMsgPack
+(
+doc1
+, 
+d©a
+);
+
+25 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc2
+, 
+d©a
+);
+
+27 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("OpenWeatherMap") {
+
+10 cÚ¡ * 
+	gšput_jsÚ
+ = "{\"cod\":\"200\",\"message\":0,\"cnt\":40,\"list\":[{\"dt\":1581498000,\"main\":{\"temp\":3.23,\"feels_like\":-3.63,\"temp_min\":3.23,\"temp_max\":4.62,\"pressure\":1014,\"sea_level\":1014,\"grnd_level\":1010,\"humidity\":58,\"temp_kf\":-1.39},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01d\"}],\"clouds\":{\"all\":0},\"wind\":{\"speed\":6.19,\"deg\":266},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-12 09:00:00\"},{\"dt\":1581508800,\"main\":{\"temp\":6.09,\"feels_like\":-1.07,\"temp_min\":6.09,\"temp_max\":7.13,\"pressure\":1015,\"sea_level\":1015,\"grnd_level\":1011,\"humidity\":48,\"temp_kf\":-1.04},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01d\"}],\"clouds\":{\"all\":9},\"wind\":{\"speed\":6.64,\"deg\":268},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-12 12:00:00\"},{\"dt\":1581519600,\"main\":{\"temp\":6.82,\"feels_like\":0.47,\"temp_min\":6.82,\"temp_max\":7.52,\"pressure\":1015,\"sea_level\":1015,\"grnd_level\":1011,\"humidity\":47,\"temp_kf\":-0.7},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":97},\"wind\":{\"speed\":5.55,\"deg\":267},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-12 15:00:00\"},{\"dt\":1581530400,\"main\":{\"temp\":5.76,\"feels_like\":1.84,\"temp_min\":5.76,\"temp_max\":6.11,\"pressure\":1015,\"sea_level\":1015,\"grnd_level\":1010,\"humidity\":57,\"temp_kf\":-0.35},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":99},\"wind\":{\"speed\":2.35,\"deg\":232},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-12 18:00:00\"},{\"dt\":1581541200,\"main\":{\"temp\":5.7,\"feels_like\":1.34,\"temp_min\":5.7,\"temp_max\":5.7,\"pressure\":1012,\"sea_level\":1012,\"grnd_level\":1008,\"humidity\":71,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":3.57,\"deg\":198},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-12 21:00:00\"},{\"dt\":1581552000,\"main\":{\"temp\":5.82,\"feels_like\":1.39,\"temp_min\":5.82,\"temp_max\":5.82,\"pressure\":1009,\"sea_level\":1009,\"grnd_level\":1004,\"humidity\":86,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":4.35,\"deg\":169},\"rain\":{\"3h\":0.5},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 00:00:00\"},{\"dt\":1581562800,\"main\":{\"temp\":5.9,\"feels_like\":-0.85,\"temp_min\":5.9,\"temp_max\":5.9,\"pressure\":1000,\"sea_level\":1000,\"grnd_level\":997,\"humidity\":86,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":7.69,\"deg\":178},\"rain\":{\"3h\":1.75},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 03:00:00\"},{\"dt\":1581573600,\"main\":{\"temp\":7.52,\"feels_like\":1.74,\"temp_min\":7.52,\"temp_max\":7.52,\"pressure\":993,\"sea_level\":993,\"grnd_level\":988,\"humidity\":88,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":6.84,\"deg\":184},\"rain\":{\"3h\":7.06},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 06:00:00\"},{\"dt\":1581584400,\"main\":{\"temp\":7.23,\"feels_like\":0.81,\"temp_min\":7.23,\"temp_max\":7.23,\"pressure\":992,\"sea_level\":992,\"grnd_level\":988,\"humidity\":69,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":49},\"wind\":{\"speed\":6.77,\"deg\":239},\"rain\":{\"3h\":0.25},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-13 09:00:00\"},{\"dt\":1581595200,\"main\":{\"temp\":7.67,\"feels_like\":2.81,\"temp_min\":7.67,\"temp_max\":7.67,\"pressure\":991,\"sea_level\":991,\"grnd_level\":987,\"humidity\":75,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":73},\"wind\":{\"speed\":4.93,\"deg\":235},\"rain\":{\"3h\":0.75},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-13 12:00:00\"},{\"dt\":1581606000,\"main\":{\"temp\":8.83,\"feels_like\":3.23,\"temp_min\":8.83,\"temp_max\":8.83,\"pressure\":993,\"sea_level\":993,\"grnd_level\":990,\"humidity\":64,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":83},\"wind\":{\"speed\":5.7,\"deg\":293},\"rain\":{\"3h\":0.38},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-13 15:00:00\"},{\"dt\":1581616800,\"main\":{\"temp\":7.42,\"feels_like\":1.77,\"temp_min\":7.42,\"temp_max\":7.42,\"pressure\":1000,\"sea_level\":1000,\"grnd_level\":996,\"humidity\":71,\"temp_kf\":0},\"weather\":[{\"id\":803,\"main\":\"Clouds\",\"description\":\"broken clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":54},\"wind\":{\"speed\":5.81,\"deg\":307},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 18:00:00\"},{\"dt\":1581627600,\"main\":{\"temp\":5.82,\"feels_like\":0.89,\"temp_min\":5.82,\"temp_max\":5.82,\"pressure\":1007,\"sea_level\":1007,\"grnd_level\":1003,\"humidity\":79,\"temp_kf\":0},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01n\"}],\"clouds\":{\"all\":6},\"wind\":{\"speed\":4.76,\"deg\":300},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-13 21:00:00\"},{\"dt\":1581638400,\"main\":{\"temp\":5.58,\"feels_like\":2.09,\"temp_min\":5.58,\"temp_max\":5.58,\"pressure\":1011,\"sea_level\":1011,\"grnd_level\":1007,\"humidity\":81,\"temp_kf\":0},\"weather\":[{\"id\":802,\"main\":\"Clouds\",\"description\":\"scattered clouds\",\"icon\":\"03n\"}],\"clouds\":{\"all\":47},\"wind\":{\"speed\":2.73,\"deg\":326},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 00:00:00\"},{\"dt\":1581649200,\"main\":{\"temp\":4.27,\"feels_like\":1.72,\"temp_min\":4.27,\"temp_max\":4.27,\"pressure\":1014,\"sea_level\":1014,\"grnd_level\":1010,\"humidity\":85,\"temp_kf\":0},\"weather\":[{\"id\":803,\"main\":\"Clouds\",\"description\":\"broken clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":69},\"wind\":{\"speed\":1.24,\"deg\":295},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 03:00:00\"},{\"dt\":1581660000,\"main\":{\"temp\":3.91,\"feels_like\":1.54,\"temp_min\":3.91,\"temp_max\":3.91,\"pressure\":1016,\"sea_level\":1016,\"grnd_level\":1012,\"humidity\":87,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":85},\"wind\":{\"speed\":0.98,\"deg\":211},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 06:00:00\"},{\"dt\":1581670800,\"main\":{\"temp\":4.77,\"feels_like\":0.74,\"temp_min\":4.77,\"temp_max\":4.77,\"pressure\":1017,\"sea_level\":1017,\"grnd_level\":1013,\"humidity\":78,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":3.19,\"deg\":184},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-14 09:00:00\"},{\"dt\":1581681600,\"main\":{\"temp\":9.03,\"feels_like\":4,\"temp_min\":9.03,\"temp_max\":9.03,\"pressure\":1016,\"sea_level\":1016,\"grnd_level\":1012,\"humidity\":73,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":5.43,\"deg\":206},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-14 12:00:00\"},{\"dt\":1581692400,\"main\":{\"temp\":9.86,\"feels_like\":4.22,\"temp_min\":9.86,\"temp_max\":9.86,\"pressure\":1014,\"sea_level\":1014,\"grnd_level\":1010,\"humidity\":74,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":6.58,\"deg\":209},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-14 15:00:00\"},{\"dt\":1581703200,\"main\":{\"temp\":9.48,\"feels_like\":4.8,\"temp_min\":9.48,\"temp_max\":9.48,\"pressure\":1013,\"sea_level\":1013,\"grnd_level\":1009,\"humidity\":83,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":5.6,\"deg\":206},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 18:00:00\"},{\"dt\":1581714000,\"main\":{\"temp\":10.03,\"feels_like\":6.48,\"temp_min\":10.03,\"temp_max\":10.03,\"pressure\":1013,\"sea_level\":1013,\"grnd_level\":1009,\"humidity\":93,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":4.75,\"deg\":226},\"rain\":{\"3h\":3.13},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-14 21:00:00\"},{\"dt\":1581724800,\"main\":{\"temp\":9.48,\"feels_like\":6.25,\"temp_min\":9.48,\"temp_max\":9.48,\"pressure\":1013,\"sea_level\":1013,\"grnd_level\":1009,\"humidity\":89,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":3.87,\"deg\":214},\"rain\":{\"3h\":2.38},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 00:00:00\"},{\"dt\":1581735600,\"main\":{\"temp\":9.12,\"feels_like\":7.08,\"temp_min\":9.12,\"temp_max\":9.12,\"pressure\":1011,\"sea_level\":1011,\"grnd_level\":1007,\"humidity\":96,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":2.43,\"deg\":194},\"rain\":{\"3h\":1},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 03:00:00\"},{\"dt\":1581746400,\"main\":{\"temp\":10.32,\"feels_like\":6.71,\"temp_min\":10.32,\"temp_max\":10.32,\"pressure\":1009,\"sea_level\":1009,\"grnd_level\":1004,\"humidity\":95,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":5.05,\"deg\":196},\"rain\":{\"3h\":1.75},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 06:00:00\"},{\"dt\":1581757200,\"main\":{\"temp\":11.57,\"feels_like\":5.85,\"temp_min\":11.57,\"temp_max\":11.57,\"pressure\":1006,\"sea_level\":1006,\"grnd_level\":1002,\"humidity\":85,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":7.91,\"deg\":205},\"rain\":{\"3h\":1.44},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-15 09:00:00\"},{\"dt\":1581768000,\"main\":{\"temp\":12.25,\"feels_like\":4.46,\"temp_min\":12.25,\"temp_max\":12.25,\"pressure\":1003,\"sea_level\":1003,\"grnd_level\":998,\"humidity\":78,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":10.65,\"deg\":201},\"rain\":{\"3h\":1.81},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-15 12:00:00\"},{\"dt\":1581778800,\"main\":{\"temp\":12.19,\"feels_like\":3.17,\"temp_min\":12.19,\"temp_max\":12.19,\"pressure\":998,\"sea_level\":998,\"grnd_level\":994,\"humidity\":80,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":12.52,\"deg\":204},\"rain\":{\"3h\":3.5},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-15 15:00:00\"},{\"dt\":1581789600,\"main\":{\"temp\":12.25,\"feels_like\":4.15,\"temp_min\":12.25,\"temp_max\":12.25,\"pressure\":996,\"sea_level\":996,\"grnd_level\":992,\"humidity\":83,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":11.42,\"deg\":215},\"rain\":{\"3h\":4.88},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 18:00:00\"},{\"dt\":1581800400,\"main\":{\"temp\":12.64,\"feels_like\":5.85,\"temp_min\":12.64,\"temp_max\":12.64,\"pressure\":994,\"sea_level\":994,\"grnd_level\":990,\"humidity\":76,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":9.22,\"deg\":217},\"rain\":{\"3h\":6.88},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-15 21:00:00\"},{\"dt\":1581811200,\"main\":{\"temp\":12.96,\"feels_like\":4.03,\"temp_min\":12.96,\"temp_max\":12.96,\"pressure\":988,\"sea_level\":988,\"grnd_level\":984,\"humidity\":83,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":12.88,\"deg\":211},\"rain\":{\"3h\":5.63},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 00:00:00\"},{\"dt\":1581822000,\"main\":{\"temp\":13.13,\"feels_like\":5.17,\"temp_min\":13.13,\"temp_max\":13.13,\"pressure\":987,\"sea_level\":987,\"grnd_level\":982,\"humidity\":82,\"temp_kf\":0},\"weather\":[{\"id\":501,\"main\":\"Rain\",\"description\":\"moderate„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":11.49,\"deg\":246},\"rain\":{\"3h\":7.25},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 03:00:00\"},{\"dt\":1581832800,\"main\":{\"temp\":9.07,\"feels_like\":0.79,\"temp_min\":9.07,\"temp_max\":9.07,\"pressure\":990,\"sea_level\":990,\"grnd_level\":986,\"humidity\":75,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10n\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":10.18,\"deg\":255},\"rain\":{\"3h\":2},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 06:00:00\"},{\"dt\":1581843600,\"main\":{\"temp\":8.05,\"feels_like\":-0.9,\"temp_min\":8.05,\"temp_max\":8.05,\"pressure\":994,\"sea_level\":994,\"grnd_level\":990,\"humidity\":51,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":100},\"wind\":{\"speed\":9.65,\"deg\":245},\"rain\":{\"3h\":1.19},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-16 09:00:00\"},{\"dt\":1581854400,\"main\":{\"temp\":9.54,\"feels_like\":0.13,\"temp_min\":9.54,\"temp_max\":9.54,\"pressure\":996,\"sea_level\":996,\"grnd_level\":991,\"humidity\":41,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04d\"}],\"clouds\":{\"all\":94},\"wind\":{\"speed\":10.03,\"deg\":243},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-16 12:00:00\"},{\"dt\":1581865200,\"main\":{\"temp\":9.08,\"feels_like\":-0.35,\"temp_min\":9.08,\"temp_max\":9.08,\"pressure\":996,\"sea_level\":996,\"grnd_level\":991,\"humidity\":44,\"temp_kf\":0},\"weather\":[{\"id\":500,\"main\":\"Rain\",\"description\":\"light„ain\",\"icon\":\"10d\"}],\"clouds\":{\"all\":89},\"wind\":{\"speed\":10.15,\"deg\":246},\"rain\":{\"3h\":0.25},\"sys\":{\"pod\":\"d\"},\"dt_txt\":\"2020-02-16 15:00:00\"},{\"dt\":1581876000,\"main\":{\"temp\":7.41,\"feels_like\":-1.34,\"temp_min\":7.41,\"temp_max\":7.41,\"pressure\":996,\"sea_level\":996,\"grnd_level\":992,\"humidity\":50,\"temp_kf\":0},\"weather\":[{\"id\":804,\"main\":\"Clouds\",\"description\":\"overcast clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":94},\"wind\":{\"speed\":9.21,\"deg\":240},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 18:00:00\"},{\"dt\":1581886800,\"main\":{\"temp\":6.42,\"feels_like\":-1.7,\"temp_min\":6.42,\"temp_max\":6.42,\"pressure\":997,\"sea_level\":997,\"grnd_level\":993,\"humidity\":58,\"temp_kf\":0},\"weather\":[{\"id\":803,\"main\":\"Clouds\",\"description\":\"broken clouds\",\"icon\":\"04n\"}],\"clouds\":{\"all\":67},\"wind\":{\"speed\":8.52,\"deg\":236},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-16 21:00:00\"},{\"dt\":1581897600,\"main\":{\"temp\":6.03,\"feels_like\":-2.65,\"temp_min\":6.03,\"temp_max\":6.03,\"pressure\":996,\"sea_level\":996,\"grnd_level\":993,\"humidity\":51,\"temp_kf\":0},\"weather\":[{\"id\":802,\"main\":\"Clouds\",\"description\":\"scattered clouds\",\"icon\":\"03n\"}],\"clouds\":{\"all\":38},\"wind\":{\"speed\":8.94,\"deg\":240},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-17 00:00:00\"},{\"dt\":1581908400,\"main\":{\"temp\":5.62,\"feels_like\":-2.86,\"temp_min\":5.62,\"temp_max\":5.62,\"pressure\":995,\"sea_level\":995,\"grnd_level\":991,\"humidity\":53,\"temp_kf\":0},\"weather\":[{\"id\":800,\"main\":\"Clear\",\"description\":\"clear sky\",\"icon\":\"01n\"}],\"clouds\":{\"all\":0},\"wind\":{\"speed\":8.67,\"deg\":241},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-17 03:00:00\"},{\"dt\":1581919200,\"main\":{\"temp\":5.51,\"feels_like\":-2.41,\"temp_min\":5.51,\"temp_max\":5.51,\"pressure\":995,\"sea_level\":995,\"grnd_level\":991,\"humidity\":61,\"temp_kf\":0},\"weather\":[{\"id\":802,\"main\":\"Clouds\",\"description\":\"scattered clouds\",\"icon\":\"03n\"}],\"clouds\":{\"all\":35},\"wind\":{\"speed\":8.2,\"deg\":244},\"sys\":{\"pod\":\"n\"},\"dt_txt\":\"2020-02-17 06:00:00\"}],\"city\":{\"id\":2643743,\"name\":\"London\",\"coord\":{\"lat\":51.5085,\"lon\":-0.1257},\"country\":\"GB\",\"population\":1000000,\"timezone\":0,\"sunrise\":1581492085,\"sunset\":1581527294}}";
+
+12 cÚ¡ * 
+	gex³ùed_jsÚ
+ = "{\"list\":["
+
+56 
+	gS�ticJsÚDocum’t
+<512> 
+	gfž‹r
+;
+
+57 
+	gfž‹r
+["li¡"][0]["dt"] = 
+Œue
+;
+
+58 
+	gfž‹r
+["li¡"][0]["maš"]["‹mp"] = 
+Œue
+;
+
+59 
+	gfž‹r
+["li¡"][0]["w—th”"][0]["desü�tiÚ"] = 
+Œue
+;
+
+61 
+DyÇmicJsÚDocum’t
+ 
+doc
+(16384);
+
+63 
+REQUIRE
+(
+
+64 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput_jsÚ
+, 
+De£rŸliz©iÚO±iÚ
+::
+Fž‹r
+(
+fž‹r
+)) ==
+
+65 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+67 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>(è=ð
+ex³ùed_jsÚ
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$check
+(
+¡d
+::
+¡ršg
+ 
+Üigš®JsÚ
+) {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(16384);
+
+11 
+¡d
+::
+¡ršg
+ 
+´‘tyJsÚ
+;
+
+12 
+	`de£rŸlizeJsÚ
+(
+doc
+, 
+Üigš®JsÚ
+);
+
+13 
+	`£rŸlizeJsÚP»‰y
+(
+doc
+, 
+´‘tyJsÚ
+);
+
+15 
+¡d
+::
+¡ršg
+ 
+fš®JsÚ
+;
+
+16 
+	`de£rŸlizeJsÚ
+(
+doc
+, 
+Üigš®JsÚ
+);
+
+17 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+fš®JsÚ
+);
+
+19 
+	`REQUIRE
+(
+Üigš®JsÚ
+ =ð
+fš®JsÚ
+);
+
+20 
+	}
+}
+
+22 
+TEST_CASE
+("Round Trip:…arse ->…rettyPrint ->…arse ->…rint") {
+
+23 
+SECTION
+("OpenWeatherMap") {
+
+24 
+check
+(
+
+35 
+SECTION
+("YahooQueryLanguage") {
+
+36 
+check
+(
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/add.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::add()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+12 
+SECTION
+("int") {
+
+13 
+	g¬¿y
+.
+add
+(123);
+
+14 
+REQUIRE
+(123 =ð
+¬¿y
+[0].
+as
+<>());
+
+15 
+REQUIRE
+(
+¬¿y
+[0].
+is
+<>());
+
+16 
+REQUIRE
+(
+¬¿y
+[0].
+is
+<>());
+
+19 
+SECTION
+("double") {
+
+20 
+	g¬¿y
+.
+add
+(123.45);
+
+21 
+REQUIRE
+(123.45 =ð
+¬¿y
+[0].
+as
+<>());
+
+22 
+REQUIRE
+(
+¬¿y
+[0].
+is
+<>());
+
+23 
+REQUIRE_FALSE
+(
+¬¿y
+[0].
+is
+<
+boÞ
+>());
+
+26 
+SECTION
+("bool") {
+
+27 
+	g¬¿y
+.
+add
+(
+Œue
+);
+
+28 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+as
+<
+boÞ
+>());
+
+29 
+REQUIRE
+(
+¬¿y
+[0].
+is
+<
+boÞ
+>());
+
+30 
+REQUIRE_FALSE
+(
+¬¿y
+[0].
+is
+<>());
+
+33 
+SECTION
+("const char*") {
+
+34 cÚ¡ * 
+	g¡r
+ = "hello";
+
+35 
+	g¬¿y
+.
+add
+(
+¡r
+);
+
+36 
+REQUIRE
+(
+¡r
+ =ð
+¬¿y
+[0].
+as
+<
+¡d
+::
+¡ršg
+>());
+
+37 
+REQUIRE
+(
+¬¿y
+[0].
+is
+<const *>());
+
+38 
+REQUIRE_FALSE
+(
+¬¿y
+[0].
+is
+<>());
+
+41 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+42 
+SECTION
+("vla") {
+
+43 
+	gi
+ = 16;
+
+44 
+	gvÏ
+[
+i
+];
+
+45 
+¡rýy
+(
+vÏ
+, "world");
+
+47 
+	g¬¿y
+.
+add
+(
+vÏ
+);
+
+49 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+¬¿y
+[0]);
+
+53 
+SECTION
+("nested‡rray") {
+
+54 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+55 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+57 
+	g¬¿y
+.
+add
+(
+¬r
+);
+
+59 
+REQUIRE
+(
+¬r
+ =ð
+¬¿y
+[0].
+as
+<
+JsÚA¼ay
+>());
+
+60 
+REQUIRE
+(
+¬¿y
+[0].
+is
+<
+JsÚA¼ay
+>());
+
+61 
+REQUIRE_FALSE
+(
+¬¿y
+[0].
+is
+<>());
+
+64 
+SECTION
+("nested object") {
+
+65 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+66 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+68 
+	g¬¿y
+.
+add
+(
+obj
+);
+
+70 
+REQUIRE
+(
+obj
+ =ð
+¬¿y
+[0].
+as
+<
+JsÚObjeù
+>());
+
+71 
+REQUIRE
+(
+¬¿y
+[0].
+is
+<
+JsÚObjeù
+>());
+
+72 
+REQUIRE_FALSE
+(
+¬¿y
+[0].
+is
+<>());
+
+75 
+SECTION
+("array subscript") {
+
+76 cÚ¡ * 
+	g¡r
+ = "hello";
+
+77 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+78 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+79 
+	g¬r
+.
+add
+(
+¡r
+);
+
+81 
+	g¬¿y
+.
+add
+(
+¬r
+[0]);
+
+83 
+REQUIRE
+(
+¡r
+ =ð
+¬¿y
+[0]);
+
+86 
+SECTION
+("object subscript") {
+
+87 cÚ¡ * 
+	g¡r
+ = "hello";
+
+88 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+89 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+90 
+	gobj
+["x"] = 
+¡r
+;
+
+92 
+	g¬¿y
+.
+add
+(
+obj
+["x"]);
+
+94 
+REQUIRE
+(
+¡r
+ =ð
+¬¿y
+[0]);
+
+97 
+SECTION
+("should‚ot duplicate const char*") {
+
+98 
+	g¬¿y
+.
+add
+("world");
+
+99 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1);
+
+100 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+103 
+SECTION
+("should duplicate char*") {
+
+104 
+	g¬¿y
+.
+add
+(
+cÚ¡_ÿ¡
+<*>("world"));
+
+105 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+106 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+109 
+SECTION
+("should duplicate std::string") {
+
+110 
+	g¬¿y
+.
+add
+(
+¡d
+::
+¡ršg
+("world"));
+
+111 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+112 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+115 
+SECTION
+("should‚ot duplicate serialized(const char*)") {
+
+116 
+	g¬¿y
+.
+add
+(
+£rŸlized
+("{}"));
+
+117 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1);
+
+118 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+121 
+SECTION
+("should duplicate serialized(char*)") {
+
+122 
+	g¬¿y
+.
+add
+(
+£rŸlized
+(
+cÚ¡_ÿ¡
+<*>("{}")));
+
+123 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2);
+
+124 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+127 
+SECTION
+("should duplicate serialized(std::string)") {
+
+128 
+	g¬¿y
+.
+add
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("{}")));
+
+129 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2);
+
+130 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+133 
+SECTION
+("should duplicate serialized(std::string)") {
+
+134 
+	g¬¿y
+.
+add
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("\0XX", 3)));
+
+135 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(3);
+
+136 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/copyArray.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("copyArray()") {
+
+9 
+SECTION
+("1D -> JsonArray") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+12 
+	gjsÚ
+[32];
+
+13 
+	gsourû
+[] = {1, 2, 3};
+
+15 
+boÞ
+ 
+	gok
+ = 
+cÝyA¼ay
+(
+sourû
+, 
+¬¿y
+);
+
+16 
+REQUIRE
+(
+ok
+);
+
+18 
+£rŸlizeJsÚ
+(
+¬¿y
+, 
+jsÚ
+, (json));
+
+19 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("[1,2,3]"è=ð
+jsÚ
+);
+
+22 
+SECTION
+("1D -> JsonArray, but‚otƒnough memory") {
+
+23 cÚ¡ 
+size_t
+ 
+	gSIZE
+ = 
+JSON_ARRAY_SIZE
+(2);
+
+24 
+	gS�ticJsÚDocum’t
+<
+	gSIZE
+> 
+	gdoc
+;
+
+25 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+26 
+	gjsÚ
+[32];
+
+27 
+	gsourû
+[] = {1, 2, 3};
+
+29 
+boÞ
+ 
+	gok
+ = 
+cÝyA¼ay
+(
+sourû
+, 
+¬¿y
+);
+
+30 
+REQUIRE_FALSE
+(
+ok
+);
+
+32 
+£rŸlizeJsÚ
+(
+¬¿y
+, 
+jsÚ
+, (json));
+
+33 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("[1,2]"è=ð
+jsÚ
+);
+
+36 
+SECTION
+("2D -> JsonArray") {
+
+37 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+38 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+39 
+	gjsÚ
+[32];
+
+40 
+	gsourû
+[][3] = {{1, 2, 3}, {4, 5, 6}};
+
+42 
+boÞ
+ 
+	gok
+ = 
+cÝyA¼ay
+(
+sourû
+, 
+¬¿y
+);
+
+43 
+REQUIRE
+(
+ok
+);
+
+45 
+£rŸlizeJsÚ
+(
+¬¿y
+, 
+jsÚ
+, (json));
+
+46 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("[[1,2,3],[4,5,6]]"è=ð
+jsÚ
+);
+
+49 
+SECTION
+("2D -> JsonArray, but‚otƒnough memory") {
+
+50 cÚ¡ 
+size_t
+ 
+	gSIZE
+ =
+
+51 
+JSON_ARRAY_SIZE
+(2) + JSON_ARRAY_SIZE(3) + JSON_ARRAY_SIZE(2);
+
+52 
+	gS�ticJsÚDocum’t
+<
+	gSIZE
+> 
+	gdoc
+;
+
+53 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+54 
+	gjsÚ
+[32] = "";
+
+55 
+	gsourû
+[][3] = {{1, 2, 3}, {4, 5, 6}};
+
+57 
+CAPTURE
+(
+SIZE
+)
+
+59 
+boÞ
+ 
+	gok
+ = 
+cÝyA¼ay
+(
+sourû
+, 
+¬¿y
+);
+
+60 
+CAPTURE
+(
+doc
+.
+memÜyU§ge
+());
+
+61 
+CHECK_FALSE
+(
+ok
+);
+
+63 
+£rŸlizeJsÚ
+(
+¬¿y
+, 
+jsÚ
+, (json));
+
+64 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("[[1,2,3],[4,5]]"è=ð
+jsÚ
+);
+
+67 
+SECTION
+("JsonArray -> 1D, with more space�han‚eeded") {
+
+68 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+69 
+	gjsÚ
+[] = "[1,2,3]";
+
+70 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+71 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+72 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+74 
+	gde¡š©iÚ
+[4] = {0};
+
+75 
+size_t
+ 
+	g»suÉ
+ = 
+cÝyA¼ay
+(
+¬¿y
+, 
+de¡š©iÚ
+);
+
+77 
+REQUIRE
+(3 =ð
+»suÉ
+);
+
+78 
+REQUIRE
+(1 =ð
+de¡š©iÚ
+[0]);
+
+79 
+REQUIRE
+(2 =ð
+de¡š©iÚ
+[1]);
+
+80 
+REQUIRE
+(3 =ð
+de¡š©iÚ
+[2]);
+
+81 
+REQUIRE
+(0 =ð
+de¡š©iÚ
+[3]);
+
+84 
+SECTION
+("JsonArray -> 1D, withoutƒnough space") {
+
+85 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+86 
+	gjsÚ
+[] = "[1,2,3]";
+
+87 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+88 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+89 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+91 
+	gde¡š©iÚ
+[2] = {0};
+
+92 
+size_t
+ 
+	g»suÉ
+ = 
+cÝyA¼ay
+(
+¬¿y
+, 
+de¡š©iÚ
+);
+
+94 
+REQUIRE
+(2 =ð
+»suÉ
+);
+
+95 
+REQUIRE
+(1 =ð
+de¡š©iÚ
+[0]);
+
+96 
+REQUIRE
+(2 =ð
+de¡š©iÚ
+[1]);
+
+99 
+SECTION
+("JsonArray -> 2D") {
+
+100 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+101 
+	gjsÚ
+[] = "[[1,2],[3],[4]]";
+
+103 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+104 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+105 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+107 
+	gde¡š©iÚ
+[3][2] = {{0}};
+
+108 
+cÝyA¼ay
+(
+¬¿y
+, 
+de¡š©iÚ
+);
+
+110 
+REQUIRE
+(1 =ð
+de¡š©iÚ
+[0][0]);
+
+111 
+REQUIRE
+(2 =ð
+de¡š©iÚ
+[0][1]);
+
+112 
+REQUIRE
+(3 =ð
+de¡š©iÚ
+[1][0]);
+
+113 
+REQUIRE
+(0 =ð
+de¡š©iÚ
+[1][1]);
+
+114 
+REQUIRE
+(4 =ð
+de¡š©iÚ
+[2][0]);
+
+115 
+REQUIRE
+(0 =ð
+de¡š©iÚ
+[2][1]);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/createNested.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray basics") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+12 
+SECTION
+("CreateNestedArray") {
+
+13 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+¬¿y
+.
+ü—‹Ne¡edA¼ay
+();
+
+14 
+REQUIRE
+(
+¬r
+ =ð
+¬¿y
+[0].
+as
+<
+JsÚA¼ay
+>());
+
+17 
+SECTION
+("CreateNestedObject") {
+
+18 
+JsÚObjeù
+ 
+	gobj
+ = 
+¬¿y
+.
+ü—‹Ne¡edObjeù
+();
+
+19 
+REQUIRE
+(
+obj
+ =ð
+¬¿y
+[0].
+as
+<
+JsÚObjeù
+>());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/equals.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::operator==()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g¬¿y1
+ = 
+doc1
+.
+to
+<JsonArray>();
+
+11 
+JsÚA¼ayCÚ¡
+ 
+	g¬¿y1c
+ = 
+¬¿y1
+;
+
+13 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+14 
+JsÚA¼ay
+ 
+	g¬¿y2
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+15 
+JsÚA¼ayCÚ¡
+ 
+	g¬¿y2c
+ = 
+¬¿y2
+;
+
+17 
+SECTION
+("should„eturn false when‡rrays differ") {
+
+18 
+	g¬¿y1
+.
+add
+("coucou");
+
+19 
+	g¬¿y2
+.
+add
+(1);
+
+21 
+REQUIRE_FALSE
+(
+¬¿y1
+ =ð
+¬¿y2
+);
+
+22 
+REQUIRE_FALSE
+(
+¬¿y1c
+ =ð
+¬¿y2c
+);
+
+25 
+SECTION
+("should„eturn false when LHS has moreƒlements") {
+
+26 
+	g¬¿y1
+.
+add
+(1);
+
+27 
+	g¬¿y1
+.
+add
+(2);
+
+28 
+	g¬¿y2
+.
+add
+(1);
+
+30 
+REQUIRE_FALSE
+(
+¬¿y1
+ =ð
+¬¿y2
+);
+
+31 
+REQUIRE_FALSE
+(
+¬¿y1c
+ =ð
+¬¿y2c
+);
+
+34 
+SECTION
+("should„eturn false when RHS has moreƒlements") {
+
+35 
+	g¬¿y1
+.
+add
+(1);
+
+36 
+	g¬¿y2
+.
+add
+(1);
+
+37 
+	g¬¿y2
+.
+add
+(2);
+
+39 
+REQUIRE_FALSE
+(
+¬¿y1
+ =ð
+¬¿y2
+);
+
+40 
+REQUIRE_FALSE
+(
+¬¿y1c
+ =ð
+¬¿y2c
+);
+
+43 
+SECTION
+("should„eturn�rue when‡rraysƒqual") {
+
+44 
+	g¬¿y1
+.
+add
+("coucou");
+
+45 
+	g¬¿y2
+.
+add
+("coucou");
+
+47 
+REQUIRE
+(
+¬¿y1
+ =ð
+¬¿y2
+);
+
+48 
+REQUIRE
+(
+¬¿y1c
+ =ð
+¬¿y2c
+);
+
+51 
+SECTION
+("should„eturn false when RHS is‚ull") {
+
+52 
+JsÚA¼ay
+ 
+	gnuÎ
+;
+
+54 
+REQUIRE_FALSE
+(
+¬¿y1
+ =ð
+nuÎ
+);
+
+57 
+SECTION
+("should„eturn false when LHS is‚ull") {
+
+58 
+JsÚA¼ay
+ 
+	gnuÎ
+;
+
+60 
+REQUIRE_FALSE
+(
+nuÎ
+ =ð
+¬¿y1
+);
+
+63 
+SECTION
+("should„eturn�rue when both‡re‚ull") {
+
+64 
+JsÚA¼ay
+ 
+	gnuÎ1
+;
+
+65 
+JsÚA¼ay
+ 
+	gnuÎ2
+;
+
+67 
+REQUIRE
+(
+nuÎ1
+ =ð
+nuÎ2
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/get.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::get()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+de£rŸlizeJsÚ
+(
+doc
+, "[1,2,3]");
+
+11 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+13 
+SECTION
+("Overflow") {
+
+14 
+REQUIRE
+(
+¬¿y
+.
+g‘EËm’t
+(3).
+isNuÎ
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/isNull.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::isNull()") {
+
+9 
+SECTION
+("returns�rue") {
+
+10 
+JsÚA¼ay
+ 
+	g¬r
+;
+
+11 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+14 
+SECTION
+("returns false") {
+
+15 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+16 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+17 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+21 
+TEST_CASE
+("JsonArrayConst::isNull()") {
+
+22 
+SECTION
+("returns�rue") {
+
+23 
+JsÚA¼ayCÚ¡
+ 
+	g¬r
+;
+
+24 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+27 
+SECTION
+("returns false") {
+
+28 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+29 
+JsÚA¼ayCÚ¡
+ 
+	g¬r
+ = 
+doc
+.
+to
+<
+JsÚA¼ay
+>();
+
+30 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+34 
+TEST_CASE
+("JsonArray::operator bool()") {
+
+35 
+SECTION
+("returns false") {
+
+36 
+JsÚA¼ay
+ 
+	g¬r
+;
+
+37 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+¬r
+è=ð
+çl£
+);
+
+40 
+SECTION
+("returns�rue") {
+
+41 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+42 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+43 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+¬r
+è=ð
+Œue
+);
+
+47 
+TEST_CASE
+("JsonArrayConst::operator bool()") {
+
+48 
+SECTION
+("returns false") {
+
+49 
+JsÚA¼ayCÚ¡
+ 
+	g¬r
+;
+
+50 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+¬r
+è=ð
+çl£
+);
+
+53 
+SECTION
+("returns�rue") {
+
+54 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+55 
+JsÚA¼ayCÚ¡
+ 
+	g¬r
+ = 
+doc
+.
+to
+<
+JsÚA¼ay
+>();
+
+56 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+¬r
+è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/iterator.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+9 
+	$run_™”©Ü_‹¡
+() {
+
+10 
+S�ticJsÚDocum’t
+<
+	`JSON_ARRAY_SIZE
+(2)> 
+doc
+;
+
+11 
+JsÚA¼ay
+ 
+tmp
+ = 
+doc
+.
+to
+<JsonArray>();
+
+12 
+tmp
+.
+	`add
+(12);
+
+13 
+tmp
+.
+	`add
+(34);
+
+15 
+TA¼ay
+ 
+¬¿y
+ = 
+tmp
+;
+
+16 
+ty³Çme
+ 
+TA¼ay
+::
+™”©Ü
+ 
+™
+ = 
+¬¿y
+.
+	`begš
+();
+
+17 
+ty³Çme
+ 
+TA¼ay
+::
+™”©Ü
+ 
+’d
+ = 
+¬¿y
+.
+	`’d
+();
+
+19 
+	`REQUIRE
+(
+’d
+ !ð
+™
+);
+
+20 
+	`REQUIRE
+(12 =ð
+™
+->
+‹m¶©e
+ 
+as
+<>());
+
+21 
+	`REQUIRE
+(12 =ð
+¡©ic_ÿ¡
+<>(*
+™
+));
+
+22 ++
+™
+;
+
+23 
+	`REQUIRE
+(
+’d
+ !ð
+™
+);
+
+24 
+	`REQUIRE
+(34 =ð
+™
+->
+‹m¶©e
+ 
+as
+<>());
+
+25 
+	`REQUIRE
+(34 =ð
+¡©ic_ÿ¡
+<>(*
+™
+));
+
+26 ++
+™
+;
+
+27 
+	`REQUIRE
+(
+’d
+ =ð
+™
+);
+
+28 
+	}
+}
+
+30 
+TEST_CASE
+("JsonArray::begin()/end()") {
+
+31 
+SECTION
+("Non‚ull JsonArray") {
+
+32 
+	grun_™”©Ü_‹¡
+<
+	gJsÚA¼ay
+>();
+
+35 
+SECTION
+("Null JsonArray") {
+
+36 
+JsÚA¼ay
+ 
+	g¬¿y
+;
+
+38 
+REQUIRE
+(
+¬¿y
+.
+begš
+(è=ð¬¿y.
+’d
+());
+
+42 
+TEST_CASE
+("JsonArrayConst::begin()/end()") {
+
+43 
+SECTION
+("Non‚ull JsonArrayConst") {
+
+44 
+	grun_™”©Ü_‹¡
+<
+	gJsÚA¼ayCÚ¡
+>();
+
+47 
+SECTION
+("Null JsonArrayConst") {
+
+48 
+JsÚA¼ayCÚ¡
+ 
+	g¬¿y
+;
+
+50 
+REQUIRE
+(
+¬¿y
+.
+begš
+(è=ð¬¿y.
+’d
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/memoryUsage.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::memoryUsage()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+12 
+SECTION
+("return 0 if uninitialized") {
+
+13 
+JsÚA¼ay
+ 
+	gun™Ÿlized
+;
+
+14 
+REQUIRE
+(
+un™Ÿlized
+.
+memÜyU§ge
+() == 0);
+
+17 
+SECTION
+("JSON_ARRAY_SIZE(0) ifƒmpty") {
+
+18 
+REQUIRE
+(
+¬r
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(0));
+
+21 
+SECTION
+("JSON_ARRAY_SIZE(1)‡fter‡dd") {
+
+22 
+	g¬r
+.
+add
+("hello");
+
+23 
+REQUIRE
+(
+¬r
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(1));
+
+26 
+SECTION
+("includes�he size of�he string") {
+
+27 
+	g¬r
+.
+add
+(
+¡d
+::
+¡ršg
+("hello"));
+
+28 
+REQUIRE
+(
+¬r
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(1) + 6);
+
+31 
+SECTION
+("includes�he size of�he‚ested‡rray") {
+
+32 
+JsÚA¼ay
+ 
+	gÃ¡ed
+ = 
+¬r
+.
+ü—‹Ne¡edA¼ay
+();
+
+33 
+	gÃ¡ed
+.
+add
+(42);
+
+34 
+REQUIRE
+(
+¬r
+.
+memÜyU§ge
+(è=ð2 * 
+JSON_ARRAY_SIZE
+(1));
+
+37 
+SECTION
+("includes�he size of�he‚ested‡rrect") {
+
+38 
+JsÚObjeù
+ 
+	gÃ¡ed
+ = 
+¬r
+.
+ü—‹Ne¡edObjeù
+();
+
+39 
+	gÃ¡ed
+["hello"] = "world";
+
+40 
+REQUIRE
+(
+¬r
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_ARRAY_SIZE
+(1));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/nesting.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::nesting()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+12 
+SECTION
+("return 0 if uninitialized") {
+
+13 
+JsÚA¼ay
+ 
+	gun™Ÿlized
+;
+
+14 
+REQUIRE
+(
+un™Ÿlized
+.
+Ã¡šg
+() == 0);
+
+17 
+SECTION
+("returns 1 forƒmpty‡rray") {
+
+18 
+REQUIRE
+(
+¬r
+.
+Ã¡šg
+() == 1);
+
+21 
+SECTION
+("returns 1 for flat‡rray") {
+
+22 
+	g¬r
+.
+add
+("hello");
+
+23 
+REQUIRE
+(
+¬r
+.
+Ã¡šg
+() == 1);
+
+26 
+SECTION
+("returns 2 with‚ested‡rray") {
+
+27 
+	g¬r
+.
+ü—‹Ne¡edA¼ay
+();
+
+28 
+REQUIRE
+(
+¬r
+.
+Ã¡šg
+() == 2);
+
+31 
+SECTION
+("returns 2 with‚ested object") {
+
+32 
+	g¬r
+.
+ü—‹Ne¡edObjeù
+();
+
+33 
+REQUIRE
+(
+¬r
+.
+Ã¡šg
+() == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/remove.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::remove()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g_¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+11 
+	g_¬¿y
+.
+add
+(1);
+
+12 
+	g_¬¿y
+.
+add
+(2);
+
+13 
+	g_¬¿y
+.
+add
+(3);
+
+15 
+SECTION
+("RemoveFirstByIndex") {
+
+16 
+	g_¬¿y
+.
+»move
+(0);
+
+18 
+REQUIRE
+(2 =ð
+_¬¿y
+.
+size
+());
+
+19 
+REQUIRE
+(
+_¬¿y
+[0] == 2);
+
+20 
+REQUIRE
+(
+_¬¿y
+[1] == 3);
+
+23 
+SECTION
+("RemoveMiddleByIndex") {
+
+24 
+	g_¬¿y
+.
+»move
+(1);
+
+26 
+REQUIRE
+(2 =ð
+_¬¿y
+.
+size
+());
+
+27 
+REQUIRE
+(
+_¬¿y
+[0] == 1);
+
+28 
+REQUIRE
+(
+_¬¿y
+[1] == 3);
+
+31 
+SECTION
+("RemoveLastByIndex") {
+
+32 
+	g_¬¿y
+.
+»move
+(2);
+
+34 
+REQUIRE
+(2 =ð
+_¬¿y
+.
+size
+());
+
+35 
+REQUIRE
+(
+_¬¿y
+[0] == 1);
+
+36 
+REQUIRE
+(
+_¬¿y
+[1] == 2);
+
+39 
+SECTION
+("RemoveFirstByIterator") {
+
+40 
+	gJsÚA¼ay
+::
+™”©Ü
+ 
+™
+ = 
+_¬¿y
+.
+begš
+();
+
+41 
+	g_¬¿y
+.
+»move
+(
+™
+);
+
+43 
+REQUIRE
+(2 =ð
+_¬¿y
+.
+size
+());
+
+44 
+REQUIRE
+(
+_¬¿y
+[0] == 2);
+
+45 
+REQUIRE
+(
+_¬¿y
+[1] == 3);
+
+48 
+SECTION
+("RemoveMiddleByIterator") {
+
+49 
+	gJsÚA¼ay
+::
+™”©Ü
+ 
+™
+ = 
+_¬¿y
+.
+begš
+();
+
+50 ++
+	g™
+;
+
+51 
+	g_¬¿y
+.
+»move
+(
+™
+);
+
+53 
+REQUIRE
+(2 =ð
+_¬¿y
+.
+size
+());
+
+54 
+REQUIRE
+(
+_¬¿y
+[0] == 1);
+
+55 
+REQUIRE
+(
+_¬¿y
+[1] == 3);
+
+58 
+SECTION
+("RemoveLastByIterator") {
+
+59 
+	gJsÚA¼ay
+::
+™”©Ü
+ 
+™
+ = 
+_¬¿y
+.
+begš
+();
+
+60 ++
+	g™
+;
+
+61 ++
+	g™
+;
+
+62 
+	g_¬¿y
+.
+»move
+(
+™
+);
+
+64 
+REQUIRE
+(2 =ð
+_¬¿y
+.
+size
+());
+
+65 
+REQUIRE
+(
+_¬¿y
+[0] == 1);
+
+66 
+REQUIRE
+(
+_¬¿y
+[1] == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/size.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonArray::size()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+12 
+SECTION
+("returns 0 isƒmpty") {
+
+13 
+REQUIRE
+(0U =ð
+¬¿y
+.
+size
+());
+
+16 
+SECTION
+("increases‡fter‡dd()") {
+
+17 
+	g¬¿y
+.
+add
+("hello");
+
+18 
+REQUIRE
+(1U =ð
+¬¿y
+.
+size
+());
+
+20 
+	g¬¿y
+.
+add
+("world");
+
+21 
+REQUIRE
+(2U =ð
+¬¿y
+.
+size
+());
+
+24 
+SECTION
+("remains�he same‡fter„eplacing‡nƒlement") {
+
+25 
+	g¬¿y
+.
+add
+("hello");
+
+26 
+REQUIRE
+(1U =ð
+¬¿y
+.
+size
+());
+
+28 
+	g¬¿y
+[0] = "hello";
+
+29 
+REQUIRE
+(1U =ð
+¬¿y
+.
+size
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/std_string.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$”a£SŒšg
+(
+¡d
+::
+¡ršg
+ &
+¡r
+) {
+
+9 *
+p
+ = 
+cÚ¡_ÿ¡
+<*>(
+¡r
+.
+	`c_¡r
+());
+
+10 *
+p
+) *p++ = '*';
+
+11 
+	}
+}
+
+13 
+TEST_CASE
+("std::string") {
+
+14 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+15 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+17 
+SECTION
+("add()") {
+
+18 
+	g¡d
+::
+¡ršg
+ 
+v®ue
+("hello");
+
+19 
+	g¬¿y
+.
+add
+(
+v®ue
+);
+
+20 
+”a£SŒšg
+(
+v®ue
+);
+
+21 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("h–lo"è=ð
+¬¿y
+[0]);
+
+24 
+SECTION
+("operator[]") {
+
+25 
+	g¡d
+::
+¡ršg
+ 
+v®ue
+("world");
+
+26 
+	g¬¿y
+.
+add
+("hello");
+
+27 
+	g¬¿y
+[0] = 
+v®ue
+;
+
+28 
+”a£SŒšg
+(
+v®ue
+);
+
+29 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+¬¿y
+[0]);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/subscript.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+TEST_CASE
+("JsonArray::operator[]") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+13 
+SECTION
+("Pad with‚ull") {
+
+14 
+	g¬¿y
+[2] = 2;
+
+15 
+	g¬¿y
+[5] = 5;
+
+16 
+REQUIRE
+(
+¬¿y
+.
+size
+() == 6);
+
+17 
+REQUIRE
+(
+¬¿y
+[0].
+isNuÎ
+(è=ð
+Œue
+);
+
+18 
+REQUIRE
+(
+¬¿y
+[1].
+isNuÎ
+(è=ð
+Œue
+);
+
+19 
+REQUIRE
+(
+¬¿y
+[2].
+isNuÎ
+(è=ð
+çl£
+);
+
+20 
+REQUIRE
+(
+¬¿y
+[3].
+isNuÎ
+(è=ð
+Œue
+);
+
+21 
+REQUIRE
+(
+¬¿y
+[4].
+isNuÎ
+(è=ð
+Œue
+);
+
+22 
+REQUIRE
+(
+¬¿y
+[5].
+isNuÎ
+(è=ð
+çl£
+);
+
+23 
+REQUIRE
+(
+¬¿y
+[2] == 2);
+
+24 
+REQUIRE
+(
+¬¿y
+[5] == 5);
+
+27 
+SECTION
+("int") {
+
+28 
+	g¬¿y
+[0] = 123;
+
+29 
+REQUIRE
+(123 =ð
+¬¿y
+[0].
+as
+<>());
+
+30 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+is
+<>());
+
+31 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<
+boÞ
+>());
+
+34 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+35 
+SECTION
+("long†ong") {
+
+36 
+	g¬¿y
+[0] = 9223372036854775807;
+
+37 
+REQUIRE
+(9223372036854775807 =ð
+¬¿y
+[0].
+as
+<
+št64_t
+>());
+
+38 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+is
+<
+št64_t
+>());
+
+39 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<
+št32_t
+>());
+
+40 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<
+boÞ
+>());
+
+44 
+SECTION
+("double") {
+
+45 
+	g¬¿y
+[0] = 123.45;
+
+46 
+REQUIRE
+(123.45 =ð
+¬¿y
+[0].
+as
+<>());
+
+47 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+is
+<>());
+
+48 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<>());
+
+51 
+SECTION
+("bool") {
+
+52 
+	g¬¿y
+[0] = 
+Œue
+;
+
+53 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+as
+<
+boÞ
+>());
+
+54 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+is
+<
+boÞ
+>());
+
+55 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<>());
+
+58 
+SECTION
+("const char*") {
+
+59 cÚ¡ * 
+	g¡r
+ = "hello";
+
+61 
+	g¬¿y
+[0] = 
+¡r
+;
+
+62 
+REQUIRE
+(
+¡r
+ =ð
+¬¿y
+[0].
+as
+<const *>());
+
+63 
+REQUIRE
+(
+¡r
+ =ð
+¬¿y
+[0].
+as
+<*>());
+
+64 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+is
+<const *>());
+
+65 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<>());
+
+68 
+SECTION
+("nested‡rray") {
+
+69 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+70 
+JsÚA¼ay
+ 
+	g¬r2
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+72 
+	g¬¿y
+[0] = 
+¬r2
+;
+
+74 
+REQUIRE
+(
+¬r2
+ =ð
+¬¿y
+[0].
+as
+<
+JsÚA¼ay
+>());
+
+75 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+is
+<
+JsÚA¼ay
+>());
+
+76 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<>());
+
+79 
+SECTION
+("nested object") {
+
+80 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+81 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+83 
+	g¬¿y
+[0] = 
+obj
+;
+
+85 
+REQUIRE
+(
+obj
+ =ð
+¬¿y
+[0].
+as
+<
+JsÚObjeù
+>());
+
+86 
+REQUIRE
+(
+Œue
+ =ð
+¬¿y
+[0].
+is
+<
+JsÚObjeù
+>());
+
+87 
+REQUIRE
+(
+çl£
+ =ð
+¬¿y
+[0].
+is
+<>());
+
+90 
+SECTION
+("array subscript") {
+
+91 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+92 
+JsÚA¼ay
+ 
+	g¬r2
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+93 cÚ¡ * 
+	g¡r
+ = "hello";
+
+95 
+	g¬r2
+.
+add
+(
+¡r
+);
+
+97 
+	g¬¿y
+[0] = 
+¬r2
+[0];
+
+99 
+REQUIRE
+(
+¡r
+ =ð
+¬¿y
+[0]);
+
+102 
+SECTION
+("object subscript") {
+
+103 cÚ¡ * 
+	g¡r
+ = "hello";
+
+104 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+105 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+107 
+	gobj
+["x"] = 
+¡r
+;
+
+109 
+	g¬¿y
+[0] = 
+obj
+["x"];
+
+111 
+REQUIRE
+(
+¡r
+ =ð
+¬¿y
+[0]);
+
+114 
+SECTION
+("should‚ot duplicate const char*") {
+
+115 
+	g¬¿y
+[0] = "world";
+
+116 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1);
+
+117 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+120 
+SECTION
+("should duplicate char*") {
+
+121 
+	g¬¿y
+[0] = 
+cÚ¡_ÿ¡
+<*>("world");
+
+122 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+123 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+126 
+SECTION
+("should duplicate std::string") {
+
+127 
+	g¬¿y
+[0] = 
+¡d
+::
+¡ršg
+("world");
+
+128 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+129 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+132 
+SECTION
+("array[0].to<JsonObject>()") {
+
+133 
+JsÚObjeù
+ 
+	gobj
+ = 
+¬¿y
+[0].
+to
+<JsonObject>();
+
+134 
+REQUIRE
+(
+obj
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+137 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+138 
+SECTION
+("set(VLA)") {
+
+139 
+	gi
+ = 16;
+
+140 
+	gvÏ
+[
+i
+];
+
+141 
+¡rýy
+(
+vÏ
+, "world");
+
+143 
+	g¬¿y
+.
+add
+("hello");
+
+144 
+	g¬¿y
+[0].
+£t
+(
+vÏ
+);
+
+146 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+¬¿y
+[0]);
+
+149 
+SECTION
+("operator=(VLA)") {
+
+150 
+	gi
+ = 16;
+
+151 
+	gvÏ
+[
+i
+];
+
+152 
+¡rýy
+(
+vÏ
+, "world");
+
+154 
+	g¬¿y
+.
+add
+("hello");
+
+155 
+	g¬¿y
+[0] = 
+vÏ
+;
+
+157 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+¬¿y
+[0]);
+
+162 
+TEST_CASE
+("JsonArrayConst::operator[]") {
+
+163 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+164 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+165 
+	g¬¿y
+.
+add
+(0);
+
+167 
+SECTION
+("int") {
+
+168 
+	g¬¿y
+[0] = 123;
+
+169 
+JsÚA¼ayCÚ¡
+ 
+	gÿ¼
+ = 
+¬¿y
+;
+
+171 
+REQUIRE
+(123 =ð
+ÿ¼
+[0].
+as
+<>());
+
+172 
+REQUIRE
+(
+Œue
+ =ð
+ÿ¼
+[0].
+is
+<>());
+
+173 
+REQUIRE
+(
+çl£
+ =ð
+ÿ¼
+[0].
+is
+<
+boÞ
+>());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonArray/undefined.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gC©ch
+::
+M©ch”s
+;
+
+10 
+TEST_CASE
+("Undefined JsonArray") {
+
+11 
+JsÚA¼ay
+ 
+	g¬¿y
+;
+
+13 
+SECTION
+("SubscriptFails") {
+
+14 
+REQUIRE
+(
+¬¿y
+[0].
+isNuÎ
+());
+
+17 
+SECTION
+("AddFails") {
+
+18 
+	g¬¿y
+.
+add
+(1);
+
+19 
+REQUIRE
+(0 =ð
+¬¿y
+.
+size
+());
+
+22 
+SECTION
+("CreateNestedArrayFails") {
+
+23 
+REQUIRE
+(
+¬¿y
+.
+ü—‹Ne¡edA¼ay
+().
+isNuÎ
+());
+
+26 
+SECTION
+("CreateNestedObjectFails") {
+
+27 
+REQUIRE
+(
+¬¿y
+.
+ü—‹Ne¡edObjeù
+().
+isNuÎ
+());
+
+30 
+SECTION
+("PrintToWritesBrackets") {
+
+31 
+	gbufãr
+[32];
+
+32 
+£rŸlizeJsÚ
+(
+¬¿y
+, 
+bufãr
+, (buffer));
+
+33 
+REQUIRE_THAT
+(
+bufãr
+, 
+Equ®s
+("null"));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$‹¡SŒšgifiÿtiÚ
+(
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+, 
+¡d
+::
+¡ršg
+ 
+ex³ùed
+) {
+
+9 
+	`REQUIRE
+(
+”rÜ
+.
+	`c_¡r
+(è=ð
+ex³ùed
+);
+
+10 
+	}
+}
+
+12 
+	$‹¡BoÞifiÿtiÚ
+(
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+, 
+boÞ
+ 
+ex³ùed
+) {
+
+14 
+	`CHECK
+(
+”rÜ
+ =ð
+ex³ùed
+);
+
+15 
+	`CHECK
+(
+”rÜ
+ !ð!
+ex³ùed
+);
+
+16 
+	`CHECK
+(!
+”rÜ
+ =ð!
+ex³ùed
+);
+
+19 
+	`CHECK
+(
+ex³ùed
+ =ð
+”rÜ
+);
+
+20 
+	`CHECK
+(!
+ex³ùed
+ !ð
+”rÜ
+);
+
+21 
+	`CHECK
+(!
+ex³ùed
+ =ð!
+”rÜ
+);
+
+22 
+	}
+}
+
+24 
+	#TEST_STRINGIFICATION
+(
+symbÞ
+) \
+
+25 
+	`‹¡SŒšgifiÿtiÚ
+(
+De£rŸliz©iÚE¼Ü
+::
+symbÞ
+, #symbÞ)
+
+	)
+
+27 
+	#TEST_BOOLIFICATION
+(
+symbÞ
+, 
+ex³ùed
+) \
+
+28 
+	`‹¡BoÞifiÿtiÚ
+(
+De£rŸliz©iÚE¼Ü
+::
+symbÞ
+, 
+ex³ùed
+)
+
+	)
+
+30 
+TEST_CASE
+("DeserializationError") {
+
+31 
+SECTION
+("c_str()") {
+
+32 
+TEST_STRINGIFICATION
+(
+Ok
+);
+
+33 
+TEST_STRINGIFICATION
+(
+TooD“p
+);
+
+34 
+TEST_STRINGIFICATION
+(
+NoMemÜy
+);
+
+35 
+TEST_STRINGIFICATION
+(
+Inv®idIÅut
+);
+
+36 
+TEST_STRINGIFICATION
+(
+Incom¶‘eIÅut
+);
+
+37 
+TEST_STRINGIFICATION
+(
+NÙSuµÜ‹d
+);
+
+40 
+SECTION
+("as boolean") {
+
+41 
+TEST_BOOLIFICATION
+(
+Ok
+, 
+çl£
+);
+
+42 
+TEST_BOOLIFICATION
+(
+TooD“p
+, 
+Œue
+);
+
+43 
+TEST_BOOLIFICATION
+(
+NoMemÜy
+, 
+Œue
+);
+
+44 
+TEST_BOOLIFICATION
+(
+Inv®idIÅut
+, 
+Œue
+);
+
+45 
+TEST_BOOLIFICATION
+(
+Incom¶‘eIÅut
+, 
+Œue
+);
+
+46 
+TEST_BOOLIFICATION
+(
+NÙSuµÜ‹d
+, 
+Œue
+);
+
+49 
+SECTION
+("ostream DeserializationError") {
+
+50 
+	g¡d
+::
+¡ršg¡»am
+ 
+s
+;
+
+51 
+	gs
+ << 
+De£rŸliz©iÚE¼Ü
+(De£rŸliz©iÚE¼Ü::
+Inv®idIÅut
+);
+
+52 
+REQUIRE
+(
+s
+.
+¡r
+() == "InvalidInput");
+
+55 
+SECTION
+("ostream DeserializationError::Code") {
+
+56 
+	g¡d
+::
+¡ršg¡»am
+ 
+s
+;
+
+57 
+	gs
+ << 
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+58 
+REQUIRE
+(
+s
+.
+¡r
+() == "InvalidInput");
+
+61 
+SECTION
+("out of„ange") {
+
+62 
+	gcode
+ = 666;
+
+63 
+De£rŸliz©iÚE¼Ü
+ 
+”r
+(
+
+64 *
+»š‹½»t_ÿ¡
+<
+De£rŸliz©iÚE¼Ü
+::
+Code
+*>(&
+code
+));
+
+65 
+REQUIRE
+(
+”r
+.
+c_¡r
+(è=ð
+¡d
+::
+¡ršg
+("???"));
+
+68 
+SECTION
+("switch") {
+
+69 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = De£rŸliz©iÚE¼Ü::
+Inv®idIÅut
+;
+
+70 
+	g”r
+.
+code
+()) {
+
+71 
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+:
+
+72 
+SUCCEED
+();
+
+75 
+FAIL
+();
+
+80 
+SECTION
+("Comparisons") {
+
+81 
+De£rŸliz©iÚE¼Ü
+ 
+šv®idIÅut
+(De£rŸliz©iÚE¼Ü::
+Inv®idIÅut
+);
+
+82 
+De£rŸliz©iÚE¼Ü
+ 
+ok
+(De£rŸliz©iÚE¼Ü::
+Ok
+);
+
+84 
+SECTION
+("DeserializationError == bool") {
+
+85 
+REQUIRE
+(
+šv®idIÅut
+ =ð
+Œue
+);
+
+86 
+REQUIRE
+(
+ok
+ =ð
+çl£
+);
+
+89 
+SECTION
+("bool == DeserializationError") {
+
+90 
+REQUIRE
+(
+Œue
+ =ð
+šv®idIÅut
+);
+
+91 
+REQUIRE
+(
+çl£
+ =ð
+ok
+);
+
+94 
+SECTION
+("DeserializationError != bool") {
+
+95 
+REQUIRE
+(
+šv®idIÅut
+ !ð
+çl£
+);
+
+96 
+REQUIRE
+(
+ok
+ !ð
+Œue
+);
+
+99 
+SECTION
+("bool != DeserializationError") {
+
+100 
+REQUIRE
+(
+çl£
+ !ð
+šv®idIÅut
+);
+
+101 
+REQUIRE
+(
+Œue
+ !ð
+ok
+);
+
+104 
+SECTION
+("Negations") {
+
+105 
+REQUIRE
+(!
+šv®idIÅut
+ =ð
+çl£
+);
+
+106 
+REQUIRE
+(!
+ok
+ =ð
+Œue
+);
+
+109 
+SECTION
+("DeserializationError == Code") {
+
+110 
+REQUIRE
+(
+šv®idIÅut
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+111 
+REQUIRE
+(
+ok
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+114 
+SECTION
+("Code == DeserializationError") {
+
+115 
+REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+ =ð
+šv®idIÅut
+);
+
+116 
+REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+Ok
+ =ð
+ok
+);
+
+119 
+SECTION
+("DeserializationError != Code") {
+
+120 
+REQUIRE
+(
+šv®idIÅut
+ !ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+121 
+REQUIRE
+(
+ok
+ !ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+124 
+SECTION
+("Code != DeserializationError") {
+
+125 
+REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+Ok
+ !ð
+šv®idIÅut
+);
+
+126 
+REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+ !ð
+ok
+);
+
+129 
+SECTION
+("DeserializationError == DeserializationError") {
+
+130 
+REQUIRE_FALSE
+(
+šv®idIÅut
+ =ð
+ok
+);
+
+133 
+SECTION
+("DeserializationError != DeserializationError") {
+
+134 
+REQUIRE
+(
+šv®idIÅut
+ !ð
+ok
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("deserialize JSON‡rray") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("Anƒmpty‡rray") {
+
+12 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[]");
+
+13 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+15 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+16 
+REQUIRE
+(0 =ð
+¬r
+.
+size
+());
+
+19 
+SECTION
+("Spaces") {
+
+20 
+SECTION
+("Before�he opening bracket") {
+
+21 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, " []");
+
+22 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+24 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+25 
+REQUIRE
+(0 =ð
+¬r
+.
+size
+());
+
+28 
+SECTION
+("Before first value") {
+
+29 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[ \t\r\n42]");
+
+30 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+32 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+33 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+34 
+REQUIRE
+(
+¬r
+[0] == 42);
+
+37 
+SECTION
+("After first value") {
+
+38 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[42 \t\r\n]");
+
+39 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+41 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+42 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+43 
+REQUIRE
+(
+¬r
+[0] == 42);
+
+47 
+SECTION
+("Values�ypes") {
+
+48 
+SECTION
+("On integer") {
+
+49 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[42]");
+
+50 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+52 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+53 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+54 
+REQUIRE
+(
+¬r
+[0] == 42);
+
+57 
+SECTION
+("Two integers") {
+
+58 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[42,84]");
+
+59 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+61 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+62 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+63 
+REQUIRE
+(
+¬r
+[0] == 42);
+
+64 
+REQUIRE
+(
+¬r
+[1] == 84);
+
+67 
+SECTION
+("Double") {
+
+68 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[4.2,1e2]");
+
+69 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+71 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+72 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+73 
+REQUIRE
+(
+¬r
+[0] == 4.2);
+
+74 
+REQUIRE
+(
+¬r
+[1] == 1e2);
+
+77 
+SECTION
+("Unsigned†ong") {
+
+78 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[4294967295]");
+
+79 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+81 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+82 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+83 
+REQUIRE
+(
+¬r
+[0] == 4294967295UL);
+
+86 
+SECTION
+("Boolean") {
+
+87 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[true,false]");
+
+88 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+90 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+91 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+92 
+REQUIRE
+(
+¬r
+[0] =ð
+Œue
+);
+
+93 
+REQUIRE
+(
+¬r
+[1] =ð
+çl£
+);
+
+96 
+SECTION
+("Null") {
+
+97 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[null,null]");
+
+98 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+100 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+101 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+102 
+REQUIRE
+(
+¬r
+[0].
+as
+<*>() == 0);
+
+103 
+REQUIRE
+(
+¬r
+[1].
+as
+<*>() == 0);
+
+107 
+SECTION
+("Quotes") {
+
+108 
+SECTION
+("Double quotes") {
+
+109 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+110 
+de£rŸlizeJsÚ
+(
+doc
+, "[ \"hello\" , \"world\" ]");
+
+111 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+113 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+114 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+115 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+116 
+REQUIRE
+(
+¬r
+[1] == "world");
+
+119 
+SECTION
+("Single quotes") {
+
+120 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[ 'hello' , 'world' ]");
+
+121 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+123 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+124 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+125 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+126 
+REQUIRE
+(
+¬r
+[1] == "world");
+
+129 
+SECTION
+("No quotes") {
+
+130 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[ hello , world ]");
+
+131 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+134 
+SECTION
+("Double quotes (empty strings)") {
+
+135 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"\",\"\"]");
+
+136 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+138 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+139 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+140 
+REQUIRE
+(
+¬r
+[0] == "");
+
+141 
+REQUIRE
+(
+¬r
+[1] == "");
+
+144 
+SECTION
+("Single quotes (empty strings)") {
+
+145 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[\'\',\'\']");
+
+146 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+148 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+149 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+150 
+REQUIRE
+(
+¬r
+[0] == "");
+
+151 
+REQUIRE
+(
+¬r
+[1] == "");
+
+154 
+SECTION
+("No quotes (empty strings)") {
+
+155 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[,]");
+
+157 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+160 
+SECTION
+("Closing single quotes missing") {
+
+161 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"]");
+
+163 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+166 
+SECTION
+("Closing double quotes missing") {
+
+167 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[\']");
+
+169 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+173 
+SECTION
+("Premature‚ull-terminator") {
+
+174 
+SECTION
+("After opening bracket") {
+
+175 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[");
+
+177 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+180 
+SECTION
+("After value") {
+
+181 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[1");
+
+183 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+186 
+SECTION
+("After comma") {
+
+187 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[1,");
+
+189 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+193 
+SECTION
+("Prematureƒnd of input") {
+
+194 cÚ¡ * 
+	gšput
+ = "[1,2]";
+
+196 
+SECTION
+("After opening bracket") {
+
+197 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+, 1);
+
+199 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+202 
+SECTION
+("After value") {
+
+203 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+, 2);
+
+205 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+208 
+SECTION
+("After comma") {
+
+209 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+, 3);
+
+211 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+215 
+SECTION
+("Misc") {
+
+216 
+SECTION
+("Nested objects") {
+
+217 
+	gjsÚSŒšg
+[] =
+
+220 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚSŒšg
+);
+
+221 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+223 
+JsÚObjeù
+ 
+	gobjeù1
+ = 
+¬r
+[0];
+
+224 cÚ¡ 
+JsÚObjeù
+ 
+	gobjeù2
+ = 
+¬r
+[1];
+
+225 
+JsÚObjeù
+ 
+	gobjeù3
+ = 
+¬r
+[2];
+
+227 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+229 
+REQUIRE
+(
+objeù1
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+230 
+REQUIRE
+(
+objeù2
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+231 
+REQUIRE
+(
+objeù3
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+233 
+REQUIRE
+(2 =ð
+objeù1
+.
+size
+());
+
+234 
+REQUIRE
+(2 =ð
+objeù2
+.
+size
+());
+
+235 
+REQUIRE
+(0 =ð
+objeù3
+.
+size
+());
+
+237 
+REQUIRE
+(1 =ð
+objeù1
+["a"].
+as
+<>());
+
+238 
+REQUIRE
+(2 =ð
+objeù1
+["b"].
+as
+<>());
+
+239 
+REQUIRE
+(3 =ð
+objeù2
+["c"].
+as
+<>());
+
+240 
+REQUIRE
+(4 =ð
+objeù2
+["d"].
+as
+<>());
+
+241 
+REQUIRE
+(0 =ð
+objeù3
+["e"].
+as
+<>());
+
+245 
+SECTION
+("Should clear�he JsonArray") {
+
+246 
+de£rŸlizeJsÚ
+(
+doc
+, "[1,2,3,4]");
+
+247 
+de£rŸlizeJsÚ
+(
+doc
+, "[]");
+
+248 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+250 
+REQUIRE
+(
+¬r
+.
+size
+() == 0);
+
+251 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(0));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array_static.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("deserialize JSON‡rray with‡ StaticJsonDocument") {
+
+9 
+SECTION
+("BufferOfTheRightSizeForEmptyArray") {
+
+10 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(0)> 
+	gdoc
+;
+
+11 
+	gšput
+[] = "[]";
+
+13 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+15 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+18 
+SECTION
+("TooSmallBufferForArrayWithOneValue") {
+
+19 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(0)> 
+	gdoc
+;
+
+20 
+	gšput
+[] = "[1]";
+
+22 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+24 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+27 
+SECTION
+("BufferOfTheRightSizeForArrayWithOneValue") {
+
+28 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(1)> 
+	gdoc
+;
+
+29 
+	gšput
+[] = "[1]";
+
+31 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+33 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+36 
+SECTION
+("TooSmallBufferForArrayWithNestedObject") {
+
+37 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(0è+ 
+JSON_OBJECT_SIZE
+(0)> 
+	gdoc
+;
+
+38 
+	gšput
+[] = "[{}]";
+
+40 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+42 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+45 
+SECTION
+("BufferOfTheRightSizeForArrayWithNestedObject") {
+
+46 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_OBJECT_SIZE
+(0)> 
+	gdoc
+;
+
+47 
+	gšput
+[] = "[{}]";
+
+49 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+51 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+54 
+SECTION
+("CopyStringNotSpaces") {
+
+55 
+	gS�ticJsÚDocum’t
+<100> 
+	gdoc
+;
+
+57 
+de£rŸlizeJsÚ
+(
+doc
+, " [ \"1234567\" ] ");
+
+59 
+REQUIRE
+(
+JSON_ARRAY_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(8è=ð
+doc
+.
+memÜyU§ge
+());
+
+64 
+SECTION
+("Should clear�he JsonArray") {
+
+65 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(4)> 
+	gdoc
+;
+
+66 
+	gšput
+[] = "[1,2,3,4]";
+
+68 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+69 
+de£rŸlizeJsÚ
+(
+doc
+, "[]");
+
+71 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+72 
+REQUIRE
+(
+¬r
+.
+size
+() == 0);
+
+73 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(0));
+
+76 
+SECTION
+("Array") {
+
+77 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(2)> 
+	gdoc
+;
+
+78 
+	gšput
+[] = "[1,2]";
+
+80 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+81 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+83 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+84 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚA¼ay
+>());
+
+85 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(2));
+
+86 
+REQUIRE
+(
+¬r
+[0] == 1);
+
+87 
+REQUIRE
+(
+¬r
+[1] == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp
+
+5 
+	#ARDUINOJSON_ENABLE_COMMENTS
+ 1
+
+	)
+
+6 
+	~<ArdušoJsÚ.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+	~<s¡»am
+>
+
+10 
+	~<¡ršg
+>
+
+12 
+TEST_CASE
+("Filtering") {
+
+13 
+	sTe¡Ca£
+ {
+
+14 cÚ¡ * 
+	gšput
+;
+
+15 cÚ¡ * 
+	gfž‹r
+;
+
+16 
+ušt8_t
+ 
+	gÃ¡šgLim™
+;
+
+17 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+;
+
+18 cÚ¡ * 
+	gou�ut
+;
+
+19 
+size_t
+ 
+	gmemÜyU§ge
+;
+
+23 
+Te¡Ca£
+ 
+	g‹¡Ca£s
+[] = {
+
+28 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+36 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+44 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+46 
+JSON_OBJECT_SIZE
+(1) + 16
+
+52 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+54 
+JSON_OBJECT_SIZE
+(0)
+
+61 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+70 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+79 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+88 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+97 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+99 
+JSON_OBJECT_SIZE
+(1) + 8
+
+106 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+108 
+JSON_OBJECT_SIZE
+(1) + 8
+
+115 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+117 
+JSON_OBJECT_SIZE
+(1) + 8
+
+124 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+126 
+JSON_OBJECT_SIZE
+(1) + 8
+
+133 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+135 
+JSON_OBJECT_SIZE
+(1) + 8
+
+142 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+144 
+JSON_OBJECT_SIZE
+(1) + 8
+
+151 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+153 
+JSON_OBJECT_SIZE
+(1) + 8
+
+160 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+162 
+JSON_OBJECT_SIZE
+(1) + 8
+
+169 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+171 
+JSON_OBJECT_SIZE
+(1) + 8
+
+178 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+180 
+JSON_OBJECT_SIZE
+(1) + 8
+
+187 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+189 
+JSON_OBJECT_SIZE
+(1) + 8
+
+196 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+198 
+JSON_OBJECT_SIZE
+(1) + 8
+
+205 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+207 
+JSON_OBJECT_SIZE
+(1) + 8
+
+213 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+215 2 * 
+JSON_OBJECT_SIZE
+(1) + 16
+
+222 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+224 
+JSON_ARRAY_SIZE
+(3)
+
+231 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+233 
+JSON_ARRAY_SIZE
+(0)
+
+240 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+242 
+JSON_ARRAY_SIZE
+(2è+ 2 * 
+JSON_OBJECT_SIZE
+(1) + 16
+
+248 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+250 
+JSON_ARRAY_SIZE
+(0)
+
+256 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+258 
+JSON_ARRAY_SIZE
+(0)
+
+265 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+267 
+JSON_ARRAY_SIZE
+(0)
+
+274 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+283 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+292 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+301 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+310 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+319 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+328 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+337 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+346 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+355 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+364 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+373 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+382 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+391 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+400 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+,
+
+409 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+,
+
+418 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+,
+
+420 
+JSON_OBJECT_SIZE
+(0)
+
+427 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+,
+
+436 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+,
+
+445 
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+,
+
+447 
+JSON_ARRAY_SIZE
+(0)
+
+454 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+463 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+472 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+481 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+490 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+492 
+JSON_ARRAY_SIZE
+(0)
+
+499 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+501 
+JSON_ARRAY_SIZE
+(0)
+
+508 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+510 
+JSON_OBJECT_SIZE
+(0)
+
+517 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+519 
+JSON_OBJECT_SIZE
+(0)
+
+526 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+528 
+JSON_OBJECT_SIZE
+(0) + 8
+
+535 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+537 
+JSON_OBJECT_SIZE
+(0) + 8
+
+544 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+546 
+JSON_OBJECT_SIZE
+(0)
+
+553 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+555 
+JSON_OBJECT_SIZE
+(0)
+
+562 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+,
+
+564 
+JSON_OBJECT_SIZE
+(0)
+
+571 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+580 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+589 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+598 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+607 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+,
+
+616 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+,
+
+622 
+size_t
+ 
+	gi
+ = 0; i < (
+	g‹¡Ca£s
+) / (testCases[0]); i++) {
+
+623 
+CAPTURE
+(
+i
+);
+
+625 
+DyÇmicJsÚDocum’t
+ 
+fž‹r
+(256);
+
+626 
+DyÇmicJsÚDocum’t
+ 
+doc
+(256);
+
+627 
+	gTe¡Ca£
+& 
+	gtc
+ = 
+‹¡Ca£s
+[
+i
+];
+
+629 
+CAPTURE
+(
+tc
+.
+fž‹r
+);
+
+630 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+fž‹r
+, 
+tc
+.fž‹rè=ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+632 
+CAPTURE
+(
+tc
+.
+šput
+);
+
+633 
+CAPTURE
+(
+tc
+.
+Ã¡šgLim™
+);
+
+634 
+CHECK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+tc
+.
+šput
+, 
+De£rŸliz©iÚO±iÚ
+::
+Fž‹r
+(
+fž‹r
+),
+
+635 
+De£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+(
+
+636 
+tc
+.
+Ã¡šgLim™
+)è=ðtc.
+”rÜ
+);
+
+638 
+CHECK
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>(è=ð
+tc
+.
+ou�ut
+);
+
+639 
+CHECK
+(
+doc
+.
+memÜyU§ge
+(è=ð
+tc
+.memoryUsage);
+
+643 
+TEST_CASE
+("Overloads") {
+
+644 
+	gS�ticJsÚDocum’t
+<256> 
+	gdoc
+;
+
+645 
+	gS�ticJsÚDocum’t
+<256> 
+	gfž‹r
+;
+
+647 
+usšg
+ 
+Çme¥aû
+ 
+	gDe£rŸliz©iÚO±iÚ
+;
+
+651 
+SECTION
+("const char*, Filter") {
+
+652 
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 
+Fž‹r
+(
+fž‹r
+));
+
+655 
+SECTION
+("const char*, size_t, Filter") {
+
+656 
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 2, 
+Fž‹r
+(
+fž‹r
+));
+
+659 
+SECTION
+("const std::string&, Filter") {
+
+660 
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{}"), 
+Fž‹r
+(
+fž‹r
+));
+
+663 
+SECTION
+("std::istream&, Filter") {
+
+664 
+	g¡d
+::
+¡ršg¡»am
+ 
+s
+("{}");
+
+665 
+de£rŸlizeJsÚ
+(
+doc
+, 
+s
+, 
+Fž‹r
+(
+fž‹r
+));
+
+668 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+669 
+SECTION
+("char[n], Filter") {
+
+670 
+	gi
+ = 4;
+
+671 
+	gvÏ
+[
+i
+];
+
+672 
+¡rýy
+(
+vÏ
+, "{}");
+
+673 
+de£rŸlizeJsÚ
+(
+doc
+, 
+vÏ
+, 
+Fž‹r
+(
+fž‹r
+));
+
+679 
+SECTION
+("const char*, Filter, NestingLimit") {
+
+680 
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 
+Fž‹r
+(
+fž‹r
+), 
+Ne¡šgLim™
+(5));
+
+683 
+SECTION
+("const char*, size_t, Filter, NestingLimit") {
+
+684 
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 2, 
+Fž‹r
+(
+fž‹r
+), 
+Ne¡šgLim™
+(5));
+
+687 
+SECTION
+("const std::string&, Filter, NestingLimit") {
+
+688 
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{}"), 
+Fž‹r
+(
+fž‹r
+), 
+Ne¡šgLim™
+(5));
+
+691 
+SECTION
+("std::istream&, Filter, NestingLimit") {
+
+692 
+	g¡d
+::
+¡ršg¡»am
+ 
+s
+("{}");
+
+693 
+de£rŸlizeJsÚ
+(
+doc
+, 
+s
+, 
+Fž‹r
+(
+fž‹r
+), 
+Ne¡šgLim™
+(5));
+
+696 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+697 
+SECTION
+("char[n], Filter, NestingLimit") {
+
+698 
+	gi
+ = 4;
+
+699 
+	gvÏ
+[
+i
+];
+
+700 
+¡rýy
+(
+vÏ
+, "{}");
+
+701 
+de£rŸlizeJsÚ
+(
+doc
+, 
+vÏ
+, 
+Fž‹r
+(
+fž‹r
+), 
+Ne¡šgLim™
+(5));
+
+707 
+SECTION
+("const char*, NestingLimit, Filter") {
+
+708 
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 
+Ne¡šgLim™
+(5), 
+Fž‹r
+(
+fž‹r
+));
+
+711 
+SECTION
+("const char*, size_t, NestingLimit, Filter") {
+
+712 
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 2, 
+Ne¡šgLim™
+(5), 
+Fž‹r
+(
+fž‹r
+));
+
+715 
+SECTION
+("const std::string&, NestingLimit, Filter") {
+
+716 
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{}"), 
+Ne¡šgLim™
+(5), 
+Fž‹r
+(
+fž‹r
+));
+
+719 
+SECTION
+("std::istream&, NestingLimit, Filter") {
+
+720 
+	g¡d
+::
+¡ršg¡»am
+ 
+s
+("{}");
+
+721 
+de£rŸlizeJsÚ
+(
+doc
+, 
+s
+, 
+Ne¡šgLim™
+(5), 
+Fž‹r
+(
+fž‹r
+));
+
+724 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+725 
+SECTION
+("char[n], NestingLimit, Filter") {
+
+726 
+	gi
+ = 4;
+
+727 
+	gvÏ
+[
+i
+];
+
+728 
+¡rýy
+(
+vÏ
+, "{}");
+
+729 
+de£rŸlizeJsÚ
+(
+doc
+, 
+vÏ
+, 
+Ne¡šgLim™
+(5), 
+Fž‹r
+(
+fž‹r
+));
+
+734 
+TEST_CASE
+("StringMover::reclaim()") {
+
+735 
+	gS�ticJsÚDocum’t
+<200> 
+	gfž‹r
+;
+
+736 
+	gfž‹r
+["a"] = 
+Œue
+;
+
+737 
+	gfž‹r
+["c"] = 
+Œue
+;
+
+738 
+	gšput
+[] = "{\"a\":1,\"b\":2,\"c\":1}";
+
+740 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc
+;
+
+741 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+, 
+De£rŸliz©iÚO±iÚ
+::
+Fž‹r
+(
+fž‹r
+));
+
+743 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1,\"c\":1}");
+
+745 
+CHECK
+(
+šput
+[0] == 'a');
+
+746 
+CHECK
+(
+šput
+[1] == 0);
+
+747 
+CHECK
+(
+šput
+[2] == 'c');
+
+748 
+CHECK
+(
+šput
+[3] == 0);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/incomplete_input.cpp
+
+5 
+	#ARDUINOJSON_DECODE_UNICODE
+ 1
+
+	)
+
+6 
+	~<ArdušoJsÚ.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+TEST_CASE
+("Truncated JSON input") {
+
+10 cÚ¡ * 
+	g‹¡Ca£s
+[] = {"\"hello", "\'hello", "'\\u", "'\\u00", "'\\u000",
+
+19 cÚ¡ 
+size_t
+ 
+	g‹¡CouÁ
+ = (
+‹¡Ca£s
+) / (testCases[0]);
+
+21 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+23 
+size_t
+ 
+	gi
+ = 0; i < 
+	g‹¡CouÁ
+; i++) {
+
+24 cÚ¡ * 
+	gšput
+ = 
+‹¡Ca£s
+[
+i
+];
+
+25 
+CAPTURE
+(
+šput
+);
+
+26 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+) ==
+
+27 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<s¡»am
+>
+
+9 
+	~"Cu¡omR—d”.hµ
+"
+
+11 
+TEST_CASE
+("deserializeJson(const std::string&)") {
+
+12 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+14 
+SECTION
+("should‡ccept const string") {
+
+15 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+šput
+("[42]");
+
+17 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+19 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+22 
+SECTION
+("should‡ccept�emporary string") {
+
+23 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("[42]"));
+
+25 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+28 
+SECTION
+("should duplicate content") {
+
+29 
+	g¡d
+::
+¡ršg
+ 
+šput
+("[\"hello\"]");
+
+31 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+32 
+	gšput
+[2] = 'X';
+
+34 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+35 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+36 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("h–lo"è=ð
+¬¿y
+[0]);
+
+40 
+TEST_CASE
+("deserializeJson(std::istream&)") {
+
+41 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+43 
+SECTION
+("array") {
+
+44 
+	g¡d
+::
+i¡ršg¡»am
+ 
+jsÚ
+(" [ 42 ] ");
+
+46 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+47 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+49 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+50 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+51 
+REQUIRE
+(42 =ð
+¬r
+[0]);
+
+54 
+SECTION
+("object") {
+
+55 
+	g¡d
+::
+i¡ršg¡»am
+ 
+jsÚ
+(" { hello : 'world' }");
+
+57 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+58 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+60 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+61 
+REQUIRE
+(1 =ð
+obj
+.
+size
+());
+
+62 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+65 
+SECTION
+("Should‚ot„ead‡fter�he closing brace of‡nƒmpty object") {
+
+66 
+	g¡d
+::
+i¡ršg¡»am
+ 
+jsÚ
+("{}123");
+
+68 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+70 
+REQUIRE
+('1' =ð(
+jsÚ
+.
+g‘
+()));
+
+73 
+SECTION
+("Should‚ot„ead‡fter�he closing brace") {
+
+74 
+	g¡d
+::
+i¡ršg¡»am
+ 
+jsÚ
+("{\"hello\":\"world\"}123");
+
+76 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+78 
+REQUIRE
+('1' =ð(
+jsÚ
+.
+g‘
+()));
+
+81 
+SECTION
+("Should‚ot„ead‡fter�he closing bracket of‡nƒmpty‡rray") {
+
+82 
+	g¡d
+::
+i¡ršg¡»am
+ 
+jsÚ
+("[]123");
+
+84 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+86 
+REQUIRE
+('1' =ð(
+jsÚ
+.
+g‘
+()));
+
+89 
+SECTION
+("Should‚ot„ead‡fter�he closing bracket") {
+
+90 
+	g¡d
+::
+i¡ršg¡»am
+ 
+jsÚ
+("[\"hello\",\"world\"]123");
+
+92 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+94 
+REQUIRE
+('1' =ð(
+jsÚ
+.
+g‘
+()));
+
+97 
+SECTION
+("Should‚ot„ead‡fter�he closing quote") {
+
+98 
+	g¡d
+::
+i¡ršg¡»am
+ 
+jsÚ
+("\"hello\"123");
+
+100 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+102 
+REQUIRE
+('1' =ð(
+jsÚ
+.
+g‘
+()));
+
+106 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+107 
+TEST_CASE
+("deserializeJson(VLA)") {
+
+108 
+	gi
+ = 9;
+
+109 
+	gvÏ
+[
+i
+];
+
+110 
+¡rýy
+(
+vÏ
+, "{\"a\":42}");
+
+112 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1)> 
+	gdoc
+;
+
+113 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+vÏ
+);
+
+115 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+119 
+TEST_CASE
+("deserializeJson(CustomReader)") {
+
+120 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+121 
+Cu¡omR—d”
+ 
+»ad”
+("[4,2]");
+
+122 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+»ad”
+);
+
+124 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+125 
+REQUIRE
+(
+doc
+.
+size
+() == 2);
+
+126 
+REQUIRE
+(
+doc
+[0] == 4);
+
+127 
+REQUIRE
+(
+doc
+[1] == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/invalid_input.cpp
+
+5 
+	#ARDUINOJSON_DECODE_UNICODE
+ 1
+
+	)
+
+6 
+	~<ArdušoJsÚ.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+TEST_CASE
+("Invalid JSON input") {
+
+10 cÚ¡ * 
+	g‹¡Ca£s
+[] = {"'\\u'", "'\\u000g'", "'\\u000'", "'\\u000G'",
+
+13 cÚ¡ 
+size_t
+ 
+	g‹¡CouÁ
+ = (
+‹¡Ca£s
+) / (testCases[0]);
+
+15 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+17 
+size_t
+ 
+	gi
+ = 0; i < 
+	g‹¡CouÁ
+; i++) {
+
+18 cÚ¡ * 
+	gšput
+ = 
+‹¡Ca£s
+[
+i
+];
+
+19 
+CAPTURE
+(
+šput
+);
+
+20 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+è=ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+24 
+TEST_CASE
+("Invalid JSON input�hat should…ass") {
+
+25 cÚ¡ * 
+	g‹¡Ca£s
+[] = {
+
+33 cÚ¡ 
+size_t
+ 
+	g‹¡CouÁ
+ = (
+‹¡Ca£s
+) / (testCases[0]);
+
+35 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+37 
+size_t
+ 
+	gi
+ = 0; i < 
+	g‹¡CouÁ
+; i++) {
+
+38 cÚ¡ * 
+	gšput
+ = 
+‹¡Ca£s
+[
+i
+];
+
+39 
+CAPTURE
+(
+šput
+);
+
+40 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+è=ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gC©ch
+::
+M©ch”s
+;
+
+10 
+TEST_CASE
+("deserializeJson(DynamicJsonDocument&)") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+13 
+SECTION
+("Edge cases") {
+
+14 
+SECTION
+("null char*") {
+
+15 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡©ic_ÿ¡
+<*>(0));
+
+17 
+REQUIRE
+(
+”r
+ !ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+20 
+SECTION
+("null const char*") {
+
+21 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+22 
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡©ic_ÿ¡
+<const *>(0));
+
+24 
+REQUIRE
+(
+”r
+ !ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+27 
+SECTION
+("Empty input") {
+
+28 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "");
+
+30 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+33 
+SECTION
+("issue #628") {
+
+34 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "null");
+
+35 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+36 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+çl£
+);
+
+39 
+SECTION
+("Garbage") {
+
+40 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "%*$Â£Â¤");
+
+42 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+46 
+SECTION
+("Booleans") {
+
+47 
+SECTION
+("True") {
+
+48 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "true");
+
+50 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+51 
+REQUIRE
+(
+doc
+.
+is
+<
+boÞ
+>());
+
+52 
+REQUIRE
+(
+doc
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+55 
+SECTION
+("False") {
+
+56 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "false");
+
+58 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+59 
+REQUIRE
+(
+doc
+.
+is
+<
+boÞ
+>());
+
+60 
+REQUIRE
+(
+doc
+.
+as
+<
+boÞ
+>(è=ð
+çl£
+);
+
+64 
+SECTION
+("Premature‚ull-terminator") {
+
+65 
+SECTION
+("Inƒscape sequence") {
+
+66 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "\"\\");
+
+68 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+71 
+SECTION
+("In double quoted string") {
+
+72 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "\"hello");
+
+74 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+77 
+SECTION
+("In single quoted string") {
+
+78 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "'hello");
+
+80 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+84 
+SECTION
+("Prematureƒnd of input") {
+
+85 
+SECTION
+("Inƒscape sequence") {
+
+86 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "\"\\n\"", 2);
+
+88 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+91 
+SECTION
+("In double quoted string") {
+
+92 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "\"hello\"", 6);
+
+94 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+97 
+SECTION
+("In single quoted string") {
+
+98 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "'hello'", 6);
+
+100 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+104 
+SECTION
+("Should clear�he JsonVariant") {
+
+105 
+de£rŸlizeJsÚ
+(
+doc
+, "[1,2,3]");
+
+106 
+de£rŸlizeJsÚ
+(
+doc
+, "{}");
+
+108 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+109 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(0));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	#SHOULD_WORK
+(
+ex´essiÚ
+è
+	`REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+Ok
+ =ðex´essiÚ);
+
+	)
+
+9 
+	#SHOULD_FAIL
+(
+ex´essiÚ
+) \
+
+10 
+	`REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+ =ð
+ex´essiÚ
+);
+
+	)
+
+12 
+TEST_CASE
+("JsonDeserializer‚esting") {
+
+13 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+15 
+SECTION
+("Input = const char*") {
+
+16 
+SECTION
+("limit = 0") {
+
+17 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+18 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "\"tÙo\"", 
+Ã¡šg
+));
+
+19 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "123", 
+Ã¡šg
+));
+
+20 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "Œue", 
+Ã¡šg
+));
+
+21 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[]", 
+Ã¡šg
+));
+
+22 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 
+Ã¡šg
+));
+
+23 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[\"tÙo\"]", 
+Ã¡šg
+));
+
+24 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":1}", 
+Ã¡šg
+));
+
+27 
+SECTION
+("limit = 1") {
+
+28 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+29 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[\"tÙo\"]", 
+Ã¡šg
+));
+
+30 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":1}", 
+Ã¡šg
+));
+
+31 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":{}}", 
+Ã¡šg
+));
+
+32 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":[]}", 
+Ã¡šg
+));
+
+33 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[[\"tÙo\"]]", 
+Ã¡šg
+));
+
+34 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[{\"tÙo\":1}]", 
+Ã¡šg
+));
+
+38 
+SECTION
+("char*‡nd size_t") {
+
+39 
+SECTION
+("limit = 0") {
+
+40 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+41 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "\"tÙo\"", 6, 
+Ã¡šg
+));
+
+42 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "123", 3, 
+Ã¡šg
+));
+
+43 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "Œue", 4, 
+Ã¡šg
+));
+
+44 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[]", 2, 
+Ã¡šg
+));
+
+45 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{}", 2, 
+Ã¡šg
+));
+
+46 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[\"tÙo\"]", 8, 
+Ã¡šg
+));
+
+47 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":1}", 10, 
+Ã¡šg
+));
+
+50 
+SECTION
+("limit = 1") {
+
+51 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+52 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[\"tÙo\"]", 8, 
+Ã¡šg
+));
+
+53 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":1}", 10, 
+Ã¡šg
+));
+
+54 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":{}}", 11, 
+Ã¡šg
+));
+
+55 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"tÙo\":[]}", 11, 
+Ã¡šg
+));
+
+56 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[[\"tÙo\"]]", 10, 
+Ã¡šg
+));
+
+57 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, "[{\"tÙo\":1}]", 12, 
+Ã¡šg
+));
+
+61 
+SECTION
+("Input = std::string") {
+
+62 
+SECTION
+("limit = 0") {
+
+63 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+64 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("\"tÙo\""), 
+Ã¡šg
+));
+
+65 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("123"), 
+Ã¡šg
+));
+
+66 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("Œue"), 
+Ã¡šg
+));
+
+67 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("[]"), 
+Ã¡šg
+));
+
+68 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{}"), 
+Ã¡šg
+));
+
+69 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("[\"tÙo\"]"), 
+Ã¡šg
+));
+
+70 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{\"tÙo\":1}"), 
+Ã¡šg
+));
+
+73 
+SECTION
+("limit = 1") {
+
+74 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+75 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("[\"tÙo\"]"), 
+Ã¡šg
+));
+
+76 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{\"tÙo\":1}"), 
+Ã¡šg
+));
+
+77 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{\"tÙo\":{}}"), 
+Ã¡šg
+));
+
+78 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("{\"tÙo\":[]}"), 
+Ã¡šg
+));
+
+79 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("[[\"tÙo\"]]"), 
+Ã¡šg
+));
+
+80 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡d
+::
+¡ršg
+("[{\"tÙo\":1}]"), 
+Ã¡šg
+));
+
+84 
+SECTION
+("Input = std::istream") {
+
+85 
+SECTION
+("limit = 0") {
+
+86 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+87 
+	g¡d
+::
+i¡ršg¡»am
+ 
+good
+("true");
+
+88 
+	g¡d
+::
+i¡ršg¡»am
+ 
+bad
+("[]");
+
+89 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+good
+, 
+Ã¡šg
+));
+
+90 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+bad
+, 
+Ã¡šg
+));
+
+93 
+SECTION
+("limit = 1") {
+
+94 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+95 
+	g¡d
+::
+i¡ršg¡»am
+ 
+good
+("[\"toto\"]");
+
+96 
+	g¡d
+::
+i¡ršg¡»am
+ 
+bad
+("{\"toto\":{}}");
+
+97 
+SHOULD_WORK
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+good
+, 
+Ã¡šg
+));
+
+98 
+SHOULD_FAIL
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+bad
+, 
+Ã¡šg
+));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/number.cpp
+
+5 
+	#ARDUINOJSON_USE_LONG_LONG
+ 0
+
+	)
+
+6 
+	#ARDUINOJSON_ENABLE_NAN
+ 1
+
+	)
+
+7 
+	#ARDUINOJSON_ENABLE_INFINITY
+ 1
+
+	)
+
+9 
+	~<ArdušoJsÚ.h
+>
+
+10 
+	~<lim™s.h
+>
+
+11 
+	~<ÿtch.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gmy
+ {
+
+14 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+isšf
+;
+
+15 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+i¢ª
+;
+
+18 
+TEST_CASE
+("deserialize‡n integer") {
+
+19 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+21 
+SECTION
+("Integer") {
+
+22 
+SECTION
+("0") {
+
+23 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "0");
+
+24 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+25 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+26 
+REQUIRE
+(
+doc
+.
+as
+<>() == 0);
+
+27 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "0");
+
+30 
+SECTION
+("Negative") {
+
+31 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "-42");
+
+33 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+34 
+REQUIRE
+(
+doc
+.
+is
+<>());
+
+35 
+REQUIRE_FALSE
+(
+doc
+.
+is
+<
+boÞ
+>());
+
+36 
+REQUIRE
+(
+doc
+.
+as
+<>() == -42);
+
+39 #ià
+LONG_MAX
+ == 2147483647
+
+40 
+SECTION
+("LONG_MAX") {
+
+41 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "2147483647");
+
+43 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+44 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+45 
+REQUIRE
+(
+doc
+.
+as
+<>(è=ð
+LONG_MAX
+);
+
+48 
+SECTION
+("LONG_MAX + 1") {
+
+49 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "2147483648");
+
+51 
+CAPTURE
+(
+LONG_MIN
+);
+
+52 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+53 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+çl£
+);
+
+54 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+58 #ià
+LONG_MIN
+ == -2147483648
+
+59 
+SECTION
+("LONG_MIN") {
+
+60 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "-2147483648");
+
+61 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+62 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+63 
+REQUIRE
+(
+doc
+.
+as
+<>(è=ð
+LONG_MIN
+);
+
+66 
+SECTION
+("LONG_MIN - 1") {
+
+67 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "-2147483649");
+
+69 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+70 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+çl£
+);
+
+71 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+75 #ià
+ULONG_MAX
+ == 4294967295
+
+76 
+SECTION
+("ULONG_MAX") {
+
+77 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "4294967295");
+
+79 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+80 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+81 
+REQUIRE
+(
+doc
+.
+as
+<>(è=ð
+ULONG_MAX
+);
+
+82 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+çl£
+);
+
+85 
+SECTION
+("ULONG_MAX + 1") {
+
+86 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "4294967296");
+
+88 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+89 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+çl£
+);
+
+90 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+95 
+SECTION
+("Floats") {
+
+96 
+SECTION
+("Double") {
+
+97 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "-1.23e+4");
+
+99 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+100 
+REQUIRE_FALSE
+(
+doc
+.
+is
+<>());
+
+101 
+REQUIRE
+(
+doc
+.
+is
+<>());
+
+102 
+REQUIRE
+(
+doc
+.
+as
+<>(è=ð
+Aµrox
+(-1.23e+4));
+
+105 
+SECTION
+("NaN") {
+
+106 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "NaN");
+
+107 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+108 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+109 
+REQUIRE
+(
+my
+::
+i¢ª
+(
+doc
+.
+as
+<>()));
+
+112 
+SECTION
+("Infinity") {
+
+113 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "Infinity");
+
+114 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+115 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+116 
+REQUIRE
+(
+my
+::
+isšf
+(
+doc
+.
+as
+<>()));
+
+119 
+SECTION
+("+Infinity") {
+
+120 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "+Infinity");
+
+121 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+122 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+123 
+REQUIRE
+(
+my
+::
+isšf
+(
+doc
+.
+as
+<>()));
+
+126 
+SECTION
+("-Infinity") {
+
+127 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "-Infinity");
+
+128 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+129 
+REQUIRE
+(
+doc
+.
+is
+<>(è=ð
+Œue
+);
+
+130 
+REQUIRE
+(
+my
+::
+isšf
+(
+doc
+.
+as
+<>()));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("deserialize JSON object") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("Anƒmpty object") {
+
+12 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{}");
+
+13 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+15 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+16 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+17 
+REQUIRE
+(
+obj
+.
+size
+() == 0);
+
+20 
+SECTION
+("Quotes") {
+
+21 
+SECTION
+("Double quotes") {
+
+22 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key\":\"value\"}");
+
+23 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+25 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+26 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+27 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+28 
+REQUIRE
+(
+obj
+["key"] == "value");
+
+31 
+SECTION
+("Single quotes") {
+
+32 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{'key':'value'}");
+
+33 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+35 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+36 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+37 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+38 
+REQUIRE
+(
+obj
+["key"] == "value");
+
+41 
+SECTION
+("No quotes") {
+
+42 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{key:'value'}");
+
+43 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+45 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+46 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+47 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+48 
+REQUIRE
+(
+obj
+["key"] == "value");
+
+51 
+SECTION
+("No quotes,‡llow underscore in key") {
+
+52 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{_k_e_y_:42}");
+
+53 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+55 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+56 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+57 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+58 
+REQUIRE
+(
+obj
+["_k_e_y_"] == 42);
+
+62 
+SECTION
+("Spaces") {
+
+63 
+SECTION
+("Before�he key") {
+
+64 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{ \"key\":\"value\"}");
+
+65 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+67 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+68 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+69 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+70 
+REQUIRE
+(
+obj
+["key"] == "value");
+
+73 
+SECTION
+("After�he key") {
+
+74 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key\" :\"value\"}");
+
+75 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+77 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+78 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+79 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+80 
+REQUIRE
+(
+obj
+["key"] == "value");
+
+83 
+SECTION
+("Before�he value") {
+
+84 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key\": \"value\"}");
+
+85 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+87 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+88 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+89 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+90 
+REQUIRE
+(
+obj
+["key"] == "value");
+
+93 
+SECTION
+("After�he value") {
+
+94 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key\":\"value\" }");
+
+95 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+97 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+98 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+99 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+100 
+REQUIRE
+(
+obj
+["key"] == "value");
+
+103 
+SECTION
+("Before�he colon") {
+
+104 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+105 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":\"value1\" ,\"key2\":\"value2\"}");
+
+106 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+108 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+109 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+110 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+111 
+REQUIRE
+(
+obj
+["key1"] == "value1");
+
+112 
+REQUIRE
+(
+obj
+["key2"] == "value2");
+
+115 
+SECTION
+("After�he colon") {
+
+116 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+117 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":\"value1\" ,\"key2\":\"value2\"}");
+
+118 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+120 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+121 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+122 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+123 
+REQUIRE
+(
+obj
+["key1"] == "value1");
+
+124 
+REQUIRE
+(
+obj
+["key2"] == "value2");
+
+128 
+SECTION
+("Values�ypes") {
+
+129 
+SECTION
+("String") {
+
+130 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+131 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":\"value1\",\"key2\":\"value2\"}");
+
+132 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+134 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+135 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+136 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+137 
+REQUIRE
+(
+obj
+["key1"] == "value1");
+
+138 
+REQUIRE
+(
+obj
+["key2"] == "value2");
+
+141 
+SECTION
+("Integer") {
+
+142 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+143 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":42,\"key2\":-42}");
+
+144 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+146 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+147 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+148 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+149 
+REQUIRE
+(
+obj
+["key1"] == 42);
+
+150 
+REQUIRE
+(
+obj
+["key2"] == -42);
+
+153 
+SECTION
+("Double") {
+
+154 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+155 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":12.345,\"key2\":-7E89}");
+
+156 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+158 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+159 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+160 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+161 
+REQUIRE
+(
+obj
+["key1"] == 12.345);
+
+162 
+REQUIRE
+(
+obj
+["key2"] == -7E89);
+
+165 
+SECTION
+("Booleans") {
+
+166 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+167 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":true,\"key2\":false}");
+
+168 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+170 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+171 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+172 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+173 
+REQUIRE
+(
+obj
+["key1"] =ð
+Œue
+);
+
+174 
+REQUIRE
+(
+obj
+["key2"] =ð
+çl£
+);
+
+177 
+SECTION
+("Null") {
+
+178 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+179 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":null,\"key2\":null}");
+
+180 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+182 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+183 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+184 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+185 
+REQUIRE
+(
+obj
+["key1"].
+as
+<*>() == 0);
+
+186 
+REQUIRE
+(
+obj
+["key2"].
+as
+<*>() == 0);
+
+189 
+SECTION
+("Array") {
+
+190 
+	gjsÚSŒšg
+[] = " { \"ab\" : [ 1 , 2 ] , \"cd\" : [ 3 , 4 ] } ";
+
+192 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚSŒšg
+);
+
+193 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+195 
+JsÚA¼ay
+ 
+	g¬¿y1
+ = 
+obj
+["ab"];
+
+196 cÚ¡ 
+JsÚA¼ay
+ 
+	g¬¿y2
+ = 
+obj
+["cd"];
+
+197 
+JsÚA¼ay
+ 
+	g¬¿y3
+ = 
+obj
+["ef"];
+
+199 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+201 
+REQUIRE
+(
+¬¿y1
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+202 
+REQUIRE
+(
+¬¿y2
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+203 
+REQUIRE
+(
+¬¿y3
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+205 
+REQUIRE
+(2 =ð
+¬¿y1
+.
+size
+());
+
+206 
+REQUIRE
+(2 =ð
+¬¿y2
+.
+size
+());
+
+207 
+REQUIRE
+(0 =ð
+¬¿y3
+.
+size
+());
+
+209 
+REQUIRE
+(1 =ð
+¬¿y1
+[0].
+as
+<>());
+
+210 
+REQUIRE
+(2 =ð
+¬¿y1
+[1].
+as
+<>());
+
+212 
+REQUIRE
+(3 =ð
+¬¿y2
+[0].
+as
+<>());
+
+213 
+REQUIRE
+(4 =ð
+¬¿y2
+[1].
+as
+<>());
+
+215 
+REQUIRE
+(0 =ð
+¬¿y3
+[0].
+as
+<>());
+
+219 
+SECTION
+("Premature‚ull�erminator") {
+
+220 
+SECTION
+("After opening brace") {
+
+221 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{");
+
+223 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+226 
+SECTION
+("After key") {
+
+227 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\"");
+
+229 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+232 
+SECTION
+("After colon") {
+
+233 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":");
+
+235 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+238 
+SECTION
+("After value") {
+
+239 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"");
+
+241 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+244 
+SECTION
+("After comma") {
+
+245 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\",");
+
+247 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+251 
+SECTION
+("Misc") {
+
+252 
+SECTION
+("A quoted key without value") {
+
+253 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key\"}");
+
+255 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+258 
+SECTION
+("A‚on-quoted key without value") {
+
+259 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{key}");
+
+261 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+264 
+SECTION
+("A dangling comma") {
+
+265 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"key1\":\"value1\",}");
+
+267 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+270 
+SECTION
+("null‡s‡ key") {
+
+271 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{null:\"value\"}");
+
+273 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+276 
+SECTION
+("Repeated key") {
+
+277 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{a:{b:{c:1}},a:2}");
+
+279 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+280 
+REQUIRE
+(
+doc
+["a"] == 2);
+
+284 
+SECTION
+("Should clear�he JsonObject") {
+
+285 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+286 
+de£rŸlizeJsÚ
+(
+doc
+, "{}");
+
+287 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+289 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+290 
+REQUIRE
+(
+obj
+.
+size
+() == 0);
+
+291 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(0));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object_static.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("deserialize JSON object with StaticJsonDocument") {
+
+9 
+SECTION
+("BufferOfTheRightSizeForEmptyObject") {
+
+10 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(0)> 
+	gdoc
+;
+
+11 
+	gšput
+[] = "{}";
+
+13 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+15 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+18 
+SECTION
+("TooSmallBufferForObjectWithOneValue") {
+
+19 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(0)> 
+	gdoc
+;
+
+20 
+	gšput
+[] = "{\"a\":1}";
+
+22 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+24 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+27 
+SECTION
+("BufferOfTheRightSizeForObjectWithOneValue") {
+
+28 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1)> 
+	gdoc
+;
+
+29 
+	gšput
+[] = "{\"a\":1}";
+
+31 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+33 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+36 
+SECTION
+("TooSmallBufferForObjectWithNestedObject") {
+
+37 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(0è+ 
+JSON_ARRAY_SIZE
+(0)> 
+	gdoc
+;
+
+38 
+	gšput
+[] = "{\"a\":[]}";
+
+40 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+42 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+45 
+SECTION
+("BufferOfTheRightSizeForObjectWithNestedObject") {
+
+46 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_ARRAY_SIZE
+(0)> 
+	gdoc
+;
+
+47 
+	gšput
+[] = "{\"a\":[]}";
+
+49 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+51 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+54 
+SECTION
+("Should clear�he JsonObject") {
+
+55 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1)> 
+	gdoc
+;
+
+56 
+	gšput
+[] = "{\"hello\":\"world\"}";
+
+58 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+59 
+de£rŸlizeJsÚ
+(
+doc
+, "{}");
+
+61 
+REQUIRE
+(
+doc
+.
+as
+<
+JsÚObjeù
+>().
+size
+() == 0);
+
+62 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(0));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/string.cpp
+
+5 
+	#ARDUINOJSON_DECODE_UNICODE
+ 1
+
+	)
+
+6 
+	~<ArdušoJsÚ.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+TEST_CASE
+("Valid JSON strings value") {
+
+10 
+	sTe¡Ca£
+ {
+
+11 cÚ¡ * 
+	gšput
+;
+
+12 cÚ¡ * 
+	gex³ùedOu�ut
+;
+
+15 
+Te¡Ca£
+ 
+	g‹¡Ca£s
+[] = {
+
+36 cÚ¡ 
+size_t
+ 
+	g‹¡CouÁ
+ = (
+‹¡Ca£s
+) / (testCases[0]);
+
+38 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+40 
+size_t
+ 
+	gi
+ = 0; i < 
+	g‹¡CouÁ
+; i++) {
+
+41 cÚ¡ 
+	gTe¡Ca£
+& 
+	g‹¡Ca£
+ = 
+‹¡Ca£s
+[
+i
+];
+
+42 
+CAPTURE
+(
+‹¡Ca£
+.
+šput
+);
+
+43 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+‹¡Ca£
+.
+šput
+);
+
+44 
+CHECK
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+45 
+CHECK
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>(è=ð
+‹¡Ca£
+.
+ex³ùedOu�ut
+);
+
+49 
+TEST_CASE
+("Truncated JSON string") {
+
+50 cÚ¡ * 
+	g‹¡Ca£s
+[] = {"\"hello", "\'hello", "'\\u", "'\\u00", "'\\u000"};
+
+51 cÚ¡ 
+size_t
+ 
+	g‹¡CouÁ
+ = (
+‹¡Ca£s
+) / (testCases[0]);
+
+53 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+55 
+size_t
+ 
+	gi
+ = 0; i < 
+	g‹¡CouÁ
+; i++) {
+
+56 cÚ¡ * 
+	gšput
+ = 
+‹¡Ca£s
+[
+i
+];
+
+57 
+CAPTURE
+(
+šput
+);
+
+58 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+) ==
+
+59 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+63 
+TEST_CASE
+("Invalid JSON string") {
+
+64 cÚ¡ * 
+	g‹¡Ca£s
+[] = {"'\\u'", "'\\u000g'", "'\\u000'",
+
+66 cÚ¡ 
+size_t
+ 
+	g‹¡CouÁ
+ = (
+‹¡Ca£s
+) / (testCases[0]);
+
+68 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+70 
+size_t
+ 
+	gi
+ = 0; i < 
+	g‹¡CouÁ
+; i++) {
+
+71 cÚ¡ * 
+	gšput
+ = 
+‹¡Ca£s
+[
+i
+];
+
+72 
+CAPTURE
+(
+šput
+);
+
+73 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+è=ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+77 
+TEST_CASE
+("Notƒnough„oom�o duplicate�he string") {
+
+78 
+DyÇmicJsÚDocum’t
+ 
+doc
+(
+JSON_OBJECT_SIZE
+(0));
+
+80 
+SECTION
+("Quoted string") {
+
+81 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{\"example\":1}") ==
+
+82 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+85 
+SECTION
+("Non-quoted string") {
+
+86 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, "{example:1}") ==
+
+87 
+De£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/BasicJsonDocument.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dlib.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+8 
+	~<s¡»am
+>
+
+10 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+addPaddšg
+;
+
+11 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+move
+;
+
+13 þas 
+	cSpyšgAÎoÿtÜ
+ {
+
+14 
+	mpublic
+:
+
+15 
+	$SpyšgAÎoÿtÜ
+(cÚ¡ 
+SpyšgAÎoÿtÜ
+& 
+¤c
+è: 
+	$_log
+(
+¤c
+.
+_log
+) {}
+
+16 
+	$SpyšgAÎoÿtÜ
+(
+¡d
+::
+o¡»am
+& 
+log
+è: 
+	$_log
+(
+log
+è{
+	}
+}
+
+18 * 
+	$®loÿ‹
+(
+size_t
+ 
+n
+) {
+
+19 
+_log
+ << "A" << 
+n
+;
+
+20  
+	`m®loc
+(
+n
+);
+
+21 
+	}
+}
+
+22 
+	$d—Îoÿ‹
+(* 
+p
+) {
+
+23 
+_log
+ << "F";
+
+24 
+	`ä“
+(
+p
+);
+
+25 
+	}
+}
+
+27 
+	g´iv©e
+:
+
+28 
+SpyšgAÎoÿtÜ
+& 
+Ý”©Ü
+=(cÚ¡ SpyšgAÎoÿtÜ& 
+¤c
+);
+
+30 
+	g¡d
+::
+o¡»am
+& 
+_log
+;
+
+33 þas 
+	cCÚŒÞÏbËAÎoÿtÜ
+ {
+
+34 
+	mpublic
+:
+
+35 
+	$CÚŒÞÏbËAÎoÿtÜ
+(è: 
+	$_’abËd
+(
+Œue
+) {}
+
+37 * 
+	$®loÿ‹
+(
+size_t
+ 
+n
+) {
+
+38  
+_’abËd
+ ? 
+	`m®loc
+(
+n
+) : 0;
+
+39 
+	}
+}
+
+41 
+	$d—Îoÿ‹
+(* 
+p
+) {
+
+42 
+	`ä“
+(
+p
+);
+
+43 
+	}
+}
+
+45 
+	$di§bË
+() {
+
+46 
+_’abËd
+ = 
+çl£
+;
+
+47 
+	}
+}
+
+49 
+	g´iv©e
+:
+
+50 
+boÞ
+ 
+_’abËd
+;
+
+53 
+TEST_CASE
+("BasicJsonDocument") {
+
+54 
+	g¡d
+::
+¡ršg¡»am
+ 
+log
+;
+
+56 
+SECTION
+("Construct/Destruct") {
+
+57 { 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc
+(4096, 
+log
+); }
+
+58 
+REQUIRE
+(
+log
+.
+¡r
+() == "A4096F");
+
+61 
+SECTION
+("Copy construct") {
+
+63 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc1
+(4096, 
+log
+);
+
+64 
+	gdoc1
+.
+£t
+(
+¡d
+::
+¡ršg
+("The size of�his string is 32!!"));
+
+66 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc2
+(
+doc1
+);
+
+68 
+REQUIRE
+(
+doc1
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "The size of�his string is 32!!");
+
+69 
+REQUIRE
+(
+doc2
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "The size of�his string is 32!!");
+
+70 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 4096);
+
+72 
+REQUIRE
+(
+log
+.
+¡r
+() == "A4096A4096FF");
+
+75 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+76 
+SECTION
+("Move construct") {
+
+78 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc1
+(4096, 
+log
+);
+
+79 
+	gdoc1
+.
+£t
+(
+¡d
+::
+¡ršg
+("The size of�his string is 32!!"));
+
+81 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc2
+(
+move
+(
+doc1
+));
+
+83 
+REQUIRE
+(
+doc2
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "The size of�his string is 32!!");
+
+84 
+REQUIRE
+(
+doc1
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "null");
+
+85 
+REQUIRE
+(
+doc1
+.
+ÿ·c™y
+() == 0);
+
+86 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 4096);
+
+88 
+REQUIRE
+(
+log
+.
+¡r
+() == "A4096F");
+
+92 
+SECTION
+("Copy‡ssign") {
+
+94 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc1
+(4096, 
+log
+);
+
+95 
+	gdoc1
+.
+£t
+(
+¡d
+::
+¡ršg
+("The size of�his string is 32!!"));
+
+96 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc2
+(8, 
+log
+);
+
+98 
+	gdoc2
+ = 
+doc1
+;
+
+100 
+REQUIRE
+(
+doc1
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "The size of�his string is 32!!");
+
+101 
+REQUIRE
+(
+doc2
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "The size of�his string is 32!!");
+
+102 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 4096);
+
+104 
+REQUIRE
+(
+log
+.
+¡r
+() == "A4096A8FA4096FF");
+
+107 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+108 
+SECTION
+("Move‡ssign") {
+
+110 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc1
+(4096, 
+log
+);
+
+111 
+	gdoc1
+.
+£t
+(
+¡d
+::
+¡ršg
+("The size of�his string is 32!!"));
+
+112 
+	gBasicJsÚDocum’t
+<
+	gSpyšgAÎoÿtÜ
+> 
+doc2
+(8, 
+log
+);
+
+114 
+	gdoc2
+ = 
+move
+(
+doc1
+);
+
+116 
+REQUIRE
+(
+doc2
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "The size of�his string is 32!!");
+
+117 
+REQUIRE
+(
+doc1
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "null");
+
+118 
+REQUIRE
+(
+doc1
+.
+ÿ·c™y
+() == 0);
+
+119 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 4096);
+
+121 
+REQUIRE
+(
+log
+.
+¡r
+() == "A4096A8FF");
+
+125 
+SECTION
+("garbageCollect()") {
+
+126 
+	gBasicJsÚDocum’t
+<
+	gCÚŒÞÏbËAÎoÿtÜ
+> 
+doc
+(4096);
+
+128 
+SECTION
+("when‡llocation succeeds") {
+
+129 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"blanket\":1,\"dancing\":2}");
+
+130 
+REQUIRE
+(
+doc
+.
+ÿ·c™y
+() == 4096);
+
+131 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(2) + 16);
+
+132 
+	gdoc
+.
+»move
+("blanket");
+
+134 
+boÞ
+ 
+	g»suÉ
+ = 
+doc
+.
+g¬bageCÞËù
+();
+
+136 
+REQUIRE
+(
+»suÉ
+ =ð
+Œue
+);
+
+137 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1) + 8);
+
+138 
+REQUIRE
+(
+doc
+.
+ÿ·c™y
+() == 4096);
+
+139 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"dancing\":2}");
+
+142 
+SECTION
+("when‡llocation fails") {
+
+143 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"blanket\":1,\"dancing\":2}");
+
+144 
+REQUIRE
+(
+doc
+.
+ÿ·c™y
+() == 4096);
+
+145 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(2) + 16);
+
+146 
+	gdoc
+.
+»move
+("blanket");
+
+147 
+	gdoc
+.
+®loÿtÜ
+().
+di§bË
+();
+
+149 
+boÞ
+ 
+	g»suÉ
+ = 
+doc
+.
+g¬bageCÞËù
+();
+
+151 
+REQUIRE
+(
+»suÉ
+ =ð
+çl£
+);
+
+152 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(2) + 16);
+
+153 
+REQUIRE
+(
+doc
+.
+ÿ·c™y
+() == 4096);
+
+154 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"dancing\":2}");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/DynamicJsonDocument.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+addPaddšg
+;
+
+10 
+	$REQUIRE_JSON
+(
+JsÚDocum’t
+& 
+doc
+, cÚ¡ 
+¡d
+::
+¡ršg
+& 
+ex³ùed
+) {
+
+11 
+¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+12 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+13 
+	`REQUIRE
+(
+jsÚ
+ =ð
+ex³ùed
+);
+
+14 
+	}
+}
+
+16 
+TEST_CASE
+("DynamicJsonDocument") {
+
+17 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+19 
+SECTION
+("serializeJson()") {
+
+20 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+21 
+	gobj
+["hello"] = "world";
+
+23 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+24 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+26 
+REQUIRE
+(
+jsÚ
+ == "{\"hello\":\"world\"}");
+
+29 
+SECTION
+("memoryUsage()") {
+
+30 
+SECTION
+("starts‡t zero") {
+
+31 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+() == 0);
+
+34 
+SECTION
+("JSON_ARRAY_SIZE(0)") {
+
+35 
+	gdoc
+.
+	gto
+<
+	gJsÚA¼ay
+>();
+
+36 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(0));
+
+39 
+SECTION
+("JSON_ARRAY_SIZE(1)") {
+
+40 
+	gdoc
+.
+	gto
+<
+	gJsÚA¼ay
+>().
+add
+(42);
+
+41 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(1));
+
+44 
+SECTION
+("JSON_ARRAY_SIZE(1) + JSON_ARRAY_SIZE(0)") {
+
+45 
+	gdoc
+.
+	gto
+<
+	gJsÚA¼ay
+>().
+ü—‹Ne¡edA¼ay
+();
+
+46 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(1) + JSON_ARRAY_SIZE(0));
+
+50 
+SECTION
+("capacity()") {
+
+51 
+SECTION
+("matches constructor‡rgument") {
+
+52 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(256);
+
+53 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 256);
+
+56 
+SECTION
+("rounds up constructor‡rgument") {
+
+57 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(253);
+
+58 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 256);
+
+62 
+SECTION
+("memoryUsage()") {
+
+63 
+SECTION
+("Increases‡fter‡dding value�o‡rray") {
+
+64 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+66 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(0));
+
+67 
+	g¬r
+.
+add
+(42);
+
+68 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(1));
+
+69 
+	g¬r
+.
+add
+(43);
+
+70 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(2));
+
+73 
+SECTION
+("Increases‡fter‡dding value�o object") {
+
+74 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+76 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(0));
+
+77 
+	gobj
+["a"] = 1;
+
+78 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1));
+
+79 
+	gobj
+["b"] = 2;
+
+80 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(2));
+
+85 
+TEST_CASE
+("DynamicJsonDocument constructor") {
+
+86 
+SECTION
+("Copy constructor") {
+
+87 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(1234);
+
+88 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+90 
+DyÇmicJsÚDocum’t
+ 
+	gdoc2
+ = 
+doc1
+;
+
+92 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+94 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è=ð
+doc1
+.capacity());
+
+97 
+SECTION
+("Construct from StaticJsonDocument") {
+
+98 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+99 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+101 
+DyÇmicJsÚDocum’t
+ 
+	gdoc2
+ = 
+doc1
+;
+
+103 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+104 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è=ð
+doc1
+.capacity());
+
+107 
+SECTION
+("Construct from JsonObject") {
+
+108 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+109 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc1
+.
+to
+<JsonObject>();
+
+110 
+	gobj
+["hello"] = "world";
+
+112 
+DyÇmicJsÚDocum’t
+ 
+	gdoc2
+ = 
+obj
+;
+
+114 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+115 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è=ð
+addPaddšg
+(
+doc1
+.
+memÜyU§ge
+()));
+
+118 
+SECTION
+("Construct from JsonArray") {
+
+119 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+120 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc1
+.
+to
+<JsonArray>();
+
+121 
+	g¬r
+.
+add
+("hello");
+
+123 
+DyÇmicJsÚDocum’t
+ 
+	gdoc2
+ = 
+¬r
+;
+
+125 
+REQUIRE_JSON
+(
+doc2
+, "[\"hello\"]");
+
+126 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è=ð
+addPaddšg
+(
+doc1
+.
+memÜyU§ge
+()));
+
+129 
+SECTION
+("Construct from JsonVariant") {
+
+130 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+131 
+de£rŸlizeJsÚ
+(
+doc1
+, "42");
+
+133 
+DyÇmicJsÚDocum’t
+ 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚV¬ŸÁ
+>();
+
+135 
+REQUIRE_JSON
+(
+doc2
+, "42");
+
+136 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è=ð
+addPaddšg
+(
+doc1
+.
+memÜyU§ge
+()));
+
+140 
+TEST_CASE
+("DynamicJsonDocument‡ssignment") {
+
+141 
+SECTION
+("Copy‡ssignment…reserves�he buffer when capacity is sufficient") {
+
+142 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(1234);
+
+143 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+145 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(
+doc1
+.
+ÿ·c™y
+());
+
+146 
+	gdoc2
+ = 
+doc1
+;
+
+148 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+149 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è=ð
+doc1
+.capacity());
+
+152 
+SECTION
+("Copy‡ssignment„ealloc�he buffer when capacity is insufficient") {
+
+153 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(1234);
+
+154 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+155 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(8);
+
+157 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è< 
+doc1
+.
+memÜyU§ge
+());
+
+158 
+	gdoc2
+ = 
+doc1
+;
+
+159 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+(è>ð
+doc1
+.
+memÜyU§ge
+());
+
+161 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+164 
+SECTION
+("Assign from StaticJsonDocument") {
+
+165 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+166 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+167 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+168 
+	gdoc2
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+170 
+	gdoc2
+ = 
+doc1
+;
+
+172 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+175 
+SECTION
+("Assign from JsonObject") {
+
+176 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+177 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc1
+.
+to
+<JsonObject>();
+
+178 
+	gobj
+["hello"] = "world";
+
+180 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+181 
+	gdoc2
+ = 
+obj
+;
+
+183 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+184 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 4096);
+
+187 
+SECTION
+("Assign from JsonArray") {
+
+188 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+189 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc1
+.
+to
+<JsonArray>();
+
+190 
+	g¬r
+.
+add
+("hello");
+
+192 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+193 
+	gdoc2
+ = 
+¬r
+;
+
+195 
+REQUIRE_JSON
+(
+doc2
+, "[\"hello\"]");
+
+196 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 4096);
+
+199 
+SECTION
+("Assign from JsonVariant") {
+
+200 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+201 
+de£rŸlizeJsÚ
+(
+doc1
+, "42");
+
+203 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+204 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚV¬ŸÁ
+>();
+
+206 
+REQUIRE_JSON
+(
+doc2
+, "42");
+
+207 
+REQUIRE
+(
+doc2
+.
+ÿ·c™y
+() == 4096);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/StaticJsonDocument.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$REQUIRE_JSON
+(
+JsÚDocum’t
+& 
+doc
+, cÚ¡ 
+¡d
+::
+¡ršg
+& 
+ex³ùed
+) {
+
+9 
+¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+10 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+11 
+	`REQUIRE
+(
+jsÚ
+ =ð
+ex³ùed
+);
+
+12 
+	}
+}
+
+14 
+TEST_CASE
+("StaticJsonDocument") {
+
+15 
+SECTION
+("capacity()") {
+
+16 
+SECTION
+("matches�emplate‡rgument") {
+
+17 
+	gS�ticJsÚDocum’t
+<256> 
+	gdoc
+;
+
+18 
+REQUIRE
+(
+doc
+.
+ÿ·c™y
+() == 256);
+
+21 
+SECTION
+("rounds up�emplate‡rgument") {
+
+22 
+	gS�ticJsÚDocum’t
+<253> 
+	gdoc
+;
+
+23 
+REQUIRE
+(
+doc
+.
+ÿ·c™y
+() == 256);
+
+27 
+SECTION
+("serializeJson()") {
+
+28 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc
+;
+
+29 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+30 
+	gobj
+["hello"] = "world";
+
+32 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+33 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+35 
+REQUIRE
+(
+jsÚ
+ == "{\"hello\":\"world\"}");
+
+38 
+SECTION
+("Copy‡ssignment") {
+
+39 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+, 
+	gdoc2
+;
+
+40 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+41 
+de£rŸlizeJsÚ
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+43 
+	gdoc1
+ = 
+doc2
+;
+
+45 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+48 
+SECTION
+("Contructor") {
+
+49 
+SECTION
+("Copy constructor") {
+
+50 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+51 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+53 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+ = 
+doc1
+;
+
+55 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"HELLO\":\"WORLD\"}");
+
+56 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+59 
+SECTION
+("Construct from StaticJsonDocument of different size") {
+
+60 
+	gS�ticJsÚDocum’t
+<300> 
+	gdoc1
+;
+
+61 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+63 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+ = 
+doc1
+;
+
+65 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+68 
+SECTION
+("Construct from DynamicJsonDocument") {
+
+69 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+70 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+72 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+ = 
+doc1
+;
+
+74 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+77 
+SECTION
+("Construct from JsonObject") {
+
+78 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+79 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+81 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚObjeù
+>();
+
+83 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"HELLO\":\"WORLD\"}");
+
+84 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+87 
+SECTION
+("Construct from JsonArray") {
+
+88 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+89 
+de£rŸlizeJsÚ
+(
+doc1
+, "[\"hello\",\"world\"]");
+
+91 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚA¼ay
+>();
+
+93 
+de£rŸlizeJsÚ
+(
+doc1
+, "[\"HELLO\",\"WORLD\"]");
+
+94 
+REQUIRE_JSON
+(
+doc2
+, "[\"hello\",\"world\"]");
+
+97 
+SECTION
+("Construct from JsonVariant") {
+
+98 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+99 
+de£rŸlizeJsÚ
+(
+doc1
+, "42");
+
+101 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚV¬ŸÁ
+>();
+
+103 
+REQUIRE_JSON
+(
+doc2
+, "42");
+
+107 
+SECTION
+("Assignment") {
+
+108 
+SECTION
+("Copy‡ssignment") {
+
+109 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+, 
+	gdoc2
+;
+
+110 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+111 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+113 
+	gdoc2
+ = 
+doc1
+;
+
+115 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"HELLO\":\"WORLD\"}");
+
+116 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+119 
+SECTION
+("Assign from StaticJsonDocument of different capacity") {
+
+120 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+121 
+	gS�ticJsÚDocum’t
+<300> 
+	gdoc2
+;
+
+122 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+123 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+125 
+	gdoc2
+ = 
+doc1
+;
+
+127 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+130 
+SECTION
+("Assign from DynamicJsonDocument") {
+
+131 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+132 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+133 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+134 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+136 
+	gdoc2
+ = 
+doc1
+;
+
+138 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"HELLO\":\"WORLD\"}");
+
+139 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+142 
+SECTION
+("Assign from JsonArray") {
+
+143 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+144 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+145 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+146 
+de£rŸlizeJsÚ
+(
+doc1
+, "[\"hello\",\"world\"]");
+
+148 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚA¼ay
+>();
+
+150 
+de£rŸlizeJsÚ
+(
+doc1
+, "[\"HELLO\",\"WORLD\"]");
+
+151 
+REQUIRE_JSON
+(
+doc2
+, "[\"hello\",\"world\"]");
+
+154 
+SECTION
+("Assign from JsonArrayConst") {
+
+155 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+156 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+157 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+158 
+de£rŸlizeJsÚ
+(
+doc1
+, "[\"hello\",\"world\"]");
+
+160 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚA¼ayCÚ¡
+>();
+
+162 
+de£rŸlizeJsÚ
+(
+doc1
+, "[\"HELLO\",\"WORLD\"]");
+
+163 
+REQUIRE_JSON
+(
+doc2
+, "[\"hello\",\"world\"]");
+
+166 
+SECTION
+("Assign from JsonObject") {
+
+167 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+168 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+169 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+170 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+172 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚObjeù
+>();
+
+174 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"HELLO\":\"WORLD\"}");
+
+175 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+178 
+SECTION
+("Assign from JsonObjectConst") {
+
+179 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc1
+;
+
+180 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+181 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+182 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"hello\":\"world\"}");
+
+184 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚObjeùCÚ¡
+>();
+
+186 
+de£rŸlizeJsÚ
+(
+doc1
+, "{\"HELLO\":\"WORLD\"}");
+
+187 
+REQUIRE_JSON
+(
+doc2
+, "{\"hello\":\"world\"}");
+
+190 
+SECTION
+("Assign from JsonVariant") {
+
+191 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+192 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+193 
+de£rŸlizeJsÚ
+(
+doc1
+, "42");
+
+195 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+;
+
+196 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚV¬ŸÁ
+>();
+
+198 
+REQUIRE_JSON
+(
+doc2
+, "42");
+
+201 
+SECTION
+("Assign from JsonVariantConst") {
+
+202 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+203 
+	gdoc1
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(666);
+
+204 
+de£rŸlizeJsÚ
+(
+doc1
+, "42");
+
+206 
+	gS�ticJsÚDocum’t
+<200> 
+	gdoc2
+;
+
+207 
+	gdoc2
+ = 
+doc1
+.
+as
+<
+JsÚV¬ŸÁCÚ¡
+>();
+
+209 
+REQUIRE_JSON
+(
+doc2
+, "42");
+
+213 
+SECTION
+("garbageCollect()") {
+
+214 
+	gS�ticJsÚDocum’t
+<256> 
+	gdoc
+;
+
+215 
+	gdoc
+[
+¡d
+::
+¡ršg
+("example")] = std::string("example");
+
+216 
+	gdoc
+.
+»move
+("example");
+
+217 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1) + 16);
+
+219 
+	gdoc
+.
+g¬bageCÞËù
+();
+
+221 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(0));
+
+222 
+REQUIRE_JSON
+(
+doc
+, "{}");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/add.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::add()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("integer") {
+
+12 
+	gdoc
+.
+add
+(42);
+
+14 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[42]");
+
+17 
+SECTION
+("const char*") {
+
+18 
+	gdoc
+.
+add
+("hello");
+
+20 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[\"hello\"]");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/compare.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("DynamicJsonDocument::operator==(const DynamicJsonDocument&)") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+12 
+SECTION
+("Empty") {
+
+13 
+REQUIRE
+(
+doc1
+ =ð
+doc2
+);
+
+14 
+REQUIRE_FALSE
+(
+doc1
+ !ð
+doc2
+);
+
+17 
+SECTION
+("With same object") {
+
+18 
+	gdoc1
+["hello"] = "world";
+
+19 
+	gdoc2
+["hello"] = "world";
+
+20 
+REQUIRE
+(
+doc1
+ =ð
+doc2
+);
+
+21 
+REQUIRE_FALSE
+(
+doc1
+ !ð
+doc2
+);
+
+23 
+SECTION
+("With different object") {
+
+24 
+	gdoc1
+["hello"] = "world";
+
+25 
+	gdoc2
+["world"] = "hello";
+
+26 
+REQUIRE_FALSE
+(
+doc1
+ =ð
+doc2
+);
+
+27 
+REQUIRE
+(
+doc1
+ !ð
+doc2
+);
+
+31 
+TEST_CASE
+("DynamicJsonDocument::operator==(const StaticJsonDocument&)") {
+
+32 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+33 
+	gS�ticJsÚDocum’t
+<256> 
+	gdoc2
+;
+
+35 
+SECTION
+("Empty") {
+
+36 
+REQUIRE
+(
+doc1
+ =ð
+doc2
+);
+
+37 
+REQUIRE_FALSE
+(
+doc1
+ !ð
+doc2
+);
+
+40 
+SECTION
+("With same object") {
+
+41 
+	gdoc1
+["hello"] = "world";
+
+42 
+	gdoc2
+["hello"] = "world";
+
+43 
+REQUIRE
+(
+doc1
+ =ð
+doc2
+);
+
+44 
+REQUIRE_FALSE
+(
+doc1
+ !ð
+doc2
+);
+
+47 
+SECTION
+("With different object") {
+
+48 
+	gdoc1
+["hello"] = "world";
+
+49 
+	gdoc2
+["world"] = "hello";
+
+50 
+REQUIRE_FALSE
+(
+doc1
+ =ð
+doc2
+);
+
+51 
+REQUIRE
+(
+doc1
+ !ð
+doc2
+);
+
+55 
+TEST_CASE
+("StaticJsonDocument::operator==(const DynamicJsonDocument&)") {
+
+56 
+	gS�ticJsÚDocum’t
+<256> 
+	gdoc1
+;
+
+57 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+59 
+SECTION
+("Empty") {
+
+60 
+REQUIRE
+(
+doc1
+ =ð
+doc2
+);
+
+61 
+REQUIRE_FALSE
+(
+doc1
+ !ð
+doc2
+);
+
+64 
+SECTION
+("With same object") {
+
+65 
+	gdoc1
+["hello"] = "world";
+
+66 
+	gdoc2
+["hello"] = "world";
+
+67 
+REQUIRE
+(
+doc1
+ =ð
+doc2
+);
+
+68 
+REQUIRE_FALSE
+(
+doc1
+ !ð
+doc2
+);
+
+71 
+SECTION
+("With different object") {
+
+72 
+	gdoc1
+["hello"] = "world";
+
+73 
+	gdoc2
+["world"] = "hello";
+
+74 
+REQUIRE_FALSE
+(
+doc1
+ =ð
+doc2
+);
+
+75 
+REQUIRE
+(
+doc1
+ !ð
+doc2
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/containsKey.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::containsKey()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("returns�rue on object") {
+
+12 
+	gdoc
+["hello"] = "world";
+
+14 
+REQUIRE
+(
+doc
+.
+cÚ�šsKey
+("h–lo"è=ð
+Œue
+);
+
+17 
+SECTION
+("returns�rue when value is‚ull") {
+
+18 
+	gdoc
+["h–lo"] = 
+¡©ic_ÿ¡
+<const *>(0);
+
+20 
+REQUIRE
+(
+doc
+.
+cÚ�šsKey
+("h–lo"è=ð
+Œue
+);
+
+23 
+SECTION
+("returns�rue when key is‡ std::string") {
+
+24 
+	gdoc
+["hello"] = "world";
+
+26 
+REQUIRE
+(
+doc
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("h–lo")è=ð
+Œue
+);
+
+29 
+SECTION
+("returns false on object") {
+
+30 
+	gdoc
+["world"] = "hello";
+
+32 
+REQUIRE
+(
+doc
+.
+cÚ�šsKey
+("h–lo"è=ð
+çl£
+);
+
+35 
+SECTION
+("returns false on‡rray") {
+
+36 
+	gdoc
+.
+add
+("hello");
+
+38 
+REQUIRE
+(
+doc
+.
+cÚ�šsKey
+("h–lo"è=ð
+çl£
+);
+
+41 
+SECTION
+("returns false on‚ull") {
+
+42 
+REQUIRE
+(
+doc
+.
+cÚ�šsKey
+("h–lo"è=ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/createNested.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::createNestedArray()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("promotes�o‡rray") {
+
+12 
+	gdoc
+.
+ü—‹Ne¡edA¼ay
+();
+
+14 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚA¼ay
+>());
+
+18 
+TEST_CASE
+("JsonDocument::createNestedArray(key)") {
+
+19 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+21 
+SECTION
+("key is const char*") {
+
+22 
+SECTION
+("promotes�o object") {
+
+23 
+	gdoc
+.
+ü—‹Ne¡edA¼ay
+("hello");
+
+25 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+29 
+SECTION
+("key is std::string") {
+
+30 
+SECTION
+("promotes�o object") {
+
+31 
+	gdoc
+.
+ü—‹Ne¡edA¼ay
+(
+¡d
+::
+¡ršg
+("hello"));
+
+33 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+38 
+TEST_CASE
+("JsonDocument::createNestedObject()") {
+
+39 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+41 
+SECTION
+("promotes�o‡rray") {
+
+42 
+	gdoc
+.
+ü—‹Ne¡edObjeù
+();
+
+44 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚA¼ay
+>());
+
+48 
+TEST_CASE
+("JsonDocument::createNestedObject(key)") {
+
+49 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+51 
+SECTION
+("key is const char*") {
+
+52 
+SECTION
+("promotes�o object") {
+
+53 
+	gdoc
+.
+ü—‹Ne¡edObjeù
+("hello");
+
+55 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+59 
+SECTION
+("key is std::string") {
+
+60 
+SECTION
+("promotes�o object") {
+
+61 
+	gdoc
+.
+ü—‹Ne¡edObjeù
+(
+¡d
+::
+¡ršg
+("hello"));
+
+63 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/isNull.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::isNull()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("returns�rue if uninitialized") {
+
+12 
+REQUIRE
+(
+doc
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+15 
+SECTION
+("returns false‡fter�o<JsonObject>()") {
+
+16 
+	gdoc
+.
+	gto
+<
+	gJsÚObjeù
+>();
+
+17 
+REQUIRE
+(
+doc
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+20 
+SECTION
+("returns false‡fter�o<JsonArray>()") {
+
+21 
+	gdoc
+.
+	gto
+<
+	gJsÚA¼ay
+>();
+
+22 
+REQUIRE
+(
+doc
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+25 
+SECTION
+("returns�rue‡fter�o<JsonVariant>()") {
+
+26 
+REQUIRE
+(
+doc
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+29 
+SECTION
+("returns false‡fter set()") {
+
+30 
+	gdoc
+.
+	gto
+<
+	gJsÚV¬ŸÁ
+>().
+£t
+(42);
+
+31 
+REQUIRE
+(
+doc
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+34 
+SECTION
+("returns�rue‡fter clear()") {
+
+35 
+	gdoc
+.
+	gto
+<
+	gJsÚObjeù
+>();
+
+36 
+	gdoc
+.
+þ—r
+();
+
+37 
+REQUIRE
+(
+doc
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/nesting.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::nesting()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("return 0 if uninitialized") {
+
+12 
+REQUIRE
+(
+doc
+.
+Ã¡šg
+() == 0);
+
+15 
+SECTION
+("returns 0 for string") {
+
+16 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+17 
+	gv¬
+.
+£t
+("hello");
+
+18 
+REQUIRE
+(
+doc
+.
+Ã¡šg
+() == 0);
+
+21 
+SECTION
+("returns 1 forƒmpty object") {
+
+22 
+	gdoc
+.
+	gto
+<
+	gJsÚObjeù
+>();
+
+23 
+REQUIRE
+(
+doc
+.
+Ã¡šg
+() == 1);
+
+26 
+SECTION
+("returns 1 forƒmpty‡rray") {
+
+27 
+	gdoc
+.
+	gto
+<
+	gJsÚA¼ay
+>();
+
+28 
+REQUIRE
+(
+doc
+.
+Ã¡šg
+() == 1);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/remove.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::remove()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("remove(int)") {
+
+12 
+	gdoc
+.
+add
+(1);
+
+13 
+	gdoc
+.
+add
+(2);
+
+14 
+	gdoc
+.
+add
+(3);
+
+16 
+	gdoc
+.
+»move
+(1);
+
+18 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[1,3]");
+
+21 
+SECTION
+("remove(const char *)") {
+
+22 
+	gdoc
+["a"] = 1;
+
+23 
+	gdoc
+["b"] = 2;
+
+25 
+	gdoc
+.
+»move
+("a");
+
+27 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"b\":2}");
+
+30 
+SECTION
+("remove(std::string)") {
+
+31 
+	gdoc
+["a"] = 1;
+
+32 
+	gdoc
+["b"] = 2;
+
+34 
+	gdoc
+.
+»move
+(
+¡d
+::
+¡ršg
+("b"));
+
+36 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1}");
+
+39 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+40 
+SECTION
+("remove(vla)") {
+
+41 
+	gdoc
+["a"] = 1;
+
+42 
+	gdoc
+["b"] = 2;
+
+44 
+	gi
+ = 4;
+
+45 
+	gvÏ
+[
+i
+];
+
+46 
+¡rýy
+(
+vÏ
+, "b");
+
+47 
+	gdoc
+.
+»move
+(
+vÏ
+);
+
+49 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1}");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	~<¡dlib.h
+>
+
+9 
+	~<¡ršg
+>
+
+11 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+addPaddšg
+;
+
+13 þas 
+	cArmÜedAÎoÿtÜ
+ {
+
+14 
+	mpublic
+:
+
+15 
+	$ArmÜedAÎoÿtÜ
+(è: 
+	`_±r
+(0), 
+	$_size
+(0) {}
+
+17 * 
+	$®loÿ‹
+(
+size_t
+ 
+size
+) {
+
+18 
+_±r
+ = 
+	`m®loc
+(
+size
+);
+
+19 
+_size
+ = 
+size
+;
+
+20  
+_±r
+;
+
+21 
+	}
+}
+
+23 
+	$d—Îoÿ‹
+(* 
+±r
+) {
+
+24 
+	`REQUIRE
+(
+±r
+ =ð
+_±r
+);
+
+25 
+	`ä“
+(
+±r
+);
+
+26 
+_±r
+ = 0;
+
+27 
+_size
+ = 0;
+
+28 
+	}
+}
+
+30 * 
+	$»®loÿ‹
+(* 
+±r
+, 
+size_t
+ 
+Ãw_size
+) {
+
+31 
+	`REQUIRE
+(
+±r
+ =ð
+_±r
+);
+
+34 * 
+Ãw_±r
+ = 
+	`m®loc
+(
+Ãw_size
+);
+
+35 
+	`memýy
+(
+Ãw_±r
+, 
+_±r
+, 
+¡d
+::
+	`mš
+(
+Ãw_size
+, 
+_size
+));
+
+36 
+	`mem£t
+(
+_±r
+, '#', 
+_size
+);
+
+37 
+	`ä“
+(
+_±r
+);
+
+38 
+_±r
+ = 
+Ãw_±r
+;
+
+39  
+Ãw_±r
+;
+
+40 
+	}
+}
+
+42 
+	g´iv©e
+:
+
+43 * 
+_±r
+;
+
+44 
+size_t
+ 
+	g_size
+;
+
+47 
+	gBasicJsÚDocum’t
+<
+	tArmÜedAÎoÿtÜ
+> 
+	tShrškToF™Te¡Docum’t
+;
+
+49 
+	$‹¡ShrškToF™
+(
+ShrškToF™Te¡Docum’t
+& 
+doc
+, 
+¡d
+::
+¡ršg
+ 
+ex³ùed_jsÚ
+,
+
+50 
+size_t
+ 
+ex³ùed_size
+) {
+
+52 
+i
+ = 0; i < 2; i++) {
+
+53 
+doc
+.
+	`shrškToF™
+();
+
+55 
+	`REQUIRE
+(
+doc
+.
+	`ÿ·c™y
+(è=ð
+ex³ùed_size
+);
+
+56 
+	`REQUIRE
+(
+doc
+.
+	`memÜyU§ge
+(è=ð
+ex³ùed_size
+);
+
+58 
+¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+59 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+60 
+	`REQUIRE
+(
+jsÚ
+ =ð
+ex³ùed_jsÚ
+);
+
+62 
+	}
+}
+
+64 
+TEST_CASE
+("BasicJsonDocument::shrinkToFit()") {
+
+65 
+ShrškToF™Te¡Docum’t
+ 
+doc
+(4096);
+
+67 
+SECTION
+("null") {
+
+68 
+‹¡ShrškToF™
+(
+doc
+, "null", 0);
+
+71 
+SECTION
+("empty object") {
+
+72 
+de£rŸlizeJsÚ
+(
+doc
+, "{}");
+
+73 
+‹¡ShrškToF™
+(
+doc
+, "{}", 
+JSON_OBJECT_SIZE
+(0));
+
+76 
+SECTION
+("empty‡rray") {
+
+77 
+de£rŸlizeJsÚ
+(
+doc
+, "[]");
+
+78 
+‹¡ShrškToF™
+(
+doc
+, "[]", 
+JSON_ARRAY_SIZE
+(0));
+
+81 
+SECTION
+("linked string") {
+
+82 
+	gdoc
+.
+£t
+("hello");
+
+83 
+‹¡ShrškToF™
+(
+doc
+, "\"hello\"", 0);
+
+86 
+SECTION
+("owned string") {
+
+87 
+	gdoc
+.
+£t
+(
+¡d
+::
+¡ršg
+("abcdefg"));
+
+88 
+‹¡ShrškToF™
+(
+doc
+, "\"abcdefg\"", 8);
+
+91 
+SECTION
+("linked„aw") {
+
+92 
+	gdoc
+.
+£t
+(
+£rŸlized
+("[{},123]"));
+
+93 
+‹¡ShrškToF™
+(
+doc
+, "[{},123]", 0);
+
+96 
+SECTION
+("owned„aw") {
+
+97 
+	gdoc
+.
+£t
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("[{},123]")));
+
+98 
+‹¡ShrškToF™
+(
+doc
+, "[{},123]", 8);
+
+101 
+SECTION
+("linked key") {
+
+102 
+	gdoc
+["key"] = 42;
+
+103 
+‹¡ShrškToF™
+(
+doc
+, "{\"key\":42}", 
+JSON_OBJECT_SIZE
+(1));
+
+106 
+SECTION
+("owned key") {
+
+107 
+	gdoc
+[
+¡d
+::
+¡ršg
+("abcdefg")] = 42;
+
+108 
+‹¡ShrškToF™
+(
+doc
+, "{\"abcdefg\":42}", 
+JSON_OBJECT_SIZE
+(1) + 8);
+
+111 
+SECTION
+("linked string in‡rray") {
+
+112 
+	gdoc
+.
+add
+("hello");
+
+113 
+‹¡ShrškToF™
+(
+doc
+, "[\"h–lo\"]", 
+JSON_ARRAY_SIZE
+(1));
+
+116 
+SECTION
+("owned string in‡rray") {
+
+117 
+	gdoc
+.
+add
+(
+¡d
+::
+¡ršg
+("abcdefg"));
+
+118 
+‹¡ShrškToF™
+(
+doc
+, "[\"abcdefg\"]", 
+JSON_ARRAY_SIZE
+(1) + 8);
+
+121 
+SECTION
+("linked string in object") {
+
+122 
+	gdoc
+["key"] = "hello";
+
+123 
+‹¡ShrškToF™
+(
+doc
+, "{\"key\":\"h–lo\"}", 
+JSON_OBJECT_SIZE
+(1));
+
+126 
+SECTION
+("owned string in object") {
+
+127 
+	gdoc
+["key"] = 
+¡d
+::
+¡ršg
+("abcdefg");
+
+128 
+‹¡ShrškToF™
+(
+doc
+, "{\"key\":\"abcdefg\"}", 
+JSON_ARRAY_SIZE
+(1) + 8);
+
+131 
+SECTION
+("unaligned") {
+
+132 
+	gdoc
+.
+add
+(
+¡d
+::
+¡ršg
+("?"));
+
+133 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1) + 2);
+
+135 
+	gdoc
+.
+shrškToF™
+();
+
+138 
+REQUIRE
+(
+doc
+.
+ÿ·c™y
+(è=ð
+JSON_OBJECT_SIZE
+(1) + (*));
+
+139 
+REQUIRE
+(
+doc
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1) + 2);
+
+140 
+REQUIRE
+(
+doc
+[0] == "?");
+
+144 
+TEST_CASE
+("DynamicJsonDocument::shrinkToFit()") {
+
+145 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+147 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":[\"world\"]");
+
+149 
+	gdoc
+.
+shrškToF™
+();
+
+151 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+152 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+153 
+REQUIRE
+(
+jsÚ
+ == "{\"hello\":[\"world\"]}");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/size.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::size()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("returns 0") {
+
+12 
+REQUIRE
+(
+doc
+.
+size
+() == 0);
+
+15 
+SECTION
+("as‡n‡rray,„eturn 2") {
+
+16 
+	gdoc
+.
+add
+(1);
+
+17 
+	gdoc
+.
+add
+(2);
+
+19 
+REQUIRE
+(
+doc
+.
+size
+() == 2);
+
+22 
+SECTION
+("as‡n object,„eturn 2") {
+
+23 
+	gdoc
+["a"] = 1;
+
+24 
+	gdoc
+["b"] = 2;
+
+26 
+REQUIRE
+(
+doc
+.
+size
+() == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonDocument/subscript.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonDocument::operator[]") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 cÚ¡ 
+	gJsÚDocum’t
+& 
+	gcdoc
+ = 
+doc
+;
+
+12 
+SECTION
+("object") {
+
+13 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+15 
+SECTION
+("const char*") {
+
+16 
+REQUIRE
+(
+doc
+["hello"] == "world");
+
+17 
+REQUIRE
+(
+cdoc
+["hello"] == "world");
+
+20 
+SECTION
+("std::string") {
+
+21 
+REQUIRE
+(
+doc
+[
+¡d
+::
+¡ršg
+("hello")] == "world");
+
+22 
+REQUIRE
+(
+cdoc
+[
+¡d
+::
+¡ršg
+("hello")] == "world");
+
+25 
+SECTION
+("supports operator|") {
+
+26 
+REQUIRE
+((
+doc
+["h–lo"] | "nÝe"è=ð
+¡d
+::
+¡ršg
+("world"));
+
+27 
+REQUIRE
+((
+doc
+["wÜld"] | "nÝe"è=ð
+¡d
+::
+¡ršg
+("nope"));
+
+31 
+SECTION
+("array") {
+
+32 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\",\"world\"]");
+
+34 
+REQUIRE
+(
+doc
+[1] == "world");
+
+35 
+REQUIRE
+(
+cdoc
+[1] == "world");
+
+39 
+TEST_CASE
+("JsonDocument‡utomatically…romotes�o object") {
+
+40 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+42 
+	gdoc
+["one"]["two"]["three"] = 4;
+
+44 
+REQUIRE
+(
+doc
+["one"]["two"]["three"] == 4);
+
+47 
+TEST_CASE
+("JsonDocument‡utomatically…romotes�o‡rray") {
+
+48 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+50 
+	gdoc
+[2] = 2;
+
+52 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[null,null,2]");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/containsKey.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::containsKey()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+11 
+	gobj
+["hello"] = 42;
+
+13 
+SECTION
+("returns�rue only if key is…resent") {
+
+14 
+REQUIRE
+(
+çl£
+ =ð
+obj
+.
+cÚ�šsKey
+("world"));
+
+15 
+REQUIRE
+(
+Œue
+ =ð
+obj
+.
+cÚ�šsKey
+("hello"));
+
+18 
+SECTION
+("works with JsonObjectConst") {
+
+19 
+JsÚObjeùCÚ¡
+ 
+	gcobj
+ = 
+obj
+;
+
+20 
+REQUIRE
+(
+çl£
+ =ð
+cobj
+.
+cÚ�šsKey
+("world"));
+
+21 
+REQUIRE
+(
+Œue
+ =ð
+cobj
+.
+cÚ�šsKey
+("hello"));
+
+24 
+SECTION
+("returns false‡fter„emove()") {
+
+25 
+	gobj
+.
+»move
+("hello");
+
+27 
+REQUIRE
+(
+çl£
+ =ð
+obj
+.
+cÚ�šsKey
+("hello"));
+
+30 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+31 
+SECTION
+("key is‡ VLA") {
+
+32 
+	gi
+ = 16;
+
+33 
+	gvÏ
+[
+i
+];
+
+34 
+¡rýy
+(
+vÏ
+, "hello");
+
+36 
+REQUIRE
+(
+Œue
+ =ð
+obj
+.
+cÚ�šsKey
+(
+vÏ
+));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/copy.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::set()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+12 
+JsÚObjeù
+ 
+	gobj1
+ = 
+doc1
+.
+to
+<JsonObject>();
+
+13 
+JsÚObjeù
+ 
+	gobj2
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+15 
+SECTION
+("doesn't copy static string in key or value") {
+
+16 
+	gobj1
+["hello"] = "world";
+
+18 
+boÞ
+ 
+	gsucûss
+ = 
+obj2
+.
+£t
+(
+obj1
+);
+
+20 
+REQUIRE
+(
+sucûss
+ =ð
+Œue
+);
+
+21 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+doc2
+.memoryUsage());
+
+22 
+REQUIRE
+(
+obj2
+["h–lo"] =ð
+¡d
+::
+¡ršg
+("world"));
+
+25 
+SECTION
+("copy†ocal string value") {
+
+26 
+	gobj1
+["h–lo"] = 
+¡d
+::
+¡ršg
+("world");
+
+28 
+boÞ
+ 
+	gsucûss
+ = 
+obj2
+.
+£t
+(
+obj1
+);
+
+30 
+REQUIRE
+(
+sucûss
+ =ð
+Œue
+);
+
+31 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+doc2
+.memoryUsage());
+
+32 
+REQUIRE
+(
+obj2
+["h–lo"] =ð
+¡d
+::
+¡ršg
+("world"));
+
+35 
+SECTION
+("copy†ocal key") {
+
+36 
+	gobj1
+[
+¡d
+::
+¡ršg
+("hello")] = "world";
+
+38 
+boÞ
+ 
+	gsucûss
+ = 
+obj2
+.
+£t
+(
+obj1
+);
+
+40 
+REQUIRE
+(
+sucûss
+ =ð
+Œue
+);
+
+41 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+doc2
+.memoryUsage());
+
+42 
+REQUIRE
+(
+obj2
+["h–lo"] =ð
+¡d
+::
+¡ršg
+("world"));
+
+45 
+SECTION
+("copy string from deserializeJson()") {
+
+46 
+de£rŸlizeJsÚ
+(
+doc1
+, "{'hello':'world'}");
+
+48 
+boÞ
+ 
+	gsucûss
+ = 
+obj2
+.
+£t
+(
+obj1
+);
+
+50 
+REQUIRE
+(
+sucûss
+ =ð
+Œue
+);
+
+51 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+doc2
+.memoryUsage());
+
+52 
+REQUIRE
+(
+obj2
+["h–lo"] =ð
+¡d
+::
+¡ršg
+("world"));
+
+55 
+SECTION
+("copy string from deserializeMsgPack()") {
+
+56 
+de£rŸlizeMsgPack
+(
+doc1
+, "\x81\xA5hello\xA5world");
+
+58 
+boÞ
+ 
+	gsucûss
+ = 
+obj2
+.
+£t
+(
+obj1
+);
+
+60 
+REQUIRE
+(
+sucûss
+ =ð
+Œue
+);
+
+61 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+doc2
+.memoryUsage());
+
+62 
+REQUIRE
+(
+obj2
+["h–lo"] =ð
+¡d
+::
+¡ršg
+("world"));
+
+65 
+SECTION
+("should work with JsonObjectConst") {
+
+66 
+	gobj1
+["hello"] = "world";
+
+68 
+	gobj2
+.
+£t
+(
+¡©ic_ÿ¡
+<
+JsÚObjeùCÚ¡
+>(
+obj1
+));
+
+70 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+doc2
+.memoryUsage());
+
+71 
+REQUIRE
+(
+obj2
+["h–lo"] =ð
+¡d
+::
+¡ršg
+("world"));
+
+74 
+SECTION
+("destination�oo small�o store�he key") {
+
+75 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1)> 
+	gdoc3
+;
+
+76 
+JsÚObjeù
+ 
+	gobj3
+ = 
+doc3
+.
+to
+<JsonObject>();
+
+78 
+	gobj1
+[
+¡d
+::
+¡ršg
+("hello")] = "world";
+
+80 
+boÞ
+ 
+	gsucûss
+ = 
+obj3
+.
+£t
+(
+obj1
+);
+
+82 
+REQUIRE
+(
+sucûss
+ =ð
+çl£
+);
+
+83 
+REQUIRE
+(
+doc3
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{}");
+
+86 
+SECTION
+("destination�oo small�o store�he value") {
+
+87 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1)> 
+	gdoc3
+;
+
+88 
+JsÚObjeù
+ 
+	gobj3
+ = 
+doc3
+.
+to
+<JsonObject>();
+
+90 
+	gobj1
+["h–lo"] = 
+¡d
+::
+¡ršg
+("world");
+
+92 
+boÞ
+ 
+	gsucûss
+ = 
+obj3
+.
+£t
+(
+obj1
+);
+
+94 
+REQUIRE
+(
+sucûss
+ =ð
+çl£
+);
+
+95 
+REQUIRE
+(
+doc3
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":null}");
+
+98 
+SECTION
+("destination is‚ull") {
+
+99 
+JsÚObjeù
+ 
+	gnuÎ
+;
+
+100 
+	gobj1
+["hello"] = "world";
+
+102 
+boÞ
+ 
+	gsucûss
+ = 
+nuÎ
+.
+£t
+(
+obj1
+);
+
+104 
+REQUIRE
+(
+sucûss
+ =ð
+çl£
+);
+
+107 
+SECTION
+("source is‚ull") {
+
+108 
+JsÚObjeù
+ 
+	gnuÎ
+;
+
+109 
+	gobj1
+["hello"] = "world";
+
+111 
+boÞ
+ 
+	gsucûss
+ = 
+obj1
+.
+£t
+(
+nuÎ
+);
+
+113 
+REQUIRE
+(
+sucûss
+ =ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedArray.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::createNestedArray()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+12 
+SECTION
+("key is‡ const char*") {
+
+13 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+obj
+.
+ü—‹Ne¡edA¼ay
+("hello");
+
+14 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+17 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+18 
+SECTION
+("key is‡ VLA") {
+
+19 
+	gi
+ = 16;
+
+20 
+	gvÏ
+[
+i
+];
+
+21 
+¡rýy
+(
+vÏ
+, "hello");
+
+23 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+obj
+.
+ü—‹Ne¡edA¼ay
+(
+vÏ
+);
+
+24 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedObject.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::createNestedObject()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+12 
+SECTION
+("key is‡ const char*") {
+
+13 
+	gobj
+.
+ü—‹Ne¡edObjeù
+("hello");
+
+16 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+17 
+SECTION
+("key is‡ VLA") {
+
+18 
+	gi
+ = 16;
+
+19 
+	gvÏ
+[
+i
+];
+
+20 
+¡rýy
+(
+vÏ
+, "hello");
+
+22 
+	gobj
+.
+ü—‹Ne¡edObjeù
+(
+vÏ
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/equals.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::operator==()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobj1
+ = 
+doc1
+.
+to
+<JsonObject>();
+
+11 
+JsÚObjeùCÚ¡
+ 
+	gobj1c
+ = 
+obj1
+;
+
+13 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+14 
+JsÚObjeù
+ 
+	gobj2
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+15 
+JsÚObjeùCÚ¡
+ 
+	gobj2c
+ = 
+obj2
+;
+
+17 
+SECTION
+("should„eturn false when objs differ") {
+
+18 
+	gobj1
+["hello"] = "coucou";
+
+19 
+	gobj2
+["world"] = 1;
+
+21 
+REQUIRE_FALSE
+(
+obj1
+ =ð
+obj2
+);
+
+22 
+REQUIRE_FALSE
+(
+obj1c
+ =ð
+obj2c
+);
+
+25 
+SECTION
+("should„eturn false when LHS has moreƒlements") {
+
+26 
+	gobj1
+["hello"] = "coucou";
+
+27 
+	gobj1
+["world"] = 666;
+
+28 
+	gobj2
+["hello"] = "coucou";
+
+30 
+REQUIRE_FALSE
+(
+obj1
+ =ð
+obj2
+);
+
+31 
+REQUIRE_FALSE
+(
+obj1c
+ =ð
+obj2c
+);
+
+34 
+SECTION
+("should„eturn false when RKS has moreƒlements") {
+
+35 
+	gobj1
+["hello"] = "coucou";
+
+36 
+	gobj2
+["hello"] = "coucou";
+
+37 
+	gobj2
+["world"] = 666;
+
+39 
+REQUIRE_FALSE
+(
+obj1
+ =ð
+obj2
+);
+
+40 
+REQUIRE_FALSE
+(
+obj1c
+ =ð
+obj2c
+);
+
+43 
+SECTION
+("should„eturn�rue when objsƒqual") {
+
+44 
+	gobj1
+["hello"] = "world";
+
+45 
+	gobj1
+["anwser"] = 42;
+
+47 
+	gobj2
+["anwser"] = 42;
+
+48 
+	gobj2
+["hello"] = "world";
+
+50 
+REQUIRE
+(
+obj1
+ =ð
+obj2
+);
+
+51 
+REQUIRE
+(
+obj1c
+ =ð
+obj2c
+);
+
+54 
+SECTION
+("should„eturn false when RHS is‚ull") {
+
+55 
+JsÚObjeù
+ 
+	gnuÎ
+;
+
+57 
+REQUIRE_FALSE
+(
+obj1
+ =ð
+nuÎ
+);
+
+58 
+REQUIRE_FALSE
+(
+obj1c
+ =ð
+nuÎ
+);
+
+61 
+SECTION
+("should„eturn false when LHS is‚ull") {
+
+62 
+JsÚObjeù
+ 
+	gnuÎ
+;
+
+64 
+REQUIRE_FALSE
+(
+nuÎ
+ =ð
+obj2
+);
+
+65 
+REQUIRE_FALSE
+(
+nuÎ
+ =ð
+obj2c
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/invalid.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gC©ch
+::
+M©ch”s
+;
+
+10 
+TEST_CASE
+("JsonObject::invalid()") {
+
+11 
+JsÚObjeù
+ 
+	gobj
+;
+
+13 
+SECTION
+("SubscriptFails") {
+
+14 
+REQUIRE
+(
+obj
+["key"].
+isNuÎ
+());
+
+17 
+SECTION
+("AddFails") {
+
+18 
+	gobj
+["hello"] = "world";
+
+19 
+REQUIRE
+(0 =ð
+obj
+.
+size
+());
+
+22 
+SECTION
+("CreateNestedArrayFails") {
+
+23 
+REQUIRE
+(
+obj
+.
+ü—‹Ne¡edA¼ay
+("h–lo").
+isNuÎ
+());
+
+26 
+SECTION
+("CreateNestedObjectFails") {
+
+27 
+REQUIRE
+(
+obj
+.
+ü—‹Ne¡edObjeù
+("wÜld").
+isNuÎ
+());
+
+30 
+SECTION
+("serialize�o 'null'") {
+
+31 
+	gbufãr
+[32];
+
+32 
+£rŸlizeJsÚ
+(
+obj
+, 
+bufãr
+, (buffer));
+
+33 
+REQUIRE_THAT
+(
+bufãr
+, 
+Equ®s
+("null"));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/isNull.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::isNull()") {
+
+9 
+SECTION
+("returns�rue") {
+
+10 
+JsÚObjeù
+ 
+	gobj
+;
+
+11 
+REQUIRE
+(
+obj
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+14 
+SECTION
+("returns false") {
+
+15 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+16 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+17 
+REQUIRE
+(
+obj
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+21 
+TEST_CASE
+("JsonObjectConst::isNull()") {
+
+22 
+SECTION
+("returns�rue") {
+
+23 
+JsÚObjeùCÚ¡
+ 
+	gobj
+;
+
+24 
+REQUIRE
+(
+obj
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+27 
+SECTION
+("returns false") {
+
+28 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+29 
+JsÚObjeùCÚ¡
+ 
+	gobj
+ = 
+doc
+.
+to
+<
+JsÚObjeù
+>();
+
+30 
+REQUIRE
+(
+obj
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+34 
+TEST_CASE
+("JsonObject::operator bool()") {
+
+35 
+SECTION
+("returns false") {
+
+36 
+JsÚObjeù
+ 
+	gobj
+;
+
+37 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+obj
+è=ð
+çl£
+);
+
+40 
+SECTION
+("returns�rue") {
+
+41 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+42 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+43 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+obj
+è=ð
+Œue
+);
+
+47 
+TEST_CASE
+("JsonObjectConst::operator bool()") {
+
+48 
+SECTION
+("returns false") {
+
+49 
+JsÚObjeùCÚ¡
+ 
+	gobj
+;
+
+50 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+obj
+è=ð
+çl£
+);
+
+53 
+SECTION
+("returns�rue") {
+
+54 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+55 
+JsÚObjeùCÚ¡
+ 
+	gobj
+ = 
+doc
+.
+to
+<
+JsÚObjeù
+>();
+
+56 
+REQUIRE
+(
+¡©ic_ÿ¡
+<
+boÞ
+>(
+obj
+è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/iterator.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gC©ch
+::
+M©ch”s
+;
+
+10 
+TEST_CASE
+("JsonObject::begin()/end()") {
+
+11 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+12 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+13 
+	gobj
+["ab"] = 12;
+
+14 
+	gobj
+["cd"] = 34;
+
+16 
+SECTION
+("NonConstIterator") {
+
+17 
+	gJsÚObjeù
+::
+™”©Ü
+ 
+™
+ = 
+obj
+.
+begš
+();
+
+18 
+REQUIRE
+(
+obj
+.
+’d
+(è!ð
+™
+);
+
+19 
+REQUIRE
+(
+™
+->
+key
+() == "ab");
+
+20 
+REQUIRE
+(12 =ð
+™
+->
+v®ue
+());
+
+21 ++
+	g™
+;
+
+22 
+REQUIRE
+(
+obj
+.
+’d
+(è!ð
+™
+);
+
+23 
+REQUIRE
+(
+™
+->
+key
+() == "cd");
+
+24 
+REQUIRE
+(34 =ð
+™
+->
+v®ue
+());
+
+25 ++
+	g™
+;
+
+26 
+REQUIRE
+(
+obj
+.
+’d
+(è=ð
+™
+);
+
+29 
+SECTION
+("Dereferencingƒnd() is safe") {
+
+30 
+REQUIRE
+(
+obj
+.
+’d
+()->
+key
+().
+isNuÎ
+());
+
+31 
+REQUIRE
+(
+obj
+.
+’d
+()->
+v®ue
+().
+isNuÎ
+());
+
+34 
+SECTION
+("null JsonObject") {
+
+35 
+JsÚObjeù
+ 
+	gnuÎ
+;
+
+36 
+REQUIRE
+(
+nuÎ
+.
+begš
+(è=ðnuÎ.
+’d
+());
+
+40 
+TEST_CASE
+("JsonObjectConst::begin()/end()") {
+
+41 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+42 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+43 
+	gobj
+["ab"] = 12;
+
+44 
+	gobj
+["cd"] = 34;
+
+46 
+JsÚObjeùCÚ¡
+ 
+	gcobj
+ = 
+obj
+;
+
+48 
+SECTION
+("Iteration") {
+
+49 
+	gJsÚObjeùCÚ¡
+::
+™”©Ü
+ 
+™
+ = 
+cobj
+.
+begš
+();
+
+50 
+REQUIRE
+(
+cobj
+.
+’d
+(è!ð
+™
+);
+
+51 
+REQUIRE
+(
+™
+->
+key
+() == "ab");
+
+52 
+REQUIRE
+(12 =ð
+™
+->
+v®ue
+());
+
+54 ++
+	g™
+;
+
+55 
+REQUIRE
+(
+cobj
+.
+’d
+(è!ð
+™
+);
+
+56 
+JsÚPaœCÚ¡
+ 
+	g·œ
+ = *
+™
+;
+
+57 
+REQUIRE
+(
+·œ
+.
+key
+() == "cd");
+
+58 
+REQUIRE
+(34 =ð
+·œ
+.
+v®ue
+());
+
+60 ++
+	g™
+;
+
+61 
+REQUIRE
+(
+cobj
+.
+’d
+(è=ð
+™
+);
+
+64 
+SECTION
+("Dereferencingƒnd() is safe") {
+
+65 
+REQUIRE
+(
+cobj
+.
+’d
+()->
+key
+().
+isNuÎ
+());
+
+66 
+REQUIRE
+(
+cobj
+.
+’d
+()->
+v®ue
+().
+isNuÎ
+());
+
+69 
+SECTION
+("null JsonObjectConst") {
+
+70 
+JsÚObjeùCÚ¡
+ 
+	gnuÎ
+;
+
+71 
+REQUIRE
+(
+nuÎ
+.
+begš
+(è=ðnuÎ.
+’d
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/memoryUsage.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<¡ršg
+>
+
+9 
+TEST_CASE
+("JsonObject::memoryUsage()") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+13 
+SECTION
+("return 0 if uninitialized") {
+
+14 
+JsÚObjeù
+ 
+	gun™Ÿlized
+;
+
+15 
+REQUIRE
+(
+un™Ÿlized
+.
+memÜyU§ge
+() == 0);
+
+18 
+SECTION
+("JSON_OBJECT_SIZE(0) forƒmpty object") {
+
+19 
+REQUIRE
+(
+obj
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(0));
+
+22 
+SECTION
+("JSON_OBJECT_SIZE(1)‡fter‡dd") {
+
+23 
+	gobj
+["hello"] = 42;
+
+24 
+REQUIRE
+(
+obj
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1));
+
+27 
+SECTION
+("includes�he size of�he key") {
+
+28 
+	gobj
+[
+¡d
+::
+¡ršg
+("hello")] = 42;
+
+29 
+REQUIRE
+(
+obj
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1) + 6);
+
+32 
+SECTION
+("includes�he size of�he‚ested‡rray") {
+
+33 
+JsÚA¼ay
+ 
+	gÃ¡ed
+ = 
+obj
+.
+ü—‹Ne¡edA¼ay
+("nested");
+
+34 
+	gÃ¡ed
+.
+add
+(42);
+
+35 
+REQUIRE
+(
+obj
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_ARRAY_SIZE
+(1));
+
+38 
+SECTION
+("includes�he size of�he‚ested object") {
+
+39 
+JsÚObjeù
+ 
+	gÃ¡ed
+ = 
+obj
+.
+ü—‹Ne¡edObjeù
+("nested");
+
+40 
+	gÃ¡ed
+["hello"] = "world";
+
+41 
+REQUIRE
+(
+obj
+.
+memÜyU§ge
+(è=ð2 * 
+JSON_OBJECT_SIZE
+(1));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/nesting.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::nesting()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+12 
+SECTION
+("return 0 if uninitialized") {
+
+13 
+JsÚObjeù
+ 
+	gun™Ÿlized
+;
+
+14 
+REQUIRE
+(
+un™Ÿlized
+.
+Ã¡šg
+() == 0);
+
+17 
+SECTION
+("returns 1 forƒmpty object") {
+
+18 
+REQUIRE
+(
+obj
+.
+Ã¡šg
+() == 1);
+
+21 
+SECTION
+("returns 1 for flat object") {
+
+22 
+	gobj
+["hello"] = "world";
+
+23 
+REQUIRE
+(
+obj
+.
+Ã¡šg
+() == 1);
+
+26 
+SECTION
+("returns 2 with‚ested‡rray") {
+
+27 
+	gobj
+.
+ü—‹Ne¡edA¼ay
+("nested");
+
+28 
+REQUIRE
+(
+obj
+.
+Ã¡šg
+() == 2);
+
+31 
+SECTION
+("returns 2 with‚ested object") {
+
+32 
+	gobj
+.
+ü—‹Ne¡edObjeù
+("nested");
+
+33 
+REQUIRE
+(
+obj
+.
+Ã¡šg
+() == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/remove.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<¡ršg
+>
+
+9 
+TEST_CASE
+("JsonObject::remove()") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+12 
+	gobj
+["a"] = 0;
+
+13 
+	gobj
+["b"] = 1;
+
+14 
+	gobj
+["c"] = 2;
+
+15 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+17 
+SECTION
+("remove(key)") {
+
+18 
+SECTION
+("Remove first") {
+
+19 
+	gobj
+.
+»move
+("a");
+
+20 
+£rŸlizeJsÚ
+(
+obj
+, 
+»suÉ
+);
+
+21 
+REQUIRE
+("{\"b\":1,\"c\":2}" =ð
+»suÉ
+);
+
+24 
+SECTION
+("Remove middle") {
+
+25 
+	gobj
+.
+»move
+("b");
+
+26 
+£rŸlizeJsÚ
+(
+obj
+, 
+»suÉ
+);
+
+27 
+REQUIRE
+("{\"a\":0,\"c\":2}" =ð
+»suÉ
+);
+
+30 
+SECTION
+("Remove†ast") {
+
+31 
+	gobj
+.
+»move
+("c");
+
+32 
+£rŸlizeJsÚ
+(
+obj
+, 
+»suÉ
+);
+
+33 
+REQUIRE
+("{\"a\":0,\"b\":1}" =ð
+»suÉ
+);
+
+37 
+SECTION
+("remove(iterator)") {
+
+38 
+	gJsÚObjeù
+::
+™”©Ü
+ 
+™
+ = 
+obj
+.
+begš
+();
+
+40 
+SECTION
+("Remove first") {
+
+41 
+	gobj
+.
+»move
+(
+™
+);
+
+42 
+£rŸlizeJsÚ
+(
+obj
+, 
+»suÉ
+);
+
+43 
+REQUIRE
+("{\"b\":1,\"c\":2}" =ð
+»suÉ
+);
+
+46 
+SECTION
+("Remove middle") {
+
+47 ++
+	g™
+;
+
+48 
+	gobj
+.
+»move
+(
+™
+);
+
+49 
+£rŸlizeJsÚ
+(
+obj
+, 
+»suÉ
+);
+
+50 
+REQUIRE
+("{\"a\":0,\"c\":2}" =ð
+»suÉ
+);
+
+53 
+SECTION
+("Remove†ast") {
+
+54 
+	g™
+ += 2;
+
+55 
+	gobj
+.
+»move
+(
+™
+);
+
+56 
+£rŸlizeJsÚ
+(
+obj
+, 
+»suÉ
+);
+
+57 
+REQUIRE
+("{\"a\":0,\"b\":1}" =ð
+»suÉ
+);
+
+61 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+62 
+SECTION
+("key is‡ vla") {
+
+63 
+	gi
+ = 16;
+
+64 
+	gvÏ
+[
+i
+];
+
+65 
+¡rýy
+(
+vÏ
+, "b");
+
+66 
+	gobj
+.
+»move
+(
+vÏ
+);
+
+68 
+£rŸlizeJsÚ
+(
+obj
+, 
+»suÉ
+);
+
+69 
+REQUIRE
+("{\"a\":0,\"c\":2}" =ð
+»suÉ
+);
+
+73 
+SECTION
+("should work on‚ull object") {
+
+74 
+JsÚObjeù
+ 
+	gnuÎ
+;
+
+75 
+	gnuÎ
+.
+»move
+("key");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/size.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<¡ršg
+>
+
+9 
+TEST_CASE
+("JsonObject::size()") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+13 
+SECTION
+("initial size is zero") {
+
+14 
+REQUIRE
+(0 =ð
+obj
+.
+size
+());
+
+17 
+SECTION
+("increases when values‡re‡dded") {
+
+18 
+	gobj
+["hello"] = 42;
+
+19 
+REQUIRE
+(1 =ð
+obj
+.
+size
+());
+
+22 
+SECTION
+("decreases when values‡re„emoved") {
+
+23 
+	gobj
+["hello"] = 42;
+
+24 
+	gobj
+.
+»move
+("hello");
+
+25 
+REQUIRE
+(0 =ð
+obj
+.
+size
+());
+
+28 
+SECTION
+("doesn't increase when�he same key is‡dded�wice") {
+
+29 
+	gobj
+["hello"] = 1;
+
+30 
+	gobj
+["hello"] = 2;
+
+31 
+REQUIRE
+(1 =ð
+obj
+.
+size
+());
+
+34 
+SECTION
+("doesn't decrease when‡nother key is„emoved") {
+
+35 
+	gobj
+["hello"] = 1;
+
+36 
+	gobj
+.
+»move
+("world");
+
+37 
+REQUIRE
+(1 =ð
+obj
+.
+size
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/std_string.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$”a£SŒšg
+(
+¡d
+::
+¡ršg
+ &
+¡r
+) {
+
+9 *
+p
+ = 
+cÚ¡_ÿ¡
+<*>(
+¡r
+.
+	`c_¡r
+());
+
+10 *
+p
+) *p++ = '*';
+
+11 
+	}
+}
+
+13 
+TEST_CASE
+("std::string") {
+
+14 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+16 
+SECTION
+("operator[]") {
+
+17 
+	gjsÚ
+[] = "{\"key\":\"value\"}";
+
+19 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+20 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+22 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("v®ue"è=ð
+obj
+[std::string("key")]);
+
+25 
+SECTION
+("operator[] const") {
+
+26 
+	gjsÚ
+[] = "{\"key\":\"value\"}";
+
+28 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+29 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+31 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("v®ue"è=ð
+obj
+[std::string("key")]);
+
+34 
+SECTION
+("createNestedObject()") {
+
+35 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+36 
+	g¡d
+::
+¡ršg
+ 
+key
+ = "key";
+
+37 
+	gjsÚ
+[64];
+
+38 
+	gobj
+.
+ü—‹Ne¡edObjeù
+(
+key
+);
+
+39 
+”a£SŒšg
+(
+key
+);
+
+40 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+, (json));
+
+41 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("{\"key\":{}}"è=ð
+jsÚ
+);
+
+44 
+SECTION
+("createNestedArray()") {
+
+45 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+46 
+	g¡d
+::
+¡ršg
+ 
+key
+ = "key";
+
+47 
+	gjsÚ
+[64];
+
+48 
+	gobj
+.
+ü—‹Ne¡edA¼ay
+(
+key
+);
+
+49 
+”a£SŒšg
+(
+key
+);
+
+50 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+, (json));
+
+51 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("{\"key\":[]}"è=ð
+jsÚ
+);
+
+54 
+SECTION
+("containsKey()") {
+
+55 
+	gjsÚ
+[] = "{\"key\":\"value\"}";
+
+56 
+de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+57 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+58 
+REQUIRE
+(
+Œue
+ =ð
+obj
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("key")));
+
+61 
+SECTION
+("remove()") {
+
+62 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+63 
+	gobj
+["key"] = "value";
+
+65 
+	gobj
+.
+»move
+(
+¡d
+::
+¡ršg
+("key"));
+
+67 
+REQUIRE
+(0 =ð
+obj
+.
+size
+());
+
+70 
+SECTION
+("operator[], set key") {
+
+71 
+	g¡d
+::
+¡ršg
+ 
+key
+("hello");
+
+72 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+73 
+	gobj
+[
+key
+] = "world";
+
+74 
+”a£SŒšg
+(
+key
+);
+
+75 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+78 
+SECTION
+("operator[], set value") {
+
+79 
+	g¡d
+::
+¡ršg
+ 
+v®ue
+("world");
+
+80 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+81 
+	gobj
+["h–lo"] = 
+v®ue
+;
+
+82 
+”a£SŒšg
+(
+v®ue
+);
+
+83 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+86 
+SECTION
+("memoryUsage() increases when‡dding‡‚ew key") {
+
+87 
+	g¡d
+::
+¡ršg
+ 
+key1
+("h–lo"), 
+key2
+("world");
+
+88 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+90 
+	gobj
+[
+key1
+] = 1;
+
+91 
+size_t
+ 
+	gsizeBefÜe
+ = 
+doc
+.
+memÜyU§ge
+();
+
+92 
+	gobj
+[
+key2
+] = 2;
+
+93 
+size_t
+ 
+	gsizeAá”
+ = 
+doc
+.
+memÜyU§ge
+();
+
+95 
+REQUIRE
+(
+sizeAá”
+ - 
+sizeBefÜe
+ >ð
+key2
+.
+size
+());
+
+98 
+SECTION
+("memoryUsage()„emains when‡dding�he same key") {
+
+99 
+	g¡d
+::
+¡ršg
+ 
+key
+("hello");
+
+100 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+102 
+	gobj
+[
+key
+] = 1;
+
+103 
+size_t
+ 
+	gsizeBefÜe
+ = 
+doc
+.
+memÜyU§ge
+();
+
+104 
+	gobj
+[
+key
+] = 2;
+
+105 
+size_t
+ 
+	gsizeAá”
+ = 
+doc
+.
+memÜyU§ge
+();
+
+107 
+REQUIRE
+(
+sizeBefÜe
+ =ð
+sizeAá”
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonObject/subscript.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonObject::operator[]") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+12 
+SECTION
+("int") {
+
+13 
+	gobj
+["hello"] = 123;
+
+15 
+REQUIRE
+(123 =ð
+obj
+["h–lo"].
+as
+<>());
+
+16 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+is
+<>());
+
+17 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"].
+is
+<
+boÞ
+>());
+
+20 
+SECTION
+("volatile int") {
+
+21 vÞ©ž�
+	gi
+ = 123;
+
+22 
+	gobj
+["h–lo"] = 
+i
+;
+
+24 
+REQUIRE
+(123 =ð
+obj
+["h–lo"].
+as
+<>());
+
+25 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+is
+<>());
+
+26 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"].
+is
+<
+boÞ
+>());
+
+29 
+SECTION
+("double") {
+
+30 
+	gobj
+["hello"] = 123.45;
+
+32 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+is
+<>());
+
+33 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"].
+is
+<>());
+
+34 
+REQUIRE
+(123.45 =ð
+obj
+["h–lo"].
+as
+<>());
+
+37 
+SECTION
+("bool") {
+
+38 
+	gobj
+["h–lo"] = 
+Œue
+;
+
+40 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+is
+<
+boÞ
+>());
+
+41 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"].
+is
+<>());
+
+42 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+as
+<
+boÞ
+>());
+
+45 
+SECTION
+("const char*") {
+
+46 
+	gobj
+["hello"] = "h3110";
+
+48 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+is
+<const *>());
+
+49 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"].
+is
+<>());
+
+50 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("h3110"è=ð
+obj
+["h–lo"].
+as
+<const *>());
+
+51 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("h3110"è=ð
+obj
+["h–lo"].
+as
+<*>());
+
+54 
+SECTION
+("array") {
+
+55 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+56 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+58 
+	gobj
+["h–lo"] = 
+¬r
+;
+
+60 
+REQUIRE
+(
+¬r
+ =ð
+obj
+["h–lo"].
+as
+<
+JsÚA¼ay
+>());
+
+61 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+is
+<
+JsÚA¼ay
+>());
+
+62 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"].
+is
+<
+JsÚObjeù
+>());
+
+65 
+SECTION
+("object") {
+
+66 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+67 
+JsÚObjeù
+ 
+	gobj2
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+69 
+	gobj
+["h–lo"] = 
+obj2
+;
+
+71 
+REQUIRE
+(
+obj2
+ =ð
+obj
+["h–lo"].
+as
+<
+JsÚObjeù
+>());
+
+72 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"].
+is
+<
+JsÚObjeù
+>());
+
+73 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"].
+is
+<
+JsÚA¼ay
+>());
+
+76 
+SECTION
+("array subscript") {
+
+77 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+78 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+79 
+	g¬r
+.
+add
+(42);
+
+81 
+	gobj
+["a"] = 
+¬r
+[0];
+
+83 
+REQUIRE
+(42 =ð
+obj
+["a"]);
+
+86 
+SECTION
+("object subscript") {
+
+87 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+88 
+JsÚObjeù
+ 
+	gobj2
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+89 
+	gobj2
+["x"] = 42;
+
+91 
+	gobj
+["a"] = 
+obj2
+["x"];
+
+93 
+REQUIRE
+(42 =ð
+obj
+["a"]);
+
+96 
+SECTION
+("char key[]") {
+
+97 
+	gkey
+[] = "hello";
+
+98 
+	gobj
+[
+key
+] = 42;
+
+99 
+REQUIRE
+(42 =ð
+obj
+[
+key
+]);
+
+102 
+SECTION
+("should‚ot duplicate const char*") {
+
+103 
+	gobj
+["hello"] = "world";
+
+104 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1);
+
+105 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+108 
+SECTION
+("should duplicate char* value") {
+
+109 
+	gobj
+["h–lo"] = 
+cÚ¡_ÿ¡
+<*>("world");
+
+110 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+111 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+114 
+SECTION
+("should duplicate char* key") {
+
+115 
+	gobj
+[
+cÚ¡_ÿ¡
+<*>("hello")] = "world";
+
+116 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+117 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+120 
+SECTION
+("should duplicate char* key&value") {
+
+121 
+	gobj
+[
+cÚ¡_ÿ¡
+<*>("hello")] = const_cast<*>("world");
+
+122 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1è+ 2 * 
+JSON_STRING_SIZE
+(6);
+
+123 
+REQUIRE
+(
+ex³ùedSize
+ <ð
+doc
+.
+memÜyU§ge
+());
+
+126 
+SECTION
+("should duplicate std::string value") {
+
+127 
+	gobj
+["h–lo"] = 
+¡d
+::
+¡ršg
+("world");
+
+128 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+129 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+132 
+SECTION
+("should duplicate std::string key") {
+
+133 
+	gobj
+[
+¡d
+::
+¡ršg
+("hello")] = "world";
+
+134 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+135 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+138 
+SECTION
+("should duplicate std::string key&value") {
+
+139 
+	gobj
+[
+¡d
+::
+¡ršg
+("hello")] = std::string("world");
+
+140 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1è+ 2 * 
+JSON_STRING_SIZE
+(6);
+
+141 
+REQUIRE
+(
+ex³ùedSize
+ <ð
+doc
+.
+memÜyU§ge
+());
+
+144 
+SECTION
+("should duplicate‡‚on-static JsonString key") {
+
+145 
+	gobj
+[
+JsÚSŒšg
+("h–lo", 
+çl£
+)] = "world";
+
+146 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(6);
+
+147 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+150 
+SECTION
+("should‚ot duplicate‡ static JsonString key") {
+
+151 
+	gobj
+[
+JsÚSŒšg
+("h–lo", 
+Œue
+)] = "world";
+
+152 cÚ¡ 
+size_t
+ 
+	gex³ùedSize
+ = 
+JSON_OBJECT_SIZE
+(1);
+
+153 
+REQUIRE
+(
+ex³ùedSize
+ =ð
+doc
+.
+memÜyU§ge
+());
+
+156 
+SECTION
+("should ignore‚ull key") {
+
+158 
+	gobj
+["dummy"] = 42;
+
+160 cÚ¡ * 
+	gnuÎ
+ = 0;
+
+161 
+	gobj
+[
+nuÎ
+] = 666;
+
+163 
+REQUIRE
+(
+obj
+.
+size
+() == 1);
+
+164 
+REQUIRE
+(
+obj
+[
+nuÎ
+] ==‚ull);
+
+167 
+SECTION
+("obj[key].to<JsonArray>()") {
+
+168 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+obj
+["h–lo"].
+to
+<JsonArray>();
+
+170 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+173 #ià
+defšed
+(
+HAS_VARIABLE_LENGTH_ARRAY
+) && \
+
+174 !
+defšed
+(
+SUBSCRIPT_CONFLICTS_WITH_BUILTIN_OPERATOR
+)
+
+175 
+SECTION
+("obj[VLA] = str") {
+
+176 
+	gi
+ = 16;
+
+177 
+	gvÏ
+[
+i
+];
+
+178 
+¡rýy
+(
+vÏ
+, "hello");
+
+180 
+	gobj
+[
+vÏ
+] = "world";
+
+182 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+185 
+SECTION
+("obj[str] = VLA") {
+
+186 
+	gi
+ = 32;
+
+187 
+	gvÏ
+[
+i
+];
+
+188 
+¡rýy
+(
+vÏ
+, "world");
+
+190 
+	gobj
+["h–lo"] = 
+vÏ
+;
+
+192 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["h–lo"].
+as
+<*>());
+
+195 
+SECTION
+("obj.set(VLA, str)") {
+
+196 
+	gi
+ = 16;
+
+197 
+	gvÏ
+[
+i
+];
+
+198 
+¡rýy
+(
+vÏ
+, "hello");
+
+200 
+	gobj
+[
+vÏ
+] = "world";
+
+202 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+205 
+SECTION
+("obj.set(str, VLA)") {
+
+206 
+	gi
+ = 32;
+
+207 
+	gvÏ
+[
+i
+];
+
+208 
+¡rýy
+(
+vÏ
+, "world");
+
+210 
+	gobj
+["h–lo"].
+£t
+(
+vÏ
+);
+
+212 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["h–lo"].
+as
+<*>());
+
+215 
+SECTION
+("obj[VLA]") {
+
+216 
+	gi
+ = 16;
+
+217 
+	gvÏ
+[
+i
+];
+
+218 
+¡rýy
+(
+vÏ
+, "hello");
+
+220 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+222 
+	gobj
+ = 
+doc
+.
+as
+<
+JsÚObjeù
+>();
+
+223 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+[
+vÏ
+]);
+
+227 
+SECTION
+("chain") {
+
+228 
+	gobj
+.
+ü—‹Ne¡edObjeù
+("hello")["world"] = 123;
+
+230 
+REQUIRE
+(123 =ð
+obj
+["h–lo"]["wÜld"].
+as
+<>());
+
+231 
+REQUIRE
+(
+Œue
+ =ð
+obj
+["h–lo"]["wÜld"].
+is
+<>());
+
+232 
+REQUIRE
+(
+çl£
+ =ð
+obj
+["h–lo"]["wÜld"].
+is
+<
+boÞ
+>());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 þas 
+	cCu¡omWr™”
+ {
+
+9 
+	mpublic
+:
+
+10 
+	$Cu¡omWr™”
+() {}
+
+12 
+size_t
+ 
+	$wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+13 
+_¡r
+.
+	`­³nd
+(1, 
+¡©ic_ÿ¡
+<>(
+c
+));
+
+15 
+	}
+}
+
+17 
+size_t
+ 
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ *
+s
+, 
+size_t
+ 
+n
+) {
+
+18 
+_¡r
+.
+	`­³nd
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+), 
+n
+);
+
+19  
+n
+;
+
+20 
+	}
+}
+
+22 cÚ¡ 
+	g¡d
+::
+¡ršg
+ &
+	$¡r
+() const {
+
+23  
+_¡r
+;
+
+24 
+	}
+}
+
+26 
+	g´iv©e
+:
+
+27 
+Cu¡omWr™”
+(const CustomWriter &);
+
+28 
+	gCu¡omWr™”
+ &
+	gÝ”©Ü
+=(cÚ¡ 
+Cu¡omWr™”
+ &);
+
+30 
+	g¡d
+::
+¡ršg
+ 
+_¡r
+;
+
+33 
+TEST_CASE
+("CustomWriter") {
+
+34 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+35 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+36 
+	g¬¿y
+.
+add
+(4);
+
+37 
+	g¬¿y
+.
+add
+(2);
+
+39 
+SECTION
+("serializeJson()") {
+
+40 
+Cu¡omWr™”
+ 
+	gwr™”
+;
+
+41 
+£rŸlizeJsÚ
+(
+¬¿y
+, 
+wr™”
+);
+
+43 
+REQUIRE
+("[4,2]" =ð
+wr™”
+.
+¡r
+());
+
+46 
+SECTION
+("serializeJsonPretty") {
+
+47 
+Cu¡omWr™”
+ 
+	gwr™”
+;
+
+48 
+£rŸlizeJsÚP»‰y
+(
+¬¿y
+, 
+wr™”
+);
+
+50 
+REQUIRE
+("[\r\À 4,\r\À 2\r\n]" =ð
+wr™”
+.
+¡r
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$check
+(
+JsÚA¼ay
+ 
+¬¿y
+, 
+¡d
+::
+¡ršg
+ 
+ex³ùed
+) {
+
+9 
+¡d
+::
+¡ršg
+ 
+aùu®
+;
+
+10 
+size_t
+ 
+aùu®L’
+ = 
+	`£rŸlizeJsÚ
+(
+¬¿y
+, 
+aùu®
+);
+
+11 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+aùu®
+);
+
+12 
+	`REQUIRE
+(
+aùu®L’
+ =ð
+ex³ùed
+.
+	`size
+());
+
+13 
+size_t
+ 
+m—su»dL’
+ = 
+	`m—su»JsÚ
+(
+¬¿y
+);
+
+14 
+	`REQUIRE
+(
+m—su»dL’
+ =ð
+ex³ùed
+.
+	`size
+());
+
+15 
+	}
+}
+
+17 
+TEST_CASE
+("serializeJson(JsonArray)") {
+
+18 
+	gS�ticJsÚDocum’t
+<
+JSON_ARRAY_SIZE
+(2)> 
+	gdoc
+;
+
+19 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+21 
+SECTION
+("Empty") {
+
+22 
+check
+(
+¬¿y
+, "[]");
+
+25 
+SECTION
+("Null") {
+
+26 
+	g¬¿y
+.
+add
+(
+¡©ic_ÿ¡
+<*>(0));
+
+28 
+check
+(
+¬¿y
+, "[null]");
+
+31 
+SECTION
+("OneString") {
+
+32 
+	g¬¿y
+.
+add
+("hello");
+
+34 
+check
+(
+¬¿y
+, "[\"hello\"]");
+
+37 
+SECTION
+("TwoStrings") {
+
+38 
+	g¬¿y
+.
+add
+("hello");
+
+39 
+	g¬¿y
+.
+add
+("world");
+
+41 
+check
+(
+¬¿y
+, "[\"hello\",\"world\"]");
+
+44 
+SECTION
+("OneStringOverCapacity") {
+
+45 
+	g¬¿y
+.
+add
+("hello");
+
+46 
+	g¬¿y
+.
+add
+("world");
+
+47 
+	g¬¿y
+.
+add
+("lost");
+
+49 
+check
+(
+¬¿y
+, "[\"hello\",\"world\"]");
+
+52 
+SECTION
+("One double") {
+
+53 
+	g¬¿y
+.
+add
+(3.1415927);
+
+54 
+check
+(
+¬¿y
+, "[3.1415927]");
+
+57 
+SECTION
+("OneInteger") {
+
+58 
+	g¬¿y
+.
+add
+(1);
+
+60 
+check
+(
+¬¿y
+, "[1]");
+
+63 
+SECTION
+("TwoIntegers") {
+
+64 
+	g¬¿y
+.
+add
+(1);
+
+65 
+	g¬¿y
+.
+add
+(2);
+
+67 
+check
+(
+¬¿y
+, "[1,2]");
+
+70 
+SECTION
+("serialized(const char*)") {
+
+71 
+	g¬¿y
+.
+add
+(
+£rŸlized
+("{\"key\":\"value\"}"));
+
+73 
+check
+(
+¬¿y
+, "[{\"key\":\"value\"}]");
+
+76 
+SECTION
+("serialized(char*)") {
+
+77 
+	gtmp
+[] = "{\"key\":\"value\"}";
+
+78 
+	g¬¿y
+.
+add
+(
+£rŸlized
+(
+tmp
+));
+
+80 
+check
+(
+¬¿y
+, "[{\"key\":\"value\"}]");
+
+83 
+SECTION
+("OneIntegerOverCapacity") {
+
+84 
+	g¬¿y
+.
+add
+(1);
+
+85 
+	g¬¿y
+.
+add
+(2);
+
+86 
+	g¬¿y
+.
+add
+(3);
+
+88 
+check
+(
+¬¿y
+, "[1,2]");
+
+91 
+SECTION
+("OneTrue") {
+
+92 
+	g¬¿y
+.
+add
+(
+Œue
+);
+
+94 
+check
+(
+¬¿y
+, "[true]");
+
+97 
+SECTION
+("OneFalse") {
+
+98 
+	g¬¿y
+.
+add
+(
+çl£
+);
+
+100 
+check
+(
+¬¿y
+, "[false]");
+
+103 
+SECTION
+("TwoBooleans") {
+
+104 
+	g¬¿y
+.
+add
+(
+çl£
+);
+
+105 
+	g¬¿y
+.
+add
+(
+Œue
+);
+
+107 
+check
+(
+¬¿y
+, "[false,true]");
+
+110 
+SECTION
+("OneBooleanOverCapacity") {
+
+111 
+	g¬¿y
+.
+add
+(
+çl£
+);
+
+112 
+	g¬¿y
+.
+add
+(
+Œue
+);
+
+113 
+	g¬¿y
+.
+add
+(
+çl£
+);
+
+115 
+check
+(
+¬¿y
+, "[false,true]");
+
+118 
+SECTION
+("OneEmptyNestedArray") {
+
+119 
+	g¬¿y
+.
+ü—‹Ne¡edA¼ay
+();
+
+121 
+check
+(
+¬¿y
+, "[[]]");
+
+124 
+SECTION
+("OneEmptyNestedHash") {
+
+125 
+	g¬¿y
+.
+ü—‹Ne¡edObjeù
+();
+
+127 
+check
+(
+¬¿y
+, "[{}]");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$checkA¼ay
+(
+JsÚA¼ay
+ 
+¬¿y
+, 
+¡d
+::
+¡ršg
+ 
+ex³ùed
+) {
+
+9 
+¡d
+::
+¡ršg
+ 
+aùu®
+;
+
+10 
+size_t
+ 
+aùu®L’
+ = 
+	`£rŸlizeJsÚP»‰y
+(
+¬¿y
+, 
+aùu®
+);
+
+11 
+size_t
+ 
+m—su»dL’
+ = 
+	`m—su»JsÚP»‰y
+(
+¬¿y
+);
+
+12 
+	`CHECK
+(
+aùu®L’
+ =ð
+ex³ùed
+.
+	`size
+());
+
+13 
+	`CHECK
+(
+m—su»dL’
+ =ð
+ex³ùed
+.
+	`size
+());
+
+14 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+aùu®
+);
+
+15 
+	}
+}
+
+17 
+TEST_CASE
+("serializeJsonPretty(JsonArray)") {
+
+18 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+19 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+21 
+SECTION
+("Empty") {
+
+22 
+checkA¼ay
+(
+¬¿y
+, "[]");
+
+25 
+SECTION
+("OneElement") {
+
+26 
+	g¬¿y
+.
+add
+(1);
+
+28 
+checkA¼ay
+(
+¬¿y
+,
+
+34 
+SECTION
+("TwoElements") {
+
+35 
+	g¬¿y
+.
+add
+(1);
+
+36 
+	g¬¿y
+.
+add
+(2);
+
+38 
+checkA¼ay
+(
+¬¿y
+,
+
+45 
+SECTION
+("EmptyNestedArrays") {
+
+46 
+	g¬¿y
+.
+ü—‹Ne¡edA¼ay
+();
+
+47 
+	g¬¿y
+.
+ü—‹Ne¡edA¼ay
+();
+
+49 
+checkA¼ay
+(
+¬¿y
+,
+
+56 
+SECTION
+("NestedArrays") {
+
+57 
+JsÚA¼ay
+ 
+	gÃ¡ed1
+ = 
+¬¿y
+.
+ü—‹Ne¡edA¼ay
+();
+
+58 
+	gÃ¡ed1
+.
+add
+(1);
+
+59 
+	gÃ¡ed1
+.
+add
+(2);
+
+61 
+JsÚObjeù
+ 
+	gÃ¡ed2
+ = 
+¬¿y
+.
+ü—‹Ne¡edObjeù
+();
+
+62 
+	gÃ¡ed2
+["key"] = 3;
+
+64 
+checkA¼ay
+(
+¬¿y
+,
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<¡ršg
+>
+
+9 
+	$checkObjeù
+(cÚ¡ 
+JsÚObjeù
+ 
+obj
+, cÚ¡ 
+¡d
+::
+¡ršg
+ &
+ex³ùed
+) {
+
+10 
+aùu®
+[256];
+
+11 
+size_t
+ 
+aùu®L’
+ = 
+	`£rŸlizeJsÚ
+(
+obj
+, 
+aùu®
+);
+
+12 
+size_t
+ 
+m—su»dL’
+ = 
+	`m—su»JsÚ
+(
+obj
+);
+
+14 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+aùu®
+);
+
+15 
+	`REQUIRE
+(
+ex³ùed
+.
+	`size
+(è=ð
+aùu®L’
+);
+
+16 
+	`REQUIRE
+(
+ex³ùed
+.
+	`size
+(è=ð
+m—su»dL’
+);
+
+17 
+	}
+}
+
+19 
+TEST_CASE
+("serializeJson(JsonObject)") {
+
+20 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+21 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+23 
+SECTION
+("EmptyObject") {
+
+24 
+checkObjeù
+(
+obj
+, "{}");
+
+27 
+SECTION
+("TwoStrings") {
+
+28 
+	gobj
+["key1"] = "value1";
+
+29 
+	gobj
+["key2"] = "value2";
+
+31 
+checkObjeù
+(
+obj
+, "{\"key1\":\"value1\",\"key2\":\"value2\"}");
+
+34 
+SECTION
+("RemoveFirst") {
+
+35 
+	gobj
+["key1"] = "value1";
+
+36 
+	gobj
+["key2"] = "value2";
+
+37 
+	gobj
+.
+»move
+("key1");
+
+39 
+checkObjeù
+(
+obj
+, "{\"key2\":\"value2\"}");
+
+42 
+SECTION
+("RemoveLast") {
+
+43 
+	gobj
+["key1"] = "value1";
+
+44 
+	gobj
+["key2"] = "value2";
+
+45 
+	gobj
+.
+»move
+("key2");
+
+47 
+checkObjeù
+(
+obj
+, "{\"key1\":\"value1\"}");
+
+50 
+SECTION
+("RemoveUnexistingKey") {
+
+51 
+	gobj
+["key1"] = "value1";
+
+52 
+	gobj
+["key2"] = "value2";
+
+53 
+	gobj
+.
+»move
+("key3");
+
+55 
+checkObjeù
+(
+obj
+, "{\"key1\":\"value1\",\"key2\":\"value2\"}");
+
+58 
+SECTION
+("ReplaceExistingKey") {
+
+59 
+	gobj
+["key"] = "value1";
+
+60 
+	gobj
+["key"] = "value2";
+
+62 
+checkObjeù
+(
+obj
+, "{\"key\":\"value2\"}");
+
+65 
+SECTION
+("TwoIntegers") {
+
+66 
+	gobj
+["a"] = 1;
+
+67 
+	gobj
+["b"] = 2;
+
+68 
+checkObjeù
+(
+obj
+, "{\"a\":1,\"b\":2}");
+
+71 
+SECTION
+("serialized(const char*)") {
+
+72 
+	gobj
+["a"] = 
+£rŸlized
+("[1,2]");
+
+73 
+	gobj
+["b"] = 
+£rŸlized
+("[4,5]");
+
+74 
+checkObjeù
+(
+obj
+, "{\"a\":[1,2],\"b\":[4,5]}");
+
+77 
+SECTION
+("Two doubles") {
+
+78 
+	gobj
+["a"] = 12.34;
+
+79 
+	gobj
+["b"] = 56.78;
+
+80 
+checkObjeù
+(
+obj
+, "{\"a\":12.34,\"b\":56.78}");
+
+83 
+SECTION
+("TwoNull") {
+
+84 
+	gobj
+["a"] = 
+¡©ic_ÿ¡
+<*>(0);
+
+85 
+	gobj
+["b"] = 
+¡©ic_ÿ¡
+<*>(0);
+
+86 
+checkObjeù
+(
+obj
+, "{\"a\":null,\"b\":null}");
+
+89 
+SECTION
+("TwoBooleans") {
+
+90 
+	gobj
+["a"] = 
+Œue
+;
+
+91 
+	gobj
+["b"] = 
+çl£
+;
+
+92 
+checkObjeù
+(
+obj
+, "{\"a\":true,\"b\":false}");
+
+95 
+SECTION
+("ThreeNestedArrays") {
+
+96 
+DyÇmicJsÚDocum’t
+ 
+b
+(4096);
+
+97 
+DyÇmicJsÚDocum’t
+ 
+c
+(4096);
+
+99 
+	gobj
+.
+ü—‹Ne¡edA¼ay
+("a");
+
+100 
+	gobj
+["b"] = 
+b
+.
+to
+<
+JsÚA¼ay
+>();
+
+101 
+	gobj
+["c"] = 
+c
+.
+to
+<
+JsÚA¼ay
+>();
+
+103 
+checkObjeù
+(
+obj
+, "{\"a\":[],\"b\":[],\"c\":[]}");
+
+106 
+SECTION
+("ThreeNestedObjects") {
+
+107 
+DyÇmicJsÚDocum’t
+ 
+b
+(4096);
+
+108 
+DyÇmicJsÚDocum’t
+ 
+c
+(4096);
+
+110 
+	gobj
+.
+ü—‹Ne¡edObjeù
+("a");
+
+111 
+	gobj
+["b"] = 
+b
+.
+to
+<
+JsÚObjeù
+>();
+
+112 
+	gobj
+["c"] = 
+c
+.
+to
+<
+JsÚObjeù
+>();
+
+114 
+checkObjeù
+(
+obj
+, "{\"a\":{},\"b\":{},\"c\":{}}");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<¡ršg
+>
+
+9 
+	$checkObjeùP»‰y
+(cÚ¡ 
+JsÚObjeù
+ 
+obj
+,
+
+10 cÚ¡ 
+¡d
+::
+¡ršg
+ 
+ex³ùed
+) {
+
+11 
+jsÚ
+[256];
+
+13 
+size_t
+ 
+aùu®L’
+ = 
+	`£rŸlizeJsÚP»‰y
+(
+obj
+, 
+jsÚ
+);
+
+14 
+size_t
+ 
+m—su»dL’
+ = 
+	`m—su»JsÚP»‰y
+(
+obj
+);
+
+16 
+	`REQUIRE
+(
+jsÚ
+ =ð
+ex³ùed
+);
+
+17 
+	`REQUIRE
+(
+ex³ùed
+.
+	`size
+(è=ð
+aùu®L’
+);
+
+18 
+	`REQUIRE
+(
+ex³ùed
+.
+	`size
+(è=ð
+m—su»dL’
+);
+
+19 
+	}
+}
+
+21 
+TEST_CASE
+("serializeJsonPretty(JsonObject)") {
+
+22 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+23 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+25 
+SECTION
+("EmptyObject") {
+
+26 
+checkObjeùP»‰y
+(
+obj
+, "{}");
+
+29 
+SECTION
+("OneMember") {
+
+30 
+	gobj
+["key"] = "value";
+
+32 
+checkObjeùP»‰y
+(
+obj
+,
+
+38 
+SECTION
+("TwoMembers") {
+
+39 
+	gobj
+["key1"] = "value1";
+
+40 
+	gobj
+["key2"] = "value2";
+
+42 
+checkObjeùP»‰y
+(
+obj
+,
+
+49 
+SECTION
+("EmptyNestedContainers") {
+
+50 
+	gobj
+.
+ü—‹Ne¡edObjeù
+("key1");
+
+51 
+	gobj
+.
+ü—‹Ne¡edA¼ay
+("key2");
+
+53 
+checkObjeùP»‰y
+(
+obj
+,
+
+60 
+SECTION
+("NestedContainers") {
+
+61 
+JsÚObjeù
+ 
+	gÃ¡ed1
+ = 
+obj
+.
+ü—‹Ne¡edObjeù
+("key1");
+
+62 
+	gÃ¡ed1
+["a"] = 1;
+
+64 
+JsÚA¼ay
+ 
+	gÃ¡ed2
+ = 
+obj
+.
+ü—‹Ne¡edA¼ay
+("key2");
+
+65 
+	gÃ¡ed2
+.
+add
+(2);
+
+67 
+checkObjeùP»‰y
+(
+obj
+,
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<lim™s
+>
+
+9 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+10 
+	$check
+(
+T
+ 
+v®ue
+, cÚ¡ 
+¡d
+::
+¡ršg
+ &
+ex³ùed
+) {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+12 
+doc
+.
+to
+<
+JsÚV¬ŸÁ
+>().
+	`£t
+(
+v®ue
+);
+
+13 
+bufãr
+[256] = "";
+
+14 
+size_t
+ 
+»tuºV®ue
+ = 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+bufãr
+, (buffer));
+
+15 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+bufãr
+);
+
+16 
+	`REQUIRE
+(
+ex³ùed
+.
+	`size
+(è=ð
+»tuºV®ue
+);
+
+17 
+	}
+}
+
+19 
+TEST_CASE
+("serializeJson(JsonVariant)") {
+
+20 
+SECTION
+("Undefined") {
+
+21 
+check
+(
+JsÚV¬ŸÁ
+(), "null");
+
+24 
+SECTION
+("Null string") {
+
+25 
+check
+(
+¡©ic_ÿ¡
+<*>(0), "null");
+
+28 
+SECTION
+("const char*") {
+
+29 
+check
+("hello", "\"hello\"");
+
+32 
+SECTION
+("string") {
+
+33 
+check
+(
+¡d
+::
+¡ršg
+("hello"), "\"hello\"");
+
+35 
+SECTION
+("Escape quotation mark") {
+
+36 
+check
+(
+¡d
+::
+¡ršg
+("hello \"world\""), "\"hello \\\"world\\\"\"");
+
+39 
+SECTION
+("Escape„everse solidus") {
+
+40 
+check
+(
+¡d
+::
+¡ršg
+("hello\\world"), "\"hello\\\\world\"");
+
+43 
+SECTION
+("Don'tƒscape solidus") {
+
+44 
+check
+(
+¡d
+::
+¡ršg
+("fifty/fifty"), "\"fifty/fifty\"");
+
+47 
+SECTION
+("Escape backspace") {
+
+48 
+check
+(
+¡d
+::
+¡ršg
+("hello\bworld"), "\"hello\\bworld\"");
+
+51 
+SECTION
+("Escape formfeed") {
+
+52 
+check
+(
+¡d
+::
+¡ršg
+("hello\fworld"), "\"hello\\fworld\"");
+
+55 
+SECTION
+("Escape†inefeed") {
+
+56 
+check
+(
+¡d
+::
+¡ršg
+("hello\nworld"), "\"hello\\nworld\"");
+
+59 
+SECTION
+("Escape carriage„eturn") {
+
+60 
+check
+(
+¡d
+::
+¡ršg
+("hello\rworld"), "\"hello\\rworld\"");
+
+63 
+SECTION
+("Escape�ab") {
+
+64 
+check
+(
+¡d
+::
+¡ršg
+("hello\tworld"), "\"hello\\tworld\"");
+
+68 
+SECTION
+("SerializedValue<const char*>") {
+
+69 
+check
+(
+£rŸlized
+("[1,2]"), "[1,2]");
+
+72 
+SECTION
+("SerializedValue<std::string>") {
+
+73 
+check
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("[1,2]")), "[1,2]");
+
+76 
+SECTION
+("Double") {
+
+77 
+check
+(3.1415927, "3.1415927");
+
+80 
+SECTION
+("Zero") {
+
+81 
+check
+(0, "0");
+
+84 
+SECTION
+("Integer") {
+
+85 
+check
+(42, "42");
+
+88 
+SECTION
+("NegativeLong") {
+
+89 
+check
+(-42, "-42");
+
+92 
+SECTION
+("UnsignedLong") {
+
+93 
+check
+(4294967295UL, "4294967295");
+
+96 
+SECTION
+("True") {
+
+97 
+check
+(
+Œue
+, "true");
+
+100 
+SECTION
+("OneFalse") {
+
+101 
+check
+(
+çl£
+, "false");
+
+104 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+105 
+SECTION
+("NegativeInt64") {
+
+106 
+check
+(-9223372036854775807 - 1, "-9223372036854775808");
+
+109 
+SECTION
+("PositiveInt64") {
+
+110 
+check
+(9223372036854775807, "9223372036854775807");
+
+113 
+SECTION
+("UInt64") {
+
+114 
+check
+(18446744073709551615U, "18446744073709551615");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/misc.cpp
+
+1 
+	~<ArdušoJsÚ.h
+>
+
+2 
+	~<ÿtch.hµ
+>
+
+3 
+	~<lim™s
+>
+
+5 
+TEST_CASE
+("serializeJson(MemberProxy)") {
+
+6 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+7 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":42}");
+
+8 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+9 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+11 
+£rŸlizeJsÚ
+(
+obj
+["h–lo"], 
+»suÉ
+);
+
+13 
+REQUIRE
+(
+»suÉ
+ == "42");
+
+16 
+TEST_CASE
+("serializeJson(ElementProxy)") {
+
+17 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+18 
+de£rŸlizeJsÚ
+(
+doc
+, "[42]");
+
+19 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+20 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+22 
+£rŸlizeJsÚ
+(
+¬r
+[0], 
+»suÉ
+);
+
+24 
+REQUIRE
+(
+»suÉ
+ == "42");
+
+27 
+TEST_CASE
+("serializeJson(JsonVariantSubscript)") {
+
+28 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+29 
+de£rŸlizeJsÚ
+(
+doc
+, "[42]");
+
+30 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+as
+<JsonVariant>();
+
+31 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+33 
+£rŸlizeJsÚ
+(
+v¬
+[0], 
+»suÉ
+);
+
+35 
+REQUIRE
+(
+»suÉ
+ == "42");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<s¡»am
+>
+
+9 
+TEST_CASE
+("operator<<(std::ostream)") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+	g¡d
+::
+o¡ršg¡»am
+ 
+os
+;
+
+13 
+SECTION
+("JsonVariant containing false") {
+
+14 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+16 
+	gv¬ŸÁ
+.
+£t
+(
+çl£
+);
+
+17 
+	gos
+ << 
+	gv¬ŸÁ
+;
+
+19 
+REQUIRE
+("çl£" =ð
+os
+.
+¡r
+());
+
+22 
+SECTION
+("JsonVariant containing string") {
+
+23 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+25 
+	gv¬ŸÁ
+.
+£t
+("coucou");
+
+26 
+	gos
+ << 
+	gv¬ŸÁ
+;
+
+28 
+REQUIRE
+("\"coucou\"" =ð
+os
+.
+¡r
+());
+
+31 
+SECTION
+("JsonObject") {
+
+32 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+doc
+.
+to
+<JsonObject>();
+
+33 
+	gobjeù
+["key"] = "value";
+
+35 
+	gos
+ << 
+	gobjeù
+;
+
+37 
+REQUIRE
+("{\"key\":\"v®ue\"}" =ð
+os
+.
+¡r
+());
+
+40 
+SECTION
+("MemberProxy") {
+
+41 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+doc
+.
+to
+<JsonObject>();
+
+42 
+	gobjeù
+["key"] = "value";
+
+44 
+	gos
+ << 
+	gobjeù
+["key"];
+
+46 
+REQUIRE
+("\"v®ue\"" =ð
+os
+.
+¡r
+());
+
+49 
+SECTION
+("JsonArray") {
+
+50 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+51 
+	g¬¿y
+.
+add
+("value");
+
+53 
+	gos
+ << 
+	g¬¿y
+;
+
+55 
+REQUIRE
+("[\"v®ue\"]" =ð
+os
+.
+¡r
+());
+
+58 
+SECTION
+("ElementProxy") {
+
+59 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+60 
+	g¬¿y
+.
+add
+("value");
+
+62 
+	gos
+ << 
+	g¬¿y
+[0];
+
+64 
+REQUIRE
+("\"v®ue\"" =ð
+os
+.
+¡r
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("serialize JsonArray�o std::string") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+11 
+	g¬¿y
+.
+add
+(4);
+
+12 
+	g¬¿y
+.
+add
+(2);
+
+14 
+SECTION
+("serializeJson()") {
+
+15 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+16 
+£rŸlizeJsÚ
+(
+¬¿y
+, 
+jsÚ
+);
+
+18 
+REQUIRE
+("[4,2]" =ð
+jsÚ
+);
+
+21 
+SECTION
+("serializeJsonPretty") {
+
+22 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+23 
+£rŸlizeJsÚP»‰y
+(
+¬¿y
+, 
+jsÚ
+);
+
+25 
+REQUIRE
+("[\r\À 4,\r\À 2\r\n]" =ð
+jsÚ
+);
+
+29 
+TEST_CASE
+("serialize JsonObject�o std::string") {
+
+30 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+31 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+32 
+	gobj
+["key"] = "value";
+
+34 
+SECTION
+("object") {
+
+35 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+36 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+38 
+REQUIRE
+("{\"key\":\"v®ue\"}" =ð
+jsÚ
+);
+
+41 
+SECTION
+("serializeJsonPretty") {
+
+42 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+43 
+£rŸlizeJsÚP»‰y
+(
+doc
+, 
+jsÚ
+);
+
+45 
+REQUIRE
+("{\r\À \"key\": \"v®ue\"\r\n}" =ð
+jsÚ
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/add.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+TEST_CASE
+("JsonVariant::add()") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+13 
+SECTION
+("integer") {
+
+14 
+	gv¬
+.
+add
+(42);
+
+16 
+REQUIRE
+(
+v¬
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[42]");
+
+19 
+SECTION
+("const char*") {
+
+20 
+	gv¬
+.
+add
+("hello");
+
+22 
+REQUIRE
+(
+v¬
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[\"hello\"]");
+
+25 
+SECTION
+("std::string") {
+
+26 
+	gv¬
+.
+add
+(
+¡d
+::
+¡ršg
+("hello"));
+
+28 
+REQUIRE
+(
+v¬
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[\"hello\"]");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/as.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gmy
+ {
+
+10 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+isšf
+;
+
+13 
+TEST_CASE
+("JsonVariant::as()") {
+
+14 cÚ¡ * 
+	gnuÎ
+ = 0;
+
+16 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+17 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+19 
+SECTION
+("not set") {
+
+20 
+REQUIRE
+(
+çl£
+ =ð
+v¬ŸÁ
+.
+as
+<
+boÞ
+>());
+
+21 
+REQUIRE
+(0 =ð
+v¬ŸÁ
+.
+as
+<>());
+
+22 
+REQUIRE
+(0.0à=ð
+v¬ŸÁ
+.
+as
+<>());
+
+23 
+REQUIRE
+(0 =ð
+v¬ŸÁ
+.
+as
+<*>());
+
+24 
+REQUIRE
+("nuÎ" =ð
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>());
+
+27 
+SECTION
+("set(4.2)") {
+
+28 
+	gv¬ŸÁ
+.
+£t
+(4.2);
+
+30 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>());
+
+31 
+REQUIRE
+(0 =ð
+v¬ŸÁ
+.
+as
+<const *>());
+
+32 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "4.2");
+
+33 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 4L);
+
+34 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 4U);
+
+37 
+SECTION
+("set(0.0)") {
+
+38 
+	gv¬ŸÁ
+.
+£t
+(0.0);
+
+40 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+çl£
+);
+
+41 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0L);
+
+44 
+SECTION
+("set(false)") {
+
+45 
+	gv¬ŸÁ
+.
+£t
+(
+çl£
+);
+
+47 
+REQUIRE
+(
+çl£
+ =ð
+v¬ŸÁ
+.
+as
+<
+boÞ
+>());
+
+48 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0.0);
+
+49 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0L);
+
+50 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "false");
+
+53 
+SECTION
+("set(true)") {
+
+54 
+	gv¬ŸÁ
+.
+£t
+(
+Œue
+);
+
+56 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>());
+
+57 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 1.0);
+
+58 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 1L);
+
+59 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "true");
+
+62 
+SECTION
+("set(42L)") {
+
+63 
+	gv¬ŸÁ
+.
+£t
+(42L);
+
+65 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+66 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 42.0);
+
+67 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "42");
+
+70 
+SECTION
+("set(-42L)") {
+
+71 
+	gv¬ŸÁ
+.
+£t
+(-42L);
+
+73 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == -42.0);
+
+74 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "-42");
+
+77 
+SECTION
+("set(0L)") {
+
+78 
+	gv¬ŸÁ
+.
+£t
+(0L);
+
+80 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+çl£
+);
+
+81 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0.0);
+
+84 
+SECTION
+("set(null)") {
+
+85 
+	gv¬ŸÁ
+.
+£t
+(
+nuÎ
+);
+
+87 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+çl£
+);
+
+88 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0.0);
+
+89 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0L);
+
+90 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "null");
+
+93 
+SECTION
+("set(\"42\")") {
+
+94 
+	gv¬ŸÁ
+.
+£t
+("42");
+
+96 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 42L);
+
+99 
+SECTION
+("set(\"hello\")") {
+
+100 
+	gv¬ŸÁ
+.
+£t
+("hello");
+
+102 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+103 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0L);
+
+104 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<cÚ¡ *>(è=ð
+¡d
+::
+¡ršg
+("hello"));
+
+105 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<*>(è=ð
+¡d
+::
+¡ršg
+("hello"));
+
+106 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == std::string("hello"));
+
+109 
+SECTION
+("set(std::string(\"4.2\"))") {
+
+110 
+	gv¬ŸÁ
+.
+£t
+(
+¡d
+::
+¡ršg
+("4.2"));
+
+112 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+113 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 4L);
+
+114 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 4.2);
+
+115 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<*>(è=ð
+¡d
+::
+¡ršg
+("4.2"));
+
+116 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == std::string("4.2"));
+
+119 
+SECTION
+("set(\"true\")") {
+
+120 
+	gv¬ŸÁ
+.
+£t
+("true");
+
+122 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+123 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0);
+
+126 
+SECTION
+("set(-1e300)") {
+
+127 
+	gv¬ŸÁ
+.
+£t
+(-1e300);
+
+129 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+130 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == -1e300);
+
+131 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() < 0);
+
+132 
+REQUIRE
+(
+my
+::
+isšf
+(
+v¬ŸÁ
+.
+as
+<>()));
+
+135 
+SECTION
+("set(1e300)") {
+
+136 
+	gv¬ŸÁ
+.
+£t
+(1e300);
+
+138 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+139 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 1e300);
+
+140 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() > 0);
+
+141 
+REQUIRE
+(
+my
+::
+isšf
+(
+v¬ŸÁ
+.
+as
+<>()));
+
+144 
+SECTION
+("set(1e-300)") {
+
+145 
+	gv¬ŸÁ
+.
+£t
+(1e-300);
+
+147 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+148 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 1e-300);
+
+149 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0);
+
+152 
+SECTION
+("to<JsonObject>()") {
+
+153 
+JsÚObjeù
+ 
+	gobj
+ = 
+v¬ŸÁ
+.
+to
+<JsonObject>();
+
+154 
+	gobj
+["key"] = "value";
+
+156 
+SECTION
+("as<bool>()") {
+
+157 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+160 
+SECTION
+("as<std::string>()") {
+
+161 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == std::string("{\"key\":\"value\"}"));
+
+164 
+SECTION
+("ObjectAsJsonObject") {
+
+165 
+JsÚObjeù
+ 
+	go
+ = 
+v¬ŸÁ
+.
+as
+<JsonObject>();
+
+166 
+REQUIRE
+(
+o
+.
+size
+() == 1);
+
+167 
+REQUIRE
+(
+o
+["key"] =ð
+¡d
+::
+¡ršg
+("value"));
+
+171 
+SECTION
+("to<JsonArray>()") {
+
+172 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+v¬ŸÁ
+.
+to
+<JsonArray>();
+
+173 
+	g¬r
+.
+add
+(4);
+
+174 
+	g¬r
+.
+add
+(2);
+
+176 
+SECTION
+("as<bool>()") {
+
+177 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+180 
+SECTION
+("as<std::string>()") {
+
+181 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+¡d
+::
+¡ršg
+>() == std::string("[4,2]"));
+
+184 
+SECTION
+("as<JsonArray>()") {
+
+185 
+JsÚA¼ay
+ 
+	ga
+ = 
+v¬ŸÁ
+.
+as
+<JsonArray>();
+
+186 
+REQUIRE
+(
+a
+.
+size
+() == 2);
+
+187 
+REQUIRE
+(
+a
+[0] == 4);
+
+188 
+REQUIRE
+(
+a
+[1] == 2);
+
+192 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+193 
+SECTION
+("Smallest int64‚egative") {
+
+194 
+	gv¬ŸÁ
+.
+£t
+("-9223372036854775808");
+
+195 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == -9223372036854775807 - 1);
+
+198 
+SECTION
+("Biggerst int64…ositive") {
+
+199 
+	gv¬ŸÁ
+.
+£t
+("9223372036854775807");
+
+200 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 9223372036854775807);
+
+204 
+SECTION
+("should work on JsonVariantConst") {
+
+205 
+	gv¬ŸÁ
+.
+£t
+("hello");
+
+207 
+JsÚV¬ŸÁCÚ¡
+ 
+	gcv¬
+ = 
+v¬ŸÁ
+;
+
+209 
+REQUIRE
+(
+cv¬
+.
+as
+<
+boÞ
+>(è=ð
+Œue
+);
+
+210 
+REQUIRE
+(
+cv¬
+.
+as
+<>() == 0L);
+
+211 
+REQUIRE
+(
+cv¬
+.
+as
+<cÚ¡ *>(è=ð
+¡d
+::
+¡ršg
+("hello"));
+
+212 
+REQUIRE
+(
+cv¬
+.
+as
+<*>(è=ð
+¡d
+::
+¡ršg
+("hello"));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/clear.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+TEST_CASE
+("JsonVariant::clear()") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+13 
+SECTION
+("size goes back�o zero") {
+
+14 
+	gv¬
+.
+add
+(42);
+
+15 
+	gv¬
+.
+þ—r
+();
+
+17 
+REQUIRE
+(
+v¬
+.
+size
+() == 0);
+
+20 
+SECTION
+("isNull()„eturn�rue") {
+
+21 
+	gv¬
+.
+add
+("hello");
+
+22 
+	gv¬
+.
+þ—r
+();
+
+24 
+REQUIRE
+(
+v¬
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/compare.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+9 
+	$checkEqu®s
+(
+T
+ 
+a
+, T 
+b
+) {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+11 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+12 
+v¬ŸÁ
+.
+	`£t
+(
+a
+);
+
+14 
+	`REQUIRE
+(
+b
+ =ð
+v¬ŸÁ
+);
+
+15 
+	`REQUIRE
+(
+v¬ŸÁ
+ =ð
+b
+);
+
+16 
+	`REQUIRE
+(
+b
+ <ð
+v¬ŸÁ
+);
+
+17 
+	`REQUIRE
+(
+v¬ŸÁ
+ <ð
+b
+);
+
+18 
+	`REQUIRE
+(
+b
+ >ð
+v¬ŸÁ
+);
+
+19 
+	`REQUIRE
+(
+v¬ŸÁ
+ >ð
+b
+);
+
+21 
+	`REQUIRE_FALSE
+(
+b
+ !ð
+v¬ŸÁ
+);
+
+22 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ !ð
+b
+);
+
+23 
+	`REQUIRE_FALSE
+(
+b
+ > 
+v¬ŸÁ
+);
+
+24 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ > 
+b
+);
+
+25 
+	`REQUIRE_FALSE
+(
+b
+ < 
+v¬ŸÁ
+);
+
+26 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ < 
+b
+);
+
+27 
+	}
+}
+
+29 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+30 
+	$checkG»©”
+(
+T
+ 
+a
+, T 
+b
+) {
+
+31 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+32 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+33 
+v¬ŸÁ
+.
+	`£t
+(
+a
+);
+
+35 
+	`REQUIRE
+(
+v¬ŸÁ
+ > 
+b
+);
+
+36 
+	`REQUIRE
+(
+b
+ < 
+v¬ŸÁ
+);
+
+37 
+	`REQUIRE
+(
+v¬ŸÁ
+ !ð
+b
+);
+
+38 
+	`REQUIRE
+(
+b
+ !ð
+v¬ŸÁ
+);
+
+40 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ < 
+b
+);
+
+41 
+	`REQUIRE_FALSE
+(
+b
+ > 
+v¬ŸÁ
+);
+
+42 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ =ð
+b
+);
+
+43 
+	`REQUIRE_FALSE
+(
+b
+ =ð
+v¬ŸÁ
+);
+
+44 
+	}
+}
+
+46 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+47 
+	$checkLow”
+(
+T
+ 
+a
+, T 
+b
+) {
+
+48 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+49 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+50 
+v¬ŸÁ
+.
+	`£t
+(
+a
+);
+
+52 
+	`REQUIRE
+(
+v¬ŸÁ
+ < 
+b
+);
+
+53 
+	`REQUIRE
+(
+b
+ > 
+v¬ŸÁ
+);
+
+54 
+	`REQUIRE
+(
+v¬ŸÁ
+ !ð
+b
+);
+
+55 
+	`REQUIRE
+(
+b
+ !ð
+v¬ŸÁ
+);
+
+57 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ > 
+b
+);
+
+58 
+	`REQUIRE_FALSE
+(
+b
+ < 
+v¬ŸÁ
+);
+
+59 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ =ð
+b
+);
+
+60 
+	`REQUIRE_FALSE
+(
+b
+ =ð
+v¬ŸÁ
+);
+
+61 
+	}
+}
+
+63 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+64 
+	$checkCom·risÚs
+(
+T
+ 
+low
+, T 
+mid
+, T 
+high
+) {
+
+65 
+	`checkEqu®s
+(
+mid
+, mid);
+
+66 
+	`checkG»©”
+(
+mid
+, 
+low
+);
+
+67 
+	`checkLow”
+(
+mid
+, 
+high
+);
+
+68 
+	}
+}
+
+70 
+TEST_CASE
+("JsonVariant comparisons") {
+
+71 cÚ¡ * 
+	gnuÎ
+ = 0;
+
+73 
+SECTION
+("Double") {
+
+74 
+	gcheckCom·risÚs
+<>(123.44, 123.45, 123.46);
+
+77 
+SECTION
+("Float") {
+
+78 
+	gcheckCom·risÚs
+<>(123.44f, 123.45f, 123.46f);
+
+81 
+SECTION
+("SChar") {
+
+82 
+	gcheckCom·risÚs
+<signed >(122, 123, 124);
+
+85 
+SECTION
+("SInt") {
+
+86 
+	gcheckCom·risÚs
+<signed >(122, 123, 124);
+
+89 
+SECTION
+("SLong") {
+
+90 
+	gcheckCom·risÚs
+<signed >(122L, 123L, 124L);
+
+93 
+SECTION
+("SShort") {
+
+94 
+	gcheckCom·risÚs
+<signed >(122, 123, 124);
+
+97 
+SECTION
+("UChar") {
+
+98 
+	gcheckCom·risÚs
+<>(122, 123, 124);
+
+101 
+SECTION
+("UInt") {
+
+102 
+	gcheckCom·risÚs
+<>(122, 123, 124);
+
+105 
+SECTION
+("ULong") {
+
+106 
+	gcheckCom·risÚs
+<>(122L, 123L, 124L);
+
+109 
+SECTION
+("UShort") {
+
+110 
+	gcheckCom·risÚs
+<>(122, 123, 124);
+
+113 
+SECTION
+("null") {
+
+114 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+115 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+116 
+	gv¬ŸÁ
+.
+£t
+(
+nuÎ
+);
+
+118 
+REQUIRE
+(
+v¬ŸÁ
+ == variant);
+
+119 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ != variant);
+
+121 
+REQUIRE
+(
+v¬ŸÁ
+ =ð
+nuÎ
+);
+
+122 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ !ð
+nuÎ
+);
+
+124 
+REQUIRE
+(
+v¬ŸÁ
+ != "null");
+
+125 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ == "null");
+
+128 
+SECTION
+("StringLiteral") {
+
+129 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+130 
+de£rŸlizeJsÚ
+(
+doc
+, "\"hello\"");
+
+131 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+as
+<JsonVariant>();
+
+133 
+REQUIRE
+(
+v¬ŸÁ
+ == variant);
+
+134 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ != variant);
+
+136 
+REQUIRE
+(
+v¬ŸÁ
+ == "hello");
+
+137 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ != "hello");
+
+139 
+REQUIRE
+(
+v¬ŸÁ
+ != "world");
+
+140 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ == "world");
+
+142 
+REQUIRE
+(
+v¬ŸÁ
+ !ð
+nuÎ
+);
+
+143 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ =ð
+nuÎ
+);
+
+145 
+REQUIRE
+("h–lo" =ð
+v¬ŸÁ
+);
+
+146 
+REQUIRE_FALSE
+("h–lo" !ð
+v¬ŸÁ
+);
+
+148 
+REQUIRE
+("wÜld" !ð
+v¬ŸÁ
+);
+
+149 
+REQUIRE_FALSE
+("wÜld" =ð
+v¬ŸÁ
+);
+
+151 
+REQUIRE
+(
+nuÎ
+ !ð
+v¬ŸÁ
+);
+
+152 
+REQUIRE_FALSE
+(
+nuÎ
+ =ð
+v¬ŸÁ
+);
+
+155 
+SECTION
+("String") {
+
+156 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+157 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+158 
+	gv¬ŸÁ
+.
+£t
+("hello");
+
+160 
+REQUIRE
+(
+v¬ŸÁ
+ == variant);
+
+161 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ != variant);
+
+163 
+REQUIRE
+(
+v¬ŸÁ
+ =ð
+¡d
+::
+¡ršg
+("hello"));
+
+164 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ !ð
+¡d
+::
+¡ršg
+("hello"));
+
+166 
+REQUIRE
+(
+v¬ŸÁ
+ !ð
+¡d
+::
+¡ršg
+("world"));
+
+167 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ =ð
+¡d
+::
+¡ršg
+("world"));
+
+169 
+REQUIRE
+(
+v¬ŸÁ
+ !ð
+nuÎ
+);
+
+170 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ =ð
+nuÎ
+);
+
+172 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("h–lo"è=ð
+v¬ŸÁ
+);
+
+173 
+REQUIRE_FALSE
+(
+¡d
+::
+¡ršg
+("h–lo"è!ð
+v¬ŸÁ
+);
+
+175 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è!ð
+v¬ŸÁ
+);
+
+176 
+REQUIRE_FALSE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬ŸÁ
+);
+
+178 
+REQUIRE
+(
+nuÎ
+ !ð
+v¬ŸÁ
+);
+
+179 
+REQUIRE_FALSE
+(
+nuÎ
+ =ð
+v¬ŸÁ
+);
+
+182 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+183 
+SECTION
+("VLAƒquals") {
+
+184 
+	gi
+ = 16;
+
+185 
+	gvÏ
+[
+i
+];
+
+186 
+¡rýy
+(
+vÏ
+, "hello");
+
+188 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+189 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+190 
+	gv¬ŸÁ
+.
+£t
+("hello");
+
+192 
+REQUIRE
+((
+vÏ
+ =ð
+v¬ŸÁ
+));
+
+193 
+REQUIRE
+((
+v¬ŸÁ
+ =ð
+vÏ
+));
+
+194 
+REQUIRE_FALSE
+((
+vÏ
+ !ð
+v¬ŸÁ
+));
+
+195 
+REQUIRE_FALSE
+((
+v¬ŸÁ
+ !ð
+vÏ
+));
+
+198 
+SECTION
+("VLA differs") {
+
+199 
+	gi
+ = 16;
+
+200 
+	gvÏ
+[
+i
+];
+
+201 
+¡rýy
+(
+vÏ
+, "hello");
+
+203 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+204 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+205 
+	gv¬ŸÁ
+.
+£t
+("world");
+
+207 
+REQUIRE
+((
+vÏ
+ !ð
+v¬ŸÁ
+));
+
+208 
+REQUIRE
+((
+v¬ŸÁ
+ !ð
+vÏ
+));
+
+209 
+REQUIRE_FALSE
+((
+vÏ
+ =ð
+v¬ŸÁ
+));
+
+210 
+REQUIRE_FALSE
+((
+v¬ŸÁ
+ =ð
+vÏ
+));
+
+214 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096), 
+doc2
+(4096), 
+doc3
+(4096);
+
+215 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ1
+ = 
+doc1
+.
+to
+<JsonVariant>();
+
+216 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ2
+ = 
+doc2
+.
+to
+<JsonVariant>();
+
+217 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ3
+ = 
+doc3
+.
+to
+<JsonVariant>();
+
+219 
+SECTION
+("Variants containing integers") {
+
+220 
+	gv¬ŸÁ1
+.
+£t
+(42);
+
+221 
+	gv¬ŸÁ2
+.
+£t
+(42);
+
+222 
+	gv¬ŸÁ3
+.
+£t
+(666);
+
+224 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+225 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+227 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+228 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+231 
+SECTION
+("Variants containing†inked strings") {
+
+233 
+	gh–lo1
+[] = "hello";
+
+234 
+	gh–lo2
+[] = "hello";
+
+235 
+REQUIRE
+(
+h–lo1
+ !ð
+h–lo2
+);
+
+237 
+	gv¬ŸÁ1
+.
+£t
+(
+h–lo1
+);
+
+238 
+	gv¬ŸÁ2
+.
+£t
+(
+h–lo2
+);
+
+239 
+	gv¬ŸÁ3
+.
+£t
+("world");
+
+241 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+242 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+244 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+245 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+248 
+SECTION
+("Variants containing owned strings") {
+
+249 
+	gv¬ŸÁ1
+.
+£t
+(
+¡d
+::
+¡ršg
+("hello"));
+
+250 
+	gv¬ŸÁ2
+.
+£t
+(
+¡d
+::
+¡ršg
+("hello"));
+
+251 
+	gv¬ŸÁ3
+.
+£t
+(
+¡d
+::
+¡ršg
+("world"));
+
+253 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+254 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+256 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+257 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+260 
+SECTION
+("Variants containing†inked„aws") {
+
+262 
+	gh–lo1
+[] = "hello";
+
+263 
+	gh–lo2
+[] = "hello";
+
+264 
+REQUIRE
+(
+h–lo1
+ !ð
+h–lo2
+);
+
+266 
+	gv¬ŸÁ1
+.
+£t
+(
+£rŸlized
+(
+h–lo1
+));
+
+267 
+	gv¬ŸÁ2
+.
+£t
+(
+£rŸlized
+(
+h–lo2
+));
+
+268 
+	gv¬ŸÁ3
+.
+£t
+(
+£rŸlized
+("world"));
+
+270 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+271 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+273 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+274 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+277 
+SECTION
+("Variants containing owned„aws") {
+
+278 
+	gv¬ŸÁ1
+.
+£t
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("hello")));
+
+279 
+	gv¬ŸÁ2
+.
+£t
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("hello")));
+
+280 
+	gv¬ŸÁ3
+.
+£t
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("world")));
+
+282 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+283 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+285 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+286 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+289 
+SECTION
+("Variants containing mixed strings (issue #1051)") {
+
+290 
+	gv¬ŸÁ1
+.
+£t
+("hello");
+
+291 
+	gv¬ŸÁ2
+.
+£t
+(
+¡d
+::
+¡ršg
+("hello"));
+
+293 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+294 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+296 
+REQUIRE
+(
+v¬ŸÁ2
+ =ð
+v¬ŸÁ1
+);
+
+297 
+REQUIRE_FALSE
+(
+v¬ŸÁ2
+ !ð
+v¬ŸÁ1
+);
+
+300 
+SECTION
+("Variants containing double") {
+
+301 
+	gv¬ŸÁ1
+.
+£t
+(42.0);
+
+302 
+	gv¬ŸÁ2
+.
+£t
+(42.0);
+
+303 
+	gv¬ŸÁ3
+.
+£t
+(666.0);
+
+305 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+306 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+308 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+309 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+312 
+SECTION
+("BoolInVariant") {
+
+313 
+	gv¬ŸÁ1
+.
+£t
+(
+Œue
+);
+
+314 
+	gv¬ŸÁ2
+.
+£t
+(
+Œue
+);
+
+315 
+	gv¬ŸÁ3
+.
+£t
+(
+çl£
+);
+
+317 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+318 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+320 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+321 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+324 
+SECTION
+("ArrayInVariant") {
+
+325 
+JsÚA¼ay
+ 
+	g¬¿y1
+ = 
+v¬ŸÁ1
+.
+to
+<JsonArray>();
+
+326 
+JsÚA¼ay
+ 
+	g¬¿y2
+ = 
+v¬ŸÁ2
+.
+to
+<JsonArray>();
+
+328 
+	g¬¿y1
+.
+add
+(42);
+
+329 
+	g¬¿y2
+.
+add
+(42);
+
+331 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+332 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+334 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+335 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+338 
+SECTION
+("ObjectInVariant") {
+
+339 
+JsÚObjeù
+ 
+	gobj1
+ = 
+v¬ŸÁ1
+.
+to
+<JsonObject>();
+
+340 
+JsÚObjeù
+ 
+	gobj2
+ = 
+v¬ŸÁ2
+.
+to
+<JsonObject>();
+
+342 
+	gobj1
+["hello"] = "world";
+
+343 
+	gobj2
+["hello"] = "world";
+
+345 
+REQUIRE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ2
+);
+
+346 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ2
+);
+
+348 
+REQUIRE
+(
+v¬ŸÁ1
+ !ð
+v¬ŸÁ3
+);
+
+349 
+REQUIRE_FALSE
+(
+v¬ŸÁ1
+ =ð
+v¬ŸÁ3
+);
+
+353 þas 
+	cV¬ŸÁCom·risiÚFixtu»
+ {
+
+354 
+	m´iv©e
+:
+
+355 
+S�ticJsÚDocum’t
+<256> 
+doc
+;
+
+356 
+JsÚV¬ŸÁ
+ 
+	mv¬ŸÁ
+;
+
+358 
+	mpublic
+:
+
+359 
+	$V¬ŸÁCom·risiÚFixtu»
+(è: 
+	`v¬ŸÁ
+(
+doc
+.
+to
+<
+JsÚV¬ŸÁ
+>()) {}
+
+361 
+´Ùeùed
+:
+
+362 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+363 
+	$£tV®ue
+(cÚ¡ 
+T
+& 
+v®ue
+) {
+
+364 
+v¬ŸÁ
+.
+	`£t
+(
+v®ue
+);
+
+365 
+	}
+}
+
+367 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+368 
+	$as£¹Equ®sTo
+(cÚ¡ 
+T
+& 
+v®ue
+) {
+
+369 
+	`REQUIRE
+(
+v¬ŸÁ
+ =ð
+v®ue
+);
+
+370 
+	`REQUIRE
+(
+v®ue
+ =ð
+v¬ŸÁ
+);
+
+372 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ !ð
+v®ue
+);
+
+373 
+	`REQUIRE_FALSE
+(
+v®ue
+ !ð
+v¬ŸÁ
+);
+
+374 
+	}
+}
+
+376 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+377 
+	$as£¹DifãrsFrom
+(cÚ¡ 
+T
+& 
+v®ue
+) {
+
+378 
+	`REQUIRE
+(
+v¬ŸÁ
+ !ð
+v®ue
+);
+
+379 
+	`REQUIRE
+(
+v®ue
+ !ð
+v¬ŸÁ
+);
+
+381 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ =ð
+v®ue
+);
+
+382 
+	`REQUIRE_FALSE
+(
+v®ue
+ =ð
+v¬ŸÁ
+);
+
+383 
+	}
+}
+
+385 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+386 
+	$as£¹G»©”Thª
+(cÚ¡ 
+T
+& 
+v®ue
+) {
+
+387 
+	`REQUIRE
+((
+v¬ŸÁ
+ > 
+v®ue
+));
+
+388 
+	`REQUIRE
+((
+v¬ŸÁ
+ >ð
+v®ue
+));
+
+389 
+	`REQUIRE
+(
+v®ue
+ < 
+v¬ŸÁ
+);
+
+390 
+	`REQUIRE
+(
+v®ue
+ <ð
+v¬ŸÁ
+);
+
+392 
+	`REQUIRE_FALSE
+((
+v¬ŸÁ
+ < 
+v®ue
+));
+
+393 
+	`REQUIRE_FALSE
+((
+v¬ŸÁ
+ <ð
+v®ue
+));
+
+394 
+	`REQUIRE_FALSE
+(
+v®ue
+ > 
+v¬ŸÁ
+);
+
+395 
+	`REQUIRE_FALSE
+(
+v®ue
+ >ð
+v¬ŸÁ
+);
+
+396 
+	}
+}
+
+398 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+399 
+	$as£¹Low”Thª
+(cÚ¡ 
+T
+& 
+v®ue
+) {
+
+400 
+	`REQUIRE
+(
+v¬ŸÁ
+ < 
+v®ue
+);
+
+401 
+	`REQUIRE
+(
+v¬ŸÁ
+ <ð
+v®ue
+);
+
+402 
+	`REQUIRE
+(
+v®ue
+ > 
+v¬ŸÁ
+);
+
+403 
+	`REQUIRE
+(
+v®ue
+ >ð
+v¬ŸÁ
+);
+
+405 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ > 
+v®ue
+);
+
+406 
+	`REQUIRE_FALSE
+(
+v¬ŸÁ
+ >ð
+v®ue
+);
+
+407 
+	`REQUIRE_FALSE
+(
+v®ue
+ < 
+v¬ŸÁ
+);
+
+408 
+	`REQUIRE_FALSE
+(
+v®ue
+ <ð
+v¬ŸÁ
+);
+
+409 
+	}
+}
+
+412 
+TEST_CASE_METHOD
+(
+V¬ŸÁCom·risiÚFixtu»
+,
+
+414 
+SECTION
+("null") {
+
+415 
+as£¹DifãrsFrom
+(3);
+
+416 
+as£¹DifãrsFrom
+("world");
+
+419 
+SECTION
+("string") {
+
+420 
+£tV®ue
+("hello");
+
+421 
+as£¹Equ®sTo
+("hello");
+
+422 
+as£¹DifãrsFrom
+(3);
+
+423 
+as£¹DifãrsFrom
+("world");
+
+424 
+as£¹G»©”Thª
+("helln");
+
+425 
+as£¹Low”Thª
+("hellp");
+
+428 
+SECTION
+("positive integer") {
+
+429 
+£tV®ue
+(42);
+
+430 
+as£¹Equ®sTo
+(42);
+
+431 
+as£¹DifãrsFrom
+(43);
+
+432 
+as£¹G»©”Thª
+(41);
+
+433 
+as£¹Low”Thª
+(43);
+
+434 
+as£¹DifãrsFrom
+("world");
+
+437 
+SECTION
+("negative integer") {
+
+438 
+£tV®ue
+(-42);
+
+439 
+as£¹Equ®sTo
+(-42);
+
+440 
+as£¹DifãrsFrom
+(42);
+
+441 
+as£¹G»©”Thª
+(-43);
+
+442 
+as£¹Low”Thª
+(-41);
+
+443 
+as£¹DifãrsFrom
+("world");
+
+446 
+SECTION
+("double") {
+
+447 
+£tV®ue
+(42.0);
+
+448 
+as£¹Equ®sTo
+(42.0);
+
+449 
+as£¹DifãrsFrom
+(42.1);
+
+450 
+as£¹G»©”Thª
+(41.0);
+
+451 
+as£¹Low”Thª
+(43.0);
+
+452 
+as£¹DifãrsFrom
+("42.0");
+
+455 
+SECTION
+("true") {
+
+456 
+£tV®ue
+(
+Œue
+);
+
+457 
+as£¹Equ®sTo
+(
+Œue
+);
+
+458 
+as£¹DifãrsFrom
+(
+çl£
+);
+
+459 
+as£¹DifãrsFrom
+(1);
+
+460 
+as£¹DifãrsFrom
+("true");
+
+461 
+as£¹DifãrsFrom
+(1.0);
+
+462 
+as£¹G»©”Thª
+(
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/containsKey.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 cÚ¡ * 
+	gnuÎ
+ = 0;
+
+11 
+TEST_CASE
+("JsonVariant::containsKey()") {
+
+12 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+13 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+15 
+SECTION
+("containsKey(const char*)„eturns�rue") {
+
+16 
+	gv¬
+["hello"] = "world";
+
+18 
+REQUIRE
+(
+v¬
+.
+cÚ�šsKey
+("h–lo"è=ð
+Œue
+);
+
+19 
+REQUIRE
+(
+v¬
+.
+cÚ�šsKey
+("wÜld"è=ð
+çl£
+);
+
+22 
+SECTION
+("containsKey(std::string)„eturns�rue") {
+
+23 
+	gv¬
+["hello"] = "world";
+
+25 
+REQUIRE
+(
+v¬
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("h–lo")è=ð
+Œue
+);
+
+26 
+REQUIRE
+(
+v¬
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("wÜld")è=ð
+çl£
+);
+
+30 
+TEST_CASE
+("JsonVariantConst::containsKey()") {
+
+31 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+32 
+	gdoc
+["hello"] = "world";
+
+33 
+JsÚV¬ŸÁCÚ¡
+ 
+	gcv¬
+ = 
+doc
+.
+as
+<
+JsÚV¬ŸÁ
+>();
+
+35 
+SECTION
+("containsKey(const char*)„eturns�rue") {
+
+36 
+REQUIRE
+(
+cv¬
+.
+cÚ�šsKey
+("h–lo"è=ð
+Œue
+);
+
+37 
+REQUIRE
+(
+cv¬
+.
+cÚ�šsKey
+("wÜld"è=ð
+çl£
+);
+
+40 
+SECTION
+("containsKey(std::string)„eturns�rue") {
+
+41 
+REQUIRE
+(
+cv¬
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("h–lo")è=ð
+Œue
+);
+
+42 
+REQUIRE
+(
+cv¬
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("wÜld")è=ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/copy.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonVariant::set(JsonVariant)") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(4096);
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+11 
+JsÚV¬ŸÁ
+ 
+	gv¬1
+ = 
+doc1
+.
+to
+<JsonVariant>();
+
+12 
+JsÚV¬ŸÁ
+ 
+	gv¬2
+ = 
+doc2
+.
+to
+<JsonVariant>();
+
+14 
+SECTION
+("stores JsonArray by copy") {
+
+15 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+16 
+JsÚObjeù
+ 
+	gobj
+ = 
+¬r
+.
+ü—‹Ne¡edObjeù
+();
+
+17 
+	gobj
+["hello"] = "world";
+
+19 
+	gv¬1
+.
+£t
+(
+¬r
+);
+
+21 
+	g¬r
+[0] = 666;
+
+22 
+REQUIRE
+(
+v¬1
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[{\"hello\":\"world\"}]");
+
+25 
+SECTION
+("stores JsonObject by copy") {
+
+26 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+27 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+obj
+.
+ü—‹Ne¡edA¼ay
+("value");
+
+28 
+	g¬r
+.
+add
+(42);
+
+30 
+	gv¬1
+.
+£t
+(
+obj
+);
+
+32 
+	gobj
+["value"] = 666;
+
+33 
+REQUIRE
+(
+v¬1
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"value\":[42]}");
+
+36 
+SECTION
+("stores const char* by„eference") {
+
+37 
+	gv¬1
+.
+£t
+("hello!!");
+
+38 
+	gv¬2
+.
+£t
+(
+v¬1
+);
+
+40 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+() == 0);
+
+41 
+REQUIRE
+(
+doc2
+.
+memÜyU§ge
+() == 0);
+
+44 
+SECTION
+("stores char* by copy") {
+
+45 
+	g¡r
+[] = "hello!!";
+
+47 
+	gv¬1
+.
+£t
+(
+¡r
+);
+
+48 
+	gv¬2
+.
+£t
+(
+v¬1
+);
+
+50 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+51 
+REQUIRE
+(
+doc2
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+54 
+SECTION
+("stores std::string by copy") {
+
+55 
+	gv¬1
+.
+£t
+(
+¡d
+::
+¡ršg
+("hello!!"));
+
+56 
+	gv¬2
+.
+£t
+(
+v¬1
+);
+
+58 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+59 
+REQUIRE
+(
+doc2
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+62 
+SECTION
+("stores Serialized<const char*> by„eference") {
+
+63 
+	gv¬1
+.
+£t
+(
+£rŸlized
+("h–lo!!", 
+JSON_STRING_SIZE
+(8)));
+
+64 
+	gv¬2
+.
+£t
+(
+v¬1
+);
+
+66 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+() == 0);
+
+67 
+REQUIRE
+(
+doc2
+.
+memÜyU§ge
+() == 0);
+
+70 
+SECTION
+("stores Serialized<char*> by copy") {
+
+71 
+	g¡r
+[] = "hello!!";
+
+72 
+	gv¬1
+.
+£t
+(
+£rŸlized
+(
+¡r
+, 8));
+
+73 
+	gv¬2
+.
+£t
+(
+v¬1
+);
+
+75 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+76 
+REQUIRE
+(
+doc2
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+79 
+SECTION
+("stores Serialized<std::string> by copy") {
+
+80 
+	gv¬1
+.
+£t
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("hello!!!")));
+
+81 
+	gv¬2
+.
+£t
+(
+v¬1
+);
+
+83 
+REQUIRE
+(
+doc1
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+84 
+REQUIRE
+(
+doc2
+.
+memÜyU§ge
+(è=ð
+JSON_STRING_SIZE
+(8));
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/createNested.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+TEST_CASE
+("JsonVariant::createNestedObject()") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+13 
+SECTION
+("promotes�o‡rray") {
+
+14 
+JsÚObjeù
+ 
+	gobj
+ = 
+v¬ŸÁ
+.
+ü—‹Ne¡edObjeù
+();
+
+15 
+	gobj
+["value"] = 42;
+
+17 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+JsÚA¼ay
+>(è=ð
+Œue
+);
+
+18 
+REQUIRE
+(
+v¬ŸÁ
+[0]["value"] == 42);
+
+19 
+REQUIRE
+(
+obj
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+22 
+SECTION
+("works on MemberProxy") {
+
+23 
+JsÚObjeù
+ 
+	gobj
+ = 
+v¬ŸÁ
+["™ems"].
+ü—‹Ne¡edObjeù
+();
+
+24 
+	gobj
+["value"] = 42;
+
+26 
+REQUIRE
+(
+v¬ŸÁ
+["items"][0]["value"] == 42);
+
+30 
+TEST_CASE
+("JsonVariant::createNestedArray()") {
+
+31 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+32 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+34 
+SECTION
+("promotes�o‡rray") {
+
+35 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+v¬ŸÁ
+.
+ü—‹Ne¡edA¼ay
+();
+
+37 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+JsÚA¼ay
+>(è=ð
+Œue
+);
+
+38 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+41 
+SECTION
+("works on MemberProxy") {
+
+42 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+v¬ŸÁ
+["™ems"].
+ü—‹Ne¡edA¼ay
+();
+
+43 
+	g¬r
+.
+add
+(42);
+
+45 
+REQUIRE
+(
+v¬ŸÁ
+["items"][0][0] == 42);
+
+49 
+TEST_CASE
+("JsonVariant::createNestedObject(key)") {
+
+50 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+51 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+53 
+SECTION
+("promotes�o object") {
+
+54 
+JsÚObjeù
+ 
+	gobj
+ = 
+v¬ŸÁ
+.
+ü—‹Ne¡edObjeù
+("weather");
+
+55 
+	gobj
+["temp"] = 42;
+
+57 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+JsÚObjeù
+>(è=ð
+Œue
+);
+
+58 
+REQUIRE
+(
+v¬ŸÁ
+["weather"]["temp"] == 42);
+
+61 
+SECTION
+("works on MemberProxy") {
+
+62 
+JsÚObjeù
+ 
+	gobj
+ = 
+v¬ŸÁ
+["¡©us"].
+ü—‹Ne¡edObjeù
+("weather");
+
+63 
+	gobj
+["temp"] = 42;
+
+65 
+REQUIRE
+(
+v¬ŸÁ
+["status"]["weather"]["temp"] == 42);
+
+69 
+TEST_CASE
+("JsonVariant::createNestedArray(key)") {
+
+70 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+71 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+73 
+SECTION
+("promotes�o object") {
+
+74 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+v¬ŸÁ
+.
+ü—‹Ne¡edA¼ay
+("items");
+
+76 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+JsÚObjeù
+>(è=ð
+Œue
+);
+
+77 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+80 
+SECTION
+("works on MemberProxy") {
+
+81 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+v¬ŸÁ
+["w—th”"].
+ü—‹Ne¡edA¼ay
+("temp");
+
+82 
+	g¬r
+.
+add
+(42);
+
+84 
+REQUIRE
+(
+v¬ŸÁ
+["weather"]["temp"][0] == 42);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/is.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+9 
+	$checkIsA¼ay
+(
+TV¬ŸÁ
+ 
+v¬
+) {
+
+10 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚA¼ay
+>());
+
+12 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+boÞ
+>());
+
+13 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+14 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+15 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+16 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+17 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<const *>());
+
+18 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚObjeù
+>());
+
+19 
+	}
+}
+
+21 
+	$‹¡A¼ay
+(
+JsÚA¼ay
+ 
+v®ue
+) {
+
+22 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+24 
+JsÚV¬ŸÁ
+ 
+v¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+25 
+v¬
+.
+	`£t
+(
+v®ue
+);
+
+27 
+	`checkIsA¼ay
+(
+v¬
+);
+
+29 
+JsÚV¬ŸÁCÚ¡
+ 
+cv¬
+ = 
+v¬
+;
+
+30 
+	`checkIsA¼ay
+(
+cv¬
+);
+
+31 
+	}
+}
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+34 
+	$checkIsBoÞ
+(
+TV¬ŸÁ
+ 
+v¬
+) {
+
+35 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+boÞ
+>());
+
+37 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+38 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+39 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+40 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+41 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<const *>());
+
+42 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚA¼ay
+>());
+
+43 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚObjeù
+>());
+
+44 
+	}
+}
+
+46 
+	$‹¡BoÞ
+(
+boÞ
+ 
+v®ue
+) {
+
+47 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+48 
+JsÚV¬ŸÁ
+ 
+v¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+49 
+v¬
+.
+	`£t
+(
+v®ue
+);
+
+51 
+	`checkIsBoÞ
+(
+v¬
+);
+
+52 
+	`checkIsBoÞ
+(
+	`JsÚV¬ŸÁCÚ¡
+(
+v¬
+));
+
+53 
+	}
+}
+
+55 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+56 
+	$checkIsFlßt
+(
+TV¬ŸÁ
+ 
+v¬
+) {
+
+57 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+58 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+60 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+boÞ
+>());
+
+61 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+62 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+63 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<const *>());
+
+64 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚA¼ay
+>());
+
+65 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚObjeù
+>());
+
+66 
+	}
+}
+
+68 
+	$‹¡Flßt
+(
+v®ue
+) {
+
+69 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+70 
+JsÚV¬ŸÁ
+ 
+v¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+71 
+v¬
+.
+	`£t
+(
+v®ue
+);
+
+73 
+	`checkIsFlßt
+(
+v¬
+);
+
+74 
+	`checkIsFlßt
+(
+	`JsÚV¬ŸÁCÚ¡
+(
+v¬
+));
+
+75 
+	}
+}
+
+77 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+78 
+	$checkIsIÁeg”
+(
+TV¬ŸÁ
+ 
+v¬
+) {
+
+79 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+80 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+81 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+82 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+84 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+boÞ
+>());
+
+85 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<const *>());
+
+86 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚA¼ay
+>());
+
+87 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚObjeù
+>());
+
+88 
+	}
+}
+
+90 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+91 
+	$‹¡IÁeg”
+(
+T
+ 
+v®ue
+) {
+
+92 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+93 
+JsÚV¬ŸÁ
+ 
+v¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+94 
+v¬
+.
+	`£t
+(
+v®ue
+);
+
+96 
+	`checkIsIÁeg”
+(
+v¬
+);
+
+97 
+	`checkIsIÁeg”
+(
+	`JsÚV¬ŸÁCÚ¡
+(
+v¬
+));
+
+98 
+	}
+}
+
+100 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+101 
+	$checkIsSŒšg
+(
+TV¬ŸÁ
+ 
+v¬
+) {
+
+102 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<const *>());
+
+103 
+	`REQUIRE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+¡d
+::
+¡ršg
+>());
+
+105 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+boÞ
+>());
+
+106 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+107 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+108 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+109 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<>());
+
+110 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚA¼ay
+>());
+
+111 
+	`REQUIRE_FALSE
+(
+v¬
+.
+‹m¶©e
+ 
+is
+<
+JsÚObjeù
+>());
+
+112 
+	}
+}
+
+114 
+	$‹¡SŒšg
+(cÚ¡ *
+v®ue
+) {
+
+115 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+116 
+JsÚV¬ŸÁ
+ 
+v¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+117 
+v¬
+.
+	`£t
+(
+v®ue
+);
+
+119 
+	`checkIsSŒšg
+(
+v¬
+);
+
+120 
+	`checkIsSŒšg
+(
+	`JsÚV¬ŸÁCÚ¡
+(
+v¬
+));
+
+121 
+	}
+}
+
+123 
+TEST_CASE
+("JsonVariant::is()") {
+
+124 
+SECTION
+("JsonArray") {
+
+125 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+126 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+127 
+‹¡A¼ay
+(
+¬¿y
+);
+
+130 
+SECTION
+("bool") {
+
+131 
+‹¡BoÞ
+(
+Œue
+);
+
+132 
+‹¡BoÞ
+(
+çl£
+);
+
+135 
+SECTION
+("double") {
+
+136 
+‹¡Flßt
+(4.2);
+
+139 
+SECTION
+("int") {
+
+140 
+‹¡IÁeg”
+(42);
+
+143 
+SECTION
+("long") {
+
+144 
+‹¡IÁeg”
+(42L);
+
+147 
+SECTION
+("string") {
+
+148 
+‹¡SŒšg
+("42");
+
+151 
+SECTION
+("null") {
+
+152 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+153 
+de£rŸlizeJsÚ
+(
+doc
+, "[null]");
+
+154 
+JsÚV¬ŸÁ
+ 
+	gv
+ = 
+doc
+[0];
+
+156 
+REQUIRE
+(
+v
+.
+is
+<
+boÞ
+>(è=ð
+çl£
+);
+
+157 
+REQUIRE
+(
+v
+.
+is
+<*>(è=ð
+çl£
+);
+
+158 
+REQUIRE
+(
+v
+.
+is
+<>(è=ð
+çl£
+);
+
+159 
+REQUIRE
+(
+v
+.
+is
+<
+¡d
+::
+¡ršg
+>(è=ð
+çl£
+);
+
+160 
+REQUIRE
+(
+v
+.
+is
+<>(è=ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/isnull.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonVariant::isNull()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+12 
+SECTION
+("return�rue when Undefined") {
+
+13 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+16 
+SECTION
+("return false when Integer") {
+
+17 
+	gv¬ŸÁ
+.
+£t
+(42);
+
+19 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+22 
+SECTION
+("return false when EmptyArray") {
+
+23 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+24 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc2
+.
+to
+<JsonArray>();
+
+26 
+	gv¬ŸÁ
+.
+£t
+(
+¬¿y
+);
+
+27 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+30 
+SECTION
+("return false when EmptyObject") {
+
+31 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(4096);
+
+32 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc2
+.
+to
+<JsonObject>();
+
+34 
+	gv¬ŸÁ
+.
+£t
+(
+obj
+);
+
+35 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+38 
+SECTION
+("return�rue‡fter set(JsonArray())") {
+
+39 
+	gv¬ŸÁ
+.
+£t
+(
+JsÚA¼ay
+());
+
+40 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+43 
+SECTION
+("return�rue‡fter set(JsonObject())") {
+
+44 
+	gv¬ŸÁ
+.
+£t
+(
+JsÚObjeù
+());
+
+45 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+48 
+SECTION
+("return false‡fter set('hello')") {
+
+49 
+	gv¬ŸÁ
+.
+£t
+("hello");
+
+50 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+53 
+SECTION
+("return�rue‡fter set((char*)0)") {
+
+54 
+	gv¬ŸÁ
+.
+£t
+(
+¡©ic_ÿ¡
+<*>(0));
+
+55 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+58 
+SECTION
+("return�rue‡fter set((const char*)0)") {
+
+59 
+	gv¬ŸÁ
+.
+£t
+(
+¡©ic_ÿ¡
+<const *>(0));
+
+60 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+63 
+SECTION
+("return�rue‡fter set(serialized((char*)0))") {
+
+64 
+	gv¬ŸÁ
+.
+£t
+(
+£rŸlized
+(
+¡©ic_ÿ¡
+<*>(0)));
+
+65 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+68 
+SECTION
+("return�rue‡fter set(serialized((const char*)0))") {
+
+69 
+	gv¬ŸÁ
+.
+£t
+(
+£rŸlized
+(
+¡©ic_ÿ¡
+<const *>(0)));
+
+70 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+73 
+SECTION
+("works with JsonVariantConst") {
+
+74 
+	gv¬ŸÁ
+.
+£t
+(42);
+
+76 
+JsÚV¬ŸÁCÚ¡
+ 
+	gcv¬
+ = 
+v¬ŸÁ
+;
+
+78 
+REQUIRE
+(
+cv¬
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/memoryUsage.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<¡ršg
+>
+
+9 
+TEST_CASE
+("JsonVariant::memoryUsage()") {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+13 
+SECTION
+("returns 0 if uninitialized") {
+
+14 
+JsÚV¬ŸÁ
+ 
+	gun™Ÿlized
+;
+
+15 
+REQUIRE
+(
+un™Ÿlized
+.
+memÜyU§ge
+() == 0);
+
+18 
+SECTION
+("returns size of object") {
+
+19 
+JsÚObjeù
+ 
+	gobj
+ = 
+v¬
+.
+to
+<JsonObject>();
+
+20 
+	gobj
+["hello"] = 42;
+
+21 
+REQUIRE
+(
+v¬
+.
+memÜyU§ge
+(è=ð
+JSON_OBJECT_SIZE
+(1));
+
+24 
+SECTION
+("returns size of‡rray") {
+
+25 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+v¬
+.
+to
+<JsonArray>();
+
+26 
+	g¬r
+.
+add
+(42);
+
+27 
+REQUIRE
+(
+v¬
+.
+memÜyU§ge
+(è=ð
+JSON_ARRAY_SIZE
+(1));
+
+30 
+SECTION
+("returns size of owned string") {
+
+31 
+	gv¬
+.
+£t
+(
+¡d
+::
+¡ršg
+("hello"));
+
+32 
+REQUIRE
+(
+v¬
+.
+memÜyU§ge
+() == 6);
+
+35 
+SECTION
+("returns size of owned„aw") {
+
+36 
+	gv¬
+.
+£t
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("hello")));
+
+37 
+REQUIRE
+(
+v¬
+.
+memÜyU§ge
+() == 5);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/misc.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonVariant from JsonArray") {
+
+9 
+SECTION
+("JsonArray is‚ull") {
+
+10 
+JsÚA¼ay
+ 
+	g¬r
+;
+
+11 
+JsÚV¬ŸÁ
+ 
+	gv
+ = 
+¬r
+;
+
+12 
+REQUIRE
+(
+v
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+15 
+SECTION
+("JsonArray is‚ot‚ull") {
+
+16 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+17 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+18 
+	g¬r
+.
+add
+(12);
+
+19 
+	g¬r
+.
+add
+(34);
+
+21 
+JsÚV¬ŸÁ
+ 
+	gv
+ = 
+¬r
+;
+
+23 
+REQUIRE
+(
+v
+.
+is
+<
+JsÚA¼ay
+>(è=ð
+Œue
+);
+
+24 
+REQUIRE
+(
+v
+.
+size
+() == 2);
+
+25 
+REQUIRE
+(
+v
+[0] == 12);
+
+26 
+REQUIRE
+(
+v
+[1] == 34);
+
+30 
+TEST_CASE
+("JsonVariant from JsonObject") {
+
+31 
+SECTION
+("JsonObject is‚ull") {
+
+32 
+JsÚObjeù
+ 
+	gobj
+;
+
+33 
+JsÚV¬ŸÁ
+ 
+	gv
+ = 
+obj
+;
+
+34 
+REQUIRE
+(
+v
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+37 
+SECTION
+("JsonObject is‚ot‚ull") {
+
+38 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+39 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+40 
+	gobj
+["a"] = 12;
+
+41 
+	gobj
+["b"] = 34;
+
+43 
+JsÚV¬ŸÁ
+ 
+	gv
+ = 
+obj
+;
+
+45 
+REQUIRE
+(
+v
+.
+is
+<
+JsÚObjeù
+>(è=ð
+Œue
+);
+
+46 
+REQUIRE
+(
+v
+.
+size
+() == 2);
+
+47 
+REQUIRE
+(
+v
+["a"] == 12);
+
+48 
+REQUIRE
+(
+v
+["b"] == 34);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/nesting.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonVariant::nesting()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+12 
+SECTION
+("return 0 if uninitialized") {
+
+13 
+JsÚV¬ŸÁ
+ 
+	gun™Ÿlized
+;
+
+14 
+REQUIRE
+(
+un™Ÿlized
+.
+Ã¡šg
+() == 0);
+
+17 
+SECTION
+("returns 0 for string") {
+
+18 
+	gv¬
+.
+£t
+("hello");
+
+19 
+REQUIRE
+(
+v¬
+.
+Ã¡šg
+() == 0);
+
+22 
+SECTION
+("returns 1 forƒmpty object") {
+
+23 
+	gv¬
+.
+	gto
+<
+	gJsÚObjeù
+>();
+
+24 
+REQUIRE
+(
+v¬
+.
+Ã¡šg
+() == 1);
+
+27 
+SECTION
+("returns 1 forƒmpty‡rray") {
+
+28 
+	gv¬
+.
+	gto
+<
+	gJsÚA¼ay
+>();
+
+29 
+REQUIRE
+(
+v¬
+.
+Ã¡šg
+() == 1);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/or.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonVariant::operator|()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+12 
+SECTION
+("undefined") {
+
+13 
+SECTION
+("undefined | const char*") {
+
+14 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+ = 
+v¬ŸÁ
+ | "default";
+
+15 
+REQUIRE
+(
+»suÉ
+ == "default");
+
+18 
+SECTION
+("undefined | int") {
+
+19 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 42;
+
+20 
+REQUIRE
+(
+»suÉ
+ == 42);
+
+23 
+SECTION
+("undefined | bool") {
+
+24 
+boÞ
+ 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 
+Œue
+;
+
+25 
+REQUIRE
+(
+»suÉ
+ =ð
+Œue
+);
+
+29 
+SECTION
+("null") {
+
+30 
+	gv¬ŸÁ
+.
+£t
+(
+¡©ic_ÿ¡
+<const *>(0));
+
+32 
+SECTION
+("null | const char*") {
+
+33 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+ = 
+v¬ŸÁ
+ | "default";
+
+34 
+REQUIRE
+(
+»suÉ
+ == "default");
+
+37 
+SECTION
+("null | int") {
+
+38 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 42;
+
+39 
+REQUIRE
+(
+»suÉ
+ == 42);
+
+42 
+SECTION
+("null | bool") {
+
+43 
+boÞ
+ 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 
+Œue
+;
+
+44 
+REQUIRE
+(
+»suÉ
+ =ð
+Œue
+);
+
+48 
+SECTION
+("int | const char*") {
+
+49 
+	gv¬ŸÁ
+.
+£t
+(42);
+
+50 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+ = 
+v¬ŸÁ
+ | "default";
+
+51 
+REQUIRE
+(
+»suÉ
+ == "default");
+
+54 
+SECTION
+("int | uint8_t (out of„ange)") {
+
+55 
+	gv¬ŸÁ
+.
+£t
+(666);
+
+56 
+ušt8_t
+ 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 
+¡©ic_ÿ¡
+<uint8_t>(42);
+
+57 
+REQUIRE
+(
+»suÉ
+ == 42);
+
+60 
+SECTION
+("int | int") {
+
+61 
+	gv¬ŸÁ
+.
+£t
+(0);
+
+62 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 666;
+
+63 
+REQUIRE
+(
+»suÉ
+ == 0);
+
+66 
+SECTION
+("double | int") {
+
+68 
+	gv¬ŸÁ
+.
+£t
+(666.0);
+
+69 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 42;
+
+70 
+REQUIRE
+(
+»suÉ
+ == 42);
+
+73 
+SECTION
+("bool | bool") {
+
+74 
+	gv¬ŸÁ
+.
+£t
+(
+çl£
+);
+
+75 
+boÞ
+ 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 
+Œue
+;
+
+76 
+REQUIRE
+(
+»suÉ
+ =ð
+çl£
+);
+
+79 
+SECTION
+("int | bool") {
+
+80 
+	gv¬ŸÁ
+.
+£t
+(0);
+
+81 
+boÞ
+ 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 
+Œue
+;
+
+82 
+REQUIRE
+(
+»suÉ
+ =ð
+Œue
+);
+
+85 
+SECTION
+("const char* | const char*") {
+
+86 
+	gv¬ŸÁ
+.
+£t
+("not default");
+
+87 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+ = 
+v¬ŸÁ
+ | "default";
+
+88 
+REQUIRE
+(
+»suÉ
+ == "not default");
+
+91 
+SECTION
+("const char* | int") {
+
+92 
+	gv¬ŸÁ
+.
+£t
+("not default");
+
+93 
+	g»suÉ
+ = 
+v¬ŸÁ
+ | 42;
+
+94 
+REQUIRE
+(
+»suÉ
+ == 42);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/overflow.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+9 
+	$shouldBeOk
+(
+TIn
+ 
+v®ue
+) {
+
+10 
+S�ticJsÚDocum’t
+<1> 
+doc
+;
+
+11 
+JsÚV¬ŸÁ
+ 
+v¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+12 
+v¬
+.
+	`£t
+(
+v®ue
+);
+
+13 
+	`REQUIRE
+(
+v¬
+.
+as
+<
+TOut
+>(è=ð
+	`TOut
+(
+v®ue
+));
+
+14 
+	}
+}
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+17 
+	$shouldOv”æow
+(
+TIn
+ 
+v®ue
+) {
+
+18 
+S�ticJsÚDocum’t
+<1> 
+doc
+;
+
+19 
+JsÚV¬ŸÁ
+ 
+v¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+20 
+v¬
+.
+	`£t
+(
+v®ue
+);
+
+21 
+	`REQUIRE
+(
+v¬
+.
+as
+<
+TOut
+>() == 0);
+
+22 
+	`REQUIRE
+(
+v¬
+.
+is
+<
+TOut
+>(è=ð
+çl£
+);
+
+23 
+	}
+}
+
+25 
+TEST_CASE
+("Handle integer overflow in stored integer") {
+
+26 
+SECTION
+("int8_t") {
+
+28 
+	gshouldBeOk
+<
+	gšt8_t
+>(-128);
+
+29 
+	gshouldBeOk
+<
+	gšt8_t
+>(42.0);
+
+30 
+	gshouldBeOk
+<
+	gšt8_t
+>(127);
+
+33 
+	gshouldOv”æow
+<
+	gšt8_t
+>(-128.1);
+
+34 
+	gshouldOv”æow
+<
+	gšt8_t
+>(-129);
+
+37 
+	gshouldOv”æow
+<
+	gšt8_t
+>(128);
+
+38 
+	gshouldOv”æow
+<
+	gšt8_t
+>(127.1);
+
+41 
+SECTION
+("int16_t") {
+
+43 
+	gshouldBeOk
+<
+	gšt16_t
+>(-32768);
+
+44 
+	gshouldBeOk
+<
+	gšt16_t
+>(-32767.9);
+
+45 
+	gshouldBeOk
+<
+	gšt16_t
+>(32766.9);
+
+46 
+	gshouldBeOk
+<
+	gšt16_t
+>(32767);
+
+49 
+	gshouldOv”æow
+<
+	gšt16_t
+>(-32768.1);
+
+50 
+	gshouldOv”æow
+<
+	gšt16_t
+>(-32769);
+
+53 
+	gshouldOv”æow
+<
+	gšt16_t
+>(32767.1);
+
+54 
+	gshouldOv”æow
+<
+	gšt16_t
+>(32768);
+
+57 
+SECTION
+("uint8_t") {
+
+59 
+	gshouldBeOk
+<
+	gušt8_t
+>(1);
+
+60 
+	gshouldBeOk
+<
+	gušt8_t
+>(42.0);
+
+61 
+	gshouldBeOk
+<
+	gušt8_t
+>(255);
+
+64 
+	gshouldOv”æow
+<
+	gušt8_t
+>(-1);
+
+65 
+	gshouldOv”æow
+<
+	gušt8_t
+>(-0.1);
+
+68 
+	gshouldOv”æow
+<
+	gušt8_t
+>(255.1);
+
+69 
+	gshouldOv”æow
+<
+	gušt8_t
+>(256);
+
+70 
+	gshouldOv”æow
+<
+	gušt8_t
+>(257);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/remove.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 cÚ¡ * 
+	gnuÎ
+ = 0;
+
+11 
+TEST_CASE
+("JsonVariant::remove()") {
+
+12 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+13 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+15 
+SECTION
+("remove(int)") {
+
+16 
+	gv¬
+.
+add
+(1);
+
+17 
+	gv¬
+.
+add
+(2);
+
+18 
+	gv¬
+.
+add
+(3);
+
+20 
+	gv¬
+.
+»move
+(1);
+
+22 
+REQUIRE
+(
+v¬
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[1,3]");
+
+25 
+SECTION
+("remove(const char *)") {
+
+26 
+	gv¬
+["a"] = 1;
+
+27 
+	gv¬
+["b"] = 2;
+
+29 
+	gv¬
+.
+»move
+("a");
+
+31 
+REQUIRE
+(
+v¬
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"b\":2}");
+
+34 
+SECTION
+("remove(std::string)") {
+
+35 
+	gv¬
+["a"] = 1;
+
+36 
+	gv¬
+["b"] = 2;
+
+38 
+	gv¬
+.
+»move
+(
+¡d
+::
+¡ršg
+("b"));
+
+40 
+REQUIRE
+(
+v¬
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1}");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/set.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	eE¼ÜCode
+ { 
+	mERROR_01
+ = 1, 
+	mERROR_10
+ = 10 };
+
+10 
+TEST_CASE
+("JsonVariant‡nd strings") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+14 
+SECTION
+("stores const char* by„eference") {
+
+15 
+	g¡r
+[16];
+
+17 
+¡rýy
+(
+¡r
+, "hello");
+
+18 
+	gv¬ŸÁ
+.
+£t
+(
+¡©ic_ÿ¡
+<cÚ¡ *>(
+¡r
+));
+
+19 
+¡rýy
+(
+¡r
+, "world");
+
+21 
+REQUIRE
+(
+v¬ŸÁ
+ == "world");
+
+24 
+SECTION
+("stores char* by copy") {
+
+25 
+	g¡r
+[16];
+
+27 
+¡rýy
+(
+¡r
+, "hello");
+
+28 
+	gv¬ŸÁ
+.
+£t
+(
+¡r
+);
+
+29 
+¡rýy
+(
+¡r
+, "world");
+
+31 
+REQUIRE
+(
+v¬ŸÁ
+ == "hello");
+
+34 
+SECTION
+("stores unsigned char* by copy") {
+
+35 
+	g¡r
+[16];
+
+37 
+¡rýy
+(
+¡r
+, "hello");
+
+38 
+	gv¬ŸÁ
+.
+£t
+(
+»š‹½»t_ÿ¡
+<*>(
+¡r
+));
+
+39 
+¡rýy
+(
+¡r
+, "world");
+
+41 
+REQUIRE
+(
+v¬ŸÁ
+ == "hello");
+
+44 
+SECTION
+("stores signed char* by copy") {
+
+45 
+	g¡r
+[16];
+
+47 
+¡rýy
+(
+¡r
+, "hello");
+
+48 
+	gv¬ŸÁ
+.
+£t
+(
+»š‹½»t_ÿ¡
+<sigÃd *>(
+¡r
+));
+
+49 
+¡rýy
+(
+¡r
+, "world");
+
+51 
+REQUIRE
+(
+v¬ŸÁ
+ == "hello");
+
+54 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+55 
+SECTION
+("stores VLA by copy") {
+
+56 
+	gn
+ = 16;
+
+57 
+	g¡r
+[
+n
+];
+
+59 
+¡rýy
+(
+¡r
+, "hello");
+
+60 
+	gv¬ŸÁ
+.
+£t
+(
+¡r
+);
+
+61 
+¡rýy
+(
+¡r
+, "world");
+
+63 
+REQUIRE
+(
+v¬ŸÁ
+ == "hello");
+
+67 
+SECTION
+("stores std::string by copy") {
+
+68 
+	g¡d
+::
+¡ršg
+ 
+¡r
+;
+
+70 
+	g¡r
+ = "hello";
+
+71 
+	gv¬ŸÁ
+.
+£t
+(
+¡r
+);
+
+72 
+	g¡r
+.
+»¶aû
+(0, 5, "world");
+
+74 
+REQUIRE
+(
+v¬ŸÁ
+ == "hello");
+
+77 
+SECTION
+("stores static JsonString by„eference") {
+
+78 
+	g¡r
+[16];
+
+80 
+¡rýy
+(
+¡r
+, "hello");
+
+81 
+	gv¬ŸÁ
+.
+£t
+(
+JsÚSŒšg
+(
+¡r
+, 
+Œue
+));
+
+82 
+¡rýy
+(
+¡r
+, "world");
+
+84 
+REQUIRE
+(
+v¬ŸÁ
+ == "world");
+
+87 
+SECTION
+("stores‚on-static JsonString by copy") {
+
+88 
+	g¡r
+[16];
+
+90 
+¡rýy
+(
+¡r
+, "hello");
+
+91 
+	gv¬ŸÁ
+.
+£t
+(
+JsÚSŒšg
+(
+¡r
+, 
+çl£
+));
+
+92 
+¡rýy
+(
+¡r
+, "world");
+
+94 
+REQUIRE
+(
+v¬ŸÁ
+ == "hello");
+
+97 
+SECTION
+("stores‡nƒnum‡s‡n integer") {
+
+98 
+E¼ÜCode
+ 
+	gcode
+ = 
+ERROR_10
+;
+
+100 
+	gv¬ŸÁ
+.
+£t
+(
+code
+);
+
+102 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<>(è=ð
+Œue
+);
+
+103 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 10);
+
+107 
+TEST_CASE
+("JsonVariant with‚otƒnough memory") {
+
+108 
+	gS�ticJsÚDocum’t
+<1> 
+	gdoc
+;
+
+110 
+JsÚV¬ŸÁ
+ 
+	gv
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+112 
+SECTION
+("std::string") {
+
+113 
+	gv
+.
+£t
+(
+¡d
+::
+¡ršg
+("hello world!!"));
+
+114 
+REQUIRE
+(
+v
+.
+isNuÎ
+());
+
+117 
+SECTION
+("Serialized<std::string>") {
+
+118 
+	gv
+.
+£t
+(
+£rŸlized
+(
+¡d
+::
+¡ršg
+("hello world!!")));
+
+119 
+REQUIRE
+(
+v
+.
+isNuÎ
+());
+
+123 
+TEST_CASE
+("JsonVariant::set(DynamicJsonDocument)") {
+
+124 
+DyÇmicJsÚDocum’t
+ 
+doc1
+(1024);
+
+125 
+	gdoc1
+["hello"] = "world";
+
+127 
+DyÇmicJsÚDocum’t
+ 
+doc2
+(1024);
+
+128 
+JsÚV¬ŸÁ
+ 
+	gv
+ = 
+doc2
+.
+to
+<JsonVariant>();
+
+131 
+	gv
+.
+£t
+(
+doc1
+);
+
+132 
+	gdoc1
+.
+þ—r
+();
+
+134 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+135 
+£rŸlizeJsÚ
+(
+doc2
+, 
+jsÚ
+);
+
+136 
+REQUIRE
+(
+jsÚ
+ == "{\"hello\":\"world\"}");
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/subscript.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonVariant::operator[]") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+12 
+SECTION
+("The JsonVariant is undefined") {
+
+13 
+REQUIRE
+(0 =ð
+v¬
+.
+size
+());
+
+14 
+REQUIRE
+(
+v¬
+["0"].
+isNuÎ
+());
+
+15 
+REQUIRE
+(
+v¬
+[0].
+isNuÎ
+());
+
+18 
+SECTION
+("The JsonVariant is‡ string") {
+
+19 
+	gv¬
+.
+£t
+("hello world");
+
+20 
+REQUIRE
+(0 =ð
+v¬
+.
+size
+());
+
+21 
+REQUIRE
+(
+v¬
+["0"].
+isNuÎ
+());
+
+22 
+REQUIRE
+(
+v¬
+[0].
+isNuÎ
+());
+
+25 
+SECTION
+("The JsonVariant is‡ JsonArray") {
+
+26 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+v¬
+.
+to
+<JsonArray>();
+
+28 
+SECTION
+("get value") {
+
+29 
+	g¬¿y
+.
+add
+("element‡t index 0");
+
+30 
+	g¬¿y
+.
+add
+("element‡t index 1");
+
+32 
+REQUIRE
+(2 =ð
+v¬
+.
+size
+());
+
+33 
+	gv¬
+[0].
+	gas
+<
+	g¡d
+::
+¡ršg
+>();
+
+35 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("–em’ˆ© index 1"è=ð
+v¬
+[1]);
+
+36 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("element‡t index 0") ==
+
+37 
+v¬
+[
+¡©ic_ÿ¡
+<>(0)]);
+
+38 
+REQUIRE
+(
+v¬
+[666].
+isNuÎ
+());
+
+39 
+REQUIRE
+(
+v¬
+[3].
+isNuÎ
+());
+
+40 
+REQUIRE
+(
+v¬
+["0"].
+isNuÎ
+());
+
+43 
+SECTION
+("set value") {
+
+44 
+	g¬¿y
+.
+add
+("hello");
+
+46 
+	gv¬
+[1] = "world";
+
+48 
+REQUIRE
+(
+v¬
+.
+size
+() == 2);
+
+49 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬
+[1]);
+
+52 
+SECTION
+("set value in‡‚ested object") {
+
+53 
+	g¬¿y
+.
+ü—‹Ne¡edObjeù
+();
+
+55 
+	gv¬
+[0]["hello"] = "world";
+
+57 
+REQUIRE
+(1 =ð
+v¬
+.
+size
+());
+
+58 
+REQUIRE
+(1 =ð
+v¬
+[0].
+size
+());
+
+59 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬
+[0]["hello"]);
+
+63 
+SECTION
+("The JsonVariant is‡ JsonObject") {
+
+64 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+v¬
+.
+to
+<JsonObject>();
+
+66 
+SECTION
+("get value") {
+
+67 
+	gobjeù
+["a"] = "element‡t key \"a\"";
+
+68 
+	gobjeù
+["b"] = "element‡t key \"b\"";
+
+70 
+REQUIRE
+(2 =ð
+v¬
+.
+size
+());
+
+71 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("–em’ˆ© key \"a\""è=ð
+v¬
+["a"]);
+
+72 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("–em’ˆ© key \"b\""è=ð
+v¬
+["b"]);
+
+73 
+REQUIRE
+(
+v¬
+["c"].
+isNuÎ
+());
+
+74 
+REQUIRE
+(
+v¬
+[0].
+isNuÎ
+());
+
+77 
+SECTION
+("set value, key is‡ const char*") {
+
+78 
+	gv¬
+["hello"] = "world";
+
+80 
+REQUIRE
+(1 =ð
+v¬
+.
+size
+());
+
+81 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬
+["hello"]);
+
+84 
+SECTION
+("set value, key is‡ char[]") {
+
+85 
+	gkey
+[] = "hello";
+
+86 
+	gv¬
+[
+key
+] = "world";
+
+87 
+	gkey
+[0] = '!';
+
+89 
+REQUIRE
+(1 =ð
+v¬
+.
+size
+());
+
+90 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬
+["hello"]);
+
+93 
+SECTION
+("var[key].to<JsonArray>()") {
+
+94 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+v¬
+["h–lo"].
+to
+<JsonArray>();
+
+95 
+REQUIRE
+(
+¬r
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+99 #ià
+defšed
+(
+HAS_VARIABLE_LENGTH_ARRAY
+) && \
+
+100 !
+defšed
+(
+SUBSCRIPT_CONFLICTS_WITH_BUILTIN_OPERATOR
+)
+
+101 
+SECTION
+("key is‡ VLA") {
+
+102 
+	gi
+ = 16;
+
+103 
+	gvÏ
+[
+i
+];
+
+104 
+¡rýy
+(
+vÏ
+, "hello");
+
+106 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+107 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+as
+<JsonVariant>();
+
+109 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬ŸÁ
+[
+vÏ
+]);
+
+112 
+SECTION
+("key is‡ VLA, const JsonVariant") {
+
+113 
+	gi
+ = 16;
+
+114 
+	gvÏ
+[
+i
+];
+
+115 
+¡rýy
+(
+vÏ
+, "hello");
+
+117 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+118 cÚ¡ 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+as
+<JsonVariant>();
+
+120 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬ŸÁ
+[
+vÏ
+]);
+
+125 
+TEST_CASE
+("JsonVariantConst::operator[]") {
+
+126 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+127 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+128 
+JsÚV¬ŸÁCÚ¡
+ 
+	gcv¬
+ = 
+v¬
+;
+
+130 
+SECTION
+("The JsonVariant is undefined") {
+
+131 
+REQUIRE
+(0 =ð
+cv¬
+.
+size
+());
+
+132 
+REQUIRE
+(
+cv¬
+["0"].
+isNuÎ
+());
+
+133 
+REQUIRE
+(
+cv¬
+[0].
+isNuÎ
+());
+
+136 
+SECTION
+("The JsonVariant is‡ string") {
+
+137 
+	gv¬
+.
+£t
+("hello world");
+
+138 
+REQUIRE
+(0 =ð
+cv¬
+.
+size
+());
+
+139 
+REQUIRE
+(
+cv¬
+["0"].
+isNuÎ
+());
+
+140 
+REQUIRE
+(
+cv¬
+[0].
+isNuÎ
+());
+
+143 
+SECTION
+("The JsonVariant is‡ JsonArray") {
+
+144 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+v¬
+.
+to
+<JsonArray>();
+
+146 
+SECTION
+("get value") {
+
+147 
+	g¬¿y
+.
+add
+("element‡t index 0");
+
+148 
+	g¬¿y
+.
+add
+("element‡t index 1");
+
+150 
+REQUIRE
+(2 =ð
+cv¬
+.
+size
+());
+
+151 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("–em’ˆ© index 0"è=ð
+cv¬
+[0]);
+
+152 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("–em’ˆ© index 1"è=ð
+cv¬
+[1]);
+
+153 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("element‡t index 0") ==
+
+154 
+v¬
+[
+¡©ic_ÿ¡
+<>(0)]);
+
+155 
+REQUIRE
+(
+cv¬
+[666].
+isNuÎ
+());
+
+156 
+REQUIRE
+(
+cv¬
+[3].
+isNuÎ
+());
+
+157 
+REQUIRE
+(
+cv¬
+["0"].
+isNuÎ
+());
+
+161 
+SECTION
+("The JsonVariant is‡ JsonObject") {
+
+162 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+v¬
+.
+to
+<JsonObject>();
+
+164 
+SECTION
+("get value") {
+
+165 
+	gobjeù
+["a"] = "element‡t key \"a\"";
+
+166 
+	gobjeù
+["b"] = "element‡t key \"b\"";
+
+168 
+REQUIRE
+(2 =ð
+cv¬
+.
+size
+());
+
+169 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("–em’ˆ© key \"a\""è=ð
+cv¬
+["a"]);
+
+170 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("–em’ˆ© key \"b\""è=ð
+cv¬
+["b"]);
+
+171 
+REQUIRE
+(
+cv¬
+["c"].
+isNuÎ
+());
+
+172 
+REQUIRE
+(
+cv¬
+[0].
+isNuÎ
+());
+
+176 
+SECTION
+("Auto…romote‚ull JsonVariant�o JsonObject") {
+
+177 
+	gv¬
+["hello"] = "world";
+
+179 
+REQUIRE
+(
+v¬
+.
+is
+<
+JsÚObjeù
+>(è=ð
+Œue
+);
+
+182 
+SECTION
+("Don't‡uto…romote‚on-null JsonVariant�o JsonObject") {
+
+183 
+	gv¬
+.
+£t
+(42);
+
+184 
+	gv¬
+["hello"] = "world";
+
+186 
+REQUIRE
+(
+v¬
+.
+is
+<
+JsÚObjeù
+>(è=ð
+çl£
+);
+
+189 
+SECTION
+("Don't‡uto…romote‚ull JsonVariant�o JsonObject when„eading") {
+
+190 cÚ¡ * 
+	gv®ue
+ = 
+v¬
+["hello"];
+
+192 
+REQUIRE
+(
+v¬
+.
+is
+<
+JsÚObjeù
+>(è=ð
+çl£
+);
+
+193 
+REQUIRE
+(
+v®ue
+ == 0);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/types.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dšt.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+8 
+	~<lim™s
+>
+
+10 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+11 
+	$checkV®ue
+(
+T
+ 
+ex³ùed
+) {
+
+12 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+13 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+15 
+v¬ŸÁ
+.
+	`£t
+(
+ex³ùed
+);
+
+16 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+v¬ŸÁ
+.
+as
+<
+T
+>());
+
+17 
+	}
+}
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+20 
+	$checkReã»nû
+(
+T
+ &
+ex³ùed
+) {
+
+21 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁ
+ = 
+ex³ùed
+;
+
+22 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+v¬ŸÁ
+.
+as
+<
+T
+ &>());
+
+23 
+	}
+}
+
+25 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+26 
+	$checkNum”icTy³
+() {
+
+27 
+DyÇmicJsÚDocum’t
+ 
+	`docMš
+(4096), 
+	`docMax
+(4096);
+
+28 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁMš
+ = 
+docMš
+.
+to
+<JsonVariant>();
+
+29 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁMax
+ = 
+docMax
+.
+to
+<JsonVariant>();
+
+31 
+T
+ 
+mš
+ = 
+¡d
+::
+num”ic_lim™s
+<T>::
+	`mš
+();
+
+32 
+T
+ 
+max
+ = 
+¡d
+::
+num”ic_lim™s
+<T>::
+	`max
+();
+
+34 
+v¬ŸÁMš
+.
+	`£t
+(
+mš
+);
+
+35 
+v¬ŸÁMax
+.
+	`£t
+(
+max
+);
+
+37 
+	`REQUIRE
+(
+mš
+ =ð
+v¬ŸÁMš
+.
+as
+<
+T
+>());
+
+38 
+	`REQUIRE
+(
+max
+ =ð
+v¬ŸÁMax
+.
+as
+<
+T
+>());
+
+39 
+	}
+}
+
+41 
+TEST_CASE
+("JsonVariant set()/get()") {
+
+42 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+43 
+SECTION
+("SizeOfJsonInteger") {
+
+44 
+REQUIRE
+(8 =ð(
+JsÚIÁeg”
+));
+
+48 
+SECTION
+("Null") {
+
+49 
+	gcheckV®ue
+<cÚ¡ *>(
+	gNULL
+);
+
+51 
+SECTION
+("const char*") {
+
+52 
+	gcheckV®ue
+<const *>("hello");
+
+54 
+SECTION
+("std::string") {
+
+55 
+	gcheckV®ue
+<
+	g¡d
+::
+¡ršg
+>("hello");
+
+58 
+SECTION
+("False") {
+
+59 
+	gcheckV®ue
+<
+	gboÞ
+>(
+	gçl£
+);
+
+61 
+SECTION
+("True") {
+
+62 
+	gcheckV®ue
+<
+	gboÞ
+>(
+	gŒue
+);
+
+65 
+SECTION
+("Double") {
+
+66 
+	gcheckNum”icTy³
+<>();
+
+68 
+SECTION
+("Float") {
+
+69 
+	gcheckNum”icTy³
+<>();
+
+71 
+SECTION
+("Char") {
+
+72 
+	gcheckNum”icTy³
+<>();
+
+74 
+SECTION
+("SChar") {
+
+75 
+	gcheckNum”icTy³
+<signed >();
+
+77 
+SECTION
+("SInt") {
+
+78 
+	gcheckNum”icTy³
+<signed >();
+
+80 
+SECTION
+("SLong") {
+
+81 
+	gcheckNum”icTy³
+<signed >();
+
+83 
+SECTION
+("SShort") {
+
+84 
+	gcheckNum”icTy³
+<signed >();
+
+86 
+SECTION
+("UChar") {
+
+87 
+	gcheckNum”icTy³
+<>();
+
+89 
+SECTION
+("UInt") {
+
+90 
+	gcheckNum”icTy³
+<>();
+
+92 
+SECTION
+("ULong") {
+
+93 
+	gcheckNum”icTy³
+<>();
+
+95 
+SECTION
+("UShort") {
+
+96 
+	gcheckNum”icTy³
+<>();
+
+98 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+99 
+SECTION
+("LongLong") {
+
+100 
+	gcheckNum”icTy³
+<>();
+
+102 
+SECTION
+("ULongLong") {
+
+103 
+	gcheckNum”icTy³
+<>();
+
+107 
+SECTION
+("Int8") {
+
+108 
+	gcheckNum”icTy³
+<
+	gšt8_t
+>();
+
+110 
+SECTION
+("Uint8") {
+
+111 
+	gcheckNum”icTy³
+<
+	gušt8_t
+>();
+
+113 
+SECTION
+("Int16") {
+
+114 
+	gcheckNum”icTy³
+<
+	gšt16_t
+>();
+
+116 
+SECTION
+("Uint16") {
+
+117 
+	gcheckNum”icTy³
+<
+	gušt16_t
+>();
+
+119 
+SECTION
+("Int32") {
+
+120 
+	gcheckNum”icTy³
+<
+	gšt32_t
+>();
+
+122 
+SECTION
+("Uint32") {
+
+123 
+	gcheckNum”icTy³
+<
+	gušt32_t
+>();
+
+125 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+126 
+SECTION
+("Int64") {
+
+127 
+	gcheckNum”icTy³
+<
+	gšt64_t
+>();
+
+129 
+SECTION
+("Uint64") {
+
+130 
+	gcheckNum”icTy³
+<
+	gušt64_t
+>();
+
+134 
+SECTION
+("CanStoreObject") {
+
+135 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+136 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+doc
+.
+to
+<JsonObject>();
+
+138 
+	gcheckV®ue
+<
+	gJsÚObjeù
+>(
+	gobjeù
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/JsonVariant/undefined.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("JsonVariant undefined") {
+
+9 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+;
+
+11 
+SECTION
+("as<T>()") {
+
+12 
+SECTION
+("long") {
+
+13 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0);
+
+16 
+SECTION
+("unsigned") {
+
+17 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0);
+
+20 
+SECTION
+("char*") {
+
+21 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<*>() == 0);
+
+24 
+SECTION
+("double") {
+
+25 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<>() == 0);
+
+28 
+SECTION
+("bool") {
+
+29 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+boÞ
+>(è=ð
+çl£
+);
+
+32 
+SECTION
+("JsonArray") {
+
+33 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+JsÚA¼ay
+>().
+isNuÎ
+());
+
+36 
+SECTION
+("JsonObject") {
+
+37 
+REQUIRE
+(
+v¬ŸÁ
+.
+as
+<
+JsÚObjeù
+>().
+isNuÎ
+());
+
+41 
+SECTION
+("is<T>()") {
+
+42 
+SECTION
+("long") {
+
+43 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<>(è=ð
+çl£
+);
+
+46 
+SECTION
+("unsigned") {
+
+47 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<>(è=ð
+çl£
+);
+
+50 
+SECTION
+("char*") {
+
+51 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<*>(è=ð
+çl£
+);
+
+54 
+SECTION
+("double") {
+
+55 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<>(è=ð
+çl£
+);
+
+58 
+SECTION
+("bool") {
+
+59 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+boÞ
+>(è=ð
+çl£
+);
+
+62 
+SECTION
+("JsonArray") {
+
+63 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+JsÚA¼ay
+>(è=ð
+çl£
+);
+
+66 
+SECTION
+("JsonObject") {
+
+67 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+JsÚObjeù
+>(è=ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/add.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::add()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, cÚ¡ *> 
+	gmp
+ = 
+doc
+["hello"];
+
+14 
+SECTION
+("add(int)") {
+
+15 
+	gmp
+.
+add
+(42);
+
+17 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":[42]}");
+
+20 
+SECTION
+("add(const char*)") {
+
+21 
+	gmp
+.
+add
+("world");
+
+23 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":[\"world\"]}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/clear.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::clear()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, cÚ¡ *> 
+	gmp
+ = 
+doc
+["hello"];
+
+14 
+SECTION
+("size goes back�o zero") {
+
+15 
+	gmp
+.
+add
+(42);
+
+16 
+	gmp
+.
+þ—r
+();
+
+18 
+REQUIRE
+(
+mp
+.
+size
+() == 0);
+
+21 
+SECTION
+("isNull()„eturn�rue") {
+
+22 
+	gmp
+.
+add
+("hello");
+
+23 
+	gmp
+.
+þ—r
+();
+
+25 
+REQUIRE
+(
+mp
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/compare.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::operator==()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+13 
+SECTION
+("same values") {
+
+14 
+	gdoc
+["key1"] = "value";
+
+15 
+	gdoc
+["key2"] = "value";
+
+16 
+REQUIRE
+(
+doc
+["key1"] == doc["key2"]);
+
+17 
+REQUIRE_FALSE
+(
+doc
+["key1"] != doc["key2"]);
+
+20 
+SECTION
+("different values") {
+
+21 
+	gdoc
+["key1"] = "value1";
+
+22 
+	gdoc
+["key2"] = "value2";
+
+23 
+REQUIRE_FALSE
+(
+doc
+["key1"] == doc["key2"]);
+
+24 
+REQUIRE
+(
+doc
+["key1"] != doc["key2"]);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/containsKey.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::containsKey()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, cÚ¡ *> 
+	gmp
+ = 
+doc
+["hello"];
+
+14 
+SECTION
+("containsKey(const char*)") {
+
+15 
+	gmp
+["key"] = "value";
+
+17 
+REQUIRE
+(
+mp
+.
+cÚ�šsKey
+("key"è=ð
+Œue
+);
+
+18 
+REQUIRE
+(
+mp
+.
+cÚ�šsKey
+("key"è=ð
+Œue
+);
+
+21 
+SECTION
+("containsKey(std::string)") {
+
+22 
+	gmp
+["key"] = "value";
+
+24 
+REQUIRE
+(
+mp
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("key")è=ð
+Œue
+);
+
+25 
+REQUIRE
+(
+mp
+.
+cÚ�šsKey
+(
+¡d
+::
+¡ršg
+("key")è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/remove.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::remove()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, cÚ¡ *> 
+	gmp
+ = 
+doc
+["hello"];
+
+14 
+SECTION
+("remove(int)") {
+
+15 
+	gmp
+.
+add
+(1);
+
+16 
+	gmp
+.
+add
+(2);
+
+17 
+	gmp
+.
+add
+(3);
+
+19 
+	gmp
+.
+»move
+(1);
+
+21 
+REQUIRE
+(
+mp
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "[1,3]");
+
+24 
+SECTION
+("remove(const char *)") {
+
+25 
+	gmp
+["a"] = 1;
+
+26 
+	gmp
+["b"] = 2;
+
+28 
+	gmp
+.
+»move
+("a");
+
+30 
+REQUIRE
+(
+mp
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"b\":2}");
+
+33 
+SECTION
+("remove(std::string)") {
+
+34 
+	gmp
+["a"] = 1;
+
+35 
+	gmp
+["b"] = 2;
+
+37 
+	gmp
+.
+»move
+(
+¡d
+::
+¡ršg
+("b"));
+
+39 
+REQUIRE
+(
+mp
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1}");
+
+42 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+43 
+SECTION
+("remove(vla)") {
+
+44 
+	gmp
+["a"] = 1;
+
+45 
+	gmp
+["b"] = 2;
+
+47 
+	gi
+ = 4;
+
+48 
+	gvÏ
+[
+i
+];
+
+49 
+¡rýy
+(
+vÏ
+, "b");
+
+50 
+	gmp
+.
+»move
+(
+vÏ
+);
+
+52 
+REQUIRE
+(
+mp
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"a\":1}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/set.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::set()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, cÚ¡ *> 
+	gmp
+ = 
+doc
+["hello"];
+
+14 
+SECTION
+("set(int)") {
+
+15 
+	gmp
+.
+£t
+(42);
+
+17 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":42}");
+
+20 
+SECTION
+("set(const char*)") {
+
+21 
+	gmp
+.
+£t
+("world");
+
+23 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":\"world\"}");
+
+26 
+SECTION
+("set(char[])") {
+
+27 
+	gs
+[] = "world";
+
+28 
+	gmp
+.
+£t
+(
+s
+);
+
+29 
+¡rýy
+(
+s
+, "!!!!!");
+
+31 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":\"world\"}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/size.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::size()") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, cÚ¡ *> 
+	gmp
+ = 
+doc
+["hello"];
+
+14 
+SECTION
+("returns 0") {
+
+15 
+REQUIRE
+(
+mp
+.
+size
+() == 0);
+
+18 
+SECTION
+("as‡n‡rray,„eturn 2") {
+
+19 
+	gmp
+.
+add
+(1);
+
+20 
+	gmp
+.
+add
+(2);
+
+22 
+REQUIRE
+(
+mp
+.
+size
+() == 2);
+
+25 
+SECTION
+("as‡n object,„eturn 2") {
+
+26 
+	gmp
+["a"] = 1;
+
+27 
+	gmp
+["b"] = 2;
+
+29 
+REQUIRE
+(
+mp
+.
+size
+() == 2);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemberProxy/subscript.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemberProxy::operator[]") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+12 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, cÚ¡ *> 
+	gmp
+ = 
+doc
+["hello"];
+
+14 
+SECTION
+("set member") {
+
+15 
+	gmp
+["world"] = 42;
+
+17 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":{\"world\":42}}");
+
+20 
+SECTION
+("setƒlement") {
+
+21 
+	gmp
+[2] = 42;
+
+23 
+REQUIRE
+(
+doc
+.
+as
+<
+¡d
+::
+¡ršg
+>() == "{\"hello\":[null,null,42]}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MemoryPool/StringBuilder.cpp
+
+5 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+6 
+	~<ArdušoJsÚ/MemÜy/SŒšgBužd”.hµ
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+11 
+TEST_CASE
+("StringBuilder") {
+
+12 
+	gbufãr
+[4096];
+
+14 
+SECTION
+("Works when buffer is bigƒnough") {
+
+15 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, 
+addPaddšg
+(
+JSON_STRING_SIZE
+(6)));
+
+17 
+SŒšgBužd”
+ 
+¡r
+(&
+poÞ
+);
+
+18 
+	g¡r
+.
+­³nd
+("hello");
+
+20 
+REQUIRE
+(
+¡r
+.
+com¶‘e
+(è=ð
+¡d
+::
+¡ršg
+("hello"));
+
+23 
+SECTION
+("Returns‚ull when�oo small") {
+
+24 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, (*));
+
+26 
+SŒšgBužd”
+ 
+¡r
+(&
+poÞ
+);
+
+27 
+	g¡r
+.
+­³nd
+("hello world!");
+
+29 
+REQUIRE
+(
+¡r
+.
+com¶‘e
+() == 0);
+
+32 
+SECTION
+("Increases size of memory…ool") {
+
+33 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, 
+addPaddšg
+(
+JSON_STRING_SIZE
+(6)));
+
+35 
+SŒšgBužd”
+ 
+¡r
+(&
+poÞ
+);
+
+36 
+	g¡r
+.
+­³nd
+('h');
+
+37 
+	g¡r
+.
+com¶‘e
+();
+
+39 
+REQUIRE
+(
+JSON_STRING_SIZE
+(2è=ð
+poÞ
+.
+size
+());
+
+	@lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocString.cpp
+
+5 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemoryPool::allocFrozenString()") {
+
+11 cÚ¡ 
+size_t
+ 
+	gpoÞC­ac™y
+ = 64;
+
+12 cÚ¡ 
+size_t
+ 
+	glÚge¡SŒšg
+ = 
+poÞC­ac™y
+;
+
+13 
+	gbufãr
+[
+poÞC­ac™y
+];
+
+14 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, 
+poÞC­ac™y
+);
+
+16 
+SECTION
+("Returns different‡ddresses") {
+
+17 *
+	ga
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(1);
+
+18 *
+	gb
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(1);
+
+19 
+REQUIRE
+(
+a
+ !ð
+b
+);
+
+22 
+SECTION
+("Returns NULL when full") {
+
+23 *
+	gp1
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(
+lÚge¡SŒšg
+);
+
+24 
+REQUIRE
+(
+p1
+ != 0);
+
+26 *
+	gp2
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(1);
+
+27 
+REQUIRE
+(
+p2
+ == 0);
+
+30 
+SECTION
+("Returns NULL when…ool is�oo small") {
+
+31 *
+	gp
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(
+lÚge¡SŒšg
+ + 1);
+
+32 
+REQUIRE
+(0 =ð
+p
+);
+
+35 
+SECTION
+("Returns NULL when buffer is NULL") {
+
+36 
+MemÜyPoÞ
+ 
+poÞ2
+(0, 
+poÞC­ac™y
+);
+
+37 
+REQUIRE
+(0 =ð
+poÞ2
+.
+®locFroz’SŒšg
+(2));
+
+40 
+SECTION
+("Returns NULL when capacity is 0") {
+
+41 
+MemÜyPoÞ
+ 
+poÞ2
+(
+bufãr
+, 0);
+
+42 
+REQUIRE
+(0 =ð
+poÞ2
+.
+®locFroz’SŒšg
+(2));
+
+45 
+SECTION
+("Returns same‡ddress‡fter clear()") {
+
+46 *
+	ga
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(1);
+
+47 
+	gpoÞ
+.
+þ—r
+();
+
+48 *
+	gb
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(1);
+
+50 
+REQUIRE
+(
+a
+ =ð
+b
+);
+
+53 
+SECTION
+("Can use full capacity when fresh") {
+
+54 *
+	ga
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(
+lÚge¡SŒšg
+);
+
+56 
+REQUIRE
+(
+a
+ != 0);
+
+59 
+SECTION
+("Can use full capacity‡fter clear") {
+
+60 
+	gpoÞ
+.
+®locFroz’SŒšg
+(
+lÚge¡SŒšg
+);
+
+61 
+	gpoÞ
+.
+þ—r
+();
+
+63 *
+	ga
+ = 
+poÞ
+.
+®locFroz’SŒšg
+(
+lÚge¡SŒšg
+);
+
+65 
+REQUIRE
+(
+a
+ != 0);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocVariant.cpp
+
+5 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemoryPool::allocVariant()") {
+
+11 
+	gbufãr
+[4096];
+
+13 
+SECTION
+("Returns different…ointer") {
+
+14 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, (buffer));
+
+16 
+V¬ŸÁSlÙ
+* 
+	gs1
+ = 
+poÞ
+.
+®locV¬ŸÁ
+();
+
+17 
+REQUIRE
+(
+s1
+ != 0);
+
+18 
+V¬ŸÁSlÙ
+* 
+	gs2
+ = 
+poÞ
+.
+®locV¬ŸÁ
+();
+
+19 
+REQUIRE
+(
+s2
+ != 0);
+
+21 
+REQUIRE
+(
+s1
+ !ð
+s2
+);
+
+24 
+SECTION
+("Returns‡ligned…ointers") {
+
+25 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, (buffer));
+
+27 
+REQUIRE
+(
+isAligÃd
+(
+poÞ
+.
+®locV¬ŸÁ
+()));
+
+28 
+REQUIRE
+(
+isAligÃd
+(
+poÞ
+.
+®locV¬ŸÁ
+()));
+
+31 
+SECTION
+("Returns zero if capacity is 0") {
+
+32 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, 0);
+
+34 
+REQUIRE
+(
+poÞ
+.
+®locV¬ŸÁ
+() == 0);
+
+37 
+SECTION
+("Returns zero if buffer is‚ull") {
+
+38 
+MemÜyPoÞ
+ 
+poÞ
+(0, (
+bufãr
+));
+
+40 
+REQUIRE
+(
+poÞ
+.
+®locV¬ŸÁ
+() == 0);
+
+43 
+SECTION
+("Returns zero if capacity is insufficient") {
+
+44 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, (
+V¬ŸÁSlÙ
+));
+
+46 
+	gpoÞ
+.
+®locV¬ŸÁ
+();
+
+48 
+REQUIRE
+(
+poÞ
+.
+®locV¬ŸÁ
+() == 0);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemoryPool/clear.cpp
+
+5 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 cÚ¡ 
+size_t
+ 
+	gpoÞC­ac™y
+ = 512;
+
+12 
+TEST_CASE
+("MemoryPool::clear()") {
+
+13 
+	gbufãr
+[
+poÞC­ac™y
+];
+
+14 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, (buffer));
+
+16 
+SECTION
+("Discards‡llocated variants") {
+
+17 
+	gpoÞ
+.
+®locV¬ŸÁ
+();
+
+19 
+	gpoÞ
+.
+þ—r
+();
+
+20 
+REQUIRE
+(
+poÞ
+.
+size
+() == 0);
+
+23 
+SECTION
+("Discards‡llocated strings") {
+
+24 
+	gpoÞ
+.
+®locFroz’SŒšg
+(10);
+
+25 
+REQUIRE
+(
+poÞ
+.
+size
+() > 0);
+
+27 
+	gpoÞ
+.
+þ—r
+();
+
+29 
+REQUIRE
+(
+poÞ
+.
+size
+() == 0);
+
+	@lib_standalone/ArduinoJson/extras/tests/MemoryPool/size.cpp
+
+5 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("MemoryPool::capacity()") {
+
+11 
+	gbufãr
+[4096];
+
+12 cÚ¡ 
+size_t
+ 
+	gÿ·c™y
+ = 64;
+
+13 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, 
+ÿ·c™y
+);
+
+14 
+REQUIRE
+(
+ÿ·c™y
+ =ð
+poÞ
+.capacity());
+
+17 
+TEST_CASE
+("MemoryPool::size()") {
+
+18 
+	gbufãr
+[4096];
+
+19 
+MemÜyPoÞ
+ 
+poÞ
+(
+bufãr
+, (buffer));
+
+21 
+SECTION
+("Initial size is 0") {
+
+22 
+REQUIRE
+(0 =ð
+poÞ
+.
+size
+());
+
+25 
+SECTION
+("size() == capacity()‡fter‡llocExpandableString()") {
+
+26 
+	gpoÞ
+.
+®locEx·ndabËSŒšg
+();
+
+27 
+REQUIRE
+(
+poÞ
+.
+size
+(è=ðpoÞ.
+ÿ·c™y
+());
+
+30 
+SECTION
+("Decreases‡fter freezeString()") {
+
+31 
+SŒšgSlÙ
+ 
+	ga
+ = 
+poÞ
+.
+®locEx·ndabËSŒšg
+();
+
+32 
+	gpoÞ
+.
+ä“zeSŒšg
+(
+a
+, 1);
+
+33 
+REQUIRE
+(
+poÞ
+.
+size
+(è=ð
+JSON_STRING_SIZE
+(1));
+
+35 
+SŒšgSlÙ
+ 
+	gb
+ = 
+poÞ
+.
+®locEx·ndabËSŒšg
+();
+
+36 
+	gpoÞ
+.
+ä“zeSŒšg
+(
+b
+, 1);
+
+37 
+REQUIRE
+(
+poÞ
+.
+size
+(è=ð2 * 
+JSON_STRING_SIZE
+(1));
+
+40 
+SECTION
+("Increases‡fter‡llocFrozenString()") {
+
+41 
+	gpoÞ
+.
+®locFroz’SŒšg
+(0);
+
+42 
+REQUIRE
+(
+poÞ
+.
+size
+(è=ð
+JSON_STRING_SIZE
+(0));
+
+44 
+	gpoÞ
+.
+®locFroz’SŒšg
+(0);
+
+45 
+REQUIRE
+(
+poÞ
+.
+size
+(è=ð2 * 
+JSON_STRING_SIZE
+(0));
+
+48 
+SECTION
+("Doesn't grow when memory…ool is full") {
+
+49 cÚ¡ 
+size_t
+ 
+	gv¬ŸÁCouÁ
+ = (
+bufãr
+è/ (
+V¬ŸÁSlÙ
+);
+
+51 
+size_t
+ 
+	gi
+ = 0; i < 
+	gv¬ŸÁCouÁ
+; i++è
+	gpoÞ
+.
+®locV¬ŸÁ
+();
+
+52 
+size_t
+ 
+	gsize
+ = 
+poÞ
+.
+size
+();
+
+54 
+	gpoÞ
+.
+®locV¬ŸÁ
+();
+
+56 
+REQUIRE
+(
+size
+ =ð
+poÞ
+.size());
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/FloatParts.cpp
+
+5 
+	~<ArdušoJsÚ/Numb”s/FlßtP¬ts.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("FloatParts<double>") {
+
+11 
+SECTION
+("1.7976931348623157E+308") {
+
+12 
+	gFlßtP¬ts
+<> 
+·¹s
+(1.7976931348623157E+308);
+
+13 
+REQUIRE
+(
+·¹s
+.
+š‹g¿l
+ == 1);
+
+14 
+REQUIRE
+(
+·¹s
+.
+decim®
+ == 797693135);
+
+15 
+REQUIRE
+(
+·¹s
+.
+decim®PÏûs
+ == 9);
+
+16 
+REQUIRE
+(
+·¹s
+.
+expÚ’t
+ == 308);
+
+19 
+SECTION
+("4.94065645841247e-324") {
+
+20 
+	gFlßtP¬ts
+<> 
+·¹s
+(4.94065645841247e-324);
+
+21 
+REQUIRE
+(
+·¹s
+.
+š‹g¿l
+ == 4);
+
+22 
+REQUIRE
+(
+·¹s
+.
+decim®
+ == 940656458);
+
+23 
+REQUIRE
+(
+·¹s
+.
+decim®PÏûs
+ == 9);
+
+24 
+REQUIRE
+(
+·¹s
+.
+expÚ’t
+ == -324);
+
+28 
+TEST_CASE
+("FloatParts<float>") {
+
+29 
+SECTION
+("3.4E+38") {
+
+30 
+	gFlßtP¬ts
+<> 
+·¹s
+(3.4E+38f);
+
+31 
+REQUIRE
+(
+·¹s
+.
+š‹g¿l
+ == 3);
+
+32 
+REQUIRE
+(
+·¹s
+.
+decim®
+ == 4);
+
+33 
+REQUIRE
+(
+·¹s
+.
+decim®PÏûs
+ == 1);
+
+34 
+REQUIRE
+(
+·¹s
+.
+expÚ’t
+ == 38);
+
+37 
+SECTION
+("1.17549435eâˆ’38") {
+
+38 
+	gFlßtP¬ts
+<> 
+·¹s
+(1.17549435e-38f);
+
+39 
+REQUIRE
+(
+·¹s
+.
+š‹g¿l
+ == 1);
+
+40 
+REQUIRE
+(
+·¹s
+.
+decim®
+ == 175494);
+
+41 
+REQUIRE
+(
+·¹s
+.
+decim®PÏûs
+ == 6);
+
+42 
+REQUIRE
+(
+·¹s
+.
+expÚ’t
+ == -38);
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/Issue1189.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+8 
+	$f
+(
+JsÚDocum’t
+è{
+	}
+}
+
+10 
+	$maš
+() {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(1024);
+
+12 
+	`f
+(
+doc
+);
+
+13 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/Issue978.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+7 
+	sSŒ—m
+ {};
+
+9 
+	$maš
+() {
+
+10 
+SŒ—m
+* 
+¡»am
+ = 0;
+
+11 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(1024);
+
+12 
+	`de£rŸlizeJsÚ
+(
+doc
+, 
+¡»am
+);
+
+13 
+	}
+}
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/Readers.cpp
+
+5 
+	#ARDUINOJSON_ENABLE_ARDUINO_STREAM
+ 1
+
+	)
+
+6 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”.hµ
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+11 
+TEST_CASE
+("Reader<std::istringstream>") {
+
+12 
+SECTION
+("read()") {
+
+13 
+	g¡d
+::
+i¡ršg¡»am
+ 
+¤c
+("\x01\xFF");
+
+14 
+	gR—d”
+<
+	g¡d
+::
+i¡ršg¡»am
+> 
+»ad”
+(
+¤c
+);
+
+16 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x01);
+
+17 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0xFF);
+
+18 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == -1);
+
+21 
+SECTION
+("readBytes()‡ll‡t once") {
+
+22 
+	g¡d
+::
+i¡ršg¡»am
+ 
+¤c
+("ABC");
+
+23 
+	gR—d”
+<
+	g¡d
+::
+i¡ršg¡»am
+> 
+»ad”
+(
+¤c
+);
+
+25 
+	gbufãr
+[8] = "abcd";
+
+26 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 3);
+
+28 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+29 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+30 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+31 
+REQUIRE
+(
+bufãr
+[3] == 'd');
+
+34 
+SECTION
+("readBytes() in�wo…arts") {
+
+35 
+	g¡d
+::
+i¡ršg¡»am
+ 
+¤c
+("ABCDEF");
+
+36 
+	gR—d”
+<
+	g¡d
+::
+i¡ršg¡»am
+> 
+»ad”
+(
+¤c
+);
+
+38 
+	gbufãr
+[12] = "abcdefg";
+
+39 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 4);
+
+40 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+ + 4, 4) == 2);
+
+42 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+43 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+44 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+45 
+REQUIRE
+(
+bufãr
+[3] == 'D');
+
+46 
+REQUIRE
+(
+bufãr
+[4] == 'E');
+
+47 
+REQUIRE
+(
+bufãr
+[5] == 'F');
+
+48 
+REQUIRE
+(
+bufãr
+[6] == 'g');
+
+52 
+TEST_CASE
+("BoundedReader<const char*>") {
+
+53 
+SECTION
+("read") {
+
+54 
+	gBoundedR—d”
+<cÚ¡ *> 
+»ad”
+("\x01\xFF", 2);
+
+55 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x01);
+
+56 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0xFF);
+
+57 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == -1);
+
+58 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == -1);
+
+61 
+SECTION
+("readBytes()‡ll‡t once") {
+
+62 
+	gBoundedR—d”
+<cÚ¡ *> 
+»ad”
+("ABCD", 3);
+
+64 
+	gbufãr
+[8] = "abcd";
+
+65 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 3);
+
+67 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+68 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+69 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+70 
+REQUIRE
+(
+bufãr
+[3] == 'd');
+
+73 
+SECTION
+("readBytes() in�wo…arts") {
+
+74 
+	gBoundedR—d”
+<cÚ¡ *> 
+»ad”
+("ABCDEF", 6);
+
+76 
+	gbufãr
+[8] = "abcdefg";
+
+77 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 4);
+
+78 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+ + 4, 4) == 2);
+
+80 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+81 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+82 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+83 
+REQUIRE
+(
+bufãr
+[3] == 'D');
+
+84 
+REQUIRE
+(
+bufãr
+[4] == 'E');
+
+85 
+REQUIRE
+(
+bufãr
+[5] == 'F');
+
+86 
+REQUIRE
+(
+bufãr
+[6] == 'g');
+
+90 
+TEST_CASE
+("Reader<const char*>") {
+
+91 
+SECTION
+("read()") {
+
+92 
+	gR—d”
+<cÚ¡ *> 
+»ad”
+("\x01\xFF\x00\x12");
+
+93 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x01);
+
+94 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0xFF);
+
+95 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0);
+
+96 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x12);
+
+99 
+SECTION
+("readBytes()‡ll‡t once") {
+
+100 
+	gR—d”
+<cÚ¡ *> 
+»ad”
+("ABCD");
+
+102 
+	gbufãr
+[8] = "abcd";
+
+103 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 3) == 3);
+
+105 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+106 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+107 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+108 
+REQUIRE
+(
+bufãr
+[3] == 'd');
+
+111 
+SECTION
+("readBytes() in�wo…arts") {
+
+112 
+	gR—d”
+<cÚ¡ *> 
+»ad”
+("ABCDEF");
+
+114 
+	gbufãr
+[8] = "abcdefg";
+
+115 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 4);
+
+116 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+ + 4, 2) == 2);
+
+118 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+119 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+120 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+121 
+REQUIRE
+(
+bufãr
+[3] == 'D');
+
+122 
+REQUIRE
+(
+bufãr
+[4] == 'E');
+
+123 
+REQUIRE
+(
+bufãr
+[5] == 'F');
+
+124 
+REQUIRE
+(
+bufãr
+[6] == 'g');
+
+128 
+TEST_CASE
+("IteratorReader") {
+
+129 
+SECTION
+("read()") {
+
+130 
+	g¡d
+::
+¡ršg
+ 
+¤c
+("\x01\xFF");
+
+131 
+	gI‹¿tÜR—d”
+<
+	g¡d
+::
+¡ršg
+::
+cÚ¡_™”©Ü
+> 
+»ad”
+(
+¤c
+.
+begš
+(), src.
+’d
+());
+
+133 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x01);
+
+134 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0xFF);
+
+135 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == -1);
+
+138 
+SECTION
+("readBytes()‡ll‡t once") {
+
+139 
+	g¡d
+::
+¡ršg
+ 
+¤c
+("ABC");
+
+140 
+	gI‹¿tÜR—d”
+<
+	g¡d
+::
+¡ršg
+::
+cÚ¡_™”©Ü
+> 
+»ad”
+(
+¤c
+.
+begš
+(), src.
+’d
+());
+
+142 
+	gbufãr
+[8] = "abcd";
+
+143 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 3);
+
+145 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+146 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+147 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+148 
+REQUIRE
+(
+bufãr
+[3] == 'd');
+
+151 
+SECTION
+("readBytes() in�wo…arts") {
+
+152 
+	g¡d
+::
+¡ršg
+ 
+¤c
+("ABCDEF");
+
+153 
+	gI‹¿tÜR—d”
+<
+	g¡d
+::
+¡ršg
+::
+cÚ¡_™”©Ü
+> 
+»ad”
+(
+¤c
+.
+begš
+(), src.
+’d
+());
+
+155 
+	gbufãr
+[12] = "abcdefg";
+
+156 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 4);
+
+157 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+ + 4, 4) == 2);
+
+159 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+160 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+161 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+162 
+REQUIRE
+(
+bufãr
+[3] == 'D');
+
+163 
+REQUIRE
+(
+bufãr
+[4] == 'E');
+
+164 
+REQUIRE
+(
+bufãr
+[5] == 'F');
+
+165 
+REQUIRE
+(
+bufãr
+[6] == 'g');
+
+169 þas 
+	cSŒ—mStub
+ : 
+public
+ 
+SŒ—m
+ {
+
+170 
+public
+:
+
+171 
+	$SŒ—mStub
+(cÚ¡ * 
+s
+è: 
+	$_¡»am
+(
+s
+) {}
+
+173 
+	$»ad
+() {
+
+174  
+_¡»am
+.
+	`g‘
+();
+
+175 
+	}
+}
+
+177 
+size_t
+ 
+	$»adBy‹s
+(* 
+bufãr
+, 
+size_t
+ 
+Ëngth
+) {
+
+178 
+_¡»am
+.
+	`»ad
+(
+bufãr
+, 
+¡©ic_ÿ¡
+<
+¡d
+::
+¡»amsize
+>(
+Ëngth
+));
+
+179  
+¡©ic_ÿ¡
+<
+size_t
+>(
+_¡»am
+.
+	`gcouÁ
+());
+
+180 
+	}
+}
+
+182 
+	g´iv©e
+:
+
+183 
+¡d
+::
+i¡ršg¡»am
+ 
+_¡»am
+;
+
+186 
+TEST_CASE
+("Reader<Stream>") {
+
+187 
+SECTION
+("read()") {
+
+188 
+SŒ—mStub
+ 
+¤c
+("\x01\xFF");
+
+189 
+	gR—d”
+<
+	gSŒ—mStub
+> 
+»ad”
+(
+¤c
+);
+
+191 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x01);
+
+192 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0xFF);
+
+193 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == -1);
+
+196 
+SECTION
+("readBytes()‡ll‡t once") {
+
+197 
+SŒ—mStub
+ 
+¤c
+("ABC");
+
+198 
+	gR—d”
+<
+	gSŒ—mStub
+> 
+»ad”
+(
+¤c
+);
+
+200 
+	gbufãr
+[8] = "abcd";
+
+201 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 3);
+
+203 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+204 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+205 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+206 
+REQUIRE
+(
+bufãr
+[3] == 'd');
+
+209 
+SECTION
+("readBytes() in�wo…arts") {
+
+210 
+SŒ—mStub
+ 
+¤c
+("ABCDEF");
+
+211 
+	gR—d”
+<
+	gSŒ—mStub
+> 
+»ad”
+(
+¤c
+);
+
+213 
+	gbufãr
+[12] = "abcdefg";
+
+214 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 4);
+
+215 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+ + 4, 4) == 2);
+
+217 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+218 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+219 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+220 
+REQUIRE
+(
+bufãr
+[3] == 'D');
+
+221 
+REQUIRE
+(
+bufãr
+[4] == 'E');
+
+222 
+REQUIRE
+(
+bufãr
+[5] == 'F');
+
+223 
+REQUIRE
+(
+bufãr
+[6] == 'g');
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/StringAdapters.cpp
+
+5 
+	~"cu¡om_¡ršg.hµ
+"
+
+6 
+	~"´ogmem_emuÏtiÚ.hµ
+"
+
+7 
+	~"weœd_¡rcmp.hµ
+"
+
+9 
+	~<ArdušoJsÚ/SŒšgs/CÚ¡RamSŒšgAd­‹r.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/FÏshSŒšgAd­‹r.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgs/SizedRamSŒšgAd­‹r.hµ
+>
+
+12 
+	~<ArdušoJsÚ/SŒšgs/SŽSŒšgAd­‹r.hµ
+>
+
+14 
+	~<ÿtch.hµ
+>
+
+16 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+18 
+TEST_CASE
+("ConstRamStringAdapter") {
+
+19 
+SECTION
+("null") {
+
+20 
+CÚ¡RamSŒšgAd­‹r
+ 
+ad­‹r
+(
+NULL
+);
+
+22 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") < 0);
+
+23 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) == 0);
+
+25 
+CHECK
+(
+ad­‹r
+.
+equ®s
+(
+NULL
+));
+
+26 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+28 
+CHECK
+(
+ad­‹r
+.
+size
+() == 0);
+
+31 
+SECTION
+("non-null") {
+
+32 
+CÚ¡RamSŒšgAd­‹r
+ 
+ad­‹r
+("bravo");
+
+34 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) > 0);
+
+35 
+CHECK
+(
+ad­‹r
+.
+com·»
+("alpha") > 0);
+
+36 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") == 0);
+
+37 
+CHECK
+(
+ad­‹r
+.
+com·»
+("charlie") < 0);
+
+39 
+CHECK
+(
+ad­‹r
+.
+equ®s
+("bravo"));
+
+40 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+42 
+CHECK
+(
+ad­‹r
+.
+size
+() == 5);
+
+46 
+TEST_CASE
+("SizedRamStringAdapter") {
+
+47 
+SECTION
+("null") {
+
+48 
+SizedRamSŒšgAd­‹r
+ 
+ad­‹r
+(
+NULL
+, 10);
+
+50 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") < 0);
+
+51 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) == 0);
+
+53 
+CHECK
+(
+ad­‹r
+.
+equ®s
+(
+NULL
+));
+
+54 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+56 
+CHECK
+(
+ad­‹r
+.
+size
+() == 10);
+
+59 
+SECTION
+("non-null") {
+
+60 
+SizedRamSŒšgAd­‹r
+ 
+ad­‹r
+("bravo", 5);
+
+62 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) > 0);
+
+63 
+CHECK
+(
+ad­‹r
+.
+com·»
+("alpha") > 0);
+
+64 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") == 0);
+
+65 
+CHECK
+(
+ad­‹r
+.
+com·»
+("charlie") < 0);
+
+67 
+CHECK
+(
+ad­‹r
+.
+equ®s
+("bravo"));
+
+68 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+70 
+CHECK
+(
+ad­‹r
+.
+size
+() == 5);
+
+74 
+TEST_CASE
+("FlashStringAdapter") {
+
+75 
+SECTION
+("null") {
+
+76 
+FÏshSŒšgAd­‹r
+ 
+ad­‹r
+(
+NULL
+);
+
+78 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") < 0);
+
+79 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) == 0);
+
+81 
+CHECK
+(
+ad­‹r
+.
+equ®s
+(
+NULL
+));
+
+82 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+84 
+CHECK
+(
+ad­‹r
+.
+size
+() == 0);
+
+87 
+SECTION
+("non-null") {
+
+88 
+FÏshSŒšgAd­‹r
+ 
+	gad­‹r
+ = 
+ad­tSŒšg
+(
+F
+("bravo"));
+
+90 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) > 0);
+
+91 
+CHECK
+(
+ad­‹r
+.
+com·»
+("alpha") > 0);
+
+92 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") == 0);
+
+93 
+CHECK
+(
+ad­‹r
+.
+com·»
+("charlie") < 0);
+
+95 
+CHECK
+(
+ad­‹r
+.
+equ®s
+("bravo"));
+
+96 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+98 
+CHECK
+(
+ad­‹r
+.
+size
+() == 5);
+
+102 
+TEST_CASE
+("std::string") {
+
+103 
+	g¡d
+::
+¡ršg
+ 
+¡r
+("bravo");
+
+104 
+	gSŽSŒšgAd­‹r
+<
+	g¡d
+::
+¡ršg
+> 
+ad­‹r
+ = 
+ad­tSŒšg
+(
+¡r
+);
+
+106 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) > 0);
+
+107 
+CHECK
+(
+ad­‹r
+.
+com·»
+("alpha") > 0);
+
+108 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") == 0);
+
+109 
+CHECK
+(
+ad­‹r
+.
+com·»
+("charlie") < 0);
+
+111 
+CHECK
+(
+ad­‹r
+.
+equ®s
+("bravo"));
+
+112 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+114 
+CHECK
+(
+ad­‹r
+.
+size
+() == 5);
+
+117 
+TEST_CASE
+("custom_string") {
+
+118 
+cu¡om_¡ršg
+ 
+¡r
+("bravo");
+
+119 
+	gSŽSŒšgAd­‹r
+<
+	gcu¡om_¡ršg
+> 
+	gad­‹r
+ = 
+ad­tSŒšg
+(
+¡r
+);
+
+121 
+CHECK
+(
+ad­‹r
+.
+com·»
+(
+NULL
+) > 0);
+
+122 
+CHECK
+(
+ad­‹r
+.
+com·»
+("alpha") > 0);
+
+123 
+CHECK
+(
+ad­‹r
+.
+com·»
+("bravo") == 0);
+
+124 
+CHECK
+(
+ad­‹r
+.
+com·»
+("charlie") < 0);
+
+126 
+CHECK
+(
+ad­‹r
+.
+equ®s
+("bravo"));
+
+127 
+CHECK_FALSE
+(
+ad­‹r
+.
+equ®s
+("charlie"));
+
+129 
+CHECK
+(
+ad­‹r
+.
+size
+() == 5);
+
+132 
+TEST_CASE
+("IsString<T>") {
+
+133 
+SECTION
+("std::string") {
+
+134 
+CHECK
+(
+IsSŒšg
+<
+¡d
+::
+¡ršg
+>::
+v®ue
+ =ð
+Œue
+);
+
+137 
+SECTION
+("basic_string<wchar_t>") {
+
+138 
+CHECK
+(
+IsSŒšg
+<
+¡d
+::
+basic_¡ršg
+<
+wch¬_t
+> >::
+v®ue
+ =ð
+çl£
+);
+
+141 
+SECTION
+("custom_string") {
+
+142 
+CHECK
+(
+IsSŒšg
+<
+cu¡om_¡ršg
+>::
+v®ue
+ =ð
+Œue
+);
+
+145 
+SECTION
+("const __FlashStringHelper*") {
+
+146 
+CHECK
+(
+IsSŒšg
+<cÚ¡ 
+__FÏshSŒšgH–³r
+*>::
+v®ue
+ =ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/StringWriter.cpp
+
+5 
+	#ARDUINOJSON_ENABLE_ARDUINO_STRING
+ 1
+
+	)
+
+6 
+	#ARDUINOJSON_STRING_BUFFER_SIZE
+ 5
+
+	)
+
+7 
+	~<ArdušoJsÚ.h
+>
+
+8 
+	~<ÿtch.hµ
+>
+
+9 
+	~"cu¡om_¡ršg.hµ
+"
+
+11 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gSŒšgWr™”
+>
+
+14 
+size_t
+ 
+	$´št
+(
+SŒšgWr™”
+& 
+sb
+, cÚ¡ * 
+s
+) {
+
+15  
+sb
+.
+	`wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+*>(
+s
+), 
+	`¡¾’
+(s));
+
+16 
+	}
+}
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gSŒšgWr™”
+,�y³Çm�
+	gSŒšg
+>
+
+19 
+	$commÚ_‹¡s
+(
+SŒšgWr™”
+& 
+sb
+, cÚ¡ 
+SŒšg
+& 
+ou�ut
+) {
+
+20 
+	`SECTION
+("InitialState") {
+
+21 
+	`REQUIRE
+(
+¡d
+::
+	`¡ršg
+(""è=ð
+ou�ut
+);
+
+24 
+	`SECTION
+("EmptyString") {
+
+25 
+	`REQUIRE
+(0 =ð
+	`´št
+(
+sb
+, ""));
+
+26 
+	`REQUIRE
+(
+¡d
+::
+	`¡ršg
+(""è=ð
+ou�ut
+);
+
+29 
+	`SECTION
+("OneString") {
+
+30 
+	`REQUIRE
+(4 =ð
+	`´št
+(
+sb
+, "ABCD"));
+
+31 
+	`REQUIRE
+(
+¡d
+::
+	`¡ršg
+("ABCD"è=ð
+ou�ut
+);
+
+34 
+	`SECTION
+("TwoStrings") {
+
+35 
+	`REQUIRE
+(4 =ð
+	`´št
+(
+sb
+, "ABCD"));
+
+36 
+	`REQUIRE
+(4 =ð
+	`´št
+(
+sb
+, "EFGH"));
+
+37 
+	`REQUIRE
+(
+¡d
+::
+	`¡ršg
+("ABCDEFGH"è=ð
+ou�ut
+);
+
+39 
+	}
+}
+
+41 
+TEST_CASE
+("StaticStringWriter") {
+
+42 
+	gou�ut
+[20];
+
+43 
+S�ticSŒšgWr™”
+ 
+sb
+(
+ou�ut
+, (output));
+
+45 
+commÚ_‹¡s
+(
+sb
+, 
+¡©ic_ÿ¡
+<cÚ¡ *>(
+ou�ut
+));
+
+47 
+SECTION
+("OverCapacity") {
+
+48 
+REQUIRE
+(19 =ð
+´št
+(
+sb
+, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"));
+
+49 
+REQUIRE
+(0 =ð
+´št
+(
+sb
+, "ABC"));
+
+50 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("ABCDEFGHIJKLMNOPQRS"è=ð
+ou�ut
+);
+
+54 
+TEST_CASE
+("Writer<std::string>") {
+
+55 
+	g¡d
+::
+¡ršg
+ 
+ou�ut
+;
+
+56 
+	gWr™”
+<
+	g¡d
+::
+¡ršg
+> 
+sb
+(
+ou�ut
+);
+
+57 
+commÚ_‹¡s
+(
+sb
+, 
+ou�ut
+);
+
+60 
+TEST_CASE
+("Writer<String>") {
+
+61 ::
+SŒšg
+ 
+ou�ut
+;
+
+62 
+	gWr™”
+< ::
+SŒšg
+> 
+sb
+(
+ou�ut
+);
+
+64 
+commÚ_‹¡s
+(
+sb
+, 
+ou�ut
+);
+
+66 
+SECTION
+("Writes characters�o�emporary buffer") {
+
+68 
+	gsb
+.
+wr™e
+('a');
+
+69 
+	gsb
+.
+wr™e
+('b');
+
+70 
+	gsb
+.
+wr™e
+('c');
+
+71 
+REQUIRE
+(
+ou�ut
+ == "");
+
+74 
+	gsb
+.
+wr™e
+('d');
+
+75 
+REQUIRE
+(
+ou�ut
+ == "abcd");
+
+78 
+	gsb
+.
+wr™e
+('e');
+
+79 
+	gsb
+.~
+Wr™”
+();
+
+80 
+REQUIRE
+(
+ou�ut
+ == "abcde");
+
+83 
+SECTION
+("Writes strings�o�emporary buffer") {
+
+85 
+´št
+(
+sb
+, "abc");
+
+86 
+REQUIRE
+(
+ou�ut
+ == "");
+
+89 
+´št
+(
+sb
+, "de");
+
+90 
+REQUIRE
+(
+ou�ut
+ == "abcd");
+
+93 
+	gsb
+.~
+Wr™”
+();
+
+94 
+REQUIRE
+(
+ou�ut
+ == "abcde");
+
+98 
+TEST_CASE
+("Writer<custom_string>") {
+
+99 
+cu¡om_¡ršg
+ 
+	gou�ut
+;
+
+100 
+	gWr™”
+<
+	gcu¡om_¡ršg
+> 
+sb
+(
+ou�ut
+);
+
+102 
+REQUIRE
+(4 =ð
+´št
+(
+sb
+, "ABCD"));
+
+103 
+REQUIRE
+("ABCD" =ð
+ou�ut
+);
+
+106 
+TEST_CASE
+("IsWriteableString") {
+
+107 
+SECTION
+("std::string") {
+
+108 
+REQUIRE
+(
+IsWr™—bËSŒšg
+<
+¡d
+::
+¡ršg
+>::
+v®ue
+ =ð
+Œue
+);
+
+111 
+SECTION
+("custom_string") {
+
+112 
+REQUIRE
+(
+IsWr™—bËSŒšg
+<
+cu¡om_¡ršg
+>::
+v®ue
+ =ð
+Œue
+);
+
+115 
+SECTION
+("basic_string<wchar_t>") {
+
+116 
+REQUIRE
+(
+IsWr™—bËSŒšg
+<
+¡d
+::
+basic_¡ršg
+<
+wch¬_t
+> >::
+v®ue
+ =ð
+çl£
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/TypeTraits.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 þas 
+	cEm±yCÏss
+ {};
+
+11 
+	eEm±yEnum
+ {};
+
+13 
+TEST_CASE
+("Polyfills/type_traits") {
+
+14 
+SECTION
+("is_base_of") {
+
+15 
+REQUIRE_FALSE
+(
+
+16 
+¡©ic_ÿ¡
+<
+boÞ
+>(
+is_ba£_of
+<
+¡d
+::
+i¡»am
+, std::
+o¡ršg¡»am
+>::
+v®ue
+));
+
+17 
+REQUIRE
+(
+
+18 
+¡©ic_ÿ¡
+<
+boÞ
+>(
+is_ba£_of
+<
+¡d
+::
+i¡»am
+, std::
+i¡ršg¡»am
+>::
+v®ue
+));
+
+21 
+SECTION
+("is_array") {
+
+22 
+REQUIRE_FALSE
+((
+is_¬¿y
+<cÚ¡ *>::
+v®ue
+));
+
+23 
+REQUIRE
+((
+is_¬¿y
+<cÚ¡ []>::
+v®ue
+));
+
+24 
+REQUIRE
+((
+is_¬¿y
+<cÚ¡ [10]>::
+v®ue
+));
+
+27 
+SECTION
+("is_const") {
+
+28 
+CHECK
+(
+is_cÚ¡
+<>::
+v®ue
+ =ð
+çl£
+);
+
+29 
+CHECK
+(
+is_cÚ¡
+<cÚ¡ >::
+v®ue
+ =ð
+Œue
+);
+
+32 
+SECTION
+("is_signed") {
+
+33 
+CHECK
+(
+is_sigÃd
+<>::
+v®ue
+ =ð
+Œue
+);
+
+34 
+CHECK
+(
+is_sigÃd
+<sigÃd >::
+v®ue
+ =ð
+Œue
+);
+
+35 
+CHECK
+(
+is_sigÃd
+<sigÃd >::
+v®ue
+ =ð
+Œue
+);
+
+36 
+CHECK
+(
+is_sigÃd
+<sigÃd >::
+v®ue
+ =ð
+Œue
+);
+
+37 
+CHECK
+(
+is_sigÃd
+<sigÃd >::
+v®ue
+ =ð
+Œue
+);
+
+38 
+CHECK
+(
+is_sigÃd
+<>::
+v®ue
+ =ð
+Œue
+);
+
+39 
+CHECK
+(
+is_sigÃd
+<>::
+v®ue
+ =ð
+Œue
+);
+
+40 
+CHECK
+(
+is_sigÃd
+<
+boÞ
+>::
+v®ue
+ =ð
+çl£
+);
+
+43 
+SECTION
+("is_unsigned") {
+
+44 
+CHECK
+(
+is_unsigÃd
+<>::
+v®ue
+ =ð
+Œue
+);
+
+45 
+CHECK
+(
+is_unsigÃd
+<>::
+v®ue
+ =ð
+Œue
+);
+
+46 
+CHECK
+(
+is_unsigÃd
+<>::
+v®ue
+ =ð
+Œue
+);
+
+47 
+CHECK
+(
+is_unsigÃd
+<>::
+v®ue
+ =ð
+Œue
+);
+
+48 
+CHECK
+(
+is_unsigÃd
+<
+boÞ
+>::
+v®ue
+ =ð
+Œue
+);
+
+49 
+CHECK
+(
+is_unsigÃd
+<>::
+v®ue
+ =ð
+çl£
+);
+
+50 
+CHECK
+(
+is_unsigÃd
+<>::
+v®ue
+ =ð
+çl£
+);
+
+51 
+CHECK
+(
+is_unsigÃd
+<>::
+v®ue
+ =ð
+çl£
+);
+
+54 
+SECTION
+("is_convertible") {
+
+55 
+CHECK
+((
+is_cÚv”tibË
+<, >::
+v®ue
+ =ð
+Œue
+));
+
+56 
+CHECK
+((
+is_cÚv”tibË
+<, >::
+v®ue
+ =ð
+Œue
+));
+
+57 
+CHECK
+((
+is_cÚv”tibË
+<
+Em±yEnum
+, >::
+v®ue
+ =ð
+Œue
+));
+
+58 
+CHECK
+((
+is_cÚv”tibË
+<*, >::
+v®ue
+ =ð
+çl£
+));
+
+59 
+CHECK
+((
+is_cÚv”tibË
+<
+Em±yCÏss
+, >::
+v®ue
+ =ð
+çl£
+));
+
+62 
+SECTION
+("is_class") {
+
+63 
+CHECK
+((
+is_þass
+<>::
+v®ue
+ =ð
+çl£
+));
+
+64 
+CHECK
+((
+is_þass
+<
+Em±yEnum
+>::
+v®ue
+ =ð
+çl£
+));
+
+65 
+CHECK
+((
+is_þass
+<*>::
+v®ue
+ =ð
+çl£
+));
+
+66 
+CHECK
+((
+is_þass
+<
+Em±yCÏss
+>::
+v®ue
+ =ð
+Œue
+));
+
+69 
+SECTION
+("is_enum") {
+
+70 
+CHECK
+(
+is_’um
+<>::
+v®ue
+ =ð
+çl£
+);
+
+71 
+CHECK
+(
+is_’um
+<
+Em±yEnum
+>::
+v®ue
+ =ð
+Œue
+);
+
+72 
+CHECK
+(
+is_’um
+<*>::
+v®ue
+ =ð
+çl£
+);
+
+73 
+CHECK
+(
+is_’um
+<
+Em±yCÏss
+>::
+v®ue
+ =ð
+çl£
+);
+
+74 
+CHECK
+(
+is_’um
+<
+boÞ
+>::
+v®ue
+ =ð
+çl£
+);
+
+75 
+CHECK
+(
+is_’um
+<>::
+v®ue
+ =ð
+çl£
+);
+
+78 
+SECTION
+("IsVisitable") {
+
+79 
+CHECK
+(
+IsVis™abË
+<
+De£rŸliz©iÚE¼Ü
+>::
+v®ue
+ =ð
+çl£
+);
+
+80 
+CHECK
+(
+IsVis™abË
+<
+JsÚPaœ
+>::
+v®ue
+ =ð
+çl£
+);
+
+81 
+CHECK
+(
+IsVis™abË
+<
+V¬ŸÁRef
+>::
+v®ue
+ =ð
+Œue
+);
+
+82 
+CHECK
+(
+IsVis™abË
+<
+V¬ŸÁCÚ¡Ref
+>::
+v®ue
+ =ð
+Œue
+);
+
+83 
+CHECK
+(
+IsVis™abË
+<
+A¼ayRef
+>::
+v®ue
+ =ð
+Œue
+);
+
+84 
+CHECK
+(
+IsVis™abË
+<
+EËm’tProxy
+<
+A¼ayRef
+> >::
+v®ue
+ =ð
+Œue
+);
+
+85 
+CHECK
+(
+IsVis™abË
+<
+A¼ayCÚ¡Ref
+>::
+v®ue
+ =ð
+Œue
+);
+
+86 
+CHECK
+(
+IsVis™abË
+<
+ObjeùRef
+>::
+v®ue
+ =ð
+Œue
+);
+
+87 
+CHECK
+((
+IsVis™abË
+<
+Memb”Proxy
+<
+ObjeùRef
+, cÚ¡ *> >::
+v®ue
+ =ð
+Œue
+));
+
+88 
+CHECK
+(
+IsVis™abË
+<
+ObjeùCÚ¡Ref
+>::
+v®ue
+ =ð
+Œue
+);
+
+89 
+CHECK
+(
+IsVis™abË
+<
+DyÇmicJsÚDocum’t
+>::
+v®ue
+ =ð
+Œue
+);
+
+90 
+CHECK
+(
+IsVis™abË
+<
+S�ticJsÚDocum’t
+<10> >::
+v®ue
+ =ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/Utf16.cpp
+
+5 
+	~<ArdušoJsÚ/JsÚ/Utf16.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+	$‹¡Utf16Cod•ošt
+(
+ušt16_t
+ 
+codeun™
+, 
+ušt32_t
+ 
+ex³ùedCod•ošt
+) {
+
+11 
+Utf16
+::
+Cod•ošt
+ 
+ý
+;
+
+12 
+	`REQUIRE
+(
+ý
+.
+	`­³nd
+(
+codeun™
+è=ð
+Œue
+);
+
+13 
+	`REQUIRE
+(
+ý
+.
+	`v®ue
+(è=ð
+ex³ùedCod•ošt
+);
+
+14 
+	}
+}
+
+16 
+	$‹¡Utf16Cod•ošt
+(
+ušt16_t
+ 
+codeun™1
+, ušt16_ˆ
+codeun™2
+,
+
+17 
+ušt32_t
+ 
+ex³ùedCod•ošt
+) {
+
+18 
+Utf16
+::
+Cod•ošt
+ 
+ý
+;
+
+19 
+	`REQUIRE
+(
+ý
+.
+	`­³nd
+(
+codeun™1
+è=ð
+çl£
+);
+
+20 
+	`REQUIRE
+(
+ý
+.
+	`­³nd
+(
+codeun™2
+è=ð
+Œue
+);
+
+21 
+	`REQUIRE
+(
+ý
+.
+	`v®ue
+(è=ð
+ex³ùedCod•ošt
+);
+
+22 
+	}
+}
+
+24 
+TEST_CASE
+("Utf16::Codepoint()") {
+
+25 
+SECTION
+("U+0000") {
+
+26 
+‹¡Utf16Cod•ošt
+(0x0000, 0x000000);
+
+29 
+SECTION
+("U+0001") {
+
+30 
+‹¡Utf16Cod•ošt
+(0x0001, 0x000001);
+
+33 
+SECTION
+("U+D7FF") {
+
+34 
+‹¡Utf16Cod•ošt
+(0xD7FF, 0x00D7FF);
+
+37 
+SECTION
+("U+E000") {
+
+38 
+‹¡Utf16Cod•ošt
+(0xE000, 0x00E000);
+
+41 
+SECTION
+("U+FFFF") {
+
+42 
+‹¡Utf16Cod•ošt
+(0xFFFF, 0x00FFFF);
+
+45 
+SECTION
+("U+010000") {
+
+46 
+‹¡Utf16Cod•ošt
+(0xD800, 0xDC00, 0x010000);
+
+49 
+SECTION
+("U+010001") {
+
+50 
+‹¡Utf16Cod•ošt
+(0xD800, 0xDC01, 0x010001);
+
+53 
+SECTION
+("U+0103FF") {
+
+54 
+‹¡Utf16Cod•ošt
+(0xD800, 0xDFFF, 0x0103FF);
+
+57 
+SECTION
+("U+010400") {
+
+58 
+‹¡Utf16Cod•ošt
+(0xD801, 0xDC00, 0x010400);
+
+61 
+SECTION
+("U+010400") {
+
+62 
+‹¡Utf16Cod•ošt
+(0xDBFF, 0xDC00, 0x10FC00);
+
+65 
+SECTION
+("U+10FFFF") {
+
+66 
+‹¡Utf16Cod•ošt
+(0xDBFF, 0xDFFF, 0x10FFFF);
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/Utf8.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	~<¡ršg
+>
+
+10 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+12 
+	$‹¡Cod•ošt
+(
+ušt32_t
+ 
+cod•ošt
+, 
+¡d
+::
+¡ršg
+ 
+ex³ùed
+) {
+
+13 
+bufãr
+[4096];
+
+14 
+MemÜyPoÞ
+ 
+	`poÞ
+(
+bufãr
+, 4096);
+
+15 
+SŒšgBužd”
+ 
+	`¡r
+(&
+poÞ
+);
+
+17 
+	`CAPTURE
+(
+cod•ošt
+);
+
+18 
+Utf8
+::
+	`’codeCod•ošt
+(
+cod•ošt
+, 
+¡r
+);
+
+20 
+	`REQUIRE
+(
+¡r
+.
+	`com¶‘e
+(è=ð
+ex³ùed
+);
+
+21 
+	}
+}
+
+23 
+TEST_CASE
+("Utf8::encodeCodepoint()") {
+
+24 
+SECTION
+("U+0000") {
+
+25 
+‹¡Cod•ošt
+(0x0000, "");
+
+28 
+SECTION
+("U+0001") {
+
+29 
+‹¡Cod•ošt
+(0x0001, "\x01");
+
+32 
+SECTION
+("U+007F") {
+
+33 
+‹¡Cod•ošt
+(0x007F, "\x7f");
+
+36 
+SECTION
+("U+0080") {
+
+37 
+‹¡Cod•ošt
+(0x0080, "\xc2\x80");
+
+40 
+SECTION
+("U+07FF") {
+
+41 
+‹¡Cod•ošt
+(0x07FF, "\xdf\xbf");
+
+44 
+SECTION
+("U+0800") {
+
+45 
+‹¡Cod•ošt
+(0x0800, "\xe0\xa0\x80");
+
+48 
+SECTION
+("U+FFFF") {
+
+49 
+‹¡Cod•ošt
+(0xFFFF, "\xef\xbf\xbf");
+
+52 
+SECTION
+("U+10000") {
+
+53 
+‹¡Cod•ošt
+(0x10000, "\xf0\x90\x80\x80");
+
+56 
+SECTION
+("U+10FFFF") {
+
+57 
+‹¡Cod•ošt
+(0x10FFFF, "\xf4\x8f\xbf\xbf");
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/conflicts.cpp
+
+6 
+	~<cm©h
+>
+
+7 
+	~<io¡»am
+>
+
+8 
+	~<¡ršg
+>
+
+11 
+	#b™
+()
+
+	)
+
+12 
+	#cÚ¡¿š
+()
+
+	)
+
+13 
+	#DEFAULT
+
+
+	)
+
+14 
+	#DISABLED
+
+
+	)
+
+15 
+	#HIGH
+
+
+	)
+
+16 
+	#INPUT
+
+
+	)
+
+17 
+	#LOW
+
+
+	)
+
+18 
+	#max
+()
+
+	)
+
+19 
+	#mš
+()
+
+	)
+
+20 
+	#OUTPUT
+
+
+	)
+
+21 
+	#round
+()
+
+	)
+
+22 
+	#sq
+()
+
+	)
+
+23 
+	#wÜd
+()
+
+	)
+
+24 
+	#b™R—d
+()
+
+	)
+
+25 
+	#b™S‘
+()
+
+	)
+
+26 
+	#b™CË¬
+()
+
+	)
+
+27 
+	#b™Wr™e
+()
+
+	)
+
+28 
+	#š‹¼u±s
+()
+
+	)
+
+29 
+	#lowBy‹
+()
+
+	)
+
+30 
+	#highBy‹
+()
+
+	)
+
+31 
+	#DEC
+
+
+	)
+
+32 
+	#HEX
+
+
+	)
+
+33 
+	#OCT
+
+
+	)
+
+34 
+	#BIN
+
+
+	)
+
+35 
+	#cbi
+()
+
+	)
+
+36 
+	#sbi
+()
+
+	)
+
+39 
+	#_max
+()
+
+	)
+
+40 
+	#_mš
+()
+
+	)
+
+43 
+	#BLOCKSIZE
+
+
+	)
+
+44 
+	#CAPACITY
+
+
+	)
+
+47 
+	~"ArdušoJsÚ.h
+"
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/custom_string.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ršg
+>
+
+9 
+	gcu¡om_ch¬_Œa™s
+ : 
+¡d
+::
+ch¬_Œa™s
+<> {};
+
+10 
+	gcu¡om_®loÿtÜ
+ : 
+¡d
+::
+®loÿtÜ
+<> {};
+
+11 
+	g¡d
+::
+	tbasic_¡ršg
+<, 
+	tcu¡om_ch¬_Œa™s
+, 
+	tcu¡om_®loÿtÜ
+>
+
+12 
+	tcu¡om_¡ršg
+;
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/unsigned_char.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 #ià
+defšed
+(
+__þªg__
+)
+
+9 
+	#CONFLICTS_WITH_BUILTIN_OPERATOR
+
+
+	)
+
+12 
+TEST_CASE
+("unsigned char[]") {
+
+13 
+SECTION
+("deserializeJson()") {
+
+14 
+	gšput
+[] = "{\"a\":42}";
+
+16 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1)> 
+	gdoc
+;
+
+17 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+);
+
+19 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+22 
+SECTION
+("deserializeMsgPack()") {
+
+23 
+	gšput
+[] = "\xDE\x00\x01\xA5Hello\xA5world";
+
+25 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+26 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+28 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+31 
+SECTION
+("serializeMsgPack(unsigned char[])") {
+
+32 
+	gbufãr
+[32];
+
+33 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+34 
+	gdoc
+["hello"] = "world";
+
+36 
+size_t
+ 
+	gn
+ = 
+£rŸlizeMsgPack
+(
+doc
+, 
+bufãr
+);
+
+38 
+REQUIRE
+(
+n
+ == 13);
+
+39 
+REQUIRE
+(
+memcmp
+(
+bufãr
+, "\x81\xA5hello\xA5world", 13) == 0);
+
+42 
+SECTION
+("serializeMsgPack(unsigned char*)") {
+
+43 
+	gbufãr
+[32];
+
+44 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+45 
+	gdoc
+["hello"] = "world";
+
+47 
+size_t
+ 
+	gn
+ = 
+£rŸlizeMsgPack
+(
+doc
+, 
+bufãr
+, (buffer));
+
+49 
+REQUIRE
+(
+n
+ == 13);
+
+50 
+REQUIRE
+(
+memcmp
+(
+bufãr
+, "\x81\xA5hello\xA5world", 13) == 0);
+
+53 
+SECTION
+("serializeJson(unsigned char[])") {
+
+54 
+	gbufãr
+[32];
+
+55 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+56 
+	gdoc
+["hello"] = "world";
+
+58 
+size_t
+ 
+	gn
+ = 
+£rŸlizeJsÚ
+(
+doc
+, 
+bufãr
+);
+
+60 
+REQUIRE
+(
+n
+ == 17);
+
+61 
+REQUIRE
+(
+memcmp
+(
+bufãr
+, "{\"h–lo\":\"wÜld\"}", 
+n
+) == 0);
+
+64 
+SECTION
+("serializeJson(unsigned char*)") {
+
+65 
+	gbufãr
+[32];
+
+66 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+67 
+	gdoc
+["hello"] = "world";
+
+69 
+size_t
+ 
+	gn
+ = 
+£rŸlizeJsÚ
+(
+doc
+, 
+bufãr
+, (buffer));
+
+71 
+REQUIRE
+(
+n
+ == 17);
+
+72 
+REQUIRE
+(
+memcmp
+(
+bufãr
+, "{\"h–lo\":\"wÜld\"}", 
+n
+) == 0);
+
+75 
+SECTION
+("serializeJsonPretty(unsigned char[])") {
+
+76 
+	gbufãr
+[32];
+
+77 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+78 
+	gdoc
+["hello"] = "world";
+
+80 
+size_t
+ 
+	gn
+ = 
+£rŸlizeJsÚP»‰y
+(
+doc
+, 
+bufãr
+);
+
+82 
+REQUIRE
+(
+n
+ == 24);
+
+85 
+SECTION
+("serializeJsonPretty(unsigned char*)") {
+
+86 
+	gbufãr
+[32];
+
+87 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(2)> 
+	gdoc
+;
+
+88 
+	gdoc
+["hello"] = "world";
+
+90 
+size_t
+ 
+	gn
+ = 
+£rŸlizeJsÚP»‰y
+(
+doc
+, 
+bufãr
+, (buffer));
+
+92 
+REQUIRE
+(
+n
+ == 24);
+
+95 
+SECTION
+("JsonVariant") {
+
+96 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+98 
+SECTION
+("set") {
+
+99 
+	gv®ue
+[] = "42";
+
+101 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+102 
+	gv¬ŸÁ
+.
+£t
+(
+v®ue
+);
+
+104 
+REQUIRE
+(42 =ð
+v¬ŸÁ
+.
+as
+<>());
+
+107 #iâdeà
+CONFLICTS_WITH_BUILTIN_OPERATOR
+
+
+108 
+SECTION
+("operator[]") {
+
+109 
+	gkey
+[] = "hello";
+
+111 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+112 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+as
+<JsonVariant>();
+
+114 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬ŸÁ
+[
+key
+]);
+
+118 #iâdeà
+CONFLICTS_WITH_BUILTIN_OPERATOR
+
+
+119 
+SECTION
+("operator[] const") {
+
+120 
+	gkey
+[] = "hello";
+
+122 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+123 cÚ¡ 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+as
+<JsonVariant>();
+
+125 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+v¬ŸÁ
+[
+key
+]);
+
+129 
+SECTION
+("operator==") {
+
+130 
+	gcom·¿nd
+[] = "hello";
+
+132 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+133 
+	gv¬ŸÁ
+.
+£t
+("hello");
+
+135 
+REQUIRE
+(
+com·¿nd
+ =ð
+v¬ŸÁ
+);
+
+136 
+REQUIRE
+(
+v¬ŸÁ
+ =ð
+com·¿nd
+);
+
+137 
+REQUIRE_FALSE
+(
+com·¿nd
+ !ð
+v¬ŸÁ
+);
+
+138 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ !ð
+com·¿nd
+);
+
+141 
+SECTION
+("operator!=") {
+
+142 
+	gcom·¿nd
+[] = "hello";
+
+144 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+145 
+	gv¬ŸÁ
+.
+£t
+("world");
+
+147 
+REQUIRE
+(
+com·¿nd
+ !ð
+v¬ŸÁ
+);
+
+148 
+REQUIRE
+(
+v¬ŸÁ
+ !ð
+com·¿nd
+);
+
+149 
+REQUIRE_FALSE
+(
+com·¿nd
+ =ð
+v¬ŸÁ
+);
+
+150 
+REQUIRE_FALSE
+(
+v¬ŸÁ
+ =ð
+com·¿nd
+);
+
+154 
+SECTION
+("JsonObject") {
+
+155 #iâdeà
+CONFLICTS_WITH_BUILTIN_OPERATOR
+
+
+156 
+SECTION
+("operator[]") {
+
+157 
+	gkey
+[] = "hello";
+
+159 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+160 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+161 
+	gobj
+[
+key
+] = "world";
+
+163 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+166 
+SECTION
+("JsonObject::operator[] const") {
+
+167 
+	gkey
+[] = "hello";
+
+169 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+170 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+172 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+173 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+[
+key
+]);
+
+177 
+SECTION
+("containsKey()") {
+
+178 
+	gkey
+[] = "hello";
+
+180 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+181 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+182 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+183 
+REQUIRE
+(
+Œue
+ =ð
+obj
+.
+cÚ�šsKey
+(
+key
+));
+
+186 
+SECTION
+("remove()") {
+
+187 
+	gkey
+[] = "hello";
+
+189 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+190 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}");
+
+191 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+192 
+	gobj
+.
+»move
+(
+key
+);
+
+194 
+REQUIRE
+(0 =ð
+obj
+.
+size
+());
+
+197 
+SECTION
+("createNestedArray()") {
+
+198 
+	gkey
+[] = "hello";
+
+200 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+201 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+202 
+	gobj
+.
+ü—‹Ne¡edA¼ay
+(
+key
+);
+
+205 
+SECTION
+("createNestedObject()") {
+
+206 
+	gkey
+[] = "hello";
+
+208 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+209 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+210 
+	gobj
+.
+ü—‹Ne¡edObjeù
+(
+key
+);
+
+214 
+SECTION
+("MemberProxy") {
+
+215 
+SECTION
+("operator=") {
+
+216 
+	gv®ue
+[] = "world";
+
+218 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+219 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+220 
+	gobj
+["h–lo"] = 
+v®ue
+;
+
+222 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+225 
+SECTION
+("set()") {
+
+226 
+	gv®ue
+[] = "world";
+
+228 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+229 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+to
+<JsonObject>();
+
+230 
+	gobj
+["h–lo"].
+£t
+(
+v®ue
+);
+
+232 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+obj
+["hello"]);
+
+236 
+SECTION
+("JsonArray") {
+
+237 
+SECTION
+("add()") {
+
+238 
+	gv®ue
+[] = "world";
+
+240 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+241 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+242 
+	g¬r
+.
+add
+(
+v®ue
+);
+
+244 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+¬r
+[0]);
+
+248 
+SECTION
+("ElementProxy") {
+
+249 
+SECTION
+("set()") {
+
+250 
+	gv®ue
+[] = "world";
+
+252 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+253 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+254 
+	g¬r
+.
+add
+("hello");
+
+255 
+	g¬r
+[0].
+£t
+(
+v®ue
+);
+
+257 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+¬r
+[0]);
+
+260 
+SECTION
+("operator=") {
+
+261 
+	gv®ue
+[] = "world";
+
+263 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+264 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+to
+<JsonArray>();
+
+265 
+	g¬r
+.
+add
+("hello");
+
+266 
+	g¬r
+[0] = 
+v®ue
+;
+
+268 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("wÜld"è=ð
+¬r
+[0]);
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/version.cpp
+
+5 
+	~<ArdušoJsÚ/v”siÚ.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+7 
+	~<s¡»am
+>
+
+9 
+usšg
+ 
+	gC©ch
+::
+M©ch”s
+::
+S�¹sW™h
+;
+
+11 
+TEST_CASE
+("ARDUINOJSON_VERSION") {
+
+12 
+	g¡d
+::
+¡ršg¡»am
+ 
+v”siÚ
+;
+
+14 
+	gv”siÚ
+ << 
+	gARDUINOJSON_VERSION_MAJOR
+ << "." << 
+	gARDUINOJSON_VERSION_MINOR
+
+
+15 << "." << 
+	gARDUINOJSON_VERSION_REVISION
+;
+
+17 
+REQUIRE_THAT
+(
+ARDUINOJSON_VERSION
+, 
+S�¹sW™h
+(
+v”siÚ
+.
+¡r
+()));
+
+	@lib_standalone/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp
+
+1 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+5 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+6 
+¡rcmp
+(cÚ¡ * 
+a
+, cÚ¡ * 
+b
+) {
+
+7 
+	g»suÉ
+ = ::
+¡rcmp
+(
+a
+, 
+b
+);
+
+8 ià(
+	g»suÉ
+ > 0)
+
+10 ià(
+	g»suÉ
+ < 0)
+
+15 
+¡ºcmp
+(cÚ¡ * 
+a
+, cÚ¡ * 
+b
+, 
+size_t
+ 
+n
+) {
+
+16 
+	g»suÉ
+ = ::
+¡ºcmp
+(
+a
+, 
+b
+, 
+n
+);
+
+17 ià(
+	g»suÉ
+ > 0)
+
+19 ià(
+	g»suÉ
+ < 0)
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/cpp11.cpp
+
+1 
+	~<ArdušoJsÚ.h
+>
+
+3 
+	~<ÿtch.hµ
+>
+
+5 #ià
+__ýlu¥lus
+ >= 201103L
+
+7 
+TEST_CASE
+("nullptr") {
+
+8 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+9 
+JsÚV¬ŸÁ
+ 
+	gv¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+11 
+SECTION
+("JsonVariant ==‚ullptr") {
+
+12 
+REQUIRE
+((
+v¬ŸÁ
+ =ð
+nuÎ±r
+));
+
+13 
+REQUIRE_FALSE
+((
+v¬ŸÁ
+ !ð
+nuÎ±r
+));
+
+16 
+SECTION
+("JsonVariant !=‚ullptr") {
+
+17 
+	gv¬ŸÁ
+.
+£t
+(42);
+
+19 
+REQUIRE_FALSE
+((
+v¬ŸÁ
+ =ð
+nuÎ±r
+));
+
+20 
+REQUIRE
+((
+v¬ŸÁ
+ !ð
+nuÎ±r
+));
+
+23 
+SECTION
+("JsonVariant.set(nullptr)") {
+
+24 
+	gv¬ŸÁ
+.
+£t
+(42);
+
+25 
+	gv¬ŸÁ
+.
+£t
+(
+nuÎ±r
+);
+
+27 
+REQUIRE
+(
+v¬ŸÁ
+.
+isNuÎ
+());
+
+30 
+SECTION
+("JsonVariant.is<nullptr_t>()") {
+
+31 
+	gv¬ŸÁ
+.
+£t
+(42);
+
+32 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+¡d
+::
+nuÎ±r_t
+>(è=ð
+çl£
+);
+
+34 
+	gv¬ŸÁ
+.
+þ—r
+();
+
+35 
+REQUIRE
+(
+v¬ŸÁ
+.
+is
+<
+¡d
+::
+nuÎ±r_t
+>(è=ð
+Œue
+);
+
+39 
+TEST_CASE
+("Issue #1120") {
+
+40 
+	gS�ticJsÚDocum’t
+<500> 
+	gdoc
+;
+
+41 
+cÚ¡ex´
+ 
+	g¡r
+[] =
+
+43 
+de£rŸlizeJsÚ
+(
+doc
+, 
+¡r
+);
+
+45 
+SECTION
+("MemberProxy<std::string>::isNull()") {
+
+46 
+SECTION
+("returns false") {
+
+47 autØ
+	gv®ue
+ = 
+doc
+[
+¡d
+::
+¡ršg
+("contents")];
+
+48 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+51 
+SECTION
+("returns�rue") {
+
+52 autØ
+	gv®ue
+ = 
+doc
+[
+¡d
+::
+¡ršg
+("zontents")];
+
+53 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+57 
+SECTION
+("ElementProxy<MemberProxy<const char*> >::isNull()") {
+
+58 
+SECTION
+("returns false") {
+
+59 autØ
+	gv®ue
+ = 
+doc
+["contents"][1];
+
+60 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+63 
+SECTION
+("returns�rue") {
+
+64 autØ
+	gv®ue
+ = 
+doc
+["contents"][2];
+
+65 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+69 
+SECTION
+("MemberProxy<ElementProxy<MemberProxy>, const char*>::isNull()") {
+
+70 
+SECTION
+("returns false") {
+
+71 autØ
+	gv®ue
+ = 
+doc
+["contents"][1]["module"];
+
+72 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+75 
+SECTION
+("returns�rue") {
+
+76 autØ
+	gv®ue
+ = 
+doc
+["contents"][1]["zodule"];
+
+77 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+81 
+SECTION
+("MemberProxy<ElementProxy<MemberProxy>, std::string>::isNull()") {
+
+82 
+SECTION
+("returns false") {
+
+83 autØ
+	gv®ue
+ = 
+doc
+["cÚ‹Ás"][1][
+¡d
+::
+¡ršg
+("module")];
+
+84 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+çl£
+);
+
+87 
+SECTION
+("returns�rue") {
+
+88 autØ
+	gv®ue
+ = 
+doc
+["cÚ‹Ás"][1][
+¡d
+::
+¡ršg
+("zodule")];
+
+89 
+CHECK
+(
+v®ue
+.
+isNuÎ
+(è=ð
+Œue
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_0.cpp
+
+1 
+	#ARDUINOJSON_DECODE_UNICODE
+ 0
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+6 
+TEST_CASE
+("ARDUINOJSON_DECODE_UNICODE == 0") {
+
+7 
+DyÇmicJsÚDocum’t
+ 
+doc
+(2048);
+
+8 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "\"\\uD834\\uDD1E\"");
+
+10 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_1.cpp
+
+1 
+	#ARDUINOJSON_DECODE_UNICODE
+ 1
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+6 
+TEST_CASE
+("ARDUINOJSON_DECODE_UNICODE == 1") {
+
+7 
+DyÇmicJsÚDocum’t
+ 
+doc
+(2048);
+
+8 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "\"\\uD834\\uDD1E\"");
+
+10 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp
+
+5 
+	#ARDUINOJSON_ENABLE_COMMENTS
+ 0
+
+	)
+
+6 
+	~<ArdušoJsÚ.h
+>
+
+8 
+	~<ÿtch.hµ
+>
+
+10 
+TEST_CASE
+("Comments should…roduce InvalidInput") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(2048);
+
+13 cÚ¡ * 
+	g‹¡Ca£s
+[] = {
+
+47 cÚ¡ 
+size_t
+ 
+	g‹¡CouÁ
+ = (
+‹¡Ca£s
+) / (testCases[0]);
+
+49 
+size_t
+ 
+	gi
+ = 0; i < 
+	g‹¡CouÁ
+; i++) {
+
+50 cÚ¡ * 
+	gšput
+ = 
+‹¡Ca£s
+[
+i
+];
+
+51 
+CAPTURE
+(
+šput
+);
+
+52 
+REQUIRE
+(
+de£rŸlizeJsÚ
+(
+doc
+, 
+šput
+è=ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp
+
+5 
+	#ARDUINOJSON_ENABLE_COMMENTS
+ 1
+
+	)
+
+6 
+	~<ArdušoJsÚ.h
+>
+
+8 
+	~<ÿtch.hµ
+>
+
+10 
+TEST_CASE
+("Comments in‡rrays") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(2048);
+
+13 
+SECTION
+("Block comments") {
+
+14 
+SECTION
+("Before opening bracket") {
+
+15 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+16 
+de£rŸlizeJsÚ
+(
+doc
+, "/*COMMENT*/ [\"hello\"]");
+
+17 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+19 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+20 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+21 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+24 
+SECTION
+("After opening bracket") {
+
+25 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+26 
+de£rŸlizeJsÚ
+(
+doc
+, "[/*COMMENT*/ \"hello\"]");
+
+27 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+29 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+30 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+31 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+34 
+SECTION
+("Before closing bracket") {
+
+35 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\"/*COMMENT*/]");
+
+36 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+38 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+39 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+40 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+43 
+SECTION
+("After closing bracket") {
+
+44 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\"]/*COMMENT*/");
+
+45 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+47 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+48 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+49 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+52 
+SECTION
+("Before comma") {
+
+53 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+54 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\"/*COMMENT*/,\"world\"]");
+
+55 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+57 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+58 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+59 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+60 
+REQUIRE
+(
+¬r
+[1] == "world");
+
+63 
+SECTION
+("After comma") {
+
+64 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+65 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\",/*COMMENT*/ \"world\"]");
+
+66 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+68 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+69 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+70 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+71 
+REQUIRE
+(
+¬r
+[1] == "world");
+
+74 
+SECTION
+("/*/") {
+
+75 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[/*/\n]");
+
+76 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+79 
+SECTION
+("Unfinished comment") {
+
+80 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[/*COMMENT]");
+
+81 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+84 
+SECTION
+("Final slash missing") {
+
+85 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[/*COMMENT*]");
+
+86 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+90 
+SECTION
+("Trailing comments") {
+
+91 
+SECTION
+("Before opening bracket") {
+
+92 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+93 
+de£rŸlizeJsÚ
+(
+doc
+, "//COMMENT\n\t[\"hello\"]");
+
+94 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+96 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+97 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+98 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+101 
+SECTION
+("After opening bracket") {
+
+102 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[//COMMENT\n\"hello\"]");
+
+103 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+105 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+106 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+107 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+110 
+SECTION
+("Before closing bracket") {
+
+111 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+112 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\"//COMMENT\r\n]");
+
+113 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+115 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+116 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+117 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+120 
+SECTION
+("After closing bracket") {
+
+121 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\"]//COMMENT\n");
+
+122 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+124 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+125 
+REQUIRE
+(1 =ð
+¬r
+.
+size
+());
+
+126 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+129 
+SECTION
+("Before comma") {
+
+130 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+131 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\"//COMMENT\n,\"world\"]");
+
+132 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+134 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+135 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+136 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+137 
+REQUIRE
+(
+¬r
+[1] == "world");
+
+140 
+SECTION
+("After comma") {
+
+141 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+142 
+de£rŸlizeJsÚ
+(
+doc
+, "[\"hello\",//COMMENT\n\"world\"]");
+
+143 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+145 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+146 
+REQUIRE
+(2 =ð
+¬r
+.
+size
+());
+
+147 
+REQUIRE
+(
+¬r
+[0] == "hello");
+
+148 
+REQUIRE
+(
+¬r
+[1] == "world");
+
+151 
+SECTION
+("Invalid comment") {
+
+152 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[/COMMENT\n]");
+
+153 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+156 
+SECTION
+("End document with comment") {
+
+157 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[//COMMENT");
+
+158 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+163 
+TEST_CASE
+("Comments in objects") {
+
+164 
+DyÇmicJsÚDocum’t
+ 
+doc
+(2048);
+
+166 
+SECTION
+("Block comments") {
+
+167 
+SECTION
+("Before opening brace") {
+
+168 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+169 
+de£rŸlizeJsÚ
+(
+doc
+, "/*COMMENT*/ {\"hello\":\"world\"}");
+
+170 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+172 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+173 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+176 
+SECTION
+("After opening brace") {
+
+177 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+178 
+de£rŸlizeJsÚ
+(
+doc
+, "{/*COMMENT*/\"hello\":\"world\"}");
+
+179 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+181 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+182 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+185 
+SECTION
+("Before colon") {
+
+186 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+187 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\"/*COMMENT*/:\"world\"}");
+
+188 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+190 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+191 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+194 
+SECTION
+("After colon") {
+
+195 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+196 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":/*COMMENT*/\"world\"}");
+
+197 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+199 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+200 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+203 
+SECTION
+("Before closing brace") {
+
+204 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+205 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"/*COMMENT*/}");
+
+206 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+208 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+209 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+212 
+SECTION
+("After closing brace") {
+
+213 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+214 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}/*COMMENT*/");
+
+215 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+217 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+218 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+221 
+SECTION
+("Before comma") {
+
+222 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+
+223 
+doc
+, "{\"hello\":\"world\"/*COMMENT*/,\"answer\":42}");
+
+224 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+226 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+227 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+228 
+REQUIRE
+(
+obj
+["answer"] == 42);
+
+231 
+SECTION
+("After comma") {
+
+232 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+
+233 
+doc
+, "{\"hello\":\"world\",/*COMMENT*/\"answer\":42}");
+
+234 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+236 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+237 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+238 
+REQUIRE
+(
+obj
+["answer"] == 42);
+
+242 
+SECTION
+("Trailing comments") {
+
+243 
+SECTION
+("Before opening brace") {
+
+244 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+245 
+de£rŸlizeJsÚ
+(
+doc
+, "//COMMENT\n {\"hello\":\"world\"}");
+
+246 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+248 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+249 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+252 
+SECTION
+("After opening brace") {
+
+253 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+254 
+de£rŸlizeJsÚ
+(
+doc
+, "{//COMMENT\n\"hello\":\"world\"}");
+
+255 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+257 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+258 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+261 
+SECTION
+("Before colon") {
+
+262 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+263 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\"//COMMENT\n:\"world\"}");
+
+264 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+266 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+267 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+270 
+SECTION
+("After colon") {
+
+271 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+272 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\"://COMMENT\n\"world\"}");
+
+273 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+275 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+276 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+279 
+SECTION
+("Before closing brace") {
+
+280 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+281 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"//COMMENT\n}");
+
+282 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+284 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+285 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+288 
+SECTION
+("After closing brace") {
+
+289 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+290 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}//COMMENT\n");
+
+291 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+293 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+294 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+297 
+SECTION
+("Before comma") {
+
+298 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+
+299 
+doc
+, "{\"hello\":\"world\"//COMMENT\n,\"answer\":42}");
+
+300 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+302 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+303 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+304 
+REQUIRE
+(
+obj
+["answer"] == 42);
+
+307 
+SECTION
+("After comma") {
+
+308 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+
+309 
+doc
+, "{\"hello\":\"world\",//COMMENT\n\"answer\":42}");
+
+310 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+312 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+313 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+314 
+REQUIRE
+(
+obj
+["answer"] == 42);
+
+318 
+SECTION
+("Dangling slash") {
+
+319 
+SECTION
+("Before opening brace") {
+
+320 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "/{\"hello\":\"world\"}");
+
+322 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+325 
+SECTION
+("After opening brace") {
+
+326 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{/\"hello\":\"world\"}");
+
+328 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+331 
+SECTION
+("Before colon") {
+
+332 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\"/:\"world\"}");
+
+334 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+337 
+SECTION
+("After colon") {
+
+338 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":/\"world\"}");
+
+340 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+343 
+SECTION
+("Before closing brace") {
+
+344 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"/}");
+
+346 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+349 
+SECTION
+("After closing brace") {
+
+350 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"}/");
+
+351 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+353 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+354 
+REQUIRE
+(
+obj
+["hello"] == "world");
+
+357 
+SECTION
+("Before comma") {
+
+358 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+359 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\"/,\"answer\":42}");
+
+361 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+364 
+SECTION
+("After comma") {
+
+365 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+366 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":\"world\",/\"answer\":42}");
+
+368 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+373 
+TEST_CASE
+("Comments‡lone") {
+
+374 
+DyÇmicJsÚDocum’t
+ 
+doc
+(2048);
+
+376 
+SECTION
+("Just‡�railing comment") {
+
+377 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "// comment");
+
+379 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+382 
+SECTION
+("Just‡ block comment") {
+
+383 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "/*comment*/");
+
+385 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+388 
+SECTION
+("Just‡ slash") {
+
+389 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "/");
+
+391 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+394 
+SECTION
+("Premature�erminator") {
+
+395 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "/* comment");
+
+397 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+400 
+SECTION
+("Prematureƒnd on sized input") {
+
+401 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "/* comment */", 10);
+
+403 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_0.cpp
+
+1 
+	#ARDUINOJSON_ENABLE_INFINITY
+ 0
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+5 
+	~<lim™s
+>
+
+7 
+	$as£¹P¬£Fažs
+(cÚ¡ * 
+jsÚ
+) {
+
+8 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+9 autØ
+”r
+ = 
+	`de£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+11 
+	`REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+12 
+	}
+}
+
+14 
+	$as£¹JsÚEqu®s
+(cÚ¡ 
+JsÚDocum’t
+& 
+doc
+,
+
+15 
+¡d
+::
+¡ršg
+ 
+ex³ùedJsÚ
+) {
+
+16 
+¡d
+::
+¡ršg
+ 
+aùu®JsÚ
+;
+
+17 
+	`£rŸlizeJsÚ
+(
+doc
+, 
+aùu®JsÚ
+);
+
+18 
+	`REQUIRE
+(
+aùu®JsÚ
+ =ð
+ex³ùedJsÚ
+);
+
+19 
+	}
+}
+
+21 
+TEST_CASE
+("ARDUINOJSON_ENABLE_INFINITY == 0") {
+
+22 
+SECTION
+("serializeJson()") {
+
+23 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+24 
+	gdoc
+.
+add
+(
+¡d
+::
+num”ic_lim™s
+<>::
+šfš™y
+());
+
+25 
+	gdoc
+.
+add
+(-
+¡d
+::
+num”ic_lim™s
+<>::
+šfš™y
+());
+
+27 
+as£¹JsÚEqu®s
+(
+doc
+, "[null,null]");
+
+30 
+SECTION
+("deserializeJson()") {
+
+31 
+as£¹P¬£Fažs
+("{\"X\":Infinity}");
+
+32 
+as£¹P¬£Fažs
+("{\"X\":-Infinity}");
+
+33 
+as£¹P¬£Fažs
+("{\"X\":+Infinity}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_1.cpp
+
+1 
+	#ARDUINOJSON_ENABLE_INFINITY
+ 1
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+5 
+	~<lim™s
+>
+
+7 
+Çme¥aû
+ 
+	gmy
+ {
+
+8 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+isšf
+;
+
+11 
+TEST_CASE
+("ARDUINOJSON_ENABLE_INFINITY == 1") {
+
+12 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+14 
+SECTION
+("serializeJson()") {
+
+15 
+	gdoc
+.
+add
+(
+¡d
+::
+num”ic_lim™s
+<>::
+šfš™y
+());
+
+16 
+	gdoc
+.
+add
+(-
+¡d
+::
+num”ic_lim™s
+<>::
+šfš™y
+());
+
+18 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+19 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+21 
+REQUIRE
+(
+jsÚ
+ == "[Infinity,-Infinity]");
+
+24 
+SECTION
+("deserializeJson()") {
+
+25 autØ
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "[Infinity,-Infinity,+Infinity]");
+
+26 
+	ga
+ = 
+doc
+[0];
+
+27 
+	gb
+ = 
+doc
+[1];
+
+28 
+	gc
+ = 
+doc
+[2];
+
+30 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+31 
+REQUIRE
+(
+my
+::
+isšf
+(
+a
+));
+
+32 
+REQUIRE
+(
+a
+ > 0);
+
+33 
+REQUIRE
+(
+my
+::
+isšf
+(
+b
+));
+
+34 
+REQUIRE
+(
+b
+ < 0);
+
+35 
+REQUIRE
+(
+my
+::
+isšf
+(
+c
+));
+
+36 
+REQUIRE
+(
+c
+ > 0);
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_0.cpp
+
+1 
+	#ARDUINOJSON_ENABLE_NAN
+ 0
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+5 
+	~<lim™s
+>
+
+7 
+TEST_CASE
+("ARDUINOJSON_ENABLE_NAN == 0") {
+
+8 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+9 
+JsÚObjeù
+ 
+	groÙ
+ = 
+doc
+.
+to
+<JsonObject>();
+
+11 
+SECTION
+("serializeJson()") {
+
+12 
+	groÙ
+["X"] = 
+¡d
+::
+num”ic_lim™s
+<>::
+sigÇlšg_NaN
+();
+
+14 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+15 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+17 
+REQUIRE
+(
+jsÚ
+ == "{\"X\":null}");
+
+20 
+SECTION
+("deserializeJson()") {
+
+21 autØ
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"X\":NaN}");
+
+23 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_1.cpp
+
+1 
+	#ARDUINOJSON_ENABLE_NAN
+ 1
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+5 
+	~<lim™s
+>
+
+7 
+Çme¥aû
+ 
+	gmy
+ {
+
+8 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+i¢ª
+;
+
+11 
+TEST_CASE
+("ARDUINOJSON_ENABLE_NAN == 1") {
+
+12 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+13 
+JsÚObjeù
+ 
+	groÙ
+ = 
+doc
+.
+to
+<JsonObject>();
+
+15 
+SECTION
+("serializeJson()") {
+
+16 
+	groÙ
+["X"] = 
+¡d
+::
+num”ic_lim™s
+<>::
+sigÇlšg_NaN
+();
+
+18 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+19 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+21 
+REQUIRE
+(
+jsÚ
+ == "{\"X\":NaN}");
+
+24 
+SECTION
+("deserializeJson()") {
+
+25 autØ
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"X\":NaN}");
+
+26 
+	gx
+ = 
+doc
+["X"];
+
+28 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+29 
+REQUIRE
+(
+my
+::
+i¢ª
+(
+x
+));
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp
+
+5 
+	~"´ogmem_emuÏtiÚ.hµ
+"
+
+7 
+	#ARDUINOJSON_ENABLE_PROGMEM
+ 1
+
+	)
+
+8 
+	~<ArdušoJsÚ.h
+>
+
+10 
+	~<ÿtch.hµ
+>
+
+12 
+TEST_CASE
+("Flash strings") {
+
+13 
+DyÇmicJsÚDocum’t
+ 
+doc
+(2048);
+
+15 
+SECTION
+("deserializeJson()") {
+
+16 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+F
+("{'hello':'world'}"));
+
+18 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+19 
+REQUIRE
+(
+doc
+["hello"] == "world");
+
+22 
+SECTION
+("JsonDocument::operator[]") {
+
+23 
+	gdoc
+[
+F
+("hello")] = F("world");
+
+25 
+REQUIRE
+(
+doc
+["hello"] == "world");
+
+28 
+SECTION
+("JsonDocument::add()") {
+
+29 
+	gdoc
+.
+add
+(
+F
+("world"));
+
+31 
+REQUIRE
+(
+doc
+[0] == "world");
+
+34 
+SECTION
+("JsonVariant::set()") {
+
+35 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+37 
+	gv¬
+.
+£t
+(
+F
+("world"));
+
+39 
+REQUIRE
+(
+v¬
+ == "world");
+
+42 
+SECTION
+("MemberProxy::operator==") {
+
+43 
+	gdoc
+["hello"] = "world";
+
+45 
+REQUIRE
+(
+doc
+["h–lo"] =ð
+F
+("world"));
+
+48 
+SECTION
+("ElementProxy::operator==") {
+
+49 
+	gdoc
+.
+add
+("world");
+
+51 
+REQUIRE
+(
+doc
+[0] =ð
+F
+("world"));
+
+55 
+TEST_CASE
+("strlen_P") {
+
+56 
+CHECK
+(
+¡¾’_P
+(
+FC
+("")) == 0);
+
+57 
+CHECK
+(
+¡¾’_P
+(
+FC
+("a")) == 1);
+
+58 
+CHECK
+(
+¡¾’_P
+(
+FC
+("ac")) == 2);
+
+61 
+TEST_CASE
+("strncmp_P") {
+
+62 
+CHECK
+(
+¡ºcmp_P
+("a", 
+FC
+("b"), 0) == 0);
+
+63 
+CHECK
+(
+¡ºcmp_P
+("a", 
+FC
+("b"), 1) == -1);
+
+64 
+CHECK
+(
+¡ºcmp_P
+("b", 
+FC
+("a"), 1) == 1);
+
+65 
+CHECK
+(
+¡ºcmp_P
+("a", 
+FC
+("a"), 0) == 0);
+
+66 
+CHECK
+(
+¡ºcmp_P
+("a", 
+FC
+("b"), 2) == -1);
+
+67 
+CHECK
+(
+¡ºcmp_P
+("b", 
+FC
+("a"), 2) == 1);
+
+68 
+CHECK
+(
+¡ºcmp_P
+("a", 
+FC
+("a"), 2) == 0);
+
+71 
+TEST_CASE
+("strcmp_P") {
+
+72 
+CHECK
+(
+¡rcmp_P
+("a", 
+FC
+("b")) == -1);
+
+73 
+CHECK
+(
+¡rcmp_P
+("b", 
+FC
+("a")) == 1);
+
+74 
+CHECK
+(
+¡rcmp_P
+("a", 
+FC
+("a")) == 0);
+
+75 
+CHECK
+(
+¡rcmp_P
+("¯", 
+FC
+("ab")) == -1);
+
+76 
+CHECK
+(
+¡rcmp_P
+("ab", 
+FC
+("aa")) == 1);
+
+77 
+CHECK
+(
+¡rcmp_P
+("¯", 
+FC
+("aa")) == 0);
+
+80 
+TEST_CASE
+("memcpy_P") {
+
+81 
+	gd¡
+[4];
+
+82 
+CHECK
+(
+memýy_P
+(
+d¡
+, 
+FC
+("ABC"), 4) == dst);
+
+83 
+CHECK
+(
+d¡
+[0] == 'A');
+
+84 
+CHECK
+(
+d¡
+[1] == 'B');
+
+85 
+CHECK
+(
+d¡
+[2] == 'C');
+
+86 
+CHECK
+(
+d¡
+[3] == 0);
+
+89 
+TEST_CASE
+("BoundedReader<const __FlashStringHelper*>") {
+
+90 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+92 
+SECTION
+("read") {
+
+93 
+	gBoundedR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> 
+»ad”
+(
+F
+("\x01\xFF"), 2);
+
+94 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x01);
+
+95 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0xFF);
+
+96 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == -1);
+
+97 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == -1);
+
+100 
+SECTION
+("readBytes()‡ll‡t once") {
+
+101 
+	gBoundedR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> 
+»ad”
+(
+F
+("ABCD"), 3);
+
+103 
+	gbufãr
+[8] = "abcd";
+
+104 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 3);
+
+106 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+107 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+108 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+109 
+REQUIRE
+(
+bufãr
+[3] == 'd');
+
+112 
+SECTION
+("readBytes() in�wo…arts") {
+
+113 
+	gBoundedR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> 
+»ad”
+(
+F
+("ABCDEF"), 6);
+
+115 
+	gbufãr
+[8] = "abcdefg";
+
+116 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 4);
+
+117 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+ + 4, 4) == 2);
+
+119 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+120 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+121 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+122 
+REQUIRE
+(
+bufãr
+[3] == 'D');
+
+123 
+REQUIRE
+(
+bufãr
+[4] == 'E');
+
+124 
+REQUIRE
+(
+bufãr
+[5] == 'F');
+
+125 
+REQUIRE
+(
+bufãr
+[6] == 'g');
+
+129 
+TEST_CASE
+("Reader<const __FlashStringHelper*>") {
+
+130 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+132 
+SECTION
+("read()") {
+
+133 
+	gR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> 
+»ad”
+(
+F
+("\x01\xFF\x00\x12"));
+
+134 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x01);
+
+135 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0xFF);
+
+136 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0);
+
+137 
+REQUIRE
+(
+»ad”
+.
+»ad
+() == 0x12);
+
+140 
+SECTION
+("readBytes()‡ll‡t once") {
+
+141 
+	gR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> 
+»ad”
+(
+F
+("ABCD"));
+
+143 
+	gbufãr
+[8] = "abcd";
+
+144 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 3) == 3);
+
+146 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+147 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+148 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+149 
+REQUIRE
+(
+bufãr
+[3] == 'd');
+
+152 
+SECTION
+("readBytes() in�wo…arts") {
+
+153 
+	gR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> 
+»ad”
+(
+F
+("ABCDEF"));
+
+155 
+	gbufãr
+[8] = "abcdefg";
+
+156 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+, 4) == 4);
+
+157 
+REQUIRE
+(
+»ad”
+.
+»adBy‹s
+(
+bufãr
+ + 4, 2) == 2);
+
+159 
+REQUIRE
+(
+bufãr
+[0] == 'A');
+
+160 
+REQUIRE
+(
+bufãr
+[1] == 'B');
+
+161 
+REQUIRE
+(
+bufãr
+[2] == 'C');
+
+162 
+REQUIRE
+(
+bufãr
+[3] == 'D');
+
+163 
+REQUIRE
+(
+bufãr
+[4] == 'E');
+
+164 
+REQUIRE
+(
+bufãr
+[5] == 'F');
+
+165 
+REQUIRE
+(
+bufãr
+[6] == 'g');
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_0.cpp
+
+1 
+	#ARDUINOJSON_USE_DOUBLE
+ 0
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+6 
+TEST_CASE
+("ARDUINOJSON_USE_DOUBLE == 0") {
+
+7 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+8 
+JsÚObjeù
+ 
+	groÙ
+ = 
+doc
+.
+to
+<JsonObject>();
+
+10 
+	groÙ
+["pi"] = 3.14;
+
+11 
+	groÙ
+["e"] = 2.72;
+
+13 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+14 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+16 
+REQUIRE
+(
+jsÚ
+ == "{\"pi\":3.14,\"e\":2.72}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_1.cpp
+
+1 
+	#ARDUINOJSON_USE_DOUBLE
+ 1
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+6 
+TEST_CASE
+("ARDUINOJSON_USE_DOUBLE == 1") {
+
+7 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+8 
+JsÚObjeù
+ 
+	groÙ
+ = 
+doc
+.
+to
+<JsonObject>();
+
+10 
+	groÙ
+["pi"] = 3.14;
+
+11 
+	groÙ
+["e"] = 2.72;
+
+13 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+14 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+16 
+REQUIRE
+(
+jsÚ
+ == "{\"pi\":3.14,\"e\":2.72}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_0.cpp
+
+1 
+	#ARDUINOJSON_USE_LONG_LONG
+ 0
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+6 
+	g‹m¶©e
+ <
+size_t
+ 
+	gsize_of_lÚg
+>
+
+7 
+	g¡d
+::
+¡ršg
+ 
+g‘_ex³ùed_jsÚ
+();
+
+9 
+	g‹m¶©e
+ <>
+
+10 
+	g¡d
+::
+¡ršg
+ 
+g‘_ex³ùed_jsÚ
+<4>() {
+
+14 
+	g‹m¶©e
+ <>
+
+15 
+	g¡d
+::
+¡ršg
+ 
+g‘_ex³ùed_jsÚ
+<8>() {
+
+19 
+TEST_CASE
+("ARDUINOJSON_USE_LONG_LONG == 0") {
+
+20 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+21 
+JsÚObjeù
+ 
+	groÙ
+ = 
+doc
+.
+to
+<JsonObject>();
+
+23 
+	groÙ
+["A"] = 123456789123456789;
+
+24 
+	groÙ
+["B"] = 987654321987654321;
+
+26 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+27 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+29 
+REQUIRE
+(
+jsÚ
+ =ð
+g‘_ex³ùed_jsÚ
+<()>());
+
+	@lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_1.cpp
+
+1 
+	#ARDUINOJSON_USE_LONG_LONG
+ 1
+
+	)
+
+2 
+	~<ArdušoJsÚ.h
+>
+
+4 
+	~<ÿtch.hµ
+>
+
+6 
+TEST_CASE
+("ARDUINOJSON_USE_LONG_LONG == 1") {
+
+7 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+8 
+JsÚObjeù
+ 
+	groÙ
+ = 
+doc
+.
+to
+<JsonObject>();
+
+10 
+	groÙ
+["A"] = 123456789123456789;
+
+11 
+	groÙ
+["B"] = 987654321987654321;
+
+13 
+	g¡d
+::
+¡ršg
+ 
+jsÚ
+;
+
+14 
+£rŸlizeJsÚ
+(
+doc
+, 
+jsÚ
+);
+
+16 
+REQUIRE
+(
+jsÚ
+ == "{\"A\":123456789123456789,\"B\":987654321987654321}");
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("deserialize MsgPack‡rray") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("fixarray") {
+
+12 
+SECTION
+("empty") {
+
+13 cÚ¡ * 
+	gšput
+ = "\x90";
+
+15 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+16 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+18 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+19 
+REQUIRE
+(
+¬¿y
+.
+size
+() == 0);
+
+22 
+SECTION
+("two integers") {
+
+23 cÚ¡ * 
+	gšput
+ = "\x92\x01\x02";
+
+25 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+26 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+28 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+29 
+REQUIRE
+(
+¬¿y
+.
+size
+() == 2);
+
+30 
+REQUIRE
+(
+¬¿y
+[0] == 1);
+
+31 
+REQUIRE
+(
+¬¿y
+[1] == 2);
+
+35 
+SECTION
+("array 16") {
+
+36 
+SECTION
+("empty") {
+
+37 cÚ¡ * 
+	gšput
+ = "\xDC\x00\x00";
+
+39 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+40 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+42 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+43 
+REQUIRE
+(
+¬¿y
+.
+size
+() == 0);
+
+46 
+SECTION
+("two strings") {
+
+47 cÚ¡ * 
+	gšput
+ = "\xDC\x00\x02\xA5hello\xA5world";
+
+49 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+50 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+52 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+53 
+REQUIRE
+(
+¬¿y
+.
+size
+() == 2);
+
+54 
+REQUIRE
+(
+¬¿y
+[0] == "hello");
+
+55 
+REQUIRE
+(
+¬¿y
+[1] == "world");
+
+59 
+SECTION
+("array 32") {
+
+60 
+SECTION
+("empty") {
+
+61 cÚ¡ * 
+	gšput
+ = "\xDD\x00\x00\x00\x00";
+
+63 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+64 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+66 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+67 
+REQUIRE
+(
+¬¿y
+.
+size
+() == 0);
+
+70 
+SECTION
+("two floats") {
+
+71 cÚ¡ * 
+	gšput
+ =
+
+74 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+75 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+77 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+78 
+REQUIRE
+(
+¬¿y
+.
+size
+() == 2);
+
+79 
+REQUIRE
+(
+¬¿y
+[0] == 0.0f);
+
+80 
+REQUIRE
+(
+¬¿y
+[1] == 3.14f);
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("deserialize MsgPack object") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+11 
+SECTION
+("fixmap") {
+
+12 
+SECTION
+("empty") {
+
+13 cÚ¡ * 
+	gšput
+ = "\x80";
+
+15 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+16 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+18 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+19 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+20 
+REQUIRE
+(
+obj
+.
+size
+() == 0);
+
+23 
+SECTION
+("two integers") {
+
+24 cÚ¡ * 
+	gšput
+ = "\x82\xA3one\x01\xA3two\x02";
+
+26 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+27 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+29 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+30 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+31 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+32 
+REQUIRE
+(
+obj
+["one"] == 1);
+
+33 
+REQUIRE
+(
+obj
+["two"] == 2);
+
+36 
+SECTION
+("key is str 8") {
+
+37 cÚ¡ * 
+	gšput
+ = "\x82\xd9\x03one\x01\xd9\x03two\x02";
+
+39 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+40 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+42 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+43 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+44 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+45 
+REQUIRE
+(
+obj
+["one"] == 1);
+
+46 
+REQUIRE
+(
+obj
+["two"] == 2);
+
+49 
+SECTION
+("key is str 16") {
+
+50 cÚ¡ * 
+	gšput
+ = "\x82\xda\x00\x03one\x01\xda\x00\x03two\x02";
+
+52 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+53 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+55 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+56 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+57 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+58 
+REQUIRE
+(
+obj
+["one"] == 1);
+
+59 
+REQUIRE
+(
+obj
+["two"] == 2);
+
+62 
+SECTION
+("key is str 32") {
+
+63 cÚ¡ * 
+	gšput
+ =
+
+66 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+67 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+69 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+70 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+71 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+72 
+REQUIRE
+(
+obj
+["one"] == 1);
+
+73 
+REQUIRE
+(
+obj
+["two"] == 2);
+
+77 
+SECTION
+("map 16") {
+
+78 
+SECTION
+("empty") {
+
+79 cÚ¡ * 
+	gšput
+ = "\xDE\x00\x00";
+
+81 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+82 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+84 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+85 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+86 
+REQUIRE
+(
+obj
+.
+size
+() == 0);
+
+89 
+SECTION
+("two strings") {
+
+90 cÚ¡ * 
+	gšput
+ = "\xDE\x00\x02\xA1H\xA5hello\xA1W\xA5world";
+
+92 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+93 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+95 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+96 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+97 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+98 
+REQUIRE
+(
+obj
+["H"] == "hello");
+
+99 
+REQUIRE
+(
+obj
+["W"] == "world");
+
+103 
+SECTION
+("map 32") {
+
+104 
+SECTION
+("empty") {
+
+105 cÚ¡ * 
+	gšput
+ = "\xDF\x00\x00\x00\x00";
+
+107 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+108 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+110 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+111 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+112 
+REQUIRE
+(
+obj
+.
+size
+() == 0);
+
+115 
+SECTION
+("two floats") {
+
+116 cÚ¡ * 
+	gšput
+ =
+
+120 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+121 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+123 
+REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+124 
+REQUIRE
+(
+doc
+.
+is
+<
+JsÚObjeù
+>());
+
+125 
+REQUIRE
+(
+obj
+.
+size
+() == 2);
+
+126 
+REQUIRE
+(
+obj
+["zero"] == 0.0f);
+
+127 
+REQUIRE
+(
+obj
+["pi"] == 3.14f);
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeStaticVariant.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	g‹m¶©e
+ <
+size_t
+ 
+	gC­ac™y
+>
+
+9 
+	$check
+(cÚ¡ * 
+šput
+, 
+De£rŸliz©iÚE¼Ü
+ 
+ex³ùed
+) {
+
+10 
+S�ticJsÚDocum’t
+<
+C­ac™y
+> 
+v¬ŸÁ
+;
+
+12 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeMsgPack
+(
+v¬ŸÁ
+, 
+šput
+);
+
+14 
+	`CAPTURE
+(
+šput
+);
+
+15 
+	`REQUIRE
+(
+”rÜ
+ =ð
+ex³ùed
+);
+
+16 
+	}
+}
+
+18 
+	g‹m¶©e
+ <
+size_t
+ 
+	gSize
+>
+
+19 
+	$checkSŒšg
+(cÚ¡ * 
+šput
+, 
+De£rŸliz©iÚE¼Ü
+ 
+ex³ùed
+) {
+
+20 
+check
+<
+	`JSON_STRING_SIZE
+(
+Size
+)>(
+šput
+, 
+ex³ùed
+);
+
+21 
+	}
+}
+
+23 
+TEST_CASE
+("deserializeMsgPack(StaticJsonDocument&)") {
+
+24 
+SECTION
+("single values‡lways fit") {
+
+25 
+	gcheck
+<0>("\xc0", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+26 
+	gcheck
+<0>("\xc2", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+27 
+	gcheck
+<0>("\xc3", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+28 
+	gcheck
+<0>("\xcc\x00", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+29 
+	gcheck
+<0>("\xcd\x30\x39", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+30 
+	gcheck
+<0>("\xCE\x12\x34\x56\x78", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+33 
+SECTION
+("fixstr") {
+
+34 
+	gcheckSŒšg
+<8>("\xA0", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+35 
+	gcheckSŒšg
+<8>("\xA7ZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+36 
+	gcheckSŒšg
+<8>("\xA8ZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+37 
+	gcheckSŒšg
+<16>("\xAFZZZZZZZZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+38 
+	gcheckSŒšg
+<16>("\xB0ZZZZZZZZZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+41 
+SECTION
+("str 8") {
+
+42 
+	gcheckSŒšg
+<8>("\xD9\x00", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+43 
+	gcheckSŒšg
+<8>("\xD9\x07ZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+44 
+	gcheckSŒšg
+<8>("\xD9\x08ZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+45 
+	gcheckSŒšg
+<16>("\xD9\x0FZZZZZZZZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+46 
+	gcheckSŒšg
+<16>("\xD9\x10ZZZZZZZZZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+49 
+SECTION
+("str 16") {
+
+50 
+	gcheckSŒšg
+<8>("\xDA\x00\x00", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+51 
+	gcheckSŒšg
+<8>("\xDA\x00\x07ZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+52 
+	gcheckSŒšg
+<8>("\xDA\x00\x08ZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+53 
+	gcheckSŒšg
+<16>("\xDA\x00\x0FZZZZZZZZZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+54 
+	gcheckSŒšg
+<16>("\xDA\x00\x10ZZZZZZZZZZZZZZZZ",
+
+55 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+58 
+SECTION
+("str 32") {
+
+59 
+	gcheckSŒšg
+<8>("\xDB\x00\x00\x00\x00", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+60 
+	gcheckSŒšg
+<8>("\xDB\x00\x00\x00\x07ZZZZZZZ", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+61 
+	gcheckSŒšg
+<8>("\xDB\x00\x00\x00\x08ZZZZZZZZ",
+
+62 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+63 
+	gcheckSŒšg
+<16>("\xDB\x00\x00\x00\x0FZZZZZZZZZZZZZZZ",
+
+64 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+65 
+	gcheckSŒšg
+<16>("\xDB\x00\x00\x00\x10ZZZZZZZZZZZZZZZZ",
+
+66 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+69 
+SECTION
+("fixarray") {
+
+70 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(0)>("\x90", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+71 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(0)>("\x91\x01",
+
+72 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+73 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(1)>("\x91\x01", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+74 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(1)>("\x92\x01\x02",
+
+75 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+78 
+SECTION
+("array 16") {
+
+79 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(0)>("\xDC\x00\x00", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+80 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(0)>("\xDC\x00\x01\x01",
+
+81 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+82 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(1)>("\xDC\x00\x01\x01", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+83 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(1)>("\xDC\x00\x02\x01\x02",
+
+84 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+87 
+SECTION
+("array 32") {
+
+88 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(0)>("\xDD\x00\x00\x00\x00", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+89 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(0)>("\xDD\x00\x00\x00\x01\x01",
+
+90 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+91 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(1)>("\xDD\x00\x00\x00\x01\x01",
+
+92 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+93 
+	gcheck
+<
+JSON_ARRAY_SIZE
+(1)>("\xDD\x00\x00\x00\x02\x01\x02",
+
+94 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+97 
+SECTION
+("fixmap") {
+
+98 
+SECTION
+("{}") {
+
+99 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(0)>("\x80", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+101 
+SECTION
+("{H:1}") {
+
+102 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(0)>("\x81\xA1H\x01",
+
+103 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+104 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2)>(
+
+105 "\x81\xA1H\x01", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+107 
+SECTION
+("{H:1,W:2}") {
+
+108 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2)>(
+
+109 "\x82\xA1H\x01\xA1W\x02", 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+110 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(2è+ 2 * 
+JSON_STRING_SIZE
+(2)>(
+
+111 "\x82\xA1H\x01\xA1W\x02", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+115 
+SECTION
+("map 16") {
+
+116 
+SECTION
+("{}") {
+
+117 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(0)>("\xDE\x00\x00", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+119 
+SECTION
+("{H:1}") {
+
+120 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(0)>("\xDE\x00\x01\xA1H\x01",
+
+121 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+122 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2)>(
+
+123 "\xDE\x00\x01\xA1H\x01", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+125 
+SECTION
+("{H:1,W:2}") {
+
+126 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2)>(
+
+127 "\xDE\x00\x02\xA1H\x01\xA1W\x02", 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+128 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(2) + 2 * JSON_OBJECT_SIZE(1)>(
+
+129 "\xDE\x00\x02\xA1H\x01\xA1W\x02", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+133 
+SECTION
+("map 32") {
+
+134 
+SECTION
+("{}") {
+
+135 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(0)>("\xDF\x00\x00\x00\x00",
+
+136 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+138 
+SECTION
+("{H:1}") {
+
+139 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(0)>("\xDF\x00\x00\x00\x01\xA1H\x01",
+
+140 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+141 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2)>(
+
+142 "\xDF\x00\x00\x00\x01\xA1H\x01", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+144 
+SECTION
+("{H:1,W:2}") {
+
+145 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(1è+ 
+JSON_STRING_SIZE
+(2)>(
+
+147 
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+);
+
+148 
+	gcheck
+<
+JSON_OBJECT_SIZE
+(2) + 2 * JSON_OBJECT_SIZE(1)>(
+
+149 "\xDF\x00\x00\x00\x02\xA1H\x01\xA1W\x02", 
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gU
+>
+
+9 
+	$check
+(cÚ¡ * 
+šput
+, 
+U
+ 
+ex³ùed
+) {
+
+10 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+12 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+14 
+	`REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+15 
+	`REQUIRE
+(
+doc
+.
+is
+<
+T
+>());
+
+16 
+	`REQUIRE
+(
+doc
+.
+as
+<
+T
+>(è=ð
+ex³ùed
+);
+
+17 
+	}
+}
+
+19 #ià
+ARDUINOJSON_USE_LONG_LONG
+ == 0
+
+20 
+	$checkNÙSuµÜ‹d
+(cÚ¡ * 
+šput
+) {
+
+21 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+22 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+23 
+	`REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+);
+
+24 
+	}
+}
+
+27 
+	$checkIsNuÎ
+(cÚ¡ * 
+šput
+) {
+
+28 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+30 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+32 
+	`REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+33 
+	`REQUIRE
+(
+doc
+.
+as
+<
+JsÚV¬ŸÁ
+>().
+	`isNuÎ
+());
+
+34 
+	}
+}
+
+36 
+TEST_CASE
+("deserialize MsgPack value") {
+
+37 
+SECTION
+("nil") {
+
+38 
+checkIsNuÎ
+("\xc0");
+
+41 
+SECTION
+("bool") {
+
+42 
+	gcheck
+<
+	gboÞ
+>("\xc2", 
+	gçl£
+);
+
+43 
+	gcheck
+<
+	gboÞ
+>("\xc3", 
+	gŒue
+);
+
+46 
+SECTION
+("positive fixint") {
+
+47 
+	gcheck
+<>("\x00", 0);
+
+48 
+	gcheck
+<>("\x7F", 127);
+
+51 
+SECTION
+("negative fixint") {
+
+52 
+	gcheck
+<>("\xe0", -32);
+
+53 
+	gcheck
+<>("\xff", -1);
+
+56 
+SECTION
+("uint 8") {
+
+57 
+	gcheck
+<>("\xcc\x00", 0);
+
+58 
+	gcheck
+<>("\xcc\xff", 255);
+
+61 
+SECTION
+("uint 16") {
+
+62 
+	gcheck
+<>("\xcd\x00\x00", 0);
+
+63 
+	gcheck
+<>("\xcd\xFF\xFF", 65535);
+
+64 
+	gcheck
+<>("\xcd\x30\x39", 12345);
+
+67 
+SECTION
+("uint 32") {
+
+68 
+	gcheck
+<
+	gušt32_t
+>("\xCE\x00\x00\x00\x00", 0x00000000U);
+
+69 
+	gcheck
+<
+	gušt32_t
+>("\xCE\xFF\xFF\xFF\xFF", 0xFFFFFFFFU);
+
+70 
+	gcheck
+<
+	gušt32_t
+>("\xCE\x12\x34\x56\x78", 0x12345678U);
+
+73 
+SECTION
+("uint 64") {
+
+74 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+75 
+	gcheck
+<
+	gušt64_t
+>("\xCF\x00\x00\x00\x00\x00\x00\x00\x00", 0U);
+
+76 
+	gcheck
+<
+	gušt64_t
+>("\xCF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF",
+
+78 
+	gcheck
+<
+	gušt64_t
+>("\xCF\x12\x34\x56\x78\x9A\xBC\xDE\xF0",
+
+81 
+checkNÙSuµÜ‹d
+("\xCF\x00\x00\x00\x00\x00\x00\x00\x00");
+
+82 
+checkNÙSuµÜ‹d
+("\xCF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF");
+
+83 
+checkNÙSuµÜ‹d
+("\xCF\x12\x34\x56\x78\x9A\xBC\xDE\xF0");
+
+87 
+SECTION
+("int 8") {
+
+88 
+	gcheck
+<>("\xd0\x00", 0);
+
+89 
+	gcheck
+<>("\xd0\xff", -1);
+
+92 
+SECTION
+("int 16") {
+
+93 
+	gcheck
+<>("\xD1\x00\x00", 0);
+
+94 
+	gcheck
+<>("\xD1\xFF\xFF", -1);
+
+95 
+	gcheck
+<>("\xD1\xCF\xC7", -12345);
+
+98 
+SECTION
+("int 32") {
+
+99 
+	gcheck
+<>("\xD2\x00\x00\x00\x00", 0);
+
+100 
+	gcheck
+<>("\xD2\xFF\xFF\xFF\xFF", -1);
+
+101 
+	gcheck
+<>("\xD2\xB6\x69\xFD\x2E", -1234567890);
+
+104 
+SECTION
+("int 64") {
+
+105 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+106 
+	gcheck
+<
+	gšt64_t
+>("\xD3\x00\x00\x00\x00\x00\x00\x00\x00", 
+št64_t
+(0U));
+
+107 
+	gcheck
+<
+	gšt64_t
+>("\xD3\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF",
+
+108 
+št64_t
+(0xFFFFFFFFFFFFFFFFU));
+
+109 
+	gcheck
+<
+	gšt64_t
+>("\xD3\x12\x34\x56\x78\x9A\xBC\xDE\xF0",
+
+110 
+št64_t
+(0x123456789ABCDEF0));
+
+112 
+checkNÙSuµÜ‹d
+("\xD3\x00\x00\x00\x00\x00\x00\x00\x00");
+
+113 
+checkNÙSuµÜ‹d
+("\xD3\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF");
+
+114 
+checkNÙSuµÜ‹d
+("\xD3\x12\x34\x56\x78\x9A\xBC\xDE\xF0");
+
+118 
+SECTION
+("float 32") {
+
+119 
+	gcheck
+<>("\xCA\x00\x00\x00\x00", 0.0f);
+
+120 
+	gcheck
+<>("\xCA\x40\x48\xF5\xC3", 3.14f);
+
+123 
+SECTION
+("float 64") {
+
+124 
+	gcheck
+<>("\xCB\x00\x00\x00\x00\x00\x00\x00\x00", 0.0);
+
+125 
+	gcheck
+<>("\xCB\x40\x09\x21\xCA\xC0\x83\x12\x6F", 3.1415);
+
+128 
+SECTION
+("fixstr") {
+
+129 
+	gcheck
+<cÚ¡ *>("\xA0", 
+	g¡d
+::
+¡ršg
+(""));
+
+130 
+	gcheck
+<cÚ¡ *>("\xABh–lØwÜld", 
+	g¡d
+::
+¡ršg
+("hello world"));
+
+131 
+	gcheck
+<const *>("\xBFhello world hello world hello !",
+
+132 
+	g¡d
+::
+¡ršg
+("hello world hello world hello !"));
+
+135 
+SECTION
+("str 8") {
+
+136 
+	gcheck
+<cÚ¡ *>("\xd9\x05h–lo", 
+	g¡d
+::
+¡ršg
+("hello"));
+
+139 
+SECTION
+("str 16") {
+
+140 
+	gcheck
+<cÚ¡ *>("\xda\x00\x05h–lo", 
+	g¡d
+::
+¡ršg
+("hello"));
+
+143 
+SECTION
+("str 32") {
+
+144 
+	gcheck
+<cÚ¡ *>("\xdb\x00\x00\x00\x05h–lo", 
+	g¡d
+::
+¡ršg
+("hello"));
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+11 
+	$check
+(cÚ¡ * 
+šput
+, 
+T
+ 
+ex³ùed
+) {
+
+12 
+T
+ 
+aùu®
+;
+
+13 
+ušt8_t
+* 
+f
+ = 
+»š‹½»t_ÿ¡
+<ušt8_t*>(&
+aùu®
+);
+
+14 cÚ¡ 
+ušt8_t
+* 
+d
+ = 
+»š‹½»t_ÿ¡
+<cÚ¡ ušt8_t*>(
+šput
+);
+
+15 
+	`doubËToFlßt
+(
+d
+, 
+f
+);
+
+16 
+	`fixEndŸÃss
+(
+aùu®
+);
+
+17 
+	`CHECK
+(
+aùu®
+ =ð
+ex³ùed
+);
+
+18 
+	}
+}
+
+20 
+TEST_CASE
+("doubleToFloat()") {
+
+21 
+check
+("\x40\x09\x21\xCA\xC0\x83\x12\x6F", 3.1415f);
+
+22 
+check
+("\x00\x00\x00\x00\x00\x00\x00\x00", 0.0f);
+
+23 
+check
+("\x80\x00\x00\x00\x00\x00\x00\x00", -0.0f);
+
+24 
+check
+("\xC0\x5E\xDC\xCC\xCC\xCC\xCC\xCD", -123.45f);
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/incompleteInput.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlize
+(cÚ¡ * 
+šput
+, 
+size_t
+ 
+Ën
+) {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+11  
+	`de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+, 
+Ën
+);
+
+12 
+	}
+}
+
+14 
+	$checkAÎSizes
+(cÚ¡ * 
+šput
+, 
+size_t
+ 
+Ën
+) {
+
+15 
+	`REQUIRE
+(
+	`de£rŸlize
+(
+šput
+, 
+Ën
+è=ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+17 --
+Ën
+) {
+
+18 
+	`REQUIRE
+(
+	`de£rŸlize
+(
+šput
+, 
+Ën
+è=ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+20 
+	}
+}
+
+22 
+TEST_CASE
+("deserializeMsgPack()„eturns IncompleteInput") {
+
+23 
+SECTION
+("empty input") {
+
+24 
+checkAÎSizes
+("\x00", 1);
+
+27 
+SECTION
+("fixarray") {
+
+28 
+checkAÎSizes
+("\x91\x01", 2);
+
+31 
+SECTION
+("array 16") {
+
+32 
+checkAÎSizes
+("\xDC\x00\x01\x01", 4);
+
+35 
+SECTION
+("array 32") {
+
+36 
+checkAÎSizes
+("\xDD\x00\x00\x00\x01\x01", 6);
+
+39 
+SECTION
+("fixmap") {
+
+40 
+checkAÎSizes
+("\x81\xA3one\x01", 6);
+
+43 
+SECTION
+("map 16") {
+
+44 
+checkAÎSizes
+("\xDE\x00\x01\xA3one\x01", 8);
+
+47 
+SECTION
+("map 32") {
+
+48 
+checkAÎSizes
+("\xDF\x00\x00\x00\x01\xA3one\x01", 10);
+
+49 
+checkAÎSizes
+("\xDF\x00\x00\x00\x01\xd9\x03one\x01", 11);
+
+52 
+SECTION
+("uint 8") {
+
+53 
+checkAÎSizes
+("\xcc\x01", 2);
+
+56 
+SECTION
+("uint 16") {
+
+57 
+checkAÎSizes
+("\xcd\x00\x01", 3);
+
+60 
+SECTION
+("uint 32") {
+
+61 
+checkAÎSizes
+("\xCE\x00\x00\x00\x01", 5);
+
+64 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+65 
+SECTION
+("uint 64") {
+
+66 
+checkAÎSizes
+("\xCF\x00\x00\x00\x00\x00\x00\x00\x00", 9);
+
+70 
+SECTION
+("int 8") {
+
+71 
+checkAÎSizes
+("\xD0\x01", 2);
+
+74 
+SECTION
+("int 16") {
+
+75 
+checkAÎSizes
+("\xD1\x00\x01", 3);
+
+78 
+SECTION
+("int 32") {
+
+79 
+checkAÎSizes
+("\xD2\x00\x00\x00\x01", 5);
+
+82 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+83 
+SECTION
+("int 64") {
+
+84 
+checkAÎSizes
+("\xD3\x00\x00\x00\x00\x00\x00\x00\x00", 9);
+
+88 
+SECTION
+("float 32") {
+
+89 
+checkAÎSizes
+("\xCA\x40\x48\xF5\xC3", 5);
+
+92 
+SECTION
+("float 64") {
+
+93 
+checkAÎSizes
+("\xCB\x40\x09\x21\xCA\xC0\x83\x12\x6F", 9);
+
+96 
+SECTION
+("fixstr") {
+
+97 
+checkAÎSizes
+("\xABhello world", 12);
+
+100 
+SECTION
+("str 8") {
+
+101 
+checkAÎSizes
+("\xd9\x05hello", 7);
+
+104 
+SECTION
+("str 16") {
+
+105 
+checkAÎSizes
+("\xda\x00\x05hello", 8);
+
+108 
+SECTION
+("str 32") {
+
+109 
+checkAÎSizes
+("\xdb\x00\x00\x00\x05hello", 10);
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	~"Cu¡omR—d”.hµ
+"
+
+10 
+TEST_CASE
+("deserializeMsgPack(const std::string&)") {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+13 
+SECTION
+("should‡ccept const string") {
+
+14 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+šput
+("\x92\x01\x02");
+
+16 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+18 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+21 
+SECTION
+("should‡ccept�emporary string") {
+
+22 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+23 
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡d
+::
+¡ršg
+("\x92\x01\x02"));
+
+25 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+28 
+SECTION
+("should duplicate content") {
+
+29 
+	g¡d
+::
+¡ršg
+ 
+šput
+("\x91\xA5hello");
+
+31 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+32 
+	gšput
+[2] = 'X';
+
+34 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+as
+<JsonArray>();
+
+35 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+36 
+REQUIRE
+(
+¡d
+::
+¡ršg
+("h–lo"è=ð
+¬¿y
+[0]);
+
+39 
+SECTION
+("should‡ccept‡ zero in input") {
+
+40 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ =
+
+41 
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡d
+::
+¡ršg
+("\x92\x00\x02", 3));
+
+43 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+44 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+45 
+REQUIRE
+(
+¬r
+[0] == 0);
+
+46 
+REQUIRE
+(
+¬r
+[1] == 2);
+
+50 
+TEST_CASE
+("deserializeMsgPack(std::istream&)") {
+
+51 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+53 
+SECTION
+("should‡ccept‡ zero in input") {
+
+54 
+	g¡d
+::
+i¡ršg¡»am
+ 
+šput
+(
+¡d
+::
+¡ršg
+("\x92\x00\x02", 3));
+
+56 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+58 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+59 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+60 
+REQUIRE
+(
+¬r
+[0] == 0);
+
+61 
+REQUIRE
+(
+¬r
+[1] == 2);
+
+64 
+SECTION
+("should detect incomplete input") {
+
+65 
+	g¡d
+::
+i¡ršg¡»am
+ 
+šput
+("\x92\x00\x02");
+
+67 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+69 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+);
+
+73 #ifdeà
+HAS_VARIABLE_LENGTH_ARRAY
+
+
+74 
+TEST_CASE
+("deserializeMsgPack(VLA)") {
+
+75 
+	gi
+ = 16;
+
+76 
+	gvÏ
+[
+i
+];
+
+77 
+memýy
+(
+vÏ
+, "\xDE\x00\x01\xA5Hello\xA5world", 15);
+
+79 
+	gS�ticJsÚDocum’t
+<
+JSON_OBJECT_SIZE
+(1)> 
+	gdoc
+;
+
+80 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+vÏ
+);
+
+82 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+86 
+TEST_CASE
+("deserializeMsgPack(CustomReader)") {
+
+87 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+88 
+Cu¡omR—d”
+ 
+»ad”
+("\x92\xA5Hello\xA5world");
+
+89 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+de£rŸlizeMsgPack
+(
+doc
+, 
+»ad”
+);
+
+91 
+REQUIRE
+(
+”r
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+Ok
+);
+
+92 
+REQUIRE
+(
+doc
+.
+size
+() == 2);
+
+93 
+REQUIRE
+(
+doc
+[0] == "Hello");
+
+94 
+REQUIRE
+(
+doc
+[1] == "world");
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	#SHOULD_WORK
+(
+ex´essiÚ
+è
+	`REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+Ok
+ =ðex´essiÚ);
+
+	)
+
+9 
+	#SHOULD_FAIL
+(
+ex´essiÚ
+) \
+
+10 
+	`REQUIRE
+(
+De£rŸliz©iÚE¼Ü
+::
+TooD“p
+ =ð
+ex´essiÚ
+);
+
+	)
+
+12 
+TEST_CASE
+("JsonDeserializer‚esting") {
+
+13 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+15 
+SECTION
+("Input = const char*") {
+
+16 
+SECTION
+("limit = 0") {
+
+17 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+18 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\xA1H", 
+Ã¡šg
+));
+
+19 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x90", 
+Ã¡šg
+));
+
+20 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x80", 
+Ã¡šg
+));
+
+23 
+SECTION
+("limit = 1") {
+
+24 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+25 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x90", 
+Ã¡šg
+));
+
+26 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x80", 
+Ã¡šg
+));
+
+27 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x81\xA1H\x80", 
+Ã¡šg
+));
+
+28 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x91\x90", 
+Ã¡šg
+));
+
+32 
+SECTION
+("char*‡nd size_t") {
+
+33 
+SECTION
+("limit = 0") {
+
+34 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+35 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\xA1H", 2, 
+Ã¡šg
+));
+
+36 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x90", 1, 
+Ã¡šg
+));
+
+37 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x80", 1, 
+Ã¡šg
+));
+
+40 
+SECTION
+("limit = 1") {
+
+41 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+42 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x90", 1, 
+Ã¡šg
+));
+
+43 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x80", 1, 
+Ã¡šg
+));
+
+44 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x81\xA1H\x80", 4, 
+Ã¡šg
+));
+
+45 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, "\x91\x90", 2, 
+Ã¡šg
+));
+
+49 
+SECTION
+("Input = std::string") {
+
+50 
+usšg
+ 
+	g¡d
+::
+¡ršg
+;
+
+52 
+SECTION
+("limit = 0") {
+
+53 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+54 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡ršg
+("\xA1H"), 
+Ã¡šg
+));
+
+55 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡ršg
+("\x90"), 
+Ã¡šg
+));
+
+56 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡ršg
+("\x80"), 
+Ã¡šg
+));
+
+59 
+SECTION
+("limit = 1") {
+
+60 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+61 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡ršg
+("\x90"), 
+Ã¡šg
+));
+
+62 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡ršg
+("\x80"), 
+Ã¡šg
+));
+
+63 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡ršg
+("\x81\xA1H\x80"), 
+Ã¡šg
+));
+
+64 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+¡ršg
+("\x91\x90"), 
+Ã¡šg
+));
+
+68 
+SECTION
+("Input = std::istream") {
+
+69 
+SECTION
+("limit = 0") {
+
+70 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(0);
+
+71 
+	g¡d
+::
+i¡ršg¡»am
+ 
+good
+("\xA1H");
+
+72 
+	g¡d
+::
+i¡ršg¡»am
+ 
+bad
+("\x90");
+
+73 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+good
+, 
+Ã¡šg
+));
+
+74 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+bad
+, 
+Ã¡šg
+));
+
+77 
+SECTION
+("limit = 1") {
+
+78 
+	gDe£rŸliz©iÚO±iÚ
+::
+Ne¡šgLim™
+ 
+Ã¡šg
+(1);
+
+79 
+	g¡d
+::
+i¡ršg¡»am
+ 
+good
+("\x90");
+
+80 
+	g¡d
+::
+i¡ršg¡»am
+ 
+bad
+("\x91\x90");
+
+81 
+SHOULD_WORK
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+good
+, 
+Ã¡šg
+));
+
+82 
+SHOULD_FAIL
+(
+de£rŸlizeMsgPack
+(
+doc
+, 
+bad
+, 
+Ã¡šg
+));
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/notSupported.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$checkNÙSuµÜ‹d
+(cÚ¡ * 
+šput
+) {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+11 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeMsgPack
+(
+doc
+, 
+šput
+);
+
+13 
+	`REQUIRE
+(
+”rÜ
+ =ð
+De£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+);
+
+14 
+	}
+}
+
+16 
+TEST_CASE
+("deserializeMsgPack()„eturn NotSupported") {
+
+17 
+SECTION
+("bin 8") {
+
+18 
+checkNÙSuµÜ‹d
+("\xc4");
+
+21 
+SECTION
+("bin 16") {
+
+22 
+checkNÙSuµÜ‹d
+("\xc5");
+
+25 
+SECTION
+("bin 32") {
+
+26 
+checkNÙSuµÜ‹d
+("\xc6");
+
+29 
+SECTION
+("ext 8") {
+
+30 
+checkNÙSuµÜ‹d
+("\xc7");
+
+33 
+SECTION
+("ext 16") {
+
+34 
+checkNÙSuµÜ‹d
+("\xc8");
+
+37 
+SECTION
+("ext 32") {
+
+38 
+checkNÙSuµÜ‹d
+("\xc9");
+
+41 
+SECTION
+("fixext 1") {
+
+42 
+checkNÙSuµÜ‹d
+("\xd4");
+
+45 
+SECTION
+("fixext 2") {
+
+46 
+checkNÙSuµÜ‹d
+("\xd5");
+
+49 
+SECTION
+("fixext 4") {
+
+50 
+checkNÙSuµÜ‹d
+("\xd6");
+
+53 
+SECTION
+("fixext 8") {
+
+54 
+checkNÙSuµÜ‹d
+("\xd7");
+
+57 
+SECTION
+("fixext 16") {
+
+58 
+checkNÙSuµÜ‹d
+("\xd8");
+
+61 
+SECTION
+("unsupported in‡rray") {
+
+62 
+checkNÙSuµÜ‹d
+("\x91\xc4");
+
+65 
+SECTION
+("unsupported in map") {
+
+66 
+checkNÙSuµÜ‹d
+("\x81\xc4\x00\xA1H");
+
+67 
+checkNÙSuµÜ‹d
+("\x81\xA1H\xc4\x00");
+
+70 
+SECTION
+("integer‡s key") {
+
+71 
+checkNÙSuµÜ‹d
+("\x81\x01\xA1H");
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("serialize MsgPack�o various destination�ypes") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+doc
+.
+to
+<JsonObject>();
+
+11 
+	gobjeù
+["hello"] = "world";
+
+12 cÚ¡ *
+	gex³ùed_»suÉ
+ = "\x81\xA5hello\xA5world";
+
+13 cÚ¡ 
+size_t
+ 
+	gex³ùed_Ëngth
+ = 13;
+
+15 
+SECTION
+("std::string") {
+
+16 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+17 
+size_t
+ 
+	gËn
+ = 
+£rŸlizeMsgPack
+(
+objeù
+, 
+»suÉ
+);
+
+19 
+REQUIRE
+(
+ex³ùed_»suÉ
+ =ð
+»suÉ
+);
+
+20 
+REQUIRE
+(
+ex³ùed_Ëngth
+ =ð
+Ën
+);
+
+32 
+SECTION
+("char[]") {
+
+33 
+	g»suÉ
+[64];
+
+34 
+size_t
+ 
+	gËn
+ = 
+£rŸlizeMsgPack
+(
+objeù
+, 
+»suÉ
+);
+
+36 
+REQUIRE
+(
+¡d
+::
+¡ršg
+(
+ex³ùed_»suÉ
+è=ð
+»suÉ
+);
+
+37 
+REQUIRE
+(
+ex³ùed_Ëngth
+ =ð
+Ën
+);
+
+40 
+SECTION
+("char*") {
+
+41 
+	g»suÉ
+[64];
+
+42 
+size_t
+ 
+	gËn
+ = 
+£rŸlizeMsgPack
+(
+objeù
+, 
+»suÉ
+, 64);
+
+44 
+REQUIRE
+(
+¡d
+::
+¡ršg
+(
+ex³ùed_»suÉ
+è=ð
+»suÉ
+);
+
+45 
+REQUIRE
+(
+ex³ùed_Ëngth
+ =ð
+Ën
+);
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+TEST_CASE
+("measureMsgPack()") {
+
+9 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+10 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+doc
+.
+to
+<JsonObject>();
+
+11 
+	gobjeù
+["hello"] = "world";
+
+13 
+REQUIRE
+(
+m—su»MsgPack
+(
+doc
+) == 13);
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/misc.cpp
+
+1 
+	~<ArdušoJsÚ.h
+>
+
+2 
+	~<ÿtch.hµ
+>
+
+3 
+	~<lim™s
+>
+
+5 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+6 
+	$check
+(
+T
+ 
+v®ue
+, cÚ¡ 
+¡d
+::
+¡ršg
+ &
+ex³ùed
+) {
+
+7 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+8 
+doc
+.
+to
+<
+JsÚV¬ŸÁ
+>().
+	`£t
+(
+v®ue
+);
+
+9 
+bufãr
+[256] = "";
+
+10 
+size_t
+ 
+»tuºV®ue
+ = 
+	`£rŸlizeMsgPack
+(
+doc
+, 
+bufãr
+, (buffer));
+
+11 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+bufãr
+);
+
+12 
+	`REQUIRE
+(
+ex³ùed
+.
+	`size
+(è=ð
+»tuºV®ue
+);
+
+13 
+	}
+}
+
+15 
+TEST_CASE
+("serializeMsgPack(MemberProxy)") {
+
+16 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+17 
+de£rŸlizeJsÚ
+(
+doc
+, "{\"hello\":42}");
+
+18 
+JsÚObjeù
+ 
+	gobj
+ = 
+doc
+.
+as
+<JsonObject>();
+
+19 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+21 
+£rŸlizeMsgPack
+(
+obj
+["h–lo"], 
+»suÉ
+);
+
+23 
+REQUIRE
+(
+»suÉ
+ == "*");
+
+26 
+TEST_CASE
+("serializeMsgPack(ElementProxy)") {
+
+27 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+28 
+de£rŸlizeJsÚ
+(
+doc
+, "[42]");
+
+29 
+JsÚA¼ay
+ 
+	g¬r
+ = 
+doc
+.
+as
+<JsonArray>();
+
+30 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+32 
+£rŸlizeMsgPack
+(
+¬r
+[0], 
+»suÉ
+);
+
+34 
+REQUIRE
+(
+»suÉ
+ == "*");
+
+37 
+TEST_CASE
+("serializeMsgPack(JsonVariantSubscript)") {
+
+38 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+39 
+de£rŸlizeJsÚ
+(
+doc
+, "[42]");
+
+40 
+JsÚV¬ŸÁ
+ 
+	gv¬
+ = 
+doc
+.
+as
+<JsonVariant>();
+
+41 
+	g¡d
+::
+¡ršg
+ 
+»suÉ
+;
+
+43 
+£rŸlizeMsgPack
+(
+v¬
+[0], 
+»suÉ
+);
+
+45 
+REQUIRE
+(
+»suÉ
+ == "*");
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	$check
+(cÚ¡ 
+JsÚA¼ay
+ 
+¬¿y
+, cÚ¡ * 
+ex³ùed_d©a
+,
+
+9 
+size_t
+ 
+ex³ùed_Ën
+) {
+
+10 
+¡d
+::
+¡ršg
+ 
+	`ex³ùed
+(
+ex³ùed_d©a
+,ƒx³ùed_d©¨+ 
+ex³ùed_Ën
+);
+
+11 
+¡d
+::
+¡ršg
+ 
+aùu®
+;
+
+12 
+size_t
+ 
+Ën
+ = 
+	`£rŸlizeMsgPack
+(
+¬¿y
+, 
+aùu®
+);
+
+13 
+	`CAPTURE
+(
+¬¿y
+);
+
+14 
+	`REQUIRE
+(
+Ën
+ =ð
+ex³ùed_Ën
+);
+
+15 
+	`REQUIRE
+(
+aùu®
+ =ð
+ex³ùed
+);
+
+16 
+	}
+}
+
+18 
+	g‹m¶©e
+ <
+size_t
+ 
+	gN
+>
+
+19 
+check
+(cÚ¡ 
+JsÚA¼ay
+ 
+¬¿y
+, cÚ¡ (&
+ex³ùed_d©a
+)[
+N
+]) {
+
+20 cÚ¡ 
+size_t
+ 
+	gex³ùed_Ën
+ = 
+N
+ - 1;
+
+21 
+check
+(
+¬¿y
+, 
+ex³ùed_d©a
+, 
+ex³ùed_Ën
+);
+
+24 
+	$check
+(cÚ¡ 
+JsÚA¼ay
+ 
+¬¿y
+, cÚ¡ 
+¡d
+::
+¡ršg
+& 
+ex³ùed
+) {
+
+25 
+	`check
+(
+¬¿y
+, 
+ex³ùed
+.
+	`d©a
+(),ƒx³ùed.
+	`Ëngth
+());
+
+26 
+	}
+}
+
+28 
+TEST_CASE
+("serialize MsgPack‡rray") {
+
+29 
+DyÇmicJsÚDocum’t
+ 
+doc
+(
+JSON_ARRAY_SIZE
+(65536));
+
+30 
+JsÚA¼ay
+ 
+	g¬¿y
+ = 
+doc
+.
+to
+<JsonArray>();
+
+32 
+SECTION
+("empty") {
+
+33 
+check
+(
+¬¿y
+, "\x90");
+
+36 
+SECTION
+("fixarray") {
+
+37 
+	g¬¿y
+.
+add
+("hello");
+
+38 
+	g¬¿y
+.
+add
+("world");
+
+40 
+check
+(
+¬¿y
+, "\x92\xA5hello\xA5world");
+
+43 
+SECTION
+("array 16") {
+
+44 
+	gi
+ = 0; i < 16; i++è
+	g¬¿y
+.
+add
+(
+i
+);
+
+46 
+check
+(
+¬¿y
+,
+
+51 
+SECTION
+("array 32") {
+
+52 cÚ¡ * 
+	gnž
+ = 0;
+
+53 
+	gi
+ = 0; i < 65536; i++è
+	g¬¿y
+.
+add
+(
+nž
+);
+
+55 
+check
+(
+¬¿y
+,
+
+56 
+¡d
+::
+¡ršg
+("\xDD\x00\x01\x00\x00", 5) + std::string(65536, '\xc0'));
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<¡dio.h
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+	$check
+(cÚ¡ 
+JsÚObjeù
+ 
+objeù
+, cÚ¡ * 
+ex³ùed_d©a
+,
+
+10 
+size_t
+ 
+ex³ùed_Ën
+) {
+
+11 
+¡d
+::
+¡ršg
+ 
+	`ex³ùed
+(
+ex³ùed_d©a
+,ƒx³ùed_d©¨+ 
+ex³ùed_Ën
+);
+
+12 
+¡d
+::
+¡ršg
+ 
+aùu®
+;
+
+13 
+size_t
+ 
+Ën
+ = 
+	`£rŸlizeMsgPack
+(
+objeù
+, 
+aùu®
+);
+
+14 
+	`CAPTURE
+(
+objeù
+);
+
+15 
+	`REQUIRE
+(
+Ën
+ =ð
+ex³ùed_Ën
+);
+
+16 
+	`REQUIRE
+(
+aùu®
+ =ð
+ex³ùed
+);
+
+17 
+	}
+}
+
+19 
+	g‹m¶©e
+ <
+size_t
+ 
+	gN
+>
+
+20 
+check
+(cÚ¡ 
+JsÚObjeù
+ 
+objeù
+, cÚ¡ (&
+ex³ùed_d©a
+)[
+N
+]) {
+
+21 cÚ¡ 
+size_t
+ 
+	gex³ùed_Ën
+ = 
+N
+ - 1;
+
+22 
+check
+(
+objeù
+, 
+ex³ùed_d©a
+, 
+ex³ùed_Ën
+);
+
+25 
+TEST_CASE
+("serialize MsgPack object") {
+
+26 
+DyÇmicJsÚDocum’t
+ 
+doc
+(4096);
+
+27 
+JsÚObjeù
+ 
+	gobjeù
+ = 
+doc
+.
+to
+<JsonObject>();
+
+29 
+SECTION
+("empty") {
+
+30 
+check
+(
+objeù
+, "\x80");
+
+33 
+SECTION
+("fixmap") {
+
+34 
+	gobjeù
+["hello"] = "world";
+
+36 
+check
+(
+objeù
+, "\x81\xA5hello\xA5world");
+
+39 
+SECTION
+("map 16") {
+
+40 
+	gi
+ = 0; i < 16; ++i) {
+
+41 
+	gkey
+[16];
+
+42 
+¥rštf
+(
+key
+, "i%X", 
+i
+);
+
+43 
+	gobjeù
+[
+key
+] = 
+i
+;
+
+46 
+check
+(
+objeù
+,
+
+52 
+SECTION
+("serialized(const char*)") {
+
+53 
+	gobjeù
+["h–lo"] = 
+£rŸlized
+("\xDB\x00\x01\x00\x00", 5);
+
+54 
+check
+(
+objeù
+, "\x81\xA5hello\xDB\x00\x01\x00\x00");
+
+57 
+SECTION
+("serialized(std::string)") {
+
+58 
+	gobjeù
+["h–lo"] = 
+£rŸlized
+(
+¡d
+::
+¡ršg
+("\xDB\x00\x01\x00\x00", 5));
+
+59 
+check
+(
+objeù
+, "\x81\xA5hello\xDB\x00\x01\x00\x00");
+
+	@lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+9 
+	$checkV¬ŸÁ
+(
+T
+ 
+v®ue
+, cÚ¡ * 
+ex³ùed_d©a
+,
+
+10 
+size_t
+ 
+ex³ùed_Ën
+) {
+
+11 
+DyÇmicJsÚDocum’t
+ 
+	`doc
+(4096);
+
+12 
+JsÚV¬ŸÁ
+ 
+v¬ŸÁ
+ = 
+doc
+.
+to
+<JsonVariant>();
+
+13 
+v¬ŸÁ
+.
+	`£t
+(
+v®ue
+);
+
+14 
+¡d
+::
+¡ršg
+ 
+	`ex³ùed
+(
+ex³ùed_d©a
+,ƒx³ùed_d©¨+ 
+ex³ùed_Ën
+);
+
+15 
+¡d
+::
+¡ršg
+ 
+aùu®
+;
+
+16 
+size_t
+ 
+Ën
+ = 
+	`£rŸlizeMsgPack
+(
+v¬ŸÁ
+, 
+aùu®
+);
+
+17 
+	`CAPTURE
+(
+v¬ŸÁ
+);
+
+18 
+	`REQUIRE
+(
+Ën
+ =ð
+ex³ùed_Ën
+);
+
+19 
+	`REQUIRE
+(
+aùu®
+ =ð
+ex³ùed
+);
+
+20 
+	}
+}
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN
+>
+
+23 
+checkV¬ŸÁ
+(
+T
+ 
+v®ue
+, cÚ¡ (&
+ex³ùed_d©a
+)[
+N
+]) {
+
+24 cÚ¡ 
+size_t
+ 
+	gex³ùed_Ën
+ = 
+N
+ - 1;
+
+25 
+checkV¬ŸÁ
+(
+v®ue
+, 
+ex³ùed_d©a
+, 
+ex³ùed_Ën
+);
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+29 
+	$checkV¬ŸÁ
+(
+T
+ 
+v®ue
+, cÚ¡ 
+¡d
+::
+¡ršg
+& 
+ex³ùed
+) {
+
+30 
+	`checkV¬ŸÁ
+(
+v®ue
+, 
+ex³ùed
+.
+	`d©a
+(),ƒx³ùed.
+	`Ëngth
+());
+
+31 
+	}
+}
+
+33 
+TEST_CASE
+("serialize MsgPack value") {
+
+34 
+SECTION
+("undefined") {
+
+35 
+checkV¬ŸÁ
+(
+JsÚV¬ŸÁ
+(), "\xC0");
+
+38 
+SECTION
+("nil") {
+
+39 cÚ¡ * 
+	gnž
+ = 0;
+
+40 
+checkV¬ŸÁ
+(
+nž
+, "\xC0");
+
+43 
+SECTION
+("bool") {
+
+44 
+checkV¬ŸÁ
+(
+çl£
+, "\xC2");
+
+45 
+checkV¬ŸÁ
+(
+Œue
+, "\xC3");
+
+48 
+SECTION
+("positive fixint") {
+
+49 
+checkV¬ŸÁ
+(0, "\x00");
+
+50 
+checkV¬ŸÁ
+(127, "\x7F");
+
+53 
+SECTION
+("uint 8") {
+
+54 
+checkV¬ŸÁ
+(128, "\xCC\x80");
+
+55 
+checkV¬ŸÁ
+(255, "\xCC\xFF");
+
+58 
+SECTION
+("uint 16") {
+
+59 
+checkV¬ŸÁ
+(256, "\xCD\x01\x00");
+
+60 
+checkV¬ŸÁ
+(0xFFFF, "\xCD\xFF\xFF");
+
+63 
+SECTION
+("uint 32") {
+
+64 
+checkV¬ŸÁ
+(0x00010000U, "\xCE\x00\x01\x00\x00");
+
+65 
+checkV¬ŸÁ
+(0x12345678U, "\xCE\x12\x34\x56\x78");
+
+66 
+checkV¬ŸÁ
+(0xFFFFFFFFU, "\xCE\xFF\xFF\xFF\xFF");
+
+69 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+70 
+SECTION
+("uint 64") {
+
+71 
+checkV¬ŸÁ
+(0x0001000000000000U, "\xCF\x00\x01\x00\x00\x00\x00\x00\x00");
+
+72 
+checkV¬ŸÁ
+(0x123456789ABCDEF0U, "\xCF\x12\x34\x56\x78\x9A\xBC\xDE\xF0");
+
+73 
+checkV¬ŸÁ
+(0xFFFFFFFFFFFFFFFFU, "\xCF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF");
+
+77 
+SECTION
+("negative fixint") {
+
+78 
+checkV¬ŸÁ
+(-1, "\xFF");
+
+79 
+checkV¬ŸÁ
+(-32, "\xE0");
+
+82 
+SECTION
+("int 8") {
+
+83 
+checkV¬ŸÁ
+(-33, "\xD0\xDF");
+
+84 
+checkV¬ŸÁ
+(-128, "\xD0\x80");
+
+87 
+SECTION
+("int 16") {
+
+88 
+checkV¬ŸÁ
+(-129, "\xD1\xFF\x7F");
+
+89 
+checkV¬ŸÁ
+(-32768, "\xD1\x80\x00");
+
+92 
+SECTION
+("int 32") {
+
+93 
+checkV¬ŸÁ
+(-32769, "\xD2\xFF\xFF\x7F\xFF");
+
+94 
+checkV¬ŸÁ
+(-2147483647 - 1, "\xD2\x80\x00\x00\x00");
+
+97 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+98 
+SECTION
+("int 64") {
+
+99 
+checkV¬ŸÁ
+(
+št64_t
+(0xFEDCBA9876543210),
+
+104 
+SECTION
+("float 32") {
+
+105 
+checkV¬ŸÁ
+(1.25, "\xCA\x3F\xA0\x00\x00");
+
+108 
+SECTION
+("float 64") {
+
+109 
+checkV¬ŸÁ
+(3.1415, "\xCB\x40\x09\x21\xCA\xC0\x83\x12\x6F");
+
+112 
+SECTION
+("fixstr") {
+
+113 
+checkV¬ŸÁ
+("", "\xA0");
+
+114 
+checkV¬ŸÁ
+("hello world hello world hello !",
+
+118 
+SECTION
+("str 8") {
+
+119 
+checkV¬ŸÁ
+("hello world hello world hello !!",
+
+123 
+SECTION
+("str 16") {
+
+124 
+	g¡d
+::
+¡ršg
+ 
+shÜ‹¡
+(256, '?');
+
+125 
+checkV¬ŸÁ
+(
+shÜ‹¡
+.
+c_¡r
+(), 
+¡d
+::
+¡ršg
+("\xDA\x01\x00", 3) + shortest);
+
+127 
+	g¡d
+::
+¡ršg
+ 
+lÚge¡
+(65535, '?');
+
+128 
+checkV¬ŸÁ
+(
+lÚge¡
+.
+c_¡r
+(), 
+¡d
+::
+¡ršg
+("\xDA\xFF\xFF", 3) +†ongest);
+
+131 
+SECTION
+("str 32") {
+
+132 
+	g¡d
+::
+¡ršg
+ 
+shÜ‹¡
+(65536, '?');
+
+133 
+checkV¬ŸÁ
+(
+shÜ‹¡
+.
+c_¡r
+(),
+
+134 
+¡d
+::
+¡ršg
+("\xDB\x00\x01\x00\x00", 5è+ 
+shÜ‹¡
+);
+
+137 
+SECTION
+("serialized(const char*)") {
+
+138 
+checkV¬ŸÁ
+(
+£rŸlized
+("\xDA\xFF\xFF"), "\xDA\xFF\xFF");
+
+139 
+checkV¬ŸÁ
+(
+£rŸlized
+("\xDB\x00\x01\x00\x00", 5), "\xDB\x00\x01\x00\x00");
+
+	@lib_standalone/ArduinoJson/extras/tests/Numbers/parseFloat.cpp
+
+5 
+	#ARDUINOJSON_USE_DOUBLE
+ 0
+
+	)
+
+6 
+	#ARDUINOJSON_ENABLE_NAN
+ 1
+
+	)
+
+7 
+	#ARDUINOJSON_ENABLE_INFINITY
+ 1
+
+	)
+
+9 
+	~<ArdušoJsÚ/Numb”s/·r£Flßt.hµ
+>
+
+10 
+	~<ÿtch.hµ
+>
+
+12 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+15 
+	$checkFlßt
+(cÚ¡ * 
+šput
+, 
+T
+ 
+ex³ùed
+) {
+
+16 
+	`CAPTURE
+(
+šput
+);
+
+17 
+	`REQUIRE
+(
+·r£Flßt
+<
+T
+>(
+šput
+è=ð
+	`Aµrox
+(
+ex³ùed
+));
+
+18 
+	}
+}
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+21 
+	$checkNaN
+(cÚ¡ * 
+šput
+) {
+
+22 
+	`CAPTURE
+(
+šput
+);
+
+23 
+T
+ 
+»suÉ
+ = 
+·r£Flßt
+<T>(
+šput
+);
+
+24 
+	`REQUIRE
+(
+»suÉ
+ !=„esult);
+
+25 
+	}
+}
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+28 
+	$checkInf
+(cÚ¡ * 
+šput
+, 
+boÞ
+ 
+Ãg©ive
+) {
+
+29 
+	`CAPTURE
+(
+šput
+);
+
+30 
+T
+ 
+x
+ = 
+·r£Flßt
+<T>(
+šput
+);
+
+31 ià(
+Ãg©ive
+)
+
+32 
+	`REQUIRE
+(
+x
+ < 0);
+
+34 
+	`REQUIRE
+(
+x
+ > 0);
+
+35 
+	`REQUIRE
+(
+x
+ == x);
+
+36 
+	`REQUIRE
+(
+x
+ * 2 == x);
+
+37 
+	}
+}
+
+39 
+TEST_CASE
+("parseFloat<float>()") {
+
+40 
+SECTION
+("Float_Short_NoExponent") {
+
+41 
+	gcheckFlßt
+<>("3.14", 3.14f);
+
+42 
+	gcheckFlßt
+<>("-3.14", -3.14f);
+
+43 
+	gcheckFlßt
+<>("+3.14", +3.14f);
+
+46 
+SECTION
+("Short_NoDot") {
+
+47 
+	gcheckFlßt
+<>("1E+38", 1E+38f);
+
+48 
+	gcheckFlßt
+<>("-1E+38", -1E+38f);
+
+49 
+	gcheckFlßt
+<>("+1E-38", +1E-38f);
+
+50 
+	gcheckFlßt
+<>("+1e+38", +1e+38f);
+
+51 
+	gcheckFlßt
+<>("-1e-38", -1e-38f);
+
+54 
+SECTION
+("Max") {
+
+55 
+	gcheckFlßt
+<>("340.2823e+36", 3.402823e+38f);
+
+56 
+	gcheckFlßt
+<>("34.02823e+37", 3.402823e+38f);
+
+57 
+	gcheckFlßt
+<>("3.402823e+38", 3.402823e+38f);
+
+58 
+	gcheckFlßt
+<>("0.3402823e+39", 3.402823e+38f);
+
+59 
+	gcheckFlßt
+<>("0.03402823e+40", 3.402823e+38f);
+
+60 
+	gcheckFlßt
+<>("0.003402823e+41", 3.402823e+38f);
+
+63 
+SECTION
+("VeryLong") {
+
+64 
+	gcheckFlßt
+<>("0.00000000000000000000000000000001", 1e-32f);
+
+65 
+	gcheckFlßt
+<>("100000000000000000000000000000000.0", 1e+32f);
+
+66 
+	gcheckFlßt
+<>(
+
+71 
+SECTION
+("MantissaTooLongToFit") {
+
+72 
+	gcheckFlßt
+<>("0.340282346638528861111111111111", 0.34028234663852886f);
+
+73 
+	gcheckFlßt
+<>("34028234663852886.11111111111111", 34028234663852886.0f);
+
+74 
+	gcheckFlßt
+<>("34028234.66385288611111111111111", 34028234.663852886f);
+
+76 
+	gcheckFlßt
+<>("-0.340282346638528861111111111111",
+
+78 
+	gcheckFlßt
+<>("-34028234663852886.11111111111111",
+
+80 
+	gcheckFlßt
+<>("-34028234.66385288611111111111111",
+
+84 
+SECTION
+("ExponentTooBig") {
+
+85 
+	gcheckInf
+<>("1e39", 
+	gçl£
+);
+
+86 
+	gcheckInf
+<>("-1e39", 
+	gŒue
+);
+
+87 
+	gcheckInf
+<>("1e255", 
+	gçl£
+);
+
+88 
+	gcheckFlßt
+<>("1e-255", 0.0f);
+
+91 
+SECTION
+("NaN") {
+
+92 
+	gcheckNaN
+<>("NaN");
+
+93 
+	gcheckNaN
+<>("nan");
+
+96 
+SECTION
+("Infinity") {
+
+97 
+	gcheckInf
+<>("Infš™y", 
+	gçl£
+);
+
+98 
+	gcheckInf
+<>("+Infš™y", 
+	gçl£
+);
+
+99 
+	gcheckInf
+<>("-Infš™y", 
+	gŒue
+);
+
+100 
+	gcheckInf
+<>("šf", 
+	gçl£
+);
+
+101 
+	gcheckInf
+<>("+šf", 
+	gçl£
+);
+
+102 
+	gcheckInf
+<>("-šf", 
+	gŒue
+);
+
+104 
+	gcheckInf
+<>("1e300", 
+	gçl£
+);
+
+105 
+	gcheckInf
+<>("-1e300", 
+	gŒue
+);
+
+109 
+TEST_CASE
+("parseFloat<double>()") {
+
+110 
+SECTION
+("Short_NoExponent") {
+
+111 
+	gcheckFlßt
+<>("3.14", 3.14);
+
+112 
+	gcheckFlßt
+<>("-3.14", -3.14);
+
+113 
+	gcheckFlßt
+<>("+3.14", +3.14);
+
+116 
+SECTION
+("Short_NoDot") {
+
+117 
+	gcheckFlßt
+<>("1E+308", 1E+308);
+
+118 
+	gcheckFlßt
+<>("-1E+308", -1E+308);
+
+119 
+	gcheckFlßt
+<>("+1E-308", +1E-308);
+
+120 
+	gcheckFlßt
+<>("+1e+308", +1e+308);
+
+121 
+	gcheckFlßt
+<>("-1e-308", -1e-308);
+
+124 
+SECTION
+("Max") {
+
+125 
+	gcheckFlßt
+<>(".017976931348623147e+310", 1.7976931348623147e+308);
+
+126 
+	gcheckFlßt
+<>(".17976931348623147e+309", 1.7976931348623147e+308);
+
+127 
+	gcheckFlßt
+<>("1.7976931348623147e+308", 1.7976931348623147e+308);
+
+128 
+	gcheckFlßt
+<>("17.976931348623147e+307", 1.7976931348623147e+308);
+
+129 
+	gcheckFlßt
+<>("179.76931348623147e+306", 1.7976931348623147e+308);
+
+132 
+SECTION
+("Min") {
+
+133 
+	gcheckFlßt
+<>(".022250738585072014e-306", 2.2250738585072014e-308);
+
+134 
+	gcheckFlßt
+<>(".22250738585072014e-307", 2.2250738585072014e-308);
+
+135 
+	gcheckFlßt
+<>("2.2250738585072014e-308", 2.2250738585072014e-308);
+
+136 
+	gcheckFlßt
+<>("22.250738585072014e-309", 2.2250738585072014e-308);
+
+137 
+	gcheckFlßt
+<>("222.50738585072014e-310", 2.2250738585072014e-308);
+
+140 
+SECTION
+("VeryLong") {
+
+141 
+	gcheckFlßt
+<>("0.00000000000000000000000000000001", 1e-32);
+
+142 
+	gcheckFlßt
+<>("100000000000000000000000000000000.0", 1e+32);
+
+143 
+	gcheckFlßt
+<>(
+
+148 
+SECTION
+("MantissaTooLongToFit") {
+
+149 
+	gcheckFlßt
+<>("0.179769313486231571111111111111", 0.17976931348623157);
+
+150 
+	gcheckFlßt
+<>("17976931348623157.11111111111111", 17976931348623157.0);
+
+151 
+	gcheckFlßt
+<>("1797693.134862315711111111111111", 1797693.1348623157);
+
+153 
+	gcheckFlßt
+<>("-0.179769313486231571111111111111",
+
+155 
+	gcheckFlßt
+<>("-17976931348623157.11111111111111",
+
+157 
+	gcheckFlßt
+<>("-1797693.134862315711111111111111",
+
+161 
+SECTION
+("ExponentTooBig") {
+
+162 
+	gcheckInf
+<>("1e309", 
+	gçl£
+);
+
+163 
+	gcheckInf
+<>("-1e309", 
+	gŒue
+);
+
+164 
+	gcheckInf
+<>("1e65535", 
+	gçl£
+);
+
+165 
+	gcheckFlßt
+<>("1e-65535", 0.0);
+
+168 
+SECTION
+("NaN") {
+
+169 
+	gcheckNaN
+<>("NaN");
+
+170 
+	gcheckNaN
+<>("nan");
+
+	@lib_standalone/ArduinoJson/extras/tests/Numbers/parseInteger.cpp
+
+5 
+	~<¡dšt.h
+>
+
+6 
+	~<ArdušoJsÚ/Numb”s/·r£IÁeg”.hµ
+>
+
+7 
+	~<ÿtch.hµ
+>
+
+9 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	$checkIÁeg”
+(cÚ¡ * 
+šput
+, 
+T
+ 
+ex³ùed
+) {
+
+13 
+	`CAPTURE
+(
+šput
+);
+
+14 
+T
+ 
+aùu®
+ = 
+·r£IÁeg”
+<T>(
+šput
+);
+
+15 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+aùu®
+);
+
+16 
+	}
+}
+
+18 
+TEST_CASE
+("parseInteger<int8_t>()") {
+
+19 
+	gcheckIÁeg”
+<
+	gšt8_t
+>("-128", -128);
+
+20 
+	gcheckIÁeg”
+<
+	gšt8_t
+>("127", 127);
+
+21 
+	gcheckIÁeg”
+<
+	gšt8_t
+>("+127", 127);
+
+22 
+	gcheckIÁeg”
+<
+	gšt8_t
+>("3.14", 3);
+
+23 
+	gcheckIÁeg”
+<
+	gšt8_t
+>("x42", 0);
+
+24 
+	gcheckIÁeg”
+<
+	gšt8_t
+>("128", 0);
+
+25 
+	gcheckIÁeg”
+<
+	gšt8_t
+>("-129", 0);
+
+28 
+TEST_CASE
+("parseInteger<int16_t>()") {
+
+29 
+	gcheckIÁeg”
+<
+	gšt16_t
+>("-32768", -32768);
+
+30 
+	gcheckIÁeg”
+<
+	gšt16_t
+>("32767", 32767);
+
+31 
+	gcheckIÁeg”
+<
+	gšt16_t
+>("+32767", 32767);
+
+32 
+	gcheckIÁeg”
+<
+	gšt16_t
+>("3.14", 3);
+
+33 
+	gcheckIÁeg”
+<
+	gšt16_t
+>("x42", 0);
+
+34 
+	gcheckIÁeg”
+<
+	gšt16_t
+>("-32769", 0);
+
+35 
+	gcheckIÁeg”
+<
+	gšt16_t
+>("32768", 0);
+
+38 
+TEST_CASE
+("parseInteger<int32_t>()") {
+
+39 
+	gcheckIÁeg”
+<
+	gšt32_t
+>("-2147483648", (-2147483647 - 1));
+
+40 
+	gcheckIÁeg”
+<
+	gšt32_t
+>("2147483647", 2147483647);
+
+41 
+	gcheckIÁeg”
+<
+	gšt32_t
+>("+2147483647", 2147483647);
+
+42 
+	gcheckIÁeg”
+<
+	gšt32_t
+>("3.14", 3);
+
+43 
+	gcheckIÁeg”
+<
+	gšt32_t
+>("x42", 0);
+
+44 
+	gcheckIÁeg”
+<
+	gšt32_t
+>("-2147483649", 0);
+
+45 
+	gcheckIÁeg”
+<
+	gšt32_t
+>("2147483648", 0);
+
+48 
+TEST_CASE
+("parseInteger<uint8_t>()") {
+
+49 
+	gcheckIÁeg”
+<
+	gušt8_t
+>("0", 0);
+
+50 
+	gcheckIÁeg”
+<
+	gušt8_t
+>("255", 255);
+
+51 
+	gcheckIÁeg”
+<
+	gušt8_t
+>("+255", 255);
+
+52 
+	gcheckIÁeg”
+<
+	gušt8_t
+>("3.14", 3);
+
+53 
+	gcheckIÁeg”
+<
+	gušt8_t
+>("x42", 0);
+
+54 
+	gcheckIÁeg”
+<
+	gušt8_t
+>("-1", 0);
+
+55 
+	gcheckIÁeg”
+<
+	gušt8_t
+>("256", 0);
+
+58 
+TEST_CASE
+("parseInteger<uint16_t>()") {
+
+59 
+	gcheckIÁeg”
+<
+	gušt16_t
+>("0", 0);
+
+60 
+	gcheckIÁeg”
+<
+	gušt16_t
+>("65535", 65535);
+
+61 
+	gcheckIÁeg”
+<
+	gušt16_t
+>("+65535", 65535);
+
+62 
+	gcheckIÁeg”
+<
+	gušt16_t
+>("3.14", 3);
+
+64 
+	gcheckIÁeg”
+<
+	gušt16_t
+>("x42", 0);
+
+65 
+	gcheckIÁeg”
+<
+	gušt16_t
+>("-1", 0);
+
+66 
+	gcheckIÁeg”
+<
+	gušt16_t
+>("65536", 0);
+
+	@lib_standalone/ArduinoJson/extras/tests/Numbers/parseNumber.cpp
+
+5 
+	~<ArdušoJsÚ/Numb”s/·r£Numb”.hµ
+>
+
+6 
+	~<ÿtch.hµ
+>
+
+8 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+10 
+TEST_CASE
+("Test uint32_t overflow") {
+
+11 
+	gP¬£dNumb”
+<, 
+	gušt32_t
+> 
+	gfœ¡
+ =
+
+12 
+·r£Numb”
+<, 
+	gušt32_t
+>("4294967295");
+
+13 
+	gP¬£dNumb”
+<, 
+	gušt32_t
+> 
+	g£cÚd
+ =
+
+14 
+·r£Numb”
+<, 
+	gušt32_t
+>("4294967296");
+
+16 
+REQUIRE
+(
+fœ¡
+.
+ty³
+(è=ð
+ušt8_t
+(
+VALUE_IS_POSITIVE_INTEGER
+));
+
+17 
+REQUIRE
+(
+£cÚd
+.
+ty³
+(è=ð
+ušt8_t
+(
+VALUE_IS_FLOAT
+));
+
+20 
+TEST_CASE
+("Invalid value") {
+
+21 
+	gP¬£dNumb”
+<, 
+	gušt32_t
+> 
+	g»suÉ
+ = 
+·r£Numb”
+<, uint32_t>("6a3");
+
+23 
+REQUIRE
+(
+»suÉ
+.
+ty³
+(è=ð
+ušt8_t
+(
+VALUE_IS_NULL
+));
+
+	@lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp
+
+5 
+	~<ÿtch.hµ
+>
+
+6 
+	~<lim™s
+>
+
+7 
+	~<¡ršg
+>
+
+9 
+	#ARDUINOJSON_ENABLE_NAN
+ 1
+
+	)
+
+10 
+	#ARDUINOJSON_ENABLE_INFINITY
+ 1
+
+	)
+
+11 
+	~<ArdušoJsÚ/JsÚ/TextFÜm©‹r.hµ
+>
+
+12 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”.hµ
+>
+
+14 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFlßt
+>
+
+17 
+	$check
+(
+TFlßt
+ 
+šput
+, cÚ¡ 
+¡d
+::
+¡ršg
+& 
+ex³ùed
+) {
+
+18 
+¡d
+::
+¡ršg
+ 
+ou�ut
+;
+
+19 
+Wr™”
+<
+¡d
+::
+¡ršg
+> 
+	`sb
+(
+ou�ut
+);
+
+20 
+TextFÜm©‹r
+<
+Wr™”
+<
+¡d
+::
+¡ršg
+> > 
+	`wr™”
+(
+sb
+);
+
+21 
+wr™”
+.
+	`wr™eFlßt
+(
+šput
+);
+
+22 
+	`REQUIRE
+(
+wr™”
+.
+	`by‹sWr™‹n
+(è=ð
+ou�ut
+.
+	`size
+());
+
+23 
+	`CHECK
+(
+ex³ùed
+ =ð
+ou�ut
+);
+
+24 
+	}
+}
+
+26 
+TEST_CASE
+("TextFormatter::writeFloat(double)") {
+
+27 
+SECTION
+("Pi") {
+
+28 
+	gcheck
+<>(3.14159265359, "3.141592654");
+
+31 
+SECTION
+("Signaling NaN") {
+
+32 
+	gÇn
+ = 
+¡d
+::
+num”ic_lim™s
+<>::
+sigÇlšg_NaN
+();
+
+33 
+	gcheck
+<>(
+	gÇn
+, "NaN");
+
+36 
+SECTION
+("Quiet NaN") {
+
+37 
+	gÇn
+ = 
+¡d
+::
+num”ic_lim™s
+<>::
+qu›t_NaN
+();
+
+38 
+	gcheck
+<>(
+	gÇn
+, "NaN");
+
+41 
+SECTION
+("Infinity") {
+
+42 
+	gšf
+ = 
+¡d
+::
+num”ic_lim™s
+<>::
+šfš™y
+();
+
+43 
+	gcheck
+<>(
+	gšf
+, "Infinity");
+
+44 
+	gcheck
+<>(-
+	gšf
+, "-Infinity");
+
+47 
+SECTION
+("Zero") {
+
+48 
+	gcheck
+<>(0.0, "0");
+
+49 
+	gcheck
+<>(-0.0, "0");
+
+52 
+SECTION
+("Espilon") {
+
+53 
+	gcheck
+<>(2.2250738585072014E-308, "2.225073859e-308");
+
+54 
+	gcheck
+<>(-2.2250738585072014E-308, "-2.225073859e-308");
+
+57 
+SECTION
+("Max double") {
+
+58 
+	gcheck
+<>(1.7976931348623157E+308, "1.797693135e308");
+
+59 
+	gcheck
+<>(-1.7976931348623157E+308, "-1.797693135e308");
+
+62 
+SECTION
+("Bigƒxponent") {
+
+64 
+	gcheck
+<>(1e255, "1e255");
+
+65 
+	gcheck
+<>(1e-255, "1e-255");
+
+68 
+SECTION
+("Exponentation when <= 1e-5") {
+
+69 
+	gcheck
+<>(1e-4, "0.0001");
+
+70 
+	gcheck
+<>(1e-5, "1e-5");
+
+72 
+	gcheck
+<>(-1e-4, "-0.0001");
+
+73 
+	gcheck
+<>(-1e-5, "-1e-5");
+
+76 
+SECTION
+("Exponentation when >= 1e7") {
+
+77 
+	gcheck
+<>(9999999.999, "9999999.999");
+
+78 
+	gcheck
+<>(10000000.0, "1e7");
+
+80 
+	gcheck
+<>(-9999999.999, "-9999999.999");
+
+81 
+	gcheck
+<>(-10000000.0, "-1e7");
+
+84 
+SECTION
+("Rounding when�oo many decimals") {
+
+85 
+	gcheck
+<>(0.000099999999999, "0.0001");
+
+86 
+	gcheck
+<>(0.0000099999999999, "1e-5");
+
+87 
+	gcheck
+<>(0.9999999996, "1");
+
+90 
+SECTION
+("9 decimal…laces") {
+
+91 
+	gcheck
+<>(0.100000001, "0.100000001");
+
+92 
+	gcheck
+<>(0.999999999, "0.999999999");
+
+94 
+	gcheck
+<>(9.000000001, "9.000000001");
+
+95 
+	gcheck
+<>(9.999999999, "9.999999999");
+
+98 
+SECTION
+("10 decimal…laces") {
+
+99 
+	gcheck
+<>(0.1000000001, "0.1");
+
+100 
+	gcheck
+<>(0.9999999999, "1");
+
+102 
+	gcheck
+<>(9.0000000001, "9");
+
+103 
+	gcheck
+<>(9.9999999999, "10");
+
+107 
+TEST_CASE
+("TextFormatter::writeFloat(float)") {
+
+108 
+SECTION
+("Pi") {
+
+109 
+	gcheck
+<>(3.14159265359f, "3.141593");
+
+112 
+SECTION
+("999.9") {
+
+113 
+	gcheck
+<>(999.9f, "999.9");
+
+116 
+SECTION
+("24.3") {
+
+117 
+	gcheck
+<>(24.3f, "24.3");
+
+	@lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeString.cpp
+
+5 
+	~<ÿtch.hµ
+>
+
+7 
+	~<ArdušoJsÚ/JsÚ/TextFÜm©‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/S�ticSŒšgWr™”.hµ
+>
+
+10 
+usšg
+ 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+;
+
+12 
+	$check
+(cÚ¡ * 
+šput
+, 
+¡d
+::
+¡ršg
+ 
+ex³ùed
+) {
+
+13 
+ou�ut
+[1024];
+
+14 
+S�ticSŒšgWr™”
+ 
+	`sb
+(
+ou�ut
+, (output));
+
+15 
+TextFÜm©‹r
+<
+S�ticSŒšgWr™”
+> 
+	`wr™”
+(
+sb
+);
+
+16 
+wr™”
+.
+	`wr™eSŒšg
+(
+šput
+);
+
+17 
+	`REQUIRE
+(
+ex³ùed
+ =ð
+ou�ut
+);
+
+18 
+	`REQUIRE
+(
+wr™”
+.
+	`by‹sWr™‹n
+(è=ð
+ex³ùed
+.
+	`size
+());
+
+19 
+	}
+}
+
+21 
+TEST_CASE
+("TextFormatter::writeString()") {
+
+22 
+SECTION
+("EmptyString") {
+
+23 
+check
+("", "\"\"");
+
+26 
+SECTION
+("QuotationMark") {
+
+27 
+check
+("\"", "\"\\\"\"");
+
+30 
+SECTION
+("ReverseSolidus") {
+
+31 
+check
+("\\", "\"\\\\\"");
+
+34 
+SECTION
+("Solidus") {
+
+35 
+check
+("/", "\"/\"");
+
+38 
+SECTION
+("Backspace") {
+
+39 
+check
+("\b", "\"\\b\"");
+
+42 
+SECTION
+("Formfeed") {
+
+43 
+check
+("\f", "\"\\f\"");
+
+46 
+SECTION
+("Newline") {
+
+47 
+check
+("\n", "\"\\n\"");
+
+50 
+SECTION
+("CarriageReturn") {
+
+51 
+check
+("\r", "\"\\r\"");
+
+54 
+SECTION
+("HorizontalTab") {
+
+55 
+check
+("\t", "\"\\t\"");
+
+	@lib_standalone/ArduinoJson/extras/tests/catch/catch.cpp
+
+5 
+	#CATCH_CONFIG_MAIN
+
+
+	)
+
+6 
+	~"ÿtch.hµ
+"
+
+	@lib_standalone/ArduinoJson/extras/tests/catch/catch.hpp
+
+11 #iâdeà
+TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
+
+12 
+	#TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
+
+	)
+
+14 
+	#TWOBLUECUBES_CATCH_HPP_INCLUDED
+
+
+	)
+
+16 #ifdeà
+__þªg__
+
+
+17 #´agm¨
+þªg
+ 
+sy¡em_h—d”
+
+
+18 #–ià
+defšed
+ 
+__GNUC__
+
+
+19 #´agm¨
+GCC
+ 
+sy¡em_h—d”
+
+
+24 #ifdeà
+__þªg__
+
+
+25 #ifdeà
+__ICC
+
+
+26 #´agm¨
+w¬nšg
+(
+push
+)
+
+27 #´agm¨
+w¬nšg
+(
+di§bË
+: 161 1682)
+
+29 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wglobal-constructors"
+
+30 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wvariadic-macros"
+
+31 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wc99-extensions"
+
+32 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-variable"
+
+33 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+34 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wpadded"
+
+35 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wc++98-compat"
+
+36 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wc++98-compat-pedantic"
+
+37 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wswitch-enum"
+
+38 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wcovered-switch-default"
+
+40 #–ià
+defšed
+ 
+__GNUC__
+
+
+41 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wvariadic-macros"
+
+42 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-variable"
+
+43 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wparentheses"
+
+45 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+46 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wpadded"
+
+48 #ià
+defšed
+(
+CATCH_CONFIG_MAIN
+è|| defšed(
+CATCH_CONFIG_RUNNER
+)
+
+49 
+	#CATCH_IMPL
+
+
+	)
+
+52 #ifdeà
+CATCH_IMPL
+
+
+53 #iâdeà
+CLARA_CONFIG_MAIN
+
+
+54 
+	#CLARA_CONFIG_MAIN_NOT_DEFINED
+
+
+	)
+
+55 
+	#CLARA_CONFIG_MAIN
+
+
+	)
+
+60 
+	#TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
+
+
+	)
+
+63 
+	#TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
+
+
+	)
+
+66 
+	#TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
+
+
+	)
+
+100 #ifdeà
+__ýlu¥lus
+
+
+102 #ià
+__ýlu¥lus
+ >= 201103L
+
+103 
+	#CATCH_CPP11_OR_GREATER
+
+
+	)
+
+106 #ià
+__ýlu¥lus
+ >= 201402L
+
+107 
+	#CATCH_CPP14_OR_GREATER
+
+
+	)
+
+112 #ifdeà
+__þªg__
+
+
+114 #ià
+__has_ã©u»
+(
+cxx_nuÎ±r
+)
+
+115 
+	#CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+118 #ià
+__has_ã©u»
+(
+cxx_nÛxû±
+)
+
+119 
+	#CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+122 #ià
+defšed
+(
+CATCH_CPP11_OR_GREATER
+)
+
+123 
+	#CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+124 
+	`_P¿gma
+( "clang diagnostic…ush" ) \
+
+125 
+	`_P¿gma
+Ð"þªg dŸgno¡iøignÜed \"-Wex™-time-de¡ruùÜs\"" )
+
+	)
+
+126 
+	#CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+ \
+
+127 
+	`_P¿gma
+Ð"þªg dŸgno¡iøpÝ" )
+
+	)
+
+129 
+	#CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+ \
+
+130 
+	`_P¿gma
+( "clang diagnostic…ush" ) \
+
+131 
+	`_P¿gma
+Ð"þªg dŸgno¡iøignÜed \"-W·»Áhe£s\"" )
+
+	)
+
+132 
+	#CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS
+ \
+
+133 
+	`_P¿gma
+Ð"þªg dŸgno¡iøpÝ" )
+
+	)
+
+140 #ià
+defšed
+(
+__CYGWIN__
+è|| defšed(
+__QNX__
+)
+
+142 #ià!
+defšed
+(
+CATCH_CONFIG_POSIX_SIGNALS
+)
+
+143 
+	#CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
+
+
+	)
+
+148 #ifdeà
+__OS400__
+
+
+149 
+	#CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
+
+
+	)
+
+150 
+	#CATCH_CONFIG_COLOUR_NONE
+
+
+	)
+
+155 #ifdeà
+__CYGWIN__
+
+
+159 
+	#_BSD_SOURCE
+
+
+	)
+
+165 #ifdeà
+__BORLANDC__
+
+
+171 #ifdeà
+__EDG_VERSION__
+
+
+177 #ifdeà
+__DMC__
+
+
+183 #ifdeà
+__GNUC__
+
+
+185 #ià
+__GNUC__
+ =ð4 && 
+__GNUC_MINOR__
+ >ð6 && 
+defšed
+(
+__GXX_EXPERIMENTAL_CXX0X__
+)
+
+186 
+	#CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+196 #ifdeà
+_MSC_VER
+
+
+198 
+	#CATCH_INTERNAL_CONFIG_WINDOWS_SEH
+
+
+	)
+
+200 #ià(
+_MSC_VER
+ >= 1600)
+
+201 
+	#CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+202 
+	#CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+
+
+	)
+
+205 #ià(
+_MSC_VER
+ >= 1900 )
+
+206 
+	#CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+207 
+	#CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+
+
+	)
+
+208 
+	#CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+
+
+	)
+
+209 
+	#CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+
+
+	)
+
+217 #iàÐ
+defšed
+ 
+_MSC_VER
+ && _MSC_VER > 1400 && !defšed 
+__EDGE__
+) || \
+
+218 Ð
+defšed
+ 
+	g__WAVE__
+ && 
+	g__WAVE_HAS_VARIADICS
+ ) || \
+
+219 Ð
+defšed
+ 
+	g__GNUC__
+ && __GNUC__ >= 3 ) || \
+
+220 Ð!
+defšed
+ 
+__ýlu¥lus
+ && 
+__STDC_VERSION__
+ >= 199901L || __cplusplus >= 201103L )
+
+222 
+	#CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+
+
+	)
+
+227 #iàÐ
+defšed
+ 
+_MSC_VER
+ && _MSC_VER >= 1300 ) || \
+
+228 Ð
+defšed
+ 
+__GNUC__
+ && ( __GNUC__ > 4 || (__GNUC__ =ð4 && 
+__GNUC_MINOR__
+ >= 3 )) ) || \
+
+229 Ð
+defšed
+ 
+__þªg__
+ && 
+__þªg_majÜ__
+ >= 3 )
+
+231 
+	#CATCH_INTERNAL_CONFIG_COUNTER
+
+
+	)
+
+239 #ià
+defšed
+(
+CATCH_CPP11_OR_GREATER
+)
+
+241 #ià!
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+)
+
+242 
+	#CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+245 #iâdeà
+CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+246 
+	#CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+249 #iâdeà
+CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+
+
+250 
+	#CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+
+
+	)
+
+253 #iâdeà
+CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+
+
+254 
+	#CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+
+
+	)
+
+257 #iâdeà
+CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+
+
+258 
+	#CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+
+
+	)
+
+261 #iâdeà
+CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+
+
+262 
+	#CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+
+
+	)
+
+265 #ià!
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
+)
+
+266 
+	#CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
+
+
+	)
+
+269 #ià!
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
+)
+
+270 
+	#CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
+
+
+	)
+
+272 #ià!
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+)
+
+273 
+	#CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+
+
+	)
+
+275 #ià!
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+)
+
+276 
+	#CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+
+
+	)
+
+278 #ià!
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+)
+
+279 
+	#CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+
+
+	)
+
+285 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_NULLPTR
+è&& !defšed(
+CATCH_CONFIG_CPP11_NULLPTR
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+286 
+	#CATCH_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+288 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_NOEXCEPT
+è&& !defšed(
+CATCH_CONFIG_CPP11_NOEXCEPT
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+289 
+	#CATCH_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+291 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_GENERATED_METHODS
+è&& !defšed(
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+292 
+	#CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+	)
+
+294 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_IS_ENUM
+è&& !defšed(
+CATCH_CONFIG_CPP11_IS_ENUM
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+295 
+	#CATCH_CONFIG_CPP11_IS_ENUM
+
+
+	)
+
+297 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_TUPLE
+è&& !defšed(
+CATCH_CONFIG_CPP11_TUPLE
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+298 
+	#CATCH_CONFIG_CPP11_TUPLE
+
+
+	)
+
+300 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+è&& !defšed(
+CATCH_CONFIG_NO_VARIADIC_MACROS
+è&& !defšed(
+CATCH_CONFIG_VARIADIC_MACROS
+)
+
+301 
+	#CATCH_CONFIG_VARIADIC_MACROS
+
+
+	)
+
+303 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_LONG_LONG
+è&& !defšed(
+CATCH_CONFIG_CPP11_LONG_LONG
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+304 
+	#CATCH_CONFIG_CPP11_LONG_LONG
+
+
+	)
+
+306 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_OVERRIDE
+è&& !defšed(
+CATCH_CONFIG_CPP11_OVERRIDE
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+307 
+	#CATCH_CONFIG_CPP11_OVERRIDE
+
+
+	)
+
+309 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_UNIQUE_PTR
+è&& !defšed(
+CATCH_CONFIG_CPP11_UNIQUE_PTR
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+310 
+	#CATCH_CONFIG_CPP11_UNIQUE_PTR
+
+
+	)
+
+315 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_COUNTER
+è&& !defšed(
+CATCH_CONFIG_NO_COUNTER
+è&& !defšed(
+CATCH_CONFIG_COUNTER
+è&& !defšed(
+__JETBRAINS_IDE__
+)
+
+316 
+	#CATCH_CONFIG_COUNTER
+
+
+	)
+
+318 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_SHUFFLE
+è&& !defšed(
+CATCH_CONFIG_CPP11_SHUFFLE
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+319 
+	#CATCH_CONFIG_CPP11_SHUFFLE
+
+
+	)
+
+321 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+è&& !defšed(
+CATCH_CONFIG_CPP11_NO_TYPE_TRAITS
+è&& !defšed(
+CATCH_CONFIG_CPP11_TYPE_TRAITS
+è&& !defšed(
+CATCH_CONFIG_NO_CPP11
+)
+
+322 
+	#CATCH_CONFIG_CPP11_TYPE_TRAITS
+
+
+	)
+
+324 #ià
+defšed
+(
+CATCH_INTERNAL_CONFIG_WINDOWS_SEH
+è&& !defšed(
+CATCH_CONFIG_NO_WINDOWS_SEH
+è&& !defšed(
+CATCH_CONFIG_WINDOWS_SEH
+)
+
+325 
+	#CATCH_CONFIG_WINDOWS_SEH
+
+
+	)
+
+328 #ià!
+defšed
+(
+CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
+è&& !defšed(
+CATCH_CONFIG_NO_POSIX_SIGNALS
+è&& !defšed(
+CATCH_CONFIG_POSIX_SIGNALS
+)
+
+329 
+	#CATCH_CONFIG_POSIX_SIGNALS
+
+
+	)
+
+332 #ià!
+defšed
+(
+CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+)
+
+333 
+	#CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+
+
+	)
+
+334 
+	#CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS
+
+
+	)
+
+336 #ià!
+defšed
+(
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+)
+
+337 
+	#CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+
+
+	)
+
+338 
+	#CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+
+
+	)
+
+342 #ià
+defšed
+(
+CATCH_CONFIG_CPP11_NOEXCEPT
+è&& !defšed(
+CATCH_NOEXCEPT
+)
+
+343 
+	#CATCH_NOEXCEPT
+ 
+nÛxû±
+
+
+	)
+
+344 
+	#CATCH_NOEXCEPT_IS
+(
+x
+è
+	`nÛxû±
+(x)
+
+	)
+
+346 
+	#CATCH_NOEXCEPT
+ 
+	`throw
+()
+
+	)
+
+347 
+	#CATCH_NOEXCEPT_IS
+(
+x
+)
+
+	)
+
+351 #ifdeà
+CATCH_CONFIG_CPP11_NULLPTR
+
+
+352 
+	#CATCH_NULL
+ 
+nuÎ±r
+
+
+	)
+
+354 
+	#CATCH_NULL
+ 
+NULL
+
+
+	)
+
+358 #ifdeà
+CATCH_CONFIG_CPP11_OVERRIDE
+
+
+359 
+	#CATCH_OVERRIDE
+ 
+ov”ride
+
+
+	)
+
+361 
+	#CATCH_OVERRIDE
+
+
+	)
+
+365 #ifdeà
+CATCH_CONFIG_CPP11_UNIQUE_PTR
+
+
+366 
+	#CATCH_AUTO_PTR
+Ð
+T
+ ) 
+¡d
+::
+unique_±r
+<T>
+
+	)
+
+368 
+	#CATCH_AUTO_PTR
+Ð
+T
+ ) 
+¡d
+::
+auto_±r
+<T>
+
+	)
+
+371 
+	#INTERNAL_CATCH_UNIQUE_NAME_LINE2
+Ð
+Çme
+, 
+lše
+ )‚ame##
+	)
+line
+
+372 
+	#INTERNAL_CATCH_UNIQUE_NAME_LINE
+Ð
+Çme
+, 
+lše
+ ) 
+	`INTERNAL_CATCH_UNIQUE_NAME_LINE2
+ÐÇme,†š�)
+
+	)
+
+373 #ifdeà
+CATCH_CONFIG_COUNTER
+
+
+374 
+	#INTERNAL_CATCH_UNIQUE_NAME
+Ð
+Çme
+ ) 
+	`INTERNAL_CATCH_UNIQUE_NAME_LINE
+ÐÇme, 
+__COUNTER__
+ )
+
+	)
+
+376 
+	#INTERNAL_CATCH_UNIQUE_NAME
+Ð
+Çme
+ ) 
+	`INTERNAL_CATCH_UNIQUE_NAME_LINE
+ÐÇme, 
+__LINE__
+ )
+
+	)
+
+379 
+	#INTERNAL_CATCH_STRINGIFY2
+Ð
+ex´
+ ) #ex´
+
+	)
+
+380 
+	#INTERNAL_CATCH_STRINGIFY
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_STRINGIFY2
+Ðex´ )
+
+	)
+
+382 
+	~<s¡»am
+>
+
+383 
+	~<®gÜ™hm
+>
+
+385 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+387 
+	gICÚfig
+;
+
+389 
+	sCa£S’s™ive
+ { 
+	eChoiû
+ {
+
+390 
+	gYes
+,
+
+391 
+	gNo
+
+
+394 þas 
+	cNÚCÝyabË
+ {
+
+395 #ifdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+396 
+NÚCÝyabË
+ÐNÚCÝyabË cÚ¡& ) = 
+d–‘e
+;
+
+397 
+NÚCÝyabË
+ÐNÚCÝyabË && ) = 
+d–‘e
+;
+
+398 
+	gNÚCÝyabË
+& 
+	gÝ”©Ü
+ = ( 
+NÚCÝyabË
+ cÚ¡& ) = 
+d–‘e
+;
+
+399 
+	gNÚCÝyabË
+& 
+	gÝ”©Ü
+ = ( 
+NÚCÝyabË
+ && ) = 
+d–‘e
+;
+
+401 
+NÚCÝyabË
+ÐNÚCÝyabË cÚ¡& 
+šfo
+ );
+
+402 
+	gNÚCÝyabË
+& 
+	gÝ”©Ü
+ = ( 
+NÚCÝyabË
+ const& );
+
+405 
+	g´Ùeùed
+:
+
+406 
+NÚCÝyabË
+() {}
+
+407 
+vœtu®
+ ~
+NÚCÝyabË
+();
+
+410 þas 
+	cSaãBoÞ
+ {
+
+411 
+	gpublic
+:
+
+412 (
+SaãBoÞ
+::*
+	tty³
+)() const;
+
+414 
+ty³
+ 
+makeSaã
+Ð
+boÞ
+ 
+v®ue
+ ) {
+
+415  
+	gv®ue
+ ? &
+	gSaãBoÞ
+::
+ŒueV®ue
+ : 0;
+
+417 
+	g´iv©e
+:
+
+418 
+ŒueV®ue
+() const {}
+
+421 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gCÚ�š”T
+>
+
+422 
+	$d–‘eAÎ
+Ð
+CÚ�š”T
+& 
+cÚ�š”
+ ) {
+
+423 
+ty³Çme
+ 
+CÚ�š”T
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+cÚ�š”
+.
+	`begš
+();
+
+424 
+ty³Çme
+ 
+CÚ�š”T
+::
+cÚ¡_™”©Ü
+ 
+™End
+ = 
+cÚ�š”
+.
+	`’d
+();
+
+425 ; 
+™
+ !ð
+™End
+; ++it )
+
+426 
+d–‘e
+ *
+™
+;
+
+427 
+	}
+}
+
+428 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gAssocŸtiveCÚ�š”T
+>
+
+429 
+	$d–‘eAÎV®ues
+Ð
+AssocŸtiveCÚ�š”T
+& 
+cÚ�š”
+ ) {
+
+430 
+ty³Çme
+ 
+AssocŸtiveCÚ�š”T
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+cÚ�š”
+.
+	`begš
+();
+
+431 
+ty³Çme
+ 
+AssocŸtiveCÚ�š”T
+::
+cÚ¡_™”©Ü
+ 
+™End
+ = 
+cÚ�š”
+.
+	`’d
+();
+
+432 ; 
+™
+ !ð
+™End
+; ++it )
+
+433 
+d–‘e
+ 
+™
+->
+£cÚd
+;
+
+434 
+	}
+}
+
+436 
+boÞ
+ 
+¡¬tsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, std::¡ršg cÚ¡& 
+´efix
+ );
+
+437 
+boÞ
+ 
+¡¬tsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, 
+´efix
+ );
+
+438 
+boÞ
+ 
+’dsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, std::¡ršg cÚ¡& 
+suffix
+ );
+
+439 
+boÞ
+ 
+’dsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, 
+suffix
+ );
+
+440 
+boÞ
+ 
+cÚ�šs
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, std::¡ršg cÚ¡& 
+šfix
+ );
+
+441 
+toLow”InPÏû
+Ð
+¡d
+::
+¡ršg
+& 
+s
+ );
+
+442 
+	g¡d
+::
+¡ršg
+ 
+toLow”
+Ð
+¡d
+::¡ršg cÚ¡& 
+s
+ );
+
+443 
+	g¡d
+::
+¡ršg
+ 
+Œim
+Ð
+¡d
+::¡ršg cÚ¡& 
+¡r
+ );
+
+444 
+boÞ
+ 
+»¶aûInPÏû
+Ð
+¡d
+::
+¡ršg
+& 
+¡r
+, std::¡ršg cÚ¡& 
+»¶aûThis
+, std::¡ršg cÚ¡& 
+w™hThis
+ );
+
+446 
+	s¶u¿li£
+ {
+
+447 
+¶u¿li£
+Ð
+¡d
+::
+size_t
+ 
+couÁ
+, std::
+¡ršg
+ cÚ¡& 
+Ïb–
+ );
+
+449 
+ä›nd
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+¶u¿li£
+ cÚ¡& 
+	g¶u¿li£r
+ );
+
+451 
+	g¡d
+::
+size_t
+ 
+m_couÁ
+;
+
+452 
+	g¡d
+::
+¡ršg
+ 
+m_Ïb–
+;
+
+455 
+	sSourûLšeInfo
+ {
+
+457 
+SourûLšeInfo
+();
+
+458 
+SourûLšeInfo
+ÐcÚ¡* 
+_fže
+, 
+¡d
+::
+size_t
+ 
+_lše
+ );
+
+459 #ifdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+460 
+SourûLšeInfo
+(SourûLšeInfØcÚ¡& 
+Ùh”
+) = ;
+
+461 
+SourûLšeInfo
+( SourceLineInfo && ) = ;
+
+462 
+	gSourûLšeInfo
+& 
+	gÝ”©Ü
+ = ( 
+SourûLšeInfo
+ const& ) = ;
+
+463 
+	gSourûLšeInfo
+& 
+	gÝ”©Ü
+ = ( 
+SourûLšeInfo
+ && ) = ;
+
+465 
+boÞ
+ 
+em±y
+() const;
+
+466 
+boÞ
+ 
+	gÝ”©Ü
+ =ðÐ
+SourûLšeInfo
+ cÚ¡& 
+Ùh”
+ ) const;
+
+467 
+boÞ
+ 
+	gÝ”©Ü
+ < ( 
+SourûLšeInfo
+ cÚ¡& 
+	gÙh”
+ ) const;
+
+469 cÚ¡* 
+	gfže
+;
+
+470 
+	g¡d
+::
+size_t
+ 
+lše
+;
+
+473 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+SourûLšeInfo
+ cÚ¡& 
+	gšfo
+ );
+
+476 
+šlše
+ 
+boÞ
+ 
+	$isTrue
+Ð
+boÞ
+ 
+v®ue
+ ){  v®ue; 
+	}
+}
+
+477 
+šlše
+ 
+boÞ
+ 
+	$®waysTrue
+(è{  
+Œue
+; 
+	}
+}
+
+478 
+šlše
+ 
+boÞ
+ 
+	$®waysF®£
+(è{  
+çl£
+; 
+	}
+}
+
+480 
+throwLogicE¼Ü
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+mes§ge
+, 
+SourûLšeInfo
+ cÚ¡& 
+loÿtiÚInfo
+ );
+
+482 
+£edRng
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+ );
+
+483 
+ºgS“d
+();
+
+489 
+	sSŒ—mEndStÝ
+ {
+
+490 
+	g¡d
+::
+¡ršg
+ 
+Ý”©Ü
++() {
+
+491  
+¡d
+::
+¡ršg
+();
+
+494 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+495 
+T
+ cÚ¡& 
+	gÝ”©Ü
+ + ( T cÚ¡& 
+	gv®ue
+, 
+	gSŒ—mEndStÝ
+ ) {
+
+496  
+	gv®ue
+;
+
+500 
+	#CATCH_INTERNAL_LINEINFO
+ ::
+C©ch
+::
+	`SourûLšeInfo
+Ð
+__FILE__
+, 
+¡©ic_ÿ¡
+<
+¡d
+::
+size_t
+>Ð
+__LINE__
+ ) )
+
+	)
+
+501 
+	#CATCH_INTERNAL_ERROR
+Ð
+msg
+ ) ::
+C©ch
+::
+	`throwLogicE¼Ü
+Ðmsg, 
+CATCH_INTERNAL_LINEINFO
+ );
+
+	)
+
+503 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+505 þas 
+	cNÙIm¶em’‹dExû±iÚ
+ : 
+public
+ 
+¡d
+::
+exû±iÚ
+
+
+507 
+public
+:
+
+508 
+NÙIm¶em’‹dExû±iÚ
+Ð
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ );
+
+510 
+	gvœtu®
+ ~
+NÙIm¶em’‹dExû±iÚ
+(è
+	gCATCH_NOEXCEPT
+ {}
+
+512 
+vœtu®
+ cÚ¡ * 
+wh©
+(ècÚ¡ 
+	gCATCH_NOEXCEPT
+;
+
+514 
+	g´iv©e
+:
+
+515 
+¡d
+::
+¡ršg
+ 
+m_wh©
+;
+
+516 
+SourûLšeInfo
+ 
+	gm_lšeInfo
+;
+
+522 
+	#CATCH_NOT_IMPLEMENTED
+ 
+throw
+ 
+C©ch
+::
+	`NÙIm¶em’‹dExû±iÚ
+Ð
+CATCH_INTERNAL_LINEINFO
+ )
+
+	)
+
+525 
+	#TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
+
+
+	)
+
+528 
+	#TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
+
+
+	)
+
+530 
+	~<¡ršg
+>
+
+532 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+534 
+	sIG’”©ÜInfo
+ {
+
+535 
+	gvœtu®
+ ~
+IG’”©ÜInfo
+();
+
+536 
+vœtu®
+ 
+boÞ
+ 
+moveNext
+() = 0;
+
+537 
+vœtu®
+ 
+	g¡d
+::
+size_t
+ 
+g‘Cu¼’tIndex
+() const = 0;
+
+540 
+	sIG’”©ÜsFÜTe¡
+ {
+
+541 
+	gvœtu®
+ ~
+IG’”©ÜsFÜTe¡
+();
+
+543 
+vœtu®
+ 
+	gIG’”©ÜInfo
+& 
+g‘G’”©ÜInfo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+fžeInfo
+, std::
+size_t
+ 
+size
+ ) = 0;
+
+544 
+vœtu®
+ 
+boÞ
+ 
+moveNext
+() = 0;
+
+547 
+IG’”©ÜsFÜTe¡
+* 
+ü—‹G’”©ÜsFÜTe¡
+();
+
+552 
+	#TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
+
+
+	)
+
+554 #ifdeà
+__þªg__
+
+
+555 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+556 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wpadded"
+
+559 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+564 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+565 þas 
+	cPŒ
+ {
+
+566 
+	gpublic
+:
+
+567 
+PŒ
+(è: 
+m_p
+Ð
+CATCH_NULL
+ ){}
+
+568 
+PŒ
+Ð
+T
+* 
+p
+ ) : 
+m_p
+(… ){
+
+569 ifÐ
+m_p
+ )
+
+570 
+m_p
+->
+addRef
+();
+
+572 
+PŒ
+ÐPŒ cÚ¡& 
+Ùh”
+ ) : 
+m_p
+( other.m_p ){
+
+573 ifÐ
+m_p
+ )
+
+574 
+m_p
+->
+addRef
+();
+
+576 ~
+PŒ
+(){
+
+577 ifÐ
+	gm_p
+ )
+
+578 
+	gm_p
+->
+»Ëa£
+();
+
+580 
+»£t
+() {
+
+581 ifÐ
+	gm_p
+ )
+
+582 
+	gm_p
+->
+»Ëa£
+();
+
+583 
+	gm_p
+ = 
+CATCH_NULL
+;
+
+585 
+	gPŒ
+& 
+	gÝ”©Ü
+ = ( 
+T
+* 
+p
+ ){
+
+586 
+PŒ
+ 
+‹mp
+Ð
+p
+ );
+
+587 
+sw­
+Ð
+‹mp
+ );
+
+588  *
+	gthis
+;
+
+590 
+	gPŒ
+& 
+	gÝ”©Ü
+ = ( 
+PŒ
+ cÚ¡& 
+Ùh”
+ ){
+
+591 
+PŒ
+ 
+‹mp
+Ð
+Ùh”
+ );
+
+592 
+sw­
+Ð
+‹mp
+ );
+
+593  *
+	gthis
+;
+
+595 
+sw­
+Ð
+PŒ
+& 
+Ùh”
+ ) { 
+	g¡d
+::sw­Ð
+m_p
+, other.m_p ); }
+
+596 
+T
+* 
+g‘
+(ècÚ¡{  
+	gm_p
+; }
+
+597 
+	gT
+& 
+	gÝ”©Ü
+*(ècÚ¡ {  *
+	gm_p
+; }
+
+598 
+T
+* 
+	gÝ”©Ü
+->(ècÚ¡ {  
+	gm_p
+; }
+
+599 
+boÞ
+ 
+	gÝ”©Ü
+ !(ècÚ¡ {  
+	gm_p
+ =ð
+CATCH_NULL
+; }
+
+600 
+Ý”©Ü
+ 
+	gSaãBoÞ
+::
+ty³
+(ècÚ¡ {  
+SaãBoÞ
+::
+makeSaã
+Ð
+m_p
+ !ð
+CATCH_NULL
+ ); }
+
+602 
+	g´iv©e
+:
+
+603 
+T
+* 
+m_p
+;
+
+606 
+	gISh¬ed
+ : 
+NÚCÝyabË
+ {
+
+607 
+vœtu®
+ ~
+ISh¬ed
+();
+
+608 
+vœtu®
+ 
+addRef
+() const = 0;
+
+609 
+vœtu®
+ 
+»Ëa£
+() const = 0;
+
+612 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+ = 
+ISh¬ed
+>
+
+613 
+Sh¬edIm¶
+ : 
+T
+ {
+
+615 
+Sh¬edIm¶
+(è: 
+m_rc
+( 0 ){}
+
+617 
+vœtu®
+ 
+addRef
+() const {
+
+618 ++
+m_rc
+;
+
+620 
+vœtu®
+ 
+»Ëa£
+() const {
+
+621 ifÐ--
+	gm_rc
+ == 0 )
+
+622 
+d–‘e
+ 
+this
+;
+
+625 
+mu�bË
+ 
+	gm_rc
+;
+
+630 #ifdeà
+__þªg__
+
+
+631 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+634 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+636 
+þass
+ 
+	gTe¡Ca£
+;
+
+637 
+þass
+ 
+	gSŒ—m
+;
+
+638 
+	gIResuÉC­tu»
+;
+
+639 
+	gIRuÂ”
+;
+
+640 
+	gIG’”©ÜsFÜTe¡
+;
+
+641 
+	gICÚfig
+;
+
+643 
+	sICÚ‹xt
+
+
+645 
+	gvœtu®
+ ~
+ICÚ‹xt
+();
+
+647 
+vœtu®
+ 
+IResuÉC­tu»
+* 
+g‘ResuÉC­tu»
+() = 0;
+
+648 
+vœtu®
+ 
+IRuÂ”
+* 
+g‘RuÂ”
+() = 0;
+
+649 
+vœtu®
+ 
+size_t
+ 
+g‘G’”©ÜIndex
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+fžeInfo
+, size_ˆ
+tÙ®Size
+ ) = 0;
+
+650 
+vœtu®
+ 
+boÞ
+ 
+advªûG’”©ÜsFÜCu¼’tTe¡
+() = 0;
+
+651 
+vœtu®
+ 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+g‘CÚfig
+() const = 0;
+
+654 
+	gIMu�bËCÚ‹xt
+ : 
+ICÚ‹xt
+
+
+656 
+vœtu®
+ ~
+IMu�bËCÚ‹xt
+();
+
+657 
+vœtu®
+ 
+£tResuÉC­tu»
+Ð
+IResuÉC­tu»
+* 
+»suÉC­tu»
+ ) = 0;
+
+658 
+vœtu®
+ 
+£tRuÂ”
+Ð
+IRuÂ”
+* 
+ruÂ”
+ ) = 0;
+
+659 
+vœtu®
+ 
+£tCÚfig
+Ð
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+cÚfig
+ ) = 0;
+
+662 
+	gICÚ‹xt
+& 
+g‘Cu¼’tCÚ‹xt
+();
+
+663 
+	gIMu�bËCÚ‹xt
+& 
+g‘Cu¼’tMu�bËCÚ‹xt
+();
+
+664 
+þ—nUpCÚ‹xt
+();
+
+665 
+SŒ—m
+ 
+ü—‹SŒ—m
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡»amName
+ );
+
+670 
+	#TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
+
+
+	)
+
+673 
+	#TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
+
+
+	)
+
+675 
+	~<veùÜ
+>
+
+677 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+679 
+þass
+ 
+	gTe¡S³c
+;
+
+681 
+	gITe¡Ca£
+ : 
+ISh¬ed
+ {
+
+682 
+vœtu®
+ 
+švoke
+ () const = 0;
+
+683 
+	g´Ùeùed
+:
+
+684 
+vœtu®
+ ~
+ITe¡Ca£
+();
+
+687 
+þass
+ 
+	gTe¡Ca£
+;
+
+688 
+	gICÚfig
+;
+
+690 
+	sITe¡Ca£Regi¡ry
+ {
+
+691 
+	gvœtu®
+ ~
+ITe¡Ca£Regi¡ry
+();
+
+692 
+vœtu®
+ 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+g‘AÎTe¡s
+() const = 0;
+
+693 
+vœtu®
+ 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+g‘AÎTe¡sSÜ‹d
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+ ) const = 0;
+
+696 
+boÞ
+ 
+m©chTe¡
+Ð
+Te¡Ca£
+ cÚ¡& 
+‹¡Ca£
+, 
+Te¡S³c
+ cÚ¡& 
+‹¡S³c
+, 
+ICÚfig
+ cÚ¡& 
+cÚfig
+ );
+
+697 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+fž‹rTe¡s
+Ð
+¡d
+::veùÜ<Te¡Ca£> cÚ¡& 
+‹¡Ca£s
+, 
+Te¡S³c
+ cÚ¡& 
+‹¡S³c
+, 
+ICÚfig
+ cÚ¡& 
+cÚfig
+ );
+
+698 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+g‘AÎTe¡Ca£sSÜ‹d
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+ );
+
+702 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+704 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gC
+>
+
+705 
+þass
+ 
+	gM‘hodTe¡Ca£
+ : 
+public
+ 
+Sh¬edIm¶
+<
+ITe¡Ca£
+> {
+
+707 
+public
+:
+
+708 
+M‘hodTe¡Ca£
+Ð(
+C
+::*
+m‘hod
+)(èè: 
+m_m‘hod
+( method ) {}
+
+710 
+vœtu®
+ 
+švoke
+() const {
+
+711 
+C
+ 
+obj
+;
+
+712 (
+	gobj
+.*
+	gm_m‘hod
+)();
+
+715 
+	g´iv©e
+:
+
+716 
+vœtu®
+ ~
+M‘hodTe¡Ca£
+() {}
+
+718 (
+C
+::*
+m_m‘hod
+)();
+
+721 (*
+	gTe¡FunùiÚ
+)();
+
+723 
+	sNameAndDesc
+ {
+
+724 
+NameAndDesc
+ÐcÚ¡ * 
+_Çme
+ = "", cÚ¡ * 
+_desü�tiÚ
+= "" )
+
+725 : 
+Çme
+Ð
+_Çme
+ ), 
+desü�tiÚ
+Ð
+_desü�tiÚ
+ )
+
+728 cÚ¡ * 
+	gÇme
+;
+
+729 cÚ¡ * 
+	gdesü�tiÚ
+;
+
+732 
+	g»gi¡”Te¡Ca£
+
+
+733 Ð
+ITe¡Ca£
+* 
+	g‹¡Ca£
+,
+
+734 cÚ¡* 
+	gþassName
+,
+
+735 
+NameAndDesc
+ cÚ¡& 
+	gÇmeAndDesc
+,
+
+736 
+SourûLšeInfo
+ cÚ¡& 
+	glšeInfo
+ );
+
+738 
+	sAutoReg
+ {
+
+740 
+	gAutoReg
+
+
+741 Ð
+Te¡FunùiÚ
+ 
+	gfunùiÚ
+,
+
+742 
+SourûLšeInfo
+ cÚ¡& 
+	glšeInfo
+,
+
+743 
+NameAndDesc
+ cÚ¡& 
+	gÇmeAndDesc
+ );
+
+745 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gC
+>
+
+746 
+	gAutoReg
+
+
+747 Ð(
+	gC
+::*
+m‘hod
+)(),
+
+748 cÚ¡* 
+	gþassName
+,
+
+749 
+NameAndDesc
+ cÚ¡& 
+	gÇmeAndDesc
+,
+
+750 
+SourûLšeInfo
+ cÚ¡& 
+	glšeInfo
+ ) {
+
+752 
+	g»gi¡”Te¡Ca£
+
+
+753 Ð
+Ãw
+ 
+	gM‘hodTe¡Ca£
+<
+	gC
+>Ð
+	gm‘hod
+ ),
+
+754 
+	gþassName
+,
+
+755 
+	gÇmeAndDesc
+,
+
+756 
+	glšeInfo
+ );
+
+759 ~
+AutoReg
+();
+
+761 
+	g´iv©e
+:
+
+762 
+AutoReg
+( AutoReg const& );
+
+763 
+	gÝ”©Ü
+ðÐ
+AutoReg
+ const& );
+
+766 
+	g»gi¡”Te¡Ca£FunùiÚ
+
+
+767 Ð
+Te¡FunùiÚ
+ 
+	gfunùiÚ
+,
+
+768 
+SourûLšeInfo
+ cÚ¡& 
+	glšeInfo
+,
+
+769 
+NameAndDesc
+ cÚ¡& 
+	gÇmeAndDesc
+ );
+
+773 #ifdeà
+CATCH_CONFIG_VARIADIC_MACROS
+
+
+775 
+	#INTERNAL_CATCH_TESTCASE2
+Ð
+Te¡Name
+, ... ) \
+
+776 
+	`Te¡Name
+(); \
+
+777 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+778 
+Çme¥aû
+{ 
+C©ch
+::
+AutoReg
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+autoRegi¡¿r
+ )Ð&
+Te¡Name
+, 
+CATCH_INTERNAL_LINEINFO
+, C©ch::
+	`NameAndDesc
+Ð
+__VA_ARGS__
+ ) ); } \
+
+779 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+ \
+
+780 
+	`Te¡Name
+()
+
+	)
+
+781 
+	#INTERNAL_CATCH_TESTCASE
+( ... ) \
+
+782 
+	`INTERNAL_CATCH_TESTCASE2
+Ð
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+____C_A_T_C_H____T_E_S_T____
+ ), 
+__VA_ARGS__
+ )
+
+	)
+
+785 
+	#INTERNAL_CATCH_METHOD_AS_TEST_CASE
+Ð
+Qu®if›dM‘hod
+, ... ) \
+
+786 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+787 
+Çme¥aû
+{ 
+C©ch
+::
+AutoReg
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+autoRegi¡¿r
+ )Ð&
+Qu®if›dM‘hod
+, "&" #Qu®if›dM‘hod, C©ch::
+	`NameAndDesc
+Ð
+__VA_ARGS__
+ ), 
+CATCH_INTERNAL_LINEINFO
+ ); } \
+
+788 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+
+
+	)
+
+791 
+	#INTERNAL_CATCH_TEST_CASE_METHOD2
+Ð
+Te¡Name
+, 
+CÏssName
+, ... )\
+
+792 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+793 
+Çme¥aû
+{ \
+
+794 
+Te¡Name
+ : 
+CÏssName
+{ \
+
+795 
+	`‹¡
+(); \
+
+797 
+C©ch
+::
+AutoReg
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+autoRegi¡¿r
+ ) ( &
+Te¡Name
+::
+‹¡
+, #CÏssName, C©ch::
+	`NameAndDesc
+Ð
+__VA_ARGS__
+ ), 
+CATCH_INTERNAL_LINEINFO
+ ); \
+
+799 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+ \
+
+800 
+Te¡Name
+::
+	`‹¡
+()
+
+	)
+
+801 
+	#INTERNAL_CATCH_TEST_CASE_METHOD
+Ð
+CÏssName
+, ... ) \
+
+802 
+	`INTERNAL_CATCH_TEST_CASE_METHOD2
+Ð
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+____C_A_T_C_H____T_E_S_T____
+ ), 
+CÏssName
+, 
+__VA_ARGS__
+ )
+
+	)
+
+805 
+	#INTERNAL_CATCH_REGISTER_TESTCASE
+Ð
+FunùiÚ
+, ... ) \
+
+806 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+807 
+C©ch
+::
+	`AutoReg
+Ð
+FunùiÚ
+, 
+CATCH_INTERNAL_LINEINFO
+, C©ch::
+	`NameAndDesc
+Ð
+__VA_ARGS__
+ ) ); \
+
+808 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+
+
+	)
+
+812 
+	#INTERNAL_CATCH_TESTCASE2
+Ð
+Te¡Name
+, 
+Name
+, 
+Desc
+ ) \
+
+813 
+	`Te¡Name
+(); \
+
+814 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+815 
+Çme¥aû
+{ 
+C©ch
+::
+AutoReg
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+autoRegi¡¿r
+ )Ð&
+Te¡Name
+, 
+CATCH_INTERNAL_LINEINFO
+, C©ch::
+	`NameAndDesc
+Ð
+Name
+, 
+Desc
+ ) ); } \
+
+816 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+ \
+
+817 
+	`Te¡Name
+()
+
+	)
+
+818 
+	#INTERNAL_CATCH_TESTCASE
+Ð
+Name
+, 
+Desc
+ ) \
+
+819 
+	`INTERNAL_CATCH_TESTCASE2
+Ð
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+____C_A_T_C_H____T_E_S_T____
+ ), 
+Name
+, 
+Desc
+ )
+
+	)
+
+822 
+	#INTERNAL_CATCH_METHOD_AS_TEST_CASE
+Ð
+Qu®if›dM‘hod
+, 
+Name
+, 
+Desc
+ ) \
+
+823 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+824 
+Çme¥aû
+{ 
+C©ch
+::
+AutoReg
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+autoRegi¡¿r
+ )Ð&
+Qu®if›dM‘hod
+, "&" #Qu®if›dM‘hod, C©ch::
+	`NameAndDesc
+Ð
+Name
+, 
+Desc
+ ), 
+CATCH_INTERNAL_LINEINFO
+ ); } \
+
+825 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+
+
+	)
+
+828 
+	#INTERNAL_CATCH_TEST_CASE_METHOD2
+Ð
+Te¡Ca£Name
+, 
+CÏssName
+, 
+Te¡Name
+, 
+Desc
+ )\
+
+829 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+830 
+Çme¥aû
+{ \
+
+831 
+Te¡Ca£Name
+ : 
+CÏssName
+{ \
+
+832 
+	`‹¡
+(); \
+
+834 
+C©ch
+::
+AutoReg
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+autoRegi¡¿r
+ ) ( &
+Te¡Ca£Name
+::
+‹¡
+, #CÏssName, C©ch::
+	`NameAndDesc
+Ð
+Te¡Name
+, 
+Desc
+ ), 
+CATCH_INTERNAL_LINEINFO
+ ); \
+
+836 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+ \
+
+837 
+Te¡Ca£Name
+::
+	`‹¡
+()
+
+	)
+
+838 
+	#INTERNAL_CATCH_TEST_CASE_METHOD
+Ð
+CÏssName
+, 
+Te¡Name
+, 
+Desc
+ )\
+
+839 
+	`INTERNAL_CATCH_TEST_CASE_METHOD2
+Ð
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+____C_A_T_C_H____T_E_S_T____
+ ), 
+CÏssName
+, 
+Te¡Name
+, 
+Desc
+ )
+
+	)
+
+842 
+	#INTERNAL_CATCH_REGISTER_TESTCASE
+Ð
+FunùiÚ
+, 
+Name
+, 
+Desc
+ ) \
+
+843 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+ \
+
+844 
+C©ch
+::
+	`AutoReg
+Ð
+FunùiÚ
+, 
+CATCH_INTERNAL_LINEINFO
+, C©ch::
+	`NameAndDesc
+Ð
+Name
+, 
+Desc
+ ) ); \
+
+845 
+CATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+
+
+	)
+
+850 
+	#TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
+
+
+	)
+
+853 
+	#TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
+
+
+	)
+
+856 
+	#TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
+
+
+	)
+
+858 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+861 
+	sResuÉWas
+ { 
+	eOfTy³
+ {
+
+862 
+	gUnknown
+ = -1,
+
+863 
+	gOk
+ = 0,
+
+864 
+	gInfo
+ = 1,
+
+865 
+	gW¬nšg
+ = 2,
+
+867 
+	gFažu»B™
+ = 0x10,
+
+869 
+	gEx´essiÚFažed
+ = 
+Fažu»B™
+ | 1,
+
+870 
+	gEx¶ic™Fažu»
+ = 
+Fažu»B™
+ | 2,
+
+872 
+	gExû±iÚ
+ = 0x100 | 
+Fažu»B™
+,
+
+874 
+	gTh»wExû±iÚ
+ = 
+Exû±iÚ
+ | 1,
+
+875 
+	gDidÁThrowExû±iÚ
+ = 
+Exû±iÚ
+ | 2,
+
+877 
+	gF©®E¼ÜCÚd™iÚ
+ = 0x200 | 
+Fažu»B™
+
+
+881 
+šlše
+ 
+boÞ
+ 
+isOk
+Ð
+ResuÉWas
+::
+OfTy³
+ 
+»suÉTy³
+ ) {
+
+882  ( 
+»suÉTy³
+ & 
+ResuÉWas
+::
+Fažu»B™
+ ) == 0;
+
+884 
+šlše
+ 
+boÞ
+ 
+isJu¡Info
+Ð
+æags
+ ) {
+
+885  
+	gæags
+ =ð
+ResuÉWas
+::
+Info
+;
+
+889 
+	sResuÉDi¥os™iÚ
+ { 
+	eFÏgs
+ {
+
+890 
+	gNÜm®
+ = 0x01,
+
+892 
+	gCÚtšueOnFažu»
+ = 0x02,
+
+893 
+	gF®£Te¡
+ = 0x04,
+
+894 
+	gSuµ»ssFaž
+ = 0x08
+
+897 
+šlše
+ 
+	gResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+Ý”©Ü
+ | ( 
+ResuÉDi¥os™iÚ
+::FÏg 
+lhs
+, ResuÉDi¥os™iÚ::FÏg 
+rhs
+ ) {
+
+898  
+¡©ic_ÿ¡
+<
+ResuÉDi¥os™iÚ
+::
+FÏgs
+>Ð¡©ic_ÿ¡<>Ð
+lhs
+ ) | s�tic_ÿ¡<>Ð
+rhs
+ ) );
+
+901 
+šlše
+ 
+boÞ
+ 
+shouldCÚtšueOnFažu»
+Ð
+æags
+ ) {  ( 
+	gæags
+ & 
+	gResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+ ) != 0; }
+
+902 
+šlše
+ 
+boÞ
+ 
+isF®£Te¡
+Ð
+æags
+ ) {  ( 
+	gæags
+ & 
+	gResuÉDi¥os™iÚ
+::
+F®£Te¡
+ ) != 0; }
+
+903 
+šlše
+ 
+boÞ
+ 
+shouldSuµ»ssFažu»
+Ð
+æags
+ ) {  ( 
+	gæags
+ & 
+	gResuÉDi¥os™iÚ
+::
+Suµ»ssFaž
+ ) != 0; }
+
+908 
+	#TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
+
+
+	)
+
+910 
+	~<¡ršg
+>
+
+912 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+914 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+;
+
+916 
+	sDecompo£dEx´essiÚ
+
+
+918 
+	gvœtu®
+ ~
+Decompo£dEx´essiÚ
+() {}
+
+919 
+vœtu®
+ 
+boÞ
+ 
+isBš¬yEx´essiÚ
+() const {
+
+920  
+	gçl£
+;
+
+922 
+vœtu®
+ 
+»cÚ¡ruùEx´essiÚ
+Ð
+¡d
+::
+¡ršg
+& 
+de¡
+ ) const = 0;
+
+926 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+& 
+	gÝ”©Ü
+ + ( 
+T
+ const& );
+
+927 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+& 
+	gÝ”©Ü
+ - ( 
+T
+ const& );
+
+928 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+& 
+	gÝ”©Ü
+ * ( 
+T
+ const& );
+
+929 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+& 
+	gÝ”©Ü
+ / ( 
+T
+ const& );
+
+930 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+& 
+	gÝ”©Ü
+ % ( 
+T
+ const& );
+
+931 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+& 
+	gÝ”©Ü
+ && ( 
+T
+ const& );
+
+932 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+	gSTATIC_ASSERT_Ex´essiÚ_Too_Com¶ex_PËa£_Rewr™e_As_Bš¬y_Com·risÚ
+& 
+	gÝ”©Ü
+ || ( 
+T
+ const& );
+
+934 
+	g´iv©e
+:
+
+935 
+Decompo£dEx´essiÚ
+& 
+Ý”©Ü
+ = (DecomposedExpression const&);
+
+938 
+	sAs£¹iÚInfo
+
+
+940 
+As£¹iÚInfo
+();
+
+941 
+As£¹iÚInfo
+ÐcÚ¡ * 
+_maüoName
+,
+
+942 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+,
+
+943 cÚ¡ * 
+_ÿ±u»dEx´essiÚ
+,
+
+944 
+ResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+_»suÉDi¥os™iÚ
+,
+
+945 cÚ¡ * 
+_£cÚdArg
+ = "");
+
+947 cÚ¡ * 
+	gmaüoName
+;
+
+948 
+SourûLšeInfo
+ 
+	glšeInfo
+;
+
+949 cÚ¡ * 
+	gÿ±u»dEx´essiÚ
+;
+
+950 
+	gResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+»suÉDi¥os™iÚ
+;
+
+951 cÚ¡ * 
+	g£cÚdArg
+;
+
+954 
+	sAs£¹iÚResuÉD©a
+
+
+956 
+As£¹iÚResuÉD©a
+(è: 
+decompo£dEx´essiÚ
+Ð
+CATCH_NULL
+ )
+
+957 , 
+»suÉTy³
+Ð
+ResuÉWas
+::
+Unknown
+ )
+
+958 , 
+Ãg©ed
+Ð
+çl£
+ )
+
+959 , 
+·»Áhesized
+Ð
+çl£
+ ) {}
+
+961 
+Ãg©e
+Ð
+boÞ
+ 
+·»Áhesize
+ ) {
+
+962 
+	gÃg©ed
+ = !
+Ãg©ed
+;
+
+963 
+	g·»Áhesized
+ = 
+·»Áhesize
+;
+
+964 ifÐ
+	g»suÉTy³
+ =ð
+ResuÉWas
+::
+Ok
+ )
+
+965 
+»suÉTy³
+ = 
+ResuÉWas
+::
+Ex´essiÚFažed
+;
+
+966 ifÐ
+	g»suÉTy³
+ =ð
+ResuÉWas
+::
+Ex´essiÚFažed
+ )
+
+967 
+»suÉTy³
+ = 
+ResuÉWas
+::
+Ok
+;
+
+970 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+»cÚ¡ruùEx´essiÚ
+() const {
+
+971 ifÐ
+decompo£dEx´essiÚ
+ !ð
+CATCH_NULL
+ ) {
+
+972 
+decompo£dEx´essiÚ
+->
+»cÚ¡ruùEx´essiÚ
+Ð
+»cÚ¡ruùedEx´essiÚ
+ );
+
+973 ifÐ
+	g·»Áhesized
+ ) {
+
+974 
+	g»cÚ¡ruùedEx´essiÚ
+.
+š£¹
+( 0, 1, '(' );
+
+975 
+	g»cÚ¡ruùedEx´essiÚ
+.
+­³nd
+( 1, ')' );
+
+977 ifÐ
+	gÃg©ed
+ ) {
+
+978 
+	g»cÚ¡ruùedEx´essiÚ
+.
+š£¹
+( 0, 1, '!' );
+
+980 
+	gdecompo£dEx´essiÚ
+ = 
+CATCH_NULL
+;
+
+982  
+	g»cÚ¡ruùedEx´essiÚ
+;
+
+985 
+mu�bË
+ 
+Decompo£dEx´essiÚ
+ cÚ¡* 
+	gdecompo£dEx´essiÚ
+;
+
+986 
+mu�bË
+ 
+	g¡d
+::
+¡ršg
+ 
+»cÚ¡ruùedEx´essiÚ
+;
+
+987 
+	g¡d
+::
+¡ršg
+ 
+mes§ge
+;
+
+988 
+	gResuÉWas
+::
+OfTy³
+ 
+»suÉTy³
+;
+
+989 
+boÞ
+ 
+	gÃg©ed
+;
+
+990 
+boÞ
+ 
+	g·»Áhesized
+;
+
+993 þas 
+	cAs£¹iÚResuÉ
+ {
+
+994 
+	gpublic
+:
+
+995 
+As£¹iÚResuÉ
+();
+
+996 
+As£¹iÚResuÉ
+Ð
+As£¹iÚInfo
+ cÚ¡& 
+šfo
+, 
+As£¹iÚResuÉD©a
+ cÚ¡& 
+d©a
+ );
+
+997 ~
+As£¹iÚResuÉ
+();
+
+998 #ifdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+999 
+As£¹iÚResuÉ
+( AssertionResult const& ) = ;
+
+1000 
+As£¹iÚResuÉ
+( AssertionResult && ) = ;
+
+1001 
+	gAs£¹iÚResuÉ
+& 
+	gÝ”©Ü
+ = ( 
+As£¹iÚResuÉ
+ const& ) = ;
+
+1002 
+	gAs£¹iÚResuÉ
+& 
+	gÝ”©Ü
+ = ( 
+As£¹iÚResuÉ
+ && ) = ;
+
+1005 
+boÞ
+ 
+isOk
+() const;
+
+1006 
+boÞ
+ 
+sucûeded
+() const;
+
+1007 
+	gResuÉWas
+::
+OfTy³
+ 
+g‘ResuÉTy³
+() const;
+
+1008 
+boÞ
+ 
+hasEx´essiÚ
+() const;
+
+1009 
+boÞ
+ 
+hasMes§ge
+() const;
+
+1010 
+	g¡d
+::
+¡ršg
+ 
+g‘Ex´essiÚ
+() const;
+
+1011 
+	g¡d
+::
+¡ršg
+ 
+g‘Ex´essiÚInMaüo
+() const;
+
+1012 
+boÞ
+ 
+hasEx·ndedEx´essiÚ
+() const;
+
+1013 
+	g¡d
+::
+¡ršg
+ 
+g‘Ex·ndedEx´essiÚ
+() const;
+
+1014 
+	g¡d
+::
+¡ršg
+ 
+g‘Mes§ge
+() const;
+
+1015 
+SourûLšeInfo
+ 
+g‘SourûInfo
+() const;
+
+1016 
+	g¡d
+::
+¡ršg
+ 
+g‘Te¡MaüoName
+() const;
+
+1017 
+disÿrdDecompo£dEx´essiÚ
+() const;
+
+1018 
+ex·ndDecompo£dEx´essiÚ
+() const;
+
+1020 
+	g´Ùeùed
+:
+
+1021 
+As£¹iÚInfo
+ 
+m_šfo
+;
+
+1022 
+As£¹iÚResuÉD©a
+ 
+	gm_»suÉD©a
+;
+
+1028 
+	#TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
+
+
+	)
+
+1030 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+1031 
+Çme¥aû
+ 
+	gM©ch”s
+ {
+
+1032 
+Çme¥aû
+ 
+	gIm¶
+ {
+
+1034 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+> 
+	gM©chAÎOf
+;
+
+1035 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+> 
+	gM©chAnyOf
+;
+
+1036 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+> 
+	gM©chNÙOf
+;
+
+1038 þas 
+	cM©ch”UÁy³dBa£
+ {
+
+1039 
+	gpublic
+:
+
+1040 
+¡d
+::
+¡ršg
+ 
+toSŒšg
+() const {
+
+1041 ifÐ
+m_ÿchedToSŒšg
+.
+em±y
+() )
+
+1042 
+m_ÿchedToSŒšg
+ = 
+desüibe
+();
+
+1043  
+	gm_ÿchedToSŒšg
+;
+
+1046 
+	g´Ùeùed
+:
+
+1047 
+vœtu®
+ ~
+M©ch”UÁy³dBa£
+();
+
+1048 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+() const = 0;
+
+1049 
+mu�bË
+ 
+	g¡d
+::
+¡ršg
+ 
+m_ÿchedToSŒšg
+;
+
+1050 
+	g´iv©e
+:
+
+1051 
+M©ch”UÁy³dBa£
+& 
+Ý”©Ü
+ = ( MatcherUntypedBase const& );
+
+1054 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gObjeùT
+>
+
+1055 
+	sM©ch”M‘hod
+ {
+
+1056 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+ObjeùT
+ cÚ¡& 
+¬g
+ ) const = 0;
+
+1058 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gPŒT
+>
+
+1059 
+	gM©ch”M‘hod
+<
+	gPŒT
+*> {
+
+1060 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+PŒT
+* 
+¬g
+ ) const = 0;
+
+1063 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gObjeùT
+,�y³Çm�
+	gCom·¿tÜT
+ = 
+ObjeùT
+>
+
+1064 
+M©ch”Ba£
+ : 
+M©ch”UÁy³dBa£
+, 
+	gM©ch”M‘hod
+<
+	gObjeùT
+> {
+
+1066 
+	gM©chAÎOf
+<
+	gCom·¿tÜT
+> 
+	gÝ”©Ü
+ && ( 
+M©ch”Ba£
+ cÚ¡& 
+	gÙh”
+ ) const;
+
+1067 
+	gM©chAnyOf
+<
+	gCom·¿tÜT
+> 
+	gÝ”©Ü
+ || ( 
+M©ch”Ba£
+ cÚ¡& 
+	gÙh”
+ ) const;
+
+1068 
+	gM©chNÙOf
+<
+	gCom·¿tÜT
+> 
+	gÝ”©Ü
+ ! () const;
+
+1071 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+>
+
+1072 
+	gM©chAÎOf
+ : 
+M©ch”Ba£
+<
+ArgT
+> {
+
+1073 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+ArgT
+ cÚ¡& 
+¬g
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1074  
+¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gm_m©ch”s
+.
+size
+(); ++i ) {
+
+1075 ià(!
+	gm_m©ch”s
+[
+i
+]->
+m©ch
+(
+¬g
+))
+
+1076  
+	gçl£
+;
+
+1078  
+	gŒue
+;
+
+1080 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1081 
+¡d
+::
+¡ršg
+ 
+desü�tiÚ
+;
+
+1082 
+	gdesü�tiÚ
+.
+»£rve
+Ð4 + 
+m_m©ch”s
+.
+size
+()*32 );
+
+1083 
+	gdesü�tiÚ
+ += "( ";
+
+1084  
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gm_m©ch”s
+.
+size
+(); ++i ) {
+
+1085 ifÐ
+	gi
+ != 0 )
+
+1086 
+desü�tiÚ
+ += "‡nd ";
+
+1087 
+	gdesü�tiÚ
+ +ð
+m_m©ch”s
+[
+i
+]->
+toSŒšg
+();
+
+1089 
+	gdesü�tiÚ
+ += " )";
+
+1090  
+	gdesü�tiÚ
+;
+
+1093 
+	gM©chAÎOf
+<
+	gArgT
+>& 
+	gÝ”©Ü
+ && ( 
+	gM©ch”Ba£
+<ArgT> cÚ¡& 
+	gÙh”
+ ) {
+
+1094 
+	gm_m©ch”s
+.
+push_back
+Ð&
+Ùh”
+ );
+
+1095  *
+	gthis
+;
+
+1098 
+	g¡d
+::
+veùÜ
+<
+M©ch”Ba£
+<
+ArgT
+> cÚ¡*> 
+m_m©ch”s
+;
+
+1100 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+>
+
+1101 
+	gM©chAnyOf
+ : 
+M©ch”Ba£
+<
+ArgT
+> {
+
+1103 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+ArgT
+ cÚ¡& 
+¬g
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1104  
+¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gm_m©ch”s
+.
+size
+(); ++i ) {
+
+1105 ià(
+	gm_m©ch”s
+[
+i
+]->
+m©ch
+(
+¬g
+))
+
+1106  
+	gŒue
+;
+
+1108  
+	gçl£
+;
+
+1110 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1111 
+¡d
+::
+¡ršg
+ 
+desü�tiÚ
+;
+
+1112 
+	gdesü�tiÚ
+.
+»£rve
+Ð4 + 
+m_m©ch”s
+.
+size
+()*32 );
+
+1113 
+	gdesü�tiÚ
+ += "( ";
+
+1114  
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gm_m©ch”s
+.
+size
+(); ++i ) {
+
+1115 ifÐ
+	gi
+ != 0 )
+
+1116 
+desü�tiÚ
+ += " or ";
+
+1117 
+	gdesü�tiÚ
+ +ð
+m_m©ch”s
+[
+i
+]->
+toSŒšg
+();
+
+1119 
+	gdesü�tiÚ
+ += " )";
+
+1120  
+	gdesü�tiÚ
+;
+
+1123 
+	gM©chAnyOf
+<
+	gArgT
+>& 
+	gÝ”©Ü
+ || ( 
+	gM©ch”Ba£
+<ArgT> cÚ¡& 
+	gÙh”
+ ) {
+
+1124 
+	gm_m©ch”s
+.
+push_back
+Ð&
+Ùh”
+ );
+
+1125  *
+	gthis
+;
+
+1128 
+	g¡d
+::
+veùÜ
+<
+M©ch”Ba£
+<
+ArgT
+> cÚ¡*> 
+m_m©ch”s
+;
+
+1131 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+>
+
+1132 
+	gM©chNÙOf
+ : 
+M©ch”Ba£
+<
+ArgT
+> {
+
+1134 
+M©chNÙOf
+Ð
+M©ch”Ba£
+<
+ArgT
+> cÚ¡& 
+und”lyšgM©ch”
+ ) : 
+m_und”lyšgM©ch”
+( underlyingMatcher ) {}
+
+1136 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+ArgT
+ cÚ¡& 
+¬g
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1137  !
+m_und”lyšgM©ch”
+.
+m©ch
+Ð
+¬g
+ );
+
+1140 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1141  "nÙ " + 
+m_und”lyšgM©ch”
+.
+toSŒšg
+();
+
+1143 
+	gM©ch”Ba£
+<
+	gArgT
+> cÚ¡& 
+	gm_und”lyšgM©ch”
+;
+
+1146 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gObjeùT
+,�y³Çm�
+	gCom·¿tÜT
+>
+
+1147 
+	gM©chAÎOf
+<
+	gCom·¿tÜT
+> 
+	gM©ch”Ba£
+<
+	gObjeùT
+, Com·¿tÜT>::
+Ý”©Ü
+ && ( 
+M©ch”Ba£
+ cÚ¡& 
+Ùh”
+ ) const {
+
+1148  
+M©chAÎOf
+<
+Com·¿tÜT
+>(è&& *
+this
+ && 
+Ùh”
+;
+
+1150 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gObjeùT
+,�y³Çm�
+	gCom·¿tÜT
+>
+
+1151 
+	gM©chAnyOf
+<
+	gCom·¿tÜT
+> 
+	gM©ch”Ba£
+<
+	gObjeùT
+, Com·¿tÜT>::
+Ý”©Ü
+ || ( 
+M©ch”Ba£
+ cÚ¡& 
+Ùh”
+ ) const {
+
+1152  
+M©chAnyOf
+<
+Com·¿tÜT
+>(è|| *
+this
+ || 
+Ùh”
+;
+
+1154 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gObjeùT
+,�y³Çm�
+	gCom·¿tÜT
+>
+
+1155 
+	gM©chNÙOf
+<
+	gCom·¿tÜT
+> 
+	gM©ch”Ba£
+<
+	gObjeùT
+, Com·¿tÜT>::
+Ý”©Ü
+ ! () const {
+
+1156  
+M©chNÙOf
+<
+Com·¿tÜT
+>Ð*
+this
+ );
+
+1164 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1165 
+	gIm¶
+::
+M©chNÙOf
+<
+T
+> 
+NÙ
+Ð
+Im¶
+::
+M©ch”Ba£
+<T> cÚ¡& 
+und”lyšgM©ch”
+ ) {
+
+1166  
+Im¶
+::
+M©chNÙOf
+<
+T
+>Ð
+und”lyšgM©ch”
+ );
+
+1168 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1169 
+	gIm¶
+::
+M©chAÎOf
+<
+T
+> 
+AÎOf
+Ð
+Im¶
+::
+M©ch”Ba£
+<T> cÚ¡& 
+m1
+, Im¶::M©ch”Ba£<T> cÚ¡& 
+m2
+ ) {
+
+1170  
+Im¶
+::
+M©chAÎOf
+<
+T
+>(è&& 
+m1
+ && 
+m2
+;
+
+1172 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1173 
+	gIm¶
+::
+M©chAÎOf
+<
+T
+> 
+AÎOf
+Ð
+Im¶
+::
+M©ch”Ba£
+<T> cÚ¡& 
+m1
+, Im¶::M©ch”Ba£<T> cÚ¡& 
+m2
+, Im¶::M©ch”Ba£<T> cÚ¡& 
+m3
+ ) {
+
+1174  
+Im¶
+::
+M©chAÎOf
+<
+T
+>(è&& 
+m1
+ && 
+m2
+ && 
+m3
+;
+
+1176 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1177 
+	gIm¶
+::
+M©chAnyOf
+<
+T
+> 
+AnyOf
+Ð
+Im¶
+::
+M©ch”Ba£
+<T> cÚ¡& 
+m1
+, Im¶::M©ch”Ba£<T> cÚ¡& 
+m2
+ ) {
+
+1178  
+Im¶
+::
+M©chAnyOf
+<
+T
+>(è|| 
+m1
+ || 
+m2
+;
+
+1180 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1181 
+	gIm¶
+::
+M©chAnyOf
+<
+T
+> 
+AnyOf
+Ð
+Im¶
+::
+M©ch”Ba£
+<T> cÚ¡& 
+m1
+, Im¶::M©ch”Ba£<T> cÚ¡& 
+m2
+, Im¶::M©ch”Ba£<T> cÚ¡& 
+m3
+ ) {
+
+1182  
+Im¶
+::
+M©chAnyOf
+<
+T
+>(è|| 
+m1
+ || 
+m2
+ || 
+m3
+;
+
+1187 
+usšg
+ 
+Çme¥aû
+ 
+	gM©ch”s
+;
+
+1188 
+usšg
+ 
+	gM©ch”s
+::
+Im¶
+::
+M©ch”Ba£
+;
+
+1192 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+1194 
+	sTe¡Fažu»Exû±iÚ
+{};
+
+1196 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+þass
+ 
+	gEx´essiÚLhs
+;
+
+1198 
+	sCÝyabËSŒ—m
+ {
+
+1199 
+CÝyabËSŒ—m
+() {}
+
+1200 
+CÝyabËSŒ—m
+ÐCÝyabËSŒ—m cÚ¡& 
+Ùh”
+ ) {
+
+1201 
+	goss
+ << 
+	gÙh”
+.oss.
+¡r
+();
+
+1203 
+	gCÝyabËSŒ—m
+& 
+	gÝ”©Ü
+=Ð
+CÝyabËSŒ—m
+ cÚ¡& 
+Ùh”
+ ) {
+
+1204 
+oss
+.
+¡r
+(
+¡d
+::
+¡ršg
+());
+
+1205 
+	goss
+ << 
+	gÙh”
+.oss.
+¡r
+();
+
+1206  *
+	gthis
+;
+
+1208 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+1211 þas 
+	cResuÉBužd”
+ : 
+public
+ 
+Decompo£dEx´essiÚ
+ {
+
+1212 
+public
+:
+
+1213 
+ResuÉBužd”
+ÐcÚ¡* 
+maüoName
+,
+
+1214 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+,
+
+1215 cÚ¡* 
+ÿ±u»dEx´essiÚ
+,
+
+1216 
+ResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+»suÉDi¥os™iÚ
+,
+
+1217 cÚ¡* 
+£cÚdArg
+ = "" );
+
+1218 ~
+ResuÉBužd”
+();
+
+1220 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1221 
+	gEx´essiÚLhs
+<
+T
+ cÚ¡&> 
+	gÝ”©Ü
+ <ðÐT cÚ¡& 
+Ý”ªd
+ );
+
+1222 
+	gEx´essiÚLhs
+<
+	gboÞ
+> 
+	gÝ”©Ü
+ <ðÐ
+boÞ
+ 
+v®ue
+ );
+
+1224 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1225 
+	gResuÉBužd”
+& 
+	gÝ”©Ü
+ << ( 
+T
+ cÚ¡& 
+	gv®ue
+ ) {
+
+1226 
+¡»am
+().
+	goss
+ << 
+	gv®ue
+;
+
+1227  *
+	gthis
+;
+
+1230 
+	gResuÉBužd”
+& 
+£tResuÉTy³
+Ð
+ResuÉWas
+::
+OfTy³
+ 
+»suÉ
+ );
+
+1231 
+	gResuÉBužd”
+& 
+£tResuÉTy³
+Ð
+boÞ
+ 
+»suÉ
+ );
+
+1233 
+’dEx´essiÚ
+Ð
+Decompo£dEx´essiÚ
+ cÚ¡& 
+ex´
+ );
+
+1235 
+vœtu®
+ 
+»cÚ¡ruùEx´essiÚ
+Ð
+¡d
+::
+¡ršg
+& 
+de¡
+ ) cÚ¡ 
+CATCH_OVERRIDE
+;
+
+1237 
+As£¹iÚResuÉ
+ 
+bužd
+() const;
+
+1238 
+As£¹iÚResuÉ
+ 
+bužd
+Ð
+Decompo£dEx´essiÚ
+ cÚ¡& 
+ex´
+ ) const;
+
+1240 
+u£AùiveExû±iÚ
+Ð
+ResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+»suÉDi¥os™iÚ
+ = ResuÉDi¥os™iÚ::
+NÜm®
+ );
+
+1241 
+ÿ±u»ResuÉ
+Ð
+ResuÉWas
+::
+OfTy³
+ 
+»suÉTy³
+ );
+
+1242 
+ÿ±u»Ex´essiÚ
+();
+
+1243 
+ÿ±u»Ex³ùedExû±iÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+ex³ùedMes§ge
+ );
+
+1244 
+ÿ±u»Ex³ùedExû±iÚ
+Ð
+M©ch”s
+::
+Im¶
+::
+M©ch”Ba£
+<
+¡d
+::
+¡ršg
+> cÚ¡& 
+m©ch”
+ );
+
+1245 
+hªdËResuÉ
+Ð
+As£¹iÚResuÉ
+ cÚ¡& 
+»suÉ
+ );
+
+1246 
+»aù
+();
+
+1247 
+boÞ
+ 
+shouldDebugB»ak
+() const;
+
+1248 
+boÞ
+ 
+®lowThrows
+() const;
+
+1250 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+,�y³Çm�
+	gM©ch”T
+>
+
+1251 
+ÿ±u»M©ch
+Ð
+ArgT
+ cÚ¡& 
+¬g
+, 
+M©ch”T
+ cÚ¡& 
+m©ch”
+, cÚ¡* 
+m©ch”SŒšg
+ );
+
+1253 
+£tExû±iÚGu¬d
+();
+
+1254 
+un£tExû±iÚGu¬d
+();
+
+1256 
+	g´iv©e
+:
+
+1257 
+As£¹iÚInfo
+ 
+m_as£¹iÚInfo
+;
+
+1258 
+As£¹iÚResuÉD©a
+ 
+	gm_d©a
+;
+
+1260 
+	gCÝyabËSŒ—m
+ &
+¡»am
+()
+
+1262 if(!
+	gm_u£dSŒ—m
+)
+
+1264 
+	gm_u£dSŒ—m
+ = 
+Œue
+;
+
+1265 
+m_¡»am
+().
+	goss
+.
+¡r
+("");
+
+1267  
+m_¡»am
+();
+
+1270 
+	gCÝyabËSŒ—m
+ &
+m_¡»am
+()
+
+1272 
+CÝyabËSŒ—m
+ 
+	gs
+;
+
+1273  
+	gs
+;
+
+1276 
+boÞ
+ 
+	gm_shouldDebugB»ak
+;
+
+1277 
+boÞ
+ 
+	gm_shouldThrow
+;
+
+1278 
+boÞ
+ 
+	gm_gu¬dExû±iÚ
+;
+
+1279 
+boÞ
+ 
+	gm_u£dSŒ—m
+;
+
+1286 
+	#TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
+
+
+	)
+
+1289 
+	#TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
+
+
+	)
+
+1291 #ifdeà
+_MSC_VER
+
+
+1292 #´agm¨
+w¬nšg
+(
+push
+)
+
+1293 #´agm¨
+w¬nšg
+(
+di§bË
+:4389)
+
+1294 #´agm¨
+w¬nšg
+(
+di§bË
+:4312)
+
+1297 
+	~<c¡ddef
+>
+
+1299 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+1300 
+Çme¥aû
+ 
+	gIÁ”Çl
+ {
+
+1302 
+	eO³¿tÜ
+ {
+
+1303 
+	gIsEqu®To
+,
+
+1304 
+	gIsNÙEqu®To
+,
+
+1305 
+	gIsLessThª
+,
+
+1306 
+	gIsG»©”Thª
+,
+
+1307 
+	gIsLessThªOrEqu®To
+,
+
+1308 
+	gIsG»©”ThªOrEqu®To
+
+
+1311 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+	sO³¿tÜT¿™s
+ { cÚ¡ * 
+g‘Name
+(){  "*error*"; } };
+
+1312 
+	g‹m¶©e
+<> 
+	gO³¿tÜT¿™s
+<
+	gIsEqu®To
+> { cÚ¡ * 
+g‘Name
+(){  "=="; } };
+
+1313 
+	g‹m¶©e
+<> 
+	gO³¿tÜT¿™s
+<
+	gIsNÙEqu®To
+> { cÚ¡ * 
+g‘Name
+(){  "!="; } };
+
+1314 
+	g‹m¶©e
+<> 
+	gO³¿tÜT¿™s
+<
+	gIsLessThª
+> { cÚ¡ * 
+g‘Name
+(){  "<"; } };
+
+1315 
+	g‹m¶©e
+<> 
+	gO³¿tÜT¿™s
+<
+	gIsG»©”Thª
+> { cÚ¡ * 
+g‘Name
+(){  ">"; } };
+
+1316 
+	g‹m¶©e
+<> 
+	gO³¿tÜT¿™s
+<
+	gIsLessThªOrEqu®To
+> { cÚ¡ * 
+g‘Name
+(){  "<="; } };
+
+1317 
+	g‹m¶©e
+<> 
+	gO³¿tÜT¿™s
+<
+	gIsG»©”ThªOrEqu®To
+>{ cÚ¡ * 
+g‘Name
+(){  ">="; } };
+
+1319 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1320 
+	gT
+& 
+ÝCa¡
+(
+T
+ cÚ¡& 
+t
+è{  
+	gcÚ¡_ÿ¡
+<T&>(
+	gt
+); }
+
+1323 #ifdeà
+CATCH_CONFIG_CPP11_NULLPTR
+
+
+1324 
+šlše
+ 
+	g¡d
+::
+nuÎ±r_t
+ 
+ÝCa¡
+(
+¡d
+::nuÎ±r_tè{  
+nuÎ±r
+; }
+
+1329 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+, 
+O³¿tÜ
+ 
+	gOp
+>
+
+1330 
+	sEv®u©Ü
+{};
+
+1332 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1333 
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gIsEqu®To
+> {
+
+1334 
+boÞ
+ 
+ev®u©e
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+) {
+
+1335  
+boÞ
+Ð
+ÝCa¡
+Ð
+lhs
+ ) =ðÝCa¡Ð
+rhs
+ ) );
+
+1338 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1339 
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gIsNÙEqu®To
+> {
+
+1340 
+boÞ
+ 
+ev®u©e
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+ ) {
+
+1341  
+boÞ
+Ð
+ÝCa¡
+Ð
+lhs
+ ) !ðÝCa¡Ð
+rhs
+ ) );
+
+1344 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1345 
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gIsLessThª
+> {
+
+1346 
+boÞ
+ 
+ev®u©e
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+ ) {
+
+1347  
+boÞ
+Ð
+ÝCa¡
+Ð
+lhs
+ ) < opCa¡Ð
+rhs
+ ) );
+
+1350 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1351 
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gIsG»©”Thª
+> {
+
+1352 
+boÞ
+ 
+ev®u©e
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+ ) {
+
+1353  
+boÞ
+Ð
+ÝCa¡
+Ð
+lhs
+ ) > opCa¡Ð
+rhs
+ ) );
+
+1356 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1357 
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gIsG»©”ThªOrEqu®To
+> {
+
+1358 
+boÞ
+ 
+ev®u©e
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+ ) {
+
+1359  
+boÞ
+Ð
+ÝCa¡
+Ð
+lhs
+ ) >ðÝCa¡Ð
+rhs
+ ) );
+
+1362 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1363 
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gIsLessThªOrEqu®To
+> {
+
+1364 
+boÞ
+ 
+ev®u©e
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+ ) {
+
+1365  
+boÞ
+Ð
+ÝCa¡
+Ð
+lhs
+ ) <ðÝCa¡Ð
+rhs
+ ) );
+
+1369 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1370 
+boÞ
+ 
+­¶yEv®u©Ü
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+ ) {
+
+1371  
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gOp
+>::
+ev®u©e
+Ð
+lhs
+, 
+rhs
+ );
+
+1378 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT1
+,�y³Çm�
+	gT2
+>
+
+1379 
+boÞ
+ 
+com·»
+Ð
+T1
+ cÚ¡& 
+lhs
+, 
+T2
+ cÚ¡& 
+rhs
+ ) {
+
+1380  
+	gEv®u©Ü
+<
+	gT1
+, 
+	gT2
+, 
+	gOp
+>::
+ev®u©e
+Ð
+lhs
+, 
+rhs
+ );
+
+1384 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1385  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	glhs
+, 
+	g¡©ic_ÿ¡
+<>Ð
+	grhs
+ ) );
+
+1387 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1388  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	glhs
+, 
+	g¡©ic_ÿ¡
+<>Ð
+	grhs
+ ) );
+
+1390 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1391  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	glhs
+, 
+	g¡©ic_ÿ¡
+<>Ð
+	grhs
+ ) );
+
+1395 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1396  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	glhs
+, 
+	g¡©ic_ÿ¡
+<>Ð
+	grhs
+ ) );
+
+1398 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1399  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	glhs
+, 
+	g¡©ic_ÿ¡
+<>Ð
+	grhs
+ ) );
+
+1401 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1402  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	glhs
+, 
+	g¡©ic_ÿ¡
+<>Ð
+	grhs
+ ) );
+
+1406 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1407  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1409 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1410  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1412 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1413  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1417 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1418  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1420 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1421  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1423 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1424  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1428 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+T
+* 
+rhs
+ ) {
+
+1429  
+	gEv®u©Ü
+<
+	gT
+*, T*, 
+	gOp
+>::
+ev®u©e
+Ð
+»š‹½»t_ÿ¡
+<
+T
+*>Ð
+lhs
+ ), 
+rhs
+ );
+
+1431 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+T
+* 
+lhs
+, 
+rhs
+ ) {
+
+1432  
+	gEv®u©Ü
+<
+	gT
+*, T*, 
+	gOp
+>::
+ev®u©e
+Ð
+lhs
+, 
+»š‹½»t_ÿ¡
+<
+T
+*>Ð
+rhs
+ ) );
+
+1436 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+T
+* 
+rhs
+ ) {
+
+1437  
+	gEv®u©Ü
+<
+	gT
+*, T*, 
+	gOp
+>::
+ev®u©e
+Ð
+»š‹½»t_ÿ¡
+<
+T
+*>Ð
+lhs
+ ), 
+rhs
+ );
+
+1439 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+T
+* 
+lhs
+, 
+rhs
+ ) {
+
+1440  
+	gEv®u©Ü
+<
+	gT
+*, T*, 
+	gOp
+>::
+ev®u©e
+Ð
+lhs
+, 
+»š‹½»t_ÿ¡
+<
+T
+*>Ð
+rhs
+ ) );
+
+1443 #ifdeà
+CATCH_CONFIG_CPP11_LONG_LONG
+
+
+1445 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1446  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1448 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1449  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1451 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1452  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1454 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1455  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1459 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1460  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1462 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1463  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1465 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1466  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1468 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+rhs
+ ) {
+
+1469  
+	g­¶yEv®u©Ü
+<
+	gOp
+>Ð
+	g¡©ic_ÿ¡
+<>Ð
+	glhs
+ ), 
+	grhs
+ );
+
+1473 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+lhs
+, 
+T
+* 
+rhs
+ ) {
+
+1474  
+	gEv®u©Ü
+<
+	gT
+*, T*, 
+	gOp
+>::
+ev®u©e
+Ð
+»š‹½»t_ÿ¡
+<
+T
+*>Ð
+lhs
+ ), 
+rhs
+ );
+
+1476 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+T
+* 
+lhs
+, 
+rhs
+ ) {
+
+1477  
+	gEv®u©Ü
+<
+	gT
+*, T*, 
+	gOp
+>::
+ev®u©e
+Ð
+lhs
+, 
+»š‹½»t_ÿ¡
+<
+T
+*>Ð
+rhs
+ ) );
+
+1481 #ifdeà
+CATCH_CONFIG_CPP11_NULLPTR
+
+
+1483 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+¡d
+::
+nuÎ±r_t
+, 
+T
+* 
+rhs
+ ) {
+
+1484  
+	gEv®u©Ü
+<
+	gT
+*, T*, 
+	gOp
+>::
+ev®u©e
+Ð
+nuÎ±r
+, 
+rhs
+ );
+
+1486 
+	g‹m¶©e
+<
+O³¿tÜ
+ 
+	gOp
+, 
+ty³Çme
+ 
+	gT
+> 
+boÞ
+ 
+com·»
+Ð
+T
+* 
+lhs
+, 
+¡d
+::
+nuÎ±r_t
+ ) {
+
+1487  
+Ev®u©Ü
+<
+T
+*, 
+	gT
+*, 
+	gOp
+>::
+ev®u©e
+Ð
+lhs
+, 
+nuÎ±r
+ );
+
+1494 #ifdeà
+_MSC_VER
+
+
+1495 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+1499 
+	#TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
+
+
+	)
+
+1501 
+	~<s¡»am
+>
+
+1502 
+	~<iomª�
+>
+
+1503 
+	~<lim™s
+>
+
+1504 
+	~<veùÜ
+>
+
+1505 
+	~<c¡ddef
+>
+
+1507 #ifdeà
+__OBJC__
+
+
+1509 
+	#TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
+
+
+	)
+
+1511 #impÜˆ<
+Found©iÚ
+/Found©iÚ.
+h
+>
+
+1513 #ifdeà
+__has_ã©u»
+
+
+1514 
+	#CATCH_ARC_ENABLED
+ 
+	`__has_ã©u»
+(
+objc_¬c
+)
+
+	)
+
+1516 
+	#CATCH_ARC_ENABLED
+ 0
+
+	)
+
+1519 
+¬cSaãR–—£
+Ð
+NSObjeù
+* 
+obj
+ );
+
+1520 
+id
+ 
+³rfÜmO±iÚ®S–eùÜ
+Ðid 
+obj
+, 
+SEL
+ 
+£l
+ );
+
+1522 #ià!
+CATCH_ARC_ENABLED
+
+
+1523 
+šlše
+ 
+	$¬cSaãR–—£
+Ð
+NSObjeù
+* 
+obj
+ ) {
+
+1524 [
+obj
+ 
+»Ëa£
+];
+
+1525 
+	}
+}
+
+1526 
+šlše
+ 
+id
+ 
+	$³rfÜmO±iÚ®S–eùÜ
+Ð
+id
+ 
+obj
+, 
+SEL
+ 
+£l
+ ) {
+
+1527 ifÐ[
+obj
+ 
+»¥ÚdsToS–eùÜ
+: 
+£l
+] )
+
+1528  [
+obj
+ 
+³rfÜmS–eùÜ
+: 
+£l
+];
+
+1529  
+nž
+;
+
+1530 
+	}
+}
+
+1531 
+	#CATCH_UNSAFE_UNRETAINED
+
+
+	)
+
+1532 
+	#CATCH_ARC_STRONG
+
+
+	)
+
+1534 
+šlše
+ 
+	$¬cSaãR–—£
+Ð
+NSObjeù
+* ){
+	}
+}
+
+1535 
+šlše
+ 
+id
+ 
+	$³rfÜmO±iÚ®S–eùÜ
+Ð
+id
+ 
+obj
+, 
+SEL
+ 
+£l
+ ) {
+
+1536 #ifdeà
+__þªg__
+
+
+1537 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+1538 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Warc-performSelector-leaks"
+
+1540 ifÐ[
+obj
+ 
+»¥ÚdsToS–eùÜ
+: 
+£l
+] )
+
+1541  [
+obj
+ 
+³rfÜmS–eùÜ
+: 
+£l
+];
+
+1542 #ifdeà
+__þªg__
+
+
+1543 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+1545  
+nž
+;
+
+1546 
+	}
+}
+
+1547 
+	#CATCH_UNSAFE_UNRETAINED
+ 
+__un§ã_uÄ‘ašed
+
+
+	)
+
+1548 
+	#CATCH_ARC_STRONG
+ 
+__¡rÚg
+
+
+	)
+
+1553 #ifdeà
+CATCH_CONFIG_CPP11_TUPLE
+
+
+1554 
+	~<tu¶e
+>
+
+1557 #ifdeà
+CATCH_CONFIG_CPP11_IS_ENUM
+
+
+1558 
+	~<ty³_Œa™s
+>
+
+1561 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+1564 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1565 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+T
+ cÚ¡& 
+v®ue
+ );
+
+1569 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+¡d
+::¡ršg cÚ¡& 
+v®ue
+ );
+
+1570 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+¡d
+::
+w¡ršg
+ cÚ¡& 
+v®ue
+ );
+
+1571 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ * cÚ¡ 
+v®ue
+ );
+
+1572 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð* cÚ¡ 
+v®ue
+ );
+
+1573 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ 
+wch¬_t
+* cÚ¡ 
+v®ue
+ );
+
+1574 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+wch¬_t
+* cÚ¡ 
+v®ue
+ );
+
+1575 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ );
+
+1576 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ );
+
+1577 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ );
+
+1578 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ 
+v®ue
+ );
+
+1579 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ 
+v®ue
+ );
+
+1580 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+boÞ
+ 
+v®ue
+ );
+
+1581 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ );
+
+1582 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐsigÃd 
+v®ue
+ );
+
+1583 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ );
+
+1585 #ifdeà
+CATCH_CONFIG_CPP11_LONG_LONG
+
+
+1586 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ );
+
+1587 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ );
+
+1590 #ifdeà
+CATCH_CONFIG_CPP11_NULLPTR
+
+
+1591 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+¡d
+::
+nuÎ±r_t
+ );
+
+1594 #ifdeà
+__OBJC__
+
+
+1595 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+NSSŒšg
+ cÚ¡ * cÚ¡& 
+ns¡ršg
+ );
+
+1596 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+NSSŒšg
+ * 
+CATCH_ARC_STRONG
+ & 
+ns¡ršg
+ );
+
+1597 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+NSObjeù
+* cÚ¡& 
+nsObjeù
+ );
+
+1600 
+Çme¥aû
+ 
+	gD‘až
+ {
+
+1602 
cÚ¡ 
+¡d
+::
+¡ršg
+ 
+uÅrš�bËSŒšg
+;
+
+1604 #ià!
+defšed
+(
+CATCH_CONFIG_CPP11_STREAM_INSERTABLE_CHECK
+)
+
+1605 
+	sBÜgTy³
+ {
+
+1606 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+> 
+BÜgTy³
+Ð
+T
+ const& );
+
+1609 
+	sTrueTy³
+ { 
+	gsiz”
+[1]; };
+
+1610 
+	sF®£Ty³
+ { 
+	gsiz”
+[2]; };
+
+1612 
+	gTrueTy³
+& 
+‹¡SŒ—mabË
+Ð
+¡d
+::
+o¡»am
+& );
+
+1613 
+F®£Ty³
+ 
+‹¡SŒ—mabË
+( FalseType );
+
+1615 
+F®£Ty³
+ 
+	gÝ”©Ü
+<<Ð
+	g¡d
+::
+o¡»am
+ cÚ¡&, 
+BÜgTy³
+ const& );
+
+1617 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1618 
+	sIsSŒ—mIn£¹abË
+ {
+
+1619 
+	g¡d
+::
+o¡»am
+ &
+s
+;
+
+1620 
+T
+ cÚ¡&
+	gt
+;
+
+1621 ’um { 
+	gv®ue
+ = Ð
+‹¡SŒ—mabË
+(
+s
+ << 
+t
+èè=ðÐ
+TrueTy³
+ ) };
+
+1624 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1625 þas 
+	cIsSŒ—mIn£¹abË
+ {
+
+1626 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gSS
+,�y³Çm�
+	gTT
+>
+
+1627 autØ
+‹¡
+()
+
+1628 -> 
+deþty³
+Ð
+¡d
+::
+deþv®
+<
+SS
+&>(è<< std::deþv®<
+TT
+>(), std::
+Œue_ty³
+() );
+
+1630 
+	g‹m¶©e
+<
+	gty³Çme
+,�ypename>
+
+1631 autØ
+‹¡
+(...è-> 
+	g¡d
+::
+çl£_ty³
+;
+
+1633 
+	gpublic
+:
+
+1634 cÚ¡ 
+boÞ
+ 
+v®ue
+ = 
+deþty³
+(
+‹¡
+<
+¡d
+::
+o¡»am
+,cÚ¡ 
+T
+&>(0))::value;
+
+1638 #ià
+defšed
+(
+CATCH_CONFIG_CPP11_IS_ENUM
+)
+
+1639 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,
+
+1640 
+boÞ
+ 
+	gIsEnum
+ = 
+¡d
+::
+is_’um
+<
+T
+>::
+v®ue
+
+
+1642 
+	sEnumSŒšgMak”
+
+
+1644 
+¡d
+::
+¡ršg
+ 
+cÚv”t
+Ð
+T
+ cÚ¡& ) {  
+uÅrš�bËSŒšg
+; }
+
+1647 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1648 
+	gEnumSŒšgMak”
+<
+	gT
+,
+	gŒue
+>
+
+1650 
+	g¡d
+::
+¡ršg
+ 
+cÚv”t
+Ð
+T
+ cÚ¡& 
+v
+ )
+
+1652  ::
+C©ch
+::
+toSŒšg
+(
+
+1653 
+¡©ic_ÿ¡
+<
+ty³Çme
+ 
+¡d
+::
+und”lyšg_ty³
+<
+T
+>::
+ty³
+>(
+v
+)
+
+1658 
+	g‹m¶©e
+<
+boÞ
+ 
+	gC
+>
+
+1659 
+	sSŒšgMak”Ba£
+ {
+
+1660 #ià
+defšed
+(
+CATCH_CONFIG_CPP11_IS_ENUM
+)
+
+1661 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1662 
+	g¡d
+::
+¡ršg
+ 
+cÚv”t
+Ð
+T
+ cÚ¡& 
+v
+ )
+
+1664  
+EnumSŒšgMak”
+<
+T
+>::
+cÚv”t
+Ð
+v
+ );
+
+1667 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1668 
+	g¡d
+::
+¡ršg
+ 
+cÚv”t
+Ð
+T
+ cÚ¡& ) {  
+uÅrš�bËSŒšg
+; }
+
+1672 
+	g‹m¶©e
+<>
+
+1673 
+	gSŒšgMak”Ba£
+<
+	gŒue
+> {
+
+1674 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1675 
+	g¡d
+::
+¡ršg
+ 
+cÚv”t
+Ð
+T
+ cÚ¡& 
+_v®ue
+ ) {
+
+1676 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+1677 
+	goss
+ << 
+	g_v®ue
+;
+
+1678  
+	goss
+.
+¡r
+();
+
+1682 
+	g¡d
+::
+¡ršg
+ 
+¿wMemÜyToSŒšg
+ÐcÚ¡ *
+objeù
+, 
+¡d
+::
+size_t
+ 
+size
+ );
+
+1684 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1685 
+	g¡d
+::
+¡ršg
+ 
+¿wMemÜyToSŒšg
+ÐcÚ¡ 
+T
+& 
+objeù
+ ) {
+
+1686  
+¿wMemÜyToSŒšg
+Ð&
+objeù
+, (object) );
+
+1691 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1692 
+	gSŒšgMak”
+ :
+
+1693 
+D‘až
+::
+SŒšgMak”Ba£
+<D‘až::
+IsSŒ—mIn£¹abË
+<
+T
+>::
+v®ue
+> {};
+
+1695 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1696 
+	gSŒšgMak”
+<
+	gT
+*> {
+
+1697 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gU
+>
+
+1698 
+	g¡d
+::
+¡ršg
+ 
+cÚv”t
+Ð
+U
+* 
+p
+ ) {
+
+1699 ifÐ!
+p
+ )
+
+1702  
+	gD‘až
+::
+¿wMemÜyToSŒšg
+Ð
+p
+ );
+
+1706 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gR
+,�y³Çm�
+	gC
+>
+
+1707 
+	gSŒšgMak”
+<
+R
+ 
+	gC
+::*> {
+
+1708 
+¡d
+::
+¡ršg
+ 
+cÚv”t
+Ð
+R
+ 
+C
+::* 
+p
+ ) {
+
+1709 ifÐ!
+p
+ )
+
+1712  
+	gD‘až
+::
+¿wMemÜyToSŒšg
+Ð
+p
+ );
+
+1716 
+Çme¥aû
+ 
+	gD‘až
+ {
+
+1717 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gIÅutI‹¿tÜ
+>
+
+1718 
+	g¡d
+::
+¡ršg
+ 
+¿ngeToSŒšg
+Ð
+IÅutI‹¿tÜ
+ 
+fœ¡
+, IÅutI‹¿tÜ 
+Ï¡
+ );
+
+1728 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gAÎoÿtÜ
+>
+
+1729 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+¡d
+::
+veùÜ
+<
+T
+,
+AÎoÿtÜ
+> cÚ¡& 
+v
+ ) {
+
+1730  
+	gD‘až
+::
+¿ngeToSŒšg
+Ð
+v
+.
+begš
+(), v.
+’d
+() );
+
+1733 #ifdeà
+CATCH_CONFIG_CPP11_TUPLE
+
+
+1736 
+Çme¥aû
+ 
+	gTu¶eD‘až
+ {
+
+1737 
+	g‹m¶©e
+<
+
+1738 
+ty³Çme
+ 
+	gTu¶e
+,
+
+1739 
+	g¡d
+::
+size_t
+ 
+N
+ = 0,
+
+1740 
+	gboÞ
+ = (
+N
+ < 
+¡d
+::
+tu¶e_size
+<
+Tu¶e
+>::
+v®ue
+)
+
+1742 
+	sEËm’tPrš‹r
+ {
+
+1743 
+´št
+ÐcÚ¡ 
+Tu¶e
+& 
+tu¶e
+, 
+¡d
+::
+o¡»am
+& 
+os
+ )
+
+1745 
+os
+ << ( 
+N
+ ? ", " : " " )
+
+1746 << 
+C©ch
+::
+toSŒšg
+(
+¡d
+::
+g‘
+<
+N
+>(
+tu¶e
+));
+
+1747 
+	gEËm’tPrš‹r
+<
+	gTu¶e
+,
+	gN
++1>::
+´št
+(
+tu¶e
+,
+os
+);
+
+1751 
+	g‹m¶©e
+<
+
+1752 
+ty³Çme
+ 
+	gTu¶e
+,
+
+1753 
+	g¡d
+::
+size_t
+ 
+N
+
+
+1755 
+EËm’tPrš‹r
+<
+Tu¶e
+,
+	gN
+,
+	gçl£
+> {
+
+1756 
+´št
+ÐcÚ¡ 
+Tu¶e
+&, 
+¡d
+::
+o¡»am
+& ) {}
+
+1761 
+	g‹m¶©e
+<
+	gty³Çme
+ ...
+	gTy³s
+>
+
+1762 
+	gSŒšgMak”
+<
+	g¡d
+::
+tu¶e
+<
+Ty³s
+...>> {
+
+1764 
+¡d
+::
+¡ršg
+ 
+cÚv”t
+ÐcÚ¡ std::
+tu¶e
+<
+Ty³s
+...>&�uple )
+
+1766 
+¡d
+::
+o¡ršg¡»am
+ 
+os
+;
+
+1767 
+	gos
+ << '{';
+
+1768 
+	gTu¶eD‘až
+::
+EËm’tPrš‹r
+<
+¡d
+::
+tu¶e
+<
+Ty³s
+...>>::
+´št
+Ðtu¶e, 
+os
+ );
+
+1769 
+	gos
+ << " }";
+
+1770  
+	gos
+.
+¡r
+();
+
+1775 
+Çme¥aû
+ 
+	gD‘až
+ {
+
+1776 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1777 
+	g¡d
+::
+¡ršg
+ 
+makeSŒšg
+Ð
+T
+ cÚ¡& 
+v®ue
+ ) {
+
+1778  
+SŒšgMak”
+<
+T
+>::
+cÚv”t
+Ð
+v®ue
+ );
+
+1789 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1790 
+	g¡d
+::
+¡ršg
+ 
+	$toSŒšg
+Ð
+T
+ cÚ¡& 
+v®ue
+ ) {
+
+1791  
+SŒšgMak”
+<
+T
+>::
+	`cÚv”t
+Ð
+v®ue
+ );
+
+1792 
+	}
+}
+
+1794 
+Çme¥aû
+ 
+	gD‘až
+ {
+
+1795 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gIÅutI‹¿tÜ
+>
+
+1796 
+	g¡d
+::
+¡ršg
+ 
+¿ngeToSŒšg
+Ð
+IÅutI‹¿tÜ
+ 
+fœ¡
+, IÅutI‹¿tÜ 
+Ï¡
+ ) {
+
+1797 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+1798 
+	goss
+ << "{ ";
+
+1799 ifÐ
+	gfœ¡
+ !ð
+Ï¡
+ ) {
+
+1800 
+oss
+ << 
+C©ch
+::
+toSŒšg
+Ð*
+fœ¡
+ );
+
+1801  ++
+	gfœ¡
+ ; fœ¡ !ð
+Ï¡
+ ; ++first )
+
+1802 
+	goss
+ << ", " << 
+	gC©ch
+::
+toSŒšg
+Ð*
+fœ¡
+ );
+
+1804 
+	goss
+ << " }";
+
+1805  
+	goss
+.
+¡r
+();
+
+1811 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+1813 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gLhsT
+, 
+	gIÁ”Çl
+::
+O³¿tÜ
+ 
+Op
+,�y³Çm�
+	gRhsT
+>
+
+1814 
+þass
+ 
+	gBš¬yEx´essiÚ
+;
+
+1816 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+,�y³Çm�
+	gM©ch”T
+>
+
+1817 
+þass
+ 
+	gM©chEx´essiÚ
+;
+
+1821 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1822 þas 
+	cEx´essiÚLhs
+ : 
+public
+ 
+Decompo£dEx´essiÚ
+ {
+
+1823 
+public
+:
+
+1824 
+Ex´essiÚLhs
+Ð
+ResuÉBužd”
+& 
+rb
+, 
+T
+ 
+lhs
+ ) : 
+m_rb
+Ðrb ), 
+m_lhs
+Ðlh ), 
+m_Œuthy
+(
+çl£
+) {}
+
+1826 
+	gEx´essiÚLhs
+& 
+	gÝ”©Ü
+ = ( cÚ¡ 
+Ex´essiÚLhs
+& );
+
+1828 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gRhsT
+>
+
+1829 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsEqu®To
+, 
+RhsT
+ const&>
+
+1830 
+	gÝ”©Ü
+ =ðÐ
+RhsT
+ cÚ¡& 
+rhs
+ ) {
+
+1831  
+ÿ±u»Ex´essiÚ
+<
+IÁ”Çl
+::
+IsEqu®To
+>Ð
+rhs
+ );
+
+1834 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gRhsT
+>
+
+1835 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsNÙEqu®To
+, 
+RhsT
+ const&>
+
+1836 
+	gÝ”©Ü
+ !ðÐ
+RhsT
+ cÚ¡& 
+rhs
+ ) {
+
+1837  
+ÿ±u»Ex´essiÚ
+<
+IÁ”Çl
+::
+IsNÙEqu®To
+>Ð
+rhs
+ );
+
+1840 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gRhsT
+>
+
+1841 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsLessThª
+, 
+RhsT
+ const&>
+
+1842 
+	gÝ”©Ü
+ < ( 
+RhsT
+ cÚ¡& 
+	grhs
+ ) {
+
+1843  
+	gÿ±u»Ex´essiÚ
+<
+	gIÁ”Çl
+::
+IsLessThª
+>Ð
+rhs
+ );
+
+1846 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gRhsT
+>
+
+1847 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsG»©”Thª
+, 
+RhsT
+ const&>
+
+1848 
+	gÝ”©Ü
+ > ( 
+RhsT
+ cÚ¡& 
+	grhs
+ ) {
+
+1849  
+	gÿ±u»Ex´essiÚ
+<
+	gIÁ”Çl
+::
+IsG»©”Thª
+>Ð
+rhs
+ );
+
+1852 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gRhsT
+>
+
+1853 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsLessThªOrEqu®To
+, 
+RhsT
+ const&>
+
+1854 
+	gÝ”©Ü
+ <ðÐ
+RhsT
+ cÚ¡& 
+rhs
+ ) {
+
+1855  
+ÿ±u»Ex´essiÚ
+<
+IÁ”Çl
+::
+IsLessThªOrEqu®To
+>Ð
+rhs
+ );
+
+1858 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gRhsT
+>
+
+1859 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsG»©”ThªOrEqu®To
+, 
+RhsT
+ const&>
+
+1860 
+	gÝ”©Ü
+ >ðÐ
+RhsT
+ cÚ¡& 
+rhs
+ ) {
+
+1861  
+ÿ±u»Ex´essiÚ
+<
+IÁ”Çl
+::
+IsG»©”ThªOrEqu®To
+>Ð
+rhs
+ );
+
+1864 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsEqu®To
+, 
+	gboÞ
+> 
+	gÝ”©Ü
+ =ðÐ
+boÞ
+ 
+rhs
+ ) {
+
+1865  
+ÿ±u»Ex´essiÚ
+<
+IÁ”Çl
+::
+IsEqu®To
+>Ð
+rhs
+ );
+
+1868 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gIÁ”Çl
+::
+IsNÙEqu®To
+, 
+	gboÞ
+> 
+	gÝ”©Ü
+ !ðÐ
+boÞ
+ 
+rhs
+ ) {
+
+1869  
+ÿ±u»Ex´essiÚ
+<
+IÁ”Çl
+::
+IsNÙEqu®To
+>Ð
+rhs
+ );
+
+1872 
+’dEx´essiÚ
+() {
+
+1873 
+	gm_Œuthy
+ = 
+m_lhs
+ ? 
+Œue
+ : 
+çl£
+;
+
+1874 
+	gm_rb
+
+
+1875 .
+£tResuÉTy³
+Ð
+m_Œuthy
+ )
+
+1876 .
+’dEx´essiÚ
+Ð*
+this
+ );
+
+1879 
+vœtu®
+ 
+»cÚ¡ruùEx´essiÚ
+Ð
+¡d
+::
+¡ršg
+& 
+de¡
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1880 
+de¡
+ = 
+C©ch
+::
+toSŒšg
+Ð
+m_lhs
+ );
+
+1883 
+	g´iv©e
+:
+
+1884 
+‹m¶©e
+<
+IÁ”Çl
+::
+O³¿tÜ
+ 
+Op
+, 
+ty³Çme
+ 
+	gRhsT
+>
+
+1885 
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gOp
+, 
+	gRhsT
+&> 
+ÿ±u»Ex´essiÚ
+Ð
+RhsT
+& 
+rhs
+ ) const {
+
+1886  
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gOp
+, 
+	gRhsT
+&>Ð
+	gm_rb
+, 
+	gm_lhs
+, 
+	grhs
+ );
+
+1889 
+	g‹m¶©e
+<
+	gIÁ”Çl
+::
+O³¿tÜ
+ 
+Op
+>
+
+1890 
+Bš¬yEx´essiÚ
+<
+T
+, 
+	gOp
+, 
+	gboÞ
+> 
+ÿ±u»Ex´essiÚ
+Ð
+boÞ
+ 
+rhs
+ ) const {
+
+1891  
+	gBš¬yEx´essiÚ
+<
+	gT
+, 
+	gOp
+, 
+	gboÞ
+>Ð
+	gm_rb
+, 
+	gm_lhs
+, 
+	grhs
+ );
+
+1894 
+	g´iv©e
+:
+
+1895 
+ResuÉBužd”
+& 
+m_rb
+;
+
+1896 
+T
+ 
+	gm_lhs
+;
+
+1897 
+boÞ
+ 
+	gm_Œuthy
+;
+
+1900 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gLhsT
+, 
+	gIÁ”Çl
+::
+O³¿tÜ
+ 
+Op
+,�y³Çm�
+	gRhsT
+>
+
+1901 þas 
+	cBš¬yEx´essiÚ
+ : 
+public
+ 
+Decompo£dEx´essiÚ
+ {
+
+1902 
+public
+:
+
+1903 
+Bš¬yEx´essiÚ
+Ð
+ResuÉBužd”
+& 
+rb
+, 
+LhsT
+ 
+lhs
+, 
+RhsT
+ 
+rhs
+ )
+
+1904 : 
+m_rb
+Ð
+rb
+ ), 
+m_lhs
+Ð
+lhs
+ ), 
+m_rhs
+Ð
+rhs
+ ) {}
+
+1906 
+	gBš¬yEx´essiÚ
+& 
+	gÝ”©Ü
+ = ( 
+Bš¬yEx´essiÚ
+& );
+
+1908 
+’dEx´essiÚ
+() const {
+
+1909 
+	gm_rb
+
+
+1910 .
+£tResuÉTy³
+Ð
+IÁ”Çl
+::
+com·»
+<
+Op
+>Ð
+m_lhs
+, 
+m_rhs
+ ) )
+
+1911 .
+’dEx´essiÚ
+Ð*
+this
+ );
+
+1914 
+vœtu®
+ 
+boÞ
+ 
+isBš¬yEx´essiÚ
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+1915  
+	gŒue
+;
+
+1918 
+vœtu®
+ 
+»cÚ¡ruùEx´essiÚ
+Ð
+¡d
+::
+¡ršg
+& 
+de¡
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1919 
+¡d
+::
+¡ršg
+ 
+lhs
+ = 
+C©ch
+::
+toSŒšg
+Ð
+m_lhs
+ );
+
+1920 
+	g¡d
+::
+¡ršg
+ 
+rhs
+ = 
+C©ch
+::
+toSŒšg
+Ð
+m_rhs
+ );
+
+1921 
+	gd–im
+ = 
+lhs
+.
+size
+(è+ 
+rhs
+.size() < 40 &&
+
+1922 
+lhs
+.
+fšd
+('\n'è=ð
+¡d
+::
+¡ršg
+::
+Åos
+ &&
+
+1923 
+rhs
+.
+fšd
+('\n'è=ð
+¡d
+::
+¡ršg
+::
+Åos
+ ? ' ' : '\n';
+
+1924 
+	gde¡
+.
+»£rve
+Ð7 + 
+lhs
+.
+size
+(è+ 
+rhs
+.size() );
+
+1929 
+	gde¡
+ = 
+lhs
+;
+
+1930 
+	gde¡
+ +ð
+d–im
+;
+
+1931 
+	gde¡
+ +ð
+IÁ”Çl
+::
+O³¿tÜT¿™s
+<
+Op
+>::
+g‘Name
+();
+
+1932 
+	gde¡
+ +ð
+d–im
+;
+
+1933 
+	gde¡
+ +ð
+rhs
+;
+
+1936 
+	g´iv©e
+:
+
+1937 
+ResuÉBužd”
+& 
+m_rb
+;
+
+1938 
+LhsT
+ 
+	gm_lhs
+;
+
+1939 
+RhsT
+ 
+	gm_rhs
+;
+
+1942 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+,�y³Çm�
+	gM©ch”T
+>
+
+1943 þas 
+	cM©chEx´essiÚ
+ : 
+public
+ 
+Decompo£dEx´essiÚ
+ {
+
+1944 
+public
+:
+
+1945 
+M©chEx´essiÚ
+Ð
+ArgT
+ 
+¬g
+, 
+M©ch”T
+ 
+m©ch”
+, cÚ¡* 
+m©ch”SŒšg
+ )
+
+1946 : 
+m_¬g
+Ð
+¬g
+ ), 
+m_m©ch”
+Ð
+m©ch”
+ ), 
+m_m©ch”SŒšg
+Ð
+m©ch”SŒšg
+ ) {}
+
+1948 
+vœtu®
+ 
+boÞ
+ 
+isBš¬yEx´essiÚ
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+1949  
+	gŒue
+;
+
+1952 
+vœtu®
+ 
+»cÚ¡ruùEx´essiÚ
+Ð
+¡d
+::
+¡ršg
+& 
+de¡
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+1953 
+¡d
+::
+¡ršg
+ 
+m©ch”AsSŒšg
+ = 
+m_m©ch”
+.
+toSŒšg
+();
+
+1954 
+	gde¡
+ = 
+C©ch
+::
+toSŒšg
+Ð
+m_¬g
+ );
+
+1955 
+	gde¡
+ += ' ';
+
+1956 ifÐ
+	gm©ch”AsSŒšg
+ =ð
+D‘až
+::
+uÅrš�bËSŒšg
+ )
+
+1957 
+de¡
+ +ð
+m_m©ch”SŒšg
+;
+
+1959 
+	gde¡
+ +ð
+m©ch”AsSŒšg
+;
+
+1962 
+	g´iv©e
+:
+
+1963 
+ArgT
+ 
+m_¬g
+;
+
+1964 
+M©ch”T
+ 
+	gm_m©ch”
+;
+
+1965 cÚ¡* 
+	gm_m©ch”SŒšg
+;
+
+1971 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+1973 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+1974 
+	gEx´essiÚLhs
+<
+T
+ cÚ¡&> 
+	gResuÉBužd”
+::
+Ý”©Ü
+ <ðÐT cÚ¡& 
+Ý”ªd
+ ) {
+
+1975  
+Ex´essiÚLhs
+<
+T
+ cÚ¡&>Ð*
+this
+, 
+Ý”ªd
+ );
+
+1978 
+šlše
+ 
+	gEx´essiÚLhs
+<
+	gboÞ
+> 
+	gResuÉBužd”
+::
+Ý”©Ü
+ <ðÐ
+boÞ
+ 
+v®ue
+ ) {
+
+1979  
+Ex´essiÚLhs
+<
+boÞ
+>Ð*
+this
+, 
+v®ue
+ );
+
+1982 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gArgT
+,�y³Çm�
+	gM©ch”T
+>
+
+1983 
+	gResuÉBužd”
+::
+ÿ±u»M©ch
+Ð
+ArgT
+ cÚ¡& 
+¬g
+, 
+M©ch”T
+ cÚ¡& 
+m©ch”
+,
+
+1984 cÚ¡* 
+m©ch”SŒšg
+ ) {
+
+1985 
+	gM©chEx´essiÚ
+<
+ArgT
+ cÚ¡&, 
+M©ch”T
+ cÚ¡&> 
+ex´
+Ð
+¬g
+, 
+m©ch”
+, 
+m©ch”SŒšg
+ );
+
+1986 
+£tResuÉTy³
+Ð
+m©ch”
+.
+m©ch
+Ð
+¬g
+ ) );
+
+1987 
+’dEx´essiÚ
+Ð
+ex´
+ );
+
+1993 
+	#TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
+
+
+	)
+
+1995 
+	~<¡ršg
+>
+
+1997 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+1999 
+	sMes§geInfo
+ {
+
+2000 
+Mes§geInfo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_maüoName
+,
+
+2001 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+,
+
+2002 
+ResuÉWas
+::
+OfTy³
+ 
+_ty³
+ );
+
+2004 
+	g¡d
+::
+¡ršg
+ 
+maüoName
+;
+
+2005 
+SourûLšeInfo
+ 
+	glšeInfo
+;
+
+2006 
+	gResuÉWas
+::
+OfTy³
+ 
+ty³
+;
+
+2007 
+	g¡d
+::
+¡ršg
+ 
+mes§ge
+;
+
+2008 
+	g£qu’û
+;
+
+2010 
+boÞ
+ 
+	gÝ”©Ü
+ =ðÐ
+Mes§geInfo
+ cÚ¡& 
+Ùh”
+ ) const {
+
+2011  
+£qu’û
+ =ð
+Ùh”
+.sequence;
+
+2013 
+boÞ
+ 
+	gÝ”©Ü
+ < ( 
+Mes§geInfo
+ cÚ¡& 
+	gÙh”
+ ) const {
+
+2014  
+	g£qu’û
+ < 
+	gÙh”
+.sequence;
+
+2016 
+	g´iv©e
+:
+
+2017 
+glob®CouÁ
+;
+
+2020 
+	sMes§geBužd”
+ {
+
+2021 
+Mes§geBužd”
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+maüoName
+,
+
+2022 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+,
+
+2023 
+ResuÉWas
+::
+OfTy³
+ 
+ty³
+ )
+
+2024 : 
+m_šfo
+Ð
+maüoName
+, 
+lšeInfo
+, 
+ty³
+ )
+
+2027 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2028 
+	gMes§geBužd”
+& 
+	gÝ”©Ü
+ << ( 
+T
+ cÚ¡& 
+	gv®ue
+ ) {
+
+2029 
+	gm_¡»am
+ << 
+	gv®ue
+;
+
+2030  *
+	gthis
+;
+
+2033 
+Mes§geInfo
+ 
+	gm_šfo
+;
+
+2034 
+	g¡d
+::
+o¡ršg¡»am
+ 
+m_¡»am
+;
+
+2037 þas 
+	cScÝedMes§ge
+ {
+
+2038 
+	gpublic
+:
+
+2039 
+ScÝedMes§ge
+Ð
+Mes§geBužd”
+ cÚ¡& 
+bužd”
+ );
+
+2040 
+ScÝedMes§ge
+ÐScÝedMes§g�cÚ¡& 
+Ùh”
+ );
+
+2041 ~
+ScÝedMes§ge
+();
+
+2043 
+Mes§geInfo
+ 
+	gm_šfo
+;
+
+2049 
+	#TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
+
+
+	)
+
+2051 
+	~<¡ršg
+>
+
+2053 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2055 
+þass
+ 
+	gTe¡Ca£
+;
+
+2056 
+þass
+ 
+	gAs£¹iÚResuÉ
+;
+
+2057 
+	gAs£¹iÚInfo
+;
+
+2058 
+	gSeùiÚInfo
+;
+
+2059 
+	gSeùiÚEndInfo
+;
+
+2060 
+	gMes§geInfo
+;
+
+2061 
+þass
+ 
+	gScÝedMes§geBužd”
+;
+
+2062 
+	gCouÁs
+;
+
+2064 
+	sIResuÉC­tu»
+ {
+
+2066 
+	gvœtu®
+ ~
+IResuÉC­tu»
+();
+
+2068 
+vœtu®
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚResuÉ
+ cÚ¡& 
+»suÉ
+ ) = 0;
+
+2069 
+vœtu®
+ 
+boÞ
+ 
+£ùiÚS�¹ed
+Ð
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+,
+
+2070 
+CouÁs
+& 
+as£¹iÚs
+ ) = 0;
+
+2071 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚEndInfo
+ cÚ¡& 
+’dInfo
+ ) = 0;
+
+2072 
+vœtu®
+ 
+£ùiÚEndedE¬ly
+Ð
+SeùiÚEndInfo
+ cÚ¡& 
+’dInfo
+ ) = 0;
+
+2073 
+vœtu®
+ 
+pushScÝedMes§ge
+Ð
+Mes§geInfo
+ cÚ¡& 
+mes§ge
+ ) = 0;
+
+2074 
+vœtu®
+ 
+pÝScÝedMes§ge
+Ð
+Mes§geInfo
+ cÚ¡& 
+mes§ge
+ ) = 0;
+
+2076 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘Cu¼’tTe¡Name
+() const = 0;
+
+2077 
+vœtu®
+ cÚ¡ 
+As£¹iÚResuÉ
+* 
+g‘La¡ResuÉ
+() const = 0;
+
+2079 
+vœtu®
+ 
+exû±iÚE¬lyR•Ü‹d
+() = 0;
+
+2081 
+vœtu®
+ 
+hªdËF©®E¼ÜCÚd™iÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+mes§ge
+ ) = 0;
+
+2083 
+vœtu®
+ 
+boÞ
+ 
+Ï¡As£¹iÚPas£d
+() = 0;
+
+2084 
+vœtu®
+ 
+as£¹iÚPas£d
+() = 0;
+
+2085 
+vœtu®
+ 
+as£¹iÚRun
+() = 0;
+
+2088 
+	gIResuÉC­tu»
+& 
+g‘ResuÉC­tu»
+();
+
+2092 
+	#TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
+
+
+	)
+
+2095 
+	#TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
+
+
+	)
+
+2097 #ià
+defšed
+(
+__MAC_OS_X_VERSION_MIN_REQUIRED
+)
+
+2098 
+	#CATCH_PLATFORM_MAC
+
+
+	)
+
+2099 #–ià 
+defšed
+(
+__IPHONE_OS_VERSION_MIN_REQUIRED
+)
+
+2100 
+	#CATCH_PLATFORM_IPHONE
+
+
+	)
+
+2101 #–ià
+defšed
+(
+lšux
+è|| defšed(
+__lšux
+è|| defšed(
+__lšux__
+)
+
+2102 
+	#CATCH_PLATFORM_LINUX
+
+
+	)
+
+2103 #–ià
+defšed
+(
+WIN32
+è|| defšed(
+__WIN32__
+è|| defšed(
+_WIN32
+è|| defšed(
+_MSC_VER
+)
+
+2104 
+	#CATCH_PLATFORM_WINDOWS
+
+
+	)
+
+2105 #ià!
+defšed
+(
+NOMINMAX
+è&& !defšed(
+CATCH_CONFIG_NO_NOMINMAX
+)
+
+2106 
+	#CATCH_DEFINES_NOMINMAX
+
+
+	)
+
+2108 #ià!
+defšed
+(
+WIN32_LEAN_AND_MEAN
+è&& !defšed(
+CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN
+)
+
+2109 
+	#CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+
+
+	)
+
+2113 
+	~<¡ršg
+>
+
+2115 
+Çme¥aû
+ 
+	gC©ch
+{
+
+2117 
+boÞ
+ 
+isDebugg”Aùive
+();
+
+2118 
+wr™eToDebugCÚsÞe
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹xt
+ );
+
+2121 #ifdeà
+CATCH_PLATFORM_MAC
+
+
+2125 #ià
+defšed
+(
+__µc64__
+è|| defšed(
+__µc__
+)
+
+2126 
+	#CATCH_TRAP
+() \
+
+2127 
+	`__asm__
+("li„0, 20\nsc\nnop\nli„0, 37\nli„4, 2\nsc\nnop\n" \
+
+2128 : : : "memÜy","r0","r3","r4" )
+
+	)
+
+2130 
+	#CATCH_TRAP
+(è
+	`__asm__
+("šˆ$3\n" : : )
+
+	)
+
+2133 #–ià
+defšed
+(
+CATCH_PLATFORM_LINUX
+)
+
+2137 #ià
+defšed
+(
+__GNUC__
+è&& (defšed(
+__i386
+è|| defšed(
+__x86_64
+))
+
+2138 
+	#CATCH_TRAP
+(è
+asm
+ vÞ©ž�("šˆ$3"è
+
+	)
+
+2140 
+	~<sigÇl.h
+>
+
+2142 
+	#CATCH_TRAP
+(è
+	`¿i£
+(
+SIGTRAP
+)
+
+	)
+
+2144 #–ià
+defšed
+(
+_MSC_VER
+)
+
+2145 
+	#CATCH_TRAP
+(è
+	`__debugb»ak
+()
+
+	)
+
+2146 #–ià
+defšed
+(
+__MINGW32__
+)
+
+2147 
"C" 
+	$__deþ¥ec
+(
+dÎimpÜt
+è
+__¡dÿÎ
+ 
+	`DebugB»ak
+();
+
+2148 
+	#CATCH_TRAP
+(è
+	`DebugB»ak
+()
+
+	)
+
+2151 #ifdeà
+CATCH_TRAP
+
+
+2152 
+	#CATCH_BREAK_INTO_DEBUGGER
+(èifÐ
+C©ch
+::
+	`isDebugg”Aùive
+(èè{ 
+	`CATCH_TRAP
+(); 
+	}
+
+	)
+}
+
+2154 
+	#CATCH_BREAK_INTO_DEBUGGER
+(è
+C©ch
+::
+	`®waysTrue
+();
+
+	)
+
+2158 
+	#TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
+
+
+	)
+
+2160 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2161 
+þass
+ 
+	gTe¡Ca£
+;
+
+2163 
+	sIRuÂ”
+ {
+
+2164 
+	gvœtu®
+ ~
+IRuÂ”
+();
+
+2165 
+vœtu®
+ 
+boÞ
+ 
+abÜtšg
+() const = 0;
+
+2169 #ià
+defšed
+(
+CATCH_CONFIG_FAST_COMPILE
+)
+
+2174 
+	#INTERNAL_CATCH_REACT
+Ð
+»suÉBužd”
+ ) \
+
+2175 
+»suÉBužd”
+.
+	`»aù
+();
+
+	)
+
+2182 
+	#INTERNAL_CATCH_TEST_NO_TRY
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ) \
+
+2184 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, #ex´, 
+»suÉDi¥os™iÚ
+ ); \
+
+2185 
+__ÿtchResuÉ
+.
+	`£tExû±iÚGu¬d
+(); \
+
+2186 
+CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+ \
+
+2187 Ð
+__ÿtchResuÉ
+ <ð
+ex´
+ ).
+	`’dEx´essiÚ
+(); \
+
+2188 
+CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS
+ \
+
+2189 
+__ÿtchResuÉ
+.
+	`un£tExû±iÚGu¬d
+(); \
+
+2190 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2191 }  
+C©ch
+::
+	`isTrue
+Ð
+çl£
+ && 
+¡©ic_ÿ¡
+<
+boÞ
+>Ð!!(
+ex´
+) ) ) )
+
+2193 
+
+	)
+
+2194 
+	#INTERNAL_CHECK_THAT_NO_TRY
+Ð
+maüoName
+, 
+m©ch”
+, 
+»suÉDi¥os™iÚ
+, 
+¬g
+ ) \
+
+2196 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, #¬g ", " #m©ch”, 
+»suÉDi¥os™iÚ
+ ); \
+
+2197 
+__ÿtchResuÉ
+.
+	`£tExû±iÚGu¬d
+(); \
+
+2198 
+__ÿtchResuÉ
+.
+	`ÿ±u»M©ch
+Ð
+¬g
+, 
+m©ch”
+, #matcher ); \
+
+2199 
+__ÿtchResuÉ
+.
+	`un£tExû±iÚGu¬d
+(); \
+
+2200 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2201 }  
+C©ch
+::
+	`®waysF®£
+(è)
+
+	)
+
+2209 
+	#INTERNAL_CATCH_REACT
+Ð
+»suÉBužd”
+ ) \
+
+2210 ifÐ
+»suÉBužd”
+.
+	`shouldDebugB»ak
+(èè
+	`CATCH_BREAK_INTO_DEBUGGER
+(); \
+
+2211 
+»suÉBužd”
+.
+	`»aù
+();
+
+	)
+
+2215 
+	#INTERNAL_CATCH_TEST
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ) \
+
+2217 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, #ex´, 
+»suÉDi¥os™iÚ
+ ); \
+
+2218 
+Œy
+ { \
+
+2219 
+CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+ \
+
+2220 Ð
+__ÿtchResuÉ
+ <ð
+ex´
+ ).
+	`’dEx´essiÚ
+(); \
+
+2221 
+CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS
+ \
+
+2223 
+	`ÿtch
+( ... ) { \
+
+2224 
+__ÿtchResuÉ
+.
+	`u£AùiveExû±iÚ
+Ð
+»suÉDi¥os™iÚ
+ ); \
+
+2226 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2227 }  
+C©ch
+::
+	`isTrue
+Ð
+çl£
+ && 
+¡©ic_ÿ¡
+<
+boÞ
+>Ð!!(
+ex´
+) ) ) )
+
+2229 
+
+	)
+
+2231 
+	#INTERNAL_CATCH_IF
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ) \
+
+2232 
+	`INTERNAL_CATCH_TEST
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ); \
+
+2233 ifÐ
+C©ch
+::
+	`g‘ResuÉC­tu»
+().
+	`Ï¡As£¹iÚPas£d
+(è)
+
+	)
+
+2236 
+	#INTERNAL_CATCH_ELSE
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ) \
+
+2237 
+	`INTERNAL_CATCH_TEST
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ); \
+
+2238 ifÐ!
+C©ch
+::
+	`g‘ResuÉC­tu»
+().
+	`Ï¡As£¹iÚPas£d
+(è)
+
+	)
+
+2241 
+	#INTERNAL_CATCH_NO_THROW
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ) \
+
+2243 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, #ex´, 
+»suÉDi¥os™iÚ
+ ); \
+
+2244 
+Œy
+ { \
+
+2245 
+¡©ic_ÿ¡
+<>(
+ex´
+); \
+
+2246 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+C©ch
+::
+ResuÉWas
+::
+Ok
+ ); \
+
+2248 
+	`ÿtch
+( ... ) { \
+
+2249 
+__ÿtchResuÉ
+.
+	`u£AùiveExû±iÚ
+Ð
+»suÉDi¥os™iÚ
+ ); \
+
+2251 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2252 }  
+C©ch
+::
+	`®waysF®£
+(è)
+
+	)
+
+2255 
+	#INTERNAL_CATCH_THROWS
+Ð
+maüoName
+, 
+»suÉDi¥os™iÚ
+, 
+m©ch”
+, 
+ex´
+ ) \
+
+2257 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, #ex´, 
+»suÉDi¥os™iÚ
+, #matcher ); \
+
+2258 ifÐ
+__ÿtchResuÉ
+.
+	`®lowThrows
+() ) \
+
+2259 
+Œy
+ { \
+
+2260 
+¡©ic_ÿ¡
+<>(
+ex´
+); \
+
+2261 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+C©ch
+::
+ResuÉWas
+::
+DidÁThrowExû±iÚ
+ ); \
+
+2263 
+	`ÿtch
+( ... ) { \
+
+2264 
+__ÿtchResuÉ
+.
+	`ÿ±u»Ex³ùedExû±iÚ
+Ð
+m©ch”
+ ); \
+
+2267 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+C©ch
+::
+ResuÉWas
+::
+Ok
+ ); \
+
+2268 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2269 }  
+C©ch
+::
+	`®waysF®£
+(è)
+
+	)
+
+2272 
+	#INTERNAL_CATCH_THROWS_AS
+Ð
+maüoName
+, 
+exû±iÚTy³
+, 
+»suÉDi¥os™iÚ
+, 
+ex´
+ ) \
+
+2274 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, #ex´ ", " #exû±iÚTy³, 
+»suÉDi¥os™iÚ
+ ); \
+
+2275 ifÐ
+__ÿtchResuÉ
+.
+	`®lowThrows
+() ) \
+
+2276 
+Œy
+ { \
+
+2277 
+¡©ic_ÿ¡
+<>(
+ex´
+); \
+
+2278 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+C©ch
+::
+ResuÉWas
+::
+DidÁThrowExû±iÚ
+ ); \
+
+2280 
+	`ÿtch
+Ð
+exû±iÚTy³
+ ) { \
+
+2281 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+C©ch
+::
+ResuÉWas
+::
+Ok
+ ); \
+
+2283 
+	`ÿtch
+( ... ) { \
+
+2284 
+__ÿtchResuÉ
+.
+	`u£AùiveExû±iÚ
+Ð
+»suÉDi¥os™iÚ
+ ); \
+
+2287 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+C©ch
+::
+ResuÉWas
+::
+Ok
+ ); \
+
+2288 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2289 }  
+C©ch
+::
+	`®waysF®£
+(è)
+
+	)
+
+2292 #ifdeà
+CATCH_CONFIG_VARIADIC_MACROS
+
+
+2293 
+	#INTERNAL_CATCH_MSG
+Ð
+maüoName
+, 
+mes§geTy³
+, 
+»suÉDi¥os™iÚ
+, ... ) \
+
+2295 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, "", 
+»suÉDi¥os™iÚ
+ ); \
+
+2296 
+__ÿtchResuÉ
+ << 
+__VA_ARGS__
+ + ::
+C©ch
+::
+	`SŒ—mEndStÝ
+(); \
+
+2297 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+mes§geTy³
+ ); \
+
+2298 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2299 }  
+C©ch
+::
+	`®waysF®£
+(è)
+
+	)
+
+2301 
+	#INTERNAL_CATCH_MSG
+Ð
+maüoName
+, 
+mes§geTy³
+, 
+»suÉDi¥os™iÚ
+, 
+log
+ ) \
+
+2303 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, "", 
+»suÉDi¥os™iÚ
+ ); \
+
+2304 
+__ÿtchResuÉ
+ << 
+log
+ + ::
+C©ch
+::
+	`SŒ—mEndStÝ
+(); \
+
+2305 
+__ÿtchResuÉ
+.
+	`ÿ±u»ResuÉ
+Ð
+mes§geTy³
+ ); \
+
+2306 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2307 }  
+C©ch
+::
+	`®waysF®£
+(è)
+
+	)
+
+2311 
+	#INTERNAL_CATCH_INFO
+Ð
+maüoName
+, 
+log
+ ) \
+
+2312 
+C©ch
+::
+ScÝedMes§ge
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+scÝedMes§ge
+ ) = C©ch::
+	`Mes§geBužd”
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, C©ch::
+ResuÉWas
+::
+Info
+ ) << 
+log
+;
+
+	)
+
+2315 
+	#INTERNAL_CHECK_THAT
+Ð
+maüoName
+, 
+m©ch”
+, 
+»suÉDi¥os™iÚ
+, 
+¬g
+ ) \
+
+2317 
+C©ch
+::
+ResuÉBužd”
+ 
+	`__ÿtchResuÉ
+Ð
+maüoName
+, 
+CATCH_INTERNAL_LINEINFO
+, #¬g ", " #m©ch”, 
+»suÉDi¥os™iÚ
+ ); \
+
+2318 
+Œy
+ { \
+
+2319 
+__ÿtchResuÉ
+.
+	`ÿ±u»M©ch
+Ð
+¬g
+, 
+m©ch”
+, #matcher ); \
+
+2320 } 
+	`ÿtch
+( ... ) { \
+
+2321 
+__ÿtchResuÉ
+.
+	`u£AùiveExû±iÚ
+Ð
+»suÉDi¥os™iÚ
+ | 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+ ); \
+
+2323 
+	`INTERNAL_CATCH_REACT
+Ð
+__ÿtchResuÉ
+ ) \
+
+2324 }  
+C©ch
+::
+	`®waysF®£
+(è)
+
+	)
+
+2327 
+	#TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
+
+
+	)
+
+2330 
+	#TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
+
+
+	)
+
+2333 
+	#TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
+
+
+	)
+
+2335 
+	~<c¡ddef
+>
+
+2337 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2339 
+	sCouÁs
+ {
+
+2340 
+CouÁs
+(è: 
+·s£d
+Ð0 ), 
+çžed
+Ð0 ), 
+çžedButOk
+( 0 ) {}
+
+2342 
+CouÁs
+ 
+	gÝ”©Ü
+ - ( CouÁ cÚ¡& 
+	gÙh”
+ ) const {
+
+2343 
+CouÁs
+ 
+	gdiff
+;
+
+2344 
+	gdiff
+.
+	g·s£d
+ = 
+·s£d
+ - 
+Ùh”
+.passed;
+
+2345 
+	gdiff
+.
+	gçžed
+ = 
+çžed
+ - 
+Ùh”
+.failed;
+
+2346 
+	gdiff
+.
+	gçžedButOk
+ = 
+çžedButOk
+ - 
+Ùh”
+.failedButOk;
+
+2347  
+	gdiff
+;
+
+2349 
+	gCouÁs
+& 
+	gÝ”©Ü
+ +ðÐ
+CouÁs
+ cÚ¡& 
+Ùh”
+ ) {
+
+2350 
+·s£d
+ +ð
+Ùh”
+.passed;
+
+2351 
+	gçžed
+ +ð
+Ùh”
+.
+çžed
+;
+
+2352 
+	gçžedButOk
+ +ð
+Ùh”
+.
+çžedButOk
+;
+
+2353  *
+	gthis
+;
+
+2356 
+	g¡d
+::
+size_t
+ 
+tÙ®
+() const {
+
+2357  
+·s£d
+ + 
+çžed
+ + 
+çžedButOk
+;
+
+2359 
+boÞ
+ 
+®lPas£d
+() const {
+
+2360  
+	gçžed
+ =ð0 && 
+çžedButOk
+ == 0;
+
+2362 
+boÞ
+ 
+®lOk
+() const {
+
+2363  
+	gçžed
+ == 0;
+
+2366 
+	g¡d
+::
+size_t
+ 
+·s£d
+;
+
+2367 
+	g¡d
+::
+size_t
+ 
+çžed
+;
+
+2368 
+	g¡d
+::
+size_t
+ 
+çžedButOk
+;
+
+2371 
+	sTÙ®s
+ {
+
+2373 
+TÙ®s
+ 
+	gÝ”©Ü
+ - ( TÙ® cÚ¡& 
+	gÙh”
+ ) const {
+
+2374 
+TÙ®s
+ 
+	gdiff
+;
+
+2375 
+	gdiff
+.
+	gas£¹iÚs
+ = 
+as£¹iÚs
+ - 
+Ùh”
+.assertions;
+
+2376 
+	gdiff
+.
+	g‹¡Ca£s
+ = 
+‹¡Ca£s
+ - 
+Ùh”
+.testCases;
+
+2377  
+	gdiff
+;
+
+2380 
+TÙ®s
+ 
+d–�
+ÐTÙ® cÚ¡& 
+´evTÙ®s
+ ) const {
+
+2381 
+TÙ®s
+ 
+	gdiff
+ = *
+this
+ - 
+´evTÙ®s
+;
+
+2382 ifÐ
+	gdiff
+.
+	gas£¹iÚs
+.
+	gçžed
+ > 0 )
+
+2383 ++
+	gdiff
+.
+	g‹¡Ca£s
+.
+	gçžed
+;
+
+2384 ifÐ
+	gdiff
+.
+	gas£¹iÚs
+.
+	gçžedButOk
+ > 0 )
+
+2385 ++
+	gdiff
+.
+	g‹¡Ca£s
+.
+	gçžedButOk
+;
+
+2387 ++
+	gdiff
+.
+	g‹¡Ca£s
+.
+	g·s£d
+;
+
+2388  
+	gdiff
+;
+
+2391 
+	gTÙ®s
+& 
+	gÝ”©Ü
+ +ðÐ
+TÙ®s
+ cÚ¡& 
+Ùh”
+ ) {
+
+2392 
+as£¹iÚs
+ +ð
+Ùh”
+.assertions;
+
+2393 
+	g‹¡Ca£s
+ +ð
+Ùh”
+.
+‹¡Ca£s
+;
+
+2394  *
+	gthis
+;
+
+2397 
+CouÁs
+ 
+	gas£¹iÚs
+;
+
+2398 
+CouÁs
+ 
+	g‹¡Ca£s
+;
+
+2402 
+	~<¡ršg
+>
+
+2404 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2406 
+	sSeùiÚInfo
+ {
+
+2407 
+	gSeùiÚInfo
+
+
+2408 Ð
+SourûLšeInfo
+ cÚ¡& 
+	g_lšeInfo
+,
+
+2409 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+,
+
+2410 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+_desü�tiÚ
+ = 
+¡d
+::string() );
+
+2412 
+	g¡d
+::
+¡ršg
+ 
+Çme
+;
+
+2413 
+	g¡d
+::
+¡ršg
+ 
+desü�tiÚ
+;
+
+2414 
+SourûLšeInfo
+ 
+	glšeInfo
+;
+
+2417 
+	sSeùiÚEndInfo
+ {
+
+2418 
+SeùiÚEndInfo
+Ð
+SeùiÚInfo
+ cÚ¡& 
+_£ùiÚInfo
+, 
+CouÁs
+ cÚ¡& 
+_´evAs£¹iÚs
+, 
+_du¿tiÚInSecÚds
+ )
+
+2419 : 
+£ùiÚInfo
+Ð
+_£ùiÚInfo
+ ), 
+´evAs£¹iÚs
+Ð
+_´evAs£¹iÚs
+ ), 
+du¿tiÚInSecÚds
+Ð
+_du¿tiÚInSecÚds
+ )
+
+2422 
+SeùiÚInfo
+ 
+	g£ùiÚInfo
+;
+
+2423 
+CouÁs
+ 
+	g´evAs£¹iÚs
+;
+
+2424 
+	gdu¿tiÚInSecÚds
+;
+
+2430 
+	#TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
+
+
+	)
+
+2432 #ifdeà
+_MSC_VER
+
+
+2434 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2435 
+	tUIÁ64
+;
+
+2438 
+	~<¡dšt.h
+>
+
+2439 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2440 
+ušt64_t
+ 
+	tUIÁ64
+;
+
+2444 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2445 þas 
+	cTim”
+ {
+
+2446 
+	gpublic
+:
+
+2447 
+Tim”
+(è: 
+m_ticks
+( 0 ) {}
+
+2448 
+¡¬t
+();
+
+2449 
+g‘EÏp£dMiüo£cÚds
+() const;
+
+2450 
+g‘EÏp£dMžli£cÚds
+() const;
+
+2451 
+g‘EÏp£dSecÚds
+() const;
+
+2453 
+	g´iv©e
+:
+
+2454 
+UIÁ64
+ 
+m_ticks
+;
+
+2459 
+	~<¡ršg
+>
+
+2461 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2463 þas 
+	cSeùiÚ
+ : 
+NÚCÝyabË
+ {
+
+2464 
+public
+:
+
+2465 
+SeùiÚ
+Ð
+SeùiÚInfo
+ cÚ¡& 
+šfo
+ );
+
+2466 ~
+SeùiÚ
+();
+
+2469 
+Ý”©Ü
+ 
+boÞ
+() const;
+
+2471 
+	g´iv©e
+:
+
+2472 
+SeùiÚInfo
+ 
+m_šfo
+;
+
+2474 
+	g¡d
+::
+¡ršg
+ 
+m_Çme
+;
+
+2475 
+CouÁs
+ 
+	gm_as£¹iÚs
+;
+
+2476 
+boÞ
+ 
+	gm_£ùiÚInþuded
+;
+
+2477 
+Tim”
+ 
+	gm_tim”
+;
+
+2482 #ifdeà
+CATCH_CONFIG_VARIADIC_MACROS
+
+
+2483 
+	#INTERNAL_CATCH_SECTION
+( ... ) \
+
+2484 ifÐ
+C©ch
+::
+SeùiÚ
+ cÚ¡& 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+ÿtch_š‹º®_SeùiÚ
+ ) = C©ch::
+	`SeùiÚInfo
+Ð
+CATCH_INTERNAL_LINEINFO
+, 
+__VA_ARGS__
+ ) )
+
+	)
+
+2486 
+	#INTERNAL_CATCH_SECTION
+Ð
+Çme
+, 
+desc
+ ) \
+
+2487 ifÐ
+C©ch
+::
+SeùiÚ
+ cÚ¡& 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+ÿtch_š‹º®_SeùiÚ
+ ) = C©ch::
+	`SeùiÚInfo
+Ð
+CATCH_INTERNAL_LINEINFO
+, 
+Çme
+, 
+desc
+ ) )
+
+	)
+
+2491 
+	#TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
+
+
+	)
+
+2493 
+	~<veùÜ
+>
+
+2494 
+	~<¡ršg
+>
+
+2495 
+	~<¡dlib.h
+>
+
+2497 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2499 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2500 
+	sIG’”©Ü
+ {
+
+2501 
+	gvœtu®
+ ~
+IG’”©Ü
+() {}
+
+2502 
+vœtu®
+ 
+T
+ 
+g‘V®ue
+Ð
+¡d
+::
+size_t
+ 
+šdex
+ ) const = 0;
+
+2503 
+vœtu®
+ 
+	g¡d
+::
+size_t
+ 
+size
+ () const = 0;
+
+2506 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2507 
+þass
+ 
+	gB‘w“nG’”©Ü
+ : 
+public
+ 
+IG’”©Ü
+<
+T
+> {
+
+2508 
+public
+:
+
+2509 
+B‘w“nG’”©Ü
+Ð
+T
+ 
+äom
+, T 
+to
+ ) : 
+m_äom
+Ðäom ), 
+m_to
+(�o ){}
+
+2511 
+vœtu®
+ 
+T
+ 
+g‘V®ue
+Ð
+¡d
+::
+size_t
+ 
+šdex
+ ) const {
+
+2512  
+m_äom
++
+¡©ic_ÿ¡
+<>Ð
+šdex
+ );
+
+2515 
+vœtu®
+ 
+	g¡d
+::
+size_t
+ 
+size
+() const {
+
+2516  
+¡©ic_ÿ¡
+<
+¡d
+::
+size_t
+>Ð1+
+m_to
+-
+m_äom
+ );
+
+2519 
+	g´iv©e
+:
+
+2521 
+T
+ 
+m_äom
+;
+
+2522 
+T
+ 
+	gm_to
+;
+
+2525 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2526 
+þass
+ 
+	gV®uesG’”©Ü
+ : 
+public
+ 
+IG’”©Ü
+<
+T
+> {
+
+2527 
+public
+:
+
+2528 
+V®uesG’”©Ü
+(){}
+
+2530 
+add
+Ð
+T
+ 
+v®ue
+ ) {
+
+2531 
+m_v®ues
+.
+push_back
+Ð
+v®ue
+ );
+
+2534 
+vœtu®
+ 
+T
+ 
+g‘V®ue
+Ð
+¡d
+::
+size_t
+ 
+šdex
+ ) const {
+
+2535  
+m_v®ues
+[
+šdex
+];
+
+2538 
+vœtu®
+ 
+	g¡d
+::
+size_t
+ 
+size
+() const {
+
+2539  
+m_v®ues
+.
+size
+();
+
+2542 
+	g´iv©e
+:
+
+2543 
+¡d
+::
+veùÜ
+<
+T
+> 
+m_v®ues
+;
+
+2546 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2547 þas 
+	cCompos™eG’”©Ü
+ {
+
+2548 
+	gpublic
+:
+
+2549 
+Compos™eG’”©Ü
+(è: 
+m_tÙ®Size
+( 0 ) {}
+
+2552 
+Compos™eG’”©Ü
+ÐCompos™eG’”©Ü& 
+Ùh”
+ )
+
+2553 : 
+m_fžeInfo
+Ð
+Ùh”
+.m_fileInfo ),
+
+2554 
+m_tÙ®Size
+( 0 )
+
+2556 
+move
+Ð
+Ùh”
+ );
+
+2559 
+	gCompos™eG’”©Ü
+& 
+£tFžeInfo
+ÐcÚ¡ * 
+fžeInfo
+ ) {
+
+2560 
+	gm_fžeInfo
+ = 
+fžeInfo
+;
+
+2561  *
+	gthis
+;
+
+2564 ~
+Compos™eG’”©Ü
+() {
+
+2565 
+d–‘eAÎ
+Ð
+m_compo£d
+ );
+
+2568 
+Ý”©Ü
+ 
+T
+ () const {
+
+2569 
+size_t
+ 
+	gov”®lIndex
+ = 
+g‘Cu¼’tCÚ‹xt
+().
+g‘G’”©ÜIndex
+Ð
+m_fžeInfo
+, 
+m_tÙ®Size
+ );
+
+2571 
+ty³Çme
+ 
+	g¡d
+::
+veùÜ
+<cÚ¡ 
+IG’”©Ü
+<
+T
+>*>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_compo£d
+.
+begš
+();
+
+2572 
+ty³Çme
+ 
+	g¡d
+::
+veùÜ
+<cÚ¡ 
+IG’”©Ü
+<
+T
+>*>::
+cÚ¡_™”©Ü
+ 
+™End
+ = 
+m_compo£d
+.
+’d
+();
+
+2573  
+size_t
+ 
+	gšdex
+ = 0; 
+	g™
+ !ð
+™End
+; ++it )
+
+2575 cÚ¡ 
+	gIG’”©Ü
+<
+	gT
+>* 
+	gg’”©Ü
+ = *
+™
+;
+
+2576 ifÐ
+	gov”®lIndex
+ >ð
+šdex
+ && 
+ov”®lIndex
+ < index + 
+g’”©Ü
+->
+size
+() )
+
+2578  
+g’”©Ü
+->
+g‘V®ue
+Ð
+ov”®lIndex
+-
+šdex
+ );
+
+2580 
+	gšdex
+ +ð
+g’”©Ü
+->
+size
+();
+
+2582 
+CATCH_INTERNAL_ERROR
+( "Indexed…astƒnd of generated„ange" );
+
+2583  
+T
+();
+
+2586 
+add
+ÐcÚ¡ 
+IG’”©Ü
+<
+T
+>* 
+g’”©Ü
+ ) {
+
+2587 
+	gm_tÙ®Size
+ +ð
+g’”©Ü
+->
+size
+();
+
+2588 
+	gm_compo£d
+.
+push_back
+Ð
+g’”©Ü
+ );
+
+2591 
+	gCompos™eG’”©Ü
+& 
+th’
+Ð
+Compos™eG’”©Ü
+& 
+Ùh”
+ ) {
+
+2592 
+move
+Ð
+Ùh”
+ );
+
+2593  *
+	gthis
+;
+
+2596 
+	gCompos™eG’”©Ü
+& 
+th’
+Ð
+T
+ 
+v®ue
+ ) {
+
+2597 
+	gV®uesG’”©Ü
+<
+	gT
+>* 
+	gv®uesG’
+ = 
+Ãw
+ 
+V®uesG’”©Ü
+<
+T
+>();
+
+2598 
+	gv®uesG’
+->
+add
+Ð
+v®ue
+ );
+
+2599 
+add
+Ð
+v®uesG’
+ );
+
+2600  *
+	gthis
+;
+
+2603 
+	g´iv©e
+:
+
+2605 
+move
+Ð
+Compos™eG’”©Ü
+& 
+Ùh”
+ ) {
+
+2606 
+m_compo£d
+.
+š£¹
+Ðm_compo£d.
+’d
+(), 
+Ùh”
+.m_compo£d.
+begš
+(), other.m_composed.end() );
+
+2607 
+	gm_tÙ®Size
+ +ð
+Ùh”
+.
+m_tÙ®Size
+;
+
+2608 
+	gÙh”
+.
+	gm_compo£d
+.
+þ—r
+();
+
+2611 
+	g¡d
+::
+veùÜ
+<cÚ¡ 
+IG’”©Ü
+<
+T
+>*> 
+m_compo£d
+;
+
+2612 
+	g¡d
+::
+¡ršg
+ 
+m_fžeInfo
+;
+
+2613 
+size_t
+ 
+	gm_tÙ®Size
+;
+
+2616 
+Çme¥aû
+ 
+	gG’”©Üs
+
+
+2618 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2619 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+b‘w“n
+Ð
+T
+ 
+äom
+, T 
+to
+ ) {
+
+2620 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+	gg’”©Üs
+;
+
+2621 
+	gg’”©Üs
+.
+add
+Ð
+Ãw
+ 
+B‘w“nG’”©Ü
+<
+T
+>Ð
+äom
+, 
+to
+ ) );
+
+2622  
+	gg’”©Üs
+;
+
+2625 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2626 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+v®ues
+Ð
+T
+ 
+v®1
+, T 
+v®2
+ ) {
+
+2627 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+	gg’”©Üs
+;
+
+2628 
+	gV®uesG’”©Ü
+<
+	gT
+>* 
+	gv®uesG’
+ = 
+Ãw
+ 
+V®uesG’”©Ü
+<
+T
+>();
+
+2629 
+	gv®uesG’
+->
+add
+Ð
+v®1
+ );
+
+2630 
+	gv®uesG’
+->
+add
+Ð
+v®2
+ );
+
+2631 
+	gg’”©Üs
+.
+add
+Ð
+v®uesG’
+ );
+
+2632  
+	gg’”©Üs
+;
+
+2635 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2636 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+v®ues
+Ð
+T
+ 
+v®1
+, T 
+v®2
+, T 
+v®3
+ ){
+
+2637 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+	gg’”©Üs
+;
+
+2638 
+	gV®uesG’”©Ü
+<
+	gT
+>* 
+	gv®uesG’
+ = 
+Ãw
+ 
+V®uesG’”©Ü
+<
+T
+>();
+
+2639 
+	gv®uesG’
+->
+add
+Ð
+v®1
+ );
+
+2640 
+	gv®uesG’
+->
+add
+Ð
+v®2
+ );
+
+2641 
+	gv®uesG’
+->
+add
+Ð
+v®3
+ );
+
+2642 
+	gg’”©Üs
+.
+add
+Ð
+v®uesG’
+ );
+
+2643  
+	gg’”©Üs
+;
+
+2646 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2647 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+v®ues
+Ð
+T
+ 
+v®1
+, T 
+v®2
+, T 
+v®3
+, T 
+v®4
+ ) {
+
+2648 
+	gCompos™eG’”©Ü
+<
+	gT
+> 
+	gg’”©Üs
+;
+
+2649 
+	gV®uesG’”©Ü
+<
+	gT
+>* 
+	gv®uesG’
+ = 
+Ãw
+ 
+V®uesG’”©Ü
+<
+T
+>();
+
+2650 
+	gv®uesG’
+->
+add
+Ð
+v®1
+ );
+
+2651 
+	gv®uesG’
+->
+add
+Ð
+v®2
+ );
+
+2652 
+	gv®uesG’
+->
+add
+Ð
+v®3
+ );
+
+2653 
+	gv®uesG’
+->
+add
+Ð
+v®4
+ );
+
+2654 
+	gg’”©Üs
+.
+add
+Ð
+v®uesG’
+ );
+
+2655  
+	gg’”©Üs
+;
+
+2660 
+usšg
+ 
+Çme¥aû
+ 
+	gG’”©Üs
+;
+
+2664 
+	#INTERNAL_CATCH_LINESTR2
+Ð
+lše
+ ) #lše
+
+	)
+
+2665 
+	#INTERNAL_CATCH_LINESTR
+Ð
+lše
+ ) 
+	`INTERNAL_CATCH_LINESTR2
+Ðlš�)
+
+	)
+
+2667 
+	#INTERNAL_CATCH_GENERATE
+Ð
+ex´
+ )ƒx´.
+	`£tFžeInfo
+Ð
+__FILE__
+ "(" 
+	`INTERNAL_CATCH_LINESTR
+Ð
+__LINE__
+ ) ")" )
+
+	)
+
+2670 
+	#TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
+
+
+	)
+
+2672 
+	~<¡ršg
+>
+
+2673 
+	~<veùÜ
+>
+
+2676 
+	#TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
+
+
+	)
+
+2678 
+	~<¡ršg
+>
+
+2680 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2682 
+þass
+ 
+	gTe¡Ca£
+;
+
+2683 
+	gITe¡Ca£Regi¡ry
+;
+
+2684 
+	gIExû±iÚT¿n¦©ÜRegi¡ry
+;
+
+2685 
+	gIExû±iÚT¿n¦©Ü
+;
+
+2686 
+	gIR•Ü‹rRegi¡ry
+;
+
+2687 
+	gIR•Ü‹rFaùÜy
+;
+
+2688 
+	gITagAlŸsRegi¡ry
+;
+
+2690 
+	sIRegi¡ryHub
+ {
+
+2691 
+	gvœtu®
+ ~
+IRegi¡ryHub
+();
+
+2693 
+vœtu®
+ 
+IR•Ü‹rRegi¡ry
+ cÚ¡& 
+g‘R•Ü‹rRegi¡ry
+() const = 0;
+
+2694 
+vœtu®
+ 
+ITe¡Ca£Regi¡ry
+ cÚ¡& 
+g‘Te¡Ca£Regi¡ry
+() const = 0;
+
+2695 
+vœtu®
+ 
+ITagAlŸsRegi¡ry
+ cÚ¡& 
+g‘TagAlŸsRegi¡ry
+() const = 0;
+
+2697 
+vœtu®
+ 
+	gIExû±iÚT¿n¦©ÜRegi¡ry
+& 
+g‘Exû±iÚT¿n¦©ÜRegi¡ry
+() = 0;
+
+2700 
+	sIMu�bËRegi¡ryHub
+ {
+
+2701 
+	gvœtu®
+ ~
+IMu�bËRegi¡ryHub
+();
+
+2702 
+vœtu®
+ 
+»gi¡”R•Ü‹r
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+PŒ
+<
+IR•Ü‹rFaùÜy
+> cÚ¡& 
+çùÜy
+ ) = 0;
+
+2703 
+vœtu®
+ 
+»gi¡”Li¡’”
+Ð
+PŒ
+<
+IR•Ü‹rFaùÜy
+> cÚ¡& 
+çùÜy
+ ) = 0;
+
+2704 
+vœtu®
+ 
+»gi¡”Te¡
+Ð
+Te¡Ca£
+ cÚ¡& 
+‹¡Info
+ ) = 0;
+
+2705 
+vœtu®
+ 
+»gi¡”T¿n¦©Ü
+ÐcÚ¡ 
+IExû±iÚT¿n¦©Ü
+* 
+Œª¦©Ü
+ ) = 0;
+
+2706 
+vœtu®
+ 
+»gi¡”TagAlŸs
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+®Ÿs
+, std::¡ršg cÚ¡& 
+�g
+, 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ ) = 0;
+
+2709 
+	gIRegi¡ryHub
+& 
+g‘Regi¡ryHub
+();
+
+2710 
+	gIMu�bËRegi¡ryHub
+& 
+g‘Mu�bËRegi¡ryHub
+();
+
+2711 
+þ—nUp
+();
+
+2712 
+	g¡d
+::
+¡ršg
+ 
+Œª¦©eAùiveExû±iÚ
+();
+
+2716 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2718 
+	g¡d
+::
+	t¡ršg
+(*
+	texû±iÚT¿n¦©eFunùiÚ
+)();
+
+2720 
+	gIExû±iÚT¿n¦©Ü
+;
+
+2721 
+	g¡d
+::
+	tveùÜ
+<cÚ¡ 
+	tIExû±iÚT¿n¦©Ü
+*> 
+	tExû±iÚT¿n¦©Üs
+;
+
+2723 
+	sIExû±iÚT¿n¦©Ü
+ {
+
+2724 
+	gvœtu®
+ ~
+IExû±iÚT¿n¦©Ü
+();
+
+2725 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+Œª¦©e
+Ð
+Exû±iÚT¿n¦©Üs
+::
+cÚ¡_™”©Ü
+ 
+™
+, Exû±iÚT¿n¦©Üs::cÚ¡_™”©Ü 
+™End
+ ) const = 0;
+
+2728 
+	sIExû±iÚT¿n¦©ÜRegi¡ry
+ {
+
+2729 
+	gvœtu®
+ ~
+IExû±iÚT¿n¦©ÜRegi¡ry
+();
+
+2731 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+Œª¦©eAùiveExû±iÚ
+() const = 0;
+
+2734 þas 
+	cExû±iÚT¿n¦©ÜRegi¡¿r
+ {
+
+2735 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+2736 þas 
+	cExû±iÚT¿n¦©Ü
+ : 
+public
+ 
+IExû±iÚT¿n¦©Ü
+ {
+
+2737 
+public
+:
+
+2739 
+Exû±iÚT¿n¦©Ü
+Ð
+¡d
+::
+¡ršg
+(*
+Œª¦©eFunùiÚ
+)Ð
+T
+& ) )
+
+2740 : 
+m_Œª¦©eFunùiÚ
+Ð
+Œª¦©eFunùiÚ
+ )
+
+2743 
+vœtu®
+ 
+¡d
+::
+¡ršg
+ 
+Œª¦©e
+Ð
+Exû±iÚT¿n¦©Üs
+::
+cÚ¡_™”©Ü
+ 
+™
+, Exû±iÚT¿n¦©Üs::cÚ¡_™”©Ü 
+™End
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+2744 
+Œy
+ {
+
+2745 ifÐ
+™
+ =ð
+™End
+ )
+
+2746 
+throw
+;
+
+2748  (*
+	g™
+)->
+Œª¦©e
+Ð
+™
++1, 
+™End
+ );
+
+2750 
+ÿtch
+Ð
+T
+& 
+ex
+ ) {
+
+2751  
+m_Œª¦©eFunùiÚ
+Ð
+ex
+ );
+
+2755 
+	g´Ùeùed
+:
+
+2756 
+¡d
+::
+¡ršg
+(*
+m_Œª¦©eFunùiÚ
+)Ð
+T
+& );
+
+2759 
+	gpublic
+:
+
+2760 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+>
+
+2761 
+Exû±iÚT¿n¦©ÜRegi¡¿r
+Ð
+¡d
+::
+¡ršg
+(*
+Œª¦©eFunùiÚ
+)Ð
+T
+& ) ) {
+
+2762 
+g‘Mu�bËRegi¡ryHub
+().
+»gi¡”T¿n¦©Ü
+
+
+2763 Ð
+Ãw
+ 
+Exû±iÚT¿n¦©Ü
+<
+T
+>Ð
+Œª¦©eFunùiÚ
+ ) );
+
+2769 
+	#INTERNAL_CATCH_TRANSLATE_EXCEPTION2
+Ð
+Œª¦©ÜName
+, 
+sigÇtu»
+ ) \
+
+2770 
+¡d
+::
+¡ršg
+ 
+	`Œª¦©ÜName
+Ð
+sigÇtu»
+ ); \
+
+2771 
+Çme¥aû
+{ 
+C©ch
+::
+Exû±iÚT¿n¦©ÜRegi¡¿r
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+ÿtch_š‹º®_Exû±iÚRegi¡¿r
+ )Ð&
+Œª¦©ÜName
+ ); }\
+
+2772 
+¡d
+::
+¡ršg
+ 
+	`Œª¦©ÜName
+Ð
+sigÇtu»
+ )
+
+	)
+
+2774 
+	#INTERNAL_CATCH_TRANSLATE_EXCEPTION
+Ð
+sigÇtu»
+ ) 
+	`INTERNAL_CATCH_TRANSLATE_EXCEPTION2
+Ð
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+ÿtch_š‹º®_Exû±iÚT¿n¦©Ü
+ ), sigÇtu» )
+
+	)
+
+2777 
+	#TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
+
+
+	)
+
+2779 
+	~<cm©h
+>
+
+2780 
+	~<lim™s
+>
+
+2782 #ià
+defšed
+(
+CATCH_CONFIG_CPP11_TYPE_TRAITS
+)
+
+2783 
+	~<ty³_Œa™s
+>
+
+2786 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2787 
+Çme¥aû
+ 
+	gD‘až
+ {
+
+2789 þas 
+	cAµrox
+ {
+
+2790 
+	gpublic
+:
+
+2791 
+ex¶ic™
+ 
+Aµrox
+ ( 
+v®ue
+ )
+
+2792 : 
+m_•sžÚ
+Ð
+¡d
+::
+num”ic_lim™s
+<>::
+•sžÚ
+()*100 ),
+
+2793 
+m_m¬gš
+( 0.0 ),
+
+2794 
+m_sÿË
+( 1.0 ),
+
+2795 
+m_v®ue
+Ð
+v®ue
+ )
+
+2798 
+Aµrox
+ 
+cu¡om
+() {
+
+2799  
+Aµrox
+( 0 );
+
+2802 #ià
+defšed
+(
+CATCH_CONFIG_CPP11_TYPE_TRAITS
+)
+
+2804 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2805 
+Aµrox
+ 
+Ý”©Ü
+()Ð
+T
+ 
+v®ue
+ ) {
+
+2806 
+Aµrox
+ 
+­´ox
+Ð
+¡©ic_ÿ¡
+<>(
+v®ue
+) );
+
+2807 
+	g­´ox
+.
+•sžÚ
+Ð
+m_•sžÚ
+ );
+
+2808 
+	g­´ox
+.
+m¬gš
+Ð
+m_m¬gš
+ );
+
+2809 
+	g­´ox
+.
+sÿË
+Ð
+m_sÿË
+ );
+
+2810  
+	g­´ox
+;
+
+2813 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2814 
+ex¶ic™
+ 
+Aµrox
+Ð
+T
+ 
+v®ue
+ ): Aµrox(
+¡©ic_ÿ¡
+<>(value))
+
+2817 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, 
+	gT
+>::
+v®ue
+>::
+ty³
+>
+
+2818 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ =ðÐcÚ¡ 
+T
+& 
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2820 autØ
+	glhs_v
+ = (
+lhs
+);
+
+2821 
+boÞ
+ 
+	g»ÏtiveOK
+ = 
+¡d
+::
+çbs
+(
+lhs_v
+ - 
+rhs
+.
+m_v®ue
+è<„hs.
+m_•sžÚ
+ * (rhs.
+m_sÿË
+ + (¡d::
+max
+)(¡d::çbsÖhs_v), 
+	g¡d
+::fabs(rhs.m_value)));
+
+2822 ià(
+	g»ÏtiveOK
+) {
+
+2823  
+	gŒue
+;
+
+2825  
+	g¡d
+::
+çbs
+(
+lhs_v
+ - 
+rhs
+.
+m_v®ue
+è<„hs.
+m_m¬gš
+;
+
+2828 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2829 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ =ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, cÚ¡ 
+	gT
+& 
+	grhs
+ ) {
+
+2830  
+	gÝ”©Ü
+==Ð
+rhs
+, 
+	glhs
+ );
+
+2833 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2834 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ !ðÐ
+T
+ 
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2835  !
+	gÝ”©Ü
+==Ð
+lhs
+, 
+	grhs
+ );
+
+2838 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2839 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ !ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, 
+T
+ 
+	grhs
+ ) {
+
+2840  !
+	gÝ”©Ü
+==Ð
+rhs
+, 
+	glhs
+ );
+
+2843 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2844 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ <ðÐ
+T
+ 
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2845  (
+	glhs
+è< 
+	grhs
+.
+	gm_v®ue
+ ||†h =ð
+rhs
+;
+
+2848 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2849 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ <ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, 
+T
+ 
+	grhs
+ ) {
+
+2850  
+	glhs
+.
+	gm_v®ue
+ < (
+	grhs
+è||†h =ð
+rhs
+;
+
+2853 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2854 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ >ðÐ
+T
+ 
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2855  (
+	glhs
+è> 
+	grhs
+.
+	gm_v®ue
+ ||†h =ð
+rhs
+;
+
+2858 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2859 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+ >ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, 
+T
+ 
+	grhs
+ ) {
+
+2860  
+	glhs
+.
+	gm_v®ue
+ > (
+	grhs
+è||†h =ð
+rhs
+;
+
+2863 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2864 
+Aµrox
+& 
+•sžÚ
+Ð
+T
+ 
+ÃwEpsžÚ
+ ) {
+
+2865 
+m_•sžÚ
+ = (
+ÃwEpsžÚ
+);
+
+2866  *
+	gthis
+;
+
+2869 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2870 
+Aµrox
+& 
+m¬gš
+Ð
+T
+ 
+ÃwM¬gš
+ ) {
+
+2871 
+m_m¬gš
+ = (
+ÃwM¬gš
+);
+
+2872  *
+	gthis
+;
+
+2875 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gty³Çme
+ =�y³Çm�
+¡d
+::
+’abË_if
+<¡d::
+is_cÚ¡ruùibË
+<, T>::
+v®ue
+>::
+ty³
+>
+
+2876 
+Aµrox
+& 
+sÿË
+Ð
+T
+ 
+ÃwSÿË
+ ) {
+
+2877 
+m_sÿË
+ = (
+ÃwSÿË
+);
+
+2878  *
+	gthis
+;
+
+2883 
+Aµrox
+ 
+Ý”©Ü
+()Ð
+	gv®ue
+ ) {
+
+2884 
+Aµrox
+ 
+­´ox
+Ð
+v®ue
+ );
+
+2885 
+	g­´ox
+.
+•sžÚ
+Ð
+m_•sžÚ
+ );
+
+2886 
+	g­´ox
+.
+m¬gš
+Ð
+m_m¬gš
+ );
+
+2887 
+	g­´ox
+.
+sÿË
+Ð
+m_sÿË
+ );
+
+2888  
+	g­´ox
+;
+
+2891 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ =ðÐ
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2893 
+boÞ
+ 
+	g»ÏtiveOK
+ = 
+¡d
+::
+çbs
+Ð
+lhs
+ - 
+rhs
+.
+m_v®ue
+ ) <„hs.
+m_•sžÚ
+ * (rhs.
+m_sÿË
+ + (¡d::
+max
+)Ð¡d::çbsÖhs), 
+	g¡d
+::fabs(rhs.m_value) ) );
+
+2894 ià(
+	g»ÏtiveOK
+) {
+
+2895  
+	gŒue
+;
+
+2897  
+	g¡d
+::
+çbs
+(
+lhs
+ - 
+rhs
+.
+m_v®ue
+è<„hs.
+m_m¬gš
+;
+
+2900 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ =ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, 
+	grhs
+ ) {
+
+2901  
+	gÝ”©Ü
+==Ð
+rhs
+, 
+	glhs
+ );
+
+2904 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ !ðÐ
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2905  !
+	gÝ”©Ü
+==Ð
+lhs
+, 
+	grhs
+ );
+
+2908 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ !ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, 
+	grhs
+ ) {
+
+2909  !
+	gÝ”©Ü
+==Ð
+rhs
+, 
+	glhs
+ );
+
+2912 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ <ðÐ
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2913  
+	glhs
+ < 
+	grhs
+.
+	gm_v®ue
+ ||†h =ð
+rhs
+;
+
+2916 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ <ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, 
+	grhs
+ ) {
+
+2917  
+	glhs
+.
+	gm_v®ue
+ < 
+	grhs
+ ||†h =ð
+rhs
+;
+
+2920 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ >ðÐ
+lhs
+, 
+Aµrox
+ cÚ¡& 
+	grhs
+ ) {
+
+2921  
+	glhs
+ > 
+	grhs
+.
+	gm_v®ue
+ ||†h =ð
+rhs
+;
+
+2924 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+ >ðÐ
+Aµrox
+ cÚ¡& 
+lhs
+, 
+	grhs
+ ) {
+
+2925  
+	glhs
+.
+	gm_v®ue
+ > 
+	grhs
+ ||†h =ð
+rhs
+;
+
+2928 
+	gAµrox
+& 
+•sžÚ
+Ð
+ÃwEpsžÚ
+ ) {
+
+2929 
+	gm_•sžÚ
+ = 
+ÃwEpsžÚ
+;
+
+2930  *
+	gthis
+;
+
+2933 
+	gAµrox
+& 
+m¬gš
+Ð
+ÃwM¬gš
+ ) {
+
+2934 
+	gm_m¬gš
+ = 
+ÃwM¬gš
+;
+
+2935  *
+	gthis
+;
+
+2938 
+	gAµrox
+& 
+sÿË
+Ð
+ÃwSÿË
+ ) {
+
+2939 
+	gm_sÿË
+ = 
+ÃwSÿË
+;
+
+2940  *
+	gthis
+;
+
+2944 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+() const {
+
+2945 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+2946 
+	goss
+ << "AµroxÐ" << 
+	gC©ch
+::
+toSŒšg
+Ð
+m_v®ue
+ ) << " )";
+
+2947  
+	goss
+.
+¡r
+();
+
+2950 
+	g´iv©e
+:
+
+2951 
+m_•sžÚ
+;
+
+2952 
+	gm_m¬gš
+;
+
+2953 
+	gm_sÿË
+;
+
+2954 
+	gm_v®ue
+;
+
+2958 
+	g‹m¶©e
+<>
+
+2959 
+šlše
+ 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+<
+D‘až
+::
+Aµrox
+>ÐD‘až::Aµrox cÚ¡& 
+v®ue
+ ) {
+
+2960  
+v®ue
+.
+toSŒšg
+();
+
+2966 
+	#TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED
+
+
+	)
+
+2968 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+2969 
+Çme¥aû
+ 
+	gM©ch”s
+ {
+
+2971 
+Çme¥aû
+ 
+	gStdSŒšg
+ {
+
+2973 
+	sCa£dSŒšg
+
+
+2975 
+Ca£dSŒšg
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ );
+
+2976 
+	g¡d
+::
+¡ršg
+ 
+adju¡SŒšg
+Ð
+¡d
+::¡ršg cÚ¡& 
+¡r
+ ) const;
+
+2977 
+	g¡d
+::
+¡ršg
+ 
+ÿ£S’s™iv™ySuffix
+() const;
+
+2979 
+	gCa£S’s™ive
+::
+Choiû
+ 
+m_ÿ£S’s™iv™y
+;
+
+2980 
+	g¡d
+::
+¡ršg
+ 
+m_¡r
+;
+
+2983 
+	gSŒšgM©ch”Ba£
+ : 
+M©ch”Ba£
+<
+¡d
+::
+¡ršg
+> {
+
+2984 
+SŒšgM©ch”Ba£
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Ý”©iÚ
+, 
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ );
+
+2985 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+;
+
+2987 
+Ca£dSŒšg
+ 
+	gm_com·¿tÜ
+;
+
+2988 
+	g¡d
+::
+¡ršg
+ 
+m_Ý”©iÚ
+;
+
+2991 
+	gEqu®sM©ch”
+ : 
+SŒšgM©ch”Ba£
+ {
+
+2992 
+Equ®sM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ );
+
+2993 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) cÚ¡ 
+CATCH_OVERRIDE
+;
+
+2995 
+	gCÚ�šsM©ch”
+ : 
+SŒšgM©ch”Ba£
+ {
+
+2996 
+CÚ�šsM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ );
+
+2997 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) cÚ¡ 
+CATCH_OVERRIDE
+;
+
+2999 
+	gS�¹sW™hM©ch”
+ : 
+SŒšgM©ch”Ba£
+ {
+
+3000 
+S�¹sW™hM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ );
+
+3001 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) cÚ¡ 
+CATCH_OVERRIDE
+;
+
+3003 
+	gEndsW™hM©ch”
+ : 
+SŒšgM©ch”Ba£
+ {
+
+3004 
+EndsW™hM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ );
+
+3005 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) cÚ¡ 
+CATCH_OVERRIDE
+;
+
+3013 
+	gStdSŒšg
+::
+Equ®sM©ch”
+ 
+Equ®s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ = Ca£S’s™ive::
+Yes
+ );
+
+3014 
+	gStdSŒšg
+::
+CÚ�šsM©ch”
+ 
+CÚ�šs
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ = Ca£S’s™ive::
+Yes
+ );
+
+3015 
+	gStdSŒšg
+::
+EndsW™hM©ch”
+ 
+EndsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ = Ca£S’s™ive::
+Yes
+ );
+
+3016 
+	gStdSŒšg
+::
+S�¹sW™hM©ch”
+ 
+S�¹sW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ = Ca£S’s™ive::
+Yes
+ );
+
+3022 
+	#TWOBLUECUBES_CATCH_MATCHERS_VECTOR_H_INCLUDED
+
+
+	)
+
+3024 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3025 
+Çme¥aû
+ 
+	gM©ch”s
+ {
+
+3027 
+Çme¥aû
+ 
+	gVeùÜ
+ {
+
+3029 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3030 
+	gCÚ�šsEËm’tM©ch”
+ : 
+M©ch”Ba£
+<
+¡d
+::
+veùÜ
+<
+T
+>, 
+	gT
+> {
+
+3032 
+CÚ�šsEËm’tM©ch”
+(
+T
+ cÚ¡ &
+com·¿tÜ
+è: 
+m_com·¿tÜ
+( comparator) {}
+
+3034 
+boÞ
+ 
+m©ch
+(
+¡d
+::
+veùÜ
+<
+T
+> cÚ¡ &
+v
+ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3035  
+¡d
+::
+fšd
+(
+v
+.
+begš
+(), v.
+’d
+(), 
+m_com·¿tÜ
+) != v.end();
+
+3038 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3039  "CÚ�šs: " + 
+C©ch
+::
+toSŒšg
+Ð
+m_com·¿tÜ
+ );
+
+3042 
+T
+ cÚ¡& 
+	gm_com·¿tÜ
+;
+
+3045 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3046 
+	gCÚ�šsM©ch”
+ : 
+M©ch”Ba£
+<
+¡d
+::
+veùÜ
+<
+T
+>, 
+	g¡d
+::vector<T> > {
+
+3048 
+CÚ�šsM©ch”
+(
+¡d
+::
+veùÜ
+<
+T
+> cÚ¡ &
+com·¿tÜ
+è: 
+m_com·¿tÜ
+( comparator ) {}
+
+3050 
+boÞ
+ 
+m©ch
+(
+¡d
+::
+veùÜ
+<
+T
+> cÚ¡ &
+v
+ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3052 ià(
+m_com·¿tÜ
+.
+size
+(è> 
+v
+.size())
+
+3053  
+çl£
+;
+
+3054 
+size_t
+ 
+	gi
+ = 0; i < 
+	gm_com·¿tÜ
+.
+size
+(); ++i)
+
+3055 ià(
+	g¡d
+::
+fšd
+(
+v
+.
+begš
+(), v.
+’d
+(), 
+m_com·¿tÜ
+[
+i
+]) == v.end())
+
+3056  
+çl£
+;
+
+3057  
+	gŒue
+;
+
+3059 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3060  "CÚ�šs: " + 
+C©ch
+::
+toSŒšg
+Ð
+m_com·¿tÜ
+ );
+
+3063 
+	g¡d
+::
+veùÜ
+<
+T
+> cÚ¡& 
+m_com·¿tÜ
+;
+
+3066 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3067 
+	gEqu®sM©ch”
+ : 
+M©ch”Ba£
+<
+¡d
+::
+veùÜ
+<
+T
+>, 
+	g¡d
+::vector<T> > {
+
+3069 
+Equ®sM©ch”
+(
+¡d
+::
+veùÜ
+<
+T
+> cÚ¡ &
+com·¿tÜ
+è: 
+m_com·¿tÜ
+( comparator ) {}
+
+3071 
+boÞ
+ 
+m©ch
+(
+¡d
+::
+veùÜ
+<
+T
+> cÚ¡ &
+v
+ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3076 ià(
+m_com·¿tÜ
+.
+size
+(è!ð
+v
+.size())
+
+3077  
+çl£
+;
+
+3078 
+size_t
+ 
+	gi
+ = 0; i < 
+	gv
+.
+size
+(); ++i)
+
+3079 ià(
+	gm_com·¿tÜ
+[
+i
+] !ð
+v
+[i])
+
+3080  
+çl£
+;
+
+3081  
+	gŒue
+;
+
+3083 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3084  "Equ®s: " + 
+C©ch
+::
+toSŒšg
+Ð
+m_com·¿tÜ
+ );
+
+3086 
+	g¡d
+::
+veùÜ
+<
+T
+> cÚ¡& 
+m_com·¿tÜ
+;
+
+3094 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3095 
+	gVeùÜ
+::
+CÚ�šsM©ch”
+<
+T
+> 
+CÚ�šs
+Ð
+¡d
+::
+veùÜ
+<T> cÚ¡& 
+com·¿tÜ
+ ) {
+
+3096  
+VeùÜ
+::
+CÚ�šsM©ch”
+<
+T
+>Ð
+com·¿tÜ
+ );
+
+3099 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3100 
+	gVeùÜ
+::
+CÚ�šsEËm’tM©ch”
+<
+T
+> 
+VeùÜCÚ�šs
+ÐT cÚ¡& 
+com·¿tÜ
+ ) {
+
+3101  
+VeùÜ
+::
+CÚ�šsEËm’tM©ch”
+<
+T
+>Ð
+com·¿tÜ
+ );
+
+3104 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3105 
+	gVeùÜ
+::
+Equ®sM©ch”
+<
+T
+> 
+Equ®s
+Ð
+¡d
+::
+veùÜ
+<T> cÚ¡& 
+com·¿tÜ
+ ) {
+
+3106  
+VeùÜ
+::
+Equ®sM©ch”
+<
+T
+>Ð
+com·¿tÜ
+ );
+
+3113 
+	#TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+
+	)
+
+3116 
+	#TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
+
+
+	)
+
+3118 
+	~<¡ršg
+>
+
+3120 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3122 
+	sTagAlŸs
+ {
+
+3123 
+TagAlŸs
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_�g
+, 
+SourûLšeInfo
+ 
+_lšeInfo
+ ) : 
+�g
+Ð_�g ), 
+lšeInfo
+( _lineInfo ) {}
+
+3125 
+	g¡d
+::
+¡ršg
+ 
+�g
+;
+
+3126 
+SourûLšeInfo
+ 
+	glšeInfo
+;
+
+3129 
+	sRegi¡¿rFÜTagAlŸ£s
+ {
+
+3130 
+Regi¡¿rFÜTagAlŸ£s
+ÐcÚ¡* 
+®Ÿs
+, cÚ¡* 
+�g
+, 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ );
+
+3135 
+	#CATCH_REGISTER_TAG_ALIAS
+Ð
+®Ÿs
+, 
+¥ec
+ ) 
+Çme¥aû
+{ 
+C©ch
+::
+Regi¡¿rFÜTagAlŸ£s
+ 
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+AutoRegi¡”TagAlŸs
+ )Ð®Ÿs, s³c, 
+CATCH_INTERNAL_LINEINFO
+ ); }
+
+	)
+
+3137 
+	#TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
+
+
+	)
+
+3139 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3142 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3143 þas 
+	cO±iÚ
+ {
+
+3144 
+	gpublic
+:
+
+3145 
+O±iÚ
+(è: 
+nuÎabËV®ue
+Ð
+CATCH_NULL
+ ) {}
+
+3146 
+O±iÚ
+Ð
+T
+ cÚ¡& 
+_v®ue
+ )
+
+3147 : 
+nuÎabËV®ue
+Ð
+Ãw
+Ð
+¡Üage
+ ) 
+T
+Ð
+_v®ue
+ ) )
+
+3149 
+O±iÚ
+ÐO±iÚ cÚ¡& 
+_Ùh”
+ )
+
+3150 : 
+nuÎabËV®ue
+Ð
+_Ùh”
+ ? 
+Ãw
+Ð
+¡Üage
+ ) 
+T
+Ð*_Ùh” ) : 
+CATCH_NULL
+ )
+
+3153 ~
+O±iÚ
+() {
+
+3154 
+»£t
+();
+
+3157 
+	gO±iÚ
+& 
+	gÝ”©Ü
+ðÐ
+O±iÚ
+ cÚ¡& 
+_Ùh”
+ ) {
+
+3158 ifÐ&
+_Ùh”
+ !ð
+this
+ ) {
+
+3159 
+»£t
+();
+
+3160 ifÐ
+	g_Ùh”
+ )
+
+3161 
+	gnuÎabËV®ue
+ = 
+Ãw
+Ð
+¡Üage
+ ) 
+T
+Ð*
+_Ùh”
+ );
+
+3163  *
+	gthis
+;
+
+3165 
+	gO±iÚ
+& 
+	gÝ”©Ü
+ = ( 
+T
+ cÚ¡& 
+_v®ue
+ ) {
+
+3166 
+»£t
+();
+
+3167 
+	gnuÎabËV®ue
+ = 
+Ãw
+Ð
+¡Üage
+ ) 
+T
+Ð
+_v®ue
+ );
+
+3168  *
+	gthis
+;
+
+3171 
+»£t
+() {
+
+3172 ifÐ
+	gnuÎabËV®ue
+ )
+
+3173 
+	gnuÎabËV®ue
+->~
+T
+();
+
+3174 
+	gnuÎabËV®ue
+ = 
+CATCH_NULL
+;
+
+3177 
+	gT
+& 
+	gÝ”©Ü
+*(è{  *
+	gnuÎabËV®ue
+; }
+
+3178 
+T
+ cÚ¡& 
+	gÝ”©Ü
+*(ècÚ¡ {  *
+	gnuÎabËV®ue
+; }
+
+3179 
+T
+* 
+	gÝ”©Ü
+->(è{  
+	gnuÎabËV®ue
+; }
+
+3180 cÚ¡ 
+T
+* 
+	gÝ”©Ü
+->(ècÚ¡ {  
+	gnuÎabËV®ue
+; }
+
+3182 
+T
+ 
+v®ueOr
+ÐT cÚ¡& 
+deçuÉV®ue
+ ) const {
+
+3183  
+	gnuÎabËV®ue
+ ? *nuÎabËV®u�: 
+deçuÉV®ue
+;
+
+3186 
+boÞ
+ 
+some
+(ècÚ¡ {  
+	gnuÎabËV®ue
+ !ð
+CATCH_NULL
+; }
+
+3187 
+boÞ
+ 
+nÚe
+(ècÚ¡ {  
+	gnuÎabËV®ue
+ =ð
+CATCH_NULL
+; }
+
+3189 
+boÞ
+ 
+	gÝ”©Ü
+ !(ècÚ¡ {  
+	gnuÎabËV®ue
+ =ð
+CATCH_NULL
+; }
+
+3190 
+Ý”©Ü
+ 
+	gSaãBoÞ
+::
+ty³
+() const {
+
+3191  
+SaãBoÞ
+::
+makeSaã
+Ð
+some
+() );
+
+3194 
+	g´iv©e
+:
+
+3195 
+T
+ *
+nuÎabËV®ue
+;
+
+3197 
+	g¡Üage
+[(
+T
+)];
+
+3200 
+	gdummy1
+;
+
+3201 (*
+	gdummy2
+)();
+
+3202 
+	gdummy3
+;
+
+3203 #ifdeà
+CATCH_CONFIG_CPP11_LONG_LONG
+
+
+3204 
+	gdummy4
+;
+
+3211 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3213 
+	sITagAlŸsRegi¡ry
+ {
+
+3214 
+	gvœtu®
+ ~
+ITagAlŸsRegi¡ry
+();
+
+3215 
+vœtu®
+ 
+	gO±iÚ
+<
+	gTagAlŸs
+> 
+fšd
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+®Ÿs
+ ) const = 0;
+
+3216 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+ex·ndAlŸ£s
+Ð
+¡d
+::¡ršg cÚ¡& 
+uÃx·ndedTe¡S³c
+ ) const = 0;
+
+3218 
+ITagAlŸsRegi¡ry
+ cÚ¡& 
+g‘
+();
+
+3226 
+	#TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
+
+
+	)
+
+3228 
+	~<¡ršg
+>
+
+3229 
+	~<£t
+>
+
+3231 #ifdeà
+__þªg__
+
+
+3232 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+3233 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wpadded"
+
+3236 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3238 
+	gITe¡Ca£
+;
+
+3240 
+	sTe¡Ca£Info
+ {
+
+3241 
+	eS³cŸlPrÝ”t›s
+{
+
+3242 
+	gNÚe
+ = 0,
+
+3243 
+	gIsHidd’
+ = 1 << 1,
+
+3244 
+	gShouldFaž
+ = 1 << 2,
+
+3245 
+	gMayFaž
+ = 1 << 3,
+
+3246 
+	gThrows
+ = 1 << 4,
+
+3247 
+	gNÚPÜ�bË
+ = 1 << 5
+
+3250 
+Te¡Ca£Info
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+,
+
+3251 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_þassName
+,
+
+3252 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_desü�tiÚ
+,
+
+3253 
+¡d
+::
+£t
+<¡d::
+¡ršg
+> cÚ¡& 
+_�gs
+,
+
+3254 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+ );
+
+3256 
+Te¡Ca£Info
+ÐTe¡Ca£InfØcÚ¡& 
+Ùh”
+ );
+
+3258 
+ä›nd
+ 
+£tTags
+Ð
+Te¡Ca£Info
+& 
+‹¡Ca£Info
+, 
+¡d
+::
+£t
+<¡d::
+¡ršg
+> cÚ¡& 
+�gs
+ );
+
+3260 
+boÞ
+ 
+isHidd’
+() const;
+
+3261 
+boÞ
+ 
+throws
+() const;
+
+3262 
+boÞ
+ 
+okToFaž
+() const;
+
+3263 
+boÞ
+ 
+ex³ùedToFaž
+() const;
+
+3265 
+	g¡d
+::
+¡ršg
+ 
+Çme
+;
+
+3266 
+	g¡d
+::
+¡ršg
+ 
+þassName
+;
+
+3267 
+	g¡d
+::
+¡ršg
+ 
+desü�tiÚ
+;
+
+3268 
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+> 
+�gs
+;
+
+3269 
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+> 
+lÿ£Tags
+;
+
+3270 
+	g¡d
+::
+¡ršg
+ 
+�gsAsSŒšg
+;
+
+3271 
+SourûLšeInfo
+ 
+	glšeInfo
+;
+
+3272 
+S³cŸlPrÝ”t›s
+ 
+	g´Ý”t›s
+;
+
+3275 þas 
+	cTe¡Ca£
+ : 
+public
+ 
+Te¡Ca£Info
+ {
+
+3276 
+public
+:
+
+3278 
+Te¡Ca£
+Ð
+ITe¡Ca£
+* 
+‹¡Ca£
+, 
+Te¡Ca£Info
+ cÚ¡& 
+šfo
+ );
+
+3279 
+Te¡Ca£
+ÐTe¡Ca£ cÚ¡& 
+Ùh”
+ );
+
+3281 
+Te¡Ca£
+ 
+w™hName
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_ÃwName
+ ) const;
+
+3283 
+švoke
+() const;
+
+3285 
+Te¡Ca£Info
+ cÚ¡& 
+g‘Te¡Ca£Info
+() const;
+
+3287 
+sw­
+Ð
+Te¡Ca£
+& 
+Ùh”
+ );
+
+3288 
+boÞ
+ 
+	gÝ”©Ü
+ =ðÐ
+Te¡Ca£
+ cÚ¡& 
+Ùh”
+ ) const;
+
+3289 
+boÞ
+ 
+	gÝ”©Ü
+ < ( 
+Te¡Ca£
+ cÚ¡& 
+	gÙh”
+ ) const;
+
+3290 
+	gTe¡Ca£
+& 
+	gÝ”©Ü
+ = ( 
+Te¡Ca£
+ cÚ¡& 
+Ùh”
+ );
+
+3292 
+	g´iv©e
+:
+
+3293 
+PŒ
+<
+ITe¡Ca£
+> 
+‹¡
+;
+
+3296 
+Te¡Ca£
+ 
+makeTe¡Ca£
+Ð
+ITe¡Ca£
+* 
+‹¡Ca£
+,
+
+3297 
+¡d
+::
+¡ršg
+ cÚ¡& 
+þassName
+,
+
+3298 
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+,
+
+3299 
+¡d
+::
+¡ršg
+ cÚ¡& 
+desü�tiÚ
+,
+
+3300 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ );
+
+3303 #ifdeà
+__þªg__
+
+
+3304 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+3308 #ifdeà
+__OBJC__
+
+
+3310 
+	#TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
+
+
+	)
+
+3312 #impÜˆ<
+objc
+/
+ruÁime
+.
+h
+>
+
+3314 
+	~<¡ršg
+>
+
+3323 @
+´ÙocÞ
+ 
+	gOcFixtu»
+
+
+3325 @
+	gÝtiÚ®
+
+
+3327 -(è
+	g£tUp
+;
+
+3328 -(è
+	g‹¬Down
+;
+
+3330 @
+’d
+
+
+3332 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3334 
+þass
+ 
+	gOcM‘hod
+ : 
+public
+ 
+Sh¬edIm¶
+<
+ITe¡Ca£
+> {
+
+3336 
+public
+:
+
+3337 
+OcM‘hod
+Ð
+CÏss
+ 
+þs
+, 
+SEL
+ 
+£l
+ ) : 
+m_þs
+Ðþ ), 
+m_£l
+( sel ) {}
+
+3339 
+vœtu®
+ 
+švoke
+() const {
+
+3340 
+id
+ 
+	gobj
+ = [[
+m_þs
+ 
+®loc
+] 
+š™
+];
+
+3342 
+³rfÜmO±iÚ®S–eùÜ
+Ð
+obj
+, @
+£ËùÜ
+(
+£tUp
+) );
+
+3343 
+³rfÜmO±iÚ®S–eùÜ
+Ð
+obj
+, 
+m_£l
+ );
+
+3344 
+³rfÜmO±iÚ®S–eùÜ
+Ð
+obj
+, @
+£ËùÜ
+(
+‹¬Down
+) );
+
+3346 
+¬cSaãR–—£
+Ð
+obj
+ );
+
+3348 
+	g´iv©e
+:
+
+3349 
+vœtu®
+ ~
+OcM‘hod
+() {}
+
+3351 
+CÏss
+ 
+m_þs
+;
+
+3352 
+SEL
+ 
+	gm_£l
+;
+
+3355 
+Çme¥aû
+ 
+	gD‘až
+{
+
+3357 
+šlše
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘AÂÙ©iÚ
+Ð
+CÏss
+ 
+þs
+,
+
+3358 
+¡d
+::
+¡ršg
+ cÚ¡& 
+ªnÙ©iÚName
+,
+
+3359 
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹¡Ca£Name
+ ) {
+
+3360 
+NSSŒšg
+* 
+£lSŒ
+ = [[NSSŒšg 
+®loc
+] 
+š™W™hFÜm©
+:@"C©ch_%s_%s", 
+	gªnÙ©iÚName
+.
+c_¡r
+(), 
+	g‹¡Ca£Name
+.c_str()];
+
+3361 
+SEL
+ 
+	g£l
+ = 
+NSS–eùÜFromSŒšg
+Ð
+£lSŒ
+ );
+
+3362 
+¬cSaãR–—£
+Ð
+£lSŒ
+ );
+
+3363 
+id
+ 
+	gv®ue
+ = 
+³rfÜmO±iÚ®S–eùÜ
+Ð
+þs
+, 
+£l
+ );
+
+3364 ifÐ
+	gv®ue
+ )
+
+3365  [(
+NSSŒšg
+*)
+v®ue
+ 
+UTF8SŒšg
+];
+
+3370 
+šlše
+ 
+size_t
+ 
+»gi¡”Te¡M‘hods
+() {
+
+3371 
+size_t
+ 
+	gnoTe¡M‘hods
+ = 0;
+
+3372 
+	gnoCÏs£s
+ = 
+objc_g‘CÏssLi¡
+Ð
+CATCH_NULL
+, 0 );
+
+3374 
+CÏss
+* 
+	gþas£s
+ = (
+CATCH_UNSAFE_UNRETAINED
+ CÏs *)
+m®loc
+Ð(CÏssè* 
+noCÏs£s
+);
+
+3375 
+objc_g‘CÏssLi¡
+Ð
+þas£s
+, 
+noCÏs£s
+ );
+
+3377  
+	gc
+ = 0; c < 
+	gnoCÏs£s
+; c++ ) {
+
+3378 
+CÏss
+ 
+	gþs
+ = 
+þas£s
+[
+c
+];
+
+3380 
+u_št
+ 
+	gcouÁ
+;
+
+3381 
+M‘hod
+* 
+	gm‘hods
+ = 
+þass_cÝyM‘hodLi¡
+Ð
+þs
+, &
+couÁ
+ );
+
+3382  
+u_št
+ 
+	gm
+ = 0; m < 
+	gcouÁ
+ ; m++ ) {
+
+3383 
+SEL
+ 
+	g£ËùÜ
+ = 
+m‘hod_g‘Name
+(
+m‘hods
+[
+m
+]);
+
+3384 
+	g¡d
+::
+¡ršg
+ 
+m‘hodName
+ = 
+£l_g‘Name
+(
+£ËùÜ
+);
+
+3385 ifÐ
+¡¬tsW™h
+Ð
+m‘hodName
+, "Catch_TestCase_" ) ) {
+
+3386 
+	g¡d
+::
+¡ršg
+ 
+‹¡Ca£Name
+ = 
+m‘hodName
+.
+sub¡r
+( 15 );
+
+3387 
+	g¡d
+::
+¡ršg
+ 
+Çme
+ = 
+D‘až
+::
+g‘AÂÙ©iÚ
+Ð
+þs
+, "Name", 
+‹¡Ca£Name
+ );
+
+3388 
+	g¡d
+::
+¡ršg
+ 
+desc
+ = 
+D‘až
+::
+g‘AÂÙ©iÚ
+Ð
+þs
+, "Desü�tiÚ", 
+‹¡Ca£Name
+ );
+
+3389 cÚ¡ * 
+	gþassName
+ = 
+þass_g‘Name
+Ð
+þs
+ );
+
+3391 
+g‘Mu�bËRegi¡ryHub
+().
+»gi¡”Te¡
+Ð
+makeTe¡Ca£
+Ð
+Ãw
+ 
+OcM‘hod
+Ð
+þs
+, 
+£ËùÜ
+ ), 
+þassName
+, 
+Çme
+.
+c_¡r
+(), 
+desc
+.c_¡r(), 
+SourûLšeInfo
+() ) );
+
+3392 
+	gnoTe¡M‘hods
+++;
+
+3395 
+ä“
+(
+m‘hods
+);
+
+3398  
+	gnoTe¡M‘hods
+;
+
+3401 
+Çme¥aû
+ 
+	gM©ch”s
+ {
+
+3402 
+Çme¥aû
+ 
+	gIm¶
+ {
+
+3403 
+Çme¥aû
+ 
+	gNSSŒšgM©ch”s
+ {
+
+3405 
+	gSŒšgHÞd”
+ : 
+M©ch”Ba£
+<
+NSSŒšg
+*>{
+
+3406 
+SŒšgHÞd”
+Ð
+NSSŒšg
+* 
+sub¡r
+ ) : 
+m_sub¡r
+Ð[sub¡¸
+cÝy
+] ){}
+
+3407 
+SŒšgHÞd”
+ÐSŒšgHÞd” cÚ¡& 
+Ùh”
+ ) : 
+m_sub¡r
+Ð[Ùh”.m_sub¡¸
+cÝy
+] ){}
+
+3408 
+SŒšgHÞd”
+() {
+
+3409 
+¬cSaãR–—£
+Ð
+m_sub¡r
+ );
+
+3412 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+NSSŒšg
+* 
+¬g
+ ) cÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+3413  
+	gçl£
+;
+
+3416 
+NSSŒšg
+* 
+	gm_sub¡r
+;
+
+3419 
+	gEqu®s
+ : 
+SŒšgHÞd”
+ {
+
+3420 
+Equ®s
+Ð
+NSSŒšg
+* 
+sub¡r
+ ) : 
+SŒšgHÞd”
+( substr ){}
+
+3422 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+NSSŒšg
+* 
+¡r
+ ) cÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3423  (
+¡r
+ !ð
+nž
+ || 
+m_sub¡r
+ ==‚il ) &&
+
+3424 [
+¡r
+ 
+isEqu®ToSŒšg
+:
+m_sub¡r
+];
+
+3427 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3428  "equ® ¡ršg: " + 
+C©ch
+::
+toSŒšg
+Ð
+m_sub¡r
+ );
+
+3432 
+	gCÚ�šs
+ : 
+SŒšgHÞd”
+ {
+
+3433 
+CÚ�šs
+Ð
+NSSŒšg
+* 
+sub¡r
+ ) : 
+SŒšgHÞd”
+( substr ){}
+
+3435 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+NSSŒšg
+* 
+¡r
+ ) const {
+
+3436  (
+¡r
+ !ð
+nž
+ || 
+m_sub¡r
+ ==‚il ) &&
+
+3437 [
+¡r
+ 
+¿ngeOfSŒšg
+:
+m_sub¡r
+].
+loÿtiÚ
+ !ð
+NSNÙFound
+;
+
+3440 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3441  "cÚ�š ¡ršg: " + 
+C©ch
+::
+toSŒšg
+Ð
+m_sub¡r
+ );
+
+3445 
+	gS�¹sW™h
+ : 
+SŒšgHÞd”
+ {
+
+3446 
+S�¹sW™h
+Ð
+NSSŒšg
+* 
+sub¡r
+ ) : 
+SŒšgHÞd”
+( substr ){}
+
+3448 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+NSSŒšg
+* 
+¡r
+ ) const {
+
+3449  (
+¡r
+ !ð
+nž
+ || 
+m_sub¡r
+ ==‚il ) &&
+
+3450 [
+¡r
+ 
+¿ngeOfSŒšg
+:
+m_sub¡r
+].
+loÿtiÚ
+ == 0;
+
+3453 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3454  "¡¬t w™h: " + 
+C©ch
+::
+toSŒšg
+Ð
+m_sub¡r
+ );
+
+3457 
+	gEndsW™h
+ : 
+SŒšgHÞd”
+ {
+
+3458 
+EndsW™h
+Ð
+NSSŒšg
+* 
+sub¡r
+ ) : 
+SŒšgHÞd”
+( substr ){}
+
+3460 
+vœtu®
+ 
+boÞ
+ 
+m©ch
+Ð
+NSSŒšg
+* 
+¡r
+ ) const {
+
+3461  (
+¡r
+ !ð
+nž
+ || 
+m_sub¡r
+ ==‚il ) &&
+
+3462 [
+¡r
+ 
+¿ngeOfSŒšg
+:
+m_sub¡r
+].
+loÿtiÚ
+ =ð[¡¸
+Ëngth
+] - [m_substr†ength];
+
+3465 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+desüibe
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+3466  "’d w™h: " + 
+C©ch
+::
+toSŒšg
+Ð
+m_sub¡r
+ );
+
+3473 
+šlše
+ 
+	gIm¶
+::
+NSSŒšgM©ch”s
+::
+Equ®s
+
+
+3474 
+Equ®s
+Ð
+NSSŒšg
+* 
+sub¡r
+ ){  
+Im¶
+::
+NSSŒšgM©ch”s
+::Equals( substr ); }
+
+3476 
+šlše
+ 
+	gIm¶
+::
+NSSŒšgM©ch”s
+::
+CÚ�šs
+
+
+3477 
+CÚ�šs
+Ð
+NSSŒšg
+* 
+sub¡r
+ ){  
+Im¶
+::
+NSSŒšgM©ch”s
+::Contains( substr ); }
+
+3479 
+šlše
+ 
+	gIm¶
+::
+NSSŒšgM©ch”s
+::
+S�¹sW™h
+
+
+3480 
+S�¹sW™h
+Ð
+NSSŒšg
+* 
+sub¡r
+ ){  
+Im¶
+::
+NSSŒšgM©ch”s
+::StartsWith( substr ); }
+
+3482 
+šlše
+ 
+	gIm¶
+::
+NSSŒšgM©ch”s
+::
+EndsW™h
+
+
+3483 
+EndsW™h
+Ð
+NSSŒšg
+* 
+sub¡r
+ ){  
+Im¶
+::
+NSSŒšgM©ch”s
+::EndsWith( substr ); }
+
+3487 
+usšg
+ 
+Çme¥aû
+ 
+	gM©ch”s
+;
+
+3492 
+	#OC_TEST_CASE
+Ð
+Çme
+, 
+desc
+ )\
+
+3493 +(
+NSSŒšg
+*è
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+C©ch_Name_‹¡
+ ) \
+
+3495  @ 
+Çme
+; \
+
+3497 +(
+NSSŒšg
+*è
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+C©ch_Desü�tiÚ_‹¡
+ ) \
+
+3499  @ 
+desc
+; \
+
+3501 -(è
+	`INTERNAL_CATCH_UNIQUE_NAME
+Ð
+C©ch_Te¡Ca£_‹¡
+ )
+
+	)
+
+3505 #ifdeà
+CATCH_IMPL
+
+
+3508 #ifdeà
+CATCH_CONFIG_WINDOWS_CRTDBG
+
+
+3509 
+	~<ütdbg.h
+>
+
+3510 þas 
+	cL—kD‘eùÜ
+ {
+
+3511 
+	mpublic
+:
+
+3512 
+	$L—kD‘eùÜ
+() {
+
+3513 
+æag
+ = 
+	`_C¹S‘DbgFÏg
+(
+_CRTDBG_REPORT_FLAG
+);
+
+3514 
+æag
+ |ð
+_CRTDBG_LEAK_CHECK_DF
+;
+
+3515 
+æag
+ |ð
+_CRTDBG_ALLOC_MEM_DF
+;
+
+3516 
+	`_C¹S‘DbgFÏg
+(
+æag
+);
+
+3517 
+	`_C¹S‘R•ÜtMode
+(
+_CRT_WARN
+, 
+_CRTDBG_MODE_FILE
+ | 
+_CRTDBG_MODE_DEBUG
+);
+
+3518 
+	`_C¹S‘R•ÜtFže
+(
+_CRT_WARN
+, 
+_CRTDBG_FILE_STDERR
+);
+
+3520 
+	`_C¹S‘B»akAÎoc
+(-1);
+
+3522 
+	}
+};
+
+3524 þas 
+	cL—kD‘eùÜ
+ {};
+
+3527 
+L—kD‘eùÜ
+ 
+	gËakD‘eùÜ
+;
+
+3530 
+	#TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
+
+
+	)
+
+3535 #ifdeà
+__þªg__
+
+
+3536 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+3537 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wweak-vtables"
+
+3541 
+	#TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
+
+
+	)
+
+3544 
+	#TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
+
+
+	)
+
+3547 
+	#TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
+
+
+	)
+
+3550 
+	#TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
+
+
+	)
+
+3552 #ifdeà
+__þªg__
+
+
+3553 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+3554 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wpadded"
+
+3558 
+	#TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
+
+
+	)
+
+3560 #ifdeà
+__þªg__
+
+
+3561 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+3562 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wpadded"
+
+3566 
+	#TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED
+
+
+	)
+
+3568 
+	~<¡dexû±
+>
+
+3570 
+Çme¥aû
+ 
+	gC©ch
+
+
+3572 þas 
+	cWždÿrdP©‹º
+ {
+
+3573 
+	eWždÿrdPos™iÚ
+ {
+
+3574 
+	gNoWždÿrd
+ = 0,
+
+3575 
+	gWždÿrdAtS�¹
+ = 1,
+
+3576 
+	gWždÿrdAtEnd
+ = 2,
+
+3577 
+	gWždÿrdAtBÙhEnds
+ = 
+WždÿrdAtS�¹
+ | 
+WždÿrdAtEnd
+
+
+3580 
+	gpublic
+:
+
+3582 
+WždÿrdP©‹º
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+·‰”n
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ )
+
+3583 : 
+m_ÿ£S’s™iv™y
+Ð
+ÿ£S’s™iv™y
+ ),
+
+3584 
+m_wždÿrd
+Ð
+NoWždÿrd
+ ),
+
+3585 
+m_·‰”n
+Ð
+adju¡Ca£
+Ð
+·‰”n
+ ) )
+
+3587 ifÐ
+¡¬tsW™h
+Ð
+m_·‰”n
+, '*' ) ) {
+
+3588 
+	gm_·‰”n
+ = 
+m_·‰”n
+.
+sub¡r
+( 1 );
+
+3589 
+	gm_wždÿrd
+ = 
+WždÿrdAtS�¹
+;
+
+3591 ifÐ
+’dsW™h
+Ð
+m_·‰”n
+, '*' ) ) {
+
+3592 
+	gm_·‰”n
+ = 
+m_·‰”n
+.
+sub¡r
+Ð0, m_·‰”n.
+size
+()-1 );
+
+3593 
+	gm_wždÿrd
+ = 
+¡©ic_ÿ¡
+<
+WždÿrdPos™iÚ
+>Ð
+m_wždÿrd
+ | 
+WždÿrdAtEnd
+ );
+
+3596 
+	gvœtu®
+ ~
+WždÿrdP©‹º
+();
+
+3597 
+vœtu®
+ 
+boÞ
+ 
+m©ches
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+ ) const {
+
+3598  
+m_wždÿrd
+ ) {
+
+3599 
+NoWždÿrd
+:
+
+3600  
+m_·‰”n
+ =ð
+adju¡Ca£
+Ð
+¡r
+ );
+
+3601 
+	gWždÿrdAtS�¹
+:
+
+3602  
+’dsW™h
+Ð
+adju¡Ca£
+Ð
+¡r
+ ), 
+m_·‰”n
+ );
+
+3603 
+	gWždÿrdAtEnd
+:
+
+3604  
+¡¬tsW™h
+Ð
+adju¡Ca£
+Ð
+¡r
+ ), 
+m_·‰”n
+ );
+
+3605 
+	gWždÿrdAtBÙhEnds
+:
+
+3606  
+cÚ�šs
+Ð
+adju¡Ca£
+Ð
+¡r
+ ), 
+m_·‰”n
+ );
+
+3609 #ifdeà
+__þªg__
+
+
+3610 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+3611 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunreachable-code"
+
+3613 
+throw
+ 
+	g¡d
+::
+logic_”rÜ
+( "Unknownƒnum" );
+
+3614 #ifdeà
+__þªg__
+
+
+3615 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+3618 
+	g´iv©e
+:
+
+3619 
+¡d
+::
+¡ršg
+ 
+adju¡Ca£
+Ð¡d::¡ršg cÚ¡& 
+¡r
+ ) const {
+
+3620  
+m_ÿ£S’s™iv™y
+ =ð
+Ca£S’s™ive
+::
+No
+ ? 
+toLow”
+Ð
+¡r
+ ) : str;
+
+3622 
+	gCa£S’s™ive
+::
+Choiû
+ 
+m_ÿ£S’s™iv™y
+;
+
+3623 
+WždÿrdPos™iÚ
+ 
+	gm_wždÿrd
+;
+
+3624 
+	g¡d
+::
+¡ršg
+ 
+m_·‰”n
+;
+
+3628 
+	~<¡ršg
+>
+
+3629 
+	~<veùÜ
+>
+
+3631 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3633 þas 
+	cTe¡S³c
+ {
+
+3634 
+	gP©‹º
+ : 
+Sh¬edIm¶
+<> {
+
+3635 
+vœtu®
+ ~
+P©‹º
+();
+
+3636 
+vœtu®
+ 
+boÞ
+ 
+m©ches
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£
+ ) const = 0;
+
+3638 þas 
+	cNameP©‹º
+ : 
+public
+ 
+P©‹º
+ {
+
+3639 
+public
+:
+
+3640 
+NameP©‹º
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+ )
+
+3641 : 
+m_wždÿrdP©‹º
+Ð
+toLow”
+Ð
+Çme
+ ), 
+Ca£S’s™ive
+::
+No
+ )
+
+3643 
+vœtu®
+ ~
+NameP©‹º
+();
+
+3644 
+vœtu®
+ 
+boÞ
+ 
+m©ches
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£
+ ) const {
+
+3645  
+	gm_wždÿrdP©‹º
+.
+m©ches
+Ð
+toLow”
+Ð
+‹¡Ca£
+.
+Çme
+ ) );
+
+3647 
+	g´iv©e
+:
+
+3648 
+WždÿrdP©‹º
+ 
+m_wždÿrdP©‹º
+;
+
+3651 þas 
+	cTagP©‹º
+ : 
+public
+ 
+P©‹º
+ {
+
+3652 
+public
+:
+
+3653 
+TagP©‹º
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+�g
+ ) : 
+m_�g
+Ð
+toLow”
+(�ag ) ) {}
+
+3654 
+vœtu®
+ ~
+TagP©‹º
+();
+
+3655 
+vœtu®
+ 
+boÞ
+ 
+m©ches
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£
+ ) const {
+
+3656  
+	g‹¡Ca£
+.
+	glÿ£Tags
+.
+fšd
+Ð
+m_�g
+ ) !ð
+‹¡Ca£
+.
+lÿ£Tags
+.
+’d
+();
+
+3658 
+	g´iv©e
+:
+
+3659 
+¡d
+::
+¡ršg
+ 
+m_�g
+;
+
+3662 þas 
+	cExþudedP©‹º
+ : 
+public
+ 
+P©‹º
+ {
+
+3663 
+public
+:
+
+3664 
+ExþudedP©‹º
+Ð
+PŒ
+<
+P©‹º
+> cÚ¡& 
+und”lyšgP©‹º
+ ) : 
+m_und”lyšgP©‹º
+( underlyingPattern ) {}
+
+3665 
+vœtu®
+ ~
+ExþudedP©‹º
+();
+
+3666 
+vœtu®
+ 
+boÞ
+ 
+m©ches
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£
+ ) cÚ¡ {  !
+	gm_und”lyšgP©‹º
+->matches(�estCase ); }
+
+3667 
+	g´iv©e
+:
+
+3668 
+PŒ
+<
+P©‹º
+> 
+m_und”lyšgP©‹º
+;
+
+3671 
+	sFž‹r
+ {
+
+3672 
+	g¡d
+::
+veùÜ
+<
+PŒ
+<
+P©‹º
+> > 
+m_·‰”ns
+;
+
+3674 
+boÞ
+ 
+m©ches
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£
+ ) const {
+
+3676  
+	g¡d
+::
+veùÜ
+<
+PŒ
+<
+P©‹º
+> >::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_·‰”ns
+.
+begš
+(), 
+	g™End
+ = m_·‰”ns.
+’d
+(); 
+	g™
+ !ð
+™End
+; ++it ) {
+
+3677 ifÐ!(*
+	g™
+)->
+m©ches
+Ð
+‹¡Ca£
+ ) )
+
+3678  
+	gçl£
+;
+
+3680  
+	gŒue
+;
+
+3684 
+	gpublic
+:
+
+3685 
+boÞ
+ 
+hasFž‹rs
+() const {
+
+3686  !
+m_fž‹rs
+.
+em±y
+();
+
+3688 
+boÞ
+ 
+m©ches
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£
+ ) const {
+
+3690  
+	g¡d
+::
+veùÜ
+<
+Fž‹r
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_fž‹rs
+.
+begš
+(), 
+	g™End
+ = m_fž‹rs.
+’d
+(); 
+	g™
+ !ð
+™End
+; ++it )
+
+3691 ifÐ
+	g™
+->
+m©ches
+Ð
+‹¡Ca£
+ ) )
+
+3692  
+	gŒue
+;
+
+3693  
+	gçl£
+;
+
+3696 
+	g´iv©e
+:
+
+3697 
+¡d
+::
+veùÜ
+<
+Fž‹r
+> 
+m_fž‹rs
+;
+
+3699 
+ä›nd
+ 
+þass
+ 
+	gTe¡S³cP¬£r
+;
+
+3703 #ifdeà
+__þªg__
+
+
+3704 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+3707 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3709 þas 
+	cTe¡S³cP¬£r
+ {
+
+3710 
+	eMode
+{ 
+	gNÚe
+, 
+	gName
+, 
+	gQuÙedName
+, 
+	gTag
+, 
+	gEsÿ³dName
+ };
+
+3711 
+Mode
+ 
+	gm_mode
+;
+
+3712 
+boÞ
+ 
+	gm_exþusiÚ
+;
+
+3713 
+	g¡d
+::
+size_t
+ 
+m_¡¬t
+, 
+	gm_pos
+;
+
+3714 
+	g¡d
+::
+¡ršg
+ 
+m_¬g
+;
+
+3715 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+size_t
+> 
+m_esÿ³Ch¬s
+;
+
+3716 
+	gTe¡S³c
+::
+Fž‹r
+ 
+m_cu¼’tFž‹r
+;
+
+3717 
+Te¡S³c
+ 
+	gm_‹¡S³c
+;
+
+3718 
+ITagAlŸsRegi¡ry
+ cÚ¡* 
+	gm_�gAlŸ£s
+;
+
+3720 
+	gpublic
+:
+
+3721 
+Te¡S³cP¬£r
+Ð
+ITagAlŸsRegi¡ry
+ cÚ¡& 
+�gAlŸ£s
+ ) :
+m_mode
+(
+NÚe
+), 
+m_exþusiÚ
+(
+çl£
+), 
+m_¡¬t
+(0), 
+m_pos
+(0), 
+m_�gAlŸ£s
+( &tagAliases ) {}
+
+3723 
+	gTe¡S³cP¬£r
+& 
+·r£
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¬g
+ ) {
+
+3724 
+m_mode
+ = 
+NÚe
+;
+
+3725 
+	gm_exþusiÚ
+ = 
+çl£
+;
+
+3726 
+	gm_¡¬t
+ = 
+¡d
+::
+¡ršg
+::
+Åos
+;
+
+3727 
+	gm_¬g
+ = 
+m_�gAlŸ£s
+->
+ex·ndAlŸ£s
+Ð
+¬g
+ );
+
+3728 
+	gm_esÿ³Ch¬s
+.
+þ—r
+();
+
+3729  
+	gm_pos
+ = 0; m_po < 
+	gm_¬g
+.
+size
+(); ++m_pos )
+
+3730 
+vis™Ch¬
+Ð
+m_¬g
+[
+m_pos
+] );
+
+3731 ifÐ
+	gm_mode
+ =ð
+Name
+ )
+
+3732 
+addP©‹º
+<
+Te¡S³c
+::
+NameP©‹º
+>();
+
+3733  *
+	gthis
+;
+
+3735 
+Te¡S³c
+ 
+‹¡S³c
+() {
+
+3736 
+addFž‹r
+();
+
+3737  
+	gm_‹¡S³c
+;
+
+3739 
+	g´iv©e
+:
+
+3740 
+vis™Ch¬
+Ð
+c
+ ) {
+
+3741 ifÐ
+m_mode
+ =ð
+NÚe
+ ) {
+
+3742  
+c
+ ) {
+
+3744 '~': 
+m_exþusiÚ
+ = 
+Œue
+; ;
+
+3745 '[':  
+¡¬tNewMode
+Ð
+Tag
+, ++
+m_pos
+ );
+
+3746 '"':  
+¡¬tNewMode
+Ð
+QuÙedName
+, ++
+m_pos
+ );
+
+3747 '\\':  
+esÿ³
+();
+
+3748 : 
+¡¬tNewMode
+Ð
+Name
+, 
+m_pos
+ ); ;
+
+3751 ifÐ
+	gm_mode
+ =ð
+Name
+ ) {
+
+3752 ifÐ
+c
+ == ',' ) {
+
+3753 
+addP©‹º
+<
+Te¡S³c
+::
+NameP©‹º
+>();
+
+3754 
+addFž‹r
+();
+
+3756 ifÐ
+	gc
+ == '[' ) {
+
+3757 ifÐ
+subSŒšg
+() == "exclude:" )
+
+3758 
+m_exþusiÚ
+ = 
+Œue
+;
+
+3760 
+	gaddP©‹º
+<
+	gTe¡S³c
+::
+NameP©‹º
+>();
+
+3761 
+¡¬tNewMode
+Ð
+Tag
+, ++
+m_pos
+ );
+
+3763 ifÐ
+	gc
+ == '\\' )
+
+3764 
+esÿ³
+();
+
+3766 ifÐ
+	gm_mode
+ =ð
+Esÿ³dName
+ )
+
+3767 
+m_mode
+ = 
+Name
+;
+
+3768 ifÐ
+	gm_mode
+ =ð
+QuÙedName
+ && 
+c
+ == '"' )
+
+3769 
+addP©‹º
+<
+Te¡S³c
+::
+NameP©‹º
+>();
+
+3770 ifÐ
+	gm_mode
+ =ð
+Tag
+ && 
+c
+ == ']' )
+
+3771 
+addP©‹º
+<
+Te¡S³c
+::
+TagP©‹º
+>();
+
+3773 
+¡¬tNewMode
+Ð
+Mode
+ 
+mode
+, 
+¡d
+::
+size_t
+ 
+¡¬t
+ ) {
+
+3774 
+m_mode
+ = 
+mode
+;
+
+3775 
+	gm_¡¬t
+ = 
+¡¬t
+;
+
+3777 
+esÿ³
+() {
+
+3778 ifÐ
+	gm_mode
+ =ð
+NÚe
+ )
+
+3779 
+m_¡¬t
+ = 
+m_pos
+;
+
+3780 
+	gm_mode
+ = 
+Esÿ³dName
+;
+
+3781 
+	gm_esÿ³Ch¬s
+.
+push_back
+Ð
+m_pos
+ );
+
+3783 
+	g¡d
+::
+¡ršg
+ 
+subSŒšg
+(ècÚ¡ {  
+m_¬g
+.
+sub¡r
+Ð
+m_¡¬t
+, 
+m_pos
+ - m_start ); }
+
+3784 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+3785 
+addP©‹º
+() {
+
+3786 
+	g¡d
+::
+¡ršg
+ 
+tok’
+ = 
+subSŒšg
+();
+
+3787  
+size_t
+ 
+	gi
+ = 0; i < 
+	gm_esÿ³Ch¬s
+.
+size
+(); ++i )
+
+3788 
+	gtok’
+ = 
+tok’
+.
+sub¡r
+Ð0, 
+m_esÿ³Ch¬s
+[
+i
+]-
+m_¡¬t
+-i ) +�oken.substr( m_escapeChars[i]-m_start-i+1 );
+
+3789 
+	gm_esÿ³Ch¬s
+.
+þ—r
+();
+
+3790 ifÐ
+¡¬tsW™h
+Ð
+tok’
+, "exclude:" ) ) {
+
+3791 
+	gm_exþusiÚ
+ = 
+Œue
+;
+
+3792 
+	gtok’
+ = 
+tok’
+.
+sub¡r
+( 8 );
+
+3794 ifÐ!
+	gtok’
+.
+em±y
+() ) {
+
+3795 
+	gPŒ
+<
+	gTe¡S³c
+::
+P©‹º
+> 
+·‰”n
+ = 
+Ãw
+ 
+T
+Ð
+tok’
+ );
+
+3796 ifÐ
+	gm_exþusiÚ
+ )
+
+3797 
+	g·‰”n
+ = 
+Ãw
+ 
+Te¡S³c
+::
+ExþudedP©‹º
+Ð
+·‰”n
+ );
+
+3798 
+	gm_cu¼’tFž‹r
+.
+	gm_·‰”ns
+.
+push_back
+Ð
+·‰”n
+ );
+
+3800 
+	gm_exþusiÚ
+ = 
+çl£
+;
+
+3801 
+	gm_mode
+ = 
+NÚe
+;
+
+3803 
+addFž‹r
+() {
+
+3804 ifÐ!
+	gm_cu¼’tFž‹r
+.
+	gm_·‰”ns
+.
+em±y
+() ) {
+
+3805 
+	gm_‹¡S³c
+.
+	gm_fž‹rs
+.
+push_back
+Ð
+m_cu¼’tFž‹r
+ );
+
+3806 
+	gm_cu¼’tFž‹r
+ = 
+Te¡S³c
+::
+Fž‹r
+();
+
+3810 
+šlše
+ 
+Te¡S³c
+ 
+	$·r£Te¡S³c
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¬g
+ ) {
+
+3811  
+	`Te¡S³cP¬£r
+Ð
+ITagAlŸsRegi¡ry
+::
+	`g‘
+(è).
+	`·r£
+Ð
+¬g
+ ).
+	`‹¡S³c
+();
+
+3812 
+	}
+}
+
+3816 #ifdeà
+__þªg__
+
+
+3817 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+3821 
+	#TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
+
+
+	)
+
+3823 
+	~<iosfwd
+>
+
+3824 
+	~<¡ršg
+>
+
+3825 
+	~<veùÜ
+>
+
+3827 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3829 
+	sV”bos™y
+ { 
+	eLev–
+ {
+
+3830 
+	gNoOu�ut
+ = 0,
+
+3831 
+	gQu›t
+,
+
+3832 
+	gNÜm®
+
+
+3835 
+	sW¬nAbout
+ { 
+	eWh©
+ {
+
+3836 
+	gNÙhšg
+ = 0x00,
+
+3837 
+	gNoAs£¹iÚs
+ = 0x01
+
+3840 
+	sShowDu¿tiÚs
+ { 
+	eOrNÙ
+ {
+
+3841 
+	gDeçuÉFÜR•Ü‹r
+,
+
+3842 
+	gAlways
+,
+
+3843 
+	gNev”
+
+
+3845 
+	sRunTe¡s
+ { 
+	eInWh©Ord”
+ {
+
+3846 
+	gInDeþ¬©iÚOrd”
+,
+
+3847 
+	gInLexicog¿phiÿlOrd”
+,
+
+3848 
+	gInRªdomOrd”
+
+
+3850 
+	sU£CÞour
+ { 
+	eYesOrNo
+ {
+
+3851 
+	gAuto
+,
+
+3852 
+	gYes
+,
+
+3853 
+	gNo
+
+
+3856 
+þass
+ 
+	gTe¡S³c
+;
+
+3858 
+	gICÚfig
+ : 
+ISh¬ed
+ {
+
+3860 
+vœtu®
+ ~
+ICÚfig
+();
+
+3862 
+vœtu®
+ 
+boÞ
+ 
+®lowThrows
+() const = 0;
+
+3863 
+vœtu®
+ 
+	g¡d
+::
+o¡»am
+& 
+¡»am
+() const = 0;
+
+3864 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+Çme
+() const = 0;
+
+3865 
+vœtu®
+ 
+boÞ
+ 
+šþudeSucûssfulResuÉs
+() const = 0;
+
+3866 
+vœtu®
+ 
+boÞ
+ 
+shouldDebugB»ak
+() const = 0;
+
+3867 
+vœtu®
+ 
+boÞ
+ 
+w¬nAboutMissšgAs£¹iÚs
+() const = 0;
+
+3868 
+vœtu®
+ 
+abÜtAá”
+() const = 0;
+
+3869 
+vœtu®
+ 
+boÞ
+ 
+showInvisibËs
+() const = 0;
+
+3870 
+vœtu®
+ 
+	gShowDu¿tiÚs
+::
+OrNÙ
+ 
+showDu¿tiÚs
+() const = 0;
+
+3871 
+vœtu®
+ 
+Te¡S³c
+ cÚ¡& 
+‹¡S³c
+() const = 0;
+
+3872 
+vœtu®
+ 
+	gRunTe¡s
+::
+InWh©Ord”
+ 
+runOrd”
+() const = 0;
+
+3873 
+vœtu®
+ 
+ºgS“d
+() const = 0;
+
+3874 
+vœtu®
+ 
+	gU£CÞour
+::
+YesOrNo
+ 
+u£CÞour
+() const = 0;
+
+3875 
+vœtu®
+ 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> cÚ¡& 
+g‘SeùiÚsToRun
+() const = 0;
+
+3881 
+	#TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
+
+
+	)
+
+3884 
+	#TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
+
+
+	)
+
+3886 
+	~<¡»ambuf
+>
+
+3888 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3890 þas 
+	cSŒ—mBufBa£
+ : 
+public
+ 
+¡d
+::
+¡»ambuf
+ {
+
+3891 
+public
+:
+
+3892 
+vœtu®
+ ~
+SŒ—mBufBa£
+(è
+CATCH_NOEXCEPT
+;
+
+3896 
+	~<¡»ambuf
+>
+
+3897 
+	~<o¡»am
+>
+
+3898 
+	~<f¡»am
+>
+
+3899 
+	~<memÜy
+>
+
+3901 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3903 
+	g¡d
+::
+o¡»am
+& 
+cout
+();
+
+3904 
+	g¡d
+::
+o¡»am
+& 
+û¼
+();
+
+3905 
+	g¡d
+::
+o¡»am
+& 
+þog
+();
+
+3907 
+	sISŒ—m
+ {
+
+3908 
+	gvœtu®
+ ~
+ISŒ—m
+(è
+	gCATCH_NOEXCEPT
+;
+
+3909 
+vœtu®
+ 
+	g¡d
+::
+o¡»am
+& 
+¡»am
+() const = 0;
+
+3912 þas 
+	cFžeSŒ—m
+ : 
+public
+ 
+ISŒ—m
+ {
+
+3913 
+mu�bË
+ 
+¡d
+::
+of¡»am
+ 
+m_ofs
+;
+
+3914 
+	gpublic
+:
+
+3915 
+FžeSŒ—m
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+fž’ame
+ );
+
+3916 
+	gvœtu®
+ ~
+FžeSŒ—m
+(è
+	gCATCH_NOEXCEPT
+;
+
+3917 
+	gpublic
+:
+
+3918 
+vœtu®
+ 
+¡d
+::
+o¡»am
+& 
+¡»am
+(ècÚ¡ 
+CATCH_OVERRIDE
+;
+
+3921 þas 
+	cCoutSŒ—m
+ : 
+public
+ 
+ISŒ—m
+ {
+
+3922 
+mu�bË
+ 
+¡d
+::
+o¡»am
+ 
+m_os
+;
+
+3923 
+	gpublic
+:
+
+3924 
+CoutSŒ—m
+();
+
+3925 
+	gvœtu®
+ ~
+CoutSŒ—m
+(è
+	gCATCH_NOEXCEPT
+;
+
+3927 
+	gpublic
+:
+
+3928 
+vœtu®
+ 
+¡d
+::
+o¡»am
+& 
+¡»am
+(ècÚ¡ 
+CATCH_OVERRIDE
+;
+
+3931 þas 
+	cDebugOutSŒ—m
+ : 
+public
+ 
+ISŒ—m
+ {
+
+3932 
+CATCH_AUTO_PTR
+Ð
+SŒ—mBufBa£
+ ) 
+m_¡»amBuf
+;
+
+3933 
+mu�bË
+ 
+	g¡d
+::
+o¡»am
+ 
+m_os
+;
+
+3934 
+	gpublic
+:
+
+3935 
+DebugOutSŒ—m
+();
+
+3936 
+	gvœtu®
+ ~
+DebugOutSŒ—m
+(è
+	gCATCH_NOEXCEPT
+;
+
+3938 
+	gpublic
+:
+
+3939 
+vœtu®
+ 
+¡d
+::
+o¡»am
+& 
+¡»am
+(ècÚ¡ 
+CATCH_OVERRIDE
+;
+
+3943 
+	~<memÜy
+>
+
+3944 
+	~<veùÜ
+>
+
+3945 
+	~<¡ršg
+>
+
+3946 
+	~<¡dexû±
+>
+
+3948 #iâdeà
+CATCH_CONFIG_CONSOLE_WIDTH
+
+
+3949 
+	#CATCH_CONFIG_CONSOLE_WIDTH
+ 80
+
+	)
+
+3952 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+3954 
+	sCÚfigD©a
+ {
+
+3956 
+CÚfigD©a
+()
+
+3957 : 
+li¡Te¡s
+Ð
+çl£
+ ),
+
+3958 
+li¡Tags
+Ð
+çl£
+ ),
+
+3959 
+li¡R•Ü‹rs
+Ð
+çl£
+ ),
+
+3960 
+li¡Te¡NamesOÆy
+Ð
+çl£
+ ),
+
+3961 
+li¡ExŒaInfo
+Ð
+çl£
+ ),
+
+3962 
+showSucûssfulTe¡s
+Ð
+çl£
+ ),
+
+3963 
+shouldDebugB»ak
+Ð
+çl£
+ ),
+
+3964 
+noThrow
+Ð
+çl£
+ ),
+
+3965 
+showH–p
+Ð
+çl£
+ ),
+
+3966 
+showInvisibËs
+Ð
+çl£
+ ),
+
+3967 
+fž’amesAsTags
+Ð
+çl£
+ ),
+
+3968 
+abÜtAá”
+( -1 ),
+
+3969 
+ºgS“d
+( 0 ),
+
+3970 
+v”bos™y
+Ð
+V”bos™y
+::
+NÜm®
+ ),
+
+3971 
+w¬nšgs
+Ð
+W¬nAbout
+::
+NÙhšg
+ ),
+
+3972 
+showDu¿tiÚs
+Ð
+ShowDu¿tiÚs
+::
+DeçuÉFÜR•Ü‹r
+ ),
+
+3973 
+runOrd”
+Ð
+RunTe¡s
+::
+InDeþ¬©iÚOrd”
+ ),
+
+3974 
+u£CÞour
+Ð
+U£CÞour
+::
+Auto
+ )
+
+3977 
+boÞ
+ 
+li¡Te¡s
+;
+
+3978 
+boÞ
+ 
+	gli¡Tags
+;
+
+3979 
+boÞ
+ 
+	gli¡R•Ü‹rs
+;
+
+3980 
+boÞ
+ 
+	gli¡Te¡NamesOÆy
+;
+
+3981 
+boÞ
+ 
+	gli¡ExŒaInfo
+;
+
+3983 
+boÞ
+ 
+	gshowSucûssfulTe¡s
+;
+
+3984 
+boÞ
+ 
+	gshouldDebugB»ak
+;
+
+3985 
+boÞ
+ 
+	gnoThrow
+;
+
+3986 
+boÞ
+ 
+	gshowH–p
+;
+
+3987 
+boÞ
+ 
+	gshowInvisibËs
+;
+
+3988 
+boÞ
+ 
+	gfž’amesAsTags
+;
+
+3990 
+	gabÜtAá”
+;
+
+3991 
+	gºgS“d
+;
+
+3993 
+	gV”bos™y
+::
+Lev–
+ 
+v”bos™y
+;
+
+3994 
+	gW¬nAbout
+::
+Wh©
+ 
+w¬nšgs
+;
+
+3995 
+	gShowDu¿tiÚs
+::
+OrNÙ
+ 
+showDu¿tiÚs
+;
+
+3996 
+	gRunTe¡s
+::
+InWh©Ord”
+ 
+runOrd”
+;
+
+3997 
+	gU£CÞour
+::
+YesOrNo
+ 
+u£CÞour
+;
+
+3999 
+	g¡d
+::
+¡ršg
+ 
+ou�utFž’ame
+;
+
+4000 
+	g¡d
+::
+¡ršg
+ 
+Çme
+;
+
+4001 
+	g¡d
+::
+¡ršg
+ 
+´oûssName
+;
+
+4003 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+»pÜ‹rNames
+;
+
+4004 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+‹¡sOrTags
+;
+
+4005 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+£ùiÚsToRun
+;
+
+4008 
+þass
+ 
+	gCÚfig
+ : 
+public
+ 
+Sh¬edIm¶
+<
+ICÚfig
+> {
+
+4009 
+´iv©e
+:
+
+4010 
+CÚfig
+ÐCÚfig cÚ¡& 
+Ùh”
+ );
+
+4011 
+	gCÚfig
+& 
+	gÝ”©Ü
+ = ( 
+CÚfig
+ cÚ¡& 
+Ùh”
+ );
+
+4012 
+vœtu®
+ 
+dummy
+();
+
+4013 
+	gpublic
+:
+
+4015 
+CÚfig
+()
+
+4018 
+CÚfig
+Ð
+CÚfigD©a
+ cÚ¡& 
+d©a
+ )
+
+4019 : 
+m_d©a
+Ð
+d©a
+ ),
+
+4020 
+m_¡»am
+Ð
+Ý’SŒ—m
+() )
+
+4022 ifÐ!
+	gd©a
+.
+	g‹¡sOrTags
+.
+em±y
+() ) {
+
+4023 
+Te¡S³cP¬£r
+ 
+·r£r
+Ð
+ITagAlŸsRegi¡ry
+::
+g‘
+() );
+
+4024  
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gd©a
+.
+	g‹¡sOrTags
+.
+size
+(); ++i )
+
+4025 
+	g·r£r
+.
+·r£
+Ð
+d©a
+.
+‹¡sOrTags
+[
+i
+] );
+
+4026 
+	gm_‹¡S³c
+ = 
+·r£r
+.
+‹¡S³c
+();
+
+4030 
+	gvœtu®
+ ~
+CÚfig
+() {}
+
+4032 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+g‘Fž’ame
+() const {
+
+4033  
+m_d©a
+.
+ou�utFž’ame
+ ;
+
+4036 
+boÞ
+ 
+li¡Te¡s
+(ècÚ¡ {  
+	gm_d©a
+.
+	gli¡Te¡s
+; }
+
+4037 
+boÞ
+ 
+li¡Te¡NamesOÆy
+(ècÚ¡ {  
+	gm_d©a
+.
+	gli¡Te¡NamesOÆy
+; }
+
+4038 
+boÞ
+ 
+li¡Tags
+(ècÚ¡ {  
+	gm_d©a
+.
+	gli¡Tags
+; }
+
+4039 
+boÞ
+ 
+li¡R•Ü‹rs
+(ècÚ¡ {  
+	gm_d©a
+.
+	gli¡R•Ü‹rs
+; }
+
+4040 
+boÞ
+ 
+li¡ExŒaInfo
+(ècÚ¡ {  
+	gm_d©a
+.
+	gli¡ExŒaInfo
+; }
+
+4042 
+	g¡d
+::
+¡ršg
+ 
+g‘ProûssName
+(ècÚ¡ {  
+m_d©a
+.
+´oûssName
+; }
+
+4044 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> cÚ¡& 
+g‘R•Ü‹rNames
+(ècÚ¡ {  
+m_d©a
+.
+»pÜ‹rNames
+; }
+
+4045 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> cÚ¡& 
+g‘SeùiÚsToRun
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {  
+m_d©a
+.
+£ùiÚsToRun
+; }
+
+4047 
+vœtu®
+ 
+Te¡S³c
+ cÚ¡& 
+‹¡S³c
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gm_‹¡S³c
+; }
+
+4049 
+boÞ
+ 
+showH–p
+(ècÚ¡ {  
+	gm_d©a
+.
+	gshowH–p
+; }
+
+4052 
+vœtu®
+ 
+boÞ
+ 
+®lowThrows
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  !
+	gm_d©a
+.
+	gnoThrow
+; }
+
+4053 
+vœtu®
+ 
+	g¡d
+::
+o¡»am
+& 
+¡»am
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {  
+m_¡»am
+->stream(); }
+
+4054 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+Çme
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {  
+m_d©a
+.Çme.
+em±y
+(è? m_d©a.
+´oûssName
+ : m_data.name; }
+
+4055 
+vœtu®
+ 
+boÞ
+ 
+šþudeSucûssfulResuÉs
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gm_d©a
+.
+	gshowSucûssfulTe¡s
+; }
+
+4056 
+vœtu®
+ 
+boÞ
+ 
+w¬nAboutMissšgAs£¹iÚs
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gm_d©a
+.
+	gw¬nšgs
+ & 
+	gW¬nAbout
+::
+NoAs£¹iÚs
+; }
+
+4057 
+vœtu®
+ 
+	gShowDu¿tiÚs
+::
+OrNÙ
+ 
+showDu¿tiÚs
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {  
+m_d©a
+.showDurations; }
+
+4058 
+vœtu®
+ 
+	gRunTe¡s
+::
+InWh©Ord”
+ 
+runOrd”
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {  
+m_d©a
+.runOrder; }
+
+4059 
+vœtu®
+ 
+ºgS“d
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gm_d©a
+.
+	gºgS“d
+; }
+
+4060 
+vœtu®
+ 
+	gU£CÞour
+::
+YesOrNo
+ 
+u£CÞour
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {  
+m_d©a
+.useColour; }
+
+4061 
+vœtu®
+ 
+boÞ
+ 
+shouldDebugB»ak
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gm_d©a
+.
+	gshouldDebugB»ak
+; }
+
+4062 
+vœtu®
+ 
+abÜtAá”
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gm_d©a
+.
+	gabÜtAá”
+; }
+
+4063 
+vœtu®
+ 
+boÞ
+ 
+showInvisibËs
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gm_d©a
+.
+	gshowInvisibËs
+; }
+
+4065 
+	g´iv©e
+:
+
+4067 
+ISŒ—m
+ cÚ¡* 
+Ý’SŒ—m
+() {
+
+4068 ifÐ
+m_d©a
+.
+ou�utFž’ame
+.
+em±y
+() )
+
+4069  
+Ãw
+ 
+CoutSŒ—m
+();
+
+4070 ifÐ
+	gm_d©a
+.
+	gou�utFž’ame
+[0] == '%' ) {
+
+4071 ifÐ
+m_d©a
+.
+ou�utFž’ame
+ == "%debug" )
+
+4072  
+Ãw
+ 
+DebugOutSŒ—m
+();
+
+4074 
+throw
+ 
+	g¡d
+::
+domaš_”rÜ
+Ð"UÄecogni£d sŒ—m: " + 
+m_d©a
+.
+ou�utFž’ame
+ );
+
+4077  
+Ãw
+ 
+FžeSŒ—m
+Ð
+m_d©a
+.
+ou�utFž’ame
+ );
+
+4079 
+CÚfigD©a
+ 
+	gm_d©a
+;
+
+4081 
+CATCH_AUTO_PTR
+Ð
+ISŒ—m
+ cÚ¡ ) 
+	gm_¡»am
+;
+
+4082 
+Te¡S³c
+ 
+	gm_‹¡S³c
+;
+
+4088 
+	#TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
+
+
+	)
+
+4091 #ifdeà
+CLARA_CONFIG_CONSOLE_WIDTH
+
+
+4092 
+	#CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+ 
+CLARA_CONFIG_CONSOLE_WIDTH
+
+
+	)
+
+4093 #undeà
+CLARA_CONFIG_CONSOLE_WIDTH
+
+
+4095 
+	#CLARA_CONFIG_CONSOLE_WIDTH
+ 
+CATCH_CONFIG_CONSOLE_WIDTH
+
+
+	)
+
+4098 
+	#STITCH_CLARA_OPEN_NAMESPACE
+ 
+Çme¥aû
+ 
+C©ch
+ {
+
+	)
+
+4104 #ià!
+defšed
+(
+TWOBLUECUBES_CLARA_H_INCLUDED
+è|| defšed(
+STITCH_CLARA_OPEN_NAMESPACE
+)
+
+4106 #iâdeà
+STITCH_CLARA_OPEN_NAMESPACE
+
+
+4107 
+	#TWOBLUECUBES_CLARA_H_INCLUDED
+
+
+	)
+
+4108 
+	#STITCH_CLARA_OPEN_NAMESPACE
+
+
+	)
+
+4109 
+	#STITCH_CLARA_CLOSE_NAMESPACE
+
+
+	)
+
+4111 
+	#STITCH_CLARA_CLOSE_NAMESPACE
+ }
+
+	)
+
+4114 
+	#STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
+ 
+STITCH_CLARA_OPEN_NAMESPACE
+
+
+	)
+
+4119 #ià!
+defšed
+(
+TBC_TEXT_FORMAT_H_INCLUDED
+è|| defšed(
+STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+)
+
+4120 #iâdeà
+STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+
+4121 
+	#TBC_TEXT_FORMAT_H_INCLUDED
+
+
+	)
+
+4124 
+	~<¡ršg
+>
+
+4125 
+	~<veùÜ
+>
+
+4126 
+	~<s¡»am
+>
+
+4127 
+	~<®gÜ™hm
+>
+
+4128 
+	~<cùy³
+>
+
+4131 #ifdeà
+STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+
+4132 
+Çme¥aû
+ 
+	gSTITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+ {
+
+4135 
+Çme¥aû
+ 
+	gTbc
+ {
+
+4137 #ifdeà
+TBC_TEXT_FORMAT_CONSOLE_WIDTH
+
+
+4138 cÚ¡ 
+	gcÚsÞeWidth
+ = 
+TBC_TEXT_FORMAT_CONSOLE_WIDTH
+;
+
+4140 cÚ¡ 
+	gcÚsÞeWidth
+ = 80;
+
+4143 
+	sTextA‰ribu‹s
+ {
+
+4144 
+TextA‰ribu‹s
+()
+
+4145 : 
+š™ŸlInd’t
+Ð
+¡d
+::
+¡ršg
+::
+Åos
+ ),
+
+4146 
+šd’t
+( 0 ),
+
+4147 
+width
+Ð
+cÚsÞeWidth
+-1 ),
+
+4148 
+�bCh¬
+( '\t' )
+
+4151 
+	gTextA‰ribu‹s
+& 
+£tIn™ŸlInd’t
+Ð
+¡d
+::
+size_t
+ 
+_v®ue
+ ) { 
+š™ŸlInd’t
+ = _v®ue;  *
+	gthis
+; }
+
+4152 
+	gTextA‰ribu‹s
+& 
+£tInd’t
+Ð
+¡d
+::
+size_t
+ 
+_v®ue
+ ) { 
+šd’t
+ = _v®ue;  *
+	gthis
+; }
+
+4153 
+	gTextA‰ribu‹s
+& 
+£tWidth
+Ð
+¡d
+::
+size_t
+ 
+_v®ue
+ ) { 
+width
+ = _v®ue;  *
+	gthis
+; }
+
+4154 
+	gTextA‰ribu‹s
+& 
+£tTabCh¬
+Ð
+_v®ue
+ ) { 
+	g�bCh¬
+ = _v®ue;  *
+	gthis
+; }
+
+4156 
+	g¡d
+::
+size_t
+ 
+š™ŸlInd’t
+;
+
+4157 
+	g¡d
+::
+size_t
+ 
+šd’t
+;
+
+4158 
+	g¡d
+::
+size_t
+ 
+width
+;
+
+4159 
+	g�bCh¬
+;
+
+4162 þas 
+	cText
+ {
+
+4163 
+	gpublic
+:
+
+4164 
+Text
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_¡r
+, 
+TextA‰ribu‹s
+ cÚ¡& 
+_©Œ
+ = TextAttributes() )
+
+4165 : 
+©Œ
+Ð
+_©Œ
+ )
+
+4167 
+¡d
+::
+¡ršg
+ 
+w¿µabËCh¬s
+ = " [({.,/|\\-";
+
+4168 
+	g¡d
+::
+size_t
+ 
+šd’t
+ = 
+_©Œ
+.
+š™ŸlInd’t
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+
+
+4169 ? 
+_©Œ
+.
+š™ŸlInd’t
+
+
+4170 : 
+_©Œ
+.
+šd’t
+;
+
+4171 
+	g¡d
+::
+¡ršg
+ 
+»mašd”
+ = 
+_¡r
+;
+
+4173  !
+	g»mašd”
+.
+em±y
+() ) {
+
+4174 ifÐ
+	glšes
+.
+size
+() >= 1000 ) {
+
+4175 
+lšes
+.
+push_back
+( "... message�runcated due�oƒxcessive size" );
+
+4178 
+	g¡d
+::
+size_t
+ 
+�bPos
+ = 
+¡d
+::
+¡ršg
+::
+Åos
+;
+
+4179 
+	g¡d
+::
+size_t
+ 
+width
+ = (
+¡d
+::
+mš
+)Ð
+»mašd”
+.
+size
+(), 
+	g_©Œ
+.
+	gwidth
+ - 
+	gšd’t
+ );
+
+4180 
+	g¡d
+::
+size_t
+ 
+pos
+ = 
+»mašd”
+.
+fšd_fœ¡_of
+( '\n' );
+
+4181 ifÐ
+	gpos
+ <ð
+width
+ ) {
+
+4182 
+width
+ = 
+pos
+;
+
+4184 
+	gpos
+ = 
+»mašd”
+.
+fšd_Ï¡_of
+Ð
+_©Œ
+.
+�bCh¬
+, 
+width
+ );
+
+4185 ifÐ
+	gpos
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ ) {
+
+4186 
+�bPos
+ = 
+pos
+;
+
+4187 ifÐ
+	g»mašd”
+[
+width
+] == '\n' )
+
+4188 
+width
+--;
+
+4189 
+	g»mašd”
+ = 
+»mašd”
+.
+sub¡r
+Ð0, 
+�bPos
+ ) +„emainder.substr(�abPos+1 );
+
+4192 ifÐ
+	gwidth
+ =ð
+»mašd”
+.
+size
+() ) {
+
+4193 
+¥liûLše
+Ð
+šd’t
+, 
+»mašd”
+, 
+width
+ );
+
+4195 ifÐ
+	g»mašd”
+[
+width
+] == '\n' ) {
+
+4196 
+¥liûLše
+Ð
+šd’t
+, 
+»mašd”
+, 
+width
+ );
+
+4197 ifÐ
+	gwidth
+ <ð1 || 
+»mašd”
+.
+size
+() != 1 )
+
+4198 
+»mašd”
+ =„emašd”.
+sub¡r
+( 1 );
+
+4199 
+	gšd’t
+ = 
+_©Œ
+.
+šd’t
+;
+
+4202 
+	gpos
+ = 
+»mašd”
+.
+fšd_Ï¡_of
+Ð
+w¿µabËCh¬s
+, 
+width
+ );
+
+4203 ifÐ
+	gpos
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ && 
+pos
+ > 0 ) {
+
+4204 
+¥liûLše
+Ð
+šd’t
+, 
+»mašd”
+, 
+pos
+ );
+
+4205 ifÐ
+	g»mašd”
+[0] == ' ' )
+
+4206 
+»mašd”
+ =„emašd”.
+sub¡r
+( 1 );
+
+4209 
+¥liûLše
+Ð
+šd’t
+, 
+»mašd”
+, 
+width
+-1 );
+
+4210 
+	glšes
+.
+back
+() += "-";
+
+4212 ifÐ
+	glšes
+.
+size
+() == 1 )
+
+4213 
+šd’t
+ = 
+_©Œ
+.indent;
+
+4214 ifÐ
+	g�bPos
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ )
+
+4215 
+šd’t
+ +ð
+�bPos
+;
+
+4220 
+¥liûLše
+Ð
+¡d
+::
+size_t
+ 
+_šd’t
+, std::
+¡ršg
+& 
+_»mašd”
+, std::size_ˆ
+_pos
+ ) {
+
+4221 
+lšes
+.
+push_back
+Ð
+¡d
+::
+¡ršg
+Ð
+_šd’t
+, ' ' ) + 
+_»mašd”
+.
+sub¡r
+Ð0, 
+_pos
+ ) );
+
+4222 
+	g_»mašd”
+ = 
+_»mašd”
+.
+sub¡r
+Ð
+_pos
+ );
+
+4225 
+	g¡d
+::
+	tveùÜ
+<
+	t¡d
+::
+	t¡ršg
+>::
+	tcÚ¡_™”©Ü
+ const_iterator;
+
+4227 
+cÚ¡_™”©Ü
+ 
+begš
+(ècÚ¡ {  
+	glšes
+.begin(); }
+
+4228 
+cÚ¡_™”©Ü
+ 
+’d
+(ècÚ¡ {  
+	glšes
+.end(); }
+
+4229 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+Ï¡
+(ècÚ¡ {  
+lšes
+.
+back
+(); }
+
+4230 
+	g¡d
+::
+size_t
+ 
+size
+(ècÚ¡ {  
+lšes
+.size(); }
+
+4231 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+Ý”©Ü
+[]Ð
+¡d
+::
+size_t
+ 
+_šdex
+ ) cÚ¡ {  
+lšes
+[_index]; }
+
+4232 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+() const {
+
+4233 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+4234 
+	goss
+ << *
+	gthis
+;
+
+4235  
+	goss
+.
+¡r
+();
+
+4238 
+ä›nd
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+_¡»am
+, 
+Text
+ cÚ¡& 
+	g_‹xt
+ ) {
+
+4239  
+	gText
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+_‹xt
+.
+begš
+(), 
+	g™End
+ = _‹xt.
+’d
+();
+
+4240 
+	g™
+ !ð
+™End
+; ++it ) {
+
+4241 ifÐ
+	g™
+ !ð
+_‹xt
+.
+begš
+() )
+
+4242 
+_¡»am
+ << "\n";
+
+4243 
+	g_¡»am
+ << *
+	g™
+;
+
+4245  
+	g_¡»am
+;
+
+4248 
+	g´iv©e
+:
+
+4249 
+¡d
+::
+¡ršg
+ 
+¡r
+;
+
+4250 
+TextA‰ribu‹s
+ 
+	g©Œ
+;
+
+4251 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+lšes
+;
+
+4256 #ifdeà
+STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+
+4265 #undeà
+STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
+
+
+4269 #iâdeà
+TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+
+4270 
+	#TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+
+	)
+
+4292 #ifdeà
+__þªg__
+
+
+4294 #ià
+	$__has_ã©u»
+(
+cxx_nuÎ±r
+)
+
+4295 
+	#CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+4298 #ià
+	$__has_ã©u»
+(
+cxx_nÛxû±
+)
+
+4299 
+	#CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+4306 #ifdeà
+__GNUC__
+
+
+4308 #ià
+__GNUC__
+ =ð4 && 
+__GNUC_MINOR__
+ >ð6 && 
+	$defšed
+(
+__GXX_EXPERIMENTAL_CXX0X__
+)
+
+4309 
+	#CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+4319 #ifdeà
+_MSC_VER
+
+
+4321 #ià(
+_MSC_VER
+ >= 1600)
+
+4322 
+	#CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+4323 
+	#CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+
+
+	)
+
+4326 #ià(
+_MSC_VER
+ >= 1900 )
+
+4327 
+	#CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+4328 
+	#CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+
+
+	)
+
+4337 #ià
+	`defšed
+(
+__ýlu¥lus
+) && __cplusplus >= 201103L
+
+4339 
+	#CLARA_CPP11_OR_GREATER
+
+
+	)
+
+4341 #ià!
+	$defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+)
+
+4342 
+	#CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+4345 #iâdeà
+CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+4346 
+	#CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+4349 #iâdeà
+CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+
+
+4350 
+	#CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+
+
+	)
+
+4353 #ià!
+	$defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
+)
+
+4354 
+	#CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
+
+
+	)
+
+4356 #ià!
+	$defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+)
+
+4357 
+	#CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+
+
+	)
+
+4363 #ià
+	`defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+è&& !defšed(
+CLARA_CONFIG_CPP11_NO_NULLPTR
+è&& !defšed(
+CLARA_CONFIG_CPP11_NULLPTR
+è&& !
+	$defšed
+(
+CLARA_CONFIG_NO_CPP11
+)
+
+4364 
+	#CLARA_CONFIG_CPP11_NULLPTR
+
+
+	)
+
+4366 #ià
+	`defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+è&& !defšed(
+CLARA_CONFIG_CPP11_NO_NOEXCEPT
+è&& !defšed(
+CLARA_CONFIG_CPP11_NOEXCEPT
+è&& !
+	$defšed
+(
+CLARA_CONFIG_NO_CPP11
+)
+
+4367 
+	#CLARA_CONFIG_CPP11_NOEXCEPT
+
+
+	)
+
+4369 #ià
+	`defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+è&& !defšed(
+CLARA_CONFIG_CPP11_NO_GENERATED_METHODS
+è&& !defšed(
+CLARA_CONFIG_CPP11_GENERATED_METHODS
+è&& !
+	$defšed
+(
+CLARA_CONFIG_NO_CPP11
+)
+
+4370 
+	#CLARA_CONFIG_CPP11_GENERATED_METHODS
+
+
+	)
+
+4372 #ià
+	`defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
+è&& !defšed(
+CLARA_CONFIG_NO_OVERRIDE
+è&& !defšed(
+CLARA_CONFIG_CPP11_OVERRIDE
+è&& !
+	$defšed
+(
+CLARA_CONFIG_NO_CPP11
+)
+
+4373 
+	#CLARA_CONFIG_CPP11_OVERRIDE
+
+
+	)
+
+4375 #ià
+	`defšed
+(
+CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+è&& !defšed(
+CLARA_CONFIG_NO_UNIQUE_PTR
+è&& !defšed(
+CLARA_CONFIG_CPP11_UNIQUE_PTR
+è&& !
+	$defšed
+(
+CLARA_CONFIG_NO_CPP11
+)
+
+4376 
+	#CLARA_CONFIG_CPP11_UNIQUE_PTR
+
+
+	)
+
+4380 #ià
+	`defšed
+(
+CLARA_CONFIG_CPP11_NOEXCEPT
+è&& !
+	$defšed
+(
+CLARA_NOEXCEPT
+)
+
+4381 
+	#CLARA_NOEXCEPT
+ 
+nÛxû±
+
+
+	)
+
+4382 
+	#CLARA_NOEXCEPT_IS
+(
+x
+è
+	$nÛxû±
+(
+x
+)
+
+	)
+
+4384 
+	#CLARA_NOEXCEPT
+ 
+	$throw
+()
+
+	)
+
+4385 
+	#CLARA_NOEXCEPT_IS
+(
+x
+)
+
+	)
+
+4389 #ifdeà
+CLARA_CONFIG_CPP11_NULLPTR
+
+
+4390 
+	#CLARA_NULL
+ 
+nuÎ±r
+
+
+	)
+
+4392 
+	#CLARA_NULL
+ 
+NULL
+
+
+	)
+
+4396 #ifdeà
+CLARA_CONFIG_CPP11_OVERRIDE
+
+
+4397 
+	#CLARA_OVERRIDE
+ 
+ov”ride
+
+
+	)
+
+4399 
+	#CLARA_OVERRIDE
+
+
+	)
+
+4403 #ifdeà
+CLARA_CONFIG_CPP11_UNIQUE_PTR
+
+
+4404 
+	#CLARA_AUTO_PTR
+Ð
+T
+ ) 
+¡d
+::
+unique_±r
+<T>
+
+	)
+
+4406 
+	#CLARA_AUTO_PTR
+Ð
+T
+ ) 
+¡d
+::
+auto_±r
+<T>
+
+	)
+
+4414 
+	~<m­
+>
+
+4415 
+	~<¡dexû±
+>
+
+4416 
+	~<memÜy
+>
+
+4418 #ià
+	`defšed
+(
+WIN32
+è|| defšed(
+__WIN32__
+è|| defšed(
+_WIN32
+è|| 
+	$defšed
+(
+_MSC_VER
+)
+
+4419 
+	#CLARA_PLATFORM_WINDOWS
+
+
+	)
+
+4423 #ifdeà
+STITCH_CLARA_OPEN_NAMESPACE
+
+
+4424 
+STITCH_CLARA_OPEN_NAMESPACE
+
+
+4427 
+Çme¥aû
+ 
+CÏ¿
+ {
+
+4429 
+	sUÅos™iÚ®Tag
+ {};
+
+4431 
+UÅos™iÚ®Tag
+ 
+_
+;
+
+4433 #ifdeà
+CLARA_CONFIG_MAIN
+
+
+4434 
+UÅos™iÚ®Tag
+ 
+_
+;
+
+4437 
+Çme¥aû
+ 
+D‘až
+ {
+
+4439 #ifdeà
+CLARA_CONSOLE_WIDTH
+
+
+4440 cÚ¡ 
+cÚsÞeWidth
+ = 
+CLARA_CONFIG_CONSOLE_WIDTH
+;
+
+4442 cÚ¡ 
+cÚsÞeWidth
+ = 80;
+
+4445 
+usšg
+ 
+Çme¥aû
+ 
+Tbc
+;
+
+4447 
+šlše
+ 
+boÞ
+ 
+	`¡¬tsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, std::¡ršg cÚ¡& 
+´efix
+ ) {
+
+4448  
+¡r
+.
+	`size
+(è>ð
+´efix
+.size(è&& sŒ.
+	`sub¡r
+( 0,…refix.size() ) ==…refix;
+
+4451 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+> 
+	sRemoveCÚ¡Ref
+{ T 
+	tty³
+; };
+
+4452 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+> 
+RemoveCÚ¡Ref
+<T&>{ T 
+	tty³
+; };
+
+4453 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+> 
+RemoveCÚ¡Ref
+<T cÚ¡&>{ T 
+	tty³
+; };
+
+4454 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+> 
+RemoveCÚ¡Ref
+<T cÚ¡>{ T 
+	tty³
+; };
+
+4456 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+> 
+	sIsBoÞ
+ { cÚ¡ 
+boÞ
+ 
+v®ue
+ = 
+çl£
+; };
+
+4457 
+‹m¶©e
+<> 
+IsBoÞ
+<
+boÞ
+> { cÚ¡ boÞ 
+v®ue
+ = 
+Œue
+; };
+
+4459 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+>
+
+4460 
+	`cÚv”tIÁo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_sourû
+, 
+T
+& 
+_de¡
+ ) {
+
+4461 
+¡d
+::
+¡ršg¡»am
+ 
+ss
+;
+
+4462 
+ss
+ << 
+_sourû
+;
+
+4463 
+ss
+ >> 
+_de¡
+;
+
+4464 ifÐ
+ss
+.
+	`çž
+() )
+
+4465 
+throw
+ 
+¡d
+::
+	`ruÁime_”rÜ
+Ð"UÇbË�ØcÚv”ˆ" + 
+_sourû
+ + "�o destination�ype" );
+
+4467 
+šlše
+ 
+	`cÚv”tIÁo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_sourû
+, std::¡ršg& 
+_de¡
+ ) {
+
+4468 
+_de¡
+ = 
+_sourû
+;
+
+4470 
+	`toLow”Ch
+(
+c
+) {
+
+4471  
+¡©ic_ÿ¡
+<>Ð
+¡d
+::
+	`tÞow”
+Ð
+c
+ ) );
+
+4473 
+šlše
+ 
+	`cÚv”tIÁo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_sourû
+, 
+boÞ
+& 
+_de¡
+ ) {
+
+4474 
+¡d
+::
+¡ršg
+ 
+sourûLC
+ = 
+_sourû
+;
+
+4475 
+¡d
+::
+	`ŒªsfÜm
+Ð
+sourûLC
+.
+	`begš
+(), sourûLC.
+	`’d
+(), sourûLC.begš(), 
+toLow”Ch
+ );
+
+4476 ifÐ
+sourûLC
+ == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
+
+4477 
+_de¡
+ = 
+Œue
+;
+
+4478 ifÐ
+sourûLC
+ == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
+
+4479 
+_de¡
+ = 
+çl£
+;
+
+4481 
+throw
+ 
+¡d
+::
+	`ruÁime_”rÜ
+Ð"Ex³ùed‡ boÞ—Àv®u�buˆdid‚Ù„ecogni£:\À '" + 
+_sourû
+ + "'" );
+
+4484 
+‹m¶©e
+<
+ty³Çme
+ 
+CÚfigT
+>
+
+4485 
+	sIArgFunùiÚ
+ {
+
+4486 
+vœtu®
+ ~
+	`IArgFunùiÚ
+() {}
+
+4487 #ifdeà
+CLARA_CONFIG_CPP11_GENERATED_METHODS
+
+
+4488 
+	`IArgFunùiÚ
+() = ;
+
+4489 
+	`IArgFunùiÚ
+Ð
+IArgFunùiÚ
+ const& ) = ;
+
+4491 
+vœtu®
+ 
+	`£t
+Ð
+CÚfigT
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+ ) const = 0;
+
+4492 
+vœtu®
+ 
+boÞ
+ 
+	`�kesArg
+() const = 0;
+
+4493 
+vœtu®
+ 
+IArgFunùiÚ
+* 
+	`þÚe
+() const = 0;
+
+4496 
+‹m¶©e
+<
+ty³Çme
+ 
+CÚfigT
+>
+
+4497 þas 
+	cBoundArgFunùiÚ
+ {
+
+4498 
+public
+:
+
+4499 
+	`BoundArgFunùiÚ
+(è: 
+	`funùiÚObj
+Ð
+CLARA_NULL
+ ) {}
+
+4500 
+	`BoundArgFunùiÚ
+Ð
+IArgFunùiÚ
+<
+CÚfigT
+>* 
+_funùiÚObj
+ ) : 
+	`funùiÚObj
+( _functionObj ) {}
+
+4501 
+	`BoundArgFunùiÚ
+Ð
+BoundArgFunùiÚ
+ cÚ¡& 
+Ùh”
+ ) : 
+	`funùiÚObj
+ÐÙh”.
+funùiÚObj
+ ? oth”.funùiÚObj->
+	`þÚe
+(è: 
+CLARA_NULL
+ ) {}
+
+4502 
+BoundArgFunùiÚ
+& 
+Ý”©Ü
+ = ( BoundArgFunùiÚ cÚ¡& 
+Ùh”
+ ) {
+
+4503 
+IArgFunùiÚ
+<
+CÚfigT
+>* 
+ÃwFunùiÚObj
+ = 
+Ùh”
+.
+funùiÚObj
+ ? oth”.funùiÚObj->
+	`þÚe
+(è: 
+CLARA_NULL
+;
+
+4504 
+d–‘e
+ 
+funùiÚObj
+;
+
+4505 
+funùiÚObj
+ = 
+ÃwFunùiÚObj
+;
+
+4506  *
+this
+;
+
+4508 ~
+	`BoundArgFunùiÚ
+(è{ 
+d–‘e
+ 
+funùiÚObj
+; }
+
+4510 
+	`£t
+Ð
+CÚfigT
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+ ) const {
+
+4511 
+funùiÚObj
+->
+	`£t
+Ð
+cÚfig
+, 
+v®ue
+ );
+
+4513 
+boÞ
+ 
+	`�kesArg
+(ècÚ¡ {  
+funùiÚObj
+->takesArg(); }
+
+4515 
+boÞ
+ 
+	`isS‘
+() const {
+
+4516  
+funùiÚObj
+ !ð
+CLARA_NULL
+;
+
+4518 
+´iv©e
+:
+
+4519 
+IArgFunùiÚ
+<
+CÚfigT
+>* 
+funùiÚObj
+;
+
+4522 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+>
+
+4523 
+NuÎBšd”
+ : 
+IArgFunùiÚ
+<
+C
+>{
+
+4524 
+vœtu®
+ 
+	`£t
+Ð
+C
+&, 
+¡d
+::
+¡ršg
+ const& ) const {}
+
+4525 
+vœtu®
+ 
+boÞ
+ 
+	`�kesArg
+(ècÚ¡ {  
+Œue
+; }
+
+4526 
+vœtu®
+ 
+IArgFunùiÚ
+<
+C
+>* 
+	`þÚe
+(ècÚ¡ {  
+Ãw
+ 
+	`NuÎBšd”
+Ð*
+this
+ ); }
+
+4529 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+M
+>
+
+4530 
+BoundD©aMemb”
+ : 
+IArgFunùiÚ
+<
+C
+>{
+
+4531 
+	`BoundD©aMemb”
+Ð
+M
+ 
+C
+::* 
+_memb”
+ ) : 
+	`memb”
+( _member ) {}
+
+4532 
+vœtu®
+ 
+	`£t
+Ð
+C
+& 
+p
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡ršgV®ue
+ ) const {
+
+4533 
+	`cÚv”tIÁo
+Ð
+¡ršgV®ue
+, 
+p
+.*
+memb”
+ );
+
+4535 
+vœtu®
+ 
+boÞ
+ 
+	`�kesArg
+(ècÚ¡ {  !
+IsBoÞ
+<
+M
+>::
+v®ue
+; }
+
+4536 
+vœtu®
+ 
+IArgFunùiÚ
+<
+C
+>* 
+	`þÚe
+(ècÚ¡ {  
+Ãw
+ 
+	`BoundD©aMemb”
+Ð*
+this
+ ); }
+
+4537 
+M
+ 
+C
+::* 
+memb”
+;
+
+4539 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+M
+>
+
+4540 
+BoundUÇryM‘hod
+ : 
+IArgFunùiÚ
+<
+C
+>{
+
+4541 
+	`BoundUÇryM‘hod
+Ð(
+C
+::*
+_memb”
+)Ð
+M
+ ) ) : 
+	`memb”
+( _member ) {}
+
+4542 
+vœtu®
+ 
+	`£t
+Ð
+C
+& 
+p
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡ršgV®ue
+ ) const {
+
+4543 
+ty³Çme
+ 
+RemoveCÚ¡Ref
+<
+M
+>::
+ty³
+ 
+v®ue
+;
+
+4544 
+	`cÚv”tIÁo
+Ð
+¡ršgV®ue
+, 
+v®ue
+ );
+
+4545 (
+p
+.*
+memb”
+)Ð
+v®ue
+ );
+
+4547 
+vœtu®
+ 
+boÞ
+ 
+	`�kesArg
+(ècÚ¡ {  !
+IsBoÞ
+<
+M
+>::
+v®ue
+; }
+
+4548 
+vœtu®
+ 
+IArgFunùiÚ
+<
+C
+>* 
+	`þÚe
+(ècÚ¡ {  
+Ãw
+ 
+	`BoundUÇryM‘hod
+Ð*
+this
+ ); }
+
+4549 (
+C
+::*
+memb”
+)Ð
+M
+ );
+
+4551 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+>
+
+4552 
+BoundNuÎ¬yM‘hod
+ : 
+IArgFunùiÚ
+<
+C
+>{
+
+4553 
+	`BoundNuÎ¬yM‘hod
+Ð(
+C
+::*
+_memb”
+)(èè: 
+	`memb”
+( _member ) {}
+
+4554 
+vœtu®
+ 
+	`£t
+Ð
+C
+& 
+p
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡ršgV®ue
+ ) const {
+
+4555 
+boÞ
+ 
+v®ue
+;
+
+4556 
+	`cÚv”tIÁo
+Ð
+¡ršgV®ue
+, 
+v®ue
+ );
+
+4557 ifÐ
+v®ue
+ )
+
+4558 (
+p
+.*
+memb”
+)();
+
+4560 
+vœtu®
+ 
+boÞ
+ 
+	`�kesArg
+(ècÚ¡ {  
+çl£
+; }
+
+4561 
+vœtu®
+ 
+IArgFunùiÚ
+<
+C
+>* 
+	`þÚe
+(ècÚ¡ {  
+Ãw
+ 
+	`BoundNuÎ¬yM‘hod
+Ð*
+this
+ ); }
+
+4562 (
+C
+::*
+memb”
+)();
+
+4565 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+>
+
+4566 
+BoundUÇryFunùiÚ
+ : 
+IArgFunùiÚ
+<
+C
+>{
+
+4567 
+	`BoundUÇryFunùiÚ
+Ð(*
+_funùiÚ
+)Ð
+C
+& ) ) : 
+	`funùiÚ
+( _function ) {}
+
+4568 
+vœtu®
+ 
+	`£t
+Ð
+C
+& 
+obj
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡ršgV®ue
+ ) const {
+
+4569 
+boÞ
+ 
+v®ue
+;
+
+4570 
+	`cÚv”tIÁo
+Ð
+¡ršgV®ue
+, 
+v®ue
+ );
+
+4571 ifÐ
+v®ue
+ )
+
+4572 
+	`funùiÚ
+Ð
+obj
+ );
+
+4574 
+vœtu®
+ 
+boÞ
+ 
+	`�kesArg
+(ècÚ¡ {  
+çl£
+; }
+
+4575 
+vœtu®
+ 
+IArgFunùiÚ
+<
+C
+>* 
+	`þÚe
+(ècÚ¡ {  
+Ãw
+ 
+	`BoundUÇryFunùiÚ
+Ð*
+this
+ ); }
+
+4576 (*
+funùiÚ
+)Ð
+C
+& );
+
+4579 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+T
+>
+
+4580 
+BoundBš¬yFunùiÚ
+ : 
+IArgFunùiÚ
+<
+C
+>{
+
+4581 
+	`BoundBš¬yFunùiÚ
+Ð(*
+_funùiÚ
+)Ð
+C
+&, 
+T
+ ) ) : 
+	`funùiÚ
+( _function ) {}
+
+4582 
+vœtu®
+ 
+	`£t
+Ð
+C
+& 
+obj
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡ršgV®ue
+ ) const {
+
+4583 
+ty³Çme
+ 
+RemoveCÚ¡Ref
+<
+T
+>::
+ty³
+ 
+v®ue
+;
+
+4584 
+	`cÚv”tIÁo
+Ð
+¡ršgV®ue
+, 
+v®ue
+ );
+
+4585 
+	`funùiÚ
+Ð
+obj
+, 
+v®ue
+ );
+
+4587 
+vœtu®
+ 
+boÞ
+ 
+	`�kesArg
+(ècÚ¡ {  !
+IsBoÞ
+<
+T
+>::
+v®ue
+; }
+
+4588 
+vœtu®
+ 
+IArgFunùiÚ
+<
+C
+>* 
+	`þÚe
+(ècÚ¡ {  
+Ãw
+ 
+	`BoundBš¬yFunùiÚ
+Ð*
+this
+ ); }
+
+4589 (*
+funùiÚ
+)Ð
+C
+&, 
+T
+ );
+
+4594 
+šlše
+ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+	`¬gsToVeùÜ
+Ð
+¬gc
+, cÚ¡* cÚ¡* cÚ¡ 
+¬gv
+ ) {
+
+4595 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+	`¬gs
+Ð
+¡©ic_ÿ¡
+<¡d::
+size_t
+>Ð
+¬gc
+ ) );
+
+4596  
+¡d
+::
+size_t
+ 
+i
+ = 0; i < 
+¡©ic_ÿ¡
+<¡d::size_t>Ð
+¬gc
+ ); ++i )
+
+4597 
+¬gs
+[
+i
+] = 
+¬gv
+[i];
+
+4599  
+¬gs
+;
+
+4602 þas 
+	cP¬£r
+ {
+
+4603 
+	eMode
+ { 
+NÚe
+, 
+MaybeShÜtO±
+, 
+SÏshO±
+, 
+ShÜtO±
+, 
+LÚgO±
+, 
+Pos™iÚ®
+ };
+
+4604 
+Mode
+ 
+mode
+;
+
+4605 
+¡d
+::
+size_t
+ 
+äom
+;
+
+4606 
+boÞ
+ 
+šQuÙes
+;
+
+4607 
+public
+:
+
+4609 
+	sTok’
+ {
+
+4610 
+	eTy³
+ { 
+Pos™iÚ®
+, 
+ShÜtO±
+, 
+LÚgO±
+ };
+
+4611 
+	`Tok’
+Ð
+Ty³
+ 
+_ty³
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_d©a
+ ) : 
+	`ty³
+Ð_ty³ ), 
+	`d©a
+( _data ) {}
+
+4612 
+Ty³
+ 
+ty³
+;
+
+4613 
+¡d
+::
+¡ršg
+ 
+d©a
+;
+
+4616 
+	`P¬£r
+(è: 
+	`mode
+Ð
+NÚe
+ ), 
+	`äom
+Ð0 ), 
+	`šQuÙes
+Ð
+çl£
+ ){}
+
+4618 
+	`·r£IÁoTok’s
+Ð
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> cÚ¡& 
+¬gs
+, std::veùÜ<
+Tok’
+>& 
+tok’s
+ ) {
+
+4619 cÚ¡ 
+¡d
+::
+¡ršg
+ 
+doubËDash
+ = "--";
+
+4620  
+¡d
+::
+size_t
+ 
+i
+ = 1; i < 
+¬gs
+.
+	`size
+(è&&‡rgs[i] !ð
+doubËDash
+; ++i )
+
+4621 
+	`·r£IÁoTok’s
+Ð
+¬gs
+[
+i
+], 
+tok’s
+);
+
+4624 
+	`·r£IÁoTok’s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¬g
+, std::
+veùÜ
+<
+Tok’
+>& 
+tok’s
+ ) {
+
+4625  
+¡d
+::
+size_t
+ 
+i
+ = 0; i < 
+¬g
+.
+	`size
+(); ++i ) {
+
+4626 
+c
+ = 
+¬g
+[
+i
+];
+
+4627 ifÐ
+c
+ == '"' )
+
+4628 
+šQuÙes
+ = !inQuotes;
+
+4629 
+mode
+ = 
+	`hªdËMode
+Ð
+i
+, 
+c
+, 
+¬g
+, 
+tok’s
+ );
+
+4631 
+mode
+ = 
+	`hªdËMode
+Ð
+¬g
+.
+	`size
+(), '\0',‡rg, 
+tok’s
+ );
+
+4633 
+Mode
+ 
+	`hªdËMode
+Ð
+¡d
+::
+size_t
+ 
+i
+, 
+c
+, std::
+¡ršg
+ cÚ¡& 
+¬g
+, std::
+veùÜ
+<
+Tok’
+>& 
+tok’s
+ ) {
+
+4634  
+mode
+ ) {
+
+4635 
+NÚe
+:  
+	`hªdËNÚe
+Ð
+i
+, 
+c
+ );
+
+4636 
+MaybeShÜtO±
+:  
+	`hªdËMaybeShÜtO±
+Ð
+i
+, 
+c
+ );
+
+4637 
+ShÜtO±
+:
+
+4638 
+LÚgO±
+:
+
+4639 
+SÏshO±
+:  
+	`hªdËO±
+Ð
+i
+, 
+c
+, 
+¬g
+, 
+tok’s
+ );
+
+4640 
+Pos™iÚ®
+:  
+	`hªdËPos™iÚ®
+Ð
+i
+, 
+c
+, 
+¬g
+, 
+tok’s
+ );
+
+4641 : 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "Unknown mode" );
+
+4645 
+Mode
+ 
+	`hªdËNÚe
+Ð
+¡d
+::
+size_t
+ 
+i
+, 
+c
+ ) {
+
+4646 ifÐ
+šQuÙes
+ ) {
+
+4647 
+äom
+ = 
+i
+;
+
+4648  
+Pos™iÚ®
+;
+
+4650  
+c
+ ) {
+
+4651 '-':  
+MaybeShÜtO±
+;
+
+4652 #ifdeà
+CLARA_PLATFORM_WINDOWS
+
+
+4653 '/': 
+äom
+ = 
+i
++1;  
+SÏshO±
+;
+
+4655 : 
+äom
+ = 
+i
+;  
+Pos™iÚ®
+;
+
+4658 
+Mode
+ 
+	`hªdËMaybeShÜtO±
+Ð
+¡d
+::
+size_t
+ 
+i
+, 
+c
+ ) {
+
+4659  
+c
+ ) {
+
+4660 '-': 
+äom
+ = 
+i
++1;  
+LÚgO±
+;
+
+4661 : 
+äom
+ = 
+i
+;  
+ShÜtO±
+;
+
+4665 
+Mode
+ 
+	`hªdËO±
+Ð
+¡d
+::
+size_t
+ 
+i
+, 
+c
+, std::
+¡ršg
+ cÚ¡& 
+¬g
+, std::
+veùÜ
+<
+Tok’
+>& 
+tok’s
+ ) {
+
+4666 ifÐ
+¡d
+::
+	`¡ršg
+Ð":=\0", 3 ).
+	`fšd
+Ð
+c
+ ) =ð¡d::
+¡ršg
+::
+Åos
+ )
+
+4667  
+mode
+;
+
+4669 
+¡d
+::
+¡ršg
+ 
+ÝtName
+ = 
+¬g
+.
+	`sub¡r
+Ð
+äom
+, 
+i
+-from );
+
+4670 ifÐ
+mode
+ =ð
+ShÜtO±
+ )
+
+4671  
+¡d
+::
+size_t
+ 
+j
+ = 0; j < 
+ÝtName
+.
+	`size
+(); ++j )
+
+4672 
+tok’s
+.
+	`push_back
+Ð
+	`Tok’
+Ð
+Tok’
+::
+ShÜtO±
+, 
+ÝtName
+.
+	`sub¡r
+Ð
+j
+, 1 ) ) );
+
+4673 ifÐ
+mode
+ =ð
+SÏshO±
+ && 
+ÝtName
+.
+	`size
+() == 1 )
+
+4674 
+tok’s
+.
+	`push_back
+Ð
+	`Tok’
+Ð
+Tok’
+::
+ShÜtO±
+, 
+ÝtName
+ ) );
+
+4676 
+tok’s
+.
+	`push_back
+Ð
+	`Tok’
+Ð
+Tok’
+::
+LÚgO±
+, 
+ÝtName
+ ) );
+
+4677  
+NÚe
+;
+
+4679 
+Mode
+ 
+	`hªdËPos™iÚ®
+Ð
+¡d
+::
+size_t
+ 
+i
+, 
+c
+, std::
+¡ršg
+ cÚ¡& 
+¬g
+, std::
+veùÜ
+<
+Tok’
+>& 
+tok’s
+ ) {
+
+4680 ifÐ
+šQuÙes
+ || 
+¡d
+::
+	`¡ršg
+Ð"\0", 1 ).
+	`fšd
+Ð
+c
+ ) =ð¡d::
+¡ršg
+::
+Åos
+ )
+
+4681  
+mode
+;
+
+4683 
+¡d
+::
+¡ršg
+ 
+d©a
+ = 
+¬g
+.
+	`sub¡r
+Ð
+äom
+, 
+i
+-from );
+
+4684 
+tok’s
+.
+	`push_back
+Ð
+	`Tok’
+Ð
+Tok’
+::
+Pos™iÚ®
+, 
+d©a
+ ) );
+
+4685  
+NÚe
+;
+
+4689 
+‹m¶©e
+<
+ty³Çme
+ 
+CÚfigT
+>
+
+4690 
+	sCommÚArgPrÝ”t›s
+ {
+
+4691 
+	`CommÚArgPrÝ”t›s
+() {}
+
+4692 
+	`CommÚArgPrÝ”t›s
+Ð
+D‘až
+::
+BoundArgFunùiÚ
+<
+CÚfigT
+> cÚ¡& 
+_boundF›ld
+ ) : 
+	`boundF›ld
+( _boundField ) {}
+
+4694 
+D‘až
+::
+BoundArgFunùiÚ
+<
+CÚfigT
+> 
+boundF›ld
+;
+
+4695 
+¡d
+::
+¡ršg
+ 
+desü�tiÚ
+;
+
+4696 
+¡d
+::
+¡ršg
+ 
+d‘až
+;
+
+4697 
+¡d
+::
+¡ršg
+ 
+¶aûhÞd”
+;
+
+4699 
+boÞ
+ 
+	`�kesArg
+() const {
+
+4700  !
+¶aûhÞd”
+.
+	`em±y
+();
+
+4702 
+	`v®id©e
+() const {
+
+4703 ifÐ!
+boundF›ld
+.
+	`isS‘
+() )
+
+4704 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "option‚ot bound" );
+
+4707 
+	sO±iÚArgPrÝ”t›s
+ {
+
+4708 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+shÜtNames
+;
+
+4709 
+¡d
+::
+¡ršg
+ 
+lÚgName
+;
+
+4711 
+boÞ
+ 
+	`hasShÜtName
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+shÜtName
+ ) const {
+
+4712  
+¡d
+::
+	`fšd
+Ð
+shÜtNames
+.
+	`begš
+(), shÜtNames.
+	`’d
+(), 
+shÜtName
+ ) != shortNames.end();
+
+4714 
+boÞ
+ 
+	`hasLÚgName
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_lÚgName
+ ) const {
+
+4715  
+_lÚgName
+ =ð
+lÚgName
+;
+
+4718 
+	sPos™iÚ®ArgPrÝ”t›s
+ {
+
+4719 
+	`Pos™iÚ®ArgPrÝ”t›s
+(è: 
+	`pos™iÚ
+( -1 ) {}
+
+4720 
+pos™iÚ
+;
+
+4722 
+boÞ
+ 
+	`isFixedPos™iÚ®
+() const {
+
+4723  
+pos™iÚ
+ != -1;
+
+4727 
+‹m¶©e
+<
+ty³Çme
+ 
+CÚfigT
+>
+
+4728 þas 
+	cCommªdLše
+ {
+
+4730 
+Arg
+ : 
+CommÚArgPrÝ”t›s
+<
+CÚfigT
+>, 
+O±iÚArgPrÝ”t›s
+, 
+Pos™iÚ®ArgPrÝ”t›s
+ {
+
+4731 
+	`Arg
+() {}
+
+4732 
+	`Arg
+Ð
+D‘až
+::
+BoundArgFunùiÚ
+<
+CÚfigT
+> cÚ¡& 
+_boundF›ld
+ ) : 
+CommÚArgPrÝ”t›s
+<ConfigT>( _boundField ) {}
+
+4734 
+usšg
+ 
+CommÚArgPrÝ”t›s
+<
+CÚfigT
+>::
+¶aûhÞd”
+;
+
+4736 
+¡d
+::
+¡ršg
+ 
+	`dbgName
+() const {
+
+4737 ifÐ!
+lÚgName
+.
+	`em±y
+() )
+
+4738  "--" + 
+lÚgName
+;
+
+4739 ifÐ!
+shÜtNames
+.
+	`em±y
+() )
+
+4740  "-" + 
+shÜtNames
+[0];
+
+4743 
+¡d
+::
+¡ršg
+ 
+	`commªds
+() const {
+
+4744 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+4745 
+boÞ
+ 
+fœ¡
+ = 
+Œue
+;
+
+4746 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+shÜtNames
+.
+	`begš
+(), 
+™End
+ = shÜtNames.
+	`’d
+();
+
+4747 ; 
+™
+ !ð
+™End
+; ++it ) {
+
+4748 ifÐ
+fœ¡
+ )
+
+4749 
+fœ¡
+ = 
+çl£
+;
+
+4751 
+oss
+ << ", ";
+
+4752 
+oss
+ << "-" << *
+™
+;
+
+4754 ifÐ!
+lÚgName
+.
+	`em±y
+() ) {
+
+4755 ifÐ!
+fœ¡
+ )
+
+4756 
+oss
+ << ", ";
+
+4757 
+oss
+ << "--" << 
+lÚgName
+;
+
+4759 ifÐ!
+¶aûhÞd”
+.
+	`em±y
+() )
+
+4760 
+oss
+ << " <" << 
+¶aûhÞd”
+ << ">";
+
+4761  
+oss
+.
+	`¡r
+();
+
+4765 
+	`CLARA_AUTO_PTR
+Ð
+	tArg
+ ) 
+	tArgAutoPŒ
+;
+
+4767 
+ä›nd
+ 
+	`addO±Name
+Ð
+Arg
+& 
+¬g
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+ÝtName
+ )
+
+4769 ifÐ
+ÝtName
+.
+	`em±y
+() )
+
+4771 ifÐ
+D‘až
+::
+	`¡¬tsW™h
+Ð
+ÝtName
+, "--" ) ) {
+
+4772 ifÐ!
+¬g
+.
+lÚgName
+.
+	`em±y
+() )
+
+4773 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "Only one†ong opt may be specified. '"
+
+4774 + 
+¬g
+.
+lÚgName
+
+
+4776 + 
+ÝtName
+ + "'" );
+
+4777 
+¬g
+.
+lÚgName
+ = 
+ÝtName
+.
+	`sub¡r
+( 2 );
+
+4779 ifÐ
+D‘až
+::
+	`¡¬tsW™h
+Ð
+ÝtName
+, "-" ) )
+
+4780 
+¬g
+.
+shÜtNames
+.
+	`push_back
+Ð
+ÝtName
+.
+	`sub¡r
+( 1 ) );
+
+4782 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+Ð"ÝtiÚ mu¡ begš w™h - o¸--. O±iÚ was: '" + 
+ÝtName
+ + "'" );
+
+4784 
+ä›nd
+ 
+	`£tPos™iÚ®Arg
+Ð
+Arg
+& 
+¬g
+, 
+pos™iÚ
+ )
+
+4786 
+¬g
+.
+pos™iÚ
+ =…osition;
+
+4789 þas 
+	cArgBužd”
+ {
+
+4790 
+public
+:
+
+4791 
+	`ArgBužd”
+Ð
+Arg
+* 
+¬g
+ ) : 
+	`m_¬g
+(‡rg ) {}
+
+4794 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+M
+>
+
+4795 
+	`bšd
+Ð
+M
+ 
+C
+::* 
+f›ld
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¶aûhÞd”
+ ) {
+
+4796 
+m_¬g
+->
+boundF›ld
+ = 
+Ãw
+ 
+D‘až
+::
+BoundD©aMemb”
+<
+C
+,
+M
+>Ð
+f›ld
+ );
+
+4797 
+m_¬g
+->
+¶aûhÞd”
+ =…laceholder;
+
+4800 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+>
+
+4801 
+	`bšd
+Ð
+boÞ
+ 
+C
+::* 
+f›ld
+ ) {
+
+4802 
+m_¬g
+->
+boundF›ld
+ = 
+Ãw
+ 
+D‘až
+::
+BoundD©aMemb”
+<
+C
+,
+boÞ
+>Ð
+f›ld
+ );
+
+4806 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+M
+>
+
+4807 
+	`bšd
+Ð(
+C
+::* 
+uÇryM‘hod
+)Ð
+M
+ ), 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¶aûhÞd”
+ ) {
+
+4808 
+m_¬g
+->
+boundF›ld
+ = 
+Ãw
+ 
+D‘až
+::
+BoundUÇryM‘hod
+<
+C
+,
+M
+>Ð
+uÇryM‘hod
+ );
+
+4809 
+m_¬g
+->
+¶aûhÞd”
+ =…laceholder;
+
+4813 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+>
+
+4814 
+	`bšd
+Ð(
+C
+::* 
+uÇryM‘hod
+)Ð
+boÞ
+ ) ) {
+
+4815 
+m_¬g
+->
+boundF›ld
+ = 
+Ãw
+ 
+D‘až
+::
+BoundUÇryM‘hod
+<
+C
+,
+boÞ
+>Ð
+uÇryM‘hod
+ );
+
+4819 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+>
+
+4820 
+	`bšd
+Ð(
+C
+::* 
+nuÎ¬yM‘hod
+)() ) {
+
+4821 
+m_¬g
+->
+boundF›ld
+ = 
+Ãw
+ 
+D‘až
+::
+BoundNuÎ¬yM‘hod
+<
+C
+>Ð
+nuÎ¬yM‘hod
+ );
+
+4825 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+>
+
+4826 
+	`bšd
+Ð(* 
+uÇryFunùiÚ
+)Ð
+C
+& ) ) {
+
+4827 
+m_¬g
+->
+boundF›ld
+ = 
+Ãw
+ 
+D‘až
+::
+BoundUÇryFunùiÚ
+<
+C
+>Ð
+uÇryFunùiÚ
+ );
+
+4831 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+T
+>
+
+4832 
+	`bšd
+Ð(* 
+bš¬yFunùiÚ
+)Ð
+C
+&, 
+T
+ ), 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¶aûhÞd”
+ ) {
+
+4833 
+m_¬g
+->
+boundF›ld
+ = 
+Ãw
+ 
+D‘až
+::
+BoundBš¬yFunùiÚ
+<
+C
+, 
+T
+>Ð
+bš¬yFunùiÚ
+ );
+
+4834 
+m_¬g
+->
+¶aûhÞd”
+ =…laceholder;
+
+4837 
+ArgBužd”
+& 
+	`desüibe
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+desü�tiÚ
+ ) {
+
+4838 
+m_¬g
+->
+desü�tiÚ
+ = description;
+
+4839  *
+this
+;
+
+4841 
+ArgBužd”
+& 
+	`d‘až
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+d‘až
+ ) {
+
+4842 
+m_¬g
+->
+d‘až
+ = detail;
+
+4843  *
+this
+;
+
+4846 
+´Ùeùed
+:
+
+4847 
+Arg
+* 
+m_¬g
+;
+
+4850 þas 
+	cO±Bužd”
+ : 
+public
+ 
+ArgBužd”
+ {
+
+4851 
+public
+:
+
+4852 
+	`O±Bužd”
+Ð
+Arg
+* 
+¬g
+ ) : 
+	`ArgBužd”
+(‡rg ) {}
+
+4853 
+	`O±Bužd”
+Ð
+O±Bužd”
+& 
+Ùh”
+ ) : 
+	`ArgBužd”
+( other ) {}
+
+4855 
+O±Bužd”
+& 
+Ý”©Ü
+[]Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+ÝtName
+ ) {
+
+4856 
+	`addO±Name
+Ð*
+ArgBužd”
+::
+m_¬g
+, 
+ÝtName
+ );
+
+4857  *
+this
+;
+
+4861 
+public
+:
+
+4863 
+	`CommªdLše
+()
+
+4864 : 
+	`m_boundProûssName
+Ð
+Ãw
+ 
+D‘až
+::
+NuÎBšd”
+<
+CÚfigT
+>() ),
+
+4865 
+	`m_highe¡S³cif›dArgPos™iÚ
+( 0 ),
+
+4866 
+	`m_throwOnUÄecogni£dTok’s
+Ð
+çl£
+ )
+
+4868 
+	`CommªdLše
+Ð
+CommªdLše
+ cÚ¡& 
+Ùh”
+ )
+
+4869 : 
+	`m_boundProûssName
+Ð
+Ùh”
+.
+m_boundProûssName
+ ),
+
+4870 
+	`m_ÝtiÚs
+ ( 
+Ùh”
+.
+m_ÝtiÚs
+ ),
+
+4871 
+	`m_pos™iÚ®Args
+Ð
+Ùh”
+.
+m_pos™iÚ®Args
+ ),
+
+4872 
+	`m_highe¡S³cif›dArgPos™iÚ
+Ð
+Ùh”
+.
+m_highe¡S³cif›dArgPos™iÚ
+ ),
+
+4873 
+	`m_throwOnUÄecogni£dTok’s
+Ð
+Ùh”
+.
+m_throwOnUÄecogni£dTok’s
+ )
+
+4875 ifÐ
+Ùh”
+.
+m_æßtšgArg
+.
+	`g‘
+() )
+
+4876 
+m_æßtšgArg
+.
+	`»£t
+Ð
+Ãw
+ 
+	`Arg
+Ð*
+Ùh”
+.m_floatingArg ) );
+
+4879 
+CommªdLše
+& 
+	`£tThrowOnUÄecogni£dTok’s
+Ð
+boÞ
+ 
+shouldThrow
+ = 
+Œue
+ ) {
+
+4880 
+m_throwOnUÄecogni£dTok’s
+ = 
+shouldThrow
+;
+
+4881  *
+this
+;
+
+4884 
+O±Bužd”
+ 
+Ý”©Ü
+[]Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+ÝtName
+ ) {
+
+4885 
+m_ÝtiÚs
+.
+	`push_back
+Ð
+	`Arg
+() );
+
+4886 
+	`addO±Name
+Ð
+m_ÝtiÚs
+.
+	`back
+(), 
+ÝtName
+ );
+
+4887 
+O±Bužd”
+ 
+	`bužd”
+Ð&
+m_ÝtiÚs
+.
+	`back
+() );
+
+4888  
+bužd”
+;
+
+4891 
+ArgBužd”
+ 
+Ý”©Ü
+[]Ð
+pos™iÚ
+ ) {
+
+4892 
+m_pos™iÚ®Args
+.
+	`š£¹
+Ð
+¡d
+::
+	`make_·œ
+Ð
+pos™iÚ
+, 
+	`Arg
+() ) );
+
+4893 ifÐ
+pos™iÚ
+ > 
+m_highe¡S³cif›dArgPos™iÚ
+ )
+
+4894 
+m_highe¡S³cif›dArgPos™iÚ
+ = 
+pos™iÚ
+;
+
+4895 
+	`£tPos™iÚ®Arg
+Ð
+m_pos™iÚ®Args
+[
+pos™iÚ
+],…osition );
+
+4896 
+ArgBužd”
+ 
+	`bužd”
+Ð&
+m_pos™iÚ®Args
+[
+pos™iÚ
+] );
+
+4897  
+bužd”
+;
+
+4901 
+ArgBužd”
+ 
+Ý”©Ü
+[]Ð
+UÅos™iÚ®Tag
+ ) {
+
+4902 ifÐ
+m_æßtšgArg
+.
+	`g‘
+() )
+
+4903 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "Only one unpositional‡rgument can be‡dded" );
+
+4904 
+m_æßtšgArg
+.
+	`»£t
+Ð
+Ãw
+ 
+	`Arg
+() );
+
+4905 
+ArgBužd”
+ 
+	`bužd”
+Ð
+m_æßtšgArg
+.
+	`g‘
+() );
+
+4906  
+bužd”
+;
+
+4909 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+M
+>
+
+4910 
+	`bšdProûssName
+Ð
+M
+ 
+C
+::* 
+f›ld
+ ) {
+
+4911 
+m_boundProûssName
+ = 
+Ãw
+ 
+D‘až
+::
+BoundD©aMemb”
+<
+C
+,
+M
+>Ð
+f›ld
+ );
+
+4913 
+‹m¶©e
+<
+ty³Çme
+ 
+C
+,�y³Çm�
+M
+>
+
+4914 
+	`bšdProûssName
+Ð(
+C
+::*
+_uÇryM‘hod
+)Ð
+M
+ ) ) {
+
+4915 
+m_boundProûssName
+ = 
+Ãw
+ 
+D‘až
+::
+BoundUÇryM‘hod
+<
+C
+,
+M
+>Ð
+_uÇryM‘hod
+ );
+
+4918 
+	`ÝtU§ge
+Ð
+¡d
+::
+o¡»am
+& 
+os
+, std::
+size_t
+ 
+šd’t
+ = 0, std::size_ˆ
+width
+ = 
+D‘až
+::
+cÚsÞeWidth
+ ) const {
+
+4919 
+ty³Çme
+ 
+¡d
+::
+veùÜ
+<
+Arg
+>::
+cÚ¡_™”©Ü
+ 
+™Begš
+ = 
+m_ÝtiÚs
+.
+	`begš
+(), 
+™End
+ = m_ÝtiÚs.
+	`’d
+(), 
+™
+;
+
+4920 
+¡d
+::
+size_t
+ 
+maxWidth
+ = 0;
+
+4921  
+™
+ = 
+™Begš
+; iˆ!ð
+™End
+; ++it )
+
+4922 
+maxWidth
+ = (
+¡d
+::
+max
+)ÐmaxWidth, 
+™
+->
+	`commªds
+().
+	`size
+() );
+
+4924  
+™
+ = 
+™Begš
+; iˆ!ð
+™End
+; ++it ) {
+
+4925 
+D‘až
+::
+Text
+ 
+	`u§ge
+Ð
+™
+->
+	`commªds
+(), D‘až::
+	`TextA‰ribu‹s
+()
+
+4926 .
+	`£tWidth
+Ð
+maxWidth
++
+šd’t
+ )
+
+4927 .
+	`£tInd’t
+Ð
+šd’t
+ ) );
+
+4928 
+D‘až
+::
+Text
+ 
+	`desc
+Ð
+™
+->
+desü�tiÚ
+, D‘až::
+	`TextA‰ribu‹s
+()
+
+4929 .
+	`£tWidth
+Ð
+width
+ - 
+maxWidth
+ - 3 ) );
+
+4931  
+¡d
+::
+size_t
+ 
+i
+ = 0; i < (¡d::
+max
+)Ð
+u§ge
+.
+	`size
+(), 
+desc
+.size() ); ++i ) {
+
+4932 
+¡d
+::
+¡ršg
+ 
+u§geCÞ
+ = 
+i
+ < 
+u§ge
+.
+	`size
+() ? usage[i] : "";
+
+4933 
+os
+ << 
+u§geCÞ
+;
+
+4935 ifÐ
+i
+ < 
+desc
+.
+	`size
+(è&& !desc[i].
+	`em±y
+() )
+
+4936 
+os
+ << 
+¡d
+::
+	`¡ršg
+Ð
+šd’t
+ + 2 + 
+maxWidth
+ - 
+u§geCÞ
+.
+	`size
+(), ' ' )
+
+4937 << 
+desc
+[
+i
+];
+
+4938 
+os
+ << "\n";
+
+4942 
+¡d
+::
+¡ršg
+ 
+	`ÝtU§ge
+() const {
+
+4943 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+4944 
+	`ÝtU§ge
+Ð
+oss
+ );
+
+4945  
+oss
+.
+	`¡r
+();
+
+4948 
+	`¬gSynÝsis
+Ð
+¡d
+::
+o¡»am
+& 
+os
+ ) const {
+
+4949  
+i
+ = 1; i <ð
+m_highe¡S³cif›dArgPos™iÚ
+; ++i ) {
+
+4950 ifÐ
+i
+ > 1 )
+
+4951 
+os
+ << " ";
+
+4952 
+ty³Çme
+ 
+¡d
+::
+m­
+<, 
+Arg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_pos™iÚ®Args
+.
+	`fšd
+Ð
+i
+ );
+
+4953 ifÐ
+™
+ !ð
+m_pos™iÚ®Args
+.
+	`’d
+() )
+
+4954 
+os
+ << "<" << 
+™
+->
+£cÚd
+.
+¶aûhÞd”
+ << ">";
+
+4955 ifÐ
+m_æßtšgArg
+.
+	`g‘
+() )
+
+4956 
+os
+ << "<" << 
+m_æßtšgArg
+->
+¶aûhÞd”
+ << ">";
+
+4958 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "non consecutive…ositional‡rguments with‚o floating‡rgs" );
+
+4961 ifÐ
+m_æßtšgArg
+.
+	`g‘
+() ) {
+
+4962 ifÐ
+m_highe¡S³cif›dArgPos™iÚ
+ > 1 )
+
+4963 
+os
+ << " ";
+
+4964 
+os
+ << "[<" << 
+m_æßtšgArg
+->
+¶aûhÞd”
+ << "> ...]";
+
+4967 
+¡d
+::
+¡ršg
+ 
+	`¬gSynÝsis
+() const {
+
+4968 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+4969 
+	`¬gSynÝsis
+Ð
+oss
+ );
+
+4970  
+oss
+.
+	`¡r
+();
+
+4973 
+	`u§ge
+Ð
+¡d
+::
+o¡»am
+& 
+os
+, std::
+¡ršg
+ cÚ¡& 
+´ocName
+ ) const {
+
+4974 
+	`v®id©e
+();
+
+4975 
+os
+ << "u§ge:\À " << 
+´ocName
+ << " ";
+
+4976 
+	`¬gSynÝsis
+Ð
+os
+ );
+
+4977 ifÐ!
+m_ÝtiÚs
+.
+	`em±y
+() ) {
+
+4978 
+os
+ << " [options]\n\nwhere options‡re: \n";
+
+4979 
+	`ÝtU§ge
+Ð
+os
+, 2 );
+
+4981 
+os
+ << "\n";
+
+4983 
+¡d
+::
+¡ršg
+ 
+	`u§ge
+Ð¡d::¡ršg cÚ¡& 
+´ocName
+ ) const {
+
+4984 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+4985 
+	`u§ge
+Ð
+oss
+, 
+´ocName
+ );
+
+4986  
+oss
+.
+	`¡r
+();
+
+4989 
+CÚfigT
+ 
+	`·r£
+Ð
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> cÚ¡& 
+¬gs
+ ) const {
+
+4990 
+CÚfigT
+ 
+cÚfig
+;
+
+4991 
+	`·r£IÁo
+Ð
+¬gs
+, 
+cÚfig
+ );
+
+4992  
+cÚfig
+;
+
+4995 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+	`·r£IÁo
+Ð¡d::veùÜ<¡d::
+¡ršg
+> cÚ¡& 
+¬gs
+, 
+CÚfigT
+& 
+cÚfig
+ ) const {
+
+4996 
+¡d
+::
+¡ršg
+ 
+´oûssName
+ = 
+¬gs
+.
+	`em±y
+(è? std::
+	`¡ršg
+() :‡rgs[0];
+
+4997 
+¡d
+::
+size_t
+ 
+Ï¡SÏsh
+ = 
+´oûssName
+.
+	`fšd_Ï¡_of
+( "/\\" );
+
+4998 ifÐ
+Ï¡SÏsh
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ )
+
+4999 
+´oûssName
+ =…roûssName.
+	`sub¡r
+Ð
+Ï¡SÏsh
++1 );
+
+5000 
+m_boundProûssName
+.
+	`£t
+Ð
+cÚfig
+, 
+´oûssName
+ );
+
+5001 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+tok’s
+;
+
+5002 
+P¬£r
+ 
+·r£r
+;
+
+5003 
+·r£r
+.
+	`·r£IÁoTok’s
+Ð
+¬gs
+, 
+tok’s
+ );
+
+5004  
+	`pÝuÏ‹
+Ð
+tok’s
+, 
+cÚfig
+ );
+
+5007 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+	`pÝuÏ‹
+Ð¡d::veùÜ<P¬£r::Tok’> cÚ¡& 
+tok’s
+, 
+CÚfigT
+& 
+cÚfig
+ ) const {
+
+5008 
+	`v®id©e
+();
+
+5009 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+unu£dTok’s
+ = 
+	`pÝuÏ‹O±iÚs
+Ð
+tok’s
+, 
+cÚfig
+ );
+
+5010 
+unu£dTok’s
+ = 
+	`pÝuÏ‹FixedArgs
+Ðunu£dTok’s, 
+cÚfig
+ );
+
+5011 
+unu£dTok’s
+ = 
+	`pÝuÏ‹FlßtšgArgs
+Ðunu£dTok’s, 
+cÚfig
+ );
+
+5012  
+unu£dTok’s
+;
+
+5015 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+	`pÝuÏ‹O±iÚs
+Ð¡d::veùÜ<P¬£r::Tok’> cÚ¡& 
+tok’s
+, 
+CÚfigT
+& 
+cÚfig
+ ) const {
+
+5016 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+unu£dTok’s
+;
+
+5017 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+”rÜs
+;
+
+5018  
+¡d
+::
+size_t
+ 
+i
+ = 0; i < 
+tok’s
+.
+	`size
+(); ++i ) {
+
+5019 
+P¬£r
+::
+Tok’
+ cÚ¡& 
+tok’
+ = 
+tok’s
+[
+i
+];
+
+5020 
+ty³Çme
+ 
+¡d
+::
+veùÜ
+<
+Arg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_ÝtiÚs
+.
+	`begš
+(), 
+™End
+ = m_ÝtiÚs.
+	`’d
+();
+
+5021 ; 
+™
+ !ð
+™End
+; ++it ) {
+
+5022 
+Arg
+ cÚ¡& 
+¬g
+ = *
+™
+;
+
+5024 
+Œy
+ {
+
+5025 ifÐÐ
+tok’
+.
+ty³
+ =ð
+P¬£r
+::
+Tok’
+::
+ShÜtO±
+ && 
+¬g
+.
+	`hasShÜtName
+Ðtok’.
+d©a
+ ) ) ||
+
+5026 Ð
+tok’
+.
+ty³
+ =ð
+P¬£r
+::
+Tok’
+::
+LÚgO±
+ && 
+¬g
+.
+	`hasLÚgName
+Ðtok’.
+d©a
+ ) ) ) {
+
+5027 ifÐ
+¬g
+.
+	`�kesArg
+() ) {
+
+5028 ifÐ
+i
+ =ð
+tok’s
+.
+	`size
+()-1 ||�ok’s[i+1].
+ty³
+ !ð
+P¬£r
+::
+Tok’
+::
+Pos™iÚ®
+ )
+
+5029 
+”rÜs
+.
+	`push_back
+Ð"Ex³ùed‡rgum’ˆtØÝtiÚ: " + 
+tok’
+.
+d©a
+ );
+
+5031 
+¬g
+.
+boundF›ld
+.
+	`£t
+Ð
+cÚfig
+, 
+tok’s
+[++
+i
+].
+d©a
+ );
+
+5034 
+¬g
+.
+boundF›ld
+.
+	`£t
+Ð
+cÚfig
+, "true" );
+
+5039 
+	`ÿtch
+Ð
+¡d
+::
+exû±iÚ
+& 
+ex
+ ) {
+
+5040 
+”rÜs
+.
+	`push_back
+Ð
+¡d
+::
+	`¡ršg
+Ð
+ex
+.
+	`wh©
+(èè+ "\n- whž�·rsšg: (" + 
+¬g
+.
+	`commªds
+() + ")" );
+
+5043 ifÐ
+™
+ =ð
+™End
+ ) {
+
+5044 ifÐ
+tok’
+.
+ty³
+ =ð
+P¬£r
+::
+Tok’
+::
+Pos™iÚ®
+ || !
+m_throwOnUÄecogni£dTok’s
+ )
+
+5045 
+unu£dTok’s
+.
+	`push_back
+Ð
+tok’
+ );
+
+5046 ifÐ
+”rÜs
+.
+	`em±y
+(è&& 
+m_throwOnUÄecogni£dTok’s
+ )
+
+5047 
+”rÜs
+.
+	`push_back
+Ð"uÄecogni£d o±iÚ: " + 
+tok’
+.
+d©a
+ );
+
+5050 ifÐ!
+”rÜs
+.
+	`em±y
+() ) {
+
+5051 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+5052  
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+”rÜs
+.
+	`begš
+(), 
+™End
+ =ƒ¼Üs.
+	`’d
+();
+
+5053 
+™
+ !ð
+™End
+;
+
+5054 ++
+™
+ ) {
+
+5055 ifÐ
+™
+ !ð
+”rÜs
+.
+	`begš
+() )
+
+5056 
+oss
+ << "\n";
+
+5057 
+oss
+ << *
+™
+;
+
+5059 
+throw
+ 
+¡d
+::
+	`ruÁime_”rÜ
+Ð
+oss
+.
+	`¡r
+() );
+
+5061  
+unu£dTok’s
+;
+
+5063 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+	`pÝuÏ‹FixedArgs
+Ð¡d::veùÜ<P¬£r::Tok’> cÚ¡& 
+tok’s
+, 
+CÚfigT
+& 
+cÚfig
+ ) const {
+
+5064 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+unu£dTok’s
+;
+
+5065 
+pos™iÚ
+ = 1;
+
+5066  
+¡d
+::
+size_t
+ 
+i
+ = 0; i < 
+tok’s
+.
+	`size
+(); ++i ) {
+
+5067 
+P¬£r
+::
+Tok’
+ cÚ¡& 
+tok’
+ = 
+tok’s
+[
+i
+];
+
+5068 
+ty³Çme
+ 
+¡d
+::
+m­
+<, 
+Arg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_pos™iÚ®Args
+.
+	`fšd
+Ð
+pos™iÚ
+ );
+
+5069 ifÐ
+™
+ !ð
+m_pos™iÚ®Args
+.
+	`’d
+() )
+
+5070 
+™
+->
+£cÚd
+.
+boundF›ld
+.
+	`£t
+Ð
+cÚfig
+, 
+tok’
+.
+d©a
+ );
+
+5072 
+unu£dTok’s
+.
+	`push_back
+Ð
+tok’
+ );
+
+5073 ifÐ
+tok’
+.
+ty³
+ =ð
+P¬£r
+::
+Tok’
+::
+Pos™iÚ®
+ )
+
+5074 
+pos™iÚ
+++;
+
+5076  
+unu£dTok’s
+;
+
+5078 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+	`pÝuÏ‹FlßtšgArgs
+Ð¡d::veùÜ<P¬£r::Tok’> cÚ¡& 
+tok’s
+, 
+CÚfigT
+& 
+cÚfig
+ ) const {
+
+5079 ifÐ!
+m_æßtšgArg
+.
+	`g‘
+() )
+
+5080  
+tok’s
+;
+
+5081 
+¡d
+::
+veùÜ
+<
+P¬£r
+::
+Tok’
+> 
+unu£dTok’s
+;
+
+5082  
+¡d
+::
+size_t
+ 
+i
+ = 0; i < 
+tok’s
+.
+	`size
+(); ++i ) {
+
+5083 
+P¬£r
+::
+Tok’
+ cÚ¡& 
+tok’
+ = 
+tok’s
+[
+i
+];
+
+5084 ifÐ
+tok’
+.
+ty³
+ =ð
+P¬£r
+::
+Tok’
+::
+Pos™iÚ®
+ )
+
+5085 
+m_æßtšgArg
+->
+boundF›ld
+.
+	`£t
+Ð
+cÚfig
+, 
+tok’
+.
+d©a
+ );
+
+5087 
+unu£dTok’s
+.
+	`push_back
+Ð
+tok’
+ );
+
+5089  
+unu£dTok’s
+;
+
+5092 
+	`v®id©e
+() const
+
+5094 ifÐ
+m_ÝtiÚs
+.
+	`em±y
+(è&& 
+m_pos™iÚ®Args
+.em±y(è&& !
+m_æßtšgArg
+.
+	`g‘
+() )
+
+5095 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "No options or‡rguments specified" );
+
+5097  
+ty³Çme
+ 
+¡d
+::
+veùÜ
+<
+Arg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_ÝtiÚs
+.
+	`begš
+(),
+
+5098 
+™End
+ = 
+m_ÝtiÚs
+.
+	`’d
+();
+
+5099 
+™
+ !ð
+™End
+; ++it )
+
+5100 
+™
+->
+	`v®id©e
+();
+
+5103 
+´iv©e
+:
+
+5104 
+D‘až
+::
+BoundArgFunùiÚ
+<
+CÚfigT
+> 
+m_boundProûssName
+;
+
+5105 
+¡d
+::
+veùÜ
+<
+Arg
+> 
+m_ÝtiÚs
+;
+
+5106 
+¡d
+::
+m­
+<, 
+Arg
+> 
+m_pos™iÚ®Args
+;
+
+5107 
+ArgAutoPŒ
+ 
+m_æßtšgArg
+;
+
+5108 
+m_highe¡S³cif›dArgPos™iÚ
+;
+
+5109 
+boÞ
+ 
+m_throwOnUÄecogni£dTok’s
+;
+
+5112 
+	}
+}
+
+5114 
+	gSTITCH_CLARA_CLOSE_NAMESPACE
+
+
+5115 #undeà
+STITCH_CLARA_OPEN_NAMESPACE
+
+
+5116 #undeà
+STITCH_CLARA_CLOSE_NAMESPACE
+
+
+5119 #undeà
+STITCH_CLARA_OPEN_NAMESPACE
+
+
+5122 #ifdeà
+CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+
+
+5123 
+	#CLARA_CONFIG_CONSOLE_WIDTH
+ 
+CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+
+
+	)
+
+5124 #undeà
+CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+
+
+5127 
+	~<f¡»am
+>
+
+5128 
+	~<ùime
+>
+
+5130 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+5132 
+šlše
+ 
+abÜtAá”Fœ¡
+Ð
+CÚfigD©a
+& 
+cÚfig
+ ) { 
+	gcÚfig
+.
+	gabÜtAá”
+ = 1; }
+
+5133 
+šlše
+ 
+abÜtAá”X
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+x
+ ) {
+
+5134 ifÐ
+	gx
+ < 1 )
+
+5135 
+throw
+ 
+	g¡d
+::
+ruÁime_”rÜ
+( "Value‡fter -x or --abortAfter must be greater�han zero" );
+
+5136 
+	gcÚfig
+.
+	gabÜtAá”
+ = 
+x
+;
+
+5138 
+šlše
+ 
+addTe¡OrTags
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_‹¡S³c
+ ) { cÚfig.
+‹¡sOrTags
+.
+push_back
+( _testSpec ); }
+
+5139 
+šlše
+ 
+addSeùiÚToRun
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+£ùiÚName
+ ) { cÚfig.
+£ùiÚsToRun
+.
+push_back
+( sectionName ); }
+
+5140 
+šlše
+ 
+addR•Ü‹rName
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_»pÜ‹rName
+ ) { cÚfig.
+»pÜ‹rNames
+.
+push_back
+( _reporterName ); }
+
+5142 
+šlše
+ 
+addW¬nšg
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_w¬nšg
+ ) {
+
+5143 ifÐ
+_w¬nšg
+ == "NoAssertions" )
+
+5144 
+cÚfig
+.
+w¬nšgs
+ = 
+¡©ic_ÿ¡
+<
+W¬nAbout
+::
+Wh©
+>ÐcÚfig.w¬nšg | W¬nAbout::
+NoAs£¹iÚs
+ );
+
+5146 
+throw
+ 
+	g¡d
+::
+ruÁime_”rÜ
+Ð"UÄecogni£d w¬nšg: '" + 
+_w¬nšg
+ + '\'' );
+
+5148 
+šlše
+ 
+£tOrd”
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+Üd”
+ ) {
+
+5149 ifÐ
+¡¬tsW™h
+Ð"deþ¬ed", 
+Üd”
+ ) )
+
+5150 
+	gcÚfig
+.
+	grunOrd”
+ = 
+RunTe¡s
+::
+InDeþ¬©iÚOrd”
+;
+
+5151 ifÐ
+¡¬tsW™h
+Ð"Ëxiÿl", 
+Üd”
+ ) )
+
+5152 
+	gcÚfig
+.
+	grunOrd”
+ = 
+RunTe¡s
+::
+InLexicog¿phiÿlOrd”
+;
+
+5153 ifÐ
+¡¬tsW™h
+Ð"¿ndom", 
+Üd”
+ ) )
+
+5154 
+	gcÚfig
+.
+	grunOrd”
+ = 
+RunTe¡s
+::
+InRªdomOrd”
+;
+
+5156 
+throw
+ 
+	g¡d
+::
+ruÁime_”rÜ
+Ð"UÄecogni£d ord”šg: '" + 
+Üd”
+ + '\'' );
+
+5158 
+šlše
+ 
+£tRngS“d
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+£ed
+ ) {
+
+5159 ifÐ
+£ed
+ == "time" ) {
+
+5160 
+cÚfig
+.
+ºgS“d
+ = 
+¡©ic_ÿ¡
+<>Ð
+¡d
+::
+time
+(0) );
+
+5163 
+	g¡d
+::
+¡ršg¡»am
+ 
+ss
+;
+
+5164 
+	gss
+ << 
+	g£ed
+;
+
+5165 
+	gss
+ >> 
+	gcÚfig
+.
+	gºgS“d
+;
+
+5166 ifÐ
+	gss
+.
+çž
+() )
+
+5167 
+throw
+ 
+	g¡d
+::
+ruÁime_”rÜ
+( "Argument�o --rng-seed should be�he word 'time' or‡‚umber" );
+
+5170 
+šlše
+ 
+£tV”bos™y
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+Ëv–
+ ) {
+
+5172 
+	gcÚfig
+.
+	gv”bos™y
+ = 
+¡©ic_ÿ¡
+<
+V”bos™y
+::
+Lev–
+>Ð
+Ëv–
+ );
+
+5174 
+šlše
+ 
+£tShowDu¿tiÚs
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+boÞ
+ 
+_showDu¿tiÚs
+ ) {
+
+5175 
+	gcÚfig
+.
+	gshowDu¿tiÚs
+ = 
+_showDu¿tiÚs
+
+
+5176 ? 
+ShowDu¿tiÚs
+::
+Always
+
+
+5177 : 
+ShowDu¿tiÚs
+::
+Nev”
+;
+
+5179 
+šlše
+ 
+£tU£CÞour
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+v®ue
+ ) {
+
+5180 
+¡d
+::
+¡ršg
+ 
+mode
+ = 
+toLow”
+Ð
+v®ue
+ );
+
+5182 ifÐ
+	gmode
+ == "yes" )
+
+5183 
+cÚfig
+.
+u£CÞour
+ = 
+U£CÞour
+::
+Yes
+;
+
+5184 ifÐ
+	gmode
+ == "no" )
+
+5185 
+cÚfig
+.
+u£CÞour
+ = 
+U£CÞour
+::
+No
+;
+
+5186 ifÐ
+	gmode
+ == "auto" )
+
+5187 
+cÚfig
+.
+u£CÞour
+ = 
+U£CÞour
+::
+Auto
+;
+
+5189 
+throw
+ 
+	g¡d
+::
+ruÁime_”rÜ
+( "colour mode must be one of:‡uto, yes or‚o" );
+
+5191 
+šlše
+ 
+fÜûCÞour
+Ð
+CÚfigD©a
+& 
+cÚfig
+ ) {
+
+5192 
+	gcÚfig
+.
+	gu£CÞour
+ = 
+U£CÞour
+::
+Yes
+;
+
+5194 
+šlše
+ 
+lßdTe¡NamesFromFže
+Ð
+CÚfigD©a
+& 
+cÚfig
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_fž’ame
+ ) {
+
+5195 
+¡d
+::
+if¡»am
+ 
+f
+Ð
+_fž’ame
+.
+c_¡r
+() );
+
+5196 ifÐ!
+	gf
+.
+is_Ý’
+() )
+
+5197 
+throw
+ 
+	g¡d
+::
+domaš_”rÜ
+Ð"UÇbË�Ølßd iÅuˆfže: " + 
+_fž’ame
+ );
+
+5199 
+	g¡d
+::
+¡ršg
+ 
+lše
+;
+
+5200  
+	g¡d
+::
+g‘lše
+Ð
+f
+, 
+lše
+ ) ) {
+
+5201 
+	glše
+ = 
+Œim
+(
+lše
+);
+
+5202 ifÐ!
+	glše
+.
+em±y
+(è&& !
+¡¬tsW™h
+Ð
+lše
+, '#' ) ) {
+
+5203 ifÐ!
+¡¬tsW™h
+Ð
+lše
+, '"' ) )
+
+5204 
+	glše
+ = '"' + 
+lše
+ + '"';
+
+5205 
+addTe¡OrTags
+Ð
+cÚfig
+, 
+lše
+ + ',' );
+
+5210 
+šlše
+ 
+	gCÏ¿
+::
+CommªdLše
+<
+CÚfigD©a
+> 
+makeCommªdLšeP¬£r
+() {
+
+5212 
+usšg
+ 
+Çme¥aû
+ 
+CÏ¿
+;
+
+5213 
+	gCommªdLše
+<
+	gCÚfigD©a
+> 
+	gþi
+;
+
+5215 
+	gþi
+.
+bšdProûssName
+Ð&
+CÚfigD©a
+::
+´oûssName
+ );
+
+5217 
+	gþi
+["-?"]["-h"]["--help"]
+
+5218 .
+desüibe
+( "display usage information" )
+
+5219 .
+bšd
+Ð&
+CÚfigD©a
+::
+showH–p
+ );
+
+5221 
+	gþi
+["-l"]["--list-tests"]
+
+5222 .
+desüibe
+( "list‡ll/matching�est cases" )
+
+5223 .
+bšd
+Ð&
+CÚfigD©a
+::
+li¡Te¡s
+ );
+
+5225 
+	gþi
+["-t"]["--list-tags"]
+
+5226 .
+desüibe
+( "list‡ll/matching�ags" )
+
+5227 .
+bšd
+Ð&
+CÚfigD©a
+::
+li¡Tags
+ );
+
+5229 
+	gþi
+["-s"]["--success"]
+
+5230 .
+desüibe
+( "include successful�ests in output" )
+
+5231 .
+bšd
+Ð&
+CÚfigD©a
+::
+showSucûssfulTe¡s
+ );
+
+5233 
+	gþi
+["-b"]["--break"]
+
+5234 .
+desüibe
+( "break into debugger on failure" )
+
+5235 .
+bšd
+Ð&
+CÚfigD©a
+::
+shouldDebugB»ak
+ );
+
+5237 
+	gþi
+["-e"]["--nothrow"]
+
+5238 .
+desüibe
+( "skipƒxception�ests" )
+
+5239 .
+bšd
+Ð&
+CÚfigD©a
+::
+noThrow
+ );
+
+5241 
+	gþi
+["-i"]["--invisibles"]
+
+5242 .
+desüibe
+( "show invisibles (tabs,‚ewlines)" )
+
+5243 .
+bšd
+Ð&
+CÚfigD©a
+::
+showInvisibËs
+ );
+
+5245 
+	gþi
+["-o"]["--out"]
+
+5246 .
+desüibe
+( "output filename" )
+
+5247 .
+bšd
+Ð&
+CÚfigD©a
+::
+ou�utFž’ame
+, "filename" );
+
+5249 
+	gþi
+["-r"]["--reporter"]
+
+5251 .
+desüibe
+( "reporter�o use (defaults�o console)" )
+
+5252 .
+bšd
+Ð&
+addR•Ü‹rName
+, "name" );
+
+5254 
+	gþi
+["-n"]["--name"]
+
+5255 .
+desüibe
+( "suite‚ame" )
+
+5256 .
+bšd
+Ð&
+CÚfigD©a
+::
+Çme
+, "name" );
+
+5258 
+	gþi
+["-a"]["--abort"]
+
+5259 .
+desüibe
+( "abort‡t first failure" )
+
+5260 .
+bšd
+Ð&
+abÜtAá”Fœ¡
+ );
+
+5262 
+	gþi
+["-x"]["--abortx"]
+
+5263 .
+desüibe
+( "abort‡fter x failures" )
+
+5264 .
+bšd
+Ð&
+abÜtAá”X
+, "no. failures" );
+
+5266 
+	gþi
+["-w"]["--warn"]
+
+5267 .
+desüibe
+( "enable warnings" )
+
+5268 .
+bšd
+Ð&
+addW¬nšg
+, "warning‚ame" );
+
+5277 
+	gþi
+[
+_
+]
+
+5278 .
+desüibe
+( "which�est or�ests�o use" )
+
+5279 .
+bšd
+Ð&
+addTe¡OrTags
+, "test‚ame,…attern or�ags" );
+
+5281 
+	gþi
+["-d"]["--durations"]
+
+5282 .
+desüibe
+( "show�est durations" )
+
+5283 .
+bšd
+Ð&
+£tShowDu¿tiÚs
+, "yes|no" );
+
+5285 
+	gþi
+["-f"]["--input-file"]
+
+5286 .
+desüibe
+( "load�est‚ames�o„un from‡ file" )
+
+5287 .
+bšd
+Ð&
+lßdTe¡NamesFromFže
+, "filename" );
+
+5289 
+	gþi
+["-#"]["--filenames-as-tags"]
+
+5290 .
+desüibe
+( "adds‡�ag for�he filename" )
+
+5291 .
+bšd
+Ð&
+CÚfigD©a
+::
+fž’amesAsTags
+ );
+
+5293 
+	gþi
+["-c"]["--section"]
+
+5294 .
+desüibe
+( "specify section�o„un" )
+
+5295 .
+bšd
+Ð&
+addSeùiÚToRun
+, "section‚ame" );
+
+5298 
+	gþi
+["--list-test-names-only"]
+
+5299 .
+desüibe
+( "list‡ll/matching�est cases‚ames only" )
+
+5300 .
+bšd
+Ð&
+CÚfigD©a
+::
+li¡Te¡NamesOÆy
+ );
+
+5302 
+	gþi
+["--list-extra-info"]
+
+5303 .
+desüibe
+( "list‡ll/matching�est cases with more info" )
+
+5304 .
+bšd
+Ð&
+CÚfigD©a
+::
+li¡ExŒaInfo
+ );
+
+5306 
+	gþi
+["--list-reporters"]
+
+5307 .
+desüibe
+( "list‡ll„eporters" )
+
+5308 .
+bšd
+Ð&
+CÚfigD©a
+::
+li¡R•Ü‹rs
+ );
+
+5310 
+	gþi
+["--order"]
+
+5311 .
+desüibe
+( "test case order (defaults�o decl)" )
+
+5312 .
+bšd
+Ð&
+£tOrd”
+, "decl|lex|rand" );
+
+5314 
+	gþi
+["--rng-seed"]
+
+5315 .
+desüibe
+( "set‡ specific seed for„andom‚umbers" )
+
+5316 .
+bšd
+Ð&
+£tRngS“d
+, "'time'|number" );
+
+5318 
+	gþi
+["--force-colour"]
+
+5319 .
+desüibe
+( "force colourised output (deprecated)" )
+
+5320 .
+bšd
+Ð&
+fÜûCÞour
+ );
+
+5322 
+	gþi
+["--use-colour"]
+
+5323 .
+desüibe
+( "should output be colourised" )
+
+5324 .
+bšd
+Ð&
+£tU£CÞour
+, "yes|no" );
+
+5326  
+	gþi
+;
+
+5332 
+	#TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
+
+
+	)
+
+5335 
+	#TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
+
+
+	)
+
+5337 
+	#TBC_TEXT_FORMAT_CONSOLE_WIDTH
+ 
+CATCH_CONFIG_CONSOLE_WIDTH
+
+
+	)
+
+5339 
+	#CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+ 
+C©ch
+
+
+	)
+
+5342 #iâdeà
+CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+
+5343 #ifdeà
+TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+
+
+5344 #iâdeà
+TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+
+
+5345 
+	#TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+
+
+	)
+
+5348 
+	#TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+
+
+	)
+
+5351 #iâdeà
+TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+
+
+5352 
+	~<¡ršg
+>
+
+5353 
+	~<veùÜ
+>
+
+5354 
+	~<s¡»am
+>
+
+5357 #ifdeà
+CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+
+5358 
+Çme¥aû
+ 
+	gCLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+ {
+
+5361 
+Çme¥aû
+ 
+	gTbc
+ {
+
+5363 #ifdeà
+TBC_TEXT_FORMAT_CONSOLE_WIDTH
+
+
+5364 cÚ¡ 
+	gcÚsÞeWidth
+ = 
+TBC_TEXT_FORMAT_CONSOLE_WIDTH
+;
+
+5366 cÚ¡ 
+	gcÚsÞeWidth
+ = 80;
+
+5369 
+	sTextA‰ribu‹s
+ {
+
+5370 
+TextA‰ribu‹s
+()
+
+5371 : 
+š™ŸlInd’t
+Ð
+¡d
+::
+¡ršg
+::
+Åos
+ ),
+
+5372 
+šd’t
+( 0 ),
+
+5373 
+width
+Ð
+cÚsÞeWidth
+-1 )
+
+5376 
+	gTextA‰ribu‹s
+& 
+£tIn™ŸlInd’t
+Ð
+¡d
+::
+size_t
+ 
+_v®ue
+ ) { 
+š™ŸlInd’t
+ = _v®ue;  *
+	gthis
+; }
+
+5377 
+	gTextA‰ribu‹s
+& 
+£tInd’t
+Ð
+¡d
+::
+size_t
+ 
+_v®ue
+ ) { 
+šd’t
+ = _v®ue;  *
+	gthis
+; }
+
+5378 
+	gTextA‰ribu‹s
+& 
+£tWidth
+Ð
+¡d
+::
+size_t
+ 
+_v®ue
+ ) { 
+width
+ = _v®ue;  *
+	gthis
+; }
+
+5380 
+	g¡d
+::
+size_t
+ 
+š™ŸlInd’t
+;
+
+5381 
+	g¡d
+::
+size_t
+ 
+šd’t
+;
+
+5382 
+	g¡d
+::
+size_t
+ 
+width
+;
+
+5385 þas 
+	cText
+ {
+
+5386 
+	gpublic
+:
+
+5387 
+Text
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_¡r
+, 
+TextA‰ribu‹s
+ cÚ¡& 
+_©Œ
+ = TextAttributes() )
+
+5388 : 
+©Œ
+Ð
+_©Œ
+ )
+
+5390 cÚ¡ 
+¡d
+::
+¡ršg
+ 
+w¿µabËBefÜeCh¬s
+ = "[({<\t";
+
+5391 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+w¿µabËAá”Ch¬s
+ = "])}>-,./|\\";
+
+5392 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+w¿µabËIn¡—dOfCh¬s
+ = " \n\r";
+
+5393 
+	g¡d
+::
+¡ršg
+ 
+šd’t
+ = 
+_©Œ
+.
+š™ŸlInd’t
+ !ð
+¡d
+::¡ršg::
+Åos
+
+
+5394 ? 
+¡d
+::
+¡ršg
+Ð
+_©Œ
+.
+š™ŸlInd’t
+, ' ' )
+
+5395 : 
+¡d
+::
+¡ršg
+Ð
+_©Œ
+.
+šd’t
+, ' ' );
+
+5397 
+	g¡d
+::
+	t¡ršg
+::
+	tcÚ¡_™”©Ü
+ 
+	t™”©Ü
+;
+
+5398 
+™”©Ü
+ 
+	g™
+ = 
+_¡r
+.
+begš
+();
+
+5399 cÚ¡ 
+™”©Ü
+ 
+	g¡rEnd
+ = 
+_¡r
+.
+’d
+();
+
+5401  
+	g™
+ !ð
+¡rEnd
+ ) {
+
+5403 ifÐ
+lšes
+.
+size
+() >= 1000 ) {
+
+5404 
+lšes
+.
+push_back
+( "... message�runcated due�oƒxcessive size" );
+
+5408 
+	g¡d
+::
+¡ršg
+ 
+suffix
+;
+
+5409 
+	g¡d
+::
+size_t
+ 
+width
+ = (
+¡d
+::
+mš
+)Ð
+¡©ic_ÿ¡
+<size_t>Ð
+¡rEnd
+-
+™
+ ), 
+	g_©Œ
+.
+	gwidth
+-
+	g¡©ic_ÿ¡
+<
+	gsize_t
+>Ð
+	gšd’t
+.
+size
+() ) );
+
+5410 
+™”©Ü
+ 
+	g™End
+ = 
+™
++
+width
+;
+
+5411 
+™”©Ü
+ 
+	g™Next
+ = 
+_¡r
+.
+’d
+();
+
+5413 
+™”©Ü
+ 
+	g™NewLše
+ = 
+¡d
+::
+fšd
+Ð
+™
+, 
+™End
+, '\n' );
+
+5414 ifÐ
+	g™NewLše
+ !ð
+™End
+ )
+
+5415 
+™End
+ = 
+™NewLše
+;
+
+5417 ifÐ
+	g™End
+ !ð
+¡rEnd
+ ) {
+
+5418 
+boÞ
+ 
+foundW¿pPošt
+ = 
+çl£
+;
+
+5419 
+™”©Ü
+ 
+	gfšdIt
+ = 
+™End
+;
+
+5421 ifÐ
+	gw¿µabËAá”Ch¬s
+.
+fšd
+Ð*
+fšdIt
+ ) !ð
+¡d
+::
+¡ršg
+::
+Åos
+ && fšdIˆ!ð
+™End
+ ) {
+
+5422 
+™End
+ = 
+fšdIt
++1;
+
+5423 
+	g™Next
+ = 
+fšdIt
++1;
+
+5424 
+	gfoundW¿pPošt
+ = 
+Œue
+;
+
+5426 ifÐ
+	gfšdIt
+ > 
+	g™
+ && 
+	gw¿µabËBefÜeCh¬s
+.
+fšd
+Ð*
+fšdIt
+ ) !ð
+¡d
+::
+¡ršg
+::
+Åos
+ ) {
+
+5427 
+™End
+ = 
+fšdIt
+;
+
+5428 
+	g™Next
+ = 
+fšdIt
+;
+
+5429 
+	gfoundW¿pPošt
+ = 
+Œue
+;
+
+5431 ifÐ
+	gw¿µabËIn¡—dOfCh¬s
+.
+fšd
+Ð*
+fšdIt
+ ) !ð
+¡d
+::
+¡ršg
+::
+Åos
+ ) {
+
+5432 
+™Next
+ = 
+fšdIt
++1;
+
+5433 
+	g™End
+ = 
+fšdIt
+;
+
+5434 
+	gfoundW¿pPošt
+ = 
+Œue
+;
+
+5436 ifÐ
+	gfšdIt
+ =ð
+™
+ )
+
+5439 --
+	gfšdIt
+;
+
+5441  !
+	gfoundW¿pPošt
+ );
+
+5443 ifÐ!
+	gfoundW¿pPošt
+ ) {
+
+5445 --
+	g™End
+;
+
+5446 
+	g™Next
+ = 
+™End
+;
+
+5447 
+	gsuffix
+ = "-";
+
+5450  
+	g™End
+ > 
+	g™
+ && 
+	gw¿µabËIn¡—dOfCh¬s
+.
+fšd
+Ð*(
+™End
+-1èè!ð
+¡d
+::
+¡ršg
+::
+Åos
+ )
+
+5451 --
+™End
+;
+
+5454 
+	glšes
+.
+push_back
+Ð
+šd’t
+ + 
+¡d
+::
+¡ršg
+Ð
+™
+, 
+™End
+ ) + 
+suffix
+ );
+
+5456 ifÐ
+	gšd’t
+.
+size
+(è!ð
+_©Œ
+.
+šd’t
+ )
+
+5457 
+šd’t
+ = 
+¡d
+::
+¡ršg
+Ð
+_©Œ
+.indent, ' ' );
+
+5458 
+	g™
+ = 
+™Next
+;
+
+5462 
+	g¡d
+::
+	tveùÜ
+<
+	t¡d
+::
+	t¡ršg
+>::
+	tcÚ¡_™”©Ü
+ const_iterator;
+
+5464 
+cÚ¡_™”©Ü
+ 
+begš
+(ècÚ¡ {  
+	glšes
+.begin(); }
+
+5465 
+cÚ¡_™”©Ü
+ 
+’d
+(ècÚ¡ {  
+	glšes
+.end(); }
+
+5466 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+Ï¡
+(ècÚ¡ {  
+lšes
+.
+back
+(); }
+
+5467 
+	g¡d
+::
+size_t
+ 
+size
+(ècÚ¡ {  
+lšes
+.size(); }
+
+5468 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+Ý”©Ü
+[]Ð
+¡d
+::
+size_t
+ 
+_šdex
+ ) cÚ¡ {  
+lšes
+[_index]; }
+
+5469 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+() const {
+
+5470 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+5471 
+	goss
+ << *
+	gthis
+;
+
+5472  
+	goss
+.
+¡r
+();
+
+5475 
+šlše
+ 
+ä›nd
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+_¡»am
+, 
+Text
+ cÚ¡& 
+	g_‹xt
+ ) {
+
+5476  
+	gText
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+_‹xt
+.
+begš
+(), 
+	g™End
+ = _‹xt.
+’d
+();
+
+5477 
+	g™
+ !ð
+™End
+; ++it ) {
+
+5478 ifÐ
+	g™
+ !ð
+_‹xt
+.
+begš
+() )
+
+5479 
+_¡»am
+ << "\n";
+
+5480 
+	g_¡»am
+ << *
+	g™
+;
+
+5482  
+	g_¡»am
+;
+
+5485 
+	g´iv©e
+:
+
+5486 
+¡d
+::
+¡ršg
+ 
+¡r
+;
+
+5487 
+TextA‰ribu‹s
+ 
+	g©Œ
+;
+
+5488 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+lšes
+;
+
+5493 #ifdeà
+CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+
+5498 #undeà
+CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+
+5500 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+5501 
+usšg
+ 
+	gTbc
+::
+Text
+;
+
+5502 
+usšg
+ 
+	gTbc
+::
+TextA‰ribu‹s
+;
+
+5506 
+	#TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
+
+
+	)
+
+5508 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+5510 
+	sCÞour
+ {
+
+5511 
+	eCode
+ {
+
+5512 
+	gNÚe
+ = 0,
+
+5514 
+	gWh™e
+,
+
+5515 
+	gRed
+,
+
+5516 
+	gG»’
+,
+
+5517 
+	gBlue
+,
+
+5518 
+	gCyª
+,
+
+5519 
+	gY–low
+,
+
+5520 
+	gG»y
+,
+
+5522 
+	gBright
+ = 0x10,
+
+5524 
+	gBrightRed
+ = 
+Bright
+ | 
+Red
+,
+
+5525 
+	gBrightG»’
+ = 
+Bright
+ | 
+G»’
+,
+
+5526 
+	gLightG»y
+ = 
+Bright
+ | 
+G»y
+,
+
+5527 
+	gBrightWh™e
+ = 
+Bright
+ | 
+Wh™e
+,
+
+5530 
+	gFžeName
+ = 
+LightG»y
+,
+
+5531 
+	gW¬nšg
+ = 
+Y–low
+,
+
+5532 
+	gResuÉE¼Ü
+ = 
+BrightRed
+,
+
+5533 
+	gResuÉSucûss
+ = 
+BrightG»’
+,
+
+5534 
+	gResuÉEx³ùedFažu»
+ = 
+W¬nšg
+,
+
+5536 
+	gE¼Ü
+ = 
+BrightRed
+,
+
+5537 
+	gSucûss
+ = 
+G»’
+,
+
+5539 
+	gOrigš®Ex´essiÚ
+ = 
+Cyª
+,
+
+5540 
+	gRecÚ¡ruùedEx´essiÚ
+ = 
+Y–low
+,
+
+5542 
+	gSecÚd¬yText
+ = 
+LightG»y
+,
+
+5543 
+	gH—d”s
+ = 
+Wh™e
+
+
+5547 
+CÞour
+Ð
+Code
+ 
+_cÞourCode
+ );
+
+5548 
+CÞour
+ÐCÞou¸cÚ¡& 
+Ùh”
+ );
+
+5549 ~
+CÞour
+();
+
+5552 
+u£
+Ð
+Code
+ 
+_cÞourCode
+ );
+
+5554 
+	g´iv©e
+:
+
+5555 
+boÞ
+ 
+m_moved
+;
+
+5558 
+šlše
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+CÞour
+ cÚ¡& ) {  
+	gos
+; }
+
+5563 
+	#TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
+
+
+	)
+
+5565 
+	~<¡ršg
+>
+
+5566 
+	~<o¡»am
+>
+
+5567 
+	~<m­
+>
+
+5569 
+Çme¥aû
+ 
+	gC©ch
+
+
+5571 
+	sR•Ü‹rCÚfig
+ {
+
+5572 
+ex¶ic™
+ 
+R•Ü‹rCÚfig
+Ð
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+_fuÎCÚfig
+ )
+
+5573 : 
+m_¡»am
+Ð&
+_fuÎCÚfig
+->
+¡»am
+(è), 
+m_fuÎCÚfig
+( _fullConfig ) {}
+
+5575 
+R•Ü‹rCÚfig
+Ð
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+_fuÎCÚfig
+, 
+¡d
+::
+o¡»am
+& 
+_¡»am
+ )
+
+5576 : 
+m_¡»am
+Ð&
+_¡»am
+ ), 
+m_fuÎCÚfig
+Ð
+_fuÎCÚfig
+ ) {}
+
+5578 
+	g¡d
+::
+o¡»am
+& 
+¡»am
+(ècÚ¡ {  *
+m_¡»am
+; }
+
+5579 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+fuÎCÚfig
+(ècÚ¡ {  
+	gm_fuÎCÚfig
+; }
+
+5581 
+	g´iv©e
+:
+
+5582 
+¡d
+::
+o¡»am
+* 
+m_¡»am
+;
+
+5583 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+	gm_fuÎCÚfig
+;
+
+5586 
+	sR•Ü‹rP»ã»nûs
+ {
+
+5587 
+R•Ü‹rP»ã»nûs
+()
+
+5588 : 
+shouldRedœeùStdOut
+Ð
+çl£
+ )
+
+5591 
+boÞ
+ 
+shouldRedœeùStdOut
+;
+
+5594 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+5595 
+	gLazyS�t
+ : 
+O±iÚ
+<
+T
+> {
+
+5596 
+LazyS�t
+(è: 
+u£d
+Ð
+çl£
+ ) {}
+
+5597 
+LazyS�t
+& 
+Ý”©Ü
+=Ð
+T
+ cÚ¡& 
+_v®ue
+ ) {
+
+5598 
+O±iÚ
+<
+T
+>::
+Ý”©Ü
+=Ð
+_v®ue
+ );
+
+5599 
+	gu£d
+ = 
+çl£
+;
+
+5600  *
+	gthis
+;
+
+5602 
+»£t
+() {
+
+5603 
+	gO±iÚ
+<
+	gT
+>::
+»£t
+();
+
+5604 
+	gu£d
+ = 
+çl£
+;
+
+5606 
+boÞ
+ 
+	gu£d
+;
+
+5609 
+	sTe¡RunInfo
+ {
+
+5610 
+Te¡RunInfo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+ ) : 
+Çme
+( _name ) {}
+
+5611 
+¡d
+::
+¡ršg
+ 
+Çme
+;
+
+5613 
+	sGroupInfo
+ {
+
+5614 
+GroupInfo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+,
+
+5615 
+¡d
+::
+size_t
+ 
+_groupIndex
+,
+
+5616 
+¡d
+::
+size_t
+ 
+_groupsCouÁ
+ )
+
+5617 : 
+Çme
+Ð
+_Çme
+ ),
+
+5618 
+groupIndex
+Ð
+_groupIndex
+ ),
+
+5619 
+groupsCouÁs
+Ð
+_groupsCouÁ
+ )
+
+5622 
+	g¡d
+::
+¡ršg
+ 
+Çme
+;
+
+5623 
+	g¡d
+::
+size_t
+ 
+groupIndex
+;
+
+5624 
+	g¡d
+::
+size_t
+ 
+groupsCouÁs
+;
+
+5627 
+	sAs£¹iÚS�ts
+ {
+
+5628 
+As£¹iÚS�ts
+Ð
+As£¹iÚResuÉ
+ cÚ¡& 
+_as£¹iÚResuÉ
+,
+
+5629 
+¡d
+::
+veùÜ
+<
+Mes§geInfo
+> cÚ¡& 
+_šfoMes§ges
+,
+
+5630 
+TÙ®s
+ cÚ¡& 
+_tÙ®s
+ )
+
+5631 : 
+as£¹iÚResuÉ
+Ð
+_as£¹iÚResuÉ
+ ),
+
+5632 
+šfoMes§ges
+Ð
+_šfoMes§ges
+ ),
+
+5633 
+tÙ®s
+Ð
+_tÙ®s
+ )
+
+5635 ifÐ
+	gas£¹iÚResuÉ
+.
+hasMes§ge
+() ) {
+
+5638 
+Mes§geBužd”
+ 
+bužd”
+Ð
+as£¹iÚResuÉ
+.
+g‘Te¡MaüoName
+(),‡s£¹iÚResuÉ.
+g‘SourûInfo
+(),‡s£¹iÚResuÉ.
+g‘ResuÉTy³
+() );
+
+5639 
+	gbužd”
+ << 
+	gas£¹iÚResuÉ
+.
+g‘Mes§ge
+();
+
+5640 
+	gbužd”
+.
+	gm_šfo
+.
+	gmes§ge
+ = 
+bužd”
+.
+m_¡»am
+.
+¡r
+();
+
+5642 
+	gšfoMes§ges
+.
+push_back
+Ð
+bužd”
+.
+m_šfo
+ );
+
+5645 
+	gvœtu®
+ ~
+As£¹iÚS�ts
+();
+
+5647 #ifdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+5648 
+As£¹iÚS�ts
+( AssertionStats const& ) = ;
+
+5649 
+As£¹iÚS�ts
+( AssertionStats && ) = ;
+
+5650 
+	gAs£¹iÚS�ts
+& 
+	gÝ”©Ü
+ = ( 
+As£¹iÚS�ts
+ const& ) = ;
+
+5651 
+	gAs£¹iÚS�ts
+& 
+	gÝ”©Ü
+ = ( 
+As£¹iÚS�ts
+ && ) = ;
+
+5654 
+As£¹iÚResuÉ
+ 
+	gas£¹iÚResuÉ
+;
+
+5655 
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+> 
+šfoMes§ges
+;
+
+5656 
+TÙ®s
+ 
+	gtÙ®s
+;
+
+5659 
+	sSeùiÚS�ts
+ {
+
+5660 
+SeùiÚS�ts
+Ð
+SeùiÚInfo
+ cÚ¡& 
+_£ùiÚInfo
+,
+
+5661 
+CouÁs
+ cÚ¡& 
+_as£¹iÚs
+,
+
+5662 
+_du¿tiÚInSecÚds
+,
+
+5663 
+boÞ
+ 
+_missšgAs£¹iÚs
+ )
+
+5664 : 
+£ùiÚInfo
+Ð
+_£ùiÚInfo
+ ),
+
+5665 
+as£¹iÚs
+Ð
+_as£¹iÚs
+ ),
+
+5666 
+du¿tiÚInSecÚds
+Ð
+_du¿tiÚInSecÚds
+ ),
+
+5667 
+missšgAs£¹iÚs
+Ð
+_missšgAs£¹iÚs
+ )
+
+5669 
+	gvœtu®
+ ~
+SeùiÚS�ts
+();
+
+5670 #ifdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+5671 
+SeùiÚS�ts
+( SectionStats const& ) = ;
+
+5672 
+SeùiÚS�ts
+( SectionStats && ) = ;
+
+5673 
+	gSeùiÚS�ts
+& 
+	gÝ”©Ü
+ = ( 
+SeùiÚS�ts
+ const& ) = ;
+
+5674 
+	gSeùiÚS�ts
+& 
+	gÝ”©Ü
+ = ( 
+SeùiÚS�ts
+ && ) = ;
+
+5677 
+SeùiÚInfo
+ 
+	g£ùiÚInfo
+;
+
+5678 
+CouÁs
+ 
+	gas£¹iÚs
+;
+
+5679 
+	gdu¿tiÚInSecÚds
+;
+
+5680 
+boÞ
+ 
+	gmissšgAs£¹iÚs
+;
+
+5683 
+	sTe¡Ca£S�ts
+ {
+
+5684 
+Te¡Ca£S�ts
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+_‹¡Info
+,
+
+5685 
+TÙ®s
+ cÚ¡& 
+_tÙ®s
+,
+
+5686 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_¡dOut
+,
+
+5687 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_¡dE¼
+,
+
+5688 
+boÞ
+ 
+_abÜtšg
+ )
+
+5689 : 
+‹¡Info
+Ð
+_‹¡Info
+ ),
+
+5690 
+tÙ®s
+Ð
+_tÙ®s
+ ),
+
+5691 
+¡dOut
+Ð
+_¡dOut
+ ),
+
+5692 
+¡dE¼
+Ð
+_¡dE¼
+ ),
+
+5693 
+abÜtšg
+Ð
+_abÜtšg
+ )
+
+5695 
+	gvœtu®
+ ~
+Te¡Ca£S�ts
+();
+
+5697 #ifdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+5698 
+Te¡Ca£S�ts
+( TestCaseStats const& ) = ;
+
+5699 
+Te¡Ca£S�ts
+( TestCaseStats && ) = ;
+
+5700 
+	gTe¡Ca£S�ts
+& 
+	gÝ”©Ü
+ = ( 
+Te¡Ca£S�ts
+ const& ) = ;
+
+5701 
+	gTe¡Ca£S�ts
+& 
+	gÝ”©Ü
+ = ( 
+Te¡Ca£S�ts
+ && ) = ;
+
+5704 
+Te¡Ca£Info
+ 
+	g‹¡Info
+;
+
+5705 
+TÙ®s
+ 
+	gtÙ®s
+;
+
+5706 
+	g¡d
+::
+¡ršg
+ 
+¡dOut
+;
+
+5707 
+	g¡d
+::
+¡ršg
+ 
+¡dE¼
+;
+
+5708 
+boÞ
+ 
+	gabÜtšg
+;
+
+5711 
+	sTe¡GroupS�ts
+ {
+
+5712 
+Te¡GroupS�ts
+Ð
+GroupInfo
+ cÚ¡& 
+_groupInfo
+,
+
+5713 
+TÙ®s
+ cÚ¡& 
+_tÙ®s
+,
+
+5714 
+boÞ
+ 
+_abÜtšg
+ )
+
+5715 : 
+groupInfo
+Ð
+_groupInfo
+ ),
+
+5716 
+tÙ®s
+Ð
+_tÙ®s
+ ),
+
+5717 
+abÜtšg
+Ð
+_abÜtšg
+ )
+
+5719 
+Te¡GroupS�ts
+Ð
+GroupInfo
+ cÚ¡& 
+_groupInfo
+ )
+
+5720 : 
+groupInfo
+Ð
+_groupInfo
+ ),
+
+5721 
+abÜtšg
+Ð
+çl£
+ )
+
+5723 
+	gvœtu®
+ ~
+Te¡GroupS�ts
+();
+
+5725 #ifdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+5726 
+Te¡GroupS�ts
+( TestGroupStats const& ) = ;
+
+5727 
+Te¡GroupS�ts
+( TestGroupStats && ) = ;
+
+5728 
+	gTe¡GroupS�ts
+& 
+	gÝ”©Ü
+ = ( 
+Te¡GroupS�ts
+ const& ) = ;
+
+5729 
+	gTe¡GroupS�ts
+& 
+	gÝ”©Ü
+ = ( 
+Te¡GroupS�ts
+ && ) = ;
+
+5732 
+GroupInfo
+ 
+	ggroupInfo
+;
+
+5733 
+TÙ®s
+ 
+	gtÙ®s
+;
+
+5734 
+boÞ
+ 
+	gabÜtšg
+;
+
+5737 
+	sTe¡RunS�ts
+ {
+
+5738 
+Te¡RunS�ts
+Ð
+Te¡RunInfo
+ cÚ¡& 
+_runInfo
+,
+
+5739 
+TÙ®s
+ cÚ¡& 
+_tÙ®s
+,
+
+5740 
+boÞ
+ 
+_abÜtšg
+ )
+
+5741 : 
+runInfo
+Ð
+_runInfo
+ ),
+
+5742 
+tÙ®s
+Ð
+_tÙ®s
+ ),
+
+5743 
+abÜtšg
+Ð
+_abÜtšg
+ )
+
+5745 
+	gvœtu®
+ ~
+Te¡RunS�ts
+();
+
+5747 #iâdeà
+CATCH_CONFIG_CPP11_GENERATED_METHODS
+
+
+5748 
+Te¡RunS�ts
+ÐTe¡RunS�t cÚ¡& 
+_Ùh”
+ )
+
+5749 : 
+runInfo
+Ð
+_Ùh”
+.runInfo ),
+
+5750 
+tÙ®s
+Ð
+_Ùh”
+.totals ),
+
+5751 
+abÜtšg
+Ð
+_Ùh”
+.aborting )
+
+5754 
+Te¡RunS�ts
+( TestRunStats const& ) = ;
+
+5755 
+Te¡RunS�ts
+( TestRunStats && ) = ;
+
+5756 
+	gTe¡RunS�ts
+& 
+	gÝ”©Ü
+ = ( 
+Te¡RunS�ts
+ const& ) = ;
+
+5757 
+	gTe¡RunS�ts
+& 
+	gÝ”©Ü
+ = ( 
+Te¡RunS�ts
+ && ) = ;
+
+5760 
+Te¡RunInfo
+ 
+	grunInfo
+;
+
+5761 
+TÙ®s
+ 
+	gtÙ®s
+;
+
+5762 
+boÞ
+ 
+	gabÜtšg
+;
+
+5765 
+þass
+ 
+	gMuÉ�ËR•Ü‹rs
+;
+
+5767 
+	gISŒ—mšgR•Ü‹r
+ : 
+ISh¬ed
+ {
+
+5768 
+vœtu®
+ ~
+ISŒ—mšgR•Ü‹r
+();
+
+5773 
+vœtu®
+ 
+R•Ü‹rP»ã»nûs
+ 
+g‘P»ã»nûs
+() const = 0;
+
+5775 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¥ec
+ ) = 0;
+
+5777 
+vœtu®
+ 
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ cÚ¡& 
+‹¡RunInfo
+ ) = 0;
+
+5778 
+vœtu®
+ 
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& 
+groupInfo
+ ) = 0;
+
+5780 
+vœtu®
+ 
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ ) = 0;
+
+5781 
+vœtu®
+ 
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+ ) = 0;
+
+5783 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ cÚ¡& 
+as£¹iÚInfo
+ ) = 0;
+
+5786 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+as£¹iÚS�ts
+ ) = 0;
+
+5788 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+£ùiÚS�ts
+ ) = 0;
+
+5789 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+‹¡Ca£S�ts
+ ) = 0;
+
+5790 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+‹¡GroupS�ts
+ ) = 0;
+
+5791 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+‹¡RunS�ts
+ ) = 0;
+
+5793 
+vœtu®
+ 
+sk�Te¡
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ ) = 0;
+
+5795 
+vœtu®
+ 
+MuÉ�ËR•Ü‹rs
+* 
+ŒyAsMuÉi
+(è{  
+	gCATCH_NULL
+; }
+
+5798 
+	gIR•Ü‹rFaùÜy
+ : 
+ISh¬ed
+ {
+
+5799 
+vœtu®
+ ~
+IR•Ü‹rFaùÜy
+();
+
+5800 
+vœtu®
+ 
+ISŒ—mšgR•Ü‹r
+* 
+ü—‹
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+cÚfig
+ ) const = 0;
+
+5801 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() const = 0;
+
+5804 
+	sIR•Ü‹rRegi¡ry
+ {
+
+5805 
+	g¡d
+::
+	tm­
+<
+	t¡d
+::
+	t¡ršg
+, 
+	tPŒ
+<
+	tIR•Ü‹rFaùÜy
+> > 
+	tFaùÜyM­
+;
+
+5806 
+	g¡d
+::
+	tveùÜ
+<
+	tPŒ
+<
+	tIR•Ü‹rFaùÜy
+> > 
+	tLi¡’”s
+;
+
+5808 
+	gvœtu®
+ ~
+IR•Ü‹rRegi¡ry
+();
+
+5809 
+vœtu®
+ 
+ISŒ—mšgR•Ü‹r
+* 
+ü—‹
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+cÚfig
+ ) const = 0;
+
+5810 
+vœtu®
+ 
+FaùÜyM­
+ cÚ¡& 
+g‘FaùÜ›s
+() const = 0;
+
+5811 
+vœtu®
+ 
+Li¡’”s
+ cÚ¡& 
+g‘Li¡’”s
+() const = 0;
+
+5814 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+addR•Ü‹r
+Ð
+PŒ
+<
+ISŒ—mšgR•Ü‹r
+> cÚ¡& 
+exi¡šgR•Ü‹r
+, PŒ<ISŒ—mšgR•Ü‹r> cÚ¡& 
+add™iÚ®R•Ü‹r
+ );
+
+5818 
+	~<lim™s
+>
+
+5819 
+	~<®gÜ™hm
+>
+
+5821 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+5823 
+šlše
+ 
+	g¡d
+::
+size_t
+ 
+li¡Te¡s
+Ð
+CÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+5825 
+Te¡S³c
+ 
+‹¡S³c
+ = 
+cÚfig
+.testSpec();
+
+5826 ifÐ
+	gcÚfig
+.
+‹¡S³c
+().
+hasFž‹rs
+() )
+
+5827 
+	gC©ch
+::
+cout
+() << "Matching�est cases:\n";
+
+5829 
+	gC©ch
+::
+cout
+() << "All‡vailable�est cases:\n";
+
+5830 
+	g‹¡S³c
+ = 
+Te¡S³cP¬£r
+Ð
+ITagAlŸsRegi¡ry
+::
+g‘
+(è).
+·r£
+Ð"*" ).
+‹¡S³c
+();
+
+5833 
+	g¡d
+::
+size_t
+ 
+m©chedTe¡s
+ = 0;
+
+5834 
+TextA‰ribu‹s
+ 
+	gÇmeA‰r
+, 
+	gdescA‰r
+, 
+	g�gsA‰r
+;
+
+5835 
+	gÇmeA‰r
+.
+£tIn™ŸlInd’t
+Ð2 ).
+£tInd’t
+( 4 );
+
+5836 
+	gdescA‰r
+.
+£tInd’t
+( 4 );
+
+5837 
+	g�gsA‰r
+.
+£tInd’t
+( 6 );
+
+5839 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+m©chedTe¡Ca£s
+ = 
+fž‹rTe¡s
+Ð
+g‘AÎTe¡Ca£sSÜ‹d
+Ð
+cÚfig
+ ), 
+‹¡S³c
+, config );
+
+5840  
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m©chedTe¡Ca£s
+.
+begš
+(), 
+	g™End
+ = m©chedTe¡Ca£s.
+’d
+();
+
+5841 
+	g™
+ !ð
+™End
+;
+
+5842 ++
+	g™
+ ) {
+
+5843 
+	gm©chedTe¡s
+++;
+
+5844 
+Te¡Ca£Info
+ cÚ¡& 
+	g‹¡Ca£Info
+ = 
+™
+->
+g‘Te¡Ca£Info
+();
+
+5845 
+	gCÞour
+::
+Code
+ 
+cÞour
+ = 
+‹¡Ca£Info
+.
+isHidd’
+()
+
+5846 ? 
+CÞour
+::
+SecÚd¬yText
+
+
+5847 : 
+CÞour
+::
+NÚe
+;
+
+5848 
+CÞour
+ 
+cÞourGu¬d
+Ð
+cÞour
+ );
+
+5850 
+	gC©ch
+::
+cout
+(è<< 
+Text
+Ð
+‹¡Ca£Info
+.
+Çme
+, 
+ÇmeA‰r
+ ) << 
+	g¡d
+::
+’dl
+;
+
+5851 ifÐ
+	gcÚfig
+.
+li¡ExŒaInfo
+() ) {
+
+5852 
+	gC©ch
+::
+cout
+(è<< " " << 
+‹¡Ca£Info
+.
+lšeInfo
+ << 
+¡d
+::
+’dl
+;
+
+5853 
+	g¡d
+::
+¡ršg
+ 
+desü�tiÚ
+ = 
+‹¡Ca£Info
+.description;
+
+5854 ifÐ
+	gdesü�tiÚ
+.
+em±y
+() )
+
+5855 
+	gdesü�tiÚ
+ = "(NO DESCRIPTION)";
+
+5856 
+	gC©ch
+::
+cout
+(è<< 
+Text
+Ð
+desü�tiÚ
+, 
+descA‰r
+ ) << 
+	g¡d
+::
+’dl
+;
+
+5858 ifÐ!
+	g‹¡Ca£Info
+.
+	g�gs
+.
+em±y
+() )
+
+5859 
+	gC©ch
+::
+cout
+(è<< 
+Text
+Ð
+‹¡Ca£Info
+.
+�gsAsSŒšg
+, 
+�gsA‰r
+ ) << 
+	g¡d
+::
+’dl
+;
+
+5862 ifÐ!
+	gcÚfig
+.
+‹¡S³c
+().
+hasFž‹rs
+() )
+
+5863 
+	gC©ch
+::
+cout
+(è<< 
+¶u¿li£
+Ð
+m©chedTe¡s
+, "‹¡ ca£" ) << '\n' << 
+	g¡d
+::
+’dl
+;
+
+5865 
+	gC©ch
+::
+cout
+(è<< 
+¶u¿li£
+Ð
+m©chedTe¡s
+, "m©chšg�e¡ ca£" ) << '\n' << 
+	g¡d
+::
+’dl
+;
+
+5866  
+	gm©chedTe¡s
+;
+
+5869 
+šlše
+ 
+	g¡d
+::
+size_t
+ 
+li¡Te¡sNamesOÆy
+Ð
+CÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+5870 
+Te¡S³c
+ 
+‹¡S³c
+ = 
+cÚfig
+.testSpec();
+
+5871 ifÐ!
+	gcÚfig
+.
+‹¡S³c
+().
+hasFž‹rs
+() )
+
+5872 
+	g‹¡S³c
+ = 
+Te¡S³cP¬£r
+Ð
+ITagAlŸsRegi¡ry
+::
+g‘
+(è).
+·r£
+Ð"*" ).
+‹¡S³c
+();
+
+5873 
+	g¡d
+::
+size_t
+ 
+m©chedTe¡s
+ = 0;
+
+5874 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+m©chedTe¡Ca£s
+ = 
+fž‹rTe¡s
+Ð
+g‘AÎTe¡Ca£sSÜ‹d
+Ð
+cÚfig
+ ), 
+‹¡S³c
+, config );
+
+5875  
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m©chedTe¡Ca£s
+.
+begš
+(), 
+	g™End
+ = m©chedTe¡Ca£s.
+’d
+();
+
+5876 
+	g™
+ !ð
+™End
+;
+
+5877 ++
+	g™
+ ) {
+
+5878 
+	gm©chedTe¡s
+++;
+
+5879 
+Te¡Ca£Info
+ cÚ¡& 
+	g‹¡Ca£Info
+ = 
+™
+->
+g‘Te¡Ca£Info
+();
+
+5880 ifÐ
+¡¬tsW™h
+Ð
+‹¡Ca£Info
+.
+Çme
+, '#' ) )
+
+5881 
+	gC©ch
+::
+cout
+(è<< '"' << 
+‹¡Ca£Info
+.
+Çme
+ << '"';
+
+5883 
+	gC©ch
+::
+cout
+(è<< 
+‹¡Ca£Info
+.
+Çme
+;
+
+5884 iàÐ
+	gcÚfig
+.
+li¡ExŒaInfo
+() )
+
+5885 
+	gC©ch
+::
+cout
+(è<< "\t@" << 
+‹¡Ca£Info
+.
+lšeInfo
+;
+
+5886 
+	gC©ch
+::
+cout
+(è<< 
+¡d
+::
+’dl
+;
+
+5888  
+	gm©chedTe¡s
+;
+
+5891 
+	sTagInfo
+ {
+
+5892 
+TagInfo
+(è: 
+couÁ
+ ( 0 ) {}
+
+5893 
+add
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¥–lšg
+ ) {
+
+5894 ++
+couÁ
+;
+
+5895 
+	g¥–lšgs
+.
+š£¹
+Ð
+¥–lšg
+ );
+
+5897 
+	g¡d
+::
+¡ršg
+ 
+®l
+() const {
+
+5898 
+¡d
+::
+¡ršg
+ 
+out
+;
+
+5899  
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+¥–lšgs
+.
+begš
+(), 
+	g™End
+ = s³Îšgs.
+’d
+();
+
+5900 
+	g™
+ !ð
+™End
+;
+
+5901 ++
+	g™
+ )
+
+5902 
+	gout
+ +ð"[" + *
+™
+ + "]";
+
+5903  
+	gout
+;
+
+5905 
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+> 
+¥–lšgs
+;
+
+5906 
+	g¡d
+::
+size_t
+ 
+couÁ
+;
+
+5909 
+šlše
+ 
+	g¡d
+::
+size_t
+ 
+li¡Tags
+Ð
+CÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+5910 
+Te¡S³c
+ 
+‹¡S³c
+ = 
+cÚfig
+.testSpec();
+
+5911 ifÐ
+	gcÚfig
+.
+‹¡S³c
+().
+hasFž‹rs
+() )
+
+5912 
+	gC©ch
+::
+cout
+() << "Tags for matching�est cases:\n";
+
+5914 
+	gC©ch
+::
+cout
+() << "All‡vailable�ags:\n";
+
+5915 
+	g‹¡S³c
+ = 
+Te¡S³cP¬£r
+Ð
+ITagAlŸsRegi¡ry
+::
+g‘
+(è).
+·r£
+Ð"*" ).
+‹¡S³c
+();
+
+5918 
+	g¡d
+::
+m­
+<
+¡d
+::
+¡ršg
+, 
+	gTagInfo
+> 
+	g�gCouÁs
+;
+
+5920 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+m©chedTe¡Ca£s
+ = 
+fž‹rTe¡s
+Ð
+g‘AÎTe¡Ca£sSÜ‹d
+Ð
+cÚfig
+ ), 
+‹¡S³c
+, config );
+
+5921  
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m©chedTe¡Ca£s
+.
+begš
+(), 
+	g™End
+ = m©chedTe¡Ca£s.
+’d
+();
+
+5922 
+	g™
+ !ð
+™End
+;
+
+5923 ++
+	g™
+ ) {
+
+5924  
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+>::
+cÚ¡_™”©Ü
+ 
+�gIt
+ = 
+™
+->
+g‘Te¡Ca£Info
+().
+�gs
+.
+begš
+(),
+
+5925 
+	g�gItEnd
+ = 
+™
+->
+g‘Te¡Ca£Info
+().
+�gs
+.
+’d
+();
+
+5926 
+	g�gIt
+ !ð
+�gItEnd
+;
+
+5927 ++
+	g�gIt
+ ) {
+
+5928 
+	g¡d
+::
+¡ršg
+ 
+�gName
+ = *
+�gIt
+;
+
+5929 
+	g¡d
+::
+¡ršg
+ 
+lÿ£TagName
+ = 
+toLow”
+Ð
+�gName
+ );
+
+5930 
+	g¡d
+::
+m­
+<
+¡d
+::
+¡ršg
+, 
+	gTagInfo
+>::
+™”©Ü
+ 
+couÁIt
+ = 
+�gCouÁs
+.
+fšd
+Ð
+lÿ£TagName
+ );
+
+5931 ifÐ
+	gcouÁIt
+ =ð
+�gCouÁs
+.
+’d
+() )
+
+5932 
+couÁIt
+ = 
+�gCouÁs
+.
+š£¹
+Ð
+¡d
+::
+make_·œ
+Ð
+lÿ£TagName
+, 
+TagInfo
+(èè).
+	gfœ¡
+;
+
+5933 
+	gcouÁIt
+->
+	g£cÚd
+.
+add
+Ð
+�gName
+ );
+
+5937  
+	g¡d
+::
+m­
+<
+¡d
+::
+¡ršg
+, 
+	gTagInfo
+>::
+cÚ¡_™”©Ü
+ 
+couÁIt
+ = 
+�gCouÁs
+.
+begš
+(),
+
+5938 
+	gcouÁItEnd
+ = 
+�gCouÁs
+.
+’d
+();
+
+5939 
+	gcouÁIt
+ !ð
+couÁItEnd
+;
+
+5940 ++
+	gcouÁIt
+ ) {
+
+5941 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+5942 
+	goss
+ << " " << 
+	g¡d
+::
+£tw
+(2è<< 
+couÁIt
+->
+£cÚd
+.
+couÁ
+ << " ";
+
+5943 
+Text
+ 
+w¿µ”
+Ð
+couÁIt
+->
+£cÚd
+.
+®l
+(), 
+TextA‰ribu‹s
+()
+
+5944 .
+£tIn™ŸlInd’t
+( 0 )
+
+5945 .
+£tInd’t
+Ð
+oss
+.
+¡r
+().
+size
+() )
+
+5946 .
+£tWidth
+Ð
+CATCH_CONFIG_CONSOLE_WIDTH
+-10 ) );
+
+5947 
+	gC©ch
+::
+cout
+(è<< 
+oss
+.
+¡r
+(è<< 
+w¿µ”
+ << '\n';
+
+5949 
+	gC©ch
+::
+cout
+(è<< 
+¶u¿li£
+Ð
+�gCouÁs
+.
+size
+(), "�g" ) << '\n' << 
+	g¡d
+::
+’dl
+;
+
+5950  
+	g�gCouÁs
+.
+size
+();
+
+5953 
+šlše
+ 
+	g¡d
+::
+size_t
+ 
+li¡R•Ü‹rs
+Ð
+CÚfig
+ const& ) {
+
+5954 
+C©ch
+::
+cout
+() << "Available„eporters:\n";
+
+5955 
+	gIR•Ü‹rRegi¡ry
+::
+FaùÜyM­
+ cÚ¡& 
+çùÜ›s
+ = 
+g‘Regi¡ryHub
+().
+g‘R•Ü‹rRegi¡ry
+().
+g‘FaùÜ›s
+();
+
+5956 
+	gIR•Ü‹rRegi¡ry
+::
+FaùÜyM­
+::
+cÚ¡_™”©Ü
+ 
+™Begš
+ = 
+çùÜ›s
+.
+begš
+(), 
+	g™End
+ = faùÜ›s.
+’d
+(), 
+	g™
+;
+
+5957 
+	g¡d
+::
+size_t
+ 
+maxNameL’
+ = 0;
+
+5958 
+	g™
+ = 
+™Begš
+; iˆ!ð
+™End
+; ++it )
+
+5959 
+	gmaxNameL’
+ = (
+¡d
+::
+max
+)Ð
+maxNameL’
+, 
+	g™
+->
+	gfœ¡
+.
+size
+() );
+
+5961 
+	g™
+ = 
+™Begš
+; iˆ!ð
+™End
+; ++it ) {
+
+5962 
+Text
+ 
+w¿µ”
+Ð
+™
+->
+£cÚd
+->
+g‘Desü�tiÚ
+(), 
+TextA‰ribu‹s
+()
+
+5963 .
+£tIn™ŸlInd’t
+( 0 )
+
+5964 .
+£tInd’t
+Ð7+
+maxNameL’
+ )
+
+5965 .
+£tWidth
+Ð
+CATCH_CONFIG_CONSOLE_WIDTH
+ - 
+maxNameL’
+-8 ) );
+
+5966 
+	gC©ch
+::
+cout
+() << " "
+
+5967 << 
+™
+->
+fœ¡
+
+
+5969 << 
+¡d
+::
+¡ršg
+Ð
+maxNameL’
+ - 
+™
+->
+fœ¡
+.
+size
+() + 2, ' ' )
+
+5970 << 
+	gw¿µ”
+ << '\n';
+
+5972 
+	gC©ch
+::
+cout
+(è<< 
+¡d
+::
+’dl
+;
+
+5973  
+	gçùÜ›s
+.
+size
+();
+
+5976 
+šlše
+ 
+	gO±iÚ
+<
+	g¡d
+::
+size_t
+> 
+li¡
+Ð
+CÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+5977 
+O±iÚ
+<
+¡d
+::
+size_t
+> 
+li¡edCouÁ
+;
+
+5978 ifÐ
+	gcÚfig
+.
+li¡Te¡s
+(è|| ( cÚfig.
+li¡ExŒaInfo
+(è&& !cÚfig.
+li¡Te¡NamesOÆy
+() ) )
+
+5979 
+	gli¡edCouÁ
+ = 
+li¡edCouÁ
+.
+v®ueOr
+(0è+ 
+li¡Te¡s
+Ð
+cÚfig
+ );
+
+5980 ifÐ
+	gcÚfig
+.
+li¡Te¡NamesOÆy
+() )
+
+5981 
+	gli¡edCouÁ
+ = 
+li¡edCouÁ
+.
+v®ueOr
+(0è+ 
+li¡Te¡sNamesOÆy
+Ð
+cÚfig
+ );
+
+5982 ifÐ
+	gcÚfig
+.
+li¡Tags
+() )
+
+5983 
+	gli¡edCouÁ
+ = 
+li¡edCouÁ
+.
+v®ueOr
+(0è+ 
+li¡Tags
+Ð
+cÚfig
+ );
+
+5984 ifÐ
+	gcÚfig
+.
+li¡R•Ü‹rs
+() )
+
+5985 
+	gli¡edCouÁ
+ = 
+li¡edCouÁ
+.
+v®ueOr
+(0è+ 
+li¡R•Ü‹rs
+Ð
+cÚfig
+ );
+
+5986  
+	gli¡edCouÁ
+;
+
+5992 
+	#TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
+
+
+	)
+
+5995 
+	#TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
+
+
+	)
+
+5997 
+	~<®gÜ™hm
+>
+
+5998 
+	~<¡ršg
+>
+
+5999 
+	~<as£¹.h
+>
+
+6000 
+	~<veùÜ
+>
+
+6001 
+	~<¡dexû±
+>
+
+6003 
+CATCH_INTERNAL_SUPPRESS_ETD_WARNINGS
+
+
+6005 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+6006 
+Çme¥aû
+ 
+	gTe¡Ca£T¿ckšg
+ {
+
+6008 
+	sNameAndLoÿtiÚ
+ {
+
+6009 
+	g¡d
+::
+¡ršg
+ 
+Çme
+;
+
+6010 
+SourûLšeInfo
+ 
+	gloÿtiÚ
+;
+
+6012 
+NameAndLoÿtiÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+, 
+SourûLšeInfo
+ cÚ¡& 
+_loÿtiÚ
+ )
+
+6013 : 
+Çme
+Ð
+_Çme
+ ),
+
+6014 
+loÿtiÚ
+Ð
+_loÿtiÚ
+ )
+
+6018 
+	gIT¿ck”
+ : 
+Sh¬edIm¶
+<> {
+
+6019 
+vœtu®
+ ~
+IT¿ck”
+();
+
+6022 
+vœtu®
+ 
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+() const = 0;
+
+6025 
+vœtu®
+ 
+boÞ
+ 
+isCom¶‘e
+() const = 0;
+
+6026 
+vœtu®
+ 
+boÞ
+ 
+isSucûssfuÎyCom¶‘ed
+() const = 0;
+
+6027 
+vœtu®
+ 
+boÞ
+ 
+isO³n
+() const = 0;
+
+6028 
+vœtu®
+ 
+boÞ
+ 
+hasChžd»n
+() const = 0;
+
+6030 
+vœtu®
+ 
+	gIT¿ck”
+& 
+·»Á
+() = 0;
+
+6033 
+vœtu®
+ 
+þo£
+() = 0;
+
+6034 
+vœtu®
+ 
+çž
+() = 0;
+
+6035 
+vœtu®
+ 
+m¬kAsN“dšgAnÙh”Run
+() = 0;
+
+6037 
+vœtu®
+ 
+addChžd
+Ð
+PŒ
+<
+IT¿ck”
+> cÚ¡& 
+chžd
+ ) = 0;
+
+6038 
+vœtu®
+ 
+IT¿ck”
+* 
+fšdChžd
+Ð
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+ ) = 0;
+
+6039 
+vœtu®
+ 
+Ý’Chžd
+() = 0;
+
+6042 
+vœtu®
+ 
+boÞ
+ 
+isSeùiÚT¿ck”
+() const = 0;
+
+6043 
+vœtu®
+ 
+boÞ
+ 
+isIndexT¿ck”
+() const = 0;
+
+6046 þas 
+	cT¿ck”CÚ‹xt
+ {
+
+6048 
+	eRunS�‹
+ {
+
+6049 
+	gNÙS�¹ed
+,
+
+6050 
+	gExecutšg
+,
+
+6051 
+	gCom¶‘edCyþe
+
+
+6054 
+	gPŒ
+<
+	gIT¿ck”
+> 
+	gm_roÙT¿ck”
+;
+
+6055 
+IT¿ck”
+* 
+	gm_cu¼’tT¿ck”
+;
+
+6056 
+RunS�‹
+ 
+	gm_runS�‹
+;
+
+6058 
+	gpublic
+:
+
+6060 
+T¿ck”CÚ‹xt
+& 
+š¡ªû
+() {
+
+6061 
+T¿ck”CÚ‹xt
+ 
+s_š¡ªû
+;
+
+6062  
+	gs_š¡ªû
+;
+
+6065 
+T¿ck”CÚ‹xt
+()
+
+6066 : 
+m_cu¼’tT¿ck”
+Ð
+CATCH_NULL
+ ),
+
+6067 
+m_runS�‹
+Ð
+NÙS�¹ed
+ )
+
+6070 
+	gIT¿ck”
+& 
+¡¬tRun
+();
+
+6072 
+’dRun
+() {
+
+6073 
+	gm_roÙT¿ck”
+.
+»£t
+();
+
+6074 
+	gm_cu¼’tT¿ck”
+ = 
+CATCH_NULL
+;
+
+6075 
+	gm_runS�‹
+ = 
+NÙS�¹ed
+;
+
+6078 
+¡¬tCyþe
+() {
+
+6079 
+	gm_cu¼’tT¿ck”
+ = 
+m_roÙT¿ck”
+.
+g‘
+();
+
+6080 
+	gm_runS�‹
+ = 
+Executšg
+;
+
+6082 
+com¶‘eCyþe
+() {
+
+6083 
+	gm_runS�‹
+ = 
+Com¶‘edCyþe
+;
+
+6086 
+boÞ
+ 
+com¶‘edCyþe
+() const {
+
+6087  
+	gm_runS�‹
+ =ð
+Com¶‘edCyþe
+;
+
+6089 
+	gIT¿ck”
+& 
+cu¼’tT¿ck”
+() {
+
+6090  *
+	gm_cu¼’tT¿ck”
+;
+
+6092 
+£tCu¼’tT¿ck”
+Ð
+IT¿ck”
+* 
+Œack”
+ ) {
+
+6093 
+	gm_cu¼’tT¿ck”
+ = 
+Œack”
+;
+
+6097 þas 
+	cT¿ck”Ba£
+ : 
+public
+ 
+IT¿ck”
+ {
+
+6098 
+´Ùeùed
+:
+
+6099 
+	eCyþeS�‹
+ {
+
+6100 
+NÙS�¹ed
+,
+
+6101 
+	gExecutšg
+,
+
+6102 
+	gExecutšgChžd»n
+,
+
+6103 
+	gN“dsAnÙh”Run
+,
+
+6104 
+	gCom¶‘edSucûssfuÎy
+,
+
+6105 
+	gFažed
+
+
+6107 þas 
+	cT¿ck”HasName
+ {
+
+6108 
+NameAndLoÿtiÚ
+ 
+	gm_ÇmeAndLoÿtiÚ
+;
+
+6109 
+	gpublic
+:
+
+6110 
+T¿ck”HasName
+Ð
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+ ) : 
+m_ÇmeAndLoÿtiÚ
+(‚ameAndLocation ) {}
+
+6111 
+boÞ
+ 
+Ý”©Ü
+ ()Ð
+PŒ
+<
+IT¿ck”
+> cÚ¡& 
+Œack”
+ ) {
+
+6113 
+Œack”
+->
+ÇmeAndLoÿtiÚ
+().
+Çme
+ =ð
+m_ÇmeAndLoÿtiÚ
+.name &&
+
+6114 
+Œack”
+->
+ÇmeAndLoÿtiÚ
+().
+loÿtiÚ
+ =ð
+m_ÇmeAndLoÿtiÚ
+.location;
+
+6117 
+	g¡d
+::
+	tveùÜ
+<
+	tPŒ
+<
+	tIT¿ck”
+> > 
+	tChžd»n
+;
+
+6118 
+NameAndLoÿtiÚ
+ 
+	gm_ÇmeAndLoÿtiÚ
+;
+
+6119 
+	gT¿ck”CÚ‹xt
+& 
+	gm_ùx
+;
+
+6120 
+IT¿ck”
+* 
+	gm_·»Á
+;
+
+6121 
+Chžd»n
+ 
+	gm_chžd»n
+;
+
+6122 
+CyþeS�‹
+ 
+	gm_runS�‹
+;
+
+6123 
+	gpublic
+:
+
+6124 
+T¿ck”Ba£
+Ð
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+, 
+T¿ck”CÚ‹xt
+& 
+ùx
+, 
+IT¿ck”
+* 
+·»Á
+ )
+
+6125 : 
+m_ÇmeAndLoÿtiÚ
+Ð
+ÇmeAndLoÿtiÚ
+ ),
+
+6126 
+m_ùx
+Ð
+ùx
+ ),
+
+6127 
+m_·»Á
+Ð
+·»Á
+ ),
+
+6128 
+m_runS�‹
+Ð
+NÙS�¹ed
+ )
+
+6130 
+	gvœtu®
+ ~
+T¿ck”Ba£
+();
+
+6132 
+vœtu®
+ 
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+6133  
+	gm_ÇmeAndLoÿtiÚ
+;
+
+6135 
+vœtu®
+ 
+boÞ
+ 
+isCom¶‘e
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+6136  
+	gm_runS�‹
+ =ð
+Com¶‘edSucûssfuÎy
+ || 
+m_runS�‹
+ =ð
+Fažed
+;
+
+6138 
+vœtu®
+ 
+boÞ
+ 
+isSucûssfuÎyCom¶‘ed
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+6139  
+	gm_runS�‹
+ =ð
+Com¶‘edSucûssfuÎy
+;
+
+6141 
+vœtu®
+ 
+boÞ
+ 
+isO³n
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+6142  
+	gm_runS�‹
+ !ð
+NÙS�¹ed
+ && !
+isCom¶‘e
+();
+
+6144 
+vœtu®
+ 
+boÞ
+ 
+hasChžd»n
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+6145  !
+	gm_chžd»n
+.
+em±y
+();
+
+6148 
+vœtu®
+ 
+addChžd
+Ð
+PŒ
+<
+IT¿ck”
+> cÚ¡& 
+chžd
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+6149 
+	gm_chžd»n
+.
+push_back
+Ð
+chžd
+ );
+
+6152 
+vœtu®
+ 
+IT¿ck”
+* 
+fšdChžd
+Ð
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+6153 
+	gChžd»n
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+¡d
+::
+fšd_if
+Ð
+m_chžd»n
+.
+begš
+(), m_chžd»n.
+’d
+(), 
+T¿ck”HasName
+Ð
+ÇmeAndLoÿtiÚ
+ ) );
+
+6154 Ð
+	g™
+ !ð
+m_chžd»n
+.
+’d
+() )
+
+6155 ? 
+™
+->
+g‘
+()
+
+6156 : 
+CATCH_NULL
+;
+
+6158 
+vœtu®
+ 
+	gIT¿ck”
+& 
+·»Á
+(è
+	gCATCH_OVERRIDE
+ {
+
+6159 
+as£¹
+Ð
+m_·»Á
+ );
+
+6160  *
+	gm_·»Á
+;
+
+6163 
+vœtu®
+ 
+Ý’Chžd
+(è
+	gCATCH_OVERRIDE
+ {
+
+6164 ifÐ
+	gm_runS�‹
+ !ð
+ExecutšgChžd»n
+ ) {
+
+6165 
+m_runS�‹
+ = 
+ExecutšgChžd»n
+;
+
+6166 ifÐ
+	gm_·»Á
+ )
+
+6167 
+	gm_·»Á
+->
+Ý’Chžd
+();
+
+6171 
+vœtu®
+ 
+boÞ
+ 
+isSeùiÚT¿ck”
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gçl£
+; }
+
+6172 
+vœtu®
+ 
+boÞ
+ 
+isIndexT¿ck”
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gçl£
+; }
+
+6174 
+Ý’
+() {
+
+6175 
+	gm_runS�‹
+ = 
+Executšg
+;
+
+6176 
+moveToThis
+();
+
+6177 ifÐ
+	gm_·»Á
+ )
+
+6178 
+	gm_·»Á
+->
+Ý’Chžd
+();
+
+6181 
+vœtu®
+ 
+þo£
+(è
+	gCATCH_OVERRIDE
+ {
+
+6184  &
+	gm_ùx
+.
+cu¼’tT¿ck”
+(è!ð
+this
+ )
+
+6185 
+m_ùx
+.
+cu¼’tT¿ck”
+().
+þo£
+();
+
+6187  
+	gm_runS�‹
+ ) {
+
+6188 
+	gNÙS�¹ed
+:
+
+6189 
+Com¶‘edSucûssfuÎy
+:
+
+6190 
+Fažed
+:
+
+6191 
+throw
+ 
+¡d
+::
+logic_”rÜ
+( "Illogical state" );
+
+6193 
+	gN“dsAnÙh”Run
+:
+
+6196 
+	gExecutšg
+:
+
+6197 
+m_runS�‹
+ = 
+Com¶‘edSucûssfuÎy
+;
+
+6199 
+	gExecutšgChžd»n
+:
+
+6200 ifÐ
+m_chžd»n
+.
+em±y
+(è|| m_chžd»n.
+back
+()->
+isCom¶‘e
+() )
+
+6201 
+m_runS�‹
+ = 
+Com¶‘edSucûssfuÎy
+;
+
+6205 
+throw
+ 
+¡d
+::
+logic_”rÜ
+( "Unexpected state" );
+
+6207 
+moveToP¬’t
+();
+
+6208 
+	gm_ùx
+.
+com¶‘eCyþe
+();
+
+6210 
+vœtu®
+ 
+çž
+(è
+	gCATCH_OVERRIDE
+ {
+
+6211 
+	gm_runS�‹
+ = 
+Fažed
+;
+
+6212 ifÐ
+	gm_·»Á
+ )
+
+6213 
+	gm_·»Á
+->
+m¬kAsN“dšgAnÙh”Run
+();
+
+6214 
+moveToP¬’t
+();
+
+6215 
+	gm_ùx
+.
+com¶‘eCyþe
+();
+
+6217 
+vœtu®
+ 
+m¬kAsN“dšgAnÙh”Run
+(è
+	gCATCH_OVERRIDE
+ {
+
+6218 
+	gm_runS�‹
+ = 
+N“dsAnÙh”Run
+;
+
+6220 
+	g´iv©e
+:
+
+6221 
+moveToP¬’t
+() {
+
+6222 
+as£¹
+Ð
+m_·»Á
+ );
+
+6223 
+	gm_ùx
+.
+£tCu¼’tT¿ck”
+Ð
+m_·»Á
+ );
+
+6225 
+moveToThis
+() {
+
+6226 
+	gm_ùx
+.
+£tCu¼’tT¿ck”
+Ð
+this
+ );
+
+6230 þas 
+	cSeùiÚT¿ck”
+ : 
+public
+ 
+T¿ck”Ba£
+ {
+
+6231 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+m_fž‹rs
+;
+
+6232 
+	gpublic
+:
+
+6233 
+SeùiÚT¿ck”
+Ð
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+, 
+T¿ck”CÚ‹xt
+& 
+ùx
+, 
+IT¿ck”
+* 
+·»Á
+ )
+
+6234 : 
+T¿ck”Ba£
+Ð
+ÇmeAndLoÿtiÚ
+, 
+ùx
+, 
+·»Á
+ )
+
+6236 ifÐ
+	g·»Á
+ ) {
+
+6237  !
+	g·»Á
+->
+isSeùiÚT¿ck”
+() )
+
+6238 
+	g·»Á
+ = &
+·»Á
+->parent();
+
+6240 
+	gSeùiÚT¿ck”
+& 
+	g·»ÁSeùiÚ
+ = 
+¡©ic_ÿ¡
+<
+SeùiÚT¿ck”
+&>Ð*
+·»Á
+ );
+
+6241 
+addNextFž‹rs
+Ð
+·»ÁSeùiÚ
+.
+m_fž‹rs
+ );
+
+6244 
+	gvœtu®
+ ~
+SeùiÚT¿ck”
+();
+
+6246 
+vœtu®
+ 
+boÞ
+ 
+isSeùiÚT¿ck”
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gŒue
+; }
+
+6248 
+	gSeùiÚT¿ck”
+& 
+acquœe
+Ð
+T¿ck”CÚ‹xt
+& 
+ùx
+, 
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+ ) {
+
+6249 
+SeùiÚT¿ck”
+* 
+	g£ùiÚ
+ = 
+CATCH_NULL
+;
+
+6251 
+	gIT¿ck”
+& 
+	gcu¼’tT¿ck”
+ = 
+ùx
+.
+cu¼’tT¿ck”
+();
+
+6252 ifÐ
+IT¿ck”
+* 
+	gchždT¿ck”
+ = 
+cu¼’tT¿ck”
+.
+fšdChžd
+Ð
+ÇmeAndLoÿtiÚ
+ ) ) {
+
+6253 
+as£¹
+Ð
+chždT¿ck”
+ );
+
+6254 
+as£¹
+Ð
+chždT¿ck”
+->
+isSeùiÚT¿ck”
+() );
+
+6255 
+	g£ùiÚ
+ = 
+¡©ic_ÿ¡
+<
+SeùiÚT¿ck”
+*>Ð
+chždT¿ck”
+ );
+
+6258 
+	g£ùiÚ
+ = 
+Ãw
+ 
+SeùiÚT¿ck”
+Ð
+ÇmeAndLoÿtiÚ
+, 
+ùx
+, &
+cu¼’tT¿ck”
+ );
+
+6259 
+	gcu¼’tT¿ck”
+.
+addChžd
+Ð
+£ùiÚ
+ );
+
+6261 ifÐ!
+	gùx
+.
+com¶‘edCyþe
+() )
+
+6262 
+	g£ùiÚ
+->
+ŒyO³n
+();
+
+6263  *
+	g£ùiÚ
+;
+
+6266 
+ŒyO³n
+() {
+
+6267 ifÐ!
+isCom¶‘e
+(è&& (
+	gm_fž‹rs
+.
+em±y
+(è|| m_fž‹rs[0].em±y(è|| m_fž‹rs[0] =ð
+m_ÇmeAndLoÿtiÚ
+.
+Çme
+ ) )
+
+6268 
+Ý’
+();
+
+6271 
+addIn™ŸlFž‹rs
+Ð
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> cÚ¡& 
+fž‹rs
+ ) {
+
+6272 ifÐ!
+fž‹rs
+.
+em±y
+() ) {
+
+6273 
+m_fž‹rs
+.
+push_back
+("");
+
+6274 
+	gm_fž‹rs
+.
+push_back
+("");
+
+6275 
+	gm_fž‹rs
+.
+š£¹
+Ð
+m_fž‹rs
+.
+’d
+(), 
+fž‹rs
+.
+begš
+(), filters.end() );
+
+6278 
+addNextFž‹rs
+Ð
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> cÚ¡& 
+fž‹rs
+ ) {
+
+6279 ifÐ
+fž‹rs
+.
+size
+() > 1 )
+
+6280 
+m_fž‹rs
+.
+š£¹
+Ðm_fž‹rs.
+’d
+(), ++
+fž‹rs
+.
+begš
+(), filters.end() );
+
+6284 þas 
+	cIndexT¿ck”
+ : 
+public
+ 
+T¿ck”Ba£
+ {
+
+6285 
+m_size
+;
+
+6286 
+	gm_šdex
+;
+
+6287 
+	gpublic
+:
+
+6288 
+IndexT¿ck”
+Ð
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+, 
+T¿ck”CÚ‹xt
+& 
+ùx
+, 
+IT¿ck”
+* 
+·»Á
+, 
+size
+ )
+
+6289 : 
+T¿ck”Ba£
+Ð
+ÇmeAndLoÿtiÚ
+, 
+ùx
+, 
+·»Á
+ ),
+
+6290 
+m_size
+Ð
+size
+ ),
+
+6291 
+m_šdex
+( -1 )
+
+6293 
+	gvœtu®
+ ~
+IndexT¿ck”
+();
+
+6295 
+vœtu®
+ 
+boÞ
+ 
+isIndexT¿ck”
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {  
+	gŒue
+; }
+
+6297 
+	gIndexT¿ck”
+& 
+acquœe
+Ð
+T¿ck”CÚ‹xt
+& 
+ùx
+, 
+NameAndLoÿtiÚ
+ cÚ¡& 
+ÇmeAndLoÿtiÚ
+, 
+size
+ ) {
+
+6298 
+IndexT¿ck”
+* 
+	gŒack”
+ = 
+CATCH_NULL
+;
+
+6300 
+	gIT¿ck”
+& 
+	gcu¼’tT¿ck”
+ = 
+ùx
+.
+cu¼’tT¿ck”
+();
+
+6301 ifÐ
+IT¿ck”
+* 
+	gchždT¿ck”
+ = 
+cu¼’tT¿ck”
+.
+fšdChžd
+Ð
+ÇmeAndLoÿtiÚ
+ ) ) {
+
+6302 
+as£¹
+Ð
+chždT¿ck”
+ );
+
+6303 
+as£¹
+Ð
+chždT¿ck”
+->
+isIndexT¿ck”
+() );
+
+6304 
+	gŒack”
+ = 
+¡©ic_ÿ¡
+<
+IndexT¿ck”
+*>Ð
+chždT¿ck”
+ );
+
+6307 
+	gŒack”
+ = 
+Ãw
+ 
+IndexT¿ck”
+Ð
+ÇmeAndLoÿtiÚ
+, 
+ùx
+, &
+cu¼’tT¿ck”
+, 
+size
+ );
+
+6308 
+	gcu¼’tT¿ck”
+.
+addChžd
+Ð
+Œack”
+ );
+
+6311 ifÐ!
+	gùx
+.
+com¶‘edCyþe
+(è&& !
+	gŒack”
+->
+isCom¶‘e
+() ) {
+
+6312 ifÐ
+	gŒack”
+->
+	gm_runS�‹
+ !ð
+ExecutšgChžd»n
+ && 
+Œack”
+->
+m_runS�‹
+ !ð
+N“dsAnÙh”Run
+ )
+
+6313 
+Œack”
+->
+moveNext
+();
+
+6314 
+	gŒack”
+->
+Ý’
+();
+
+6317  *
+	gŒack”
+;
+
+6320 
+šdex
+(ècÚ¡ {  
+	gm_šdex
+; }
+
+6322 
+moveNext
+() {
+
+6323 
+	gm_šdex
+++;
+
+6324 
+	gm_chžd»n
+.
+þ—r
+();
+
+6327 
+vœtu®
+ 
+þo£
+(è
+	gCATCH_OVERRIDE
+ {
+
+6328 
+	gT¿ck”Ba£
+::
+þo£
+();
+
+6329 ifÐ
+	gm_runS�‹
+ =ð
+Com¶‘edSucûssfuÎy
+ && 
+m_šdex
+ < 
+m_size
+-1 )
+
+6330 
+m_runS�‹
+ = 
+Executšg
+;
+
+6334 
+šlše
+ 
+	gIT¿ck”
+& 
+	gT¿ck”CÚ‹xt
+::
+¡¬tRun
+() {
+
+6335 
+m_roÙT¿ck”
+ = 
+Ãw
+ 
+SeùiÚT¿ck”
+Ð
+NameAndLoÿtiÚ
+Ð"{roÙ}", 
+CATCH_INTERNAL_LINEINFO
+ ), *
+this
+, 
+CATCH_NULL
+ );
+
+6336 
+	gm_cu¼’tT¿ck”
+ = 
+CATCH_NULL
+;
+
+6337 
+	gm_runS�‹
+ = 
+Executšg
+;
+
+6338  *
+	gm_roÙT¿ck”
+;
+
+6343 
+usšg
+ 
+	gTe¡Ca£T¿ckšg
+::
+IT¿ck”
+;
+
+6344 
+usšg
+ 
+	gTe¡Ca£T¿ckšg
+::
+T¿ck”CÚ‹xt
+;
+
+6345 
+usšg
+ 
+	gTe¡Ca£T¿ckšg
+::
+SeùiÚT¿ck”
+;
+
+6346 
+usšg
+ 
+	gTe¡Ca£T¿ckšg
+::
+IndexT¿ck”
+;
+
+6350 
+	gCATCH_INTERNAL_UNSUPPRESS_ETD_WARNINGS
+
+
+6353 
+	#TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
+
+
+	)
+
+6355 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+6358 
+šlše
+ 
+»pÜtF©®
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+mes§ge
+ ) {
+
+6359 
+ICÚ‹xt
+& 
+cÚ‹xt
+ = 
+C©ch
+::
+g‘Cu¼’tCÚ‹xt
+();
+
+6360 
+IResuÉC­tu»
+* 
+	g»suÉC­tu»
+ = 
+cÚ‹xt
+.
+g‘ResuÉC­tu»
+();
+
+6361 
+	g»suÉC­tu»
+->
+hªdËF©®E¼ÜCÚd™iÚ
+Ð
+mes§ge
+ );
+
+6366 #ià
+	$defšed
+ ( 
+CATCH_PLATFORM_WINDOWS
+ )
+
+6369 
+	#TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED
+
+
+	)
+
+6371 #ifdeà
+CATCH_DEFINES_NOMINMAX
+
+
+6372 
+	#NOMINMAX
+
+
+	)
+
+6374 #ifdeà
+CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+
+
+6375 
+	#WIN32_LEAN_AND_MEAN
+
+
+	)
+
+6378 #ifdeà
+__AFXDLL
+
+
+6379 
+	~<AfxWš.h
+>
+
+6381 
+	~<wšdows.h
+>
+
+6384 #ifdeà
+CATCH_DEFINES_NOMINMAX
+
+
+6385 #undeà
+NOMINMAX
+
+
+6387 #ifdeà
+CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+
+
+6388 #undeà
+WIN32_LEAN_AND_MEAN
+
+
+6392 #ià!
+	$defšed
+ ( 
+CATCH_CONFIG_WINDOWS_SEH
+ )
+
+6394 
+Çme¥aû
+ 
+C©ch
+ {
+
+6395 
+	sF©®CÚd™iÚHªdËr
+ {
+
+6396 
+	`»£t
+() {}
+
+6398 
+	}
+}
+
+6402 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+6404 
+	sSigÇlDefs
+ { 
+DWORD
+ 
+	gid
+; cÚ¡ * 
+	gÇme
+; };
+
+6405 
+SigÇlDefs
+ 
+sigÇlDefs
+[];
+
+6409 
+SigÇlDefs
+ 
+	gsigÇlDefs
+[] = {
+
+6410 { 
+EXCEPTION_ILLEGAL_INSTRUCTION
+, "SIGILL - Illegal instruction signal" },
+
+6411 { 
+EXCEPTION_STACK_OVERFLOW
+, "SIGSEGV - Stack overflow" },
+
+6412 { 
+EXCEPTION_ACCESS_VIOLATION
+, "SIGSEGV - Segmentation violation signal" },
+
+6413 { 
+EXCEPTION_INT_DIVIDE_BY_ZERO
+, "Divide by zeroƒrror" },
+
+6416 
+	sF©®CÚd™iÚHªdËr
+ {
+
+6418 
+LONG
+ 
+CALLBACK
+ 
+hªdËVeùÜedExû±iÚ
+(
+PEXCEPTION_POINTERS
+ 
+Exû±iÚInfo
+) {
+
+6419 
+	gi
+ = 0; i < (
+	gsigÇlDefs
+è/ (
+	gSigÇlDefs
+); ++i) {
+
+6420 ià(
+	gExû±iÚInfo
+->
+	gExû±iÚRecÜd
+->
+	gExû±iÚCode
+ =ð
+sigÇlDefs
+[
+i
+].
+id
+) {
+
+6421 
+»pÜtF©®
+(
+sigÇlDefs
+[
+i
+].
+Çme
+);
+
+6426  
+	gEXCEPTION_CONTINUE_SEARCH
+;
+
+6429 
+F©®CÚd™iÚHªdËr
+() {
+
+6430 
+	gisS‘
+ = 
+Œue
+;
+
+6433 
+	ggu¬ª‹eSize
+ = 32 * 1024;
+
+6434 
+	gexû±iÚHªdËrHªdË
+ = 
+CATCH_NULL
+;
+
+6436 
+	gexû±iÚHªdËrHªdË
+ = 
+AddVeùÜedExû±iÚHªdËr
+(1, 
+hªdËVeùÜedExû±iÚ
+);
+
+6438 
+S‘Th»adS�ckGu¬ª‹e
+(&
+gu¬ª‹eSize
+);
+
+6441 
+»£t
+() {
+
+6442 ià(
+	gisS‘
+) {
+
+6444 
+RemoveVeùÜedExû±iÚHªdËr
+(
+exû±iÚHªdËrHªdË
+);
+
+6445 
+S‘Th»adS�ckGu¬ª‹e
+(&
+gu¬ª‹eSize
+);
+
+6446 
+	gexû±iÚHªdËrHªdË
+ = 
+CATCH_NULL
+;
+
+6447 
+	gisS‘
+ = 
+çl£
+;
+
+6451 ~
+F©®CÚd™iÚHªdËr
+() {
+
+6452 
+»£t
+();
+
+6454 
+	g´iv©e
+:
+
+6455 
+boÞ
+ 
+isS‘
+;
+
+6456 
+ULONG
+ 
+	ggu¬ª‹eSize
+;
+
+6457 
+PVOID
+ 
+	gexû±iÚHªdËrHªdË
+;
+
+6460 
+boÞ
+ 
+	gF©®CÚd™iÚHªdËr
+::
+isS‘
+ = 
+çl£
+;
+
+6461 
+ULONG
+ 
+	gF©®CÚd™iÚHªdËr
+::
+gu¬ª‹eSize
+ = 0;
+
+6462 
+PVOID
+ 
+	gF©®CÚd™iÚHªdËr
+::
+exû±iÚHªdËrHªdË
+ = 
+CATCH_NULL
+;
+
+6470 #ià!
+	$defšed
+(
+CATCH_CONFIG_POSIX_SIGNALS
+)
+
+6472 
+Çme¥aû
+ 
+C©ch
+ {
+
+6473 
+	sF©®CÚd™iÚHªdËr
+ {
+
+6474 
+	`»£t
+() {}
+
+6476 
+	}
+}
+
+6480 
+	~<sigÇl.h
+>
+
+6482 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+6484 
+	sSigÇlDefs
+ {
+
+6485 
+	gid
+;
+
+6486 cÚ¡ * 
+	gÇme
+;
+
+6488 
+SigÇlDefs
+ 
+sigÇlDefs
+[];
+
+6489 
+SigÇlDefs
+ 
+	gsigÇlDefs
+[] = {
+
+6490 { 
+SIGINT
+, "SIGINT - Terminal interrupt signal" },
+
+6491 { 
+SIGILL
+, "SIGILL - Illegal instruction signal" },
+
+6492 { 
+SIGFPE
+, "SIGFPE - Floating…ointƒrror signal" },
+
+6493 { 
+SIGSEGV
+, "SIGSEGV - Segmentation violation signal" },
+
+6494 { 
+SIGTERM
+, "SIGTERM - Termination„equest signal" },
+
+6495 { 
+SIGABRT
+, "SIGABRT - Abort (abnormal�ermination) signal" }
+
+6498 
+	sF©®CÚd™iÚHªdËr
+ {
+
+6500 
+boÞ
+ 
+	gisS‘
+;
+
+6501 
+sigaùiÚ
+ 
+	gÞdSigAùiÚs
+ [(
+sigÇlDefs
+)/(
+SigÇlDefs
+)];
+
+6502 
+¡ack_t
+ 
+	gÞdSigS�ck
+;
+
+6503 
+	g®tS�ckMem
+[
+SIGSTKSZ
+];
+
+6505 
+hªdËSigÇl
+Ð
+sig
+ ) {
+
+6506 
+	g¡d
+::
+¡ršg
+ 
+Çme
+ = "<unknown signal>";
+
+6507 
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < (
+	gsigÇlDefs
+è/ (
+	gSigÇlDefs
+); ++i) {
+
+6508 
+	gSigÇlDefs
+ &
+	gdef
+ = 
+sigÇlDefs
+[
+i
+];
+
+6509 ià(
+	gsig
+ =ð
+def
+.
+id
+) {
+
+6510 
+Çme
+ = 
+def
+.name;
+
+6514 
+»£t
+();
+
+6515 
+»pÜtF©®
+(
+Çme
+);
+
+6516 
+¿i£
+Ð
+sig
+ );
+
+6519 
+F©®CÚd™iÚHªdËr
+() {
+
+6520 
+	gisS‘
+ = 
+Œue
+;
+
+6521 
+¡ack_t
+ 
+	gsigS�ck
+;
+
+6522 
+	gsigS�ck
+.
+	gss_¥
+ = 
+®tS�ckMem
+;
+
+6523 
+	gsigS�ck
+.
+	gss_size
+ = 
+SIGSTKSZ
+;
+
+6524 
+	gsigS�ck
+.
+	gss_æags
+ = 0;
+
+6525 
+sig®t¡ack
+(&
+sigS�ck
+, &
+ÞdSigS�ck
+);
+
+6526 
+sigaùiÚ
+ 
+	g§
+ = { 0 };
+
+6528 
+	g§
+.
+	g§_hªdËr
+ = 
+hªdËSigÇl
+;
+
+6529 
+	g§
+.
+	g§_æags
+ = 
+SA_ONSTACK
+;
+
+6530 
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < (
+	gsigÇlDefs
+)/(
+	gSigÇlDefs
+); ++i) {
+
+6531 
+sigaùiÚ
+(
+sigÇlDefs
+[
+i
+].
+id
+, &
+§
+, &
+ÞdSigAùiÚs
+[i]);
+
+6535 ~
+F©®CÚd™iÚHªdËr
+() {
+
+6536 
+»£t
+();
+
+6538 
+»£t
+() {
+
+6539 ifÐ
+	gisS‘
+ ) {
+
+6541  
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < (
+	gsigÇlDefs
+)/(
+	gSigÇlDefs
+); ++i ) {
+
+6542 
+sigaùiÚ
+(
+sigÇlDefs
+[
+i
+].
+id
+, &
+ÞdSigAùiÚs
+[i], 
+CATCH_NULL
+);
+
+6545 
+sig®t¡ack
+(&
+ÞdSigS�ck
+, 
+CATCH_NULL
+);
+
+6546 
+	gisS‘
+ = 
+çl£
+;
+
+6551 
+boÞ
+ 
+	gF©®CÚd™iÚHªdËr
+::
+isS‘
+ = 
+çl£
+;
+
+6552 
+sigaùiÚ
+ 
+	gF©®CÚd™iÚHªdËr
+::
+ÞdSigAùiÚs
+[(
+sigÇlDefs
+)/(
+SigÇlDefs
+)] = {};
+
+6553 
+¡ack_t
+ 
+	gF©®CÚd™iÚHªdËr
+::
+ÞdSigS�ck
+ = {};
+
+6554 
+	gF©®CÚd™iÚHªdËr
+::
+®tS�ckMem
+[
+SIGSTKSZ
+] = {};
+
+6562 
+	~<£t
+>
+
+6563 
+	~<¡ršg
+>
+
+6565 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+6567 þas 
+	cSŒ—mRedœeù
+ {
+
+6569 
+	gpublic
+:
+
+6570 
+SŒ—mRedœeù
+Ð
+¡d
+::
+o¡»am
+& 
+¡»am
+, std::
+¡ršg
+& 
+�rg‘SŒšg
+ )
+
+6571 : 
+m_¡»am
+Ð
+¡»am
+ ),
+
+6572 
+m_´evBuf
+Ð
+¡»am
+.
+rdbuf
+() ),
+
+6573 
+m_�rg‘SŒšg
+Ð
+�rg‘SŒšg
+ )
+
+6575 
+	g¡»am
+.
+rdbuf
+Ð
+m_oss
+.rdbuf() );
+
+6578 ~
+SŒ—mRedœeù
+() {
+
+6579 
+	gm_�rg‘SŒšg
+ +ð
+m_oss
+.
+¡r
+();
+
+6580 
+	gm_¡»am
+.
+rdbuf
+Ð
+m_´evBuf
+ );
+
+6583 
+	g´iv©e
+:
+
+6584 
+¡d
+::
+o¡»am
+& 
+m_¡»am
+;
+
+6585 
+	g¡d
+::
+¡»ambuf
+* 
+m_´evBuf
+;
+
+6586 
+	g¡d
+::
+o¡ršg¡»am
+ 
+m_oss
+;
+
+6587 
+	g¡d
+::
+¡ršg
+& 
+m_�rg‘SŒšg
+;
+
+6593 þas 
+	cStdE¼Redœeù
+ {
+
+6594 
+	gpublic
+:
+
+6595 
+StdE¼Redœeù
+(
+¡d
+::
+¡ršg
+& 
+�rg‘SŒšg
+)
+
+6596 :
+m_û¼Buf
+Ð
+û¼
+().
+rdbuf
+(è), 
+m_þogBuf
+(
+þog
+().rdbuf()),
+
+6597 
+m_�rg‘SŒšg
+(
+�rg‘SŒšg
+){
+
+6598 
+û¼
+().
+rdbuf
+(
+m_oss
+.rdbuf());
+
+6599 
+þog
+().
+rdbuf
+(
+m_oss
+.rdbuf());
+
+6601 ~
+StdE¼Redœeù
+() {
+
+6602 
+	gm_�rg‘SŒšg
+ +ð
+m_oss
+.
+¡r
+();
+
+6603 
+û¼
+().
+rdbuf
+(
+m_û¼Buf
+);
+
+6604 
+þog
+().
+rdbuf
+(
+m_þogBuf
+);
+
+6606 
+	g´iv©e
+:
+
+6607 
+¡d
+::
+¡»ambuf
+* 
+m_û¼Buf
+;
+
+6608 
+	g¡d
+::
+¡»ambuf
+* 
+m_þogBuf
+;
+
+6609 
+	g¡d
+::
+o¡ršg¡»am
+ 
+m_oss
+;
+
+6610 
+	g¡d
+::
+¡ršg
+& 
+m_�rg‘SŒšg
+;
+
+6615 
+þass
+ 
+	gRunCÚ‹xt
+ : 
+public
+ 
+IResuÉC­tu»
+,…ubliø
+	gIRuÂ”
+ {
+
+6617 
+RunCÚ‹xt
+( RunContext const& );
+
+6618 
+	gÝ”©Ü
+ =Ð
+RunCÚ‹xt
+ const& );
+
+6620 
+	gpublic
+:
+
+6622 
+ex¶ic™
+ 
+RunCÚ‹xt
+Ð
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+_cÚfig
+, PŒ<
+ISŒ—mšgR•Ü‹r
+> cÚ¡& 
+»pÜ‹r
+ )
+
+6623 : 
+m_runInfo
+Ð
+_cÚfig
+->
+Çme
+() ),
+
+6624 
+m_cÚ‹xt
+Ð
+g‘Cu¼’tMu�bËCÚ‹xt
+() ),
+
+6625 
+m_aùiveTe¡Ca£
+Ð
+CATCH_NULL
+ ),
+
+6626 
+m_cÚfig
+Ð
+_cÚfig
+ ),
+
+6627 
+m_»pÜ‹r
+Ð
+»pÜ‹r
+ ),
+
+6628 
+m_shouldR•ÜtUÃx³ùed
+ ( 
+Œue
+ )
+
+6630 
+	gm_cÚ‹xt
+.
+£tRuÂ”
+Ð
+this
+ );
+
+6631 
+	gm_cÚ‹xt
+.
+£tCÚfig
+Ð
+m_cÚfig
+ );
+
+6632 
+	gm_cÚ‹xt
+.
+£tResuÉC­tu»
+Ð
+this
+ );
+
+6633 
+	gm_»pÜ‹r
+->
+‹¡RunS�¹šg
+Ð
+m_runInfo
+ );
+
+6636 
+	gvœtu®
+ ~
+RunCÚ‹xt
+() {
+
+6637 
+	gm_»pÜ‹r
+->
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+Ð
+m_runInfo
+, 
+m_tÙ®s
+, 
+abÜtšg
+() ) );
+
+6640 
+‹¡GroupS�¹šg
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹¡S³c
+, std::
+size_t
+ 
+groupIndex
+, std::size_ˆ
+groupsCouÁ
+ ) {
+
+6641 
+m_»pÜ‹r
+->
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+Ð
+‹¡S³c
+, 
+groupIndex
+, 
+groupsCouÁ
+ ) );
+
+6643 
+‹¡GroupEnded
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹¡S³c
+, 
+TÙ®s
+ cÚ¡& 
+tÙ®s
+, std::
+size_t
+ 
+groupIndex
+, std::size_ˆ
+groupsCouÁ
+ ) {
+
+6644 
+m_»pÜ‹r
+->
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+Ð
+GroupInfo
+Ð
+‹¡S³c
+, 
+groupIndex
+, 
+groupsCouÁ
+ ), 
+tÙ®s
+, 
+abÜtšg
+() ) );
+
+6647 
+TÙ®s
+ 
+runTe¡
+Ð
+Te¡Ca£
+ cÚ¡& 
+‹¡Ca£
+ ) {
+
+6648 
+TÙ®s
+ 
+	g´evTÙ®s
+ = 
+m_tÙ®s
+;
+
+6650 
+	g¡d
+::
+¡ršg
+ 
+»dœeùedCout
+;
+
+6651 
+	g¡d
+::
+¡ršg
+ 
+»dœeùedC”r
+;
+
+6653 
+Te¡Ca£Info
+ 
+	g‹¡Info
+ = 
+‹¡Ca£
+.
+g‘Te¡Ca£Info
+();
+
+6655 
+	gm_»pÜ‹r
+->
+‹¡Ca£S�¹šg
+Ð
+‹¡Info
+ );
+
+6657 
+	gm_aùiveTe¡Ca£
+ = &
+‹¡Ca£
+;
+
+6660 
+	gIT¿ck”
+& 
+	groÙT¿ck”
+ = 
+m_Œack”CÚ‹xt
+.
+¡¬tRun
+();
+
+6661 
+as£¹
+Ð
+roÙT¿ck”
+.
+isSeùiÚT¿ck”
+() );
+
+6662 
+	g¡©ic_ÿ¡
+<
+	gSeùiÚT¿ck”
+&>Ð
+	groÙT¿ck”
+ ).
+addIn™ŸlFž‹rs
+Ð
+m_cÚfig
+->
+g‘SeùiÚsToRun
+() );
+
+6664 
+	gm_Œack”CÚ‹xt
+.
+¡¬tCyþe
+();
+
+6665 
+	gm_‹¡Ca£T¿ck”
+ = &
+SeùiÚT¿ck”
+::
+acquœe
+Ð
+m_Œack”CÚ‹xt
+, 
+Te¡Ca£T¿ckšg
+::
+NameAndLoÿtiÚ
+Ð
+‹¡Info
+.
+Çme
+,�e¡Info.
+lšeInfo
+ ) );
+
+6666 
+runCu¼’tTe¡
+Ð
+»dœeùedCout
+, 
+»dœeùedC”r
+ );
+
+6668  !
+	gm_‹¡Ca£T¿ck”
+->
+isSucûssfuÎyCom¶‘ed
+(è&& !
+abÜtšg
+() );
+
+6671  
+g‘Cu¼’tCÚ‹xt
+().
+advªûG’”©ÜsFÜCu¼’tTe¡
+(è&& !
+abÜtšg
+() );
+
+6673 
+TÙ®s
+ 
+	gd–�TÙ®s
+ = 
+m_tÙ®s
+.
+d–�
+Ð
+´evTÙ®s
+ );
+
+6674 ifÐ
+	g‹¡Info
+.
+ex³ùedToFaž
+(è&& 
+	gd–�TÙ®s
+.
+	g‹¡Ca£s
+.
+	g·s£d
+ > 0 ) {
+
+6675 
+	gd–�TÙ®s
+.
+	gas£¹iÚs
+.
+	gçžed
+++;
+
+6676 
+	gd–�TÙ®s
+.
+	g‹¡Ca£s
+.
+	g·s£d
+--;
+
+6677 
+	gd–�TÙ®s
+.
+	g‹¡Ca£s
+.
+	gçžed
+++;
+
+6679 
+	gm_tÙ®s
+.
+	g‹¡Ca£s
+ +ð
+d–�TÙ®s
+.
+‹¡Ca£s
+;
+
+6680 
+	gm_»pÜ‹r
+->
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+Ð
+‹¡Info
+,
+
+6681 
+d–�TÙ®s
+,
+
+6682 
+»dœeùedCout
+,
+
+6683 
+»dœeùedC”r
+,
+
+6684 
+abÜtšg
+() ) );
+
+6686 
+	gm_aùiveTe¡Ca£
+ = 
+CATCH_NULL
+;
+
+6687 
+	gm_‹¡Ca£T¿ck”
+ = 
+CATCH_NULL
+;
+
+6689  
+	gd–�TÙ®s
+;
+
+6692 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+cÚfig
+() const {
+
+6693  
+	gm_cÚfig
+;
+
+6696 
+	g´iv©e
+:
+
+6698 
+vœtu®
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚResuÉ
+ cÚ¡& 
+»suÉ
+ ) {
+
+6699 ifÐ
+»suÉ
+.
+g‘ResuÉTy³
+(è=ð
+ResuÉWas
+::
+Ok
+ ) {
+
+6700 
+m_tÙ®s
+.
+as£¹iÚs
+.
+·s£d
+++;
+
+6702 ifÐ!
+	g»suÉ
+.
+isOk
+() ) {
+
+6703 
+	gm_tÙ®s
+.
+	gas£¹iÚs
+.
+	gçžed
+++;
+
+6708 
+	g¡©ic_ÿ¡
+<>(
+	gm_»pÜ‹r
+->
+as£¹iÚEnded
+(
+As£¹iÚS�ts
+(
+»suÉ
+, 
+m_mes§ges
+, 
+m_tÙ®s
+)));
+
+6711 
+	gm_Ï¡As£¹iÚInfo
+ = 
+As£¹iÚInfo
+Ð"", 
+m_Ï¡As£¹iÚInfo
+.
+lšeInfo
+, "{UnknowÀex´essiÚ‡á”�h�»pÜ‹d†še}" , m_Ï¡As£¹iÚInfo.
+»suÉDi¥os™iÚ
+ );
+
+6712 
+	gm_Ï¡ResuÉ
+ = 
+»suÉ
+;
+
+6715 
+vœtu®
+ 
+boÞ
+ 
+Ï¡As£¹iÚPas£d
+()
+
+6717  
+	gm_tÙ®s
+.
+	gas£¹iÚs
+.
+	g·s£d
+ =ð(
+m_´evPas£d
+ + 1);
+
+6720 
+vœtu®
+ 
+as£¹iÚPas£d
+()
+
+6722 
+	gm_tÙ®s
+.
+	gas£¹iÚs
+.
+	g·s£d
+++;
+
+6723 
+	gm_Ï¡As£¹iÚInfo
+.
+	gÿ±u»dEx´essiÚ
+ = "{Unknownƒxpression‡fter�he„eported†ine}";
+
+6724 
+	gm_Ï¡As£¹iÚInfo
+.
+	gmaüoName
+ = "";
+
+6727 
+vœtu®
+ 
+as£¹iÚRun
+()
+
+6729 
+	gm_´evPas£d
+ = 
+m_tÙ®s
+.
+as£¹iÚs
+.
+·s£d
+;
+
+6732 
+vœtu®
+ 
+boÞ
+ 
+£ùiÚS�¹ed
+ (
+
+6733 
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+,
+
+6734 
+CouÁs
+& 
+as£¹iÚs
+
+
+6737 
+	gIT¿ck”
+& 
+	g£ùiÚT¿ck”
+ = 
+SeùiÚT¿ck”
+::
+acquœe
+Ð
+m_Œack”CÚ‹xt
+, 
+Te¡Ca£T¿ckšg
+::
+NameAndLoÿtiÚ
+Ð
+£ùiÚInfo
+.
+Çme
+, seùiÚInfo.
+lšeInfo
+ ) );
+
+6738 ifÐ!
+	g£ùiÚT¿ck”
+.
+isO³n
+() )
+
+6739  
+	gçl£
+;
+
+6740 
+	gm_aùiveSeùiÚs
+.
+push_back
+Ð&
+£ùiÚT¿ck”
+ );
+
+6742 
+	gm_Ï¡As£¹iÚInfo
+.
+	glšeInfo
+ = 
+£ùiÚInfo
+.
+lšeInfo
+;
+
+6744 
+	gm_»pÜ‹r
+->
+£ùiÚS�¹šg
+Ð
+£ùiÚInfo
+ );
+
+6746 
+	gas£¹iÚs
+ = 
+m_tÙ®s
+.
+as£¹iÚs
+;
+
+6748  
+	gŒue
+;
+
+6750 
+boÞ
+ 
+‹¡FÜMissšgAs£¹iÚs
+Ð
+CouÁs
+& 
+as£¹iÚs
+ ) {
+
+6751 ifÐ
+	gas£¹iÚs
+.
+tÙ®
+() != 0 )
+
+6752  
+çl£
+;
+
+6753 ifÐ!
+	gm_cÚfig
+->
+w¬nAboutMissšgAs£¹iÚs
+() )
+
+6754  
+	gçl£
+;
+
+6755 ifÐ
+	gm_Œack”CÚ‹xt
+.
+cu¼’tT¿ck”
+().
+hasChžd»n
+() )
+
+6756  
+	gçl£
+;
+
+6757 
+	gm_tÙ®s
+.
+	gas£¹iÚs
+.
+	gçžed
+++;
+
+6758 
+	gas£¹iÚs
+.
+	gçžed
+++;
+
+6759  
+	gŒue
+;
+
+6762 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚEndInfo
+ cÚ¡& 
+’dInfo
+ ) {
+
+6763 
+CouÁs
+ 
+	gas£¹iÚs
+ = 
+m_tÙ®s
+.
+as£¹iÚs
+ - 
+’dInfo
+.
+´evAs£¹iÚs
+;
+
+6764 
+boÞ
+ 
+	gmissšgAs£¹iÚs
+ = 
+‹¡FÜMissšgAs£¹iÚs
+Ð
+as£¹iÚs
+ );
+
+6766 ifÐ!
+	gm_aùiveSeùiÚs
+.
+em±y
+() ) {
+
+6767 
+	gm_aùiveSeùiÚs
+.
+back
+()->
+þo£
+();
+
+6768 
+	gm_aùiveSeùiÚs
+.
+pÝ_back
+();
+
+6771 
+	gm_»pÜ‹r
+->
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+Ð
+’dInfo
+.
+£ùiÚInfo
+, 
+as£¹iÚs
+,ƒndInfo.
+du¿tiÚInSecÚds
+, 
+missšgAs£¹iÚs
+ ) );
+
+6772 
+	gm_mes§ges
+.
+þ—r
+();
+
+6775 
+vœtu®
+ 
+£ùiÚEndedE¬ly
+Ð
+SeùiÚEndInfo
+ cÚ¡& 
+’dInfo
+ ) {
+
+6776 ifÐ
+	gm_unfšishedSeùiÚs
+.
+em±y
+() )
+
+6777 
+	gm_aùiveSeùiÚs
+.
+back
+()->
+çž
+();
+
+6779 
+	gm_aùiveSeùiÚs
+.
+back
+()->
+þo£
+();
+
+6780 
+	gm_aùiveSeùiÚs
+.
+pÝ_back
+();
+
+6782 
+	gm_unfšishedSeùiÚs
+.
+push_back
+Ð
+’dInfo
+ );
+
+6785 
+vœtu®
+ 
+pushScÝedMes§ge
+Ð
+Mes§geInfo
+ cÚ¡& 
+mes§ge
+ ) {
+
+6786 
+	gm_mes§ges
+.
+push_back
+Ð
+mes§ge
+ );
+
+6789 
+vœtu®
+ 
+pÝScÝedMes§ge
+Ð
+Mes§geInfo
+ cÚ¡& 
+mes§ge
+ ) {
+
+6790 
+	gm_mes§ges
+.
+”a£
+Ð
+¡d
+::
+»move
+Ð
+m_mes§ges
+.
+begš
+(), m_mes§ges.
+’d
+(), 
+mes§ge
+ ), m_messages.end() );
+
+6793 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘Cu¼’tTe¡Name
+() const {
+
+6794  
+m_aùiveTe¡Ca£
+
+
+6795 ? 
+m_aùiveTe¡Ca£
+->
+g‘Te¡Ca£Info
+().
+Çme
+
+
+6796 : 
+¡d
+::
+¡ršg
+();
+
+6799 
+vœtu®
+ cÚ¡ 
+As£¹iÚResuÉ
+* 
+g‘La¡ResuÉ
+() const {
+
+6800  &
+	gm_Ï¡ResuÉ
+;
+
+6803 
+vœtu®
+ 
+exû±iÚE¬lyR•Ü‹d
+() {
+
+6804 
+	gm_shouldR•ÜtUÃx³ùed
+ = 
+çl£
+;
+
+6807 
+vœtu®
+ 
+hªdËF©®E¼ÜCÚd™iÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+mes§ge
+ ) {
+
+6810 
+As£¹iÚResuÉD©a
+ 
+‹mpResuÉ
+;
+
+6811 
+	g‹mpResuÉ
+.
+	g»suÉTy³
+ = 
+ResuÉWas
+::
+F©®E¼ÜCÚd™iÚ
+;
+
+6812 
+	g‹mpResuÉ
+.
+	gmes§ge
+ = 
+mes§ge
+;
+
+6813 
+As£¹iÚResuÉ
+ 
+»suÉ
+(
+m_Ï¡As£¹iÚInfo
+, 
+‹mpResuÉ
+);
+
+6815 
+g‘ResuÉC­tu»
+().
+as£¹iÚEnded
+(
+»suÉ
+);
+
+6817 
+hªdËUnfšishedSeùiÚs
+();
+
+6820 
+Te¡Ca£Info
+ cÚ¡& 
+	g‹¡Ca£Info
+ = 
+m_aùiveTe¡Ca£
+->
+g‘Te¡Ca£Info
+();
+
+6821 
+SeùiÚInfo
+ 
+‹¡Ca£SeùiÚ
+Ð
+‹¡Ca£Info
+.
+lšeInfo
+,�e¡Ca£Info.
+Çme
+,�e¡Ca£Info.
+desü�tiÚ
+ );
+
+6823 
+CouÁs
+ 
+	gas£¹iÚs
+;
+
+6824 
+	gas£¹iÚs
+.
+	gçžed
+ = 1;
+
+6825 
+SeùiÚS�ts
+ 
+‹¡Ca£SeùiÚS�ts
+Ð
+‹¡Ca£SeùiÚ
+, 
+as£¹iÚs
+, 0, 
+çl£
+ );
+
+6826 
+	gm_»pÜ‹r
+->
+£ùiÚEnded
+Ð
+‹¡Ca£SeùiÚS�ts
+ );
+
+6828 
+Te¡Ca£Info
+ 
+	g‹¡Info
+ = 
+m_aùiveTe¡Ca£
+->
+g‘Te¡Ca£Info
+();
+
+6830 
+TÙ®s
+ 
+	gd–�TÙ®s
+;
+
+6831 
+	gd–�TÙ®s
+.
+	g‹¡Ca£s
+.
+	gçžed
+ = 1;
+
+6832 
+	gd–�TÙ®s
+.
+	gas£¹iÚs
+.
+	gçžed
+ = 1;
+
+6833 
+	gm_»pÜ‹r
+->
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+Ð
+‹¡Info
+,
+
+6834 
+d–�TÙ®s
+,
+
+6835 
+¡d
+::
+¡ršg
+(),
+
+6836 
+¡d
+::
+¡ršg
+(),
+
+6837 
+çl£
+ ) );
+
+6838 
+	gm_tÙ®s
+.
+	g‹¡Ca£s
+.
+	gçžed
+++;
+
+6839 
+‹¡GroupEnded
+Ð
+¡d
+::
+¡ršg
+(), 
+m_tÙ®s
+, 1, 1 );
+
+6840 
+	gm_»pÜ‹r
+->
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+Ð
+m_runInfo
+, 
+m_tÙ®s
+, 
+çl£
+ ) );
+
+6843 
+	gpublic
+:
+
+6845 
+boÞ
+ 
+abÜtšg
+() const {
+
+6846  
+m_tÙ®s
+.
+as£¹iÚs
+.
+çžed
+ =ð
+¡©ic_ÿ¡
+<
+¡d
+::
+size_t
+>Ð
+m_cÚfig
+->
+abÜtAá”
+() );
+
+6849 
+	g´iv©e
+:
+
+6851 
+runCu¼’tTe¡
+Ð
+¡d
+::
+¡ršg
+& 
+»dœeùedCout
+, std::¡ršg& 
+»dœeùedC”r
+ ) {
+
+6852 
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£Info
+ = 
+m_aùiveTe¡Ca£
+->
+g‘Te¡Ca£Info
+();
+
+6853 
+SeùiÚInfo
+ 
+‹¡Ca£SeùiÚ
+Ð
+‹¡Ca£Info
+.
+lšeInfo
+,�e¡Ca£Info.
+Çme
+,�e¡Ca£Info.
+desü�tiÚ
+ );
+
+6854 
+	gm_»pÜ‹r
+->
+£ùiÚS�¹šg
+Ð
+‹¡Ca£SeùiÚ
+ );
+
+6855 
+CouÁs
+ 
+	g´evAs£¹iÚs
+ = 
+m_tÙ®s
+.
+as£¹iÚs
+;
+
+6856 
+	gdu¿tiÚ
+ = 0;
+
+6857 
+	gm_shouldR•ÜtUÃx³ùed
+ = 
+Œue
+;
+
+6858 
+	gŒy
+ {
+
+6859 
+	gm_Ï¡As£¹iÚInfo
+ = 
+As£¹iÚInfo
+Ð"TEST_CASE", 
+‹¡Ca£Info
+.
+lšeInfo
+, "", 
+ResuÉDi¥os™iÚ
+::
+NÜm®
+ );
+
+6861 
+£edRng
+Ð*
+m_cÚfig
+ );
+
+6863 
+Tim”
+ 
+	gtim”
+;
+
+6864 
+	gtim”
+.
+¡¬t
+();
+
+6865 ifÐ
+	gm_»pÜ‹r
+->
+g‘P»ã»nûs
+().
+	gshouldRedœeùStdOut
+ ) {
+
+6866 
+SŒ—mRedœeù
+ 
+coutRedœ
+Ð
+C©ch
+::
+cout
+(), 
+»dœeùedCout
+ );
+
+6867 
+StdE¼Redœeù
+ 
+”rRedœ
+Ð
+»dœeùedC”r
+ );
+
+6868 
+švokeAùiveTe¡Ca£
+();
+
+6871 
+švokeAùiveTe¡Ca£
+();
+
+6873 
+	gdu¿tiÚ
+ = 
+tim”
+.
+g‘EÏp£dSecÚds
+();
+
+6875 
+ÿtch
+Ð
+Te¡Fažu»Exû±iÚ
+& ) {
+
+6878 
+ÿtch
+(...) {
+
+6881 ià(
+	gm_shouldR•ÜtUÃx³ùed
+) {
+
+6882 
+makeUÃx³ùedResuÉBužd”
+().
+u£AùiveExû±iÚ
+();
+
+6885 
+	gm_‹¡Ca£T¿ck”
+->
+þo£
+();
+
+6886 
+hªdËUnfšishedSeùiÚs
+();
+
+6887 
+	gm_mes§ges
+.
+þ—r
+();
+
+6889 
+CouÁs
+ 
+	gas£¹iÚs
+ = 
+m_tÙ®s
+.
+as£¹iÚs
+ - 
+´evAs£¹iÚs
+;
+
+6890 
+boÞ
+ 
+	gmissšgAs£¹iÚs
+ = 
+‹¡FÜMissšgAs£¹iÚs
+Ð
+as£¹iÚs
+ );
+
+6892 ifÐ
+	g‹¡Ca£Info
+.
+okToFaž
+() ) {
+
+6893 
+	g¡d
+::
+sw­
+Ð
+as£¹iÚs
+.
+çžedButOk
+,‡s£¹iÚs.
+çžed
+ );
+
+6894 
+	gm_tÙ®s
+.
+	gas£¹iÚs
+.
+	gçžed
+ -ð
+as£¹iÚs
+.
+çžedButOk
+;
+
+6895 
+	gm_tÙ®s
+.
+	gas£¹iÚs
+.
+	gçžedButOk
+ +ð
+as£¹iÚs
+.
+çžedButOk
+;
+
+6898 
+SeùiÚS�ts
+ 
+‹¡Ca£SeùiÚS�ts
+Ð
+‹¡Ca£SeùiÚ
+, 
+as£¹iÚs
+, 
+du¿tiÚ
+, 
+missšgAs£¹iÚs
+ );
+
+6899 
+	gm_»pÜ‹r
+->
+£ùiÚEnded
+Ð
+‹¡Ca£SeùiÚS�ts
+ );
+
+6902 
+švokeAùiveTe¡Ca£
+() {
+
+6903 
+F©®CÚd™iÚHªdËr
+ 
+	gç�lCÚd™iÚHªdËr
+;
+
+6904 
+	gm_aùiveTe¡Ca£
+->
+švoke
+();
+
+6905 
+	gç�lCÚd™iÚHªdËr
+.
+»£t
+();
+
+6908 
+	g´iv©e
+:
+
+6910 
+ResuÉBužd”
+ 
+makeUÃx³ùedResuÉBužd”
+() const {
+
+6911  
+ResuÉBužd”
+Ð
+m_Ï¡As£¹iÚInfo
+.
+maüoName
+,
+
+6912 
+m_Ï¡As£¹iÚInfo
+.
+lšeInfo
+,
+
+6913 
+m_Ï¡As£¹iÚInfo
+.
+ÿ±u»dEx´essiÚ
+,
+
+6914 
+m_Ï¡As£¹iÚInfo
+.
+»suÉDi¥os™iÚ
+ );
+
+6917 
+hªdËUnfšishedSeùiÚs
+() {
+
+6920  
+	g¡d
+::
+veùÜ
+<
+SeùiÚEndInfo
+>::
+cÚ¡_»v”£_™”©Ü
+ 
+™
+ = 
+m_unfšishedSeùiÚs
+.
+rbegš
+(),
+
+6921 
+	g™End
+ = 
+m_unfšishedSeùiÚs
+.
+»nd
+();
+
+6922 
+	g™
+ !ð
+™End
+;
+
+6923 ++
+	g™
+ )
+
+6924 
+£ùiÚEnded
+Ð*
+™
+ );
+
+6925 
+	gm_unfšishedSeùiÚs
+.
+þ—r
+();
+
+6928 
+Te¡RunInfo
+ 
+	gm_runInfo
+;
+
+6929 
+	gIMu�bËCÚ‹xt
+& 
+	gm_cÚ‹xt
+;
+
+6930 
+Te¡Ca£
+ cÚ¡* 
+	gm_aùiveTe¡Ca£
+;
+
+6931 
+IT¿ck”
+* 
+	gm_‹¡Ca£T¿ck”
+;
+
+6932 
+IT¿ck”
+* 
+	gm_cu¼’tSeùiÚT¿ck”
+;
+
+6933 
+As£¹iÚResuÉ
+ 
+	gm_Ï¡ResuÉ
+;
+
+6935 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+	gm_cÚfig
+;
+
+6936 
+TÙ®s
+ 
+	gm_tÙ®s
+;
+
+6937 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+	gm_»pÜ‹r
+;
+
+6938 
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+> 
+m_mes§ges
+;
+
+6939 
+As£¹iÚInfo
+ 
+	gm_Ï¡As£¹iÚInfo
+;
+
+6940 
+	g¡d
+::
+veùÜ
+<
+SeùiÚEndInfo
+> 
+m_unfšishedSeùiÚs
+;
+
+6941 
+	g¡d
+::
+veùÜ
+<
+IT¿ck”
+*> 
+m_aùiveSeùiÚs
+;
+
+6942 
+T¿ck”CÚ‹xt
+ 
+	gm_Œack”CÚ‹xt
+;
+
+6943 
+size_t
+ 
+	gm_´evPas£d
+;
+
+6944 
+boÞ
+ 
+	gm_shouldR•ÜtUÃx³ùed
+;
+
+6947 
+	gIResuÉC­tu»
+& 
+g‘ResuÉC­tu»
+() {
+
+6948 ifÐ
+IResuÉC­tu»
+* 
+	gÿ±u»
+ = 
+g‘Cu¼’tCÚ‹xt
+().
+g‘ResuÉC­tu»
+() )
+
+6949  *
+ÿ±u»
+;
+
+6951 
+throw
+ 
+	g¡d
+::
+logic_”rÜ
+( "No„esult capture instance" );
+
+6957 
+	#TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
+
+
+	)
+
+6959 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+6962 
+	sV”siÚ
+ {
+
+6963 
+V”siÚ
+Ð
+_majÜV”siÚ
+,
+
+6964 
+_mšÜV”siÚ
+,
+
+6965 
+_·tchNumb”
+,
+
+6966 cÚ¡ * cÚ¡ 
+_b¿nchName
+,
+
+6967 
+_buždNumb”
+ );
+
+6969 cÚ¡ 
+	gmajÜV”siÚ
+;
+
+6970 cÚ¡ 
+	gmšÜV”siÚ
+;
+
+6971 cÚ¡ 
+	g·tchNumb”
+;
+
+6974 cÚ¡ * cÚ¡ 
+	gb¿nchName
+;
+
+6975 cÚ¡ 
+	gbuždNumb”
+;
+
+6977 
+ä›nd
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+V”siÚ
+ cÚ¡& 
+	gv”siÚ
+ );
+
+6979 
+	g´iv©e
+:
+
+6980 
+Ý”©Ü
+=Ð
+V”siÚ
+ const& );
+
+6983 
+šlše
+ 
+V”siÚ
+ 
+lib¿ryV”siÚ
+();
+
+6986 
+	~<f¡»am
+>
+
+6987 
+	~<¡dlib.h
+>
+
+6988 
+	~<lim™s
+>
+
+6990 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+6992 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+ü—‹R•Ü‹r
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+»pÜ‹rName
+, 
+PŒ
+<
+CÚfig
+> cÚ¡& 
+cÚfig
+ ) {
+
+6993 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+	g»pÜ‹r
+ = 
+g‘Regi¡ryHub
+().
+g‘R•Ü‹rRegi¡ry
+().
+ü—‹
+Ð
+»pÜ‹rName
+, 
+cÚfig
+.
+g‘
+() );
+
+6994 ifÐ!
+	g»pÜ‹r
+ ) {
+
+6995 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+6996 
+	goss
+ << "NØ»pÜ‹¸»gi¡”ed w™h‚ame: '" << 
+	g»pÜ‹rName
+ << "'";
+
+6997 
+throw
+ 
+	g¡d
+::
+domaš_”rÜ
+Ð
+oss
+.
+¡r
+() );
+
+6999  
+	g»pÜ‹r
+;
+
+7002 #ià!
+defšed
+(
+CATCH_CONFIG_DEFAULT_REPORTER
+)
+
+7003 
+	#CATCH_CONFIG_DEFAULT_REPORTER
+ "cÚsÞe"
+
+	)
+
+7006 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+makeR•Ü‹r
+Ð
+PŒ
+<
+CÚfig
+> cÚ¡& 
+cÚfig
+ ) {
+
+7007 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+»pÜ‹rs
+ = 
+cÚfig
+->
+g‘R•Ü‹rNames
+();
+
+7008 ifÐ
+	g»pÜ‹rs
+.
+em±y
+() )
+
+7009 
+	g»pÜ‹rs
+.
+push_back
+Ð
+CATCH_CONFIG_DEFAULT_REPORTER
+ );
+
+7011 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+	g»pÜ‹r
+;
+
+7012  
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ =„•Ü‹rs.
+’d
+();
+
+7013 
+	g™
+ !ð
+™End
+;
+
+7014 ++
+	g™
+ )
+
+7015 
+	g»pÜ‹r
+ = 
+addR•Ü‹r
+Ð
+»pÜ‹r
+, 
+ü—‹R•Ü‹r
+Ð*
+™
+, 
+cÚfig
+ ) );
+
+7016  
+	g»pÜ‹r
+;
+
+7018 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+addLi¡’”s
+Ð
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+cÚfig
+, PŒ<
+ISŒ—mšgR•Ü‹r
+> 
+»pÜ‹rs
+ ) {
+
+7019 
+	gIR•Ü‹rRegi¡ry
+::
+Li¡’”s
+ 
+li¡’”s
+ = 
+g‘Regi¡ryHub
+().
+g‘R•Ü‹rRegi¡ry
+().
+g‘Li¡’”s
+();
+
+7020  
+	gIR•Ü‹rRegi¡ry
+::
+Li¡’”s
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+li¡’”s
+.
+begš
+(), 
+	g™End
+ =†i¡’”s.
+’d
+();
+
+7021 
+	g™
+ !ð
+™End
+;
+
+7022 ++
+	g™
+ )
+
+7023 
+	g»pÜ‹rs
+ = 
+addR•Ü‹r
+(
+»pÜ‹rs
+, (*
+™
+)->
+ü—‹
+Ð
+R•Ü‹rCÚfig
+Ð
+cÚfig
+ ) ) );
+
+7024  
+	g»pÜ‹rs
+;
+
+7027 
+TÙ®s
+ 
+runTe¡s
+Ð
+PŒ
+<
+CÚfig
+> cÚ¡& 
+cÚfig
+ ) {
+
+7029 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+	gicÚfig
+ = 
+cÚfig
+.
+g‘
+();
+
+7031 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+	g»pÜ‹r
+ = 
+makeR•Ü‹r
+Ð
+cÚfig
+ );
+
+7032 
+	g»pÜ‹r
+ = 
+addLi¡’”s
+Ð
+icÚfig
+, 
+»pÜ‹r
+ );
+
+7034 
+RunCÚ‹xt
+ 
+cÚ‹xt
+Ð
+icÚfig
+, 
+»pÜ‹r
+ );
+
+7036 
+TÙ®s
+ 
+	gtÙ®s
+;
+
+7038 
+	gcÚ‹xt
+.
+‹¡GroupS�¹šg
+Ð
+cÚfig
+->
+Çme
+(), 1, 1 );
+
+7040 
+Te¡S³c
+ 
+	g‹¡S³c
+ = 
+cÚfig
+->
+‹¡S³c
+();
+
+7041 ifÐ!
+	g‹¡S³c
+.
+hasFž‹rs
+() )
+
+7042 
+	g‹¡S³c
+ = 
+Te¡S³cP¬£r
+Ð
+ITagAlŸsRegi¡ry
+::
+g‘
+(è).
+·r£
+Ð"~[.]" ).
+‹¡S³c
+();
+
+7044 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+®lTe¡Ca£s
+ = 
+g‘AÎTe¡Ca£sSÜ‹d
+Ð*
+icÚfig
+ );
+
+7045  
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+®lTe¡Ca£s
+.
+begš
+(), 
+	g™End
+ =‡ÎTe¡Ca£s.
+’d
+();
+
+7046 
+	g™
+ !ð
+™End
+;
+
+7047 ++
+	g™
+ ) {
+
+7048 ifÐ!
+	gcÚ‹xt
+.
+abÜtšg
+(è&& 
+m©chTe¡
+Ð*
+™
+, 
+‹¡S³c
+, *
+icÚfig
+ ) )
+
+7049 
+	gtÙ®s
+ +ð
+cÚ‹xt
+.
+runTe¡
+Ð*
+™
+ );
+
+7051 
+	g»pÜ‹r
+->
+sk�Te¡
+Ð*
+™
+ );
+
+7054 
+	gcÚ‹xt
+.
+‹¡GroupEnded
+Ð
+icÚfig
+->
+Çme
+(), 
+tÙ®s
+, 1, 1 );
+
+7055  
+	gtÙ®s
+;
+
+7058 
+­¶yFž’amesAsTags
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+7059 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+‹¡s
+ = 
+g‘AÎTe¡Ca£sSÜ‹d
+Ð
+cÚfig
+ );
+
+7060 
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	g‹¡s
+.
+size
+(); ++i ) {
+
+7061 
+	gTe¡Ca£
+& 
+	g‹¡
+ = 
+cÚ¡_ÿ¡
+<
+Te¡Ca£
+&>Ð
+‹¡s
+[
+i
+] );
+
+7062 
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+> 
+�gs
+ = 
+‹¡
+.tags;
+
+7064 
+	g¡d
+::
+¡ršg
+ 
+fž’ame
+ = 
+‹¡
+.
+lšeInfo
+.
+fže
+;
+
+7065 
+	g¡d
+::
+¡ršg
+::
+size_ty³
+ 
+Ï¡SÏsh
+ = 
+fž’ame
+.
+fšd_Ï¡_of
+( "\\/" );
+
+7066 ifÐ
+	gÏ¡SÏsh
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ )
+
+7067 
+fž’ame
+ = fž’ame.
+sub¡r
+Ð
+Ï¡SÏsh
++1 );
+
+7069 
+	g¡d
+::
+¡ršg
+::
+size_ty³
+ 
+Ï¡DÙ
+ = 
+fž’ame
+.
+fšd_Ï¡_of
+( '.' );
+
+7070 ifÐ
+	gÏ¡DÙ
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ )
+
+7071 
+fž’ame
+ = fž’ame.
+sub¡r
+Ð0, 
+Ï¡DÙ
+ );
+
+7073 
+	g�gs
+.
+š£¹
+Ð'#' + 
+fž’ame
+ );
+
+7074 
+£tTags
+Ð
+‹¡
+, 
+�gs
+ );
+
+7078 þas 
+	cSessiÚ
+ : 
+NÚCÝyabË
+ {
+
+7079 
+boÞ
+ 
+®»adyIn¡ªtŸ‹d
+;
+
+7081 
+	gpublic
+:
+
+7083 
+	sOnUnu£dO±iÚs
+ { 
+	eDoWh©
+ { 
+IgnÜe
+, 
+	gFaž
+ }; };
+
+7085 
+SessiÚ
+()
+
+7086 : 
+m_þi
+Ð
+makeCommªdLšeP¬£r
+() ) {
+
+7087 ifÐ
+®»adyIn¡ªtŸ‹d
+ ) {
+
+7088 
+¡d
+::
+¡ršg
+ 
+msg
+ = "Only one instance of Catch::Session canƒver be used";
+
+7089 
+	gC©ch
+::
+û¼
+(è<< 
+msg
+ << 
+¡d
+::
+’dl
+;
+
+7090 
+throw
+ 
+	g¡d
+::
+logic_”rÜ
+Ð
+msg
+ );
+
+7092 
+	g®»adyIn¡ªtŸ‹d
+ = 
+Œue
+;
+
+7094 ~
+SessiÚ
+() {
+
+7095 
+	gC©ch
+::
+þ—nUp
+();
+
+7098 
+showH–p
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+´oûssName
+ ) {
+
+7099 
+C©ch
+::
+cout
+(è<< "\nC©ch v" << 
+lib¿ryV”siÚ
+() << "\n";
+
+7101 
+	gm_þi
+.
+u§ge
+Ð
+C©ch
+::
+cout
+(), 
+´oûssName
+ );
+
+7102 
+	gC©ch
+::
+cout
+(è<< "FÜ mÜ�d‘až u§g�¶—£ s“�h�´ojeù docs\n" << 
+¡d
+::
+’dl
+;
+
+7105 
+­¶yCommªdLše
+Ð
+¬gc
+, cÚ¡* cÚ¡* cÚ¡ 
+¬gv
+, 
+OnUnu£dO±iÚs
+::
+DoWh©
+ 
+unu£dO±iÚBehaviour
+ = OnUnu£dO±iÚs::
+Faž
+ ) {
+
+7106 
+Œy
+ {
+
+7107 
+m_þi
+.
+£tThrowOnUÄecogni£dTok’s
+Ð
+unu£dO±iÚBehaviour
+ =ð
+OnUnu£dO±iÚs
+::
+Faž
+ );
+
+7108 
+	gm_unu£dTok’s
+ = 
+m_þi
+.
+·r£IÁo
+Ð
+CÏ¿
+::
+¬gsToVeùÜ
+Ð
+¬gc
+, 
+¬gv
+ ), 
+m_cÚfigD©a
+ );
+
+7109 ifÐ
+	gm_cÚfigD©a
+.
+	gshowH–p
+ )
+
+7110 
+showH–p
+Ð
+m_cÚfigD©a
+.
+´oûssName
+ );
+
+7111 
+	gm_cÚfig
+.
+»£t
+();
+
+7113 
+ÿtch
+Ð
+¡d
+::
+exû±iÚ
+& 
+ex
+ ) {
+
+7115 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+Red
+ );
+
+7116 
+	gC©ch
+::
+û¼
+()
+
+7118 << 
+Text
+Ð
+ex
+.
+wh©
+(), 
+TextA‰ribu‹s
+().
+£tInd’t
+(2) )
+
+7121 
+	gm_þi
+.
+u§ge
+Ð
+C©ch
+::
+cout
+(), 
+m_cÚfigD©a
+.
+´oûssName
+ );
+
+7122  (
+	g¡d
+::
+num”ic_lim™s
+<>::
+max
+)();
+
+7127 
+u£CÚfigD©a
+Ð
+CÚfigD©a
+ cÚ¡& 
+_cÚfigD©a
+ ) {
+
+7128 
+	gm_cÚfigD©a
+ = 
+_cÚfigD©a
+;
+
+7129 
+	gm_cÚfig
+.
+»£t
+();
+
+7132 
+run
+Ð
+¬gc
+, cÚ¡* cÚ¡* cÚ¡ 
+¬gv
+ ) {
+
+7134 
+	g»tuºCode
+ = 
+­¶yCommªdLše
+Ð
+¬gc
+, 
+¬gv
+ );
+
+7135 ifÐ
+	g»tuºCode
+ == 0 )
+
+7136 
+»tuºCode
+ = 
+run
+();
+
+7137  
+	g»tuºCode
+;
+
+7140 #ià
+defšed
+(
+WIN32
+è&& defšed(
+UNICODE
+)
+
+7141 
+run
+Ð
+¬gc
+, 
+wch¬_t
+ cÚ¡* cÚ¡* cÚ¡ 
+¬gv
+ ) {
+
+7143 **
+	gutf8Argv
+ = 
+Ãw
+ *[ 
+¬gc
+ ];
+
+7145  
+	gi
+ = 0; i < 
+	g¬gc
+; ++i ) {
+
+7146 
+	gbufSize
+ = 
+WideCh¬ToMuÉiBy‹
+Ð
+CP_UTF8
+, 0, 
+¬gv
+[
+i
+], -1, 
+NULL
+, 0, NULL, NULL );
+
+7148 
+	gutf8Argv
+[ 
+i
+ ] = 
+Ãw
+ [ 
+bufSize
+ ];
+
+7150 
+WideCh¬ToMuÉiBy‹
+Ð
+CP_UTF8
+, 0, 
+¬gv
+[
+i
+], -1, 
+utf8Argv
+[i], 
+bufSize
+, 
+NULL
+, NULL );
+
+7153 
+	g»tuºCode
+ = 
+­¶yCommªdLše
+Ð
+¬gc
+, 
+utf8Argv
+ );
+
+7154 ifÐ
+	g»tuºCode
+ == 0 )
+
+7155 
+»tuºCode
+ = 
+run
+();
+
+7157  
+	gi
+ = 0; i < 
+	g¬gc
+; ++i )
+
+7158 
+	gd–‘e
+ [] 
+	gutf8Argv
+[ 
+i
+ ];
+
+7160 
+	gd–‘e
+ [] 
+	gutf8Argv
+;
+
+7162  
+	g»tuºCode
+;
+
+7166 
+run
+() {
+
+7167 ifÐ
+	gm_cÚfigD©a
+.
+	gshowH–p
+ )
+
+7170 
+	gŒy
+
+
+7172 
+cÚfig
+();
+
+7174 
+£edRng
+Ð*
+m_cÚfig
+ );
+
+7176 ifÐ
+	gm_cÚfigD©a
+.
+	gfž’amesAsTags
+ )
+
+7177 
+­¶yFž’amesAsTags
+Ð*
+m_cÚfig
+ );
+
+7180 ifÐ
+	gO±iÚ
+<
+	g¡d
+::
+size_t
+> 
+li¡ed
+ = 
+li¡
+Ð
+cÚfig
+() ) )
+
+7181  
+¡©ic_ÿ¡
+<>Ð*
+li¡ed
+ );
+
+7183  
+	g¡©ic_ÿ¡
+<>Ð
+runTe¡s
+Ð
+m_cÚfig
+ ).
+	gas£¹iÚs
+.
+	gçžed
+ );
+
+7185 
+ÿtch
+Ð
+¡d
+::
+exû±iÚ
+& 
+ex
+ ) {
+
+7186 
+C©ch
+::
+û¼
+(è<< 
+ex
+.
+wh©
+(è<< 
+¡d
+::
+’dl
+;
+
+7187  (
+	g¡d
+::
+num”ic_lim™s
+<>::
+max
+)();
+
+7191 
+	gCÏ¿
+::
+CommªdLše
+<
+CÚfigD©a
+> cÚ¡& 
+þi
+() const {
+
+7192  
+m_þi
+;
+
+7194 
+	g¡d
+::
+veùÜ
+<
+CÏ¿
+::
+P¬£r
+::
+Tok’
+> cÚ¡& 
+unu£dTok’s
+() const {
+
+7195  
+m_unu£dTok’s
+;
+
+7197 
+	gCÚfigD©a
+& 
+cÚfigD©a
+() {
+
+7198  
+	gm_cÚfigD©a
+;
+
+7200 
+	gCÚfig
+& 
+cÚfig
+() {
+
+7201 ifÐ!
+	gm_cÚfig
+ )
+
+7202 
+	gm_cÚfig
+ = 
+Ãw
+ 
+CÚfig
+Ð
+m_cÚfigD©a
+ );
+
+7203  *
+	gm_cÚfig
+;
+
+7205 
+	g´iv©e
+:
+
+7206 
+CÏ¿
+::
+CommªdLše
+<
+CÚfigD©a
+> 
+m_þi
+;
+
+7207 
+	g¡d
+::
+veùÜ
+<
+CÏ¿
+::
+P¬£r
+::
+Tok’
+> 
+m_unu£dTok’s
+;
+
+7208 
+CÚfigD©a
+ 
+	gm_cÚfigD©a
+;
+
+7209 
+	gPŒ
+<
+	gCÚfig
+> 
+	gm_cÚfig
+;
+
+7212 
+boÞ
+ 
+	gSessiÚ
+::
+®»adyIn¡ªtŸ‹d
+ = 
+çl£
+;
+
+7217 
+	#TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
+
+
+	)
+
+7220 
+	#TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
+
+
+	)
+
+7222 
+	~<veùÜ
+>
+
+7223 
+	~<£t
+>
+
+7224 
+	~<s¡»am
+>
+
+7225 
+	~<®gÜ™hm
+>
+
+7227 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7229 
+	sRªdomNumb”G’”©Ü
+ {
+
+7230 
+	g¡d
+::
+	t±rdiff_t
+ 
+	t»suÉ_ty³
+;
+
+7232 
+»suÉ_ty³
+ 
+Ý”©Ü
+()Ð»suÉ_ty³ 
+	gn
+ ) cÚ¡ {  
+	g¡d
+::
+¿nd
+(è% 
+n
+; }
+
+7234 #ifdeà
+CATCH_CONFIG_CPP11_SHUFFLE
+
+
+7235 
+cÚ¡ex´
+ 
+»suÉ_ty³
+ 
+mš
+() {  0; }
+
+7236 
+cÚ¡ex´
+ 
+»suÉ_ty³
+ 
+max
+() {  1000000; }
+
+7237 
+»suÉ_ty³
+ 
+Ý”©Ü
+()(ècÚ¡ {  
+	g¡d
+::
+¿nd
+(è% 
+max
+(); }
+
+7239 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gV
+>
+
+7240 
+shufæe
+Ð
+V
+& 
+veùÜ
+ ) {
+
+7241 
+RªdomNumb”G’”©Ü
+ 
+	gºg
+;
+
+7242 #ifdeà
+CATCH_CONFIG_CPP11_SHUFFLE
+
+
+7243 
+	g¡d
+::
+shufæe
+Ð
+veùÜ
+.
+begš
+(), veùÜ.
+’d
+(), 
+ºg
+ );
+
+7245 
+	g¡d
+::
+¿ndom_shufæe
+Ð
+veùÜ
+.
+begš
+(), veùÜ.
+’d
+(), 
+ºg
+ );
+
+7250 
+šlše
+ 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+sÜtTe¡s
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+, 
+¡d
+::veùÜ<Te¡Ca£> cÚ¡& 
+unsÜ‹dTe¡Ca£s
+ ) {
+
+7252 
+¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+sÜ‹d
+ = 
+unsÜ‹dTe¡Ca£s
+;
+
+7254  
+	gcÚfig
+.
+runOrd”
+() ) {
+
+7255 
+	gRunTe¡s
+::
+InLexicog¿phiÿlOrd”
+:
+
+7256 
+¡d
+::
+sÜt
+Ð
+sÜ‹d
+.
+begš
+(), sÜ‹d.
+’d
+() );
+
+7258 
+	gRunTe¡s
+::
+InRªdomOrd”
+:
+
+7260 
+£edRng
+Ð
+cÚfig
+ );
+
+7261 
+	gRªdomNumb”G’”©Ü
+::
+shufæe
+Ð
+sÜ‹d
+ );
+
+7264 
+	gRunTe¡s
+::
+InDeþ¬©iÚOrd”
+:
+
+7268  
+	gsÜ‹d
+;
+
+7270 
+boÞ
+ 
+m©chTe¡
+Ð
+Te¡Ca£
+ cÚ¡& 
+‹¡Ca£
+, 
+Te¡S³c
+ cÚ¡& 
+‹¡S³c
+, 
+ICÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+7271  
+	g‹¡S³c
+.
+m©ches
+Ð
+‹¡Ca£
+ ) && ( 
+	gcÚfig
+.
+®lowThrows
+(è|| !
+	g‹¡Ca£
+.
+throws
+() );
+
+7274 
+’fÜûNoDu¶iÿ‹Te¡Ca£s
+Ð
+¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+funùiÚs
+ ) {
+
+7275 
+¡d
+::
+£t
+<
+Te¡Ca£
+> 
+£’FunùiÚs
+;
+
+7276  
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+funùiÚs
+.
+begš
+(), 
+	g™End
+ = funùiÚs.
+’d
+();
+
+7277 
+	g™
+ !ð
+™End
+;
+
+7278 ++
+	g™
+ ) {
+
+7279 
+	g¡d
+::
+·œ
+<
+¡d
+::
+£t
+<
+Te¡Ca£
+>::
+cÚ¡_™”©Ü
+, 
+	gboÞ
+> 
+	g´ev
+ = 
+£’FunùiÚs
+.
+š£¹
+Ð*
+™
+ );
+
+7280 ifÐ!
+	g´ev
+.
+	g£cÚd
+ ) {
+
+7281 
+	g¡d
+::
+o¡ršg¡»am
+ 
+ss
+;
+
+7283 
+	gss
+ << 
+CÞour
+ÐCÞour::
+Red
+ )
+
+7284 << "”rÜ: TEST_CASEÐ\"" << 
+™
+->
+Çme
+ << "\" )‡lready defined.\n"
+
+7285 << "\tFœ¡ s“À© " << 
+´ev
+.
+fœ¡
+->
+g‘Te¡Ca£Info
+().
+lšeInfo
+ << '\n'
+
+7286 << "\tRedefšed‡ˆ" << 
+™
+->
+g‘Te¡Ca£Info
+().
+lšeInfo
+ << 
+¡d
+::
+’dl
+;
+
+7288 
+throw
+ 
+	g¡d
+::
+ruÁime_”rÜ
+(
+ss
+.
+¡r
+());
+
+7293 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+fž‹rTe¡s
+Ð
+¡d
+::veùÜ<Te¡Ca£> cÚ¡& 
+‹¡Ca£s
+, 
+Te¡S³c
+ cÚ¡& 
+‹¡S³c
+, 
+ICÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+7294 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+fž‹»d
+;
+
+7295 
+	gfž‹»d
+.
+»£rve
+Ð
+‹¡Ca£s
+.
+size
+() );
+
+7296  
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+‹¡Ca£s
+.
+begš
+(), 
+	g™End
+ =�e¡Ca£s.
+’d
+();
+
+7297 
+	g™
+ !ð
+™End
+;
+
+7298 ++
+	g™
+ )
+
+7299 ifÐ
+m©chTe¡
+Ð*
+™
+, 
+‹¡S³c
+, 
+cÚfig
+ ) )
+
+7300 
+	gfž‹»d
+.
+push_back
+Ð*
+™
+ );
+
+7301  
+	gfž‹»d
+;
+
+7303 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+g‘AÎTe¡Ca£sSÜ‹d
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+7304  
+g‘Regi¡ryHub
+().
+g‘Te¡Ca£Regi¡ry
+().
+g‘AÎTe¡sSÜ‹d
+Ð
+cÚfig
+ );
+
+7307 þas 
+	cTe¡Regi¡ry
+ : 
+public
+ 
+ITe¡Ca£Regi¡ry
+ {
+
+7308 
+public
+:
+
+7309 
+Te¡Regi¡ry
+()
+
+7310 : 
+m_cu¼’tSÜtOrd”
+Ð
+RunTe¡s
+::
+InDeþ¬©iÚOrd”
+ ),
+
+7311 
+m_uÂamedCouÁ
+( 0 )
+
+7313 
+	gvœtu®
+ ~
+Te¡Regi¡ry
+();
+
+7315 
+vœtu®
+ 
+»gi¡”Te¡
+Ð
+Te¡Ca£
+ cÚ¡& 
+‹¡Ca£
+ ) {
+
+7316 
+	g¡d
+::
+¡ršg
+ 
+Çme
+ = 
+‹¡Ca£
+.
+g‘Te¡Ca£Info
+().name;
+
+7317 ifÐ
+	gÇme
+.
+em±y
+() ) {
+
+7318 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+7319 
+	goss
+ << "AnÚymou ‹¡ ca£ " << ++
+	gm_uÂamedCouÁ
+;
+
+7320  
+»gi¡”Te¡
+Ð
+‹¡Ca£
+.
+w™hName
+Ð
+oss
+.
+¡r
+() ) );
+
+7322 
+	gm_funùiÚs
+.
+push_back
+Ð
+‹¡Ca£
+ );
+
+7325 
+vœtu®
+ 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+g‘AÎTe¡s
+() const {
+
+7326  
+m_funùiÚs
+;
+
+7328 
+vœtu®
+ 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> cÚ¡& 
+g‘AÎTe¡sSÜ‹d
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+ ) const {
+
+7329 ifÐ
+m_sÜ‹dFunùiÚs
+.
+em±y
+() )
+
+7330 
+’fÜûNoDu¶iÿ‹Te¡Ca£s
+Ð
+m_funùiÚs
+ );
+
+7332 ifÐ
+	gm_cu¼’tSÜtOrd”
+ !ð
+cÚfig
+.
+runOrd”
+(è|| 
+m_sÜ‹dFunùiÚs
+.
+em±y
+() ) {
+
+7333 
+m_sÜ‹dFunùiÚs
+ = 
+sÜtTe¡s
+Ð
+cÚfig
+, 
+m_funùiÚs
+ );
+
+7334 
+	gm_cu¼’tSÜtOrd”
+ = 
+cÚfig
+.
+runOrd”
+();
+
+7336  
+	gm_sÜ‹dFunùiÚs
+;
+
+7339 
+	g´iv©e
+:
+
+7340 
+¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+m_funùiÚs
+;
+
+7341 
+mu�bË
+ 
+	gRunTe¡s
+::
+InWh©Ord”
+ 
+m_cu¼’tSÜtOrd”
+;
+
+7342 
+mu�bË
+ 
+	g¡d
+::
+veùÜ
+<
+Te¡Ca£
+> 
+m_sÜ‹dFunùiÚs
+;
+
+7343 
+size_t
+ 
+	gm_uÂamedCouÁ
+;
+
+7344 
+	g¡d
+::
+ios_ba£
+::
+In™
+ 
+m_o¡»amIn™
+;
+
+7349 
+þass
+ 
+	gF»eFunùiÚTe¡Ca£
+ : 
+public
+ 
+Sh¬edIm¶
+<
+ITe¡Ca£
+> {
+
+7350 
+public
+:
+
+7352 
+F»eFunùiÚTe¡Ca£
+Ð
+Te¡FunùiÚ
+ 
+fun
+ ) : 
+m_fun
+( fun ) {}
+
+7354 
+vœtu®
+ 
+švoke
+() const {
+
+7355 
+m_fun
+();
+
+7358 
+	g´iv©e
+:
+
+7359 
+vœtu®
+ ~
+F»eFunùiÚTe¡Ca£
+();
+
+7361 
+Te¡FunùiÚ
+ 
+	gm_fun
+;
+
+7364 
+šlše
+ 
+	g¡d
+::
+¡ršg
+ 
+exŒaùCÏssName
+Ð
+¡d
+::¡ršg cÚ¡& 
+þassOrQu®if›dM‘hodName
+ ) {
+
+7365 
+¡d
+::
+¡ršg
+ 
+þassName
+ = 
+þassOrQu®if›dM‘hodName
+;
+
+7366 ifÐ
+¡¬tsW™h
+Ð
+þassName
+, '&' ) )
+
+7368 
+	g¡d
+::
+size_t
+ 
+Ï¡CÞÚs
+ = 
+þassName
+.
+rfšd
+( "::" );
+
+7369 
+	g¡d
+::
+size_t
+ 
+³nuÉim©eCÞÚs
+ = 
+þassName
+.
+rfšd
+Ð"::", 
+Ï¡CÞÚs
+-1 );
+
+7370 ifÐ
+	g³nuÉim©eCÞÚs
+ =ð
+¡d
+::
+¡ršg
+::
+Åos
+ )
+
+7371 
+³nuÉim©eCÞÚs
+ = 1;
+
+7372 
+	gþassName
+ = 
+þassName
+.
+sub¡r
+Ð
+³nuÉim©eCÞÚs
+, 
+Ï¡CÞÚs
+-penultimateColons );
+
+7374  
+	gþassName
+;
+
+7377 
+	g»gi¡”Te¡Ca£
+
+
+7378 Ð
+ITe¡Ca£
+* 
+	g‹¡Ca£
+,
+
+7379 cÚ¡* 
+	gþassOrQu®if›dM‘hodName
+,
+
+7380 
+NameAndDesc
+ cÚ¡& 
+	gÇmeAndDesc
+,
+
+7381 
+SourûLšeInfo
+ cÚ¡& 
+	glšeInfo
+ ) {
+
+7383 
+g‘Mu�bËRegi¡ryHub
+().
+	g»gi¡”Te¡
+
+
+7384 Ð
+	gmakeTe¡Ca£
+
+
+7385 Ð
+	g‹¡Ca£
+,
+
+7386 
+exŒaùCÏssName
+Ð
+þassOrQu®if›dM‘hodName
+ ),
+
+7387 
+	gÇmeAndDesc
+.
+	gÇme
+,
+
+7388 
+	gÇmeAndDesc
+.
+	gdesü�tiÚ
+,
+
+7389 
+	glšeInfo
+ ) );
+
+7391 
+	g»gi¡”Te¡Ca£FunùiÚ
+
+
+7392 Ð
+Te¡FunùiÚ
+ 
+	gfunùiÚ
+,
+
+7393 
+SourûLšeInfo
+ cÚ¡& 
+	glšeInfo
+,
+
+7394 
+NameAndDesc
+ cÚ¡& 
+	gÇmeAndDesc
+ ) {
+
+7395 
+»gi¡”Te¡Ca£
+Ð
+Ãw
+ 
+F»eFunùiÚTe¡Ca£
+Ð
+funùiÚ
+ ), "", 
+ÇmeAndDesc
+, 
+lšeInfo
+ );
+
+7400 
+	gAutoReg
+::
+AutoReg
+
+
+7401 Ð
+Te¡FunùiÚ
+ 
+funùiÚ
+,
+
+7402 
+SourûLšeInfo
+ cÚ¡& 
+	glšeInfo
+,
+
+7403 
+NameAndDesc
+ cÚ¡& 
+	gÇmeAndDesc
+ ) {
+
+7404 
+»gi¡”Te¡Ca£FunùiÚ
+Ð
+funùiÚ
+, 
+lšeInfo
+, 
+ÇmeAndDesc
+ );
+
+7407 
+	gAutoReg
+::~
+AutoReg
+() {}
+
+7412 
+	#TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
+
+
+	)
+
+7414 
+	~<m­
+>
+
+7416 
+Çme¥aû
+ 
+C©ch
+ {
+
+7418 þas 
+	cR•Ü‹rRegi¡ry
+ : 
+public
+ 
+IR•Ü‹rRegi¡ry
+ {
+
+7420 
+public
+:
+
+7422 
+vœtu®
+ ~
+R•Ü‹rRegi¡ry
+(è
+CATCH_OVERRIDE
+ {}
+
+7424 
+vœtu®
+ 
+ISŒ—mšgR•Ü‹r
+* 
+ü—‹
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+cÚfig
+ ) cÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+7425 
+	gFaùÜyM­
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_çùÜ›s
+.
+fšd
+Ð
+Çme
+ );
+
+7426 ifÐ
+	g™
+ =ð
+m_çùÜ›s
+.
+’d
+() )
+
+7427  
+CATCH_NULL
+;
+
+7428  
+	g™
+->
+	g£cÚd
+->
+ü—‹
+Ð
+R•Ü‹rCÚfig
+Ð
+cÚfig
+ ) );
+
+7431 
+»gi¡”R•Ü‹r
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+PŒ
+<
+IR•Ü‹rFaùÜy
+> cÚ¡& 
+çùÜy
+ ) {
+
+7432 
+	gm_çùÜ›s
+.
+š£¹
+Ð
+¡d
+::
+make_·œ
+Ð
+Çme
+, 
+çùÜy
+ ) );
+
+7434 
+»gi¡”Li¡’”
+Ð
+PŒ
+<
+IR•Ü‹rFaùÜy
+> cÚ¡& 
+çùÜy
+ ) {
+
+7435 
+	gm_li¡’”s
+.
+push_back
+Ð
+çùÜy
+ );
+
+7438 
+vœtu®
+ 
+FaùÜyM­
+ cÚ¡& 
+g‘FaùÜ›s
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+7439  
+	gm_çùÜ›s
+;
+
+7441 
+vœtu®
+ 
+Li¡’”s
+ cÚ¡& 
+g‘Li¡’”s
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+7442  
+	gm_li¡’”s
+;
+
+7445 
+	g´iv©e
+:
+
+7446 
+FaùÜyM­
+ 
+m_çùÜ›s
+;
+
+7447 
+Li¡’”s
+ 
+	gm_li¡’”s
+;
+
+7452 
+	#TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
+
+
+	)
+
+7454 #ifdeà
+__OBJC__
+
+
+7458 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7460 þas 
+	cExû±iÚT¿n¦©ÜRegi¡ry
+ : 
+public
+ 
+IExû±iÚT¿n¦©ÜRegi¡ry
+ {
+
+7461 
+public
+:
+
+7462 ~
+Exû±iÚT¿n¦©ÜRegi¡ry
+() {
+
+7463 
+d–‘eAÎ
+Ð
+m_Œª¦©Üs
+ );
+
+7466 
+vœtu®
+ 
+»gi¡”T¿n¦©Ü
+ÐcÚ¡ 
+IExû±iÚT¿n¦©Ü
+* 
+Œª¦©Ü
+ ) {
+
+7467 
+	gm_Œª¦©Üs
+.
+push_back
+Ð
+Œª¦©Ü
+ );
+
+7470 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+Œª¦©eAùiveExû±iÚ
+() const {
+
+7471 
+Œy
+ {
+
+7472 #ifdeà
+__OBJC__
+
+
+7474 @
+Œy
+ {
+
+7475  
+ŒyT¿n¦©Üs
+();
+
+7477 @
+ÿtch
+ (
+NSExû±iÚ
+ *
+exû±iÚ
+) {
+
+7478  
+	gC©ch
+::
+toSŒšg
+Ð[
+exû±iÚ
+ 
+desü�tiÚ
+] );
+
+7481  
+ŒyT¿n¦©Üs
+();
+
+7484 
+ÿtch
+Ð
+Te¡Fažu»Exû±iÚ
+& ) {
+
+7485 
+	gthrow
+;
+
+7487 
+ÿtch
+Ð
+¡d
+::
+exû±iÚ
+& 
+ex
+ ) {
+
+7488  
+ex
+.
+wh©
+();
+
+7490 
+ÿtch
+Ð
+¡d
+::
+¡ršg
+& 
+msg
+ ) {
+
+7491  
+msg
+;
+
+7493 
+ÿtch
+ÐcÚ¡ * 
+msg
+ ) {
+
+7494  
+	gmsg
+;
+
+7496 
+ÿtch
+(...) {
+
+7501 
+	g¡d
+::
+¡ršg
+ 
+ŒyT¿n¦©Üs
+() const {
+
+7502 ifÐ
+m_Œª¦©Üs
+.
+em±y
+() )
+
+7503 
+throw
+;
+
+7505  
+	gm_Œª¦©Üs
+[0]->
+Œª¦©e
+Ð
+m_Œª¦©Üs
+.
+begš
+()+1, m_Œª¦©Üs.
+’d
+() );
+
+7508 
+	g´iv©e
+:
+
+7509 
+¡d
+::
+veùÜ
+<cÚ¡ 
+IExû±iÚT¿n¦©Ü
+*> 
+m_Œª¦©Üs
+;
+
+7514 
+	#TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+
+	)
+
+7516 
+	~<m­
+>
+
+7518 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7520 þas 
+	cTagAlŸsRegi¡ry
+ : 
+public
+ 
+ITagAlŸsRegi¡ry
+ {
+
+7521 
+public
+:
+
+7522 
+vœtu®
+ ~
+TagAlŸsRegi¡ry
+();
+
+7523 
+vœtu®
+ 
+	gO±iÚ
+<
+	gTagAlŸs
+> 
+fšd
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+®Ÿs
+ ) const;
+
+7524 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+ex·ndAlŸ£s
+Ð
+¡d
+::¡ršg cÚ¡& 
+uÃx·ndedTe¡S³c
+ ) const;
+
+7525 
+add
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+®Ÿs
+, std::¡ršg cÚ¡& 
+�g
+, 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ );
+
+7527 
+	g´iv©e
+:
+
+7528 
+¡d
+::
+m­
+<¡d::
+¡ršg
+, 
+	gTagAlŸs
+> 
+	gm_»gi¡ry
+;
+
+7533 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7535 
+	gÇme¥aû
+ {
+
+7537 
+þass
+ 
+	gRegi¡ryHub
+ : 
+public
+ 
+IRegi¡ryHub
+,…ubliø
+	gIMu�bËRegi¡ryHub
+ {
+
+7539 
+Regi¡ryHub
+( RegistryHub const& );
+
+7540 
+	gÝ”©Ü
+=Ð
+Regi¡ryHub
+ const& );
+
+7542 
+	gpublic
+:
+
+7543 
+Regi¡ryHub
+() {
+
+7545 
+vœtu®
+ 
+IR•Ü‹rRegi¡ry
+ cÚ¡& 
+g‘R•Ü‹rRegi¡ry
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+7546  
+m_»pÜ‹rRegi¡ry
+;
+
+7548 
+vœtu®
+ 
+ITe¡Ca£Regi¡ry
+ cÚ¡& 
+g‘Te¡Ca£Regi¡ry
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+7549  
+	gm_‹¡Ca£Regi¡ry
+;
+
+7551 
+vœtu®
+ 
+	gIExû±iÚT¿n¦©ÜRegi¡ry
+& 
+g‘Exû±iÚT¿n¦©ÜRegi¡ry
+(è
+	gCATCH_OVERRIDE
+ {
+
+7552  
+	gm_exû±iÚT¿n¦©ÜRegi¡ry
+;
+
+7554 
+vœtu®
+ 
+ITagAlŸsRegi¡ry
+ cÚ¡& 
+g‘TagAlŸsRegi¡ry
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+7555  
+	gm_�gAlŸsRegi¡ry
+;
+
+7558 
+	gpublic
+:
+
+7559 
+vœtu®
+ 
+»gi¡”R•Ü‹r
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+PŒ
+<
+IR•Ü‹rFaùÜy
+> cÚ¡& 
+çùÜy
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+7560 
+	gm_»pÜ‹rRegi¡ry
+.
+»gi¡”R•Ü‹r
+Ð
+Çme
+, 
+çùÜy
+ );
+
+7562 
+vœtu®
+ 
+»gi¡”Li¡’”
+Ð
+PŒ
+<
+IR•Ü‹rFaùÜy
+> cÚ¡& 
+çùÜy
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+7563 
+	gm_»pÜ‹rRegi¡ry
+.
+»gi¡”Li¡’”
+Ð
+çùÜy
+ );
+
+7565 
+vœtu®
+ 
+»gi¡”Te¡
+Ð
+Te¡Ca£
+ cÚ¡& 
+‹¡Info
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+7566 
+	gm_‹¡Ca£Regi¡ry
+.
+»gi¡”Te¡
+Ð
+‹¡Info
+ );
+
+7568 
+vœtu®
+ 
+»gi¡”T¿n¦©Ü
+ÐcÚ¡ 
+IExû±iÚT¿n¦©Ü
+* 
+Œª¦©Ü
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+7569 
+	gm_exû±iÚT¿n¦©ÜRegi¡ry
+.
+»gi¡”T¿n¦©Ü
+Ð
+Œª¦©Ü
+ );
+
+7571 
+vœtu®
+ 
+»gi¡”TagAlŸs
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+®Ÿs
+, std::¡ršg cÚ¡& 
+�g
+, 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+7572 
+	gm_�gAlŸsRegi¡ry
+.
+add
+Ð
+®Ÿs
+, 
+�g
+, 
+lšeInfo
+ );
+
+7575 
+	g´iv©e
+:
+
+7576 
+Te¡Regi¡ry
+ 
+m_‹¡Ca£Regi¡ry
+;
+
+7577 
+R•Ü‹rRegi¡ry
+ 
+	gm_»pÜ‹rRegi¡ry
+;
+
+7578 
+Exû±iÚT¿n¦©ÜRegi¡ry
+ 
+	gm_exû±iÚT¿n¦©ÜRegi¡ry
+;
+
+7579 
+TagAlŸsRegi¡ry
+ 
+	gm_�gAlŸsRegi¡ry
+;
+
+7583 
+šlše
+ 
+	gRegi¡ryHub
+*& 
+g‘TheRegi¡ryHub
+() {
+
+7584 
+Regi¡ryHub
+* 
+	gtheRegi¡ryHub
+ = 
+CATCH_NULL
+;
+
+7585 ifÐ!
+	gtheRegi¡ryHub
+ )
+
+7586 
+	gtheRegi¡ryHub
+ = 
+Ãw
+ 
+Regi¡ryHub
+();
+
+7587  
+	gtheRegi¡ryHub
+;
+
+7591 
+	gIRegi¡ryHub
+& 
+g‘Regi¡ryHub
+() {
+
+7592  *
+g‘TheRegi¡ryHub
+();
+
+7594 
+	gIMu�bËRegi¡ryHub
+& 
+g‘Mu�bËRegi¡ryHub
+() {
+
+7595  *
+g‘TheRegi¡ryHub
+();
+
+7597 
+þ—nUp
+() {
+
+7598 
+d–‘e
+ 
+g‘TheRegi¡ryHub
+();
+
+7599 
+g‘TheRegi¡ryHub
+(èð
+CATCH_NULL
+;
+
+7600 
+þ—nUpCÚ‹xt
+();
+
+7602 
+	g¡d
+::
+¡ršg
+ 
+Œª¦©eAùiveExû±iÚ
+() {
+
+7603  
+g‘Regi¡ryHub
+().
+g‘Exû±iÚT¿n¦©ÜRegi¡ry
+().
+Œª¦©eAùiveExû±iÚ
+();
+
+7609 
+	#TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
+
+
+	)
+
+7611 
+	~<s¡»am
+>
+
+7613 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7615 
+	gNÙIm¶em’‹dExû±iÚ
+::
+NÙIm¶em’‹dExû±iÚ
+Ð
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ )
+
+7616 : 
+m_lšeInfo
+Ð
+lšeInfo
+ ) {
+
+7617 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+7618 
+	goss
+ << 
+	glšeInfo
+ << ": function ";
+
+7619 
+	goss
+ << "not implemented";
+
+7620 
+	gm_wh©
+ = 
+oss
+.
+¡r
+();
+
+7623 cÚ¡ * 
+	gNÙIm¶em’‹dExû±iÚ
+::
+wh©
+(ècÚ¡ 
+CATCH_NOEXCEPT
+ {
+
+7624  
+m_wh©
+.
+c_¡r
+();
+
+7630 
+	#TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
+
+
+	)
+
+7633 
+	#TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
+
+
+	)
+
+7635 
+	~<¡dexû±
+>
+
+7636 
+	~<c¡dio
+>
+
+7637 
+	~<io¡»am
+>
+
+7639 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7641 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gWr™”F
+, 
+size_t
+ 
+	gbufãrSize
+=256>
+
+7642 þas 
+	cSŒ—mBufIm¶
+ : 
+public
+ 
+SŒ—mBufBa£
+ {
+
+7643 
+d©a
+[
+bufãrSize
+];
+
+7644 
+Wr™”F
+ 
+	gm_wr™”
+;
+
+7646 
+	gpublic
+:
+
+7647 
+SŒ—mBufIm¶
+() {
+
+7648 
+£�
+Ð
+d©a
+, data + (data) );
+
+7651 ~
+SŒ—mBufIm¶
+(è
+	gCATCH_NOEXCEPT
+ {
+
+7652 
+sync
+();
+
+7655 
+	g´iv©e
+:
+
+7656 
+ov”æow
+Ð
+c
+ ) {
+
+7657 
+sync
+();
+
+7659 ifÐ
+	gc
+ !ð
+EOF
+ ) {
+
+7660 ifÐ
+pba£
+(è=ð
+•±r
+() )
+
+7661 
+m_wr™”
+Ð
+¡d
+::
+¡ršg
+Ð1, 
+¡©ic_ÿ¡
+<>Ð
+c
+ ) ) );
+
+7663 
+¥utc
+Ð
+¡©ic_ÿ¡
+<>Ð
+c
+ ) );
+
+7668 
+sync
+() {
+
+7669 ifÐ
+pba£
+(è!ð
+µŒ
+() ) {
+
+7670 
+m_wr™”
+Ð
+¡d
+::
+¡ršg
+Ð
+pba£
+(), 
+¡©ic_ÿ¡
+<¡d::¡ršg::
+size_ty³
+>Ð
+µŒ
+() -…base() ) ) );
+
+7671 
+£�
+Ð
+pba£
+(), 
+•±r
+() );
+
+7679 
+	gFžeSŒ—m
+::
+FžeSŒ—m
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+fž’ame
+ ) {
+
+7680 
+m_ofs
+.
+Ý’
+Ð
+fž’ame
+.
+c_¡r
+() );
+
+7681 ifÐ
+	gm_ofs
+.
+çž
+() ) {
+
+7682 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+7683 
+	goss
+ << "UÇbË�ØÝ’ fže: '" << 
+	gfž’ame
+ << '\'';
+
+7684 
+throw
+ 
+	g¡d
+::
+domaš_”rÜ
+Ð
+oss
+.
+¡r
+() );
+
+7688 
+	g¡d
+::
+o¡»am
+& 
+FžeSŒ—m
+::
+¡»am
+() const {
+
+7689  
+m_ofs
+;
+
+7692 
+	sOu�utDebugWr™”
+ {
+
+7694 
+Ý”©Ü
+()Ð
+	g¡d
+::
+¡ršg
+ cÚ¡&
+¡r
+ ) {
+
+7695 
+wr™eToDebugCÚsÞe
+Ð
+¡r
+ );
+
+7699 
+	gDebugOutSŒ—m
+::
+DebugOutSŒ—m
+()
+
+7700 : 
+m_¡»amBuf
+Ð
+Ãw
+ 
+SŒ—mBufIm¶
+<
+Ou�utDebugWr™”
+>() ),
+
+7701 
+m_os
+Ð
+m_¡»amBuf
+.
+g‘
+() )
+
+7704 
+	g¡d
+::
+o¡»am
+& 
+DebugOutSŒ—m
+::
+¡»am
+() const {
+
+7705  
+m_os
+;
+
+7710 
+	gCoutSŒ—m
+::
+CoutSŒ—m
+()
+
+7711 : 
+m_os
+Ð
+C©ch
+::
+cout
+().
+rdbuf
+() )
+
+7714 
+¡d
+::
+o¡»am
+& 
+CoutSŒ—m
+::
+¡»am
+() const {
+
+7715  
+m_os
+;
+
+7718 #iâdeà
+CATCH_CONFIG_NOSTDOUT
+
+
+7719 
+	g¡d
+::
+o¡»am
+& 
+cout
+() {
+
+7720  
+¡d
+::
+cout
+;
+
+7722 
+	g¡d
+::
+o¡»am
+& 
+û¼
+() {
+
+7723  
+¡d
+::
+û¼
+;
+
+7725 
+	g¡d
+::
+o¡»am
+& 
+þog
+() {
+
+7726  
+¡d
+::
+þog
+;
+
+7731 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7733 þas 
+	cCÚ‹xt
+ : 
+public
+ 
+IMu�bËCÚ‹xt
+ {
+
+7735 
+CÚ‹xt
+(è: 
+m_cÚfig
+Ð
+CATCH_NULL
+ ), 
+m_ruÂ”
+ÐCATCH_NULL ), 
+m_»suÉC­tu»
+( CATCH_NULL ) {}
+
+7736 
+CÚ‹xt
+( Context const& );
+
+7737 
+	gÝ”©Ü
+=Ð
+CÚ‹xt
+ const& );
+
+7739 
+	gpublic
+:
+
+7740 
+vœtu®
+ ~
+CÚ‹xt
+() {
+
+7741 
+d–‘eAÎV®ues
+Ð
+m_g’”©ÜsByTe¡Name
+ );
+
+7744 
+	gpublic
+:
+
+7745 
+vœtu®
+ 
+IResuÉC­tu»
+* 
+g‘ResuÉC­tu»
+() {
+
+7746  
+m_»suÉC­tu»
+;
+
+7748 
+vœtu®
+ 
+IRuÂ”
+* 
+g‘RuÂ”
+() {
+
+7749  
+	gm_ruÂ”
+;
+
+7751 
+vœtu®
+ 
+size_t
+ 
+g‘G’”©ÜIndex
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+fžeInfo
+, size_ˆ
+tÙ®Size
+ ) {
+
+7752  
+g‘G’”©ÜsFÜCu¼’tTe¡
+()
+
+7753 .
+g‘G’”©ÜInfo
+Ð
+fžeInfo
+, 
+tÙ®Size
+ )
+
+7754 .
+g‘Cu¼’tIndex
+();
+
+7756 
+vœtu®
+ 
+boÞ
+ 
+advªûG’”©ÜsFÜCu¼’tTe¡
+() {
+
+7757 
+IG’”©ÜsFÜTe¡
+* 
+	gg’”©Üs
+ = 
+fšdG’”©ÜsFÜCu¼’tTe¡
+();
+
+7758  
+	gg’”©Üs
+ && g’”©Üs->
+moveNext
+();
+
+7761 
+vœtu®
+ 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+g‘CÚfig
+() const {
+
+7762  
+	gm_cÚfig
+;
+
+7765 
+	gpublic
+:
+
+7766 
+vœtu®
+ 
+£tResuÉC­tu»
+Ð
+IResuÉC­tu»
+* 
+»suÉC­tu»
+ ) {
+
+7767 
+m_»suÉC­tu»
+ = 
+»suÉC­tu»
+;
+
+7769 
+vœtu®
+ 
+£tRuÂ”
+Ð
+IRuÂ”
+* 
+ruÂ”
+ ) {
+
+7770 
+	gm_ruÂ”
+ = 
+ruÂ”
+;
+
+7772 
+vœtu®
+ 
+£tCÚfig
+Ð
+PŒ
+<
+ICÚfig
+ cÚ¡> cÚ¡& 
+cÚfig
+ ) {
+
+7773 
+	gm_cÚfig
+ = 
+cÚfig
+;
+
+7776 
+ä›nd
+ 
+	gIMu�bËCÚ‹xt
+& 
+g‘Cu¼’tMu�bËCÚ‹xt
+();
+
+7778 
+	g´iv©e
+:
+
+7779 
+IG’”©ÜsFÜTe¡
+* 
+fšdG’”©ÜsFÜCu¼’tTe¡
+() {
+
+7780 
+¡d
+::
+¡ršg
+ 
+‹¡Name
+ = 
+g‘ResuÉC­tu»
+()->
+g‘Cu¼’tTe¡Name
+();
+
+7782 
+	g¡d
+::
+m­
+<
+¡d
+::
+¡ršg
+, 
+	gIG’”©ÜsFÜTe¡
+*>::
+cÚ¡_™”©Ü
+ 
+™
+ =
+
+7783 
+m_g’”©ÜsByTe¡Name
+.
+fšd
+Ð
+‹¡Name
+ );
+
+7784  
+	g™
+ !ð
+m_g’”©ÜsByTe¡Name
+.
+’d
+()
+
+7785 ? 
+™
+->
+£cÚd
+
+
+7786 : 
+CATCH_NULL
+;
+
+7789 
+	gIG’”©ÜsFÜTe¡
+& 
+g‘G’”©ÜsFÜCu¼’tTe¡
+() {
+
+7790 
+IG’”©ÜsFÜTe¡
+* 
+	gg’”©Üs
+ = 
+fšdG’”©ÜsFÜCu¼’tTe¡
+();
+
+7791 ifÐ!
+	gg’”©Üs
+ ) {
+
+7792 
+	g¡d
+::
+¡ršg
+ 
+‹¡Name
+ = 
+g‘ResuÉC­tu»
+()->
+g‘Cu¼’tTe¡Name
+();
+
+7793 
+	gg’”©Üs
+ = 
+ü—‹G’”©ÜsFÜTe¡
+();
+
+7794 
+	gm_g’”©ÜsByTe¡Name
+.
+š£¹
+Ð
+¡d
+::
+make_·œ
+Ð
+‹¡Name
+, 
+g’”©Üs
+ ) );
+
+7796  *
+	gg’”©Üs
+;
+
+7799 
+	g´iv©e
+:
+
+7800 
+PŒ
+<
+ICÚfig
+ cÚ¡> 
+m_cÚfig
+;
+
+7801 
+IRuÂ”
+* 
+	gm_ruÂ”
+;
+
+7802 
+IResuÉC­tu»
+* 
+	gm_»suÉC­tu»
+;
+
+7803 
+	g¡d
+::
+m­
+<
+¡d
+::
+¡ršg
+, 
+	gIG’”©ÜsFÜTe¡
+*> 
+	gm_g’”©ÜsByTe¡Name
+;
+
+7806 
+	gÇme¥aû
+ {
+
+7807 
+CÚ‹xt
+* 
+	gcu¼’tCÚ‹xt
+ = 
+CATCH_NULL
+;
+
+7809 
+	gIMu�bËCÚ‹xt
+& 
+g‘Cu¼’tMu�bËCÚ‹xt
+() {
+
+7810 ifÐ!
+	gcu¼’tCÚ‹xt
+ )
+
+7811 
+	gcu¼’tCÚ‹xt
+ = 
+Ãw
+ 
+CÚ‹xt
+();
+
+7812  *
+	gcu¼’tCÚ‹xt
+;
+
+7814 
+	gICÚ‹xt
+& 
+g‘Cu¼’tCÚ‹xt
+() {
+
+7815  
+g‘Cu¼’tMu�bËCÚ‹xt
+();
+
+7818 
+þ—nUpCÚ‹xt
+() {
+
+7819 
+d–‘e
+ 
+	gcu¼’tCÚ‹xt
+;
+
+7820 
+	gcu¼’tCÚ‹xt
+ = 
+CATCH_NULL
+;
+
+7825 
+	#TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
+
+
+	)
+
+7828 
+	#TWOBLUECUBES_CATCH_ERRNO_GUARD_HPP_INCLUDED
+
+
+	)
+
+7830 
+	~<û¼no
+>
+
+7832 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7834 þas 
+	cE¼noGu¬d
+ {
+
+7835 
+	gpublic
+:
+
+7836 
+E¼noGu¬d
+():
+m_ÞdE¼no
+(
+”ºo
+){}
+
+7837 ~
+E¼noGu¬d
+(è{ 
+”ºo
+ = 
+m_ÞdE¼no
+; }
+
+7838 
+	g´iv©e
+:
+
+7839 
+m_ÞdE¼no
+;
+
+7844 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+7845 
+	gÇme¥aû
+ {
+
+7847 
+	sICÞourIm¶
+ {
+
+7848 
+	gvœtu®
+ ~
+ICÞourIm¶
+() {}
+
+7849 
+vœtu®
+ 
+u£
+Ð
+CÞour
+::
+Code
+ 
+_cÞourCode
+ ) = 0;
+
+7852 
+	gNoCÞourIm¶
+ : 
+ICÞourIm¶
+ {
+
+7853 
+u£
+Ð
+CÞour
+::
+Code
+ ) {}
+
+7855 
+ICÞourIm¶
+* 
+š¡ªû
+() {
+
+7856 
+NoCÞourIm¶
+ 
+s_š¡ªû
+;
+
+7857  &
+	gs_š¡ªû
+;
+
+7864 #ià!
+defšed
+Ð
+CATCH_CONFIG_COLOUR_NONE
+ ) && !defšedÐ
+CATCH_CONFIG_COLOUR_WINDOWS
+ ) && !
+	$defšed
+Ð
+CATCH_CONFIG_COLOUR_ANSI
+ )
+
+7865 #ifdeà
+CATCH_PLATFORM_WINDOWS
+
+
+7866 
+	#CATCH_CONFIG_COLOUR_WINDOWS
+
+
+	)
+
+7868 
+	#CATCH_CONFIG_COLOUR_ANSI
+
+
+	)
+
+7872 #ià
+	$defšed
+ ( 
+CATCH_CONFIG_COLOUR_WINDOWS
+ )
+
+7874 
+Çme¥aû
+ 
+C©ch
+ {
+
+7875 
+Çme¥aû
+ {
+
+7877 þas 
+	cWš32CÞourIm¶
+ : 
+public
+ 
+ICÞourIm¶
+ {
+
+7878 
+public
+:
+
+7879 
+	`Wš32CÞourIm¶
+(è: 
+	`¡doutHªdË
+Ð
+	`G‘StdHªdË
+(
+STD_OUTPUT_HANDLE
+) )
+
+7881 
+CONSOLE_SCREEN_BUFFER_INFO
+ 
+csbiInfo
+;
+
+7882 
+	`G‘CÚsÞeSü“nBufãrInfo
+Ð
+¡doutHªdË
+, &
+csbiInfo
+ );
+
+7883 
+Üigš®FÜegroundA‰ribu‹s
+ = 
+csbiInfo
+.
+wA‰ribu‹s
+ & ~Ð
+BACKGROUND_GREEN
+ | 
+BACKGROUND_RED
+ | 
+BACKGROUND_BLUE
+ | 
+BACKGROUND_INTENSITY
+ );
+
+7884 
+Üigš®BackgroundA‰ribu‹s
+ = 
+csbiInfo
+.
+wA‰ribu‹s
+ & ~Ð
+FOREGROUND_GREEN
+ | 
+FOREGROUND_RED
+ | 
+FOREGROUND_BLUE
+ | 
+FOREGROUND_INTENSITY
+ );
+
+7887 
+vœtu®
+ 
+	`u£
+Ð
+CÞour
+::
+Code
+ 
+_cÞourCode
+ ) {
+
+7888  
+_cÞourCode
+ ) {
+
+7889 
+CÞour
+::
+NÚe
+:  
+	`£tTextA‰ribu‹
+Ð
+Üigš®FÜegroundA‰ribu‹s
+ );
+
+7890 
+CÞour
+::
+Wh™e
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_GREEN
+ | 
+FOREGROUND_RED
+ | 
+FOREGROUND_BLUE
+ );
+
+7891 
+CÞour
+::
+Red
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_RED
+ );
+
+7892 
+CÞour
+::
+G»’
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_GREEN
+ );
+
+7893 
+CÞour
+::
+Blue
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_BLUE
+ );
+
+7894 
+CÞour
+::
+Cyª
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_BLUE
+ | 
+FOREGROUND_GREEN
+ );
+
+7895 
+CÞour
+::
+Y–low
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_RED
+ | 
+FOREGROUND_GREEN
+ );
+
+7896 
+CÞour
+::
+G»y
+:  
+	`£tTextA‰ribu‹
+( 0 );
+
+7898 
+CÞour
+::
+LightG»y
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_INTENSITY
+ );
+
+7899 
+CÞour
+::
+BrightRed
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_INTENSITY
+ | 
+FOREGROUND_RED
+ );
+
+7900 
+CÞour
+::
+BrightG»’
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_INTENSITY
+ | 
+FOREGROUND_GREEN
+ );
+
+7901 
+CÞour
+::
+BrightWh™e
+:  
+	`£tTextA‰ribu‹
+Ð
+FOREGROUND_INTENSITY
+ | 
+FOREGROUND_GREEN
+ | 
+FOREGROUND_RED
+ | 
+FOREGROUND_BLUE
+ );
+
+7903 
+CÞour
+::
+Bright
+: 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "not‡ colour" );
+
+7907 
+´iv©e
+:
+
+7908 
+	`£tTextA‰ribu‹
+Ð
+WORD
+ 
+_‹xtA‰ribu‹
+ ) {
+
+7909 
+	`S‘CÚsÞeTextA‰ribu‹
+Ð
+¡doutHªdË
+, 
+_‹xtA‰ribu‹
+ | 
+Üigš®BackgroundA‰ribu‹s
+ );
+
+7911 
+HANDLE
+ 
+¡doutHªdË
+;
+
+7912 
+WORD
+ 
+Üigš®FÜegroundA‰ribu‹s
+;
+
+7913 
+WORD
+ 
+Üigš®BackgroundA‰ribu‹s
+;
+
+7916 
+ICÞourIm¶
+* 
+	`¶©fÜmCÞourIn¡ªû
+() {
+
+7917 
+Wš32CÞourIm¶
+ 
+s_š¡ªû
+;
+
+7919 
+PŒ
+<
+ICÚfig
+ cÚ¡> 
+cÚfig
+ = 
+	`g‘Cu¼’tCÚ‹xt
+().
+	`g‘CÚfig
+();
+
+7920 
+U£CÞour
+::
+YesOrNo
+ 
+cÞourMode
+ = 
+cÚfig
+
+
+7921 ? 
+cÚfig
+->
+	`u£CÞour
+()
+
+7922 : 
+U£CÞour
+::
+Auto
+;
+
+7923 ifÐ
+cÞourMode
+ =ð
+U£CÞour
+::
+Auto
+ )
+
+7924 
+cÞourMode
+ = !
+	`isDebugg”Aùive
+()
+
+7925 ? 
+U£CÞour
+::
+Yes
+
+
+7926 : 
+U£CÞour
+::
+No
+;
+
+7927  
+cÞourMode
+ =ð
+U£CÞour
+::
+Yes
+
+
+7928 ? &
+s_š¡ªû
+
+
+7929 : 
+NoCÞourIm¶
+::
+	`š¡ªû
+();
+
+7933 
+	}
+}
+
+7935 #–ià
+	$defšed
+Ð
+CATCH_CONFIG_COLOUR_ANSI
+ )
+
+7937 
+	~<uni¡d.h
+>
+
+7939 
+Çme¥aû
+ 
+C©ch
+ {
+
+7940 
+Çme¥aû
+ {
+
+7946 þas 
+	cPosixCÞourIm¶
+ : 
+public
+ 
+ICÞourIm¶
+ {
+
+7947 
+public
+:
+
+7948 
+vœtu®
+ 
+	`u£
+Ð
+CÞour
+::
+Code
+ 
+_cÞourCode
+ ) {
+
+7949  
+_cÞourCode
+ ) {
+
+7950 
+CÞour
+::
+NÚe
+:
+
+7951 
+CÞour
+::
+Wh™e
+:  
+	`£tCÞour
+( "[0m" );
+
+7952 
+CÞour
+::
+Red
+:  
+	`£tCÞour
+( "[0;31m" );
+
+7953 
+CÞour
+::
+G»’
+:  
+	`£tCÞour
+( "[0;32m" );
+
+7954 
+CÞour
+::
+Blue
+:  
+	`£tCÞour
+( "[0;34m" );
+
+7955 
+CÞour
+::
+Cyª
+:  
+	`£tCÞour
+( "[0;36m" );
+
+7956 
+CÞour
+::
+Y–low
+:  
+	`£tCÞour
+( "[0;33m" );
+
+7957 
+CÞour
+::
+G»y
+:  
+	`£tCÞour
+( "[1;30m" );
+
+7959 
+CÞour
+::
+LightG»y
+:  
+	`£tCÞour
+( "[0;37m" );
+
+7960 
+CÞour
+::
+BrightRed
+:  
+	`£tCÞour
+( "[1;31m" );
+
+7961 
+CÞour
+::
+BrightG»’
+:  
+	`£tCÞour
+( "[1;32m" );
+
+7962 
+CÞour
+::
+BrightWh™e
+:  
+	`£tCÞour
+( "[1;37m" );
+
+7964 
+CÞour
+::
+Bright
+: 
+throw
+ 
+¡d
+::
+	`logic_”rÜ
+( "not‡ colour" );
+
+7967 
+ICÞourIm¶
+* 
+	`š¡ªû
+() {
+
+7968 
+PosixCÞourIm¶
+ 
+s_š¡ªû
+;
+
+7969  &
+s_š¡ªû
+;
+
+7972 
+´iv©e
+:
+
+7973 
+	`£tCÞour
+ÐcÚ¡ * 
+_esÿ³Code
+ ) {
+
+7974 
+C©ch
+::
+	`cout
+(è<< '\033' << 
+_esÿ³Code
+;
+
+7978 
+ICÞourIm¶
+* 
+	`¶©fÜmCÞourIn¡ªû
+() {
+
+7979 
+E¼noGu¬d
+ 
+gu¬d
+;
+
+7980 
+PŒ
+<
+ICÚfig
+ cÚ¡> 
+cÚfig
+ = 
+	`g‘Cu¼’tCÚ‹xt
+().
+	`g‘CÚfig
+();
+
+7981 
+U£CÞour
+::
+YesOrNo
+ 
+cÞourMode
+ = 
+cÚfig
+
+
+7982 ? 
+cÚfig
+->
+	`u£CÞour
+()
+
+7983 : 
+U£CÞour
+::
+Auto
+;
+
+7984 ifÐ
+cÞourMode
+ =ð
+U£CÞour
+::
+Auto
+ )
+
+7985 
+cÞourMode
+ = (!
+	`isDebugg”Aùive
+(è&& 
+	`i§‰y
+(
+STDOUT_FILENO
+) )
+
+7986 ? 
+U£CÞour
+::
+Yes
+
+
+7987 : 
+U£CÞour
+::
+No
+;
+
+7988  
+cÞourMode
+ =ð
+U£CÞour
+::
+Yes
+
+
+7989 ? 
+PosixCÞourIm¶
+::
+	`š¡ªû
+()
+
+7990 : 
+NoCÞourIm¶
+::
+	`š¡ªû
+();
+
+7994 
+	}
+}
+
+7998 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8000 
+ICÞourIm¶
+* 
+¶©fÜmCÞourIn¡ªû
+(è{  
+	gNoCÞourIm¶
+::
+š¡ªû
+(); }
+
+8006 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8008 
+	gCÞour
+::
+CÞour
+Ð
+Code
+ 
+_cÞourCode
+ ) : 
+m_moved
+Ð
+çl£
+ ) { 
+u£
+( _colourCode ); }
+
+8009 
+	gCÞour
+::
+CÞour
+ÐCÞou¸cÚ¡& 
+_Ùh”
+ ) : 
+m_moved
+Ð
+çl£
+ ) { 
+cÚ¡_ÿ¡
+<CÞour&>Ð_Ùh” ).m_moved = 
+Œue
+; }
+
+8010 
+	gCÞour
+::~
+CÞour
+(){ ifÐ!
+m_moved
+ ) 
+u£
+Ð
+NÚe
+ ); }
+
+8012 
+	gCÞour
+::
+u£
+Ð
+Code
+ 
+_cÞourCode
+ ) {
+
+8013 
+ICÞourIm¶
+* 
+im¶
+ = 
+¶©fÜmCÞourIn¡ªû
+();
+
+8014 
+	gim¶
+->
+u£
+Ð
+_cÞourCode
+ );
+
+8020 
+	#TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
+
+
+	)
+
+8022 
+	~<veùÜ
+>
+
+8023 
+	~<¡ršg
+>
+
+8024 
+	~<m­
+>
+
+8026 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8028 
+	gG’”©ÜInfo
+ : 
+IG’”©ÜInfo
+ {
+
+8030 
+G’”©ÜInfo
+Ð
+¡d
+::
+size_t
+ 
+size
+ )
+
+8031 : 
+m_size
+Ð
+size
+ ),
+
+8032 
+m_cu¼’tIndex
+( 0 )
+
+8035 
+boÞ
+ 
+moveNext
+() {
+
+8036 ifÐ++
+	gm_cu¼’tIndex
+ =ð
+m_size
+ ) {
+
+8037 
+m_cu¼’tIndex
+ = 0;
+
+8038  
+	gçl£
+;
+
+8040  
+	gŒue
+;
+
+8043 
+	g¡d
+::
+size_t
+ 
+g‘Cu¼’tIndex
+() const {
+
+8044  
+m_cu¼’tIndex
+;
+
+8047 
+	g¡d
+::
+size_t
+ 
+m_size
+;
+
+8048 
+	g¡d
+::
+size_t
+ 
+m_cu¼’tIndex
+;
+
+8053 þas 
+	cG’”©ÜsFÜTe¡
+ : 
+public
+ 
+IG’”©ÜsFÜTe¡
+ {
+
+8055 
+public
+:
+
+8056 ~
+G’”©ÜsFÜTe¡
+() {
+
+8057 
+d–‘eAÎ
+Ð
+m_g’”©ÜsInOrd”
+ );
+
+8060 
+	gIG’”©ÜInfo
+& 
+g‘G’”©ÜInfo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+fžeInfo
+, std::
+size_t
+ 
+size
+ ) {
+
+8061 
+¡d
+::
+m­
+<¡d::
+¡ršg
+, 
+	gIG’”©ÜInfo
+*>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_g’”©ÜsByName
+.
+fšd
+Ð
+fžeInfo
+ );
+
+8062 ifÐ
+	g™
+ =ð
+m_g’”©ÜsByName
+.
+’d
+() ) {
+
+8063 
+IG’”©ÜInfo
+* 
+šfo
+ = 
+Ãw
+ 
+G’”©ÜInfo
+Ð
+size
+ );
+
+8064 
+	gm_g’”©ÜsByName
+.
+š£¹
+Ð
+¡d
+::
+make_·œ
+Ð
+fžeInfo
+, 
+šfo
+ ) );
+
+8065 
+	gm_g’”©ÜsInOrd”
+.
+push_back
+Ð
+šfo
+ );
+
+8066  *
+	gšfo
+;
+
+8068  *
+	g™
+->
+	g£cÚd
+;
+
+8071 
+boÞ
+ 
+moveNext
+() {
+
+8072 
+	g¡d
+::
+veùÜ
+<
+IG’”©ÜInfo
+*>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_g’”©ÜsInOrd”
+.
+begš
+();
+
+8073 
+	g¡d
+::
+veùÜ
+<
+IG’”©ÜInfo
+*>::
+cÚ¡_™”©Ü
+ 
+™End
+ = 
+m_g’”©ÜsInOrd”
+.
+’d
+();
+
+8074 ; 
+	g™
+ !ð
+™End
+; ++it ) {
+
+8075 ifÐ(*
+	g™
+)->
+moveNext
+() )
+
+8076  
+	gŒue
+;
+
+8078  
+	gçl£
+;
+
+8081 
+	g´iv©e
+:
+
+8082 
+¡d
+::
+m­
+<¡d::
+¡ršg
+, 
+	gIG’”©ÜInfo
+*> 
+	gm_g’”©ÜsByName
+;
+
+8083 
+	g¡d
+::
+veùÜ
+<
+IG’”©ÜInfo
+*> 
+m_g’”©ÜsInOrd”
+;
+
+8086 
+IG’”©ÜsFÜTe¡
+* 
+ü—‹G’”©ÜsFÜTe¡
+()
+
+8088  
+Ãw
+ 
+G’”©ÜsFÜTe¡
+();
+
+8094 
+	#TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
+
+
+	)
+
+8096 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8098 
+	gAs£¹iÚInfo
+::
+As£¹iÚInfo
+():
+maüoName
+(""), 
+ÿ±u»dEx´essiÚ
+(""), 
+»suÉDi¥os™iÚ
+(
+ResuÉDi¥os™iÚ
+::
+NÜm®
+), 
+£cÚdArg
+(""){}
+
+8100 
+	gAs£¹iÚInfo
+::
+As£¹iÚInfo
+ÐcÚ¡ * 
+_maüoName
+,
+
+8101 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+,
+
+8102 cÚ¡ * 
+_ÿ±u»dEx´essiÚ
+,
+
+8103 
+ResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+_»suÉDi¥os™iÚ
+,
+
+8104 cÚ¡ * 
+_£cÚdArg
+)
+
+8105 : 
+maüoName
+Ð
+_maüoName
+ ),
+
+8106 
+lšeInfo
+Ð
+_lšeInfo
+ ),
+
+8107 
+ÿ±u»dEx´essiÚ
+Ð
+_ÿ±u»dEx´essiÚ
+ ),
+
+8108 
+»suÉDi¥os™iÚ
+Ð
+_»suÉDi¥os™iÚ
+ ),
+
+8109 
+£cÚdArg
+Ð
+_£cÚdArg
+ )
+
+8112 
+	gAs£¹iÚResuÉ
+::
+As£¹iÚResuÉ
+() {}
+
+8114 
+As£¹iÚResuÉ
+::As£¹iÚResuÉÐ
+As£¹iÚInfo
+ cÚ¡& 
+šfo
+, 
+As£¹iÚResuÉD©a
+ cÚ¡& 
+d©a
+ )
+
+8115 : 
+m_šfo
+Ð
+šfo
+ ),
+
+8116 
+m_»suÉD©a
+Ð
+d©a
+ )
+
+8119 
+	gAs£¹iÚResuÉ
+::~
+As£¹iÚResuÉ
+() {}
+
+8122 
+boÞ
+ 
+As£¹iÚResuÉ
+::
+sucûeded
+() const {
+
+8123  
+C©ch
+::
+isOk
+Ð
+m_»suÉD©a
+.
+»suÉTy³
+ );
+
+8127 
+boÞ
+ 
+	gAs£¹iÚResuÉ
+::
+isOk
+() const {
+
+8128  
+C©ch
+::
+isOk
+Ð
+m_»suÉD©a
+.
+»suÉTy³
+ ) || 
+shouldSuµ»ssFažu»
+Ð
+m_šfo
+.
+»suÉDi¥os™iÚ
+ );
+
+8131 
+	gResuÉWas
+::
+OfTy³
+ 
+As£¹iÚResuÉ
+::
+g‘ResuÉTy³
+() const {
+
+8132  
+m_»suÉD©a
+.
+»suÉTy³
+;
+
+8135 
+boÞ
+ 
+	gAs£¹iÚResuÉ
+::
+hasEx´essiÚ
+() const {
+
+8136  
+m_šfo
+.
+ÿ±u»dEx´essiÚ
+[0] != 0;
+
+8139 
+boÞ
+ 
+	gAs£¹iÚResuÉ
+::
+hasMes§ge
+() const {
+
+8140  !
+m_»suÉD©a
+.
+mes§ge
+.
+em±y
+();
+
+8143 
+	g¡d
+::
+¡ršg
+ 
+ÿ±u»dEx´essiÚW™hSecÚdArgum’t
+ÐcÚ¡ * 
+ÿ±u»dEx´essiÚ
+, cÚ¡ * 
+£cÚdArg
+ ) {
+
+8144  (
+	g£cÚdArg
+[0] =ð0 || 
+£cÚdArg
+[0] == '"' && secondArg[1] == '"')
+
+8145 ? 
+ÿ±u»dEx´essiÚ
+
+
+8146 : 
+¡d
+::
+¡ršg
+(
+ÿ±u»dEx´essiÚ
+è+ ", " + 
+£cÚdArg
+;
+
+8149 
+	g¡d
+::
+¡ršg
+ 
+As£¹iÚResuÉ
+::
+g‘Ex´essiÚ
+() const {
+
+8150 ifÐ
+isF®£Te¡
+Ð
+m_šfo
+.
+»suÉDi¥os™iÚ
+ ) )
+
+8151  '!' + 
+ÿ±u»dEx´essiÚW™hSecÚdArgum’t
+(
+m_šfo
+.
+ÿ±u»dEx´essiÚ
+, m_šfo.
+£cÚdArg
+);
+
+8153  
+ÿ±u»dEx´essiÚW™hSecÚdArgum’t
+(
+m_šfo
+.
+ÿ±u»dEx´essiÚ
+, m_šfo.
+£cÚdArg
+);
+
+8155 
+	g¡d
+::
+¡ršg
+ 
+As£¹iÚResuÉ
+::
+g‘Ex´essiÚInMaüo
+() const {
+
+8156 ifÐ
+m_šfo
+.
+maüoName
+[0] == 0 )
+
+8157  
+ÿ±u»dEx´essiÚW™hSecÚdArgum’t
+(
+m_šfo
+.
+ÿ±u»dEx´essiÚ
+, m_šfo.
+£cÚdArg
+);
+
+8159  
+	g¡d
+::
+¡ršg
+(
+m_šfo
+.
+maüoName
+è+ "Ð" + 
+ÿ±u»dEx´essiÚW™hSecÚdArgum’t
+(m_šfo.
+ÿ±u»dEx´essiÚ
+, m_šfo.
+£cÚdArg
+) + " )";
+
+8162 
+boÞ
+ 
+	gAs£¹iÚResuÉ
+::
+hasEx·ndedEx´essiÚ
+() const {
+
+8163  
+hasEx´essiÚ
+(è&& 
+g‘Ex·ndedEx´essiÚ
+(è!ð
+g‘Ex´essiÚ
+();
+
+8166 
+	g¡d
+::
+¡ršg
+ 
+As£¹iÚResuÉ
+::
+g‘Ex·ndedEx´essiÚ
+() const {
+
+8167  
+m_»suÉD©a
+.
+»cÚ¡ruùEx´essiÚ
+();
+
+8170 
+	g¡d
+::
+¡ršg
+ 
+As£¹iÚResuÉ
+::
+g‘Mes§ge
+() const {
+
+8171  
+m_»suÉD©a
+.
+mes§ge
+;
+
+8173 
+SourûLšeInfo
+ 
+	gAs£¹iÚResuÉ
+::
+g‘SourûInfo
+() const {
+
+8174  
+m_šfo
+.
+lšeInfo
+;
+
+8177 
+	g¡d
+::
+¡ršg
+ 
+As£¹iÚResuÉ
+::
+g‘Te¡MaüoName
+() const {
+
+8178  
+m_šfo
+.
+maüoName
+;
+
+8181 
+	gAs£¹iÚResuÉ
+::
+disÿrdDecompo£dEx´essiÚ
+() const {
+
+8182 
+m_»suÉD©a
+.
+decompo£dEx´essiÚ
+ = 
+CATCH_NULL
+;
+
+8185 
+	gAs£¹iÚResuÉ
+::
+ex·ndDecompo£dEx´essiÚ
+() const {
+
+8186 
+m_»suÉD©a
+.
+»cÚ¡ruùEx´essiÚ
+();
+
+8192 
+	#TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
+
+
+	)
+
+8194 
+	~<cùy³
+>
+
+8196 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8198 
+šlše
+ 
+	gTe¡Ca£Info
+::
+S³cŸlPrÝ”t›s
+ 
+·r£S³cŸlTag
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+�g
+ ) {
+
+8199 ifÐ
+¡¬tsW™h
+Ð
+�g
+, '.' ) ||
+
+8200 
+	g�g
+ == "hide" ||
+
+8201 
+�g
+ == "!hide" )
+
+8202  
+Te¡Ca£Info
+::
+IsHidd’
+;
+
+8203 ifÐ
+	g�g
+ == "!throws" )
+
+8204  
+Te¡Ca£Info
+::
+Throws
+;
+
+8205 ifÐ
+	g�g
+ == "!shouldfail" )
+
+8206  
+Te¡Ca£Info
+::
+ShouldFaž
+;
+
+8207 ifÐ
+	g�g
+ == "!mayfail" )
+
+8208  
+Te¡Ca£Info
+::
+MayFaž
+;
+
+8209 ifÐ
+	g�g
+ == "!nonportable" )
+
+8210  
+Te¡Ca£Info
+::
+NÚPÜ�bË
+;
+
+8212  
+	gTe¡Ca£Info
+::
+NÚe
+;
+
+8214 
+šlše
+ 
+boÞ
+ 
+isRe£rvedTag
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+�g
+ ) {
+
+8215  
+·r£S³cŸlTag
+Ð
+�g
+ ) =ð
+Te¡Ca£Info
+::
+NÚe
+ &&�ag.
+size
+(è> 0 && !
+¡d
+::
+i§Êum
+(�ag[0] );
+
+8217 
+šlše
+ 
+’fÜûNÙRe£rvedTag
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+�g
+, 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+ ) {
+
+8218 ifÐ
+isRe£rvedTag
+Ð
+�g
+ ) ) {
+
+8219 
+	g¡d
+::
+o¡ršg¡»am
+ 
+ss
+;
+
+8220 
+	gss
+ << 
+CÞour
+(CÞour::
+Red
+)
+
+8221 << "Tag‚am�[" << 
+�g
+ << "]‚ot‡llowed.\n"
+
+8223 << 
+CÞour
+(CÞour::
+FžeName
+)
+
+8224 << 
+_lšeInfo
+ << '\n';
+
+8225 
+throw
+ 
+	g¡d
+::
+ruÁime_”rÜ
+(
+ss
+.
+¡r
+());
+
+8229 
+Te¡Ca£
+ 
+makeTe¡Ca£
+Ð
+ITe¡Ca£
+* 
+_‹¡Ca£
+,
+
+8230 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_þassName
+,
+
+8231 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+,
+
+8232 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_descOrTags
+,
+
+8233 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+ )
+
+8235 
+boÞ
+ 
+isHidd’
+Ð
+¡¬tsW™h
+Ð
+_Çme
+, "./" ) );
+
+8238 
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+> 
+�gs
+;
+
+8239 
+	g¡d
+::
+¡ršg
+ 
+desc
+, 
+	g�g
+;
+
+8240 
+boÞ
+ 
+	gšTag
+ = 
+çl£
+;
+
+8241  
+	g¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	g_descOrTags
+.
+size
+(); ++i ) {
+
+8242 
+	gc
+ = 
+_descOrTags
+[
+i
+];
+
+8243 ifÐ!
+	gšTag
+ ) {
+
+8244 ifÐ
+	gc
+ == '[' )
+
+8245 
+šTag
+ = 
+Œue
+;
+
+8247 
+	gdesc
+ +ð
+c
+;
+
+8250 ifÐ
+	gc
+ == ']' ) {
+
+8251 
+Te¡Ca£Info
+::
+S³cŸlPrÝ”t›s
+ 
+´Ý
+ = 
+·r£S³cŸlTag
+Ð
+�g
+ );
+
+8252 ifÐ
+	g´Ý
+ =ð
+Te¡Ca£Info
+::
+IsHidd’
+ )
+
+8253 
+isHidd’
+ = 
+Œue
+;
+
+8254 ifÐ
+	g´Ý
+ =ð
+Te¡Ca£Info
+::
+NÚe
+ )
+
+8255 
+’fÜûNÙRe£rvedTag
+Ð
+�g
+, 
+_lšeInfo
+ );
+
+8257 
+	g�gs
+.
+š£¹
+Ð
+�g
+ );
+
+8258 
+	g�g
+.
+þ—r
+();
+
+8259 
+	gšTag
+ = 
+çl£
+;
+
+8262 
+	g�g
+ +ð
+c
+;
+
+8265 ifÐ
+	gisHidd’
+ ) {
+
+8266 
+	g�gs
+.
+š£¹
+( "hide" );
+
+8267 
+	g�gs
+.
+š£¹
+( "." );
+
+8270 
+Te¡Ca£Info
+ 
+šfo
+Ð
+_Çme
+, 
+_þassName
+, 
+desc
+, 
+�gs
+, 
+_lšeInfo
+ );
+
+8271  
+Te¡Ca£
+Ð
+_‹¡Ca£
+, 
+šfo
+ );
+
+8274 
+£tTags
+Ð
+Te¡Ca£Info
+& 
+‹¡Ca£Info
+, 
+¡d
+::
+£t
+<¡d::
+¡ršg
+> cÚ¡& 
+�gs
+ )
+
+8276 
+‹¡Ca£Info
+.
+�gs
+ =�ags;
+
+8277 
+	g‹¡Ca£Info
+.
+	glÿ£Tags
+.
+þ—r
+();
+
+8279 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+8280  
+	g¡d
+::
+£t
+<
+¡d
+::
+¡ršg
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+�gs
+.
+begš
+(), 
+	g™End
+ =�ags.
+’d
+(); 
+	g™
+ !ð
+™End
+; ++it ) {
+
+8281 
+	goss
+ << '[' << *
+	g™
+ << ']';
+
+8282 
+	g¡d
+::
+¡ršg
+ 
+lÿ£Tag
+ = 
+toLow”
+Ð*
+™
+ );
+
+8283 
+	g‹¡Ca£Info
+.
+	g´Ý”t›s
+ = 
+¡©ic_ÿ¡
+<
+Te¡Ca£Info
+::
+S³cŸlPrÝ”t›s
+>Ð
+‹¡Ca£Info
+.
+´Ý”t›s
+ | 
+·r£S³cŸlTag
+Ð
+lÿ£Tag
+ ) );
+
+8284 
+	g‹¡Ca£Info
+.
+	glÿ£Tags
+.
+š£¹
+Ð
+lÿ£Tag
+ );
+
+8286 
+	g‹¡Ca£Info
+.
+	g�gsAsSŒšg
+ = 
+oss
+.
+¡r
+();
+
+8289 
+	gTe¡Ca£Info
+::
+Te¡Ca£Info
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+,
+
+8290 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_þassName
+,
+
+8291 
+¡d
+::
+¡ršg
+ cÚ¡& 
+_desü�tiÚ
+,
+
+8292 
+¡d
+::
+£t
+<¡d::
+¡ršg
+> cÚ¡& 
+_�gs
+,
+
+8293 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+ )
+
+8294 : 
+Çme
+Ð
+_Çme
+ ),
+
+8295 
+þassName
+Ð
+_þassName
+ ),
+
+8296 
+desü�tiÚ
+Ð
+_desü�tiÚ
+ ),
+
+8297 
+lšeInfo
+Ð
+_lšeInfo
+ ),
+
+8298 
+´Ý”t›s
+Ð
+NÚe
+ )
+
+8300 
+£tTags
+Ð*
+this
+, 
+_�gs
+ );
+
+8303 
+	gTe¡Ca£Info
+::
+Te¡Ca£Info
+ÐTe¡Ca£InfØcÚ¡& 
+Ùh”
+ )
+
+8304 : 
+Çme
+Ð
+Ùh”
+.name ),
+
+8305 
+þassName
+Ð
+Ùh”
+.className ),
+
+8306 
+desü�tiÚ
+Ð
+Ùh”
+.description ),
+
+8307 
+�gs
+Ð
+Ùh”
+.tags ),
+
+8308 
+lÿ£Tags
+Ð
+Ùh”
+.lcaseTags ),
+
+8309 
+�gsAsSŒšg
+Ð
+Ùh”
+.tagsAsString ),
+
+8310 
+lšeInfo
+Ð
+Ùh”
+.lineInfo ),
+
+8311 
+´Ý”t›s
+Ð
+Ùh”
+.properties )
+
+8314 
+boÞ
+ 
+	gTe¡Ca£Info
+::
+isHidd’
+() const {
+
+8315  ( 
+´Ý”t›s
+ & 
+IsHidd’
+ ) != 0;
+
+8317 
+boÞ
+ 
+	gTe¡Ca£Info
+::
+throws
+() const {
+
+8318  ( 
+´Ý”t›s
+ & 
+Throws
+ ) != 0;
+
+8320 
+boÞ
+ 
+	gTe¡Ca£Info
+::
+okToFaž
+() const {
+
+8321  ( 
+´Ý”t›s
+ & (
+ShouldFaž
+ | 
+MayFaž
+ ) ) != 0;
+
+8323 
+boÞ
+ 
+	gTe¡Ca£Info
+::
+ex³ùedToFaž
+() const {
+
+8324  ( 
+´Ý”t›s
+ & (
+ShouldFaž
+ ) ) != 0;
+
+8327 
+	gTe¡Ca£
+::
+Te¡Ca£
+Ð
+ITe¡Ca£
+* 
+‹¡Ca£
+, 
+Te¡Ca£Info
+ cÚ¡& 
+šfo
+ ) : Te¡Ca£InfoÐšfØ), 
+‹¡
+(�estCase ) {}
+
+8329 
+	gTe¡Ca£
+::
+Te¡Ca£
+ÐTe¡Ca£ cÚ¡& 
+Ùh”
+ )
+
+8330 : 
+Te¡Ca£Info
+Ð
+Ùh”
+ ),
+
+8331 
+‹¡
+Ð
+Ùh”
+.test )
+
+8334 
+Te¡Ca£
+ 
+	gTe¡Ca£
+::
+w™hName
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_ÃwName
+ ) const {
+
+8335 
+Te¡Ca£
+ 
+Ùh”
+Ð*
+this
+ );
+
+8336 
+	gÙh”
+.
+	gÇme
+ = 
+_ÃwName
+;
+
+8337  
+	gÙh”
+;
+
+8340 
+	gTe¡Ca£
+::
+sw­
+Ð
+Te¡Ca£
+& 
+Ùh”
+ ) {
+
+8341 
+‹¡
+.
+sw­
+Ð
+Ùh”
+.test );
+
+8342 
+	gÇme
+.
+sw­
+Ð
+Ùh”
+.
+Çme
+ );
+
+8343 
+	gþassName
+.
+sw­
+Ð
+Ùh”
+.
+þassName
+ );
+
+8344 
+	gdesü�tiÚ
+.
+sw­
+Ð
+Ùh”
+.
+desü�tiÚ
+ );
+
+8345 
+	g�gs
+.
+sw­
+Ð
+Ùh”
+.
+�gs
+ );
+
+8346 
+	glÿ£Tags
+.
+sw­
+Ð
+Ùh”
+.
+lÿ£Tags
+ );
+
+8347 
+	g�gsAsSŒšg
+.
+sw­
+Ð
+Ùh”
+.
+�gsAsSŒšg
+ );
+
+8348 
+	g¡d
+::
+sw­
+Ð
+Te¡Ca£Info
+::
+´Ý”t›s
+, 
+¡©ic_ÿ¡
+<Te¡Ca£Info&>Ð
+Ùh”
+ ).properties );
+
+8349 
+	g¡d
+::
+sw­
+Ð
+lšeInfo
+, 
+Ùh”
+.lineInfo );
+
+8352 
+	gTe¡Ca£
+::
+švoke
+() const {
+
+8353 
+‹¡
+->
+švoke
+();
+
+8356 
+boÞ
+ 
+	gTe¡Ca£
+::
+Ý”©Ü
+ =ðÐ
+Te¡Ca£
+ cÚ¡& 
+Ùh”
+ ) const {
+
+8357  
+‹¡
+.
+g‘
+(è=ð
+Ùh”
+.test.get() &&
+
+8358 
+Çme
+ =ð
+Ùh”
+.name &&
+
+8359 
+þassName
+ =ð
+Ùh”
+.className;
+
+8362 
+boÞ
+ 
+	gTe¡Ca£
+::
+Ý”©Ü
+ < ( 
+Te¡Ca£
+ cÚ¡& 
+Ùh”
+ ) const {
+
+8363  
+Çme
+ < 
+Ùh”
+.name;
+
+8365 
+	gTe¡Ca£
+& Te¡Ca£::
+Ý”©Ü
+ = ( 
+Te¡Ca£
+ cÚ¡& 
+Ùh”
+ ) {
+
+8366 
+Te¡Ca£
+ 
+‹mp
+Ð
+Ùh”
+ );
+
+8367 
+sw­
+Ð
+‹mp
+ );
+
+8368  *
+	gthis
+;
+
+8371 
+Te¡Ca£Info
+ cÚ¡& 
+	gTe¡Ca£
+::
+g‘Te¡Ca£Info
+() const
+
+8373  *
+this
+;
+
+8379 
+	#TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
+
+
+	)
+
+8381 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8383 
+	gV”siÚ
+::
+V”siÚ
+
+
+8384 Ð
+_majÜV”siÚ
+,
+
+8385 
+	g_mšÜV”siÚ
+,
+
+8386 
+	g_·tchNumb”
+,
+
+8387 cÚ¡ * cÚ¡ 
+	g_b¿nchName
+,
+
+8388 
+	g_buždNumb”
+ )
+
+8389 : 
+majÜV”siÚ
+Ð
+_majÜV”siÚ
+ ),
+
+8390 
+mšÜV”siÚ
+Ð
+_mšÜV”siÚ
+ ),
+
+8391 
+·tchNumb”
+Ð
+_·tchNumb”
+ ),
+
+8392 
+b¿nchName
+Ð
+_b¿nchName
+ ),
+
+8393 
+buždNumb”
+Ð
+_buždNumb”
+ )
+
+8396 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+V”siÚ
+ cÚ¡& 
+	gv”siÚ
+ ) {
+
+8397 
+	gos
+ << 
+	gv”siÚ
+.
+	gmajÜV”siÚ
+ << '.'
+
+8398 << 
+	gv”siÚ
+.
+	gmšÜV”siÚ
+ << '.'
+
+8399 << 
+	gv”siÚ
+.
+	g·tchNumb”
+;
+
+8401 ià(
+	gv”siÚ
+.
+	gb¿nchName
+[0]) {
+
+8402 
+	gos
+ << '-' << 
+	gv”siÚ
+.
+	gb¿nchName
+
+
+8403 << '.' << 
+	gv”siÚ
+.
+	gbuždNumb”
+;
+
+8405  
+	gos
+;
+
+8408 
+šlše
+ 
+V”siÚ
+ 
+lib¿ryV”siÚ
+() {
+
+8409 
+V”siÚ
+ 
+v”siÚ
+( 1, 9, 7, "", 0 );
+
+8410  
+	gv”siÚ
+;
+
+8416 
+	#TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+
+
+	)
+
+8418 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8420 
+	gMes§geInfo
+::
+Mes§geInfo
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_maüoName
+,
+
+8421 
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+,
+
+8422 
+ResuÉWas
+::
+OfTy³
+ 
+_ty³
+ )
+
+8423 : 
+maüoName
+Ð
+_maüoName
+ ),
+
+8424 
+lšeInfo
+Ð
+_lšeInfo
+ ),
+
+8425 
+ty³
+Ð
+_ty³
+ ),
+
+8426 
+£qu’û
+Ð++
+glob®CouÁ
+ )
+
+8430 
+	gMes§geInfo
+::
+glob®CouÁ
+ = 0;
+
+8434 
+	gScÝedMes§ge
+::
+ScÝedMes§ge
+Ð
+Mes§geBužd”
+ cÚ¡& 
+bužd”
+ )
+
+8435 : 
+m_šfo
+Ð
+bužd”
+.m_info )
+
+8437 
+m_šfo
+.
+mes§ge
+ = 
+bužd”
+.
+m_¡»am
+.
+¡r
+();
+
+8438 
+g‘ResuÉC­tu»
+().
+pushScÝedMes§ge
+Ð
+m_šfo
+ );
+
+8440 
+	gScÝedMes§ge
+::
+ScÝedMes§ge
+ÐScÝedMes§g�cÚ¡& 
+Ùh”
+ )
+
+8441 : 
+m_šfo
+Ð
+Ùh”
+.m_info )
+
+8444 
+ScÝedMes§ge
+::~ScopedMessage() {
+
+8445 iàÐ!
+¡d
+::
+unÿught_exû±iÚ
+() ){
+
+8446 
+g‘ResuÉC­tu»
+().
+pÝScÝedMes§ge
+(
+m_šfo
+);
+
+8453 
+	#TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
+
+
+	)
+
+8456 
+	#TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
+
+
+	)
+
+8458 
+Çme¥aû
+ 
+	gC©ch
+
+
+8461 
+	gIR•Ü‹r
+ : 
+ISh¬ed
+ {
+
+8462 
+vœtu®
+ ~
+IR•Ü‹r
+();
+
+8464 
+vœtu®
+ 
+boÞ
+ 
+shouldRedœeùStdout
+() const = 0;
+
+8466 
+vœtu®
+ 
+S�¹Te¡šg
+() = 0;
+
+8467 
+vœtu®
+ 
+EndTe¡šg
+Ð
+TÙ®s
+ cÚ¡& 
+tÙ®s
+ ) = 0;
+
+8468 
+vœtu®
+ 
+S�¹Group
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+groupName
+ ) = 0;
+
+8469 
+vœtu®
+ 
+EndGroup
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+groupName
+, 
+TÙ®s
+ cÚ¡& 
+tÙ®s
+ ) = 0;
+
+8470 
+vœtu®
+ 
+S�¹Te¡Ca£
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ ) = 0;
+
+8471 
+vœtu®
+ 
+EndTe¡Ca£
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+, 
+TÙ®s
+ cÚ¡& 
+tÙ®s
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡dOut
+, std::¡ršg cÚ¡& 
+¡dE¼
+ ) = 0;
+
+8472 
+vœtu®
+ 
+S�¹SeùiÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+£ùiÚName
+, std::¡ršg cÚ¡& 
+desü�tiÚ
+ ) = 0;
+
+8473 
+vœtu®
+ 
+EndSeùiÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+£ùiÚName
+, 
+CouÁs
+ cÚ¡& 
+as£¹iÚs
+ ) = 0;
+
+8474 
+vœtu®
+ 
+NoAs£¹iÚsInSeùiÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+£ùiÚName
+ ) = 0;
+
+8475 
+vœtu®
+ 
+NoAs£¹iÚsInTe¡Ca£
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹¡Name
+ ) = 0;
+
+8476 
+vœtu®
+ 
+AbÜ‹d
+() = 0;
+
+8477 
+vœtu®
+ 
+ResuÉ
+Ð
+As£¹iÚResuÉ
+ cÚ¡& 
+»suÉ
+ ) = 0;
+
+8480 
+þass
+ 
+	gLegacyR•Ü‹rAd­‹r
+ : 
+public
+ 
+Sh¬edIm¶
+<
+ISŒ—mšgR•Ü‹r
+>
+
+8482 
+public
+:
+
+8483 
+LegacyR•Ü‹rAd­‹r
+Ð
+PŒ
+<
+IR•Ü‹r
+> cÚ¡& 
+ËgacyR•Ü‹r
+ );
+
+8484 
+	gvœtu®
+ ~
+LegacyR•Ü‹rAd­‹r
+();
+
+8486 
+vœtu®
+ 
+R•Ü‹rP»ã»nûs
+ 
+g‘P»ã»nûs
+() const;
+
+8487 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ const& );
+
+8488 
+vœtu®
+ 
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ const& );
+
+8489 
+vœtu®
+ 
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& 
+groupInfo
+ );
+
+8490 
+vœtu®
+ 
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ );
+
+8491 
+vœtu®
+ 
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+ );
+
+8492 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ const& );
+
+8493 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+as£¹iÚS�ts
+ );
+
+8494 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+£ùiÚS�ts
+ );
+
+8495 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+‹¡Ca£S�ts
+ );
+
+8496 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+‹¡GroupS�ts
+ );
+
+8497 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+‹¡RunS�ts
+ );
+
+8498 
+vœtu®
+ 
+sk�Te¡
+Ð
+Te¡Ca£Info
+ const& );
+
+8500 
+	g´iv©e
+:
+
+8501 
+PŒ
+<
+IR•Ü‹r
+> 
+m_ËgacyR•Ü‹r
+;
+
+8505 
+Çme¥aû
+ 
+	gC©ch
+
+
+8507 
+	gLegacyR•Ü‹rAd­‹r
+::
+LegacyR•Ü‹rAd­‹r
+Ð
+PŒ
+<
+IR•Ü‹r
+> cÚ¡& 
+ËgacyR•Ü‹r
+ )
+
+8508 : 
+m_ËgacyR•Ü‹r
+Ð
+ËgacyR•Ü‹r
+ )
+
+8510 
+LegacyR•Ü‹rAd­‹r
+::~LegacyReporterAdapter() {}
+
+8512 
+R•Ü‹rP»ã»nûs
+ 
+LegacyR•Ü‹rAd­‹r
+::
+g‘P»ã»nûs
+() const {
+
+8513 
+R•Ü‹rP»ã»nûs
+ 
+´efs
+;
+
+8514 
+	g´efs
+.
+	gshouldRedœeùStdOut
+ = 
+m_ËgacyR•Ü‹r
+->
+shouldRedœeùStdout
+();
+
+8515  
+	g´efs
+;
+
+8518 
+	gLegacyR•Ü‹rAd­‹r
+::
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ const& ) {}
+
+8519 
+LegacyR•Ü‹rAd­‹r
+::
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ const& ) {
+
+8520 
+m_ËgacyR•Ü‹r
+->
+S�¹Te¡šg
+();
+
+8522 
+	gLegacyR•Ü‹rAd­‹r
+::
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& 
+groupInfo
+ ) {
+
+8523 
+m_ËgacyR•Ü‹r
+->
+S�¹Group
+Ð
+groupInfo
+.
+Çme
+ );
+
+8525 
+	gLegacyR•Ü‹rAd­‹r
+::
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ ) {
+
+8526 
+m_ËgacyR•Ü‹r
+->
+S�¹Te¡Ca£
+Ð
+‹¡Info
+ );
+
+8528 
+	gLegacyR•Ü‹rAd­‹r
+::
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+ ) {
+
+8529 
+m_ËgacyR•Ü‹r
+->
+S�¹SeùiÚ
+Ð
+£ùiÚInfo
+.
+Çme
+, seùiÚInfo.
+desü�tiÚ
+ );
+
+8531 
+	gLegacyR•Ü‹rAd­‹r
+::
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ const& ) {
+
+8535 
+boÞ
+ 
+LegacyR•Ü‹rAd­‹r
+::
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+as£¹iÚS�ts
+ ) {
+
+8536 ifÐ
+as£¹iÚS�ts
+.
+as£¹iÚResuÉ
+.
+g‘ResuÉTy³
+(è!ð
+ResuÉWas
+::
+Ok
+ ) {
+
+8537  
+¡d
+::
+veùÜ
+<
+Mes§geInfo
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+as£¹iÚS�ts
+.
+šfoMes§ges
+.
+begš
+(), 
+	g™End
+ =‡s£¹iÚS�ts.šfoMes§ges.
+’d
+();
+
+8538 
+	g™
+ !ð
+™End
+;
+
+8539 ++
+	g™
+ ) {
+
+8540 ifÐ
+	g™
+->
+	gty³
+ =ð
+ResuÉWas
+::
+Info
+ ) {
+
+8541 
+ResuÉBužd”
+ 
+rb
+Ð
+™
+->
+maüoName
+.
+c_¡r
+(), it->
+lšeInfo
+, "", 
+ResuÉDi¥os™iÚ
+::
+NÜm®
+ );
+
+8542 
+	grb
+ << 
+	g™
+->
+	gmes§ge
+;
+
+8543 
+	grb
+.
+£tResuÉTy³
+Ð
+ResuÉWas
+::
+Info
+ );
+
+8544 
+As£¹iÚResuÉ
+ 
+	g»suÉ
+ = 
+rb
+.
+bužd
+();
+
+8545 
+	gm_ËgacyR•Ü‹r
+->
+ResuÉ
+Ð
+»suÉ
+ );
+
+8549 
+	gm_ËgacyR•Ü‹r
+->
+ResuÉ
+Ð
+as£¹iÚS�ts
+.
+as£¹iÚResuÉ
+ );
+
+8550  
+	gŒue
+;
+
+8552 
+	gLegacyR•Ü‹rAd­‹r
+::
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+£ùiÚS�ts
+ ) {
+
+8553 ifÐ
+£ùiÚS�ts
+.
+missšgAs£¹iÚs
+ )
+
+8554 
+m_ËgacyR•Ü‹r
+->
+NoAs£¹iÚsInSeùiÚ
+Ð
+£ùiÚS�ts
+.
+£ùiÚInfo
+.
+Çme
+ );
+
+8555 
+	gm_ËgacyR•Ü‹r
+->
+EndSeùiÚ
+Ð
+£ùiÚS�ts
+.
+£ùiÚInfo
+.
+Çme
+, seùiÚS�ts.
+as£¹iÚs
+ );
+
+8557 
+	gLegacyR•Ü‹rAd­‹r
+::
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+‹¡Ca£S�ts
+ ) {
+
+8558 
+m_ËgacyR•Ü‹r
+->
+EndTe¡Ca£
+
+
+8559 Ð
+‹¡Ca£S�ts
+.
+‹¡Info
+,
+
+8560 
+	g‹¡Ca£S�ts
+.
+	gtÙ®s
+,
+
+8561 
+	g‹¡Ca£S�ts
+.
+	g¡dOut
+,
+
+8562 
+	g‹¡Ca£S�ts
+.
+	g¡dE¼
+ );
+
+8564 
+	gLegacyR•Ü‹rAd­‹r
+::
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+‹¡GroupS�ts
+ ) {
+
+8565 ifÐ
+‹¡GroupS�ts
+.
+abÜtšg
+ )
+
+8566 
+m_ËgacyR•Ü‹r
+->
+AbÜ‹d
+();
+
+8567 
+	gm_ËgacyR•Ü‹r
+->
+EndGroup
+Ð
+‹¡GroupS�ts
+.
+groupInfo
+.
+Çme
+,�e¡GroupS�ts.
+tÙ®s
+ );
+
+8569 
+	gLegacyR•Ü‹rAd­‹r
+::
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+‹¡RunS�ts
+ ) {
+
+8570 
+m_ËgacyR•Ü‹r
+->
+EndTe¡šg
+Ð
+‹¡RunS�ts
+.
+tÙ®s
+ );
+
+8572 
+	gLegacyR•Ü‹rAd­‹r
+::
+sk�Te¡
+Ð
+Te¡Ca£Info
+ const& ) {
+
+8578 #ifdeà
+__þªg__
+
+
+8579 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+8580 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wc++11-long-long"
+
+8583 #ifdeà
+CATCH_PLATFORM_WINDOWS
+
+
+8587 
+	~<sys/time.h
+>
+
+8591 
+Çme¥aû
+ 
+C©ch
+ {
+
+8593 
+Çme¥aû
+ {
+
+8594 #ifdeà
+CATCH_PLATFORM_WINDOWS
+
+
+8595 
+UIÁ64
+ 
+g‘Cu¼’tTicks
+() {
+
+8596 
+UIÁ64
+ 
+hz
+=0, 
+	ghzo
+=0;
+
+8597 ià(!
+	ghz
+) {
+
+8598 
+Qu”yP”fÜmªûF»qu’cy
+Ð
+»š‹½»t_ÿ¡
+<
+LARGE_INTEGER
+*>Ð&
+hz
+ ) );
+
+8599 
+Qu”yP”fÜmªûCouÁ”
+Ð
+»š‹½»t_ÿ¡
+<
+LARGE_INTEGER
+*>Ð&
+hzo
+ ) );
+
+8601 
+UIÁ64
+ 
+	gt
+;
+
+8602 
+Qu”yP”fÜmªûCouÁ”
+Ð
+»š‹½»t_ÿ¡
+<
+LARGE_INTEGER
+*>Ð&
+t
+ ) );
+
+8603  ((
+	gt
+-
+	ghzo
+)*1000000)/
+	ghz
+;
+
+8606 
+UIÁ64
+ 
+g‘Cu¼’tTicks
+() {
+
+8607 
+timev®
+ 
+	gt
+;
+
+8608 
+g‘timeofday
+(&
+t
+,
+CATCH_NULL
+);
+
+8609  
+	g¡©ic_ÿ¡
+<
+	gUIÁ64
+>Ð
+	gt
+.
+	gtv_£c
+ ) * 1000000uÎ + s�tic_ÿ¡<UIÁ64>Ðt.
+	gtv_u£c
+ );
+
+8614 
+	gTim”
+::
+¡¬t
+() {
+
+8615 
+m_ticks
+ = 
+g‘Cu¼’tTicks
+();
+
+8617 
+	gTim”
+::
+g‘EÏp£dMiüo£cÚds
+() const {
+
+8618  
+¡©ic_ÿ¡
+<>(
+g‘Cu¼’tTicks
+(è- 
+m_ticks
+);
+
+8620 
+	gTim”
+::
+g‘EÏp£dMžli£cÚds
+() const {
+
+8621  
+¡©ic_ÿ¡
+<>(
+g‘EÏp£dMiüo£cÚds
+()/1000);
+
+8623 
+	gTim”
+::
+g‘EÏp£dSecÚds
+() const {
+
+8624  
+g‘EÏp£dMiüo£cÚds
+()/1000000.0;
+
+8629 #ifdeà
+__þªg__
+
+
+8630 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+8633 
+	#TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
+
+
+	)
+
+8635 
+	~<c¡ršg
+>
+
+8636 
+	~<cùy³
+>
+
+8638 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8640 
+boÞ
+ 
+¡¬tsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, std::¡ršg cÚ¡& 
+´efix
+ ) {
+
+8641  
+s
+.
+size
+(è>ð
+´efix
+.size(è&& 
+¡d
+::
+equ®
+Õ»fix.
+begš
+(),…»fix.
+’d
+(), s.begin());
+
+8643 
+boÞ
+ 
+¡¬tsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, 
+´efix
+ ) {
+
+8644  !
+	gs
+.
+em±y
+(è&& s[0] =ð
+´efix
+;
+
+8646 
+boÞ
+ 
+’dsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, std::¡ršg cÚ¡& 
+suffix
+ ) {
+
+8647  
+s
+.
+size
+(è>ð
+suffix
+.size(è&& 
+¡d
+::
+equ®
+(suffix.
+rbegš
+(), suffix.
+»nd
+(), s.rbegin());
+
+8649 
+boÞ
+ 
+’dsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, 
+suffix
+ ) {
+
+8650  !
+	gs
+.
+em±y
+(è&& s[
+s
+.
+size
+()-1] =ð
+suffix
+;
+
+8652 
+boÞ
+ 
+cÚ�šs
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+, std::¡ršg cÚ¡& 
+šfix
+ ) {
+
+8653  
+s
+.
+fšd
+Ð
+šfix
+ ) !ð
+¡d
+::
+¡ršg
+::
+Åos
+;
+
+8655 
+toLow”Ch
+(
+c
+) {
+
+8656  
+	g¡©ic_ÿ¡
+<>Ð
+	g¡d
+::
+tÞow”
+Ð
+c
+ ) );
+
+8658 
+toLow”InPÏû
+Ð
+¡d
+::
+¡ršg
+& 
+s
+ ) {
+
+8659 
+¡d
+::
+ŒªsfÜm
+Ð
+s
+.
+begš
+(), s.
+’d
+(), s.begš(), 
+toLow”Ch
+ );
+
+8661 
+	g¡d
+::
+¡ršg
+ 
+toLow”
+Ð
+¡d
+::¡ršg cÚ¡& 
+s
+ ) {
+
+8662 
+¡d
+::
+¡ršg
+ 
+lc
+ = 
+s
+;
+
+8663 
+toLow”InPÏû
+Ð
+lc
+ );
+
+8664  
+	glc
+;
+
+8666 
+	g¡d
+::
+¡ršg
+ 
+Œim
+Ð
+¡d
+::¡ršg cÚ¡& 
+¡r
+ ) {
+
+8667 cÚ¡* 
+wh™e¥aûCh¬s
+ = "\n\r\t ";
+
+8668 
+	g¡d
+::
+¡ršg
+::
+size_ty³
+ 
+¡¬t
+ = 
+¡r
+.
+fšd_fœ¡_nÙ_of
+Ð
+wh™e¥aûCh¬s
+ );
+
+8669 
+	g¡d
+::
+¡ršg
+::
+size_ty³
+ 
+’d
+ = 
+¡r
+.
+fšd_Ï¡_nÙ_of
+Ð
+wh™e¥aûCh¬s
+ );
+
+8671  
+	g¡¬t
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ ? 
+¡r
+.
+sub¡r
+Ð
+¡¬t
+, 1+
+’d
+-start ) : std::string();
+
+8674 
+boÞ
+ 
+»¶aûInPÏû
+Ð
+¡d
+::
+¡ršg
+& 
+¡r
+, std::¡ršg cÚ¡& 
+»¶aûThis
+, std::¡ršg cÚ¡& 
+w™hThis
+ ) {
+
+8675 
+boÞ
+ 
+»¶aûd
+ = 
+çl£
+;
+
+8676 
+	g¡d
+::
+size_t
+ 
+i
+ = 
+¡r
+.
+fšd
+Ð
+»¶aûThis
+ );
+
+8677  
+	gi
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ ) {
+
+8678 
+»¶aûd
+ = 
+Œue
+;
+
+8679 
+	g¡r
+ = 
+¡r
+.
+sub¡r
+Ð0, 
+i
+ ) + 
+	gw™hThis
+ + sŒ.sub¡rÐi+
+»¶aûThis
+.
+size
+() );
+
+8680 ifÐ
+	gi
+ < 
+	g¡r
+.
+size
+()-
+	gw™hThis
+.size() )
+
+8681 
+	gi
+ = 
+¡r
+.
+fšd
+Ð
+»¶aûThis
+, 
+i
++
+w™hThis
+.
+size
+() );
+
+8683 
+	gi
+ = 
+¡d
+::
+¡ršg
+::
+Åos
+;
+
+8685  
+	g»¶aûd
+;
+
+8688 
+	g¶u¿li£
+::
+¶u¿li£
+Ð
+¡d
+::
+size_t
+ 
+couÁ
+, std::
+¡ršg
+ cÚ¡& 
+Ïb–
+ )
+
+8689 : 
+m_couÁ
+Ð
+couÁ
+ ),
+
+8690 
+m_Ïb–
+Ð
+Ïb–
+ )
+
+8693 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+¶u¿li£
+ cÚ¡& 
+	g¶u¿li£r
+ ) {
+
+8694 
+	gos
+ << 
+	g¶u¿li£r
+.
+	gm_couÁ
+ << ' ' <<…lu¿li£r.
+	gm_Ïb–
+;
+
+8695 ifÐ
+	g¶u¿li£r
+.
+	gm_couÁ
+ != 1 )
+
+8696 
+os
+ << 's';
+
+8697  
+	gos
+;
+
+8700 
+	gSourûLšeInfo
+::
+SourûLšeInfo
+(è: 
+fže
+(""), 
+lše
+( 0 ){}
+
+8701 
+	gSourûLšeInfo
+::
+SourûLšeInfo
+ÐcÚ¡* 
+_fže
+, 
+¡d
+::
+size_t
+ 
+_lše
+ )
+
+8702 : 
+fže
+Ð
+_fže
+ ),
+
+8703 
+lše
+Ð
+_lše
+ )
+
+8705 
+boÞ
+ 
+	gSourûLšeInfo
+::
+em±y
+() const {
+
+8706  
+fže
+[0] == '\0';
+
+8708 
+boÞ
+ 
+	gSourûLšeInfo
+::
+Ý”©Ü
+ =ðÐ
+SourûLšeInfo
+ cÚ¡& 
+Ùh”
+ ) const {
+
+8709  
+lše
+ =ð
+Ùh”
+.lš�&& (
+fže
+ =ðÙh”.fž�|| 
+¡d
+::
+¡rcmp
+(file, other.file) == 0);
+
+8711 
+boÞ
+ 
+	gSourûLšeInfo
+::
+Ý”©Ü
+ < ( 
+SourûLšeInfo
+ cÚ¡& 
+Ùh”
+ ) const {
+
+8712  
+lše
+ < 
+Ùh”
+.lš�|| (†š�=ðÙh”.lš�&& (
+¡d
+::
+¡rcmp
+(
+fže
+, other.file) < 0));
+
+8715 
+£edRng
+Ð
+ICÚfig
+ cÚ¡& 
+cÚfig
+ ) {
+
+8716 ifÐ
+	gcÚfig
+.
+ºgS“d
+() != 0 )
+
+8717 
+¡d
+::
+¤ªd
+Ð
+cÚfig
+.
+ºgS“d
+() );
+
+8719 
+ºgS“d
+() {
+
+8720  
+g‘Cu¼’tCÚ‹xt
+().
+g‘CÚfig
+()->
+ºgS“d
+();
+
+8723 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+SourûLšeInfo
+ cÚ¡& 
+	gšfo
+ ) {
+
+8724 #iâdeà
+__GNUG__
+
+
+8725 
+	gos
+ << 
+	gšfo
+.
+	gfže
+ << '(' << info.
+	glše
+ << ')';
+
+8727 
+	gos
+ << 
+	gšfo
+.
+	gfže
+ << ':' << info.
+	glše
+;
+
+8729  
+	gos
+;
+
+8732 
+throwLogicE¼Ü
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+mes§ge
+, 
+SourûLšeInfo
+ cÚ¡& 
+loÿtiÚInfo
+ ) {
+
+8733 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+8734 
+	goss
+ << 
+	gloÿtiÚInfo
+ << ": IÁ”ÇÈC©chƒ¼Ü: '" << 
+	gmes§ge
+ << '\'';
+
+8735 ifÐ
+®waysTrue
+() )
+
+8736 
+throw
+ 
+	g¡d
+::
+logic_”rÜ
+Ð
+oss
+.
+¡r
+() );
+
+8741 
+	#TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
+
+
+	)
+
+8743 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8745 
+	gSeùiÚInfo
+::
+SeùiÚInfo
+
+
+8746 Ð
+SourûLšeInfo
+ cÚ¡& 
+_lšeInfo
+,
+
+8747 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+,
+
+8748 
+	g¡d
+::
+¡ršg
+ cÚ¡& 
+_desü�tiÚ
+ )
+
+8749 : 
+Çme
+Ð
+_Çme
+ ),
+
+8750 
+desü�tiÚ
+Ð
+_desü�tiÚ
+ ),
+
+8751 
+lšeInfo
+Ð
+_lšeInfo
+ )
+
+8754 
+	gSeùiÚ
+::
+SeùiÚ
+Ð
+SeùiÚInfo
+ cÚ¡& 
+šfo
+ )
+
+8755 : 
+m_šfo
+Ð
+šfo
+ ),
+
+8756 
+m_£ùiÚInþuded
+Ð
+g‘ResuÉC­tu»
+().
+£ùiÚS�¹ed
+Ð
+m_šfo
+, 
+m_as£¹iÚs
+ ) )
+
+8758 
+	gm_tim”
+.
+¡¬t
+();
+
+8761 #ià
+defšed
+(
+_MSC_VER
+)
+
+8762 #´agm¨
+w¬nšg
+(
+push
+)
+
+8763 #´agm¨
+w¬nšg
+(
+di§bË
+:4996)
+
+8765 
+	gSeùiÚ
+::~
+SeùiÚ
+() {
+
+8766 ifÐ
+m_£ùiÚInþuded
+ ) {
+
+8767 
+SeùiÚEndInfo
+ 
+’dInfo
+Ð
+m_šfo
+, 
+m_as£¹iÚs
+, 
+m_tim”
+.
+g‘EÏp£dSecÚds
+() );
+
+8768 ifÐ
+	g¡d
+::
+unÿught_exû±iÚ
+() )
+
+8769 
+g‘ResuÉC­tu»
+().
+£ùiÚEndedE¬ly
+Ð
+’dInfo
+ );
+
+8771 
+g‘ResuÉC­tu»
+().
+£ùiÚEnded
+Ð
+’dInfo
+ );
+
+8774 #ià
+defšed
+(
+_MSC_VER
+)
+
+8775 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+8779 
+	gSeùiÚ
+::
+Ý”©Ü
+ 
+boÞ
+() const {
+
+8780  
+m_£ùiÚInþuded
+;
+
+8786 
+	#TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
+
+
+	)
+
+8788 #ifdeà
+CATCH_PLATFORM_MAC
+
+
+8790 
+	~<as£¹.h
+>
+
+8791 
+	~<¡dboÞ.h
+>
+
+8792 
+	~<sys/ty³s.h
+>
+
+8793 
+	~<uni¡d.h
+>
+
+8794 
+	~<sys/sysùl.h
+>
+
+8796 
+Çme¥aû
+ 
+	gC©ch
+{
+
+8803 
+boÞ
+ 
+isDebugg”Aùive
+(){
+
+8805 
+	gmib
+[4];
+
+8806 
+kšfo_´oc
+ 
+	gšfo
+;
+
+8807 
+size_t
+ 
+	gsize
+;
+
+8812 
+	gšfo
+.
+	gkp_´oc
+.
+	gp_æag
+ = 0;
+
+8817 
+	gmib
+[0] = 
+CTL_KERN
+;
+
+8818 
+	gmib
+[1] = 
+KERN_PROC
+;
+
+8819 
+	gmib
+[2] = 
+KERN_PROC_PID
+;
+
+8820 
+	gmib
+[3] = 
+g‘pid
+();
+
+8824 
+	gsize
+ = (
+šfo
+);
+
+8825 ifÐ
+sysùl
+(
+mib
+, (mibè/ (*mib), &
+šfo
+, &
+size
+, 
+CATCH_NULL
+, 0) != 0 ) {
+
+8826 
+C©ch
+::
+û¼
+(è<< "\n** C®ÈtØsysùÈçžed - uÇbË�Ød‘”mš�iàdebugg” i aùiv�**\n" << 
+¡d
+::
+’dl
+;
+
+8827  
+	gçl£
+;
+
+8832  ( (
+	gšfo
+.
+	gkp_´oc
+.
+	gp_æag
+ & 
+	gP_TRACED
+) != 0 );
+
+8836 #–ià
+	$defšed
+(
+CATCH_PLATFORM_LINUX
+)
+
+8837 
+	~<f¡»am
+>
+
+8838 
+	~<¡ršg
+>
+
+8840 
+Çme¥aû
+ 
+C©ch
+{
+
+8848 
+boÞ
+ 
+	`isDebugg”Aùive
+(){
+
+8851 
+E¼noGu¬d
+ 
+gu¬d
+;
+
+8852 
+¡d
+::
+if¡»am
+ 
+	`š
+("/proc/self/status");
+
+8853  
+¡d
+::
+¡ršg
+ 
+lše
+; std::
+	`g‘lše
+(
+š
+,†ine); ) {
+
+8854 cÚ¡ 
+PREFIX_LEN
+ = 11;
+
+8855 ifÐ
+lše
+.
+	`com·»
+(0, 
+PREFIX_LEN
+, "TracerPid:\t") == 0 ) {
+
+8859  
+lše
+.
+	`Ëngth
+(è> 
+PREFIX_LEN
+ &&†ine[PREFIX_LEN] != '0';
+
+8863  
+çl£
+;
+
+8865 
+	}
+}
+
+8866 #–ià
+	$defšed
+(
+_MSC_VER
+)
+
+8867 
"C" 
+	$__deþ¥ec
+(
+dÎimpÜt
+è
+__¡dÿÎ
+ 
+	`IsDebugg”P»£Á
+();
+
+8868 
+Çme¥aû
+ 
+C©ch
+ {
+
+8869 
+boÞ
+ 
+	`isDebugg”Aùive
+() {
+
+8870  
+	`IsDebugg”P»£Á
+() != 0;
+
+8872 
+	}
+}
+
+8873 #–ià
+	$defšed
+(
+__MINGW32__
+)
+
+8874 
"C" 
+	$__deþ¥ec
+(
+dÎimpÜt
+è
+__¡dÿÎ
+ 
+	`IsDebugg”P»£Á
+();
+
+8875 
+Çme¥aû
+ 
+C©ch
+ {
+
+8876 
+boÞ
+ 
+	`isDebugg”Aùive
+() {
+
+8877  
+	`IsDebugg”P»£Á
+() != 0;
+
+8879 
+	}
+}
+
+8881 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8882 
+šlše
+ 
+boÞ
+ 
+isDebugg”Aùive
+(è{  
+	gçl£
+; }
+
+8886 #ifdeà
+CATCH_PLATFORM_WINDOWS
+
+
+8888 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8889 
+wr™eToDebugCÚsÞe
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹xt
+ ) {
+
+8890 ::
+Ou�utDebugSŒšgA
+Ð
+‹xt
+.
+c_¡r
+() );
+
+8894 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8895 
+wr™eToDebugCÚsÞe
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹xt
+ ) {
+
+8897 
+C©ch
+::
+cout
+(è<< 
+‹xt
+;
+
+8903 
+	#TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
+
+
+	)
+
+8905 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+8907 
+Çme¥aû
+ 
+	gD‘až
+ {
+
+8909 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+uÅrš�bËSŒšg
+ = "{?}";
+
+8911 
+	gÇme¥aû
+ {
+
+8912 cÚ¡ 
+	ghexTh»shÞd
+ = 255;
+
+8914 
+	sEndŸÂess
+ {
+
+8915 
+	eArch
+ { 
+	gBig
+, 
+	gL™Že
+ };
+
+8917 
+Arch
+ 
+which
+() {
+
+8918 
+	u_
+{
+
+8919 
+	gasIÁ
+;
+
+8920 
+	gasCh¬
+[ ()];
+
+8921 } 
+	gu
+;
+
+8923 
+	gu
+.
+	gasIÁ
+ = 1;
+
+8924  ( 
+	gu
+.
+	gasCh¬
+[()-1] =ð1 ) ? 
+Big
+ : 
+L™Že
+;
+
+8929 
+	g¡d
+::
+¡ršg
+ 
+¿wMemÜyToSŒšg
+ÐcÚ¡ *
+objeù
+, 
+¡d
+::
+size_t
+ 
+size
+ )
+
+8932 
+i
+ = 0, 
+	g’d
+ = 
+¡©ic_ÿ¡
+<>Ð
+size
+ ), 
+	gšc
+ = 1;
+
+8933 ifÐ
+	gEndŸÂess
+::
+which
+(è=ð
+EndŸÂess
+::
+L™Že
+ ) {
+
+8934 
+i
+ = 
+’d
+-1;
+
+8935 
+	g’d
+ = 
+šc
+ = -1;
+
+8938 cÚ¡ *
+	gby‹s
+ = 
+¡©ic_ÿ¡
+<cÚ¡ *>(
+objeù
+);
+
+8939 
+	g¡d
+::
+o¡ršg¡»am
+ 
+os
+;
+
+8940 
+	gos
+ << "0x" << 
+	g¡d
+::
+£tfžl
+('0'è<< 
+¡d
+::
+hex
+;
+
+8941  ; 
+	gi
+ !ð
+’d
+; i +ð
+šc
+ )
+
+8942 
+os
+ << 
+¡d
+::
+£tw
+(2è<< 
+¡©ic_ÿ¡
+<>(
+by‹s
+[
+i
+]);
+
+8943  
+	gos
+.
+¡r
+();
+
+8947 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+¡d
+::¡ršg cÚ¡& 
+v®ue
+ ) {
+
+8948 
+¡d
+::
+¡ršg
+ 
+s
+ = 
+v®ue
+;
+
+8949 ifÐ
+g‘Cu¼’tCÚ‹xt
+().
+g‘CÚfig
+()->
+showInvisibËs
+() ) {
+
+8950 
+size_t
+ 
+	gi
+ = 0; i < 
+	gs
+.
+size
+(); ++i ) {
+
+8951 
+	g¡d
+::
+¡ršg
+ 
+subs
+;
+
+8952  
+	gs
+[
+i
+] ) {
+
+8953 '\n': 
+subs
+ = "\\n"; ;
+
+8954 '\t': 
+subs
+ = "\\t"; ;
+
+8957 ifÐ!
+	gsubs
+.
+em±y
+() ) {
+
+8958 
+	gs
+ = 
+s
+.
+sub¡r
+Ð0, 
+i
+ ) + 
+	gsubs
+ + s.substr( i+1 );
+
+8959 ++
+	gi
+;
+
+8963  '"' + 
+	gs
+ + '"';
+
+8965 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+¡d
+::
+w¡ršg
+ cÚ¡& 
+v®ue
+ ) {
+
+8967 
+¡d
+::
+¡ršg
+ 
+s
+;
+
+8968 
+	gs
+.
+»£rve
+Ð
+v®ue
+.
+size
+() );
+
+8969 
+size_t
+ 
+	gi
+ = 0; i < 
+	gv®ue
+.
+size
+(); ++i )
+
+8970 
+	gs
+ +ð
+v®ue
+[
+i
+] <ð0xfà? 
+¡©ic_ÿ¡
+<>( value[i] ) : '?';
+
+8971  
+	gC©ch
+::
+toSŒšg
+Ð
+s
+ );
+
+8974 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ * cÚ¡ 
+v®ue
+ ) {
+
+8975  
+v®ue
+ ? 
+C©ch
+::
+toSŒšg
+Ð
+¡d
+::
+¡ršg
+( value ) ) : std::string( "{null string}" );
+
+8978 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð* cÚ¡ 
+v®ue
+ ) {
+
+8979  
+C©ch
+::
+toSŒšg
+Ð
+¡©ic_ÿ¡
+<cÚ¡ *>Ð
+v®ue
+ ) );
+
+8982 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ 
+wch¬_t
+* cÚ¡ 
+v®ue
+ )
+
+8984  
+v®ue
+ ? 
+C©ch
+::
+toSŒšg
+Ð
+¡d
+::
+w¡ršg
+(v®ueèè: std::
+¡ršg
+( "{null string}" );
+
+8987 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+wch¬_t
+* cÚ¡ 
+v®ue
+ )
+
+8989  
+C©ch
+::
+toSŒšg
+Ð
+¡©ic_ÿ¡
+<cÚ¡ 
+wch¬_t
+*>Ð
+v®ue
+ ) );
+
+8992 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ ) {
+
+8993 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+8994 
+	goss
+ << 
+	gv®ue
+;
+
+8995 ifÐ
+	gv®ue
+ > 
+	gD‘až
+::
+hexTh»shÞd
+ )
+
+8996 
+oss
+ << " (0x" << 
+¡d
+::
+hex
+ << 
+v®ue
+ << ')';
+
+8997  
+	goss
+.
+¡r
+();
+
+9000 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ ) {
+
+9001 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+9002 
+	goss
+ << 
+	gv®ue
+;
+
+9003 ifÐ
+	gv®ue
+ > 
+	gD‘až
+::
+hexTh»shÞd
+ )
+
+9004 
+oss
+ << " (0x" << 
+¡d
+::
+hex
+ << 
+v®ue
+ << ')';
+
+9005  
+	goss
+.
+¡r
+();
+
+9008 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ ) {
+
+9009  
+C©ch
+::
+toSŒšg
+Ð
+¡©ic_ÿ¡
+<>Ð
+v®ue
+ ) );
+
+9012 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+9013 
+	g¡d
+::
+¡ršg
+ 
+åToSŒšg
+Ð
+T
+ 
+v®ue
+, 
+´ecisiÚ
+ ) {
+
+9014 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+9015 
+	goss
+ << 
+	g¡d
+::
+£�»cisiÚ
+Ð
+´ecisiÚ
+ )
+
+9016 << 
+¡d
+::
+fixed
+
+
+9017 << 
+v®ue
+;
+
+9018 
+	g¡d
+::
+¡ršg
+ 
+d
+ = 
+oss
+.
+¡r
+();
+
+9019 
+	g¡d
+::
+size_t
+ 
+i
+ = 
+d
+.
+fšd_Ï¡_nÙ_of
+( '0' );
+
+9020 ifÐ
+	gi
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ && 
+i
+ !ð
+d
+.
+size
+()-1 ) {
+
+9021 ifÐ
+d
+[
+i
+] == '.' )
+
+9022 
+i
+++;
+
+9023 
+	gd
+ = 
+d
+.
+sub¡r
+Ð0, 
+i
++1 );
+
+9025  
+	gd
+;
+
+9028 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ 
+v®ue
+ ) {
+
+9029  
+åToSŒšg
+Ð
+v®ue
+, 10 );
+
+9031 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐcÚ¡ 
+v®ue
+ ) {
+
+9032  
+åToSŒšg
+Ð
+v®ue
+, 5 ) + 'f';
+
+9035 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+boÞ
+ 
+v®ue
+ ) {
+
+9036  
+v®ue
+ ? "true" : "false";
+
+9039 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ ) {
+
+9040 iàÐ
+v®ue
+ == '\r' )
+
+9042 iàÐ
+	gv®ue
+ == '\f' )
+
+9044 iàÐ
+	gv®ue
+ == '\n' )
+
+9046 iàÐ
+	gv®ue
+ == '\t' )
+
+9048 iàÐ'\0' <ð
+v®ue
+ && value < ' ' )
+
+9049  
+toSŒšg
+Ð
+¡©ic_ÿ¡
+<>Ð
+v®ue
+ ) );
+
+9050 
+	gch¡r
+[] = "' '";
+
+9051 
+	gch¡r
+[1] = 
+v®ue
+;
+
+9052  
+	gch¡r
+;
+
+9055 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+ÐsigÃd 
+v®ue
+ ) {
+
+9056  
+toSŒšg
+Ð
+¡©ic_ÿ¡
+<>Ð
+v®ue
+ ) );
+
+9059 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ ) {
+
+9060  
+toSŒšg
+Ð
+¡©ic_ÿ¡
+<>Ð
+v®ue
+ ) );
+
+9063 #ifdeà
+CATCH_CONFIG_CPP11_LONG_LONG
+
+
+9064 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ ) {
+
+9065 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+9066 
+	goss
+ << 
+	gv®ue
+;
+
+9067 ifÐ
+	gv®ue
+ > 
+	gD‘až
+::
+hexTh»shÞd
+ )
+
+9068 
+oss
+ << " (0x" << 
+¡d
+::
+hex
+ << 
+v®ue
+ << ')';
+
+9069  
+	goss
+.
+¡r
+();
+
+9071 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+v®ue
+ ) {
+
+9072 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+9073 
+	goss
+ << 
+	gv®ue
+;
+
+9074 ifÐ
+	gv®ue
+ > 
+	gD‘až
+::
+hexTh»shÞd
+ )
+
+9075 
+oss
+ << " (0x" << 
+¡d
+::
+hex
+ << 
+v®ue
+ << ')';
+
+9076  
+	goss
+.
+¡r
+();
+
+9080 #ifdeà
+CATCH_CONFIG_CPP11_NULLPTR
+
+
+9081 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+¡d
+::
+nuÎ±r_t
+ ) {
+
+9086 #ifdeà
+__OBJC__
+
+
+9087 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+NSSŒšg
+ cÚ¡ * cÚ¡& 
+ns¡ršg
+ ) {
+
+9088 ifÐ!
+ns¡ršg
+ )
+
+9090  "@" + 
+toSŒšg
+([
+ns¡ršg
+ 
+UTF8SŒšg
+]);
+
+9092 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+NSSŒšg
+ * 
+CATCH_ARC_STRONG
+ & 
+ns¡ršg
+ ) {
+
+9093 ifÐ!
+ns¡ršg
+ )
+
+9095  "@" + 
+toSŒšg
+([
+ns¡ršg
+ 
+UTF8SŒšg
+]);
+
+9097 
+	g¡d
+::
+¡ršg
+ 
+toSŒšg
+Ð
+NSObjeù
+* cÚ¡& 
+nsObjeù
+ ) {
+
+9098  
+toSŒšg
+Ð[
+nsObjeù
+ 
+desü�tiÚ
+] );
+
+9105 
+	#TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
+
+
+	)
+
+9107 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+9109 
+	gResuÉBužd”
+::
+ResuÉBužd”
+ÐcÚ¡* 
+maüoName
+,
+
+9110 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+,
+
+9111 cÚ¡* 
+ÿ±u»dEx´essiÚ
+,
+
+9112 
+ResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+»suÉDi¥os™iÚ
+,
+
+9113 cÚ¡* 
+£cÚdArg
+ )
+
+9114 : 
+m_as£¹iÚInfo
+Ð
+maüoName
+, 
+lšeInfo
+, 
+ÿ±u»dEx´essiÚ
+, 
+»suÉDi¥os™iÚ
+, 
+£cÚdArg
+ ),
+
+9115 
+m_shouldDebugB»ak
+Ð
+çl£
+ ),
+
+9116 
+m_shouldThrow
+Ð
+çl£
+ ),
+
+9117 
+m_gu¬dExû±iÚ
+Ð
+çl£
+ ),
+
+9118 
+m_u£dSŒ—m
+Ð
+çl£
+ )
+
+9121 
+	gResuÉBužd”
+::~
+ResuÉBužd”
+() {
+
+9122 #ià
+defšed
+(
+CATCH_CONFIG_FAST_COMPILE
+)
+
+9123 iàÐ
+m_gu¬dExû±iÚ
+ ) {
+
+9124 
+¡»am
+().
+oss
+ << "Exception�ranslation was disabled by CATCH_CONFIG_FAST_COMPILE";
+
+9125 
+ÿ±u»ResuÉ
+Ð
+ResuÉWas
+::
+Th»wExû±iÚ
+ );
+
+9126 
+g‘Cu¼’tCÚ‹xt
+().
+g‘ResuÉC­tu»
+()->
+exû±iÚE¬lyR•Ü‹d
+();
+
+9131 
+	gResuÉBužd”
+& ResuÉBužd”::
+£tResuÉTy³
+Ð
+ResuÉWas
+::
+OfTy³
+ 
+»suÉ
+ ) {
+
+9132 
+m_d©a
+.
+»suÉTy³
+ = 
+»suÉ
+;
+
+9133  *
+	gthis
+;
+
+9135 
+	gResuÉBužd”
+& ResuÉBužd”::
+£tResuÉTy³
+Ð
+boÞ
+ 
+»suÉ
+ ) {
+
+9136 
+m_d©a
+.
+»suÉTy³
+ = 
+»suÉ
+ ? 
+ResuÉWas
+::
+Ok
+ : ResuÉWas::
+Ex´essiÚFažed
+;
+
+9137  *
+	gthis
+;
+
+9140 
+	gResuÉBužd”
+::
+’dEx´essiÚ
+Ð
+Decompo£dEx´essiÚ
+ cÚ¡& 
+ex´
+ ) {
+
+9142 ifÐ
+isF®£Te¡
+Ð
+m_as£¹iÚInfo
+.
+»suÉDi¥os™iÚ
+ ) ) {
+
+9143 
+m_d©a
+.
+Ãg©e
+Ð
+ex´
+.
+isBš¬yEx´essiÚ
+() );
+
+9146 
+g‘ResuÉC­tu»
+().
+as£¹iÚRun
+();
+
+9148 if(
+g‘Cu¼’tCÚ‹xt
+().
+g‘CÚfig
+()->
+šþudeSucûssfulResuÉs
+(è|| 
+	gm_d©a
+.
+	g»suÉTy³
+ !ð
+ResuÉWas
+::
+Ok
+)
+
+9150 
+As£¹iÚResuÉ
+ 
+»suÉ
+ = 
+bužd
+Ð
+ex´
+ );
+
+9151 
+hªdËResuÉ
+Ð
+»suÉ
+ );
+
+9154 
+g‘ResuÉC­tu»
+().
+as£¹iÚPas£d
+();
+
+9157 
+	gResuÉBužd”
+::
+u£AùiveExû±iÚ
+Ð
+ResuÉDi¥os™iÚ
+::
+FÏgs
+ 
+»suÉDi¥os™iÚ
+ ) {
+
+9158 
+m_as£¹iÚInfo
+.
+»suÉDi¥os™iÚ
+ =„esultDisposition;
+
+9159 
+¡»am
+().
+	goss
+ << 
+	gC©ch
+::
+Œª¦©eAùiveExû±iÚ
+();
+
+9160 
+ÿ±u»ResuÉ
+Ð
+ResuÉWas
+::
+Th»wExû±iÚ
+ );
+
+9163 
+	gResuÉBužd”
+::
+ÿ±u»ResuÉ
+Ð
+ResuÉWas
+::
+OfTy³
+ 
+»suÉTy³
+ ) {
+
+9164 
+£tResuÉTy³
+Ð
+»suÉTy³
+ );
+
+9165 
+ÿ±u»Ex´essiÚ
+();
+
+9168 
+	gResuÉBužd”
+::
+ÿ±u»Ex³ùedExû±iÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+ex³ùedMes§ge
+ ) {
+
+9169 ifÐ
+ex³ùedMes§ge
+.
+em±y
+() )
+
+9170 
+ÿ±u»Ex³ùedExû±iÚ
+Ð
+M©ch”s
+::
+Im¶
+::
+M©chAÎOf
+<
+¡d
+::
+¡ršg
+>() );
+
+9172 
+ÿ±u»Ex³ùedExû±iÚ
+Ð
+M©ch”s
+::
+Equ®s
+Ð
+ex³ùedMes§ge
+ ) );
+
+9175 
+	gResuÉBužd”
+::
+ÿ±u»Ex³ùedExû±iÚ
+Ð
+M©ch”s
+::
+Im¶
+::
+M©ch”Ba£
+<
+¡d
+::
+¡ršg
+> cÚ¡& 
+m©ch”
+ ) {
+
+9177 
+as£¹
+Ð!
+isF®£Te¡
+Ð
+m_as£¹iÚInfo
+.
+»suÉDi¥os™iÚ
+ ) );
+
+9178 
+As£¹iÚResuÉD©a
+ 
+	gd©a
+ = 
+m_d©a
+;
+
+9179 
+	gd©a
+.
+	g»suÉTy³
+ = 
+ResuÉWas
+::
+Ok
+;
+
+9180 
+	gd©a
+.
+	g»cÚ¡ruùedEx´essiÚ
+ = 
+ÿ±u»dEx´essiÚW™hSecÚdArgum’t
+(
+m_as£¹iÚInfo
+.
+ÿ±u»dEx´essiÚ
+, m_as£¹iÚInfo.
+£cÚdArg
+);
+
+9182 
+	g¡d
+::
+¡ršg
+ 
+aùu®Mes§ge
+ = 
+C©ch
+::
+Œª¦©eAùiveExû±iÚ
+();
+
+9183 ifÐ!
+	gm©ch”
+.
+m©ch
+Ð
+aùu®Mes§ge
+ ) ) {
+
+9184 
+	gd©a
+.
+	g»suÉTy³
+ = 
+ResuÉWas
+::
+Ex´essiÚFažed
+;
+
+9185 
+	gd©a
+.
+	g»cÚ¡ruùedEx´essiÚ
+ = 
+aùu®Mes§ge
+;
+
+9187 
+As£¹iÚResuÉ
+ 
+»suÉ
+Ð
+m_as£¹iÚInfo
+, 
+d©a
+ );
+
+9188 
+hªdËResuÉ
+Ð
+»suÉ
+ );
+
+9191 
+	gResuÉBužd”
+::
+ÿ±u»Ex´essiÚ
+() {
+
+9192 
+As£¹iÚResuÉ
+ 
+»suÉ
+ = 
+bužd
+();
+
+9193 
+hªdËResuÉ
+Ð
+»suÉ
+ );
+
+9196 
+	gResuÉBužd”
+::
+hªdËResuÉ
+Ð
+As£¹iÚResuÉ
+ cÚ¡& 
+»suÉ
+ )
+
+9198 
+g‘ResuÉC­tu»
+().
+as£¹iÚEnded
+Ð
+»suÉ
+ );
+
+9200 ifÐ!
+	g»suÉ
+.
+isOk
+() ) {
+
+9201 ifÐ
+g‘Cu¼’tCÚ‹xt
+().
+g‘CÚfig
+()->
+shouldDebugB»ak
+() )
+
+9202 
+	gm_shouldDebugB»ak
+ = 
+Œue
+;
+
+9203 ifÐ
+g‘Cu¼’tCÚ‹xt
+().
+g‘RuÂ”
+()->
+abÜtšg
+(è|| (
+	gm_as£¹iÚInfo
+.
+	g»suÉDi¥os™iÚ
+ & 
+	gResuÉDi¥os™iÚ
+::
+NÜm®
+) )
+
+9204 
+m_shouldThrow
+ = 
+Œue
+;
+
+9208 
+	gResuÉBužd”
+::
+»aù
+() {
+
+9209 #ià
+defšed
+(
+CATCH_CONFIG_FAST_COMPILE
+)
+
+9210 ià(
+m_shouldDebugB»ak
+) {
+
+9215 
+CATCH_BREAK_INTO_DEBUGGER
+();
+
+9218 ifÐ
+	gm_shouldThrow
+ )
+
+9219 
+throw
+ 
+	gC©ch
+::
+Te¡Fažu»Exû±iÚ
+();
+
+9222 
+boÞ
+ 
+	gResuÉBužd”
+::
+shouldDebugB»ak
+(ècÚ¡ {  
+m_shouldDebugB»ak
+; }
+
+9223 
+boÞ
+ 
+	gResuÉBužd”
+::
+®lowThrows
+(ècÚ¡ {  
+g‘Cu¼’tCÚ‹xt
+().
+g‘CÚfig
+()->allowThrows(); }
+
+9225 
+As£¹iÚResuÉ
+ 
+	gResuÉBužd”
+::
+bužd
+() const
+
+9227  
+bužd
+Ð*
+this
+ );
+
+9236 
+As£¹iÚResuÉ
+ 
+	gResuÉBužd”
+::
+bužd
+Ð
+Decompo£dEx´essiÚ
+ cÚ¡& 
+ex´
+ ) const
+
+9238 
+as£¹
+Ð
+m_d©a
+.
+»suÉTy³
+ !ð
+ResuÉWas
+::
+Unknown
+ );
+
+9239 
+As£¹iÚResuÉD©a
+ 
+	gd©a
+ = 
+m_d©a
+;
+
+9241 if(
+	gm_u£dSŒ—m
+)
+
+9242 
+	gd©a
+.
+	gmes§ge
+ = 
+m_¡»am
+().
+oss
+.
+¡r
+();
+
+9243 
+	gd©a
+.
+	gdecompo£dEx´essiÚ
+ = &
+ex´
+;
+
+9244  
+As£¹iÚResuÉ
+Ð
+m_as£¹iÚInfo
+, 
+d©a
+ );
+
+9247 
+	gResuÉBužd”
+::
+»cÚ¡ruùEx´essiÚ
+Ð
+¡d
+::
+¡ršg
+& 
+de¡
+ ) const {
+
+9248 
+de¡
+ = 
+ÿ±u»dEx´essiÚW™hSecÚdArgum’t
+(
+m_as£¹iÚInfo
+.
+ÿ±u»dEx´essiÚ
+, m_as£¹iÚInfo.
+£cÚdArg
+);
+
+9251 
+	gResuÉBužd”
+::
+£tExû±iÚGu¬d
+() {
+
+9252 
+m_gu¬dExû±iÚ
+ = 
+Œue
+;
+
+9254 
+	gResuÉBužd”
+::
+un£tExû±iÚGu¬d
+() {
+
+9255 
+m_gu¬dExû±iÚ
+ = 
+çl£
+;
+
+9261 
+	#TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
+
+
+	)
+
+9263 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+9265 
+	gTagAlŸsRegi¡ry
+::~
+TagAlŸsRegi¡ry
+() {}
+
+9267 
+O±iÚ
+<
+TagAlŸs
+> 
+TagAlŸsRegi¡ry
+::
+fšd
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+®Ÿs
+ ) const {
+
+9268 
+¡d
+::
+m­
+<¡d::
+¡ršg
+, 
+	gTagAlŸs
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»gi¡ry
+.
+fšd
+Ð
+®Ÿs
+ );
+
+9269 ifÐ
+	g™
+ !ð
+m_»gi¡ry
+.
+’d
+() )
+
+9270  
+™
+->
+£cÚd
+;
+
+9272  
+	gO±iÚ
+<
+	gTagAlŸs
+>();
+
+9275 
+	g¡d
+::
+¡ršg
+ 
+TagAlŸsRegi¡ry
+::
+ex·ndAlŸ£s
+Ð
+¡d
+::¡ršg cÚ¡& 
+uÃx·ndedTe¡S³c
+ ) const {
+
+9276 
+¡d
+::
+¡ršg
+ 
+ex·ndedTe¡S³c
+ = 
+uÃx·ndedTe¡S³c
+;
+
+9277  
+	g¡d
+::
+m­
+<
+¡d
+::
+¡ršg
+, 
+	gTagAlŸs
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»gi¡ry
+.
+begš
+(), 
+	g™End
+ = m_»gi¡ry.
+’d
+();
+
+9278 
+	g™
+ !ð
+™End
+;
+
+9279 ++
+	g™
+ ) {
+
+9280 
+	g¡d
+::
+size_t
+ 
+pos
+ = 
+ex·ndedTe¡S³c
+.
+fšd
+Ð
+™
+->
+fœ¡
+ );
+
+9281 ifÐ
+	gpos
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ ) {
+
+9282 
+ex·ndedTe¡S³c
+ =ƒx·ndedTe¡S³c.
+sub¡r
+Ð0, 
+pos
+ ) +
+
+9283 
+	g™
+->
+	g£cÚd
+.
+	g�g
+ +
+
+9284 
+	gex·ndedTe¡S³c
+.
+sub¡r
+Ð
+pos
+ + 
+™
+->
+fœ¡
+.
+size
+() );
+
+9287  
+	gex·ndedTe¡S³c
+;
+
+9290 
+	gTagAlŸsRegi¡ry
+::
+add
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+®Ÿs
+, std::¡ršg cÚ¡& 
+�g
+, 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ ) {
+
+9292 ifÐ!
+¡¬tsW™h
+Ð
+®Ÿs
+, "[@" ) || !
+’dsW™h
+(‡lias, ']' ) ) {
+
+9293 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+9294 
+	goss
+ << 
+CÞour
+ÐCÞour::
+Red
+ )
+
+9295 << "”rÜ:�ag‡lŸs, \"" << 
+®Ÿs
+ << "\" is‚ot of�he form [@alias‚ame].\n"
+
+9296 << 
+CÞour
+ÐCÞour::
+FžeName
+ )
+
+9297 << 
+lšeInfo
+ << '\n';
+
+9298 
+throw
+ 
+	g¡d
+::
+domaš_”rÜ
+Ð
+oss
+.
+¡r
+().
+c_¡r
+() );
+
+9300 ifÐ!
+	gm_»gi¡ry
+.
+š£¹
+Ð
+¡d
+::
+make_·œ
+Ð
+®Ÿs
+, 
+TagAlŸs
+Ð
+�g
+, 
+lšeInfo
+ ) ) ).
+	g£cÚd
+ ) {
+
+9301 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+9302 
+	goss
+ << 
+CÞour
+ÐCÞour::
+Red
+ )
+
+9303 << "”rÜ:�ag‡lŸs, \"" << 
+®Ÿs
+ << "\"‡lready„egistered.\n"
+
+9305 << 
+CÞour
+ÐCÞour::
+Red
+ ) << 
+fšd
+(
+®Ÿs
+)->
+lšeInfo
+ << '\n'
+
+9306 << 
+CÞour
+ÐCÞour::
+Red
+ ) << "\tRedefined‡t "
+
+9307 << 
+CÞour
+ÐCÞour::
+FžeName
+è<< 
+lšeInfo
+ << '\n';
+
+9308 
+throw
+ 
+	g¡d
+::
+domaš_”rÜ
+Ð
+oss
+.
+¡r
+().
+c_¡r
+() );
+
+9312 
+	gITagAlŸsRegi¡ry
+::~
+ITagAlŸsRegi¡ry
+() {}
+
+9314 
+ITagAlŸsRegi¡ry
+ cÚ¡& ITagAlŸsRegi¡ry::
+g‘
+() {
+
+9315  
+g‘Regi¡ryHub
+().
+g‘TagAlŸsRegi¡ry
+();
+
+9318 
+	gRegi¡¿rFÜTagAlŸ£s
+::
+Regi¡¿rFÜTagAlŸ£s
+ÐcÚ¡* 
+®Ÿs
+, cÚ¡* 
+�g
+, 
+SourûLšeInfo
+ cÚ¡& 
+lšeInfo
+ ) {
+
+9319 
+g‘Mu�bËRegi¡ryHub
+().
+»gi¡”TagAlŸs
+Ð
+®Ÿs
+, 
+�g
+, 
+lšeInfo
+ );
+
+9326 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+9327 
+Çme¥aû
+ 
+	gM©ch”s
+ {
+
+9329 
+Çme¥aû
+ 
+	gStdSŒšg
+ {
+
+9331 
+	gCa£dSŒšg
+::
+Ca£dSŒšg
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ )
+
+9332 : 
+m_ÿ£S’s™iv™y
+Ð
+ÿ£S’s™iv™y
+ ),
+
+9333 
+m_¡r
+Ð
+adju¡SŒšg
+Ð
+¡r
+ ) )
+
+9335 
+	g¡d
+::
+¡ršg
+ 
+Ca£dSŒšg
+::
+adju¡SŒšg
+Ð
+¡d
+::¡ršg cÚ¡& 
+¡r
+ ) const {
+
+9336  
+m_ÿ£S’s™iv™y
+ =ð
+Ca£S’s™ive
+::
+No
+
+
+9337 ? 
+toLow”
+Ð
+¡r
+ )
+
+9338 : 
+¡r
+;
+
+9340 
+	g¡d
+::
+¡ršg
+ 
+Ca£dSŒšg
+::
+ÿ£S’s™iv™ySuffix
+() const {
+
+9341  
+m_ÿ£S’s™iv™y
+ =ð
+Ca£S’s™ive
+::
+No
+
+
+9343 : 
+¡d
+::
+¡ršg
+();
+
+9346 
+	gSŒšgM©ch”Ba£
+::
+SŒšgM©ch”Ba£
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Ý”©iÚ
+, 
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ )
+
+9347 : 
+m_com·¿tÜ
+Ð
+com·¿tÜ
+ ),
+
+9348 
+m_Ý”©iÚ
+Ð
+Ý”©iÚ
+ ) {
+
+9351 
+	g¡d
+::
+¡ršg
+ 
+SŒšgM©ch”Ba£
+::
+desüibe
+() const {
+
+9352 
+¡d
+::
+¡ršg
+ 
+desü�tiÚ
+;
+
+9353 
+	gdesü�tiÚ
+.
+»£rve
+(5 + 
+m_Ý”©iÚ
+.
+size
+(è+ 
+m_com·¿tÜ
+.
+m_¡r
+.size() +
+
+9354 
+m_com·¿tÜ
+.
+ÿ£S’s™iv™ySuffix
+().
+size
+());
+
+9355 
+	gdesü�tiÚ
+ +ð
+m_Ý”©iÚ
+;
+
+9356 
+	gdesü�tiÚ
+ += ": \"";
+
+9357 
+	gdesü�tiÚ
+ +ð
+m_com·¿tÜ
+.
+m_¡r
+;
+
+9358 
+	gdesü�tiÚ
+ += "\"";
+
+9359 
+	gdesü�tiÚ
+ +ð
+m_com·¿tÜ
+.
+ÿ£S’s™iv™ySuffix
+();
+
+9360  
+	gdesü�tiÚ
+;
+
+9363 
+	gEqu®sM©ch”
+::
+Equ®sM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ ) : 
+SŒšgM©ch”Ba£
+( "equals", comparator ) {}
+
+9365 
+boÞ
+ 
+	gEqu®sM©ch”
+::
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) const {
+
+9366  
+m_com·¿tÜ
+.
+adju¡SŒšg
+Ð
+sourû
+ ) =ðm_com·¿tÜ.
+m_¡r
+;
+
+9369 
+	gCÚ�šsM©ch”
+::
+CÚ�šsM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ ) : 
+SŒšgM©ch”Ba£
+( "contains", comparator ) {}
+
+9371 
+boÞ
+ 
+	gCÚ�šsM©ch”
+::
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) const {
+
+9372  
+cÚ�šs
+Ð
+m_com·¿tÜ
+.
+adju¡SŒšg
+Ð
+sourû
+ ), m_com·¿tÜ.
+m_¡r
+ );
+
+9375 
+	gS�¹sW™hM©ch”
+::
+S�¹sW™hM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ ) : 
+SŒšgM©ch”Ba£
+( "starts with", comparator ) {}
+
+9377 
+boÞ
+ 
+	gS�¹sW™hM©ch”
+::
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) const {
+
+9378  
+¡¬tsW™h
+Ð
+m_com·¿tÜ
+.
+adju¡SŒšg
+Ð
+sourû
+ ), m_com·¿tÜ.
+m_¡r
+ );
+
+9381 
+	gEndsW™hM©ch”
+::
+EndsW™hM©ch”
+Ð
+Ca£dSŒšg
+ cÚ¡& 
+com·¿tÜ
+ ) : 
+SŒšgM©ch”Ba£
+( "ends with", comparator ) {}
+
+9383 
+boÞ
+ 
+	gEndsW™hM©ch”
+::
+m©ch
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+sourû
+ ) const {
+
+9384  
+’dsW™h
+Ð
+m_com·¿tÜ
+.
+adju¡SŒšg
+Ð
+sourû
+ ), m_com·¿tÜ.
+m_¡r
+ );
+
+9389 
+	gStdSŒšg
+::
+Equ®sM©ch”
+ 
+Equ®s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ ) {
+
+9390  
+StdSŒšg
+::
+Equ®sM©ch”
+ÐStdSŒšg::
+Ca£dSŒšg
+Ð
+¡r
+, 
+ÿ£S’s™iv™y
+) );
+
+9392 
+	gStdSŒšg
+::
+CÚ�šsM©ch”
+ 
+CÚ�šs
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ ) {
+
+9393  
+StdSŒšg
+::
+CÚ�šsM©ch”
+ÐStdSŒšg::
+Ca£dSŒšg
+Ð
+¡r
+, 
+ÿ£S’s™iv™y
+) );
+
+9395 
+	gStdSŒšg
+::
+EndsW™hM©ch”
+ 
+EndsW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ ) {
+
+9396  
+StdSŒšg
+::
+EndsW™hM©ch”
+ÐStdSŒšg::
+Ca£dSŒšg
+Ð
+¡r
+, 
+ÿ£S’s™iv™y
+) );
+
+9398 
+	gStdSŒšg
+::
+S�¹sW™hM©ch”
+ 
+S�¹sW™h
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+Ca£S’s™ive
+::
+Choiû
+ 
+ÿ£S’s™iv™y
+ ) {
+
+9399  
+StdSŒšg
+::
+S�¹sW™hM©ch”
+ÐStdSŒšg::
+Ca£dSŒšg
+Ð
+¡r
+, 
+ÿ£S’s™iv™y
+) );
+
+9405 
+	#TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED
+
+
+	)
+
+9407 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+9409 
+þass
+ 
+	gMuÉ�ËR•Ü‹rs
+ : 
+public
+ 
+Sh¬edIm¶
+<
+ISŒ—mšgR•Ü‹r
+> {
+
+9410 
+¡d
+::
+	tveùÜ
+<
+	tPŒ
+<
+	tISŒ—mšgR•Ü‹r
+> > 
+	tR•Ü‹rs
+;
+
+9411 
+R•Ü‹rs
+ 
+	gm_»pÜ‹rs
+;
+
+9413 
+	gpublic
+:
+
+9414 
+add
+Ð
+PŒ
+<
+ISŒ—mšgR•Ü‹r
+> cÚ¡& 
+»pÜ‹r
+ ) {
+
+9415 
+m_»pÜ‹rs
+.
+push_back
+Ð
+»pÜ‹r
+ );
+
+9418 
+	gpublic
+:
+
+9420 
+vœtu®
+ 
+R•Ü‹rP»ã»nûs
+ 
+g‘P»ã»nûs
+(ècÚ¡ 
+CATCH_OVERRIDE
+ {
+
+9421  
+m_»pÜ‹rs
+[0]->
+g‘P»ã»nûs
+();
+
+9424 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¥ec
+ ) 
+CATCH_OVERRIDE
+ {
+
+9425  
+R•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9426 
+	g™
+ !ð
+™End
+;
+
+9427 ++
+	g™
+ )
+
+9428 (*
+	g™
+)->
+noM©chšgTe¡Ca£s
+Ð
+¥ec
+ );
+
+9431 
+vœtu®
+ 
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ cÚ¡& 
+‹¡RunInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9432  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9433 
+	g™
+ !ð
+™End
+;
+
+9434 ++
+	g™
+ )
+
+9435 (*
+	g™
+)->
+‹¡RunS�¹šg
+Ð
+‹¡RunInfo
+ );
+
+9438 
+vœtu®
+ 
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& 
+groupInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9439  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9440 
+	g™
+ !ð
+™End
+;
+
+9441 ++
+	g™
+ )
+
+9442 (*
+	g™
+)->
+‹¡GroupS�¹šg
+Ð
+groupInfo
+ );
+
+9445 
+vœtu®
+ 
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9446  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9447 
+	g™
+ !ð
+™End
+;
+
+9448 ++
+	g™
+ )
+
+9449 (*
+	g™
+)->
+‹¡Ca£S�¹šg
+Ð
+‹¡Info
+ );
+
+9452 
+vœtu®
+ 
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9453  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9454 
+	g™
+ !ð
+™End
+;
+
+9455 ++
+	g™
+ )
+
+9456 (*
+	g™
+)->
+£ùiÚS�¹šg
+Ð
+£ùiÚInfo
+ );
+
+9459 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ cÚ¡& 
+as£¹iÚInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9460  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9461 
+	g™
+ !ð
+™End
+;
+
+9462 ++
+	g™
+ )
+
+9463 (*
+	g™
+)->
+as£¹iÚS�¹šg
+Ð
+as£¹iÚInfo
+ );
+
+9467 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+as£¹iÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9468 
+boÞ
+ 
+	gþ—rBufãr
+ = 
+çl£
+;
+
+9469  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9470 
+	g™
+ !ð
+™End
+;
+
+9471 ++
+	g™
+ )
+
+9472 
+	gþ—rBufãr
+ |ð(*
+™
+)->
+as£¹iÚEnded
+Ð
+as£¹iÚS�ts
+ );
+
+9473  
+	gþ—rBufãr
+;
+
+9476 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+£ùiÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9477  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9478 
+	g™
+ !ð
+™End
+;
+
+9479 ++
+	g™
+ )
+
+9480 (*
+	g™
+)->
+£ùiÚEnded
+Ð
+£ùiÚS�ts
+ );
+
+9483 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+‹¡Ca£S�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9484  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9485 
+	g™
+ !ð
+™End
+;
+
+9486 ++
+	g™
+ )
+
+9487 (*
+	g™
+)->
+‹¡Ca£Ended
+Ð
+‹¡Ca£S�ts
+ );
+
+9490 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+‹¡GroupS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9491  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9492 
+	g™
+ !ð
+™End
+;
+
+9493 ++
+	g™
+ )
+
+9494 (*
+	g™
+)->
+‹¡GroupEnded
+Ð
+‹¡GroupS�ts
+ );
+
+9497 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+‹¡RunS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9498  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9499 
+	g™
+ !ð
+™End
+;
+
+9500 ++
+	g™
+ )
+
+9501 (*
+	g™
+)->
+‹¡RunEnded
+Ð
+‹¡RunS�ts
+ );
+
+9504 
+vœtu®
+ 
+sk�Te¡
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9505  
+	gR•Ü‹rs
+::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+m_»pÜ‹rs
+.
+begš
+(), 
+	g™End
+ = m_»pÜ‹rs.
+’d
+();
+
+9506 
+	g™
+ !ð
+™End
+;
+
+9507 ++
+	g™
+ )
+
+9508 (*
+	g™
+)->
+sk�Te¡
+Ð
+‹¡Info
+ );
+
+9511 
+vœtu®
+ 
+MuÉ�ËR•Ü‹rs
+* 
+ŒyAsMuÉi
+(è
+	gCATCH_OVERRIDE
+ {
+
+9512  
+	gthis
+;
+
+9517 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+addR•Ü‹r
+Ð
+PŒ
+<
+ISŒ—mšgR•Ü‹r
+> cÚ¡& 
+exi¡šgR•Ü‹r
+, PŒ<ISŒ—mšgR•Ü‹r> cÚ¡& 
+add™iÚ®R•Ü‹r
+ ) {
+
+9518 
+	gPŒ
+<
+	gISŒ—mšgR•Ü‹r
+> 
+	g»suÉšgR•Ü‹r
+;
+
+9520 ifÐ
+	gexi¡šgR•Ü‹r
+ ) {
+
+9521 
+MuÉ�ËR•Ü‹rs
+* 
+	gmuÉi
+ = 
+exi¡šgR•Ü‹r
+->
+ŒyAsMuÉi
+();
+
+9522 ifÐ!
+	gmuÉi
+ ) {
+
+9523 
+	gmuÉi
+ = 
+Ãw
+ 
+MuÉ�ËR•Ü‹rs
+;
+
+9524 
+	g»suÉšgR•Ü‹r
+ = 
+PŒ
+<
+ISŒ—mšgR•Ü‹r
+>Ð
+muÉi
+ );
+
+9525 ifÐ
+	gexi¡šgR•Ü‹r
+ )
+
+9526 
+	gmuÉi
+->
+add
+Ð
+exi¡šgR•Ü‹r
+ );
+
+9529 
+	g»suÉšgR•Ü‹r
+ = 
+exi¡šgR•Ü‹r
+;
+
+9530 
+	gmuÉi
+->
+add
+Ð
+add™iÚ®R•Ü‹r
+ );
+
+9533 
+	g»suÉšgR•Ü‹r
+ = 
+add™iÚ®R•Ü‹r
+;
+
+9535  
+	g»suÉšgR•Ü‹r
+;
+
+9541 
+	#TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
+
+
+	)
+
+9544 
+	#TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
+
+
+	)
+
+9546 
+	~<c¡ršg
+>
+
+9547 
+	~<cæßt
+>
+
+9548 
+	~<c¡dio
+>
+
+9549 
+	~<as£¹.h
+>
+
+9551 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+9553 
+	gÇme¥aû
+ {
+
+9556 
+	g¡d
+::
+¡ršg
+ 
+g‘FÜm©‹dDu¿tiÚ
+Ð
+du¿tiÚ
+ ) {
+
+9561 cÚ¡ 
+size_t
+ 
+maxDoubËSize
+ = 
+DBL_MAX_10_EXP
+ + 1 + 1 + 3 + 1;
+
+9562 
+	gbufãr
+[
+maxDoubËSize
+];
+
+9565 
+E¼noGu¬d
+ 
+	ggu¬d
+;
+
+9566 #ifdeà
+_MSC_VER
+
+
+9567 
+¥rštf_s
+(
+bufãr
+, "%.3f", 
+du¿tiÚ
+);
+
+9569 
+¥rštf
+(
+bufãr
+, "%.3f", 
+du¿tiÚ
+);
+
+9571  
+	g¡d
+::
+¡ršg
+(
+bufãr
+);
+
+9575 
+	gSŒ—mšgR•Ü‹rBa£
+ : 
+Sh¬edIm¶
+<
+ISŒ—mšgR•Ü‹r
+> {
+
+9577 
+SŒ—mšgR•Ü‹rBa£
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+_cÚfig
+ )
+
+9578 : 
+m_cÚfig
+Ð
+_cÚfig
+.
+fuÎCÚfig
+() ),
+
+9579 
+¡»am
+Ð
+_cÚfig
+.stream() )
+
+9581 
+	gm_»pÜ‹rP»fs
+.
+	gshouldRedœeùStdOut
+ = 
+çl£
+;
+
+9584 
+vœtu®
+ 
+R•Ü‹rP»ã»nûs
+ 
+g‘P»ã»nûs
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+9585  
+	gm_»pÜ‹rP»fs
+;
+
+9588 
+	gvœtu®
+ ~
+SŒ—mšgR•Ü‹rBa£
+(è
+	gCATCH_OVERRIDE
+;
+
+9590 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& ) 
+CATCH_OVERRIDE
+ {}
+
+9592 
+vœtu®
+ 
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ cÚ¡& 
+_‹¡RunInfo
+ ) 
+CATCH_OVERRIDE
+ {
+
+9593 
+cu¼’tTe¡RunInfo
+ = 
+_‹¡RunInfo
+;
+
+9595 
+vœtu®
+ 
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& 
+_groupInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9596 
+	gcu¼’tGroupInfo
+ = 
+_groupInfo
+;
+
+9599 
+vœtu®
+ 
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+_‹¡Info
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9600 
+	gcu¼’tTe¡Ca£Info
+ = 
+_‹¡Info
+;
+
+9602 
+vœtu®
+ 
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+_£ùiÚInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9603 
+	gm_£ùiÚS�ck
+.
+push_back
+Ð
+_£ùiÚInfo
+ );
+
+9606 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {
+
+9607 
+	gm_£ùiÚS�ck
+.
+pÝ_back
+();
+
+9609 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {
+
+9610 
+	gcu¼’tTe¡Ca£Info
+.
+»£t
+();
+
+9612 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {
+
+9613 
+	gcu¼’tGroupInfo
+.
+»£t
+();
+
+9615 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {
+
+9616 
+	gcu¼’tTe¡Ca£Info
+.
+»£t
+();
+
+9617 
+	gcu¼’tGroupInfo
+.
+»£t
+();
+
+9618 
+	gcu¼’tTe¡RunInfo
+.
+»£t
+();
+
+9621 
+vœtu®
+ 
+sk�Te¡
+Ð
+Te¡Ca£Info
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {
+
+9626 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+	gm_cÚfig
+;
+
+9627 
+	g¡d
+::
+o¡»am
+& 
+¡»am
+;
+
+9629 
+	gLazyS�t
+<
+	gTe¡RunInfo
+> 
+	gcu¼’tTe¡RunInfo
+;
+
+9630 
+	gLazyS�t
+<
+	gGroupInfo
+> 
+	gcu¼’tGroupInfo
+;
+
+9631 
+	gLazyS�t
+<
+	gTe¡Ca£Info
+> 
+	gcu¼’tTe¡Ca£Info
+;
+
+9633 
+	g¡d
+::
+veùÜ
+<
+SeùiÚInfo
+> 
+m_£ùiÚS�ck
+;
+
+9634 
+R•Ü‹rP»ã»nûs
+ 
+	gm_»pÜ‹rP»fs
+;
+
+9637 
+	gCumuÏtiveR•Ü‹rBa£
+ : 
+Sh¬edIm¶
+<
+ISŒ—mšgR•Ü‹r
+> {
+
+9638 
+‹m¶©e
+<
+ty³Çme
+ 
+T
+,�y³Çm�
+	gChždNodeT
+>
+
+9639 
+	gNode
+ : 
+Sh¬edIm¶
+<> {
+
+9640 
+ex¶ic™
+ 
+Node
+Ð
+T
+ cÚ¡& 
+_v®ue
+ ) : 
+v®ue
+( _value ) {}
+
+9641 
+vœtu®
+ ~
+Node
+() {}
+
+9643 
+¡d
+::
+	tveùÜ
+<
+	tPŒ
+<
+	tChždNodeT
+> > 
+	tChždNodes
+;
+
+9644 
+T
+ 
+	gv®ue
+;
+
+9645 
+ChždNodes
+ 
+	gchžd»n
+;
+
+9647 
+	gSeùiÚNode
+ : 
+Sh¬edIm¶
+<> {
+
+9648 
+ex¶ic™
+ 
+SeùiÚNode
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+_¡©s
+ ) : 
+¡©s
+( _stats ) {}
+
+9649 
+vœtu®
+ ~
+SeùiÚNode
+();
+
+9651 
+boÞ
+ 
+	gÝ”©Ü
+ =ðÐ
+SeùiÚNode
+ cÚ¡& 
+Ùh”
+ ) const {
+
+9652  
+¡©s
+.
+£ùiÚInfo
+.
+lšeInfo
+ =ð
+Ùh”
+.stats.sectionInfo.lineInfo;
+
+9654 
+boÞ
+ 
+	gÝ”©Ü
+ =ðÐ
+PŒ
+<
+SeùiÚNode
+> cÚ¡& 
+Ùh”
+ ) const {
+
+9655  
+Ý”©Ü
+==Ð*
+Ùh”
+ );
+
+9658 
+SeùiÚS�ts
+ 
+	g¡©s
+;
+
+9659 
+	g¡d
+::
+	tveùÜ
+<
+	tPŒ
+<
+	tSeùiÚNode
+> > 
+	tChždSeùiÚs
+;
+
+9660 
+	g¡d
+::
+	tveùÜ
+<
+	tAs£¹iÚS�ts
+> 
+	tAs£¹iÚs
+;
+
+9661 
+ChždSeùiÚs
+ 
+	gchždSeùiÚs
+;
+
+9662 
+As£¹iÚs
+ 
+	gas£¹iÚs
+;
+
+9663 
+	g¡d
+::
+¡ršg
+ 
+¡dOut
+;
+
+9664 
+	g¡d
+::
+¡ršg
+ 
+¡dE¼
+;
+
+9667 
+	sBySeùiÚInfo
+ {
+
+9668 
+BySeùiÚInfo
+Ð
+SeùiÚInfo
+ cÚ¡& 
+Ùh”
+ ) : 
+m_Ùh”
+( other ) {}
+
+9669 
+BySeùiÚInfo
+ÐBySeùiÚInfØcÚ¡& 
+Ùh”
+ ) : 
+m_Ùh”
+( other.m_other ) {}
+
+9670 
+boÞ
+ 
+Ý”©Ü
+(èÐ
+PŒ
+<
+SeùiÚNode
+> cÚ¡& 
+node
+ ) const {
+
+9671  ((
+node
+->
+¡©s
+.
+£ùiÚInfo
+.
+Çme
+ =ð
+m_Ùh”
+.name) &&
+
+9672 (
+node
+->
+¡©s
+.
+£ùiÚInfo
+.
+lšeInfo
+ =ð
+m_Ùh”
+.lineInfo));
+
+9674 
+	g´iv©e
+:
+
+9675 
+Ý”©Ü
+=Ð
+BySeùiÚInfo
+ const& );
+
+9676 
+SeùiÚInfo
+ cÚ¡& 
+	gm_Ùh”
+;
+
+9679 
+	gNode
+<
+	tTe¡Ca£S�ts
+, 
+	tSeùiÚNode
+> 
+	tTe¡Ca£Node
+;
+
+9680 
+	gNode
+<
+	tTe¡GroupS�ts
+, 
+	tTe¡Ca£Node
+> 
+	tTe¡GroupNode
+;
+
+9681 
+	gNode
+<
+	tTe¡RunS�ts
+, 
+	tTe¡GroupNode
+> 
+	tTe¡RunNode
+;
+
+9683 
+CumuÏtiveR•Ü‹rBa£
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+_cÚfig
+ )
+
+9684 : 
+m_cÚfig
+Ð
+_cÚfig
+.
+fuÎCÚfig
+() ),
+
+9685 
+¡»am
+Ð
+_cÚfig
+.stream() )
+
+9687 
+	gm_»pÜ‹rP»fs
+.
+	gshouldRedœeùStdOut
+ = 
+çl£
+;
+
+9689 ~
+CumuÏtiveR•Ü‹rBa£
+();
+
+9691 
+vœtu®
+ 
+R•Ü‹rP»ã»nûs
+ 
+g‘P»ã»nûs
+(ècÚ¡ 
+	gCATCH_OVERRIDE
+ {
+
+9692  
+	gm_»pÜ‹rP»fs
+;
+
+9695 
+vœtu®
+ 
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {}
+
+9696 
+vœtu®
+ 
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {}
+
+9698 
+vœtu®
+ 
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {}
+
+9700 
+vœtu®
+ 
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9701 
+SeùiÚS�ts
+ 
+šcom¶‘eS�ts
+Ð
+£ùiÚInfo
+, 
+CouÁs
+(), 0, 
+çl£
+ );
+
+9702 
+	gPŒ
+<
+	gSeùiÚNode
+> 
+	gnode
+;
+
+9703 ifÐ
+	gm_£ùiÚS�ck
+.
+em±y
+() ) {
+
+9704 ifÐ!
+	gm_roÙSeùiÚ
+ )
+
+9705 
+	gm_roÙSeùiÚ
+ = 
+Ãw
+ 
+SeùiÚNode
+Ð
+šcom¶‘eS�ts
+ );
+
+9706 
+	gnode
+ = 
+m_roÙSeùiÚ
+;
+
+9709 
+	gSeùiÚNode
+& 
+	g·»ÁNode
+ = *
+m_£ùiÚS�ck
+.
+back
+();
+
+9710 
+	gSeùiÚNode
+::
+ChždSeùiÚs
+::
+cÚ¡_™”©Ü
+ 
+™
+ =
+
+9711 
+¡d
+::
+fšd_if
+Ð
+·»ÁNode
+.
+chždSeùiÚs
+.
+begš
+(),
+
+9712 
+·»ÁNode
+.
+chždSeùiÚs
+.
+’d
+(),
+
+9713 
+BySeùiÚInfo
+Ð
+£ùiÚInfo
+ ) );
+
+9714 ifÐ
+	g™
+ =ð
+·»ÁNode
+.
+chždSeùiÚs
+.
+’d
+() ) {
+
+9715 
+node
+ = 
+Ãw
+ 
+SeùiÚNode
+Ð
+šcom¶‘eS�ts
+ );
+
+9716 
+	g·»ÁNode
+.
+	gchždSeùiÚs
+.
+push_back
+Ð
+node
+ );
+
+9719 
+	gnode
+ = *
+™
+;
+
+9721 
+	gm_£ùiÚS�ck
+.
+push_back
+Ð
+node
+ );
+
+9722 
+	gm_d“³¡SeùiÚ
+ = 
+node
+;
+
+9725 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {}
+
+9727 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+as£¹iÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9728 
+as£¹
+Ð!
+m_£ùiÚS�ck
+.
+em±y
+() );
+
+9729 
+	gSeùiÚNode
+& 
+	g£ùiÚNode
+ = *
+m_£ùiÚS�ck
+.
+back
+();
+
+9730 
+	g£ùiÚNode
+.
+	gas£¹iÚs
+.
+push_back
+Ð
+as£¹iÚS�ts
+ );
+
+9736 
+´•¬eEx·ndedEx´essiÚ
+Ð
+£ùiÚNode
+.
+as£¹iÚs
+.
+back
+().
+as£¹iÚResuÉ
+ );
+
+9737  
+	gŒue
+;
+
+9739 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+£ùiÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9740 
+as£¹
+Ð!
+m_£ùiÚS�ck
+.
+em±y
+() );
+
+9741 
+	gSeùiÚNode
+& 
+	gnode
+ = *
+m_£ùiÚS�ck
+.
+back
+();
+
+9742 
+	gnode
+.
+	g¡©s
+ = 
+£ùiÚS�ts
+;
+
+9743 
+	gm_£ùiÚS�ck
+.
+pÝ_back
+();
+
+9745 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+‹¡Ca£S�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9746 
+	gPŒ
+<
+	gTe¡Ca£Node
+> 
+	gnode
+ = 
+Ãw
+ 
+Te¡Ca£Node
+Ð
+‹¡Ca£S�ts
+ );
+
+9747 
+as£¹
+Ð
+m_£ùiÚS�ck
+.
+size
+() == 0 );
+
+9748 
+	gnode
+->
+	gchžd»n
+.
+push_back
+Ð
+m_roÙSeùiÚ
+ );
+
+9749 
+	gm_‹¡Ca£s
+.
+push_back
+Ð
+node
+ );
+
+9750 
+	gm_roÙSeùiÚ
+.
+»£t
+();
+
+9752 
+as£¹
+Ð
+m_d“³¡SeùiÚ
+ );
+
+9753 
+	gm_d“³¡SeùiÚ
+->
+	g¡dOut
+ = 
+‹¡Ca£S�ts
+.
+¡dOut
+;
+
+9754 
+	gm_d“³¡SeùiÚ
+->
+	g¡dE¼
+ = 
+‹¡Ca£S�ts
+.
+¡dE¼
+;
+
+9756 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+‹¡GroupS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9757 
+	gPŒ
+<
+	gTe¡GroupNode
+> 
+	gnode
+ = 
+Ãw
+ 
+Te¡GroupNode
+Ð
+‹¡GroupS�ts
+ );
+
+9758 
+	gnode
+->
+	gchžd»n
+.
+sw­
+Ð
+m_‹¡Ca£s
+ );
+
+9759 
+	gm_‹¡Groups
+.
+push_back
+Ð
+node
+ );
+
+9761 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+‹¡RunS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+9762 
+	gPŒ
+<
+	gTe¡RunNode
+> 
+	gnode
+ = 
+Ãw
+ 
+Te¡RunNode
+Ð
+‹¡RunS�ts
+ );
+
+9763 
+	gnode
+->
+	gchžd»n
+.
+sw­
+Ð
+m_‹¡Groups
+ );
+
+9764 
+	gm_‹¡Runs
+.
+push_back
+Ð
+node
+ );
+
+9765 
+‹¡RunEndedCumuÏtive
+();
+
+9767 
+vœtu®
+ 
+‹¡RunEndedCumuÏtive
+() = 0;
+
+9769 
+vœtu®
+ 
+sk�Te¡
+Ð
+Te¡Ca£Info
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {}
+
+9771 
+vœtu®
+ 
+´•¬eEx·ndedEx´essiÚ
+Ð
+As£¹iÚResuÉ
+& 
+»suÉ
+ ) const {
+
+9772 ifÐ
+	g»suÉ
+.
+isOk
+() )
+
+9773 
+	g»suÉ
+.
+disÿrdDecompo£dEx´essiÚ
+();
+
+9775 
+	g»suÉ
+.
+ex·ndDecompo£dEx´essiÚ
+();
+
+9778 
+	gPŒ
+<
+ICÚfig
+ cÚ¡> 
+	gm_cÚfig
+;
+
+9779 
+	g¡d
+::
+o¡»am
+& 
+¡»am
+;
+
+9780 
+	g¡d
+::
+veùÜ
+<
+As£¹iÚS�ts
+> 
+m_as£¹iÚs
+;
+
+9781 
+	g¡d
+::
+veùÜ
+<
+¡d
+::veùÜ<
+PŒ
+<
+SeùiÚNode
+> > > 
+m_£ùiÚs
+;
+
+9782 
+	g¡d
+::
+veùÜ
+<
+PŒ
+<
+Te¡Ca£Node
+> > 
+m_‹¡Ca£s
+;
+
+9783 
+	g¡d
+::
+veùÜ
+<
+PŒ
+<
+Te¡GroupNode
+> > 
+m_‹¡Groups
+;
+
+9785 
+	g¡d
+::
+veùÜ
+<
+PŒ
+<
+Te¡RunNode
+> > 
+m_‹¡Runs
+;
+
+9787 
+	gPŒ
+<
+	gSeùiÚNode
+> 
+	gm_roÙSeùiÚ
+;
+
+9788 
+	gPŒ
+<
+	gSeùiÚNode
+> 
+	gm_d“³¡SeùiÚ
+;
+
+9789 
+	g¡d
+::
+veùÜ
+<
+PŒ
+<
+SeùiÚNode
+> > 
+m_£ùiÚS�ck
+;
+
+9790 
+R•Ü‹rP»ã»nûs
+ 
+	gm_»pÜ‹rP»fs
+;
+
+9794 
+	g‹m¶©e
+<
+	gC
+>
+
+9795 cÚ¡* 
+g‘LšeOfCh¬s
+() {
+
+9796 
+	glše
+[
+CATCH_CONFIG_CONSOLE_WIDTH
+] = {0};
+
+9797 ifÐ!*
+	glše
+ ) {
+
+9798 
+	g¡d
+::
+mem£t
+Ð
+lše
+, 
+C
+, 
+CATCH_CONFIG_CONSOLE_WIDTH
+-1 );
+
+9799 
+	glše
+[
+CATCH_CONFIG_CONSOLE_WIDTH
+-1] = 0;
+
+9801  
+	glše
+;
+
+9804 
+	gTe¡Ev’tLi¡’”Ba£
+ : 
+SŒ—mšgR•Ü‹rBa£
+ {
+
+9805 
+Te¡Ev’tLi¡’”Ba£
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+_cÚfig
+ )
+
+9806 : 
+SŒ—mšgR•Ü‹rBa£
+Ð
+_cÚfig
+ )
+
+9809 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ cÚ¡& ) 
+CATCH_OVERRIDE
+ {}
+
+9810 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& ) 
+CATCH_OVERRIDE
+ {
+
+9811  
+çl£
+;
+
+9818 
+	#TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
+
+
+	)
+
+9820 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+9822 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+9823 þas 
+	cLegacyR•Ü‹rRegi¡¿r
+ {
+
+9825 þas 
+	cR•Ü‹rFaùÜy
+ : 
+public
+ 
+IR•Ü‹rFaùÜy
+ {
+
+9826 
+vœtu®
+ 
+ISŒ—mšgR•Ü‹r
+* 
+ü—‹
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+cÚfig
+ ) const {
+
+9827  
+Ãw
+ 
+LegacyR•Ü‹rAd­‹r
+ÐÃw 
+T
+Ð
+cÚfig
+ ) );
+
+9830 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() const {
+
+9831  
+T
+::
+g‘Desü�tiÚ
+();
+
+9835 
+	gpublic
+:
+
+9837 
+LegacyR•Ü‹rRegi¡¿r
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+ ) {
+
+9838 
+g‘Mu�bËRegi¡ryHub
+().
+»gi¡”R•Ü‹r
+Ð
+Çme
+, 
+Ãw
+ 
+R•Ü‹rFaùÜy
+() );
+
+9842 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+9843 þas 
+	cR•Ü‹rRegi¡¿r
+ {
+
+9845 
+þass
+ 
+	gR•Ü‹rFaùÜy
+ : 
+public
+ 
+Sh¬edIm¶
+<
+IR•Ü‹rFaùÜy
+> {
+
+9858 
+vœtu®
+ 
+ISŒ—mšgR•Ü‹r
+* 
+ü—‹
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+cÚfig
+ ) const {
+
+9859  
+Ãw
+ 
+T
+Ð
+cÚfig
+ );
+
+9862 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() const {
+
+9863  
+T
+::
+g‘Desü�tiÚ
+();
+
+9867 
+	gpublic
+:
+
+9869 
+R•Ü‹rRegi¡¿r
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+ ) {
+
+9870 
+g‘Mu�bËRegi¡ryHub
+().
+»gi¡”R•Ü‹r
+Ð
+Çme
+, 
+Ãw
+ 
+R•Ü‹rFaùÜy
+() );
+
+9874 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+9875 þas 
+	cLi¡’”Regi¡¿r
+ {
+
+9877 
+þass
+ 
+	gLi¡’”FaùÜy
+ : 
+public
+ 
+Sh¬edIm¶
+<
+IR•Ü‹rFaùÜy
+> {
+
+9879 
+vœtu®
+ 
+ISŒ—mšgR•Ü‹r
+* 
+ü—‹
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+cÚfig
+ ) const {
+
+9880  
+Ãw
+ 
+T
+Ð
+cÚfig
+ );
+
+9882 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() const {
+
+9883  
+¡d
+::
+¡ršg
+();
+
+9887 
+	gpublic
+:
+
+9889 
+Li¡’”Regi¡¿r
+() {
+
+9890 
+g‘Mu�bËRegi¡ryHub
+().
+»gi¡”Li¡’”
+Ð
+Ãw
+ 
+Li¡’”FaùÜy
+() );
+
+9895 
+	#INTERNAL_CATCH_REGISTER_LEGACY_REPORTER
+Ð
+Çme
+, 
+»pÜ‹rTy³
+ ) \
+
+9896 
+Çme¥aû
+{ 
+C©ch
+::
+LegacyR•Ü‹rRegi¡¿r
+<
+»pÜ‹rTy³
+> 
+ÿtch_š‹º®_Regi¡¿rFÜ
+##
+	`»pÜ‹rTy³
+Ð
+Çme
+ ); }
+
+	)
+
+9898 
+	#INTERNAL_CATCH_REGISTER_REPORTER
+Ð
+Çme
+, 
+»pÜ‹rTy³
+ ) \
+
+9899 
+Çme¥aû
+{ 
+C©ch
+::
+R•Ü‹rRegi¡¿r
+<
+»pÜ‹rTy³
+> 
+ÿtch_š‹º®_Regi¡¿rFÜ
+##
+	`»pÜ‹rTy³
+Ð
+Çme
+ ); }
+
+	)
+
+9902 
+	#INTERNAL_CATCH_REGISTER_LISTENER
+Ð
+li¡’”Ty³
+ ) \
+
+9903 
+Çme¥aû
+{ 
+C©ch
+::
+Li¡’”Regi¡¿r
+<
+li¡’”Ty³
+> 
+ÿtch_š‹º®_Regi¡¿rFÜ
+##li¡’”Ty³; }
+
+	)
+
+9905 
+	#CATCH_REGISTER_LISTENER
+Ð
+li¡’”Ty³
+ ) \
+
+9906 
+Çme¥aû
+{ 
+C©ch
+::
+Li¡’”Regi¡¿r
+<
+li¡’”Ty³
+> 
+ÿtch_š‹º®_Regi¡¿rFÜ
+##li¡’”Ty³; }
+
+	)
+
+9909 
+	#TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
+
+
+	)
+
+9911 
+	~<s¡»am
+>
+
+9912 
+	~<¡ršg
+>
+
+9913 
+	~<veùÜ
+>
+
+9914 
+	~<iomª�
+>
+
+9916 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+9918 þas 
+	cXmlEncode
+ {
+
+9919 
+	gpublic
+:
+
+9920 
+	eFÜWh©
+ { 
+FÜTextNodes
+, 
+	gFÜA‰ribu‹s
+ };
+
+9922 
+XmlEncode
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¡r
+, 
+FÜWh©
+ 
+fÜWh©
+ = 
+FÜTextNodes
+ )
+
+9923 : 
+m_¡r
+Ð
+¡r
+ ),
+
+9924 
+m_fÜWh©
+Ð
+fÜWh©
+ )
+
+9927 
+’codeTo
+Ð
+¡d
+::
+o¡»am
+& 
+os
+ ) const {
+
+9932  
+¡d
+::
+size_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gm_¡r
+.
+size
+(); ++ i ) {
+
+9933 
+	gc
+ = 
+m_¡r
+[
+i
+];
+
+9934  
+	gc
+ ) {
+
+9935 '<': 
+os
+ << "&lt;"; ;
+
+9936 '&': 
+os
+ << "&amp;"; ;
+
+9940 ifÐ
+i
+ > 2 && 
+m_¡r
+[i-1] == ']' && m_str[i-2] == ']' )
+
+9941 
+os
+ << "&gt;";
+
+9943 
+	gos
+ << 
+	gc
+;
+
+9947 ifÐ
+m_fÜWh©
+ =ð
+FÜA‰ribu‹s
+ )
+
+9948 
+os
+ << "&quot;";
+
+9950 
+	gos
+ << 
+	gc
+;
+
+9956 iàÐÐ
+c
+ >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) {
+
+9958 
+os
+ << "\\x" << 
+¡d
+::
+uµ”ÿ£
+ << std::
+hex
+ << std::
+£tfžl
+('0'è<< std::
+£tw
+(2)
+
+9959 << 
+¡©ic_ÿ¡
+<>Ð
+c
+ );
+
+9962 
+	gos
+ << 
+	gc
+;
+
+9967 
+ä›nd
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+ << ( 
+¡d
+::o¡»am& 
+os
+, 
+XmlEncode
+ cÚ¡& 
+	gxmlEncode
+ ) {
+
+9968 
+	gxmlEncode
+.
+’codeTo
+Ð
+os
+ );
+
+9969  
+	gos
+;
+
+9972 
+	g´iv©e
+:
+
+9973 
+¡d
+::
+¡ršg
+ 
+m_¡r
+;
+
+9974 
+FÜWh©
+ 
+	gm_fÜWh©
+;
+
+9977 þas 
+	cXmlWr™”
+ {
+
+9978 
+	gpublic
+:
+
+9980 þas 
+	cScÝedEËm’t
+ {
+
+9981 
+public
+:
+
+9982 
+ScÝedEËm’t
+Ð
+XmlWr™”
+* 
+wr™”
+ )
+
+9983 : 
+m_wr™”
+Ð
+wr™”
+ )
+
+9986 
+ScÝedEËm’t
+ÐScÝedEËm’ˆcÚ¡& 
+Ùh”
+ )
+
+9987 : 
+m_wr™”
+Ð
+Ùh”
+.m_writer ){
+
+9988 
+Ùh”
+.
+m_wr™”
+ = 
+CATCH_NULL
+;
+
+9991 ~
+ScÝedEËm’t
+() {
+
+9992 ifÐ
+	gm_wr™”
+ )
+
+9993 
+	gm_wr™”
+->
+’dEËm’t
+();
+
+9996 
+	gScÝedEËm’t
+& 
+wr™eText
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹xt
+, 
+boÞ
+ 
+šd’t
+ = 
+Œue
+ ) {
+
+9997 
+m_wr™”
+->
+wr™eText
+Ð
+‹xt
+, 
+šd’t
+ );
+
+9998  *
+	gthis
+;
+
+10001 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+10002 
+	gScÝedEËm’t
+& 
+wr™eA‰ribu‹
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+T
+ cÚ¡& 
+©Œibu‹
+ ) {
+
+10003 
+	gm_wr™”
+->
+wr™eA‰ribu‹
+Ð
+Çme
+, 
+©Œibu‹
+ );
+
+10004  *
+	gthis
+;
+
+10007 
+	g´iv©e
+:
+
+10008 
+mu�bË
+ 
+XmlWr™”
+* 
+m_wr™”
+;
+
+10011 
+XmlWr™”
+()
+
+10012 : 
+m_�gIsO³n
+Ð
+çl£
+ ),
+
+10013 
+m_ÃedsNewlše
+Ð
+çl£
+ ),
+
+10014 
+m_os
+Ð
+C©ch
+::
+cout
+() )
+
+10016 
+wr™eDeþ¬©iÚ
+();
+
+10019 
+XmlWr™”
+Ð
+¡d
+::
+o¡»am
+& 
+os
+ )
+
+10020 : 
+m_�gIsO³n
+Ð
+çl£
+ ),
+
+10021 
+m_ÃedsNewlše
+Ð
+çl£
+ ),
+
+10022 
+m_os
+Ð
+os
+ )
+
+10024 
+wr™eDeþ¬©iÚ
+();
+
+10027 ~
+XmlWr™”
+() {
+
+10028  !
+	gm_�gs
+.
+em±y
+() )
+
+10029 
+’dEËm’t
+();
+
+10032 
+	gXmlWr™”
+& 
+¡¬tEËm’t
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+ ) {
+
+10033 
+’su»TagClo£d
+();
+
+10034 
+ÃwlšeIfNeûs§ry
+();
+
+10035 
+	gm_os
+ << 
+	gm_šd’t
+ << '<' << 
+	gÇme
+;
+
+10036 
+	gm_�gs
+.
+push_back
+Ð
+Çme
+ );
+
+10037 
+	gm_šd’t
+ += " ";
+
+10038 
+	gm_�gIsO³n
+ = 
+Œue
+;
+
+10039  *
+	gthis
+;
+
+10042 
+ScÝedEËm’t
+ 
+scÝedEËm’t
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+ ) {
+
+10043 
+ScÝedEËm’t
+ 
+scÝed
+Ð
+this
+ );
+
+10044 
+¡¬tEËm’t
+Ð
+Çme
+ );
+
+10045  
+	gscÝed
+;
+
+10048 
+	gXmlWr™”
+& 
+’dEËm’t
+() {
+
+10049 
+ÃwlšeIfNeûs§ry
+();
+
+10050 
+	gm_šd’t
+ = 
+m_šd’t
+.
+sub¡r
+Ð0, m_šd’t.
+size
+()-2 );
+
+10051 ifÐ
+	gm_�gIsO³n
+ ) {
+
+10052 
+	gm_os
+ << "/>";
+
+10053 
+	gm_�gIsO³n
+ = 
+çl£
+;
+
+10056 
+	gm_os
+ << 
+	gm_šd’t
+ << "</" << 
+	gm_�gs
+.
+back
+() << ">";
+
+10058 
+	gm_os
+ << 
+	g¡d
+::
+’dl
+;
+
+10059 
+	gm_�gs
+.
+pÝ_back
+();
+
+10060  *
+	gthis
+;
+
+10063 
+	gXmlWr™”
+& 
+wr™eA‰ribu‹
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, std::¡ršg cÚ¡& 
+©Œibu‹
+ ) {
+
+10064 ifÐ!
+Çme
+.
+em±y
+(è&& !
+©Œibu‹
+.empty() )
+
+10065 
+m_os
+ << ' ' << 
+Çme
+ << "=\"" << 
+XmlEncode
+Ð
+©Œibu‹
+, XmlEncode::
+FÜA‰ribu‹s
+ ) << '"';
+
+10066  *
+	gthis
+;
+
+10069 
+	gXmlWr™”
+& 
+wr™eA‰ribu‹
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+boÞ
+ 
+©Œibu‹
+ ) {
+
+10070 
+	gm_os
+ << ' ' << 
+	gÇme
+ << "=\"" << ( 
+	g©Œibu‹
+ ? "true" : "false" ) << '"';
+
+10071  *
+	gthis
+;
+
+10074 
+	g‹m¶©e
+<
+ty³Çme
+ 
+	gT
+>
+
+10075 
+	gXmlWr™”
+& 
+wr™eA‰ribu‹
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Çme
+, 
+T
+ cÚ¡& 
+©Œibu‹
+ ) {
+
+10076 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+10077 
+	goss
+ << 
+	g©Œibu‹
+;
+
+10078  
+wr™eA‰ribu‹
+Ð
+Çme
+, 
+oss
+.
+¡r
+() );
+
+10081 
+	gXmlWr™”
+& 
+wr™eText
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹xt
+, 
+boÞ
+ 
+šd’t
+ = 
+Œue
+ ) {
+
+10082 ifÐ!
+‹xt
+.
+em±y
+() ){
+
+10083 
+boÞ
+ 
+�gWasO³n
+ = 
+m_�gIsO³n
+;
+
+10084 
+’su»TagClo£d
+();
+
+10085 ifÐ
+	g�gWasO³n
+ && 
+	gšd’t
+ )
+
+10086 
+	gm_os
+ << 
+	gm_šd’t
+;
+
+10087 
+	gm_os
+ << 
+XmlEncode
+Ð
+‹xt
+ );
+
+10088 
+	gm_ÃedsNewlše
+ = 
+Œue
+;
+
+10090  *
+	gthis
+;
+
+10093 
+	gXmlWr™”
+& 
+wr™eComm’t
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+‹xt
+ ) {
+
+10094 
+’su»TagClo£d
+();
+
+10095 
+	gm_os
+ << 
+	gm_šd’t
+ << "<!--" << 
+	g‹xt
+ << "-->";
+
+10096 
+	gm_ÃedsNewlše
+ = 
+Œue
+;
+
+10097  *
+	gthis
+;
+
+10100 
+wr™eStyËsh“tRef
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+u¾
+ ) {
+
+10101 
+m_os
+ << "<?xml-¡yËsh“ˆty³=\"‹xt/x¦\" h»f=\"" << 
+u¾
+ << "\"?>\n";
+
+10104 
+	gXmlWr™”
+& 
+wr™eBÏnkLše
+() {
+
+10105 
+’su»TagClo£d
+();
+
+10106 
+	gm_os
+ << '\n';
+
+10107  *
+	gthis
+;
+
+10110 
+’su»TagClo£d
+() {
+
+10111 ifÐ
+	gm_�gIsO³n
+ ) {
+
+10112 
+	gm_os
+ << ">" << 
+	g¡d
+::
+’dl
+;
+
+10113 
+	gm_�gIsO³n
+ = 
+çl£
+;
+
+10117 
+	g´iv©e
+:
+
+10118 
+XmlWr™”
+( XmlWriter const& );
+
+10119 
+	gÝ”©Ü
+=Ð
+XmlWr™”
+ const& );
+
+10121 
+wr™eDeþ¬©iÚ
+() {
+
+10122 
+	gm_os
+ << "<?xml version=\"1.0\"ƒncoding=\"UTF-8\"?>\n";
+
+10125 
+ÃwlšeIfNeûs§ry
+() {
+
+10126 ifÐ
+	gm_ÃedsNewlše
+ ) {
+
+10127 
+	gm_os
+ << 
+	g¡d
+::
+’dl
+;
+
+10128 
+	gm_ÃedsNewlše
+ = 
+çl£
+;
+
+10132 
+boÞ
+ 
+	gm_�gIsO³n
+;
+
+10133 
+boÞ
+ 
+	gm_ÃedsNewlše
+;
+
+10134 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+m_�gs
+;
+
+10135 
+	g¡d
+::
+¡ršg
+ 
+m_šd’t
+;
+
+10136 
+	g¡d
+::
+o¡»am
+& 
+m_os
+;
+
+10141 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+10142 þas 
+	cXmlR•Ü‹r
+ : 
+public
+ 
+SŒ—mšgR•Ü‹rBa£
+ {
+
+10143 
+public
+:
+
+10144 
+XmlR•Ü‹r
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+_cÚfig
+ )
+
+10145 : 
+SŒ—mšgR•Ü‹rBa£
+Ð
+_cÚfig
+ ),
+
+10146 
+m_xml
+(
+_cÚfig
+.
+¡»am
+()),
+
+10147 
+m_£ùiÚD•th
+( 0 )
+
+10149 
+	gm_»pÜ‹rP»fs
+.
+	gshouldRedœeùStdOut
+ = 
+Œue
+;
+
+10152 
+	gvœtu®
+ ~
+XmlR•Ü‹r
+(è
+	gCATCH_OVERRIDE
+;
+
+10154 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() {
+
+10158 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+g‘StyËsh“tRef
+() const {
+
+10159  
+¡d
+::
+¡ršg
+();
+
+10162 
+wr™eSourûInfo
+Ð
+SourûLšeInfo
+ cÚ¡& 
+sourûInfo
+ ) {
+
+10163 
+	gm_xml
+
+
+10164 .
+wr™eA‰ribu‹
+Ð"fž’ame", 
+sourûInfo
+.
+fže
+ )
+
+10165 .
+wr™eA‰ribu‹
+Ð"lše", 
+sourûInfo
+.
+lše
+ );
+
+10168 
+	gpublic
+:
+
+10170 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+s
+ ) 
+CATCH_OVERRIDE
+ {
+
+10171 
+SŒ—mšgR•Ü‹rBa£
+::
+noM©chšgTe¡Ca£s
+Ð
+s
+ );
+
+10174 
+vœtu®
+ 
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ cÚ¡& 
+‹¡Info
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10175 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡RunS�¹šg
+Ð
+‹¡Info
+ );
+
+10176 
+	g¡d
+::
+¡ršg
+ 
+¡yËsh“tRef
+ = 
+g‘StyËsh“tRef
+();
+
+10177 ifÐ!
+	g¡yËsh“tRef
+.
+em±y
+() )
+
+10178 
+	gm_xml
+.
+wr™eStyËsh“tRef
+Ð
+¡yËsh“tRef
+ );
+
+10179 
+	gm_xml
+.
+¡¬tEËm’t
+( "Catch" );
+
+10180 ifÐ!
+	gm_cÚfig
+->
+Çme
+().
+em±y
+() )
+
+10181 
+	gm_xml
+.
+wr™eA‰ribu‹
+Ð"Çme", 
+m_cÚfig
+->
+Çme
+() );
+
+10184 
+vœtu®
+ 
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& 
+groupInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10185 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡GroupS�¹šg
+Ð
+groupInfo
+ );
+
+10186 
+	gm_xml
+.
+¡¬tEËm’t
+( "Group" )
+
+10187 .
+wr™eA‰ribu‹
+Ð"Çme", 
+groupInfo
+.
+Çme
+ );
+
+10190 
+vœtu®
+ 
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Info
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10191 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡Ca£S�¹šg
+(
+‹¡Info
+);
+
+10192 
+	gm_xml
+.
+¡¬tEËm’t
+( "TestCase" )
+
+10193 .
+wr™eA‰ribu‹
+Ð"Çme", 
+Œim
+Ð
+‹¡Info
+.
+Çme
+ ) )
+
+10194 .
+wr™eA‰ribu‹
+Ð"desü�tiÚ", 
+‹¡Info
+.
+desü�tiÚ
+ )
+
+10195 .
+wr™eA‰ribu‹
+Ð"�gs", 
+‹¡Info
+.
+�gsAsSŒšg
+ );
+
+10197 
+wr™eSourûInfo
+Ð
+‹¡Info
+.
+lšeInfo
+ );
+
+10199 iàÐ
+	gm_cÚfig
+->
+showDu¿tiÚs
+(è=ð
+ShowDu¿tiÚs
+::
+Always
+ )
+
+10200 
+m_‹¡Ca£Tim”
+.
+¡¬t
+();
+
+10201 
+	gm_xml
+.
+’su»TagClo£d
+();
+
+10204 
+vœtu®
+ 
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+£ùiÚInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10205 
+	gSŒ—mšgR•Ü‹rBa£
+::
+£ùiÚS�¹šg
+Ð
+£ùiÚInfo
+ );
+
+10206 ifÐ
+	gm_£ùiÚD•th
+++ > 0 ) {
+
+10207 
+	gm_xml
+.
+¡¬tEËm’t
+( "Section" )
+
+10208 .
+wr™eA‰ribu‹
+Ð"Çme", 
+Œim
+Ð
+£ùiÚInfo
+.
+Çme
+ ) )
+
+10209 .
+wr™eA‰ribu‹
+Ð"desü�tiÚ", 
+£ùiÚInfo
+.
+desü�tiÚ
+ );
+
+10210 
+wr™eSourûInfo
+Ð
+£ùiÚInfo
+.
+lšeInfo
+ );
+
+10211 
+	gm_xml
+.
+’su»TagClo£d
+();
+
+10215 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ { }
+
+10217 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+as£¹iÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10219 
+As£¹iÚResuÉ
+ cÚ¡& 
+	g»suÉ
+ = 
+as£¹iÚS�ts
+.
+as£¹iÚResuÉ
+;
+
+10221 
+boÞ
+ 
+	gšþudeResuÉs
+ = 
+m_cÚfig
+->
+šþudeSucûssfulResuÉs
+(è|| !
+»suÉ
+.
+isOk
+();
+
+10223 ifÐ
+	gšþudeResuÉs
+ ) {
+
+10225  
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+as£¹iÚS�ts
+.
+šfoMes§ges
+.
+begš
+(), 
+	g™End
+ =‡s£¹iÚS�ts.šfoMes§ges.
+’d
+();
+
+10226 
+	g™
+ !ð
+™End
+;
+
+10227 ++
+	g™
+ ) {
+
+10228 ifÐ
+	g™
+->
+	gty³
+ =ð
+ResuÉWas
+::
+Info
+ ) {
+
+10229 
+m_xml
+.
+scÝedEËm’t
+( "Info" )
+
+10230 .
+wr™eText
+Ð
+™
+->
+mes§ge
+ );
+
+10231 } iàÐ
+	g™
+->
+	gty³
+ =ð
+ResuÉWas
+::
+W¬nšg
+ ) {
+
+10232 
+m_xml
+.
+scÝedEËm’t
+( "Warning" )
+
+10233 .
+wr™eText
+Ð
+™
+->
+mes§ge
+ );
+
+10239 ifÐ!
+	gšþudeResuÉs
+ && 
+	g»suÉ
+.
+g‘ResuÉTy³
+(è!ð
+ResuÉWas
+::
+W¬nšg
+ )
+
+10240  
+Œue
+;
+
+10243 ifÐ
+	g»suÉ
+.
+hasEx´essiÚ
+() ) {
+
+10244 
+	gm_xml
+.
+¡¬tEËm’t
+( "Expression" )
+
+10245 .
+wr™eA‰ribu‹
+Ð"sucûss", 
+»suÉ
+.
+sucûeded
+() )
+
+10246 .
+wr™eA‰ribu‹
+Ð"ty³", 
+»suÉ
+.
+g‘Te¡MaüoName
+() );
+
+10248 
+wr™eSourûInfo
+Ð
+»suÉ
+.
+g‘SourûInfo
+() );
+
+10250 
+	gm_xml
+.
+scÝedEËm’t
+( "Original" )
+
+10251 .
+wr™eText
+Ð
+»suÉ
+.
+g‘Ex´essiÚ
+() );
+
+10252 
+	gm_xml
+.
+scÝedEËm’t
+( "Expanded" )
+
+10253 .
+wr™eText
+Ð
+»suÉ
+.
+g‘Ex·ndedEx´essiÚ
+() );
+
+10257  
+	g»suÉ
+.
+g‘ResuÉTy³
+() ) {
+
+10258 
+	gResuÉWas
+::
+Th»wExû±iÚ
+:
+
+10259 
+m_xml
+.
+¡¬tEËm’t
+( "Exception" );
+
+10260 
+wr™eSourûInfo
+Ð
+»suÉ
+.
+g‘SourûInfo
+() );
+
+10261 
+	gm_xml
+.
+wr™eText
+Ð
+»suÉ
+.
+g‘Mes§ge
+() );
+
+10262 
+	gm_xml
+.
+’dEËm’t
+();
+
+10264 
+	gResuÉWas
+::
+F©®E¼ÜCÚd™iÚ
+:
+
+10265 
+m_xml
+.
+¡¬tEËm’t
+( "FatalErrorCondition" );
+
+10266 
+wr™eSourûInfo
+Ð
+»suÉ
+.
+g‘SourûInfo
+() );
+
+10267 
+	gm_xml
+.
+wr™eText
+Ð
+»suÉ
+.
+g‘Mes§ge
+() );
+
+10268 
+	gm_xml
+.
+’dEËm’t
+();
+
+10270 
+	gResuÉWas
+::
+Info
+:
+
+10271 
+m_xml
+.
+scÝedEËm’t
+( "Info" )
+
+10272 .
+wr™eText
+Ð
+»suÉ
+.
+g‘Mes§ge
+() );
+
+10274 
+	gResuÉWas
+::
+W¬nšg
+:
+
+10277 
+	gResuÉWas
+::
+Ex¶ic™Fažu»
+:
+
+10278 
+m_xml
+.
+¡¬tEËm’t
+( "Failure" );
+
+10279 
+wr™eSourûInfo
+Ð
+»suÉ
+.
+g‘SourûInfo
+() );
+
+10280 
+	gm_xml
+.
+wr™eText
+Ð
+»suÉ
+.
+g‘Mes§ge
+() );
+
+10281 
+	gm_xml
+.
+’dEËm’t
+();
+
+10287 ifÐ
+	g»suÉ
+.
+hasEx´essiÚ
+() )
+
+10288 
+	gm_xml
+.
+’dEËm’t
+();
+
+10290  
+	gŒue
+;
+
+10293 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+£ùiÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10294 
+	gSŒ—mšgR•Ü‹rBa£
+::
+£ùiÚEnded
+Ð
+£ùiÚS�ts
+ );
+
+10295 ifÐ--
+	gm_£ùiÚD•th
+ > 0 ) {
+
+10296 
+	gXmlWr™”
+::
+ScÝedEËm’t
+ 
+e
+ = 
+m_xml
+.
+scÝedEËm’t
+( "OverallResults" );
+
+10297 
+	ge
+.
+wr™eA‰ribu‹
+Ð"sucûs£s", 
+£ùiÚS�ts
+.
+as£¹iÚs
+.
+·s£d
+ );
+
+10298 
+	ge
+.
+wr™eA‰ribu‹
+Ð"çžu»s", 
+£ùiÚS�ts
+.
+as£¹iÚs
+.
+çžed
+ );
+
+10299 
+	ge
+.
+wr™eA‰ribu‹
+Ð"ex³ùedFažu»s", 
+£ùiÚS�ts
+.
+as£¹iÚs
+.
+çžedButOk
+ );
+
+10301 iàÐ
+	gm_cÚfig
+->
+showDu¿tiÚs
+(è=ð
+ShowDu¿tiÚs
+::
+Always
+ )
+
+10302 
+e
+.
+wr™eA‰ribu‹
+Ð"du¿tiÚInSecÚds", 
+£ùiÚS�ts
+.
+du¿tiÚInSecÚds
+ );
+
+10304 
+	gm_xml
+.
+’dEËm’t
+();
+
+10308 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+‹¡Ca£S�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10309 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡Ca£Ended
+Ð
+‹¡Ca£S�ts
+ );
+
+10310 
+	gXmlWr™”
+::
+ScÝedEËm’t
+ 
+e
+ = 
+m_xml
+.
+scÝedEËm’t
+( "OverallResult" );
+
+10311 
+	ge
+.
+wr™eA‰ribu‹
+Ð"sucûss", 
+‹¡Ca£S�ts
+.
+tÙ®s
+.
+as£¹iÚs
+.
+®lOk
+() );
+
+10313 iàÐ
+	gm_cÚfig
+->
+showDu¿tiÚs
+(è=ð
+ShowDu¿tiÚs
+::
+Always
+ )
+
+10314 
+e
+.
+wr™eA‰ribu‹
+Ð"du¿tiÚInSecÚds", 
+m_‹¡Ca£Tim”
+.
+g‘EÏp£dSecÚds
+() );
+
+10316 ifÐ!
+	g‹¡Ca£S�ts
+.
+	g¡dOut
+.
+em±y
+() )
+
+10317 
+	gm_xml
+.
+scÝedEËm’t
+Ð"StdOut" ).
+wr™eText
+Ð
+Œim
+Ð
+‹¡Ca£S�ts
+.
+¡dOut
+ ), 
+çl£
+ );
+
+10318 ifÐ!
+	g‹¡Ca£S�ts
+.
+	g¡dE¼
+.
+em±y
+() )
+
+10319 
+	gm_xml
+.
+scÝedEËm’t
+Ð"StdE¼" ).
+wr™eText
+Ð
+Œim
+Ð
+‹¡Ca£S�ts
+.
+¡dE¼
+ ), 
+çl£
+ );
+
+10321 
+	gm_xml
+.
+’dEËm’t
+();
+
+10324 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+‹¡GroupS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10325 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡GroupEnded
+Ð
+‹¡GroupS�ts
+ );
+
+10326 
+	gm_xml
+.
+scÝedEËm’t
+( "OverallResults" )
+
+10327 .
+wr™eA‰ribu‹
+Ð"sucûs£s", 
+‹¡GroupS�ts
+.
+tÙ®s
+.
+as£¹iÚs
+.
+·s£d
+ )
+
+10328 .
+wr™eA‰ribu‹
+Ð"çžu»s", 
+‹¡GroupS�ts
+.
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+ )
+
+10329 .
+wr™eA‰ribu‹
+Ð"ex³ùedFažu»s", 
+‹¡GroupS�ts
+.
+tÙ®s
+.
+as£¹iÚs
+.
+çžedButOk
+ );
+
+10330 
+	gm_xml
+.
+’dEËm’t
+();
+
+10333 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+‹¡RunS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10334 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡RunEnded
+Ð
+‹¡RunS�ts
+ );
+
+10335 
+	gm_xml
+.
+scÝedEËm’t
+( "OverallResults" )
+
+10336 .
+wr™eA‰ribu‹
+Ð"sucûs£s", 
+‹¡RunS�ts
+.
+tÙ®s
+.
+as£¹iÚs
+.
+·s£d
+ )
+
+10337 .
+wr™eA‰ribu‹
+Ð"çžu»s", 
+‹¡RunS�ts
+.
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+ )
+
+10338 .
+wr™eA‰ribu‹
+Ð"ex³ùedFažu»s", 
+‹¡RunS�ts
+.
+tÙ®s
+.
+as£¹iÚs
+.
+çžedButOk
+ );
+
+10339 
+	gm_xml
+.
+’dEËm’t
+();
+
+10342 
+	g´iv©e
+:
+
+10343 
+Tim”
+ 
+m_‹¡Ca£Tim”
+;
+
+10344 
+XmlWr™”
+ 
+	gm_xml
+;
+
+10345 
+	gm_£ùiÚD•th
+;
+
+10348 
+INTERNAL_CATCH_REGISTER_REPORTER
+Ð"xml", 
+XmlR•Ü‹r
+ )
+
+10353 
+	#TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
+
+
+	)
+
+10355 
+	~<as£¹.h
+>
+
+10357 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+10359 
+	gÇme¥aû
+ {
+
+10360 
+	g¡d
+::
+¡ršg
+ 
+g‘Cu¼’tTime¡amp
+() {
+
+10363 
+time_t
+ 
+¿wtime
+;
+
+10364 
+	g¡d
+::
+time
+(&
+¿wtime
+);
+
+10365 cÚ¡ 
+size_t
+ 
+	gtimeS�mpSize
+ = ("2017-01-16T17:06:45Z");
+
+10367 #ifdeà
+_MSC_VER
+
+
+10368 
+	g¡d
+::
+tm
+ 
+timeInfo
+ = {};
+
+10369 
+gmtime_s
+(&
+timeInfo
+, &
+¿wtime
+);
+
+10371 
+	g¡d
+::
+tm
+* 
+timeInfo
+;
+
+10372 
+	gtimeInfo
+ = 
+¡d
+::
+gmtime
+(&
+¿wtime
+);
+
+10375 
+	gtimeS�mp
+[
+timeS�mpSize
+];
+
+10376 cÚ¡ * cÚ¡ 
+	gfmt
+ = "%Y-%m-%dT%H:%M:%SZ";
+
+10378 #ifdeà
+_MSC_VER
+
+
+10379 
+	g¡d
+::
+¡ráime
+(
+timeS�mp
+, 
+timeS�mpSize
+, 
+fmt
+, &
+timeInfo
+);
+
+10381 
+	g¡d
+::
+¡ráime
+(
+timeS�mp
+, 
+timeS�mpSize
+, 
+fmt
+, 
+timeInfo
+);
+
+10383  
+	g¡d
+::
+¡ršg
+(
+timeS�mp
+);
+
+10388 þas 
+	cJun™R•Ü‹r
+ : 
+public
+ 
+CumuÏtiveR•Ü‹rBa£
+ {
+
+10389 
+public
+:
+
+10390 
+Jun™R•Ü‹r
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+_cÚfig
+ )
+
+10391 : 
+CumuÏtiveR•Ü‹rBa£
+Ð
+_cÚfig
+ ),
+
+10392 
+xml
+Ð
+_cÚfig
+.
+¡»am
+() ),
+
+10393 
+uÃx³ùedExû±iÚs
+( 0 ),
+
+10394 
+m_okToFaž
+Ð
+çl£
+ )
+
+10396 
+	gm_»pÜ‹rP»fs
+.
+	gshouldRedœeùStdOut
+ = 
+Œue
+;
+
+10399 
+	gvœtu®
+ ~
+Jun™R•Ü‹r
+(è
+	gCATCH_OVERRIDE
+;
+
+10401 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() {
+
+10405 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& ) 
+CATCH_OVERRIDE
+ {}
+
+10407 
+vœtu®
+ 
+‹¡RunS�¹šg
+Ð
+Te¡RunInfo
+ cÚ¡& 
+runInfo
+ ) 
+CATCH_OVERRIDE
+ {
+
+10408 
+CumuÏtiveR•Ü‹rBa£
+::
+‹¡RunS�¹šg
+Ð
+runInfo
+ );
+
+10409 
+	gxml
+.
+¡¬tEËm’t
+( "testsuites" );
+
+10412 
+vœtu®
+ 
+‹¡GroupS�¹šg
+Ð
+GroupInfo
+ cÚ¡& 
+groupInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10413 
+	gsu™eTim”
+.
+¡¬t
+();
+
+10414 
+	g¡dOutFÜSu™e
+.
+¡r
+("");
+
+10415 
+	g¡dE¼FÜSu™e
+.
+¡r
+("");
+
+10416 
+	guÃx³ùedExû±iÚs
+ = 0;
+
+10417 
+	gCumuÏtiveR•Ü‹rBa£
+::
+‹¡GroupS�¹šg
+Ð
+groupInfo
+ );
+
+10420 
+vœtu®
+ 
+‹¡Ca£S�¹šg
+Ð
+Te¡Ca£Info
+ cÚ¡& 
+‹¡Ca£Info
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10421 
+	gm_okToFaž
+ = 
+‹¡Ca£Info
+.
+okToFaž
+();
+
+10423 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+as£¹iÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10424 ifÐ
+	gas£¹iÚS�ts
+.
+	gas£¹iÚResuÉ
+.
+g‘ResuÉTy³
+(è=ð
+ResuÉWas
+::
+Th»wExû±iÚ
+ && !
+m_okToFaž
+ )
+
+10425 
+uÃx³ùedExû±iÚs
+++;
+
+10426  
+	gCumuÏtiveR•Ü‹rBa£
+::
+as£¹iÚEnded
+Ð
+as£¹iÚS�ts
+ );
+
+10429 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+‹¡Ca£S�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10430 
+	g¡dOutFÜSu™e
+ << 
+	g‹¡Ca£S�ts
+.
+	g¡dOut
+;
+
+10431 
+	g¡dE¼FÜSu™e
+ << 
+	g‹¡Ca£S�ts
+.
+	g¡dE¼
+;
+
+10432 
+	gCumuÏtiveR•Ü‹rBa£
+::
+‹¡Ca£Ended
+Ð
+‹¡Ca£S�ts
+ );
+
+10435 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+‹¡GroupS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10436 
+	gsu™eTime
+ = 
+su™eTim”
+.
+g‘EÏp£dSecÚds
+();
+
+10437 
+	gCumuÏtiveR•Ü‹rBa£
+::
+‹¡GroupEnded
+Ð
+‹¡GroupS�ts
+ );
+
+10438 
+wr™eGroup
+Ð*
+m_‹¡Groups
+.
+back
+(), 
+su™eTime
+ );
+
+10441 
+vœtu®
+ 
+‹¡RunEndedCumuÏtive
+(è
+	gCATCH_OVERRIDE
+ {
+
+10442 
+	gxml
+.
+’dEËm’t
+();
+
+10445 
+wr™eGroup
+Ð
+Te¡GroupNode
+ cÚ¡& 
+groupNode
+, 
+su™eTime
+ ) {
+
+10446 
+	gXmlWr™”
+::
+ScÝedEËm’t
+ 
+e
+ = 
+xml
+.
+scÝedEËm’t
+( "testsuite" );
+
+10447 
+Te¡GroupS�ts
+ cÚ¡& 
+	g¡©s
+ = 
+groupNode
+.
+v®ue
+;
+
+10448 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"Çme", 
+¡©s
+.
+groupInfo
+.
+Çme
+ );
+
+10449 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"”rÜs", 
+uÃx³ùedExû±iÚs
+ );
+
+10450 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"çžu»s", 
+¡©s
+.
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+-
+uÃx³ùedExû±iÚs
+ );
+
+10451 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"‹¡s", 
+¡©s
+.
+tÙ®s
+.
+as£¹iÚs
+.
+tÙ®
+() );
+
+10452 
+	gxml
+.
+wr™eA‰ribu‹
+( "hostname", "tbd" );
+
+10453 ifÐ
+	gm_cÚfig
+->
+showDu¿tiÚs
+(è=ð
+ShowDu¿tiÚs
+::
+Nev”
+ )
+
+10454 
+xml
+.
+wr™eA‰ribu‹
+( "time", "" );
+
+10456 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"time", 
+su™eTime
+ );
+
+10457 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"time¡amp", 
+g‘Cu¼’tTime¡amp
+() );
+
+10460  
+	gTe¡GroupNode
+::
+ChždNodes
+::
+cÚ¡_™”©Ü
+
+
+10461 
+™
+ = 
+groupNode
+.
+chžd»n
+.
+begš
+(), 
+	g™End
+ = groupNode.chžd»n.
+’d
+();
+
+10462 
+	g™
+ !ð
+™End
+;
+
+10463 ++
+	g™
+ )
+
+10464 
+wr™eTe¡Ca£
+Ð**
+™
+ );
+
+10466 
+	gxml
+.
+scÝedEËm’t
+Ð"sy¡em-out" ).
+wr™eText
+Ð
+Œim
+Ð
+¡dOutFÜSu™e
+.
+¡r
+(è), 
+çl£
+ );
+
+10467 
+	gxml
+.
+scÝedEËm’t
+Ð"sy¡em-”r" ).
+wr™eText
+Ð
+Œim
+Ð
+¡dE¼FÜSu™e
+.
+¡r
+(è), 
+çl£
+ );
+
+10470 
+wr™eTe¡Ca£
+Ð
+Te¡Ca£Node
+ cÚ¡& 
+‹¡Ca£Node
+ ) {
+
+10471 
+Te¡Ca£S�ts
+ cÚ¡& 
+	g¡©s
+ = 
+‹¡Ca£Node
+.
+v®ue
+;
+
+10475 
+as£¹
+Ð
+‹¡Ca£Node
+.
+chžd»n
+.
+size
+() == 1 );
+
+10476 
+SeùiÚNode
+ cÚ¡& 
+	groÙSeùiÚ
+ = *
+‹¡Ca£Node
+.
+chžd»n
+.
+äÚt
+();
+
+10478 
+	g¡d
+::
+¡ršg
+ 
+þassName
+ = 
+¡©s
+.
+‹¡Info
+.className;
+
+10480 ifÐ
+	gþassName
+.
+em±y
+() ) {
+
+10481 ifÐ
+	groÙSeùiÚ
+.
+	gchždSeùiÚs
+.
+em±y
+() )
+
+10482 
+	gþassName
+ = "global";
+
+10484 
+wr™eSeùiÚ
+Ð
+þassName
+, "", 
+roÙSeùiÚ
+ );
+
+10487 
+wr™eSeùiÚ
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+þassName
+,
+
+10488 
+¡d
+::
+¡ršg
+ cÚ¡& 
+roÙName
+,
+
+10489 
+SeùiÚNode
+ cÚ¡& 
+£ùiÚNode
+ ) {
+
+10490 
+	g¡d
+::
+¡ršg
+ 
+Çme
+ = 
+Œim
+Ð
+£ùiÚNode
+.
+¡©s
+.
+£ùiÚInfo
+.name );
+
+10491 ifÐ!
+	groÙName
+.
+em±y
+() )
+
+10492 
+	gÇme
+ = 
+roÙName
+ + '/' + 
+Çme
+;
+
+10494 ifÐ!
+	g£ùiÚNode
+.
+	gas£¹iÚs
+.
+em±y
+() ||
+
+10495 !
+	g£ùiÚNode
+.
+	g¡dOut
+.
+em±y
+() ||
+
+10496 !
+	g£ùiÚNode
+.
+	g¡dE¼
+.
+em±y
+() ) {
+
+10497 
+	gXmlWr™”
+::
+ScÝedEËm’t
+ 
+e
+ = 
+xml
+.
+scÝedEËm’t
+( "testcase" );
+
+10498 ifÐ
+	gþassName
+.
+em±y
+() ) {
+
+10499 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"þas¢ame", 
+Çme
+ );
+
+10500 
+	gxml
+.
+wr™eA‰ribu‹
+( "name", "root" );
+
+10503 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"þas¢ame", 
+þassName
+ );
+
+10504 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"Çme", 
+Çme
+ );
+
+10506 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"time", 
+C©ch
+::
+toSŒšg
+Ð
+£ùiÚNode
+.
+¡©s
+.
+du¿tiÚInSecÚds
+ ) );
+
+10508 
+wr™eAs£¹iÚs
+Ð
+£ùiÚNode
+ );
+
+10510 ifÐ!
+	g£ùiÚNode
+.
+	g¡dOut
+.
+em±y
+() )
+
+10511 
+	gxml
+.
+scÝedEËm’t
+Ð"sy¡em-out" ).
+wr™eText
+Ð
+Œim
+Ð
+£ùiÚNode
+.
+¡dOut
+ ), 
+çl£
+ );
+
+10512 ifÐ!
+	g£ùiÚNode
+.
+	g¡dE¼
+.
+em±y
+() )
+
+10513 
+	gxml
+.
+scÝedEËm’t
+Ð"sy¡em-”r" ).
+wr™eText
+Ð
+Œim
+Ð
+£ùiÚNode
+.
+¡dE¼
+ ), 
+çl£
+ );
+
+10515  
+	gSeùiÚNode
+::
+ChždSeùiÚs
+::
+cÚ¡_™”©Ü
+
+
+10516 
+™
+ = 
+£ùiÚNode
+.
+chždSeùiÚs
+.
+begš
+(),
+
+10517 
+	g™End
+ = 
+£ùiÚNode
+.
+chždSeùiÚs
+.
+’d
+();
+
+10518 
+	g™
+ !ð
+™End
+;
+
+10519 ++
+	g™
+ )
+
+10520 ifÐ
+	gþassName
+.
+em±y
+() )
+
+10521 
+wr™eSeùiÚ
+Ð
+Çme
+, "", **
+™
+ );
+
+10523 
+wr™eSeùiÚ
+Ð
+þassName
+, 
+Çme
+, **
+™
+ );
+
+10526 
+wr™eAs£¹iÚs
+Ð
+SeùiÚNode
+ cÚ¡& 
+£ùiÚNode
+ ) {
+
+10527  
+	gSeùiÚNode
+::
+As£¹iÚs
+::
+cÚ¡_™”©Ü
+
+
+10528 
+™
+ = 
+£ùiÚNode
+.
+as£¹iÚs
+.
+begš
+(), 
+	g™End
+ = seùiÚNode.as£¹iÚs.
+’d
+();
+
+10529 
+	g™
+ !ð
+™End
+;
+
+10530 ++
+	g™
+ )
+
+10531 
+wr™eAs£¹iÚ
+Ð*
+™
+ );
+
+10533 
+wr™eAs£¹iÚ
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+¡©s
+ ) {
+
+10534 
+As£¹iÚResuÉ
+ cÚ¡& 
+	g»suÉ
+ = 
+¡©s
+.
+as£¹iÚResuÉ
+;
+
+10535 ifÐ!
+	g»suÉ
+.
+isOk
+() ) {
+
+10536 
+	g¡d
+::
+¡ršg
+ 
+–em’tName
+;
+
+10537  
+	g»suÉ
+.
+g‘ResuÉTy³
+() ) {
+
+10538 
+	gResuÉWas
+::
+Th»wExû±iÚ
+:
+
+10539 
+ResuÉWas
+::
+F©®E¼ÜCÚd™iÚ
+:
+
+10540 
+–em’tName
+ = "error";
+
+10542 
+	gResuÉWas
+::
+Ex¶ic™Fažu»
+:
+
+10543 
+–em’tName
+ = "failure";
+
+10545 
+	gResuÉWas
+::
+Ex´essiÚFažed
+:
+
+10546 
+–em’tName
+ = "failure";
+
+10548 
+	gResuÉWas
+::
+DidÁThrowExû±iÚ
+:
+
+10549 
+–em’tName
+ = "failure";
+
+10553 
+	gResuÉWas
+::
+Info
+:
+
+10554 
+ResuÉWas
+::
+W¬nšg
+:
+
+10555 
+ResuÉWas
+::
+Ok
+:
+
+10556 
+ResuÉWas
+::
+Unknown
+:
+
+10557 
+ResuÉWas
+::
+Fažu»B™
+:
+
+10558 
+ResuÉWas
+::
+Exû±iÚ
+:
+
+10559 
+–em’tName
+ = "internalError";
+
+10563 
+	gXmlWr™”
+::
+ScÝedEËm’t
+ 
+e
+ = 
+xml
+.
+scÝedEËm’t
+Ð
+–em’tName
+ );
+
+10565 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"mes§ge", 
+»suÉ
+.
+g‘Ex·ndedEx´essiÚ
+() );
+
+10566 
+	gxml
+.
+wr™eA‰ribu‹
+Ð"ty³", 
+»suÉ
+.
+g‘Te¡MaüoName
+() );
+
+10568 
+	g¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+10569 ifÐ!
+	g»suÉ
+.
+g‘Mes§ge
+().
+em±y
+() )
+
+10570 
+	goss
+ << 
+	g»suÉ
+.
+g‘Mes§ge
+() << '\n';
+
+10571  
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+>::
+cÚ¡_™”©Ü
+
+
+10572 
+™
+ = 
+¡©s
+.
+šfoMes§ges
+.
+begš
+(),
+
+10573 
+	g™End
+ = 
+¡©s
+.
+šfoMes§ges
+.
+’d
+();
+
+10574 
+	g™
+ !ð
+™End
+;
+
+10575 ++
+	g™
+ )
+
+10576 ifÐ
+	g™
+->
+	gty³
+ =ð
+ResuÉWas
+::
+Info
+ )
+
+10577 
+oss
+ << 
+™
+->
+mes§ge
+ << '\n';
+
+10579 
+	goss
+ << "© " << 
+	g»suÉ
+.
+g‘SourûInfo
+();
+
+10580 
+	gxml
+.
+wr™eText
+Ð
+oss
+.
+¡r
+(), 
+çl£
+ );
+
+10584 
+XmlWr™”
+ 
+	gxml
+;
+
+10585 
+Tim”
+ 
+	gsu™eTim”
+;
+
+10586 
+	g¡d
+::
+o¡ršg¡»am
+ 
+¡dOutFÜSu™e
+;
+
+10587 
+	g¡d
+::
+o¡ršg¡»am
+ 
+¡dE¼FÜSu™e
+;
+
+10588 
+	guÃx³ùedExû±iÚs
+;
+
+10589 
+boÞ
+ 
+	gm_okToFaž
+;
+
+10592 
+INTERNAL_CATCH_REGISTER_REPORTER
+Ð"jun™", 
+Jun™R•Ü‹r
+ )
+
+10597 
+	#TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
+
+
+	)
+
+10599 
+	~<cæßt
+>
+
+10600 
+	~<c¡dio
+>
+
+10602 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+10604 
+	gCÚsÞeR•Ü‹r
+ : 
+SŒ—mšgR•Ü‹rBa£
+ {
+
+10605 
+CÚsÞeR•Ü‹r
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+_cÚfig
+ )
+
+10606 : 
+SŒ—mšgR•Ü‹rBa£
+Ð
+_cÚfig
+ ),
+
+10607 
+m_h—d”Prš‹d
+Ð
+çl£
+ )
+
+10610 
+	gvœtu®
+ ~
+CÚsÞeR•Ü‹r
+(è
+	gCATCH_OVERRIDE
+;
+
+10611 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() {
+
+10615 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¥ec
+ ) 
+CATCH_OVERRIDE
+ {
+
+10616 
+¡»am
+ << "NØ‹¡ ca£ m©ched '" << 
+¥ec
+ << '\'' << 
+¡d
+::
+’dl
+;
+
+10619 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ cÚ¡& ) 
+	gCATCH_OVERRIDE
+ {
+
+10622 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+_as£¹iÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10623 
+As£¹iÚResuÉ
+ cÚ¡& 
+	g»suÉ
+ = 
+_as£¹iÚS�ts
+.
+as£¹iÚResuÉ
+;
+
+10625 
+boÞ
+ 
+	gšþudeResuÉs
+ = 
+m_cÚfig
+->
+šþudeSucûssfulResuÉs
+(è|| !
+»suÉ
+.
+isOk
+();
+
+10628 ifÐ!
+	gšþudeResuÉs
+ && 
+	g»suÉ
+.
+g‘ResuÉTy³
+(è!ð
+ResuÉWas
+::
+W¬nšg
+ )
+
+10629  
+çl£
+;
+
+10631 
+ÏzyPršt
+();
+
+10633 
+As£¹iÚPrš‹r
+ 
+´š‹r
+Ð
+¡»am
+, 
+_as£¹iÚS�ts
+, 
+šþudeResuÉs
+ );
+
+10634 
+	g´š‹r
+.
+´št
+();
+
+10635 
+	g¡»am
+ << 
+	g¡d
+::
+’dl
+;
+
+10636  
+	gŒue
+;
+
+10639 
+vœtu®
+ 
+£ùiÚS�¹šg
+Ð
+SeùiÚInfo
+ cÚ¡& 
+_£ùiÚInfo
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10640 
+	gm_h—d”Prš‹d
+ = 
+çl£
+;
+
+10641 
+	gSŒ—mšgR•Ü‹rBa£
+::
+£ùiÚS�¹šg
+Ð
+_£ùiÚInfo
+ );
+
+10643 
+vœtu®
+ 
+£ùiÚEnded
+Ð
+SeùiÚS�ts
+ cÚ¡& 
+_£ùiÚS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10644 ifÐ
+	g_£ùiÚS�ts
+.
+	gmissšgAs£¹iÚs
+ ) {
+
+10645 
+ÏzyPršt
+();
+
+10646 
+CÞour
+ 
+cÞour
+ÐCÞour::
+ResuÉE¼Ü
+ );
+
+10647 ifÐ
+	gm_£ùiÚS�ck
+.
+size
+() > 1 )
+
+10648 
+	g¡»am
+ << "\nNo‡ssertions in section";
+
+10650 
+	g¡»am
+ << "\nNo‡ssertions in�est case";
+
+10651 
+	g¡»am
+ << " '" << 
+	g_£ùiÚS�ts
+.
+	g£ùiÚInfo
+.
+	gÇme
+ << "'\n" << 
+	g¡d
+::
+’dl
+;
+
+10653 ifÐ
+	gm_cÚfig
+->
+showDu¿tiÚs
+(è=ð
+ShowDu¿tiÚs
+::
+Always
+ ) {
+
+10654 
+¡»am
+ << 
+g‘FÜm©‹dDu¿tiÚ
+(
+_£ùiÚS�ts
+.
+du¿tiÚInSecÚds
+è<< " s: " << _£ùiÚS�ts.
+£ùiÚInfo
+.
+Çme
+ << 
+¡d
+::
+’dl
+;
+
+10656 ifÐ
+	gm_h—d”Prš‹d
+ ) {
+
+10657 
+	gm_h—d”Prš‹d
+ = 
+çl£
+;
+
+10659 
+	gSŒ—mšgR•Ü‹rBa£
+::
+£ùiÚEnded
+Ð
+_£ùiÚS�ts
+ );
+
+10662 
+vœtu®
+ 
+‹¡Ca£Ended
+Ð
+Te¡Ca£S�ts
+ cÚ¡& 
+_‹¡Ca£S�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10663 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡Ca£Ended
+Ð
+_‹¡Ca£S�ts
+ );
+
+10664 
+	gm_h—d”Prš‹d
+ = 
+çl£
+;
+
+10666 
+vœtu®
+ 
+‹¡GroupEnded
+Ð
+Te¡GroupS�ts
+ cÚ¡& 
+_‹¡GroupS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10667 ifÐ
+	gcu¼’tGroupInfo
+.
+	gu£d
+ ) {
+
+10668 
+´štSumm¬yDivid”
+();
+
+10669 
+	g¡»am
+ << "Summ¬y fÜ grou°'" << 
+	g_‹¡GroupS�ts
+.
+	ggroupInfo
+.
+	gÇme
+ << "':\n";
+
+10670 
+´štTÙ®s
+Ð
+_‹¡GroupS�ts
+.
+tÙ®s
+ );
+
+10671 
+	g¡»am
+ << '\n' << 
+	g¡d
+::
+’dl
+;
+
+10673 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡GroupEnded
+Ð
+_‹¡GroupS�ts
+ );
+
+10675 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+_‹¡RunS�ts
+ ) 
+	gCATCH_OVERRIDE
+ {
+
+10676 
+´štTÙ®sDivid”
+Ð
+_‹¡RunS�ts
+.
+tÙ®s
+ );
+
+10677 
+´štTÙ®s
+Ð
+_‹¡RunS�ts
+.
+tÙ®s
+ );
+
+10678 
+	g¡»am
+ << 
+	g¡d
+::
+’dl
+;
+
+10679 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡RunEnded
+Ð
+_‹¡RunS�ts
+ );
+
+10682 
+	g´iv©e
+:
+
+10684 þas 
+	cAs£¹iÚPrš‹r
+ {
+
+10685 
+Ý”©Ü
+ðÐ
+As£¹iÚPrš‹r
+ const& );
+
+10686 
+	gpublic
+:
+
+10687 
+As£¹iÚPrš‹r
+Ð
+¡d
+::
+o¡»am
+& 
+_¡»am
+, 
+As£¹iÚS�ts
+ cÚ¡& 
+_¡©s
+, 
+boÞ
+ 
+_´štInfoMes§ges
+ )
+
+10688 : 
+¡»am
+Ð
+_¡»am
+ ),
+
+10689 
+¡©s
+Ð
+_¡©s
+ ),
+
+10690 
+»suÉ
+Ð
+_¡©s
+.
+as£¹iÚResuÉ
+ ),
+
+10691 
+cÞour
+Ð
+CÞour
+::
+NÚe
+ ),
+
+10692 
+mes§ge
+Ð
+»suÉ
+.
+g‘Mes§ge
+() ),
+
+10693 
+mes§ges
+Ð
+_¡©s
+.
+šfoMes§ges
+ ),
+
+10694 
+´štInfoMes§ges
+Ð
+_´štInfoMes§ges
+ )
+
+10696  
+	g»suÉ
+.
+g‘ResuÉTy³
+() ) {
+
+10697 
+	gResuÉWas
+::
+Ok
+:
+
+10698 
+cÞour
+ = 
+CÞour
+::
+Sucûss
+;
+
+10699 
+	g·ssOrFaž
+ = "PASSED";
+
+10701 ifÐ
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() == 1 )
+
+10702 
+mes§geLab–
+ = "with message";
+
+10703 ifÐ
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() > 1 )
+
+10704 
+	gmes§geLab–
+ = "with messages";
+
+10706 
+	gResuÉWas
+::
+Ex´essiÚFažed
+:
+
+10707 ifÐ
+»suÉ
+.
+isOk
+() ) {
+
+10708 
+cÞour
+ = 
+CÞour
+::
+Sucûss
+;
+
+10709 
+	g·ssOrFaž
+ = "FAILED - but was ok";
+
+10712 
+	gcÞour
+ = 
+CÞour
+::
+E¼Ü
+;
+
+10713 
+	g·ssOrFaž
+ = "FAILED";
+
+10715 ifÐ
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() == 1 )
+
+10716 
+mes§geLab–
+ = "with message";
+
+10717 ifÐ
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() > 1 )
+
+10718 
+	gmes§geLab–
+ = "with messages";
+
+10720 
+	gResuÉWas
+::
+Th»wExû±iÚ
+:
+
+10721 
+cÞour
+ = 
+CÞour
+::
+E¼Ü
+;
+
+10722 
+	g·ssOrFaž
+ = "FAILED";
+
+10723 
+	gmes§geLab–
+ = "due�o unexpectedƒxception with ";
+
+10724 ià(
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() == 1)
+
+10725 
+mes§geLab–
+ += "message";
+
+10726 ià(
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() > 1)
+
+10727 
+	gmes§geLab–
+ += "messages";
+
+10729 
+	gResuÉWas
+::
+F©®E¼ÜCÚd™iÚ
+:
+
+10730 
+cÞour
+ = 
+CÞour
+::
+E¼Ü
+;
+
+10731 
+	g·ssOrFaž
+ = "FAILED";
+
+10732 
+	gmes§geLab–
+ = "due�o‡ fatalƒrror condition";
+
+10734 
+	gResuÉWas
+::
+DidÁThrowExû±iÚ
+:
+
+10735 
+cÞour
+ = 
+CÞour
+::
+E¼Ü
+;
+
+10736 
+	g·ssOrFaž
+ = "FAILED";
+
+10737 
+	gmes§geLab–
+ = "because‚oƒxception was�hrown where one wasƒxpected";
+
+10739 
+	gResuÉWas
+::
+Info
+:
+
+10740 
+mes§geLab–
+ = "info";
+
+10742 
+	gResuÉWas
+::
+W¬nšg
+:
+
+10743 
+mes§geLab–
+ = "warning";
+
+10745 
+	gResuÉWas
+::
+Ex¶ic™Fažu»
+:
+
+10746 
+·ssOrFaž
+ = "FAILED";
+
+10747 
+	gcÞour
+ = 
+CÞour
+::
+E¼Ü
+;
+
+10748 ifÐ
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() == 1 )
+
+10749 
+mes§geLab–
+ = "explicitly with message";
+
+10750 ifÐ
+	g_¡©s
+.
+	gšfoMes§ges
+.
+size
+() > 1 )
+
+10751 
+	gmes§geLab–
+ = "explicitly with messages";
+
+10754 
+	gResuÉWas
+::
+Unknown
+:
+
+10755 
+ResuÉWas
+::
+Fažu»B™
+:
+
+10756 
+ResuÉWas
+::
+Exû±iÚ
+:
+
+10757 
+·ssOrFaž
+ = "** internalƒrror **";
+
+10758 
+	gcÞour
+ = 
+CÞour
+::
+E¼Ü
+;
+
+10763 
+´št
+() const {
+
+10764 
+´štSourûInfo
+();
+
+10765 ifÐ
+	g¡©s
+.
+	gtÙ®s
+.
+	gas£¹iÚs
+.
+tÙ®
+() > 0 ) {
+
+10766 ifÐ
+	g»suÉ
+.
+isOk
+() )
+
+10767 
+	g¡»am
+ << '\n';
+
+10768 
+´štResuÉTy³
+();
+
+10769 
+´štOrigš®Ex´essiÚ
+();
+
+10770 
+´štRecÚ¡ruùedEx´essiÚ
+();
+
+10773 
+	g¡»am
+ << '\n';
+
+10775 
+´štMes§ge
+();
+
+10778 
+	g´iv©e
+:
+
+10779 
+´štResuÉTy³
+() const {
+
+10780 ifÐ!
+·ssOrFaž
+.
+em±y
+() ) {
+
+10781 
+CÞour
+ 
+cÞourGu¬d
+Ð
+cÞour
+ );
+
+10782 
+	g¡»am
+ << 
+	g·ssOrFaž
+ << ":\n";
+
+10785 
+´štOrigš®Ex´essiÚ
+() const {
+
+10786 ifÐ
+	g»suÉ
+.
+hasEx´essiÚ
+() ) {
+
+10787 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+Origš®Ex´essiÚ
+ );
+
+10788 
+	g¡»am
+ << " ";
+
+10789 
+	g¡»am
+ << 
+	g»suÉ
+.
+g‘Ex´essiÚInMaüo
+();
+
+10790 
+	g¡»am
+ << '\n';
+
+10793 
+´štRecÚ¡ruùedEx´essiÚ
+() const {
+
+10794 ifÐ
+	g»suÉ
+.
+hasEx·ndedEx´essiÚ
+() ) {
+
+10795 
+	g¡»am
+ << "withƒxpansion:\n";
+
+10796 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+RecÚ¡ruùedEx´essiÚ
+ );
+
+10797 
+	g¡»am
+ << 
+Text
+Ð
+»suÉ
+.
+g‘Ex·ndedEx´essiÚ
+(), 
+TextA‰ribu‹s
+().
+£tInd’t
+(2) ) << '\n';
+
+10800 
+´štMes§ge
+() const {
+
+10801 ifÐ!
+	gmes§geLab–
+.
+em±y
+() )
+
+10802 
+	g¡»am
+ << 
+	gmes§geLab–
+ << ':' << '\n';
+
+10803  
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+mes§ges
+.
+begš
+(), 
+	g™End
+ = mes§ges.
+’d
+();
+
+10804 
+	g™
+ !ð
+™End
+;
+
+10805 ++
+	g™
+ ) {
+
+10807 ifÐ
+	g´štInfoMes§ges
+ || 
+	g™
+->
+	gty³
+ !ð
+ResuÉWas
+::
+Info
+ )
+
+10808 
+¡»am
+ << 
+Text
+Ð
+™
+->
+mes§ge
+, 
+TextA‰ribu‹s
+().
+£tInd’t
+(2) ) << '\n';
+
+10811 
+´štSourûInfo
+() const {
+
+10812 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+FžeName
+ );
+
+10813 
+	g¡»am
+ << 
+	g»suÉ
+.
+g‘SourûInfo
+() << ": ";
+
+10816 
+	g¡d
+::
+o¡»am
+& 
+¡»am
+;
+
+10817 
+As£¹iÚS�ts
+ cÚ¡& 
+	g¡©s
+;
+
+10818 
+As£¹iÚResuÉ
+ cÚ¡& 
+	g»suÉ
+;
+
+10819 
+	gCÞour
+::
+Code
+ 
+cÞour
+;
+
+10820 
+	g¡d
+::
+¡ršg
+ 
+·ssOrFaž
+;
+
+10821 
+	g¡d
+::
+¡ršg
+ 
+mes§geLab–
+;
+
+10822 
+	g¡d
+::
+¡ršg
+ 
+mes§ge
+;
+
+10823 
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+> 
+mes§ges
+;
+
+10824 
+boÞ
+ 
+	g´štInfoMes§ges
+;
+
+10827 
+ÏzyPršt
+() {
+
+10829 ifÐ!
+	gcu¼’tTe¡RunInfo
+.
+	gu£d
+ )
+
+10830 
+ÏzyPrštRunInfo
+();
+
+10831 ifÐ!
+	gcu¼’tGroupInfo
+.
+	gu£d
+ )
+
+10832 
+ÏzyPrštGroupInfo
+();
+
+10834 ifÐ!
+	gm_h—d”Prš‹d
+ ) {
+
+10835 
+´štTe¡Ca£AndSeùiÚH—d”
+();
+
+10836 
+	gm_h—d”Prš‹d
+ = 
+Œue
+;
+
+10839 
+ÏzyPrštRunInfo
+() {
+
+10840 
+	g¡»am
+ << '\n' << 
+	gg‘LšeOfCh¬s
+<'~'>() << '\n';
+
+10841 
+CÞour
+ 
+cÞour
+ÐCÞour::
+SecÚd¬yText
+ );
+
+10842 
+	g¡»am
+ << 
+	gcu¼’tTe¡RunInfo
+->
+	gÇme
+
+
+10843 << " i ¨C©ch v" << 
+lib¿ryV”siÚ
+() << " host‡pplication.\n"
+
+10846 ifÐ
+	gm_cÚfig
+->
+ºgS“d
+() != 0 )
+
+10847 
+¡»am
+ << "RªdomÃs £eded�o: " << 
+m_cÚfig
+->
+ºgS“d
+() << "\n\n";
+
+10849 
+	gcu¼’tTe¡RunInfo
+.
+	gu£d
+ = 
+Œue
+;
+
+10851 
+ÏzyPrštGroupInfo
+() {
+
+10852 ifÐ!
+	gcu¼’tGroupInfo
+->
+	gÇme
+.
+em±y
+(è&& cu¼’tGroupInfo->
+	ggroupsCouÁs
+ > 1 ) {
+
+10853 
+´štClo£dH—d”
+Ð"Group: " + 
+cu¼’tGroupInfo
+->
+Çme
+ );
+
+10854 
+	gcu¼’tGroupInfo
+.
+	gu£d
+ = 
+Œue
+;
+
+10857 
+´štTe¡Ca£AndSeùiÚH—d”
+() {
+
+10858 
+as£¹
+Ð!
+m_£ùiÚS�ck
+.
+em±y
+() );
+
+10859 
+´štO³nH—d”
+Ð
+cu¼’tTe¡Ca£Info
+->
+Çme
+ );
+
+10861 ifÐ
+	gm_£ùiÚS�ck
+.
+size
+() > 1 ) {
+
+10862 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+H—d”s
+ );
+
+10864 
+	g¡d
+::
+veùÜ
+<
+SeùiÚInfo
+>::
+cÚ¡_™”©Ü
+
+
+10865 
+™
+ = 
+m_£ùiÚS�ck
+.
+begš
+()+1,
+
+10866 
+	g™End
+ = 
+m_£ùiÚS�ck
+.
+’d
+();
+
+10867  ; 
+	g™
+ !ð
+™End
+; ++it )
+
+10868 
+´štH—d”SŒšg
+Ð
+™
+->
+Çme
+, 2 );
+
+10871 
+SourûLšeInfo
+ 
+	glšeInfo
+ = 
+m_£ùiÚS�ck
+.
+back
+().
+lšeInfo
+;
+
+10873 ifÐ!
+	glšeInfo
+.
+em±y
+() ){
+
+10874 
+	g¡»am
+ << 
+	gg‘LšeOfCh¬s
+<'-'>() << '\n';
+
+10875 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+FžeName
+ );
+
+10876 
+	g¡»am
+ << 
+	glšeInfo
+ << '\n';
+
+10878 
+	g¡»am
+ << 
+	gg‘LšeOfCh¬s
+<'.'>(è<< '\n' << 
+	g¡d
+::
+’dl
+;
+
+10881 
+´štClo£dH—d”
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+ ) {
+
+10882 
+´štO³nH—d”
+Ð
+_Çme
+ );
+
+10883 
+	g¡»am
+ << 
+	gg‘LšeOfCh¬s
+<'.'>() << '\n';
+
+10885 
+´štO³nH—d”
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Çme
+ ) {
+
+10886 
+¡»am
+ << 
+g‘LšeOfCh¬s
+<'-'>() << '\n';
+
+10888 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+H—d”s
+ );
+
+10889 
+´štH—d”SŒšg
+Ð
+_Çme
+ );
+
+10895 
+´štH—d”SŒšg
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_¡ršg
+, std::
+size_t
+ 
+šd’t
+ = 0 ) {
+
+10896 
+¡d
+::
+size_t
+ 
+i
+ = 
+_¡ršg
+.
+fšd
+( ": " );
+
+10897 ifÐ
+	gi
+ !ð
+¡d
+::
+¡ršg
+::
+Åos
+ )
+
+10898 
+i
++=2;
+
+10900 
+	gi
+ = 0;
+
+10901 
+	g¡»am
+ << 
+Text
+Ð
+_¡ršg
+, 
+TextA‰ribu‹s
+()
+
+10902 .
+£tInd’t
+Ð
+šd’t
++
+i
+)
+
+10903 .
+£tIn™ŸlInd’t
+Ð
+šd’t
+ ) ) << '\n';
+
+10906 
+	sSumm¬yCÞumn
+ {
+
+10908 
+Summ¬yCÞumn
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+_Ïb–
+, 
+CÞour
+::
+Code
+ 
+_cÞour
+ )
+
+10909 : 
+Ïb–
+Ð
+_Ïb–
+ ),
+
+10910 
+cÞour
+Ð
+_cÞour
+ )
+
+10912 
+Summ¬yCÞumn
+ 
+addRow
+Ð
+¡d
+::
+size_t
+ 
+couÁ
+ ) {
+
+10913 
+¡d
+::
+o¡ršg¡»am
+ 
+oss
+;
+
+10914 
+	goss
+ << 
+	gcouÁ
+;
+
+10915 
+	g¡d
+::
+¡ršg
+ 
+row
+ = 
+oss
+.
+¡r
+();
+
+10916  
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+>::
+™”©Ü
+ 
+™
+ = 
+rows
+.
+begš
+(); 
+	g™
+ !ðrows.
+’d
+(); ++it ) {
+
+10917  
+	g™
+->
+size
+(è< 
+	grow
+.size() )
+
+10918 *
+	g™
+ = ' ' + *
+™
+;
+
+10919  
+	g™
+->
+size
+(è> 
+	grow
+.size() )
+
+10920 
+	grow
+ = ' ' + 
+row
+;
+
+10922 
+	grows
+.
+push_back
+Ð
+row
+ );
+
+10923  *
+	gthis
+;
+
+10926 
+	g¡d
+::
+¡ršg
+ 
+Ïb–
+;
+
+10927 
+	gCÞour
+::
+Code
+ 
+cÞour
+;
+
+10928 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+¡ršg
+> 
+rows
+;
+
+10932 
+´štTÙ®s
+Ð
+TÙ®s
+ cÚ¡& 
+tÙ®s
+ ) {
+
+10933 ifÐ
+	gtÙ®s
+.
+	g‹¡Ca£s
+.
+tÙ®
+() == 0 ) {
+
+10934 
+¡»am
+ << 
+CÞour
+ÐCÞour::
+W¬nšg
+ ) << "No�ests„an\n";
+
+10936 ifÐ
+	gtÙ®s
+.
+	gas£¹iÚs
+.
+tÙ®
+(è> 0 &&�Ù®s.
+	g‹¡Ca£s
+.
+®lPas£d
+() ) {
+
+10937 
+	g¡»am
+ << 
+CÞour
+ÐCÞour::
+ResuÉSucûss
+ ) << "All�ests…assed";
+
+10938 
+	g¡»am
+ << " ("
+
+10939 << 
+¶u¿li£
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+·s£d
+, "assertion" ) << " in "
+
+10940 << 
+¶u¿li£
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+·s£d
+, "test case" ) << ')'
+
+10945 
+	g¡d
+::
+veùÜ
+<
+Summ¬yCÞumn
+> 
+cÞumns
+;
+
+10946 
+	gcÞumns
+.
+push_back
+Ð
+Summ¬yCÞumn
+Ð"", 
+CÞour
+::
+NÚe
+ )
+
+10947 .
+addRow
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+tÙ®
+() )
+
+10948 .
+addRow
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+tÙ®
+() ) );
+
+10949 
+	gcÞumns
+.
+push_back
+Ð
+Summ¬yCÞumn
+Ð"·s£d", 
+CÞour
+::
+Sucûss
+ )
+
+10950 .
+addRow
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+·s£d
+ )
+
+10951 .
+addRow
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+·s£d
+ ) );
+
+10952 
+	gcÞumns
+.
+push_back
+Ð
+Summ¬yCÞumn
+Ð"çžed", 
+CÞour
+::
+ResuÉE¼Ü
+ )
+
+10953 .
+addRow
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+çžed
+ )
+
+10954 .
+addRow
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+ ) );
+
+10955 
+	gcÞumns
+.
+push_back
+Ð
+Summ¬yCÞumn
+Ð"çžed‡ ex³ùed", 
+CÞour
+::
+ResuÉEx³ùedFažu»
+ )
+
+10956 .
+addRow
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+çžedButOk
+ )
+
+10957 .
+addRow
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+çžedButOk
+ ) );
+
+10959 
+´štSumm¬yRow
+Ð"‹¡ ca£s", 
+cÞumns
+, 0 );
+
+10960 
+´štSumm¬yRow
+Ð"as£¹iÚs", 
+cÞumns
+, 1 );
+
+10963 
+´štSumm¬yRow
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+Ïb–
+, std::
+veùÜ
+<
+Summ¬yCÞumn
+> cÚ¡& 
+cÞs
+, std::
+size_t
+ 
+row
+ ) {
+
+10964  
+¡d
+::
+veùÜ
+<
+Summ¬yCÞumn
+>::
+cÚ¡_™”©Ü
+ 
+™
+ = 
+cÞs
+.
+begš
+(); 
+	g™
+ !ðcÞs.
+’d
+(); ++it ) {
+
+10965 
+	g¡d
+::
+¡ršg
+ 
+v®ue
+ = 
+™
+->
+rows
+[
+row
+];
+
+10966 ifÐ
+	g™
+->
+	gÏb–
+.
+em±y
+() ) {
+
+10967 
+	g¡»am
+ << 
+	gÏb–
+ << ": ";
+
+10968 ifÐ
+	gv®ue
+ != "0" )
+
+10969 
+¡»am
+ << 
+v®ue
+;
+
+10971 
+	g¡»am
+ << 
+CÞour
+ÐCÞour::
+W¬nšg
+ ) << "-‚one -";
+
+10973 ifÐ
+	gv®ue
+ != "0" ) {
+
+10974 
+¡»am
+ << 
+CÞour
+ÐCÞour::
+LightG»y
+ ) << " | ";
+
+10975 
+	g¡»am
+ << 
+CÞour
+Ð
+™
+->
+cÞour
+ )
+
+10976 << 
+	gv®ue
+ << ' ' << 
+	g™
+->
+	gÏb–
+;
+
+10979 
+	g¡»am
+ << '\n';
+
+10982 
+	g¡d
+::
+size_t
+ 
+makeR©io
+Ð
+¡d
+::size_ˆ
+numb”
+, std::size_ˆ
+tÙ®
+ ) {
+
+10983 
+¡d
+::
+size_t
+ 
+¿tio
+ = 
+tÙ®
+ > 0 ? 
+CATCH_CONFIG_CONSOLE_WIDTH
+ * 
+numb”
+/�otal : 0;
+
+10984  ( 
+	g¿tio
+ =ð0 && 
+numb”
+ > 0 ) ? 1 : 
+¿tio
+;
+
+10986 
+	g¡d
+::
+size_t
+& 
+fšdMax
+Ð
+¡d
+::size_t& 
+i
+, std::size_t& 
+j
+, std::size_t& 
+k
+ ) {
+
+10987 ifÐ
+i
+ > 
+j
+ && i > 
+k
+ )
+
+10988  
+i
+;
+
+10989 ifÐ
+	gj
+ > 
+	gk
+ )
+
+10990  
+	gj
+;
+
+10992  
+	gk
+;
+
+10995 
+´štTÙ®sDivid”
+Ð
+TÙ®s
+ cÚ¡& 
+tÙ®s
+ ) {
+
+10996 ifÐ
+	gtÙ®s
+.
+	g‹¡Ca£s
+.
+tÙ®
+() > 0 ) {
+
+10997 
+	g¡d
+::
+size_t
+ 
+çžedR©io
+ = 
+makeR©io
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+çžed
+,�Ù®s.‹¡Ca£s.
+tÙ®
+() );
+
+10998 
+	g¡d
+::
+size_t
+ 
+çžedButOkR©io
+ = 
+makeR©io
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+çžedButOk
+,�Ù®s.‹¡Ca£s.
+tÙ®
+() );
+
+10999 
+	g¡d
+::
+size_t
+ 
+·s£dR©io
+ = 
+makeR©io
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+·s£d
+,�Ù®s.‹¡Ca£s.
+tÙ®
+() );
+
+11000  
+	gçžedR©io
+ + 
+	gçžedButOkR©io
+ + 
+	g·s£dR©io
+ < 
+	gCATCH_CONFIG_CONSOLE_WIDTH
+-1 )
+
+11001 
+fšdMax
+Ð
+çžedR©io
+, 
+çžedButOkR©io
+, 
+·s£dR©io
+ )++;
+
+11002  
+	gçžedR©io
+ + 
+	gçžedButOkR©io
+ + 
+	g·s£dR©io
+ > 
+	gCATCH_CONFIG_CONSOLE_WIDTH
+-1 )
+
+11003 
+fšdMax
+Ð
+çžedR©io
+, 
+çžedButOkR©io
+, 
+·s£dR©io
+ )--;
+
+11005 
+	g¡»am
+ << 
+CÞour
+ÐCÞour::
+E¼Ü
+ ) << 
+¡d
+::
+¡ršg
+Ð
+çžedR©io
+, '=' );
+
+11006 
+	g¡»am
+ << 
+CÞour
+ÐCÞour::
+ResuÉEx³ùedFažu»
+ ) << 
+¡d
+::
+¡ršg
+Ð
+çžedButOkR©io
+, '=' );
+
+11007 ifÐ
+	gtÙ®s
+.
+	g‹¡Ca£s
+.
+®lPas£d
+() )
+
+11008 
+	g¡»am
+ << 
+CÞour
+ÐCÞour::
+ResuÉSucûss
+ ) << 
+¡d
+::
+¡ršg
+Ð
+·s£dR©io
+, '=' );
+
+11010 
+	g¡»am
+ << 
+CÞour
+ÐCÞour::
+Sucûss
+ ) << 
+¡d
+::
+¡ršg
+Ð
+·s£dR©io
+, '=' );
+
+11013 
+	g¡»am
+ << 
+CÞour
+ÐCÞour::
+W¬nšg
+ ) << 
+¡d
+::
+¡ršg
+Ð
+CATCH_CONFIG_CONSOLE_WIDTH
+-1, '=' );
+
+11015 
+	g¡»am
+ << '\n';
+
+11017 
+´štSumm¬yDivid”
+() {
+
+11018 
+	g¡»am
+ << 
+	gg‘LšeOfCh¬s
+<'-'>() << '\n';
+
+11021 
+	g´iv©e
+:
+
+11022 
+boÞ
+ 
+m_h—d”Prš‹d
+;
+
+11025 
+INTERNAL_CATCH_REGISTER_REPORTER
+Ð"cÚsÞe", 
+CÚsÞeR•Ü‹r
+ )
+
+11030 
+	#TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
+
+
+	)
+
+11032 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+11034 
+	gCom·ùR•Ü‹r
+ : 
+SŒ—mšgR•Ü‹rBa£
+ {
+
+11036 
+Com·ùR•Ü‹r
+Ð
+R•Ü‹rCÚfig
+ cÚ¡& 
+_cÚfig
+ )
+
+11037 : 
+SŒ—mšgR•Ü‹rBa£
+Ð
+_cÚfig
+ )
+
+11040 
+vœtu®
+ ~
+Com·ùR•Ü‹r
+();
+
+11042 
+	g¡d
+::
+¡ršg
+ 
+g‘Desü�tiÚ
+() {
+
+11046 
+vœtu®
+ 
+R•Ü‹rP»ã»nûs
+ 
+g‘P»ã»nûs
+() const {
+
+11047 
+R•Ü‹rP»ã»nûs
+ 
+	g´efs
+;
+
+11048 
+	g´efs
+.
+	gshouldRedœeùStdOut
+ = 
+çl£
+;
+
+11049  
+	g´efs
+;
+
+11052 
+vœtu®
+ 
+noM©chšgTe¡Ca£s
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+¥ec
+ ) {
+
+11053 
+¡»am
+ << "NØ‹¡ ca£ m©ched '" << 
+¥ec
+ << '\'' << 
+¡d
+::
+’dl
+;
+
+11056 
+vœtu®
+ 
+as£¹iÚS�¹šg
+Ð
+As£¹iÚInfo
+ const& ) {}
+
+11058 
+vœtu®
+ 
+boÞ
+ 
+as£¹iÚEnded
+Ð
+As£¹iÚS�ts
+ cÚ¡& 
+_as£¹iÚS�ts
+ ) {
+
+11059 
+As£¹iÚResuÉ
+ cÚ¡& 
+	g»suÉ
+ = 
+_as£¹iÚS�ts
+.
+as£¹iÚResuÉ
+;
+
+11061 
+boÞ
+ 
+	g´štInfoMes§ges
+ = 
+Œue
+;
+
+11064 ifÐ!
+	gm_cÚfig
+->
+šþudeSucûssfulResuÉs
+(è&& 
+	g»suÉ
+.
+isOk
+() ) {
+
+11065 ifÐ
+	g»suÉ
+.
+g‘ResuÉTy³
+(è!ð
+ResuÉWas
+::
+W¬nšg
+ )
+
+11066  
+çl£
+;
+
+11067 
+	g´štInfoMes§ges
+ = 
+çl£
+;
+
+11070 
+As£¹iÚPrš‹r
+ 
+´š‹r
+Ð
+¡»am
+, 
+_as£¹iÚS�ts
+, 
+´štInfoMes§ges
+ );
+
+11071 
+	g´š‹r
+.
+´št
+();
+
+11073 
+	g¡»am
+ << 
+	g¡d
+::
+’dl
+;
+
+11074  
+	gŒue
+;
+
+11077 
+vœtu®
+ 
+£ùiÚEnded
+(
+SeùiÚS�ts
+ cÚ¡& 
+_£ùiÚS�ts
+è
+	gCATCH_OVERRIDE
+ {
+
+11078 ià(
+	gm_cÚfig
+->
+showDu¿tiÚs
+(è=ð
+ShowDu¿tiÚs
+::
+Always
+) {
+
+11079 
+¡»am
+ << 
+g‘FÜm©‹dDu¿tiÚ
+(
+_£ùiÚS�ts
+.
+du¿tiÚInSecÚds
+è<< " s: " << _£ùiÚS�ts.
+£ùiÚInfo
+.
+Çme
+ << 
+¡d
+::
+’dl
+;
+
+11083 
+vœtu®
+ 
+‹¡RunEnded
+Ð
+Te¡RunS�ts
+ cÚ¡& 
+_‹¡RunS�ts
+ ) {
+
+11084 
+´štTÙ®s
+Ð
+_‹¡RunS�ts
+.
+tÙ®s
+ );
+
+11085 
+	g¡»am
+ << '\n' << 
+	g¡d
+::
+’dl
+;
+
+11086 
+	gSŒ—mšgR•Ü‹rBa£
+::
+‹¡RunEnded
+Ð
+_‹¡RunS�ts
+ );
+
+11089 
+	g´iv©e
+:
+
+11090 þas 
+	cAs£¹iÚPrš‹r
+ {
+
+11091 
+Ý”©Ü
+ðÐ
+As£¹iÚPrš‹r
+ const& );
+
+11092 
+	gpublic
+:
+
+11093 
+As£¹iÚPrš‹r
+Ð
+¡d
+::
+o¡»am
+& 
+_¡»am
+, 
+As£¹iÚS�ts
+ cÚ¡& 
+_¡©s
+, 
+boÞ
+ 
+_´štInfoMes§ges
+ )
+
+11094 : 
+¡»am
+Ð
+_¡»am
+ )
+
+11095 , 
+¡©s
+Ð
+_¡©s
+ )
+
+11096 , 
+»suÉ
+Ð
+_¡©s
+.
+as£¹iÚResuÉ
+ )
+
+11097 , 
+mes§ges
+Ð
+_¡©s
+.
+šfoMes§ges
+ )
+
+11098 , 
+™Mes§ge
+Ð
+_¡©s
+.
+šfoMes§ges
+.
+begš
+() )
+
+11099 , 
+´štInfoMes§ges
+Ð
+_´štInfoMes§ges
+ )
+
+11102 
+´št
+() {
+
+11103 
+´štSourûInfo
+();
+
+11105 
+	g™Mes§ge
+ = 
+mes§ges
+.
+begš
+();
+
+11107  
+	g»suÉ
+.
+g‘ResuÉTy³
+() ) {
+
+11108 
+	gResuÉWas
+::
+Ok
+:
+
+11109 
+´štResuÉTy³
+Ð
+CÞour
+::
+ResuÉSucûss
+, 
+·s£dSŒšg
+() );
+
+11110 
+´štOrigš®Ex´essiÚ
+();
+
+11111 
+´štRecÚ¡ruùedEx´essiÚ
+();
+
+11112 iàÐ! 
+	g»suÉ
+.
+hasEx´essiÚ
+() )
+
+11113 
+´štRemaššgMes§ges
+Ð
+CÞour
+::
+NÚe
+ );
+
+11115 
+´štRemaššgMes§ges
+();
+
+11117 
+	gResuÉWas
+::
+Ex´essiÚFažed
+:
+
+11118 ifÐ
+»suÉ
+.
+isOk
+() )
+
+11119 
+´štResuÉTy³
+Ð
+CÞour
+::
+ResuÉSucûss
+, 
+çžedSŒšg
+(è+ 
+¡d
+::
+¡ršg
+( " - but was ok" ) );
+
+11121 
+´štResuÉTy³
+Ð
+CÞour
+::
+E¼Ü
+, 
+çžedSŒšg
+() );
+
+11122 
+´štOrigš®Ex´essiÚ
+();
+
+11123 
+´štRecÚ¡ruùedEx´essiÚ
+();
+
+11124 
+´štRemaššgMes§ges
+();
+
+11126 
+	gResuÉWas
+::
+Th»wExû±iÚ
+:
+
+11127 
+´štResuÉTy³
+Ð
+CÞour
+::
+E¼Ü
+, 
+çžedSŒšg
+() );
+
+11128 
+´štIssue
+( "unexpectedƒxception with message:" );
+
+11129 
+´štMes§ge
+();
+
+11130 
+´štEx´essiÚWas
+();
+
+11131 
+´štRemaššgMes§ges
+();
+
+11133 
+	gResuÉWas
+::
+F©®E¼ÜCÚd™iÚ
+:
+
+11134 
+´štResuÉTy³
+Ð
+CÞour
+::
+E¼Ü
+, 
+çžedSŒšg
+() );
+
+11135 
+´štIssue
+( "fatalƒrror condition with message:" );
+
+11136 
+´štMes§ge
+();
+
+11137 
+´štEx´essiÚWas
+();
+
+11138 
+´štRemaššgMes§ges
+();
+
+11140 
+	gResuÉWas
+::
+DidÁThrowExû±iÚ
+:
+
+11141 
+´štResuÉTy³
+Ð
+CÞour
+::
+E¼Ü
+, 
+çžedSŒšg
+() );
+
+11142 
+´štIssue
+( "expectedƒxception, got‚one" );
+
+11143 
+´štEx´essiÚWas
+();
+
+11144 
+´štRemaššgMes§ges
+();
+
+11146 
+	gResuÉWas
+::
+Info
+:
+
+11147 
+´štResuÉTy³
+Ð
+CÞour
+::
+NÚe
+, "info" );
+
+11148 
+´štMes§ge
+();
+
+11149 
+´štRemaššgMes§ges
+();
+
+11151 
+	gResuÉWas
+::
+W¬nšg
+:
+
+11152 
+´štResuÉTy³
+Ð
+CÞour
+::
+NÚe
+, "warning" );
+
+11153 
+´štMes§ge
+();
+
+11154 
+´štRemaššgMes§ges
+();
+
+11156 
+	gResuÉWas
+::
+Ex¶ic™Fažu»
+:
+
+11157 
+´štResuÉTy³
+Ð
+CÞour
+::
+E¼Ü
+, 
+çžedSŒšg
+() );
+
+11158 
+´štIssue
+( "explicitly" );
+
+11159 
+´štRemaššgMes§ges
+Ð
+CÞour
+::
+NÚe
+ );
+
+11162 
+	gResuÉWas
+::
+Unknown
+:
+
+11163 
+ResuÉWas
+::
+Fažu»B™
+:
+
+11164 
+ResuÉWas
+::
+Exû±iÚ
+:
+
+11165 
+´štResuÉTy³
+Ð
+CÞour
+::
+E¼Ü
+, "** internalƒrror **" );
+
+11170 
+	g´iv©e
+:
+
+11173 
+CÞour
+::
+Code
+ 
+dimCÞour
+(è{  CÞour::
+FžeName
+; }
+
+11175 #ifdeà
+CATCH_PLATFORM_MAC
+
+
+11176 cÚ¡ * 
+çžedSŒšg
+() {  "FAILED"; }
+
+11177 cÚ¡ * 
+·s£dSŒšg
+() {  "PASSED"; }
+
+11179 cÚ¡ * 
+çžedSŒšg
+() {  "failed"; }
+
+11180 cÚ¡ * 
+·s£dSŒšg
+() {  "passed"; }
+
+11183 
+´štSourûInfo
+() const {
+
+11184 
+CÞour
+ 
+cÞourGu¬d
+ÐCÞour::
+FžeName
+ );
+
+11185 
+	g¡»am
+ << 
+	g»suÉ
+.
+g‘SourûInfo
+() << ':';
+
+11188 
+´štResuÉTy³
+Ð
+CÞour
+::
+Code
+ 
+cÞour
+, 
+¡d
+::
+¡ršg
+ cÚ¡& 
+·ssOrFaž
+ ) const {
+
+11189 ifÐ!
+·ssOrFaž
+.
+em±y
+() ) {
+
+11191 
+CÞour
+ 
+cÞourGu¬d
+Ð
+cÞour
+ );
+
+11192 
+	g¡»am
+ << ' ' << 
+	g·ssOrFaž
+;
+
+11194 
+	g¡»am
+ << ':';
+
+11198 
+´štIssue
+Ð
+¡d
+::
+¡ršg
+ cÚ¡& 
+issue
+ ) const {
+
+11199 
+¡»am
+ << ' ' << 
+issue
+;
+
+11202 
+´štEx´essiÚWas
+() {
+
+11203 ifÐ
+	g»suÉ
+.
+hasEx´essiÚ
+() ) {
+
+11204 
+	g¡»am
+ << ';';
+
+11206 
+CÞour
+ 
+cÞour
+Ð
+dimCÞour
+() );
+
+11207 
+	g¡»am
+ << "ƒxpression was:";
+
+11209 
+´štOrigš®Ex´essiÚ
+();
+
+11213 
+´štOrigš®Ex´essiÚ
+() const {
+
+11214 ifÐ
+	g»suÉ
+.
+hasEx´essiÚ
+() ) {
+
+11215 
+	g¡»am
+ << ' ' << 
+	g»suÉ
+.
+g‘Ex´essiÚ
+();
+
+11219 
+´štRecÚ¡ruùedEx´essiÚ
+() const {
+
+11220 ifÐ
+	g»suÉ
+.
+hasEx·ndedEx´essiÚ
+() ) {
+
+11222 
+CÞour
+ 
+cÞour
+Ð
+dimCÞour
+() );
+
+11223 
+	g¡»am
+ << " for: ";
+
+11225 
+	g¡»am
+ << 
+	g»suÉ
+.
+g‘Ex·ndedEx´essiÚ
+();
+
+11229 
+´štMes§ge
+() {
+
+11230 iàÐ
+	g™Mes§ge
+ !ð
+mes§ges
+.
+’d
+() ) {
+
+11231 
+¡»am
+ << " '" << 
+™Mes§ge
+->
+mes§ge
+ << '\'';
+
+11232 ++
+	g™Mes§ge
+;
+
+11236 
+´štRemaššgMes§ges
+Ð
+CÞour
+::
+Code
+ 
+cÞour
+ = 
+dimCÞour
+() ) {
+
+11237 iàÐ
+™Mes§ge
+ =ð
+mes§ges
+.
+’d
+() )
+
+11241 
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+>::
+cÚ¡_™”©Ü
+ 
+™End
+ = 
+mes§ges
+.
+’d
+();
+
+11242 cÚ¡ 
+	g¡d
+::
+size_t
+ 
+N
+ = 
+¡©ic_ÿ¡
+<
+¡d
+::size_t>Ð¡d::
+di¡ªû
+Ð
+™Mes§ge
+, 
+™End
+ ) );
+
+11245 
+CÞour
+ 
+cÞourGu¬d
+Ð
+cÞour
+ );
+
+11246 
+	g¡»am
+ << " w™h " << 
+¶u¿li£
+Ð
+N
+, "message" ) << ':';
+
+11249 ; 
+	g™Mes§ge
+ !ð
+™End
+; ) {
+
+11251 ifÐ
+	g´štInfoMes§ges
+ || 
+	g™Mes§ge
+->
+	gty³
+ !ð
+ResuÉWas
+::
+Info
+ ) {
+
+11252 
+¡»am
+ << " '" << 
+™Mes§ge
+->
+mes§ge
+ << '\'';
+
+11253 iàÐ++
+	g™Mes§ge
+ !ð
+™End
+ ) {
+
+11254 
+CÞour
+ 
+cÞourGu¬d
+Ð
+dimCÞour
+() );
+
+11255 
+	g¡»am
+ << "‡nd";
+
+11261 
+	g´iv©e
+:
+
+11262 
+¡d
+::
+o¡»am
+& 
+¡»am
+;
+
+11263 
+As£¹iÚS�ts
+ cÚ¡& 
+	g¡©s
+;
+
+11264 
+As£¹iÚResuÉ
+ cÚ¡& 
+	g»suÉ
+;
+
+11265 
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+> 
+mes§ges
+;
+
+11266 
+	g¡d
+::
+veùÜ
+<
+Mes§geInfo
+>::
+cÚ¡_™”©Ü
+ 
+™Mes§ge
+;
+
+11267 
+boÞ
+ 
+	g´štInfoMes§ges
+;
+
+11277 
+	g¡d
+::
+¡ršg
+ 
+bÙhOrAÎ
+Ð
+¡d
+::
+size_t
+ 
+couÁ
+ ) const {
+
+11278  
+couÁ
+ =ð1 ? 
+¡d
+::
+¡ršg
+() : count == 2 ? "both " : "all " ;
+
+11281 
+´štTÙ®s
+ÐcÚ¡ 
+TÙ®s
+& 
+tÙ®s
+ ) const {
+
+11282 ifÐ
+	gtÙ®s
+.
+	g‹¡Ca£s
+.
+tÙ®
+() == 0 ) {
+
+11283 
+¡»am
+ << "No�ests„an.";
+
+11285 ifÐ
+	gtÙ®s
+.
+	g‹¡Ca£s
+.
+	gçžed
+ =ð
+tÙ®s
+.
+‹¡Ca£s
+.
+tÙ®
+() ) {
+
+11286 
+CÞour
+ 
+cÞour
+ÐCÞour::
+ResuÉE¼Ü
+ );
+
+11287 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+qu®ify_as£¹iÚs_çžed
+ =
+
+11288 
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+ =ðtÙ®s.as£¹iÚs.
+tÙ®
+() ?
+
+11289 
+bÙhOrAÎ
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+ ) : 
+¡d
+::
+¡ršg
+();
+
+11290 
+	g¡»am
+ <<
+
+11291 "Fažed " << 
+bÙhOrAÎ
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+çžed
+ )
+
+11292 << 
+¶u¿li£
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+çžed
+, "test case" ) << ", "
+
+11293 "çžed " << 
+	gqu®ify_as£¹iÚs_çžed
+ <<
+
+11294 
+¶u¿li£
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+, "assertion" ) << '.';
+
+11296 ifÐ
+	gtÙ®s
+.
+	gas£¹iÚs
+.
+tÙ®
+() == 0 ) {
+
+11297 
+¡»am
+ <<
+
+11298 "Pas£d " << 
+bÙhOrAÎ
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+tÙ®
+() )
+
+11299 << 
+¶u¿li£
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+tÙ®
+(), "test case" )
+
+11302 ifÐ
+	gtÙ®s
+.
+	gas£¹iÚs
+.
+	gçžed
+ ) {
+
+11303 
+CÞour
+ 
+cÞour
+ÐCÞour::
+ResuÉE¼Ü
+ );
+
+11304 
+	g¡»am
+ <<
+
+11305 "Fažed " << 
+¶u¿li£
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+çžed
+, "test case" ) << ", "
+
+11306 "çžed " << 
+¶u¿li£
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+çžed
+, "assertion" ) << '.';
+
+11309 
+CÞour
+ 
+cÞour
+ÐCÞour::
+ResuÉSucûss
+ );
+
+11310 
+	g¡»am
+ <<
+
+11311 "Pas£d " << 
+bÙhOrAÎ
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+·s£d
+ )
+
+11312 << 
+¶u¿li£
+Ð
+tÙ®s
+.
+‹¡Ca£s
+.
+·s£d
+, "test case" ) <<
+
+11313 " w™h " << 
+¶u¿li£
+Ð
+tÙ®s
+.
+as£¹iÚs
+.
+·s£d
+, "assertion" ) << '.';
+
+11318 
+INTERNAL_CATCH_REGISTER_REPORTER
+Ð"com·ù", 
+Com·ùR•Ü‹r
+ )
+
+11322 
+Çme¥aû
+ 
+	gC©ch
+ {
+
+11325 
+	gNÚCÝyabË
+::~
+NÚCÝyabË
+() {}
+
+11326 
+ISh¬ed
+::~IShared() {}
+
+11327 
+ISŒ—m
+::~ISŒ—m(è
+CATCH_NOEXCEPT
+ {}
+
+11328 
+FžeSŒ—m
+::~FžeSŒ—m(è
+CATCH_NOEXCEPT
+ {}
+
+11329 
+CoutSŒ—m
+::~CoutSŒ—m(è
+CATCH_NOEXCEPT
+ {}
+
+11330 
+DebugOutSŒ—m
+::~DebugOutSŒ—m(è
+CATCH_NOEXCEPT
+ {}
+
+11331 
+SŒ—mBufBa£
+::~SŒ—mBufBa£(è
+CATCH_NOEXCEPT
+ {}
+
+11332 
+ICÚ‹xt
+::~IContext() {}
+
+11333 
+IResuÉC­tu»
+::~IResultCapture() {}
+
+11334 
+ITe¡Ca£
+::~ITestCase() {}
+
+11335 
+ITe¡Ca£Regi¡ry
+::~ITestCaseRegistry() {}
+
+11336 
+IRegi¡ryHub
+::~IRegistryHub() {}
+
+11337 
+IMu�bËRegi¡ryHub
+::~IMutableRegistryHub() {}
+
+11338 
+IExû±iÚT¿n¦©Ü
+::~IExceptionTranslator() {}
+
+11339 
+IExû±iÚT¿n¦©ÜRegi¡ry
+::~IExceptionTranslatorRegistry() {}
+
+11340 
+IR•Ü‹r
+::~IReporter() {}
+
+11341 
+IR•Ü‹rFaùÜy
+::~IReporterFactory() {}
+
+11342 
+IR•Ü‹rRegi¡ry
+::~IReporterRegistry() {}
+
+11343 
+ISŒ—mšgR•Ü‹r
+::~IStreamingReporter() {}
+
+11344 
+As£¹iÚS�ts
+::~AssertionStats() {}
+
+11345 
+SeùiÚS�ts
+::~SectionStats() {}
+
+11346 
+Te¡Ca£S�ts
+::~TestCaseStats() {}
+
+11347 
+Te¡GroupS�ts
+::~TestGroupStats() {}
+
+11348 
+Te¡RunS�ts
+::~TestRunStats() {}
+
+11349 
+CumuÏtiveR•Ü‹rBa£
+::
+SeùiÚNode
+::~SectionNode() {}
+
+11350 
+CumuÏtiveR•Ü‹rBa£
+::~CumulativeReporterBase() {}
+
+11352 
+SŒ—mšgR•Ü‹rBa£
+::~StreamingReporterBase() {}
+
+11353 
+CÚsÞeR•Ü‹r
+::~ConsoleReporter() {}
+
+11354 
+Com·ùR•Ü‹r
+::~CompactReporter() {}
+
+11355 
+IRuÂ”
+::~IRunner() {}
+
+11356 
+IMu�bËCÚ‹xt
+::~IMutableContext() {}
+
+11357 
+ICÚfig
+::~IConfig() {}
+
+11358 
+XmlR•Ü‹r
+::~XmlReporter() {}
+
+11359 
+Jun™R•Ü‹r
+::~JunitReporter() {}
+
+11360 
+Te¡Regi¡ry
+::~TestRegistry() {}
+
+11361 
+F»eFunùiÚTe¡Ca£
+::~FreeFunctionTestCase() {}
+
+11362 
+IG’”©ÜInfo
+::~IGeneratorInfo() {}
+
+11363 
+IG’”©ÜsFÜTe¡
+::~IGeneratorsForTest() {}
+
+11364 
+WždÿrdP©‹º
+::~WildcardPattern() {}
+
+11365 
+Te¡S³c
+::
+P©‹º
+::~Pattern() {}
+
+11366 
+Te¡S³c
+::
+NameP©‹º
+::~NamePattern() {}
+
+11367 
+Te¡S³c
+::
+TagP©‹º
+::~TagPattern() {}
+
+11368 
+Te¡S³c
+::
+ExþudedP©‹º
+::~ExcludedPattern() {}
+
+11369 
+M©ch”s
+::
+Im¶
+::
+M©ch”UÁy³dBa£
+::~MatcherUntypedBase() {}
+
+11371 
+CÚfig
+::
+dummy
+() {}
+
+11373 
+Çme¥aû
+ 
+Te¡Ca£T¿ckšg
+ {
+
+11374 
+IT¿ck”
+::~ITracker() {}
+
+11375 
+T¿ck”Ba£
+::~TrackerBase() {}
+
+11376 
+SeùiÚT¿ck”
+::~SectionTracker() {}
+
+11377 
+IndexT¿ck”
+::~IndexTracker() {}
+
+11381 #ifdeà
+__þªg__
+
+
+11382 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+11387 #ifdeà
+CATCH_CONFIG_MAIN
+
+
+11389 
+	#TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
+
+
+	)
+
+11391 #iâdeà
+__OBJC__
+
+
+11393 #ià
+defšed
+(
+WIN32
+è&& defšed(
+_UNICODE
+è&& !defšed(
+DO_NOT_USE_WMAIN
+)
+
+11395 
"C" 
+	$wmaš
+ (
+¬gc
+, 
+wch¬_t
+ * 
+¬gv
+[], wchar_t * []) {
+
+11398 
+	$maš
+ (
+¬gc
+, * 
+¬gv
+[]) {
+
+11401 
+»suÉ
+ = 
+C©ch
+::
+	`SessiÚ
+().
+	`run
+Ð
+¬gc
+, 
+¬gv
+ );
+
+11402  ( 
+»suÉ
+ < 0xff ?„esult : 0xff );
+
+11403 
+	}
+}
+
+11408 
+	$maš
+ (
+¬gc
+, * cÚ¡ 
+¬gv
+[]) {
+
+11409 #ià!
+CATCH_ARC_ENABLED
+
+
+11410 
+NSAutÜ–—£PoÞ
+ * 
+poÞ
+ = [[NSAutÜ–—£PoÞ 
+®loc
+] 
+š™
+];
+
+11413 
+C©ch
+::
+	`»gi¡”Te¡M‘hods
+();
+
+11414 
+»suÉ
+ = 
+C©ch
+::
+	`SessiÚ
+().
+	`run
+Ð
+¬gc
+, (* cÚ¡*)
+¬gv
+ );
+
+11416 #ià!
+CATCH_ARC_ENABLED
+
+
+11417 [
+poÞ
+ 
+d¿š
+];
+
+11420  ( 
+»suÉ
+ < 0xff ?„esult : 0xff );
+
+11421 
+	}
+}
+
+11427 #ifdeà
+CLARA_CONFIG_MAIN_NOT_DEFINED
+
+
+11428 #undeà
+CLARA_CONFIG_MAIN
+
+
+11434 #ifdeà
+CATCH_CONFIG_PREFIX_ALL
+
+
+11436 #ià
+defšed
+(
+CATCH_CONFIG_FAST_COMPILE
+)
+
+11437 
+	#CATCH_REQUIRE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST_NO_TRY
+Ð"CATCH_REQUIRE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11438 
+	#CATCH_REQUIRE_FALSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST_NO_TRY
+Ð"CATCH_REQUIRE_FALSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+ | C©ch::ResuÉDi¥os™iÚ::
+F®£Te¡
+,ƒx´ )
+
+	)
+
+11440 
+	#CATCH_REQUIRE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CATCH_REQUIRE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11441 
+	#CATCH_REQUIRE_FALSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CATCH_REQUIRE_FALSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+ | C©ch::ResuÉDi¥os™iÚ::
+F®£Te¡
+,ƒx´ )
+
+	)
+
+11444 
+	#CATCH_REQUIRE_THROWS
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"CATCH_REQUIRE_THROWS", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, "",ƒx´ )
+
+	)
+
+11445 
+	#CATCH_REQUIRE_THROWS_AS
+Ð
+ex´
+, 
+exû±iÚTy³
+ ) 
+	`INTERNAL_CATCH_THROWS_AS
+Ð"CATCH_REQUIRE_THROWS_AS",ƒxû±iÚTy³, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11446 
+	#CATCH_REQUIRE_THROWS_WITH
+Ð
+ex´
+, 
+m©ch”
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"CATCH_REQUIRE_THROWS_WITH", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, m©ch”,ƒx´ )
+
+	)
+
+11447 
+	#CATCH_REQUIRE_NOTHROW
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_NO_THROW
+Ð"CATCH_REQUIRE_NOTHROW", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11449 
+	#CATCH_CHECK
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CATCH_CHECK", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11450 
+	#CATCH_CHECK_FALSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CATCH_CHECK_FALSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+ | C©ch::ResuÉDi¥os™iÚ::
+F®£Te¡
+,ƒx´ )
+
+	)
+
+11451 
+	#CATCH_CHECKED_IF
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_IF
+Ð"CATCH_CHECKED_IF", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11452 
+	#CATCH_CHECKED_ELSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_ELSE
+Ð"CATCH_CHECKED_ELSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11453 
+	#CATCH_CHECK_NOFAIL
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CATCH_CHECK_NOFAIL", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+ | C©ch::ResuÉDi¥os™iÚ::
+Suµ»ssFaž
+,ƒx´ )
+
+	)
+
+11455 
+	#CATCH_CHECK_THROWS
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"CATCH_CHECK_THROWS", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, "",ƒx´ )
+
+	)
+
+11456 
+	#CATCH_CHECK_THROWS_AS
+Ð
+ex´
+, 
+exû±iÚTy³
+ ) 
+	`INTERNAL_CATCH_THROWS_AS
+Ð"CATCH_CHECK_THROWS_AS",ƒxû±iÚTy³, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11457 
+	#CATCH_CHECK_THROWS_WITH
+Ð
+ex´
+, 
+m©ch”
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"CATCH_CHECK_THROWS_WITH", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, m©ch”,ƒx´ )
+
+	)
+
+11458 
+	#CATCH_CHECK_NOTHROW
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_NO_THROW
+Ð"CATCH_CHECK_NOTHROW", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11460 
+	#CATCH_CHECK_THAT
+Ð
+¬g
+, 
+m©ch”
+ ) 
+	`INTERNAL_CHECK_THAT
+Ð"CATCH_CHECK_THAT", m©ch”, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,‡rg )
+
+	)
+
+11462 #ià
+defšed
+(
+CATCH_CONFIG_FAST_COMPILE
+)
+
+11463 
+	#CATCH_REQUIRE_THAT
+Ð
+¬g
+, 
+m©ch”
+ ) 
+	`INTERNAL_CHECK_THAT_NO_TRY
+Ð"CATCH_REQUIRE_THAT", m©ch”, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,‡rg )
+
+	)
+
+11465 
+	#CATCH_REQUIRE_THAT
+Ð
+¬g
+, 
+m©ch”
+ ) 
+	`INTERNAL_CHECK_THAT
+Ð"CATCH_REQUIRE_THAT", m©ch”, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,‡rg )
+
+	)
+
+11468 
+	#CATCH_INFO
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"CATCH_INFO", msg )
+
+	)
+
+11469 
+	#CATCH_WARN
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"CATCH_WARN", 
+C©ch
+::
+ResuÉWas
+::
+W¬nšg
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, msg )
+
+	)
+
+11470 
+	#CATCH_SCOPED_INFO
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"CATCH_INFO", msg )
+
+	)
+
+11471 
+	#CATCH_CAPTURE
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"CATCH_CAPTURE", #msg " :ð" << 
+C©ch
+::
+	`toSŒšg
+(msgè)
+
+	)
+
+11472 
+	#CATCH_SCOPED_CAPTURE
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"CATCH_CAPTURE", #msg " :ð" << 
+C©ch
+::
+	`toSŒšg
+(msgè)
+
+	)
+
+11474 #ifdeà
+CATCH_CONFIG_VARIADIC_MACROS
+
+
+11475 
+	#CATCH_TEST_CASE
+Ð... ) 
+	`INTERNAL_CATCH_TESTCASE
+Ð
+__VA_ARGS__
+ )
+
+	)
+
+11476 
+	#CATCH_TEST_CASE_METHOD
+Ð
+þassName
+, ... ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName, 
+__VA_ARGS__
+ )
+
+	)
+
+11477 
+	#CATCH_METHOD_AS_TEST_CASE
+Ð
+m‘hod
+, ... ) 
+	`INTERNAL_CATCH_METHOD_AS_TEST_CASE
+Ðm‘hod, 
+__VA_ARGS__
+ )
+
+	)
+
+11478 
+	#CATCH_REGISTER_TEST_CASE
+Ð
+FunùiÚ
+, ... ) 
+	`INTERNAL_CATCH_REGISTER_TESTCASE
+ÐFunùiÚ, 
+__VA_ARGS__
+ )
+
+	)
+
+11479 
+	#CATCH_SECTION
+Ð... ) 
+	`INTERNAL_CATCH_SECTION
+Ð
+__VA_ARGS__
+ )
+
+	)
+
+11480 
+	#CATCH_FAIL
+Ð... ) 
+	`INTERNAL_CATCH_MSG
+Ð"CATCH_FAIL", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, 
+__VA_ARGS__
+ )
+
+	)
+
+11481 
+	#CATCH_FAIL_CHECK
+Ð... ) 
+	`INTERNAL_CATCH_MSG
+Ð"CATCH_FAIL_CHECK", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, 
+__VA_ARGS__
+ )
+
+	)
+
+11482 
+	#CATCH_SUCCEED
+Ð... ) 
+	`INTERNAL_CATCH_MSG
+Ð"CATCH_SUCCEED", 
+C©ch
+::
+ResuÉWas
+::
+Ok
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, 
+__VA_ARGS__
+ )
+
+	)
+
+11484 
+	#CATCH_TEST_CASE
+Ð
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_TESTCASE
+ÐÇme, desü�tiÚ )
+
+	)
+
+11485 
+	#CATCH_TEST_CASE_METHOD
+Ð
+þassName
+, 
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName,‚ame, desü�tiÚ )
+
+	)
+
+11486 
+	#CATCH_METHOD_AS_TEST_CASE
+Ð
+m‘hod
+, 
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_METHOD_AS_TEST_CASE
+Ðm‘hod,‚ame, desü�tiÚ )
+
+	)
+
+11487 
+	#CATCH_REGISTER_TEST_CASE
+Ð
+funùiÚ
+, 
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_REGISTER_TESTCASE
+ÐfunùiÚ,‚ame, desü�tiÚ )
+
+	)
+
+11488 
+	#CATCH_SECTION
+Ð
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_SECTION
+ÐÇme, desü�tiÚ )
+
+	)
+
+11489 
+	#CATCH_FAIL
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"CATCH_FAIL", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, msg )
+
+	)
+
+11490 
+	#CATCH_FAIL_CHECK
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"CATCH_FAIL_CHECK", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, msg )
+
+	)
+
+11491 
+	#CATCH_SUCCEED
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"CATCH_SUCCEED", 
+C©ch
+::
+ResuÉWas
+::
+Ok
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, msg )
+
+	)
+
+11493 
+	#CATCH_ANON_TEST_CASE
+(è
+	`INTERNAL_CATCH_TESTCASE
+Ð"", "" )
+
+	)
+
+11495 
+	#CATCH_REGISTER_REPORTER
+Ð
+Çme
+, 
+»pÜ‹rTy³
+ ) 
+	`INTERNAL_CATCH_REGISTER_REPORTER
+ÐÇme,„•Ü‹rTy³ )
+
+	)
+
+11496 
+	#CATCH_REGISTER_LEGACY_REPORTER
+Ð
+Çme
+, 
+»pÜ‹rTy³
+ ) 
+	`INTERNAL_CATCH_REGISTER_LEGACY_REPORTER
+ÐÇme,„•Ü‹rTy³ )
+
+	)
+
+11498 
+	#CATCH_GENERATE
+Ð
+ex´
+è
+	`INTERNAL_CATCH_GENERATE
+Ðex´ )
+
+	)
+
+11501 #ifdeà
+CATCH_CONFIG_VARIADIC_MACROS
+
+
+11502 
+	#CATCH_SCENARIO
+Ð... ) 
+	`CATCH_TEST_CASE
+Ð"SûÇrio: " 
+__VA_ARGS__
+ )
+
+	)
+
+11503 
+	#CATCH_SCENARIO_METHOD
+Ð
+þassName
+, ... ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName, "SûÇrio: " 
+__VA_ARGS__
+ )
+
+	)
+
+11505 
+	#CATCH_SCENARIO
+Ð
+Çme
+, 
+�gs
+ ) 
+	`CATCH_TEST_CASE
+Ð"SûÇrio: "‚ame,�ag )
+
+	)
+
+11506 
+	#CATCH_SCENARIO_METHOD
+Ð
+þassName
+, 
+Çme
+, 
+�gs
+ ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName, "SûÇrio: "‚ame,�ag )
+
+	)
+
+11508 
+	#CATCH_GIVEN
+Ð
+desc
+ ) 
+	`CATCH_SECTION
+Ð
+¡d
+::
+	`¡ršg
+Ð"Giv’: "è+ desc, "" )
+
+	)
+
+11509 
+	#CATCH_WHEN
+Ð
+desc
+ ) 
+	`CATCH_SECTION
+Ð
+¡d
+::
+	`¡ršg
+Ð" Wh’: "è+ desc, "" )
+
+	)
+
+11510 
+	#CATCH_AND_WHEN
+Ð
+desc
+ ) 
+	`CATCH_SECTION
+Ð
+¡d
+::
+	`¡ršg
+Ð" And: "è+ desc, "" )
+
+	)
+
+11511 
+	#CATCH_THEN
+Ð
+desc
+ ) 
+	`CATCH_SECTION
+Ð
+¡d
+::
+	`¡ršg
+Ð" Th’: "è+ desc, "" )
+
+	)
+
+11512 
+	#CATCH_AND_THEN
+Ð
+desc
+ ) 
+	`CATCH_SECTION
+Ð
+¡d
+::
+	`¡ršg
+Ð" And: "è+ desc, "" )
+
+	)
+
+11517 #ià
+defšed
+(
+CATCH_CONFIG_FAST_COMPILE
+)
+
+11518 
+	#REQUIRE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST_NO_TRY
+Ð"REQUIRE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11519 
+	#REQUIRE_FALSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST_NO_TRY
+Ð"REQUIRE_FALSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+ | C©ch::ResuÉDi¥os™iÚ::
+F®£Te¡
+,ƒx´ )
+
+	)
+
+11522 
+	#REQUIRE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"REQUIRE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11523 
+	#REQUIRE_FALSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"REQUIRE_FALSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+ | C©ch::ResuÉDi¥os™iÚ::
+F®£Te¡
+,ƒx´ )
+
+	)
+
+11526 
+	#REQUIRE_THROWS
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"REQUIRE_THROWS", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, "",ƒx´ )
+
+	)
+
+11527 
+	#REQUIRE_THROWS_AS
+Ð
+ex´
+, 
+exû±iÚTy³
+ ) 
+	`INTERNAL_CATCH_THROWS_AS
+Ð"REQUIRE_THROWS_AS",ƒxû±iÚTy³, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11528 
+	#REQUIRE_THROWS_WITH
+Ð
+ex´
+, 
+m©ch”
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"REQUIRE_THROWS_WITH", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, m©ch”,ƒx´ )
+
+	)
+
+11529 
+	#REQUIRE_NOTHROW
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_NO_THROW
+Ð"REQUIRE_NOTHROW", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,ƒx´ )
+
+	)
+
+11531 
+	#CHECK
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CHECK", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11532 
+	#CHECK_FALSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CHECK_FALSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+ | C©ch::ResuÉDi¥os™iÚ::
+F®£Te¡
+,ƒx´ )
+
+	)
+
+11533 
+	#CHECKED_IF
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_IF
+Ð"CHECKED_IF", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11534 
+	#CHECKED_ELSE
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_ELSE
+Ð"CHECKED_ELSE", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11535 
+	#CHECK_NOFAIL
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_TEST
+Ð"CHECK_NOFAIL", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+ | C©ch::ResuÉDi¥os™iÚ::
+Suµ»ssFaž
+,ƒx´ )
+
+	)
+
+11537 
+	#CHECK_THROWS
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"CHECK_THROWS", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, "",ƒx´ )
+
+	)
+
+11538 
+	#CHECK_THROWS_AS
+Ð
+ex´
+, 
+exû±iÚTy³
+ ) 
+	`INTERNAL_CATCH_THROWS_AS
+Ð"CHECK_THROWS_AS",ƒxû±iÚTy³, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11539 
+	#CHECK_THROWS_WITH
+Ð
+ex´
+, 
+m©ch”
+ ) 
+	`INTERNAL_CATCH_THROWS
+Ð"CHECK_THROWS_WITH", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, m©ch”,ƒx´ )
+
+	)
+
+11540 
+	#CHECK_NOTHROW
+Ð
+ex´
+ ) 
+	`INTERNAL_CATCH_NO_THROW
+Ð"CHECK_NOTHROW", 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,ƒx´ )
+
+	)
+
+11542 
+	#CHECK_THAT
+Ð
+¬g
+, 
+m©ch”
+ ) 
+	`INTERNAL_CHECK_THAT
+Ð"CHECK_THAT", m©ch”, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+,‡rg )
+
+	)
+
+11544 #ià
+defšed
+(
+CATCH_CONFIG_FAST_COMPILE
+)
+
+11545 
+	#REQUIRE_THAT
+Ð
+¬g
+, 
+m©ch”
+ ) 
+	`INTERNAL_CHECK_THAT_NO_TRY
+Ð"REQUIRE_THAT", m©ch”, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,‡rg )
+
+	)
+
+11547 
+	#REQUIRE_THAT
+Ð
+¬g
+, 
+m©ch”
+ ) 
+	`INTERNAL_CHECK_THAT
+Ð"REQUIRE_THAT", m©ch”, 
+C©ch
+::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+,‡rg )
+
+	)
+
+11550 
+	#INFO
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"INFO", msg )
+
+	)
+
+11551 
+	#WARN
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"WARN", 
+C©ch
+::
+ResuÉWas
+::
+W¬nšg
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, msg )
+
+	)
+
+11552 
+	#SCOPED_INFO
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"INFO", msg )
+
+	)
+
+11553 
+	#CAPTURE
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"CAPTURE", #msg " :ð" << 
+C©ch
+::
+	`toSŒšg
+(msgè)
+
+	)
+
+11554 
+	#SCOPED_CAPTURE
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_INFO
+Ð"CAPTURE", #msg " :ð" << 
+C©ch
+::
+	`toSŒšg
+(msgè)
+
+	)
+
+11556 #ifdeà
+CATCH_CONFIG_VARIADIC_MACROS
+
+
+11557 
+	#TEST_CASE
+Ð... ) 
+	`INTERNAL_CATCH_TESTCASE
+Ð
+__VA_ARGS__
+ )
+
+	)
+
+11558 
+	#TEST_CASE_METHOD
+Ð
+þassName
+, ... ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName, 
+__VA_ARGS__
+ )
+
+	)
+
+11559 
+	#METHOD_AS_TEST_CASE
+Ð
+m‘hod
+, ... ) 
+	`INTERNAL_CATCH_METHOD_AS_TEST_CASE
+Ðm‘hod, 
+__VA_ARGS__
+ )
+
+	)
+
+11560 
+	#REGISTER_TEST_CASE
+Ð
+FunùiÚ
+, ... ) 
+	`INTERNAL_CATCH_REGISTER_TESTCASE
+ÐFunùiÚ, 
+__VA_ARGS__
+ )
+
+	)
+
+11561 
+	#SECTION
+Ð... ) 
+	`INTERNAL_CATCH_SECTION
+Ð
+__VA_ARGS__
+ )
+
+	)
+
+11562 
+	#FAIL
+Ð... ) 
+	`INTERNAL_CATCH_MSG
+Ð"FAIL", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, 
+__VA_ARGS__
+ )
+
+	)
+
+11563 
+	#FAIL_CHECK
+Ð... ) 
+	`INTERNAL_CATCH_MSG
+Ð"FAIL_CHECK", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, 
+__VA_ARGS__
+ )
+
+	)
+
+11564 
+	#SUCCEED
+Ð... ) 
+	`INTERNAL_CATCH_MSG
+Ð"SUCCEED", 
+C©ch
+::
+ResuÉWas
+::
+Ok
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, 
+__VA_ARGS__
+ )
+
+	)
+
+11566 
+	#TEST_CASE
+Ð
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_TESTCASE
+ÐÇme, desü�tiÚ )
+
+	)
+
+11567 
+	#TEST_CASE_METHOD
+Ð
+þassName
+, 
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName,‚ame, desü�tiÚ )
+
+	)
+
+11568 
+	#METHOD_AS_TEST_CASE
+Ð
+m‘hod
+, 
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_METHOD_AS_TEST_CASE
+Ðm‘hod,‚ame, desü�tiÚ )
+
+	)
+
+11569 
+	#REGISTER_TEST_CASE
+Ð
+m‘hod
+, 
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_REGISTER_TESTCASE
+Ðm‘hod,‚ame, desü�tiÚ )
+
+	)
+
+11570 
+	#SECTION
+Ð
+Çme
+, 
+desü�tiÚ
+ ) 
+	`INTERNAL_CATCH_SECTION
+ÐÇme, desü�tiÚ )
+
+	)
+
+11571 
+	#FAIL
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"FAIL", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+NÜm®
+, msg )
+
+	)
+
+11572 
+	#FAIL_CHECK
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"FAIL_CHECK", 
+C©ch
+::
+ResuÉWas
+::
+Ex¶ic™Fažu»
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, msg )
+
+	)
+
+11573 
+	#SUCCEED
+Ð
+msg
+ ) 
+	`INTERNAL_CATCH_MSG
+Ð"SUCCEED", 
+C©ch
+::
+ResuÉWas
+::
+Ok
+, C©ch::
+ResuÉDi¥os™iÚ
+::
+CÚtšueOnFažu»
+, msg )
+
+	)
+
+11575 
+	#ANON_TEST_CASE
+(è
+	`INTERNAL_CATCH_TESTCASE
+Ð"", "" )
+
+	)
+
+11577 
+	#REGISTER_REPORTER
+Ð
+Çme
+, 
+»pÜ‹rTy³
+ ) 
+	`INTERNAL_CATCH_REGISTER_REPORTER
+ÐÇme,„•Ü‹rTy³ )
+
+	)
+
+11578 
+	#REGISTER_LEGACY_REPORTER
+Ð
+Çme
+, 
+»pÜ‹rTy³
+ ) 
+	`INTERNAL_CATCH_REGISTER_LEGACY_REPORTER
+ÐÇme,„•Ü‹rTy³ )
+
+	)
+
+11580 
+	#GENERATE
+Ð
+ex´
+è
+	`INTERNAL_CATCH_GENERATE
+Ðex´ )
+
+	)
+
+11584 
+	#CATCH_TRANSLATE_EXCEPTION
+Ð
+sigÇtu»
+ ) 
+	`INTERNAL_CATCH_TRANSLATE_EXCEPTION
+ÐsigÇtu» )
+
+	)
+
+11587 #ifdeà
+CATCH_CONFIG_VARIADIC_MACROS
+
+
+11588 
+	#SCENARIO
+Ð... ) 
+	`TEST_CASE
+Ð"SûÇrio: " 
+__VA_ARGS__
+ )
+
+	)
+
+11589 
+	#SCENARIO_METHOD
+Ð
+þassName
+, ... ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName, "SûÇrio: " 
+__VA_ARGS__
+ )
+
+	)
+
+11591 
+	#SCENARIO
+Ð
+Çme
+, 
+�gs
+ ) 
+	`TEST_CASE
+Ð"SûÇrio: "‚ame,�ag )
+
+	)
+
+11592 
+	#SCENARIO_METHOD
+Ð
+þassName
+, 
+Çme
+, 
+�gs
+ ) 
+	`INTERNAL_CATCH_TEST_CASE_METHOD
+ÐþassName, "SûÇrio: "‚ame,�ag )
+
+	)
+
+11594 
+	#GIVEN
+Ð
+desc
+ ) 
+	`SECTION
+Ð
+¡d
+::
+	`¡ršg
+(" Giv’: "è+ desc, "" )
+
+	)
+
+11595 
+	#WHEN
+Ð
+desc
+ ) 
+	`SECTION
+Ð
+¡d
+::
+	`¡ršg
+(" Wh’: "è+ desc, "" )
+
+	)
+
+11596 
+	#AND_WHEN
+Ð
+desc
+ ) 
+	`SECTION
+Ð
+¡d
+::
+	`¡ršg
+("And wh’: "è+ desc, "" )
+
+	)
+
+11597 
+	#THEN
+Ð
+desc
+ ) 
+	`SECTION
+Ð
+¡d
+::
+	`¡ršg
+(" Th’: "è+ desc, "" )
+
+	)
+
+11598 
+	#AND_THEN
+Ð
+desc
+ ) 
+	`SECTION
+Ð
+¡d
+::
+	`¡ršg
+(" And: "è+ desc, "" )
+
+	)
+
+11600 
+usšg
+ 
+C©ch
+::
+D‘až
+::
+Aµrox
+;
+
+11604 
+	#TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
+
+
+	)
+
+11606 #ifdeà
+__þªg__
+
+
+11607 #ifdeà
+__ICC
+
+
+11608 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+11610 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+11612 #–ià
+defšed
+ 
+__GNUC__
+
+
+11613 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson.h
+
+5 #´agm¨
+Úû
+
+
+7 #ifdeà
+__ýlu¥lus
+
+
+9 
+	~"ArdušoJsÚ.hµ
+"
+
+11 
+usšg
+ 
+Çme¥aû
+ 
+	gArdušoJsÚ
+;
+
+15 #”rÜ 
+ArdušoJsÚ
+ 
+»quœes
+ 
+a
+ 
+C
+++ 
+compž”
+, 
+¶—£
+ 
+chªge
+ 
+fže
+ 
+ex‹nsiÚ
+ 
+to
+ .
+cc
+ 
+Ü
+ .
+ýp
+
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+"
+
+9 #ià!
+ARDUINOJSON_DEBUG
+
+
+10 #ifdeà
+__þªg__
+
+
+11 #´agm¨
+þªg
+ 
+sy¡em_h—d”
+
+
+12 #–ià
+defšed
+ 
+__GNUC__
+
+
+13 #´agm¨
+GCC
+ 
+sy¡em_h—d”
+
+
+17 
+	~"ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+"
+
+18 
+	~"ArdušoJsÚ/Objeù/ObjeùRef.hµ
+"
+
+19 
+	~"ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+"
+
+21 
+	~"ArdušoJsÚ/Docum’t/DyÇmicJsÚDocum’t.hµ
+"
+
+22 
+	~"ArdušoJsÚ/Docum’t/S�ticJsÚDocum’t.hµ
+"
+
+24 
+	~"ArdušoJsÚ/A¼ay/A¼ayIm¶.hµ
+"
+
+25 
+	~"ArdušoJsÚ/A¼ay/EËm’tProxy.hµ
+"
+
+26 
+	~"ArdušoJsÚ/A¼ay/Utž™›s.hµ
+"
+
+27 
+	~"ArdušoJsÚ/CÞËùiÚ/CÞËùiÚIm¶.hµ
+"
+
+28 
+	~"ArdušoJsÚ/Objeù/Memb”Proxy.hµ
+"
+
+29 
+	~"ArdušoJsÚ/Objeù/ObjeùIm¶.hµ
+"
+
+30 
+	~"ArdušoJsÚ/V¬ŸÁ/V¬ŸÁAsIm¶.hµ
+"
+
+31 
+	~"ArdušoJsÚ/V¬ŸÁ/V¬ŸÁIm¶.hµ
+"
+
+33 
+	~"ArdušoJsÚ/JsÚ/JsÚDe£rŸliz”.hµ
+"
+
+34 
+	~"ArdušoJsÚ/JsÚ/JsÚS”Ÿliz”.hµ
+"
+
+35 
+	~"ArdušoJsÚ/JsÚ/P»‰yJsÚS”Ÿliz”.hµ
+"
+
+36 
+	~"ArdušoJsÚ/MsgPack/MsgPackDe£rŸliz”.hµ
+"
+
+37 
+	~"ArdušoJsÚ/MsgPack/MsgPackS”Ÿliz”.hµ
+"
+
+39 
+	~"ArdušoJsÚ/com·tibž™y.hµ
+"
+
+41 
+Çme¥aû
+ 
+	gArdušoJsÚ
+ {
+
+42 
+	gARDUINOJSON_NAMESPACE
+::
+	tA¼ayCÚ¡Ref
+ 
+	tJsÚA¼ayCÚ¡
+;
+
+43 
+	gARDUINOJSON_NAMESPACE
+::
+	tA¼ayRef
+ 
+	tJsÚA¼ay
+;
+
+44 
+	gARDUINOJSON_NAMESPACE
+::
+	tFlßt
+ 
+	tJsÚFlßt
+;
+
+45 
+	gARDUINOJSON_NAMESPACE
+::
+	tIÁeg”
+ 
+	tJsÚIÁeg”
+;
+
+46 
+	gARDUINOJSON_NAMESPACE
+::
+	tObjeùCÚ¡Ref
+ 
+	tJsÚObjeùCÚ¡
+;
+
+47 
+	gARDUINOJSON_NAMESPACE
+::
+	tObjeùRef
+ 
+	tJsÚObjeù
+;
+
+48 
+	gARDUINOJSON_NAMESPACE
+::
+	tPaœ
+ 
+	tJsÚPaœ
+;
+
+49 
+	gARDUINOJSON_NAMESPACE
+::
+	tPaœCÚ¡
+ 
+	tJsÚPaœCÚ¡
+;
+
+50 
+	gARDUINOJSON_NAMESPACE
+::
+	tSŒšg
+ 
+	tJsÚSŒšg
+;
+
+51 
+	gARDUINOJSON_NAMESPACE
+::
+	tUIÁ
+ 
+	tJsÚUIÁ
+;
+
+52 
+	gARDUINOJSON_NAMESPACE
+::
+	tV¬ŸÁCÚ¡Ref
+ 
+	tJsÚV¬ŸÁCÚ¡
+;
+
+53 
+	gARDUINOJSON_NAMESPACE
+::
+	tV¬ŸÁRef
+ 
+	tJsÚV¬ŸÁ
+;
+
+54 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+BasicJsÚDocum’t
+;
+
+55 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+cÝyA¼ay
+;
+
+56 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+De£rŸliz©iÚE¼Ü
+;
+
+57 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+de£rŸlizeJsÚ
+;
+
+58 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+de£rŸlizeMsgPack
+;
+
+59 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+DyÇmicJsÚDocum’t
+;
+
+60 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+JsÚDocum’t
+;
+
+61 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+m—su»JsÚ
+;
+
+62 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlized
+;
+
+63 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlizeJsÚ
+;
+
+64 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlizeJsÚP»‰y
+;
+
+65 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+£rŸlizeMsgPack
+;
+
+66 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+S�ticJsÚDocum’t
+;
+
+68 
+Çme¥aû
+ 
+	gDe£rŸliz©iÚO±iÚ
+ {
+
+69 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+Fž‹r
+;
+
+70 
+usšg
+ 
+	gARDUINOJSON_NAMESPACE
+::
+Ne¡šgLim™
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+šlše
+ 
+V¬ŸÁD©a
+ *
+¬¿yAdd
+(
+CÞËùiÚD©a
+ *
+¬r
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+12  
+	g¬r
+ ?‡¼->
+addEËm’t
+(
+poÞ
+) : 0;
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+16 
+šlše
+ 
+¬¿yAcû±
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+¬r
+, 
+Vis™Ü
+ &
+vis™Ü
+) {
+
+17 ià(
+	g¬r
+)
+
+18 
+	gvis™Ü
+.
+vis™A¼ay
+(*
+¬r
+);
+
+20 
+	gvis™Ü
+.
+vis™NuÎ
+();
+
+23 
+šlše
+ 
+boÞ
+ 
+¬¿yEqu®s
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+lhs
+, cÚ¡ CÞËùiÚD©¨*
+rhs
+) {
+
+24 ià(
+	glhs
+ =ð
+rhs
+)
+
+25  
+Œue
+;
+
+26 ià(!
+	glhs
+ || !
+	grhs
+)
+
+27  
+	gçl£
+;
+
+28  
+	glhs
+->
+equ®sA¼ay
+(*
+rhs
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+13 
+šlše
+ 
+A¼ayRef
+ 
+	gA¼ayShÜtcuts
+<
+	gTA¼ay
+>::
+ü—‹Ne¡edA¼ay
+() const {
+
+14  
+im¶
+()->
+addEËm’t
+().
+‹m¶©e
+ 
+to
+<
+A¼ayRef
+>();
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+18 
+šlše
+ 
+ObjeùRef
+ 
+	gA¼ayShÜtcuts
+<
+	gTA¼ay
+>::
+ü—‹Ne¡edObjeù
+() const {
+
+19  
+im¶
+()->
+addEËm’t
+().
+‹m¶©e
+ 
+to
+<
+ObjeùRef
+>();
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+23 
+šlše
+ 
+	gEËm’tProxy
+<
+	gTA¼ay
+> 
+	gA¼ayShÜtcuts
+<TA¼ay>::
+Ý”©Ü
+[](
+
+24 
+size_t
+ 
+šdex
+) const {
+
+25  
+EËm’tProxy
+<
+TA¼ay
+>(*
+im¶
+(), 
+	gšdex
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/V¬ŸÁ/SlÙFunùiÚs.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cV¬ŸÁPŒ
+ {
+
+13 
+	gpublic
+:
+
+14 
+V¬ŸÁPŒ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁD©a
+ *
+d©a
+è: 
+_v¬ŸÁ
+(pool, data) {}
+
+16 
+V¬ŸÁRef
+ *
+	gÝ”©Ü
+->() {
+
+17  &
+	g_v¬ŸÁ
+;
+
+20 
+	gV¬ŸÁRef
+ &
+	gÝ”©Ü
+*() {
+
+21  
+	g_v¬ŸÁ
+;
+
+24 
+	g´iv©e
+:
+
+25 
+V¬ŸÁRef
+ 
+_v¬ŸÁ
+;
+
+28 þas 
+	cA¼ayI‹¿tÜ
+ {
+
+29 
+	gpublic
+:
+
+30 
+A¼ayI‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+31 
+ex¶ic™
+ 
+A¼ayI‹¿tÜ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁSlÙ
+ *
+¦Ù
+)
+
+32 : 
+_poÞ
+(
+poÞ
+), 
+_¦Ù
+(
+¦Ù
+) {}
+
+34 
+V¬ŸÁRef
+ 
+	gÝ”©Ü
+*() const {
+
+35  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_¦Ù
+->
+d©a
+());
+
+37 
+V¬ŸÁPŒ
+ 
+	gÝ”©Ü
+->() {
+
+38  
+V¬ŸÁPŒ
+(
+_poÞ
+, 
+_¦Ù
+->
+d©a
+());
+
+41 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+A¼ayI‹¿tÜ
+ &
+Ùh”
+) const {
+
+42  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+45 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+A¼ayI‹¿tÜ
+ &
+Ùh”
+) const {
+
+46  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+49 
+	gA¼ayI‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+50 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+51  *
+	gthis
+;
+
+54 
+	gA¼ayI‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+55 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+56  *
+	gthis
+;
+
+59 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+60  
+	g_¦Ù
+;
+
+63 
+	g´iv©e
+:
+
+64 
+MemÜyPoÞ
+ *
+_poÞ
+;
+
+65 
+V¬ŸÁSlÙ
+ *
+	g_¦Ù
+;
+
+68 þas 
+	cV¬ŸÁCÚ¡PŒ
+ {
+
+69 
+	gpublic
+:
+
+70 
+V¬ŸÁCÚ¡PŒ
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+d©a
+è: 
+_v¬ŸÁ
+(data) {}
+
+72 
+V¬ŸÁCÚ¡Ref
+ *
+Ý”©Ü
+->() {
+
+73  &
+_v¬ŸÁ
+;
+
+76 
+	gV¬ŸÁCÚ¡Ref
+ &
+	gÝ”©Ü
+*() {
+
+77  
+	g_v¬ŸÁ
+;
+
+80 
+	g´iv©e
+:
+
+81 
+V¬ŸÁCÚ¡Ref
+ 
+_v¬ŸÁ
+;
+
+84 þas 
+	cA¼ayCÚ¡RefI‹¿tÜ
+ {
+
+85 
+	gpublic
+:
+
+86 
+A¼ayCÚ¡RefI‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+87 
+ex¶ic™
+ 
+A¼ayCÚ¡RefI‹¿tÜ
+(cÚ¡ 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_¦Ù
+(slot) {}
+
+89 
+V¬ŸÁCÚ¡Ref
+ 
+Ý”©Ü
+*() const {
+
+90  
+V¬ŸÁCÚ¡Ref
+(
+_¦Ù
+->
+d©a
+());
+
+92 
+V¬ŸÁCÚ¡PŒ
+ 
+	gÝ”©Ü
+->() {
+
+93  
+V¬ŸÁCÚ¡PŒ
+(
+_¦Ù
+->
+d©a
+());
+
+96 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+A¼ayCÚ¡RefI‹¿tÜ
+ &
+Ùh”
+) const {
+
+97  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+100 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+A¼ayCÚ¡RefI‹¿tÜ
+ &
+Ùh”
+) const {
+
+101  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+104 
+	gA¼ayCÚ¡RefI‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+105 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+106  *
+	gthis
+;
+
+109 
+	gA¼ayCÚ¡RefI‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+110 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+111  *
+	gthis
+;
+
+114 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+115  
+	g_¦Ù
+;
+
+118 
+	g´iv©e
+:
+
+119 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+_¦Ù
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayFunùiÚs.hµ
+>
+
+8 
+	~<ArdušoJsÚ/A¼ay/A¼ayI‹¿tÜ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+13 
+	#JSON_ARRAY_SIZE
+(
+NUMBER_OF_ELEMENTS
+) \
+
+14 ((
+NUMBER_OF_ELEMENTS
+è* (
+ARDUINOJSON_NAMESPACE
+::
+V¬ŸÁSlÙ
+))
+
+	)
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+þass
+ 
+	gObjeùRef
+;
+
+19 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+20 
+þass
+ 
+	gEËm’tProxy
+;
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTD©a
+>
+
+23 þas 
+	cA¼ayRefBa£
+ {
+
+24 
+	gpublic
+:
+
+25 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+26 cÚ¡ * 
+d©a
+ = 
+_d©a
+;
+
+27  
+V¬ŸÁCÚ¡Ref
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+31 
+FORCE_INLINE
+ 
+acû±
+(
+Vis™Ü
+& 
+vis™Ü
+) const {
+
+32 
+¬¿yAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+35 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+36  
+	g_d©a
+ == 0;
+
+39 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+boÞ
+() const {
+
+40  
+	g_d©a
+ != 0;
+
+43 
+FORCE_INLINE
+ 
+size_t
+ 
+memÜyU§ge
+() const {
+
+44  
+	g_d©a
+ ? _d©a->
+memÜyU§ge
+() : 0;
+
+47 
+FORCE_INLINE
+ 
+size_t
+ 
+Ã¡šg
+() const {
+
+48  
+	g_d©a
+ ? _d©a->
+Ã¡šg
+() : 0;
+
+51 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+52  
+	g_d©a
+ ? _d©a->
+size
+() : 0;
+
+55 
+	g´Ùeùed
+:
+
+56 
+A¼ayRefBa£
+(
+TD©a
+* 
+d©a
+è: 
+_d©a
+(data) {}
+
+57 
+TD©a
+* 
+_d©a
+;
+
+60 
+þass
+ 
+	gA¼ayCÚ¡Ref
+ : 
+public
+ 
+A¼ayRefBa£
+<cÚ¡ 
+CÞËùiÚD©a
+>,
+
+61 
+public
+ 
+	gVis™abË
+ {
+
+62 
+ä›nd
+ 
+þass
+ 
+	gA¼ayRef
+;
+
+63 
+	gA¼ayRefBa£
+<cÚ¡ 
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+65 
+	gpublic
+:
+
+66 
+A¼ayCÚ¡RefI‹¿tÜ
+ 
+	t™”©Ü
+;
+
+68 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+69 ià(!
+	g_d©a
+)
+
+70  
+™”©Ü
+();
+
+71  
+™”©Ü
+(
+_d©a
+->
+h—d
+());
+
+74 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+75  
+™”©Ü
+();
+
+78 
+FORCE_INLINE
+ 
+A¼ayCÚ¡Ref
+(è: 
+ba£_ty³
+(0) {}
+
+79 
+FORCE_INLINE
+ 
+A¼ayCÚ¡Ref
+(cÚ¡ 
+CÞËùiÚD©a
+* 
+d©a
+è: 
+ba£_ty³
+(data) {}
+
+81 
+FORCE_INLINE
+ 
+boÞ
+ 
+Ý”©Ü
+==(
+A¼ayCÚ¡Ref
+ 
+rhs
+) const {
+
+82  
+¬¿yEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+85 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) const {
+
+86  
+g‘EËm’t
+(
+šdex
+);
+
+89 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+90  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+ ? _d©a->
+g‘EËm’t
+(
+šdex
+) : 0);
+
+94 
+þass
+ 
+	gA¼ayRef
+ : 
+public
+ 
+A¼ayRefBa£
+<
+CÞËùiÚD©a
+>,
+
+95 
+public
+ 
+	gA¼ayShÜtcuts
+<
+	gA¼ayRef
+>,
+
+96 
+public
+ 
+	gVis™abË
+ {
+
+97 
+	gA¼ayRefBa£
+<
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+99 
+	gpublic
+:
+
+100 
+A¼ayI‹¿tÜ
+ 
+	t™”©Ü
+;
+
+102 
+FORCE_INLINE
+ 
+A¼ayRef
+(è: 
+ba£_ty³
+(0), 
+_poÞ
+(0) {}
+
+103 
+FORCE_INLINE
+ 
+A¼ayRef
+(
+MemÜyPoÞ
+* 
+poÞ
+, 
+CÞËùiÚD©a
+* 
+d©a
+)
+
+104 : 
+ba£_ty³
+(
+d©a
+), 
+_poÞ
+(
+poÞ
+) {}
+
+106 
+Ý”©Ü
+ 
+V¬ŸÁRef
+() {
+
+107 * 
+	gd©a
+ = 
+_d©a
+;
+
+108  
+V¬ŸÁRef
+(
+_poÞ
+, 
+»š‹½»t_ÿ¡
+<
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+111 
+Ý”©Ü
+ 
+A¼ayCÚ¡Ref
+() const {
+
+112  
+A¼ayCÚ¡Ref
+(
+_d©a
+);
+
+115 
+V¬ŸÁRef
+ 
+addEËm’t
+() const {
+
+116  
+V¬ŸÁRef
+(
+_poÞ
+, 
+¬¿yAdd
+(
+_d©a
+, _pool));
+
+119 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+120 ià(!
+	g_d©a
+)
+
+121  
+™”©Ü
+();
+
+122  
+™”©Ü
+(
+_poÞ
+, 
+_d©a
+->
+h—d
+());
+
+125 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+126  
+™”©Ü
+();
+
+130 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+A¼ayCÚ¡Ref
+ 
+¤c
+) const {
+
+131 ià(!
+	g_d©a
+ || !
+	g¤c
+._data)
+
+132  
+	gçl£
+;
+
+133  
+	g_d©a
+->
+cÝyFrom
+(*
+¤c
+.
+_d©a
+, 
+_poÞ
+);
+
+136 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+A¼ayRef
+ 
+rhs
+) const {
+
+137  
+¬¿yEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+141 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+142  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ ? _d©a->
+g‘OrAddEËm’t
+(
+šdex
+, _pool) : 0);
+
+146 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+147  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ ? _d©a->
+g‘EËm’t
+(
+šdex
+) : 0);
+
+151 
+FORCE_INLINE
+ 
+»move
+(
+™”©Ü
+ 
+™
+) const {
+
+152 ià(!
+	g_d©a
+)
+
+154 
+	g_d©a
+->
+»moveSlÙ
+(
+™
+.
+š‹º®
+());
+
+158 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+159 ià(!
+	g_d©a
+)
+
+161 
+	g_d©a
+->
+»moveEËm’t
+(
+šdex
+);
+
+164 
+	g´iv©e
+:
+
+165 
+MemÜyPoÞ
+* 
+_poÞ
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+13 
+þass
+ 
+	gEËm’tProxy
+;
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+16 þas 
+	cA¼ayShÜtcuts
+ {
+
+17 
+	gpublic
+:
+
+19 
+FORCE_INLINE
+ 
+EËm’tProxy
+<
+TA¼ay
+> 
+Ý”©Ü
+[](
+size_t
+ 
+šdex
+) const;
+
+21 
+FORCE_INLINE
+ 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+() const;
+
+23 
+FORCE_INLINE
+ 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+() const;
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+31 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(cÚ¡ 
+T
+ &
+v®ue
+) const {
+
+32  
+im¶
+()->
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+37 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+38 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(
+T
+ *
+v®ue
+) const {
+
+39  
+im¶
+()->
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+42 
+	g´iv©e
+:
+
+43 cÚ¡ 
+TA¼ay
+ *
+im¶
+() const {
+
+44  
+¡©ic_ÿ¡
+<cÚ¡ 
+TA¼ay
+ *>(
+this
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/O³¿tÜs/V¬ŸÁO³¿tÜs.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁTo.hµ
+>
+
+11 #ifdeà
+_MSC_VER
+
+
+12 #´agm¨
+w¬nšg
+(
+push
+)
+
+13 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4522)
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTA¼ay
+>
+
+19 
+þass
+ 
+	gEËm’tProxy
+ : 
+public
+ 
+V¬ŸÁO³¿tÜs
+<
+EËm’tProxy
+<
+TA¼ay
+> >,
+
+20 
+public
+ 
+	gVis™abË
+ {
+
+21 
+	gEËm’tProxy
+<
+	tTA¼ay
+> 
+	tthis_ty³
+;
+
+23 
+	gpublic
+:
+
+24 
+FORCE_INLINE
+ 
+EËm’tProxy
+(
+TA¼ay
+ 
+¬¿y
+, 
+size_t
+ 
+šdex
+)
+
+25 : 
+_¬¿y
+(
+¬¿y
+), 
+_šdex
+(
+šdex
+) {}
+
+27 
+FORCE_INLINE
+ 
+EËm’tProxy
+(cÚ¡ EËm’tProxy& 
+¤c
+)
+
+28 : 
+_¬¿y
+(
+¤c
+._¬¿y), 
+_šdex
+(src._index) {}
+
+30 
+FORCE_INLINE
+ 
+	gthis_ty³
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+this_ty³
+& 
+¤c
+) {
+
+31 
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+¤c
+.
+as
+<
+V¬ŸÁCÚ¡Ref
+>());
+
+32  *
+	gthis
+;
+
+40 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+41 
+FORCE_INLINE
+ 
+	gthis_ty³
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+T
+& 
+¤c
+) {
+
+42 
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+¤c
+);
+
+43  *
+	gthis
+;
+
+48 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+49 
+FORCE_INLINE
+ 
+	gthis_ty³
+& 
+	gÝ”©Ü
+=(
+T
+* 
+¤c
+) {
+
+50 
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+¤c
+);
+
+51  *
+	gthis
+;
+
+54 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+55  
+¡©ic_ÿ¡
+<
+V¬ŸÁCÚ¡Ref
+>(
+g‘Up¡»amEËm’t
+()è=ð
+rhs
+;
+
+58 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+59  
+¡©ic_ÿ¡
+<
+V¬ŸÁCÚ¡Ref
+>(
+g‘Up¡»amEËm’t
+()è!ð
+rhs
+;
+
+62 
+FORCE_INLINE
+ 
+þ—r
+() const {
+
+63 
+g‘Up¡»amEËm’t
+().
+þ—r
+();
+
+66 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+67  
+g‘Up¡»amEËm’t
+().
+isNuÎ
+();
+
+70 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+71 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gT
+>::
+ty³
+ 
+as
+() const {
+
+72  
+g‘Up¡»amEËm’t
+().
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+75 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+76 
+FORCE_INLINE
+ 
+boÞ
+ 
+is
+() const {
+
+77  
+g‘Up¡»amEËm’t
+().
+‹m¶©e
+ 
+	gis
+<
+	gT
+>();
+
+80 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+81 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁTo
+<
+	gT
+>::
+ty³
+ 
+to
+() const {
+
+82  
+g‘OrAddUp¡»amEËm’t
+().
+‹m¶©e
+ 
+to
+<
+T
+>();
+
+90 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+91 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(cÚ¡ 
+TV®ue
+& 
+v®ue
+) const {
+
+92  
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+v®ue
+);
+
+97 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+98 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+TV®ue
+* 
+v®ue
+) const {
+
+99  
+g‘OrAddUp¡»amEËm’t
+().
+£t
+(
+v®ue
+);
+
+102 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+103 
+acû±
+(
+Vis™Ü
+& 
+vis™Ü
+) const {
+
+104  
+g‘Up¡»amEËm’t
+().
+acû±
+(
+vis™Ü
+);
+
+107 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+108  
+g‘Up¡»amEËm’t
+().
+size
+();
+
+111 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+112 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TNe¡edKey
+* 
+key
+) const {
+
+113  
+g‘Up¡»amEËm’t
+().
+g‘Memb”
+(
+key
+);
+
+116 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+117 
+V¬ŸÁRef
+ 
+g‘Memb”
+(cÚ¡ 
+TNe¡edKey
+& 
+key
+) const {
+
+118  
+g‘Up¡»amEËm’t
+().
+g‘Memb”
+(
+key
+);
+
+121 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+122 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TNe¡edKey
+* 
+key
+) const {
+
+123  
+g‘OrAddUp¡»amEËm’t
+().
+g‘OrAddMemb”
+(
+key
+);
+
+126 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTNe¡edKey
+>
+
+127 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TNe¡edKey
+& 
+key
+) const {
+
+128  
+g‘OrAddUp¡»amEËm’t
+().
+g‘OrAddMemb”
+(
+key
+);
+
+131 
+V¬ŸÁRef
+ 
+addEËm’t
+() const {
+
+132  
+g‘OrAddUp¡»amEËm’t
+().
+addEËm’t
+();
+
+135 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+136  
+g‘OrAddUp¡»amEËm’t
+().
+g‘EËm’t
+(
+šdex
+);
+
+139 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+140 
+g‘Up¡»amEËm’t
+().
+»move
+(
+šdex
+);
+
+145 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+146 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+147 
+TCh¬
+* 
+key
+) const {
+
+148 
+g‘Up¡»amEËm’t
+().
+»move
+(
+key
+);
+
+152 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+153 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+154 cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+155 
+g‘Up¡»amEËm’t
+().
+»move
+(
+key
+);
+
+158 
+	g´iv©e
+:
+
+159 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Up¡»amEËm’t
+() const {
+
+160  
+_¬¿y
+.
+g‘EËm’t
+(
+_šdex
+);
+
+163 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddUp¡»amEËm’t
+() const {
+
+164  
+	g_¬¿y
+.
+g‘OrAddEËm’t
+(
+_šdex
+);
+
+167 
+TA¼ay
+ 
+	g_¬¿y
+;
+
+168 cÚ¡ 
+size_t
+ 
+	g_šdex
+;
+
+173 #ifdeà
+_MSC_VER
+
+
+174 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN
+>
+
+13 
+šlše
+ 
+boÞ
+ 
+cÝyA¼ay
+(
+T
+ (&
+¤c
+)[
+N
+], 
+A¼ayRef
+ 
+d¡
+) {
+
+14  
+cÝyA¼ay
+(
+¤c
+, 
+N
+, 
+d¡
+);
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+19 
+šlše
+ 
+boÞ
+ 
+cÝyA¼ay
+(
+T
+* 
+¤c
+, 
+size_t
+ 
+Ën
+, 
+A¼ayRef
+ 
+d¡
+) {
+
+20 
+boÞ
+ 
+	gok
+ = 
+Œue
+;
+
+21 
+size_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; i++) {
+
+22 
+	gok
+ &ð
+d¡
+.
+add
+(
+¤c
+[
+i
+]);
+
+24  
+	gok
+;
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN1
+, size_ˆ
+	gN2
+>
+
+29 
+šlše
+ 
+boÞ
+ 
+cÝyA¼ay
+(
+T
+ (&
+¤c
+)[
+N1
+][
+N2
+], 
+A¼ayRef
+ 
+d¡
+) {
+
+30 
+boÞ
+ 
+	gok
+ = 
+Œue
+;
+
+31 
+size_t
+ 
+	gi
+ = 0; i < 
+	gN1
+; i++) {
+
+32 
+A¼ayRef
+ 
+	gÃ¡edA¼ay
+ = 
+d¡
+.
+ü—‹Ne¡edA¼ay
+();
+
+33 
+size_t
+ 
+	gj
+ = 0; j < 
+	gN2
+; j++) {
+
+34 
+	gok
+ &ð
+Ã¡edA¼ay
+.
+add
+(
+¤c
+[
+i
+][
+j
+]);
+
+37  
+	gok
+;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN
+>
+
+42 
+šlše
+ 
+size_t
+ 
+cÝyA¼ay
+(
+A¼ayCÚ¡Ref
+ 
+¤c
+, 
+T
+ (&
+d¡
+)[
+N
+]) {
+
+43  
+cÝyA¼ay
+(
+¤c
+, 
+d¡
+, 
+N
+);
+
+47 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+48 
+šlše
+ 
+size_t
+ 
+cÝyA¼ay
+(
+A¼ayCÚ¡Ref
+ 
+¤c
+, 
+T
+* 
+d¡
+, size_ˆ
+Ën
+) {
+
+49 
+size_t
+ 
+	gi
+ = 0;
+
+50 
+	gA¼ayCÚ¡Ref
+::
+™”©Ü
+ 
+™
+ = 
+¤c
+.
+begš
+(); 
+	g™
+ !ð¤c.
+’d
+(è&& 
+i
+ < 
+Ën
+;
+
+51 ++
+	g™
+)
+
+52 
+	gd¡
+[
+i
+++] = *
+™
+;
+
+53  
+	gi
+;
+
+57 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN1
+, size_ˆ
+	gN2
+>
+
+58 
+šlše
+ 
+cÝyA¼ay
+(
+A¼ayCÚ¡Ref
+ 
+¤c
+, 
+T
+ (&
+d¡
+)[
+N1
+][
+N2
+]) {
+
+59 
+size_t
+ 
+	gi
+ = 0;
+
+60 
+	gA¼ayCÚ¡Ref
+::
+™”©Ü
+ 
+™
+ = 
+¤c
+.
+begš
+(); 
+	g™
+ !ð¤c.
+’d
+(è&& 
+i
+ < 
+N1
+;
+
+61 ++
+	g™
+) {
+
+62 
+cÝyA¼ay
+(
+™
+->
+as
+<
+A¼ayCÚ¡Ref
+>(), 
+d¡
+[
+i
+++]);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+	~<¡ddef.h
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+þass
+ 
+	gMemÜyPoÞ
+;
+
+15 
+þass
+ 
+	gV¬ŸÁD©a
+;
+
+16 
+þass
+ 
+	gV¬ŸÁSlÙ
+;
+
+18 þas 
+	cCÞËùiÚD©a
+ {
+
+19 
+V¬ŸÁSlÙ
+ *
+	g_h—d
+;
+
+20 
+V¬ŸÁSlÙ
+ *
+	g_�ž
+;
+
+22 
+	gpublic
+:
+
+31 
+V¬ŸÁD©a
+ *
+addEËm’t
+(
+MemÜyPoÞ
+ *
+poÞ
+);
+
+33 
+V¬ŸÁD©a
+ *
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const;
+
+35 
+V¬ŸÁD©a
+ *
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+37 
+»moveEËm’t
+(
+size_t
+ 
+šdex
+);
+
+39 
+boÞ
+ 
+equ®sA¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+Ùh”
+) const;
+
+43 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+44 
+V¬ŸÁD©a
+ *
+addMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+46 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+47 
+V¬ŸÁD©a
+ *
+g‘Memb”
+(
+TAd­‹dSŒšg
+ 
+key
+) const;
+
+49 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+50 
+V¬ŸÁD©a
+ *
+g‘OrAddMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+52 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+53 
+»moveMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+) {
+
+54 
+»moveSlÙ
+(
+g‘SlÙ
+(
+key
+));
+
+57 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+58 
+boÞ
+ 
+cÚ�šsKey
+(cÚ¡ 
+TAd­‹dSŒšg
+ &
+key
+) const;
+
+60 
+boÞ
+ 
+equ®sObjeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+Ùh”
+) const;
+
+64 
+þ—r
+();
+
+65 
+size_t
+ 
+memÜyU§ge
+() const;
+
+66 
+size_t
+ 
+Ã¡šg
+() const;
+
+67 
+size_t
+ 
+size
+() const;
+
+69 
+V¬ŸÁSlÙ
+ *
+addSlÙ
+(
+MemÜyPoÞ
+ *);
+
+70 
+»moveSlÙ
+(
+V¬ŸÁSlÙ
+ *
+¦Ù
+);
+
+72 
+boÞ
+ 
+cÝyFrom
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+¤c
+, 
+MemÜyPoÞ
+ *
+poÞ
+);
+
+74 
+V¬ŸÁSlÙ
+ *
+h—d
+() const {
+
+75  
+	g_h—d
+;
+
+78 
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,…Œdiff_ˆ
+v¬ŸÁDi¡ªû
+);
+
+80 
+	g´iv©e
+:
+
+81 
+V¬ŸÁSlÙ
+ *
+g‘SlÙ
+(
+size_t
+ 
+šdex
+) const;
+
+83 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+84 
+V¬ŸÁSlÙ
+ *
+g‘SlÙ
+(
+TAd­‹dSŒšg
+ 
+key
+) const;
+
+86 
+V¬ŸÁSlÙ
+ *
+g‘P»viousSlÙ
+(VariantSlot *) const;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+addSlÙ
+(
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+13 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+poÞ
+->
+®locV¬ŸÁ
+();
+
+14 ià(!
+	g¦Ù
+)
+
+17 ià(
+	g_�ž
+) {
+
+18 
+	g_�ž
+->
+£tNextNÙNuÎ
+(
+¦Ù
+);
+
+19 
+	g_�ž
+ = 
+¦Ù
+;
+
+21 
+	g_h—d
+ = 
+¦Ù
+;
+
+22 
+	g_�ž
+ = 
+¦Ù
+;
+
+25 
+	g¦Ù
+->
+þ—r
+();
+
+26  
+	g¦Ù
+;
+
+29 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+addEËm’t
+(
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+30  
+¦ÙD©a
+(
+addSlÙ
+(
+poÞ
+));
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+34 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+addMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+,
+
+35 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+36 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+addSlÙ
+(
+poÞ
+);
+
+37 ià(!
+¦ÙS‘Key
+(
+¦Ù
+, 
+key
+, 
+poÞ
+)) {
+
+38 
+»moveSlÙ
+(
+¦Ù
+);
+
+41  
+	g¦Ù
+->
+d©a
+();
+
+44 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+þ—r
+() {
+
+45 
+_h—d
+ = 0;
+
+46 
+	g_�ž
+ = 0;
+
+49 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+50 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+cÚ�šsKey
+(cÚ¡ 
+TAd­‹dSŒšg
+& 
+key
+) const {
+
+51  
+g‘SlÙ
+(
+key
+) != 0;
+
+54 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+cÝyFrom
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+¤c
+,
+
+55 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+56 
+þ—r
+();
+
+57 
+V¬ŸÁSlÙ
+* 
+	gs
+ = 
+¤c
+.
+_h—d
+; s; s = 
+s
+->
+Ãxt
+()) {
+
+58 
+V¬ŸÁD©a
+* 
+v¬
+;
+
+59 ià(
+	gs
+->
+key
+() != 0) {
+
+60 ià(
+s
+->
+ownsKey
+())
+
+61 
+v¬
+ = 
+addMemb”
+(
+RamSŒšgAd­‹r
+(
+s
+->
+key
+()), 
+poÞ
+);
+
+63 
+	gv¬
+ = 
+addMemb”
+(
+CÚ¡RamSŒšgAd­‹r
+(
+s
+->
+key
+()), 
+poÞ
+);
+
+65 
+	gv¬
+ = 
+addEËm’t
+(
+poÞ
+);
+
+67 ià(!
+	gv¬
+)
+
+68  
+	gçl£
+;
+
+69 ià(!
+	gv¬
+->
+cÝyFrom
+(*
+s
+->
+d©a
+(), 
+poÞ
+))
+
+70  
+	gçl£
+;
+
+72  
+	gŒue
+;
+
+75 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+equ®sObjeù
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+Ùh”
+) const {
+
+76 
+size_t
+ 
+couÁ
+ = 0;
+
+77 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+_h—d
+; slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+()) {
+
+78 
+V¬ŸÁD©a
+* 
+v1
+ = 
+¦Ù
+->
+d©a
+();
+
+79 
+V¬ŸÁD©a
+* 
+	gv2
+ = 
+Ùh”
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+¦Ù
+->
+key
+()));
+
+80 ià(!
+v¬ŸÁEqu®s
+(
+v1
+, 
+v2
+))
+
+81  
+	gçl£
+;
+
+82 
+	gcouÁ
+++;
+
+84  
+	gcouÁ
+ =ð
+Ùh”
+.
+size
+();
+
+87 
+šlše
+ 
+boÞ
+ 
+	gCÞËùiÚD©a
+::
+equ®sA¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+Ùh”
+) const {
+
+88 
+V¬ŸÁSlÙ
+* 
+s1
+ = 
+_h—d
+;
+
+89 
+V¬ŸÁSlÙ
+* 
+	gs2
+ = 
+Ùh”
+.
+_h—d
+;
+
+91 ià(
+	gs1
+ =ð
+s2
+)
+
+92  
+Œue
+;
+
+93 ià(!
+	gs1
+ || !
+	gs2
+)
+
+94  
+	gçl£
+;
+
+95 ià(!
+v¬ŸÁEqu®s
+(
+s1
+->
+d©a
+(), 
+s2
+->data()))
+
+96  
+	gçl£
+;
+
+97 
+	gs1
+ = 
+s1
+->
+Ãxt
+();
+
+98 
+	gs2
+ = 
+s2
+->
+Ãxt
+();
+
+102 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+103 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+g‘SlÙ
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+104 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+_h—d
+;
+
+105 
+	g¦Ù
+) {
+
+106 ià(
+	gkey
+.
+equ®s
+(
+¦Ù
+->
+key
+()))
+
+108 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+110  
+	g¦Ù
+;
+
+113 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+g‘SlÙ
+(
+size_t
+ 
+šdex
+) const {
+
+114  
+_h—d
+->
+Ãxt
+(
+šdex
+);
+
+117 
+šlše
+ 
+V¬ŸÁSlÙ
+* 
+	gCÞËùiÚD©a
+::
+g‘P»viousSlÙ
+(V¬ŸÁSlÙ* 
+�rg‘
+) const {
+
+118 
+V¬ŸÁSlÙ
+* 
+cu¼’t
+ = 
+_h—d
+;
+
+119 
+	gcu¼’t
+) {
+
+120 
+V¬ŸÁSlÙ
+* 
+	gÃxt
+ = 
+cu¼’t
+->
+Ãxt
+();
+
+121 ià(
+	gÃxt
+ =ð
+�rg‘
+)
+
+122  
+cu¼’t
+;
+
+123 
+	gcu¼’t
+ = 
+Ãxt
+;
+
+128 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+129 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘Memb”
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+130 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+g‘SlÙ
+(
+key
+);
+
+131  
+	g¦Ù
+ ? slÙ->
+d©a
+() : 0;
+
+134 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+135 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘OrAddMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+,
+
+136 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+138 ià(
+	gkey
+.
+isNuÎ
+())
+
+142 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+g‘SlÙ
+(
+key
+);
+
+143 ià(
+	g¦Ù
+)
+
+144  
+	g¦Ù
+->
+d©a
+();
+
+146  
+addMemb”
+(
+key
+, 
+poÞ
+);
+
+149 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+150 
+V¬ŸÁSlÙ
+* 
+¦Ù
+ = 
+g‘SlÙ
+(
+šdex
+);
+
+151  
+	g¦Ù
+ ? slÙ->
+d©a
+() : 0;
+
+154 
+šlše
+ 
+V¬ŸÁD©a
+* 
+	gCÞËùiÚD©a
+::
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+,
+
+155 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+156 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+_h—d
+;
+
+157 
+	g¦Ù
+ && 
+	gšdex
+ > 0) {
+
+158 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+159 
+	gšdex
+--;
+
+161 ià(!
+	g¦Ù
+)
+
+162 
+	gšdex
+++;
+
+163 
+	gšdex
+ > 0) {
+
+164 
+	g¦Ù
+ = 
+addSlÙ
+(
+poÞ
+);
+
+165 
+	gšdex
+--;
+
+167  
+¦ÙD©a
+(
+¦Ù
+);
+
+170 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+»moveSlÙ
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+171 ià(!
+¦Ù
+)
+
+173 
+V¬ŸÁSlÙ
+* 
+	g´ev
+ = 
+g‘P»viousSlÙ
+(
+¦Ù
+);
+
+174 
+V¬ŸÁSlÙ
+* 
+	gÃxt
+ = 
+¦Ù
+->
+Ãxt
+();
+
+175 ià(
+	g´ev
+)
+
+176 
+	g´ev
+->
+£tNext
+(
+Ãxt
+);
+
+178 
+	g_h—d
+ = 
+Ãxt
+;
+
+179 ià(!
+	gÃxt
+)
+
+180 
+	g_�ž
+ = 
+´ev
+;
+
+183 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+»moveEËm’t
+(
+size_t
+ 
+šdex
+) {
+
+184 
+»moveSlÙ
+(
+g‘SlÙ
+(
+šdex
+));
+
+187 
+šlše
+ 
+size_t
+ 
+	gCÞËùiÚD©a
+::
+memÜyU§ge
+() const {
+
+188 
+size_t
+ 
+tÙ®
+ = 0;
+
+189 
+V¬ŸÁSlÙ
+* 
+	gs
+ = 
+_h—d
+; s; s = 
+s
+->
+Ãxt
+()) {
+
+190 
+tÙ®
+ +ð(
+V¬ŸÁSlÙ
+è+ 
+s
+->
+d©a
+()->
+memÜyU§ge
+();
+
+191 ià(
+	gs
+->
+ownsKey
+())
+
+192 
+	gtÙ®
+ +ð
+¡¾’
+(
+s
+->
+key
+()) + 1;
+
+194  
+	gtÙ®
+;
+
+197 
+šlše
+ 
+size_t
+ 
+	gCÞËùiÚD©a
+::
+Ã¡šg
+() const {
+
+198 
+size_t
+ 
+maxChždNe¡šg
+ = 0;
+
+199 
+V¬ŸÁSlÙ
+* 
+	gs
+ = 
+_h—d
+; s; s = 
+s
+->
+Ãxt
+()) {
+
+200 
+size_t
+ 
+chždNe¡šg
+ = 
+s
+->
+d©a
+()->
+Ã¡šg
+();
+
+201 ià(
+	gchždNe¡šg
+ > 
+	gmaxChždNe¡šg
+)
+
+202 
+	gmaxChždNe¡šg
+ = 
+chždNe¡šg
+;
+
+204  
+	gmaxChždNe¡šg
+ + 1;
+
+207 
+šlše
+ 
+size_t
+ 
+	gCÞËùiÚD©a
+::
+size
+() const {
+
+208  
+¦ÙSize
+(
+_h—d
+);
+
+211 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+212 
+šlše
+ 
+movePoš‹r
+(
+T
+*& 
+p
+, 
+±rdiff_t
+ 
+off£t
+) {
+
+213 ià(!
+	gp
+)
+
+215 
+	gp
+ = 
+»š‹½»t_ÿ¡
+<
+T
+*>(
+
+216 
+»š‹½»t_ÿ¡
+<*>Ôeš‹½»t_ÿ¡<*>(
+p
+è+ 
+off£t
+));
+
+217 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+p
+));
+
+220 
+šlše
+ 
+	gCÞËùiÚD©a
+::
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,
+
+221 
+±rdiff_t
+ 
+v¬ŸÁDi¡ªû
+) {
+
+222 
+movePoš‹r
+(
+_h—d
+, 
+v¬ŸÁDi¡ªû
+);
+
+223 
+movePoš‹r
+(
+_�ž
+, 
+v¬ŸÁDi¡ªû
+);
+
+224 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+_h—d
+; slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+())
+
+225 
+¦Ù
+->
+movePoš‹rs
+(
+¡ršgDi¡ªû
+, 
+v¬ŸÁDi¡ªû
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Configuration.hpp
+
+5 #´agm¨
+Úû
+
+
+7 #ià
+defšed
+(
+_MSC_VER
+)
+
+8 
+	#ARDUINOJSON_HAS_INT64
+ 1
+
+	)
+
+10 
+	#ARDUINOJSON_HAS_INT64
+ 0
+
+	)
+
+13 #ià
+__ýlu¥lus
+ >= 201103L
+
+14 
+	#ARDUINOJSON_HAS_LONG_LONG
+ 1
+
+	)
+
+15 
+	#ARDUINOJSON_HAS_NULLPTR
+ 1
+
+	)
+
+16 
+	#ARDUINOJSON_HAS_RVALUE_REFERENCES
+ 1
+
+	)
+
+18 
+	#ARDUINOJSON_HAS_LONG_LONG
+ 0
+
+	)
+
+19 
+	#ARDUINOJSON_HAS_NULLPTR
+ 0
+
+	)
+
+20 
+	#ARDUINOJSON_HAS_RVALUE_REFERENCES
+ 0
+
+	)
+
+24 #iâdeà
+ARDUINOJSON_EMBEDDED_MODE
+
+
+25 #ià
+defšed
+(
+ARDUINO
+) \
+
+26 || 
+defšed
+(
+__IAR_SYSTEMS_ICC__
+) \
+
+27 || 
+defšed
+(
+__XC
+) \
+
+28 || 
+defšed
+(
+__ARMCC_VERSION
+) \
+
+29 || 
+	$defšed
+(
+__AVR
+)
+
+30 
+	#ARDUINOJSON_EMBEDDED_MODE
+ 1
+
+	)
+
+32 
+	#ARDUINOJSON_EMBEDDED_MODE
+ 0
+
+	)
+
+38 #ià!
+	`defšed
+(
+ARDUINOJSON_ENABLE_STD_STREAM
+è&& defšed(
+__has_šþude
+)
+
+39 #ià
+	`__has_šþude
+(<
+i¡»am
+>) && \
+
+40 
+	`__has_šþude
+(<
+o¡»am
+>) && \
+
+41 !
+	`defšed
+(
+mš
+) && \
+
+42 !
+	$defšed
+(
+max
+)
+
+43 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 1
+
+	)
+
+45 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 0
+
+	)
+
+51 #ià!
+	`defšed
+(
+ARDUINOJSON_ENABLE_STD_STRING
+è&& defšed(
+__has_šþude
+)
+
+52 #ià
+	`__has_šþude
+(<
+¡ršg
+>è&& !
+	`defšed
+(
+mš
+è&& !defšed(
+max
+)
+
+53 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 1
+
+	)
+
+55 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 0
+
+	)
+
+59 #ià
+ARDUINOJSON_EMBEDDED_MODE
+
+
+62 #iâdeà
+ARDUINOJSON_USE_DOUBLE
+
+
+63 
+	#ARDUINOJSON_USE_DOUBLE
+ 0
+
+	)
+
+67 #iâdeà
+ARDUINOJSON_USE_LONG_LONG
+
+
+68 
+	#ARDUINOJSON_USE_LONG_LONG
+ 0
+
+	)
+
+72 #iâdeà
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+73 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 0
+
+	)
+
+77 #iâdeà
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+78 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 0
+
+	)
+
+82 #iâdeà
+ARDUINOJSON_DEFAULT_NESTING_LIMIT
+
+
+83 
+	#ARDUINOJSON_DEFAULT_NESTING_LIMIT
+ 10
+
+	)
+
+89 #iâdeà
+ARDUINOJSON_USE_DOUBLE
+
+
+90 
+	#ARDUINOJSON_USE_DOUBLE
+ 1
+
+	)
+
+94 #iâdeà
+ARDUINOJSON_USE_LONG_LONG
+
+
+95 #ià
+ARDUINOJSON_HAS_LONG_LONG
+ || 
+ARDUINOJSON_HAS_INT64
+
+
+96 
+	#ARDUINOJSON_USE_LONG_LONG
+ 1
+
+	)
+
+98 
+	#ARDUINOJSON_USE_LONG_LONG
+ 0
+
+	)
+
+103 #iâdeà
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+104 
+	#ARDUINOJSON_ENABLE_STD_STRING
+ 1
+
+	)
+
+108 #iâdeà
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+109 
+	#ARDUINOJSON_ENABLE_STD_STREAM
+ 1
+
+	)
+
+113 #iâdeà
+ARDUINOJSON_DEFAULT_NESTING_LIMIT
+
+
+114 
+	#ARDUINOJSON_DEFAULT_NESTING_LIMIT
+ 50
+
+	)
+
+119 #ifdeà
+ARDUINO
+
+
+121 
+	~<Ardušo.h
+>
+
+124 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+125 
+	#ARDUINOJSON_ENABLE_ARDUINO_STRING
+ 1
+
+	)
+
+129 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STREAM
+
+
+130 
+	#ARDUINOJSON_ENABLE_ARDUINO_STREAM
+ 1
+
+	)
+
+134 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_PRINT
+
+
+135 
+	#ARDUINOJSON_ENABLE_ARDUINO_PRINT
+ 1
+
+	)
+
+141 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+142 
+	#ARDUINOJSON_ENABLE_ARDUINO_STRING
+ 0
+
+	)
+
+146 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_STREAM
+
+
+147 
+	#ARDUINOJSON_ENABLE_ARDUINO_STREAM
+ 0
+
+	)
+
+151 #iâdeà
+ARDUINOJSON_ENABLE_ARDUINO_PRINT
+
+
+152 
+	#ARDUINOJSON_ENABLE_ARDUINO_PRINT
+ 0
+
+	)
+
+157 #iâdeà
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+158 #ifdeà
+PROGMEM
+
+
+159 
+	#ARDUINOJSON_ENABLE_PROGMEM
+ 1
+
+	)
+
+161 
+	#ARDUINOJSON_ENABLE_PROGMEM
+ 0
+
+	)
+
+166 #iâdeà
+ARDUINOJSON_DECODE_UNICODE
+
+
+167 
+	#ARDUINOJSON_DECODE_UNICODE
+ 0
+
+	)
+
+171 #iâdeà
+ARDUINOJSON_ENABLE_COMMENTS
+
+
+172 
+	#ARDUINOJSON_ENABLE_COMMENTS
+ 0
+
+	)
+
+176 #iâdeà
+ARDUINOJSON_ENABLE_NAN
+
+
+177 
+	#ARDUINOJSON_ENABLE_NAN
+ 0
+
+	)
+
+181 #iâdeà
+ARDUINOJSON_ENABLE_INFINITY
+
+
+182 
+	#ARDUINOJSON_ENABLE_INFINITY
+ 0
+
+	)
+
+187 #iâdeà
+ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD
+
+
+188 
+	#ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD
+ 1e7
+
+	)
+
+192 #iâdeà
+ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD
+
+
+193 
+	#ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD
+ 1e-5
+
+	)
+
+196 #iâdeà
+ARDUINOJSON_LITTLE_ENDIAN
+
+
+197 #ià
+	`defšed
+(
+_MSC_VER
+) || \
+
+198 (
+	`defšed
+(
+__BYTE_ORDER__
+è&& __BYTE_ORDER__ =ð
+__ORDER_LITTLE_ENDIAN__
+) || \
+
+199 
+	`defšed
+(
+__LITTLE_ENDIAN__
+è|| defšed(
+__i386
+è|| 
+	$defšed
+(
+__x86_64
+)
+
+200 
+	#ARDUINOJSON_LITTLE_ENDIAN
+ 1
+
+	)
+
+202 
+	#ARDUINOJSON_LITTLE_ENDIAN
+ 0
+
+	)
+
+206 #iâdeà
+ARDUINOJSON_TAB
+
+
+207 
+	#ARDUINOJSON_TAB
+ " "
+
+	)
+
+210 #iâdeà
+ARDUINOJSON_STRING_BUFFER_SIZE
+
+
+211 
+	#ARDUINOJSON_STRING_BUFFER_SIZE
+ 32
+
+	)
+
+214 #iâdeà
+ARDUINOJSON_DEBUG
+
+
+215 #ifdeà
+__PLATFORMIO_BUILD_DEBUG__
+
+
+216 
+	#ARDUINOJSON_DEBUG
+ 1
+
+	)
+
+218 
+	#ARDUINOJSON_DEBUG
+ 0
+
+	)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+10 
+	~<o¡»am
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 þas 
+	cDe£rŸliz©iÚE¼Ü
+ {
+
+17 (
+	gDe£rŸliz©iÚE¼Ü
+::*
+	tboÞ_ty³
+)() const;
+
+18 
+§ãBoÞH–³r
+() const {}
+
+20 
+	gpublic
+:
+
+21 
+	eCode
+ {
+
+22 
+Ok
+,
+
+23 
+	gIncom¶‘eIÅut
+,
+
+24 
+	gInv®idIÅut
+,
+
+25 
+	gNoMemÜy
+,
+
+26 
+	gNÙSuµÜ‹d
+,
+
+27 
+	gTooD“p
+
+
+30 
+De£rŸliz©iÚE¼Ü
+() {}
+
+31 
+De£rŸliz©iÚE¼Ü
+(
+Code
+ 
+c
+è: 
+_code
+(c) {}
+
+34 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+==(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+,
+
+35 cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+36  
+	glhs
+.
+	g_code
+ =ð
+rhs
+.
+_code
+;
+
+38 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+,
+
+39 cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+40  
+	glhs
+.
+	g_code
+ !ð
+rhs
+.
+_code
+;
+
+44 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+, 
+Code
+ 
+	grhs
+) {
+
+45  
+	glhs
+.
+	g_code
+ =ð
+rhs
+;
+
+47 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+Code
+ 
+lhs
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+48  
+	glhs
+ =ð
+rhs
+.
+_code
+;
+
+50 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+lhs
+, 
+Code
+ 
+	grhs
+) {
+
+51  
+	glhs
+.
+	g_code
+ !ð
+rhs
+;
+
+53 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+Code
+ 
+lhs
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	grhs
+) {
+
+54  
+	glhs
+ !ð
+rhs
+.
+_code
+;
+
+58 
+Ý”©Ü
+ 
+boÞ_ty³
+() const {
+
+59  
+	g_code
+ !ð
+Ok
+ ? &
+De£rŸliz©iÚE¼Ü
+::
+§ãBoÞH–³r
+ : 0;
+
+61 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(boÞ 
+v®ue
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	g”r
+) {
+
+62  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è=ð
+v®ue
+;
+
+64 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+”r
+, boÞ 
+	gv®ue
+) {
+
+65  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è=ð
+v®ue
+;
+
+67 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(boÞ 
+v®ue
+, cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	g”r
+) {
+
+68  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è!ð
+v®ue
+;
+
+70 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+De£rŸliz©iÚE¼Ü
+& 
+”r
+, boÞ 
+	gv®ue
+) {
+
+71  
+	g¡©ic_ÿ¡
+<
+	gboÞ
+>(
+	g”r
+è!ð
+v®ue
+;
+
+75 
+Code
+ 
+code
+() const {
+
+76  
+	g_code
+;
+
+79 cÚ¡ * 
+c_¡r
+() const {
+
+80 
+	g_code
+) {
+
+81 
+	gOk
+:
+
+83 
+	gTooD“p
+:
+
+85 
+	gNoMemÜy
+:
+
+87 
+	gInv®idIÅut
+:
+
+89 
+	gIncom¶‘eIÅut
+:
+
+91 
+	gNÙSuµÜ‹d
+:
+
+98 
+	g´iv©e
+:
+
+99 
+Code
+ 
+_code
+;
+
+102 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+103 
+šlše
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+<<(
+¡d
+::o¡»am& 
+s
+,
+
+104 cÚ¡ 
+	gDe£rŸliz©iÚE¼Ü
+& 
+	ge
+) {
+
+105 
+	gs
+ << 
+	ge
+.
+c_¡r
+();
+
+106  
+	gs
+;
+
+109 
+šlše
+ 
+	g¡d
+::
+o¡»am
+& 
+Ý”©Ü
+<<(
+¡d
+::o¡»am& 
+s
+, 
+	gDe£rŸliz©iÚE¼Ü
+::
+Code
+ 
+c
+) {
+
+110 
+s
+ << 
+De£rŸliz©iÚE¼Ü
+(
+c
+).
+c_¡r
+();
+
+111  
+	gs
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cFž‹r
+ {
+
+12 
+	gpublic
+:
+
+13 
+ex¶ic™
+ 
+Fž‹r
+(
+V¬ŸÁCÚ¡Ref
+ 
+v
+è: 
+_v¬ŸÁ
+(v) {}
+
+15 
+boÞ
+ 
+®low
+() const {
+
+16  
+_v¬ŸÁ
+;
+
+19 
+boÞ
+ 
+®lowA¼ay
+() const {
+
+20  
+	g_v¬ŸÁ
+ =ð
+Œue
+ || 
+_v¬ŸÁ
+.
+is
+<
+A¼ayRef
+>();
+
+23 
+boÞ
+ 
+®lowObjeù
+() const {
+
+24  
+	g_v¬ŸÁ
+ =ð
+Œue
+ || 
+_v¬ŸÁ
+.
+is
+<
+ObjeùRef
+>();
+
+27 
+boÞ
+ 
+®lowV®ue
+() const {
+
+28  
+	g_v¬ŸÁ
+ =ð
+Œue
+;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTKey
+>
+
+32 
+Fž‹r
+ 
+	gÝ”©Ü
+[](cÚ¡ 
+	gTKey
+& 
+	gkey
+) const {
+
+33 ià(
+	g_v¬ŸÁ
+ =ð
+Œue
+)
+
+34  *
+this
+;
+
+36  
+Fž‹r
+(
+_v¬ŸÁ
+[
+key
+]);
+
+39 
+	g´iv©e
+:
+
+40 
+V¬ŸÁCÚ¡Ref
+ 
+_v¬ŸÁ
+;
+
+43 
+	sAÎowAÎFž‹r
+ {
+
+44 
+boÞ
+ 
+®low
+() const {
+
+45  
+	gŒue
+;
+
+48 
+boÞ
+ 
+®lowA¼ay
+() const {
+
+49  
+	gŒue
+;
+
+52 
+boÞ
+ 
+®lowObjeù
+() const {
+
+53  
+	gŒue
+;
+
+56 
+boÞ
+ 
+®lowV®ue
+() const {
+
+57  
+	gŒue
+;
+
+60 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTKey
+>
+
+61 
+AÎowAÎFž‹r
+ 
+	gÝ”©Ü
+[](cÚ¡ 
+	gTKey
+&) const {
+
+62  
+AÎowAÎFž‹r
+();
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cNe¡šgLim™
+ {
+
+13 
+	gpublic
+:
+
+14 
+Ne¡šgLim™
+(è: 
+_v®ue
+(
+ARDUINOJSON_DEFAULT_NESTING_LIMIT
+) {}
+
+15 
+ex¶ic™
+ 
+Ne¡šgLim™
+(
+ušt8_t
+ 
+n
+è: 
+_v®ue
+(n) {}
+
+17 
+Ne¡šgLim™
+ 
+deüem’t
+() const {
+
+18 
+ARDUINOJSON_ASSERT
+(
+_v®ue
+ > 0);
+
+19  
+Ne¡šgLim™
+(
+¡©ic_ÿ¡
+<
+ušt8_t
+>(
+_v®ue
+ - 1));
+
+22 
+boÞ
+ 
+»ached
+() const {
+
+23  
+	g_v®ue
+ == 0;
+
+26 
+	g´iv©e
+:
+
+27 
+ušt8_t
+ 
+_v®ue
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡dlib.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gEÇbË
+ = >
+
+15 
+	sR—d”
+ {
+
+16 
+public
+:
+
+17 
+R—d”
+(
+TSourû
+& 
+sourû
+è: 
+_sourû
+(&source) {}
+
+19 
+»ad
+() {
+
+20  
+_sourû
+->
+»ad
+();
+
+23 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+24  
+	g_sourû
+->
+»adBy‹s
+(
+bufãr
+, 
+Ëngth
+);
+
+27 
+	g´iv©e
+:
+
+28 
+TSourû
+* 
+_sourû
+;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gEÇbË
+ = >
+
+32 
+	sBoundedR—d”
+ {
+
+38 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/I‹¿tÜR—d”.hµ
+>
+
+39 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/RamR—d”.hµ
+>
+
+41 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STREAM
+
+
+42 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/ArdušoSŒ—mR—d”.hµ
+>
+
+45 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+46 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/ArdušoSŒšgR—d”.hµ
+>
+
+49 #ià
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+50 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/FÏshR—d”.hµ
+>
+
+53 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+54 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”s/StdSŒ—mR—d”.hµ
+>
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<SŒ—m.h
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+12 
+	gR—d”
+<
+	gTSourû
+,
+
+13 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+<
+	gSŒ—m
+, 
+	gTSourû
+>::
+v®ue
+>::
+ty³
+> {
+
+14 
+public
+:
+
+15 
+ex¶ic™
+ 
+R—d”
+(
+SŒ—m
+& 
+¡»am
+è: 
+_¡»am
+(&stream) {}
+
+17 
+»ad
+() {
+
+19 
+c
+;
+
+20  
+	g_¡»am
+->
+»adBy‹s
+(&
+c
+, 1è? 
+	g¡©ic_ÿ¡
+<>(
+	gc
+) : -1;
+
+23 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+24  
+	g_¡»am
+->
+»adBy‹s
+(
+bufãr
+, 
+Ëngth
+);
+
+27 
+	g´iv©e
+:
+
+28 
+SŒ—m
+* 
+_¡»am
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+10 
+	gR—d”
+<
+	gTSourû
+,
+
+11 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+< ::
+SŒšg
+, 
+	gTSourû
+>::
+v®ue
+>::
+ty³
+>
+
+12 : 
+BoundedR—d”
+<const *> {
+
+13 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ ::
+SŒšg
+& 
+s
+)
+
+14 : 
+BoundedR—d”
+<cÚ¡ *>(
+s
+.
+c_¡r
+(), 
+	gs
+.
+Ëngth
+()) {}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <>
+
+10 
+	gR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*, > {
+
+11 cÚ¡ * 
+	g_±r
+;
+
+13 
+	gpublic
+:
+
+14 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+±r
+)
+
+15 : 
+_±r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+±r
+)) {}
+
+17 
+»ad
+() {
+
+18  
+pgm_»ad_by‹
+(
+_±r
+++);
+
+21 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+22 
+memýy_P
+(
+bufãr
+, 
+_±r
+, 
+Ëngth
+);
+
+23 
+	g_±r
+ +ð
+Ëngth
+;
+
+24  
+	gËngth
+;
+
+28 
+	g‹m¶©e
+ <>
+
+29 
+	gBoundedR—d”
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*, > {
+
+30 cÚ¡ * 
+	g_±r
+;
+
+31 cÚ¡ * 
+	g_’d
+;
+
+33 
+	gpublic
+:
+
+34 
+ex¶ic™
+ 
+BoundedR—d”
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+±r
+, 
+size_t
+ 
+size
+)
+
+35 : 
+_±r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+±r
+)), 
+_’d
+(_±¸+ 
+size
+) {}
+
+37 
+»ad
+() {
+
+38 ià(
+	g_±r
+ < 
+	g_’d
+)
+
+39  
+pgm_»ad_by‹
+(
+_±r
+++);
+
+44 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+45 
+size_t
+ 
+	gavažabË
+ = 
+¡©ic_ÿ¡
+<size_t>(
+_’d
+ - 
+_±r
+);
+
+46 ià(
+	gavažabË
+ < 
+	gËngth
+)
+
+47 
+	gËngth
+ = 
+avažabË
+;
+
+48 
+memýy_P
+(
+bufãr
+, 
+_±r
+, 
+Ëngth
+);
+
+49 
+	g_±r
+ +ð
+Ëngth
+;
+
+50  
+	gËngth
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTI‹¿tÜ
+>
+
+10 þas 
+	cI‹¿tÜR—d”
+ {
+
+11 
+TI‹¿tÜ
+ 
+	g_±r
+, 
+	g_’d
+;
+
+13 
+	gpublic
+:
+
+14 
+ex¶ic™
+ 
+I‹¿tÜR—d”
+(
+TI‹¿tÜ
+ 
+begš
+, TI‹¿tÜ 
+’d
+)
+
+15 : 
+_±r
+(
+begš
+), 
+_’d
+(
+’d
+) {}
+
+17 
+»ad
+() {
+
+18 ià(
+	g_±r
+ < 
+	g_’d
+)
+
+19  
+	g¡©ic_ÿ¡
+<>(*
+	g_±r
+++);
+
+24 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+25 
+size_t
+ 
+	gi
+ = 0;
+
+26 
+	gi
+ < 
+	gËngth
+ && 
+	g_±r
+ < 
+	g_’d
+è
+	gbufãr
+[
+i
+++] = *
+_±r
+++;
+
+27  
+	gi
+;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+32 
+	svoid_
+ {
+
+33 
+	tty³
+;
+
+36 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+37 
+	gR—d”
+<
+	gTSourû
+, 
+ty³Çme
+ 
+	gvoid_
+<ty³Çm�TSourû::
+cÚ¡_™”©Ü
+>::
+ty³
+>
+
+38 : 
+I‹¿tÜR—d”
+<
+ty³Çme
+ 
+TSourû
+::
+cÚ¡_™”©Ü
+> {
+
+39 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ 
+TSourû
+& 
+sourû
+)
+
+40 : 
+I‹¿tÜR—d”
+<
+ty³Çme
+ 
+TSourû
+::
+cÚ¡_™”©Ü
+>(
+sourû
+.
+begš
+(),
+
+41 
+	gsourû
+.
+’d
+()) {}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	sIsCh¬OrVoid
+ {
+
+13 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ =
+
+14 
+is_§me
+<
+T
+, >::
+v®ue
+ || is_same<T, >::value ||
+
+15 
+is_§me
+<
+T
+, >::
+v®ue
+ || is_same<T, signed >::value;
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+19 
+	gIsCh¬OrVoid
+<cÚ¡ 
+	gT
+> : 
+IsCh¬OrVoid
+<
+T
+> {};
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+22 
+	gR—d”
+<
+	gTSourû
+*,
+
+23 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsCh¬OrVoid
+<
+	gTSourû
+>::
+v®ue
+>::
+ty³
+> {
+
+24 cÚ¡ * 
+_±r
+;
+
+26 
+	gpublic
+:
+
+27 
+ex¶ic™
+ 
+R—d”
+(cÚ¡ * 
+±r
+)
+
+28 : 
+_±r
+(
+±r
+ ? 
+»š‹½»t_ÿ¡
+<const *>(ptr) : "") {}
+
+30 
+»ad
+() {
+
+31  
+¡©ic_ÿ¡
+<>(*
+_±r
+++);
+
+34 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+35 
+size_t
+ 
+	gi
+ = 0; i < 
+	gËngth
+; i++è
+	gbufãr
+[
+i
+] = *
+_±r
+++;
+
+36  
+	gËngth
+;
+
+40 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+41 
+	gBoundedR—d”
+<
+	gTSourû
+*,
+
+42 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsCh¬OrVoid
+<
+	gTSourû
+>::
+v®ue
+>::
+ty³
+>
+
+43 : 
+public
+ 
+I‹¿tÜR—d”
+<const *> {
+
+44 
+public
+:
+
+45 
+ex¶ic™
+ 
+BoundedR—d”
+(cÚ¡ * 
+±r
+, 
+size_t
+ 
+Ën
+)
+
+46 : 
+I‹¿tÜR—d”
+<cÚ¡ *>(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+±r
+),
+
+47 
+	g»š‹½»t_ÿ¡
+<cÚ¡ *>(
+	g±r
+è+ 
+	gËn
+) {}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<i¡»am
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+12 
+	gR—d”
+<
+	gTSourû
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+
+13 
+	gis_ba£_of
+<
+	g¡d
+::
+i¡»am
+, 
+	gTSourû
+>::
+v®ue
+>::
+ty³
+> {
+
+14 
+public
+:
+
+15 
+ex¶ic™
+ 
+R—d”
+(
+¡d
+::
+i¡»am
+& 
+¡»am
+è: 
+_¡»am
+(&stream) {}
+
+17 
+»ad
+() {
+
+18  
+_¡»am
+->
+g‘
+();
+
+21 
+size_t
+ 
+»adBy‹s
+(* 
+bufãr
+, size_ˆ
+Ëngth
+) {
+
+22 
+	g_¡»am
+->
+»ad
+(
+bufãr
+, 
+¡©ic_ÿ¡
+<
+¡d
+::
+¡»amsize
+>(
+Ëngth
+));
+
+23  
+	g¡©ic_ÿ¡
+<
+	gsize_t
+>(
+	g_¡»am
+->
+gcouÁ
+());
+
+26 
+	g´iv©e
+:
+
+27 
+¡d
+::
+i¡»am
+* 
+_¡»am
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/De£rŸliz©iÚE¼Ü.hµ
+>
+
+8 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/Fž‹r.hµ
+>
+
+9 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/Ne¡šgLim™.hµ
+>
+
+10 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/R—d”.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgStÜage/SŒšgStÜage.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTR—d”
+,
+
+16 
+ty³Çme
+ 
+	gTWr™”
+>
+
+17 
+	gTDe£rŸliz”
+<
+	gTR—d”
+, 
+	gTWr™”
+> 
+makeDe£rŸliz”
+(
+MemÜyPoÞ
+ &
+poÞ
+,
+
+18 
+TR—d”
+ 
+»ad”
+,
+
+19 
+TWr™”
+ 
+wr™”
+) {
+
+20  
+	gTDe£rŸliz”
+<
+	gTR—d”
+, 
+	gTWr™”
+>(
+	gpoÞ
+, 
+	g»ad”
+, 
+	gwr™”
+);
+
+28 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTSŒšg
+,
+
+29 
+ty³Çme
+ 
+	gTFž‹r
+>
+
+30 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_¬¿y
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gDe£rŸliz©iÚE¼Ü
+>::
+ty³
+
+
+31 
+de£rŸlize
+(
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TSŒšg
+ &
+šput
+, 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+32 
+TFž‹r
+ 
+fž‹r
+) {
+
+33 
+	gR—d”
+<
+	gTSŒšg
+> 
+»ad”
+(
+šput
+);
+
+34 
+	gdoc
+.
+þ—r
+();
+
+35  
+	gmakeDe£rŸliz”
+<
+	gTDe£rŸliz”
+>(
+
+36 
+	gdoc
+.
+memÜyPoÞ
+(), 
+	g»ad”
+,
+
+37 
+makeSŒšgStÜage
+(
+doc
+.
+memÜyPoÞ
+(), 
+šput
+))
+
+38 .
+·r£
+(
+doc
+.
+d©a
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+44 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTCh¬
+,
+
+45 
+ty³Çme
+ 
+	gTFž‹r
+>
+
+46 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlize
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+47 
+size_t
+ 
+šputSize
+, 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+,
+
+48 
+TFž‹r
+ 
+fž‹r
+) {
+
+49 
+	gBoundedR—d”
+<
+	gTCh¬
+ *> 
+»ad”
+(
+šput
+, 
+šputSize
+);
+
+50 
+	gdoc
+.
+þ—r
+();
+
+51  
+	gmakeDe£rŸliz”
+<
+	gTDe£rŸliz”
+>(
+
+52 
+	gdoc
+.
+memÜyPoÞ
+(), 
+	g»ad”
+,
+
+53 
+makeSŒšgStÜage
+(
+doc
+.
+memÜyPoÞ
+(), 
+šput
+))
+
+54 .
+·r£
+(
+doc
+.
+d©a
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+59 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+,�y³Çme> 
+þass
+ 
+	gTDe£rŸliz”
+, 
+ty³Çme
+ 
+	gTSŒ—m
+,
+
+60 
+ty³Çme
+ 
+	gTFž‹r
+>
+
+61 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlize
+(
+JsÚDocum’t
+ &
+doc
+, 
+TSŒ—m
+ &
+šput
+,
+
+62 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+TFž‹r
+ 
+fž‹r
+) {
+
+63 
+	gR—d”
+<
+	gTSŒ—m
+> 
+»ad”
+(
+šput
+);
+
+64 
+	gdoc
+.
+þ—r
+();
+
+65  
+	gmakeDe£rŸliz”
+<
+	gTDe£rŸliz”
+>(
+
+66 
+	gdoc
+.
+memÜyPoÞ
+(), 
+	g»ad”
+,
+
+67 
+makeSŒšgStÜage
+(
+doc
+.
+memÜyPoÞ
+(), 
+šput
+))
+
+68 .
+·r£
+(
+doc
+.
+d©a
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Docum’t/JsÚDocum’t.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAÎoÿtÜ
+>
+
+14 þas 
+	cAÎoÿtÜOwÃr
+ {
+
+15 
+	gpublic
+:
+
+16 
+AÎoÿtÜOwÃr
+() {}
+
+17 
+AÎoÿtÜOwÃr
+(cÚ¡ AÎoÿtÜOwÃr& 
+¤c
+è: 
+_®loÿtÜ
+(src._allocator) {}
+
+18 
+AÎoÿtÜOwÃr
+(
+TAÎoÿtÜ
+ 
+a
+è: 
+_®loÿtÜ
+(a) {}
+
+20 * 
+®loÿ‹
+(
+size_t
+ 
+size
+) {
+
+21  
+_®loÿtÜ
+.
+®loÿ‹
+(
+size
+);
+
+24 
+d—Îoÿ‹
+(* 
+±r
+) {
+
+25 ià(
+	g±r
+)
+
+26 
+	g_®loÿtÜ
+.
+d—Îoÿ‹
+(
+±r
+);
+
+29 * 
+»®loÿ‹
+(* 
+±r
+, 
+size_t
+ 
+Ãw_size
+) {
+
+30  
+	g_®loÿtÜ
+.
+»®loÿ‹
+(
+±r
+, 
+Ãw_size
+);
+
+33 
+	gTAÎoÿtÜ
+& 
+®loÿtÜ
+() {
+
+34  
+	g_®loÿtÜ
+;
+
+37 
+	g´iv©e
+:
+
+38 
+TAÎoÿtÜ
+ 
+_®loÿtÜ
+;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAÎoÿtÜ
+>
+
+42 
+þass
+ 
+	gBasicJsÚDocum’t
+ : 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>, 
+public
+ 
+	gJsÚDocum’t
+ {
+
+43 
+	gpublic
+:
+
+44 
+ex¶ic™
+ 
+BasicJsÚDocum’t
+(
+size_t
+ 
+ÿ·
+, 
+TAÎoÿtÜ
+ 
+®loc
+ = TAllocator())
+
+45 : 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>(
+®loc
+), 
+JsÚDocum’t
+(
+®locPoÞ
+(
+ÿ·
+)) {}
+
+48 
+BasicJsÚDocum’t
+(cÚ¡ BasicJsÚDocum’t& 
+¤c
+)
+
+49 : 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>(
+¤c
+), 
+JsÚDocum’t
+() {
+
+50 
+cÝyAssignFrom
+(
+¤c
+);
+
+54 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+55 
+BasicJsÚDocum’t
+(BasicJsÚDocum’t&& 
+¤c
+è: 
+AÎoÿtÜOwÃr
+<
+TAÎoÿtÜ
+>(src) {
+
+56 
+moveAssignFrom
+(
+¤c
+);
+
+60 
+BasicJsÚDocum’t
+(cÚ¡ 
+JsÚDocum’t
+& 
+¤c
+) {
+
+61 
+cÝyAssignFrom
+(
+¤c
+);
+
+65 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+66 
+BasicJsÚDocum’t
+(
+
+67 cÚ¡ 
+T
+& 
+¤c
+,
+
+68 
+ty³Çme
+ 
+’abË_if
+<
+
+69 
+is_§me
+<
+T
+, 
+V¬ŸÁRef
+>::
+v®ue
+ || is_§me<T, 
+V¬ŸÁCÚ¡Ref
+>::value ||
+
+70 
+is_§me
+<
+T
+, 
+A¼ayRef
+>::
+v®ue
+ || is_§me<T, 
+A¼ayCÚ¡Ref
+>::value ||
+
+71 
+is_§me
+<
+T
+, 
+ObjeùRef
+>::
+v®ue
+ ||
+
+72 
+is_§me
+<
+T
+, 
+ObjeùCÚ¡Ref
+>::
+v®ue
+>::
+ty³
+* = 0)
+
+73 : 
+JsÚDocum’t
+(
+®locPoÞ
+(
+¤c
+.
+memÜyU§ge
+())) {
+
+74 
+£t
+(
+¤c
+);
+
+78 
+BasicJsÚDocum’t
+(
+V¬ŸÁRef
+ 
+¤c
+)
+
+79 : 
+JsÚDocum’t
+(
+®locPoÞ
+(
+¤c
+.
+memÜyU§ge
+())) {
+
+80 
+£t
+(
+¤c
+);
+
+83 ~
+BasicJsÚDocum’t
+() {
+
+84 
+ä“PoÞ
+();
+
+87 
+	gBasicJsÚDocum’t
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+BasicJsÚDocum’t
+& 
+¤c
+) {
+
+88 
+cÝyAssignFrom
+(
+¤c
+);
+
+89  *
+	gthis
+;
+
+92 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+93 
+	gBasicJsÚDocum’t
+& 
+	gÝ”©Ü
+=(
+BasicJsÚDocum’t
+&& 
+¤c
+) {
+
+94 
+moveAssignFrom
+(
+¤c
+);
+
+95  *
+	gthis
+;
+
+99 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+100 
+	gBasicJsÚDocum’t
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+T
+& 
+¤c
+) {
+
+101 
+»®locPoÞIfTooSm®l
+(
+¤c
+.
+memÜyU§ge
+());
+
+102 
+£t
+(
+¤c
+);
+
+103  *
+	gthis
+;
+
+106 
+shrškToF™
+() {
+
+107 
+±rdiff_t
+ 
+	gby‹s_»þaimed
+ = 
+_poÞ
+.
+squash
+();
+
+108 ià(
+	gby‹s_»þaimed
+ == 0)
+
+111 * 
+	gÞd_±r
+ = 
+_poÞ
+.
+bufãr
+();
+
+112 * 
+	gÃw_±r
+ = 
+this
+->
+»®loÿ‹
+(
+Þd_±r
+, 
+_poÞ
+.
+ÿ·c™y
+());
+
+114 
+±rdiff_t
+ 
+	g±r_off£t
+ =
+
+115 
+¡©ic_ÿ¡
+<*>(
+Ãw_±r
+è- s�tic_ÿ¡<*>(
+Þd_±r
+);
+
+117 
+	g_poÞ
+.
+movePoš‹rs
+(
+±r_off£t
+);
+
+118 
+	g_d©a
+.
+movePoš‹rs
+(
+±r_off£t
+,…Œ_off£ˆ- 
+by‹s_»þaimed
+);
+
+121 
+boÞ
+ 
+g¬bageCÞËù
+() {
+
+123 
+BasicJsÚDocum’t
+ 
+tmp
+(*
+this
+);
+
+124 ià(!
+	gtmp
+.
+ÿ·c™y
+())
+
+125  
+	gçl£
+;
+
+126 
+	gtmp
+.
+£t
+(*
+this
+);
+
+127 
+moveAssignFrom
+(
+tmp
+);
+
+128  
+	gŒue
+;
+
+131 
+usšg
+ 
+	gAÎoÿtÜOwÃr
+<
+	gTAÎoÿtÜ
+>::
+®loÿtÜ
+;
+
+133 
+	g´iv©e
+:
+
+134 
+MemÜyPoÞ
+ 
+®locPoÞ
+(
+size_t
+ 
+»quœedSize
+) {
+
+135 
+size_t
+ 
+ÿ·
+ = 
+addPaddšg
+(
+»quœedSize
+);
+
+136  
+MemÜyPoÞ
+(
+»š‹½»t_ÿ¡
+<*>(
+this
+->
+®loÿ‹
+(
+ÿ·
+)), capa);
+
+139 
+»®locPoÞIfTooSm®l
+(
+size_t
+ 
+»quœedSize
+) {
+
+140 ià(
+	g»quœedSize
+ <ð
+ÿ·c™y
+())
+
+142 
+ä“PoÞ
+();
+
+143 
+»¶aûPoÞ
+(
+®locPoÞ
+(
+addPaddšg
+(
+»quœedSize
+)));
+
+146 
+ä“PoÞ
+() {
+
+147 
+	gthis
+->
+d—Îoÿ‹
+(
+memÜyPoÞ
+().
+bufãr
+());
+
+150 
+cÝyAssignFrom
+(cÚ¡ 
+JsÚDocum’t
+& 
+¤c
+) {
+
+151 
+»®locPoÞIfTooSm®l
+(
+¤c
+.
+ÿ·c™y
+());
+
+152 
+£t
+(
+¤c
+);
+
+155 
+moveAssignFrom
+(
+BasicJsÚDocum’t
+& 
+¤c
+) {
+
+156 
+ä“PoÞ
+();
+
+157 
+	g_d©a
+ = 
+¤c
+.
+_d©a
+;
+
+158 
+	g_poÞ
+ = 
+¤c
+.
+_poÞ
+;
+
+159 
+	g¤c
+.
+	g_d©a
+.
+£tNuÎ
+();
+
+160 
+	g¤c
+.
+	g_poÞ
+ = 
+MemÜyPoÞ
+(0, 0);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Docum’t/BasicJsÚDocum’t.hµ
+>
+
+9 
+	~<¡dlib.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	sDeçuÉAÎoÿtÜ
+ {
+
+14 * 
+®loÿ‹
+(
+size_t
+ 
+size
+) {
+
+15  
+m®loc
+(
+size
+);
+
+18 
+d—Îoÿ‹
+(* 
+±r
+) {
+
+19 
+ä“
+(
+±r
+);
+
+22 * 
+»®loÿ‹
+(* 
+±r
+, 
+size_t
+ 
+Ãw_size
+) {
+
+23  
+»®loc
+(
+±r
+, 
+Ãw_size
+);
+
+27 
+	gBasicJsÚDocum’t
+<
+	tDeçuÉAÎoÿtÜ
+> 
+	tDyÇmicJsÚDocum’t
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/EËm’tProxy.hµ
+>
+
+8 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/Objeù/Memb”Proxy.hµ
+>
+
+10 
+	~<ArdušoJsÚ/Objeù/ObjeùRef.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+12 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁTo.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 þas 
+	cJsÚDocum’t
+ : 
+public
+ 
+Vis™abË
+ {
+
+17 
+public
+:
+
+18 
+‹m¶©e
+ <
+ty³Çme
+ 
+Vis™Ü
+>
+
+19 
+acû±
+(
+Vis™Ü
+& 
+vis™Ü
+) const {
+
+20  
+g‘V¬ŸÁ
+().
+acû±
+(
+vis™Ü
+);
+
+23 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+24 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gT
+>::
+ty³
+ 
+as
+() {
+
+25  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+29 
+ty³Çme
+ 
+	gV¬ŸÁCÚ¡As
+<
+	gT
+>::
+ty³
+ 
+as
+() const {
+
+30  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+33 
+þ—r
+() {
+
+34 
+	g_poÞ
+.
+þ—r
+();
+
+35 
+	g_d©a
+.
+£tNuÎ
+();
+
+38 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+39 
+boÞ
+ 
+is
+() const {
+
+40  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+	gis
+<
+	gT
+>();
+
+43 
+boÞ
+ 
+isNuÎ
+() const {
+
+44  
+g‘V¬ŸÁ
+().
+isNuÎ
+();
+
+47 
+size_t
+ 
+memÜyU§ge
+() const {
+
+48  
+	g_poÞ
+.
+size
+();
+
+51 
+size_t
+ 
+Ã¡šg
+() const {
+
+52  
+	g_d©a
+.
+Ã¡šg
+();
+
+55 
+size_t
+ 
+ÿ·c™y
+() const {
+
+56  
+	g_poÞ
+.
+ÿ·c™y
+();
+
+59 
+size_t
+ 
+size
+() const {
+
+60  
+	g_d©a
+.
+size
+();
+
+63 
+boÞ
+ 
+£t
+(cÚ¡ 
+JsÚDocum’t
+& 
+¤c
+) {
+
+64  
+	gto
+<
+	gV¬ŸÁRef
+>().
+£t
+(
+¤c
+.
+as
+<
+V¬ŸÁRef
+>());
+
+67 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+68 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_ba£_of
+<
+	gJsÚDocum’t
+, 
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+£t
+(
+
+69 cÚ¡ 
+T
+& 
+¤c
+) {
+
+70  
+to
+<
+V¬ŸÁRef
+>().
+£t
+(
+¤c
+);
+
+73 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+74 
+ty³Çme
+ 
+	gV¬ŸÁTo
+<
+	gT
+>::
+ty³
+ 
+to
+() {
+
+75 
+þ—r
+();
+
+76  
+g‘V¬ŸÁ
+().
+‹m¶©e
+ 
+	gto
+<
+	gT
+>();
+
+80 
+	gMemÜyPoÞ
+& 
+memÜyPoÞ
+() {
+
+81  
+	g_poÞ
+;
+
+84 
+	gV¬ŸÁD©a
+& 
+d©a
+() {
+
+85  
+	g_d©a
+;
+
+88 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+() {
+
+89  
+addEËm’t
+().
+	gto
+<
+	gA¼ayRef
+>();
+
+95 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+96 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(
+TCh¬
+* 
+key
+) {
+
+97  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gA¼ayRef
+>();
+
+102 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+103 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+104  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gA¼ayRef
+>();
+
+107 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+() {
+
+108  
+addEËm’t
+().
+	gto
+<
+	gObjeùRef
+>();
+
+114 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+115 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(
+TCh¬
+* 
+key
+) {
+
+116  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gObjeùRef
+>();
+
+121 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+122 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+123  
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+	gto
+<
+	gObjeùRef
+>();
+
+129 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+130 
+boÞ
+ 
+cÚ�šsKey
+(
+TCh¬
+* 
+key
+) const {
+
+131  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+136 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+137 
+boÞ
+ 
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+138  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+143 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+144 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+,
+
+145 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, 
+	gTSŒšg
+> >::
+ty³
+
+
+146 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+147  
+Memb”Proxy
+<
+JsÚDocum’t
+&, 
+	gTSŒšg
+>(*
+	gthis
+, 
+	gkey
+);
+
+153 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+154 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+,
+
+155 
+	gMemb”Proxy
+<
+	gJsÚDocum’t
+&, 
+	gTCh¬
+*> >::
+ty³
+
+
+156 
+Ý”©Ü
+[](
+TCh¬
+* 
+key
+) {
+
+157  
+Memb”Proxy
+<
+JsÚDocum’t
+&, 
+	gTCh¬
+*>(*
+	gthis
+, 
+	gkey
+);
+
+162 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+163 
+FORCE_INLINE
+
+
+164 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+165 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+166  
+g‘Memb”
+(
+key
+);
+
+172 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+173 
+FORCE_INLINE
+
+
+174 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+175 
+Ý”©Ü
+[](
+TCh¬
+* 
+key
+) const {
+
+176  
+g‘Memb”
+(
+key
+);
+
+179 
+FORCE_INLINE
+ 
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&> 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) {
+
+180  
+	gEËm’tProxy
+<
+	gJsÚDocum’t
+&>(*
+	gthis
+, 
+	gšdex
+);
+
+183 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) const {
+
+184  
+g‘EËm’t
+(
+šdex
+);
+
+187 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) {
+
+188  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘EËm’t
+(
+šdex
+));
+
+191 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+192  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+.
+g‘EËm’t
+(
+šdex
+));
+
+195 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) {
+
+196  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘OrAddEËm’t
+(
+šdex
+, &_pool));
+
+202 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+203 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) const {
+
+204  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+209 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+210 
+FORCE_INLINE
+
+
+211 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+212 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+213  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+219 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+220 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) {
+
+221  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+226 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+227 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁRef
+>::
+ty³
+
+
+228 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+229  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)));
+
+235 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+236 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+* 
+key
+) {
+
+237  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), &_pool));
+
+242 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+243 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+244  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), &_pool));
+
+247 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+addEËm’t
+() {
+
+248  
+V¬ŸÁRef
+(&
+_poÞ
+, 
+_d©a
+.
+addEËm’t
+(&_pool));
+
+251 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+252 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(cÚ¡ 
+TV®ue
+& 
+v®ue
+) {
+
+253  
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+259 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+260 
+FORCE_INLINE
+ 
+boÞ
+ 
+add
+(
+TCh¬
+* 
+v®ue
+) {
+
+261  
+addEËm’t
+().
+£t
+(
+v®ue
+);
+
+264 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) {
+
+265 
+	g_d©a
+.
+»move
+(
+šdex
+);
+
+270 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+271 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+272 
+TCh¬
+* 
+key
+) {
+
+273 
+_d©a
+.
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+277 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+278 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+279 cÚ¡ 
+TSŒšg
+& 
+key
+) {
+
+280 
+_d©a
+.
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+283 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+284  
+V¬ŸÁCÚ¡Ref
+(&
+_d©a
+);
+
+287 
+boÞ
+ 
+	gÝ”©Ü
+==(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+288  
+g‘V¬ŸÁ
+(è=ð
+rhs
+;
+
+291 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+292  
+g‘V¬ŸÁ
+(è!ð
+rhs
+;
+
+295 
+	g´Ùeùed
+:
+
+296 
+JsÚDocum’t
+(è: 
+_poÞ
+(0, 0) {
+
+297 
+	g_d©a
+.
+£tNuÎ
+();
+
+300 
+JsÚDocum’t
+(
+MemÜyPoÞ
+ 
+poÞ
+è: 
+_poÞ
+(pool) {
+
+301 
+_d©a
+.
+£tNuÎ
+();
+
+304 
+JsÚDocum’t
+(* 
+buf
+, 
+size_t
+ 
+ÿ·
+è: 
+_poÞ
+(buf, capa) {
+
+305 
+	g_d©a
+.
+£tNuÎ
+();
+
+308 
+»¶aûPoÞ
+(
+MemÜyPoÞ
+ 
+poÞ
+) {
+
+309 
+	g_poÞ
+ = 
+poÞ
+;
+
+312 
+V¬ŸÁRef
+ 
+g‘V¬ŸÁ
+() {
+
+313  
+V¬ŸÁRef
+(&
+_poÞ
+, &
+_d©a
+);
+
+316 
+V¬ŸÁCÚ¡Ref
+ 
+g‘V¬ŸÁ
+() const {
+
+317  
+V¬ŸÁCÚ¡Ref
+(&
+_d©a
+);
+
+320 
+MemÜyPoÞ
+ 
+	g_poÞ
+;
+
+321 
+V¬ŸÁD©a
+ 
+	g_d©a
+;
+
+323 
+	g´iv©e
+:
+
+324 
+JsÚDocum’t
+(const JsonDocument&);
+
+325 
+	gJsÚDocum’t
+& 
+	gÝ”©Ü
+=(cÚ¡ 
+JsÚDocum’t
+&);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Docum’t/JsÚDocum’t.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+size_t
+ 
+	gdesœedC­ac™y
+>
+
+12 þas 
+	cS�ticJsÚDocum’t
+ : 
+public
+ 
+JsÚDocum’t
+ {
+
+13 cÚ¡ 
+size_t
+ 
+_ÿ·c™y
+ =
+
+14 
+AddPaddšg
+<
+Max
+<1, 
+	gdesœedC­ac™y
+>::
+v®ue
+>::value;
+
+16 
+	gpublic
+:
+
+17 
+S�ticJsÚDocum’t
+(è: 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {}
+
+19 
+S�ticJsÚDocum’t
+(cÚ¡ S�ticJsÚDocum’t& 
+¤c
+)
+
+20 : 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {
+
+21 
+£t
+(
+¤c
+);
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+25 
+S�ticJsÚDocum’t
+(cÚ¡ 
+T
+& 
+¤c
+,
+
+26 
+ty³Çme
+ 
+’abË_if
+<
+IsVis™abË
+<
+T
+>::
+v®ue
+>::
+ty³
+* = 0)
+
+27 : 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {
+
+28 
+£t
+(
+¤c
+);
+
+32 
+S�ticJsÚDocum’t
+(
+V¬ŸÁRef
+ 
+¤c
+è: 
+JsÚDocum’t
+(
+_bufãr
+, 
+_ÿ·c™y
+) {
+
+33 
+£t
+(
+¤c
+);
+
+36 
+S�ticJsÚDocum’t
+ 
+	gÝ”©Ü
+=(cÚ¡ S�ticJsÚDocum’t& 
+¤c
+) {
+
+37 
+£t
+(
+¤c
+);
+
+38  *
+	gthis
+;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+42 
+S�ticJsÚDocum’t
+ 
+	gÝ”©Ü
+=(cÚ¡ 
+T
+& 
+¤c
+) {
+
+43 
+£t
+(
+¤c
+);
+
+44  *
+	gthis
+;
+
+47 
+g¬bageCÞËù
+() {
+
+48 
+S�ticJsÚDocum’t
+ 
+tmp
+(*
+this
+);
+
+49 
+£t
+(
+tmp
+);
+
+52 
+	g´iv©e
+:
+
+53 
+_bufãr
+[
+_ÿ·c™y
+];
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cEsÿ³Sequ’û
+ {
+
+12 
+	gpublic
+:
+
+14 
+esÿ³Ch¬
+(
+c
+) {
+
+15 cÚ¡ *
+p
+ = 
+esÿ³TabË
+(
+Œue
+);
+
+16 
+	gp
+[0] &&…[1] !ð
+c
+) {
+
+17 
+p
+ += 2;
+
+19  
+	gp
+[0];
+
+23 
+uÃsÿ³Ch¬
+(
+c
+) {
+
+24 cÚ¡ *
+	gp
+ = 
+esÿ³TabË
+(
+çl£
+);
+
+26 ià(
+	gp
+[0] == '\0')
+
+28 ià(
+	gp
+[0] =ð
+c
+)
+
+29  
+p
+[1];
+
+30 
+	gp
+ += 2;
+
+34 
+	g´iv©e
+:
+
+35 cÚ¡ *
+esÿ³TabË
+(
+boÞ
+ 
+exþudeSÞidus
+) {
+
+36  &"//\"\"\\\\b\bf\â\Ä\¹\t"[
+exþudeSÞidus
+ ? 2 : 0];
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/de£rŸlize.hµ
+>
+
+8 
+	~<ArdušoJsÚ/JsÚ/Esÿ³Sequ’û.hµ
+>
+
+9 
+	~<ArdušoJsÚ/JsÚ/L©ch.hµ
+>
+
+10 
+	~<ArdušoJsÚ/JsÚ/Utf16.hµ
+>
+
+11 
+	~<ArdušoJsÚ/JsÚ/Utf8.hµ
+>
+
+12 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+13 
+	~<ArdušoJsÚ/Numb”s/·r£Numb”.hµ
+>
+
+14 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+15 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+16 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+18 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTR—d”
+,�y³Çm�
+	gTSŒšgStÜage
+>
+
+21 þas 
+	cJsÚDe£rŸliz”
+ {
+
+22 
+ty³Çme
+ 
+	t»move_»ã»nû
+<
+	tTSŒšgStÜage
+>::
+	tty³
+::
+	tSŒšgBužd”
+
+
+23 
+	tSŒšgBužd”
+;
+
+25 
+	sSŒšgOrE¼Ü
+ {
+
+26 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+;
+
+27 cÚ¡ *
+	gv®ue
+;
+
+29 
+SŒšgOrE¼Ü
+(
+De£rŸliz©iÚE¼Ü
+ 
+e
+è: 
+”r
+(e) {}
+
+30 
+SŒšgOrE¼Ü
+(
+De£rŸliz©iÚE¼Ü
+::
+Code
+ 
+c
+è: 
+”r
+(c) {}
+
+31 
+SŒšgOrE¼Ü
+(cÚ¡ *
+s
+è: 
+”r
+(
+De£rŸliz©iÚE¼Ü
+::
+Ok
+), 
+v®ue
+(s) {}
+
+34 
+	gpublic
+:
+
+35 
+JsÚDe£rŸliz”
+(
+MemÜyPoÞ
+ &
+poÞ
+, 
+TR—d”
+ 
+»ad”
+,
+
+36 
+TSŒšgStÜage
+ 
+¡ršgStÜage
+)
+
+37 : 
+_poÞ
+(&
+poÞ
+), 
+_¡ršgStÜage
+(
+¡ršgStÜage
+), 
+_Ïtch
+(
+»ad”
+) {}
+
+39 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+40 
+De£rŸliz©iÚE¼Ü
+ 
+·r£
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+41 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+42 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+·r£V¬ŸÁ
+(
+v¬ŸÁ
+, 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+44 ià(!
+	g”r
+ && 
+	g_Ïtch
+.
+Ï¡
+(è!ð0 && !
+v¬ŸÁ
+.
+isEnþo£d
+()) {
+
+46 
+”r
+ = 
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+49  
+	g”r
+;
+
+52 
+	g´iv©e
+:
+
+53 
+JsÚDe£rŸliz”
+ &
+Ý”©Ü
+=(const JsonDeserializer &);
+
+55 
+cu¼’t
+() {
+
+56  
+	g_Ïtch
+.
+cu¼’t
+();
+
+59 
+move
+() {
+
+60 
+	g_Ïtch
+.
+þ—r
+();
+
+63 
+boÞ
+ 
+—t
+(
+ch¬ToSk�
+) {
+
+64 ià(
+cu¼’t
+(è!ð
+ch¬ToSk�
+)
+
+65  
+çl£
+;
+
+66 
+move
+();
+
+67  
+	gŒue
+;
+
+70 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+71 
+De£rŸliz©iÚE¼Ü
+ 
+·r£V¬ŸÁ
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+72 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+73 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+74 ià(
+	g”r
+)
+
+75  
+	g”r
+;
+
+77 
+cu¼’t
+()) {
+
+79 ià(
+fž‹r
+.
+®lowA¼ay
+())
+
+80  
+·r£A¼ay
+(
+v¬ŸÁ
+.
+toA¼ay
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+82  
+sk�A¼ay
+(
+Ã¡šgLim™
+);
+
+85 ià(
+fž‹r
+.
+®lowObjeù
+())
+
+86  
+·r£Objeù
+(
+v¬ŸÁ
+.
+toObjeù
+(), 
+fž‹r
+, 
+Ã¡šgLim™
+);
+
+88  
+sk�Objeù
+(
+Ã¡šgLim™
+);
+
+92 ià(
+fž‹r
+.
+®lowV®ue
+())
+
+93  
+·r£SŒšgV®ue
+(
+v¬ŸÁ
+);
+
+95  
+sk�SŒšg
+();
+
+98 ià(
+fž‹r
+.
+®lowV®ue
+())
+
+99  
+·r£Num”icV®ue
+(
+v¬ŸÁ
+);
+
+101  
+sk�Num”icV®ue
+();
+
+105 
+De£rŸliz©iÚE¼Ü
+ 
+sk�V¬ŸÁ
+(
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+106 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+107 ià(
+	g”r
+)
+
+108  
+	g”r
+;
+
+110 
+cu¼’t
+()) {
+
+112  
+sk�A¼ay
+(
+Ã¡šgLim™
+);
+
+115  
+sk�Objeù
+(
+Ã¡šgLim™
+);
+
+119  
+sk�SŒšg
+();
+
+122  
+sk�Num”icV®ue
+();
+
+126 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+127 
+De£rŸliz©iÚE¼Ü
+ 
+·r£A¼ay
+(
+CÞËùiÚD©a
+ &
+¬¿y
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+128 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+129 ià(
+	gÃ¡šgLim™
+.
+»ached
+())
+
+130  
+	gDe£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+133 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '[');
+
+134 
+move
+();
+
+137 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+138 ià(
+	g”r
+)
+
+139  
+	g”r
+;
+
+142 ià(
+—t
+(']'))
+
+143  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+145 
+TFž‹r
+ 
+	gmemb”Fž‹r
+ = 
+fž‹r
+[0UL];
+
+149 ià(
+	gmemb”Fž‹r
+.
+®low
+()) {
+
+151 
+V¬ŸÁD©a
+ *
+	gv®ue
+ = 
+¬¿y
+.
+addEËm’t
+(
+_poÞ
+);
+
+152 ià(!
+	gv®ue
+)
+
+153  
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+156 
+	g”r
+ = 
+·r£V¬ŸÁ
+(*
+v®ue
+, 
+memb”Fž‹r
+, 
+Ã¡šgLim™
+.
+deüem’t
+());
+
+157 ià(
+	g”r
+)
+
+158  
+	g”r
+;
+
+160 
+	g”r
+ = 
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+());
+
+161 ià(
+	g”r
+)
+
+162  
+	g”r
+;
+
+166 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+167 ià(
+	g”r
+)
+
+168  
+	g”r
+;
+
+171 ià(
+—t
+(']'))
+
+172  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+173 ià(!
+—t
+(','))
+
+174  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+178 
+De£rŸliz©iÚE¼Ü
+ 
+sk�A¼ay
+(
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+179 ià(
+	gÃ¡šgLim™
+.
+»ached
+())
+
+180  
+	gDe£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+183 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '[');
+
+184 
+move
+();
+
+189 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+());
+
+190 ià(
+	g”r
+)
+
+191  
+	g”r
+;
+
+194 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+195 ià(
+	g”r
+)
+
+196  
+	g”r
+;
+
+199 ià(
+—t
+(']'))
+
+200  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+201 ià(!
+—t
+(','))
+
+202  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+206 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFž‹r
+>
+
+207 
+De£rŸliz©iÚE¼Ü
+ 
+·r£Objeù
+(
+CÞËùiÚD©a
+ &
+objeù
+, 
+TFž‹r
+ 
+fž‹r
+,
+
+208 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+209 ià(
+	gÃ¡šgLim™
+.
+»ached
+())
+
+210  
+	gDe£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+213 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '{');
+
+214 
+move
+();
+
+217 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+218 ià(
+	g”r
+)
+
+219  
+	g”r
+;
+
+222 ià(
+—t
+('}'))
+
+223  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+228 
+SŒšgOrE¼Ü
+ 
+	gkey
+ = 
+·r£Key
+();
+
+229 
+	g”r
+ = 
+key
+.
+”r
+;
+
+230 ià(
+	g”r
+)
+
+231  
+	g”r
+;
+
+234 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+235 ià(
+	g”r
+)
+
+236  
+	g”r
+;
+
+237 ià(!
+—t
+(':'))
+
+238  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+240 
+TFž‹r
+ 
+	gmemb”Fž‹r
+ = 
+fž‹r
+[
+key
+.
+v®ue
+];
+
+242 ià(
+	gmemb”Fž‹r
+.
+®low
+()) {
+
+243 
+V¬ŸÁD©a
+ *
+	gv¬ŸÁ
+ = 
+objeù
+.
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+.
+v®ue
+));
+
+244 ià(!
+	gv¬ŸÁ
+) {
+
+246 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+.
+addSlÙ
+(
+_poÞ
+);
+
+247 ià(!
+	g¦Ù
+)
+
+248  
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+250 
+	g¦Ù
+->
+£tOwÃdKey
+(
+make_nÙ_nuÎ
+(
+key
+.
+v®ue
+));
+
+252 
+	gv¬ŸÁ
+ = 
+¦Ù
+->
+d©a
+();
+
+256 
+	g”r
+ = 
+·r£V¬ŸÁ
+(*
+v¬ŸÁ
+, 
+memb”Fž‹r
+, 
+Ã¡šgLim™
+.
+deüem’t
+());
+
+257 ià(
+	g”r
+)
+
+258  
+	g”r
+;
+
+260 
+	g_¡ršgStÜage
+.
+»þaim
+(
+key
+.
+v®ue
+);
+
+261 
+	g”r
+ = 
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+());
+
+262 ià(
+	g”r
+)
+
+263  
+	g”r
+;
+
+267 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+268 ià(
+	g”r
+)
+
+269  
+	g”r
+;
+
+272 ià(
+—t
+('}'))
+
+273  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+274 ià(!
+—t
+(','))
+
+275  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+278 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+279 ià(
+	g”r
+)
+
+280  
+	g”r
+;
+
+284 
+De£rŸliz©iÚE¼Ü
+ 
+sk�Objeù
+(
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+285 ià(
+	gÃ¡šgLim™
+.
+»ached
+())
+
+286  
+	gDe£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+289 
+ARDUINOJSON_ASSERT
+(
+cu¼’t
+() == '{');
+
+290 
+move
+();
+
+293 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+294 ià(
+	g”r
+)
+
+295  
+	g”r
+;
+
+298 ià(
+—t
+('}'))
+
+299  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+304 
+	g”r
+ = 
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+());
+
+305 ià(
+	g”r
+)
+
+306  
+	g”r
+;
+
+309 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+310 ià(
+	g”r
+)
+
+311  
+	g”r
+;
+
+314 ià(!
+—t
+(':'))
+
+315  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+318 
+	g”r
+ = 
+sk�V¬ŸÁ
+(
+Ã¡šgLim™
+.
+deüem’t
+());
+
+319 ià(
+	g”r
+)
+
+320  
+	g”r
+;
+
+323 
+	g”r
+ = 
+sk�S·ûsAndComm’ts
+();
+
+324 ià(
+	g”r
+)
+
+325  
+	g”r
+;
+
+328 ià(
+—t
+('}'))
+
+329  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+330 ià(!
+—t
+(','))
+
+331  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+335 
+SŒšgOrE¼Ü
+ 
+·r£Key
+() {
+
+336 ià(
+isQuÙe
+(
+cu¼’t
+())) {
+
+337  
+·r£QuÙedSŒšg
+();
+
+339  
+·r£NÚQuÙedSŒšg
+();
+
+343 
+De£rŸliz©iÚE¼Ü
+ 
+·r£SŒšgV®ue
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+344 
+SŒšgOrE¼Ü
+ 
+	g»suÉ
+ = 
+·r£QuÙedSŒšg
+();
+
+345 ià(
+	g»suÉ
+.
+	g”r
+)
+
+346  
+	g»suÉ
+.
+	g”r
+;
+
+347 
+	gv¬ŸÁ
+.
+£tOwÃdSŒšg
+(
+make_nÙ_nuÎ
+(
+»suÉ
+.
+v®ue
+));
+
+348  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+351 
+SŒšgOrE¼Ü
+ 
+·r£QuÙedSŒšg
+() {
+
+352 
+SŒšgBužd”
+ 
+	gbužd”
+ = 
+_¡ršgStÜage
+.
+¡¬tSŒšg
+();
+
+353 #ià
+ARDUINOJSON_DECODE_UNICODE
+
+
+354 
+	gUtf16
+::
+Cod•ošt
+ 
+cod•ošt
+;
+
+356 cÚ¡ 
+	g¡ÝCh¬
+ = 
+cu¼’t
+();
+
+358 
+move
+();
+
+360 
+	gc
+ = 
+cu¼’t
+();
+
+361 
+move
+();
+
+362 ià(
+	gc
+ =ð
+¡ÝCh¬
+)
+
+365 ià(
+	gc
+ == '\0')
+
+366  
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+368 ià(
+	gc
+ == '\\') {
+
+369 
+c
+ = 
+cu¼’t
+();
+
+370 ià(
+	gc
+ == '\0')
+
+371  
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+372 ià(
+	gc
+ == 'u') {
+
+373 #ià
+ARDUINOJSON_DECODE_UNICODE
+
+
+374 
+move
+();
+
+375 
+ušt16_t
+ 
+	gcodeun™
+;
+
+376 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+·r£Hex4
+(
+codeun™
+);
+
+377 ià(
+	g”r
+)
+
+378  
+	g”r
+;
+
+379 ià(
+	gcod•ošt
+.
+­³nd
+(
+codeun™
+))
+
+380 
+	gUtf8
+::
+’codeCod•ošt
+(
+cod•ošt
+.
+v®ue
+(), 
+bužd”
+);
+
+383  
+	gDe£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+;
+
+387 
+	gc
+ = 
+Esÿ³Sequ’û
+::
+uÃsÿ³Ch¬
+(
+c
+);
+
+388 ià(
+	gc
+ == '\0')
+
+389  
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+390 
+move
+();
+
+393 
+	gbužd”
+.
+­³nd
+(
+c
+);
+
+396 cÚ¡ *
+	g»suÉ
+ = 
+bužd”
+.
+com¶‘e
+();
+
+397 ià(!
+	g»suÉ
+)
+
+398  
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+399  
+	g»suÉ
+;
+
+402 
+SŒšgOrE¼Ü
+ 
+·r£NÚQuÙedSŒšg
+() {
+
+403 
+SŒšgBužd”
+ 
+	gbužd”
+ = 
+_¡ršgStÜage
+.
+¡¬tSŒšg
+();
+
+405 
+	gc
+ = 
+cu¼’t
+();
+
+406 
+ARDUINOJSON_ASSERT
+(
+c
+);
+
+408 ià(
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+)) {
+
+410 
+move
+();
+
+411 
+	gbužd”
+.
+­³nd
+(
+c
+);
+
+412 
+	gc
+ = 
+cu¼’t
+();
+
+413 } 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+));
+
+415  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+418 cÚ¡ *
+	g»suÉ
+ = 
+bužd”
+.
+com¶‘e
+();
+
+419 ià(!
+	g»suÉ
+)
+
+420  
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+421  
+	g»suÉ
+;
+
+424 
+De£rŸliz©iÚE¼Ü
+ 
+sk�SŒšg
+() {
+
+425 cÚ¡ 
+	g¡ÝCh¬
+ = 
+cu¼’t
+();
+
+427 
+move
+();
+
+429 
+	gc
+ = 
+cu¼’t
+();
+
+430 
+move
+();
+
+431 ià(
+	gc
+ =ð
+¡ÝCh¬
+)
+
+433 ià(
+	gc
+ == '\0')
+
+434  
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+435 ià(
+	gc
+ == '\\') {
+
+436 ià(
+cu¼’t
+() != '\0')
+
+437 
+move
+();
+
+441  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+444 
+De£rŸliz©iÚE¼Ü
+ 
+·r£Num”icV®ue
+(
+V¬ŸÁD©a
+ &
+»suÉ
+) {
+
+445 
+	gbufãr
+[64];
+
+446 
+ušt8_t
+ 
+	gn
+ = 0;
+
+448 
+	gc
+ = 
+cu¼’t
+();
+
+449 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+è&& 
+	gn
+ < 63) {
+
+450 
+move
+();
+
+451 
+	gbufãr
+[
+n
+++] = 
+c
+;
+
+452 
+	gc
+ = 
+cu¼’t
+();
+
+454 
+	gbufãr
+[
+n
+] = 0;
+
+456 
+	gc
+ = 
+bufãr
+[0];
+
+457 ià(
+	gc
+ == 't') {
+
+458 
+»suÉ
+.
+£tBoÞ—n
+(
+Œue
+);
+
+459  
+	gn
+ =ð4 ? 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+
+
+460 : 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+462 ià(
+	gc
+ == 'f') {
+
+463 
+»suÉ
+.
+£tBoÞ—n
+(
+çl£
+);
+
+464  
+	gn
+ =ð5 ? 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+
+
+465 : 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+467 ià(
+	gc
+ == 'n') {
+
+469  
+n
+ =ð4 ? 
+De£rŸliz©iÚE¼Ü
+::
+Ok
+
+
+470 : 
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+473 
+	gP¬£dNumb”
+<
+	gFlßt
+, 
+	gUIÁ
+> 
+	gnum
+ = 
+·r£Numb”
+<
+Flßt
+, UIÁ>(
+	gbufãr
+);
+
+475 
+	gnum
+.
+ty³
+()) {
+
+476 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+477 
+»suÉ
+.
+£tNeg©iveIÁeg”
+(
+num
+.
+uštV®ue
+);
+
+478  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+480 
+	gVALUE_IS_POSITIVE_INTEGER
+:
+
+481 
+»suÉ
+.
+£tPos™iveIÁeg”
+(
+num
+.
+uštV®ue
+);
+
+482  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+484 
+	gVALUE_IS_FLOAT
+:
+
+485 
+»suÉ
+.
+£tFlßt
+(
+num
+.
+æßtV®ue
+);
+
+486  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+489  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+492 
+De£rŸliz©iÚE¼Ü
+ 
+sk�Num”icV®ue
+() {
+
+493 
+	gc
+ = 
+cu¼’t
+();
+
+494 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+)) {
+
+495 
+move
+();
+
+496 
+	gc
+ = 
+cu¼’t
+();
+
+498  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+501 
+De£rŸliz©iÚE¼Ü
+ 
+·r£Hex4
+(
+ušt16_t
+ &
+»suÉ
+) {
+
+502 
+	g»suÉ
+ = 0;
+
+503 
+ušt8_t
+ 
+	gi
+ = 0; i < 4; ++i) {
+
+504 
+	gdig™
+ = 
+cu¼’t
+();
+
+505 ià(!
+	gdig™
+)
+
+506  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+507 
+ušt8_t
+ 
+	gv®ue
+ = 
+decodeHex
+(
+dig™
+);
+
+508 ià(
+	gv®ue
+ > 0x0F)
+
+509  
+	gDe£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+510 
+	g»suÉ
+ = 
+ušt16_t
+((
+»suÉ
+ << 4è| 
+v®ue
+);
+
+511 
+move
+();
+
+513  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+516 
+šlše
+ 
+boÞ
+ 
+isB‘w“n
+(
+c
+, 
+mš
+, 
+max
+) {
+
+517  
+	gmš
+ <ð
+c
+ && c <ð
+max
+;
+
+520 
+šlše
+ 
+boÞ
+ 
+ÿnBeInNÚQuÙedSŒšg
+(
+c
+) {
+
+521  
+isB‘w“n
+(
+c
+, '0', '9') || isBetween(c, '_', 'z') ||
+
+522 
+isB‘w“n
+(
+c
+, 'A', 'Z'è|| 
+	gc
+ == '+' || c == '-' || c == '.';
+
+525 
+šlše
+ 
+boÞ
+ 
+isQuÙe
+(
+c
+) {
+
+526  
+	gc
+ =ð'\'' || 
+c
+ == '\"';
+
+529 
+šlše
+ 
+ušt8_t
+ 
+decodeHex
+(
+c
+) {
+
+530 ià(
+	gc
+ < 'A')
+
+531  
+ušt8_t
+(
+c
+ - '0');
+
+532 
+	gc
+ = (
+c
+ & ~0x20);
+
+533  
+ušt8_t
+(
+c
+ - 'A' + 10);
+
+536 
+De£rŸliz©iÚE¼Ü
+ 
+sk�S·ûsAndComm’ts
+() {
+
+538 
+cu¼’t
+()) {
+
+541  
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+548 
+move
+();
+
+551 #ià
+ARDUINOJSON_ENABLE_COMMENTS
+
+
+554 
+move
+();
+
+555 
+cu¼’t
+()) {
+
+558 
+move
+();
+
+559 
+boÞ
+ 
+	gwasS�r
+ = 
+çl£
+;
+
+561 
+	gc
+ = 
+cu¼’t
+();
+
+562 ià(
+	gc
+ == '\0')
+
+563  
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+564 ià(
+	gc
+ =ð'/' && 
+wasS�r
+) {
+
+565 
+move
+();
+
+568 
+	gwasS�r
+ = 
+c
+ == '*';
+
+569 
+move
+();
+
+578 
+move
+();
+
+579 
+	gc
+ = 
+cu¼’t
+();
+
+580 ià(
+	gc
+ == '\0')
+
+581  
+De£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+582 ià(
+	gc
+ == '\n')
+
+589  
+De£rŸliz©iÚE¼Ü
+::
+Inv®idIÅut
+;
+
+595  
+De£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+600 
+MemÜyPoÞ
+ *
+	g_poÞ
+;
+
+601 
+TSŒšgStÜage
+ 
+	g_¡ršgStÜage
+;
+
+602 
+	gL©ch
+<
+	gTR—d”
+> 
+	g_Ïtch
+;
+
+606 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+607 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+608 
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TIÅut
+ &
+šput
+,
+
+609 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+610  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+611 
+	`AÎowAÎFž‹r
+());
+
+612 
+	}
+}
+
+613 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+614 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+615 
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TIÅut
+ &
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+616 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+617  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+618 
+	}
+}
+
+619 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+620 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TIÅut
+ &
+šput
+,
+
+621 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+622  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+623 
+	}
+}
+
+626 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+627 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+628 
+JsÚDocum’t
+ &
+doc
+, 
+TIÅut
+ &
+šput
+,
+
+629 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+630  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+631 
+	`AÎowAÎFž‹r
+());
+
+632 
+	}
+}
+
+633 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+634 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+635 
+JsÚDocum’t
+ &
+doc
+, 
+TIÅut
+ &
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+636 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+637  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+638 
+	}
+}
+
+639 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+640 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, 
+TIÅut
+ &
+šput
+,
+
+641 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+642  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+643 
+	}
+}
+
+646 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+647 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+648 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+649 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+650  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+651 
+	`AÎowAÎFž‹r
+());
+
+652 
+	}
+}
+
+653 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+654 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+655 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+656 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+657  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+658 
+	}
+}
+
+659 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+660 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+661 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+662  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+, 
+fž‹r
+);
+
+663 
+	}
+}
+
+666 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+667 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+668 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+size_t
+ 
+šputSize
+,
+
+669 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+670  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+671 
+	`AÎowAÎFž‹r
+());
+
+672 
+	}
+}
+
+673 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+674 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeJsÚ
+(
+
+675 
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+, 
+size_t
+ 
+šputSize
+, 
+Fž‹r
+ 
+fž‹r
+,
+
+676 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+677  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+678 
+fž‹r
+);
+
+679 
+	}
+}
+
+680 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+681 
+De£rŸliz©iÚE¼Ü
+ 
+	$de£rŸlizeJsÚ
+(
+JsÚDocum’t
+ &
+doc
+, 
+TCh¬
+ *
+šput
+,
+
+682 
+size_t
+ 
+šputSize
+,
+
+683 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+, 
+Fž‹r
+ 
+fž‹r
+) {
+
+684  
+de£rŸlize
+<
+JsÚDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+685 
+fž‹r
+);
+
+686 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/JsÚ/TextFÜm©‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Misc/Vis™abË.hµ
+>
+
+9 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/m—su».hµ
+>
+
+10 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/£rŸlize.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+15 þas 
+	cJsÚS”Ÿliz”
+ {
+
+16 
+	gpublic
+:
+
+17 
+JsÚS”Ÿliz”
+(
+TWr™”
+ 
+wr™”
+è: 
+_fÜm©‹r
+(writer) {}
+
+19 
+FORCE_INLINE
+ 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+¬¿y
+) {
+
+20 
+wr™e
+('[');
+
+22 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+¬¿y
+.
+h—d
+();
+
+24 
+	g¦Ù
+ != 0) {
+
+25 
+¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+27 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+28 ià(
+	g¦Ù
+ == 0)
+
+31 
+wr™e
+(',');
+
+34 
+wr™e
+(']');
+
+37 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+objeù
+) {
+
+38 
+wr™e
+('{');
+
+40 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+.
+h—d
+();
+
+42 
+	g¦Ù
+ != 0) {
+
+43 
+_fÜm©‹r
+.
+wr™eSŒšg
+(
+¦Ù
+->
+key
+());
+
+44 
+wr™e
+(':');
+
+45 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+47 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+48 ià(
+	g¦Ù
+ == 0)
+
+51 
+wr™e
+(',');
+
+54 
+wr™e
+('}');
+
+57 
+vis™Flßt
+(
+Flßt
+ 
+v®ue
+) {
+
+58 
+	g_fÜm©‹r
+.
+wr™eFlßt
+(
+v®ue
+);
+
+61 
+vis™SŒšg
+(cÚ¡ *
+v®ue
+) {
+
+62 
+	g_fÜm©‹r
+.
+wr™eSŒšg
+(
+v®ue
+);
+
+65 
+vis™RawJsÚ
+(cÚ¡ *
+d©a
+, 
+size_t
+ 
+n
+) {
+
+66 
+	g_fÜm©‹r
+.
+wr™eRaw
+(
+d©a
+, 
+n
+);
+
+69 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+70 
+	g_fÜm©‹r
+.
+wr™eNeg©iveIÁeg”
+(
+v®ue
+);
+
+73 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+74 
+	g_fÜm©‹r
+.
+wr™ePos™iveIÁeg”
+(
+v®ue
+);
+
+77 
+vis™BoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+78 
+	g_fÜm©‹r
+.
+wr™eBoÞ—n
+(
+v®ue
+);
+
+81 
+vis™NuÎ
+() {
+
+82 
+	g_fÜm©‹r
+.
+wr™eRaw
+("null");
+
+85 
+size_t
+ 
+by‹sWr™‹n
+() const {
+
+86  
+	g_fÜm©‹r
+.
+by‹sWr™‹n
+();
+
+89 
+	g´Ùeùed
+:
+
+90 
+wr™e
+(
+c
+) {
+
+91 
+_fÜm©‹r
+.
+wr™eRaw
+(
+c
+);
+
+94 
+wr™e
+(cÚ¡ *
+s
+) {
+
+95 
+	g_fÜm©‹r
+.
+wr™eRaw
+(
+s
+);
+
+98 
+	g´iv©e
+:
+
+99 
+TextFÜm©‹r
+<
+TWr™”
+> 
+_fÜm©‹r
+;
+
+102 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+103 
+size_t
+ 
+	$£rŸlizeJsÚ
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TDe¡š©iÚ
+ &
+de¡š©iÚ
+) {
+
+104  
+£rŸlize
+<
+JsÚS”Ÿliz”
+>(
+sourû
+, 
+de¡š©iÚ
+);
+
+105 
+	}
+}
+
+107 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+108 
+size_t
+ 
+	$£rŸlizeJsÚ
+(cÚ¡ 
+TSourû
+ &
+sourû
+, *
+bufãr
+, 
+size_t
+ 
+bufãrSize
+) {
+
+109  
+£rŸlize
+<
+JsÚS”Ÿliz”
+>(
+sourû
+, 
+bufãr
+, 
+bufãrSize
+);
+
+110 
+	}
+}
+
+112 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+113 
+size_t
+ 
+	$m—su»JsÚ
+(cÚ¡ 
+TSourû
+ &
+sourû
+) {
+
+114  
+m—su»
+<
+JsÚS”Ÿliz”
+>(
+sourû
+);
+
+115 
+	}
+}
+
+117 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+118 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+119 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	g¡d
+::
+o¡»am
+ &>::
+ty³
+
+
+120 
+Ý”©Ü
+<<(
+¡d
+::
+o¡»am
+ &
+os
+, cÚ¡ 
+	gT
+ &
+	gsourû
+) {
+
+121 
+£rŸlizeJsÚ
+(
+sourû
+, 
+os
+);
+
+122  
+	gos
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/Latch.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTR—d”
+>
+
+12 þas 
+	cL©ch
+ {
+
+13 
+	gpublic
+:
+
+14 
+L©ch
+(
+TR—d”
+ 
+»ad”
+è: 
+_»ad”
+Ô—d”), 
+_lßded
+(
+çl£
+) {
+
+15 #ià
+ARDUINOJSON_DEBUG
+
+
+16 
+	g_’ded
+ = 
+çl£
+;
+
+20 
+þ—r
+() {
+
+21 
+	g_lßded
+ = 
+çl£
+;
+
+24 
+Ï¡
+() const {
+
+25  
+	g_cu¼’t
+;
+
+28 
+FORCE_INLINE
+ 
+cu¼’t
+() {
+
+29 ià(!
+	g_lßded
+) {
+
+30 
+lßd
+();
+
+32  
+	g_cu¼’t
+;
+
+35 
+	g´iv©e
+:
+
+36 
+lßd
+() {
+
+37 
+ARDUINOJSON_ASSERT
+(!
+_’ded
+);
+
+38 
+	gc
+ = 
+_»ad”
+.
+»ad
+();
+
+39 #ià
+ARDUINOJSON_DEBUG
+
+
+40 ià(
+	gc
+ <= 0)
+
+41 
+_’ded
+ = 
+Œue
+;
+
+43 
+	g_cu¼’t
+ = 
+¡©ic_ÿ¡
+<>(
+c
+ > 0 ? c : 0);
+
+44 
+	g_lßded
+ = 
+Œue
+;
+
+47 
+TR—d”
+ 
+	g_»ad”
+;
+
+48 
+	g_cu¼’t
+;
+
+49 
+boÞ
+ 
+	g_lßded
+;
+
+50 #ià
+ARDUINOJSON_DEBUG
+
+
+51 
+boÞ
+ 
+	g_’ded
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/JsÚ/JsÚS”Ÿliz”.hµ
+>
+
+9 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/m—su».hµ
+>
+
+10 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/£rŸlize.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+15 
+þass
+ 
+	gP»‰yJsÚS”Ÿliz”
+ : 
+public
+ 
+JsÚS”Ÿliz”
+<
+TWr™”
+> {
+
+16 
+JsÚS”Ÿliz”
+<
+	tTWr™”
+> 
+	tba£
+;
+
+18 
+	gpublic
+:
+
+19 
+P»‰yJsÚS”Ÿliz”
+(
+TWr™”
+ &
+wr™”
+è: 
+ba£
+(wr™”), 
+_Ã¡šg
+(0) {}
+
+21 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+¬¿y
+) {
+
+22 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+¬¿y
+.
+h—d
+();
+
+23 ià(!
+	g¦Ù
+)
+
+24  
+	gba£
+::
+wr™e
+("[]");
+
+26 
+	gba£
+::
+wr™e
+("[\r\n");
+
+27 
+	g_Ã¡šg
+++;
+
+28 
+	g¦Ù
+ != 0) {
+
+29 
+šd’t
+();
+
+30 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+32 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+33 
+	gba£
+::
+wr™e
+(
+¦Ù
+ ? ",\r\n" : "\r\n");
+
+35 
+	g_Ã¡šg
+--;
+
+36 
+šd’t
+();
+
+37 
+	gba£
+::
+wr™e
+("]");
+
+40 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &
+objeù
+) {
+
+41 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+.
+h—d
+();
+
+42 ià(!
+	g¦Ù
+)
+
+43  
+	gba£
+::
+wr™e
+("{}");
+
+45 
+	gba£
+::
+wr™e
+("{\r\n");
+
+46 
+	g_Ã¡šg
+++;
+
+47 
+	g¦Ù
+ != 0) {
+
+48 
+šd’t
+();
+
+49 
+	gba£
+::
+vis™SŒšg
+(
+¦Ù
+->
+key
+());
+
+50 
+	gba£
+::
+wr™e
+(": ");
+
+51 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+53 
+	g¦Ù
+ = 
+¦Ù
+->
+Ãxt
+();
+
+54 
+	gba£
+::
+wr™e
+(
+¦Ù
+ ? ",\r\n" : "\r\n");
+
+56 
+	g_Ã¡šg
+--;
+
+57 
+šd’t
+();
+
+58 
+	gba£
+::
+wr™e
+("}");
+
+61 
+	g´iv©e
+:
+
+62 
+šd’t
+() {
+
+63 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	g_Ã¡šg
+; i++è
+	gba£
+::
+wr™e
+(
+ARDUINOJSON_TAB
+);
+
+66 
+ušt8_t
+ 
+	g_Ã¡šg
+;
+
+69 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+70 
+size_t
+ 
+£rŸlizeJsÚP»‰y
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TDe¡š©iÚ
+ &
+de¡š©iÚ
+) {
+
+71  
+	g£rŸlize
+<
+	gP»‰yJsÚS”Ÿliz”
+>(
+	gsourû
+, 
+	gde¡š©iÚ
+);
+
+74 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+75 
+size_t
+ 
+£rŸlizeJsÚP»‰y
+(cÚ¡ 
+TSourû
+ &
+sourû
+, *
+bufãr
+,
+
+76 
+size_t
+ 
+bufãrSize
+) {
+
+77  
+	g£rŸlize
+<
+	gP»‰yJsÚS”Ÿliz”
+>(
+	gsourû
+, 
+	gbufãr
+, 
+	gbufãrSize
+);
+
+80 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+81 
+size_t
+ 
+m—su»JsÚP»‰y
+(cÚ¡ 
+TSourû
+ &
+sourû
+) {
+
+82  
+	gm—su»
+<
+	gP»‰yJsÚS”Ÿliz”
+>(
+	gsourû
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡dšt.h
+>
+
+8 
+	~<¡ršg.h
+>
+
+10 
+	~<ArdušoJsÚ/JsÚ/Esÿ³Sequ’û.hµ
+>
+
+11 
+	~<ArdušoJsÚ/Numb”s/FlßtP¬ts.hµ
+>
+
+12 
+	~<ArdušoJsÚ/Numb”s/IÁeg”.hµ
+>
+
+13 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+14 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+19 þas 
+	cTextFÜm©‹r
+ {
+
+20 
+	gpublic
+:
+
+21 
+ex¶ic™
+ 
+TextFÜm©‹r
+(
+TWr™”
+ 
+wr™”
+è: 
+_wr™”
+(wr™”), 
+_Ëngth
+(0) {}
+
+24 
+size_t
+ 
+by‹sWr™‹n
+() const {
+
+25  
+	g_Ëngth
+;
+
+28 
+wr™eBoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+29 ià(
+	gv®ue
+)
+
+30 
+wr™eRaw
+("true");
+
+32 
+wr™eRaw
+("false");
+
+35 
+wr™eSŒšg
+(cÚ¡ *
+v®ue
+) {
+
+36 
+ARDUINOJSON_ASSERT
+(
+v®ue
+ !ð
+NULL
+);
+
+37 
+wr™eRaw
+('\"');
+
+38 *
+	gv®ue
+è
+wr™eCh¬
+(*
+v®ue
+++);
+
+39 
+wr™eRaw
+('\"');
+
+42 
+wr™eCh¬
+(
+c
+) {
+
+43 
+	g¥ecŸlCh¬
+ = 
+Esÿ³Sequ’û
+::
+esÿ³Ch¬
+(
+c
+);
+
+44 ià(
+	g¥ecŸlCh¬
+) {
+
+45 
+wr™eRaw
+('\\');
+
+46 
+wr™eRaw
+(
+¥ecŸlCh¬
+);
+
+48 
+wr™eRaw
+(
+c
+);
+
+52 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+53 
+wr™eFlßt
+(
+T
+ 
+v®ue
+) {
+
+54 ià(
+i¢ª
+(
+v®ue
+))
+
+55  
+wr™eRaw
+(
+ARDUINOJSON_ENABLE_NAN
+ ? "NaN" : "null");
+
+57 #ià
+ARDUINOJSON_ENABLE_INFINITY
+
+
+58 ià(
+	gv®ue
+ < 0.0) {
+
+59 
+wr™eRaw
+('-');
+
+60 
+	gv®ue
+ = -
+v®ue
+;
+
+63 ià(
+isšf
+(
+v®ue
+))
+
+64  
+wr™eRaw
+("Infinity");
+
+66 ià(
+isšf
+(
+v®ue
+))
+
+67  
+wr™eRaw
+("null");
+
+69 ià(
+	gv®ue
+ < 0.0) {
+
+70 
+wr™eRaw
+('-');
+
+71 
+	gv®ue
+ = -
+v®ue
+;
+
+75 
+	gFlßtP¬ts
+<
+	gT
+> 
+·¹s
+(
+v®ue
+);
+
+77 
+wr™ePos™iveIÁeg”
+(
+·¹s
+.
+š‹g¿l
+);
+
+78 ià(
+	g·¹s
+.
+	gdecim®PÏûs
+)
+
+79 
+wr™eDecim®s
+(
+·¹s
+.
+decim®
+,…¬ts.
+decim®PÏûs
+);
+
+81 ià(
+	g·¹s
+.
+	gexpÚ’t
+ < 0) {
+
+82 
+wr™eRaw
+("e-");
+
+83 
+wr™ePos™iveIÁeg”
+(-
+·¹s
+.
+expÚ’t
+);
+
+86 ià(
+	g·¹s
+.
+	gexpÚ’t
+ > 0) {
+
+87 
+wr™eRaw
+('e');
+
+88 
+wr™ePos™iveIÁeg”
+(
+·¹s
+.
+expÚ’t
+);
+
+92 
+wr™eNeg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+93 
+wr™eRaw
+('-');
+
+94 
+wr™ePos™iveIÁeg”
+(
+v®ue
+);
+
+97 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+98 
+wr™ePos™iveIÁeg”
+(
+T
+ 
+v®ue
+) {
+
+99 
+	gbufãr
+[22];
+
+100 *
+	g’d
+ = 
+bufãr
+ + (buffer);
+
+101 *
+	gbegš
+ = 
+’d
+;
+
+105 *--
+	gbegš
+ = (
+v®ue
+ % 10 + '0');
+
+106 
+	gv®ue
+ = 
+T
+(
+v®ue
+ / 10);
+
+107 } 
+	gv®ue
+);
+
+110 
+wr™eRaw
+(
+begš
+, 
+’d
+);
+
+113 
+wr™eDecim®s
+(
+ušt32_t
+ 
+v®ue
+, 
+št8_t
+ 
+width
+) {
+
+115 
+	gbufãr
+[16];
+
+116 *
+	g’d
+ = 
+bufãr
+ + (buffer);
+
+117 *
+	gbegš
+ = 
+’d
+;
+
+120 
+	gwidth
+--) {
+
+121 *--
+	gbegš
+ = (
+v®ue
+ % 10 + '0');
+
+122 
+	gv®ue
+ /= 10;
+
+124 *--
+	gbegš
+ = '.';
+
+127 
+wr™eRaw
+(
+begš
+, 
+’d
+);
+
+130 
+wr™eRaw
+(cÚ¡ *
+s
+) {
+
+131 
+	g_Ëngth
+ +ð
+_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+s
+), 
+¡¾’
+(s));
+
+134 
+wr™eRaw
+(cÚ¡ *
+s
+, 
+size_t
+ 
+n
+) {
+
+135 
+	g_Ëngth
+ +ð
+_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+s
+), 
+n
+);
+
+138 
+wr™eRaw
+(cÚ¡ *
+begš
+, cÚ¡ *
+’d
+) {
+
+139 
+	g_Ëngth
+ +ð
+_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+begš
+),
+
+140 
+¡©ic_ÿ¡
+<
+size_t
+>(
+’d
+ - 
+begš
+));
+
+143 
+	g‹m¶©e
+ <
+size_t
+ 
+	gN
+>
+
+144 
+wr™eRaw
+(cÚ¡ (&
+s
+)[
+N
+]) {
+
+145 
+	g_Ëngth
+ +ð
+_wr™”
+.
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+ *>(
+s
+), 
+N
+ - 1);
+
+147 
+wr™eRaw
+(
+c
+) {
+
+148 
+	g_Ëngth
+ +ð
+_wr™”
+.
+wr™e
+(
+¡©ic_ÿ¡
+<
+ušt8_t
+>(
+c
+));
+
+151 
+	g´Ùeùed
+:
+
+152 
+TWr™”
+ 
+_wr™”
+;
+
+153 
+size_t
+ 
+	g_Ëngth
+;
+
+155 
+	g´iv©e
+:
+
+156 
+TextFÜm©‹r
+ &
+Ý”©Ü
+=(const TextFormatter &);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡dšt.h
+>
+
+14 #ià
+defšed
+(
+__GNUC__
+)
+
+15 #ià
+__GNUC__
+ >= 7
+
+16 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+17 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wmaybe-uninitialized"
+
+21 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+23 
+Çme¥aû
+ 
+	gUtf16
+ {
+
+24 
+šlše
+ 
+boÞ
+ 
+isHighSu¼og©e
+(
+ušt16_t
+ 
+codeun™
+) {
+
+25  
+	gcodeun™
+ >ð0xD800 && 
+codeun™
+ < 0xDC00;
+
+28 
+šlše
+ 
+boÞ
+ 
+isLowSu¼og©e
+(
+ušt16_t
+ 
+codeun™
+) {
+
+29  
+	gcodeun™
+ >ð0xDC00 && 
+codeun™
+ < 0xE000;
+
+32 þas 
+	cCod•ošt
+ {
+
+33 
+	gpublic
+:
+
+34 
+boÞ
+ 
+­³nd
+(
+ušt16_t
+ 
+codeun™
+) {
+
+35 ià(
+isHighSu¼og©e
+(
+codeun™
+)) {
+
+36 
+_highSu¼og©e
+ = 
+codeun™
+ & 0x3FF;
+
+37  
+	gçl£
+;
+
+40 ià(
+isLowSu¼og©e
+(
+codeun™
+)) {
+
+41 
+	g_cod•ošt
+ =
+
+42 
+ušt32_t
+(0x10000 + ((
+_highSu¼og©e
+ << 10è| (
+codeun™
+ & 0x3FF)));
+
+43  
+	gŒue
+;
+
+46 
+	g_cod•ošt
+ = 
+codeun™
+;
+
+47  
+	gŒue
+;
+
+50 
+ušt32_t
+ 
+v®ue
+() const {
+
+51  
+	g_cod•ošt
+;
+
+54 
+	g´iv©e
+:
+
+55 
+ušt16_t
+ 
+_highSu¼og©e
+;
+
+56 
+ušt32_t
+ 
+	g_cod•ošt
+;
+
+61 #ià
+defšed
+(
+__GNUC__
+)
+
+62 #ià
+__GNUC__
+ >= 8
+
+63 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+Çme¥aû
+ 
+	gUtf8
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšgBužd”
+>
+
+13 
+šlše
+ 
+’codeCod•ošt
+(
+ušt32_t
+ 
+cod•ošt32
+, 
+TSŒšgBužd”
+& 
+¡r
+) {
+
+17 
+	gbuf
+[5];
+
+18 * 
+	gp
+ = 
+buf
+;
+
+20 *(
+	gp
+++) = 0;
+
+21 ià(
+	gcod•ošt32
+ < 0x80) {
+
+22 *(
+	gp
+++èð((
+cod•ošt32
+));
+
+24 *(
+	gp
+++èð((
+cod•ošt32
+ | 0x80) & 0xBF);
+
+25 
+ušt16_t
+ 
+	gcod•ošt16
+ = ušt16_t(
+cod•ošt32
+ >> 6);
+
+26 ià(
+	gcod•ošt16
+ < 0x20) {
+
+27 *(
+	gp
+++èð(
+cod•ošt16
+ | 0xC0);
+
+29 *(
+	gp
+++èð((
+cod•ošt16
+ | 0x80) & 0xBF);
+
+30 
+	gcod•ošt16
+ = 
+ušt16_t
+(
+cod•ošt16
+ >> 6);
+
+31 ià(
+	gcod•ošt16
+ < 0x10) {
+
+32 *(
+	gp
+++èð(
+cod•ošt16
+ | 0xE0);
+
+34 *(
+	gp
+++èð((
+cod•ošt16
+ | 0x80) & 0xBF);
+
+35 
+	gcod•ošt16
+ = 
+ušt16_t
+(
+cod•ošt16
+ >> 6);
+
+36 *(
+	gp
+++èð(
+cod•ošt16
+ | 0xF0);
+
+41 *(--
+	gp
+)) {
+
+42 
+	g¡r
+.
+­³nd
+(*
+p
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡ddef.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+šlše
+ 
+boÞ
+ 
+isAligÃd
+(*
+±r
+) {
+
+14 cÚ¡ 
+size_t
+ 
+	gmask
+ = (*) - 1;
+
+15 
+size_t
+ 
+	gaddr
+ = 
+»š‹½»t_ÿ¡
+<size_t>(
+±r
+);
+
+16  (
+	gaddr
+ & 
+	gmask
+) == 0;
+
+19 
+šlše
+ 
+size_t
+ 
+addPaddšg
+(size_ˆ
+by‹s
+) {
+
+20 cÚ¡ 
+size_t
+ 
+	gmask
+ = (*) - 1;
+
+21  (
+	gby‹s
+ + 
+	gmask
+) & ~mask;
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+25 
+šlše
+ 
+T
+ *
+addPaddšg
+(T *
+p
+) {
+
+26 
+size_t
+ 
+	gadd»ss
+ = 
+addPaddšg
+(
+»š‹½»t_ÿ¡
+<size_t>(
+p
+));
+
+27  
+	g»š‹½»t_ÿ¡
+<
+	gT
+ *>(
+	gadd»ss
+);
+
+30 
+	g‹m¶©e
+ <
+size_t
+ 
+	gby‹s
+>
+
+31 
+	sAddPaddšg
+ {
+
+32 cÚ¡ 
+size_t
+ 
+	gmask
+ = (*) - 1;
+
+33 cÚ¡ 
+size_t
+ 
+	gv®ue
+ = (
+by‹s
+ + 
+mask
+) & ~mask;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/Alignm’t.hµ
+>
+
+8 
+	~<ArdušoJsÚ/MemÜy/SŒšgSlÙ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+	~<ArdušoJsÚ/PÞyfžls/m¶/max.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁSlÙ.hµ
+>
+
+13 
+	~<¡ršg.h
+>
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+25 þas 
+	cMemÜyPoÞ
+ {
+
+26 
+	gpublic
+:
+
+27 
+MemÜyPoÞ
+(* 
+buf
+, 
+size_t
+ 
+ÿ·
+)
+
+28 : 
+_begš
+(
+buf
+),
+
+29 
+_Ëá
+(
+buf
+),
+
+30 
+_right
+(
+buf
+ ? buà+ 
+ÿ·
+ : 0),
+
+31 
+_’d
+(
+buf
+ ? buà+ 
+ÿ·
+ : 0) {
+
+32 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_begš
+));
+
+33 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_right
+));
+
+34 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_’d
+));
+
+37 * 
+bufãr
+() {
+
+38  
+	g_begš
+;
+
+42 
+size_t
+ 
+ÿ·c™y
+() const {
+
+43  
+size_t
+(
+_’d
+ - 
+_begš
+);
+
+46 
+size_t
+ 
+size
+() const {
+
+47  
+size_t
+(
+_Ëá
+ - 
+_begš
+ + 
+_’d
+ - 
+_right
+);
+
+50 
+V¬ŸÁSlÙ
+* 
+®locV¬ŸÁ
+() {
+
+51  
+	g®locRight
+<
+	gV¬ŸÁSlÙ
+>();
+
+54 * 
+®locFroz’SŒšg
+(
+size_t
+ 
+n
+) {
+
+55 ià(!
+ÿnAÎoc
+(
+n
+))
+
+57 * 
+	gs
+ = 
+_Ëá
+;
+
+58 
+	g_Ëá
+ +ð
+n
+;
+
+59 
+checkInv¬ŸÁs
+();
+
+60  
+	gs
+;
+
+63 
+SŒšgSlÙ
+ 
+®locEx·ndabËSŒšg
+() {
+
+64 
+SŒšgSlÙ
+ 
+	gs
+;
+
+65 
+	gs
+.
+	gv®ue
+ = 
+_Ëá
+;
+
+66 
+	gs
+.
+	gsize
+ = 
+size_t
+(
+_right
+ - 
+_Ëá
+);
+
+67 
+	g_Ëá
+ = 
+_right
+;
+
+68 
+checkInv¬ŸÁs
+();
+
+69  
+	gs
+;
+
+72 
+ä“zeSŒšg
+(
+SŒšgSlÙ
+& 
+s
+, 
+size_t
+ 
+ÃwSize
+) {
+
+73 
+	g_Ëá
+ -ð(
+s
+.
+size
+ - 
+ÃwSize
+);
+
+74 
+	gs
+.
+	gsize
+ = 
+ÃwSize
+;
+
+75 
+checkInv¬ŸÁs
+();
+
+78 
+»þaimLa¡SŒšg
+(cÚ¡ * 
+s
+) {
+
+79 
+	g_Ëá
+ = 
+cÚ¡_ÿ¡
+<*>(
+s
+);
+
+82 
+þ—r
+() {
+
+83 
+	g_Ëá
+ = 
+_begš
+;
+
+84 
+	g_right
+ = 
+_’d
+;
+
+87 
+boÞ
+ 
+ÿnAÎoc
+(
+size_t
+ 
+by‹s
+) const {
+
+88  
+	g_Ëá
+ + 
+	gby‹s
+ <ð
+_right
+;
+
+91 
+boÞ
+ 
+owns
+(* 
+p
+) const {
+
+92  
+	g_begš
+ <ð
+p
+ &&… < 
+_’d
+;
+
+95 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+96 
+T
+* 
+®locRight
+() {
+
+97  
+	g»š‹½»t_ÿ¡
+<
+	gT
+*>(
+®locRight
+((
+T
+)));
+
+100 * 
+®locRight
+(
+size_t
+ 
+by‹s
+) {
+
+101 ià(!
+ÿnAÎoc
+(
+by‹s
+))
+
+103 
+	g_right
+ -ð
+by‹s
+;
+
+104  
+	g_right
+;
+
+108 * 
+Ý”©Ü
+ 
+Ãw
+(
+size_t
+, * 
+p
+) {
+
+109  
+	gp
+;
+
+123 
+±rdiff_t
+ 
+squash
+() {
+
+124 * 
+	gÃw_right
+ = 
+addPaddšg
+(
+_Ëá
+);
+
+125 ià(
+	gÃw_right
+ >ð
+_right
+)
+
+128 
+size_t
+ 
+	gright_size
+ = 
+¡©ic_ÿ¡
+<size_t>(
+_’d
+ - 
+_right
+);
+
+129 
+memmove
+(
+Ãw_right
+, 
+_right
+, 
+right_size
+);
+
+131 
+±rdiff_t
+ 
+	gby‹s_»þaimed
+ = 
+_right
+ - 
+Ãw_right
+;
+
+132 
+	g_right
+ = 
+Ãw_right
+;
+
+133 
+	g_’d
+ = 
+Ãw_right
+ + 
+right_size
+;
+
+134  
+	gby‹s_»þaimed
+;
+
+139 
+movePoš‹rs
+(
+±rdiff_t
+ 
+off£t
+) {
+
+140 
+	g_begš
+ +ð
+off£t
+;
+
+141 
+	g_Ëá
+ +ð
+off£t
+;
+
+142 
+	g_right
+ +ð
+off£t
+;
+
+143 
+	g_’d
+ +ð
+off£t
+;
+
+146 
+	g´iv©e
+:
+
+147 
+SŒšgSlÙ
+* 
+®locSŒšgSlÙ
+() {
+
+148  
+®locRight
+<
+SŒšgSlÙ
+>();
+
+151 
+checkInv¬ŸÁs
+() {
+
+152 
+ARDUINOJSON_ASSERT
+(
+_begš
+ <ð
+_Ëá
+);
+
+153 
+ARDUINOJSON_ASSERT
+(
+_Ëá
+ <ð
+_right
+);
+
+154 
+ARDUINOJSON_ASSERT
+(
+_right
+ <ð
+_’d
+);
+
+155 
+ARDUINOJSON_ASSERT
+(
+isAligÃd
+(
+_right
+));
+
+158 *
+	g_begš
+, *
+	g_Ëá
+, *
+	g_right
+, *
+	g_’d
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cSŒšgBužd”
+ {
+
+12 
+	gpublic
+:
+
+13 
+ex¶ic™
+ 
+SŒšgBužd”
+(
+MemÜyPoÞ
+* 
+·»Á
+è: 
+_·»Á
+Õ¬’t), 
+_size
+(0) {
+
+14 
+	g_¦Ù
+ = 
+_·»Á
+->
+®locEx·ndabËSŒšg
+();
+
+17 
+­³nd
+(cÚ¡ * 
+s
+) {
+
+18 *
+	gs
+è
+­³nd
+(*
+s
+++);
+
+21 
+­³nd
+(cÚ¡ * 
+s
+, 
+size_t
+ 
+n
+) {
+
+22 
+	gn
+-- > 0è
+­³nd
+(*
+s
+++);
+
+25 
+­³nd
+(
+c
+) {
+
+26 ià(!
+	g_¦Ù
+.
+	gv®ue
+)
+
+29 ià(
+	g_size
+ >ð
+_¦Ù
+.
+size
+) {
+
+30 
+_¦Ù
+.
+v®ue
+ = 0;
+
+34 
+	g_¦Ù
+.
+	gv®ue
+[
+_size
+++] = 
+c
+;
+
+37 * 
+com¶‘e
+() {
+
+38 
+­³nd
+('\0');
+
+39 ià(
+	g_¦Ù
+.
+	gv®ue
+) {
+
+40 
+	g_·»Á
+->
+ä“zeSŒšg
+(
+_¦Ù
+, 
+_size
+);
+
+42  
+	g_¦Ù
+.
+	gv®ue
+;
+
+45 
+	g´iv©e
+:
+
+46 
+MemÜyPoÞ
+* 
+_·»Á
+;
+
+47 
+size_t
+ 
+	g_size
+;
+
+48 
+SŒšgSlÙ
+ 
+	g_¦Ù
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringSlot.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+9 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+11 
+	#JSON_STRING_SIZE
+(
+SIZE
+è(SIZE)
+
+	)
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	sSŒšgSlÙ
+ {
+
+16 *
+	gv®ue
+;
+
+17 
+size_t
+ 
+	gsize
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/SŒšgAd­‹rs.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 þas 
+	cS”ŸlizedV®ue
+ {
+
+14 
+	gpublic
+:
+
+15 
+ex¶ic™
+ 
+S”ŸlizedV®ue
+(
+T
+ 
+¡r
+è: 
+_¡r
+(str) {}
+
+16 
+Ý”©Ü
+ 
+T
+() const {
+
+17  
+_¡r
+;
+
+20 cÚ¡ * 
+d©a
+() const {
+
+21  
+	g_¡r
+.
+c_¡r
+();
+
+24 
+size_t
+ 
+size
+() const {
+
+26  
+	g_¡r
+.
+Ëngth
+();
+
+29 
+	g´iv©e
+:
+
+30 
+T
+ 
+_¡r
+;
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+34 
+þass
+ 
+	gS”ŸlizedV®ue
+<
+	gTCh¬
+*> {
+
+35 
+	gpublic
+:
+
+36 
+ex¶ic™
+ 
+S”ŸlizedV®ue
+(
+TCh¬
+* 
+p
+, 
+size_t
+ 
+n
+è: 
+_d©a
+Õ), 
+_size
+(n) {}
+
+37 
+Ý”©Ü
+ 
+	gTCh¬
+*() const {
+
+38  
+	g_d©a
+;
+
+41 
+TCh¬
+* 
+d©a
+() const {
+
+42  
+	g_d©a
+;
+
+45 
+size_t
+ 
+size
+() const {
+
+46  
+	g_size
+;
+
+49 
+	g´iv©e
+:
+
+50 
+TCh¬
+* 
+_d©a
+;
+
+51 
+size_t
+ 
+	g_size
+;
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+55 
+šlše
+ 
+	gS”ŸlizedV®ue
+<
+	gT
+> 
+	$£rŸlized
+(
+T
+ 
+¡r
+) {
+
+56  
+S”ŸlizedV®ue
+<
+T
+>(
+¡r
+);
+
+57 
+	}
+}
+
+59 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+60 
+šlše
+ 
+	gS”ŸlizedV®ue
+<
+	gTCh¬
+*> 
+	$£rŸlized
+(
+TCh¬
+* 
+p
+) {
+
+61  
+S”ŸlizedV®ue
+<
+TCh¬
+*>(
+p
+, 
+	`ad­tSŒšg
+Õ).
+	`size
+());
+
+62 
+	}
+}
+
+64 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+65 
+šlše
+ 
+	gS”ŸlizedV®ue
+<
+	gTCh¬
+*> 
+	$£rŸlized
+(
+TCh¬
+* 
+p
+, 
+size_t
+ 
+n
+) {
+
+66  
+S”ŸlizedV®ue
+<
+TCh¬
+*>(
+p
+, 
+n
+);
+
+67 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	sVis™abË
+ {
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	gIsVis™abË
+ : 
+is_ba£_of
+<
+Vis™abË
+, 
+	gT
+> {};
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+20 
+	gIsVis™abË
+<
+	gT
+&> : 
+IsVis™abË
+<
+T
+> {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/De£rŸliz©iÚ/de£rŸlize.hµ
+>
+
+8 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+9 
+	~<ArdušoJsÚ/MsgPack/’dŸÃss.hµ
+>
+
+10 
+	~<ArdušoJsÚ/MsgPack/›“754.hµ
+>
+
+11 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+12 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTR—d”
+,�y³Çm�
+	gTSŒšgStÜage
+>
+
+17 þas 
+	cMsgPackDe£rŸliz”
+ {
+
+18 
+ty³Çme
+ 
+	t»move_»ã»nû
+<
+	tTSŒšgStÜage
+>::
+	tty³
+::
+	tSŒšgBužd”
+
+
+19 
+	tSŒšgBužd”
+;
+
+21 
+	gpublic
+:
+
+22 
+MsgPackDe£rŸliz”
+(
+MemÜyPoÞ
+ &
+poÞ
+, 
+TR—d”
+ 
+»ad”
+,
+
+23 
+TSŒšgStÜage
+ 
+¡ršgStÜage
+)
+
+24 : 
+_poÞ
+(&
+poÞ
+), 
+_»ad”
+(
+»ad”
+), 
+_¡ršgStÜage
+(
+¡ršgStÜage
+) {}
+
+26 
+De£rŸliz©iÚE¼Ü
+ 
+·r£
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+AÎowAÎFž‹r
+,
+
+27 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+28  
+·r£
+(
+v¬ŸÁ
+, 
+Ã¡šgLim™
+);
+
+31 
+De£rŸliz©iÚE¼Ü
+ 
+·r£
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+32 
+ušt8_t
+ 
+	gcode
+;
+
+33 ià(!
+»adBy‹
+(
+code
+))
+
+34  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+36 ià((
+	gcode
+ & 0x80) == 0) {
+
+37 
+v¬ŸÁ
+.
+£tUnsigÃdIÁeg”
+(
+code
+);
+
+38  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+41 ià((
+	gcode
+ & 0xe0) == 0xe0) {
+
+42 
+v¬ŸÁ
+.
+£tSigÃdIÁeg”
+(
+¡©ic_ÿ¡
+<
+št8_t
+>(
+code
+));
+
+43  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+46 ià((
+	gcode
+ & 0xe0) == 0xa0) {
+
+47  
+»adSŒšg
+(
+v¬ŸÁ
+, 
+code
+ & 0x1f);
+
+50 ià((
+	gcode
+ & 0xf0) == 0x90) {
+
+51  
+»adA¼ay
+(
+v¬ŸÁ
+.
+toA¼ay
+(), 
+code
+ & 0x0F, 
+Ã¡šgLim™
+);
+
+54 ià((
+	gcode
+ & 0xf0) == 0x80) {
+
+55  
+»adObjeù
+(
+v¬ŸÁ
+.
+toObjeù
+(), 
+code
+ & 0x0F, 
+Ã¡šgLim™
+);
+
+58 
+	gcode
+) {
+
+61  
+De£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+64 
+v¬ŸÁ
+.
+£tBoÞ—n
+(
+çl£
+);
+
+65  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+68 
+v¬ŸÁ
+.
+£tBoÞ—n
+(
+Œue
+);
+
+69  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+72  
+»adIÁeg”
+<
+ušt8_t
+>(
+v¬ŸÁ
+);
+
+75  
+»adIÁeg”
+<
+ušt16_t
+>(
+v¬ŸÁ
+);
+
+78  
+»adIÁeg”
+<
+ušt32_t
+>(
+v¬ŸÁ
+);
+
+81 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+82  
+»adIÁeg”
+<
+ušt64_t
+>(
+v¬ŸÁ
+);
+
+84  
+	gDe£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+;
+
+88  
+»adIÁeg”
+<
+št8_t
+>(
+v¬ŸÁ
+);
+
+91  
+»adIÁeg”
+<
+št16_t
+>(
+v¬ŸÁ
+);
+
+94  
+»adIÁeg”
+<
+št32_t
+>(
+v¬ŸÁ
+);
+
+97 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+98  
+»adIÁeg”
+<
+št64_t
+>(
+v¬ŸÁ
+);
+
+100  
+	gDe£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+;
+
+104  
+»adFlßt
+<>(
+v¬ŸÁ
+);
+
+107  
+»adDoubË
+<>(
+v¬ŸÁ
+);
+
+110  
+»adSŒšg
+<
+ušt8_t
+>(
+v¬ŸÁ
+);
+
+113  
+»adSŒšg
+<
+ušt16_t
+>(
+v¬ŸÁ
+);
+
+116  
+»adSŒšg
+<
+ušt32_t
+>(
+v¬ŸÁ
+);
+
+119  
+»adA¼ay
+<
+ušt16_t
+>(
+v¬ŸÁ
+.
+toA¼ay
+(), 
+	gÃ¡šgLim™
+);
+
+122  
+»adA¼ay
+<
+ušt32_t
+>(
+v¬ŸÁ
+.
+toA¼ay
+(), 
+	gÃ¡šgLim™
+);
+
+125  
+»adObjeù
+<
+ušt16_t
+>(
+v¬ŸÁ
+.
+toObjeù
+(), 
+	gÃ¡šgLim™
+);
+
+128  
+»adObjeù
+<
+ušt32_t
+>(
+v¬ŸÁ
+.
+toObjeù
+(), 
+	gÃ¡šgLim™
+);
+
+131  
+De£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+;
+
+135 
+	g´iv©e
+:
+
+137 
+MsgPackDe£rŸliz”
+ &
+Ý”©Ü
+=(const MsgPackDeserializer &);
+
+139 
+boÞ
+ 
+»adBy‹
+(
+ušt8_t
+ &
+v®ue
+) {
+
+140 
+	gc
+ = 
+_»ad”
+.
+»ad
+();
+
+141 ià(
+	gc
+ < 0)
+
+142  
+	gçl£
+;
+
+143 
+	gv®ue
+ = 
+¡©ic_ÿ¡
+<
+ušt8_t
+>(
+c
+);
+
+144  
+	gŒue
+;
+
+147 
+boÞ
+ 
+»adBy‹s
+(
+ušt8_t
+ *
+p
+, 
+size_t
+ 
+n
+) {
+
+148  
+	g_»ad”
+.
+»adBy‹s
+(
+»š‹½»t_ÿ¡
+<*>(
+p
+), 
+n
+) ==‚;
+
+151 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+152 
+boÞ
+ 
+»adBy‹s
+(
+T
+ &
+v®ue
+) {
+
+153  
+»adBy‹s
+(
+»š‹½»t_ÿ¡
+<
+ušt8_t
+ *>(&
+v®ue
+), (value));
+
+156 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+157 
+T
+ 
+»adIÁeg”
+() {
+
+158 
+T
+ 
+	gv®ue
+;
+
+159 
+»adBy‹s
+(
+v®ue
+);
+
+160 
+fixEndŸÃss
+(
+v®ue
+);
+
+161  
+	gv®ue
+;
+
+164 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+165 
+boÞ
+ 
+»adIÁeg”
+(
+T
+ &
+v®ue
+) {
+
+166 ià(!
+»adBy‹s
+(
+v®ue
+))
+
+167  
+	gçl£
+;
+
+168 
+fixEndŸÃss
+(
+v®ue
+);
+
+169  
+	gŒue
+;
+
+172 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+173 
+De£rŸliz©iÚE¼Ü
+ 
+»adIÁeg”
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+174 
+T
+ 
+	gv®ue
+;
+
+175 ià(!
+»adIÁeg”
+(
+v®ue
+))
+
+176  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+177 
+	gv¬ŸÁ
+.
+£tIÁeg”
+(
+v®ue
+);
+
+178  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+181 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+182 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð4, 
+	gDe£rŸliz©iÚE¼Ü
+>::
+ty³
+ 
+»adFlßt
+(
+
+183 
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+184 
+T
+ 
+v®ue
+;
+
+185 ià(!
+»adBy‹s
+(
+v®ue
+))
+
+186  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+187 
+fixEndŸÃss
+(
+v®ue
+);
+
+188 
+	gv¬ŸÁ
+.
+£tFlßt
+(
+v®ue
+);
+
+189  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+192 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+193 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð8, 
+	gDe£rŸliz©iÚE¼Ü
+>::
+ty³
+ 
+»adDoubË
+(
+
+194 
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+195 
+T
+ 
+v®ue
+;
+
+196 ià(!
+»adBy‹s
+(
+v®ue
+))
+
+197  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+198 
+fixEndŸÃss
+(
+v®ue
+);
+
+199 
+	gv¬ŸÁ
+.
+£tFlßt
+(
+v®ue
+);
+
+200  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+203 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+204 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð4, 
+	gDe£rŸliz©iÚE¼Ü
+>::
+ty³
+ 
+»adDoubË
+(
+
+205 
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+206 
+ušt8_t
+ 
+i
+[8];
+
+207 
+T
+ 
+	gv®ue
+;
+
+208 
+ušt8_t
+ *
+	go
+ = 
+»š‹½»t_ÿ¡
+<ušt8_ˆ*>(&
+v®ue
+);
+
+209 ià(!
+»adBy‹s
+(
+i
+, 8))
+
+210  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+211 
+doubËToFlßt
+(
+i
+, 
+o
+);
+
+212 
+fixEndŸÃss
+(
+v®ue
+);
+
+213 
+	gv¬ŸÁ
+.
+£tFlßt
+(
+v®ue
+);
+
+214  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+217 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+218 
+De£rŸliz©iÚE¼Ü
+ 
+»adSŒšg
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+) {
+
+219 
+T
+ 
+	gsize
+;
+
+220 ià(!
+»adIÁeg”
+(
+size
+))
+
+221  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+222  
+»adSŒšg
+(
+v¬ŸÁ
+, 
+size
+);
+
+225 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+226 
+De£rŸliz©iÚE¼Ü
+ 
+»adSŒšg
+(cÚ¡ *&
+¡r
+) {
+
+227 
+T
+ 
+	gsize
+;
+
+228 ià(!
+»adIÁeg”
+(
+size
+))
+
+229  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+230  
+»adSŒšg
+(
+¡r
+, 
+size
+);
+
+233 
+De£rŸliz©iÚE¼Ü
+ 
+»adSŒšg
+(
+V¬ŸÁD©a
+ &
+v¬ŸÁ
+, 
+size_t
+ 
+n
+) {
+
+234 cÚ¡ *
+	gs
+ = 0;
+
+235 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+»adSŒšg
+(
+s
+, 
+n
+);
+
+236 ià(!
+	g”r
+)
+
+237 
+	gv¬ŸÁ
+.
+£tOwÃdSŒšg
+(
+make_nÙ_nuÎ
+(
+s
+));
+
+238  
+	g”r
+;
+
+241 
+De£rŸliz©iÚE¼Ü
+ 
+»adSŒšg
+(cÚ¡ *&
+»suÉ
+, 
+size_t
+ 
+n
+) {
+
+242 
+SŒšgBužd”
+ 
+	gbužd”
+ = 
+_¡ršgStÜage
+.
+¡¬tSŒšg
+();
+
+243 ; 
+	gn
+; --n) {
+
+244 
+ušt8_t
+ 
+	gc
+;
+
+245 ià(!
+»adBy‹s
+(
+c
+))
+
+246  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+247 
+	gbužd”
+.
+­³nd
+(
+¡©ic_ÿ¡
+<>(
+c
+));
+
+249 
+	g»suÉ
+ = 
+bužd”
+.
+com¶‘e
+();
+
+250 ià(!
+	g»suÉ
+)
+
+251  
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+252  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+255 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSize
+>
+
+256 
+De£rŸliz©iÚE¼Ü
+ 
+»adA¼ay
+(
+CÞËùiÚD©a
+ &
+¬¿y
+,
+
+257 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+258 
+TSize
+ 
+	gsize
+;
+
+259 ià(!
+»adIÁeg”
+(
+size
+))
+
+260  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+261  
+»adA¼ay
+(
+¬¿y
+, 
+size
+, 
+Ã¡šgLim™
+);
+
+264 
+De£rŸliz©iÚE¼Ü
+ 
+»adA¼ay
+(
+CÞËùiÚD©a
+ &
+¬¿y
+, 
+size_t
+ 
+n
+,
+
+265 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+266 ià(
+	gÃ¡šgLim™
+.
+»ached
+())
+
+267  
+	gDe£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+269 ; 
+	gn
+; --n) {
+
+270 
+V¬ŸÁD©a
+ *
+	gv®ue
+ = 
+¬¿y
+.
+addEËm’t
+(
+_poÞ
+);
+
+271 ià(!
+	gv®ue
+)
+
+272  
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+274 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+·r£
+(*
+v®ue
+, 
+Ã¡šgLim™
+.
+deüem’t
+());
+
+275 ià(
+	g”r
+)
+
+276  
+	g”r
+;
+
+279  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+282 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSize
+>
+
+283 
+De£rŸliz©iÚE¼Ü
+ 
+»adObjeù
+(
+CÞËùiÚD©a
+ &
+objeù
+,
+
+284 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+285 
+TSize
+ 
+	gsize
+;
+
+286 ià(!
+»adIÁeg”
+(
+size
+))
+
+287  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+288  
+»adObjeù
+(
+objeù
+, 
+size
+, 
+Ã¡šgLim™
+);
+
+291 
+De£rŸliz©iÚE¼Ü
+ 
+»adObjeù
+(
+CÞËùiÚD©a
+ &
+objeù
+, 
+size_t
+ 
+n
+,
+
+292 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+) {
+
+293 ià(
+	gÃ¡šgLim™
+.
+»ached
+())
+
+294  
+	gDe£rŸliz©iÚE¼Ü
+::
+TooD“p
+;
+
+296 ; 
+	gn
+; --n) {
+
+297 
+V¬ŸÁSlÙ
+ *
+	g¦Ù
+ = 
+objeù
+.
+addSlÙ
+(
+_poÞ
+);
+
+298 ià(!
+	g¦Ù
+)
+
+299  
+	gDe£rŸliz©iÚE¼Ü
+::
+NoMemÜy
+;
+
+301 cÚ¡ *
+	gkey
+ = 0;
+
+302 
+De£rŸliz©iÚE¼Ü
+ 
+	g”r
+ = 
+·r£Key
+(
+key
+);
+
+303 ià(
+	g”r
+)
+
+304  
+	g”r
+;
+
+305 
+	g¦Ù
+->
+£tOwÃdKey
+(
+make_nÙ_nuÎ
+(
+key
+));
+
+307 
+	g”r
+ = 
+·r£
+(*
+¦Ù
+->
+d©a
+(), 
+Ã¡šgLim™
+.
+deüem’t
+());
+
+308 ià(
+	g”r
+)
+
+309  
+	g”r
+;
+
+312  
+	gDe£rŸliz©iÚE¼Ü
+::
+Ok
+;
+
+315 
+De£rŸliz©iÚE¼Ü
+ 
+·r£Key
+(cÚ¡ *&
+key
+) {
+
+316 
+ušt8_t
+ 
+	gcode
+;
+
+317 ià(!
+»adBy‹
+(
+code
+))
+
+318  
+	gDe£rŸliz©iÚE¼Ü
+::
+Incom¶‘eIÅut
+;
+
+320 ià((
+	gcode
+ & 0xe0) == 0xa0)
+
+321  
+»adSŒšg
+(
+key
+, 
+code
+ & 0x1f);
+
+323 
+	gcode
+) {
+
+325  
+»adSŒšg
+<
+ušt8_t
+>(
+key
+);
+
+328  
+»adSŒšg
+<
+ušt16_t
+>(
+key
+);
+
+331  
+»adSŒšg
+<
+ušt32_t
+>(
+key
+);
+
+334  
+De£rŸliz©iÚE¼Ü
+::
+NÙSuµÜ‹d
+;
+
+338 
+MemÜyPoÞ
+ *
+	g_poÞ
+;
+
+339 
+TR—d”
+ 
+	g_»ad”
+;
+
+340 
+TSŒšgStÜage
+ 
+	g_¡ršgStÜage
+;
+
+343 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+344 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+345 
+JsÚDocum’t
+ &
+doc
+, cÚ¡ 
+TIÅut
+ &
+šput
+,
+
+346 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+347  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+348 
+	`AÎowAÎFž‹r
+());
+
+349 
+	}
+}
+
+351 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+352 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+353 
+JsÚDocum’t
+ &
+doc
+, 
+TIÅut
+ *
+šput
+,
+
+354 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+355  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+356 
+	`AÎowAÎFž‹r
+());
+
+357 
+	}
+}
+
+359 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+360 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+361 
+JsÚDocum’t
+ &
+doc
+, 
+TIÅut
+ *
+šput
+, 
+size_t
+ 
+šputSize
+,
+
+362 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+363  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+šputSize
+, 
+Ã¡šgLim™
+,
+
+364 
+	`AÎowAÎFž‹r
+());
+
+365 
+	}
+}
+
+367 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+368 
+De£rŸliz©iÚE¼Ü
+ 
+de£rŸlizeMsgPack
+(
+
+369 
+JsÚDocum’t
+ &
+doc
+, 
+TIÅut
+ &
+šput
+,
+
+370 
+Ne¡šgLim™
+ 
+Ã¡šgLim™
+ = 
+	$Ne¡šgLim™
+()) {
+
+371  
+de£rŸlize
+<
+MsgPackDe£rŸliz”
+>(
+doc
+, 
+šput
+, 
+Ã¡šgLim™
+,
+
+372 
+	`AÎowAÎFž‹r
+());
+
+373 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MsgPack/’dŸÃss.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/m—su».hµ
+>
+
+11 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/£rŸlize.hµ
+>
+
+12 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTWr™”
+>
+
+17 þas 
+	cMsgPackS”Ÿliz”
+ {
+
+18 
+	gpublic
+:
+
+19 
+MsgPackS”Ÿliz”
+(
+TWr™”
+ 
+wr™”
+è: 
+_wr™”
+(wr™”), 
+_by‹sWr™‹n
+(0) {}
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+22 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð4>::
+ty³
+ 
+vis™Flßt
+(
+T
+ 
+v®ue32
+) {
+
+23 
+wr™eBy‹
+(0xCA);
+
+24 
+wr™eIÁeg”
+(
+v®ue32
+);
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+28 
+ARDUINOJSON_NO_SANITIZE
+("float-cast-overflow")
+
+29 
+ty³Çme
+ 
+	g’abË_if
+<(
+	gT
+è=ð8>::
+ty³
+ 
+vis™Flßt
+(
+T
+ 
+v®ue64
+) {
+
+30 
+v®ue32
+ = (
+v®ue64
+);
+
+31 ià(
+	gv®ue32
+ =ð
+v®ue64
+) {
+
+32 
+wr™eBy‹
+(0xCA);
+
+33 
+wr™eIÁeg”
+(
+v®ue32
+);
+
+35 
+wr™eBy‹
+(0xCB);
+
+36 
+wr™eIÁeg”
+(
+v®ue64
+);
+
+40 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+¬¿y
+) {
+
+41 
+size_t
+ 
+	gn
+ = 
+¬¿y
+.
+size
+();
+
+42 ià(
+	gn
+ < 0x10) {
+
+43 
+wr™eBy‹
+(
+ušt8_t
+(0x90 + 
+¬¿y
+.
+size
+()));
+
+44 } ià(
+	gn
+ < 0x10000) {
+
+45 
+wr™eBy‹
+(0xDC);
+
+46 
+wr™eIÁeg”
+(
+ušt16_t
+(
+n
+));
+
+48 
+wr™eBy‹
+(0xDD);
+
+49 
+wr™eIÁeg”
+(
+ušt32_t
+(
+n
+));
+
+51 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+¬¿y
+.
+h—d
+(); slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+()) {
+
+52 
+¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+56 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+& 
+objeù
+) {
+
+57 
+size_t
+ 
+	gn
+ = 
+objeù
+.
+size
+();
+
+58 ià(
+	gn
+ < 0x10) {
+
+59 
+wr™eBy‹
+(
+ušt8_t
+(0x80 + 
+n
+));
+
+60 } ià(
+	gn
+ < 0x10000) {
+
+61 
+wr™eBy‹
+(0xDE);
+
+62 
+wr™eIÁeg”
+(
+ušt16_t
+(
+n
+));
+
+64 
+wr™eBy‹
+(0xDF);
+
+65 
+wr™eIÁeg”
+(
+ušt32_t
+(
+n
+));
+
+67 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+objeù
+.
+h—d
+(); slÙ; slÙ = 
+¦Ù
+->
+Ãxt
+()) {
+
+68 
+vis™SŒšg
+(
+¦Ù
+->
+key
+());
+
+69 
+	g¦Ù
+->
+d©a
+()->
+acû±
+(*
+this
+);
+
+73 
+vis™SŒšg
+(cÚ¡ * 
+v®ue
+) {
+
+74 
+ARDUINOJSON_ASSERT
+(
+v®ue
+ !ð
+NULL
+);
+
+76 
+size_t
+ 
+	gn
+ = 
+¡¾’
+(
+v®ue
+);
+
+78 ià(
+	gn
+ < 0x20) {
+
+79 
+wr™eBy‹
+(
+ušt8_t
+(0xA0 + 
+n
+));
+
+80 } ià(
+	gn
+ < 0x100) {
+
+81 
+wr™eBy‹
+(0xD9);
+
+82 
+wr™eIÁeg”
+(
+ušt8_t
+(
+n
+));
+
+83 } ià(
+	gn
+ < 0x10000) {
+
+84 
+wr™eBy‹
+(0xDA);
+
+85 
+wr™eIÁeg”
+(
+ušt16_t
+(
+n
+));
+
+87 
+wr™eBy‹
+(0xDB);
+
+88 
+wr™eIÁeg”
+(
+ušt32_t
+(
+n
+));
+
+90 
+wr™eBy‹s
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+*>(
+v®ue
+), 
+n
+);
+
+93 
+vis™RawJsÚ
+(cÚ¡ * 
+d©a
+, 
+size_t
+ 
+size
+) {
+
+94 
+wr™eBy‹s
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+ušt8_t
+*>(
+d©a
+), 
+size
+);
+
+97 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+98 
+UIÁ
+ 
+	gÃg©ed
+ = UIÁ(~
+v®ue
+ + 1);
+
+99 ià(
+	gv®ue
+ <= 0x20) {
+
+100 
+wr™eIÁeg”
+(
+št8_t
+(
+Ãg©ed
+));
+
+101 } ià(
+	gv®ue
+ <= 0x80) {
+
+102 
+wr™eBy‹
+(0xD0);
+
+103 
+wr™eIÁeg”
+(
+št8_t
+(
+Ãg©ed
+));
+
+104 } ià(
+	gv®ue
+ <= 0x8000) {
+
+105 
+wr™eBy‹
+(0xD1);
+
+106 
+wr™eIÁeg”
+(
+št16_t
+(
+Ãg©ed
+));
+
+107 } ià(
+	gv®ue
+ <= 0x80000000) {
+
+108 
+wr™eBy‹
+(0xD2);
+
+109 
+wr™eIÁeg”
+(
+št32_t
+(
+Ãg©ed
+));
+
+111 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+113 
+wr™eBy‹
+(0xD3);
+
+114 
+wr™eIÁeg”
+(
+št64_t
+(
+Ãg©ed
+));
+
+119 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+120 ià(
+	gv®ue
+ <= 0x7F) {
+
+121 
+wr™eIÁeg”
+(
+ušt8_t
+(
+v®ue
+));
+
+122 } ià(
+	gv®ue
+ <= 0xFF) {
+
+123 
+wr™eBy‹
+(0xCC);
+
+124 
+wr™eIÁeg”
+(
+ušt8_t
+(
+v®ue
+));
+
+125 } ià(
+	gv®ue
+ <= 0xFFFF) {
+
+126 
+wr™eBy‹
+(0xCD);
+
+127 
+wr™eIÁeg”
+(
+ušt16_t
+(
+v®ue
+));
+
+128 } ià(
+	gv®ue
+ <= 0xFFFFFFFF) {
+
+129 
+wr™eBy‹
+(0xCE);
+
+130 
+wr™eIÁeg”
+(
+ušt32_t
+(
+v®ue
+));
+
+132 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+134 
+wr™eBy‹
+(0xCF);
+
+135 
+wr™eIÁeg”
+(
+ušt64_t
+(
+v®ue
+));
+
+140 
+vis™BoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+141 
+wr™eBy‹
+(
+v®ue
+ ? 0xC3 : 0xC2);
+
+144 
+vis™NuÎ
+() {
+
+145 
+wr™eBy‹
+(0xC0);
+
+148 
+size_t
+ 
+by‹sWr™‹n
+() const {
+
+149  
+	g_by‹sWr™‹n
+;
+
+152 
+	g´iv©e
+:
+
+153 
+wr™eBy‹
+(
+ušt8_t
+ 
+c
+) {
+
+154 
+_by‹sWr™‹n
+ +ð
+_wr™”
+.
+wr™e
+(
+c
+);
+
+157 
+wr™eBy‹s
+(cÚ¡ 
+ušt8_t
+* 
+p
+, 
+size_t
+ 
+n
+) {
+
+158 
+	g_by‹sWr™‹n
+ +ð
+_wr™”
+.
+wr™e
+(
+p
+, 
+n
+);
+
+161 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+162 
+wr™eIÁeg”
+(
+T
+ 
+v®ue
+) {
+
+163 
+fixEndŸÃss
+(
+v®ue
+);
+
+164 
+wr™eBy‹s
+(
+»š‹½»t_ÿ¡
+<
+ušt8_t
+*>(&
+v®ue
+), (value));
+
+167 
+TWr™”
+ 
+	g_wr™”
+;
+
+168 
+size_t
+ 
+	g_by‹sWr™‹n
+;
+
+171 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+,�y³Çm�
+	gTDe¡š©iÚ
+>
+
+172 
+šlše
+ 
+size_t
+ 
+	$£rŸlizeMsgPack
+(cÚ¡ 
+TSourû
+& 
+sourû
+, 
+TDe¡š©iÚ
+& 
+ou�ut
+) {
+
+173  
+£rŸlize
+<
+MsgPackS”Ÿliz”
+>(
+sourû
+, 
+ou�ut
+);
+
+174 
+	}
+}
+
+176 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+177 
+šlše
+ 
+size_t
+ 
+	$£rŸlizeMsgPack
+(cÚ¡ 
+TSourû
+& 
+sourû
+, * 
+ou�ut
+,
+
+178 
+size_t
+ 
+size
+) {
+
+179  
+£rŸlize
+<
+MsgPackS”Ÿliz”
+>(
+sourû
+, 
+ou�ut
+, 
+size
+);
+
+180 
+	}
+}
+
+182 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSourû
+>
+
+183 
+šlše
+ 
+size_t
+ 
+	$m—su»MsgPack
+(cÚ¡ 
+TSourû
+& 
+sourû
+) {
+
+184  
+m—su»
+<
+MsgPackS”Ÿliz”
+>(
+sourû
+);
+
+185 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/utž™y.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 #ià
+ARDUINOJSON_LITTLE_ENDIAN
+
+
+13 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *
+p
+, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 8>) {
+
+14 
+sw­
+(
+p
+[0],…[7]);
+
+15 
+sw­
+(
+p
+[1],…[6]);
+
+16 
+sw­
+(
+p
+[2],…[5]);
+
+17 
+sw­
+(
+p
+[3],…[4]);
+
+20 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *
+p
+, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 4>) {
+
+21 
+sw­
+(
+p
+[0],…[3]);
+
+22 
+sw­
+(
+p
+[1],…[2]);
+
+25 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *
+p
+, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 2>) {
+
+26 
+sw­
+(
+p
+[0],…[1]);
+
+29 
+šlše
+ 
+fixEndŸÃss
+(
+ušt8_t
+ *, 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, 1>) {}
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+32 
+šlše
+ 
+fixEndŸÃss
+(
+T
+ &
+v®ue
+) {
+
+33 
+fixEndŸÃss
+(
+»š‹½»t_ÿ¡
+<
+ušt8_t
+ *>(&
+v®ue
+),
+
+34 
+š‹g¿l_cÚ¡ªt
+<
+size_t
+, (
+T
+)>());
+
+37 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+38 
+šlše
+ 
+fixEndŸÃss
+(
+T
+ &) {}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+šlše
+ 
+doubËToFlßt
+(cÚ¡ 
+ušt8_t
+ 
+d
+[8], ušt8_ˆ
+f
+[4]) {
+
+12 
+	gf
+[0] = 
+ušt8_t
+((
+d
+[0] & 0xC0) | (d[0] << 3 & 0x3f) | (d[1] >> 5));
+
+13 
+	gf
+[1] = 
+ušt8_t
+((
+d
+[1] << 3) | (d[2] >> 5));
+
+14 
+	gf
+[2] = 
+ušt8_t
+((
+d
+[2] << 3) | (d[3] >> 5));
+
+15 
+	gf
+[3] = 
+ušt8_t
+((
+d
+[3] << 3) | (d[4] >> 5));
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Namespace.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/v”siÚ.hµ
+>
+
+10 
+	#ARDUINOJSON_DO_CONCAT
+(
+A
+, 
+B
+èA##
+	)
+B
+
+11 
+	#ARDUINOJSON_CONCAT2
+(
+A
+, 
+B
+è
+	`ARDUINOJSON_DO_CONCAT
+(A, B)
+
+	)
+
+12 
+	#ARDUINOJSON_CONCAT4
+(
+A
+, 
+B
+, 
+C
+, 
+D
+) \
+
+13 
+	`ARDUINOJSON_CONCAT2
+(ARDUINOJSON_CONCAT2(
+A
+, 
+B
+), ARDUINOJSON_CONCAT2(
+C
+, 
+D
+))
+
+	)
+
+14 
+	#ARDUINOJSON_CONCAT8
+(
+A
+, 
+B
+, 
+C
+, 
+D
+, 
+E
+, 
+F
+, 
+G
+, 
+H
+) \
+
+15 
+	`ARDUINOJSON_CONCAT2
+(
+	`ARDUINOJSON_CONCAT4
+(
+A
+, 
+B
+, 
+C
+, 
+D
+), \
+
+16 
+	`ARDUINOJSON_CONCAT4
+(
+E
+, 
+F
+, 
+G
+, 
+H
+))
+
+	)
+
+17 
+	#ARDUINOJSON_CONCAT12
+(
+A
+, 
+B
+, 
+C
+, 
+D
+, 
+E
+, 
+F
+, 
+G
+, 
+H
+, 
+I
+, 
+J
+, 
+K
+, 
+L
+) \
+
+18 
+	`ARDUINOJSON_CONCAT8
+(
+A
+, 
+B
+, 
+C
+, 
+D
+, 
+E
+, 
+F
+, 
+G
+, \
+
+19 
+	`ARDUINOJSON_CONCAT4
+(
+H
+, 
+I
+, 
+J
+, 
+	`ARDUINOJSON_CONCAT2
+(
+K
+, 
+L
+)))
+
+	)
+
+21 
+	#ARDUINOJSON_NAMESPACE
+ \
+
+22 
+	`ARDUINOJSON_CONCAT12
+( \
+
+23 
+ArdušoJsÚ
+, 
+ARDUINOJSON_VERSION_MAJOR
+, 
+ARDUINOJSON_VERSION_MINOR
+, \
+
+24 
+ARDUINOJSON_VERSION_REVISION
+, 
+_
+, 
+ARDUINOJSON_USE_LONG_LONG
+, \
+
+25 
+ARDUINOJSON_USE_DOUBLE
+, 
+ARDUINOJSON_DECODE_UNICODE
+, \
+
+26 
+ARDUINOJSON_ENABLE_NAN
+, 
+ARDUINOJSON_ENABLE_INFINITY
+, \
+
+27 
+ARDUINOJSON_ENABLE_PROGMEM
+, 
+ARDUINOJSON_ENABLE_COMMENTS
+)
+
+	)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 #ià
+ARDUINOJSON_USE_DOUBLE
+
+
+13 
+	tFlßt
+;
+
+15 
+	tFlßt
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/FlßtT¿™s.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/m©h.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFlßt
+>
+
+14 
+	sFlßtP¬ts
+ {
+
+15 
+ušt32_t
+ 
+	gš‹g¿l
+;
+
+16 
+ušt32_t
+ 
+	gdecim®
+;
+
+17 
+št16_t
+ 
+	gexpÚ’t
+;
+
+18 
+št8_t
+ 
+	gdecim®PÏûs
+;
+
+20 
+FlßtP¬ts
+(
+TFlßt
+ 
+v®ue
+) {
+
+21 
+ušt32_t
+ 
+	gmaxDecim®P¬t
+ = (
+TFlßt
+) >= 8 ? 1000000000 : 1000000;
+
+22 
+	gdecim®PÏûs
+ = (
+TFlßt
+) >= 8 ? 9 : 6;
+
+24 
+	gexpÚ’t
+ = 
+nÜm®ize
+(
+v®ue
+);
+
+26 
+	gš‹g¿l
+ = 
+ušt32_t
+(
+v®ue
+);
+
+28 
+ušt32_t
+ 
+	gtmp
+ = 
+š‹g¿l
+;�mp >= 10;�mp /= 10) {
+
+29 
+maxDecim®P¬t
+ /= 10;
+
+30 
+	gdecim®PÏûs
+--;
+
+33 
+TFlßt
+ 
+	g»mašd”
+ = (
+v®ue
+ - TFlßt(
+š‹g¿l
+)è* TFlßt(
+maxDecim®P¬t
+);
+
+35 
+	gdecim®
+ = 
+ušt32_t
+(
+»mašd”
+);
+
+36 
+	g»mašd”
+ = 
+»mašd”
+ - 
+TFlßt
+(
+decim®
+);
+
+40 
+	gdecim®
+ +ð
+ušt32_t
+(
+»mašd”
+ * 2);
+
+41 ià(
+	gdecim®
+ >ð
+maxDecim®P¬t
+) {
+
+42 
+decim®
+ = 0;
+
+43 
+	gš‹g¿l
+++;
+
+44 ià(
+	gexpÚ’t
+ && 
+	gš‹g¿l
+ >= 10) {
+
+45 
+expÚ’t
+++;
+
+46 
+	gš‹g¿l
+ = 1;
+
+51 
+	gdecim®
+ % 10 =ð0 && 
+decim®PÏûs
+ > 0) {
+
+52 
+decim®
+ /= 10;
+
+53 
+	gdecim®PÏûs
+--;
+
+57 
+št16_t
+ 
+nÜm®ize
+(
+TFlßt
+& 
+v®ue
+) {
+
+58 
+	gFlßtT¿™s
+<
+	tTFlßt
+> 
+	tŒa™s
+;
+
+59 
+št16_t
+ 
+	gpow”sOf10
+ = 0;
+
+61 
+št8_t
+ 
+	gšdex
+ = (
+TFlßt
+) == 8 ? 8 : 5;
+
+62 
+	gb™
+ = 1 << 
+šdex
+;
+
+64 ià(
+	gv®ue
+ >ð
+ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD
+) {
+
+65 ; 
+	gšdex
+ >= 0; index--) {
+
+66 ià(
+	gv®ue
+ >ð
+Œa™s
+::
+pos™iveBš¬yPow”OfT’
+(
+šdex
+)) {
+
+67 
+v®ue
+ *ð
+Œa™s
+::
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+);
+
+68 
+	gpow”sOf10
+ = 
+št16_t
+(
+pow”sOf10
+ + 
+b™
+);
+
+70 
+	gb™
+ >>= 1;
+
+74 ià(
+	gv®ue
+ > 0 && v®u�<ð
+ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD
+) {
+
+75 ; 
+	gšdex
+ >= 0; index--) {
+
+76 ià(
+	gv®ue
+ < 
+	gŒa™s
+::
+Ãg©iveBš¬yPow”OfT’PlusOÃ
+(
+šdex
+)) {
+
+77 
+v®ue
+ *ð
+Œa™s
+::
+pos™iveBš¬yPow”OfT’
+(
+šdex
+);
+
+78 
+	gpow”sOf10
+ = 
+št16_t
+(
+pow”sOf10
+ - 
+b™
+);
+
+80 
+	gb™
+ >>= 1;
+
+84  
+	gpow”sOf10
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+8 
+	~<¡dšt.h
+>
+
+10 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+11 
+	~<ArdušoJsÚ/PÞyfžls/®Ÿs_ÿ¡.hµ
+>
+
+12 
+	~<ArdušoJsÚ/PÞyfžls/m©h.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+	gsize_t
+ = (
+T
+)>
+
+17 
+	sFlßtT¿™s
+ {};
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+20 
+	gFlßtT¿™s
+<
+	gT
+, 8 > {
+
+21 
+ušt64_t
+ 
+	tmªtis§_ty³
+;
+
+22 cÚ¡ 
+	gmªtis§_b™s
+ = 52;
+
+23 cÚ¡ 
+mªtis§_ty³
+ 
+	gmªtis§_max
+ =
+
+24 (
+mªtis§_ty³
+(1è<< 
+mªtis§_b™s
+) - 1;
+
+26 
+št16_t
+ 
+	texpÚ’t_ty³
+;
+
+27 cÚ¡ 
+expÚ’t_ty³
+ 
+	gexpÚ’t_max
+ = 308;
+
+29 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTExpÚ’t
+>
+
+30 
+T
+ 
+make_æßt
+(T 
+m
+, 
+TExpÚ’t
+ 
+e
+) {
+
+31 ià(
+	ge
+ > 0) {
+
+32 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+33 ià(
+	ge
+ & 1)
+
+34 
+	gm
+ *ð
+pos™iveBš¬yPow”OfT’
+(
+šdex
+);
+
+35 
+	ge
+ >>= 1;
+
+38 
+	ge
+ = 
+TExpÚ’t
+(-
+e
+);
+
+39 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+40 ià(
+	ge
+ & 1)
+
+41 
+	gm
+ *ð
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+);
+
+42 
+	ge
+ >>= 1;
+
+45  
+	gm
+;
+
+48 
+T
+ 
+pos™iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+49 
+T
+ 
+	gçùÜs
+[] = {
+
+55 
+fÜge
+(0x4693B8B5, 0xB5056E17),
+
+56 
+fÜge
+(0x4D384F03, 0xE93FF9F5),
+
+57 
+fÜge
+(0x5A827748, 0xF9301D32),
+
+58 
+fÜge
+(0x75154FDD, 0x7F73BF3C)
+
+60  
+	gçùÜs
+[
+šdex
+];
+
+63 
+T
+ 
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+64 
+T
+ 
+	gçùÜs
+[] = {
+
+65 
+fÜge
+(0x3FB99999, 0x9999999A),
+
+66 
+fÜge
+(0x3F847AE1, 0x47AE147B),
+
+67 
+fÜge
+(0x3F1A36E2, 0xEB1C432D),
+
+68 
+fÜge
+(0x3E45798E, 0xE2308C3A),
+
+69 
+fÜge
+(0x3C9CD2B2, 0x97D889BC),
+
+70 
+fÜge
+(0x3949F623, 0xD5A8A733),
+
+71 
+fÜge
+(0x32A50FFD, 0x44F4A73D),
+
+72 
+fÜge
+(0x255BBA08, 0xCF8C979D),
+
+73 
+fÜge
+(0x0AC80628, 0x64AC6F43)
+
+75  
+	gçùÜs
+[
+šdex
+];
+
+78 
+T
+ 
+Ãg©iveBš¬yPow”OfT’PlusOÃ
+(
+šdex
+) {
+
+79 
+T
+ 
+	gçùÜs
+[] = {
+
+81 
+fÜge
+(0x3FB99999, 0x9999999A),
+
+82 
+fÜge
+(0x3F50624D, 0xD2F1A9FC),
+
+83 
+fÜge
+(0x3E7AD7F2, 0x9ABCAF48),
+
+84 
+fÜge
+(0x3CD203AF, 0x9EE75616),
+
+85 
+fÜge
+(0x398039D6, 0x65896880),
+
+86 
+fÜge
+(0x32DA53FC, 0x9631D10D),
+
+87 
+fÜge
+(0x25915445, 0x81B7DEC2),
+
+88 
+fÜge
+(0x0AFE07B2, 0x7DD78B14)
+
+90  
+	gçùÜs
+[
+šdex
+];
+
+93 
+T
+ 
+Çn
+() {
+
+94  
+fÜge
+(0x7ff80000, 0x00000000);
+
+97 
+T
+ 
+šf
+() {
+
+98  
+fÜge
+(0x7ff00000, 0x00000000);
+
+101 
+T
+ 
+highe¡
+() {
+
+102  
+fÜge
+(0x7FEFFFFF, 0xFFFFFFFF);
+
+105 
+T
+ 
+lowe¡
+() {
+
+106  
+fÜge
+(0xFFEFFFFF, 0xFFFFFFFF);
+
+112 
+T
+ 
+fÜge
+(
+ušt32_t
+ 
+msb
+, ušt32_ˆ
+lsb
+) {
+
+113  
+	g®Ÿs_ÿ¡
+<
+	gT
+>((
+ušt64_t
+(
+msb
+è<< 32è| 
+	glsb
+);
+
+117 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+118 
+	gFlßtT¿™s
+<
+	gT
+, 4 > {
+
+119 
+ušt32_t
+ 
+	tmªtis§_ty³
+;
+
+120 cÚ¡ 
+	gmªtis§_b™s
+ = 23;
+
+121 cÚ¡ 
+mªtis§_ty³
+ 
+	gmªtis§_max
+ =
+
+122 (
+mªtis§_ty³
+(1è<< 
+mªtis§_b™s
+) - 1;
+
+124 
+št8_t
+ 
+	texpÚ’t_ty³
+;
+
+125 cÚ¡ 
+expÚ’t_ty³
+ 
+	gexpÚ’t_max
+ = 38;
+
+127 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTExpÚ’t
+>
+
+128 
+T
+ 
+make_æßt
+(T 
+m
+, 
+TExpÚ’t
+ 
+e
+) {
+
+129 ià(
+	ge
+ > 0) {
+
+130 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+131 ià(
+	ge
+ & 1)
+
+132 
+	gm
+ *ð
+pos™iveBš¬yPow”OfT’
+(
+šdex
+);
+
+133 
+	ge
+ >>= 1;
+
+136 
+	ge
+ = -
+e
+;
+
+137 
+ušt8_t
+ 
+	gšdex
+ = 0; 
+	ge
+ != 0; index++) {
+
+138 ià(
+	ge
+ & 1)
+
+139 
+	gm
+ *ð
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+);
+
+140 
+	ge
+ >>= 1;
+
+143  
+	gm
+;
+
+146 
+T
+ 
+pos™iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+147 
+T
+ 
+	gçùÜs
+[] = {1e1f, 1e2f, 1e4f, 1e8f, 1e16f, 1e32f};
+
+148  
+	gçùÜs
+[
+šdex
+];
+
+151 
+T
+ 
+Ãg©iveBš¬yPow”OfT’
+(
+šdex
+) {
+
+152 
+T
+ 
+	gçùÜs
+[] = {1e-1f, 1e-2f, 1e-4f, 1e-8f, 1e-16f, 1e-32f};
+
+153  
+	gçùÜs
+[
+šdex
+];
+
+156 
+T
+ 
+Ãg©iveBš¬yPow”OfT’PlusOÃ
+(
+šdex
+) {
+
+157 
+T
+ 
+	gçùÜs
+[] = {1e0f, 1e-1f, 1e-3f, 1e-7f, 1e-15f, 1e-31f};
+
+158  
+	gçùÜs
+[
+šdex
+];
+
+161 
+T
+ 
+fÜge
+(
+ušt32_t
+ 
+b™s
+) {
+
+162  
+	g®Ÿs_ÿ¡
+<
+	gT
+>(
+	gb™s
+);
+
+165 
+T
+ 
+Çn
+() {
+
+166  
+fÜge
+(0x7fc00000);
+
+169 
+T
+ 
+šf
+() {
+
+170  
+fÜge
+(0x7f800000);
+
+173 
+T
+ 
+highe¡
+() {
+
+174  
+fÜge
+(0x7f7fffff);
+
+177 
+T
+ 
+lowe¡
+() {
+
+178  
+fÜge
+(0xFf7fffff);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+10 
+	~<¡dšt.h
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 #ià
+ARDUINOJSON_USE_LONG_LONG
+
+
+15 
+št64_t
+ 
+	tIÁeg”
+;
+
+16 
+ušt64_t
+ 
+	tUIÁ
+;
+
+18 
+	tIÁeg”
+;
+
+19 
+	tUIÁ
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp
+
+5 #´agm¨
+Úû
+
+
+7 #ià
+defšed
+(
+__þªg__
+)
+
+8 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+push
+
+
+9 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wconversion"
+
+10 #–ià
+defšed
+(
+__GNUC__
+)
+
+11 #ià
+__GNUC__
+ > 4 || (__GNUC__ =ð4 && 
+__GNUC_MINOR__
+ >= 6)
+
+12 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+14 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wconversion"
+
+17 
+	~<ArdušoJsÚ/Numb”s/Flßt.hµ
+>
+
+18 
+	~<ArdušoJsÚ/Numb”s/FlßtT¿™s.hµ
+>
+
+19 
+	~<ArdušoJsÚ/Numb”s/IÁeg”.hµ
+>
+
+20 
+	~<ArdušoJsÚ/PÞyfžls/lim™s.hµ
+>
+
+22 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+24 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+25 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && (
+TOut
+è<ð(
+TIn
+),
+
+26 
+	gboÞ
+>::
+ty³
+
+
+27 
+ÿnStÜePos™iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+28  
+v®ue
+ <ð
+TIn
+(
+num”ic_lim™s
+<
+TOut
+>::
+highe¡
+());
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+32 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && (
+TIn
+è< (
+TOut
+),
+
+33 
+	gboÞ
+>::
+ty³
+
+
+34 
+ÿnStÜePos™iveIÁeg”
+(
+TIn
+) {
+
+35  
+Œue
+;
+
+38 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+39 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+40 
+ÿnStÜePos™iveIÁeg”
+(
+TIn
+) {
+
+41  
+Œue
+;
+
+44 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+45 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+46 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+) {
+
+47  
+Œue
+;
+
+50 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+51 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && 
+is_sigÃd
+<
+TOut
+>::value &&
+
+52 (
+TOut
+è<ð(
+TIn
+),
+
+53 
+	gboÞ
+>::
+ty³
+
+
+54 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+55  
+v®ue
+ <ð
+TIn
+(
+num”ic_lim™s
+<
+TOut
+>::
+highe¡
+()) + 1;
+
+58 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+59 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && 
+is_sigÃd
+<
+TOut
+>::value &&
+
+60 (
+TIn
+è< (
+TOut
+),
+
+61 
+	gboÞ
+>::
+ty³
+
+
+62 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+) {
+
+63  
+Œue
+;
+
+66 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+67 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gTOut
+>::
+v®ue
+ && 
+is_unsigÃd
+<
+TOut
+>::value,
+
+68 
+	gboÞ
+>::
+ty³
+
+
+69 
+ÿnStÜeNeg©iveIÁeg”
+(
+TIn
+) {
+
+70  
+çl£
+;
+
+73 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+74 
+TOut
+ 
+cÚv”tPos™iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+75  
+	gÿnStÜePos™iveIÁeg”
+<
+	gTOut
+>(
+	gv®ue
+è? 
+TOut
+(
+v®ue
+) : 0;
+
+78 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+79 
+TOut
+ 
+cÚv”tNeg©iveIÁeg”
+(
+TIn
+ 
+v®ue
+) {
+
+80  
+	gÿnStÜeNeg©iveIÁeg”
+<
+	gTOut
+>(
+	gv®ue
+è? 
+TOut
+(~
+v®ue
+ + 1) : 0;
+
+83 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+84 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, TOut>::
+ty³
+ 
+cÚv”tFlßt
+(
+
+85 
+TIn
+ 
+v®ue
+) {
+
+86  
+TOut
+(
+v®ue
+);
+
+89 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTOut
+,�y³Çm�
+	gTIn
+>
+
+90 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_æßtšg_pošt
+<
+	gTOut
+>::
+v®ue
+, TOut>::
+ty³
+ 
+cÚv”tFlßt
+(
+
+91 
+TIn
+ 
+v®ue
+) {
+
+92  
+v®ue
+ >ð
+num”ic_lim™s
+<
+TOut
+>::
+lowe¡
+() &&
+
+93 
+v®ue
+ <ð
+num”ic_lim™s
+<
+TOut
+>::
+highe¡
+()
+
+94 ? 
+TOut
+(
+v®ue
+)
+
+99 #ià
+defšed
+(
+__þªg__
+)
+
+100 #´agm¨
+þªg
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+101 #–ià
+defšed
+(
+__GNUC__
+)
+
+102 #ià
+__GNUC__
+ > 4 || (__GNUC__ =ð4 && 
+__GNUC_MINOR__
+ >= 6)
+
+103 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseFloat.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/·r£Numb”.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+šlše
+ 
+T
+ 
+·r£Flßt
+(cÚ¡ * 
+s
+) {
+
+15 
+ty³Çme
+ 
+	tchoo£_Ïrge¡
+<
+	tFlßt
+, 
+	tT
+>::
+	tty³
+ 
+	tTFlßt
+;
+
+16  
+	g·r£Numb”
+<
+	gTFlßt
+, 
+	gUIÁ
+>(
+	gs
+).
+‹m¶©e
+ 
+	gas
+<
+	gT
+>();
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseInteger.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/·r£Numb”.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+T
+ 
+·r£IÁeg”
+(cÚ¡ *
+s
+) {
+
+15 
+ty³Çme
+ 
+	tchoo£_Ïrge¡
+<
+	tUIÁ
+, 
+	tty³Çme
+ 
+	tmake_unsigÃd
+<
+	tT
+>::
+	tty³
+>::type
+
+16 
+	tTUIÁ
+;
+
+17  
+	g·r£Numb”
+<
+	gFlßt
+, 
+	gTUIÁ
+>(
+	gs
+).
+‹m¶©e
+ 
+	gas
+<
+	gT
+>();
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Numb”s/FlßtT¿™s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+	~<ArdušoJsÚ/PÞyfžls/ùy³.hµ
+>
+
+11 
+	~<ArdušoJsÚ/PÞyfžls/m©h.hµ
+>
+
+12 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+13 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁCÚ‹Á.hµ
+>
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFlßt
+,�y³Çm�
+	gTUIÁ
+>
+
+18 
+	sP¬£dNumb”
+ {
+
+19 
+P¬£dNumb”
+(è: 
+uštV®ue
+(0), 
+æßtV®ue
+(0), 
+_ty³
+(
+VALUE_IS_NULL
+) {}
+
+21 
+P¬£dNumb”
+(
+TUIÁ
+ 
+v®ue
+, 
+boÞ
+ 
+is_Ãg©ive
+)
+
+22 : 
+uštV®ue
+(
+v®ue
+),
+
+23 
+æßtV®ue
+(
+TFlßt
+(
+v®ue
+)),
+
+24 
+_ty³
+(
+ušt8_t
+(
+is_Ãg©ive
+ ? 
+VALUE_IS_NEGATIVE_INTEGER
+
+
+25 : 
+VALUE_IS_POSITIVE_INTEGER
+)) {}
+
+26 
+P¬£dNumb”
+(
+TFlßt
+ 
+v®ue
+è: 
+æßtV®ue
+(v®ue), 
+_ty³
+(
+VALUE_IS_FLOAT
+) {}
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+29 
+T
+ 
+as
+() const {
+
+30 
+	g_ty³
+) {
+
+31 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+32  
+cÚv”tNeg©iveIÁeg”
+<
+T
+>(
+uštV®ue
+);
+
+33 
+	gVALUE_IS_POSITIVE_INTEGER
+:
+
+34  
+cÚv”tPos™iveIÁeg”
+<
+T
+>(
+uštV®ue
+);
+
+35 
+	gVALUE_IS_FLOAT
+:
+
+36  
+cÚv”tFlßt
+<
+T
+>(
+æßtV®ue
+);
+
+42 
+ušt8_t
+ 
+ty³
+() const {
+
+43  
+	g_ty³
+;
+
+46 
+TUIÁ
+ 
+	guštV®ue
+;
+
+47 
+TFlßt
+ 
+	gæßtV®ue
+;
+
+48 
+ušt8_t
+ 
+	g_ty³
+;
+
+51 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gA
+,�y³Çm�
+	gB
+>
+
+52 
+	gchoo£_Ïrge¡
+ : 
+cÚd™iÚ®
+<((
+A
+è> (
+B
+)), 
+	gA
+, 
+	gB
+> {};
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTFlßt
+,�y³Çm�
+	gTUIÁ
+>
+
+55 
+šlše
+ 
+	gP¬£dNumb”
+<
+	gTFlßt
+, 
+	gTUIÁ
+> 
+·r£Numb”
+(cÚ¡ *
+s
+) {
+
+56 
+	gFlßtT¿™s
+<
+	tTFlßt
+> 
+	tŒa™s
+;
+
+57 
+ty³Çme
+ 
+	tchoo£_Ïrge¡
+<
+	tty³Çme
+ 
+	tŒa™s
+::
+	tmªtis§_ty³
+, 
+	tTUIÁ
+>::
+	tty³
+
+
+58 
+	tmªtis§_t
+;
+
+59 
+ty³Çme
+ 
+	tŒa™s
+::
+	texpÚ’t_ty³
+ 
+	texpÚ’t_t
+;
+
+60 
+	gP¬£dNumb”
+<
+	tTFlßt
+, 
+	tTUIÁ
+> 
+	t»tuº_ty³
+;
+
+62 
+ARDUINOJSON_ASSERT
+(
+s
+ != 0);
+
+64 
+boÞ
+ 
+	gis_Ãg©ive
+ = 
+çl£
+;
+
+65 *
+	gs
+) {
+
+67 
+is_Ãg©ive
+ = 
+Œue
+;
+
+68 
+	gs
+++;
+
+71 
+s
+++;
+
+75 #ià
+ARDUINOJSON_ENABLE_NAN
+
+
+76 ià(*
+	gs
+ =ð'n' || *
+s
+ == 'N')
+
+77  
+Œa™s
+::
+Çn
+();
+
+80 #ià
+ARDUINOJSON_ENABLE_INFINITY
+
+
+81 ià(*
+	gs
+ =ð'i' || *
+s
+ == 'I')
+
+82  
+is_Ãg©ive
+ ? -
+Œa™s
+::
+šf
+() :�raits::inf();
+
+85 ià(!
+isdig™
+(*
+s
+è&& *
+	gs
+ != '.')
+
+86  
+»tuº_ty³
+();
+
+88 
+mªtis§_t
+ 
+	gmªtis§
+ = 0;
+
+89 
+expÚ’t_t
+ 
+	gexpÚ’t_off£t
+ = 0;
+
+90 cÚ¡ 
+mªtis§_t
+ 
+	gmaxUšt
+ = 
+TUIÁ
+(-1);
+
+92 
+isdig™
+(*
+s
+)) {
+
+93 
+ušt8_t
+ 
+	gdig™
+ = ušt8_t(*
+s
+ - '0');
+
+94 ià(
+	gmªtis§
+ > 
+	gmaxUšt
+ / 10)
+
+96 
+	gmªtis§
+ *= 10;
+
+97 ià(
+	gmªtis§
+ > 
+	gmaxUšt
+ - 
+	gdig™
+)
+
+99 
+	gmªtis§
+ +ð
+dig™
+;
+
+100 
+	gs
+++;
+
+103 ià(*
+	gs
+ == '\0')
+
+104  
+»tuº_ty³
+(
+TUIÁ
+(
+mªtis§
+), 
+is_Ãg©ive
+);
+
+107 
+	gmªtis§
+ > 
+	gŒa™s
+::
+mªtis§_max
+) {
+
+108 
+mªtis§
+ /= 10;
+
+109 
+	gexpÚ’t_off£t
+++;
+
+113 
+isdig™
+(*
+s
+)) {
+
+114 
+	gexpÚ’t_off£t
+++;
+
+115 
+	gs
+++;
+
+118 ià(*
+	gs
+ == '.') {
+
+119 
+s
+++;
+
+120 
+isdig™
+(*
+s
+)) {
+
+121 ià(
+	gmªtis§
+ < 
+	gŒa™s
+::
+mªtis§_max
+ / 10) {
+
+122 
+mªtis§
+ = mªtis§ * 10 + 
+ušt8_t
+(*
+s
+ - '0');
+
+123 
+	gexpÚ’t_off£t
+--;
+
+125 
+	gs
+++;
+
+129 
+	gexpÚ’t
+ = 0;
+
+130 ià(*
+	gs
+ =ð'e' || *
+s
+ == 'E') {
+
+131 
+s
+++;
+
+132 
+boÞ
+ 
+	gÃg©ive_expÚ’t
+ = 
+çl£
+;
+
+133 ià(*
+	gs
+ == '-') {
+
+134 
+Ãg©ive_expÚ’t
+ = 
+Œue
+;
+
+135 
+	gs
+++;
+
+136 } ià(*
+	gs
+ == '+') {
+
+137 
+s
+++;
+
+140 
+isdig™
+(*
+s
+)) {
+
+141 
+	gexpÚ’t
+ = 
+expÚ’t
+ * 10 + (*
+s
+ - '0');
+
+142 ià(
+	gexpÚ’t
+ + 
+	gexpÚ’t_off£t
+ > 
+	gŒa™s
+::
+expÚ’t_max
+) {
+
+143 ià(
+Ãg©ive_expÚ’t
+)
+
+144  
+is_Ãg©ive
+ ? -0.0f : 0.0f;
+
+146  
+	gis_Ãg©ive
+ ? -
+	gŒa™s
+::
+šf
+(è: 
+Œa™s
+::inf();
+
+148 
+	gs
+++;
+
+150 ià(
+	gÃg©ive_expÚ’t
+)
+
+151 
+	gexpÚ’t
+ = -
+expÚ’t
+;
+
+153 
+	gexpÚ’t
+ +ð
+expÚ’t_off£t
+;
+
+156 ià(*
+	gs
+ != '\0')
+
+157  
+»tuº_ty³
+();
+
+159 
+TFlßt
+ 
+	g»suÉ
+ = 
+Œa™s
+::
+make_æßt
+(
+¡©ic_ÿ¡
+<TFlßt>(
+mªtis§
+), 
+expÚ’t
+);
+
+161  
+	gis_Ãg©ive
+ ? -
+	g»suÉ
+ : 
+»suÉ
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/O³¿tÜs/V¬ŸÁO³¿tÜs.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+11 #ifdeà
+_MSC_VER
+
+
+12 #´agm¨
+w¬nšg
+(
+push
+)
+
+13 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4522)
+
+16 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+,�y³Çm�
+	gTSŒšgRef
+>
+
+19 
+þass
+ 
+	gMemb”Proxy
+ : 
+public
+ 
+V¬ŸÁO³¿tÜs
+<
+Memb”Proxy
+<
+TObjeù
+, 
+	gTSŒšgRef
+> >,
+
+20 
+public
+ 
+	gVis™abË
+ {
+
+21 
+	gMemb”Proxy
+<
+	tTObjeù
+, 
+	tTSŒšgRef
+> 
+	tthis_ty³
+;
+
+23 
+	gpublic
+:
+
+24 
+FORCE_INLINE
+ 
+Memb”Proxy
+(
+TObjeù
+ 
+v¬ŸÁ
+, 
+TSŒšgRef
+ 
+key
+)
+
+25 : 
+_objeù
+(
+v¬ŸÁ
+), 
+_key
+(
+key
+) {}
+
+27 
+FORCE_INLINE
+ 
+Memb”Proxy
+(cÚ¡ Memb”Proxy &
+¤c
+)
+
+28 : 
+_objeù
+(
+¤c
+._objeù), 
+_key
+(src._key) {}
+
+30 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+31  
+g‘Up¡»amMemb”
+();
+
+34 
+FORCE_INLINE
+ 
+	gthis_ty³
+ &
+	gÝ”©Ü
+=(cÚ¡ 
+this_ty³
+ &
+¤c
+) {
+
+35 
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+¤c
+);
+
+36  *
+	gthis
+;
+
+39 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+40 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_¬¿y
+<
+	gTV®ue
+>::
+v®ue
+, 
+	gthis_ty³
+ &>::
+ty³
+
+
+41 
+Ý”©Ü
+=(cÚ¡ 
+TV®ue
+ &
+¤c
+) {
+
+42 
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+¤c
+);
+
+43  *
+	gthis
+;
+
+49 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+50 
+FORCE_INLINE
+ 
+	gthis_ty³
+ &
+	gÝ”©Ü
+=(
+TCh¬
+ *
+¤c
+) {
+
+51 
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+¤c
+);
+
+52  *
+	gthis
+;
+
+55 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+56  
+¡©ic_ÿ¡
+<
+V¬ŸÁCÚ¡Ref
+>(
+g‘Up¡»amMemb”
+()è=ð
+rhs
+;
+
+59 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+V¬ŸÁCÚ¡Ref
+ 
+rhs
+) const {
+
+60  
+¡©ic_ÿ¡
+<
+V¬ŸÁCÚ¡Ref
+>(
+g‘Up¡»amMemb”
+()è!ð
+rhs
+;
+
+63 
+FORCE_INLINE
+ 
+þ—r
+() const {
+
+64 
+g‘Up¡»amMemb”
+().
+þ—r
+();
+
+67 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+68  
+g‘Up¡»amMemb”
+().
+isNuÎ
+();
+
+71 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+72 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gTV®ue
+>::
+ty³
+ 
+as
+() const {
+
+73  
+g‘Up¡»amMemb”
+().
+‹m¶©e
+ 
+as
+<
+TV®ue
+>();
+
+76 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+77 
+FORCE_INLINE
+ 
+boÞ
+ 
+is
+() const {
+
+78  
+g‘Up¡»amMemb”
+().
+‹m¶©e
+ 
+	gis
+<
+	gTV®ue
+>();
+
+81 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+82  
+g‘Up¡»amMemb”
+().
+size
+();
+
+85 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+86 
+g‘Up¡»amMemb”
+().
+»move
+(
+šdex
+);
+
+91 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+92 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+93 
+TCh¬
+ *
+key
+) const {
+
+94 
+g‘Up¡»amMemb”
+().
+»move
+(
+key
+);
+
+98 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+99 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+100 cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+101 
+g‘Up¡»amMemb”
+().
+»move
+(
+key
+);
+
+104 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+105 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁTo
+<
+	gTV®ue
+>::
+ty³
+ 
+to
+() {
+
+106  
+g‘OrAddUp¡»amMemb”
+().
+‹m¶©e
+ 
+to
+<
+TV®ue
+>();
+
+109 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV®ue
+>
+
+110 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(cÚ¡ 
+TV®ue
+ &
+v®ue
+) {
+
+111  
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+v®ue
+);
+
+117 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+118 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+TCh¬
+ *
+v®ue
+) {
+
+119  
+g‘OrAddUp¡»amMemb”
+().
+£t
+(
+v®ue
+);
+
+122 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+123 
+acû±
+(
+Vis™Ü
+ &
+vis™Ü
+) const {
+
+124  
+g‘Up¡»amMemb”
+().
+acû±
+(
+vis™Ü
+);
+
+127 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+addEËm’t
+() const {
+
+128  
+g‘OrAddUp¡»amMemb”
+().
+addEËm’t
+();
+
+131 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+132  
+g‘Up¡»amMemb”
+().
+g‘EËm’t
+(
+šdex
+);
+
+135 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+136  
+g‘OrAddUp¡»amMemb”
+().
+g‘OrAddEËm’t
+(
+šdex
+);
+
+142 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+143 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+ *
+key
+) const {
+
+144  
+g‘Up¡»amMemb”
+().
+g‘Memb”
+(
+key
+);
+
+149 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+150 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+151  
+g‘Up¡»amMemb”
+().
+g‘Memb”
+(
+key
+);
+
+157 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+158 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+ *
+key
+) const {
+
+159  
+g‘OrAddUp¡»amMemb”
+().
+g‘OrAddMemb”
+(
+key
+);
+
+164 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+165 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+166  
+g‘OrAddUp¡»amMemb”
+().
+g‘OrAddMemb”
+(
+key
+);
+
+169 
+	g´iv©e
+:
+
+170 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Up¡»amMemb”
+() const {
+
+171  
+_objeù
+.
+g‘Memb”
+(
+_key
+);
+
+174 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddUp¡»amMemb”
+() const {
+
+175  
+	g_objeù
+.
+g‘OrAddMemb”
+(
+_key
+);
+
+178 
+TObjeù
+ 
+	g_objeù
+;
+
+179 
+TSŒšgRef
+ 
+	g_key
+;
+
+184 #ifdeà
+_MSC_VER
+
+
+185 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+12 
+objeùAcû±
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+obj
+, 
+Vis™Ü
+ &
+vis™Ü
+) {
+
+13 ià(
+	gobj
+)
+
+14 
+	gvis™Ü
+.
+vis™Objeù
+(*
+obj
+);
+
+16 
+	gvis™Ü
+.
+vis™NuÎ
+();
+
+19 
+šlše
+ 
+boÞ
+ 
+objeùEqu®s
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+lhs
+, cÚ¡ CÞËùiÚD©¨*
+rhs
+) {
+
+20 ià(
+	glhs
+ =ð
+rhs
+)
+
+21  
+Œue
+;
+
+22 ià(!
+	glhs
+ || !
+	grhs
+)
+
+23  
+	gçl£
+;
+
+24  
+	glhs
+->
+equ®sObjeù
+(*
+rhs
+);
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+28 
+šlše
+ 
+V¬ŸÁD©a
+ *
+objeùG‘Memb”
+(cÚ¡ 
+CÞËùiÚD©a
+ *
+obj
+,
+
+29 
+TAd­‹dSŒšg
+ 
+key
+) {
+
+30 ià(!
+	gobj
+)
+
+32  
+	gobj
+->
+g‘Memb”
+(
+key
+);
+
+35 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+36 
+objeùRemove
+(
+CÞËùiÚD©a
+ *
+obj
+, 
+TAd­‹dSŒšg
+ 
+key
+) {
+
+37 ià(!
+	gobj
+)
+
+39 
+	gobj
+->
+»moveMemb”
+(
+key
+);
+
+42 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+43 
+šlše
+ 
+V¬ŸÁD©a
+ *
+objeùG‘OrAddMemb”
+(
+CÞËùiÚD©a
+ *
+obj
+,
+
+44 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+45 ià(!
+	gobj
+)
+
+48  
+	gobj
+->
+g‘OrAddMemb”
+(
+key
+, 
+poÞ
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayRef.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+14 
+šlše
+ 
+A¼ayRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edA¼ay
+(
+
+15 cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+16  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+A¼ayRef
+>();
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+21 
+šlše
+ 
+A¼ayRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edA¼ay
+(
+TCh¬
+* 
+key
+) const {
+
+22  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+A¼ayRef
+>();
+
+25 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+26 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+27 
+šlše
+ 
+ObjeùRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edObjeù
+(
+
+28 cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+29  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+ObjeùRef
+>();
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+34 
+šlše
+ 
+ObjeùRef
+ 
+	gObjeùShÜtcuts
+<
+	gTObjeù
+>::
+ü—‹Ne¡edObjeù
+(
+
+35 
+TCh¬
+* 
+key
+) const {
+
+36  
+im¶
+()->
+g‘OrAddMemb”
+(
+key
+).
+‹m¶©e
+ 
+to
+<
+ObjeùRef
+>();
+
+39 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+40 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+41 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+42 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+43  !
+im¶
+()->
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+46 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+47 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+48 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+49 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+cÚ�šsKey
+(
+TCh¬
+* 
+key
+) const {
+
+50  !
+im¶
+()->
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+53 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+55 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+*>::
+v®ue
+,
+
+56 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšg
+*> >::
+ty³
+
+
+57 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+Ý”©Ü
+[](
+TSŒšg
+* 
+key
+) const {
+
+58  
+Memb”Proxy
+<
+TObjeù
+, 
+	gTSŒšg
+*>(*
+im¶
+(), 
+	gkey
+);
+
+61 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+62 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+63 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+,
+
+64 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšg
+> >::
+ty³
+
+
+65 
+ObjeùShÜtcuts
+<
+TObjeù
+>::
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+66  
+Memb”Proxy
+<
+TObjeù
+, 
+	gTSŒšg
+>(*
+im¶
+(), 
+	gkey
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Objeù/Paœ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/SlÙFunùiÚs.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cPaœPŒ
+ {
+
+13 
+	gpublic
+:
+
+14 
+PaœPŒ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_·œ
+(pool, slot) {}
+
+16 cÚ¡ 
+Paœ
+ *
+	gÝ”©Ü
+->() const {
+
+17  &
+	g_·œ
+;
+
+20 cÚ¡ 
+	gPaœ
+ &
+	gÝ”©Ü
+*() const {
+
+21  
+	g_·œ
+;
+
+24 
+	g´iv©e
+:
+
+25 
+Paœ
+ 
+_·œ
+;
+
+28 þas 
+	cObjeùI‹¿tÜ
+ {
+
+29 
+	gpublic
+:
+
+30 
+ObjeùI‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+32 
+ex¶ic™
+ 
+ObjeùI‹¿tÜ
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁSlÙ
+ *
+¦Ù
+)
+
+33 : 
+_poÞ
+(
+poÞ
+), 
+_¦Ù
+(
+¦Ù
+) {}
+
+35 
+Paœ
+ 
+	gÝ”©Ü
+*() const {
+
+36  
+Paœ
+(
+_poÞ
+, 
+_¦Ù
+);
+
+38 
+PaœPŒ
+ 
+	gÝ”©Ü
+->() {
+
+39  
+PaœPŒ
+(
+_poÞ
+, 
+_¦Ù
+);
+
+42 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+ObjeùI‹¿tÜ
+ &
+Ùh”
+) const {
+
+43  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+46 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+ObjeùI‹¿tÜ
+ &
+Ùh”
+) const {
+
+47  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+50 
+	gObjeùI‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+51 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+52  *
+	gthis
+;
+
+55 
+	gObjeùI‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+56 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+57  *
+	gthis
+;
+
+60 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+61  
+	g_¦Ù
+;
+
+64 
+	g´iv©e
+:
+
+65 
+MemÜyPoÞ
+ *
+_poÞ
+;
+
+66 
+V¬ŸÁSlÙ
+ *
+	g_¦Ù
+;
+
+69 þas 
+	cPaœCÚ¡PŒ
+ {
+
+70 
+	gpublic
+:
+
+71 
+PaœCÚ¡PŒ
+(cÚ¡ 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_·œ
+(slot) {}
+
+73 cÚ¡ 
+PaœCÚ¡
+ *
+Ý”©Ü
+->() const {
+
+74  &
+_·œ
+;
+
+77 cÚ¡ 
+	gPaœCÚ¡
+ &
+	gÝ”©Ü
+*() const {
+
+78  
+	g_·œ
+;
+
+81 
+	g´iv©e
+:
+
+82 
+PaœCÚ¡
+ 
+_·œ
+;
+
+85 þas 
+	cObjeùCÚ¡I‹¿tÜ
+ {
+
+86 
+	gpublic
+:
+
+87 
+ObjeùCÚ¡I‹¿tÜ
+(è: 
+_¦Ù
+(0) {}
+
+89 
+ex¶ic™
+ 
+ObjeùCÚ¡I‹¿tÜ
+(cÚ¡ 
+V¬ŸÁSlÙ
+ *
+¦Ù
+è: 
+_¦Ù
+(slot) {}
+
+91 
+PaœCÚ¡
+ 
+Ý”©Ü
+*() const {
+
+92  
+PaœCÚ¡
+(
+_¦Ù
+);
+
+94 
+PaœCÚ¡PŒ
+ 
+	gÝ”©Ü
+->() {
+
+95  
+PaœCÚ¡PŒ
+(
+_¦Ù
+);
+
+98 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+ObjeùCÚ¡I‹¿tÜ
+ &
+Ùh”
+) const {
+
+99  
+_¦Ù
+ =ð
+Ùh”
+._slot;
+
+102 
+boÞ
+ 
+	gÝ”©Ü
+!=(cÚ¡ 
+ObjeùCÚ¡I‹¿tÜ
+ &
+Ùh”
+) const {
+
+103  
+_¦Ù
+ !ð
+Ùh”
+._slot;
+
+106 
+	gObjeùCÚ¡I‹¿tÜ
+ &
+	gÝ”©Ü
+++() {
+
+107 
+	g_¦Ù
+ = 
+_¦Ù
+->
+Ãxt
+();
+
+108  *
+	gthis
+;
+
+111 
+	gObjeùCÚ¡I‹¿tÜ
+ &
+	gÝ”©Ü
++=(
+size_t
+ 
+di¡ªû
+) {
+
+112 
+_¦Ù
+ = _¦Ù->
+Ãxt
+(
+di¡ªû
+);
+
+113  *
+	gthis
+;
+
+116 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+š‹º®
+() {
+
+117  
+	g_¦Ù
+;
+
+120 
+	g´iv©e
+:
+
+121 cÚ¡ 
+V¬ŸÁSlÙ
+ *
+_¦Ù
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Objeù/ObjeùFunùiÚs.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùI‹¿tÜ.hµ
+>
+
+12 
+	#JSON_OBJECT_SIZE
+(
+NUMBER_OF_ELEMENTS
+) \
+
+13 ((
+NUMBER_OF_ELEMENTS
+è* (
+ARDUINOJSON_NAMESPACE
+::
+V¬ŸÁSlÙ
+))
+
+	)
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTD©a
+>
+
+18 þas 
+	cObjeùRefBa£
+ {
+
+19 
+	gpublic
+:
+
+20 
+Ý”©Ü
+ 
+V¬ŸÁCÚ¡Ref
+() const {
+
+21 cÚ¡ * 
+d©a
+ = 
+_d©a
+;
+
+22  
+V¬ŸÁCÚ¡Ref
+(
+»š‹½»t_ÿ¡
+<cÚ¡ 
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+25 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+26 
+FORCE_INLINE
+ 
+acû±
+(
+Vis™Ü
+& 
+vis™Ü
+) const {
+
+27 
+objeùAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+30 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+31  
+	g_d©a
+ == 0;
+
+34 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+boÞ
+() const {
+
+35  
+	g_d©a
+ != 0;
+
+38 
+FORCE_INLINE
+ 
+size_t
+ 
+memÜyU§ge
+() const {
+
+39  
+	g_d©a
+ ? _d©a->
+memÜyU§ge
+() : 0;
+
+42 
+FORCE_INLINE
+ 
+size_t
+ 
+Ã¡šg
+() const {
+
+43  
+	g_d©a
+ ? _d©a->
+Ã¡šg
+() : 0;
+
+46 
+FORCE_INLINE
+ 
+size_t
+ 
+size
+() const {
+
+47  
+	g_d©a
+ ? _d©a->
+size
+() : 0;
+
+50 
+	g´Ùeùed
+:
+
+51 
+ObjeùRefBa£
+(
+TD©a
+* 
+d©a
+è: 
+_d©a
+(data) {}
+
+52 
+TD©a
+* 
+_d©a
+;
+
+55 
+þass
+ 
+	gObjeùCÚ¡Ref
+ : 
+public
+ 
+ObjeùRefBa£
+<cÚ¡ 
+CÞËùiÚD©a
+>,
+
+56 
+public
+ 
+	gVis™abË
+ {
+
+57 
+ä›nd
+ 
+þass
+ 
+	gObjeùRef
+;
+
+58 
+	gObjeùRefBa£
+<cÚ¡ 
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+60 
+	gpublic
+:
+
+61 
+ObjeùCÚ¡I‹¿tÜ
+ 
+	t™”©Ü
+;
+
+63 
+ObjeùCÚ¡Ref
+(è: 
+ba£_ty³
+(0) {}
+
+64 
+ObjeùCÚ¡Ref
+(cÚ¡ 
+CÞËùiÚD©a
+* 
+d©a
+è: 
+ba£_ty³
+(data) {}
+
+66 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+67 ià(!
+_d©a
+)
+
+68  
+™”©Ü
+();
+
+69  
+™”©Ü
+(
+_d©a
+->
+h—d
+());
+
+72 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+73  
+™”©Ü
+();
+
+78 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+79 
+FORCE_INLINE
+ 
+boÞ
+ 
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+80  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+86 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+87 
+FORCE_INLINE
+ 
+boÞ
+ 
+cÚ�šsKey
+(
+TCh¬
+* 
+key
+) const {
+
+88  !
+g‘Memb”
+(
+key
+).
+isUndefšed
+();
+
+93 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+94 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+95  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+101 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+102 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) const {
+
+103  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+108 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+109 
+FORCE_INLINE
+
+
+110 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+111 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+112  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+118 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+119 
+FORCE_INLINE
+
+
+120 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+*>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+121 
+Ý”©Ü
+[](
+TCh¬
+* 
+key
+) const {
+
+122  
+g‘_im¶
+(
+ad­tSŒšg
+(
+key
+));
+
+125 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+ObjeùCÚ¡Ref
+ 
+rhs
+) const {
+
+126  
+objeùEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+129 
+	g´iv©e
+:
+
+130 
+‹m¶©e
+ <
+ty³Çme
+ 
+TAd­‹dSŒšg
+>
+
+131 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘_im¶
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+132  
+V¬ŸÁCÚ¡Ref
+(
+objeùG‘Memb”
+(
+_d©a
+, 
+key
+));
+
+136 
+þass
+ 
+	gObjeùRef
+ : 
+public
+ 
+ObjeùRefBa£
+<
+CÞËùiÚD©a
+>,
+
+137 
+public
+ 
+	gObjeùShÜtcuts
+<
+	gObjeùRef
+>,
+
+138 
+public
+ 
+	gVis™abË
+ {
+
+139 
+	gObjeùRefBa£
+<
+	tCÞËùiÚD©a
+> 
+	tba£_ty³
+;
+
+141 
+	gpublic
+:
+
+142 
+ObjeùI‹¿tÜ
+ 
+	t™”©Ü
+;
+
+144 
+FORCE_INLINE
+ 
+ObjeùRef
+(è: 
+ba£_ty³
+(0), 
+_poÞ
+(0) {}
+
+145 
+FORCE_INLINE
+ 
+ObjeùRef
+(
+MemÜyPoÞ
+* 
+buf
+, 
+CÞËùiÚD©a
+* 
+d©a
+)
+
+146 : 
+ba£_ty³
+(
+d©a
+), 
+_poÞ
+(
+buf
+) {}
+
+148 
+Ý”©Ü
+ 
+V¬ŸÁRef
+() const {
+
+149 * 
+	gd©a
+ = 
+_d©a
+;
+
+150  
+V¬ŸÁRef
+(
+_poÞ
+, 
+»š‹½»t_ÿ¡
+<
+V¬ŸÁD©a
+*>(
+d©a
+));
+
+153 
+Ý”©Ü
+ 
+ObjeùCÚ¡Ref
+() const {
+
+154  
+ObjeùCÚ¡Ref
+(
+_d©a
+);
+
+157 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+begš
+() const {
+
+158 ià(!
+	g_d©a
+)
+
+159  
+™”©Ü
+();
+
+160  
+™”©Ü
+(
+_poÞ
+, 
+_d©a
+->
+h—d
+());
+
+163 
+FORCE_INLINE
+ 
+™”©Ü
+ 
+’d
+() const {
+
+164  
+™”©Ü
+();
+
+167 
+þ—r
+() const {
+
+168 ià(!
+	g_d©a
+)
+
+170 
+	g_d©a
+->
+þ—r
+();
+
+173 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+ObjeùCÚ¡Ref
+ 
+¤c
+) {
+
+174 ià(!
+	g_d©a
+ || !
+	g¤c
+._data)
+
+175  
+	gçl£
+;
+
+176  
+	g_d©a
+->
+cÝyFrom
+(*
+¤c
+.
+_d©a
+, 
+_poÞ
+);
+
+181 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+182 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+183  
+V¬ŸÁRef
+(
+_poÞ
+, 
+objeùG‘Memb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+)));
+
+189 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+190 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+* 
+key
+) const {
+
+191  
+V¬ŸÁRef
+(
+_poÞ
+, 
+objeùG‘Memb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+)));
+
+196 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+197 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+198  
+V¬ŸÁRef
+(
+_poÞ
+,
+
+199 
+objeùG‘OrAddMemb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+), 
+_poÞ
+));
+
+205 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+206 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+* 
+key
+) const {
+
+207  
+V¬ŸÁRef
+(
+_poÞ
+,
+
+208 
+objeùG‘OrAddMemb”
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+), 
+_poÞ
+));
+
+211 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+ObjeùRef
+ 
+rhs
+) const {
+
+212  
+objeùEqu®s
+(
+_d©a
+, 
+rhs
+._data);
+
+215 
+FORCE_INLINE
+ 
+»move
+(
+™”©Ü
+ 
+™
+) const {
+
+216 ià(!
+	g_d©a
+)
+
+218 
+	g_d©a
+->
+»moveSlÙ
+(
+™
+.
+š‹º®
+());
+
+223 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+224 
+FORCE_INLINE
+ 
+»move
+(cÚ¡ 
+TSŒšg
+& 
+key
+) const {
+
+225 
+objeùRemove
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+));
+
+231 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+232 
+FORCE_INLINE
+ 
+»move
+(
+TCh¬
+* 
+key
+) const {
+
+233 
+objeùRemove
+(
+_d©a
+, 
+ad­tSŒšg
+(
+key
+));
+
+236 
+	g´iv©e
+:
+
+237 
+MemÜyPoÞ
+* 
+_poÞ
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/SŒšgAd­‹rs.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTP¬’t
+,�y³Çm�
+	gTSŒšgRef
+>
+
+13 
+þass
+ 
+	gMemb”Proxy
+;
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTObjeù
+>
+
+16 þas 
+	cObjeùShÜtcuts
+ {
+
+17 
+	gpublic
+:
+
+20 
+‹m¶©e
+ <
+ty³Çme
+ 
+TSŒšg
+>
+
+21 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+’abË_if
+<
+IsSŒšg
+<
+TSŒšg
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+22 
+cÚ�šsKey
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+27 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+28 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+29 
+cÚ�šsKey
+(
+TCh¬
+ *
+key
+) const;
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+34 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+,
+
+35 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTSŒšg
+> >::
+ty³
+
+
+36 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+42 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+,
+
+43 
+	gMemb”Proxy
+<
+	gTObjeù
+, 
+	gTCh¬
+ *> >::
+ty³
+
+
+44 
+Ý”©Ü
+[](
+TCh¬
+ *
+key
+) const;
+
+48 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+49 
+FORCE_INLINE
+ 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+55 
+FORCE_INLINE
+ 
+A¼ayRef
+ 
+ü—‹Ne¡edA¼ay
+(
+TCh¬
+ *
+key
+) const;
+
+59 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+60 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const;
+
+65 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+66 
+ObjeùRef
+ 
+ü—‹Ne¡edObjeù
+(
+TCh¬
+ *
+key
+) const;
+
+68 
+	g´iv©e
+:
+
+69 cÚ¡ 
+TObjeù
+ *
+im¶
+() const {
+
+70  
+¡©ic_ÿ¡
+<cÚ¡ 
+TObjeù
+ *>(
+this
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Object/Pair.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/SŒšg.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cPaœ
+ {
+
+13 
+	gpublic
+:
+
+14 
+Paœ
+(
+MemÜyPoÞ
+* 
+poÞ
+, 
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+15 ià(
+	g¦Ù
+) {
+
+16 
+	g_key
+ = 
+SŒšg
+(
+¦Ù
+->
+key
+(), !¦Ù->
+ownsKey
+());
+
+17 
+	g_v®ue
+ = 
+V¬ŸÁRef
+(
+poÞ
+, 
+¦Ù
+->
+d©a
+());
+
+21 
+SŒšg
+ 
+key
+() const {
+
+22  
+	g_key
+;
+
+25 
+V¬ŸÁRef
+ 
+v®ue
+() const {
+
+26  
+	g_v®ue
+;
+
+29 
+	g´iv©e
+:
+
+30 
+SŒšg
+ 
+_key
+;
+
+31 
+V¬ŸÁRef
+ 
+	g_v®ue
+;
+
+34 þas 
+	cPaœCÚ¡
+ {
+
+35 
+	gpublic
+:
+
+36 
+PaœCÚ¡
+(cÚ¡ 
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+37 ià(
+¦Ù
+) {
+
+38 
+_key
+ = 
+SŒšg
+(
+¦Ù
+->
+key
+(), !¦Ù->
+ownsKey
+());
+
+39 
+	g_v®ue
+ = 
+V¬ŸÁCÚ¡Ref
+(
+¦Ù
+->
+d©a
+());
+
+43 
+SŒšg
+ 
+key
+() const {
+
+44  
+	g_key
+;
+
+47 
+V¬ŸÁCÚ¡Ref
+ 
+v®ue
+() const {
+
+48  
+	g_v®ue
+;
+
+51 
+	g´iv©e
+:
+
+52 
+SŒšg
+ 
+_key
+;
+
+53 
+V¬ŸÁCÚ¡Ref
+ 
+	g_v®ue
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantCasts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIm¶
+>
+
+12 þas 
+	cV¬ŸÁCa¡s
+ {
+
+13 
+	gpublic
+:
+
+14 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+15 
+FORCE_INLINE
+ 
+Ý”©Ü
+ 
+T
+() const {
+
+16  
+im¶
+()->
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+19 
+	g´iv©e
+:
+
+20 cÚ¡ 
+TIm¶
+ *
+im¶
+() const {
+
+21  
+¡©ic_ÿ¡
+<cÚ¡ 
+TIm¶
+ *>(
+this
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantComparisons.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gEÇbË
+ = >
+
+12 
+Com·»r
+;
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+15 
+	gCom·»r
+<
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<T>::
+v®ue
+>::
+ty³
+> {
+
+16 
+T
+ 
+rhs
+;
+
+17 
+	g»suÉ
+;
+
+19 
+ex¶ic™
+ 
+Com·»r
+(
+T
+ 
+v®ue
+è: 
+rhs
+(v®ue), 
+»suÉ
+(1) {}
+
+21 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+22 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+23 
+vis™Flßt
+(
+Flßt
+) {}
+
+24 
+vis™SŒšg
+(cÚ¡ *
+lhs
+) {
+
+25 
+	g»suÉ
+ = -
+ad­tSŒšg
+(
+rhs
+).
+com·»
+(
+lhs
+);
+
+27 
+vis™RawJsÚ
+(cÚ¡ *, 
+size_t
+) {}
+
+28 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+) {}
+
+29 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+) {}
+
+30 
+vis™BoÞ—n
+(
+boÞ
+) {}
+
+31 
+vis™NuÎ
+() {
+
+32 
+	g»suÉ
+ = 
+ad­tSŒšg
+(
+rhs
+).
+com·»
+(
+NULL
+);
+
+36 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+37 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_sigÃd
+<
+	gT
+>::
+v®ue
+, >::
+ty³
+ 
+sign
+(cÚ¡ 
+T
+ &value) {
+
+38  
+v®ue
+ < 0 ? -1 : value > 0 ? 1 : 0;
+
+41 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+42 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_unsigÃd
+<
+	gT
+>::
+v®ue
+, >::
+ty³
+ 
+sign
+(cÚ¡ 
+T
+ &value) {
+
+43  
+v®ue
+ > 0 ? 1 : 0;
+
+46 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+47 
+	gCom·»r
+<
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<T>::
+v®ue
+ ||
+
+48 
+is_æßtšg_pošt
+<
+T
+>::
+v®ue
+>::
+ty³
+> {
+
+49 
+T
+ 
+rhs
+;
+
+50 
+	g»suÉ
+;
+
+52 
+ex¶ic™
+ 
+Com·»r
+(
+T
+ 
+v®ue
+è: 
+rhs
+(v®ue), 
+»suÉ
+(1) {}
+
+54 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+55 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+56 
+vis™Flßt
+(
+Flßt
+ 
+lhs
+) {
+
+57 
+	g»suÉ
+ = 
+sign
+(
+lhs
+ - 
+¡©ic_ÿ¡
+<
+Flßt
+>(
+rhs
+));
+
+59 
+vis™SŒšg
+(const *) {}
+
+60 
+vis™RawJsÚ
+(cÚ¡ *, 
+size_t
+) {}
+
+61 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+ 
+lhs
+) {
+
+62 
+	g»suÉ
+ = -
+sign
+(
+¡©ic_ÿ¡
+<
+T
+>(
+lhs
+è+ 
+rhs
+);
+
+64 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+ 
+lhs
+) {
+
+65 
+	g»suÉ
+ = 
+¡©ic_ÿ¡
+<
+T
+>(
+lhs
+è< 
+rhs
+ ? -1 : static_cast<T>(lhs) >„hs ? 1 : 0;
+
+67 
+vis™BoÞ—n
+(
+boÞ
+) {}
+
+68 
+vis™NuÎ
+() {}
+
+71 
+	g‹m¶©e
+ <>
+
+72 
+	gCom·»r
+<
+	gboÞ
+, > {
+
+73 
+boÞ
+ 
+	grhs
+;
+
+74 
+	g»suÉ
+;
+
+76 
+ex¶ic™
+ 
+Com·»r
+(
+boÞ
+ 
+v®ue
+è: 
+rhs
+(v®ue), 
+»suÉ
+(1) {}
+
+78 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+79 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+80 
+vis™Flßt
+(
+Flßt
+) {}
+
+81 
+vis™SŒšg
+(const *) {}
+
+82 
+vis™RawJsÚ
+(cÚ¡ *, 
+size_t
+) {}
+
+83 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+) {}
+
+84 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+) {}
+
+85 
+vis™BoÞ—n
+(
+boÞ
+ 
+lhs
+) {
+
+86 
+	g»suÉ
+ = 
+¡©ic_ÿ¡
+<>(
+lhs
+ - 
+rhs
+);
+
+88 
+vis™NuÎ
+() {}
+
+91 #ià
+ARDUINOJSON_HAS_NULLPTR
+
+
+92 
+	g‹m¶©e
+ <>
+
+93 
+	gCom·»r
+<
+deþty³
+(
+nuÎ±r
+), > {
+
+94 
+	g»suÉ
+;
+
+96 
+ex¶ic™
+ 
+Com·»r
+(
+deþty³
+(
+nuÎ±r
+)è: 
+»suÉ
+(1) {}
+
+98 
+vis™A¼ay
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+99 
+vis™Objeù
+(cÚ¡ 
+CÞËùiÚD©a
+ &) {}
+
+100 
+vis™Flßt
+(
+Flßt
+) {}
+
+101 
+vis™SŒšg
+(const *) {}
+
+102 
+vis™RawJsÚ
+(cÚ¡ *, 
+size_t
+) {}
+
+103 
+vis™Neg©iveIÁeg”
+(
+UIÁ
+) {}
+
+104 
+vis™Pos™iveIÁeg”
+(
+UIÁ
+) {}
+
+105 
+vis™BoÞ—n
+(
+boÞ
+) {}
+
+106 
+vis™NuÎ
+() {
+
+107 
+	g»suÉ
+ = 0;
+
+112 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+113 þas 
+	cV¬ŸÁCom·risÚs
+ {
+
+114 
+	g´iv©e
+:
+
+115 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+116 
+com·»
+(
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+T
+ &
+rhs
+) {
+
+117 
+	gCom·»r
+<
+	gT
+> 
+com·»r
+(
+rhs
+);
+
+118 
+	glhs
+.
+acû±
+(
+com·»r
+);
+
+119  
+	gcom·»r
+.
+	g»suÉ
+;
+
+122 
+	gpublic
+:
+
+124 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+125 
+ä›nd
+ 
+boÞ
+ 
+Ý”©Ü
+==(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+126  
+com·»
+(
+rhs
+, 
+lhs
+) == 0;
+
+128 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+129 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+==(
+
+130 cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+131  
+com·»
+(
+rhs
+, 
+lhs
+) == 0;
+
+135 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+136 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+137  
+com·»
+(
+lhs
+, 
+rhs
+) == 0;
+
+139 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+140 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+==(
+
+141 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+142  
+com·»
+(
+lhs
+, 
+rhs
+) == 0;
+
+146 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+147 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+148  
+com·»
+(
+rhs
+, 
+lhs
+) != 0;
+
+150 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+151 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+!=(
+
+152 cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+153  
+com·»
+(
+rhs
+, 
+lhs
+) != 0;
+
+157 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+158 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+159  
+com·»
+(
+lhs
+, 
+rhs
+) != 0;
+
+161 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+162 
+ä›nd
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gIsVis™abË
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+Ý”©Ü
+!=(
+
+163 
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+164  
+com·»
+(
+lhs
+, 
+rhs
+) != 0;
+
+168 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+169 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(
+T
+ *
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+170  
+com·»
+(
+rhs
+, 
+lhs
+) > 0;
+
+172 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+173 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(cÚ¡ 
+	gT
+ &
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+174  
+com·»
+(
+rhs
+, 
+lhs
+) > 0;
+
+178 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+179 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(
+TV¬ŸÁ
+ 
+	glhs
+, 
+T
+ *
+	grhs
+) {
+
+180  
+com·»
+(
+lhs
+, 
+rhs
+) < 0;
+
+182 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+183 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(
+TV¬ŸÁ
+ 
+	glhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+184  
+com·»
+(
+lhs
+, 
+rhs
+) < 0;
+
+188 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+189 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<=(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+190  
+com·»
+(
+rhs
+, 
+lhs
+) >= 0;
+
+192 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+193 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<=(cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+194  
+com·»
+(
+rhs
+, 
+lhs
+) >= 0;
+
+198 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+199 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<=(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+200  
+com·»
+(
+lhs
+, 
+rhs
+) <= 0;
+
+202 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+203 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+<=(
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+204  
+com·»
+(
+lhs
+, 
+rhs
+) <= 0;
+
+208 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+209 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>(
+T
+ *
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+210  
+com·»
+(
+rhs
+, 
+lhs
+) < 0;
+
+212 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+213 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>(cÚ¡ 
+	gT
+ &
+	glhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+214  
+com·»
+(
+rhs
+, 
+lhs
+) < 0;
+
+218 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+219 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>(
+TV¬ŸÁ
+ 
+	glhs
+, 
+T
+ *
+	grhs
+) {
+
+220  
+com·»
+(
+lhs
+, 
+rhs
+) > 0;
+
+222 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+223 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>(
+TV¬ŸÁ
+ 
+	glhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+224  
+com·»
+(
+lhs
+, 
+rhs
+) > 0;
+
+228 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+229 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>=(
+T
+ *
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+230  
+com·»
+(
+rhs
+, 
+lhs
+) <= 0;
+
+232 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+233 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>=(cÚ¡ 
+T
+ &
+lhs
+, 
+TV¬ŸÁ
+ 
+	grhs
+) {
+
+234  
+com·»
+(
+rhs
+, 
+lhs
+) <= 0;
+
+238 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+239 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>=(
+TV¬ŸÁ
+ 
+lhs
+, 
+T
+ *
+	grhs
+) {
+
+240  
+com·»
+(
+lhs
+, 
+rhs
+) >= 0;
+
+242 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+243 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+>=(
+TV¬ŸÁ
+ 
+lhs
+, cÚ¡ 
+	gT
+ &
+	grhs
+) {
+
+244  
+com·»
+(
+lhs
+, 
+rhs
+) >= 0;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOperators.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/O³¿tÜs/V¬ŸÁCa¡s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/O³¿tÜs/V¬ŸÁCom·risÚs.hµ
+>
+
+9 
+	~<ArdušoJsÚ/O³¿tÜs/V¬ŸÁOr.hµ
+>
+
+10 
+	~<ArdušoJsÚ/O³¿tÜs/V¬ŸÁShÜtcuts.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIm¶
+>
+
+15 
+þass
+ 
+	gV¬ŸÁO³¿tÜs
+ : 
+public
+ 
+V¬ŸÁCa¡s
+<
+TIm¶
+>,
+
+16 
+public
+ 
+	gV¬ŸÁCom·risÚs
+<
+	gTIm¶
+>,
+
+17 
+public
+ 
+	gV¬ŸÁOr
+<
+	gTIm¶
+>,
+
+18 
+public
+ 
+	gV¬ŸÁShÜtcuts
+<
+	gTIm¶
+> {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOr.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/©Œibu‹s.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁAs.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIm¶
+>
+
+14 þas 
+	cV¬ŸÁOr
+ {
+
+15 
+	gpublic
+:
+
+17 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+18 
+T
+ 
+Ý”©Ü
+|(cÚ¡ T &
+deçuÉV®ue
+) const {
+
+19 ià(
+im¶
+()->
+‹m¶©e
+ 
+is
+<
+T
+>())
+
+20  
+im¶
+()->
+‹m¶©e
+ 
+as
+<
+T
+>();
+
+22  
+	gdeçuÉV®ue
+;
+
+27 cÚ¡ *
+	gÝ”©Ü
+|(cÚ¡ *
+	gdeçuÉV®ue
+) const {
+
+28 cÚ¡ *
+	gv®ue
+ = 
+im¶
+()->
+‹m¶©e
+ 
+as
+<const *>();
+
+29  
+	gv®ue
+ ? v®u�: 
+deçuÉV®ue
+;
+
+32 
+	g´iv©e
+:
+
+33 cÚ¡ 
+TIm¶
+ *
+im¶
+() const {
+
+34  
+¡©ic_ÿ¡
+<cÚ¡ 
+TIm¶
+ *>(
+this
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantShortcuts.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/A¼ay/A¼ayShÜtcuts.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Objeù/ObjeùShÜtcuts.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+13 
+þass
+ 
+	gV¬ŸÁShÜtcuts
+ : 
+public
+ 
+ObjeùShÜtcuts
+<
+TV¬ŸÁ
+>,
+
+14 
+public
+ 
+	gA¼ayShÜtcuts
+<
+	gTV¬ŸÁ
+> {
+
+15 
+	gpublic
+:
+
+16 
+usšg
+ 
+A¼ayShÜtcuts
+<
+TV¬ŸÁ
+>::
+ü—‹Ne¡edA¼ay
+;
+
+17 
+usšg
+ 
+	gA¼ayShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+ü—‹Ne¡edObjeù
+;
+
+18 
+usšg
+ 
+	gA¼ayShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+Ý”©Ü
+[];
+
+19 
+usšg
+ 
+	gObjeùShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+ü—‹Ne¡edA¼ay
+;
+
+20 
+usšg
+ 
+	gObjeùShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+ü—‹Ne¡edObjeù
+;
+
+21 
+usšg
+ 
+	gObjeùShÜtcuts
+<
+	gTV¬ŸÁ
+>::
+Ý”©Ü
+[];
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡dšt.h
+>
+
+8 
+	~<¡dlib.h
+>
+
+10 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+11 
+	~"m©h.hµ
+"
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gF
+>
+
+16 
+	s®Ÿs_ÿ¡_t
+ {
+
+18 
+F
+ 
+	g¿w
+;
+
+19 
+T
+ 
+	gd©a
+;
+
+23 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gF
+>
+
+24 
+T
+ 
+®Ÿs_ÿ¡
+(
+F
+ 
+¿w_d©a
+) {
+
+25 
+	g®Ÿs_ÿ¡_t
+<
+	gT
+, 
+	gF
+> 
+	gac
+;
+
+26 
+	gac
+.
+	g¿w
+ = 
+¿w_d©a
+;
+
+27  
+	gac
+.
+	gd©a
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+9 #ià
+ARDUINOJSON_DEBUG
+
+
+10 
+	~<as£¹.h
+>
+
+11 
+	#ARDUINOJSON_ASSERT
+(
+X
+è
+	`as£¹
+(X)
+
+	)
+
+13 
+	#ARDUINOJSON_ASSERT
+(
+X
+è(()0)
+
+	)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp
+
+5 #´agm¨
+Úû
+
+
+7 #ifdeà
+_MSC_VER
+
+
+9 
+	#FORCE_INLINE
+
+
+10 
+	#NO_INLINE
+ 
+	`__deþ¥ec
+(
+nošlše
+)
+
+	)
+
+11 
+	#DEPRECATED
+(
+msg
+è
+	`__deþ¥ec
+(
+	`d•»ÿ‹d
+(msg))
+
+	)
+
+13 #–ià
+defšed
+(
+__GNUC__
+)
+
+15 
+	#FORCE_INLINE
+ 
+	`__©Œibu‹__
+((
+®ways_šlše
+))
+
+	)
+
+16 
+	#NO_INLINE
+ 
+	`__©Œibu‹__
+((
+nošlše
+))
+
+	)
+
+17 #ià
+__GNUC__
+ > 4 || (__GNUC__ =ð4 && 
+__GNUC_MINOR__
+ >= 5)
+
+18 
+	#DEPRECATED
+(
+msg
+è
+	`__©Œibu‹__
+((
+	`d•»ÿ‹d
+(msg)))
+
+	)
+
+20 
+	#DEPRECATED
+(
+msg
+è
+	`__©Œibu‹__
+((
+d•»ÿ‹d
+))
+
+	)
+
+25 
+	#FORCE_INLINE
+
+
+	)
+
+26 
+	#NO_INLINE
+
+
+	)
+
+27 
+	#DEPRECATED
+(
+msg
+)
+
+	)
+
+31 #ià
+__ýlu¥lus
+ >= 201103L
+
+32 
+	#NOEXCEPT
+ 
+nÛxû±
+
+
+	)
+
+34 
+	#NOEXCEPT
+ 
+	`throw
+()
+
+	)
+
+37 #ià
+defšed
+(
+__has_©Œibu‹
+)
+
+38 #ià
+__has_©Œibu‹
+(
+no_§n™ize
+)
+
+39 
+	#ARDUINOJSON_NO_SANITIZE
+(
+check
+è
+	`__©Œibu‹__
+((
+	`no_§n™ize
+(check)))
+
+	)
+
+41 
+	#ARDUINOJSON_NO_SANITIZE
+(
+check
+)
+
+	)
+
+44 
+	#ARDUINOJSON_NO_SANITIZE
+(
+check
+)
+
+	)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+šlše
+ 
+boÞ
+ 
+isdig™
+(
+c
+) {
+
+12  '0' <ð
+c
+ && c <= '9';
+
+15 
+šlše
+ 
+boÞ
+ 
+issign
+(
+c
+) {
+
+16  '-' =ð
+c
+ || c == '+';
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/gsl/not_null.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 þas 
+	cnÙ_nuÎ
+ {
+
+14 
+	gpublic
+:
+
+15 
+ex¶ic™
+ 
+nÙ_nuÎ
+(
+T
+ 
+±r
+è: 
+_±r
+(ptr) {
+
+16 
+ARDUINOJSON_ASSERT
+(
+±r
+ !ð
+NULL
+);
+
+19 
+T
+ 
+g‘
+() const {
+
+20 
+ARDUINOJSON_ASSERT
+(
+_±r
+ !ð
+NULL
+);
+
+21  
+	g_±r
+;
+
+24 
+	g´iv©e
+:
+
+25 
+T
+ 
+_±r
+;
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+29 
+	gnÙ_nuÎ
+<
+	gT
+> 
+	$make_nÙ_nuÎ
+(
+T
+ 
+±r
+) {
+
+30 
+	`ARDUINOJSON_ASSERT
+(
+±r
+ !ð
+NULL
+);
+
+31  
+nÙ_nuÎ
+<
+T
+>(
+±r
+);
+
+32 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_Œa™s.hµ
+"
+
+9 #ifdeà
+_MSC_VER
+
+
+10 #´agm¨
+w¬nšg
+(
+push
+)
+
+11 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4310)
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gEÇbË
+ = >
+
+18 
+num”ic_lim™s
+;
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+21 
+	gnum”ic_lim™s
+<
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_unsigÃd
+<T>::
+v®ue
+>::
+ty³
+> {
+
+22 
+T
+ 
+lowe¡
+() {
+
+25 
+T
+ 
+highe¡
+() {
+
+26  
+T
+(-1);
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+31 
+	gnum”ic_lim™s
+<
+
+32 
+	gT
+, 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<T>::
+v®ue
+ && 
+is_sigÃd
+<
+T
+>::v®ue>::
+ty³
+> {
+
+33 
+T
+ 
+lowe¡
+() {
+
+34  
+T
+(T(1) << ((T) * 8 - 1));
+
+36 
+T
+ 
+highe¡
+() {
+
+37  
+T
+(~
+lowe¡
+());
+
+43 #ifdeà
+_MSC_VER
+
+
+44 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 #iâdeà
+i¢ª
+
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+boÞ
+ 
+i¢ª
+(
+T
+ 
+x
+) {
+
+17  
+	gx
+ !ð
+x
+;
+
+21 #iâdeà
+isšf
+
+
+22 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+23 
+boÞ
+ 
+isšf
+(
+T
+ 
+x
+) {
+
+24  
+	gx
+ !ð0.0 && 
+x
+ * 2 == x;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡ddef.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+size_t
+ 
+	gX
+, size_ˆ
+	gY
+, 
+boÞ
+ 
+	gMaxIsX
+ = (
+X
+ > 
+Y
+)>
+
+15 
+	sMax
+ {};
+
+17 
+	g‹m¶©e
+ <
+size_t
+ 
+	gX
+, size_ˆ
+	gY
+>
+
+18 
+	gMax
+<
+	gX
+, 
+	gY
+, 
+	gŒue
+> {
+
+19 cÚ¡ 
+size_t
+ 
+	gv®ue
+ = 
+X
+;
+
+22 
+	g‹m¶©e
+ <
+size_t
+ 
+	gX
+, size_ˆ
+	gY
+>
+
+23 
+	gMax
+<
+	gX
+, 
+	gY
+, 
+	gçl£
+> {
+
+24 cÚ¡ 
+size_t
+ 
+	gv®ue
+ = 
+Y
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	spgm_p
+ {
+
+14 
+pgm_p
+(cÚ¡ * 
+p
+è: 
+add»ss
+(p) {}
+
+15 cÚ¡ * 
+add»ss
+;
+
+19 #iâdeà
+¡¾’_P
+
+
+20 
+šlše
+ 
+size_t
+ 
+	$¡¾’_P
+(
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+s
+) {
+
+21 cÚ¡ * 
+p
+ = 
+s
+.
+add»ss
+;
+
+22 
+	`ARDUINOJSON_ASSERT
+(
+p
+ !ð
+NULL
+);
+
+23 
+	`pgm_»ad_by‹
+(
+p
+))…++;
+
+24  
+	`size_t
+(
+p
+ - 
+s
+.
+add»ss
+);
+
+25 
+	}
+}
+
+28 #iâdeà
+¡ºcmp_P
+
+
+29 
+šlše
+ 
+	$¡ºcmp_P
+(cÚ¡ * 
+a
+, 
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+b
+, 
+size_t
+ 
+n
+) {
+
+30 cÚ¡ * 
+s1
+ = 
+a
+;
+
+31 cÚ¡ * 
+s2
+ = 
+b
+.
+add»ss
+;
+
+32 
+	`ARDUINOJSON_ASSERT
+(
+s1
+ !ð
+NULL
+);
+
+33 
+	`ARDUINOJSON_ASSERT
+(
+s2
+ !ð
+NULL
+);
+
+34 
+n
+-- > 0) {
+
+35 
+c1
+ = *
+s1
+++;
+
+36 
+c2
+ = 
+¡©ic_ÿ¡
+<>(
+	`pgm_»ad_by‹
+(
+s2
+++));
+
+37 ià(
+c1
+ < 
+c2
+)
+
+39 ià(
+c1
+ > 
+c2
+)
+
+41 ià(
+c1
+ == 0 )
+
+45 
+	}
+}
+
+48 #iâdeà
+¡rcmp_P
+
+
+49 
+šlše
+ 
+	$¡rcmp_P
+(cÚ¡ * 
+a
+, 
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+b
+) {
+
+50 cÚ¡ * 
+s1
+ = 
+a
+;
+
+51 cÚ¡ * 
+s2
+ = 
+b
+.
+add»ss
+;
+
+52 
+	`ARDUINOJSON_ASSERT
+(
+s1
+ !ð
+NULL
+);
+
+53 
+	`ARDUINOJSON_ASSERT
+(
+s2
+ !ð
+NULL
+);
+
+55 
+c1
+ = *
+s1
+++;
+
+56 
+c2
+ = 
+¡©ic_ÿ¡
+<>(
+	`pgm_»ad_by‹
+(
+s2
+++));
+
+57 ià(
+c1
+ < 
+c2
+)
+
+59 ià(
+c1
+ > 
+c2
+)
+
+61 ià(
+c1
+ == 0 )
+
+64 
+	}
+}
+
+67 #iâdeà
+memýy_P
+
+
+68 
+šlše
+ * 
+	$memýy_P
+(* 
+d¡
+, 
+ARDUINOJSON_NAMESPACE
+::
+pgm_p
+ 
+¤c
+, 
+size_t
+ 
+n
+) {
+
+69 
+ušt8_t
+* 
+d
+ = 
+»š‹½»t_ÿ¡
+<ušt8_t*>(
+d¡
+);
+
+70 cÚ¡ * 
+s
+ = 
+¤c
+.
+add»ss
+;
+
+71 
+	`ARDUINOJSON_ASSERT
+(
+d
+ !ð
+NULL
+);
+
+72 
+	`ARDUINOJSON_ASSERT
+(
+s
+ !ð
+NULL
+);
+
+73 
+n
+-- > 0) {
+
+74 *
+d
+++ = 
+	`pgm_»ad_by‹
+(
+s
+++);
+
+76  
+d¡
+;
+
+77 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡dšt.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+šlše
+ 
+§ã_¡rcmp
+(cÚ¡ * 
+a
+, cÚ¡ * 
+b
+) {
+
+14 ià(
+	ga
+ =ð
+b
+)
+
+16 ià(!
+	ga
+)
+
+18 ià(!
+	gb
+)
+
+20  
+¡rcmp
+(
+a
+, 
+b
+);
+
+23 
+šlše
+ 
+§ã_¡ºcmp
+(cÚ¡ * 
+a
+, cÚ¡ * 
+b
+, 
+size_t
+ 
+n
+) {
+
+24 ià(
+	ga
+ =ð
+b
+)
+
+26 ià(!
+	ga
+)
+
+28 ià(!
+	gb
+)
+
+30  
+¡ºcmp
+(
+a
+, 
+b
+, 
+n
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_Œa™s/cÚd™iÚ®.hµ
+"
+
+8 
+	~"ty³_Œa™s/’abË_if.hµ
+"
+
+9 
+	~"ty³_Œa™s/š‹g¿l_cÚ¡ªt.hµ
+"
+
+10 
+	~"ty³_Œa™s/is_¬¿y.hµ
+"
+
+11 
+	~"ty³_Œa™s/is_ba£_of.hµ
+"
+
+12 
+	~"ty³_Œa™s/is_þass.hµ
+"
+
+13 
+	~"ty³_Œa™s/is_cÚ¡.hµ
+"
+
+14 
+	~"ty³_Œa™s/is_cÚv”tibË.hµ
+"
+
+15 
+	~"ty³_Œa™s/is_’um.hµ
+"
+
+16 
+	~"ty³_Œa™s/is_æßtšg_pošt.hµ
+"
+
+17 
+	~"ty³_Œa™s/is_š‹g¿l.hµ
+"
+
+18 
+	~"ty³_Œa™s/is_§me.hµ
+"
+
+19 
+	~"ty³_Œa™s/is_sigÃd.hµ
+"
+
+20 
+	~"ty³_Œa™s/is_unsigÃd.hµ
+"
+
+21 
+	~"ty³_Œa™s/make_unsigÃd.hµ
+"
+
+22 
+	~"ty³_Œa™s/»move_cÚ¡.hµ
+"
+
+23 
+	~"ty³_Œa™s/»move_»ã»nû.hµ
+"
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+boÞ
+ 
+	gCÚd™iÚ
+, 
+þass
+ 
+	gTrueTy³
+, cÏs 
+	gF®£Ty³
+>
+
+12 
+	scÚd™iÚ®
+ {
+
+13 
+TrueTy³
+ 
+	tty³
+;
+
+16 
+	g‹m¶©e
+ <
+þass
+ 
+	gTrueTy³
+, cÏs 
+	gF®£Ty³
+>
+
+17 
+	gcÚd™iÚ®
+<
+	gçl£
+, 
+	gTrueTy³
+, 
+	gF®£Ty³
+> {
+
+18 
+F®£Ty³
+ 
+	tty³
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+T
+ 
+deþv®
+();
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+boÞ
+ 
+	gCÚd™iÚ
+, 
+ty³Çme
+ 
+	gT
+ = >
+
+13 
+	s’abË_if
+ {};
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	g’abË_if
+<
+	gŒue
+, 
+	gT
+> {
+
+17 
+T
+ 
+	tty³
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+T
+ 
+	gv
+>
+
+12 
+	sš‹g¿l_cÚ¡ªt
+ {
+
+13 cÚ¡ 
+T
+ 
+	gv®ue
+ = 
+v
+;
+
+16 
+	gš‹g¿l_cÚ¡ªt
+<
+	tboÞ
+, 
+	tŒue
+> 
+	tŒue_ty³
+;
+
+17 
+	gš‹g¿l_cÚ¡ªt
+<
+	tboÞ
+, 
+	tçl£
+> 
+	tçl£_ty³
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<¡ddef.h
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+	gis_¬¿y
+ : 
+çl£_ty³
+ {};
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	gis_¬¿y
+<
+	gT
+[]> : 
+Œue_ty³
+ {};
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+, 
+size_t
+ 
+	gN
+>
+
+20 
+	gis_¬¿y
+<
+	gT
+[
+N
+]> : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTBa£
+,�y³Çm�
+	gTD”ived
+>
+
+14 þas 
+	cis_ba£_of
+ {
+
+15 
+	g´Ùeùed
+:
+
+16 
+	tYes
+[1];
+
+17 
+	tNo
+[2];
+
+19 
+	gYes
+ &
+´obe
+(cÚ¡ 
+TBa£
+ *);
+
+20 
+	gNo
+ &
+´obe
+(...);
+
+22 
+	gpublic
+:
+
+23 cÚ¡ 
+boÞ
+ 
+v®ue
+ =
+
+24 (
+´obe
+(
+»š‹½»t_ÿ¡
+<
+TD”ived
+ *>(0))è=ð(
+Yes
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"deþv®.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	sis_þass
+ {
+
+13 
+	g´Ùeùed
+:
+
+14 
+	tYes
+[1];
+
+15 
+	tNo
+[2];
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gU
+>
+
+18 
+	gYes
+ &
+´obe
+((
+U
+::*)());
+
+19 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+20 
+	gNo
+ &
+´obe
+(...);
+
+22 
+	gpublic
+:
+
+23 cÚ¡ 
+boÞ
+ 
+v®ue
+ = (
+´obe
+<
+T
+>(0)è=ð(
+Yes
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+	gis_cÚ¡
+ : 
+çl£_ty³
+ {};
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	gis_cÚ¡
+<cÚ¡ 
+	gT
+> : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"deþv®.hµ
+"
+
+9 #ifdeà
+_MSC_VER
+
+
+10 #´agm¨
+w¬nšg
+(
+push
+)
+
+12 #´agm¨
+w¬nšg
+(
+di§bË
+ : 4244)
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gFrom
+,�y³Çm�
+	gTo
+>
+
+18 
+	sis_cÚv”tibË
+ {
+
+19 
+	g´Ùeùed
+:
+
+20 
+	tYes
+[1];
+
+21 
+	tNo
+[2];
+
+23 
+	gYes
+ &
+´obe
+(
+To
+);
+
+24 
+	gNo
+ &
+´obe
+(...);
+
+26 
+	gpublic
+:
+
+27 cÚ¡ 
+boÞ
+ 
+v®ue
+ = (
+´obe
+(
+deþv®
+<
+From
+>())è=ð(
+Yes
+);
+
+32 #ifdeà
+_MSC_VER
+
+
+33 #´agm¨
+w¬nšg
+(
+pÝ
+)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"is_þass.hµ
+"
+
+8 
+	~"is_cÚv”tibË.hµ
+"
+
+9 
+	~"is_æßtšg_pošt.hµ
+"
+
+10 
+	~"is_š‹g¿l.hµ
+"
+
+11 
+	~"is_§me.hµ
+"
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	sis_’um
+ {
+
+17 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ = 
+is_cÚv”tibË
+<
+T
+, >::
+v®ue
+ &&
+
+18 !
+is_þass
+<
+T
+>::
+v®ue
+ && !
+is_š‹g¿l
+<T>::value &&
+
+19 !
+is_æßtšg_pošt
+<
+T
+>::
+v®ue
+ &&
+
+20 !
+is_§me
+<
+T
+, 
+	gboÞ
+>::
+v®ue
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+12 
+	gis_æßtšg_pošt
+ : 
+çl£_ty³
+ {};
+
+14 
+	g‹m¶©e
+ <>
+
+15 
+	gis_æßtšg_pošt
+<> : 
+Œue_ty³
+ {};
+
+17 
+	g‹m¶©e
+ <>
+
+18 
+	gis_æßtšg_pošt
+<> : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~"is_§me.hµ
+"
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+	sis_š‹g¿l
+ {
+
+15 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ =
+
+16 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+17 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+18 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+19 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ || is_same<T, >::value ||
+
+20 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+21 
+is_§me
+<
+T
+, sigÃd >::
+v®ue
+ ||
+
+22 
+is_§me
+<
+T
+, >::
+v®ue
+ ||
+
+24 #ià
+ARDUINOJSON_HAS_INT64
+
+
+25 
+is_§me
+<
+T
+, sigÃd 
+	g__št64
+>::
+v®ue
+ ||
+
+26 
+is_§me
+<
+T
+, 
+	g__št64
+>::
+v®ue
+ ||
+
+28 
+is_§me
+<
+T
+, >::
+v®ue
+;
+
+33 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+34 
+	gis_š‹g¿l
+<cÚ¡ 
+	gT
+> : 
+is_š‹g¿l
+<
+T
+> {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+,�y³Çm�
+	gU
+>
+
+13 
+	gis_§me
+ : 
+çl£_ty³
+ {};
+
+15 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+16 
+	gis_§me
+<
+	gT
+, T> : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+11 
+	gis_sigÃd
+ : 
+çl£_ty³
+ {};
+
+13 
+	g‹m¶©e
+ <>
+
+14 
+	gis_sigÃd
+<> : 
+Œue_ty³
+ {};
+
+16 
+	g‹m¶©e
+ <>
+
+17 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+19 
+	g‹m¶©e
+ <>
+
+20 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+22 
+	g‹m¶©e
+ <>
+
+23 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+25 
+	g‹m¶©e
+ <>
+
+26 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+28 
+	g‹m¶©e
+ <>
+
+29 
+	gis_sigÃd
+<> : 
+Œue_ty³
+ {};
+
+31 
+	g‹m¶©e
+ <>
+
+32 
+	gis_sigÃd
+<> : 
+Œue_ty³
+ {};
+
+34 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+35 
+	g‹m¶©e
+ <>
+
+36 
+	gis_sigÃd
+<sigÃd > : 
+Œue_ty³
+ {};
+
+39 #ià
+ARDUINOJSON_HAS_INT64
+
+
+40 
+	g‹m¶©e
+ <>
+
+41 
+	gis_sigÃd
+<sigÃd 
+	g__št64
+> : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+11 
+	gis_unsigÃd
+ : 
+çl£_ty³
+ {};
+
+13 
+	g‹m¶©e
+ <>
+
+14 
+	gis_unsigÃd
+<
+	gboÞ
+> : 
+Œue_ty³
+ {};
+
+16 
+	g‹m¶©e
+ <>
+
+17 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+19 
+	g‹m¶©e
+ <>
+
+20 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+22 
+	g‹m¶©e
+ <>
+
+23 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+25 
+	g‹m¶©e
+ <>
+
+26 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+28 #ià
+ARDUINOJSON_HAS_INT64
+
+
+29 
+	g‹m¶©e
+ <>
+
+30 
+	gis_unsigÃd
+<
+	g__št64
+> : 
+Œue_ty³
+ {};
+
+33 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+34 
+	g‹m¶©e
+ <>
+
+35 
+	gis_unsigÃd
+<> : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_id’t™y.hµ
+"
+
+8 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+11 
+	gmake_unsigÃd
+;
+
+13 
+	g‹m¶©e
+ <>
+
+14 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+16 
+	g‹m¶©e
+ <>
+
+17 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+18 
+	g‹m¶©e
+ <>
+
+19 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+21 
+	g‹m¶©e
+ <>
+
+22 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+23 
+	g‹m¶©e
+ <>
+
+24 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+26 
+	g‹m¶©e
+ <>
+
+27 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+28 
+	g‹m¶©e
+ <>
+
+29 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+31 
+	g‹m¶©e
+ <>
+
+32 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+33 
+	g‹m¶©e
+ <>
+
+34 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+36 #ià
+ARDUINOJSON_HAS_LONG_LONG
+
+
+37 
+	g‹m¶©e
+ <>
+
+38 
+	gmake_unsigÃd
+<sigÃd > : 
+ty³_id’t™y
+<> {};
+
+39 
+	g‹m¶©e
+ <>
+
+40 
+	gmake_unsigÃd
+<> : 
+ty³_id’t™y
+<> {};
+
+43 #ià
+ARDUINOJSON_HAS_INT64
+
+
+44 
+	g‹m¶©e
+ <>
+
+45 
+	gmake_unsigÃd
+<sigÃd 
+	g__št64
+> : 
+ty³_id’t™y
+<
+__št64
+> {};
+
+46 
+	g‹m¶©e
+ <>
+
+47 
+	gmake_unsigÃd
+<
+	g__št64
+> : 
+ty³_id’t™y
+<
+__št64
+> {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+	s»move_cÚ¡
+ {
+
+14 
+T
+ 
+	tty³
+;
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	g»move_cÚ¡
+<cÚ¡ 
+	gT
+> {
+
+18 
+T
+ 
+	tty³
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+13 
+	s»move_»ã»nû
+ {
+
+14 
+T
+ 
+	tty³
+;
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	g»move_»ã»nû
+<
+	gT
+&> {
+
+18 
+T
+ 
+	tty³
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"š‹g¿l_cÚ¡ªt.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+12 
+	sty³_id’t™y
+ {
+
+13 
+T
+ 
+	tty³
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~"ty³_Œa™s.hµ
+"
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+11 
+šlše
+ 
+sw­
+(
+T
+& 
+a
+, T& 
+b
+) {
+
+12 
+T
+ 
+t
+(
+a
+);
+
+13 
+	ga
+ = 
+b
+;
+
+14 
+	gb
+ = 
+t
+;
+
+17 #ià
+ARDUINOJSON_HAS_RVALUE_REFERENCES
+
+
+18 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+19 
+ty³Çme
+ 
+	g»move_»ã»nû
+<
+	gT
+>::
+ty³
+&& 
+move
+(
+T
+&& 
+t
+) {
+
+20  
+¡©ic_ÿ¡
+<
+ty³Çme
+ 
+»move_»ã»nû
+<
+T
+>::
+ty³
+&&>(
+t
+);
+
+23 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+24 
+	gT
+& 
+move
+(
+T
+& 
+t
+) {
+
+25  
+	gt
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+,�y³Çm�
+	gEÇbË
+ = >
+
+13 þas 
+	cWr™”
+ {
+
+14 
+public
+:
+
+15 
+ex¶ic™
+ 
+Wr™”
+(
+TDe¡š©iÚ
+& 
+de¡
+è: 
+_de¡
+(&dest) {}
+
+17 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+18  
+_de¡
+->
+wr™e
+(
+c
+);
+
+21 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+* 
+s
+, size_ˆ
+n
+) {
+
+22  
+	g_de¡
+->
+wr™e
+(
+s
+, 
+n
+);
+
+25 
+	g´iv©e
+:
+
+26 
+TDe¡š©iÚ
+* 
+_de¡
+;
+
+31 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/S�ticSŒšgWr™”.hµ
+>
+
+33 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+34 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/StdSŒšgWr™”.hµ
+>
+
+37 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+38 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/ArdušoSŒšgWr™”.hµ
+>
+
+41 #ià
+ARDUINOJSON_ENABLE_STD_STREAM
+
+
+42 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/StdSŒ—mWr™”.hµ
+>
+
+45 #ià
+ARDUINOJSON_ENABLE_ARDUINO_PRINT
+
+
+46 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/PrštWr™”.hµ
+>
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<WSŒšg.h
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <>
+
+12 
+þass
+ 
+	gWr™”
+< ::
+SŒšg
+, > {
+
+13 cÚ¡ 
+size_t
+ 
+	gbufãrC­ac™y
+ = 
+ARDUINOJSON_STRING_BUFFER_SIZE
+;
+
+15 
+	gpublic
+:
+
+16 
+ex¶ic™
+ 
+Wr™”
+(::
+SŒšg
+ &
+¡r
+è: 
+_de¡š©iÚ
+(&str) {
+
+17 
+_size
+ = 0;
+
+20 ~
+Wr™”
+() {
+
+21 
+æush
+();
+
+24 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+25 
+ARDUINOJSON_ASSERT
+(
+_size
+ < 
+bufãrC­ac™y
+);
+
+26 
+	g_bufãr
+[
+_size
+++] = 
+¡©ic_ÿ¡
+<>(
+c
+);
+
+27 ià(
+	g_size
+ + 1 >ð
+bufãrC­ac™y
+)
+
+28 
+æush
+();
+
+32 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+s
+, size_ˆ
+n
+) {
+
+33 
+size_t
+ 
+	gi
+ = 0; i < 
+	gn
+; i++) {
+
+34 
+wr™e
+(
+s
+[
+i
+]);
+
+36  
+	gn
+;
+
+39 
+	g´iv©e
+:
+
+40 
+æush
+() {
+
+41 
+ARDUINOJSON_ASSERT
+(
+_size
+ < 
+bufãrC­ac™y
+);
+
+42 
+	g_bufãr
+[
+_size
+] = 0;
+
+43 *
+	g_de¡š©iÚ
+ +ð
+_bufãr
+;
+
+44 
+	g_size
+ = 0;
+
+47 ::
+SŒšg
+ *
+_de¡š©iÚ
+;
+
+48 
+	g_bufãr
+[
+bufãrC­ac™y
+];
+
+49 
+size_t
+ 
+	g_size
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cDummyWr™”
+ {
+
+12 
+	gpublic
+:
+
+13 
+size_t
+ 
+wr™e
+(
+ušt8_t
+) {
+
+17 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+*, size_ˆ
+n
+) {
+
+18  
+	gn
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+10 
+þass
+ 
+	gWr™”
+<
+
+11 
+	gTDe¡š©iÚ
+,
+
+12 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+< ::
+Pršt
+, 
+	gTDe¡š©iÚ
+>::
+v®ue
+>::
+ty³
+> {
+
+13 
+public
+:
+
+14 
+ex¶ic™
+ 
+Wr™”
+(::
+Pršt
+& 
+´št
+è: 
+_´št
+(&print) {}
+
+16 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+17  
+_´št
+->
+wr™e
+(
+c
+);
+
+20 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+* 
+s
+, size_ˆ
+n
+) {
+
+21  
+	g_´št
+->
+wr™e
+(
+s
+, 
+n
+);
+
+24 
+	g´iv©e
+:
+
+25 ::
+Pršt
+* 
+_´št
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cS�ticSŒšgWr™”
+ {
+
+13 
+	gpublic
+:
+
+14 
+S�ticSŒšgWr™”
+(*
+buf
+, 
+size_t
+ 
+size
+è: 
+’d
+(buà+ siz�- 1), 
+p
+(buf) {
+
+15 *
+	gp
+ = '\0';
+
+18 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+19 ià(
+	gp
+ >ð
+’d
+)
+
+21 *
+	gp
+++ = 
+¡©ic_ÿ¡
+<>(
+c
+);
+
+22 *
+	gp
+ = '\0';
+
+26 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+s
+, size_ˆ
+n
+) {
+
+27 *
+	gbegš
+ = 
+p
+;
+
+28 
+	gp
+ < 
+	g’d
+ && 
+	gn
+ > 0) {
+
+29 *
+	gp
+++ = 
+¡©ic_ÿ¡
+<>(*
+s
+++);
+
+30 
+	gn
+--;
+
+32 *
+	gp
+ = '\0';
+
+33  
+size_t
+(
+p
+ - 
+begš
+);
+
+36 
+	g´iv©e
+:
+
+37 *
+’d
+;
+
+38 *
+	gp
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<o¡»am
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+12 
+þass
+ 
+	gWr™”
+<
+
+13 
+	gTDe¡š©iÚ
+,
+
+14 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_ba£_of
+<
+	g¡d
+::
+o¡»am
+, 
+	gTDe¡š©iÚ
+>::
+v®ue
+>::
+ty³
+> {
+
+15 
+public
+:
+
+16 
+ex¶ic™
+ 
+Wr™”
+(
+¡d
+::
+o¡»am
+& 
+os
+è: 
+_os
+(&os) {}
+
+18 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+19 
+_os
+->
+put
+(
+¡©ic_ÿ¡
+<>(
+c
+));
+
+23 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+* 
+s
+, size_ˆ
+n
+) {
+
+24 
+	g_os
+->
+wr™e
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+),
+
+25 
+¡©ic_ÿ¡
+<
+¡d
+::
+¡»amsize
+>(
+n
+));
+
+26  
+	gn
+;
+
+29 
+	g´iv©e
+:
+
+30 
+¡d
+::
+o¡»am
+* 
+_os
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 
+	~<¡ršg
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+15 
+	gis_¡d_¡ršg
+ : 
+çl£_ty³
+ {};
+
+17 
+	g‹m¶©e
+ <
+þass
+ 
+	gTCh¬T¿™s
+, cÏs 
+	gTAÎoÿtÜ
+>
+
+18 
+	gis_¡d_¡ršg
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >
+
+19 : 
+Œue_ty³
+ {};
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+22 
+þass
+ 
+	gWr™”
+<
+	gTDe¡š©iÚ
+,
+
+23 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_¡d_¡ršg
+<
+	gTDe¡š©iÚ
+>::
+v®ue
+>::
+ty³
+> {
+
+24 
+public
+:
+
+25 
+Wr™”
+(
+TDe¡š©iÚ
+ &
+¡r
+è: 
+_¡r
+(&str) {}
+
+27 
+size_t
+ 
+wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+28 
+_¡r
+->
+Ý”©Ü
++=(
+¡©ic_ÿ¡
+<>(
+c
+));
+
+32 
+size_t
+ 
+wr™e
+(cÚ¡ 
+ušt8_t
+ *
+s
+, size_ˆ
+n
+) {
+
+33 
+	g_¡r
+->
+­³nd
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+s
+), 
+n
+);
+
+34  
+	gn
+;
+
+37 
+	g´iv©e
+:
+
+38 
+TDe¡š©iÚ
+ *
+_¡r
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”s/DummyWr™”.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+>
+
+12 
+size_t
+ 
+m—su»
+(cÚ¡ 
+TSourû
+ &
+sourû
+) {
+
+13 
+DummyWr™”
+ 
+	gdp
+;
+
+14 
+	gTS”Ÿliz”
+<
+	gDummyWr™”
+> 
+£rŸliz”
+(
+dp
+);
+
+15 
+	gsourû
+.
+acû±
+(
+£rŸliz”
+);
+
+16  
+	g£rŸliz”
+.
+by‹sWr™‹n
+();
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/S”Ÿliz©iÚ/Wr™”.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+,
+
+12 
+ty³Çme
+ 
+	gTWr™”
+>
+
+13 
+size_t
+ 
+doS”Ÿlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TWr™”
+ 
+wr™”
+) {
+
+14 
+	gTS”Ÿliz”
+<
+	gTWr™”
+> 
+£rŸliz”
+(
+wr™”
+);
+
+15 
+	gsourû
+.
+acû±
+(
+£rŸliz”
+);
+
+16  
+	g£rŸliz”
+.
+by‹sWr™‹n
+();
+
+19 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+,
+
+20 
+ty³Çme
+ 
+	gTDe¡š©iÚ
+>
+
+21 
+size_t
+ 
+£rŸlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TDe¡š©iÚ
+ &
+de¡š©iÚ
+) {
+
+22 
+	gWr™”
+<
+	gTDe¡š©iÚ
+> 
+wr™”
+(
+de¡š©iÚ
+);
+
+23  
+	gdoS”Ÿlize
+<
+	gTS”Ÿliz”
+>(
+	gsourû
+, 
+	gwr™”
+);
+
+26 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+>
+
+27 
+size_t
+ 
+£rŸlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, *
+bufãr
+, size_ˆ
+bufãrSize
+) {
+
+28 
+S�ticSŒšgWr™”
+ 
+wr™”
+(
+»š‹½»t_ÿ¡
+<*>(
+bufãr
+), 
+bufãrSize
+);
+
+29  
+	gdoS”Ÿlize
+<
+	gTS”Ÿliz”
+>(
+	gsourû
+, 
+	gwr™”
+);
+
+32 
+	g‹m¶©e
+ <‹m¶©�<
+	gty³Çme
+> 
+þass
+ 
+	gTS”Ÿliz”
+, 
+ty³Çme
+ 
+	gTSourû
+,
+
+33 
+ty³Çme
+ 
+	gTCh¬
+, 
+size_t
+ 
+	gN
+>
+
+34 #ià
+defšed
+ 
+_MSC_VER
+ && _MSC_VER < 1900
+
+35 
+ty³Çme
+ 
+	g’abË_if
+<(
+	g»move_»ã»nû
+<
+	gTCh¬
+>::
+ty³
+è=ð1, 
+	gsize_t
+>::type
+
+37 
+ty³Çme
+ 
+’abË_if
+<(
+TCh¬
+è=ð1, 
+	gsize_t
+>::
+ty³
+
+
+39 
+£rŸlize
+(cÚ¡ 
+TSourû
+ &
+sourû
+, 
+TCh¬
+ (&
+bufãr
+)[
+N
+]) {
+
+40 
+S�ticSŒšgWr™”
+ 
+wr™”
+(
+»š‹½»t_ÿ¡
+<*>(
+bufãr
+), 
+N
+);
+
+41  
+	gdoS”Ÿlize
+<
+	gTS”Ÿliz”
+>(
+	gsourû
+, 
+	gwr™”
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/MemÜy/SŒšgBužd”.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 þas 
+	cSŒšgCÝ›r
+ {
+
+13 
+	gpublic
+:
+
+14 
+ARDUINOJSON_NAMESPACE
+::
+	tSŒšgBužd”
+ StringBuilder;
+
+16 
+SŒšgCÝ›r
+(
+MemÜyPoÞ
+* 
+poÞ
+è: 
+_poÞ
+(pool) {}
+
+18 
+SŒšgBužd”
+ 
+¡¬tSŒšg
+() {
+
+19  
+SŒšgBužd”
+(
+_poÞ
+);
+
+22 
+»þaim
+(cÚ¡ * 
+s
+) {
+
+23 
+	g_poÞ
+->
+»þaimLa¡SŒšg
+(
+s
+);
+
+26 
+	g´iv©e
+:
+
+27 
+MemÜyPoÞ
+* 
+_poÞ
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 þas 
+	cSŒšgMov”
+ {
+
+12 
+	gpublic
+:
+
+13 þas 
+	cSŒšgBužd”
+ {
+
+14 
+public
+:
+
+15 
+SŒšgBužd”
+(** 
+±r
+è: 
+_wr™ePŒ
+ÕŒ), 
+_¡¬tPŒ
+(*ptr) {}
+
+17 
+­³nd
+(
+c
+) {
+
+18 *(*
+	g_wr™ePŒ
+)++ = (
+c
+);
+
+21 * 
+com¶‘e
+() const {
+
+22 *(*
+	g_wr™ePŒ
+)++ = 0;
+
+23  
+	g_¡¬tPŒ
+;
+
+26 
+	g´iv©e
+:
+
+27 ** 
+_wr™ePŒ
+;
+
+28 * 
+	g_¡¬tPŒ
+;
+
+31 
+SŒšgMov”
+(* 
+±r
+è: 
+_±r
+(ptr) {}
+
+33 
+SŒšgBužd”
+ 
+¡¬tSŒšg
+() {
+
+34  
+SŒšgBužd”
+(&
+_±r
+);
+
+38 
+»þaim
+(cÚ¡ * 
+¡r
+) {
+
+39 
+	g_±r
+ = 
+cÚ¡_ÿ¡
+<*>(
+¡r
+);
+
+42 
+	g´iv©e
+:
+
+43 * 
+_±r
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgStÜage/SŒšgCÝ›r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgStÜage/SŒšgMov”.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+,�y³Çm�
+	gEÇbË
+ = >
+
+13 
+	sSŒšgStÜage
+ {
+
+14 
+SŒšgCÝ›r
+ 
+	tty³
+;
+
+16 
+ty³
+ 
+ü—‹
+(
+MemÜyPoÞ
+& 
+poÞ
+, 
+TIÅut
+&) {
+
+17  
+ty³
+(&
+poÞ
+);
+
+21 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+22 
+	gSŒšgStÜage
+<
+	gTCh¬
+*,
+
+23 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_cÚ¡
+<
+	gTCh¬
+>::
+v®ue
+>::
+ty³
+> {
+
+24 
+SŒšgMov”
+ 
+	tty³
+;
+
+26 
+ty³
+ 
+ü—‹
+(
+MemÜyPoÞ
+&, 
+TCh¬
+* 
+šput
+) {
+
+27  
+ty³
+(
+»š‹½»t_ÿ¡
+<*>(
+šput
+));
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTIÅut
+>
+
+32 
+ty³Çme
+ 
+	gSŒšgStÜage
+<
+	gTIÅut
+>::
+ty³
+ 
+makeSŒšgStÜage
+(
+MemÜyPoÞ
+& 
+poÞ
+,
+
+33 
+TIÅut
+& 
+šput
+) {
+
+34  
+	gSŒšgStÜage
+<
+	gTIÅut
+>::
+ü—‹
+(
+poÞ
+, 
+šput
+);
+
+37 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+38 
+ty³Çme
+ 
+	gSŒšgStÜage
+<
+	gTCh¬
+*>::
+ty³
+ 
+makeSŒšgStÜage
+(
+MemÜyPoÞ
+& 
+poÞ
+,
+
+39 
+TCh¬
+* 
+šput
+) {
+
+40  
+	gSŒšgStÜage
+<
+	gTCh¬
+*>::
+ü—‹
+(
+poÞ
+, 
+šput
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<WSŒšg.h
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/§ã_¡rcmp.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 þas 
+	cArdušoSŒšgAd­‹r
+ {
+
+16 
+	gpublic
+:
+
+17 
+ArdušoSŒšgAd­‹r
+(cÚ¡ ::
+SŒšg
+& 
+¡r
+è: 
+_¡r
+(&str) {}
+
+19 * 
+§ve
+(
+MemÜyPoÞ
+* 
+poÞ
+) const {
+
+20 ià(
+isNuÎ
+())
+
+21  
+NULL
+;
+
+22 
+size_t
+ 
+	gn
+ = 
+_¡r
+->
+Ëngth
+() + 1;
+
+23 * 
+	gdup
+ = 
+poÞ
+->
+®locFroz’SŒšg
+(
+n
+);
+
+24 ià(
+	gdup
+)
+
+25 
+memýy
+(
+dup
+, 
+_¡r
+->
+c_¡r
+(), 
+n
+);
+
+26  
+	gdup
+;
+
+29 
+boÞ
+ 
+isNuÎ
+() const {
+
+31  !
+	g_¡r
+->
+c_¡r
+();
+
+34 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+36 cÚ¡ * 
+	gme
+ = 
+_¡r
+->
+c_¡r
+();
+
+37  
+§ã_¡rcmp
+(
+me
+, 
+Ùh”
+);
+
+40 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+41  
+com·»
+(
+ex³ùed
+) == 0;
+
+44 
+size_t
+ 
+size
+() const {
+
+45  
+	g_¡r
+->
+Ëngth
+();
+
+48 
+	g¡Üage_pÞicy
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+50 
+	g´iv©e
+:
+
+51 cÚ¡ ::
+SŒšg
+* 
+_¡r
+;
+
+54 
+	g‹m¶©e
+ <>
+
+55 
+	gIsSŒšg
+< ::
+SŒšg
+> : 
+Œue_ty³
+ {};
+
+57 
+	g‹m¶©e
+ <>
+
+58 
+	gIsSŒšg
+< ::
+SŒšgSumH–³r
+> : 
+Œue_ty³
+ {};
+
+60 
+šlše
+ 
+ArdušoSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ ::
+SŒšg
+& 
+¡r
+) {
+
+61  
+	`ArdušoSŒšgAd­‹r
+(
+¡r
+);
+
+62 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+8 
+	~<¡ršg.h
+>
+
+10 
+	~<ArdušoJsÚ/PÞyfžls/§ã_¡rcmp.hµ
+>
+
+11 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+12 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 þas 
+	cCÚ¡RamSŒšgAd­‹r
+ {
+
+17 
+	gpublic
+:
+
+18 
+CÚ¡RamSŒšgAd­‹r
+(cÚ¡ * 
+¡r
+ = 0è: 
+_¡r
+(str) {}
+
+20 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+21  
+§ã_¡rcmp
+(
+_¡r
+, 
+Ùh”
+);
+
+24 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+25  
+com·»
+(
+ex³ùed
+) == 0;
+
+28 
+boÞ
+ 
+isNuÎ
+() const {
+
+29  !
+	g_¡r
+;
+
+32 
+size_t
+ 
+size
+() const {
+
+33 ià(!
+	g_¡r
+)
+
+35  
+¡¾’
+(
+_¡r
+);
+
+38 cÚ¡ * 
+d©a
+() const {
+
+39  
+	g_¡r
+;
+
+42 
+	g¡Üage_pÞicy
+::
+	t¡Üe_by_add»ss
+ 
+	t¡Üage_pÞicy
+;
+
+44 
+	g´Ùeùed
+:
+
+45 cÚ¡ * 
+_¡r
+;
+
+48 
+šlše
+ 
+CÚ¡RamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ * 
+¡r
+) {
+
+49  
+	`CÚ¡RamSŒšgAd­‹r
+(
+¡r
+);
+
+50 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/pgm¥aû.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 þas 
+	cFÏshSŒšgAd­‹r
+ {
+
+15 
+	gpublic
+:
+
+16 
+FÏshSŒšgAd­‹r
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+è: 
+_¡r
+(str) {}
+
+18 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+19 ià(!
+Ùh”
+ && !
+_¡r
+)
+
+21 ià(!
+	g_¡r
+)
+
+23 ià(!
+	gÙh”
+)
+
+25  -
+¡rcmp_P
+(
+Ùh”
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+));
+
+28 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+29  
+com·»
+(
+ex³ùed
+) == 0;
+
+32 
+boÞ
+ 
+isNuÎ
+() const {
+
+33  !
+	g_¡r
+;
+
+36 * 
+§ve
+(
+MemÜyPoÞ
+* 
+poÞ
+) const {
+
+37 ià(!
+	g_¡r
+)
+
+38  
+	gNULL
+;
+
+39 
+size_t
+ 
+	gn
+ = 
+size
+() + 1;
+
+40 * 
+	gdup
+ = 
+poÞ
+->
+®locFroz’SŒšg
+(
+n
+);
+
+41 ià(
+	gdup
+)
+
+42 
+memýy_P
+(
+dup
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+), 
+n
+);
+
+43  
+	gdup
+;
+
+46 
+size_t
+ 
+size
+() const {
+
+47 ià(!
+	g_¡r
+)
+
+49  
+¡¾’_P
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+));
+
+52 
+	g¡Üage_pÞicy
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+54 
+	g´iv©e
+:
+
+55 cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+_¡r
+;
+
+58 
+šlše
+ 
+FÏshSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+) {
+
+59  
+	`FÏshSŒšgAd­‹r
+(
+¡r
+);
+
+60 
+	}
+}
+
+62 
+	g‹m¶©e
+ <>
+
+63 
+	gIsSŒšg
+<cÚ¡ 
+	g__FÏshSŒšgH–³r
+*> : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+11 
+	gIsSŒšg
+ : 
+çl£_ty³
+ {};
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+	gIsSŒšg
+<cÚ¡ 
+	gT
+> : 
+IsSŒšg
+<
+T
+> {};
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	gIsSŒšg
+<
+	gT
+&> : 
+IsSŒšg
+<
+T
+> {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+10 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+11 
+	~<WSŒšg.h
+>
+
+14 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+15 
+	~<¡ršg
+>
+
+18 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+20 
+	g‹m¶©e
+ <
+	gty³Çme
+>
+
+21 
+	gIsWr™—bËSŒšg
+ : 
+çl£_ty³
+ {};
+
+23 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+25 
+	g‹m¶©e
+ <>
+
+26 
+	gIsWr™—bËSŒšg
+< ::
+SŒšg
+> : 
+Œue_ty³
+ {};
+
+30 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬T¿™s
+,�y³Çm�
+	gTAÎoÿtÜ
+>
+
+33 
+	gIsWr™—bËSŒšg
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >
+
+34 : 
+Œue_ty³
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/CÚ¡RamSŒšgAd­‹r.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+12 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+14 þas 
+	cRamSŒšgAd­‹r
+ : 
+public
+ 
+CÚ¡RamSŒšgAd­‹r
+ {
+
+15 
+public
+:
+
+16 
+RamSŒšgAd­‹r
+(cÚ¡ * 
+¡r
+è: 
+CÚ¡RamSŒšgAd­‹r
+(str) {}
+
+18 * 
+§ve
+(
+MemÜyPoÞ
+* 
+poÞ
+) const {
+
+19 ià(!
+_¡r
+)
+
+20  
+NULL
+;
+
+21 
+size_t
+ 
+	gn
+ = 
+size
+() + 1;
+
+22 * 
+	gdup
+ = 
+poÞ
+->
+®locFroz’SŒšg
+(
+n
+);
+
+23 ià(
+	gdup
+)
+
+24 
+memýy
+(
+dup
+, 
+_¡r
+, 
+n
+);
+
+25  
+	gdup
+;
+
+28 
+	gARDUINOJSON_NAMESPACE
+::
+	t¡Üage_pÞicy
+::
+	t¡Üe_by_cÝy
+ storage_policy;
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+32 
+šlše
+ 
+RamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+TCh¬
+* 
+¡r
+) {
+
+33  
+	`RamSŒšgAd­‹r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+¡r
+));
+
+34 
+	}
+}
+
+36 
+šlše
+ 
+RamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(* 
+¡r
+) {
+
+37  
+	`RamSŒšgAd­‹r
+(
+¡r
+);
+
+38 
+	}
+}
+
+40 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+41 
+	gIsSŒšg
+<
+	gTCh¬
+*> {
+
+42 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ = (
+TCh¬
+) == 1;
+
+45 
+	g‹m¶©e
+ <>
+
+46 
+	gIsSŒšg
+<*> {
+
+47 cÚ¡ 
+boÞ
+ 
+	gv®ue
+ = 
+çl£
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 þas 
+	cSizedFÏshSŒšgAd­‹r
+ {
+
+14 
+	gpublic
+:
+
+15 
+SizedFÏshSŒšgAd­‹r
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+, 
+size_t
+ 
+sz
+)
+
+16 : 
+_¡r
+(
+¡r
+), 
+_size
+(
+sz
+) {}
+
+18 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+19 ià(!
+	gÙh”
+ && !
+	g_¡r
+)
+
+21 ià(!
+	g_¡r
+)
+
+23 ià(!
+	gÙh”
+)
+
+25  -
+¡ºcmp_P
+(
+Ùh”
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+), 
+_size
+);
+
+28 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+29  
+com·»
+(
+ex³ùed
+) == 0;
+
+32 
+boÞ
+ 
+isNuÎ
+() const {
+
+33  !
+	g_¡r
+;
+
+36 * 
+§ve
+(
+MemÜyPoÞ
+* 
+poÞ
+) const {
+
+37 ià(!
+	g_¡r
+)
+
+38  
+	gNULL
+;
+
+39 * 
+	gdup
+ = 
+poÞ
+->
+®locFroz’SŒšg
+(
+_size
+);
+
+40 ià(
+	gdup
+)
+
+41 
+memýy_P
+(
+dup
+, 
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+_¡r
+), 
+_size
+);
+
+42  
+	gdup
+;
+
+45 
+size_t
+ 
+size
+() const {
+
+46  
+	g_size
+;
+
+49 
+	g¡Üage_pÞicy
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+51 
+	g´iv©e
+:
+
+52 cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+_¡r
+;
+
+53 
+size_t
+ 
+	g_size
+;
+
+56 
+šlše
+ 
+SizedFÏshSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+__FÏshSŒšgH–³r
+* 
+¡r
+,
+
+57 
+size_t
+ 
+sz
+) {
+
+58  
+	`SizedFÏshSŒšgAd­‹r
+(
+¡r
+, 
+sz
+);
+
+59 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+	~<¡ršg.h
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 þas 
+	cSizedRamSŒšgAd­‹r
+ {
+
+16 
+	gpublic
+:
+
+17 
+SizedRamSŒšgAd­‹r
+(cÚ¡ * 
+¡r
+, 
+size_t
+ 
+n
+è: 
+_¡r
+(¡r), 
+_size
+(n) {}
+
+19 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+20  
+§ã_¡ºcmp
+(
+_¡r
+, 
+Ùh”
+, 
+_size
+);
+
+23 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+24  
+com·»
+(
+ex³ùed
+) == 0;
+
+27 
+boÞ
+ 
+isNuÎ
+() const {
+
+28  !
+	g_¡r
+;
+
+31 * 
+§ve
+(
+MemÜyPoÞ
+* 
+poÞ
+) const {
+
+32 ià(!
+	g_¡r
+)
+
+33  
+	gNULL
+;
+
+34 * 
+	gdup
+ = 
+poÞ
+->
+®locFroz’SŒšg
+(
+_size
+);
+
+35 ià(
+	gdup
+)
+
+36 
+memýy
+(
+dup
+, 
+_¡r
+, 
+_size
+);
+
+37  
+	gdup
+;
+
+40 
+size_t
+ 
+size
+() const {
+
+41  
+	g_size
+;
+
+44 
+	g¡Üage_pÞicy
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+46 
+	g´iv©e
+:
+
+47 cÚ¡ * 
+_¡r
+;
+
+48 
+size_t
+ 
+	g_size
+;
+
+51 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+52 
+šlše
+ 
+SizedRamSŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+TCh¬
+* 
+¡r
+, 
+size_t
+ 
+size
+) {
+
+53  
+	`SizedRamSŒšgAd­‹r
+(
+»š‹½»t_ÿ¡
+<cÚ¡ *>(
+¡r
+), 
+size
+);
+
+54 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StlStringAdapter.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+12 
+	~<¡ršg
+>
+
+14 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+17 þas 
+	cSŽSŒšgAd­‹r
+ {
+
+18 
+	gpublic
+:
+
+19 
+SŽSŒšgAd­‹r
+(cÚ¡ 
+TSŒšg
+& 
+¡r
+è: 
+_¡r
+(&str) {}
+
+21 * 
+§ve
+(
+MemÜyPoÞ
+* 
+poÞ
+) const {
+
+22 
+size_t
+ 
+n
+ = 
+_¡r
+->
+Ëngth
+() + 1;
+
+23 * 
+	gdup
+ = 
+poÞ
+->
+®locFroz’SŒšg
+(
+n
+);
+
+24 ià(
+	gdup
+)
+
+25 
+memýy
+(
+dup
+, 
+_¡r
+->
+c_¡r
+(), 
+n
+);
+
+26  
+	gdup
+;
+
+29 
+boÞ
+ 
+isNuÎ
+() const {
+
+30  
+	gçl£
+;
+
+33 
+com·»
+(cÚ¡ * 
+Ùh”
+) const {
+
+34 ià(!
+	gÙh”
+)
+
+36  
+	g_¡r
+->
+com·»
+(
+Ùh”
+);
+
+39 
+boÞ
+ 
+equ®s
+(cÚ¡ * 
+ex³ùed
+) const {
+
+40 ià(!
+	gex³ùed
+)
+
+41  
+	gçl£
+;
+
+42  *
+	g_¡r
+ =ð
+ex³ùed
+;
+
+45 
+size_t
+ 
+size
+() const {
+
+46  
+	g_¡r
+->
+size
+();
+
+49 
+	g¡Üage_pÞicy
+::
+	t¡Üe_by_cÝy
+ 
+	t¡Üage_pÞicy
+;
+
+51 
+	g´iv©e
+:
+
+52 cÚ¡ 
+TSŒšg
+* 
+_¡r
+;
+
+55 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬T¿™s
+,�y³Çm�
+	gTAÎoÿtÜ
+>
+
+56 
+	gIsSŒšg
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> > : 
+Œue_ty³
+ {
+
+59 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬T¿™s
+,�y³Çm�
+	gTAÎoÿtÜ
+>
+
+60 
+šlše
+ 
+	gSŽSŒšgAd­‹r
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >
+
+61 
+ad­tSŒšg
+(cÚ¡ 
+¡d
+::
+basic_¡ršg
+<, 
+TCh¬T¿™s
+, 
+TAÎoÿtÜ
+>& 
+¡r
+) {
+
+62  
+	gSŽSŒšgAd­‹r
+<
+	g¡d
+::
+basic_¡ršg
+<, 
+	gTCh¬T¿™s
+, 
+	gTAÎoÿtÜ
+> >(
+
+63 
+	g¡r
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+9 
+Çme¥aû
+ 
+	g¡Üage_pÞicy
+ {
+
+10 
+	s¡Üe_by_add»ss
+ {};
+
+11 
+	s¡Üe_by_cÝy
+ {};
+
+12 
+	sdecide_©_ruÁime
+ {};
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/String.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/CÚ¡RamSŒšgAd­‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/IsSŒšg.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/StÜagePÞicy.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 þas 
+	cSŒšg
+ {
+
+14 
+	gpublic
+:
+
+15 
+SŒšg
+(è: 
+_d©a
+(0), 
+_isS�tic
+(
+Œue
+) {}
+
+16 
+SŒšg
+(cÚ¡ * 
+d©a
+, 
+boÞ
+ 
+isS�ticD©a
+ = 
+Œue
+)
+
+17 : 
+_d©a
+(
+d©a
+), 
+_isS�tic
+(
+isS�ticD©a
+) {}
+
+19 cÚ¡ * 
+c_¡r
+() const {
+
+20  
+	g_d©a
+;
+
+23 
+boÞ
+ 
+isNuÎ
+() const {
+
+24  !
+	g_d©a
+;
+
+27 
+boÞ
+ 
+isS�tic
+() const {
+
+28  
+	g_isS�tic
+;
+
+31 
+ä›nd
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+SŒšg
+ 
+lhs
+, SŒšg 
+	grhs
+) {
+
+32 ià(
+	glhs
+.
+	g_d©a
+ =ð
+rhs
+.
+_d©a
+)
+
+33  
+Œue
+;
+
+34 ià(!
+	glhs
+.
+	g_d©a
+)
+
+35  
+	gçl£
+;
+
+36 ià(!
+	grhs
+.
+	g_d©a
+)
+
+37  
+	gçl£
+;
+
+38  
+¡rcmp
+(
+lhs
+.
+_d©a
+, 
+rhs
+._data) == 0;
+
+41 
+	g¡Üage_pÞicy
+::
+	tdecide_©_ruÁime
+ 
+	t¡Üage_pÞicy
+;
+
+43 
+	g´iv©e
+:
+
+44 cÚ¡ * 
+_d©a
+;
+
+45 
+boÞ
+ 
+	g_isS�tic
+;
+
+48 þas 
+	cSŒšgAd­‹r
+ : 
+public
+ 
+RamSŒšgAd­‹r
+ {
+
+49 
+public
+:
+
+50 
+SŒšgAd­‹r
+(cÚ¡ 
+SŒšg
+& 
+¡r
+)
+
+51 : 
+RamSŒšgAd­‹r
+(
+¡r
+.
+c_¡r
+()), 
+_isS�tic
+(¡r.
+isS�tic
+()) {}
+
+53 
+boÞ
+ 
+isS�tic
+() const {
+
+54  
+	g_isS�tic
+;
+
+57 cÚ¡ * 
+§ve
+(
+MemÜyPoÞ
+* 
+poÞ
+) const {
+
+58 ià(
+	g_isS�tic
+)
+
+59  
+d©a
+();
+
+60  
+	gRamSŒšgAd­‹r
+::
+§ve
+(
+poÞ
+);
+
+63 
+	g´iv©e
+:
+
+64 
+boÞ
+ 
+_isS�tic
+;
+
+67 
+	g‹m¶©e
+ <>
+
+68 
+	gIsSŒšg
+<
+	gSŒšg
+> : 
+Œue_ty³
+ {};
+
+70 
+šlše
+ 
+SŒšgAd­‹r
+ 
+	$ad­tSŒšg
+(cÚ¡ 
+SŒšg
+& 
+¡r
+) {
+
+71  
+	`SŒšgAd­‹r
+(
+¡r
+);
+
+72 
+	}
+}
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/CÚ¡RamSŒšgAd­‹r.hµ
+>
+
+8 
+	~<ArdušoJsÚ/SŒšgs/RamSŒšgAd­‹r.hµ
+>
+
+9 
+	~<ArdušoJsÚ/SŒšgs/SizedRamSŒšgAd­‹r.hµ
+>
+
+11 #ià
+ARDUINOJSON_ENABLE_STD_STRING
+
+
+12 
+	~<ArdušoJsÚ/SŒšgs/SŽSŒšgAd­‹r.hµ
+>
+
+15 #ià
+ARDUINOJSON_ENABLE_ARDUINO_STRING
+
+
+16 
+	~<ArdušoJsÚ/SŒšgs/ArdušoSŒšgAd­‹r.hµ
+>
+
+19 #ià
+ARDUINOJSON_ENABLE_PROGMEM
+
+
+20 
+	~<ArdušoJsÚ/SŒšgs/FÏshSŒšgAd­‹r.hµ
+>
+
+21 
+	~<ArdušoJsÚ/SŒšgs/SizedFÏshSŒšgAd­‹r.hµ
+>
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/as£¹.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+10 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+12 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+13 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+* 
+poÞ
+) {
+
+14 ià(!
+	gv¬
+)
+
+15  
+	gçl£
+;
+
+16  
+¦ÙS‘Key
+(
+v¬
+, 
+key
+, 
+poÞ
+, 
+ty³Çme
+ 
+TAd­‹dSŒšg
+::
+¡Üage_pÞicy
+());
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+20 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+* 
+poÞ
+,
+
+21 
+¡Üage_pÞicy
+::
+decide_©_ruÁime
+) {
+
+22 ià(
+key
+.
+isS�tic
+()) {
+
+23  
+¦ÙS‘Key
+(
+v¬
+, 
+key
+, 
+poÞ
+, 
+¡Üage_pÞicy
+::
+¡Üe_by_add»ss
+());
+
+25  
+¦ÙS‘Key
+(
+v¬
+, 
+key
+, 
+poÞ
+, 
+¡Üage_pÞicy
+::
+¡Üe_by_cÝy
+());
+
+27  
+	gŒue
+;
+
+30 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+31 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+*,
+
+32 
+¡Üage_pÞicy
+::
+¡Üe_by_add»ss
+) {
+
+33 
+ARDUINOJSON_ASSERT
+(
+v¬
+);
+
+34 
+	gv¬
+->
+£tLškedKey
+(
+make_nÙ_nuÎ
+(
+key
+.
+d©a
+()));
+
+35  
+	gŒue
+;
+
+38 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+39 
+šlše
+ 
+boÞ
+ 
+¦ÙS‘Key
+(
+V¬ŸÁSlÙ
+* 
+v¬
+, 
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+* 
+poÞ
+,
+
+40 
+¡Üage_pÞicy
+::
+¡Üe_by_cÝy
+) {
+
+41 cÚ¡ * 
+dup
+ = 
+key
+.
+§ve
+(
+poÞ
+);
+
+42 ià(!
+	gdup
+)
+
+43  
+	gçl£
+;
+
+44 
+ARDUINOJSON_ASSERT
+(
+v¬
+);
+
+45 
+	gv¬
+->
+£tOwÃdKey
+(
+make_nÙ_nuÎ
+(
+dup
+));
+
+46  
+	gŒue
+;
+
+49 
+šlše
+ 
+size_t
+ 
+¦ÙSize
+(cÚ¡ 
+V¬ŸÁSlÙ
+* 
+v¬
+) {
+
+50 
+size_t
+ 
+	gn
+ = 0;
+
+51 
+	gv¬
+) {
+
+52 
+	gn
+++;
+
+53 
+	gv¬
+ = 
+v¬
+->
+Ãxt
+();
+
+55  
+	gn
+;
+
+58 
+šlše
+ 
+V¬ŸÁD©a
+* 
+¦ÙD©a
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+59  
+	g»š‹½»t_ÿ¡
+<
+	gV¬ŸÁD©a
+*>(
+	g¦Ù
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/IsWr™—bËSŒšg.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+þass
+ 
+	gA¼ayRef
+;
+
+12 
+þass
+ 
+	gA¼ayCÚ¡Ref
+;
+
+13 
+þass
+ 
+	gObjeùRef
+;
+
+14 
+þass
+ 
+	gObjeùCÚ¡Ref
+;
+
+15 
+þass
+ 
+	gV¬ŸÁRef
+;
+
+16 
+þass
+ 
+	gV¬ŸÁCÚ¡Ref
+;
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+21 
+	sV¬ŸÁAs
+ {
+
+22 
+T
+ 
+	tty³
+;
+
+25 
+	g‹m¶©e
+ <>
+
+26 
+	gV¬ŸÁAs
+<*> {
+
+27 cÚ¡ * 
+	tty³
+;
+
+32 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+33 
+	sV¬ŸÁCÚ¡As
+ {
+
+34 
+ty³Çme
+ 
+	tV¬ŸÁAs
+<
+	tT
+>::
+	tty³
+�ype;
+
+37 
+	g‹m¶©e
+ <>
+
+38 
+	gV¬ŸÁCÚ¡As
+<
+	gV¬ŸÁRef
+> {
+
+39 
+V¬ŸÁCÚ¡Ref
+ 
+	tty³
+;
+
+42 
+	g‹m¶©e
+ <>
+
+43 
+	gV¬ŸÁCÚ¡As
+<
+	gObjeùRef
+> {
+
+44 
+ObjeùCÚ¡Ref
+ 
+	tty³
+;
+
+47 
+	g‹m¶©e
+ <>
+
+48 
+	gV¬ŸÁCÚ¡As
+<
+	gA¼ayRef
+> {
+
+49 
+A¼ayCÚ¡Ref
+ 
+	tty³
+;
+
+54 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+55 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_š‹g¿l
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+56 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+57  
+_d©a
+ !ð0 ? _d©a->
+asIÁeg¿l
+<
+T
+>() : T(0);
+
+60 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+61 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gboÞ
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+62 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+63  
+_d©a
+ !ð0 ? _d©a->
+asBoÞ—n
+(è: 
+çl£
+;
+
+66 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+67 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+68 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+69  
+_d©a
+ !ð0 ? _d©a->
+asFlßt
+<
+T
+>() : T(0);
+
+72 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+73 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, cÚ¡ *>::
+v®ue
+ ||
+
+74 
+is_§me
+<
+T
+, *>::
+v®ue
+,
+
+75 cÚ¡ *>::
+ty³
+
+
+76 
+v¬ŸÁAs
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+77  
+_d©a
+ !ð0 ? _d©a->
+asSŒšg
+() : 0;
+
+80 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+81 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gA¼ayCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+82 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+);
+
+84 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+85 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gObjeùCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+86 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+);
+
+88 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+89 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gV¬ŸÁCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+
+
+90 
+v¬ŸÁAs
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+);
+
+92 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+93 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsWr™—bËSŒšg
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+94 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/SŒšgs/IsWr™—bËSŒšg.hµ
+>
+
+8 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁFunùiÚs.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+11 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+13 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+14 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gA¼ayCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+15 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+16  
+A¼ayCÚ¡Ref
+(
+v¬ŸÁAsA¼ay
+(
+_d©a
+));
+
+19 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+20 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gObjeùCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+21 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+22  
+ObjeùCÚ¡Ref
+(
+v¬ŸÁAsObjeù
+(
+_d©a
+));
+
+25 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+26 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gV¬ŸÁCÚ¡Ref
+, 
+	gT
+>::
+v®ue
+, T>::
+ty³
+
+
+27 
+v¬ŸÁAs
+(cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+28  
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+);
+
+31 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+32 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsWr™—bËSŒšg
+<
+	gT
+>::
+v®ue
+, T>::
+ty³
+ 
+v¬ŸÁAs
+(
+
+33 cÚ¡ 
+V¬ŸÁD©a
+* 
+_d©a
+) {
+
+34 cÚ¡ * 
+c¡r
+ = 
+_d©a
+ !ð0 ? _d©a->
+asSŒšg
+() : 0;
+
+35 ià(
+	gc¡r
+)
+
+36  
+T
+(
+c¡r
+);
+
+37 
+T
+ 
+	gs
+;
+
+38 
+£rŸlizeJsÚ
+(
+V¬ŸÁCÚ¡Ref
+(
+_d©a
+), 
+s
+);
+
+39  
+	gs
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+9 
+	~<ArdušoJsÚ/CÞËùiÚ/CÞËùiÚD©a.hµ
+>
+
+10 
+	~<ArdušoJsÚ/Numb”s/Flßt.hµ
+>
+
+11 
+	~<ArdušoJsÚ/Numb”s/IÁeg”.hµ
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	gVALUE_MASK
+ = 0x7F,
+
+19 
+	gVALUE_IS_OWNED
+ = 0x01,
+
+20 
+	gVALUE_IS_NULL
+ = 0,
+
+21 
+	gVALUE_IS_LINKED_RAW
+ = 0x02,
+
+22 
+	gVALUE_IS_OWNED_RAW
+ = 0x03,
+
+23 
+	gVALUE_IS_LINKED_STRING
+ = 0x04,
+
+24 
+	gVALUE_IS_OWNED_STRING
+ = 0x05,
+
+27 
+	gVALUE_IS_BOOLEAN
+ = 0x06,
+
+28 
+	gVALUE_IS_POSITIVE_INTEGER
+ = 0x08,
+
+29 
+	gVALUE_IS_NEGATIVE_INTEGER
+ = 0x0A,
+
+30 
+	gVALUE_IS_FLOAT
+ = 0x0C,
+
+32 
+	gCOLLECTION_MASK
+ = 0x60,
+
+33 
+	gVALUE_IS_OBJECT
+ = 0x20,
+
+34 
+	gVALUE_IS_ARRAY
+ = 0x40,
+
+36 
+	gKEY_IS_OWNED
+ = 0x80
+
+39 
+	sRawD©a
+ {
+
+40 cÚ¡ *
+	gd©a
+;
+
+41 
+size_t
+ 
+	gsize
+;
+
+44 
+	uV¬ŸÁCÚ‹Á
+ {
+
+45 
+Flßt
+ 
+	gasFlßt
+;
+
+46 
+UIÁ
+ 
+	gasIÁeg”
+;
+
+47 
+CÞËùiÚD©a
+ 
+	gasCÞËùiÚ
+;
+
+48 cÚ¡ *
+	gasSŒšg
+;
+
+50 cÚ¡ *
+	gd©a
+;
+
+51 
+size_t
+ 
+	gsize
+;
+
+52 } 
+	gasRaw
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Misc/S”ŸlizedV®ue.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+9 
+	~<ArdušoJsÚ/PÞyfžls/g¦/nÙ_nuÎ.hµ
+>
+
+10 
+	~<ArdušoJsÚ/SŒšgs/RamSŒšgAd­‹r.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁCÚ‹Á.hµ
+>
+
+15 #ià
+defšed
+(
+__GNUC__
+)
+
+16 #ià
+__GNUC__
+ >= 7
+
+17 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+18 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wmaybe-uninitialized"
+
+19 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wuninitialized"
+
+23 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+25 þas 
+	cV¬ŸÁD©a
+ {
+
+26 
+V¬ŸÁCÚ‹Á
+ 
+	g_cÚ‹Á
+;
+
+27 
+ušt8_t
+ 
+	g_æags
+;
+
+29 
+	gpublic
+:
+
+36 
+‹m¶©e
+ <
+ty³Çme
+ 
+Vis™Ü
+>
+
+37 
+acû±
+(
+Vis™Ü
+ &
+vis™Ü
+) const {
+
+38 
+ty³
+()) {
+
+39 
+VALUE_IS_FLOAT
+:
+
+40  
+vis™Ü
+.
+vis™Flßt
+(
+_cÚ‹Á
+.
+asFlßt
+);
+
+42 
+	gVALUE_IS_ARRAY
+:
+
+43  
+vis™Ü
+.
+vis™A¼ay
+(
+_cÚ‹Á
+.
+asCÞËùiÚ
+);
+
+45 
+	gVALUE_IS_OBJECT
+:
+
+46  
+vis™Ü
+.
+vis™Objeù
+(
+_cÚ‹Á
+.
+asCÞËùiÚ
+);
+
+48 
+	gVALUE_IS_LINKED_STRING
+:
+
+49 
+VALUE_IS_OWNED_STRING
+:
+
+50  
+vis™Ü
+.
+vis™SŒšg
+(
+_cÚ‹Á
+.
+asSŒšg
+);
+
+52 
+	gVALUE_IS_OWNED_RAW
+:
+
+53 
+VALUE_IS_LINKED_RAW
+:
+
+54  
+vis™Ü
+.
+vis™RawJsÚ
+(
+_cÚ‹Á
+.
+asRaw
+.
+d©a
+, _cÚ‹Á.asRaw.
+size
+);
+
+56 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+57  
+vis™Ü
+.
+vis™Neg©iveIÁeg”
+(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+59 
+	gVALUE_IS_POSITIVE_INTEGER
+:
+
+60  
+vis™Ü
+.
+vis™Pos™iveIÁeg”
+(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+62 
+	gVALUE_IS_BOOLEAN
+:
+
+63  
+vis™Ü
+.
+vis™BoÞ—n
+(
+_cÚ‹Á
+.
+asIÁeg”
+ != 0);
+
+66  
+vis™Ü
+.
+vis™NuÎ
+();
+
+70 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+71 
+T
+ 
+asIÁeg¿l
+() const;
+
+73 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+74 
+T
+ 
+asFlßt
+() const;
+
+76 cÚ¡ *
+asSŒšg
+() const;
+
+78 
+boÞ
+ 
+asBoÞ—n
+() const;
+
+80 
+CÞËùiÚD©a
+ *
+asA¼ay
+() {
+
+81  
+isA¼ay
+(è? &
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+ : 0;
+
+84 cÚ¡ 
+CÞËùiÚD©a
+ *
+asA¼ay
+() const {
+
+85  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁD©a
+ *>(
+	gthis
+)->
+asA¼ay
+();
+
+88 
+CÞËùiÚD©a
+ *
+asObjeù
+() {
+
+89  
+isObjeù
+(è? &
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+ : 0;
+
+92 cÚ¡ 
+CÞËùiÚD©a
+ *
+asObjeù
+() const {
+
+93  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁD©a
+ *>(
+	gthis
+)->
+asObjeù
+();
+
+96 
+boÞ
+ 
+cÝyFrom
+(cÚ¡ 
+V¬ŸÁD©a
+ &
+¤c
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+97 
+	g¤c
+.
+ty³
+()) {
+
+98 
+	gVALUE_IS_ARRAY
+:
+
+99  
+toA¼ay
+().
+cÝyFrom
+(
+¤c
+.
+_cÚ‹Á
+.
+asCÞËùiÚ
+, 
+poÞ
+);
+
+100 
+	gVALUE_IS_OBJECT
+:
+
+101  
+toObjeù
+().
+cÝyFrom
+(
+¤c
+.
+_cÚ‹Á
+.
+asCÞËùiÚ
+, 
+poÞ
+);
+
+102 
+	gVALUE_IS_OWNED_STRING
+:
+
+103  
+£tOwÃdSŒšg
+(
+RamSŒšgAd­‹r
+(
+¤c
+.
+_cÚ‹Á
+.
+asSŒšg
+), 
+poÞ
+);
+
+104 
+	gVALUE_IS_OWNED_RAW
+:
+
+105  
+£tOwÃdRaw
+(
+
+106 
+£rŸlized
+(
+¤c
+.
+_cÚ‹Á
+.
+asRaw
+.
+d©a
+, src._cÚ‹Á.asRaw.
+size
+), 
+poÞ
+);
+
+108 
+£tTy³
+(
+¤c
+.
+ty³
+());
+
+109 
+	g_cÚ‹Á
+ = 
+¤c
+.
+_cÚ‹Á
+;
+
+110  
+	gŒue
+;
+
+114 
+boÞ
+ 
+equ®s
+(cÚ¡ 
+V¬ŸÁD©a
+ &
+Ùh”
+) const {
+
+116 ià((
+ty³
+(è| 
+	gVALUE_IS_OWNED
+è!ð(
+Ùh”
+.ty³(è| 
+VALUE_IS_OWNED
+))
+
+117  
+çl£
+;
+
+119 
+ty³
+()) {
+
+120 
+	gVALUE_IS_LINKED_STRING
+:
+
+121 
+VALUE_IS_OWNED_STRING
+:
+
+122  !
+¡rcmp
+(
+_cÚ‹Á
+.
+asSŒšg
+, 
+Ùh”
+._content.asString);
+
+124 
+	gVALUE_IS_LINKED_RAW
+:
+
+125 
+VALUE_IS_OWNED_RAW
+:
+
+126  
+_cÚ‹Á
+.
+asRaw
+.
+size
+ =ð
+Ùh”
+._content.asRaw.size &&
+
+127 !
+memcmp
+(
+_cÚ‹Á
+.
+asRaw
+.
+d©a
+, 
+Ùh”
+._content.asRaw.data,
+
+128 
+_cÚ‹Á
+.
+asRaw
+.
+size
+);
+
+130 
+	gVALUE_IS_BOOLEAN
+:
+
+131 
+VALUE_IS_POSITIVE_INTEGER
+:
+
+132 
+VALUE_IS_NEGATIVE_INTEGER
+:
+
+133  
+_cÚ‹Á
+.
+asIÁeg”
+ =ð
+Ùh”
+._content.asInteger;
+
+135 
+	gVALUE_IS_ARRAY
+:
+
+136  
+_cÚ‹Á
+.
+asCÞËùiÚ
+.
+equ®sA¼ay
+(
+Ùh”
+._content.asCollection);
+
+138 
+	gVALUE_IS_OBJECT
+:
+
+139  
+_cÚ‹Á
+.
+asCÞËùiÚ
+.
+equ®sObjeù
+(
+Ùh”
+._content.asCollection);
+
+141 
+	gVALUE_IS_FLOAT
+:
+
+142  
+_cÚ‹Á
+.
+asFlßt
+ =ð
+Ùh”
+._content.asFloat;
+
+144 
+	gVALUE_IS_NULL
+:
+
+146  
+Œue
+;
+
+150 
+boÞ
+ 
+isA¼ay
+() const {
+
+151  (
+	g_æags
+ & 
+	gVALUE_IS_ARRAY
+) != 0;
+
+154 
+boÞ
+ 
+isBoÞ—n
+() const {
+
+155  
+ty³
+(è=ð
+VALUE_IS_BOOLEAN
+;
+
+158 
+boÞ
+ 
+isCÞËùiÚ
+() const {
+
+159  (
+	g_æags
+ & 
+	gCOLLECTION_MASK
+) != 0;
+
+162 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+163 
+boÞ
+ 
+isIÁeg”
+() const {
+
+164 
+ty³
+()) {
+
+165 
+	gVALUE_IS_POSITIVE_INTEGER
+:
+
+166  
+ÿnStÜePos™iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+168 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+169  
+ÿnStÜeNeg©iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+172  
+çl£
+;
+
+176 
+boÞ
+ 
+isFlßt
+() const {
+
+177  
+ty³
+(è=ð
+VALUE_IS_FLOAT
+ ||�y³(è=ð
+VALUE_IS_POSITIVE_INTEGER
+ ||
+
+178 
+ty³
+(è=ð
+VALUE_IS_NEGATIVE_INTEGER
+;
+
+181 
+boÞ
+ 
+isSŒšg
+() const {
+
+182  
+ty³
+(è=ð
+VALUE_IS_LINKED_STRING
+ ||�y³(è=ð
+VALUE_IS_OWNED_STRING
+;
+
+185 
+boÞ
+ 
+isObjeù
+() const {
+
+186  (
+	g_æags
+ & 
+	gVALUE_IS_OBJECT
+) != 0;
+
+189 
+boÞ
+ 
+isNuÎ
+() const {
+
+190  
+ty³
+(è=ð
+VALUE_IS_NULL
+;
+
+193 
+boÞ
+ 
+isEnþo£d
+() const {
+
+194  !
+isFlßt
+();
+
+197 
+»move
+(
+size_t
+ 
+šdex
+) {
+
+198 ià(
+isA¼ay
+())
+
+199 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+»moveEËm’t
+(
+šdex
+);
+
+202 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+203 
+»move
+(
+TAd­‹dSŒšg
+ 
+key
+) {
+
+204 ià(
+isObjeù
+())
+
+205 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+»moveMemb”
+(
+key
+);
+
+208 
+£tBoÞ—n
+(
+boÞ
+ 
+v®ue
+) {
+
+209 
+£tTy³
+(
+VALUE_IS_BOOLEAN
+);
+
+210 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+);
+
+213 
+£tFlßt
+(
+Flßt
+ 
+v®ue
+) {
+
+214 
+£tTy³
+(
+VALUE_IS_FLOAT
+);
+
+215 
+	g_cÚ‹Á
+.
+	gasFlßt
+ = 
+v®ue
+;
+
+218 
+£tLškedRaw
+(
+S”ŸlizedV®ue
+<cÚ¡ *> 
+v®ue
+) {
+
+219 ià(
+	gv®ue
+.
+d©a
+()) {
+
+220 
+£tTy³
+(
+VALUE_IS_LINKED_RAW
+);
+
+221 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gd©a
+ = 
+v®ue
+.
+d©a
+();
+
+222 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gsize
+ = 
+v®ue
+.
+size
+();
+
+224 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+228 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+229 
+boÞ
+ 
+£tOwÃdRaw
+(
+S”ŸlizedV®ue
+<
+T
+> 
+v®ue
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+230 *
+	gdup
+ = 
+ad­tSŒšg
+(
+v®ue
+.
+d©a
+(), v®ue.
+size
+()).
+§ve
+(
+poÞ
+);
+
+231 ià(
+	gdup
+) {
+
+232 
+£tTy³
+(
+VALUE_IS_OWNED_RAW
+);
+
+233 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gd©a
+ = 
+dup
+;
+
+234 
+	g_cÚ‹Á
+.
+	gasRaw
+.
+	gsize
+ = 
+v®ue
+.
+size
+();
+
+235  
+	gŒue
+;
+
+237 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+238  
+	gçl£
+;
+
+242 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+243 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_unsigÃd
+<
+	gT
+>::
+v®ue
+>::
+ty³
+ 
+£tIÁeg”
+(
+T
+ value) {
+
+244 
+£tUnsigÃdIÁeg”
+(
+v®ue
+);
+
+247 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+248 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_sigÃd
+<
+	gT
+>::
+v®ue
+>::
+ty³
+ 
+£tIÁeg”
+(
+T
+ value) {
+
+249 
+£tSigÃdIÁeg”
+(
+v®ue
+);
+
+252 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+253 
+£tSigÃdIÁeg”
+(
+T
+ 
+v®ue
+) {
+
+254 ià(
+	gv®ue
+ >= 0) {
+
+255 
+£tPos™iveIÁeg”
+(
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+));
+
+257 
+£tNeg©iveIÁeg”
+(~
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+) + 1);
+
+261 
+£tPos™iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+262 
+£tTy³
+(
+VALUE_IS_POSITIVE_INTEGER
+);
+
+263 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+v®ue
+;
+
+266 
+£tNeg©iveIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+267 
+£tTy³
+(
+VALUE_IS_NEGATIVE_INTEGER
+);
+
+268 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+v®ue
+;
+
+271 
+£tLškedSŒšg
+(cÚ¡ *
+v®ue
+) {
+
+272 ià(
+	gv®ue
+) {
+
+273 
+£tTy³
+(
+VALUE_IS_LINKED_STRING
+);
+
+274 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ = 
+v®ue
+;
+
+276 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+280 
+£tNuÎ
+() {
+
+281 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+284 
+£tOwÃdSŒšg
+(
+nÙ_nuÎ
+<cÚ¡ *> 
+s
+) {
+
+285 
+£tTy³
+(
+VALUE_IS_OWNED_STRING
+);
+
+286 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ = 
+s
+.
+g‘
+();
+
+289 
+boÞ
+ 
+£tOwÃdSŒšg
+(cÚ¡ *
+s
+) {
+
+290 ià(
+	gs
+) {
+
+291 
+£tOwÃdSŒšg
+(
+make_nÙ_nuÎ
+(
+s
+));
+
+292  
+	gŒue
+;
+
+294 
+£tTy³
+(
+VALUE_IS_NULL
+);
+
+295  
+	gçl£
+;
+
+299 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+300 
+boÞ
+ 
+£tOwÃdSŒšg
+(
+T
+ 
+v®ue
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+301  
+£tOwÃdSŒšg
+(
+v®ue
+.
+§ve
+(
+poÞ
+));
+
+304 
+£tUnsigÃdIÁeg”
+(
+UIÁ
+ 
+v®ue
+) {
+
+305 
+£tTy³
+(
+VALUE_IS_POSITIVE_INTEGER
+);
+
+306 
+	g_cÚ‹Á
+.
+	gasIÁeg”
+ = 
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+);
+
+309 
+	gCÞËùiÚD©a
+ &
+toA¼ay
+() {
+
+310 
+£tTy³
+(
+VALUE_IS_ARRAY
+);
+
+311 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+þ—r
+();
+
+312  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+;
+
+315 
+	gCÞËùiÚD©a
+ &
+toObjeù
+() {
+
+316 
+£tTy³
+(
+VALUE_IS_OBJECT
+);
+
+317 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+þ—r
+();
+
+318  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+;
+
+321 
+size_t
+ 
+memÜyU§ge
+() const {
+
+322 
+ty³
+()) {
+
+323 
+	gVALUE_IS_OWNED_STRING
+:
+
+324  
+¡¾’
+(
+_cÚ‹Á
+.
+asSŒšg
+) + 1;
+
+325 
+	gVALUE_IS_OWNED_RAW
+:
+
+326  
+_cÚ‹Á
+.
+asRaw
+.
+size
+;
+
+327 
+	gVALUE_IS_OBJECT
+:
+
+328 
+VALUE_IS_ARRAY
+:
+
+329  
+_cÚ‹Á
+.
+asCÞËùiÚ
+.
+memÜyU§ge
+();
+
+335 
+size_t
+ 
+Ã¡šg
+() const {
+
+336  
+isCÞËùiÚ
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+Ã¡šg
+() : 0;
+
+339 
+size_t
+ 
+size
+() const {
+
+340  
+isCÞËùiÚ
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+size
+() : 0;
+
+343 
+V¬ŸÁD©a
+ *
+addEËm’t
+(
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+344 ià(
+isNuÎ
+())
+
+345 
+toA¼ay
+();
+
+346 ià(!
+isA¼ay
+())
+
+348  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+addEËm’t
+(
+poÞ
+);
+
+351 
+V¬ŸÁD©a
+ *
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+352  
+isA¼ay
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘EËm’t
+(
+šdex
+) : 0;
+
+355 
+V¬ŸÁD©a
+ *
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+356 ià(
+isNuÎ
+())
+
+357 
+toA¼ay
+();
+
+358 ià(!
+isA¼ay
+())
+
+360  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘OrAddEËm’t
+(
+šdex
+, 
+poÞ
+);
+
+363 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+364 
+V¬ŸÁD©a
+ *
+g‘Memb”
+(
+TAd­‹dSŒšg
+ 
+key
+) const {
+
+365  
+isObjeù
+(è? 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘Memb”
+(
+key
+) : 0;
+
+368 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTAd­‹dSŒšg
+>
+
+369 
+V¬ŸÁD©a
+ *
+g‘OrAddMemb”
+(
+TAd­‹dSŒšg
+ 
+key
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+370 ià(
+isNuÎ
+())
+
+371 
+toObjeù
+();
+
+372 ià(!
+isObjeù
+())
+
+374  
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+g‘OrAddMemb”
+(
+key
+, 
+poÞ
+);
+
+377 
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,…Œdiff_ˆ
+v¬ŸÁDi¡ªû
+) {
+
+378 ià(
+	g_æags
+ & 
+	gVALUE_IS_OWNED
+)
+
+379 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ +ð
+¡ršgDi¡ªû
+;
+
+380 ià(
+	g_æags
+ & 
+	gCOLLECTION_MASK
+)
+
+381 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+movePoš‹rs
+(
+¡ršgDi¡ªû
+, 
+v¬ŸÁDi¡ªû
+);
+
+384 
+	g´iv©e
+:
+
+385 
+ušt8_t
+ 
+ty³
+() const {
+
+386  
+_æags
+ & 
+VALUE_MASK
+;
+
+389 
+£tTy³
+(
+ušt8_t
+ 
+t
+) {
+
+390 
+	g_æags
+ &ð
+KEY_IS_OWNED
+;
+
+391 
+	g_æags
+ |ð
+t
+;
+
+397 #ià
+defšed
+(
+__GNUC__
+)
+
+398 #ià
+__GNUC__
+ >= 8
+
+399 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁD©a.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+11 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+12 
+šlše
+ 
+v¬ŸÁAcû±
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+, 
+Vis™Ü
+ &
+vis™Ü
+) {
+
+13 ià(
+	gv¬
+ != 0)
+
+14 
+v¬
+->
+acû±
+(
+vis™Ü
+);
+
+16 
+	gvis™Ü
+.
+vis™NuÎ
+();
+
+19 
+šlše
+ cÚ¡ 
+CÞËùiÚD©a
+ *
+v¬ŸÁAsA¼ay
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+20  
+	gv¬
+ !ð0 ? 
+v¬
+->
+asA¼ay
+() : 0;
+
+23 
+šlše
+ cÚ¡ 
+CÞËùiÚD©a
+ *
+v¬ŸÁAsObjeù
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+24  
+	gv¬
+ !ð0 ? 
+v¬
+->
+asObjeù
+() : 0;
+
+27 
+šlše
+ 
+CÞËùiÚD©a
+ *
+v¬ŸÁAsObjeù
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+28  
+	gv¬
+ !ð0 ? 
+v¬
+->
+asObjeù
+() : 0;
+
+31 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁCÝyFrom
+(
+V¬ŸÁD©a
+ *
+d¡
+, cÚ¡ V¬ŸÁD©¨*
+¤c
+,
+
+32 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+33 ià(!
+	gd¡
+)
+
+34  
+	gçl£
+;
+
+35 ià(!
+	g¤c
+) {
+
+36 
+	gd¡
+->
+£tNuÎ
+();
+
+37  
+	gŒue
+;
+
+39  
+	gd¡
+->
+cÝyFrom
+(*
+¤c
+, 
+poÞ
+);
+
+42 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁEqu®s
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+a
+, cÚ¡ V¬ŸÁD©¨*
+b
+) {
+
+43 ià(
+	ga
+ =ð
+b
+)
+
+44  
+Œue
+;
+
+45 ià(!
+	ga
+ || !
+	gb
+)
+
+46  
+	gçl£
+;
+
+47  
+	ga
+->
+equ®s
+(*
+b
+);
+
+50 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsA¼ay
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+51  
+	gv¬
+ && v¬->
+isA¼ay
+();
+
+54 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsBoÞ—n
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+55  
+	gv¬
+ && v¬->
+isBoÞ—n
+();
+
+58 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+59 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsIÁeg”
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+60  
+	gv¬
+ && v¬->
+	gisIÁeg”
+<
+	gT
+>();
+
+63 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsFlßt
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+64  
+	gv¬
+ && v¬->
+isFlßt
+();
+
+67 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsSŒšg
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+68  
+	gv¬
+ && v¬->
+isSŒšg
+();
+
+71 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsObjeù
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+72  
+	gv¬
+ && v¬->
+isObjeù
+();
+
+75 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁIsNuÎ
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+76  
+	gv¬
+ =ð0 || 
+v¬
+->
+isNuÎ
+();
+
+79 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘BoÞ—n
+(
+V¬ŸÁD©a
+ *
+v¬
+, boÞ 
+v®ue
+) {
+
+80 ià(!
+	gv¬
+)
+
+81  
+	gçl£
+;
+
+82 
+	gv¬
+->
+£tBoÞ—n
+(
+v®ue
+);
+
+83  
+	gŒue
+;
+
+86 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘Flßt
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+Flßt
+ 
+v®ue
+) {
+
+87 ià(!
+	gv¬
+)
+
+88  
+	gçl£
+;
+
+89 
+	gv¬
+->
+£tFlßt
+(
+v®ue
+);
+
+90  
+	gŒue
+;
+
+93 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘LškedRaw
+(
+V¬ŸÁD©a
+ *
+v¬
+,
+
+94 
+S”ŸlizedV®ue
+<cÚ¡ *> 
+v®ue
+) {
+
+95 ià(!
+	gv¬
+)
+
+96  
+	gçl£
+;
+
+97 
+	gv¬
+->
+£tLškedRaw
+(
+v®ue
+);
+
+98  
+	gŒue
+;
+
+101 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+102 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘OwÃdRaw
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+S”ŸlizedV®ue
+<
+T
+> 
+v®ue
+,
+
+103 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+104  
+	gv¬
+ !ð0 && 
+v¬
+->
+£tOwÃdRaw
+(
+v®ue
+, 
+poÞ
+);
+
+107 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+108 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘SigÃdIÁeg”
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+T
+ 
+v®ue
+) {
+
+109 ià(!
+	gv¬
+)
+
+110  
+	gçl£
+;
+
+111 
+	gv¬
+->
+£tSigÃdIÁeg”
+(
+v®ue
+);
+
+112  
+	gŒue
+;
+
+115 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘LškedSŒšg
+(
+V¬ŸÁD©a
+ *
+v¬
+, cÚ¡ *
+v®ue
+) {
+
+116 ià(!
+	gv¬
+)
+
+117  
+	gçl£
+;
+
+118 
+	gv¬
+->
+£tLškedSŒšg
+(
+v®ue
+);
+
+119  
+	gŒue
+;
+
+122 
+šlše
+ 
+v¬ŸÁS‘NuÎ
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+123 ià(!
+	gv¬
+)
+
+125 
+	gv¬
+->
+£tNuÎ
+();
+
+128 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘OwÃdSŒšg
+(
+V¬ŸÁD©a
+ *
+v¬
+, *
+v®ue
+) {
+
+129 ià(!
+	gv¬
+)
+
+130  
+	gçl£
+;
+
+131 
+	gv¬
+->
+£tOwÃdSŒšg
+(
+v®ue
+);
+
+132  
+	gŒue
+;
+
+135 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+136 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘OwÃdSŒšg
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+T
+ 
+v®ue
+, 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+137  
+	gv¬
+ !ð0 && 
+v¬
+->
+£tOwÃdSŒšg
+(
+v®ue
+, 
+poÞ
+);
+
+140 
+šlše
+ 
+boÞ
+ 
+v¬ŸÁS‘UnsigÃdIÁeg”
+(
+V¬ŸÁD©a
+ *
+v¬
+, 
+UIÁ
+ 
+v®ue
+) {
+
+141 ià(!
+	gv¬
+)
+
+142  
+	gçl£
+;
+
+143 
+	gv¬
+->
+£tUnsigÃdIÁeg”
+(
+v®ue
+);
+
+144  
+	gŒue
+;
+
+147 
+šlše
+ 
+size_t
+ 
+v¬ŸÁSize
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+148  
+	gv¬
+ !ð0 ? 
+v¬
+->
+size
+() : 0;
+
+151 
+šlše
+ 
+CÞËùiÚD©a
+ *
+v¬ŸÁToA¼ay
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+152 ià(!
+	gv¬
+)
+
+154  &
+	gv¬
+->
+toA¼ay
+();
+
+157 
+šlše
+ 
+CÞËùiÚD©a
+ *
+v¬ŸÁToObjeù
+(
+V¬ŸÁD©a
+ *
+v¬
+) {
+
+158 ià(!
+	gv¬
+)
+
+160  &
+	gv¬
+->
+toObjeù
+();
+
+163 
+šlše
+ 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁAddEËm’t
+(V¬ŸÁD©¨*
+v¬
+,
+
+164 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+165  
+	gv¬
+ !ð0 ? 
+v¬
+->
+addEËm’t
+(
+poÞ
+) : 0;
+
+168 
+šlše
+ 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁG‘OrAddEËm’t
+(V¬ŸÁD©¨*
+v¬
+,
+
+169 
+size_t
+ 
+šdex
+,
+
+170 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+171  
+	gv¬
+ !ð0 ? 
+v¬
+->
+g‘OrAddEËm’t
+(
+šdex
+, 
+poÞ
+) : 0;
+
+174 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+175 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁG‘OrAddMemb”
+(V¬ŸÁD©¨*
+v¬
+, 
+TCh¬
+ *
+key
+,
+
+176 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+177  
+	gv¬
+ !ð0 ? 
+v¬
+->
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), 
+poÞ
+) : 0;
+
+180 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+181 
+NO_INLINE
+ 
+V¬ŸÁD©a
+ *
+v¬ŸÁG‘OrAddMemb”
+(V¬ŸÁD©¨*
+v¬
+,
+
+182 cÚ¡ 
+TSŒšg
+ &
+key
+,
+
+183 
+MemÜyPoÞ
+ *
+poÞ
+) {
+
+184  
+	gv¬
+ !ð0 ? 
+v¬
+->
+g‘OrAddMemb”
+(
+ad­tSŒšg
+(
+key
+), 
+poÞ
+) : 0;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/CÚfigu¿tiÚ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/Numb”s/cÚv”tNumb”.hµ
+>
+
+9 
+	~<ArdušoJsÚ/Numb”s/·r£Flßt.hµ
+>
+
+10 
+	~<ArdušoJsÚ/Numb”s/·r£IÁeg”.hµ
+>
+
+11 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+13 
+	~<¡ršg.h
+>
+
+15 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+17 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+18 
+šlše
+ 
+T
+ 
+	gV¬ŸÁD©a
+::
+asIÁeg¿l
+() const {
+
+19 
+ty³
+()) {
+
+20 
+VALUE_IS_POSITIVE_INTEGER
+:
+
+21 
+VALUE_IS_BOOLEAN
+:
+
+22  
+cÚv”tPos™iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+23 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+24  
+cÚv”tNeg©iveIÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+25 
+	gVALUE_IS_LINKED_STRING
+:
+
+26 
+VALUE_IS_OWNED_STRING
+:
+
+27  
+·r£IÁeg”
+<
+T
+>(
+_cÚ‹Á
+.
+asSŒšg
+);
+
+28 
+	gVALUE_IS_FLOAT
+:
+
+29  
+cÚv”tFlßt
+<
+T
+>(
+_cÚ‹Á
+.
+asFlßt
+);
+
+35 
+šlše
+ 
+boÞ
+ 
+	gV¬ŸÁD©a
+::
+asBoÞ—n
+() const {
+
+36 
+ty³
+()) {
+
+37 
+VALUE_IS_POSITIVE_INTEGER
+:
+
+38 
+VALUE_IS_BOOLEAN
+:
+
+39 
+VALUE_IS_NEGATIVE_INTEGER
+:
+
+40  
+_cÚ‹Á
+.
+asIÁeg”
+ != 0;
+
+41 
+	gVALUE_IS_FLOAT
+:
+
+42  
+_cÚ‹Á
+.
+asFlßt
+ != 0;
+
+43 
+	gVALUE_IS_NULL
+:
+
+44  
+çl£
+;
+
+46  
+Œue
+;
+
+51 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+52 
+šlše
+ 
+T
+ 
+	gV¬ŸÁD©a
+::
+asFlßt
+() const {
+
+53 
+ty³
+()) {
+
+54 
+VALUE_IS_POSITIVE_INTEGER
+:
+
+55 
+VALUE_IS_BOOLEAN
+:
+
+56  
+¡©ic_ÿ¡
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+57 
+	gVALUE_IS_NEGATIVE_INTEGER
+:
+
+58  -
+¡©ic_ÿ¡
+<
+T
+>(
+_cÚ‹Á
+.
+asIÁeg”
+);
+
+59 
+	gVALUE_IS_LINKED_STRING
+:
+
+60 
+VALUE_IS_OWNED_STRING
+:
+
+61  
+·r£Flßt
+<
+T
+>(
+_cÚ‹Á
+.
+asSŒšg
+);
+
+62 
+	gVALUE_IS_FLOAT
+:
+
+63  
+¡©ic_ÿ¡
+<
+T
+>(
+_cÚ‹Á
+.
+asFlßt
+);
+
+69 
+šlše
+ cÚ¡ *
+	gV¬ŸÁD©a
+::
+asSŒšg
+() const {
+
+70 
+ty³
+()) {
+
+71 
+VALUE_IS_LINKED_STRING
+:
+
+72 
+VALUE_IS_OWNED_STRING
+:
+
+73  
+_cÚ‹Á
+.
+asSŒšg
+;
+
+79 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+80 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsVis™abË
+<
+	gTV¬ŸÁ
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+V¬ŸÁRef
+::
+£t
+(
+
+81 cÚ¡ 
+TV¬ŸÁ
+ &
+v®ue
+) const {
+
+82 
+V¬ŸÁCÚ¡Ref
+ 
+v
+ = 
+v®ue
+;
+
+83  
+v¬ŸÁCÝyFrom
+(
+_d©a
+, 
+v
+._d©a, 
+_poÞ
+);
+
+86 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+87 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gA¼ayRef
+>::
+v®ue
+, T>::
+ty³
+ 
+V¬ŸÁRef
+::
+as
+()
+
+89  
+A¼ayRef
+(
+_poÞ
+, 
+_d©a
+ !ð0 ? _d©a->
+asA¼ay
+() : 0);
+
+92 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+93 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gObjeùRef
+>::
+v®ue
+, T>::
+ty³
+
+
+94 
+V¬ŸÁRef
+::
+as
+() const {
+
+95  
+ObjeùRef
+(
+_poÞ
+, 
+v¬ŸÁAsObjeù
+(
+_d©a
+));
+
+98 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+99 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gA¼ayRef
+>::
+v®ue
+, A¼ayRef>::
+ty³
+
+
+100 
+V¬ŸÁRef
+::
+to
+() const {
+
+101  
+A¼ayRef
+(
+_poÞ
+, 
+v¬ŸÁToA¼ay
+(
+_d©a
+));
+
+104 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+105 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gObjeùRef
+>::
+v®ue
+, ObjeùRef>::
+ty³
+
+
+106 
+V¬ŸÁRef
+::
+to
+() const {
+
+107  
+ObjeùRef
+(
+_poÞ
+, 
+v¬ŸÁToObjeù
+(
+_d©a
+));
+
+110 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+111 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gV¬ŸÁRef
+>::
+v®ue
+, V¬ŸÁRef>::
+ty³
+
+
+112 
+V¬ŸÁRef
+::
+to
+() const {
+
+113 
+v¬ŸÁS‘NuÎ
+(
+_d©a
+);
+
+114  *
+	gthis
+;
+
+117 
+šlše
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gV¬ŸÁCÚ¡Ref
+::
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+118  
+A¼ayCÚ¡Ref
+(
+_d©a
+ !ð0 ? _d©a->
+asA¼ay
+(è: 0)[
+šdex
+];
+
+121 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+addEËm’t
+() const {
+
+122  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁAddEËm’t
+(
+_d©a
+, _pool));
+
+125 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘EËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+126  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ !ð0 ? _d©a->
+g‘EËm’t
+(
+šdex
+) : 0);
+
+129 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘OrAddEËm’t
+(
+size_t
+ 
+šdex
+) const {
+
+130  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁG‘OrAddEËm’t
+(
+_d©a
+, 
+šdex
+, _pool));
+
+133 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+134 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘Memb”
+(
+TCh¬
+ *
+key
+) const {
+
+135  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ !ð0 ? _d©a->
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)) : 0);
+
+138 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+139 
+šlše
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁRef
+>::
+ty³
+
+
+140 
+V¬ŸÁRef
+::
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+141  
+V¬ŸÁRef
+(
+_poÞ
+, 
+_d©a
+ !ð0 ? _d©a->
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)) : 0);
+
+144 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+145 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘OrAddMemb”
+(
+TCh¬
+ *
+key
+) const {
+
+146  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁG‘OrAddMemb”
+(
+_d©a
+, 
+key
+, _pool));
+
+149 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+150 
+šlše
+ 
+V¬ŸÁRef
+ 
+	gV¬ŸÁRef
+::
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+151  
+V¬ŸÁRef
+(
+_poÞ
+, 
+v¬ŸÁG‘OrAddMemb”
+(
+_d©a
+, 
+key
+, _pool));
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<¡ddef.h
+>
+
+8 
+	~<¡dšt.h
+>
+
+10 
+	~<ArdušoJsÚ/MemÜy/MemÜyPoÞ.hµ
+>
+
+11 
+	~<ArdušoJsÚ/Misc/Vis™abË.hµ
+>
+
+12 
+	~<ArdušoJsÚ/O³¿tÜs/V¬ŸÁO³¿tÜs.hµ
+>
+
+13 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+14 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁAs.hµ
+>
+
+15 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁFunùiÚs.hµ
+>
+
+16 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁRef.hµ
+>
+
+18 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+21 
+þass
+ 
+	gA¼ayRef
+;
+
+22 
+þass
+ 
+	gObjeùRef
+;
+
+24 
+	g‹m¶©e
+ <
+	gty³Çme
+,�ypename>
+
+25 
+þass
+ 
+	gMemb”Proxy
+;
+
+28 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTD©a
+>
+
+29 þas 
+	cV¬ŸÁRefBa£
+ {
+
+30 
+	gpublic
+:
+
+43 
+‹m¶©e
+ <
+ty³Çme
+ 
+T
+>
+
+44 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+is
+()
+
+46  
+v¬ŸÁIsIÁeg”
+<
+T
+>(
+_d©a
+);
+
+51 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+52 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_æßtšg_pošt
+<
+	gT
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+is
+()
+
+54  
+v¬ŸÁIsFlßt
+(
+_d©a
+);
+
+58 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+59 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gboÞ
+>::
+v®ue
+, boÞ>::
+ty³
+ 
+is
+()
+
+61  
+v¬ŸÁIsBoÞ—n
+(
+_d©a
+);
+
+68 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+69 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, cÚ¡ *>::
+v®ue
+ ||
+
+70 
+is_§me
+<
+T
+, *>::
+v®ue
+ ||
+
+71 
+IsWr™—bËSŒšg
+<
+T
+>::
+v®ue
+,
+
+72 
+	gboÞ
+>::
+ty³
+
+
+73 
+is
+() const {
+
+74  
+v¬ŸÁIsSŒšg
+(
+_d©a
+);
+
+79 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+80 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+
+81 
+	gis_§me
+<
+ty³Çme
+ 
+	g»move_cÚ¡
+<
+	gT
+>::
+ty³
+, 
+	gA¼ayRef
+>::
+v®ue
+, 
+	gboÞ
+>::type
+
+82 
+is
+() const {
+
+83  
+v¬ŸÁIsA¼ay
+(
+_d©a
+);
+
+88 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+89 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+
+90 
+	gis_§me
+<
+ty³Çme
+ 
+	g»move_cÚ¡
+<
+	gT
+>::
+ty³
+, 
+	gObjeùRef
+>::
+v®ue
+, 
+	gboÞ
+>::type
+
+91 
+is
+() const {
+
+92  
+v¬ŸÁIsObjeù
+(
+_d©a
+);
+
+94 #ià
+ARDUINOJSON_HAS_NULLPTR
+
+
+97 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+98 
+FORCE_INLINE
+
+
+99 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+deþty³
+(
+nuÎ±r
+)>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+
+
+100 
+is
+() const {
+
+101  
+v¬ŸÁIsNuÎ
+(
+_d©a
+);
+
+105 
+FORCE_INLINE
+ 
+boÞ
+ 
+isNuÎ
+() const {
+
+106  
+v¬ŸÁIsNuÎ
+(
+_d©a
+);
+
+109 
+FORCE_INLINE
+ 
+boÞ
+ 
+isUndefšed
+() const {
+
+110  !
+	g_d©a
+;
+
+113 
+FORCE_INLINE
+ 
+size_t
+ 
+memÜyU§ge
+() const {
+
+114  
+	g_d©a
+ ? _d©a->
+memÜyU§ge
+() : 0;
+
+117 
+FORCE_INLINE
+ 
+size_t
+ 
+Ã¡šg
+() const {
+
+118  
+	g_d©a
+ ? _d©a->
+Ã¡šg
+() : 0;
+
+121 
+size_t
+ 
+size
+() const {
+
+122  
+v¬ŸÁSize
+(
+_d©a
+);
+
+125 
+	g´Ùeùed
+:
+
+126 
+V¬ŸÁRefBa£
+(
+TD©a
+ *
+d©a
+è: 
+_d©a
+(data) {}
+
+127 
+TD©a
+ *
+_d©a
+;
+
+137 
+þass
+ 
+	gV¬ŸÁRef
+ : 
+public
+ 
+V¬ŸÁRefBa£
+<
+V¬ŸÁD©a
+>,
+
+138 
+public
+ 
+	gV¬ŸÁO³¿tÜs
+<
+	gV¬ŸÁRef
+>,
+
+139 
+public
+ 
+	gVis™abË
+ {
+
+140 
+	gV¬ŸÁRefBa£
+<
+	tV¬ŸÁD©a
+> 
+	tba£_ty³
+;
+
+141 
+ä›nd
+ 
+þass
+ 
+	gV¬ŸÁCÚ¡Ref
+;
+
+143 
+	gpublic
+:
+
+145 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+(
+MemÜyPoÞ
+ *
+poÞ
+, 
+V¬ŸÁD©a
+ *
+d©a
+)
+
+146 : 
+ba£_ty³
+(
+d©a
+), 
+_poÞ
+(
+poÞ
+) {}
+
+149 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+(è: 
+ba£_ty³
+(0), 
+_poÞ
+(0) {}
+
+151 
+FORCE_INLINE
+ 
+þ—r
+() const {
+
+152  
+v¬ŸÁS‘NuÎ
+(
+_d©a
+);
+
+156 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+157 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+158 
+T
+ 
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+is_§me
+<T, 
+boÞ
+>::v®ue>::
+ty³
+ * = 0) const {
+
+159  
+v¬ŸÁS‘BoÞ—n
+(
+_d©a
+, 
+v®ue
+);
+
+164 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+165 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+166 
+T
+ 
+v®ue
+,
+
+167 
+ty³Çme
+ 
+’abË_if
+<
+is_æßtšg_pošt
+<
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+168  
+v¬ŸÁS‘Flßt
+(
+_d©a
+, 
+¡©ic_ÿ¡
+<
+Flßt
+>(
+v®ue
+));
+
+176 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+177 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+178 
+T
+ 
+v®ue
+,
+
+179 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<
+T
+>::
+v®ue
+ && 
+is_sigÃd
+<T>::v®ue>::
+ty³
+ * =
+
+181  
+v¬ŸÁS‘SigÃdIÁeg”
+(
+_d©a
+, 
+v®ue
+);
+
+187 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+188 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+189 
+T
+ 
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+is_š‹g¿l
+<T>::value &&
+
+190 
+is_unsigÃd
+<
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+191  
+v¬ŸÁS‘UnsigÃdIÁeg”
+(
+_d©a
+, 
+¡©ic_ÿ¡
+<
+UIÁ
+>(
+v®ue
+));
+
+195 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+S”ŸlizedV®ue
+<cÚ¡ *> 
+v®ue
+) const {
+
+196  
+v¬ŸÁS‘LškedRaw
+(
+_d©a
+, 
+v®ue
+);
+
+202 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+203 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+204 
+S”ŸlizedV®ue
+<
+T
+> 
+v®ue
+,
+
+205 
+ty³Çme
+ 
+’abË_if
+<!
+is_§me
+<cÚ¡ *, 
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+206  
+v¬ŸÁS‘OwÃdRaw
+(
+_d©a
+, 
+v®ue
+, 
+_poÞ
+);
+
+211 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+212 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+213 cÚ¡ 
+T
+ &
+v®ue
+,
+
+214 
+ty³Çme
+ 
+’abË_if
+<
+IsSŒšg
+<
+T
+>::
+v®ue
+>::
+ty³
+ * = 0) const {
+
+215  
+v¬ŸÁS‘OwÃdSŒšg
+(
+_d©a
+, 
+ad­tSŒšg
+(
+v®ue
+), 
+_poÞ
+);
+
+220 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+221 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+222 
+T
+ *
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+IsSŒšg
+<T *>::v®ue>::
+ty³
+ * = 0) const {
+
+223  
+v¬ŸÁS‘OwÃdSŒšg
+(
+_d©a
+, 
+ad­tSŒšg
+(
+v®ue
+), 
+_poÞ
+);
+
+227 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(cÚ¡ *
+v®ue
+) const {
+
+228  
+v¬ŸÁS‘LškedSŒšg
+(
+_d©a
+, 
+v®ue
+);
+
+238 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTV¬ŸÁ
+>
+
+239 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsVis™abË
+<
+	gTV¬ŸÁ
+>::
+v®ue
+, 
+	gboÞ
+>::
+ty³
+ 
+£t
+(
+
+240 cÚ¡ 
+TV¬ŸÁ
+ &
+v®ue
+) const;
+
+243 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+244 
+FORCE_INLINE
+ 
+boÞ
+ 
+£t
+(
+
+245 
+T
+ 
+v®ue
+, 
+ty³Çme
+ 
+’abË_if
+<
+is_’um
+<T>::v®ue>::
+ty³
+ * = 0) const {
+
+246  
+v¬ŸÁS‘SigÃdIÁeg”
+(
+_d©a
+, 
+¡©ic_ÿ¡
+<
+IÁeg”
+>(
+v®ue
+));
+
+253 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+254 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<!
+	gis_§me
+<
+	gT
+, 
+	gA¼ayRef
+>::
+v®ue
+ &&
+
+255 !
+is_§me
+<
+T
+, 
+	gObjeùRef
+>::
+v®ue
+ &&
+
+256 !
+is_§me
+<
+T
+, 
+	gV¬ŸÁRef
+>::
+v®ue
+,
+
+257 
+ty³Çme
+ 
+	gV¬ŸÁAs
+<
+	gT
+>::
+ty³
+>::type
+
+258 
+as
+() const {
+
+259  
+v¬ŸÁAs
+<
+T
+>(
+_d©a
+);
+
+264 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+265 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gA¼ayRef
+>::
+v®ue
+, T>::
+ty³
+ 
+as
+()
+
+270 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+271 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gObjeùRef
+>::
+v®ue
+, T>::
+ty³
+ 
+as
+()
+
+275 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+276 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gV¬ŸÁRef
+>::
+v®ue
+, T>::
+ty³
+ 
+as
+()
+
+278  *
+this
+;
+
+281 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gVis™Ü
+>
+
+282 
+acû±
+(
+Vis™Ü
+ &
+vis™Ü
+) const {
+
+283 
+v¬ŸÁAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+286 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+V¬ŸÁRef
+ 
+lhs
+) const {
+
+287  
+v¬ŸÁEqu®s
+(
+_d©a
+, 
+lhs
+._data);
+
+290 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+V¬ŸÁRef
+ 
+lhs
+) const {
+
+291  !
+v¬ŸÁEqu®s
+(
+_d©a
+, 
+lhs
+._data);
+
+297 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+298 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gA¼ayRef
+>::
+v®ue
+, A¼ayRef>::
+ty³
+ 
+to
+() const;
+
+301 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+302 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gObjeùRef
+>::
+v®ue
+, ObjeùRef>::
+ty³
+ 
+to
+() const;
+
+305 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+306 
+ty³Çme
+ 
+	g’abË_if
+<
+	gis_§me
+<
+	gT
+, 
+	gV¬ŸÁRef
+>::
+v®ue
+, V¬ŸÁRef>::
+ty³
+ 
+to
+()
+
+309 
+V¬ŸÁRef
+ 
+addEËm’t
+() const;
+
+311 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘EËm’t
+(
+size_t
+) const;
+
+313 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddEËm’t
+(
+size_t
+) const;
+
+317 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+318 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘Memb”
+(
+TCh¬
+ *) const;
+
+322 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+323 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁRef
+>::
+ty³
+
+
+324 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &) const;
+
+329 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+330 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(
+TCh¬
+ *) const;
+
+334 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+335 
+FORCE_INLINE
+ 
+V¬ŸÁRef
+ 
+g‘OrAddMemb”
+(cÚ¡ 
+TSŒšg
+ &) const;
+
+337 
+FORCE_INLINE
+ 
+»move
+(
+size_t
+ 
+šdex
+) const {
+
+338 ià(
+	g_d©a
+)
+
+339 
+	g_d©a
+->
+»move
+(
+šdex
+);
+
+344 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+345 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+346 
+TCh¬
+ *
+key
+) const {
+
+347 ià(
+_d©a
+)
+
+348 
+_d©a
+->
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+352 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+353 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+>::
+ty³
+ 
+»move
+(
+
+354 cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+355 ià(
+_d©a
+)
+
+356 
+_d©a
+->
+»move
+(
+ad­tSŒšg
+(
+key
+));
+
+359 
+	g´iv©e
+:
+
+360 
+MemÜyPoÞ
+ *
+_poÞ
+;
+
+363 
+þass
+ 
+	gV¬ŸÁCÚ¡Ref
+ : 
+public
+ 
+V¬ŸÁRefBa£
+<cÚ¡ 
+V¬ŸÁD©a
+>,
+
+364 
+public
+ 
+	gV¬ŸÁO³¿tÜs
+<
+	gV¬ŸÁCÚ¡Ref
+>,
+
+365 
+public
+ 
+	gVis™abË
+ {
+
+366 
+	gV¬ŸÁRefBa£
+<cÚ¡ 
+	tV¬ŸÁD©a
+> 
+	tba£_ty³
+;
+
+367 
+ä›nd
+ 
+þass
+ 
+	gV¬ŸÁRef
+;
+
+369 
+	gpublic
+:
+
+370 
+V¬ŸÁCÚ¡Ref
+(è: 
+ba£_ty³
+(0) {}
+
+371 
+V¬ŸÁCÚ¡Ref
+(cÚ¡ 
+V¬ŸÁD©a
+ *
+d©a
+è: 
+ba£_ty³
+(data) {}
+
+372 
+V¬ŸÁCÚ¡Ref
+(
+V¬ŸÁRef
+ 
+v¬
+è: 
+ba£_ty³
+(v¬.
+_d©a
+) {}
+
+374 
+‹m¶©e
+ <
+ty³Çme
+ 
+Vis™Ü
+>
+
+375 
+acû±
+(
+Vis™Ü
+ &
+vis™Ü
+) const {
+
+376 
+v¬ŸÁAcû±
+(
+_d©a
+, 
+vis™Ü
+);
+
+381 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+382 
+FORCE_INLINE
+ 
+ty³Çme
+ 
+	gV¬ŸÁCÚ¡As
+<
+	gT
+>::
+ty³
+ 
+as
+() const {
+
+383  
+v¬ŸÁAs
+<
+ty³Çme
+ 
+V¬ŸÁCÚ¡As
+<
+T
+>::
+ty³
+>(
+_d©a
+);
+
+386 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘EËm’t
+(
+size_t
+) const;
+
+388 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+	gÝ”©Ü
+[](
+size_t
+ 
+	gšdex
+) const {
+
+389  
+g‘EËm’t
+(
+šdex
+);
+
+394 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+395 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+396  
+V¬ŸÁCÚ¡Ref
+(
+
+397 
+objeùG‘Memb”
+(
+v¬ŸÁAsObjeù
+(
+_d©a
+), 
+ad­tSŒšg
+(
+key
+)));
+
+403 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+404 
+FORCE_INLINE
+ 
+V¬ŸÁCÚ¡Ref
+ 
+g‘Memb”
+(
+TCh¬
+ *
+key
+) const {
+
+405 cÚ¡ 
+CÞËùiÚD©a
+ *
+	gobj
+ = 
+v¬ŸÁAsObjeù
+(
+_d©a
+);
+
+406  
+V¬ŸÁCÚ¡Ref
+(
+obj
+ ? obj->
+g‘Memb”
+(
+ad­tSŒšg
+(
+key
+)) : 0);
+
+411 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTSŒšg
+>
+
+412 
+FORCE_INLINE
+
+
+413 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTSŒšg
+>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+414 
+Ý”©Ü
+[](cÚ¡ 
+TSŒšg
+ &
+key
+) const {
+
+415  
+g‘Memb”
+(
+key
+);
+
+421 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gTCh¬
+>
+
+422 
+FORCE_INLINE
+
+
+423 
+ty³Çme
+ 
+	g’abË_if
+<
+	gIsSŒšg
+<
+	gTCh¬
+ *>::
+v®ue
+, 
+	gV¬ŸÁCÚ¡Ref
+>::
+ty³
+
+
+424 
+Ý”©Ü
+[](
+TCh¬
+ *
+key
+) const {
+
+425  
+g‘Memb”
+(
+key
+);
+
+428 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(
+V¬ŸÁCÚ¡Ref
+ 
+lhs
+) const {
+
+429  
+v¬ŸÁEqu®s
+(
+_d©a
+, 
+lhs
+._data);
+
+432 
+FORCE_INLINE
+ 
+boÞ
+ 
+	gÝ”©Ü
+!=(
+V¬ŸÁCÚ¡Ref
+ 
+lhs
+) const {
+
+433  !
+v¬ŸÁEqu®s
+(
+_d©a
+, 
+lhs
+._data);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/PÞyfžls/g¦/nÙ_nuÎ.hµ
+>
+
+8 
+	~<ArdušoJsÚ/PÞyfžls/ty³_Œa™s.hµ
+>
+
+9 
+	~<ArdušoJsÚ/V¬ŸÁ/V¬ŸÁCÚ‹Á.hµ
+>
+
+11 
+	~<¡dšt.h
+>
+
+13 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+15 
+	gcÚd™iÚ®
+<(*è<ð2, 
+	tšt8_t
+, 
+	tšt16_t
+>::
+	tty³
+ 
+	tV¬ŸÁSlÙDiff
+;
+
+17 þas 
+	cV¬ŸÁSlÙ
+ {
+
+21 
+V¬ŸÁCÚ‹Á
+ 
+	g_cÚ‹Á
+;
+
+22 
+ušt8_t
+ 
+	g_æags
+;
+
+23 
+V¬ŸÁSlÙDiff
+ 
+	g_Ãxt
+;
+
+24 cÚ¡ * 
+	g_key
+;
+
+26 
+	gpublic
+:
+
+33 
+V¬ŸÁD©a
+* 
+d©a
+() {
+
+34  
+»š‹½»t_ÿ¡
+<
+V¬ŸÁD©a
+*>(&
+_cÚ‹Á
+);
+
+37 cÚ¡ 
+V¬ŸÁD©a
+* 
+d©a
+() const {
+
+38  
+	g»š‹½»t_ÿ¡
+<cÚ¡ 
+	gV¬ŸÁD©a
+*>(&
+	g_cÚ‹Á
+);
+
+41 
+V¬ŸÁSlÙ
+* 
+Ãxt
+() {
+
+42  
+	g_Ãxt
+ ? 
+	gthis
+ + _next : 0;
+
+45 cÚ¡ 
+V¬ŸÁSlÙ
+* 
+Ãxt
+() const {
+
+46  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁSlÙ
+*>(
+	gthis
+)->
+Ãxt
+();
+
+49 
+V¬ŸÁSlÙ
+* 
+Ãxt
+(
+size_t
+ 
+di¡ªû
+) {
+
+50 
+V¬ŸÁSlÙ
+* 
+	g¦Ù
+ = 
+this
+;
+
+51 
+	gdi¡ªû
+--) {
+
+52 ià(!
+	g¦Ù
+->
+	g_Ãxt
+)
+
+54 
+	g¦Ù
+ +ð
+¦Ù
+->
+_Ãxt
+;
+
+56  
+	g¦Ù
+;
+
+59 cÚ¡ 
+V¬ŸÁSlÙ
+* 
+Ãxt
+(
+size_t
+ 
+di¡ªû
+) const {
+
+60  
+	gcÚ¡_ÿ¡
+<
+	gV¬ŸÁSlÙ
+*>(
+	gthis
+)->
+Ãxt
+(
+di¡ªû
+);
+
+63 
+£tNext
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+64 
+	g_Ãxt
+ = 
+V¬ŸÁSlÙDiff
+(
+¦Ù
+ ? slÙ - 
+this
+ : 0);
+
+67 
+£tNextNÙNuÎ
+(
+V¬ŸÁSlÙ
+* 
+¦Ù
+) {
+
+68 
+ARDUINOJSON_ASSERT
+(
+¦Ù
+ != 0);
+
+69 
+	g_Ãxt
+ = 
+V¬ŸÁSlÙDiff
+(
+¦Ù
+ - 
+this
+);
+
+72 
+£tOwÃdKey
+(
+nÙ_nuÎ
+<cÚ¡ *> 
+k
+) {
+
+73 
+	g_æags
+ |ð
+KEY_IS_OWNED
+;
+
+74 
+	g_key
+ = 
+k
+.
+g‘
+();
+
+77 
+£tLškedKey
+(
+nÙ_nuÎ
+<cÚ¡ *> 
+k
+) {
+
+78 
+	g_æags
+ &ð
+VALUE_MASK
+;
+
+79 
+	g_key
+ = 
+k
+.
+g‘
+();
+
+82 cÚ¡ * 
+key
+() const {
+
+83  
+	g_key
+;
+
+86 
+boÞ
+ 
+ownsKey
+() const {
+
+87  (
+	g_æags
+ & 
+	gKEY_IS_OWNED
+) != 0;
+
+90 
+þ—r
+() {
+
+91 
+	g_Ãxt
+ = 0;
+
+92 
+	g_æags
+ = 0;
+
+93 
+	g_key
+ = 0;
+
+96 
+movePoš‹rs
+(
+±rdiff_t
+ 
+¡ršgDi¡ªû
+,…Œdiff_ˆ
+v¬ŸÁDi¡ªû
+) {
+
+97 ià(
+	g_æags
+ & 
+	gKEY_IS_OWNED
+)
+
+98 
+	g_key
+ +ð
+¡ršgDi¡ªû
+;
+
+99 ià(
+	g_æags
+ & 
+	gVALUE_IS_OWNED
+)
+
+100 
+	g_cÚ‹Á
+.
+	gasSŒšg
+ +ð
+¡ršgDi¡ªû
+;
+
+101 ià(
+	g_æags
+ & 
+	gCOLLECTION_MASK
+)
+
+102 
+	g_cÚ‹Á
+.
+	gasCÞËùiÚ
+.
+movePoš‹rs
+(
+¡ršgDi¡ªû
+, 
+v¬ŸÁDi¡ªû
+);
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	~<ArdušoJsÚ/Name¥aû.hµ
+>
+
+9 
+Çme¥aû
+ 
+	gARDUINOJSON_NAMESPACE
+ {
+
+10 
+þass
+ 
+	gA¼ayRef
+;
+
+11 
+þass
+ 
+	gObjeùRef
+;
+
+12 
+þass
+ 
+	gV¬ŸÁRef
+;
+
+16 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+17 
+	sV¬ŸÁTo
+ {};
+
+19 
+	g‹m¶©e
+ <>
+
+20 
+	gV¬ŸÁTo
+<
+	gA¼ayRef
+> {
+
+21 
+A¼ayRef
+ 
+	tty³
+;
+
+23 
+	g‹m¶©e
+ <>
+
+24 
+	gV¬ŸÁTo
+<
+	gObjeùRef
+> {
+
+25 
+ObjeùRef
+ 
+	tty³
+;
+
+27 
+	g‹m¶©e
+ <>
+
+28 
+	gV¬ŸÁTo
+<
+	gV¬ŸÁRef
+> {
+
+29 
+V¬ŸÁRef
+ 
+	tty³
+;
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/compatibility.hpp
+
+7 #ifdeà
+__GNUC__
+
+
+9 
+	#ARDUINOJSON_PRAGMA
+(
+x
+è
+	`_P¿gma
+(#x)
+
+	)
+
+11 
+	#ARDUINOJSON_COMPILE_ERROR
+(
+msg
+è
+	`ARDUINOJSON_PRAGMA
+(
+GCC
+ 
+”rÜ
+ msg)
+
+	)
+
+13 
+	#ARDUINOJSON_STRINGIFY
+(
+S
+è#S
+
+	)
+
+15 
+	#ARDUINOJSON_DEPRECATION_ERROR
+(
+X
+, 
+Y
+) \
+
+16 
+	`ARDUINOJSON_COMPILE_ERROR
+(
+	`ARDUINOJSON_STRINGIFY
+(
+X
+ 
+is
+ 
+a
+ 
+Y
+ 
+äom
+ 
+ArdušoJsÚ
+ 5. 
+PËa£
+ 
+£e
+ 
+¬dušojsÚ
+.
+Üg
+/
+upg¿de
+ 
+to
+ 
+Ë¬n
+ 
+how
+�Øupg¿d�
+your
+ 
+´og¿m
+�ØArdušoJsÚ 
+v”siÚ
+ 6))
+
+	)
+
+18 
+	#S�ticJsÚBufãr
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+S�ticJsÚBufãr
+, 
+þass
+)
+
+	)
+
+19 
+	#DyÇmicJsÚBufãr
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+DyÇmicJsÚBufãr
+, 
+þass
+)
+
+	)
+
+20 
+	#JsÚBufãr
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+JsÚBufãr
+, 
+þass
+)
+
+	)
+
+21 
+	#RawJsÚ
+ 
+	`ARDUINOJSON_DEPRECATION_ERROR
+(
+RawJsÚ
+, 
+funùiÚ
+)
+
+	)
+
+	@lib_standalone/ArduinoJson/src/ArduinoJson/version.hpp
+
+5 #´agm¨
+Úû
+
+
+7 
+	#ARDUINOJSON_VERSION
+ "6.15.0"
+
+	)
+
+8 
+	#ARDUINOJSON_VERSION_MAJOR
+ 6
+
+	)
+
+9 
+	#ARDUINOJSON_VERSION_MINOR
+ 15
+
+	)
+
+10 
+	#ARDUINOJSON_VERSION_REVISION
+ 0
+
+	)
+
+	@lib_standalone/AsyncJson.h
+
+2 #iâdeà
+ASYNC_JSON_H_
+
+
+3 
+	#ASYNC_JSON_H_
+
+
+	)
+
+4 
+	~<ArdušoJsÚ.h
+>
+
+5 
+	~<ESPAsyncWebS”v”.h
+>
+
+7 
+	#DYNAMIC_JSON_DOCUMENT_SIZE
+ 1024
+
+	)
+
+9 
+cÚ¡ex´
+ cÚ¡ * 
+	gJSON_MIMETYPE
+ = "application/json";
+
+11 þas 
+	cChunkPršt
+ : 
+public
+ 
+Pršt
+ {
+
+12 
+´iv©e
+:
+
+13 
+ušt8_t
+ * 
+_de¡š©iÚ
+;
+
+14 
+size_t
+ 
+	m_to_sk�
+;
+
+15 
+size_t
+ 
+	m_to_wr™e
+;
+
+16 
+size_t
+ 
+	m_pos
+;
+
+18 
+	mpublic
+:
+
+19 
+	$ChunkPršt
+(
+ušt8_t
+ * 
+de¡š©iÚ
+, 
+size_t
+ 
+äom
+, size_ˆ
+Ën
+)
+
+20 : 
+	`_de¡š©iÚ
+(
+de¡š©iÚ
+)
+
+21 , 
+	`_to_sk�
+(
+äom
+)
+
+22 , 
+	`_to_wr™e
+(
+Ën
+)
+
+23 , 
+_pos
+{0} {
+
+24 
+	}
+}
+
+25 
+	gvœtu®
+ ~
+	$ChunkPršt
+() {
+
+26 
+	}
+}
+
+27 
+size_t
+ 
+	$wr™e
+(
+ušt8_t
+ 
+c
+) {
+
+28 ià(
+_to_sk�
+ > 0) {
+
+29 
+_to_sk�
+--;
+
+31 } ià(
+_to_wr™e
+ > 0) {
+
+32 
+_to_wr™e
+--;
+
+33 
+_de¡š©iÚ
+[
+_pos
+++] = 
+c
+;
+
+37 
+	}
+}
+
+38 
+size_t
+ 
+	$wr™e
+(cÚ¡ 
+ušt8_t
+ * 
+bufãr
+, 
+size_t
+ 
+size
+) {
+
+39  
+this
+->
+Pršt
+::
+	`wr™e
+(
+bufãr
+, 
+size
+);
+
+40 
+	}
+}
+
+43 þas 
+	cAsyncJsÚRe¥Ú£
+ {
+
+44 
+	m´Ùeùed
+:
+
+45 
+DyÇmicJsÚDocum’t
+ 
+_jsÚBufãr
+;
+
+47 
+JsÚV¬ŸÁ
+ 
+	m_roÙ
+;
+
+48 
+boÞ
+ 
+	m_isV®id
+;
+
+50 
+	mpublic
+:
+
+51 
+	$AsyncJsÚRe¥Ú£
+(
+boÞ
+ 
+isA¼ay
+ = 
+çl£
+, 
+size_t
+ 
+maxJsÚBufãrSize
+ = 
+DYNAMIC_JSON_DOCUMENT_SIZE
+)
+
+52 : 
+	`_jsÚBufãr
+(
+maxJsÚBufãrSize
+)
+
+53 , 
+_isV®id
+{
+çl£
+} {
+
+54 ià(
+isA¼ay
+)
+
+55 
+_roÙ
+ = 
+_jsÚBufãr
+.
+	`ü—‹Ne¡edA¼ay
+();
+
+57 
+_roÙ
+ = 
+_jsÚBufãr
+.
+	`ü—‹Ne¡edObjeù
+();
+
+58 
+	}
+}
+
+59 ~
+	$AsyncJsÚRe¥Ú£
+() {
+
+60 
+	}
+}
+
+61 
+	gJsÚV¬ŸÁ
+ & 
+	$g‘RoÙ
+() {
+
+62  
+_roÙ
+;
+
+63 
+	}
+}
+
+64 
+boÞ
+ 
+	$_sourûV®id
+() const {
+
+65  
+_isV®id
+;
+
+66 
+	}
+}
+
+67 
+size_t
+ 
+	$£tL’gth
+() {
+
+69 
+	}
+}
+
+71 
+size_t
+ 
+	$g‘Size
+() {
+
+72  
+_jsÚBufãr
+.
+	`size
+();
+
+73 
+	}
+}
+
+75 
+size_t
+ 
+	$_fžlBufãr
+(
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+Ën
+) {
+
+76  
+Ën
+;
+
+77 
+	}
+}
+
+80 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ * 
+	t»que¡
+, 
+	tJsÚV¬ŸÁ
+ & 
+	tjsÚ
+)> 
+	tArJsÚReque¡HªdËrFunùiÚ
+;
+
+82 þas 
+	cAsyncC®lbackJsÚWebHªdËr
+ : 
+public
+ 
+AsyncWebHªdËr
+ {
+
+83 
+´iv©e
+:
+
+84 
+´Ùeùed
+:
+
+85 cÚ¡ 
+SŒšg
+ 
+_uri
+;
+
+86 
+WebReque¡M‘hodCompos™e
+ 
+	m_m‘hod
+;
+
+87 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	m_ÚReque¡
+;
+
+88 
+size_t
+ 
+	m_cÚ‹ÁL’gth
+;
+
+89 
+size_t
+ 
+	m_maxCÚ‹ÁL’gth
+;
+
+91 
+	mpublic
+:
+
+92 
+	$AsyncC®lbackJsÚWebHªdËr
+(cÚ¡ 
+SŒšg
+ & 
+uri
+, 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+, 
+size_t
+ 
+maxJsÚBufãrSize
+ = 
+DYNAMIC_JSON_DOCUMENT_SIZE
+)
+
+93 : 
+	`_uri
+(
+uri
+)
+
+94 , 
+	`_m‘hod
+(
+HTTP_POST
+ | 
+HTTP_PUT
+ | 
+HTTP_PATCH
+)
+
+95 , 
+	`_ÚReque¡
+(
+ÚReque¡
+)
+
+96 , 
+	$_maxCÚ‹ÁL’gth
+(16384) {
+
+99 
+	$£tM‘hod
+(
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+) {
+
+100 
+_m‘hod
+ = 
+m‘hod
+;
+
+101 
+	}
+}
+
+102 
+	$£tMaxCÚ‹ÁL’gth
+(
+maxCÚ‹ÁL’gth
+) {
+
+103 
+_maxCÚ‹ÁL’gth
+ = 
+maxCÚ‹ÁL’gth
+;
+
+104 
+	}
+}
+
+105 
+	$ÚReque¡
+(
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+â
+) {
+
+106 
+_ÚReque¡
+ = 
+â
+;
+
+107 
+	}
+}
+
+109 
+vœtu®
+ 
+boÞ
+ 
+	$ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+è
+ov”ride
+ 
+fš®
+ {
+
+110 ià(!
+_ÚReque¡
+)
+
+111  
+çl£
+;
+
+113 ià(!(
+_m‘hod
+ & 
+»que¡
+->
+	`m‘hod
+()))
+
+114  
+çl£
+;
+
+116 
+»que¡
+->
+	`addIÁ”e¡šgH—d”
+("ANY");
+
+117  
+Œue
+;
+
+118 
+	}
+}
+
+120 
+vœtu®
+ 
+	$hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+è
+ov”ride
+ 
+fš®
+ {
+
+121 ià(
+_ÚReque¡
+) {
+
+122 ià(
+»que¡
+->
+_‹mpObjeù
+ !ð
+NULL
+) {
+
+123 
+DyÇmicJsÚDocum’t
+ 
+	`jsÚBufãr
+(1024);
+
+124 
+De£rŸliz©iÚE¼Ü
+ 
+”rÜ
+ = 
+	`de£rŸlizeJsÚ
+(
+jsÚBufãr
+, (
+ušt8_t
+ *)(
+»que¡
+->
+_‹mpObjeù
+));
+
+125 ià(!
+”rÜ
+) {
+
+126 
+JsÚV¬ŸÁ
+ 
+jsÚ
+ = 
+jsÚBufãr
+.
+as
+<JsonVariant>();
+
+128 
+	`_ÚReque¡
+(
+»que¡
+, 
+jsÚ
+);
+
+132 
+»que¡
+->
+	`£nd
+(
+_cÚ‹ÁL’gth
+ > 
+_maxCÚ‹ÁL’gth
+ ? 413 : 400);
+
+134 
+»que¡
+->
+	`£nd
+(500);
+
+136 
+	}
+}
+
+137 
+vœtu®
+ 
+	$hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+, cÚ¡ 
+SŒšg
+ & 
+fž’ame
+, 
+size_t
+ 
+šdex
+, 
+ušt8_t
+ * 
+d©a
+, size_ˆ
+Ën
+, 
+boÞ
+ 
+fš®
+è
+ov”ride
+ final {
+
+138 
+	}
+}
+
+139 
+vœtu®
+ 
+	$hªdËBody
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+, 
+ušt8_t
+ * 
+d©a
+, 
+size_t
+ 
+Ën
+, size_ˆ
+šdex
+, size_ˆ
+tÙ®
+è
+ov”ride
+ 
+fš®
+ {
+
+140 ià(
+_ÚReque¡
+) {
+
+141 
+_cÚ‹ÁL’gth
+ = 
+tÙ®
+;
+
+142 ià(
+tÙ®
+ > 0 && 
+»que¡
+->
+_‹mpObjeù
+ =ð
+NULL
+ &&�Ù® < 
+_maxCÚ‹ÁL’gth
+) {
+
+143 
+»que¡
+->
+_‹mpObjeù
+ = 
+	`m®loc
+(
+tÙ®
+);
+
+145 ià(
+»que¡
+->
+_‹mpObjeù
+ !ð
+NULL
+) {
+
+146 
+	`memýy
+((
+ušt8_t
+ *)(
+»que¡
+->
+_‹mpObjeù
+è+ 
+šdex
+, 
+d©a
+, 
+Ën
+);
+
+149 
+	}
+}
+
+150 
+vœtu®
+ 
+boÞ
+ 
+	$isReque¡HªdËrTrivŸl
+(è
+ov”ride
+ 
+fš®
+ {
+
+151  
+_ÚReque¡
+ ? 
+çl£
+ : 
+Œue
+;
+
+152 
+	}
+}
+
+	@lib_standalone/AsyncMqttClient.h
+
+1 #iâdeà
+ASYNCMQTTCLIENT_H_
+
+
+2 
+	#ASYNCMQTTCLIENT_H_
+
+
+	)
+
+4 
+	~"Ardušo.h
+"
+
+5 
+	~<funùiÚ®
+>
+
+7 þas 
+	cAsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ : 
+št8_t
+ {
+
+8 
+TCP_DISCONNECTED
+ = 0,
+
+10 
+	mMQTT_UNACCEPTABLE_PROTOCOL_VERSION
+ = 1,
+
+11 
+	mMQTT_IDENTIFIER_REJECTED
+ = 2,
+
+12 
+	mMQTT_SERVER_UNAVAILABLE
+ = 3,
+
+13 
+	mMQTT_MALFORMED_CREDENTIALS
+ = 4,
+
+14 
+	mMQTT_NOT_AUTHORIZED
+ = 5,
+
+16 
+	mESP8266_NOT_ENOUGH_SPACE
+ = 6,
+
+18 
+	mTLS_BAD_FINGERPRINT
+ = 7
+
+21 
+	sAsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ {
+
+22 
+ušt8_t
+ 
+	mqos
+;
+
+23 
+boÞ
+ 
+	mdup
+;
+
+24 
+boÞ
+ 
+	m»�š
+;
+
+27 
+Çme¥aû
+ 
+	gAsyncMq‰Cl›ÁIÁ”Çls
+ {
+
+29 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tboÞ
+ 
+	t£ssiÚP»£Á
+)> 
+	tOnCÚÃùU£rC®lback
+;
+
+30 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+	t»asÚ
+)> 
+	tOnDiscÚÃùU£rC®lback
+;
+
+31 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+, 
+	tušt8_t
+ 
+	tqos
+)> 
+	tOnSubsüibeU£rC®lback
+;
+
+32 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnUnsubsüibeU£rC®lback
+;
+
+33 
+	g¡d
+::
+	tfunùiÚ
+<(* 
+	ttÝic
+, * 
+	t·ylßd
+, 
+	tAsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ 
+	t´Ý”t›s
+, 
+	tsize_t
+ 
+	tËn
+, size_ˆ
+	tšdex
+, size_ˆ
+	ttÙ®
+)> 
+	tOnMes§geU£rC®lback
+;
+
+34 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tušt16_t
+ 
+	t·ck‘Id
+)> 
+	tOnPublishU£rC®lback
+;
+
+37 þas 
+	cAsyncMq‰Cl›Á
+ {
+
+38 
+	mpublic
+:
+
+39 
+AsyncMq‰Cl›Á
+();
+
+40 ~
+AsyncMq‰Cl›Á
+();
+
+42 
+	mAsyncMq‰Cl›Á
+ & 
+£tK“pAlive
+(
+ušt16_t
+ 
+k“pAlive
+);
+
+43 
+	mAsyncMq‰Cl›Á
+ & 
+£tCl›ÁId
+(cÚ¡ * 
+þ›ÁId
+);
+
+44 
+	mAsyncMq‰Cl›Á
+ & 
+£tCËªSessiÚ
+(
+boÞ
+ 
+þ—nSessiÚ
+);
+
+45 
+	mAsyncMq‰Cl›Á
+ & 
+£tMaxTÝicL’gth
+(
+ušt16_t
+ 
+maxTÝicL’gth
+);
+
+46 
+	mAsyncMq‰Cl›Á
+ & 
+£tC»d’tŸls
+(cÚ¡ * 
+u£ºame
+, cÚ¡ * 
+·sswÜd
+ = 
+nuÎ±r
+);
+
+47 
+	mAsyncMq‰Cl›Á
+ & 
+	$£tWžl
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+»�š
+, cÚ¡ * 
+·ylßd
+ = 
+nuÎ±r
+, 
+size_t
+ 
+Ëngth
+ = 0) {
+
+48  *
+this
+;
+
+50 
+AsyncMq‰Cl›Á
+ & 
+	`£tS”v”
+(
+IPAdd»ss
+ 
+�
+, 
+ušt16_t
+ 
+pÜt
+);
+
+51 
+AsyncMq‰Cl›Á
+ & 
+	`£tS”v”
+(cÚ¡ * 
+ho¡
+, 
+ušt16_t
+ 
+pÜt
+);
+
+53 
+AsyncMq‰Cl›Á
+ & 
+	$ÚCÚÃù
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnCÚÃùU£rC®lback
+ 
+ÿÎback
+) {
+
+54  *
+this
+;
+
+55 
+	}
+}
+
+56 
+	gAsyncMq‰Cl›Á
+ & 
+	$ÚDiscÚÃù
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnDiscÚÃùU£rC®lback
+ 
+ÿÎback
+) {
+
+57  *
+this
+;
+
+58 
+	}
+}
+
+59 
+	gAsyncMq‰Cl›Á
+ & 
+	$ÚSubsüibe
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnSubsüibeU£rC®lback
+ 
+ÿÎback
+) {
+
+60  *
+this
+;
+
+61 
+	}
+}
+
+62 
+	gAsyncMq‰Cl›Á
+ & 
+	$ÚUnsubsüibe
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnUnsubsüibeU£rC®lback
+ 
+ÿÎback
+) {
+
+63  *
+this
+;
+
+64 
+	}
+}
+
+65 
+	gAsyncMq‰Cl›Á
+ & 
+	$ÚMes§ge
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnMes§geU£rC®lback
+ 
+ÿÎback
+) {
+
+66  *
+this
+;
+
+67 
+	}
+}
+
+68 
+	gAsyncMq‰Cl›Á
+ & 
+	$ÚPublish
+(
+AsyncMq‰Cl›ÁIÁ”Çls
+::
+OnPublishU£rC®lback
+ 
+ÿÎback
+) {
+
+69  *
+this
+;
+
+70 
+	}
+}
+
+72 
+boÞ
+ 
+	$cÚÃùed
+() const {
+
+73  
+çl£
+;
+
+74 
+	}
+}
+
+75 
+	$cÚÃù
+() {
+
+76 
+	}
+}
+
+77 
+	$discÚÃù
+(
+boÞ
+ 
+fÜû
+ = 
+çl£
+) {
+
+78 
+	}
+}
+
+79 
+ušt16_t
+ 
+	$subsüibe
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+) {
+
+81 
+	}
+}
+
+82 
+ušt16_t
+ 
+	$unsubsüibe
+(cÚ¡ * 
+tÝic
+) {
+
+84 
+	}
+}
+
+85 
+ušt16_t
+ 
+	$publish
+(cÚ¡ * 
+tÝic
+, 
+ušt8_t
+ 
+qos
+, 
+boÞ
+ 
+»�š
+, cÚ¡ * 
+·ylßd
+ = 
+nuÎ±r
+, 
+size_t
+ 
+Ëngth
+ = 0, boÞ 
+dup
+ = 
+çl£
+, 
+ušt16_t
+ 
+mes§ge_id
+ = 0) {
+
+87 
+	}
+}
+
+89 cÚ¡ * 
+	$g‘Cl›ÁId
+() {
+
+91 
+	}
+}
+
+93 
+	g´iv©e
+:
+
+94 
+boÞ
+ 
+_cÚÃùed
+;
+
+95 
+boÞ
+ 
+	g_cÚÃùPack‘NÙEnoughS·û
+;
+
+96 
+boÞ
+ 
+	g_discÚÃùOnPÞl
+;
+
+97 
+boÞ
+ 
+	g_ŽsBadFšg”´št
+;
+
+98 
+ušt32_t
+ 
+	g_Ï¡Cl›ÁAùiv™y
+;
+
+99 
+ušt32_t
+ 
+	g_Ï¡S”v”Aùiv™y
+;
+
+100 
+ušt32_t
+ 
+	g_Ï¡PšgReque¡Time
+;
+
+101 
+	g_g’”©edCl›ÁId
+[18 + 1];
+
+102 
+IPAdd»ss
+ 
+	g_�
+;
+
+103 cÚ¡ * 
+	g_ho¡
+;
+
+104 
+boÞ
+ 
+	g_u£Ip
+;
+
+105 
+ušt16_t
+ 
+	g_pÜt
+;
+
+106 
+ušt16_t
+ 
+	g_k“pAlive
+;
+
+107 
+boÞ
+ 
+	g_þ—nSessiÚ
+;
+
+108 cÚ¡ * 
+	g_þ›ÁId
+;
+
+109 cÚ¡ * 
+	g_u£ºame
+;
+
+110 cÚ¡ * 
+	g_·sswÜd
+;
+
+111 cÚ¡ * 
+	g_wžlTÝic
+;
+
+112 cÚ¡ * 
+	g_wžlPaylßd
+;
+
+113 
+ušt16_t
+ 
+	g_wžlPaylßdL’gth
+;
+
+114 
+ušt8_t
+ 
+	g_wžlQos
+;
+
+115 
+boÞ
+ 
+	g_wžlR‘aš
+;
+
+	@lib_standalone/AsyncTCP.h
+
+1 #iâdeà
+ASYNCTCP_H_
+
+
+2 
+	#ASYNCTCP_H_
+
+
+	)
+
+4 
+	~"Ardušo.h
+"
+
+5 
+	~<funùiÚ®
+>
+
+7 
+þass
+ 
+	gAsyncCl›Á
+;
+
+9 
+	gtý_pcb
+;
+
+10 
+	g�_addr
+;
+
+12 þas 
+	cAsyncCl›Á
+ {
+
+13 
+	mpublic
+:
+
+14 
+AsyncCl›Á
+(
+tý_pcb
+ * 
+pcb
+ = 0);
+
+15 ~
+AsyncCl›Á
+();
+
+18 þas 
+	cAsyncS”v”
+ {
+
+19 
+	mpublic
+:
+
+20 
+	$AsyncS”v”
+(
+ušt16_t
+ 
+pÜt
+)
+
+21 : 
+	$_pÜt
+(
+pÜt
+){};
+
+22 ~
+	$AsyncS”v”
+(){
+	}
+};
+
+24 
+	g´Ùeùed
+:
+
+25 
+ušt16_t
+ 
+_pÜt
+;
+
+	@lib_standalone/ESP8266React.h
+
+1 #iâdeà
+ESP8266R—ù_h
+
+
+2 
+	#ESP8266R—ù_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+6 
+	~<AsyncJsÚ.h
+>
+
+7 
+	~<AsyncMq‰Cl›Á.h
+>
+
+8 
+	~<ESPAsyncWebS”v”.h
+>
+
+9 
+	~<FS.h
+>
+
+10 
+	~<Secur™yMªag”.h
+>
+
+11 
+	~<Secur™yS‘tšgsS”viû.h
+>
+
+12 
+	~<S�‹fulS”viû.h
+>
+
+14 þas 
+	cDummyS‘tšgs
+ {
+
+15 
+	mpublic
+:
+
+16 
+ušt8_t
+ 
+tx_mode
+ = 1;
+
+17 
+ušt8_t
+ 
+	mems_bus_id
+ = 0x0B;
+
+18 
+boÞ
+ 
+	msy¡em_h—¹b—t
+ = 
+çl£
+;
+
+19 
+št8_t
+ 
+	msy¦og_Ëv–
+ = 1;
+
+20 
+ušt32_t
+ 
+	msy¦og_m¬k_š‹rv®
+ = 0;
+
+21 
+SŒšg
+ 
+	msy¦og_ho¡
+ = "192.168.1.4";
+
+22 
+ušt8_t
+ 
+	mma¡”_th”mo¡©
+ = 0;
+
+23 
+boÞ
+ 
+	mshow”_tim”
+ = 
+çl£
+;
+
+24 
+boÞ
+ 
+	mshow”_®”t
+ = 
+çl£
+;
+
+25 
+boÞ
+ 
+	mhide_Ëd
+ = 
+çl£
+;
+
+26 
+ušt16_t
+ 
+	mpublish_time
+ = 10;
+
+27 
+ušt8_t
+ 
+	mmq‰_fÜm©
+ = 3;
+
+28 
+ušt8_t
+ 
+	mmq‰_qos
+ = 0;
+
+29 
+SŒšg
+ 
+	mho¡Çme
+ = "ems-esp";
+
+30 
+SŒšg
+ 
+	mjwtSeü‘
+ = "ems-esp";
+
+31 
+SŒšg
+ 
+	mssid
+ = "ems-esp";
+
+32 
+SŒšg
+ 
+	m·sswÜd
+ = "ems-esp";
+
+33 
+ušt16_t
+ 
+	mpublish_time_bož”
+;
+
+34 
+ušt16_t
+ 
+	mpublish_time_th”mo¡©
+;
+
+35 
+ušt16_t
+ 
+	mpublish_time_sÞ¬
+;
+
+36 
+ušt16_t
+ 
+	mpublish_time_mixšg
+;
+
+37 
+ušt16_t
+ 
+	mpublish_time_Ùh”
+;
+
+38 
+ušt16_t
+ 
+	mpublish_time_£nsÜ
+;
+
+40 
+	$»ad
+(
+DummyS‘tšgs
+ & 
+£‰šgs
+, 
+JsÚObjeù
+ & 
+roÙ
+){};
+
+41 
+	$»ad
+(
+DummyS‘tšgs
+ & 
+£‰šgs
+){
+	}
+};
+
+43 
+S�‹Upd©eResuÉ
+ 
+	$upd©e
+(
+JsÚObjeù
+ & 
+roÙ
+, 
+DummyS‘tšgs
+ & 
+£‰šgs
+) {
+
+44  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+45 
+	}
+}
+
+48 
+þass
+ 
+	gDummyS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+DummyS‘tšgs
+> {
+
+49 
+public
+:
+
+50 
+DummyS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+){};
+
+52 
+begš
+();
+
+53 
+loÝ
+();
+
+55 
+	g´iv©e
+:
+
+58 
+	#WiFiS‘tšgs
+ 
+DummyS‘tšgs
+
+
+	)
+
+59 
+	#Secur™yS‘tšgs
+ 
+DummyS‘tšgs
+
+
+	)
+
+60 
+	#Mq‰S‘tšgs
+ 
+DummyS‘tšgs
+
+
+	)
+
+62 þas 
+	cESP8266R—ù
+ {
+
+63 
+	mpublic
+:
+
+64 
+	$ESP8266R—ù
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+)
+
+65 : 
+	`_£‰šgs
+(
+£rv”
+, 
+fs
+, 
+nuÎ±r
+)
+
+66 , 
+	$_£cur™yS‘tšgsS”viû
+(
+£rv”
+, 
+fs
+){};
+
+68 
+	$begš
+(){
+	}
+};
+
+69 
+	$loÝ
+(){
+	}
+};
+
+71 
+Secur™yMªag”
+ * 
+	$g‘Secur™yMªag”
+() {
+
+72  &
+_£cur™yS‘tšgsS”viû
+;
+
+73 
+	}
+}
+
+75 
+AsyncMq‰Cl›Á
+ * 
+	$g‘Mq‰Cl›Á
+() {
+
+76  
+_mq‰Cl›Á
+;
+
+77 
+	}
+}
+
+79 
+	gS�‹fulS”viû
+<
+	gDummyS‘tšgs
+> * 
+	$g‘WiFiS‘tšgsS”viû
+() {
+
+80  &
+_£‰šgs
+;
+
+81 
+	}
+}
+
+83 
+	gS�‹fulS”viû
+<
+	gDummyS‘tšgs
+> * 
+	$g‘Secur™yS‘tšgsS”viû
+() {
+
+84  &
+_£‰šgs
+;
+
+85 
+	}
+}
+
+87 
+	gS�‹fulS”viû
+<
+	gDummyS‘tšgs
+> * 
+	$g‘Mq‰S‘tšgsS”viû
+() {
+
+88  &
+_£‰šgs
+;
+
+89 
+	}
+}
+
+91 
+	g´iv©e
+:
+
+92 
+DummyS‘tšgsS”viû
+ 
+_£‰šgs
+;
+
+93 
+Secur™yS‘tšgsS”viû
+ 
+	g_£cur™yS‘tšgsS”viû
+;
+
+95 
+AsyncMq‰Cl›Á
+ * 
+	g_mq‰Cl›Á
+;
+
+98 þas 
+	cEMSESPS‘tšgsS”viû
+ {
+
+99 
+	mpublic
+:
+
+100 
+EMSESPS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+);
+
+102 
+begš
+();
+
+104 
+	m´iv©e
+:
+
+	@lib_standalone/ESPAsyncWebServer.h
+
+1 #iâdeà
+_ESPAsyncWebS”v”_H_
+
+
+2 
+	#_ESPAsyncWebS”v”_H_
+
+
+	)
+
+4 
+	~"Ardušo.h
+"
+
+6 
+	~<funùiÚ®
+>
+
+7 
+	~<AsyncTCP.h
+>
+
+8 
+	~<ArdušoJsÚ.h
+>
+
+10 
+þass
+ 
+	gAsyncWebS”v”
+;
+
+11 
+þass
+ 
+	gAsyncWebS”v”Reque¡
+;
+
+12 
+þass
+ 
+	gAsyncWebS”v”Re¥Ú£
+;
+
+13 
+þass
+ 
+	gAsyncJsÚRe¥Ú£
+;
+
+16 
+	mHTTP_GET
+ = 0b00000001,
+
+17 
+	mHTTP_POST
+ = 0b00000010,
+
+18 
+	mHTTP_DELETE
+ = 0b00000100,
+
+19 
+	mHTTP_PUT
+ = 0b00001000,
+
+20 
+	mHTTP_PATCH
+ = 0b00010000,
+
+21 
+	mHTTP_HEAD
+ = 0b00100000,
+
+22 
+	mHTTP_OPTIONS
+ = 0b01000000,
+
+23 
+	mHTTP_ANY
+ = 0b01111111,
+
+24 } 
+	tWebReque¡M‘hod
+;
+
+26 
+ušt8_t
+ 
+	tWebReque¡M‘hodCompos™e
+;
+
+27 
+	g¡d
+::
+	tfunùiÚ
+<()> 
+	tArDiscÚÃùHªdËr
+;
+
+29 þas 
+	cAsyncWebS”v”Reque¡
+ {
+
+30 
+ä›nd
+ 
+þass
+ 
+	mAsyncWebS”v”
+;
+
+31 
+ä›nd
+ 
+þass
+ 
+	mAsyncC®lbackWebHªdËr
+;
+
+33 
+	m´iv©e
+:
+
+34 
+AsyncCl›Á
+ * 
+_þ›Á
+;
+
+35 
+AsyncWebS”v”
+ * 
+	m_£rv”
+;
+
+36 
+WebReque¡M‘hodCompos™e
+ 
+	m_m‘hod
+;
+
+38 
+	mpublic
+:
+
+39 * 
+_‹mpObjeù
+;
+
+41 
+AsyncWebS”v”Reque¡
+(
+AsyncWebS”v”
+ *, 
+AsyncCl›Á
+ *);
+
+42 ~
+AsyncWebS”v”Reque¡
+();
+
+44 
+AsyncCl›Á
+ * 
+	$þ›Á
+() {
+
+45  
+_þ›Á
+;
+
+48 
+WebReque¡M‘hodCompos™e
+ 
+	$m‘hod
+() const {
+
+49  
+_m‘hod
+;
+
+50 
+	}
+}
+
+52 
+	$addIÁ”e¡šgH—d”
+(cÚ¡ 
+SŒšg
+ & 
+Çme
+){
+	}
+};
+
+54 
+	$£nd
+(
+AsyncWebS”v”Re¥Ú£
+ * 
+»¥Ú£
+){
+	}
+};
+
+55 
+	$£nd
+(
+AsyncJsÚRe¥Ú£
+ * 
+»¥Ú£
+){
+	}
+};
+
+56 
+£nd
+(
+code
+, cÚ¡ 
+SŒšg
+ & 
+cÚ‹ÁTy³
+ = SŒšg(), cÚ¡ SŒšg & 
+cÚ‹Á
+ = 
+	$SŒšg
+()){
+	}
+};
+
+58 
+AsyncWebS”v”Re¥Ú£
+ * 
+begšRe¥Ú£
+(
+code
+, cÚ¡ 
+SŒšg
+ & 
+cÚ‹ÁTy³
+ = SŒšg(), cÚ¡ SŒšg & 
+cÚ‹Á
+ = 
+	$SŒšg
+()) {
+
+60  
+nuÎ±r
+;
+
+61 
+	}
+}
+
+63 
+size_t
+ 
+	$h—d”s
+() const;
+
+64 
+size_t
+ 
+	$·¿ms
+() const;
+
+65 
+	}
+};
+
+67 
+	g¡d
+::
+	tfunùiÚ
+<
+	tboÞ
+(
+	tAsyncWebS”v”Reque¡
+ * 
+	t»que¡
+)> 
+	tArReque¡Fž‹rFunùiÚ
+;
+
+69 þas 
+	cAsyncWebHªdËr
+ {
+
+70 
+	m´Ùeùed
+:
+
+71 
+SŒšg
+ 
+_u£ºame
+;
+
+72 
+SŒšg
+ 
+	m_·sswÜd
+;
+
+74 
+	mpublic
+:
+
+75 
+	$AsyncWebHªdËr
+()
+
+76 : 
+	`_u£ºame
+("")
+
+77 , 
+	`_·sswÜd
+("") {
+
+80 
+vœtu®
+ ~
+	$AsyncWebHªdËr
+() {
+
+81 
+	}
+}
+
+82 
+vœtu®
+ 
+boÞ
+ 
+ÿnHªdË
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+83  
+	gçl£
+;
+
+85 
+vœtu®
+ 
+hªdËReque¡
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+87 
+vœtu®
+ 
+hªdËU¶ßd
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+88 cÚ¡ 
+SŒšg
+ & 
+fž’ame
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+89 
+size_t
+ 
+šdex
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+90 
+ušt8_t
+ * 
+d©a
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+91 
+size_t
+ 
+Ën
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+92 
+boÞ
+ 
+fš®
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+94 
+vœtu®
+ 
+hªdËBody
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+95 
+ušt8_t
+ * 
+d©a
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+96 
+size_t
+ 
+Ën
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+97 
+size_t
+ 
+šdex
+ 
+__©Œibu‹__
+((
+unu£d
+)),
+
+98 
+size_t
+ 
+tÙ®
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+101 
+vœtu®
+ 
+boÞ
+ 
+	$isReque¡HªdËrTrivŸl
+() {
+
+102  
+Œue
+;
+
+103 
+	}
+}
+
+106 þas 
+	cAsyncWebS”v”Re¥Ú£
+ {
+
+107 
+	mpublic
+:
+
+108 
+AsyncWebS”v”Re¥Ú£
+();
+
+109 
+	mvœtu®
+ ~
+AsyncWebS”v”Re¥Ú£
+();
+
+112 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ * 
+	t»que¡
+)> 
+	tArReque¡HªdËrFunùiÚ
+;
+
+113 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ * 
+	t»que¡
+, cÚ¡ 
+	tSŒšg
+ & 
+	tfž’ame
+, 
+	tsize_t
+ 
+	tšdex
+, 
+	tušt8_t
+ * 
+	td©a
+, size_ˆ
+	tËn
+, 
+	tboÞ
+ 
+	tfš®
+)> 
+	tArU¶ßdHªdËrFunùiÚ
+;
+
+114 
+	g¡d
+::
+	tfunùiÚ
+<(
+	tAsyncWebS”v”Reque¡
+ * 
+	t»que¡
+, 
+	tušt8_t
+ * 
+	td©a
+, 
+	tsize_t
+ 
+	tËn
+, size_ˆ
+	tšdex
+, size_ˆ
+	ttÙ®
+)> 
+	tArBodyHªdËrFunùiÚ
+;
+
+116 þas 
+	cAsyncWebS”v”
+ {
+
+117 
+	m´Ùeùed
+:
+
+118 
+AsyncS”v”
+ 
+_£rv”
+;
+
+120 
+	mpublic
+:
+
+121 
+	$AsyncWebS”v”
+(
+ušt16_t
+ 
+pÜt
+)
+
+122 : 
+	$_£rv”
+(
+pÜt
+){};
+
+124 ~
+	$AsyncWebS”v”
+(){
+	}
+};
+
+126 
+	$begš
+(){
+	}
+};
+
+127 
+’d
+();
+
+129 
+	gAsyncWebHªdËr
+ & 
+	$addHªdËr
+(
+AsyncWebHªdËr
+ * 
+hªdËr
+) {
+
+130  *
+hªdËr
+;
+
+131 
+	}
+}
+
+133 
+	$Ú
+(cÚ¡ * 
+uri
+, 
+WebReque¡M‘hodCompos™e
+ 
+m‘hod
+, 
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+){
+	}
+};
+
+	@lib_standalone/FS.h
+
+1 #iâdeà
+FS_h
+
+
+2 
+	#FS_h
+
+
+	)
+
+4 þas 
+	cFS
+ {
+
+5 
+boÞ
+ 
+	$Ý’
+() {
+
+6  
+Œue
+;
+
+8 
+	}
+};
+
+	@lib_standalone/FSPersistence.h
+
+1 #iâdeà
+FSP”si¡’û_h
+
+
+2 
+	#FSP”si¡’û_h
+
+
+	)
+
+4 
+	~<S�‹fulS”viû.h
+>
+
+5 
+	~<FS.h
+>
+
+7 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+8 þas 
+	cFSP”si¡’û
+ {
+
+9 
+	mpublic
+:
+
+10 
+FSP”si¡’û
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+11 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+12 
+S�‹fulS”viû
+<
+T
+> * 
+¡©efulS”viû
+,
+
+13 
+FS
+ * 
+fs
+,
+
+14 cÚ¡ * 
+fžeP©h
+,
+
+15 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+)
+
+16 : 
+_¡©eR—d”
+(
+¡©eR—d”
+)
+
+17 , 
+_¡©eUpd©”
+(
+¡©eUpd©”
+)
+
+18 , 
+_¡©efulS”viû
+(
+¡©efulS”viû
+)
+
+19 , 
+_fs
+(
+fs
+)
+
+20 , 
+_fžeP©h
+(
+fžeP©h
+)
+
+21 , 
+_bufãrSize
+(
+bufãrSize
+)
+
+22 , 
+	$_upd©eHªdËrId
+(0) {
+
+23 
+	`’abËUpd©eHªdËr
+();
+
+26 
+	$»adFromFS
+() {
+
+27 
+	`­¶yDeçuÉs
+();
+
+28 
+	}
+}
+
+30 
+boÞ
+ 
+	$wr™eToFS
+() {
+
+31 
+DyÇmicJsÚDocum’t
+ 
+jsÚDocum’t
+ = 
+	`DyÇmicJsÚDocum’t
+(
+_bufãrSize
+);
+
+32 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+33 
+_¡©efulS”viû
+->
+	`»ad
+(
+jsÚObjeù
+, 
+_¡©eR—d”
+);
+
+34  
+Œue
+;
+
+35 
+	}
+}
+
+37 
+	$di§bËUpd©eHªdËr
+() {
+
+38 ià(
+_upd©eHªdËrId
+) {
+
+39 
+_¡©efulS”viû
+->
+	`»moveUpd©eHªdËr
+(
+_upd©eHªdËrId
+);
+
+40 
+_upd©eHªdËrId
+ = 0;
+
+42 
+	}
+}
+
+44 
+	$’abËUpd©eHªdËr
+() {
+
+45 ià(!
+_upd©eHªdËrId
+) {
+
+46 
+_upd©eHªdËrId
+ = 
+_¡©efulS”viû
+->
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+è{ 
+	`wr™eToFS
+(); });
+
+48 
+	}
+}
+
+50 
+	g´iv©e
+:
+
+51 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+52 
+	gJsÚS�‹Upd©”
+<
+	gT
+> 
+	g_¡©eUpd©”
+;
+
+53 
+	gS�‹fulS”viû
+<
+	gT
+> * 
+	g_¡©efulS”viû
+;
+
+54 
+FS
+ * 
+	g_fs
+;
+
+55 cÚ¡ * 
+	g_fžeP©h
+;
+
+56 
+size_t
+ 
+	g_bufãrSize
+;
+
+57 
+upd©e_hªdËr_id_t
+ 
+	g_upd©eHªdËrId
+;
+
+59 
+	g´Ùeùed
+:
+
+60 
+vœtu®
+ 
+	$­¶yDeçuÉs
+() {
+
+61 
+DyÇmicJsÚDocum’t
+ 
+jsÚDocum’t
+ = 
+	`DyÇmicJsÚDocum’t
+(
+_bufãrSize
+);
+
+62 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+jsÚDocum’t
+.
+as
+<JsonObject>();
+
+63 
+_¡©efulS”viû
+->
+	`upd©eW™houtPrÝag©iÚ
+(
+jsÚObjeù
+, 
+_¡©eUpd©”
+);
+
+64 
+	}
+}
+
+	@lib_standalone/Features.h
+
+1 #iâdeà
+F—tu»s_h
+
+
+2 
+	#F—tu»s_h
+
+
+	)
+
+4 
+	#FT_ENABLED
+(
+ã©u»
+è
+	)
+feature
+
+7 #iâdeà
+FT_PROJECT
+
+
+8 
+	#FT_PROJECT
+ 0
+
+	)
+
+12 #iâdeà
+FT_SECURITY
+
+
+13 
+	#FT_SECURITY
+ 0
+
+	)
+
+17 #iâdeà
+FT_MQTT
+
+
+18 
+	#FT_MQTT
+ 0
+
+	)
+
+22 #iâdeà
+FT_NTP
+
+
+23 
+	#FT_NTP
+ 0
+
+	)
+
+27 #iâdeà
+FT_OTA
+
+
+28 
+	#FT_OTA
+ 0
+
+	)
+
+32 #iâdeà
+FT_UPLOAD_FIRMWARE
+
+
+33 
+	#FT_UPLOAD_FIRMWARE
+ 0
+
+	)
+
+	@lib_standalone/HttpEndpoint.h
+
+1 #iâdeà
+H‰pEndpošt_h
+
+
+2 
+	#H‰pEndpošt_h
+
+
+	)
+
+4 
+	~<funùiÚ®
+>
+
+6 
+	~<AsyncJsÚ.h
+>
+
+7 
+	~<ESPAsyncWebS”v”.h
+>
+
+9 
+	~<Secur™yMªag”.h
+>
+
+10 
+	~<S�‹fulS”viû.h
+>
+
+12 
+	#HTTP_ENDPOINT_ORIGIN_ID
+ "h‰p"
+
+	)
+
+14 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+15 þas 
+	cH‰pG‘Endpošt
+ {
+
+16 
+	mpublic
+:
+
+17 
+H‰pG‘Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+18 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+19 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+20 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+21 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+22 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+23 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+24 
+_¡©eR—d”
+(
+¡©eR—d”
+), 
+_¡©efulS”viû
+(
+¡©efulS”viû
+), 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+27 
+	`H‰pG‘Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+28 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+29 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+30 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+31 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+32 
+	`_¡©eR—d”
+(
+¡©eR—d”
+), 
+	`_¡©efulS”viû
+(
+¡©efulS”viû
+), 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+33 
+	}
+}
+
+35 
+	g´Ùeùed
+:
+
+36 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+37 
+	gS�‹fulS”viû
+<
+	gT
+>* 
+	g_¡©efulS”viû
+;
+
+38 
+size_t
+ 
+	g_bufãrSize
+;
+
+40 
+	$ãtchS‘tšgs
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+41 
+	}
+}
+
+44 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+45 þas 
+	cH‰pPo¡Endpošt
+ {
+
+46 
+	mpublic
+:
+
+47 
+H‰pPo¡Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+48 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+49 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+50 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+51 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+52 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+53 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+54 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+55 
+_¡©eR—d”
+(
+¡©eR—d”
+),
+
+56 
+_¡©eUpd©”
+(
+¡©eUpd©”
+),
+
+57 
+_¡©efulS”viû
+(
+¡©efulS”viû
+),
+
+58 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+61 
+	`H‰pPo¡Endpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+62 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+63 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+64 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+65 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+66 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+67 
+	`_¡©eR—d”
+(
+¡©eR—d”
+),
+
+68 
+	`_¡©eUpd©”
+(
+¡©eUpd©”
+),
+
+69 
+	`_¡©efulS”viû
+(
+¡©efulS”viû
+),
+
+70 
+	$_bufãrSize
+(
+bufãrSize
+) {
+
+71 
+	}
+}
+
+73 
+	g´Ùeùed
+:
+
+74 
+JsÚS�‹R—d”
+<
+T
+> 
+_¡©eR—d”
+;
+
+75 
+	gJsÚS�‹Upd©”
+<
+	gT
+> 
+	g_¡©eUpd©”
+;
+
+76 
+	gS�‹fulS”viû
+<
+	gT
+>* 
+	g_¡©efulS”viû
+;
+
+77 
+size_t
+ 
+	g_bufãrSize
+;
+
+79 
+	$upd©eS‘tšgs
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+) {
+
+80 ià(!
+jsÚ
+.
+is
+<
+JsÚObjeù
+>()) {
+
+83 
+JsÚObjeù
+ 
+jsÚObjeù
+ = 
+jsÚ
+.
+as
+<JsonObject>();
+
+84 
+S�‹Upd©eResuÉ
+ 
+outcome
+ = 
+_¡©efulS”viû
+->
+	`upd©eW™houtPrÝag©iÚ
+(
+jsÚObjeù
+, 
+_¡©eUpd©”
+);
+
+85 ià(
+outcome
+ =ð
+S�‹Upd©eResuÉ
+::
+ERROR
+) {
+
+88 ià(
+outcome
+ =ð
+S�‹Upd©eResuÉ
+::
+CHANGED
+) {
+
+90 
+	}
+}
+
+93 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+94 
+þass
+ 
+	gH‰pEndpošt
+ : 
+public
+ 
+H‰pG‘Endpošt
+<
+T
+>,…ubliø
+	gH‰pPo¡Endpošt
+<
+	gT
+> {
+
+95 
+	gpublic
+:
+
+96 
+H‰pEndpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+97 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+98 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+99 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+100 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+101 
+Secur™yMªag”
+* 
+£cur™yMªag”
+,
+
+102 
+Auth’tiÿtiÚP»diÿ‹
+ 
+auth’tiÿtiÚP»diÿ‹
+ = 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_ADMIN
+,
+
+103 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+104 
+H‰pG‘Endpošt
+<
+T
+>(
+¡©eR—d”
+,
+
+105 
+	g¡©efulS”viû
+,
+
+106 
+	g£rv”
+,
+
+107 
+	g£rviûP©h
+,
+
+108 
+	g£cur™yMªag”
+,
+
+109 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+110 
+	gbufãrSize
+),
+
+111 
+	gH‰pPo¡Endpošt
+<
+	gT
+>(
+	g¡©eR—d”
+,
+
+112 
+	g¡©eUpd©”
+,
+
+113 
+	g¡©efulS”viû
+,
+
+114 
+	g£rv”
+,
+
+115 
+	g£rviûP©h
+,
+
+116 
+	g£cur™yMªag”
+,
+
+117 
+	gauth’tiÿtiÚP»diÿ‹
+,
+
+118 
+	gbufãrSize
+) {
+
+121 
+H‰pEndpošt
+(
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+,
+
+122 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+,
+
+123 
+S�‹fulS”viû
+<
+T
+>* 
+¡©efulS”viû
+,
+
+124 
+AsyncWebS”v”
+* 
+£rv”
+,
+
+125 cÚ¡ 
+SŒšg
+& 
+£rviûP©h
+,
+
+126 
+size_t
+ 
+bufãrSize
+ = 
+DEFAULT_BUFFER_SIZE
+) :
+
+127 
+H‰pG‘Endpošt
+<
+T
+>(
+¡©eR—d”
+, 
+	g¡©efulS”viû
+, 
+	g£rv”
+, 
+	g£rviûP©h
+, 
+	gbufãrSize
+),
+
+128 
+	gH‰pPo¡Endpošt
+<
+	gT
+>(
+	g¡©eR—d”
+, 
+	g¡©eUpd©”
+, 
+	g¡©efulS”viû
+, 
+	g£rv”
+, 
+	g£rviûP©h
+, 
+	gbufãrSize
+) {
+
+	@lib_standalone/MqttPubSub.h
+
+	@lib_standalone/SecurityManager.h
+
+1 #iâdeà
+Secur™yMªag”_h
+
+
+2 
+	#Secur™yMªag”_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+5 
+	~<F—tu»s.h
+>
+
+6 
+	~<ESPAsyncWebS”v”.h
+>
+
+7 
+	~<AsyncJsÚ.h
+>
+
+8 
+	~<li¡
+>
+
+10 #iâdeà
+FACTORY_JWT_SECRET
+
+
+11 
+	#FACTORY_JWT_SECRET
+ 
+ESPUtžs
+::
+	`deçuÉDeviûV®ue
+()
+
+	)
+
+14 
+	#ACCESS_TOKEN_PARAMATER
+ "acûss_tok’"
+
+	)
+
+16 
+	#AUTHORIZATION_HEADER
+ "AuthÜiz©iÚ"
+
+	)
+
+17 
+	#AUTHORIZATION_HEADER_PREFIX
+ "B—»¸"
+
+	)
+
+18 
+	#AUTHORIZATION_HEADER_PREFIX_LEN
+ 7
+
+	)
+
+20 
+	#MAX_JWT_SIZE
+ 128
+
+	)
+
+22 þas 
+	cU£r
+ {
+
+23 
+	mpublic
+:
+
+24 
+SŒšg
+ 
+u£ºame
+;
+
+25 
+SŒšg
+ 
+	m·sswÜd
+;
+
+26 
+boÞ
+ 
+	madmš
+;
+
+28 
+	mpublic
+:
+
+29 
+	$U£r
+(
+SŒšg
+ 
+u£ºame
+, SŒšg 
+·sswÜd
+, 
+boÞ
+ 
+admš
+)
+
+30 : 
+	`u£ºame
+(
+u£ºame
+)
+
+31 , 
+	`·sswÜd
+(
+·sswÜd
+)
+
+32 , 
+	$admš
+(
+admš
+) {
+
+34 
+	}
+};
+
+36 þas 
+	cAuth’tiÿtiÚ
+ {
+
+37 
+	mpublic
+:
+
+38 
+U£r
+ * 
+u£r
+;
+
+39 
+boÞ—n
+ 
+	mauth’tiÿ‹d
+;
+
+41 
+	mpublic
+:
+
+42 
+	$Auth’tiÿtiÚ
+(
+U£r
+ & 
+u£r
+)
+
+43 : 
+	`u£r
+(
+Ãw
+ 
+	`U£r
+(
+u£r
+))
+
+44 , 
+	$auth’tiÿ‹d
+(
+Œue
+) {
+
+46 
+	$Auth’tiÿtiÚ
+()
+
+47 : 
+	`u£r
+(
+nuÎ±r
+)
+
+48 , 
+	$auth’tiÿ‹d
+(
+çl£
+) {
+
+49 
+	}
+}
+
+50 ~
+	$Auth’tiÿtiÚ
+() {
+
+51 
+	`d–‘e
+ (
+u£r
+);
+
+52 
+	}
+}
+
+55 
+	g¡d
+::
+	tfunùiÚ
+<
+	tboÞ—n
+(
+	tAuth’tiÿtiÚ
+ & 
+	tauth’tiÿtiÚ
+)> 
+	tAuth’tiÿtiÚP»diÿ‹
+;
+
+57 þas 
+	cAuth’tiÿtiÚP»diÿ‹s
+ {
+
+58 
+	mpublic
+:
+
+59 
+boÞ
+ 
+	$NONE_REQUIRED
+(
+Auth’tiÿtiÚ
+ & 
+auth’tiÿtiÚ
+) {
+
+60  
+Œue
+;
+
+62 
+boÞ
+ 
+	$IS_AUTHENTICATED
+(
+Auth’tiÿtiÚ
+ & 
+auth’tiÿtiÚ
+) {
+
+63  
+auth’tiÿtiÚ
+.
+auth’tiÿ‹d
+;
+
+64 
+	}
+};
+
+65 
+boÞ
+ 
+	$IS_ADMIN
+(
+Auth’tiÿtiÚ
+ & 
+auth’tiÿtiÚ
+) {
+
+66  
+auth’tiÿtiÚ
+.
+auth’tiÿ‹d
+ &&‡uth’tiÿtiÚ.
+u£r
+->
+admš
+;
+
+67 
+	}
+};
+
+70 þas 
+	cSecur™yMªag”
+ {
+
+71 
+	mpublic
+:
+
+72 #ià
+	$FT_ENABLED
+(
+FT_SECURITY
+)
+
+73 
+vœtu®
+ 
+Auth’tiÿtiÚ
+ 
+	`auth’tiÿ‹
+(cÚ¡ 
+SŒšg
+ & 
+u£ºame
+, cÚ¡ SŒšg & 
+·sswÜd
+) = 0;
+
+74 
+vœtu®
+ 
+SŒšg
+ 
+	`g’”©eJWT
+(
+U£r
+ * 
+u£r
+) = 0;
+
+77 
+vœtu®
+ 
+Auth’tiÿtiÚ
+ 
+	`auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) = 0;
+
+78 
+vœtu®
+ 
+ArReque¡Fž‹rFunùiÚ
+ 
+	`fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) = 0;
+
+79 
+vœtu®
+ 
+ArReque¡HªdËrFunùiÚ
+ 
+	`w¿pReque¡
+(ArReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) = 0;
+
+80 
+vœtu®
+ 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	`w¿pC®lback
+(ArJsÚReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) = 0;
+
+	@lib_standalone/SecuritySettingsService.cpp
+
+1 
+	~<Secur™yS‘tšgsS”viû.h
+>
+
+3 #ià
+FT_ENABLED
+(
+FT_SECURITY
+)
+
+5 
+	gSecur™yS‘tšgsS”viû
+::
+	$Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+) :
+
+6 
+	`_h‰pEndpošt
+(
+Secur™yS‘tšgs
+::
+»ad
+, Secur™yS‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+SECURITY_SETTINGS_PATH
+,�his),
+
+7 
+	`_fsP”si¡’û
+(
+Secur™yS‘tšgs
+::
+»ad
+, Secur™yS‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+SECURITY_SETTINGS_FILE
+),
+
+8 
+	$_jwtHªdËr
+(
+FACTORY_JWT_SECRET
+) {
+
+9 
+	`addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+& 
+ÜigšId
+è{ 
+	`cÚfigu»JWTHªdËr
+(); }, 
+çl£
+);
+
+10 
+	}
+}
+
+12 
+	gSecur™yS‘tšgsS”viû
+::
+	$begš
+() {
+
+13 
+_fsP”si¡’û
+.
+	`»adFromFS
+();
+
+14 
+	`cÚfigu»JWTHªdËr
+();
+
+15 
+	}
+}
+
+17 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+18 
+AsyncWebH—d”
+* 
+authÜiz©iÚH—d”
+ = 
+»que¡
+->
+	`g‘H—d”
+(
+AUTHORIZATION_HEADER
+);
+
+19 ià(
+authÜiz©iÚH—d”
+) {
+
+20 
+SŒšg
+ 
+v®ue
+ = 
+authÜiz©iÚH—d”
+->
+	`v®ue
+();
+
+21 ià(
+v®ue
+.
+	`¡¬tsW™h
+(
+AUTHORIZATION_HEADER_PREFIX
+)) {
+
+22 
+v®ue
+ = v®ue.
+	`sub¡ršg
+(
+AUTHORIZATION_HEADER_PREFIX_LEN
+);
+
+23  
+	`auth’tiÿ‹JWT
+(
+v®ue
+);
+
+25 } ià(
+»que¡
+->
+	`hasP¬am
+(
+ACCESS_TOKEN_PARAMATER
+)) {
+
+26 
+AsyncWebP¬am‘”
+* 
+tok’P¬am©”
+ = 
+»que¡
+->
+	`g‘P¬am
+(
+ACCESS_TOKEN_PARAMATER
+);
+
+27 
+SŒšg
+ 
+v®ue
+ = 
+tok’P¬am©”
+->
+	`v®ue
+();
+
+28  
+	`auth’tiÿ‹JWT
+(
+v®ue
+);
+
+30  
+	`Auth’tiÿtiÚ
+();
+
+31 
+	}
+}
+
+33 
+	gSecur™yS‘tšgsS”viû
+::
+	$cÚfigu»JWTHªdËr
+() {
+
+34 
+_jwtHªdËr
+.
+	`£tSeü‘
+(
+_¡©e
+.
+jwtSeü‘
+);
+
+35 
+	}
+}
+
+37 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹JWT
+(
+SŒšg
+& 
+jwt
+) {
+
+38 
+DyÇmicJsÚDocum’t
+ 
+	`·ylßdDocum’t
+(
+MAX_JWT_SIZE
+);
+
+39 
+_jwtHªdËr
+.
+	`·r£JWT
+(
+jwt
+, 
+·ylßdDocum’t
+);
+
+40 ià(
+·ylßdDocum’t
+.
+is
+<
+JsÚObjeù
+>()) {
+
+41 
+JsÚObjeù
+ 
+·r£dPaylßd
+ = 
+·ylßdDocum’t
+.
+as
+<JsonObject>();
+
+42 
+SŒšg
+ 
+u£ºame
+ = 
+·r£dPaylßd
+["username"];
+
+43 
+U£r
+ 
+_u£r
+ : 
+_¡©e
+.
+u£rs
+) {
+
+44 ià(
+_u£r
+.
+u£ºame
+ =ðu£ºam�&& 
+	`v®id©ePaylßd
+(
+·r£dPaylßd
+, &_user)) {
+
+45  
+	`Auth’tiÿtiÚ
+(
+_u£r
+);
+
+49  
+	`Auth’tiÿtiÚ
+();
+
+50 
+	}
+}
+
+52 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹
+(cÚ¡ 
+SŒšg
+& 
+u£ºame
+, cÚ¡ SŒšg& 
+·sswÜd
+) {
+
+53 
+U£r
+ 
+_u£r
+ : 
+_¡©e
+.
+u£rs
+) {
+
+54 ià(
+_u£r
+.
+u£ºame
+ =ðu£ºam�&& _u£r.
+·sswÜd
+ ==…assword) {
+
+55  
+	`Auth’tiÿtiÚ
+(
+_u£r
+);
+
+58  
+	`Auth’tiÿtiÚ
+();
+
+59 
+	}
+}
+
+61 
+šlše
+ 
+	$pÝuÏ‹JWTPaylßd
+(
+JsÚObjeù
+& 
+·ylßd
+, 
+U£r
+* 
+u£r
+) {
+
+62 
+·ylßd
+["u£ºame"] = 
+u£r
+->
+u£ºame
+;
+
+63 
+·ylßd
+["admš"] = 
+u£r
+->
+admš
+;
+
+64 
+·ylßd
+["v”siÚ"] = 
+EMSESP_APP_VERSION
+;
+
+65 
+	}
+}
+
+67 
+boÞ—n
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$v®id©ePaylßd
+(
+JsÚObjeù
+& 
+·r£dPaylßd
+, 
+U£r
+* 
+u£r
+) {
+
+68 
+DyÇmicJsÚDocum’t
+ 
+	`jsÚDocum’t
+(
+MAX_JWT_SIZE
+);
+
+69 
+JsÚObjeù
+ 
+·ylßd
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+70 
+	`pÝuÏ‹JWTPaylßd
+(
+·ylßd
+, 
+u£r
+);
+
+71  
+·ylßd
+ =ð
+·r£dPaylßd
+;
+
+72 
+	}
+}
+
+74 
+SŒšg
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$g’”©eJWT
+(
+U£r
+* 
+u£r
+) {
+
+75 
+DyÇmicJsÚDocum’t
+ 
+	`jsÚDocum’t
+(
+MAX_JWT_SIZE
+);
+
+76 
+JsÚObjeù
+ 
+·ylßd
+ = 
+jsÚDocum’t
+.
+to
+<JsonObject>();
+
+77 
+	`pÝuÏ‹JWTPaylßd
+(
+·ylßd
+, 
+u£r
+);
+
+78  
+_jwtHªdËr
+.
+	`buždJWT
+(
+·ylßd
+);
+
+79 
+	}
+}
+
+81 
+ArReque¡Fž‹rFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+82  [
+this
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+83 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+84  
+	`´ediÿ‹
+(
+auth’tiÿtiÚ
+);
+
+86 
+	}
+}
+
+88 
+ArReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pReque¡
+(
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+89 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+90  [
+this
+, 
+ÚReque¡
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+91 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+92 ià(!
+	`´ediÿ‹
+(
+auth’tiÿtiÚ
+)) {
+
+93 
+»que¡
+->
+	`£nd
+(401);
+
+96 
+	`ÚReque¡
+(
+»que¡
+);
+
+98 
+	}
+}
+
+100 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pC®lback
+(
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+101 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+102  [
+this
+, 
+ÚReque¡
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+, 
+JsÚV¬ŸÁ
+& 
+jsÚ
+) {
+
+103 
+Auth’tiÿtiÚ
+ 
+auth’tiÿtiÚ
+ = 
+	`auth’tiÿ‹Reque¡
+(
+»que¡
+);
+
+104 ià(!
+	`´ediÿ‹
+(
+auth’tiÿtiÚ
+)) {
+
+105 
+»que¡
+->
+	`£nd
+(401);
+
+108 
+	`ÚReque¡
+(
+»que¡
+, 
+jsÚ
+);
+
+110 
+	}
+}
+
+114 
+U£r
+ 
+	gADMIN_USER
+ = U£r(
+FACTORY_ADMIN_USERNAME
+, 
+FACTORY_ADMIN_PASSWORD
+, 
+Œue
+);
+
+116 
+	gSecur™yS‘tšgsS”viû
+::
+	$Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+* 
+£rv”
+, 
+FS
+* 
+fs
+è: 
+	$Secur™yMªag”
+() {
+
+117 
+	}
+}
+
+118 
+Secur™yS‘tšgsS”viû
+::~
+	$Secur™yS‘tšgsS”viû
+() {
+
+119 
+	}
+}
+
+121 
+ArReque¡Fž‹rFunùiÚ
+ 
+Secur™yS‘tšgsS”viû
+::
+	$fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+122  [
+this
+, 
+´ediÿ‹
+](
+AsyncWebS”v”Reque¡
+* 
+»que¡
+è{  
+Œue
+; };
+
+123 
+	}
+}
+
+126 
+Auth’tiÿtiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+* 
+»que¡
+) {
+
+127  
+	`Auth’tiÿtiÚ
+(
+ADMIN_USER
+);
+
+128 
+	}
+}
+
+131 
+ArReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pReque¡
+(
+ArReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+132 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+133  
+ÚReque¡
+;
+
+134 
+	}
+}
+
+136 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+	gSecur™yS‘tšgsS”viû
+::
+	$w¿pC®lback
+(
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+ÚReque¡
+,
+
+137 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+) {
+
+138  
+ÚReque¡
+;
+
+139 
+	}
+}
+
+	@lib_standalone/SecuritySettingsService.h
+
+1 #iâdeà
+Secur™yS‘tšgsS”viû_h
+
+
+2 
+	#Secur™yS‘tšgsS”viû_h
+
+
+	)
+
+4 
+	~<F—tu»s.h
+>
+
+5 
+	~<Secur™yMªag”.h
+>
+
+6 
+	~<H‰pEndpošt.h
+>
+
+7 
+	~<FSP”si¡’û.h
+>
+
+9 
+	~"../../¤c/v”siÚ.h
+"
+
+11 #iâdeà
+FACTORY_ADMIN_USERNAME
+
+
+12 
+	#FACTORY_ADMIN_USERNAME
+ "admš"
+
+	)
+
+15 #iâdeà
+FACTORY_ADMIN_PASSWORD
+
+
+16 
+	#FACTORY_ADMIN_PASSWORD
+ "admš"
+
+	)
+
+19 #iâdeà
+FACTORY_GUEST_USERNAME
+
+
+20 
+	#FACTORY_GUEST_USERNAME
+ "gue¡"
+
+	)
+
+23 #iâdeà
+FACTORY_GUEST_PASSWORD
+
+
+24 
+	#FACTORY_GUEST_PASSWORD
+ "gue¡"
+
+	)
+
+27 
+	#SECURITY_SETTINGS_FILE
+ "/cÚfig/£cur™yS‘tšgs.jsÚ"
+
+	)
+
+28 
+	#SECURITY_SETTINGS_PATH
+ "/»¡/£cur™yS‘tšgs"
+
+	)
+
+30 #ià
+FT_ENABLED
+(
+FT_SECURITY
+)
+
+32 þas 
+	cSecur™yS‘tšgs
+ {
+
+33 
+	mpublic
+:
+
+34 
+SŒšg
+ 
+jwtSeü‘
+;
+
+35 
+	m¡d
+::
+li¡
+<
+U£r
+> 
+u£rs
+;
+
+37 
+	$»ad
+(
+Secur™yS‘tšgs
+ & 
+£‰šgs
+, 
+JsÚObjeù
+ & 
+roÙ
+) {
+
+39 
+roÙ
+["jwt_£ü‘"] = 
+£‰šgs
+.
+jwtSeü‘
+;
+
+42 
+JsÚA¼ay
+ 
+u£rs
+ = 
+roÙ
+.
+	`ü—‹Ne¡edA¼ay
+("users");
+
+43 
+U£r
+ 
+u£r
+ : 
+£‰šgs
+.
+u£rs
+) {
+
+44 
+JsÚObjeù
+ 
+u£rRoÙ
+ = 
+u£rs
+.
+	`ü—‹Ne¡edObjeù
+();
+
+45 
+u£rRoÙ
+["u£ºame"] = 
+u£r
+.
+u£ºame
+;
+
+46 
+u£rRoÙ
+["·sswÜd"] = 
+u£r
+.
+·sswÜd
+;
+
+47 
+u£rRoÙ
+["admš"] = 
+u£r
+.
+admš
+;
+
+51 
+S�‹Upd©eResuÉ
+ 
+	$upd©e
+(
+JsÚObjeù
+ & 
+roÙ
+, 
+Secur™yS‘tšgs
+ & 
+£‰šgs
+) {
+
+53 
+£‰šgs
+.
+jwtSeü‘
+ = 
+roÙ
+["jwt_£ü‘"] | 
+FACTORY_JWT_SECRET
+;
+
+56 
+£‰šgs
+.
+u£rs
+.
+	`þ—r
+();
+
+57 ià(
+roÙ
+["u£rs"].
+is
+<
+JsÚA¼ay
+>()) {
+
+58 
+JsÚV¬ŸÁ
+ 
+u£r
+ : 
+roÙ
+["u£rs"].
+as
+<
+JsÚA¼ay
+>()) {
+
+59 
+£‰šgs
+.
+u£rs
+.
+	`push_back
+(
+	`U£r
+(
+u£r
+["username"], user["password"], user["admin"]));
+
+62 
+£‰šgs
+.
+u£rs
+.
+	`push_back
+(
+	`U£r
+(
+FACTORY_ADMIN_USERNAME
+, 
+FACTORY_ADMIN_PASSWORD
+, 
+Œue
+));
+
+63 
+£‰šgs
+.
+u£rs
+.
+	`push_back
+(
+	`U£r
+(
+FACTORY_GUEST_USERNAME
+, 
+FACTORY_GUEST_PASSWORD
+, 
+çl£
+));
+
+65  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+66 
+	}
+}
+
+69 
+þass
+ 
+	gSecur™yS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+Secur™yS‘tšgs
+>,…ubliø
+	gSecur™yMªag”
+ {
+
+70 
+	gpublic
+:
+
+71 
+Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+);
+
+73 
+begš
+();
+
+76 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹
+(cÚ¡ 
+SŒšg
+ & 
+u£ºame
+, cÚ¡ SŒšg & 
+·sswÜd
+);
+
+77 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+);
+
+78 
+SŒšg
+ 
+g’”©eJWT
+(
+U£r
+ * 
+u£r
+);
+
+79 
+ArReque¡Fž‹rFunùiÚ
+ 
+fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+80 
+ArReque¡HªdËrFunùiÚ
+ 
+w¿pReque¡
+(ArReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+81 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+w¿pC®lback
+(ArJsÚReque¡HªdËrFunùiÚ 
+ÿÎback
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+83 
+	g´iv©e
+:
+
+84 
+H‰pEndpošt
+<
+Secur™yS‘tšgs
+> 
+_h‰pEndpošt
+;
+
+85 
+	gFSP”si¡’û
+<
+	gSecur™yS‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+86 
+ArdušoJsÚJWT
+ 
+	g_jwtHªdËr
+;
+
+88 
+cÚfigu»JWTHªdËr
+();
+
+89 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹JWT
+(
+SŒšg
+ & 
+jwt
+);
+
+90 
+boÞ—n
+ 
+v®id©ePaylßd
+(
+JsÚObjeù
+ & 
+·r£dPaylßd
+, 
+U£r
+ * 
+u£r
+);
+
+95 þas 
+	cSecur™yS‘tšgsS”viû
+ : 
+public
+ 
+Secur™yMªag”
+ {
+
+96 
+public
+:
+
+97 
+Secur™yS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+);
+
+98 ~
+Secur™yS‘tšgsS”viû
+();
+
+101 
+Auth’tiÿtiÚ
+ 
+auth’tiÿ‹Reque¡
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+);
+
+102 
+ArReque¡Fž‹rFunùiÚ
+ 
+fž‹rReque¡
+(
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+103 
+ArReque¡HªdËrFunùiÚ
+ 
+w¿pReque¡
+(ArReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+104 
+ArJsÚReque¡HªdËrFunùiÚ
+ 
+w¿pC®lback
+(ArJsÚReque¡HªdËrFunùiÚ 
+ÚReque¡
+, 
+Auth’tiÿtiÚP»diÿ‹
+ 
+´ediÿ‹
+);
+
+	@lib_standalone/StatefulService.cpp
+
+1 
+	~<S�‹fulS”viû.h
+>
+
+3 
+upd©e_hªdËr_id_t
+ 
+	gS�‹Upd©eHªdËrInfo
+::
+cu¼’tUpd©edHªdËrId
+ = 0;
+
+	@lib_standalone/StatefulService.h
+
+1 #iâdeà
+S�‹fulS”viû_h
+
+
+2 
+	#S�‹fulS”viû_h
+
+
+	)
+
+4 
+	~<Ardušo.h
+>
+
+5 
+	~<ArdušoJsÚ.h
+>
+
+7 
+	~<li¡
+>
+
+8 
+	~<funùiÚ®
+>
+
+10 #iâdeà
+DEFAULT_BUFFER_SIZE
+
+
+11 
+	#DEFAULT_BUFFER_SIZE
+ 1024
+
+	)
+
+14 þas 
+	cS�‹Upd©eResuÉ
+ {
+
+15 
+	mCHANGED
+ = 0,
+
+16 
+	mUNCHANGED
+,
+
+17 
+	mERROR
+
+
+20 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+21 
+usšg
+ 
+	gJsÚS�‹Upd©”
+ = 
+¡d
+::
+funùiÚ
+<
+S�‹Upd©eResuÉ
+(
+JsÚObjeù
+ & 
+roÙ
+, 
+T
+ & 
+£‰šgs
+)>;
+
+23 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gT
+>
+
+24 
+usšg
+ 
+	gJsÚS�‹R—d”
+ = 
+¡d
+::
+funùiÚ
+<(
+T
+ & 
+£‰šgs
+, 
+	gJsÚObjeù
+ & 
+	groÙ
+)>;
+
+26 
+size_t
+ 
+	tupd©e_hªdËr_id_t
+;
+
+27 
+	g¡d
+::
+	tfunùiÚ
+<(cÚ¡ 
+	tSŒšg
+ & 
+	tÜigšId
+)> 
+	tS�‹Upd©eC®lback
+;
+
+29 
+	sS�‹Upd©eHªdËrInfo
+ {
+
+30 
+upd©e_hªdËr_id_t
+ 
+	mcu¼’tUpd©edHªdËrId
+;
+
+31 
+upd©e_hªdËr_id_t
+ 
+	m_id
+;
+
+32 
+S�‹Upd©eC®lback
+ 
+	m_cb
+;
+
+33 
+boÞ
+ 
+	m_®lowRemove
+;
+
+34 
+S�‹Upd©eHªdËrInfo
+(
+S�‹Upd©eC®lback
+ 
+cb
+, 
+boÞ
+ 
+®lowRemove
+)
+
+35 : 
+_id
+(++
+cu¼’tUpd©edHªdËrId
+)
+
+36 , 
+_cb
+(
+cb
+)
+
+37 , 
+_®lowRemove
+(
+®lowRemove
+){};
+
+38 } 
+	tS�‹Upd©eHªdËrInfo_t
+;
+
+40 
+	g‹m¶©e
+ <
+þass
+ 
+	gT
+>
+
+41 þas 
+	cS�‹fulS”viû
+ {
+
+42 
+	mpublic
+:
+
+43 
+‹m¶©e
+ <
+ty³Çme
+... 
+Args
+>
+
+44 #ifdeà
+ESP32
+
+
+45 
+	$S�‹fulS”viû
+(
+Args
+ &&... 
+¬gs
+)
+
+46 : 
+	`_¡©e
+(
+¡d
+::
+fÜw¬d
+<
+Args
+>(
+¬gs
+)...)
+
+47 , 
+	`_acûssMu‹x
+(
+	$xSem­hÜeC»©eRecursiveMu‹x
+()) {
+
+50 
+	$S�‹fulS”viû
+(
+Args
+ &&... 
+¬gs
+)
+
+51 : 
+	`_¡©e
+(
+¡d
+::
+fÜw¬d
+<
+Args
+>(
+¬gs
+)...) {
+
+52 
+	}
+}
+
+55 
+upd©e_hªdËr_id_t
+ 
+	$addUpd©eHªdËr
+(
+S�‹Upd©eC®lback
+ 
+cb
+, 
+boÞ
+ 
+®lowRemove
+ = 
+Œue
+) {
+
+56 ià(!
+cb
+) {
+
+59 
+S�‹Upd©eHªdËrInfo_t
+ 
+	`upd©eHªdËr
+(
+cb
+, 
+®lowRemove
+);
+
+60 
+_upd©eHªdËrs
+.
+	`push_back
+(
+upd©eHªdËr
+);
+
+61  
+upd©eHªdËr
+.
+_id
+;
+
+62 
+	}
+}
+
+64 
+	$»moveUpd©eHªdËr
+(
+upd©e_hªdËr_id_t
+ 
+id
+) {
+
+65 autØ
+i
+ = 
+_upd©eHªdËrs
+.
+	`begš
+(); i !ð_upd©eHªdËrs.
+	`’d
+();) {
+
+66 ià((*
+i
+).
+_®lowRemove
+ && (*i).
+_id
+ =ð
+id
+) {
+
+67 
+i
+ = 
+_upd©eHªdËrs
+.
+	`”a£
+(i);
+
+69 ++
+i
+;
+
+72 
+	}
+}
+
+74 
+S�‹Upd©eResuÉ
+ 
+upd©e
+(
+¡d
+::
+funùiÚ
+<S�‹Upd©eResuÉ(
+T
+ &)> 
+¡©eUpd©”
+, cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+) {
+
+75 
+begšT¿n§ùiÚ
+();
+
+76 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+_¡©e
+);
+
+77 
+’dT¿n§ùiÚ
+();
+
+78 ià(
+	g»suÉ
+ =ð
+S�‹Upd©eResuÉ
+::
+CHANGED
+) {
+
+79 
+ÿÎUpd©eHªdËrs
+(
+ÜigšId
+);
+
+81  
+	g»suÉ
+;
+
+84 
+S�‹Upd©eResuÉ
+ 
+upd©eW™houtPrÝag©iÚ
+(
+¡d
+::
+funùiÚ
+<S�‹Upd©eResuÉ(
+T
+ &)> 
+¡©eUpd©”
+) {
+
+85 
+begšT¿n§ùiÚ
+();
+
+86 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+_¡©e
+);
+
+87 
+’dT¿n§ùiÚ
+();
+
+88  
+	g»suÉ
+;
+
+91 
+S�‹Upd©eResuÉ
+ 
+upd©e
+(
+JsÚObjeù
+ & 
+jsÚObjeù
+, 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+, cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+) {
+
+92 
+begšT¿n§ùiÚ
+();
+
+93 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+jsÚObjeù
+, 
+_¡©e
+);
+
+94 
+’dT¿n§ùiÚ
+();
+
+95 ià(
+	g»suÉ
+ =ð
+S�‹Upd©eResuÉ
+::
+CHANGED
+) {
+
+96 
+ÿÎUpd©eHªdËrs
+(
+ÜigšId
+);
+
+98  
+	g»suÉ
+;
+
+101 
+S�‹Upd©eResuÉ
+ 
+upd©eW™houtPrÝag©iÚ
+(
+JsÚObjeù
+ & 
+jsÚObjeù
+, 
+JsÚS�‹Upd©”
+<
+T
+> 
+¡©eUpd©”
+) {
+
+102 
+begšT¿n§ùiÚ
+();
+
+103 
+S�‹Upd©eResuÉ
+ 
+	g»suÉ
+ = 
+¡©eUpd©”
+(
+jsÚObjeù
+, 
+_¡©e
+);
+
+104 
+’dT¿n§ùiÚ
+();
+
+105  
+	g»suÉ
+;
+
+108 
+»ad
+(
+¡d
+::
+funùiÚ
+<(
+T
+ &)> 
+¡©eR—d”
+) {
+
+109 
+begšT¿n§ùiÚ
+();
+
+110 
+¡©eR—d”
+(
+_¡©e
+);
+
+111 
+’dT¿n§ùiÚ
+();
+
+114 
+»ad
+(
+JsÚObjeù
+ & 
+jsÚObjeù
+, 
+JsÚS�‹R—d”
+<
+T
+> 
+¡©eR—d”
+) {
+
+115 
+begšT¿n§ùiÚ
+();
+
+116 
+¡©eR—d”
+(
+_¡©e
+, 
+jsÚObjeù
+);
+
+117 
+’dT¿n§ùiÚ
+();
+
+120 
+	$ÿÎUpd©eHªdËrs
+(cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+) {
+
+121 cÚ¡ 
+S�‹Upd©eHªdËrInfo_t
+ & 
+upd©eHªdËr
+ : 
+_upd©eHªdËrs
+) {
+
+122 
+upd©eHªdËr
+.
+	`_cb
+(
+ÜigšId
+);
+
+124 
+	}
+}
+
+126 
+	g´Ùeùed
+:
+
+127 
+T
+ 
+_¡©e
+;
+
+129 
+šlše
+ 
+	$begšT¿n§ùiÚ
+() {
+
+130 #ifdeà
+ESP32
+
+
+131 
+	`xSem­hÜeTakeRecursive
+(
+_acûssMu‹x
+, 
+pÜtMAX_DELAY
+);
+
+133 
+	}
+}
+
+135 
+šlše
+ 
+	$’dT¿n§ùiÚ
+() {
+
+136 #ifdeà
+ESP32
+
+
+137 
+	`xSem­hÜeGiveRecursive
+(
+_acûssMu‹x
+);
+
+139 
+	}
+}
+
+141 
+	g´iv©e
+:
+
+142 #ifdeà
+ESP32
+
+
+143 
+Sem­hÜeHªdË_t
+ 
+_acûssMu‹x
+;
+
+145 
+	g¡d
+::
+li¡
+<
+S�‹Upd©eHªdËrInfo_t
+> 
+_upd©eHªdËrs
+;
+
+	@lib_standalone/WString.cpp
+
+2 
+	~<Ardušo.h
+>
+
+3 
+	~"WSŒšg.h
+"
+
+12 
+size_t
+ 
+	$¡¾ýy
+(* 
+__»¡riù
+ 
+d¡
+, cÚ¡ * __»¡riù 
+¤c
+, 
+size_t
+ 
+dsize
+) {
+
+13 cÚ¡ * 
+o¤c
+ = 
+¤c
+;
+
+14 
+size_t
+ 
+Æeá
+ = 
+dsize
+;
+
+17 ià(
+Æeá
+ != 0) {
+
+18 --
+Æeá
+ != 0) {
+
+19 ià((*
+d¡
+++ = *
+¤c
+++) == '\0')
+
+25 ià(
+Æeá
+ == 0) {
+
+26 ià(
+dsize
+ != 0)
+
+27 *
+d¡
+ = '\0';
+
+28 *
+¤c
+++)
+
+32  (
+¤c
+ - 
+o¤c
+ - 1);
+
+33 
+	}
+}
+
+44 
+size_t
+ 
+	$¡¾ÿt
+(* 
+d¡
+, cÚ¡ * 
+¤c
+, 
+size_t
+ 
+siz
+) {
+
+45 * 
+d
+ = 
+d¡
+;
+
+46 cÚ¡ * 
+s
+ = 
+¤c
+;
+
+47 
+size_t
+ 
+n
+ = 
+siz
+;
+
+48 
+size_t
+ 
+dËn
+;
+
+51 
+n
+-- !ð0 && *
+d
+ != '\0')
+
+52 
+d
+++;
+
+53 
+dËn
+ = 
+d
+ - 
+d¡
+;
+
+54 
+n
+ = 
+siz
+ - 
+dËn
+;
+
+56 ià(
+n
+ == 0)
+
+57  (
+dËn
+ + 
+	`¡¾’
+(
+s
+));
+
+58 *
+s
+ != '\0') {
+
+59 ià(
+n
+ != 1) {
+
+60 *
+d
+++ = *
+s
+;
+
+61 
+n
+--;
+
+63 
+s
+++;
+
+65 *
+d
+ = '\0';
+
+67  (
+dËn
+ + (
+s
+ - 
+¤c
+));
+
+68 
+	}
+}
+
+	@lib_standalone/WString.h
+
+2 #iâdeà
+WSTRING_H
+
+
+3 
+	#WSTRING_H
+
+
+	)
+
+5 
+	~<¡ršg
+>
+
+8 þas 
+	cSŒšg
+ {
+
+9 
+	mpublic
+:
+
+10 
+SŒšg
+ & 
+Ý”©Ü
++=(cÚ¡ * 
+rhs
+) {
+
+11 
+_¡r
+ +ð
+rhs
+;
+
+12  *
+	mthis
+;
+
+15 
+size_t
+ 
+	$Ëngth
+() const {
+
+16  
+_¡r
+.
+	`size
+();
+
+17 
+	}
+}
+
+19 
+SŒšg
+(cÚ¡ * 
+¡r
+ = "")
+
+20 : 
+	$_¡r
+(
+¡r
+) {
+
+21 
+	}
+}
+
+23 cÚ¡ * 
+	$c_¡r
+() const {
+
+24  
+_¡r
+.
+	`c_¡r
+();
+
+25 
+	}
+}
+
+27 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ * 
+s
+) const {
+
+28  
+_¡r
+ =ð
+s
+;
+
+31 
+ä›nd
+ 
+	g¡d
+::
+o¡»am
+ & 
+Ý”©Ü
+<<(
+¡d
+::o¡»am & 
+lhs
+, cÚ¡ ::
+SŒšg
+ & 
+rhs
+) {
+
+32 
+lhs
+ << 
+rhs
+.
+_¡r
+;
+
+33  
+	glhs
+;
+
+37 
+boÞ
+ 
+	$isEm±y
+() {
+
+38  
+_¡r
+.
+	`em±y
+();
+
+39 
+	}
+}
+
+45 
+boÞ
+ 
+	$equ®s
+(cÚ¡ * 
+s
+) {
+
+46  
+_¡r
+ =ð
+s
+;
+
+47 
+	}
+}
+
+50 
+	g´iv©e
+:
+
+51 
+¡d
+::
+¡ršg
+ 
+_¡r
+;
+
+54 
+þass
+ 
+	gSŒšgSumH–³r
+;
+
+56 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+==(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+lhs
+, cÚ¡ ::
+SŒšg
+ & 
+rhs
+) {
+
+57  
+lhs
+ =ð
+rhs
+.
+c_¡r
+();
+
+61 
+size_t
+ 
+¡¾ýy
+(* 
+__»¡riù
+ 
+d¡
+, cÚ¡ * __»¡riù 
+¤c
+, size_ˆ
+dsize
+);
+
+62 
+size_t
+ 
+¡¾ÿt
+(* 
+d¡
+, cÚ¡ * 
+¤c
+, size_ˆ
+siz
+);
+
+64 
+	#¡¾’_P
+ 
+¡¾’
+
+
+	)
+
+65 
+	#¡ºýy_P
+ 
+¡ºýy
+
+
+	)
+
+66 
+	#¡rcmp_P
+ 
+¡rcmp
+
+
+	)
+
+67 
+	#¡rýy_P
+ 
+¡rýy
+
+
+	)
+
+	@lib_standalone/WebSocketTxRx.h
+
+	@lib_standalone/emsuart_standalone.cpp
+
+19 
+	~"emsu¬t_¡ªd®Úe.h
+"
+
+21 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+22 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+24 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+29 
+	gEMSu¬t
+::
+¡¬t
+(
+ušt8_t
+ 
+tx_mode
+, ušt8_ˆ
+rx_gpio
+, ušt8_ˆ
+tx_gpio
+) {
+
+36 
+	gEMSu¬t
+::
+¡Ý
+() {
+
+42 
+EMSu¬t
+::
+»¡¬t
+() {
+
+49 
+EMSu¬t
+::
+£nd_pÞl
+(
+ušt8_t
+ 
+d©a
+) {
+
+57 
+ušt16_t
+ 
+EMSu¬t
+::
+Œªsm™
+(
+ušt8_t
+ * 
+buf
+, ušt8_ˆ
+Ën
+) {
+
+58 ià(
+	gËn
+ == 0) {
+
+59  
+EMS_TX_STATUS_OK
+;
+
+64 
+	gS”Ÿl
+.
+´št
+("UART SENDING: ");
+
+65 
+	gs
+[5];
+
+66 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; i++) {
+
+67 
+	gS”Ÿl
+.
+´št
+(
+hextß
+(
+s
+, 
+buf
+[
+i
+]));
+
+68 
+	gS”Ÿl
+.
+´št
+(" ");
+
+70 
+	gS”Ÿl
+.
+´šŽn
+();
+
+72  
+	gEMS_TX_STATUS_OK
+;
+
+76 * 
+	gEMSu¬t
+::
+hextß
+(* 
+»suÉ
+, cÚ¡ 
+ušt8_t
+ 
+v®ue
+) {
+
+77 * 
+	gp
+ = 
+»suÉ
+;
+
+78 
+ušt8_t
+ 
+	gnib1
+ = (
+v®ue
+ >> 4) & 0x0F;
+
+79 
+ušt8_t
+ 
+	gnib2
+ = (
+v®ue
+ >> 0) & 0x0F;
+
+80 *
+	gp
+++ = 
+nib1
+ < 0xA ? '0' +‚ib1 : 'A' +‚ib1 - 0xA;
+
+81 *
+	gp
+++ = 
+nib2
+ < 0xA ? '0' +‚ib2 : 'A' +‚ib2 - 0xA;
+
+82 *
+	gp
+ = '\0';
+
+83  
+	g»suÉ
+;
+
+88 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@lib_standalone/emsuart_standalone.h
+
+19 #iâdeà
+EMSESP_EMSUART_H
+
+
+20 
+	#EMSESP_EMSUART_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+24 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+26 
+	#EMS_TX_STATUS_ERR
+ 0
+
+	)
+
+27 
+	#EMS_TX_STATUS_OK
+ 1
+
+	)
+
+29 þas 
+	cEMSu¬t
+ {
+
+30 
+	gpublic
+:
+
+31 
+EMSu¬t
+() = ;
+
+32 ~
+EMSu¬t
+() = ;
+
+34 
+¡¬t
+(
+ušt8_t
+ 
+tx_mode
+, ušt8_ˆ
+rx_gpio
+, ušt8_ˆ
+tx_gpio
+);
+
+35 
+¡Ý
+();
+
+36 
+»¡¬t
+();
+
+37 
+£nd_pÞl
+(
+ušt8_t
+ 
+d©a
+);
+
+38 
+ušt16_t
+ 
+Œªsm™
+(
+ušt8_t
+ * 
+buf
+, ušt8_ˆ
+Ën
+);
+
+40 
+	g´iv©e
+:
+
+41 * 
+hextß
+(* 
+»suÉ
+, cÚ¡ 
+ušt8_t
+ 
+v®ue
+);
+
+	@src/EMSESPDevicesService.cpp
+
+19 
+	~"EMSESPDeviûsS”viû.h
+"
+
+20 
+	~"em£¥.h
+"
+
+21 
+	~"mq‰.h
+"
+
+23 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+25 
+usšg
+ 
+Çme¥aû
+ 
+	g¡d
+::
+¶aûhÞd”s
+;
+
+27 
+	gEMSESPDeviûsS”viû
+::
+EMSESPDeviûsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+)
+
+28 : 
+_deviû_d©aHªdËr
+(
+DEVICE_DATA_SERVICE_PATH
+,
+
+29 
+£cur™yMªag”
+->
+w¿pC®lback
+(
+¡d
+::
+bšd
+(&
+EMSESPDeviûsS”viû
+::
+deviû_d©a
+, 
+this
+, 
+_1
+, 
+_2
+), 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+)) {
+
+30 
+£rv”
+->
+Ú
+(
+EMSESP_DEVICES_SERVICE_PATH
+,
+
+31 
+HTTP_GET
+,
+
+32 
+£cur™yMªag”
+->
+w¿pReque¡
+(
+¡d
+::
+bšd
+(&
+EMSESPDeviûsS”viû
+::
+®l_deviûs
+, 
+this
+, 
+_1
+), 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+34 
+	g£rv”
+->
+Ú
+(
+SCAN_DEVICES_SERVICE_PATH
+,
+
+35 
+HTTP_GET
+,
+
+36 
+£cur™yMªag”
+->
+w¿pReque¡
+(
+¡d
+::
+bšd
+(&
+EMSESPDeviûsS”viû
+::
+sÿn_deviûs
+, 
+this
+, 
+_1
+), 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+38 
+	g_deviû_d©aHªdËr
+.
+£tM‘hod
+(
+HTTP_POST
+);
+
+39 
+	g_deviû_d©aHªdËr
+.
+£tMaxCÚ‹ÁL’gth
+(256);
+
+40 
+	g£rv”
+->
+addHªdËr
+(&
+_deviû_d©aHªdËr
+);
+
+43 
+	gEMSESPDeviûsS”viû
+::
+sÿn_deviûs
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+44 
+EMSESP
+::
+sÿn_deviûs
+();
+
+45 
+	g»que¡
+->
+£nd
+(200);
+
+48 
+	gEMSESPDeviûsS”viû
+::
+®l_deviûs
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+49 
+AsyncJsÚRe¥Ú£
+ * 
+»¥Ú£
+ = 
+Ãw
+ AsyncJsÚRe¥Ú£(
+çl£
+, 
+MAX_EMSESP_DEVICE_SIZE
+);
+
+50 
+JsÚObjeù
+ 
+	groÙ
+ = 
+»¥Ú£
+->
+g‘RoÙ
+();
+
+52 
+JsÚA¼ay
+ 
+	gdeviûs
+ = 
+roÙ
+.
+ü—‹Ne¡edA¼ay
+("devices");
+
+53 cÚ¡‡utØ& 
+	gemsdeviû
+ : 
+EMSESP
+::
+emsdeviûs
+) {
+
+54 ià(
+emsdeviû
+) {
+
+55 
+JsÚObjeù
+ 
+obj
+ = 
+deviûs
+.
+ü—‹Ne¡edObjeù
+();
+
+56 
+	gobj
+["id"] = 
+emsdeviû
+->
+unique_id
+();
+
+57 
+	gobj
+["ty³"] = 
+emsdeviû
+->
+deviû_ty³_Çme
+();
+
+58 
+	gobj
+["b¿nd"] = 
+emsdeviû
+->
+b¿nd_to_¡ršg
+();
+
+59 
+	gobj
+["Çme"] = 
+emsdeviû
+->
+Çme
+();
+
+60 
+	gobj
+["deviûid"] = 
+emsdeviû
+->
+g‘_deviû_id
+();
+
+61 
+	gobj
+["´oduùid"] = 
+emsdeviû
+->
+´oduù_id
+();
+
+62 
+	gobj
+["v”siÚ"] = 
+emsdeviû
+->
+v”siÚ
+();
+
+66 
+JsÚA¼ay
+ 
+	g£nsÜs
+ = 
+roÙ
+.
+ü—‹Ne¡edA¼ay
+("sensors");
+
+67 ià(!
+	gEMSESP
+::
+£nsÜ_deviûs
+().
+em±y
+()) {
+
+68 cÚ¡‡utØ& 
+£nsÜ
+ : 
+EMSESP
+::
+£nsÜ_deviûs
+()) {
+
+69 
+JsÚObjeù
+ 
+obj
+ = 
+£nsÜs
+.
+ü—‹Ne¡edObjeù
+();
+
+70 
+	gobj
+["id"] = 
+£nsÜ
+.
+to_¡ršg
+();
+
+71 
+	gobj
+["‹mp"] = 
+£nsÜ
+.
+‹m³¿tu»_c
+;
+
+75 
+	g»¥Ú£
+->
+£tL’gth
+();
+
+76 
+	g»que¡
+->
+£nd
+(
+»¥Ú£
+);
+
+79 
+	gEMSESPDeviûsS”viû
+::
+deviû_d©a
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+, 
+JsÚV¬ŸÁ
+ & 
+jsÚ
+) {
+
+80 ià(
+	gjsÚ
+.
+	gis
+<
+	gJsÚObjeù
+>()) {
+
+81 
+AsyncJsÚRe¥Ú£
+ * 
+	g»¥Ú£
+ = 
+Ãw
+ AsyncJsÚRe¥Ú£(
+çl£
+, 
+MAX_EMSESP_DEVICE_SIZE
+);
+
+82 #iâdeà
+EMSESP_STANDALONE
+
+
+83 
+ušt8_t
+ 
+	gid
+ = 
+jsÚ
+["id"];
+
+84 
+	gEMSESP
+::
+deviû_šfo_web
+(
+id
+, (
+JsÚObjeù
+ &)
+»¥Ú£
+->
+g‘RoÙ
+());
+
+86 
+	g»¥Ú£
+->
+£tL’gth
+();
+
+87 
+	g»que¡
+->
+£nd
+(
+»¥Ú£
+);
+
+89 
+AsyncWebS”v”Re¥Ú£
+ * 
+	g»¥Ú£
+ = 
+»que¡
+->
+begšRe¥Ú£
+(200);
+
+90 
+	g»que¡
+->
+£nd
+(
+»¥Ú£
+);
+
+	@src/EMSESPDevicesService.h
+
+19 #iâdeà
+EMSESPDeviûsS”viû_h
+
+
+20 
+	#EMSESPDeviûsS”viû_h
+
+
+	)
+
+22 
+	~<ArdušoJsÚ.h
+>
+
+23 
+	~<AsyncJsÚ.h
+>
+
+24 
+	~<ESPAsyncWebS”v”.h
+>
+
+25 
+	~<Secur™yMªag”.h
+>
+
+27 
+	#MAX_EMSESP_DEVICE_SIZE
+ 1700
+
+	)
+
+29 
+	#EMSESP_DEVICES_SERVICE_PATH
+ "/»¡/®lDeviûs"
+
+	)
+
+30 
+	#SCAN_DEVICES_SERVICE_PATH
+ "/»¡/sÿnDeviûs"
+
+	)
+
+31 
+	#DEVICE_DATA_SERVICE_PATH
+ "/»¡/deviûD©a"
+
+	)
+
+33 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+35 þas 
+	cEMSESPDeviûsS”viû
+ {
+
+36 
+	gpublic
+:
+
+37 
+EMSESPDeviûsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+);
+
+39 
+	g´iv©e
+:
+
+40 
+®l_deviûs
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+);
+
+41 
+sÿn_deviûs
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+);
+
+42 
+deviû_d©a
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+, 
+JsÚV¬ŸÁ
+ & 
+jsÚ
+);
+
+44 
+AsyncC®lbackJsÚWebHªdËr
+ 
+	g_deviû_d©aHªdËr
+;
+
+	@src/EMSESPSettingsService.cpp
+
+19 
+	~"EMSESPS‘tšgsS”viû.h
+"
+
+20 
+	~"em£¥.h
+"
+
+22 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+24 
+	gEMSESPS‘tšgsS”viû
+::
+EMSESPS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+)
+
+25 : 
+_h‰pEndpošt
+(
+EMSESPS‘tšgs
+::
+»ad
+, EMSESPS‘tšgs::
+upd©e
+, 
+this
+, 
+£rv”
+, 
+EMSESP_SETTINGS_SERVICE_PATH
+, 
+£cur™yMªag”
+)
+
+26 , 
+_fsP”si¡’û
+(
+EMSESPS‘tšgs
+::
+»ad
+, EMSESPS‘tšgs::
+upd©e
+, 
+this
+, 
+fs
+, 
+EMSESP_SETTINGS_FILE
+) {
+
+27 
+addUpd©eHªdËr
+([&](cÚ¡ 
+SŒšg
+ & 
+ÜigšId
+è{ 
+ÚUpd©e
+(); }, 
+çl£
+);
+
+30 
+	gEMSESPS‘tšgs
+::
+»ad
+(
+EMSESPS‘tšgs
+ & 
+£‰šgs
+, 
+JsÚObjeù
+ & 
+roÙ
+) {
+
+31 
+	groÙ
+["tx_mode"] = 
+£‰šgs
+.
+tx_mode
+;
+
+32 
+	groÙ
+["ems_bus_id"] = 
+£‰šgs
+.
+ems_bus_id
+;
+
+33 
+	groÙ
+["sy¦og_Ëv–"] = 
+£‰šgs
+.
+sy¦og_Ëv–
+;
+
+34 
+	groÙ
+["sy¦og_m¬k_š‹rv®"] = 
+£‰šgs
+.
+sy¦og_m¬k_š‹rv®
+;
+
+35 
+	groÙ
+["sy¦og_ho¡"] = 
+£‰šgs
+.
+sy¦og_ho¡
+;
+
+36 
+	groÙ
+["ma¡”_th”mo¡©"] = 
+£‰šgs
+.
+ma¡”_th”mo¡©
+;
+
+37 
+	groÙ
+["show”_tim”"] = 
+£‰šgs
+.
+show”_tim”
+;
+
+38 
+	groÙ
+["show”_®”t"] = 
+£‰šgs
+.
+show”_®”t
+;
+
+39 
+	groÙ
+["rx_gpio"] = 
+£‰šgs
+.
+rx_gpio
+;
+
+40 
+	groÙ
+["tx_gpio"] = 
+£‰šgs
+.
+tx_gpio
+;
+
+41 
+	groÙ
+["d®Ïs_gpio"] = 
+£‰šgs
+.
+d®Ïs_gpio
+;
+
+42 
+	groÙ
+["d®Ïs_·¿s™e"] = 
+£‰šgs
+.
+d®Ïs_·¿s™e
+;
+
+43 
+	groÙ
+["Ëd_gpio"] = 
+£‰šgs
+.
+Ëd_gpio
+;
+
+44 
+	groÙ
+["hide_Ëd"] = 
+£‰šgs
+.
+hide_Ëd
+;
+
+47 
+S�‹Upd©eResuÉ
+ 
+	gEMSESPS‘tšgs
+::
+upd©e
+(
+JsÚObjeù
+ & 
+roÙ
+, 
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+48 
+	g£‰šgs
+.
+	gtx_mode
+ = 
+roÙ
+["tx_mode"] | 
+EMSESP_DEFAULT_TX_MODE
+;
+
+49 
+	g£‰šgs
+.
+	gems_bus_id
+ = 
+roÙ
+["ems_bus_id"] | 
+EMSESP_DEFAULT_EMS_BUS_ID
+;
+
+50 
+	g£‰šgs
+.
+	gsy¦og_Ëv–
+ = 
+roÙ
+["sy¦og_Ëv–"] | 
+EMSESP_DEFAULT_SYSLOG_LEVEL
+;
+
+51 
+	g£‰šgs
+.
+	gsy¦og_m¬k_š‹rv®
+ = 
+roÙ
+["sy¦og_m¬k_š‹rv®"] | 
+EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL
+;
+
+52 
+	g£‰šgs
+.
+	gsy¦og_ho¡
+ = 
+roÙ
+["sy¦og_ho¡"] | 
+EMSESP_DEFAULT_SYSLOG_HOST
+;
+
+53 
+	g£‰šgs
+.
+	gma¡”_th”mo¡©
+ = 
+roÙ
+["ma¡”_th”mo¡©"] | 
+EMSESP_DEFAULT_MASTER_THERMOSTAT
+;
+
+54 
+	g£‰šgs
+.
+	gshow”_tim”
+ = 
+roÙ
+["show”_tim”"] | 
+EMSESP_DEFAULT_SHOWER_TIMER
+;
+
+55 
+	g£‰šgs
+.
+	gshow”_®”t
+ = 
+roÙ
+["show”_®”t"] | 
+EMSESP_DEFAULT_SHOWER_ALERT
+;
+
+56 
+	g£‰šgs
+.
+	grx_gpio
+ = 
+roÙ
+["rx_gpio"] | 
+EMSESP_DEFAULT_RX_GPIO
+;
+
+57 
+	g£‰šgs
+.
+	gtx_gpio
+ = 
+roÙ
+["tx_gpio"] | 
+EMSESP_DEFAULT_TX_GPIO
+;
+
+58 
+	g£‰šgs
+.
+	gd®Ïs_gpio
+ = 
+roÙ
+["d®Ïs_gpio"] | 
+EMSESP_DEFAULT_DALLAS_GPIO
+;
+
+59 
+	g£‰šgs
+.
+	gd®Ïs_·¿s™e
+ = 
+roÙ
+["d®Ïs_·¿s™e"] | 
+EMSESP_DEFAULT_DALLAS_PARASITE
+;
+
+60 
+	g£‰šgs
+.
+	gËd_gpio
+ = 
+roÙ
+["Ëd_gpio"] | 
+EMSESP_DEFAULT_LED_GPIO
+;
+
+61 
+	g£‰šgs
+.
+	ghide_Ëd
+ = 
+roÙ
+["hide_Ëd"] | 
+EMSESP_DEFAULT_HIDE_LED
+;
+
+63  
+	gS�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+68 
+	gEMSESPS‘tšgsS”viû
+::
+ÚUpd©e
+() {
+
+69 
+EMSESP
+::
+show”_
+.
+¡¬t
+();
+
+71 
+	gEMSESP
+::
+š™_tx
+();
+
+72 
+	gSy¡em
+::
+£t_Ëd
+();
+
+73 
+S’sÜs
+ 
+	g£nsÜs_
+;
+
+74 
+	g£nsÜs_
+.
+¡¬t
+();
+
+77 
+	gEMSESPS‘tšgsS”viû
+::
+begš
+() {
+
+78 
+_fsP”si¡’û
+.
+»adFromFS
+();
+
+81 
+	gEMSESPS‘tšgsS”viû
+::
+§ve
+() {
+
+82 
+_fsP”si¡’û
+.
+wr™eToFS
+();
+
+	@src/EMSESPSettingsService.h
+
+19 #iâdeà
+EMSESPS‘tšgsCÚfig_h
+
+
+20 
+	#EMSESPS‘tšgsCÚfig_h
+
+
+	)
+
+22 
+	~<H‰pEndpošt.h
+>
+
+23 
+	~<FSP”si¡’û.h
+>
+
+25 
+	#EMSESP_SETTINGS_FILE
+ "/cÚfig/em£¥S‘tšgs.jsÚ"
+
+	)
+
+26 
+	#EMSESP_SETTINGS_SERVICE_PATH
+ "/»¡/em£¥S‘tšgs"
+
+	)
+
+28 
+	#EMSESP_DEFAULT_TX_MODE
+ 1
+
+29 
+	#EMSESP_DEFAULT_EMS_BUS_ID
+ 0x0B
+
+30 
+	#EMSESP_DEFAULT_SYSLOG_LEVEL
+ -1
+
+31 
+	#EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL
+ 0
+
+	)
+
+32 
+	#EMSESP_DEFAULT_SYSLOG_HOST
+ ""
+
+	)
+
+33 
+	#EMSESP_DEFAULT_MASTER_THERMOSTAT
+ 0
+
+34 
+	#EMSESP_DEFAULT_SHOWER_TIMER
+ 
+çl£
+
+
+	)
+
+35 
+	#EMSESP_DEFAULT_SHOWER_ALERT
+ 
+çl£
+
+
+	)
+
+36 
+	#EMSESP_DEFAULT_HIDE_LED
+ 
+çl£
+
+
+	)
+
+37 
+	#EMSESP_DEFAULT_DALLAS_PARASITE
+ 
+çl£
+
+
+	)
+
+40 #ià
+defšed
+(
+ESP8266
+)
+
+41 
+	#EMSESP_DEFAULT_RX_GPIO
+ 13
+
+42 
+	#EMSESP_DEFAULT_TX_GPIO
+ 15
+
+43 
+	#EMSESP_DEFAULT_DALLAS_GPIO
+ 14
+
+44 
+	#EMSESP_DEFAULT_LED_GPIO
+ 2
+
+45 #–ià
+	`defšed
+(
+ESP32
+)
+
+	)
+
+46 
+	#EMSESP_DEFAULT_RX_GPIO
+ 23
+
+47 
+	#EMSESP_DEFAULT_TX_GPIO
+ 5
+
+48 
+	#EMSESP_DEFAULT_DALLAS_GPIO
+ 18
+
+49 
+	#EMSESP_DEFAULT_LED_GPIO
+ 2
+
+50 #–£
+
+	)
+
+52 
+	#EMSESP_DEFAULT_RX_GPIO
+ 0
+
+	)
+
+53 
+	#EMSESP_DEFAULT_TX_GPIO
+ 0
+
+	)
+
+54 
+	#EMSESP_DEFAULT_DALLAS_GPIO
+ 0
+
+	)
+
+55 
+	#EMSESP_DEFAULT_LED_GPIO
+ 0
+
+	)
+
+58 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+60 
+	gMQTT_fÜm©
+ : 
+ušt8_t
+ { 
+SINGLE
+ = 1, 
+	gNESTED
+, 
+	gHA
+, 
+	gCUSTOM
+ };
+
+62 þas 
+	cEMSESPS‘tšgs
+ {
+
+63 
+	gpublic
+:
+
+64 
+ušt8_t
+ 
+tx_mode
+;
+
+65 
+ušt8_t
+ 
+	gems_bus_id
+;
+
+66 
+ušt8_t
+ 
+	gma¡”_th”mo¡©
+;
+
+67 
+boÞ
+ 
+	gshow”_tim”
+;
+
+68 
+boÞ
+ 
+	gshow”_®”t
+;
+
+69 
+št8_t
+ 
+	gsy¦og_Ëv–
+;
+
+70 
+ušt32_t
+ 
+	gsy¦og_m¬k_š‹rv®
+;
+
+71 
+SŒšg
+ 
+	gsy¦og_ho¡
+;
+
+72 
+ušt8_t
+ 
+	grx_gpio
+;
+
+73 
+ušt8_t
+ 
+	gtx_gpio
+;
+
+74 
+ušt8_t
+ 
+	gd®Ïs_gpio
+;
+
+75 
+boÞ
+ 
+	gd®Ïs_·¿s™e
+;
+
+76 
+ušt8_t
+ 
+	gËd_gpio
+;
+
+77 
+boÞ
+ 
+	ghide_Ëd
+;
+
+79 
+»ad
+(
+EMSESPS‘tšgs
+ & 
+£‰šgs
+, 
+JsÚObjeù
+ & 
+roÙ
+);
+
+80 
+S�‹Upd©eResuÉ
+ 
+upd©e
+(
+JsÚObjeù
+ & 
+roÙ
+, 
+EMSESPS‘tšgs
+ & 
+£‰šgs
+);
+
+83 
+þass
+ 
+	gEMSESPS‘tšgsS”viû
+ : 
+public
+ 
+S�‹fulS”viû
+<
+EMSESPS‘tšgs
+> {
+
+84 
+public
+:
+
+85 
+EMSESPS‘tšgsS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+FS
+ * 
+fs
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+);
+
+87 
+begš
+();
+
+88 
+§ve
+();
+
+90 
+	g´iv©e
+:
+
+91 
+H‰pEndpošt
+<
+EMSESPS‘tšgs
+> 
+_h‰pEndpošt
+;
+
+92 
+	gFSP”si¡’û
+<
+	gEMSESPS‘tšgs
+> 
+	g_fsP”si¡’û
+;
+
+94 
+ÚUpd©e
+();
+
+	@src/EMSESPStatusService.cpp
+
+19 
+	~"EMSESPS�tusS”viû.h
+"
+
+20 
+	~"em£¥.h
+"
+
+21 
+	~"mq‰.h
+"
+
+22 
+	~"v”siÚ.h
+"
+
+24 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+26 
+	gEMSESPS�tusS”viû
+::
+EMSESPS�tusS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+) {
+
+28 
+	g£rv”
+->
+Ú
+(
+EMSESP_STATUS_SERVICE_PATH
+,
+
+29 
+HTTP_GET
+,
+
+30 
+£cur™yMªag”
+->
+w¿pReque¡
+(
+¡d
+::
+bšd
+(&
+EMSESPS�tusS”viû
+::
+em£¥S�tusS”viû
+, 
+this
+, std::
+¶aûhÞd”s
+::
+_1
+),
+
+31 
+Auth’tiÿtiÚP»diÿ‹s
+::
+IS_AUTHENTICATED
+));
+
+34 #ifdeà
+ESP32
+
+
+35 
+	gWiFi
+.
+ÚEv’t
+(
+ÚS�tiÚModeDiscÚÃùed
+, 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_DISCONNECTED
+);
+
+36 
+	gWiFi
+.
+ÚEv’t
+(
+ÚS�tiÚModeGÙIP
+, 
+WiFiEv’t_t
+::
+SYSTEM_EVENT_STA_GOT_IP
+);
+
+37 #–ià
+defšed
+(
+ESP8266
+)
+
+38 
+	g_ÚS�tiÚModeDiscÚÃùedHªdËr
+ = 
+WiFi
+.
+ÚS�tiÚModeDiscÚÃùed
+(onStationModeDisconnected);
+
+39 
+	g_ÚS�tiÚModeGÙIPHªdËr
+ = 
+WiFi
+.
+ÚS�tiÚModeGÙIP
+(onStationModeGotIP);
+
+43 #ifdeà
+ESP32
+
+
+44 
+	gEMSESPS�tusS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+45 
+	gEMSESP
+::
+logg”
+().
+debug
+(
+F
+("WiF˜DiscÚÃùed. R—sÚ code=%d"), 
+šfo
+.
+discÚÃùed
+.
+»asÚ
+);
+
+47 
+	gEMSESPS�tusS”viû
+::
+ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+) {
+
+48 
+	gEMSESP
+::
+logg”
+().
+debug
+(
+F
+("WiF˜CÚÃùed w™h IP=%s, ho¡Çme=%s"), 
+WiFi
+.
+loÿlIP
+().
+toSŒšg
+().
+c_¡r
+(), WiFi.
+g‘Ho¡Çme
+());
+
+49 
+	gEMSESP
+::
+sy¡em_
+.
+£nd_h—¹b—t
+();
+
+51 #–ià
+defšed
+(
+ESP8266
+)
+
+52 
+	gEMSESPS�tusS”viû
+::
+ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+ & 
+ev’t
+) {
+
+53 
+EMSESP
+::
+logg”
+().
+debug
+(
+F
+("WiF˜DiscÚÃùed. R—sÚ code=%d"), 
+ev’t
+.
+»asÚ
+);
+
+55 
+	gEMSESPS�tusS”viû
+::
+ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+ & 
+ev’t
+) {
+
+56 
+EMSESP
+::
+logg”
+().
+debug
+(
+F
+("WiF˜CÚÃùed w™h IP=%s, ho¡Çme=%s"), 
+ev’t
+.
+�
+.
+toSŒšg
+().
+c_¡r
+(), 
+WiFi
+.
+ho¡Çme
+().c_str());
+
+57 
+	gEMSESP
+::
+sy¡em_
+.
+£nd_h—¹b—t
+();
+
+61 
+	gEMSESPS�tusS”viû
+::
+em£¥S�tusS”viû
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+) {
+
+62 
+AsyncJsÚRe¥Ú£
+ * 
+»¥Ú£
+ = 
+Ãw
+ AsyncJsÚRe¥Ú£(
+çl£
+, 
+MAX_EMSESP_STATUS_SIZE
+);
+
+63 
+JsÚObjeù
+ 
+	groÙ
+ = 
+»¥Ú£
+->
+g‘RoÙ
+();
+
+65 
+	groÙ
+["¡©us"] = 
+EMSESP
+::
+bus_¡©us
+();
+
+66 
+	groÙ
+["rx_»ûived"] = 
+EMSESP
+::
+rx£rviû_
+.
+‹Ëg¿m_couÁ
+();
+
+67 
+	groÙ
+["tx_£Á"] = 
+EMSESP
+::
+tx£rviû_
+.
+‹Ëg¿m_»ad_couÁ
+(è+ EMSESP::tx£rviû_.
+‹Ëg¿m_wr™e_couÁ
+();
+
+68 
+	groÙ
+["üc_”rÜs"] = 
+EMSESP
+::
+rx£rviû_
+.
+‹Ëg¿m_”rÜ_couÁ
+();
+
+69 
+	groÙ
+["tx_”rÜs"] = 
+EMSESP
+::
+tx£rviû_
+.
+‹Ëg¿m_çž_couÁ
+();
+
+71 
+	g»¥Ú£
+->
+£tL’gth
+();
+
+72 
+	g»que¡
+->
+£nd
+(
+»¥Ú£
+);
+
+	@src/EMSESPStatusService.h
+
+19 #iâdeà
+EMSESPS�tusS”viû_h
+
+
+20 
+	#EMSESPS�tusS”viû_h
+
+
+	)
+
+22 
+	~<ArdušoJsÚ.h
+>
+
+23 
+	~<AsyncJsÚ.h
+>
+
+24 
+	~<ESPAsyncWebS”v”.h
+>
+
+25 
+	~<Secur™yMªag”.h
+>
+
+26 
+	~<AsyncMq‰Cl›Á.h
+>
+
+28 
+	#MAX_EMSESP_STATUS_SIZE
+ 1024
+
+	)
+
+29 
+	#EMSESP_STATUS_SERVICE_PATH
+ "/»¡/em£¥S�tus"
+
+	)
+
+31 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+33 þas 
+	cEMSESPS�tusS”viû
+ {
+
+34 
+	gpublic
+:
+
+35 
+EMSESPS�tusS”viû
+(
+AsyncWebS”v”
+ * 
+£rv”
+, 
+Secur™yMªag”
+ * 
+£cur™yMªag”
+);
+
+37 
+	g´iv©e
+:
+
+38 
+em£¥S�tusS”viû
+(
+AsyncWebS”v”Reque¡
+ * 
+»que¡
+);
+
+40 #ifdeà
+ESP32
+
+
+41 
+ÚS�tiÚModeDiscÚÃùed
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+42 
+ÚS�tiÚModeGÙIP
+(
+WiFiEv’t_t
+ 
+ev’t
+, 
+WiFiEv’tInfo_t
+ 
+šfo
+);
+
+43 #–ià
+defšed
+(
+ESP8266
+)
+
+44 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeDiscÚÃùedHªdËr
+;
+
+45 
+WiFiEv’tHªdËr
+ 
+	g_ÚS�tiÚModeGÙIPHªdËr
+;
+
+46 
+ÚS�tiÚModeDiscÚÃùed
+(cÚ¡ 
+WiFiEv’tS�tiÚModeDiscÚÃùed
+ & 
+ev’t
+);
+
+47 
+ÚS�tiÚModeGÙIP
+(cÚ¡ 
+WiFiEv’tS�tiÚModeGÙIP
+ & 
+ev’t
+);
+
+	@src/console.cpp
+
+19 
+	~"cÚsÞe.h
+"
+
+20 
+	~"em£¥.h
+"
+
+21 
+	~"v”siÚ.h
+"
+
+23 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+24 
+	~"‹¡/‹¡.h
+"
+
+27 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+29 
+	g¡d
+::
+sh¬ed_±r
+<
+Commªds
+> 
+EMSESPSh–l
+::
+commªds
+ = [] {
+
+30 
+¡d
+::
+sh¬ed_±r
+<
+Commªds
+> 
+commªds
+ = std::
+make_sh¬ed
+<Commands>();
+
+31  
+	gcommªds
+;
+
+34 
+	g¡d
+::
+sh¬ed_±r
+<
+EMSESPSh–l
+> 
+sh–l
+;
+
+36 
+	g¡d
+::
+veùÜ
+<
+boÞ
+> 
+EMSESPSŒ—mCÚsÞe
+::
+±ys_
+;
+
+38 #iâdeà
+EMSESP_STANDALONE
+
+
+39 
+	guuid
+::
+‹Ê‘
+::
+T–ÃtS”viû
+ 
+‹Ê‘_
+([](
+SŒ—m
+ & 
+¡»am
+, cÚ¡ 
+IPAdd»ss
+ & 
+addr
+, 
+ušt16_t
+ 
+pÜt
+è-> 
+¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Sh–l
+> {
+
+40  
+¡d
+::
+make_sh¬ed
+<
+EMSESPSŒ—mCÚsÞe
+>(
+¡»am
+, 
+addr
+, 
+pÜt
+);
+
+44 
+	gEMSESPSh–l
+::
+EMSESPSh–l
+()
+
+45 : 
+Sh–l
+() {
+
+48 
+EMSESPSh–l
+::
+¡¬‹d
+() {
+
+49 
+logg”
+().
+log
+(
+LogLev–
+::
+INFO
+, 
+LogFacž™y
+::
+CONSOLE
+, 
+F
+("U£¸£ssiÚ o³Ãd oÀcÚsÞ�%s"), 
+cÚsÞe_Çme
+().
+c_¡r
+());
+
+52 
+	gEMSESPSh–l
+::
+¡Ý³d
+() {
+
+53 ià(
+has_æags
+(
+CommªdFÏgs
+::
+ADMIN
+)) {
+
+54 
+logg”
+().
+log
+(
+LogLev–
+::
+INFO
+, 
+LogFacž™y
+::
+AUTH
+, 
+F
+("Admš sessiÚ clo£d oÀcÚsÞ�%s"), 
+cÚsÞe_Çme
+().
+c_¡r
+());
+
+56 
+logg”
+().
+log
+(
+LogLev–
+::
+INFO
+, 
+LogFacž™y
+::
+CONSOLE
+, 
+F
+("U£¸£ssiÚ clo£d oÀcÚsÞ�%s"), 
+cÚsÞe_Çme
+().
+c_¡r
+());
+
+59 
+	gcommªds
+->
+»move_®l_commªds
+();
+
+61 
+	gcÚsÞe_commªds_lßded_
+ = 
+çl£
+;
+
+66 
+	gEMSESPSh–l
+::
+di¥Ïy_bªÃr
+() {
+
+67 
+´šŽn
+();
+
+68 
+´štæn
+(
+F
+("â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”�"));
+
+69 
+´štæn
+(
+F
+("â”‚ %sEMS-ESP v”siÚ %-10s%  â”‚"), 
+COLOR_BOLD_ON
+, 
+EMSESP_APP_VERSION
+, 
+COLOR_BOLD_OFF
+);
+
+70 
+´štæn
+(
+F
+("â”‚ %s%sh‰ps://g™hub.com/´oddy/EMS-ESP%  â”‚"), 
+COLOR_BRIGHT_GREEN
+, 
+COLOR_UNDERLINE
+, 
+COLOR_RESET
+);
+
+71 
+´štæn
+(
+F
+("â”‚ â”‚"));
+
+72 
+´štæn
+(
+F
+("â”‚�y³ %sh–p% tØshow‡važabË commªd  â”‚"), 
+COLOR_UNDERLINE
+, 
+COLOR_RESET
+);
+
+73 
+´štæn
+(
+F
+("â””â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜"));
+
+74 
+´šŽn
+();
+
+77 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+»ad
+([&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+è{ 
+cÚsÞe_ho¡Çme_
+ = wifiS‘tšgs.
+ho¡Çme
+.
+c_¡r
+(); });
+
+79 ià(
+	gcÚsÞe_ho¡Çme_
+.
+em±y
+()) {
+
+80 
+	gcÚsÞe_ho¡Çme_
+.
+»size
+(16, '\0');
+
+81 #ià
+defšed
+(
+ESP8266
+)
+
+82 
+¢´štf_P
+(&
+cÚsÞe_ho¡Çme_
+[0], cÚsÞe_ho¡Çme_.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("esp8266"));
+
+84 
+¢´štf_P
+(&
+cÚsÞe_ho¡Çme_
+[0], cÚsÞe_ho¡Çme_.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("esp32"));
+
+89 
+add_cÚsÞe_commªds
+();
+
+92 
+	gem£¥
+::
+EMSESP
+::
+w©ch_id
+(
+WATCH_ID_NONE
+);
+
+93 #ià
+defšed
+(
+EMSESP_STANDALONE
+)
+
+94 
+	gem£¥
+::
+EMSESP
+::
+w©ch
+(EMSESP::
+WATCH_ON
+);
+
+96 
+	gem£¥
+::
+EMSESP
+::
+w©ch
+(EMSESP::
+WATCH_OFF
+);
+
+102 
+	gEMSESPSh–l
+::
+add_cÚsÞe_commªds
+() {
+
+105 ià(
+cÚsÞe_commªds_lßded_
+) {
+
+111 
+	gcommªds
+->
+»move_®l_commªds
+();
+
+113 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+114 
+CommªdFÏgs
+::
+USER
+,
+
+115 
+æash_¡ršg_veùÜ
+{
+F_
+(
+ãtch
+)},
+
+116 [&](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+117 
+sh–l
+.
+´štæn
+(
+F
+("Requesting data from EMS devices"));
+
+118 
+EMSESP
+::
+ãtch_deviû_v®ues
+();
+
+121 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+122 
+CommªdFÏgs
+::
+USER
+,
+
+123 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+)},
+
+124 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+125 
+sh–l
+.
+´štæn
+(
+F
+("%s%sEMS-ESP v”siÚ %s%s"), 
+COLOR_BRIGHT_GREEN
+, 
+COLOR_BOLD_ON
+, 
+EMSESP_APP_VERSION
+, 
+COLOR_RESET
+);
+
+126 
+sh–l
+.
+´šŽn
+();
+
+127 
+EMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+128 
+EMSESP
+::
+show_£nsÜ_v®ues
+(
+sh–l
+);
+
+131 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+132 
+CommªdFÏgs
+::
+USER
+,
+
+133 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+), F_(
+deviûs
+)},
+
+134 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))è{ 
+EMSESP
+::
+show_deviûs
+(shell); });
+
+137 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+138 
+CommªdFÏgs
+::
+USER
+,
+
+139 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+), F_(
+ems
+)},
+
+140 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))è{ 
+EMSESP
+::
+show_ems
+(shell); });
+
+142 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+143 
+CommªdFÏgs
+::
+USER
+,
+
+144 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+), F_(
+v®ues
+)},
+
+145 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))è{ 
+EMSESP
+::
+show_deviû_v®ues
+(shell); });
+
+147 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+148 
+CommªdFÏgs
+::
+USER
+,
+
+149 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+), F_(
+mq‰
+)},
+
+150 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))è{ 
+Mq‰
+::
+show_mq‰
+(shell); });
+
+152 
+	gcommªds
+->
+add_commªd
+(
+
+153 
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+154 
+CommªdFÏgs
+::
+ADMIN
+,
+
+155 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+), F_(
+bus_id
+)},
+
+156 
+æash_¡ršg_veùÜ
+{
+F_
+(
+deviûid_mªd©Üy
+)},
+
+157 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+158 
+ušt8_t
+ 
+deviû_id
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+());
+
+159 ià((
+deviû_id
+ == 0x0B) || (device_id == 0x0D) || (device_id == 0x0A) || (device_id == 0x0F) || (device_id == 0x12)) {
+
+160 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+upd©e
+(
+
+161 [&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+162 
+£‰šgs
+.
+ems_bus_id
+ = 
+deviû_id
+;
+
+163 
+sh–l
+.
+´štæn
+(
+F_
+(
+bus_id_fmt
+), 
+£‰šgs
+.
+ems_bus_id
+);
+
+164  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+168 
+sh–l
+.
+´šŽn
+(
+F
+("Must be 0B, 0D, 0A, 0F or 12"));
+
+171 [](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ __attribute__((unused))) -> const std::vector<std::string> {
+
+172  
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+>{
+
+173 
+»ad_æash_¡ršg
+(
+F
+("0B")),
+
+174 
+»ad_æash_¡ršg
+(
+F
+("0D")),
+
+175 
+»ad_æash_¡ršg
+(
+F
+("0A")),
+
+176 
+»ad_æash_¡ršg
+(
+F
+("0F")),
+
+177 
+»ad_æash_¡ršg
+(
+F
+("12")),
+
+182 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+183 
+CommªdFÏgs
+::
+ADMIN
+,
+
+184 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+), F_(
+tx_mode
+)},
+
+185 
+æash_¡ršg_veùÜ
+{
+F_
+(
+n_mªd©Üy
+)},
+
+186 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+187 
+ušt8_t
+ 
+tx_mode
+ = 
+¡d
+::
+¡¹Þ
+(
+¬gum’ts
+[0].
+c_¡r
+(), 
+nuÎ±r
+, 10);
+
+189 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+upd©e
+(
+
+190 [&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+191 
+£‰šgs
+.
+tx_mode
+ =�x_mode;
+
+192 
+sh–l
+.
+´štæn
+(
+F_
+(
+tx_mode_fmt
+), 
+£‰šgs
+.
+tx_mode
+);
+
+193  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+198 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+199 
+CommªdFÏgs
+::
+ADMIN
+,
+
+200 
+æash_¡ršg_veùÜ
+{
+F_
+(
+sÿn
+), F_(
+deviûs
+)},
+
+201 
+æash_¡ršg_veùÜ
+{
+F_
+(
+d“p_ÝtiÚ®
+)},
+
+202 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+203 ià(
+¬gum’ts
+.
+size
+() == 0) {
+
+204 
+EMSESP
+::
+sÿn_deviûs
+();
+
+206 
+sh–l
+.
+´štæn
+(
+F
+("Performing‡ deep scan..."));
+
+207 
+EMSESP
+::
+þ—r_®l_deviûs
+();
+
+208 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> 
+Deviû_Ids
+;
+
+210 
+Deviû_Ids
+.
+push_back
+(0x08);
+
+211 
+Deviû_Ids
+.
+push_back
+(0x38);
+
+212 
+Deviû_Ids
+.
+push_back
+(0x30);
+
+213 
+Deviû_Ids
+.
+push_back
+(0x09);
+
+214 
+Deviû_Ids
+.
+push_back
+(0x02);
+
+215 
+Deviû_Ids
+.
+push_back
+(0x48);
+
+216 
+Deviû_Ids
+.
+push_back
+(0x20);
+
+217 
+Deviû_Ids
+.
+push_back
+(0x21);
+
+218 
+Deviû_Ids
+.
+push_back
+(0x22);
+
+219 
+Deviû_Ids
+.
+push_back
+(0x23);
+
+220 
+Deviû_Ids
+.
+push_back
+(0x28);
+
+221 
+Deviû_Ids
+.
+push_back
+(0x29);
+
+222 
+Deviû_Ids
+.
+push_back
+(0x10);
+
+223 
+Deviû_Ids
+.
+push_back
+(0x17);
+
+224 
+Deviû_Ids
+.
+push_back
+(0x18);
+
+225 
+Deviû_Ids
+.
+push_back
+(0x19);
+
+226 
+Deviû_Ids
+.
+push_back
+(0x1A);
+
+227 
+Deviû_Ids
+.
+push_back
+(0x1B);
+
+228 
+Deviû_Ids
+.
+push_back
+(0x11);
+
+231 cÚ¡ 
+ušt8_t
+ 
+deviû_id
+ : 
+Deviû_Ids
+) {
+
+232 
+EMSESP
+::
+£nd_»ad_»que¡
+(
+EMSdeviû
+::
+EMS_TYPE_VERSION
+, 
+deviû_id
+);
+
+237 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+238 
+CommªdFÏgs
+::
+USER
+,
+
+239 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+)},
+
+240 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+241 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+242 
+sh–l
+.
+´štæn
+(
+F_
+(
+tx_mode_fmt
+), 
+£‰šgs
+.
+tx_mode
+);
+
+243 
+sh–l
+.
+´štæn
+(
+F_
+(
+bus_id_fmt
+), 
+£‰šgs
+.
+ems_bus_id
+);
+
+247 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+248 
+CommªdFÏgs
+::
+ADMIN
+,
+
+249 
+æash_¡ršg_veùÜ
+{
+F_
+(
+»ad
+)},
+
+250 
+æash_¡ršg_veùÜ
+{
+F_
+(
+deviûid_mªd©Üy
+), F_(
+ty³id_mªd©Üy
+)},
+
+251 [=](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+252 
+ušt8_t
+ 
+deviû_id
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+());
+
+253 
+ušt16_t
+ 
+ty³_id
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+.
+back
+().
+c_¡r
+());
+
+254 
+EMSESP
+::
+£t_»ad_id
+(
+ty³_id
+);
+
+255 
+EMSESP
+::
+£nd_»ad_»que¡
+(
+ty³_id
+, 
+deviû_id
+);
+
+263 
+	gcommªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+264 
+CommªdFÏgs
+::
+USER
+,
+
+265 
+æash_¡ršg_veùÜ
+{
+F_
+(
+sy¡em
+)},
+
+266 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+267 
+Sy¡em
+::
+cÚsÞe_commªds
+(
+sh–l
+, 
+Sh–lCÚ‹xt
+::
+SYSTEM
+);
+
+272 
+	gEMSESP
+::
+add_cÚ‹xt_m’us
+();
+
+274 
+	gCÚsÞe
+::
+lßd_¡ªd¬d_commªds
+(
+Sh–lCÚ‹xt
+::
+MAIN
+);
+
+276 
+	gcÚsÞe_commªds_lßded_
+ = 
+Œue
+;
+
+279 
+	g¡d
+::
+¡ršg
+ 
+EMSESPSh–l
+::
+ho¡Çme_‹xt
+() {
+
+280  
+cÚsÞe_ho¡Çme_
+;
+
+284 
+boÞ
+ 
+	gEMSESPSh–l
+::
+ex™_cÚ‹xt
+() {
+
+285 
+cu¼’t_cÚ‹xt
+ = 
+cÚ‹xt
+();
+
+286 
+	gcommªds
+->
+»move_cÚ‹xt_commªds
+(
+cu¼’t_cÚ‹xt
+);
+
+288 ià(
+	gcu¼’t_cÚ‹xt
+ =ð
+Sh–lCÚ‹xt
+::
+MAIN
+) {
+
+289 
+Sh–l
+::
+¡Ý
+();
+
+290  
+	gŒue
+;
+
+292  
+	gSh–l
+::
+ex™_cÚ‹xt
+();
+
+296 
+	gCÚsÞe
+::
+’‹r_cu¡om_cÚ‹xt
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+) {
+
+297 
+lßd_¡ªd¬d_commªds
+(
+cÚ‹xt
+);
+
+300 ià(
+	gcÚ‹xt
+ !ð
+Sh–lCÚ‹xt
+::
+MAIN
+) {
+
+301 
+sh–l
+.
+’‹r_cÚ‹xt
+(
+cÚ‹xt
+);
+
+306 
+	gCÚsÞe
+::
+lßd_¡ªd¬d_commªds
+(
+cÚ‹xt
+) {
+
+307 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+308 
+EMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+cÚ‹xt
+,
+
+309 
+CommªdFÏgs
+::
+USER
+,
+
+310 
+æash_¡ršg_veùÜ
+{
+F_
+(
+‹¡
+)},
+
+311 
+æash_¡ršg_veùÜ
+{
+F_
+(
+Çme_ÝtiÚ®
+)},
+
+312 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+313 ià(
+¬gum’ts
+.
+size
+() == 0) {
+
+314 
+Te¡
+::
+run_‹¡
+(
+sh–l
+, "default");
+
+316 
+Te¡
+::
+run_‹¡
+(
+sh–l
+, 
+¬gum’ts
+.
+äÚt
+());
+
+321 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+
+322 
+cÚ‹xt
+,
+
+323 
+CommªdFÏgs
+::
+USER
+,
+
+324 
+æash_¡ršg_veùÜ
+{
+F_
+(
+log
+)},
+
+325 
+æash_¡ršg_veùÜ
+{
+F_
+(
+log_Ëv–_ÝtiÚ®
+)},
+
+326 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+327 ià(!
+¬gum’ts
+.
+em±y
+()) {
+
+328 
+uuid
+::
+log
+::
+Lev–
+ 
+Ëv–
+;
+
+329 ià(
+uuid
+::
+log
+::
+·r£_Ëv–_low”ÿ£
+(
+¬gum’ts
+[0], 
+Ëv–
+)) {
+
+330 
+sh–l
+.
+log_Ëv–
+(
+Ëv–
+);
+
+332 
+sh–l
+.
+´štæn
+(
+F_
+(
+šv®id_log_Ëv–
+));
+
+336 
+sh–l
+.
+´št
+(
+F
+("levels: "));
+
+337 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+v
+ = 
+uuid
+::
+log
+::
+Ëv–s_low”ÿ£
+();
+
+338 
+size_t
+ 
+i
+ = 
+v
+.
+size
+();
+
+339 
+i
+--) {
+
+340 
+sh–l
+.
+´štf
+(
+v
+[
+i
+].
+c_¡r
+());
+
+341 
+sh–l
+.
+´št
+(' ');
+
+343 
+sh–l
+.
+´šŽn
+();
+
+345 
+sh–l
+.
+´štæn
+(
+F_
+(
+log_Ëv–_fmt
+), 
+uuid
+::
+log
+::
+fÜm©_Ëv–_low”ÿ£
+(sh–l.
+log_Ëv–
+()));
+
+347 [](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ __attribute__((unused))) -> std::vector<std::string> {
+
+348  
+uuid
+::
+log
+::
+Ëv–s_low”ÿ£
+();
+
+351 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+cÚ‹xt
+,
+
+352 
+CommªdFÏgs
+::
+USER
+,
+
+353 
+æash_¡ršg_veùÜ
+{
+F_
+(
+h–p
+)},
+
+354 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+355 
+sh–l
+.
+´št_®l_avažabË_commªds
+();
+
+358 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+cÚ‹xt
+,
+
+359 
+CommªdFÏgs
+::
+USER
+,
+
+360 
+æash_¡ršg_veùÜ
+{
+F_
+(
+ex™
+)},
+
+361 [=](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+363 
+EMSESPSh–l
+::
+commªds
+->
+»move_cÚ‹xt_commªds
+(
+cÚ‹xt
+);
+
+364 
+sh–l
+.
+ex™_cÚ‹xt
+();
+
+367 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+cÚ‹xt
+,
+
+368 
+CommªdFÏgs
+::
+USER
+,
+
+369 
+æash_¡ršg_veùÜ
+{
+F_
+(
+su
+)},
+
+370 [=](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+371 autØ
+become_admš
+ = [](
+Sh–l
+ & 
+sh–l
+) {
+
+372 
+sh–l
+.
+logg”
+().
+log
+(
+LogLev–
+::
+NOTICE
+, 
+LogFacž™y
+::
+AUTH
+, 
+F
+("Admin session opened on console"));
+
+373 
+sh–l
+.
+add_æags
+(
+CommªdFÏgs
+::
+ADMIN
+);
+
+376 ià(
+sh–l
+.
+has_æags
+(
+CommªdFÏgs
+::
+LOCAL
+)) {
+
+377 
+become_admš
+(
+sh–l
+);
+
+379 
+sh–l
+.
+’‹r_·sswÜd
+(
+F_
+(
+·sswÜd_´om±
+), [=](
+Sh–l
+ & sh–l, 
+boÞ
+ 
+com¶‘ed
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·sswÜd
+) {
+
+380 ià(
+com¶‘ed
+) {
+
+381 
+ušt64_t
+ 
+now
+ = 
+uuid
+::
+g‘_u±ime_ms
+();
+
+383 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yS‘tšgsS”viû
+()->
+»ad
+([&](
+Secur™yS‘tšgs
+ & 
+£cur™yS‘tšgs
+) {
+
+384 ià(
+£cur™yS‘tšgs
+.
+jwtSeü‘
+.
+equ®s
+(
+·sswÜd
+.
+c_¡r
+())) {
+
+385 
+become_admš
+(
+sh–l
+);
+
+387 
+sh–l
+.
+d–ay_uÁž
+(
+now
+ + 
+INVALID_PASSWORD_DELAY_MS
+, [](
+Sh–l
+ & shell) {
+
+388 
+sh–l
+.
+logg”
+().
+log
+(
+LogLev–
+::
+NOTICE
+, 
+LogFacž™y
+::
+AUTH
+, 
+F
+("Invalid‡dmin…assword on console"));
+
+389 
+sh–l
+.
+´šŽn
+(
+F
+("su: incorrect…assword"));
+
+398 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+cÚ‹xt
+,
+
+399 
+CommªdFÏgs
+::
+ADMIN
+,
+
+400 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£nd
+), F_(
+‹Ëg¿m
+)},
+
+401 
+æash_¡ršg_veùÜ
+{
+F_
+(
+d©a_mªd©Üy
+)},
+
+402 [](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+403 
+EMSESP
+::
+£nd_¿w_‹Ëg¿m
+(
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+());
+
+406 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+cÚ‹xt
+,
+
+407 
+CommªdFÏgs
+::
+USER
+,
+
+408 
+æash_¡ršg_veùÜ
+{
+F_
+(
+w©ch
+)},
+
+409 
+æash_¡ršg_veùÜ
+{
+F_
+(
+w©ch_fÜm©_ÝtiÚ®
+), F_(
+w©chid_ÝtiÚ®
+)},
+
+410 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+411 
+ušt16_t
+ 
+w©ch_id
+ = 
+WATCH_ID_NONE
+;
+
+413 ià(!
+¬gum’ts
+.
+em±y
+()) {
+
+415 ià(
+¬gum’ts
+[0] =ð
+»ad_æash_¡ršg
+(
+F_
+(
+¿w
+))) {
+
+416 
+em£¥
+::
+EMSESP
+::
+w©ch
+(EMSESP::
+WATCH_RAW
+);
+
+417 } ià(
+¬gum’ts
+[0] =ð
+»ad_æash_¡ršg
+(
+F_
+(
+Ú
+))) {
+
+418 
+em£¥
+::
+EMSESP
+::
+w©ch
+(EMSESP::
+WATCH_ON
+);
+
+419 } ià(
+¬gum’ts
+[0] =ð
+»ad_æash_¡ršg
+(
+F_
+(
+off
+))) {
+
+420 
+em£¥
+::
+EMSESP
+::
+w©ch
+(EMSESP::
+WATCH_OFF
+);
+
+421 } ià(
+em£¥
+::
+EMSESP
+::
+w©ch
+(è=ðEMSESP::
+WATCH_OFF
+) {
+
+422 
+sh–l
+.
+´štæn
+(
+F_
+(
+šv®id_w©ch
+));
+
+425 
+w©ch_id
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+[0].
+c_¡r
+());
+
+428 ià(
+¬gum’ts
+.
+size
+() == 2) {
+
+430 
+w©ch_id
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+[1].
+c_¡r
+());
+
+433 
+em£¥
+::
+EMSESP
+::
+w©ch_id
+(watch_id);
+
+436 
+ušt8_t
+ 
+w©ch
+ = 
+em£¥
+::
+EMSESP
+::watch();
+
+437 ià(
+w©ch
+ =ð
+EMSESP
+::
+WATCH_OFF
+) {
+
+438 
+sh–l
+.
+´štæn
+(
+F
+("Watching�elegrams is off"));
+
+443 ià(!
+sh–l
+.
+logg”
+().
+’abËd
+(
+Lev–
+::
+NOTICE
+)) {
+
+444 
+sh–l
+.
+log_Ëv–
+(
+Lev–
+::
+NOTICE
+);
+
+447 ià(
+w©ch
+ =ð
+EMSESP
+::
+WATCH_ON
+) {
+
+448 
+sh–l
+.
+´štæn
+(
+F
+("Watching incoming�elegrams, displayed in decoded format"));
+
+450 
+sh–l
+.
+´štæn
+(
+F
+("Watching incoming�elegrams, displayed‡s„aw bytes"));
+
+453 
+w©ch_id
+ = 
+em£¥
+::
+EMSESP
+::watch_id();
+
+454 ià(
+w©ch_id
+ > 0x80) {
+
+455 
+sh–l
+.
+´štæn
+(
+F
+("Fž‹ršg oÆy�–eg¿m th© m©ch‡�–eg¿m�y³ oà0x%02X"), 
+w©ch_id
+);
+
+456 } ià(
+w©ch_id
+ !ð
+WATCH_ID_NONE
+) {
+
+457 
+sh–l
+.
+´štæn
+(
+F
+("Fž‹ršg oÆy�–eg¿m th© m©ch‡ deviû ID o¸‹Ëg¿m�y³ oà0x%02X"), 
+w©ch_id
+);
+
+463 
+	g¡d
+::
+¡ršg
+ 
+EMSESPSh–l
+::
+cÚ‹xt_‹xt
+() {
+
+464 
+¡©ic_ÿ¡
+<
+Sh–lCÚ‹xt
+>(
+cÚ‹xt
+())) {
+
+465 
+Sh–lCÚ‹xt
+::
+MAIN
+:
+
+466  
+¡d
+::
+¡ršg
+{'/'};
+
+468 
+	gSh–lCÚ‹xt
+::
+BOILER
+:
+
+469  
+¡d
+::
+¡ršg
+{"/boiler"};
+
+471 
+	gSh–lCÚ‹xt
+::
+SYSTEM
+:
+
+472  
+¡d
+::
+¡ršg
+{"/system"};
+
+474 
+	gSh–lCÚ‹xt
+::
+THERMOSTAT
+:
+
+475  
+¡d
+::
+¡ršg
+{"/thermostat"};
+
+478  
+¡d
+::
+¡ršg
+{};
+
+483 
+	g¡d
+::
+¡ršg
+ 
+EMSESPSh–l
+::
+´om±_suffix
+() {
+
+484 ià(
+has_æags
+(
+CommªdFÏgs
+::
+ADMIN
+)) {
+
+485  
+¡d
+::
+¡ršg
+{'#'};
+
+487  
+	g¡d
+::
+¡ršg
+{'$'};
+
+491 
+	gEMSESPSh–l
+::
+’d_of_ŒªsmissiÚ
+() {
+
+492 
+švoke_commªd
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+F_
+(
+ex™
+)));
+
+495 
+	gEMSESPSŒ—mCÚsÞe
+::
+EMSESPSŒ—mCÚsÞe
+(
+SŒ—m
+ & 
+¡»am
+, 
+boÞ
+ 
+loÿl
+)
+
+496 : 
+uuid
+::
+cÚsÞe
+::
+Sh–l
+(
+commªds
+, 
+Sh–lCÚ‹xt
+::
+MAIN
+, 
+loÿl
+ ? (
+CommªdFÏgs
+::
+USER
+ | CommªdFÏgs::
+LOCAL
+) : CommandFlags::USER)
+
+497 , 
+	guuid
+::
+cÚsÞe
+::
+SŒ—mCÚsÞe
+(
+¡»am
+)
+
+498 , 
+EMSESPSh–l
+()
+
+499 , 
+Çme_
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+F
+("Serial")))
+
+500 , 
+±y_
+(
+¡d
+::
+num”ic_lim™s
+<
+size_t
+>::
+max
+())
+
+501 , 
+addr_
+()
+
+502 , 
+pÜt_
+(0) {
+
+505 
+	gEMSESPSŒ—mCÚsÞe
+::
+EMSESPSŒ—mCÚsÞe
+(
+SŒ—m
+ & 
+¡»am
+, cÚ¡ 
+IPAdd»ss
+ & 
+addr
+, 
+ušt16_t
+ 
+pÜt
+)
+
+506 : 
+uuid
+::
+cÚsÞe
+::
+Sh–l
+(
+commªds
+, 
+Sh–lCÚ‹xt
+::
+MAIN
+, 
+CommªdFÏgs
+::
+USER
+)
+
+507 , 
+	guuid
+::
+cÚsÞe
+::
+SŒ—mCÚsÞe
+(
+¡»am
+)
+
+508 , 
+EMSESPSh–l
+()
+
+509 , 
+addr_
+(
+addr
+)
+
+510 , 
+pÜt_
+(
+pÜt
+) {
+
+511 
+	g¡d
+::
+veùÜ
+<> 
+‹xt
+(16);
+
+513 
+	g±y_
+ = 0;
+
+514 
+	g±y_
+ < 
+	g±ys_
+.
+size
+(è&&…tys_[
+±y_
+])
+
+515 
+	g±y_
+++;
+
+516 ià(
+	g±y_
+ =ð
+±ys_
+.
+size
+()) {
+
+517 
+±ys_
+.
+push_back
+(
+Œue
+);
+
+519 
+	g±ys_
+[
+±y_
+] = 
+Œue
+;
+
+522 
+¢´štf_P
+(
+‹xt
+.
+d©a
+(),�ext.
+size
+(), 
+PSTR
+("±y%u"), 
+±y_
+);
+
+523 
+	gÇme_
+ = 
+‹xt
+.
+d©a
+();
+
+524 #iâdeà
+EMSESP_STANDALONE
+
+
+525 
+logg”
+().
+šfo
+(
+F
+("AÎoÿ‹d cÚsÞ�% fÜ cÚÃùiÚ from [%s]:%u"), 
+Çme_
+.
+c_¡r
+(), 
+uuid
+::
+´š�bË_to_¡ršg
+(
+addr_
+).c_¡r(), 
+pÜt_
+);
+
+529 
+	gEMSESPSŒ—mCÚsÞe
+::~
+EMSESPSŒ—mCÚsÞe
+() {
+
+530 ià(
+±y_
+ !ð
+SIZE_MAX
+) {
+
+531 #iâdeà
+EMSESP_STANDALONE
+
+
+532 
+logg”
+().
+šfo
+(
+F
+("ShutdowÀcÚsÞ�% fÜ cÚÃùiÚ from [%s]:%u"), 
+Çme_
+.
+c_¡r
+(), 
+uuid
+::
+´š�bË_to_¡ršg
+(
+addr_
+).c_¡r(), 
+pÜt_
+);
+
+534 
+	g±ys_
+[
+±y_
+] = 
+çl£
+;
+
+535 
+	g±ys_
+.
+shršk_to_f™
+();
+
+537 
+	gEMSESPSh–l
+::
+commªds
+->
+»move_®l_commªds
+();
+
+541 
+	g¡d
+::
+¡ršg
+ 
+EMSESPSŒ—mCÚsÞe
+::
+cÚsÞe_Çme
+() {
+
+542  
+Çme_
+;
+
+547 
+	gCÚsÞe
+::
+¡¬t
+() {
+
+550 #ià
+defšed
+(
+ESP32
+è|| defšed(
+EMSESP_STANDALONE
+è|| defšed(
+EMSESP_FORCE_SERIAL
+)
+
+551 
+£rŸl_cÚsÞe_
+.
+begš
+(
+SERIAL_CONSOLE_BAUD_RATE
+);
+
+552 
+	g£rŸl_cÚsÞe_
+.
+´šŽn
+();
+
+554 
+	gsh–l
+ = 
+¡d
+::
+make_sh¬ed
+<
+EMSESPSŒ—mCÚsÞe
+>(
+£rŸl_cÚsÞe_
+, 
+	gŒue
+);
+
+555 
+	gsh–l
+->
+maximum_log_mes§ges
+(100);
+
+556 
+	gsh–l
+->
+¡¬t
+();
+
+559 #iâdeà
+ESP8266
+
+
+560 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+561 
+	gsh–l
+->
+log_Ëv–
+(
+uuid
+::
+log
+::
+Lev–
+::
+DEBUG
+);
+
+565 #ià
+defšed
+(
+EMSESP_FORCE_SERIAL
+)
+
+566 
+	gsh–l
+->
+log_Ëv–
+(
+uuid
+::
+log
+::
+Lev–
+::
+DEBUG
+);
+
+570 #ià
+defšed
+(
+EMSESP_STANDALONE
+)
+
+572 
+	gsh–l
+->
+add_æags
+(
+CommªdFÏgs
+::
+ADMIN
+);
+
+578 #iâdeà
+EMSESP_STANDALONE
+
+
+579 
+	g‹Ê‘_
+.
+¡¬t
+();
+
+580 
+	g‹Ê‘_
+.
+deçuÉ_wr™e_timeout
+(1000);
+
+588 
+	gCÚsÞe
+::
+loÝ
+() {
+
+589 
+uuid
+::
+loÝ
+();
+
+591 #iâdeà
+EMSESP_STANDALONE
+
+
+592 
+	g‹Ê‘_
+.
+loÝ
+();
+
+595 #ià
+defšed
+(
+ESP8266
+)
+
+596 ià(!
+	gEMSu¬t
+::
+£ndšg
+()) {
+
+597 
+Sh–l
+::
+loÝ_®l
+();
+
+600 
+	gSh–l
+::
+loÝ_®l
+();
+
+	@src/console.h
+
+19 #iâdeà
+EMSESP_CONSOLE_H
+
+
+20 
+	#EMSESP_CONSOLE_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+24 
+	~<¡ršg
+>
+
+25 
+	~<veùÜ
+>
+
+27 
+	~<uuid/cÚsÞe.h
+>
+
+28 
+	~<uuid/log.h
+>
+
+30 
+	~"h–³rs.h
+"
+
+31 
+	~"sy¡em.h
+"
+
+32 
+	~"mq‰.h
+"
+
+34 
+usšg
+ 
+	guuid
+::
+æash_¡ršg_veùÜ
+;
+
+35 
+usšg
+ 
+	guuid
+::
+»ad_æash_¡ršg
+;
+
+36 
+usšg
+ 
+	guuid
+::
+cÚsÞe
+::
+Commªds
+;
+
+37 
+usšg
+ 
+	guuid
+::
+cÚsÞe
+::
+Sh–l
+;
+
+38 
+usšg
+ 
+	guuid
+::
+log
+::
+Lev–
+;
+
+40 
+	#LOG_DEBUG
+(...è
+logg”_
+.
+	`debug
+(
+__VA_ARGS__
+)
+
+	)
+
+41 
+	#LOG_INFO
+(...è
+logg”_
+.
+	`šfo
+(
+__VA_ARGS__
+)
+
+	)
+
+42 
+	#LOG_TRACE
+(...è
+logg”_
+.
+	`Œaû
+(
+__VA_ARGS__
+)
+
+	)
+
+43 
+	#LOG_NOTICE
+(...è
+logg”_
+.
+	`nÙiû
+(
+__VA_ARGS__
+)
+
+	)
+
+44 
+	#LOG_WARNING
+(...è
+logg”_
+.
+	`w¬nšg
+(
+__VA_ARGS__
+)
+
+	)
+
+45 
+	#LOG_ERROR
+(...è
+logg”_
+.
+	`”r
+(
+__VA_ARGS__
+)
+
+	)
+
+48 
+	#MAKE_PSTR
+(
+¡ršg_Çme
+, 
+¡ršg_l™”®
+ècÚ¡ 
+__p¡r__
+##¡ršg_Çme[] 
+	`__©Œibu‹__
+((
+	`__®igÃd__
+(()))è
+PROGMEM
+ = sŒšg_l™”®;
+
+	)
+
+49 
+	#MAKE_PSTR_WORD
+(
+¡ršg_Çme
+è
+	`MAKE_PSTR
+(¡ršg_Çme, #¡ršg_Çme)
+
+	)
+
+50 
+	#F_
+(
+¡ršg_Çme
+è
+	`FPSTR
+(
+__p¡r__
+##¡ršg_Çme)
+
+	)
+
+54 
+	~"loÿË_EN.h
+"
+
+56 #ifdeà
+LOCAL
+
+
+57 #undeà
+LOCAL
+
+
+60 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gINVALID_PASSWORD_DELAY_MS
+ = 3000;
+
+62 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+64 
+usšg
+ 
+	gLogLev–
+ = ::
+uuid
+::
+log
+::
+Lev–
+;
+
+65 
+usšg
+ 
+	gLogFacž™y
+ = ::
+uuid
+::
+log
+::
+Facž™y
+;
+
+67 
+	gCommªdFÏgs
+ : 
+ušt8_t
+ {
+
+69 
+USER
+ = 0,
+
+70 
+	gADMIN
+ = (1 << 0),
+
+71 
+	gLOCAL
+ = (1 << 1)
+
+75 
+	gSh–lCÚ‹xt
+ : 
+ušt8_t
+ {
+
+77 
+MAIN
+ = 0,
+
+78 
+	gSYSTEM
+,
+
+79 
+	gBOILER
+,
+
+80 
+	gTHERMOSTAT
+,
+
+81 
+	gSOLAR
+,
+
+82 
+	gMIXING
+
+
+86 þas 
+	cEMSESPSh–l
+ : 
+vœtu®
+ 
+public
+ 
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ {
+
+87 
+public
+:
+
+88 ~
+EMSESPSh–l
+(è
+ov”ride
+ = ;
+
+90 
+vœtu®
+ 
+	g¡d
+::
+¡ršg
+ 
+cÚsÞe_Çme
+() = 0;
+
+92 
+	g¡d
+::
+sh¬ed_±r
+<
+uuid
+::
+cÚsÞe
+::
+Commªds
+> 
+commªds
+;
+
+93 
+	g¡d
+::
+sh¬ed_±r
+<
+EMSESPSh–l
+> 
+sh–l
+;
+
+95 
+	g´Ùeùed
+:
+
+96 
+EMSESPSh–l
+();
+
+99 
+¡¬‹d
+(è
+	gov”ride
+;
+
+100 
+¡Ý³d
+(è
+	gov”ride
+;
+
+101 
+di¥Ïy_bªÃr
+(è
+	gov”ride
+;
+
+102 
+	g¡d
+::
+¡ršg
+ 
+ho¡Çme_‹xt
+(è
+ov”ride
+;
+
+103 
+	g¡d
+::
+¡ršg
+ 
+cÚ‹xt_‹xt
+(è
+ov”ride
+;
+
+104 
+	g¡d
+::
+¡ršg
+ 
+´om±_suffix
+(è
+ov”ride
+;
+
+105 
+’d_of_ŒªsmissiÚ
+(è
+	gov”ride
+;
+
+106 
+boÞ
+ 
+ex™_cÚ‹xt
+(è
+	gov”ride
+;
+
+108 
+	g´iv©e
+:
+
+109 
+add_cÚsÞe_commªds
+();
+
+110 
+boÞ
+ 
+	gcÚsÞe_commªds_lßded_
+ = 
+çl£
+;
+
+111 
+	g¡d
+::
+¡ršg
+ 
+cÚsÞe_ho¡Çme_
+;
+
+114 
+þass
+ 
+	gEMSESPSŒ—mCÚsÞe
+ : 
+public
+ 
+uuid
+::
+cÚsÞe
+::
+SŒ—mCÚsÞe
+,…ubliø
+	gEMSESPSh–l
+ {
+
+115 
+	gpublic
+:
+
+116 
+EMSESPSŒ—mCÚsÞe
+(
+SŒ—m
+ & 
+¡»am
+, 
+boÞ
+ 
+loÿl
+);
+
+117 
+EMSESPSŒ—mCÚsÞe
+(
+SŒ—m
+ & 
+¡»am
+, cÚ¡ 
+IPAdd»ss
+ & 
+addr
+, 
+ušt16_t
+ 
+pÜt
+);
+
+118 ~
+EMSESPSŒ—mCÚsÞe
+(è
+	gov”ride
+;
+
+120 
+	g¡d
+::
+¡ršg
+ 
+cÚsÞe_Çme
+(è
+ov”ride
+;
+
+122 
+	g´iv©e
+:
+
+123 
+¡d
+::
+veùÜ
+<
+boÞ
+> 
+±ys_
+;
+
+125 
+	g¡d
+::
+¡ršg
+ 
+Çme_
+;
+
+126 
+size_t
+ 
+	g±y_
+;
+
+127 
+IPAdd»ss
+ 
+	gaddr_
+;
+
+128 
+ušt16_t
+ 
+	gpÜt_
+;
+
+131 þas 
+	cCÚsÞe
+ {
+
+132 
+	gpublic
+:
+
+133 
+loÝ
+();
+
+134 
+¡¬t
+();
+
+136 
+	guuid
+::
+log
+::
+Lev–
+ 
+log_Ëv–
+();
+
+138 
+’‹r_cu¡om_cÚ‹xt
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+);
+
+139 
+lßd_¡ªd¬d_commªds
+(
+cÚ‹xt
+);
+
+141 
+	g´iv©e
+:
+
+142 
+cÚ¡ex´
+ 
+SERIAL_CONSOLE_BAUD_RATE
+ = 115200;
+
+143 
+cÚ¡ex´
+‡utØ& 
+	g£rŸl_cÚsÞe_
+ = 
+S”Ÿl
+;
+
+	@src/device_library.h
+
+27 { 64, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("BK13/BK15/Sm¬Žše/GB1x2"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+28 { 72, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("GB125/MC10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+29 { 84, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("Logamax Plu GB022"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+30 { 95, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("CÚd’ 2500/Logamax/Logom©ic/C”­u¸TÝ/G»’¡¬/G’”iøHT3"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+31 {115, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("TÝlše/GB162"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+32 {122, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("PrÞše"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+33 {123, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("GBx72/T»ndlše/C”­ur/G»’¡¬ Si/27i"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+34 {131, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("GB212"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+35 {133, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("GB125/Logam©iøMC110"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+36 {170, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("LogªØGB212"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+37 {172, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("Envžše/Com´es 6000AW"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+38 {195, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("CÚd’ 5000i"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+39 {203, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("Logamax U122/C”­ur"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+40 {208, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("Logamax Plus/GB192/CÚd’ GC9000"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+41 {234, 
+	gDeviûTy³
+::
+BOILER
+, 
+F
+("Logamax Plu GB122"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+44 { 68, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC10/RFM20"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+45 { 89, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC10 GB142"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+46 { 95, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("HT3"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+47 {114, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+48 {125, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC25"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+49 {152, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("CÚŒÞËr"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+50 {169, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC40"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+51 {190, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+52 {194, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+53 {207, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("S’£ II/CS200"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+54 {209, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("ErP"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+55 {218, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("M200/RFM200"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+56 {224, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("9000i"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+57 {230, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("BC Ba£"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+58 {241, 
+	gDeviûTy³
+::
+CONTROLLER
+, 
+F
+("CÚd’ 5000i"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+61 {202, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("Logam©iøTC100/Modulš�Easy"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_EASY
+ | 
+DeviûFÏgs
+::
+EMS_DEVICE_FLAG_NO_WRITE
+},
+
+62 {203, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("EasyCÚŒÞ CT200"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_EASY
+ | 
+DeviûFÏgs
+::
+EMS_DEVICE_FLAG_NO_WRITE
+},
+
+65 { 67, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC30"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC30_1
+},
+
+66 { 77, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC20/Modulš�300"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC20
+},
+
+67 { 78, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("Modulš�400"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC30
+},
+
+68 { 79, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC10/Modulš�100"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC10
+},
+
+69 { 80, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("Modulš�200"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC10
+},
+
+70 { 86, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC35"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC35
+},
+
+71 { 93, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC20RF"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC20
+},
+
+72 { 94, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RFM20 RemÙe"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+73 {157, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC200/CW100"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC100
+},
+
+74 {158, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC300/RC310/Modulš�3000/CW400/S’£ II"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC300
+},
+
+75 {165, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("RC100/Modulš�1000/1010"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC100
+},
+
+78 { 76, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("ES73"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC35
+},
+
+79 {113, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("ES72/RC20"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_RC20_2
+},
+
+82 {105, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FW100"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+},
+
+83 {106, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FW200"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+},
+
+84 {107, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FR100"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+ | 
+DeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS_2
+},
+
+85 {108, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FR110"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+ | 
+DeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS_2
+},
+
+86 {111, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FR10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+},
+
+87 {147, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FR50"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+},
+
+88 {191, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FR120"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+},
+
+89 {192, 
+	gDeviûTy³
+::
+THERMOSTAT
+, 
+F
+("FW120"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_JUNKERS
+},
+
+92 { 73, 
+	gDeviûTy³
+::
+SOLAR
+, 
+F
+("SM10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_SM10
+},
+
+93 {101, 
+	gDeviûTy³
+::
+SOLAR
+, 
+F
+("ISM1"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_ISM
+},
+
+94 {162, 
+	gDeviûTy³
+::
+SOLAR
+, 
+F
+("SM50"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_SM100
+},
+
+95 {163, 
+	gDeviûTy³
+::
+SOLAR
+, 
+F
+("SM100/MS100"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_SM100
+},
+
+96 {164, 
+	gDeviûTy³
+::
+SOLAR
+, 
+F
+("SM200/MS200"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_SM100
+},
+
+99 { 69, 
+	gDeviûTy³
+::
+MIXING
+, 
+F
+("MM10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_MM10
+},
+
+100 {102, 
+	gDeviûTy³
+::
+MIXING
+, 
+F
+("IPM"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_IPM
+},
+
+101 {159, 
+	gDeviûTy³
+::
+MIXING
+, 
+F
+("MM50"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_MMPLUS
+},
+
+102 {160, 
+	gDeviûTy³
+::
+MIXING
+, 
+F
+("MM100"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_MMPLUS
+},
+
+103 {161, 
+	gDeviûTy³
+::
+MIXING
+, 
+F
+("MM200"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_MMPLUS
+},
+
+106 {200, 
+	gDeviûTy³
+::
+HEATPUMP
+, 
+F
+("HP ModuË"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+107 {252, 
+	gDeviûTy³
+::
+HEATPUMP
+, 
+F
+("HP ModuË"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+110 {171, 
+	gDeviûTy³
+::
+CONNECT
+, 
+F
+("O³nTh”m CÚv”‹r"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+111 {205, 
+	gDeviûTy³
+::
+CONNECT
+, 
+F
+("Modulš�Easy CÚÃù"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+112 {206, 
+	gDeviûTy³
+::
+CONNECT
+, 
+F
+("Easy CÚÃù"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+115 { 71, 
+	gDeviûTy³
+::
+SWITCH
+, 
+F
+("WM10"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+},
+
+118 {189, 
+	gDeviûTy³
+::
+GATEWAY
+, 
+F
+("KM200/MB LAN 2"), 
+	gDeviûFÏgs
+::
+EMS_DEVICE_FLAG_NONE
+}
+
+	@src/devices/boiler.cpp
+
+19 
+	~"bož”.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+Bož”
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+BOILER
+)
+
+25 
+uuid
+::
+log
+::
+Logg”
+ 
+Bož”
+::
+logg”_
+{
+F_
+(
+bož”
+), 
+	guuid
+::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gBož”
+::
+Bož”
+(
+ušt8_t
+ 
+deviû_ty³
+, 
+št8_t
+ 
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+29 
+	gthis
+->
+»£rve_mem
+(20);
+
+31 
+LOG_DEBUG
+(
+F
+("Addšg‚ew Bož” w™h deviû ID 0x%02X"), 
+deviû_id
+);
+
+34 
+»gi¡”_‹Ëg¿m_ty³
+(0x10, 
+F
+("UBAE¼ÜMes§ge1"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAE¼ÜMes§ge
+(t); });
+
+35 
+»gi¡”_‹Ëg¿m_ty³
+(0x11, 
+F
+("UBAE¼ÜMes§ge2"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAE¼ÜMes§ge
+(t); });
+
+36 
+»gi¡”_‹Ëg¿m_ty³
+(0x18, 
+F
+("UBAMÚ™ÜFa¡"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMÚ™ÜFa¡
+(t); });
+
+37 
+»gi¡”_‹Ëg¿m_ty³
+(0x19, 
+F
+("UBAMÚ™ÜSlow"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMÚ™ÜSlow
+(t); });
+
+38 
+»gi¡”_‹Ëg¿m_ty³
+(0x34, 
+F
+("UBAMÚ™ÜWW"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMÚ™ÜWW
+(t); });
+
+39 
+»gi¡”_‹Ëg¿m_ty³
+(0x1C, 
+F
+("UBAMaš‹ÇnûS�tus"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMaš‹ÇnûS�tus
+(t); });
+
+40 
+»gi¡”_‹Ëg¿m_ty³
+(0x2A, 
+F
+("MC10S�tus"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_MC10S�tus
+(t); });
+
+41 
+»gi¡”_‹Ëg¿m_ty³
+(0x33, 
+F
+("UBAP¬am‘”WW"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAP¬am‘”WW
+(t); });
+
+42 
+»gi¡”_‹Ëg¿m_ty³
+(0x14, 
+F
+("UBATÙ®U±ime"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBATÙ®U±ime
+(t); });
+
+43 
+»gi¡”_‹Ëg¿m_ty³
+(0x35, 
+F
+("UBAFÏgs"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAFÏgs
+(t); });
+
+44 
+»gi¡”_‹Ëg¿m_ty³
+(0x15, 
+F
+("UBAMaš‹ÇnûD©a"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMaš‹ÇnûD©a
+(t); });
+
+45 
+»gi¡”_‹Ëg¿m_ty³
+(0x16, 
+F
+("UBAP¬am‘”s"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAP¬am‘”s
+(t); });
+
+46 
+»gi¡”_‹Ëg¿m_ty³
+(0x1A, 
+F
+("UBAS‘Pošts"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAS‘Pošts
+(t); });
+
+47 
+»gi¡”_‹Ëg¿m_ty³
+(0xD1, 
+F
+("UBAOutdoÜTemp"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAOutdoÜTemp
+(t); });
+
+48 
+»gi¡”_‹Ëg¿m_ty³
+(0xE3, 
+F
+("UBAMÚ™ÜSlowPlus"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMÚ™ÜSlowPlus2
+(t); });
+
+49 
+»gi¡”_‹Ëg¿m_ty³
+(0xE4, 
+F
+("UBAMÚ™ÜFa¡Plus"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMÚ™ÜFa¡Plus
+(t); });
+
+50 
+»gi¡”_‹Ëg¿m_ty³
+(0xE5, 
+F
+("UBAMÚ™ÜSlowPlus"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBAMÚ™ÜSlowPlus
+(t); });
+
+51 
+»gi¡”_‹Ëg¿m_ty³
+(0xE9, 
+F
+("UBADHWS�tus"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_UBADHWS�tus
+(t); });
+
+54 
+»gi¡”_mq‰_cmd
+(
+F
+("comfÜt"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_w¬mw©”_mode
+(value, id); });
+
+55 
+»gi¡”_mq‰_cmd
+(
+F
+("wwaùiv©ed"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_w¬mw©”_aùiv©ed
+(value, id); });
+
+56 
+»gi¡”_mq‰_cmd
+(
+F
+("ww�·ùiv©ed"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_�pw¬mw©”_aùiv©ed
+(value, id); });
+
+57 
+»gi¡”_mq‰_cmd
+(
+F
+("wwÚ‘ime"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_w¬mw©”_Ú‘ime
+(value, id); });
+
+58 
+»gi¡”_mq‰_cmd
+(
+F
+("wwcœcuÏtiÚ"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_w¬mw©”_cœcuÏtiÚ
+(value, id); });
+
+59 
+»gi¡”_mq‰_cmd
+(
+F
+("æow‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_æow_‹mp
+(value, id); });
+
+60 
+»gi¡”_mq‰_cmd
+(
+F
+("ww‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_w¬mw©”_‹mp
+(value, id); });
+
+61 
+»gi¡”_mq‰_cmd
+(
+F
+("buºmaxpow”"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_max_pow”
+(value, id); });
+
+62 
+»gi¡”_mq‰_cmd
+(
+F
+("buºmšpow”"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_mš_pow”
+(value, id); });
+
+63 
+»gi¡”_mq‰_cmd
+(
+F
+("božhy¡Ú"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_hy¡_Ú
+(value, id); });
+
+64 
+»gi¡”_mq‰_cmd
+(
+F
+("božhy¡off"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_hy¡_off
+(value, id); });
+
+65 
+»gi¡”_mq‰_cmd
+(
+F
+("buº³riod"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_buº_³riod
+(value, id); });
+
+66 
+»gi¡”_mq‰_cmd
+(
+F
+("pumpd–ay"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_pump_d–ay
+(value, id); });
+
+68 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰S‘tšgsS”viû
+()->
+»ad
+([&](
+Mq‰S‘tšgs
+ & 
+£‰šgs
+) {
+
+69 
+mq‰_fÜm©_
+ = 
+£‰šgs
+.
+mq‰_fÜm©
+;
+
+71 ià(
+mq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+HA
+) {
+
+72 
+»gi¡”_mq‰_ha_cÚfig
+();
+
+78 
+	gBož”
+::
+add_cÚ‹xt_m’u
+() {
+
+79 
+EMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+80 
+CommªdFÏgs
+::
+USER
+,
+
+81 
+æash_¡ršg_veùÜ
+{
+F_
+(
+bož”
+)},
+
+82 [&](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+83 
+Bož”
+::
+cÚsÞe_commªds
+(
+sh–l
+, 
+Sh–lCÚ‹xt
+::
+BOILER
+);
+
+84 
+add_cÚ‹xt_commªds
+(
+Sh–lCÚ‹xt
+::
+BOILER
+);
+
+92 
+	gBož”
+::
+»gi¡”_mq‰_ha_cÚfig
+() {
+
+93 
+S�ticJsÚDocum’t
+<
+EMSESP_MAX_JSON_SIZE_MEDIUM
+> 
+doc
+;
+
+107 
+	gBož”
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+108 
+JsÚObjeù
+ 
+d©aEËm’t
+;
+
+110 ià(
+	g£rviûCodeCh¬_
+[0] && 
+	gH–³rs
+::
+hasV®ue
+(
+£rviûCode_
+)) {
+
+111 
+d©aEËm’t
+ = 
+roÙ
+.
+ü—‹Ne¡edObjeù
+();
+
+112 
+	gd©aEËm’t
+["Çme"] = 
+F
+("Service Code");
+
+113 
+	gs
+[12];
+
+114 
+¢´štf_P
+(
+s
+, 12, 
+PSTR
+("% (%d)"), 
+£rviûCodeCh¬_
+, 
+£rviûCode_
+);
+
+115 
+	gd©aEËm’t
+["v®ue"] = 
+s
+;
+
+118 ià(
+	gH–³rs
+::
+hasV®ue
+(
+�p_w©”_aùive_
+, 
+EMS_VALUE_BOOL
+)) {
+
+119 
+	gd©aEËm’t
+ = 
+roÙ
+.
+ü—‹Ne¡edObjeù
+();
+
+120 
+	gd©aEËm’t
+["Çme"] = 
+F
+("Hot�ap water");
+
+121 
+	gd©aEËm’t
+["v®ue"] = 
+�p_w©”_aùive_
+ ? 
+F
+("running") : F("off");
+
+124 ià(
+	gH–³rs
+::
+hasV®ue
+(
+h—tšg_aùive_
+, 
+EMS_VALUE_BOOL
+)) {
+
+125 
+	gd©aEËm’t
+ = 
+roÙ
+.
+ü—‹Ne¡edObjeù
+();
+
+126 
+	gd©aEËm’t
+["Çme"] = 
+F
+("Central heating");
+
+127 
+	gd©aEËm’t
+["v®ue"] = 
+h—tšg_aùive_
+ ? 
+F
+("active") : F("off");
+
+130 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("S–eùed flow�em³¿tu»"), 
+£lFlowTemp_
+, 
+F_
+(
+deg»es
+));
+
+131 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cu¼’ˆæow�em³¿tu»"), 
+curFlowTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+132 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("W¬m W©” s–eùed�em³¿tu»"), 
+wWS–Temp_
+, 
+F_
+(
+deg»es
+));
+
+133 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("W¬m W©” s‘�em³¿tu»"), 
+wWS‘Tmp_
+, 
+F_
+(
+deg»es
+));
+
+134 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("W¬m W©” cu¼’ˆ‹m³¿tu» (š‹º)"), 
+wWCurTmp_
+, 
+F_
+(
+deg»es
+), 10);
+
+135 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("W¬m W©” cu¼’ˆ‹m³¿tu» (ex‹º)"), 
+wWCurTmp2_
+, 
+F_
+(
+deg»es
+), 10);
+
+136 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Pum°moduÏtiÚ"), 
+pumpMod_
+, 
+F_
+(
+³rûÁ
+));
+
+137 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("H—ˆPum°moduÏtiÚ"), 
+pumpMod2_
+, 
+F_
+(
+³rûÁ
+));
+
+141 
+	gBož”
+::
+publish_v®ues
+() {
+
+144 
+S�ticJsÚDocum’t
+<
+EMSESP_MAX_JSON_SIZE_LARGE
+> 
+doc
+;
+
+146 
+	gs
+[10];
+
+148 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWComfÜt_
+)) {
+
+149 ià(
+wWComfÜt_
+ == 0x00) {
+
+150 
+doc
+["wWComfort"] = "Hot";
+
+151 } ià(
+	gwWComfÜt_
+ == 0xD8) {
+
+152 
+doc
+["wWComfort"] = "Eco";
+
+153 } ià(
+	gwWComfÜt_
+ == 0xEC) {
+
+154 
+doc
+["wWComfort"] = "Intelligent";
+
+158 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWS–Temp_
+)) {
+
+159 
+doc
+["wWS–Temp"] = 
+wWS–Temp_
+;
+
+161 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWS‘Tmp_
+)) {
+
+162 
+doc
+["wWS‘Temp"] = 
+wWS‘Tmp_
+;
+
+164 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWDisšãùTemp_
+)) {
+
+165 
+doc
+["wWDisšãùiÚTemp"] = 
+wWDisšãùTemp_
+;
+
+167 ià(
+	gH–³rs
+::
+hasV®ue
+(
+£lFlowTemp_
+)) {
+
+168 
+doc
+["£lFlowTemp"] = 
+£lFlowTemp_
+;
+
+170 ià(
+	gH–³rs
+::
+hasV®ue
+(
+£lBuºPow_
+)) {
+
+171 
+doc
+["£lBuºPow"] = 
+£lBuºPow_
+;
+
+173 ià(
+	gH–³rs
+::
+hasV®ue
+(
+curBuºPow_
+)) {
+
+174 
+doc
+["curBuºPow"] = 
+curBuºPow_
+;
+
+176 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pumpMod_
+)) {
+
+177 
+doc
+["pumpMod"] = 
+pumpMod_
+;
+
+179 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pumpMod2_
+)) {
+
+180 
+doc
+["pumpMod2"] = 
+pumpMod2_
+;
+
+182 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCœcPump_
+, 
+EMS_VALUE_BOOL
+)) {
+
+183 
+	gdoc
+["wWCœcPump"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWCœcPump_
+, 
+EMS_VALUE_BOOL
+);
+
+185 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCœcPumpTy³_
+, 
+EMS_VALUE_BOOL
+)) {
+
+186 
+	gdoc
+["wWCiPuTy³"] = 
+wWCœcPumpTy³_
+ ? "valve" : "pump";
+
+188 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCœcPumpMode_
+)) {
+
+189 
+doc
+["wWCiPuMode"] = 
+wWCœcPumpMode_
+;
+
+191 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCœc_
+, 
+EMS_VALUE_BOOL
+)) {
+
+192 
+	gdoc
+["wWCœc"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWCœc_
+, 
+EMS_VALUE_BOOL
+);
+
+194 ià(
+	gH–³rs
+::
+hasV®ue
+(
+extTemp_
+)) {
+
+195 
+doc
+["outdoÜTemp"] = ()
+extTemp_
+ / 10;
+
+197 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCurTmp_
+)) {
+
+198 
+doc
+["wWCurTmp"] = ()
+wWCurTmp_
+ / 10;
+
+200 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCurTmp2_
+)) {
+
+201 
+doc
+["wWCurTmp2"] = ()
+wWCurTmp2_
+ / 10;
+
+203 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCurFlow_
+)) {
+
+204 
+doc
+["wWCurFlow"] = ()
+wWCurFlow_
+ / 10;
+
+206 ià(
+	gH–³rs
+::
+hasV®ue
+(
+curFlowTemp_
+)) {
+
+207 
+doc
+["curFlowTemp"] = ()
+curFlowTemp_
+ / 10;
+
+209 ià(
+	gH–³rs
+::
+hasV®ue
+(
+»tTemp_
+)) {
+
+210 
+doc
+["»tTemp"] = ()
+»tTemp_
+ / 10;
+
+212 ià(
+	gH–³rs
+::
+hasV®ue
+(
+sw™chTemp_
+)) {
+
+213 
+doc
+["sw™chTemp"] = ()
+sw™chTemp_
+ / 10;
+
+215 ià(
+	gH–³rs
+::
+hasV®ue
+(
+sysP»ss_
+)) {
+
+216 
+doc
+["sysP»ss"] = ()
+sysP»ss_
+ / 10;
+
+218 ià(
+	gH–³rs
+::
+hasV®ue
+(
+božTemp_
+)) {
+
+219 
+doc
+["božTemp"] = ()
+božTemp_
+ / 10;
+
+221 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wwStÜageTemp1_
+)) {
+
+222 
+doc
+["wwStÜageTemp1"] = ()
+wwStÜageTemp1_
+ / 10;
+
+224 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wwStÜageTemp2_
+)) {
+
+225 
+doc
+["wwStÜageTemp2"] = ()
+wwStÜageTemp2_
+ / 10;
+
+227 ià(
+	gH–³rs
+::
+hasV®ue
+(
+exhau¡Temp_
+)) {
+
+228 
+doc
+["exhau¡Temp"] = ()
+exhau¡Temp_
+ / 10;
+
+230 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWAùiv©ed_
+, 
+EMS_VALUE_BOOL
+)) {
+
+231 
+	gdoc
+["wWAùiv©ed"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWAùiv©ed_
+, 
+EMS_VALUE_BOOL
+);
+
+233 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWOÃTime_
+, 
+EMS_VALUE_BOOL
+)) {
+
+234 
+	gdoc
+["wWOÃtime"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWOÃTime_
+, 
+EMS_VALUE_BOOL
+);
+
+236 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWDisšãùšg_
+, 
+EMS_VALUE_BOOL
+)) {
+
+237 
+	gdoc
+["wWDisšãùšg"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWDisšãùšg_
+, 
+EMS_VALUE_BOOL
+);
+
+239 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWR—dšess_
+, 
+EMS_VALUE_BOOL
+)) {
+
+240 
+	gdoc
+["wWR—dy"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWR—dšess_
+, 
+EMS_VALUE_BOOL
+);
+
+242 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWRech¬gšg_
+, 
+EMS_VALUE_BOOL
+)) {
+
+243 
+	gdoc
+["wWRech¬ge"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWRech¬gšg_
+, 
+EMS_VALUE_BOOL
+);
+
+245 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWTem³¿tu»OK_
+, 
+EMS_VALUE_BOOL
+)) {
+
+246 
+	gdoc
+["wWTempOK"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWTem³¿tu»OK_
+, 
+EMS_VALUE_BOOL
+);
+
+248 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCœc_
+, 
+EMS_VALUE_BOOL
+)) {
+
+249 
+	gdoc
+["wWCœc"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWCœc_
+, 
+EMS_VALUE_BOOL
+);
+
+251 ià(
+	gH–³rs
+::
+hasV®ue
+(
+buºGas_
+, 
+EMS_VALUE_BOOL
+)) {
+
+252 
+	gdoc
+["buºGas"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+buºGas_
+, 
+EMS_VALUE_BOOL
+);
+
+254 ià(
+	gH–³rs
+::
+hasV®ue
+(
+æameCu¼_
+)) {
+
+255 
+doc
+["æameCu¼"] = ()(
+št16_t
+)
+æameCu¼_
+ / 10;
+
+257 ià(
+	gH–³rs
+::
+hasV®ue
+(
+h—tPmp_
+, 
+EMS_VALUE_BOOL
+)) {
+
+258 
+	gdoc
+["h—tPump"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+h—tPmp_
+, 
+EMS_VALUE_BOOL
+);
+
+260 ià(
+	gH–³rs
+::
+hasV®ue
+(
+çnWÜk_
+, 
+EMS_VALUE_BOOL
+)) {
+
+261 
+	gdoc
+["çnWÜk"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+çnWÜk_
+, 
+EMS_VALUE_BOOL
+);
+
+263 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ignWÜk_
+, 
+EMS_VALUE_BOOL
+)) {
+
+264 
+	gdoc
+["ignWÜk"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+ignWÜk_
+, 
+EMS_VALUE_BOOL
+);
+
+266 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWH—t_
+, 
+EMS_VALUE_BOOL
+)) {
+
+267 
+	gdoc
+["wWH—t"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+wWH—t_
+, 
+EMS_VALUE_BOOL
+);
+
+269 ià(
+	gH–³rs
+::
+hasV®ue
+(
+h—tšg_‹mp_
+)) {
+
+270 
+doc
+["h—tšgTemp"] = 
+h—tšg_‹mp_
+;
+
+272 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pump_mod_max_
+)) {
+
+273 
+doc
+["pumpModMax"] = 
+pump_mod_max_
+;
+
+275 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pump_mod_mš_
+)) {
+
+276 
+doc
+["pumpModMš"] = 
+pump_mod_mš_
+;
+
+278 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pumpD–ay_
+)) {
+
+279 
+doc
+["pumpD–ay"] = 
+pumpD–ay_
+;
+
+281 ià(
+	gH–³rs
+::
+hasV®ue
+(
+buºP”iod_
+)) {
+
+282 
+doc
+["buºMšP”iod"] = 
+buºP”iod_
+;
+
+284 ià(
+	gH–³rs
+::
+hasV®ue
+(
+buºPow”mš_
+)) {
+
+285 
+doc
+["buºMšPow”"] = 
+buºPow”mš_
+;
+
+287 ià(
+	gH–³rs
+::
+hasV®ue
+(
+buºPow”max_
+)) {
+
+288 
+doc
+["buºMaxPow”"] = 
+buºPow”max_
+;
+
+290 ià(
+	gH–³rs
+::
+hasV®ue
+(
+božTemp_Ú_
+)) {
+
+291 
+doc
+["božHy¡On"] = 
+božTemp_Ú_
+;
+
+293 ià(
+	gH–³rs
+::
+hasV®ue
+(
+božTemp_off_
+)) {
+
+294 
+doc
+["božHy¡Off"] = 
+božTemp_off_
+;
+
+296 ià(
+	gH–³rs
+::
+hasV®ue
+(
+£tFlowTemp_
+)) {
+
+297 
+doc
+["£tFlowTemp"] = 
+£tFlowTemp_
+;
+
+299 ià(
+	gH–³rs
+::
+hasV®ue
+(
+£tWWPumpPow_
+)) {
+
+300 
+doc
+["wWS‘PumpPow”"] = 
+£tWWPumpPow_
+;
+
+302 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWS�¹s_
+)) {
+
+303 
+doc
+["wWS�¹s"] = 
+wWS�¹s_
+;
+
+305 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWWÜkM_
+)) {
+
+306 
+doc
+["wWWÜkM"] = 
+wWWÜkM_
+;
+
+308 ià(
+	gH–³rs
+::
+hasV®ue
+(
+UBAu±ime_
+)) {
+
+309 
+doc
+["UBAu±ime"] = 
+UBAu±ime_
+;
+
+311 ià(
+	gH–³rs
+::
+hasV®ue
+(
+buºS�¹s_
+)) {
+
+312 
+doc
+["buºS�¹s"] = 
+buºS�¹s_
+;
+
+314 ià(
+	gH–³rs
+::
+hasV®ue
+(
+buºWÜkMš_
+)) {
+
+315 
+doc
+["buºWÜkMš"] = 
+buºWÜkMš_
+;
+
+317 ià(
+	gH–³rs
+::
+hasV®ue
+(
+h—tWÜkMš_
+)) {
+
+318 
+doc
+["h—tWÜkMš"] = 
+h—tWÜkMš_
+;
+
+320 ià(
+	gH–³rs
+::
+hasV®ue
+(
+£rviûCode_
+)) {
+
+321 
+doc
+["£rviûCode"] = 
+£rviûCodeCh¬_
+;
+
+322 
+	gdoc
+["£rviûCodeNumb”"] = 
+£rviûCode_
+;
+
+326 ià(!
+	gdoc
+.
+isNuÎ
+()) {
+
+327 
+	gMq‰
+::
+publish
+(
+F
+("bož”_d©a"), 
+doc
+);
+
+332 
+boÞ
+ 
+	gBož”
+::
+upd©ed_v®ues
+() {
+
+333 ià(
+chªged_
+) {
+
+334 
+chªged_
+ = 
+çl£
+;
+
+335  
+	gŒue
+;
+
+337  
+	gçl£
+;
+
+341 
+	gBož”
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+342 
+EMSdeviû
+::
+show_v®ues
+(
+sh–l
+);
+
+344 ià(
+	gH–³rs
+::
+hasV®ue
+(
+�p_w©”_aùive_
+, 
+EMS_VALUE_BOOL
+)) {
+
+345 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("HÙ�­ w©”"), 
+�p_w©”_aùive_
+ ? F("running") : F("off"));
+
+348 ià(
+	gH–³rs
+::
+hasV®ue
+(
+h—tšg_aùive_
+, 
+EMS_VALUE_BOOL
+)) {
+
+349 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("C’Œ® h—tšg"), 
+h—tšg_aùive_
+ ? F("active") : F("off"));
+
+352 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©”‡ùiv©ed"), 
+wWAùiv©ed_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+353 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCœcPumpTy³_
+, 
+EMS_VALUE_BOOL
+)) {
+
+354 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” ch¬gšg�y³"), 
+wWCœcPumpTy³_
+ ? F("3-way valve") : F("charge…ump"));
+
+356 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” cœcuÏtiÚ…um°avažabË"), 
+wWCœcPump_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+358 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWCœcPumpMode_
+)) {
+
+359 ià(
+wWCœcPumpMode_
+ == 7) {
+
+360 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Warm Water circulation…ump freq"), F("continuous"));
+
+362 
+	gs
+[7];
+
+363 
+	gbufãr
+[2];
+
+364 
+	gbufãr
+[0] = (
+wWCœcPumpMode_
+ % 10) + '0';
+
+365 
+	gbufãr
+[1] = '\0';
+
+366 
+¡¾ýy
+(
+s
+, 
+bufãr
+, 7);
+
+367 
+¡¾ÿt
+(
+s
+, "x3min", 7);
+
+368 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” cœcuÏtiÚ…um°äeq"), 
+s
+);
+
+372 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” cœcuÏtiÚ‡ùive"), 
+wWCœc_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+374 ià(
+	gwWComfÜt_
+ == 0x00) {
+
+375 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Warm Water comfort setting"), F("Hot"));
+
+376 } ià(
+	gwWComfÜt_
+ == 0xD8) {
+
+377 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Warm Water comfort setting"), F("Eco"));
+
+378 } ià(
+	gwWComfÜt_
+ == 0xEC) {
+
+379 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Warm Water comfort setting"), F("Intelligent"));
+
+382 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m w©” mix�em³¿tu»"), 
+wwMixTem³¿tu»_
+, 
+F_
+(
+deg»es
+), 10);
+
+383 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m w©” bufã¸bož”�em³¿tu»"), 
+wwBufãrBož”Tem³¿tu»_
+, 
+F_
+(
+deg»es
+), 10);
+
+384 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” disšãùiÚ�em³¿tu»"), 
+wWDisšãùTemp_
+, 
+F_
+(
+deg»es
+));
+
+385 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” s–eùed�em³¿tu»"), 
+wWS–Temp_
+, 
+F_
+(
+deg»es
+));
+
+386 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” s‘�em³¿tu»"), 
+wWS‘Tmp_
+, 
+F_
+(
+deg»es
+));
+
+387 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” cu¼’ˆ‹m³¿tu» (š‹º)"), 
+wWCurTmp_
+, 
+F_
+(
+deg»es
+), 10);
+
+388 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m w©” stÜag�‹m³¿tu» (š‹º)"), 
+wwStÜageTemp1_
+, 
+F_
+(
+deg»es
+), 10);
+
+389 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” cu¼’ˆ‹m³¿tu» (ex‹º)"), 
+wWCurTmp2_
+, 
+F_
+(
+deg»es
+), 10);
+
+390 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m w©” stÜag�‹m³¿tu» (ex‹º)"), 
+wwStÜageTemp2_
+, 
+F_
+(
+deg»es
+), 10);
+
+391 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” cu¼’ˆ�°w©” flow"), 
+wWCurFlow_
+, F("l/min"), 10);
+
+392 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” # s�¹s"), 
+wWS�¹s_
+, 
+nuÎ±r
+);
+
+393 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wWWÜkM_
+)) {
+
+394 
+sh–l
+.
+´štæn
+(
+F
+(" W¬m W©”‡ùiv�time: %d day %d hour %d mšu‹s"), 
+wWWÜkM_
+ / 1440, (wWWorkM_ % 1440) / 60, wWWorkM_ % 60);
+
+396 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” ch¬gšg"), 
+wWH—t_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+397 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” disšãùšg"), 
+wWDisšãùšg_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+398 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»"), 
+£lFlowTemp_
+, 
+F_
+(
+deg»es
+));
+
+399 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Cu¼’ˆæow�em³¿tu»"), 
+curFlowTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+400 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Max bož”�em³¿tu»"), 
+božTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+401 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("R‘uº�em³¿tu»"), 
+»tTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+402 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Gas"), 
+buºGas_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+403 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož”…ump"), 
+h—tPmp_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+404 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Fª"), 
+çnWÜk_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+405 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Ign™iÚ"), 
+ignWÜk_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+407 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Buº” s–eùed max…ow”"), 
+£lBuºPow_
+, 
+F_
+(
+³rûÁ
+));
+
+408 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Buº” cu¼’ˆpow”"), 
+curBuºPow_
+, 
+F_
+(
+³rûÁ
+));
+
+409 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("FÏm�cu¼’t"), 
+æameCu¼_
+, F("uA"), 10);
+
+410 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Sy¡em…»ssu»"), 
+sysP»ss_
+, F("bar"), 10);
+
+411 ià(
+	gH–³rs
+::
+hasV®ue
+(
+£rviûCode_
+)) {
+
+412 
+sh–l
+.
+´štæn
+(
+F
+(" Sy¡em s”viû code: % (%d)"), 
+£rviûCodeCh¬_
+, 
+£rviûCode_
+);
+
+413 } ià(
+	g£rviûCodeCh¬_
+[0] != '\0') {
+
+414 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Sy¡em s”viû code"), 
+£rviûCodeCh¬_
+);
+
+418 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("H—tšg�em³¿tu» s‘tšg oÀth�bož”"), 
+h—tšg_‹mp_
+, 
+F_
+(
+deg»es
+));
+
+419 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož” cœcu™…um°moduÏtiÚ max…ow”"), 
+pump_mod_max_
+, 
+F_
+(
+³rûÁ
+));
+
+420 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož” cœcu™…um°moduÏtiÚ mš…ow”"), 
+pump_mod_mš_
+, 
+F_
+(
+³rûÁ
+));
+
+421 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož” cœcu™…um°d–ay�ime"), 
+pumpD–ay_
+, F("min"));
+
+422 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož”�em°hy¡”esi Ú"), 
+božTemp_Ú_
+, 
+F_
+(
+deg»es
+));
+
+423 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož”�em°hy¡”esi off"), 
+božTemp_off_
+, 
+F_
+(
+deg»es
+));
+
+424 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož” buº” mš…”iod"), 
+buºP”iod_
+, F("min"));
+
+425 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož” buº” mš…ow”"), 
+buºPow”mš_
+, 
+F_
+(
+³rûÁ
+));
+
+426 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož” buº” max…ow”"), 
+buºPow”max_
+, 
+F_
+(
+³rûÁ
+));
+
+429 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S‘ Flow�em³¿tu»"), 
+£tFlowTemp_
+, 
+F_
+(
+deg»es
+));
+
+430 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Bož” buº” s‘…ow”"), 
+£tBuºPow_
+, 
+F_
+(
+³rûÁ
+));
+
+431 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©”…um°£ˆpow”"), 
+£tWWPumpPow_
+, 
+F_
+(
+³rûÁ
+));
+
+434 ià(
+	gH–³rs
+::
+hasV®ue
+(
+extTemp_
+)) {
+
+435 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Outsid�‹m³¿tu»"), 
+extTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+438 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Exhau¡�em³¿tu»"), 
+exhau¡Temp_
+, 
+F_
+(
+deg»es
+), 10);
+
+439 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Pum°moduÏtiÚ"), 
+pumpMod_
+, 
+F_
+(
+³rûÁ
+));
+
+440 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("H—ˆPum°moduÏtiÚ"), 
+pumpMod2_
+, 
+F_
+(
+³rûÁ
+));
+
+441 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Buº” # s�¹s"), 
+buºS�¹s_
+, 
+nuÎ±r
+);
+
+442 ià(
+	gH–³rs
+::
+hasV®ue
+(
+buºWÜkMš_
+)) {
+
+443 
+sh–l
+.
+´štæn
+(
+F
+(" TÙ® buº” o³¿tšg�ime: %d day %d hour %d mšu‹s"), 
+buºWÜkMš_
+ / 1440, (burnWorkMin_ % 1440) / 60, burnWorkMin_ % 60);
+
+445 ià(
+	gH–³rs
+::
+hasV®ue
+(
+h—tWÜkMš_
+)) {
+
+446 
+sh–l
+.
+´štæn
+(
+F
+(" TÙ® h—ˆÝ”©šg�ime: %d day %d hour %d mšu‹s"), 
+h—tWÜkMš_
+ / 1440, (heatWorkMin_ % 1440) / 60, heatWorkMin_ % 60);
+
+448 ià(
+	gH–³rs
+::
+hasV®ue
+(
+UBAu±ime_
+)) {
+
+449 
+sh–l
+.
+´štæn
+(
+F
+(" TÙ® UBA wÜkšg�ime: %d day %d hour %d mšu‹s"), 
+UBAu±ime_
+ / 1440, (UBAuptime_ % 1440) / 60, UBAuptime_ % 60);
+
+452 
+	gsh–l
+.
+´šŽn
+();
+
+459 
+	gBož”
+::
+check_aùive
+() {
+
+462 ià(
+H–³rs
+::
+hasV®ue
+(
+wWCurFlow_
+è&& H–³rs::hasV®ue(
+buºGas_
+)) {
+
+463 
+�p_w©”_aùive_
+ = ((
+wWCurFlow_
+ !ð0è&& (
+buºGas_
+ !ð
+EMS_VALUE_BOOL_OFF
+));
+
+464 
+	gEMSESP
+::
+�p_w©”_aùive
+(
+�p_w©”_aùive_
+);
+
+469 ià(
+	gH–³rs
+::
+hasV®ue
+(
+£lFlowTemp_
+è&& 
+H–³rs
+::hasV®ue(
+buºGas_
+)) {
+
+470 
+h—tšg_aùive_
+ = (!
+�p_w©”_aùive_
+ && ((
+£lFlowTemp_
+ >ð
+EMS_BOILER_SELFLOWTEMP_HEATING
+è&& (
+buºGas_
+ !ð
+EMS_VALUE_BOOL_OFF
+)));
+
+475 ià(
+	gH–³rs
+::
+hasV®ue
+(
+�p_w©”_aùive_
+, 
+EMS_VALUE_BOOL
+è&& H–³rs::hasV®ue(
+h—tšg_aùive_
+, EMS_VALUE_BOOL)) {
+
+476 
+ušt8_t
+ 
+	gÏ‹¡_bož”S�‹
+ = (
+�p_w©”_aùive_
+ << 1è+ 
+h—tšg_aùive_
+;
+
+477 ià(
+	gÏ‹¡_bož”S�‹
+ !ð
+Ï¡_bož”S�‹
+) {
+
+478 
+Ï¡_bož”S�‹
+ = 
+Ï‹¡_bož”S�‹
+;
+
+479 
+	gMq‰
+::
+publish
+(
+F
+("�pw©”_aùive"), 
+�p_w©”_aùive_
+);
+
+480 
+	gMq‰
+::
+publish
+(
+F
+("h—tšg_aùive"), 
+h—tšg_aùive_
+);
+
+486 
+	gBož”
+::
+´oûss_UBAP¬am‘”WW
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+487 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWAùiv©ed_
+, 1);
+
+488 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCœcPump_
+, 6);
+
+489 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCœcPumpMode_
+, 7);
+
+490 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCœcPumpTy³_
+, 10);
+
+491 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWS–Temp_
+, 2);
+
+492 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWDisšãùTemp_
+, 8);
+
+493 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWComfÜt_
+, 9);
+
+497 
+	gBož”
+::
+´oûss_UBAMÚ™ÜFa¡
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+498 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£lFlowTemp_
+, 0);
+
+499 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+curFlowTemp_
+, 1);
+
+500 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£lBuºPow_
+, 3);
+
+501 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+curBuºPow_
+, 4);
+
+503 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+buºGas_
+, 7, 0);
+
+504 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+çnWÜk_
+, 7, 2);
+
+505 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+ignWÜk_
+, 7, 3);
+
+506 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+h—tPmp_
+, 7, 5);
+
+507 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWH—t_
+, 7, 6);
+
+508 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWCœc_
+, 7, 7);
+
+512 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wwStÜageTemp1_
+, 9);
+
+513 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wwStÜageTemp2_
+, 11);
+
+515 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+»tTemp_
+, 13);
+
+516 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æameCu¼_
+, 15);
+
+517 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£rviûCode_
+, 20);
+
+520 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+sysP»ss_
+, 17);
+
+523 ià((
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+ > 18è&& (‹Ëg¿m->
+	goff£t
+ == 0)) {
+
+524 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£rviûCodeCh¬_
+[0], 18);
+
+525 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£rviûCodeCh¬_
+[1], 19);
+
+526 
+	g£rviûCodeCh¬_
+[2] = '\0';
+
+530 
+check_aùive
+();
+
+537 
+	gBož”
+::
+´oûss_UBATÙ®U±ime
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+538 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+UBAu±ime_
+, 0, 3);
+
+544 
+	gBož”
+::
+´oûss_UBAP¬am‘”s
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+545 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+h—tšg_‹mp_
+, 1);
+
+546 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+buºPow”max_
+, 2);
+
+547 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+buºPow”mš_
+, 3);
+
+548 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+božTemp_off_
+, 4);
+
+549 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+božTemp_Ú_
+, 5);
+
+550 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+buºP”iod_
+, 6);
+
+551 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pumpD–ay_
+, 8);
+
+552 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pump_mod_max_
+, 9);
+
+553 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pump_mod_mš_
+, 10);
+
+560 
+	gBož”
+::
+´oûss_UBAMÚ™ÜWW
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+561 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWS‘Tmp_
+, 0);
+
+562 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCurTmp_
+, 1);
+
+563 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCurTmp2_
+, 3);
+
+564 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCurFlow_
+, 9);
+
+566 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWWÜkM_
+, 10, 3);
+
+567 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWS�¹s_
+, 13, 3);
+
+569 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWOÃTime_
+, 5, 1);
+
+570 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWDisšãùšg_
+, 5, 2);
+
+571 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWR—dšess_
+, 5, 3);
+
+572 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWRech¬gšg_
+, 5, 4);
+
+573 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWTem³¿tu»OK_
+, 5, 5);
+
+580 
+	gBož”
+::
+´oûss_UBAMÚ™ÜFa¡Plus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+581 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£lFlowTemp_
+, 6);
+
+582 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+buºGas_
+, 11, 0);
+
+583 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWH—t_
+, 11, 2);
+
+584 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+curBuºPow_
+, 10);
+
+585 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£lBuºPow_
+, 9);
+
+586 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+curFlowTemp_
+, 7);
+
+587 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æameCu¼_
+, 19);
+
+590 ià((
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+ > 4è&& (‹Ëg¿m->
+	goff£t
+ == 0)) {
+
+591 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£rviûCodeCh¬_
+[0], 4);
+
+592 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£rviûCodeCh¬_
+[1], 5);
+
+593 
+	g£rviûCodeCh¬_
+[2] = '\0';
+
+597 
+check_aùive
+();
+
+607 
+	gBož”
+::
+´oûss_UBAMÚ™ÜSlow
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+608 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+extTemp_
+, 0);
+
+609 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+božTemp_
+, 2);
+
+610 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+exhau¡Temp_
+, 4);
+
+611 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+sw™chTemp_
+, 25);
+
+612 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pumpMod_
+, 9);
+
+613 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+buºS�¹s_
+, 10, 3);
+
+614 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+buºWÜkMš_
+, 13, 3);
+
+615 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+h—tWÜkMš_
+, 19, 3);
+
+621 
+	gBož”
+::
+´oûss_UBAMÚ™ÜSlowPlus2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+622 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pumpMod2_
+, 13);
+
+628 
+	gBož”
+::
+´oûss_UBAMÚ™ÜSlowPlus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+629 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+çnWÜk_
+, 2, 2);
+
+630 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+ignWÜk_
+, 2, 3);
+
+631 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+h—tPmp_
+, 2, 5);
+
+632 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWCœc_
+, 2, 7);
+
+633 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+buºS�¹s_
+, 10, 3);
+
+634 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+buºWÜkMš_
+, 13, 3);
+
+635 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+h—tWÜkMš_
+, 19, 3);
+
+636 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pumpMod_
+, 25);
+
+641 
+	gBož”
+::
+´oûss_UBADHWS�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+642 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWS‘Tmp_
+, 0);
+
+643 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCurTmp_
+, 1);
+
+644 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWCurTmp2_
+, 3);
+
+646 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWWÜkM_
+, 17, 3);
+
+647 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWS�¹s_
+, 14, 3);
+
+649 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWOÃTime_
+, 12, 2);
+
+650 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWDisšãùšg_
+, 12, 3);
+
+651 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWR—dšess_
+, 12, 4);
+
+652 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWRech¬gšg_
+, 13, 4);
+
+653 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWTem³¿tu»OK_
+, 13, 5);
+
+654 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+wWCœcPump_
+, 13, 2);
+
+656 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWAùiv©ed_
+, 20);
+
+657 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWS–Temp_
+, 10);
+
+658 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wWDisšãùTemp_
+, 9);
+
+664 
+	gBož”
+::
+´oûss_MC10S�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+665 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wwMixTem³¿tu»_
+, 14);
+
+666 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wwBufãrBož”Tem³¿tu»_
+, 18);
+
+672 
+	gBož”
+::
+´oûss_UBAOutdoÜTemp
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+673 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+extTemp_
+, 0);
+
+677 
+	gBož”
+::
+´oûss_UBAS‘Pošts
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+678 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£tFlowTemp_
+, 0);
+
+679 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£tBuºPow_
+, 1);
+
+680 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£tWWPumpPow_
+, 2);
+
+683 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+684 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+688 
+	gBož”
+::
+´oûss_UBAFÏgs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+693 
+Bož”
+::
+´oûss_UBAMaš‹ÇnûS�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+699 
+Bož”
+::
+´oûss_UBAE¼ÜMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+703 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+706 
+Bož”
+::
+´oûss_UBAMaš‹ÇnûD©a
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+709 ià(
+‹Ëg¿m
+->
+mes§ge_d©a
+[0] == 3) {
+
+710 
+LOG_WARNING
+(
+F
+("Boiler has booted."));
+
+720 
+	gBož”
+::
+£t_w¬mw©”_‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+721 
+	gv
+ = 0;
+
+722 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+726 
+LOG_INFO
+(
+F
+("S‘tšg bož” w¬m w©”�em³¿tu»�Ø%d C"), 
+v
+);
+
+727 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”WW
+, 2, 
+v
+, EMS_TYPE_UBAParameterWW);
+
+728 
+wr™e_commªd
+(
+EMS_TYPE_UBAFÏgs
+, 3, 
+v
+, 
+EMS_TYPE_UBAP¬am‘”WW
+);
+
+732 
+	gBož”
+::
+£t_æow_‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+733 
+	gv
+ = 0;
+
+734 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+738 
+LOG_INFO
+(
+F
+("S‘tšg bož” flow�em³¿tu»�Ø%d C"), 
+v
+);
+
+739 
+wr™e_commªd
+(
+EMS_TYPE_UBAS‘Pošts
+, 0, 
+v
+, EMS_TYPE_UBASetPoints);
+
+743 
+	gBož”
+::
+£t_mš_pow”
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+744 
+	gv
+ = 0;
+
+745 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+748 
+LOG_INFO
+(
+F
+("S‘tšg bož” mš…ow”�Ø"), 
+v
+);
+
+749 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”s
+, 3, 
+v
+, EMS_TYPE_UBAParameters);
+
+753 
+	gBož”
+::
+£t_max_pow”
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+754 
+	gv
+ = 0;
+
+755 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+759 
+LOG_INFO
+(
+F
+("S‘tšg bož” max…ow”�Ø%d C"), 
+v
+);
+
+760 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”s
+, 2, 
+v
+, EMS_TYPE_UBAParameters);
+
+764 
+	gBož”
+::
+£t_hy¡_Ú
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+765 
+	gv
+ = 0;
+
+766 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+770 
+LOG_INFO
+(
+F
+("S‘tšg bož” hy¡”esi Ú�Ø%d C"), 
+v
+);
+
+771 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”s
+, 5, 
+v
+, EMS_TYPE_UBAParameters);
+
+775 
+	gBož”
+::
+£t_hy¡_off
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+776 
+	gv
+ = 0;
+
+777 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+781 
+LOG_INFO
+(
+F
+("S‘tšg bož” hy¡”esi ofàtØ%d C"), 
+v
+);
+
+782 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”s
+, 4, 
+v
+, EMS_TYPE_UBAParameters);
+
+786 
+	gBož”
+::
+£t_buº_³riod
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+787 
+	gv
+ = 0;
+
+788 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+792 
+LOG_INFO
+(
+F
+("S‘tšg buº” mš.…”iod�Ø%d mš"), 
+v
+);
+
+793 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”s
+, 6, 
+v
+, EMS_TYPE_UBAParameters);
+
+797 
+	gBož”
+::
+£t_pump_d–ay
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+798 
+	gv
+ = 0;
+
+799 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+v
+)) {
+
+803 
+LOG_INFO
+(
+F
+("S‘tšg bož”…um°d–ay�Ø%d mš"), 
+v
+);
+
+804 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”s
+, 8, 
+v
+, EMS_TYPE_UBAParameters);
+
+809 
+	gBož”
+::
+£t_w¬mw©”_mode
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+810 ià(
+	gv®ue
+ =ð
+nuÎ±r
+) {
+
+813 
+ušt8_t
+ 
+	g£t
+;
+
+814 ià(
+¡rcmp
+(
+v®ue
+, "hot") == 0) {
+
+815 
+LOG_INFO
+(
+F
+("Setting boiler warm water�o Hot"));
+
+816 
+	g£t
+ = 0x00;
+
+817 } ià(
+¡rcmp
+(
+v®ue
+, "eco") == 0) {
+
+818 
+LOG_INFO
+(
+F
+("Setting boiler warm water�o Eco"));
+
+819 
+	g£t
+ = 0xD8;
+
+820 } ià(
+¡rcmp
+(
+v®ue
+, "intelligent") == 0) {
+
+821 
+LOG_INFO
+(
+F
+("Setting boiler warm water�o Intelligent"));
+
+822 
+	g£t
+ = 0xEC;
+
+826 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”WW
+, 9, 
+£t
+, EMS_TYPE_UBAParameterWW);
+
+830 
+	gBož”
+::
+£t_w¬mw©”_aùiv©ed
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+831 
+boÞ
+ 
+	gv
+ = 
+çl£
+;
+
+832 ià(!
+	gH–³rs
+::
+v®ue2boÞ
+(
+v®ue
+, 
+v
+)) {
+
+836 
+LOG_INFO
+(
+F
+("S‘tšg bož” w¬m w©” %s"), 
+v
+ ? "on" : "off");
+
+839 
+ušt8_t
+ 
+	gn
+;
+
+840 ià(
+	gEMSbus
+::
+is_ht3
+()) {
+
+841 
+n
+ = (
+v
+ ? 0x08 : 0x00);
+
+843 
+	gn
+ = (
+v
+ ? 0xFF : 0x00);
+
+845 
+wr™e_commªd
+(
+EMS_TYPE_UBAP¬am‘”WW
+, 1, 
+n
+, EMS_TYPE_UBAParameterWW);
+
+850 
+	gBož”
+::
+£t_�pw¬mw©”_aùiv©ed
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+851 
+boÞ
+ 
+	gv
+ = 
+çl£
+;
+
+852 ià(!
+	gH–³rs
+::
+v®ue2boÞ
+(
+v®ue
+, 
+v
+)) {
+
+856 
+LOG_INFO
+(
+F
+("S‘tšg�­ w¬m�­ w©” %s"), 
+v
+ ? "on" : "off");
+
+857 
+ušt8_t
+ 
+	gmes§ge_d©a
+[
+EMS_MAX_TELEGRAM_MESSAGE_LENGTH
+];
+
+858 
+ušt8_t
+ 
+	gi
+ = 0; i < (
+	gmes§ge_d©a
+); i++) {
+
+859 
+	gmes§ge_d©a
+[
+i
+] = 0x00;
+
+865 ià(!
+	gv
+) {
+
+867 
+	gmes§ge_d©a
+[0] = 0x5A;
+
+868 
+	gmes§ge_d©a
+[1] = 0x00;
+
+869 
+	gmes§ge_d©a
+[3] = 0x64;
+
+870 
+	gmes§ge_d©a
+[4] = 0xFF;
+
+874 
+	gmes§ge_d©a
+[4] = 0x00;
+
+877 
+wr™e_commªd
+(
+EMS_TYPE_UBAFunùiÚTe¡
+, 0, 
+mes§ge_d©a
+, (message_data), 0);
+
+883 
+	gBož”
+::
+£t_w¬mw©”_Ú‘ime
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+884 
+boÞ
+ 
+	gv
+ = 
+çl£
+;
+
+885 ià(!
+	gH–³rs
+::
+v®ue2boÞ
+(
+v®ue
+, 
+v
+)) {
+
+889 
+LOG_INFO
+(
+F
+("S‘tšg bož” w¬m w©” OÃTim�lßdšg %s"), 
+v
+ ? "on" : "off");
+
+890 
+wr™e_commªd
+(
+EMS_TYPE_UBAFÏgs
+, 0, (
+v
+ ? 0x22 : 0x02), 0x18);
+
+895 
+	gBož”
+::
+£t_w¬mw©”_cœcuÏtiÚ
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+896 
+boÞ
+ 
+	gv
+ = 
+çl£
+;
+
+897 ià(!
+	gH–³rs
+::
+v®ue2boÞ
+(
+v®ue
+, 
+v
+)) {
+
+901 
+LOG_INFO
+(
+F
+("S‘tšg bož” w¬m w©” cœcuÏtiÚ %s"), 
+v
+ ? "on" : "off");
+
+902 
+wr™e_commªd
+(
+EMS_TYPE_UBAFÏgs
+, 1, (
+v
+ ? 0x22 : 0x02), 0x18);
+
+906 
+	gBož”
+::
+cÚsÞe_commªds
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+) {
+
+907 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+BOILER
+,
+
+908 
+CommªdFÏgs
+::
+ADMIN
+,
+
+909 
+æash_¡ršg_veùÜ
+{
+F_
+(
+»ad
+)},
+
+910 
+æash_¡ršg_veùÜ
+{
+F_
+(
+ty³id_mªd©Üy
+)},
+
+911 [=](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+912 
+ušt16_t
+ 
+ty³_id
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+());
+
+913 
+EMSESP
+::
+£t_»ad_id
+(
+ty³_id
+);
+
+914 
+EMSESP
+::
+£nd_»ad_»que¡
+(
+ty³_id
+, 
+g‘_deviû_id
+());
+
+917 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+BOILER
+,
+
+918 
+CommªdFÏgs
+::
+USER
+,
+
+919 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+)},
+
+920 [&](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))è{ 
+show_v®ues
+(shell); });
+
+923 
+	gCÚsÞe
+::
+’‹r_cu¡om_cÚ‹xt
+(
+sh–l
+, 
+cÚ‹xt
+);
+
+	@src/devices/boiler.h
+
+19 #iâdeà
+EMSESP_BOILER_H
+
+
+20 
+	#EMSESP_BOILER_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~<¡ršg
+>
+
+29 
+	~"emsdeviû.h
+"
+
+30 
+	~"‹Ëg¿m.h
+"
+
+31 
+	~"em£¥.h
+"
+
+32 
+	~"h–³rs.h
+"
+
+33 
+	~"mq‰.h
+"
+
+35 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+37 þas 
+	cBož”
+ : 
+public
+ 
+EMSdeviû
+ {
+
+38 
+public
+:
+
+39 
+Bož”
+(
+ušt8_t
+ 
+deviû_ty³
+, 
+št8_t
+ 
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+41 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+42 
+vœtu®
+ 
+publish_v®ues
+();
+
+43 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+44 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+45 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+47 
+	g´iv©e
+:
+
+48 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+50 
+cÚsÞe_commªds
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+);
+
+51 
+»gi¡”_mq‰_ha_cÚfig
+();
+
+52 
+check_aùive
+();
+
+54 
+ušt8_t
+ 
+	gÏ¡_bož”S�‹
+ = 0xFF;
+
+55 
+ušt8_t
+ 
+	gmq‰_fÜm©_
+;
+
+56 
+boÞ
+ 
+	gchªged_
+ = 
+çl£
+;
+
+58 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_UBAP¬am‘”WW
+ = 0x33;
+
+59 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_UBAFunùiÚTe¡
+ = 0x1D;
+
+60 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_UBAFÏgs
+ = 0x35;
+
+61 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_UBAS‘Pošts
+ = 0x1A;
+
+62 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_UBAP¬am‘”s
+ = 0x16;
+
+64 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_BOILER_SELFLOWTEMP_HEATING
+ = 20;
+
+67 
+ušt8_t
+ 
+	gwWAùiv©ed_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+68 
+ušt8_t
+ 
+	gwWS–Temp_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+69 
+ušt8_t
+ 
+	gwWCœcPump_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+70 
+ušt8_t
+ 
+	gwWCœcPumpMode_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+71 
+ušt8_t
+ 
+	gwWCœcPumpTy³_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+72 
+ušt8_t
+ 
+	gwWDisšãùTemp_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+73 
+ušt8_t
+ 
+	gwWComfÜt_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+76 
+ušt16_t
+ 
+	gwwMixTem³¿tu»_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+77 
+ušt16_t
+ 
+	gwwBufãrBož”Tem³¿tu»_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+80 
+ušt8_t
+ 
+	g£lFlowTemp_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+81 
+ušt16_t
+ 
+	gcurFlowTemp_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+82 
+ušt16_t
+ 
+	gwwStÜageTemp1_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+83 
+ušt16_t
+ 
+	gwwStÜageTemp2_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+84 
+ušt16_t
+ 
+	g»tTemp_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+85 
+ušt8_t
+ 
+	gbuºGas_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+86 
+ušt8_t
+ 
+	gçnWÜk_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+87 
+ušt8_t
+ 
+	gignWÜk_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+88 
+ušt8_t
+ 
+	gh—tPmp_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+89 
+ušt8_t
+ 
+	gwWH—t_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+90 
+ušt8_t
+ 
+	gwWCœc_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+91 
+ušt8_t
+ 
+	g£lBuºPow_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+92 
+ušt8_t
+ 
+	gcurBuºPow_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+93 
+ušt16_t
+ 
+	gæameCu¼_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+94 
+ušt8_t
+ 
+	gsysP»ss_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+95 
+	g£rviûCodeCh¬_
+[3] = {'\0'};
+
+96 
+ušt16_t
+ 
+	g£rviûCode_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+99 
+št16_t
+ 
+	gextTemp_
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+100 
+ušt16_t
+ 
+	gbožTemp_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+101 
+ušt16_t
+ 
+	gexhau¡Temp_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+102 
+ušt8_t
+ 
+	gpumpMod_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+103 
+ušt32_t
+ 
+	gbuºS�¹s_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+104 
+ušt32_t
+ 
+	gbuºWÜkMš_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+105 
+ušt32_t
+ 
+	gh—tWÜkMš_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+106 
+ušt16_t
+ 
+	gsw™chTemp_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+109 
+ušt8_t
+ 
+	gwWS‘Tmp_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+110 
+ušt16_t
+ 
+	gwWCurTmp_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+111 
+ušt16_t
+ 
+	gwWCurTmp2_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+112 
+ušt32_t
+ 
+	gwWS�¹s_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+113 
+ušt32_t
+ 
+	gwWWÜkM_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+114 
+ušt8_t
+ 
+	gwWOÃTime_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+115 
+ušt8_t
+ 
+	gwWDisšãùšg_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+116 
+ušt8_t
+ 
+	gwWR—dšess_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+117 
+ušt8_t
+ 
+	gwWRech¬gšg_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+118 
+ušt8_t
+ 
+	gwWTem³¿tu»OK_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+119 
+ušt8_t
+ 
+	gwWCurFlow_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+122 
+ušt32_t
+ 
+	gUBAu±ime_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+125 
+ušt8_t
+ 
+	gh—tšg_‹mp_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+126 
+ušt8_t
+ 
+	gpump_mod_max_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+127 
+ušt8_t
+ 
+	gpump_mod_mš_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+128 
+ušt8_t
+ 
+	gbuºPow”mš_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+129 
+ušt8_t
+ 
+	gbuºPow”max_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+130 
+št8_t
+ 
+	gbožTemp_off_
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+131 
+št8_t
+ 
+	gbožTemp_Ú_
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+132 
+ušt8_t
+ 
+	gbuºP”iod_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+133 
+ušt8_t
+ 
+	gpumpD–ay_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+136 
+ušt8_t
+ 
+	g£tFlowTemp_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+137 
+ušt8_t
+ 
+	g£tBuºPow_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+138 
+ušt8_t
+ 
+	g£tWWPumpPow_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+141 
+ušt8_t
+ 
+	g�p_w©”_aùive_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+142 
+ušt8_t
+ 
+	gh—tšg_aùive_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+143 
+ušt8_t
+ 
+	gpumpMod2_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+145 
+´oûss_UBAP¬am‘”WW
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+146 
+´oûss_UBAMÚ™ÜFa¡
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+147 
+´oûss_UBATÙ®U±ime
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+148 
+´oûss_UBAP¬am‘”s
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+149 
+´oûss_UBAMÚ™ÜWW
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+150 
+´oûss_UBAMÚ™ÜFa¡Plus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+151 
+´oûss_UBAMÚ™ÜSlow
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+152 
+´oûss_UBAMÚ™ÜSlowPlus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+153 
+´oûss_UBAMÚ™ÜSlowPlus2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+154 
+´oûss_UBAOutdoÜTemp
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+155 
+´oûss_UBAS‘Pošts
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+156 
+´oûss_UBAFÏgs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+157 
+´oûss_MC10S�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+158 
+´oûss_UBAMaš‹ÇnûS�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+159 
+´oûss_UBAMaš‹ÇnûD©a
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+160 
+´oûss_UBAE¼ÜMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+161 
+´oûss_UBADHWS�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+164 
+£t_w¬mw©”_mode
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+165 
+£t_w¬mw©”_aùiv©ed
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+166 
+£t_�pw¬mw©”_aùiv©ed
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+167 
+£t_w¬mw©”_Ú‘ime
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+168 
+£t_w¬mw©”_cœcuÏtiÚ
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+169 
+£t_w¬mw©”_‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+170 
+£t_æow_‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+171 
+£t_mš_pow”
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+172 
+£t_max_pow”
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+173 
+£t_hy¡_Ú
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+174 
+£t_hy¡_off
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+175 
+£t_buº_³riod
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+176 
+£t_pump_d–ay
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+	@src/devices/connect.cpp
+
+19 
+	~"cÚÃù.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+CÚÃù
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+CONNECT
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+CÚÃù
+::
+logg”_
+{
+F_
+(
+cÚÃù
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gCÚÃù
+::
+CÚÃù
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+31 
+	gCÚÃù
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+34 
+CÚÃù
+::
+add_cÚ‹xt_m’u
+() {
+
+38 
+CÚÃù
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+43 
+CÚÃù
+::
+publish_v®ues
+() {
+
+47 
+boÞ
+ 
+CÚÃù
+::
+upd©ed_v®ues
+() {
+
+48  
+çl£
+;
+
+52 
+	gCÚÃù
+::
+cÚsÞe_commªds
+() {
+
+	@src/devices/connect.h
+
+19 #iâdeà
+EMSESP_CONNECT_H
+
+
+20 
+	#EMSESP_CONNECT_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+30 
+	~"mq‰.h
+"
+
+32 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+34 þas 
+	cCÚÃù
+ : 
+public
+ 
+EMSdeviû
+ {
+
+35 
+public
+:
+
+36 
+CÚÃù
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+38 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+39 
+vœtu®
+ 
+publish_v®ues
+();
+
+40 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+41 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+42 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+44 
+	g´iv©e
+:
+
+45 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+47 
+cÚsÞe_commªds
+();
+
+	@src/devices/controller.cpp
+
+19 
+	~"cÚŒÞËr.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+CÚŒÞËr
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+CONTROLLER
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+CÚŒÞËr
+::
+logg”_
+{
+F_
+(
+cÚŒÞËr
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gCÚŒÞËr
+::
+CÚŒÞËr
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+31 
+	gCÚŒÞËr
+::
+add_cÚ‹xt_m’u
+() {
+
+34 
+CÚŒÞËr
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+38 
+CÚŒÞËr
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+43 
+CÚŒÞËr
+::
+publish_v®ues
+() {
+
+47 
+boÞ
+ 
+CÚŒÞËr
+::
+upd©ed_v®ues
+() {
+
+48  
+çl£
+;
+
+52 
+	gCÚŒÞËr
+::
+cÚsÞe_commªds
+() {
+
+	@src/devices/controller.h
+
+19 #iâdeà
+EMSESP_CONTROLLER_H
+
+
+20 
+	#EMSESP_CONTROLLER_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+30 
+	~"mq‰.h
+"
+
+32 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+34 þas 
+	cCÚŒÞËr
+ : 
+public
+ 
+EMSdeviû
+ {
+
+35 
+public
+:
+
+36 
+CÚŒÞËr
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+38 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+39 
+vœtu®
+ 
+publish_v®ues
+();
+
+40 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+41 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+42 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+44 
+	g´iv©e
+:
+
+45 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+47 
+cÚsÞe_commªds
+();
+
+	@src/devices/gateway.cpp
+
+19 
+	~"g©eway.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+G©eway
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+GATEWAY
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+G©eway
+::
+logg”_
+{
+F_
+(
+g©eway
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gG©eway
+::
+G©eway
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+31 
+	gG©eway
+::
+add_cÚ‹xt_m’u
+() {
+
+34 
+G©eway
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+38 
+G©eway
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+39 
+EMSdeviû
+::
+show_v®ues
+(
+sh–l
+);
+
+43 
+	gG©eway
+::
+publish_v®ues
+() {
+
+47 
+boÞ
+ 
+G©eway
+::
+upd©ed_v®ues
+() {
+
+48  
+çl£
+;
+
+52 
+	gG©eway
+::
+cÚsÞe_commªds
+() {
+
+	@src/devices/gateway.h
+
+19 #iâdeà
+EMSESP_GATEWAY_H
+
+
+20 
+	#EMSESP_GATEWAY_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+30 
+	~"mq‰.h
+"
+
+32 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+34 þas 
+	cG©eway
+ : 
+public
+ 
+EMSdeviû
+ {
+
+35 
+public
+:
+
+36 
+G©eway
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+38 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+39 
+vœtu®
+ 
+publish_v®ues
+();
+
+40 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+41 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+42 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+44 
+	g´iv©e
+:
+
+45 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+47 
+cÚsÞe_commªds
+();
+
+	@src/devices/heatpump.cpp
+
+19 
+	~"h—�ump.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+H—�ump
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+HEATPUMP
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+H—�ump
+::
+logg”_
+{
+F_
+(
+h—�ump
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gH—�ump
+::
+H—�ump
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+29 
+LOG_DEBUG
+(
+F
+("Addšg‚ew H—ˆPum°moduË w™h deviû ID 0x%02X"), 
+deviû_id
+);
+
+32 
+»gi¡”_‹Ëg¿m_ty³
+(0x047B, 
+F
+("HP1"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_HPMÚ™Ü1
+(t); });
+
+33 
+»gi¡”_‹Ëg¿m_ty³
+(0x042B, 
+F
+("HP2"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_HPMÚ™Ü2
+(t); });
+
+37 
+	gH—�ump
+::
+add_cÚ‹xt_m’u
+() {
+
+40 
+H—�ump
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+44 
+H—�ump
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+49 
+H—�ump
+::
+publish_v®ues
+() {
+
+53 
+boÞ
+ 
+H—�ump
+::
+upd©ed_v®ues
+() {
+
+54  
+çl£
+;
+
+58 
+	gH—�ump
+::
+cÚsÞe_commªds
+() {
+
+61 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+62 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+68 
+H—�ump
+::
+´oûss_HPMÚ™Ü1
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+76 
+H—�ump
+::
+´oûss_HPMÚ™Ü2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+80 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@src/devices/heatpump.h
+
+19 #iâdeà
+EMSESP_HEATPUMP_H
+
+
+20 
+	#EMSESP_HEATPUMP_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+30 
+	~"mq‰.h
+"
+
+32 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+34 þas 
+	cH—�ump
+ : 
+public
+ 
+EMSdeviû
+ {
+
+35 
+public
+:
+
+36 
+H—�ump
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+38 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+39 
+vœtu®
+ 
+publish_v®ues
+();
+
+40 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+41 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+42 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+44 
+	g´iv©e
+:
+
+45 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+47 
+cÚsÞe_commªds
+();
+
+49 
+´oûss_HPMÚ™Ü1
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+50 
+´oûss_HPMÚ™Ü2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+	@src/devices/mixing.cpp
+
+19 
+	~"mixšg.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+Mixšg
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+MIXING
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+Mixšg
+::
+logg”_
+{
+F_
+(
+mixšg
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gMixšg
+::
+Mixšg
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+29 
+LOG_DEBUG
+(
+F
+("Addšg‚ew Mixšg moduË w™h deviû ID 0x%02X"), 
+deviû_id
+);
+
+31 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_MMPLUS
+) {
+
+32 ià(
+deviû_id
+ <= 0x27) {
+
+34 
+»gi¡”_‹Ëg¿m_ty³
+(
+deviû_id
+ - 0x20 + 0x02D7, 
+F
+("MMPLUSS�tusMes§ge_HC"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+) {
+
+35 
+´oûss_MMPLUSS�tusMes§ge_HC
+(
+t
+);
+
+39 
+»gi¡”_‹Ëg¿m_ty³
+(
+deviû_id
+ - 0x28 + 0x0331, 
+F
+("MMPLUSS�tusMes§ge_WWC"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+) {
+
+40 
+´oûss_MMPLUSS�tusMes§ge_WWC
+(
+t
+);
+
+46 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_MM10
+) {
+
+47 
+»gi¡”_‹Ëg¿m_ty³
+(0x00AA, 
+F
+("MMCÚfigMes§ge"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_MMCÚfigMes§ge
+(t); });
+
+48 
+»gi¡”_‹Ëg¿m_ty³
+(0x00AB, 
+F
+("MMS�tusMes§ge"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_MMS�tusMes§ge
+(t); });
+
+49 
+»gi¡”_‹Ëg¿m_ty³
+(0x00AC, 
+F
+("MMS‘Mes§ge"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_MMS‘Mes§ge
+(t); });
+
+53 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_IPM
+) {
+
+54 
+»gi¡”_‹Ëg¿m_ty³
+(0x010C, 
+F
+("IPMS‘Mes§ge"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_IPMS�tusMes§ge
+(t); });
+
+59 
+	gMixšg
+::
+add_cÚ‹xt_m’u
+() {
+
+63 
+Mixšg
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+64 ià(
+ty³_
+ =ð
+Ty³
+::
+NONE
+) {
+
+68 ià(
+	gty³_
+ =ð
+Ty³
+::
+WWC
+) {
+
+69 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("W¬m W©” Cœcu™"), 
+hc_
+, 
+nuÎ±r
+);
+
+70 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cu¼’ˆw¬m w©”�em³¿tu»"), 
+æowTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+71 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cu¼’ˆpum°¡©us"), 
+pump_
+, 
+nuÎ±r
+);
+
+72 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cu¼’ˆ‹m³¿tu» s�tus"), 
+¡©us_
+, 
+nuÎ±r
+);
+
+74 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("H—tšg Cœcu™"), 
+hc_
+, 
+nuÎ±r
+);
+
+75 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cu¼’ˆæow�em³¿tu»"), 
+æowTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+76 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("S‘pošˆæow�em³¿tu»"), 
+æowS‘Temp_
+, 
+F_
+(
+deg»es
+));
+
+77 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cu¼’ˆpum°¡©us"), 
+pump_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+78 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cu¼’ˆv®v�¡©us"), 
+¡©us_
+, 
+F_
+(
+³rûÁ
+));
+
+83 
+boÞ
+ 
+	gMixšg
+::
+upd©ed_v®ues
+() {
+
+84 ià(
+chªged_
+) {
+
+85 
+chªged_
+ = 
+çl£
+;
+
+86  
+	gŒue
+;
+
+88  
+	gçl£
+;
+
+92 
+	gMixšg
+::
+cÚsÞe_commªds
+() {
+
+96 
+Mixšg
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+97 
+EMSdeviû
+::
+show_v®ues
+(
+sh–l
+);
+
+99 ià(
+	gty³_
+ =ð
+Ty³
+::
+NONE
+) {
+
+103 ià(
+	gty³_
+ =ð
+Ty³
+::
+WWC
+) {
+
+104 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” Cœcu™"), 
+hc_
+, 
+nuÎ±r
+);
+
+105 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Cu¼’ˆw¬m w©”�em³¿tu»"), 
+æowTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+106 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Cu¼’ˆpum°¡©us"), 
+pump_
+, 
+nuÎ±r
+);
+
+107 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Cu¼’ˆ‹m³¿tu» s�tus"), 
+¡©us_
+, 
+nuÎ±r
+);
+
+109 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("H—tšg Cœcu™"), 
+hc_
+, 
+nuÎ±r
+);
+
+110 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Cu¼’ˆæow�em³¿tu»"), 
+æowTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+111 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("S‘pošˆæow�em³¿tu»"), 
+æowS‘Temp_
+, 
+F_
+(
+deg»es
+));
+
+112 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Cu¼’ˆpum°¡©us"), 
+pump_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+113 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Cu¼’ˆv®v�¡©us"), 
+¡©us_
+, 
+F_
+(
+³rûÁ
+));
+
+117 
+	gsh–l
+.
+´šŽn
+();
+
+122 
+	gMixšg
+::
+publish_v®ues
+() {
+
+123 
+S�ticJsÚDocum’t
+<
+EMSESP_MAX_JSON_SIZE_SMALL
+> 
+doc
+;
+
+124 
+	gs
+[5];
+
+126 
+	gty³_
+) {
+
+127 
+	gTy³
+::
+HC
+:
+
+128 
+doc
+["type"] = "hc";
+
+129 ià(
+	gH–³rs
+::
+hasV®ue
+(
+æowTemp_
+)) {
+
+130 
+doc
+["æowTemp"] = ()
+æowTemp_
+ / 10;
+
+132 ià(
+	gH–³rs
+::
+hasV®ue
+(
+æowS‘Temp_
+)) {
+
+133 
+doc
+["æowS‘Temp"] = 
+æowS‘Temp_
+;
+
+135 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pump_
+)) {
+
+136 
+doc
+["pumpS�tus"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+pump_
+, 
+EMS_VALUE_BOOL
+);
+
+138 ià(
+	gH–³rs
+::
+hasV®ue
+(
+¡©us_
+)) {
+
+139 
+doc
+["v®veS�tus"] = 
+¡©us_
+;
+
+142 
+	gTy³
+::
+WWC
+:
+
+143 
+doc
+["type"] = "wwc";
+
+144 ià(
+	gH–³rs
+::
+hasV®ue
+(
+æowTemp_
+)) {
+
+145 
+doc
+["wwTemp"] = ()
+æowTemp_
+ / 10;
+
+147 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pump_
+)) {
+
+148 
+doc
+["pumpS�tus"] = 
+pump_
+;
+
+150 ià(
+	gH–³rs
+::
+hasV®ue
+(
+¡©us_
+)) {
+
+151 
+doc
+["‹mpS�tus"] = 
+¡©us_
+;
+
+154 
+	gTy³
+::
+NONE
+:
+
+159 
+	gtÝic
+[30];
+
+160 
+¡¾ýy
+(
+tÝic
+, "mixing_data", 30);
+
+161 
+¡¾ÿt
+(
+tÝic
+, 
+H–³rs
+::
+™ß
+(
+s
+, 
+g‘_deviû_id
+() - 0x20 + 1), 30);
+
+162 
+	gMq‰
+::
+publish
+(
+tÝic
+, 
+doc
+);
+
+168 
+	gMixšg
+::
+´oûss_MMPLUSS�tusMes§ge_HC
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+169 
+ty³_
+ = 
+Ty³
+::
+HC
+;
+
+170 
+	ghc_
+ = 
+‹Ëg¿m
+->
+ty³_id
+ - 0x02D7 + 1;
+
+171 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æowTemp_
+, 3);
+
+172 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æowS‘Temp_
+, 5);
+
+173 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pump_
+, 0);
+
+174 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+¡©us_
+, 2);
+
+180 
+	gMixšg
+::
+´oûss_MMPLUSS�tusMes§ge_WWC
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+181 
+ty³_
+ = 
+Ty³
+::
+WWC
+;
+
+182 
+	ghc_
+ = 
+‹Ëg¿m
+->
+ty³_id
+ - 0x0331 + 1;
+
+183 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æowTemp_
+, 0);
+
+184 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pump_
+, 2);
+
+185 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+¡©us_
+, 11);
+
+191 
+	gMixšg
+::
+´oûss_IPMS�tusMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+192 
+ty³_
+ = 
+Ty³
+::
+HC
+;
+
+193 
+	ghc_
+ = 
+g‘_deviû_id
+() - 0x20 + 1;
+
+194 
+ušt8_t
+ 
+	gismixed
+ = 0;
+
+195 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+ismixed
+, 0);
+
+196 ià(
+	gismixed
+ == 0) {
+
+199 ià(
+	gismixed
+ == 2) {
+
+200 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æowTemp_
+, 3);
+
+201 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æowS‘Temp_
+, 5);
+
+202 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+¡©us_
+, 2);
+
+204 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+pump_
+, 1, 0);
+
+210 
+	gMixšg
+::
+´oûss_MMS�tusMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+211 
+ty³_
+ = 
+Ty³
+::
+HC
+;
+
+216 
+	ghc_
+ = 
+g‘_deviû_id
+() - 0x20 + 1;
+
+217 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æowTemp_
+, 1);
+
+218 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pump_
+, 3);
+
+219 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+æowS‘Temp_
+, 0);
+
+220 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+¡©us_
+, 4);
+
+223 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+224 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+228 
+	gMixšg
+::
+´oûss_MMCÚfigMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+229 
+hc_
+ = 
+g‘_deviû_id
+() - 0x20 + 1;
+
+236 
+	gMixšg
+::
+´oûss_MMS‘Mes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+237 
+hc_
+ = 
+g‘_deviû_id
+() - 0x20 + 1;
+
+242 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@src/devices/mixing.h
+
+19 #iâdeà
+EMSESP_MIXING_H
+
+
+20 
+	#EMSESP_MIXING_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+30 
+	~"mq‰.h
+"
+
+32 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+34 þas 
+	cMixšg
+ : 
+public
+ 
+EMSdeviû
+ {
+
+35 
+public
+:
+
+36 
+Mixšg
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+38 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+39 
+vœtu®
+ 
+publish_v®ues
+();
+
+40 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+41 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+42 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+44 
+	g´iv©e
+:
+
+45 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+47 
+cÚsÞe_commªds
+();
+
+49 
+´oûss_MMPLUSS�tusMes§ge_HC
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+50 
+´oûss_MMPLUSS�tusMes§ge_WWC
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+51 
+´oûss_IPMS�tusMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+52 
+´oûss_MMS�tusMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+53 
+´oûss_MMCÚfigMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+54 
+´oûss_MMS‘Mes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+56 þas 
+	cTy³
+ {
+
+57 
+	gNONE
+,
+
+58 
+	gHC
+,
+
+59 
+	gWWC
+
+
+62 
+	g´iv©e
+:
+
+63 
+ušt16_t
+ 
+hc_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+64 
+ušt16_t
+ 
+	gæowTemp_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+65 
+ušt8_t
+ 
+	gpump_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+66 
+št8_t
+ 
+	g¡©us_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+67 
+ušt8_t
+ 
+	gæowS‘Temp_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+68 
+Ty³
+ 
+	gty³_
+ = Ty³::
+NONE
+;
+
+69 
+boÞ
+ 
+	gchªged_
+ = 
+çl£
+;
+
+	@src/devices/solar.cpp
+
+19 
+	~"sÞ¬.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+SÞ¬
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+SOLAR
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+SÞ¬
+::
+logg”_
+{
+F_
+(
+sÞ¬
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gSÞ¬
+::
+SÞ¬
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+29 
+LOG_DEBUG
+(
+F
+("Addšg‚ew SÞ¬ moduË w™h deviû ID 0x%02X"), 
+deviû_id
+);
+
+32 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_SM10
+) {
+
+33 
+»gi¡”_‹Ëg¿m_ty³
+(0x0097, 
+F
+("SM10MÚ™Ü"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_SM10MÚ™Ü
+(t); });
+
+36 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_SM100
+) {
+
+37 
+»gi¡”_‹Ëg¿m_ty³
+(0x0362, 
+F
+("SM100MÚ™Ü"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_SM100MÚ™Ü
+(t); });
+
+38 
+»gi¡”_‹Ëg¿m_ty³
+(0x0363, 
+F
+("SM100MÚ™Ü2"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_SM100MÚ™Ü2
+(t); });
+
+39 
+»gi¡”_‹Ëg¿m_ty³
+(0x0366, 
+F
+("SM100CÚfig"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_SM100CÚfig
+(t); });
+
+41 
+»gi¡”_‹Ëg¿m_ty³
+(0x0364, 
+F
+("SM100S�tus"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_SM100S�tus
+(t); });
+
+42 
+»gi¡”_‹Ëg¿m_ty³
+(0x036A, 
+F
+("SM100S�tus2"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_SM100S�tus2
+(t); });
+
+43 
+»gi¡”_‹Ëg¿m_ty³
+(0x038E, 
+F
+("SM100EÃrgy"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_SM100EÃrgy
+(t); });
+
+46 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_ISM
+) {
+
+47 
+»gi¡”_‹Ëg¿m_ty³
+(0x0103, 
+F
+("ISM1S�tusMes§ge"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_ISM1S�tusMes§ge
+(t); });
+
+48 
+»gi¡”_‹Ëg¿m_ty³
+(0x0101, 
+F
+("ISM1S‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_ISM1S‘
+(t); });
+
+53 
+	gSÞ¬
+::
+add_cÚ‹xt_m’u
+() {
+
+57 
+SÞ¬
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+58 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("CÞËùÜ�em³¿tu» (TS1)"), 
+cÞËùÜTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+59 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Tªk bÙtom�em³¿tu» (TS2)"), 
+�nkBÙtomTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+60 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Tªk bÙtom�em³¿tu» (TS5)"), 
+�nkBÙtomTemp2_
+, 
+F_
+(
+deg»es
+), 10);
+
+61 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("H—ˆexchªg”�em³¿tu» (TS6)"), 
+h—tExchªg”Temp_
+, 
+F_
+(
+deg»es
+), 10);
+
+62 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("SÞ¬…um°moduÏtiÚ (PS1)"), 
+sÞ¬PumpModuÏtiÚ_
+, 
+F_
+(
+³rûÁ
+));
+
+63 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Cylšd”…um°moduÏtiÚ (PS5)"), 
+cylšd”PumpModuÏtiÚ_
+, 
+F_
+(
+³rûÁ
+));
+
+64 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("V®v�(VS2è¡©us"), 
+v®veS�tus_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+65 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("SÞ¬ Pum°(PS1èaùive"), 
+sÞ¬Pump_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+67 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pumpWÜkMš_
+)) {
+
+68 
+JsÚObjeù
+ 
+d©aEËm’t
+;
+
+69 
+	gd©aEËm’t
+ = 
+roÙ
+.
+ü—‹Ne¡edObjeù
+();
+
+70 
+	gd©aEËm’t
+["Çme"] = 
+F
+("Pump working�ime");
+
+71 
+	g¡d
+::
+¡ršg
+ 
+time_¡r
+(60, '\0');
+
+72 
+¢´štf_P
+(&
+time_¡r
+[0],�ime_¡r.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%d day %d hour %d mšu‹s"), 
+pumpWÜkMš_
+ / 1440, (pumpWorkMin_ % 1440) / 60,…umpWorkMin_ % 60);
+
+73 
+	gd©aEËm’t
+["v®ue"] = 
+time_¡r
+;
+
+76 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("Tªk H—‹d"), 
+�nkH—‹d_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+77 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("CÞËùÜ shutdown"), 
+cÞËùÜShutdown_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+79 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("EÃrgy†a¡ hour"), 
+’”gyLa¡Hour_
+, 
+F_
+(
+wh
+), 10);
+
+80 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("EÃrgy�oday"), 
+’”gyToday_
+, 
+F_
+(
+wh
+));
+
+81 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, "", 
+F
+("EÃrgy�Ù®"), 
+’”gyTÙ®_
+, 
+F_
+(
+kwh
+), 10);
+
+85 
+	gSÞ¬
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+86 
+EMSdeviû
+::
+show_v®ues
+(
+sh–l
+);
+
+88 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("CÞËùÜ�em³¿tu» (TS1)"), 
+cÞËùÜTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+89 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("BÙtom�em³¿tu» (TS2)"), 
+�nkBÙtomTemp_
+, 
+F_
+(
+deg»es
+), 10);
+
+90 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("BÙtom�em³¿tu» (TS5)"), 
+�nkBÙtomTemp2_
+, 
+F_
+(
+deg»es
+), 10);
+
+91 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("H—ˆexchªg”�em³¿tu» (TS6)"), 
+h—tExchªg”Temp_
+, 
+F_
+(
+deg»es
+), 10);
+
+92 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("SÞ¬…um°moduÏtiÚ (PS1)"), 
+sÞ¬PumpModuÏtiÚ_
+, 
+F_
+(
+³rûÁ
+));
+
+93 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Cylšd”…um°moduÏtiÚ (PS5)"), 
+cylšd”PumpModuÏtiÚ_
+, 
+F_
+(
+³rûÁ
+));
+
+94 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("V®v�(VS2è¡©us"), 
+v®veS�tus_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+95 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("SÞ¬ Pum°(PS1èaùive"), 
+sÞ¬Pump_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+97 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pumpWÜkMš_
+)) {
+
+98 
+sh–l
+.
+´štæn
+(
+F
+(" Pum°wÜkšg�ime: %d day %d hour %d mšu‹s"), 
+pumpWÜkMš_
+ / 1440, (pumpWorkMin_ % 1440) / 60,…umpWorkMin_ % 60);
+
+101 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Tªk H—‹d"), 
+�nkH—‹d_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+102 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("CÞËùÜ shutdown"), 
+cÞËùÜShutdown_
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+104 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("EÃrgy†a¡ hour"), 
+’”gyLa¡Hour_
+, 
+F_
+(
+wh
+), 10);
+
+105 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("EÃrgy�oday"), 
+’”gyToday_
+, 
+F_
+(
+wh
+));
+
+106 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("EÃrgy�Ù®"), 
+’”gyTÙ®_
+, 
+F_
+(
+kwh
+), 10);
+
+110 
+	gSÞ¬
+::
+publish_v®ues
+() {
+
+111 
+S�ticJsÚDocum’t
+<
+EMSESP_MAX_JSON_SIZE_MEDIUM
+> 
+doc
+;
+
+113 
+	gs
+[10];
+
+115 ià(
+	gH–³rs
+::
+hasV®ue
+(
+cÞËùÜTemp_
+)) {
+
+116 
+doc
+["cÞËùÜTemp"] = ()
+cÞËùÜTemp_
+ / 10;
+
+119 ià(
+	gH–³rs
+::
+hasV®ue
+(
+�nkBÙtomTemp_
+)) {
+
+120 
+doc
+["�nkBÙtomTemp"] = ()
+�nkBÙtomTemp_
+ / 10;
+
+123 ià(
+	gH–³rs
+::
+hasV®ue
+(
+�nkBÙtomTemp2_
+)) {
+
+124 
+doc
+["�nkBÙtomTemp2"] = ()
+�nkBÙtomTemp2_
+ / 10;
+
+127 ià(
+	gH–³rs
+::
+hasV®ue
+(
+h—tExchªg”Temp_
+)) {
+
+128 
+doc
+["h—tExchªg”Temp"] = ()
+h—tExchªg”Temp_
+ / 10;
+
+131 ià(
+	gH–³rs
+::
+hasV®ue
+(
+sÞ¬PumpModuÏtiÚ_
+)) {
+
+132 
+doc
+["sÞ¬PumpModuÏtiÚ"] = 
+sÞ¬PumpModuÏtiÚ_
+;
+
+135 ià(
+	gH–³rs
+::
+hasV®ue
+(
+cylšd”PumpModuÏtiÚ_
+)) {
+
+136 
+doc
+["cylšd”PumpModuÏtiÚ"] = 
+cylšd”PumpModuÏtiÚ_
+;
+
+139 ià(
+	gH–³rs
+::
+hasV®ue
+(
+sÞ¬Pump_
+, 
+EMS_VALUE_BOOL
+)) {
+
+140 
+	gdoc
+["sÞ¬Pump"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+sÞ¬Pump_
+, 
+EMS_VALUE_BOOL
+);
+
+143 ià(
+	gH–³rs
+::
+hasV®ue
+(
+v®veS�tus_
+, 
+EMS_VALUE_BOOL
+)) {
+
+144 
+	gdoc
+["v®veS�tus"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+v®veS�tus_
+, 
+EMS_VALUE_BOOL
+);
+
+147 ià(
+	gH–³rs
+::
+hasV®ue
+(
+pumpWÜkMš_
+)) {
+
+148 
+doc
+["pumpWÜkMš"] = 
+pumpWÜkMš_
+;
+
+151 ià(
+	gH–³rs
+::
+hasV®ue
+(
+�nkH—‹d_
+, 
+EMS_VALUE_BOOL
+)) {
+
+152 
+	gdoc
+["�nkH—‹d"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+�nkH—‹d_
+, 
+EMS_VALUE_BOOL
+);
+
+155 ià(
+	gH–³rs
+::
+hasV®ue
+(
+cÞËùÜShutdown_
+, 
+EMS_VALUE_BOOL
+)) {
+
+156 
+	gdoc
+["cÞËùÜShutdown"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+cÞËùÜShutdown_
+, 
+EMS_VALUE_BOOL
+);
+
+159 ià(
+	gH–³rs
+::
+hasV®ue
+(
+’”gyLa¡Hour_
+)) {
+
+160 
+doc
+["’”gyLa¡Hour"] = ()
+’”gyLa¡Hour_
+ / 10;
+
+163 ià(
+	gH–³rs
+::
+hasV®ue
+(
+’”gyToday_
+)) {
+
+164 
+doc
+["’”gyToday"] = 
+’”gyToday_
+;
+
+167 ià(
+	gH–³rs
+::
+hasV®ue
+(
+’”gyTÙ®_
+)) {
+
+168 
+doc
+["’”gyTÙ®"] = ()
+’”gyTÙ®_
+ / 10;
+
+172 ià(!
+	gdoc
+.
+isNuÎ
+()) {
+
+173 
+	gMq‰
+::
+publish
+(
+F
+("sm_d©a"), 
+doc
+);
+
+178 
+boÞ
+ 
+	gSÞ¬
+::
+upd©ed_v®ues
+() {
+
+179 ià(
+chªged_
+) {
+
+180 
+chªged_
+ = 
+çl£
+;
+
+181  
+	gŒue
+;
+
+183  
+	gçl£
+;
+
+187 
+	gSÞ¬
+::
+cÚsÞe_commªds
+() {
+
+191 
+SÞ¬
+::
+´oûss_SM10MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+192 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+cÞËùÜTemp_
+, 2);
+
+193 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+�nkBÙtomTemp_
+, 5);
+
+194 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+sÞ¬PumpModuÏtiÚ_
+, 4);
+
+195 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+sÞ¬Pump_
+, 7, 1);
+
+196 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pumpWÜkMš_
+, 8);
+
+210 
+	gSÞ¬
+::
+´oûss_SM100MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+211 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+cÞËùÜTemp_
+, 0);
+
+212 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+�nkBÙtomTemp_
+, 2);
+
+213 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+�nkBÙtomTemp2_
+, 16);
+
+214 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+h—tExchªg”Temp_
+, 20);
+
+217 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+218 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+222 
+	gSÞ¬
+::
+´oûss_SM100MÚ™Ü2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+226 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+230 
+SÞ¬
+::
+´oûss_SM100CÚfig
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+231 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+avažabž™yFÏg_
+, 0);
+
+232 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+cÚfigFÏg_
+, 1);
+
+233 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+u£rFÏg_
+, 2);
+
+242 
+	gSÞ¬
+::
+´oûss_SM100S�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+243 
+ušt8_t
+ 
+sÞ¬pumpmod
+ = 
+sÞ¬PumpModuÏtiÚ_
+;
+
+244 
+ušt8_t
+ 
+	gcylšd”pumpmod
+ = 
+cylšd”PumpModuÏtiÚ_
+;
+
+245 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+cylšd”PumpModuÏtiÚ_
+, 8);
+
+246 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+sÞ¬PumpModuÏtiÚ_
+, 9);
+
+248 ià(
+	gsÞ¬pumpmod
+ =ð0 && 
+sÞ¬PumpModuÏtiÚ_
+ == 100) {
+
+249 
+sÞ¬PumpModuÏtiÚ_
+ = 15;
+
+252 ià(
+	gcylšd”pumpmod
+ =ð0 && 
+cylšd”PumpModuÏtiÚ_
+ == 100) {
+
+253 
+cylšd”PumpModuÏtiÚ_
+ = 15;
+
+255 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+�nkH—‹d_
+, 3, 1);
+
+256 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+cÞËùÜShutdown_
+, 3, 0);
+
+265 
+	gSÞ¬
+::
+´oûss_SM100S�tus2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+266 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+v®veS�tus_
+, 4, 2);
+
+267 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+sÞ¬Pump_
+, 10, 2);
+
+274 
+	gSÞ¬
+::
+´oûss_SM100EÃrgy
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+275 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+’”gyLa¡Hour_
+, 0);
+
+276 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+’”gyToday_
+, 4);
+
+277 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+’”gyTÙ®_
+, 8);
+
+284 
+	gSÞ¬
+::
+´oûss_ISM1S�tusMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+285 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+cÞËùÜTemp_
+, 4);
+
+286 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+�nkBÙtomTemp_
+, 6);
+
+287 
+ušt16_t
+ 
+	gWh
+ = 0xFFFF;
+
+288 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+Wh
+, 2);
+
+290 ià(
+	gWh
+ != 0xFFFF) {
+
+291 
+’”gyLa¡Hour_
+ = 
+Wh
+ * 10;
+
+294 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+sÞ¬Pump_
+, 8, 0);
+
+295 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+pumpWÜkMš_
+, 10, 3);
+
+296 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+cÞËùÜShutdown_
+, 9, 0);
+
+297 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+�nkH—‹d_
+, 9, 2);
+
+303 
+	gSÞ¬
+::
+´oûss_ISM1S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+304 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+£�ošt_maxBÙtomTemp_
+, 6);
+
+	@src/devices/solar.h
+
+19 #iâdeà
+EMSESP_SOLAR_H
+
+
+20 
+	#EMSESP_SOLAR_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+30 
+	~"mq‰.h
+"
+
+32 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+34 þas 
+	cSÞ¬
+ : 
+public
+ 
+EMSdeviû
+ {
+
+35 
+public
+:
+
+36 
+SÞ¬
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+38 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+39 
+vœtu®
+ 
+publish_v®ues
+();
+
+40 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+41 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+42 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+44 
+	g´iv©e
+:
+
+45 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+47 
+cÚsÞe_commªds
+();
+
+49 
+št16_t
+ 
+	gcÞËùÜTemp_
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+50 
+št16_t
+ 
+	g�nkBÙtomTemp_
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+51 
+št16_t
+ 
+	g�nkBÙtomTemp2_
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+52 
+št16_t
+ 
+	gh—tExchªg”Temp_
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+53 
+ušt8_t
+ 
+	gsÞ¬PumpModuÏtiÚ_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+54 
+ušt8_t
+ 
+	gcylšd”PumpModuÏtiÚ_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+55 
+ušt8_t
+ 
+	gsÞ¬Pump_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+56 
+ušt8_t
+ 
+	gv®veS�tus_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+57 
+št16_t
+ 
+	g£�ošt_maxBÙtomTemp_
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+58 
+ušt32_t
+ 
+	g’”gyLa¡Hour_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+59 
+ušt32_t
+ 
+	g’”gyToday_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+60 
+ušt32_t
+ 
+	g’”gyTÙ®_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+61 
+ušt32_t
+ 
+	gpumpWÜkMš_
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+62 
+ušt8_t
+ 
+	g�nkH—‹d_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+63 
+ušt8_t
+ 
+	gcÞËùÜShutdown_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+65 
+ušt8_t
+ 
+	gavažabž™yFÏg_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+66 
+ušt8_t
+ 
+	gcÚfigFÏg_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+67 
+ušt8_t
+ 
+	gu£rFÏg_
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+68 
+boÞ
+ 
+	gchªged_
+ = 
+çl£
+;
+
+70 
+´oûss_SM10MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+71 
+´oûss_SM100MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+72 
+´oûss_SM100MÚ™Ü2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+74 
+´oûss_SM100CÚfig
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+76 
+´oûss_SM100S�tus
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+77 
+´oûss_SM100S�tus2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+78 
+´oûss_SM100EÃrgy
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+80 
+´oûss_ISM1S�tusMes§ge
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+81 
+´oûss_ISM1S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+	@src/devices/switch.cpp
+
+19 
+	~"sw™ch.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+Sw™ch
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+SWITCH
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+Sw™ch
+::
+logg”_
+{
+F_
+(), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gSw™ch
+::
+Sw™ch
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+31 
+	gSw™ch
+::
+add_cÚ‹xt_m’u
+() {
+
+34 
+Sw™ch
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+38 
+Sw™ch
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+43 
+Sw™ch
+::
+publish_v®ues
+() {
+
+47 
+boÞ
+ 
+Sw™ch
+::
+upd©ed_v®ues
+() {
+
+48  
+çl£
+;
+
+52 
+	gSw™ch
+::
+cÚsÞe_commªds
+() {
+
+	@src/devices/switch.h
+
+19 #iâdeà
+EMSESP_SWITCH_H
+
+
+20 
+	#EMSESP_SWITCH_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+30 
+	~"mq‰.h
+"
+
+32 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+34 þas 
+	cSw™ch
+ : 
+public
+ 
+EMSdeviû
+ {
+
+35 
+public
+:
+
+36 
+Sw™ch
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+38 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+39 
+vœtu®
+ 
+publish_v®ues
+();
+
+40 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+41 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+42 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+44 
+	g´iv©e
+:
+
+45 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+47 
+cÚsÞe_commªds
+();
+
+	@src/devices/thermostat.cpp
+
+19 
+	~"th”mo¡©.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+REGISTER_FACTORY
+(
+Th”mo¡©
+, 
+EMSdeviû
+::
+DeviûTy³
+::
+THERMOSTAT
+);
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+Th”mo¡©
+::
+logg”_
+{
+F_
+(
+th”mo¡©
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	gTh”mo¡©
+::
+Th”mo¡©
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+28 : 
+EMSdeviû
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+) {
+
+29 
+ušt8_t
+ 
+	gaùu®_ma¡”_th”mo¡©
+ = 
+EMSESP
+::
+aùu®_ma¡”_th”mo¡©
+();
+
+30 
+ušt8_t
+ 
+	gma¡”_th”mo¡©
+ = 
+EMSESP_DEFAULT_MASTER_THERMOSTAT
+;
+
+31 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+32 
+ma¡”_th”mo¡©
+ = 
+£‰šgs
+.master_thermostat;
+
+35 
+ušt8_t
+ 
+	gmod–
+ = 
+this
+->
+mod–
+();
+
+40 ià((
+	gma¡”_th”mo¡©
+ =ð
+deviû_id
+)
+
+41 || ((
+ma¡”_th”mo¡©
+ =ð
+EMSESP_DEFAULT_MASTER_THERMOSTAT
+è&& (
+deviû_id
+ < 0x19)
+
+42 && ((
+aùu®_ma¡”_th”mo¡©
+ =ð
+EMSESP_DEFAULT_MASTER_THERMOSTAT
+è|| (
+deviû_id
+ <‡ctual_master_thermostat)))) {
+
+43 
+EMSESP
+::
+aùu®_ma¡”_th”mo¡©
+(
+deviû_id
+);
+
+44 
+	gaùu®_ma¡”_th”mo¡©
+ = 
+deviû_id
+;
+
+45 
+	gthis
+->
+»£rve_mem
+(25);
+
+48 
+»gi¡”_‹Ëg¿m_ty³
+(
+EMS_TYPE_RCOutdoÜTemp
+, 
+F
+("RCOutdoÜTemp"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RCOutdoÜTemp
+(t); });
+
+49 
+»gi¡”_‹Ëg¿m_ty³
+(
+EMS_TYPE_RCTime
+, 
+F
+("RCTime"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RCTime
+(t); });
+
+52 ià(
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC10
+) {
+
+53 
+mÚ™Ü_ty³ids
+ = {0xB1};
+
+54 
+	g£t_ty³ids
+ = {0xB0};
+
+55 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+56 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("RC10MÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC10MÚ™Ü
+(t); });
+
+57 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("RC10S‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC10S‘
+(t); });
+
+61 } ià((
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC35
+è|| (
+mod–
+ =ðEMSdeviû::
+EMS_DEVICE_FLAG_RC30_1
+)) {
+
+62 
+mÚ™Ü_ty³ids
+ = {0x3E, 0x48, 0x52, 0x5C};
+
+63 
+	g£t_ty³ids
+ = {0x3D, 0x47, 0x51, 0x5B};
+
+64 
+	gtim”_ty³ids
+ = {0x3F, 0x49, 0x53, 0x5D};
+
+65 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+66 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("RC35MÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC35MÚ™Ü
+(t); });
+
+67 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("RC35S‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC35S‘
+(t); });
+
+69 
+»gi¡”_‹Ëg¿m_ty³
+(
+EMS_TYPE_IBAS‘tšgs
+, 
+F
+("IBAS‘tšgs"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_IBAS‘tšgs
+(t); });
+
+70 
+»gi¡”_‹Ëg¿m_ty³
+(
+EMS_TYPE_wwS‘tšgs
+, 
+F
+("WWS‘tšgs"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC35wwS‘tšgs
+(t); });
+
+73 } ià(
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC20
+) {
+
+74 
+mÚ™Ü_ty³ids
+ = {0x91};
+
+75 
+	g£t_ty³ids
+ = {0xA8};
+
+76 ià(
+	gaùu®_ma¡”_th”mo¡©
+ =ð
+deviû_id
+) {
+
+77 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+78 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("RC20MÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC20MÚ™Ü
+(t); });
+
+79 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("RC20S‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC20S‘
+(t); });
+
+82 
+»gi¡”_‹Ëg¿m_ty³
+(0xAF, 
+F
+("RC20RemÙe"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC20RemÙe
+(t); });
+
+85 } ià(
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC20_2
+) {
+
+86 
+mÚ™Ü_ty³ids
+ = {0xAE};
+
+87 
+	g£t_ty³ids
+ = {0xAD};
+
+88 ià(
+	gaùu®_ma¡”_th”mo¡©
+ =ð
+deviû_id
+) {
+
+89 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+90 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("RC20MÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC20MÚ™Ü_2
+(t); });
+
+91 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("RC20S‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC20S‘_2
+(t); });
+
+94 
+»gi¡”_‹Ëg¿m_ty³
+(0xAF, 
+F
+("RC20RemÙe"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC20RemÙe
+(t); });
+
+97 } ià(
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC30
+) {
+
+98 
+mÚ™Ü_ty³ids
+ = {0x41};
+
+99 
+	g£t_ty³ids
+ = {0xA7};
+
+100 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+101 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("RC30MÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC30MÚ™Ü
+(t); });
+
+102 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("RC30S‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC30S‘
+(t); });
+
+106 } ià(
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_EASY
+) {
+
+107 
+mÚ™Ü_ty³ids
+ = {0x0A};
+
+108 
+	g£t_ty³ids
+ = {};
+
+109 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[0], 
+F
+("EasyMÚ™Ü"), 
+Œue
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_EasyMÚ™Ü
+(t); });
+
+112 } ià((
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC300
+è|| (
+mod–
+ =ðEMSdeviû::
+EMS_DEVICE_FLAG_RC100
+)) {
+
+113 
+mÚ™Ü_ty³ids
+ = {0x02A5, 0x02A6, 0x02A7, 0x02A8};
+
+114 
+	g£t_ty³ids
+ = {0x02B9, 0x02BA, 0x02BB, 0x02BC};
+
+115 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+116 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("RC300MÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC300MÚ™Ü
+(t); });
+
+117 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("RC300S‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC300S‘
+(t); });
+
+119 
+»gi¡”_‹Ëg¿m_ty³
+(0x31D, 
+F
+("RC300WWmode"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC300WWmode
+(t); });
+
+120 
+»gi¡”_‹Ëg¿m_ty³
+(0x31E, 
+F
+("RC300WWmode"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_RC300WWmode
+(t); });
+
+123 } ià(
+	gmod–
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+124 
+mÚ™Ü_ty³ids
+ = {0x016F, 0x0170, 0x0171, 0x0172};
+
+125 
+	g£t_ty³ids
+ = {0x0165, 0x0166, 0x0167, 0x0168};
+
+126 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+127 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("Junk”sMÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_Junk”sMÚ™Ü
+(t); });
+
+128 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("Junk”sS‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_Junk”sS‘
+(t); });
+
+131 } ià(
+	gmod–
+ =ð(
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+ | EMSdeviû::
+EMS_DEVICE_FLAG_JUNKERS_2
+)) {
+
+132 
+mÚ™Ü_ty³ids
+ = {0x016F, 0x0170, 0x0171, 0x0172};
+
+133 
+	g£t_ty³ids
+ = {0x0179, 0x017A, 0x017B, 0x017C};
+
+134 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+135 
+»gi¡”_‹Ëg¿m_ty³
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+F
+("Junk”sMÚ™Ü"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_Junk”sMÚ™Ü
+(t); });
+
+136 
+»gi¡”_‹Ëg¿m_ty³
+(
+£t_ty³ids
+[
+i
+], 
+F
+("Junk”sS‘"), 
+çl£
+, [&](
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+t
+è{ 
+´oûss_Junk”sS‘2
+(t); });
+
+140 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰S‘tšgsS”viû
+()->
+»ad
+([&](
+Mq‰S‘tšgs
+ & 
+£‰šgs
+) {
+
+141 
+mq‰_fÜm©_
+ = 
+£‰šgs
+.
+mq‰_fÜm©
+;
+
+144 ià(
+	gaùu®_ma¡”_th”mo¡©
+ !ð
+deviû_id
+) {
+
+145 
+LOG_DEBUG
+(
+F
+("Addšg‚ew�h”mo¡© w™h deviû ID 0x%02X"), 
+deviû_id
+);
+
+148 
+LOG_DEBUG
+(
+F
+("Addšg‚ew�h”mo¡© w™h deviû ID 0x%02X (a ma¡”)"), 
+deviû_id
+);
+
+149 
+add_commªds
+();
+
+152 
+	gh—tšg_cœcu™s_
+.
+»£rve
+(4);
+
+156 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+157 
+	gEMSESP
+::
+£nd_»ad_»que¡
+(
+mÚ™Ü_ty³ids
+[
+i
+], 
+deviû_id
+);
+
+160 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	g£t_ty³ids
+.
+size
+(); i++) {
+
+161 
+	gEMSESP
+::
+£nd_»ad_»que¡
+(
+£t_ty³ids
+[
+i
+], 
+deviû_id
+);
+
+166 
+	gTh”mo¡©
+::
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) {
+
+167 
+ušt8_t
+ 
+æags
+ = 
+this
+->
+mod–
+();
+
+169 cÚ¡‡utØ& 
+	ghc
+ : 
+h—tšg_cœcu™s_
+) {
+
+170 ià(!
+H–³rs
+::
+hasV®ue
+(
+hc
+->
+£�ošt_roomTemp
+)) {
+
+175 
+ušt8_t
+ 
+	gfÜm©_£�ošt
+, 
+	gfÜm©_cu¼
+;
+
+176 
+	gæags
+) {
+
+177 
+	gEMS_DEVICE_FLAG_EASY
+:
+
+178 
+fÜm©_£�ošt
+ = 100;
+
+179 
+	gfÜm©_cu¼
+ = 100;
+
+181 
+	gEMS_DEVICE_FLAG_JUNKERS
+:
+
+182 
+fÜm©_£�ošt
+ = 10;
+
+183 
+	gfÜm©_cu¼
+ = 10;
+
+186 
+fÜm©_£�ošt
+ = 2;
+
+187 
+	gfÜm©_cu¼
+ = 10;
+
+192 
+	g¡d
+::
+¡ršg
+ 
+hc_¡r
+(5, '\0');
+
+193 
+¢´štf_P
+(&
+hc_¡r
+[0], hc_¡r.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("hc%d: "), 
+hc
+->
+hc_num
+());
+
+195 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, 
+hc_¡r
+, 
+F
+("Cu¼’ˆroom�em³¿tu»"), 
+hc
+->
+cu¼_roomTemp
+, 
+F_
+(
+deg»es
+), 
+fÜm©_cu¼
+);
+
+196 
+»nd”_v®ue_jsÚ
+(
+roÙ
+, 
+hc_¡r
+, 
+F
+("S‘pošˆroom�em³¿tu»"), 
+hc
+->
+£�ošt_roomTemp
+, 
+F_
+(
+deg»es
+), 
+fÜm©_£�ošt
+);
+
+197 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+mode
+)) {
+
+198 
+JsÚObjeù
+ 
+d©aEËm’t
+;
+
+199 
+	gd©aEËm’t
+ = 
+roÙ
+.
+ü—‹Ne¡edObjeù
+();
+
+200 
+	g¡d
+::
+¡ršg
+ 
+mode_¡r
+(15, '\0');
+
+201 
+¢´štf_P
+(&
+mode_¡r
+[0], mode_¡r.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%sMode"), 
+hc_¡r
+.
+c_¡r
+());
+
+202 
+	gd©aEËm’t
+["Çme"] = 
+mode_¡r
+;
+
+203 
+	g¡d
+::
+¡ršg
+ 
+mod‘y³_¡r
+(20, '\0');
+
+204 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+summ”_mode
+) && hc->summer_mode) {
+
+205 
+¢´štf_P
+(&
+mod‘y³_¡r
+[0], mod‘y³_¡r.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("% - summ”"), 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode
+(
+æags
+)).
+c_¡r
+());
+
+206 } ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+hÞiday_mode
+) && hc->holiday_mode) {
+
+207 
+¢´štf_P
+(&
+mod‘y³_¡r
+[0], mod‘y³_¡r.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("% - hÞiday"), 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode
+(
+æags
+)).
+c_¡r
+());
+
+208 } ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+mode_ty³
+)) {
+
+209 
+¢´štf_P
+(&
+mod‘y³_¡r
+[0],
+
+210 
+mod‘y³_¡r
+.
+ÿ·c™y
+() + 1,
+
+211 
+PSTR
+("%s - %s"),
+
+212 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode
+(
+æags
+)).
+c_¡r
+(),
+
+213 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode_ty³
+(
+æags
+)).
+c_¡r
+());
+
+215 
+¢´štf_P
+(&
+mod‘y³_¡r
+[0], mod‘y³_¡r.
+ÿ·c™y
+(è+ 1, 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode
+(
+æags
+)).
+c_¡r
+());
+
+217 
+	gd©aEËm’t
+["v®ue"] = 
+mod‘y³_¡r
+;
+
+223 
+	gTh”mo¡©
+::
+add_cÚ‹xt_m’u
+() {
+
+225 ià(
+this
+->
+g‘_deviû_id
+(è!ð
+EMSESP
+::
+aùu®_ma¡”_th”mo¡©
+()) {
+
+229 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+MAIN
+,
+
+230 
+CommªdFÏgs
+::
+USER
+,
+
+231 
+æash_¡ršg_veùÜ
+{
+F_
+(
+th”mo¡©
+)},
+
+232 [&](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+233 
+Th”mo¡©
+::
+cÚsÞe_commªds
+(
+sh–l
+, 
+Sh–lCÚ‹xt
+::
+THERMOSTAT
+);
+
+234 
+add_cÚ‹xt_commªds
+(
+Sh–lCÚ‹xt
+::
+THERMOSTAT
+);
+
+240 
+boÞ
+ 
+	gTh”mo¡©
+::
+upd©ed_v®ues
+() {
+
+242 ià(
+EMSESP
+::
+aùu®_ma¡”_th”mo¡©
+(è!ð
+this
+->
+g‘_deviû_id
+()) {
+
+243  
+çl£
+;
+
+245 ià(
+	gchªged_
+) {
+
+246 
+	gchªged_
+ = 
+çl£
+;
+
+247  
+	gŒue
+;
+
+249  
+	gçl£
+;
+
+253 
+	gTh”mo¡©
+::
+publish_v®ues
+() {
+
+255 ià(
+EMSESP
+::
+aùu®_ma¡”_th”mo¡©
+(è!ð
+this
+->
+g‘_deviû_id
+()) {
+
+259 
+ušt8_t
+ 
+	gæags
+ = 
+this
+->
+mod–
+();
+
+261 
+	gS�ticJsÚDocum’t
+<
+	gEMSESP_MAX_JSON_SIZE_MEDIUM
+> 
+	gdoc
+;
+
+262 
+JsÚObjeù
+ 
+	groÙTh”mo¡©
+ = 
+doc
+.
+to
+<JsonObject>();
+
+263 
+JsÚObjeù
+ 
+	gd©aTh”mo¡©
+;
+
+267 ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_RC35
+ || 
+æags
+ =ð
+EMS_DEVICE_FLAG_RC30_1
+) {
+
+268 ià(
+d©‘ime_
+.
+size
+()) {
+
+269 
+roÙTh”mo¡©
+["time"] = 
+d©‘ime_
+.
+c_¡r
+();
+
+271 ià(
+	gH–³rs
+::
+hasV®ue
+(
+dam³doutdoÜ‹mp_
+)) {
+
+272 
+roÙTh”mo¡©
+["dam³d‹mp"] = 
+dam³doutdoÜ‹mp_
+;
+
+274 ià(
+	gH–³rs
+::
+hasV®ue
+(
+‹mp£nsÜ1_
+)) {
+
+275 
+roÙTh”mo¡©
+["š‰emp1"] = ()
+‹mp£nsÜ1_
+ / 10;
+
+277 ià(
+	gH–³rs
+::
+hasV®ue
+(
+‹mp£nsÜ2_
+)) {
+
+278 
+roÙTh”mo¡©
+["š‰emp2"] = ()
+‹mp£nsÜ2_
+ / 10;
+
+280 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ibaC®IÁTem³¿tu»_
+)) {
+
+281 
+roÙTh”mo¡©
+["štoff£t"] = ()
+ibaC®IÁTem³¿tu»_
+ / 2;
+
+283 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ibaMšExtTem³¿tu»_
+)) {
+
+284 
+roÙTh”mo¡©
+["mšex‰emp"] = ()
+ibaMšExtTem³¿tu»_
+;
+
+286 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ibaBuždšgTy³_
+)) {
+
+287 ià(
+ibaBuždšgTy³_
+ == 0) {
+
+288 
+roÙTh”mo¡©
+["building"] = "light";
+
+289 } ià(
+	gibaBuždšgTy³_
+ == 1) {
+
+290 
+roÙTh”mo¡©
+["building"] = "medium";
+
+291 } ià(
+	gibaBuždšgTy³_
+ == 2) {
+
+292 
+roÙTh”mo¡©
+["building"] = "heavy";
+
+295 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wwMode_
+)) {
+
+296 ià(
+wwMode_
+ == 0) {
+
+297 
+roÙTh”mo¡©
+["wwmode"] = "off";
+
+298 } ià(
+	gwwMode_
+ == 1) {
+
+299 
+roÙTh”mo¡©
+["wwmode"] = "on";
+
+300 } ià(
+	gwwMode_
+ == 2) {
+
+301 
+roÙTh”mo¡©
+["wwmode"] = "auto";
+
+306 ià(
+	gmq‰_fÜm©_
+ !ð
+MQTT_fÜm©
+::
+NESTED
+) {
+
+307 
+Mq‰
+::
+publish
+(
+F
+("th”mo¡©_d©a"), 
+doc
+);
+
+308 
+	groÙTh”mo¡©
+ = 
+doc
+.
+to
+<
+JsÚObjeù
+>();
+
+313 
+boÞ
+ 
+	ghas_d©a
+ = 
+çl£
+;
+
+314 cÚ¡‡utØ& 
+	ghc
+ : 
+h—tšg_cœcu™s_
+) {
+
+315 ià(
+hc
+->
+is_aùive
+()) {
+
+316 
+has_d©a
+ = 
+Œue
+;
+
+320 ià((
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+NESTED
+è|| (
+mq‰_fÜm©_
+ =ðMQTT_fÜm©::
+HA
+)) {
+
+321 
+hc_Çme
+[10];
+
+322 
+¡¾ýy
+(
+hc_Çme
+, "hc", 10);
+
+323 
+	gs
+[3];
+
+324 
+¡¾ÿt
+(
+hc_Çme
+, 
+H–³rs
+::
+™ß
+(
+s
+, 
+hc
+->
+hc_num
+()), 10);
+
+325 
+	gd©aTh”mo¡©
+ = 
+roÙTh”mo¡©
+.
+ü—‹Ne¡edObjeù
+(
+hc_Çme
+);
+
+327 
+	gd©aTh”mo¡©
+ = 
+roÙTh”mo¡©
+;
+
+331 
+ušt8_t
+ 
+	g£�ošt_‹mp_divid”
+;
+
+332 
+ušt8_t
+ 
+	gcu¼_‹mp_divid”
+;
+
+333 ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_EASY
+) {
+
+334 
+£�ošt_‹mp_divid”
+ = 100;
+
+335 
+	gcu¼_‹mp_divid”
+ = 100;
+
+336 } ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+337 
+£�ošt_‹mp_divid”
+ = 10;
+
+338 
+	gcu¼_‹mp_divid”
+ = 10;
+
+340 
+	g£�ošt_‹mp_divid”
+ = 2;
+
+341 
+	gcu¼_‹mp_divid”
+ = 10;
+
+344 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+£�ošt_roomTemp
+)) {
+
+345 
+d©aTh”mo¡©
+["£Éemp"] = 
+H–³rs
+::
+round2
+(()
+hc
+->
+£�ošt_roomTemp
+ / 
+£�ošt_‹mp_divid”
+);
+
+348 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+cu¼_roomTemp
+)) {
+
+349 
+d©aTh”mo¡©
+["cu¼‹mp"] = 
+H–³rs
+::
+round2
+(()
+hc
+->
+cu¼_roomTemp
+ / 
+cu¼_‹mp_divid”
+);
+
+352 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+day‹mp
+)) {
+
+353 ià(
+æags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+354 
+d©aTh”mo¡©
+["h—‰emp"] = ()
+hc
+->
+day‹mp
+ / 2;
+
+356 
+	gd©aTh”mo¡©
+["day‹mp"] = ()
+hc
+->
+day‹mp
+ / 2;
+
+359 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+nigh‰emp
+)) {
+
+360 ià(
+æags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+361 
+d©aTh”mo¡©
+["ecÙemp"] = ()
+hc
+->
+nigh‰emp
+ / 2;
+
+363 
+	gd©aTh”mo¡©
+["nigh‰emp"] = ()
+hc
+->
+nigh‰emp
+ / 2;
+
+366 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+hÞiday‹mp
+)) {
+
+367 
+d©aTh”mo¡©
+["hÞiday‹mp"] = ()
+hc
+->
+hÞiday‹mp
+ / 2;
+
+370 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+noäo¡‹mp
+)) {
+
+371 
+d©aTh”mo¡©
+["noäo¡‹mp"] = ()
+hc
+->
+noäo¡‹mp
+ / 2;
+
+374 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+h—tšgty³
+)) {
+
+375 
+d©aTh”mo¡©
+["h—tšgty³"] = 
+hc
+->
+h—tšgty³
+;
+
+378 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+�rg‘æow‹mp
+)) {
+
+379 
+d©aTh”mo¡©
+["�rg‘æow‹mp"] = 
+hc
+->
+�rg‘æow‹mp
+;
+
+382 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+off£‰emp
+)) {
+
+383 
+d©aTh”mo¡©
+["off£‰emp"] = 
+hc
+->
+off£‰emp
+ / 2;
+
+386 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+desigÁemp
+)) {
+
+387 
+d©aTh”mo¡©
+["desigÁemp"] = 
+hc
+->
+desigÁemp
+;
+
+389 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+summ”‹mp
+)) {
+
+390 
+d©aTh”mo¡©
+["summ”‹mp"] = 
+hc
+->
+summ”‹mp
+;
+
+394 ià((
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+mode
+)è|| (
+mq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+HA
+)) {
+
+395 
+ušt8_t
+ 
+hc_mode
+ = 
+hc
+->
+g‘_mode
+(
+æags
+);
+
+397 ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+HA
+) {
+
+398 ià((
+hc_mode
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+è|| (hc_mod�=ðH—tšgCœcu™::Mode::
+DAY
+)) {
+
+399 
+hc_mode
+ = 
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+;
+
+400 } ià((
+	ghc_mode
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+è|| (
+hc_mode
+ =ðH—tšgCœcu™::Mode::
+OFF
+)) {
+
+401 
+hc_mode
+ = 
+H—tšgCœcu™
+::
+Mode
+::
+OFF
+;
+
+403 
+	ghc_mode
+ = 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+;
+
+406 
+	gd©aTh”mo¡©
+["mode"] = 
+mode_to¡ršg
+(
+hc_mode
+);
+
+411 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+summ”_mode
+) && hc->summer_mode) {
+
+412 
+d©aTh”mo¡©
+["mod‘y³"] = 
+F
+("summer");
+
+413 } ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+hÞiday_mode
+) && hc->holiday_mode) {
+
+414 
+d©aTh”mo¡©
+["mod‘y³"] = 
+F
+("holiday");
+
+415 } ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+mode_ty³
+)) {
+
+416 
+d©aTh”mo¡©
+["mod‘y³"] = 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode_ty³
+(
+æags
+));
+
+422 ià((
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+SINGLE
+è|| (
+mq‰_fÜm©_
+ =ðMQTT_fÜm©::
+CUSTOM
+)) {
+
+423 
+tÝic
+[30];
+
+424 
+	gs
+[3];
+
+425 
+¡¾ýy
+(
+tÝic
+, "thermostat_data", 30);
+
+426 
+¡¾ÿt
+(
+tÝic
+, 
+H–³rs
+::
+™ß
+(
+s
+, 
+hc
+->
+hc_num
+()), 30);
+
+427 
+	gMq‰
+::
+publish
+(
+tÝic
+, 
+doc
+);
+
+428 
+	groÙTh”mo¡©
+ = 
+doc
+.
+to
+<
+JsÚObjeù
+>();
+
+429 } ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+HA
+) {
+
+431 ià(!
+hc
+->
+ha_»gi¡”ed
+()) {
+
+432 
+»gi¡”_mq‰_ha_cÚfig
+(
+hc
+->
+hc_num
+());
+
+433 
+	ghc
+->
+ha_»gi¡”ed
+(
+Œue
+);
+
+436 
+	g¡d
+::
+¡ršg
+ 
+tÝic
+(100, '\0');
+
+437 
+¢´štf_P
+(&
+tÝic
+[0],�Ýic.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("hom—ssi¡ªt/þim©e/ems-e¥/hc%d/¡©e"), 
+hc
+->
+hc_num
+());
+
+438 
+	gMq‰
+::
+publish
+(
+tÝic
+, 
+doc
+);
+
+443 ià(!
+	ghas_d©a
+) {
+
+448 ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+NESTED
+) {
+
+449 
+Mq‰
+::
+publish
+(
+F
+("th”mo¡©_d©a"), 
+doc
+);
+
+455 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> Th”mo¡©::
+h—tšg_cœcu™
+(cÚ¡ 
+ušt8_t
+ 
+hc_num
+) {
+
+457 ià(
+hc_num
+ =ð
+AUTO_HEATING_CIRCUIT
+) {
+
+458 cÚ¡‡utØ& 
+h—tšg_cœcu™
+ : 
+h—tšg_cœcu™s_
+) {
+
+459  
+h—tšg_cœcu™
+;
+
+464 cÚ¡‡utØ& 
+	gh—tšg_cœcu™
+ : 
+h—tšg_cœcu™s_
+) {
+
+465 ià(
+h—tšg_cœcu™
+->
+hc_num
+() == hc_num) {
+
+466  
+h—tšg_cœcu™
+;
+
+470  
+	gnuÎ±r
+;
+
+476 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> Th”mo¡©::
+h—tšg_cœcu™
+(
+¡d
+::sh¬ed_±r<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+478 
+ušt8_t
+ 
+hc_num
+ = 0;
+
+479 
+boÞ
+ 
+	gtoggË_
+ = 
+çl£
+;
+
+481 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gmÚ™Ü_ty³ids
+.
+size
+(); i++) {
+
+482 ià(
+	gmÚ™Ü_ty³ids
+[
+i
+] =ð
+‹Ëg¿m
+->
+ty³_id
+) {
+
+483 
+hc_num
+ = 
+i
+ + 1;
+
+484 
+	gtoggË_
+ = 
+Œue
+;
+
+490 ià(
+	ghc_num
+ == 0) {
+
+491 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	g£t_ty³ids
+.
+size
+(); i++) {
+
+492 ià(
+	g£t_ty³ids
+[
+i
+] =ð
+‹Ëg¿m
+->
+ty³_id
+) {
+
+493 
+hc_num
+ = 
+i
+ + 1;
+
+500 ià(
+	g‹Ëg¿m
+->
+	g¤c
+ >ð0x18 && 
+‹Ëg¿m
+->
+¤c
+ <= 0x1B) {
+
+501 
+hc_num
+ = 
+‹Ëg¿m
+->
+¤c
+ - 0x17;
+
+505 ià(
+	ghc_num
+ == 0) {
+
+506  
+nuÎ±r
+;
+
+511 cÚ¡‡utØ& 
+	gh—tšg_cœcu™
+ : 
+h—tšg_cœcu™s_
+) {
+
+512 ià(
+h—tšg_cœcu™
+->
+hc_num
+() == hc_num) {
+
+513  
+h—tšg_cœcu™
+;
+
+518 autØ
+	gÃw_hc
+ = 
+¡d
+::
+make_sh¬ed
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+>(
+hc_num
+);
+
+519 
+	gh—tšg_cœcu™s_
+.
+push_back
+(
+Ãw_hc
+);
+
+521 
+	g¡d
+::
+sÜt
+(
+h—tšg_cœcu™s_
+.
+begš
+(), h—tšg_cœcu™s_.
+’d
+());
+
+524 
+toggË_ãtch
+(
+mÚ™Ü_ty³ids
+[
+hc_num
+ - 1], 
+toggË_
+);
+
+526 ià(
+	g£t_ty³ids
+.
+size
+()) {
+
+527 
+toggË_ãtch
+(
+£t_ty³ids
+[
+hc_num
+ - 1], 
+toggË_
+);
+
+530  
+	gh—tšg_cœcu™s_
+.
+back
+();
+
+537 
+	gTh”mo¡©
+::
+»gi¡”_mq‰_ha_cÚfig
+(
+ušt8_t
+ 
+hc_num
+) {
+
+538 
+S�ticJsÚDocum’t
+<
+EMSESP_MAX_JSON_SIZE_MEDIUM
+> 
+doc
+;
+
+540 
+	g¡d
+::
+¡ršg
+ 
+hc_‹xt
+(10, '\0');
+
+541 
+¢´štf_P
+(&
+hc_‹xt
+[0], hc_‹xt.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("hc%d"), 
+hc_num
+);
+
+542 
+	gdoc
+["Çme"] = 
+hc_‹xt
+;
+
+543 
+	gdoc
+["uniq_id"] = 
+hc_‹xt
+;
+
+546 
+	g¡d
+::
+¡ršg
+ 
+roÙ
+(100, '\0');
+
+547 
+¢´štf_P
+(&
+roÙ
+[0],„oÙ.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("hom—ssi¡ªt/þim©e/ems-e¥/hc%d"), 
+hc_num
+);
+
+548 
+	gdoc
+["~"] = 
+roÙ
+;
+
+550 
+	gdoc
+["mode_cmd_t"] = "~/cmd_mode";
+
+551 
+	gdoc
+["mode_stat_t"] = "~/state";
+
+552 
+	gdoc
+["temp_cmd_t"] = "~/cmd_temp";
+
+553 
+	gdoc
+["temp_stat_t"] = "~/state";
+
+554 
+	gdoc
+["curr_temp_t"] = "~/state";
+
+556 
+	g¡d
+::
+¡ršg
+ 
+mode_¡r
+(30, '\0');
+
+557 
+¢´štf_P
+(&
+mode_¡r
+[0], 30, 
+PSTR
+("{{v®ue_jsÚ.hc%d.mode}}"), 
+hc_num
+);
+
+558 
+	gdoc
+["mode_¡©_�l"] = 
+mode_¡r
+;
+
+560 
+	g¡d
+::
+¡ršg
+ 
+£Éemp_¡r
+(30, '\0');
+
+561 
+¢´štf_P
+(&
+£Éemp_¡r
+[0], 30, 
+PSTR
+("{{v®ue_jsÚ.hc%d.£Éemp}}"), 
+hc_num
+);
+
+562 
+	gdoc
+["‹mp_¡©_�l"] = 
+£Éemp_¡r
+;
+
+564 
+	g¡d
+::
+¡ršg
+ 
+cu¼‹mp_¡r
+(30, '\0');
+
+565 
+¢´štf_P
+(&
+cu¼‹mp_¡r
+[0], 30, 
+PSTR
+("{{v®ue_jsÚ.hc%d.cu¼‹mp}}"), 
+hc_num
+);
+
+566 
+	gdoc
+["cu¼_‹mp_�l"] = 
+cu¼‹mp_¡r
+;
+
+568 
+	gdoc
+["min_temp"] = "5";
+
+569 
+	gdoc
+["max_temp"] = "40";
+
+570 
+	gdoc
+["temp_step"] = "0.5";
+
+572 
+JsÚA¼ay
+ 
+	gmodes
+ = 
+doc
+.
+ü—‹Ne¡edA¼ay
+("modes");
+
+573 
+ušt8_t
+ 
+	gæags
+ = 
+this
+->
+mod–
+();
+
+574 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC20_2
+) {
+
+575 
+modes
+.
+add
+("night");
+
+576 
+	gmodes
+.
+add
+("day");
+
+577 } ià((
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC300
+è|| (
+æags
+ =ðEMSdeviû::
+EMS_DEVICE_FLAG_RC100
+)) {
+
+578 
+modes
+.
+add
+("eco");
+
+579 
+	gmodes
+.
+add
+("comfort");
+
+580 
+	gmodes
+.
+add
+("auto");
+
+581 } ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+582 
+modes
+.
+add
+("nofrost");
+
+583 
+	gmodes
+.
+add
+("eco");
+
+584 
+	gmodes
+.
+add
+("heat");
+
+585 
+	gmodes
+.
+add
+("auto");
+
+587 
+	gmodes
+.
+add
+("night");
+
+588 
+	gmodes
+.
+add
+("day");
+
+589 
+	gmodes
+.
+add
+("auto");
+
+592 
+	g¡d
+::
+¡ršg
+ 
+tÝic
+(100, '\0');
+
+593 
+¢´štf_P
+(&
+tÝic
+[0],�Ýic.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("hom—ssi¡ªt/þim©e/ems-e¥/hc%d/cÚfig"), 
+hc_num
+);
+
+595 
+	gMq‰
+::
+publish
+(
+tÝic
+, 
+doc
+, 
+Œue
+);
+
+598 
+¢´štf_P
+(&
+tÝic
+[0],�Ýic.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("hom—ssi¡ªt/þim©e/ems-e¥/hc%d/cmd_‹mp"), 
+hc_num
+);
+
+599 
+»gi¡”_mq‰_tÝic
+(
+tÝic
+, [&](cÚ¡ * 
+m
+è{ 
+th”mo¡©_cmd_‹mp
+(m); });
+
+600 
+¢´štf_P
+(&
+tÝic
+[0],�Ýic.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("hom—ssi¡ªt/þim©e/ems-e¥/hc%d/cmd_mode"), 
+hc_num
+);
+
+601 
+»gi¡”_mq‰_tÝic
+(
+tÝic
+, [&](cÚ¡ * 
+m
+è{ 
+th”mo¡©_cmd_mode
+(m); });
+
+606 
+ušt8_t
+ 
+	gTh”mo¡©
+::
+H—tšgCœcu™
+::
+g‘_mode
+(ušt8_ˆ
+æags
+) const {
+
+607 ià(!
+H–³rs
+::
+hasV®ue
+(
+mode
+)) {
+
+608  
+H—tšgCœcu™
+::
+Mode
+::
+UNKNOWN
+;
+
+611 
+	gæags
+ &= 0x0F;
+
+613 ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC20
+) {
+
+614 ià(
+mode
+ == 0) {
+
+615  
+H—tšgCœcu™
+::
+Mode
+::
+OFF
+;
+
+616 } ià(
+	gmode
+ == 1) {
+
+617  
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+;
+
+618 } ià(
+	gmode
+ == 2) {
+
+619  
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+;
+
+621 } ià((
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC300
+è|| (
+æags
+ =ðEMSdeviû::
+EMS_DEVICE_FLAG_RC100
+)) {
+
+622 ià(
+mode
+ == 0) {
+
+623  
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+;
+
+624 } ià(
+	gmode
+ == 1) {
+
+625  
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+;
+
+627 } ià(
+	gæags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+628 ià(
+mode
+ == 1) {
+
+629  
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+;
+
+630 } ià(
+	gmode
+ == 2) {
+
+631  
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+;
+
+632 } ià(
+	gmode
+ == 3) {
+
+633  
+H—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+;
+
+636 ià(
+	gmode
+ == 0) {
+
+637  
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+;
+
+638 } ià(
+	gmode
+ == 1) {
+
+639  
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+;
+
+640 } ià(
+	gmode
+ == 2) {
+
+641  
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+;
+
+645  
+	gH—tšgCœcu™
+::
+Mode
+::
+UNKNOWN
+;
+
+650 
+ušt8_t
+ 
+	gTh”mo¡©
+::
+H—tšgCœcu™
+::
+g‘_mode_ty³
+(ušt8_ˆ
+æags
+) const {
+
+651 
+æags
+ &= 0x0F;
+
+653 ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+654 ià(
+mode_ty³
+ == 3) {
+
+655  
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+;
+
+656 } ià(
+	gmode_ty³
+ == 2) {
+
+657  
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+;
+
+658 } ià(
+	gmode_ty³
+ == 1) {
+
+659  
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+;
+
+661 } ià((
+	gæags
+ =ð
+EMS_DEVICE_FLAG_RC35
+è|| (
+æags
+ =ð
+EMS_DEVICE_FLAG_RC30_1
+)) {
+
+662 ià(
+mode_ty³
+ == 0) {
+
+663  
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+;
+
+664 } ià(
+	gmode_ty³
+ == 1) {
+
+665  
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+;
+
+667 } ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_RC300
+) {
+
+668 ià(
+mode_ty³
+ == 0) {
+
+669  
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+;
+
+670 } ià(
+	gmode_ty³
+ == 1) {
+
+671  
+H—tšgCœcu™
+::
+Mode
+::
+COMFORT
+;
+
+673 } ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_RC100
+) {
+
+674  
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+;
+
+677  
+	gH—tšgCœcu™
+::
+Mode
+::
+DAY
+;
+
+682 
+	g¡d
+::
+¡ršg
+ 
+Th”mo¡©
+::
+mode_to¡ršg
+(
+ušt8_t
+ 
+mode
+) {
+
+683 
+mode
+) {
+
+684 
+H—tšgCœcu™
+::
+Mode
+::
+OFF
+:
+
+685  
+»ad_æash_¡ršg
+(
+F
+("off"));
+
+687 
+	gH—tšgCœcu™
+::
+Mode
+::
+MANUAL
+:
+
+688  
+»ad_æash_¡ršg
+(
+F
+("manual"));
+
+690 
+	gH—tšgCœcu™
+::
+Mode
+::
+DAY
+:
+
+691  
+»ad_æash_¡ršg
+(
+F
+("day"));
+
+693 
+	gH—tšgCœcu™
+::
+Mode
+::
+NIGHT
+:
+
+694  
+»ad_æash_¡ršg
+(
+F
+("night"));
+
+696 
+	gH—tšgCœcu™
+::
+Mode
+::
+ECO
+:
+
+697  
+»ad_æash_¡ršg
+(
+F
+("eco"));
+
+699 
+	gH—tšgCœcu™
+::
+Mode
+::
+COMFORT
+:
+
+700  
+»ad_æash_¡ršg
+(
+F
+("comfort"));
+
+702 
+	gH—tšgCœcu™
+::
+Mode
+::
+HEAT
+:
+
+703  
+»ad_æash_¡ršg
+(
+F
+("heat"));
+
+705 
+	gH—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+:
+
+706  
+»ad_æash_¡ršg
+(
+F
+("holiday"));
+
+708 
+	gH—tšgCœcu™
+::
+Mode
+::
+NOFROST
+:
+
+709  
+»ad_æash_¡ršg
+(
+F
+("nofrost"));
+
+711 
+	gH—tšgCœcu™
+::
+Mode
+::
+AUTO
+:
+
+712  
+»ad_æash_¡ršg
+(
+F
+("auto"));
+
+714 
+	gH—tšgCœcu™
+::
+Mode
+::
+SUMMER
+:
+
+715  
+»ad_æash_¡ršg
+(
+F
+("summer"));
+
+717 
+	gH—tšgCœcu™
+::
+Mode
+::
+OFFSET
+:
+
+718  
+»ad_æash_¡ršg
+(
+F
+("offset"));
+
+720 
+	gH—tšgCœcu™
+::
+Mode
+::
+DESIGN
+:
+
+721  
+»ad_æash_¡ršg
+(
+F
+("design"));
+
+724 
+H—tšgCœcu™
+::
+Mode
+::
+UNKNOWN
+:
+
+725  
+»ad_æash_¡ršg
+(
+F
+("unknown"));
+
+731 
+	gTh”mo¡©
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+732 
+EMSdeviû
+::
+show_v®ues
+(
+sh–l
+);
+
+734 
+ušt8_t
+ 
+	gæags
+ = 
+this
+->
+mod–
+();
+
+736 ià(
+	gd©‘ime_
+.
+size
+()) {
+
+737 
+	gsh–l
+.
+´štæn
+(
+F
+(" Clock: %s"), 
+d©‘ime_
+.
+c_¡r
+());
+
+738 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ibaClockOff£t_
+è&& 
+æags
+ =ð
+EMS_DEVICE_FLAG_RC30_1
+) {
+
+739 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Off£ˆþock"), 
+ibaClockOff£t_
+, 
+nuÎ±r
+);
+
+742 ià(
+	gH–³rs
+::
+hasV®ue
+(
+wwMode_
+)) {
+
+743 ià(
+wwMode_
+ == 0) {
+
+744 
+sh–l
+.
+´štæn
+(
+F
+(" Warm Water mode: off"));
+
+745 } ià(
+	gwwMode_
+ == 1) {
+
+746 
+sh–l
+.
+´štæn
+(
+F
+(" Warm Water mode: on"));
+
+747 } ià(
+	gwwMode_
+ == 2) {
+
+748 
+sh–l
+.
+´štæn
+(
+F
+(" Warm Water mode:‡uto"));
+
+751 ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_RC35
+) {
+
+752 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Dam³d OutdoÜ�em³¿tu»"), 
+dam³doutdoÜ‹mp_
+, 
+F_
+(
+deg»es
+));
+
+753 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Tem°£nsÜ 1"), 
+‹mp£nsÜ1_
+, 
+F_
+(
+deg»es
+), 10);
+
+754 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Tem°£nsÜ 2"), 
+‹mp£nsÜ2_
+, 
+F_
+(
+deg»es
+), 10);
+
+756 ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_RC30_1
+) {
+
+758 ià(
+H–³rs
+::
+hasV®ue
+(
+ibaMašDi¥Ïy_
+)) {
+
+759 ià(
+ibaMašDi¥Ïy_
+ == 0) {
+
+760 
+sh–l
+.
+´štæn
+(
+F
+(" Display: internal�emperature"));
+
+761 } ià(
+	gibaMašDi¥Ïy_
+ == 1) {
+
+762 
+sh–l
+.
+´štæn
+(
+F
+(" Display: internal setpoint"));
+
+763 } ià(
+	gibaMašDi¥Ïy_
+ == 2) {
+
+764 
+sh–l
+.
+´štæn
+(
+F
+(" Display:ƒxternal�emperature"));
+
+765 } ià(
+	gibaMašDi¥Ïy_
+ == 3) {
+
+766 
+sh–l
+.
+´štæn
+(
+F
+(" Display: burner�emperature"));
+
+767 } ià(
+	gibaMašDi¥Ïy_
+ == 4) {
+
+768 
+sh–l
+.
+´štæn
+(
+F
+(" Display: WW�emperature"));
+
+769 } ià(
+	gibaMašDi¥Ïy_
+ == 5) {
+
+770 
+sh–l
+.
+´štæn
+(
+F
+(" Display: functioning mode"));
+
+771 } ià(
+	gibaMašDi¥Ïy_
+ == 6) {
+
+772 
+sh–l
+.
+´štæn
+(
+F
+(" Display:�ime"));
+
+773 } ià(
+	gibaMašDi¥Ïy_
+ == 7) {
+
+774 
+sh–l
+.
+´štæn
+(
+F
+(" Display: date"));
+
+775 } ià(
+	gibaMašDi¥Ïy_
+ == 8) {
+
+776 
+sh–l
+.
+´štæn
+(
+F
+(" Display: smoke�emperature"));
+
+780 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ibaLªguage_
+)) {
+
+781 ià(
+ibaLªguage_
+ == 0) {
+
+782 
+sh–l
+.
+´štæn
+(
+F
+(" Language: German"));
+
+783 } ià(
+	gibaLªguage_
+ == 1) {
+
+784 
+sh–l
+.
+´štæn
+(
+F
+(" Language: Dutch"));
+
+785 } ià(
+	gibaLªguage_
+ == 2) {
+
+786 
+sh–l
+.
+´štæn
+(
+F
+(" Language: French"));
+
+787 } ià(
+	gibaLªguage_
+ == 3) {
+
+788 
+sh–l
+.
+´štæn
+(
+F
+(" Language: Italian"));
+
+792 ià(
+	gæags
+ =ð
+EMS_DEVICE_FLAG_RC35
+ || 
+æags
+ =ð
+EMS_DEVICE_FLAG_RC30_1
+) {
+
+793 ià(
+H–³rs
+::
+hasV®ue
+(
+ibaC®IÁTem³¿tu»_
+)) {
+
+794 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Off£ˆšt.�em³¿tu»"), 
+ibaC®IÁTem³¿tu»_
+, 
+F_
+(
+deg»es
+), 2);
+
+797 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ibaMšExtTem³¿tu»_
+)) {
+
+798 
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Mšƒxt.�em³¿tu»"), 
+ibaMšExtTem³¿tu»_
+, 
+F_
+(
+deg»es
+));
+
+801 ià(
+	gH–³rs
+::
+hasV®ue
+(
+ibaBuždšgTy³_
+)) {
+
+802 ià(
+ibaBuždšgTy³_
+ == 0) {
+
+803 
+sh–l
+.
+´štæn
+(
+F
+(" Building:†ight"));
+
+804 } ià(
+	gibaBuždšgTy³_
+ == 1) {
+
+805 
+sh–l
+.
+´štæn
+(
+F
+(" Building: medium"));
+
+806 } ià(
+	gibaBuždšgTy³_
+ == 2) {
+
+807 
+sh–l
+.
+´štæn
+(
+F
+(" Building: heavy"));
+
+812 cÚ¡‡utØ& 
+	ghc
+ : 
+h—tšg_cœcu™s_
+) {
+
+813 ià(!
+hc
+->
+is_aùive
+()) {
+
+817 
+	gsh–l
+.
+´štæn
+(
+F
+(" H—tšg Cœcu™ %d:"), 
+hc
+->
+hc_num
+());
+
+820 
+ušt8_t
+ 
+	gfÜm©_£�ošt
+, 
+	gfÜm©_cu¼
+;
+
+821 
+	gæags
+) {
+
+822 
+	gEMS_DEVICE_FLAG_EASY
+:
+
+823 
+fÜm©_£�ošt
+ = 100;
+
+824 
+	gfÜm©_cu¼
+ = 100;
+
+826 
+	gEMS_DEVICE_FLAG_JUNKERS
+:
+
+827 
+fÜm©_£�ošt
+ = 10;
+
+828 
+	gfÜm©_cu¼
+ = 10;
+
+831 
+fÜm©_£�ošt
+ = 2;
+
+832 
+	gfÜm©_cu¼
+ = 10;
+
+836 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Cu¼’ˆroom�em³¿tu»"), 
+hc
+->
+cu¼_roomTemp
+, 
+F_
+(
+deg»es
+), 
+fÜm©_cu¼
+);
+
+837 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("S‘pošˆroom�em³¿tu»"), 
+hc
+->
+£�ošt_roomTemp
+, 
+F_
+(
+deg»es
+), 
+fÜm©_£�ošt
+);
+
+838 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+mode
+)) {
+
+839 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Mode"), 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode
+(
+æags
+)).
+c_¡r
+());
+
+841 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+mode_ty³
+)) {
+
+842 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Mod�Ty³"), 
+mode_to¡ršg
+(
+hc
+->
+g‘_mode_ty³
+(
+æags
+)).
+c_¡r
+());
+
+845 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+summ”_mode
+) && hc->summer_mode) {
+
+846 
+sh–l
+.
+´štæn
+(
+F
+(" Program is set�o Summer mode"));
+
+847 } ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+hÞiday_mode
+) && hc->holiday_mode) {
+
+848 
+sh–l
+.
+´štæn
+(
+F
+(" Program is set�o Holiday mode"));
+
+851 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+day‹mp
+)) {
+
+852 ià(
+æags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+853 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("H—ˆ‹m³¿tu»"), 
+hc
+->
+day‹mp
+, 
+F_
+(
+deg»es
+), 2);
+
+855 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Day�em³¿tu»"), 
+hc
+->
+day‹mp
+, 
+F_
+(
+deg»es
+), 2);
+
+858 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+nigh‰emp
+)) {
+
+859 ià(
+æags
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+860 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("EcØ‹m³¿tu»"), 
+hc
+->
+nigh‰emp
+, 
+F_
+(
+deg»es
+), 2);
+
+862 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Nighˆ‹m³¿tu»"), 
+hc
+->
+nigh‰emp
+, 
+F_
+(
+deg»es
+), 2);
+
+865 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+noäo¡‹mp
+)) {
+
+866 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Noäo¡�em³¿tu»"), 
+hc
+->
+noäo¡‹mp
+, 
+F_
+(
+deg»es
+), 2);
+
+868 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+hÞiday‹mp
+)) {
+
+869 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("HÞiday�em³¿tu»"), 
+hc
+->
+hÞiday‹mp
+, 
+F_
+(
+deg»es
+), 2);
+
+871 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+off£‰emp
+)) {
+
+872 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Off£ˆ‹m³¿tu»"), 
+hc
+->
+off£‰emp
+, 
+F_
+(
+deg»es
+), 2);
+
+874 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+desigÁemp
+)) {
+
+875 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("DesigÀ‹m³¿tu»"), 
+hc
+->
+desigÁemp
+, 
+F_
+(
+deg»es
+));
+
+877 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+summ”‹mp
+)) {
+
+878 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("Summ”�em³¿tu»"), 
+hc
+->
+summ”‹mp
+, 
+F_
+(
+deg»es
+));
+
+880 ià(
+	gH–³rs
+::
+hasV®ue
+(
+hc
+->
+�rg‘æow‹mp
+)) {
+
+881 
+´št_v®ue
+(
+sh–l
+, 4, 
+F
+("T¬g‘ flow�em³¿tu»"), 
+hc
+->
+�rg‘æow‹mp
+, 
+F_
+(
+deg»es
+));
+
+885 
+	gsh–l
+.
+´šŽn
+();
+
+889 
+	gTh”mo¡©
+::
+´oûss_RC20S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+890 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+892 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+mode
+, 23);
+
+896 
+	gTh”mo¡©
+::
+´oûss_RC20MÚ™Ü_2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+897 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+899 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+hc
+->
+mode_ty³
+, 0, 7);
+
+900 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 2, 1);
+
+901 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 3);
+
+906 
+	gTh”mo¡©
+::
+´oûss_RC20S‘_2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+907 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+909 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+mode
+, 3);
+
+913 
+	gTh”mo¡©
+::
+´oûss_RC20RemÙe
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+914 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+915 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 0);
+
+919 
+	gTh”mo¡©
+::
+´oûss_RC10MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+920 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+922 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 1, 1);
+
+923 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 2);
+
+926 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+927 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+930 
+	gTh”mo¡©
+::
+´oûss_RC10S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+933 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+936 
+Th”mo¡©
+::
+´oûss_Junk”sS‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+937 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+938 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+day‹mp
+, 17);
+
+939 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+nigh‰emp
+, 16);
+
+940 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+noäo¡‹mp
+, 15);
+
+943 
+	gTh”mo¡©
+::
+´oûss_Junk”sS‘2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+944 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+945 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+day‹mp
+, 7);
+
+946 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+nigh‰emp
+, 6);
+
+947 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+noäo¡‹mp
+, 5);
+
+951 
+	gTh”mo¡©
+::
+´oûss_RCOutdoÜTemp
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+952 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+dam³doutdoÜ‹mp_
+, 0);
+
+953 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+‹mp£nsÜ1_
+, 3);
+
+954 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+‹mp£nsÜ2_
+, 5);
+
+958 
+	gTh”mo¡©
+::
+´oûss_RC20MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+959 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+961 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 1, 1);
+
+962 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 2);
+
+966 
+	gTh”mo¡©
+::
+´oûss_EasyMÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+967 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+969 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 8);
+
+970 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 10);
+
+974 
+	gTh”mo¡©
+::
+´oûss_IBAS‘tšgs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+976 
+chªged_
+ |=
+
+977 
+‹Ëg¿m
+->
+»ad_v®ue
+(
+ibaMašDi¥Ïy_
+,
+
+979 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+ibaLªguage_
+, 1);
+
+980 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+ibaC®IÁTem³¿tu»_
+, 2);
+
+981 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+ibaBuždšgTy³_
+, 6);
+
+982 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+ibaMšExtTem³¿tu»_
+, 5);
+
+983 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+ibaClockOff£t_
+, 12);
+
+987 
+	gTh”mo¡©
+::
+´oûss_RC35wwS‘tšgs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+988 
+chªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wwMode_
+, 2);
+
+992 
+	gTh”mo¡©
+::
+´oûss_Junk”sMÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+994 ià(
+‹Ëg¿m
+->
+mes§ge_Ëngth
+ <= 1) {
+
+998 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+1000 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 4);
+
+1001 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 2);
+
+1003 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+mode_ty³
+, 0);
+
+1004 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+mode
+, 1);
+
+1008 
+	gTh”mo¡©
+::
+´oûss_RC300MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1009 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+1011 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 0);
+
+1013 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+hc
+->
+mode_ty³
+, 10, 1);
+
+1014 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+hc
+->
+mode
+, 10, 0);
+
+1023 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 3, 1);
+
+1024 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+hc
+->
+summ”_mode
+, 2, 4);
+
+1025 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+�rg‘æow‹mp
+, 4);
+
+1029 
+	gTh”mo¡©
+::
+´oûss_RC300S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1030 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+1043 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+day‹mp
+, 2);
+
+1044 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+nigh‰emp
+, 4);
+
+1048 
+	gTh”mo¡©
+::
+´oûss_RC300WWmode
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1050 
+wwSy¡em_
+ = 
+‹Ëg¿m
+->
+ty³_id
+ - 0x31D + 1;
+
+1051 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+wwExŒa_
+, 0);
+
+1058 
+	gTh”mo¡©
+::
+´oûss_RC30MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1059 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+1061 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 1, 1);
+
+1062 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 2);
+
+1066 
+	gTh”mo¡©
+::
+´oûss_RC30S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1067 
+¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+1069 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+mode
+, 23);
+
+1073 
+	gTh”mo¡©
+::
+´oûss_RC35MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1077 ià(
+‹Ëg¿m
+->
+mes§ge_d©a
+[14] == 0x00) {
+
+1081 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+1083 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+£�ošt_roomTemp
+, 2, 1);
+
+1084 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+cu¼_roomTemp
+, 3);
+
+1086 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+hc
+->
+mode_ty³
+, 1, 1);
+
+1087 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+hc
+->
+summ”_mode
+, 1, 0);
+
+1088 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_b™v®ue
+(
+hc
+->
+hÞiday_mode
+, 0, 5);
+
+1090 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+�rg‘æow‹mp
+, 14);
+
+1094 
+	gTh”mo¡©
+::
+´oûss_RC35S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1096 ià(
+‹Ëg¿m
+->
+mes§ge_d©a
+[0] == 0x00) {
+
+1100 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+‹Ëg¿m
+);
+
+1102 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+mode
+, 7);
+
+1103 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+day‹mp
+, 2);
+
+1104 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+nigh‰emp
+, 1);
+
+1105 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+hÞiday‹mp
+, 3);
+
+1106 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+h—tšgty³
+, 0);
+
+1108 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+summ”‹mp
+, 22);
+
+1109 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+noäo¡‹mp
+, 23);
+
+1110 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+desigÁemp
+, 17);
+
+1111 
+	gchªged_
+ |ð
+‹Ëg¿m
+->
+»ad_v®ue
+(
+hc
+->
+off£‰emp
+, 6);
+
+1115 
+	gTh”mo¡©
+::
+´oûss_RCTime
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+1116 ià(
+this
+->
+æags
+(è=ð
+EMS_DEVICE_FLAG_EASY
+) {
+
+1119 ià(
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+ < 7) {
+
+1122 ià(
+	g‹Ëg¿m
+->
+	gmes§ge_d©a
+[7] & 0x0C) {
+
+1123 
+£t_d©‘ime
+("ntp", -1);
+
+1126 ià(
+	gd©‘ime_
+.
+em±y
+()) {
+
+1127 
+	gd©‘ime_
+.
+»size
+(25, '\0');
+
+1129 autØ
+	gtimeÞd
+ = 
+d©‘ime_
+;
+
+1132 
+	gbuf1
+[6];
+
+1133 
+	gbuf2
+[6];
+
+1134 
+	gbuf3
+[6];
+
+1135 
+	gbuf4
+[6];
+
+1136 
+	gbuf5
+[6];
+
+1137 
+	gbuf6
+[6];
+
+1138 
+¢´štf_P
+(&
+d©‘ime_
+[0],
+
+1139 
+d©‘ime_
+.
+ÿ·c™y
+() + 1,
+
+1140 
+PSTR
+("%s:%s:%s %s/%s/%s"),
+
+1141 
+H–³rs
+::
+sm®l™ß
+(
+buf1
+, 
+‹Ëg¿m
+->
+mes§ge_d©a
+[2]),
+
+1142 
+H–³rs
+::
+sm®l™ß
+(
+buf2
+, 
+‹Ëg¿m
+->
+mes§ge_d©a
+[4]),
+
+1143 
+H–³rs
+::
+sm®l™ß
+(
+buf3
+, 
+‹Ëg¿m
+->
+mes§ge_d©a
+[5]),
+
+1144 
+H–³rs
+::
+sm®l™ß
+(
+buf4
+, 
+‹Ëg¿m
+->
+mes§ge_d©a
+[3]),
+
+1145 
+H–³rs
+::
+sm®l™ß
+(
+buf5
+, 
+‹Ëg¿m
+->
+mes§ge_d©a
+[1]),
+
+1146 
+H–³rs
+::
+™ß
+(
+buf6
+, 
+‹Ëg¿m
+->
+mes§ge_d©a
+[0] + 2000, 10)
+
+1148 ià(
+	gtimeÞd
+ !ð
+d©‘ime_
+) {
+
+1149 
+chªged_
+ = 
+Œue
+;
+
+1154 
+	gTh”mo¡©
+::
+cÚsÞe_commªds
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+) {
+
+1155 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+THERMOSTAT
+,
+
+1156 
+CommªdFÏgs
+::
+ADMIN
+,
+
+1157 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+), F_(
+ma¡”
+)},
+
+1158 
+æash_¡ršg_veùÜ
+{
+F_
+(
+deviûid_mªd©Üy
+)},
+
+1159 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+1160 
+ušt8_t
+ 
+v®ue
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+());
+
+1161 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+upd©e
+(
+
+1162 [&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+1163 
+£‰šgs
+.
+ma¡”_th”mo¡©
+ = 
+v®ue
+;
+
+1164 
+EMSESP
+::
+aùu®_ma¡”_th”mo¡©
+(
+v®ue
+);
+
+1165 
+bufãr
+[5];
+
+1166 
+sh–l
+.
+´štæn
+(
+F_
+(
+ma¡”_th”mo¡©_fmt
+),
+
+1167 !
+v®ue
+ ? 
+uuid
+::
+»ad_æash_¡ršg
+(
+F_
+×uto)).
+c_¡r
+(è: 
+H–³rs
+::
+hextß
+(
+bufãr
+, value));
+
+1168  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+1173 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+THERMOSTAT
+,
+
+1174 
+CommªdFÏgs
+::
+ADMIN
+,
+
+1175 
+æash_¡ršg_veùÜ
+{
+F_
+(
+»ad
+)},
+
+1176 
+æash_¡ršg_veùÜ
+{
+F_
+(
+ty³id_mªd©Üy
+)},
+
+1177 [=](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+1178 
+ušt16_t
+ 
+ty³_id
+ = 
+H–³rs
+::
+hextošt
+(
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+());
+
+1179 
+EMSESP
+::
+£t_»ad_id
+(
+ty³_id
+);
+
+1180 
+EMSESP
+::
+£nd_»ad_»que¡
+(
+ty³_id
+, 
+this
+->
+g‘_deviû_id
+());
+
+1183 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+THERMOSTAT
+,
+
+1184 
+CommªdFÏgs
+::
+USER
+,
+
+1185 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+)},
+
+1186 [&](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))è{ 
+show_v®ues
+(shell); });
+
+1188 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+THERMOSTAT
+,
+
+1189 
+CommªdFÏgs
+::
+USER
+,
+
+1190 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+)},
+
+1191 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+1192 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+1193 
+bufãr
+[4];
+
+1194 
+sh–l
+.
+´štæn
+(
+F_
+(
+ma¡”_th”mo¡©_fmt
+),
+
+1195 
+£‰šgs
+.
+ma¡”_th”mo¡©
+ =ð0 ? 
+uuid
+::
+»ad_æash_¡ršg
+(
+F_
+×uto)).
+c_¡r
+()
+
+1196 : 
+H–³rs
+::
+hextß
+(
+bufãr
+, 
+£‰šgs
+.
+ma¡”_th”mo¡©
+));
+
+1197 
+sh–l
+.
+´šŽn
+();
+
+1202 
+	gCÚsÞe
+::
+’‹r_cu¡om_cÚ‹xt
+(
+sh–l
+, 
+cÚ‹xt
+);
+
+1206 
+	gTh”mo¡©
+::
+£t_mšex‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1207 
+	gmt
+ = 0;
+
+1208 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+mt
+)) {
+
+1211 
+LOG_INFO
+(
+F
+("S‘tšg mšƒx‹º®�em³¿tu»�Ø%d"), 
+mt
+);
+
+1212 
+wr™e_commªd
+(
+EMS_TYPE_IBAS‘tšgs
+, 5, 
+mt
+, EMS_TYPE_IBASettings);
+
+1216 
+	gTh”mo¡©
+::
+£t_þockoff£t
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1217 
+	gco
+ = 0;
+
+1218 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+co
+)) {
+
+1221 
+LOG_INFO
+(
+F
+("S‘tšg clock off£ˆtØ%d"), 
+co
+);
+
+1222 
+wr™e_commªd
+(
+EMS_TYPE_IBAS‘tšgs
+, 12, 
+co
+, EMS_TYPE_IBASettings);
+
+1226 
+	gTh”mo¡©
+::
+£t_ÿlš‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1227 
+	gù
+ = 0;
+
+1228 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+ù
+)) {
+
+1232 
+LOG_INFO
+(
+F
+("C®ib¿tšg iÁ”ÇÈ‹m³¿tu»�Ø%d.%d"), 
+ù
+ / 10, ct < 0 ? -ct % 10 : ct % 10);
+
+1233 
+wr™e_commªd
+(
+EMS_TYPE_IBAS‘tšgs
+, 2, 
+ù
+, EMS_TYPE_IBASettings);
+
+1237 
+	gTh”mo¡©
+::
+£t_di¥Ïy
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1238 
+	gds
+ = 0;
+
+1239 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+ds
+)) {
+
+1242 
+LOG_INFO
+(
+F
+("S‘tšg di¥Ïy�Ø%d"), 
+ds
+);
+
+1243 
+wr™e_commªd
+(
+EMS_TYPE_IBAS‘tšgs
+, 0, 
+ds
+, EMS_TYPE_IBASettings);
+
+1246 
+	gTh”mo¡©
+::
+£t_»mÙ‘emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1247 
+	gf
+ = 0;
+
+1248 ià(!
+	gH–³rs
+::
+v®ue2æßt
+(
+v®ue
+, 
+f
+)) {
+
+1252 
+ušt8_t
+ 
+	ghc_num
+ = (
+id
+ =ð-1è? 
+AUTO_HEATING_CIRCUIT
+ : id;
+
+1254 ià(
+	gf
+ > 100 || f < 0) {
+
+1255 
+	gRoomù¾
+::
+£t_»mÙ‘emp
+(
+hc_num
+ - 1, 
+EMS_VALUE_SHORT_NOTSET
+);
+
+1257 
+	gRoomù¾
+::
+£t_»mÙ‘emp
+(
+hc_num
+ - 1, (
+št16_t
+)(
+f
+ * 10));
+
+1262 
+	gTh”mo¡©
+::
+£t_buždšg
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1263 
+	g¡d
+::
+¡ršg
+ 
+bd
+(20, '\0');
+
+1264 ià(!
+	gH–³rs
+::
+v®ue2¡ršg
+(
+v®ue
+, 
+bd
+)) {
+
+1268 
+ušt8_t
+ 
+	gbg
+ = 0;
+
+1269 ià(
+	gbd
+ == "light") {
+
+1270 
+bg
+ = 0;
+
+1271 } ià(
+	gbd
+ == "medium") {
+
+1272 
+bg
+ = 1;
+
+1273 } ià(
+	gbd
+ == "heavy") {
+
+1274 
+bg
+ = 2;
+
+1279 
+LOG_INFO
+(
+F
+("S‘tšg buždšg�Ø%d"), 
+bg
+);
+
+1280 
+wr™e_commªd
+(
+EMS_TYPE_IBAS‘tšgs
+, 6, 
+bg
+, EMS_TYPE_IBASettings);
+
+1284 
+	gTh”mo¡©
+::
+£t_Ïnguage
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1285 
+	glg
+ = 0;
+
+1286 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+lg
+)) {
+
+1289 
+LOG_INFO
+(
+F
+("S‘tšg†ªguag�tØ%d"), 
+lg
+);
+
+1290 
+wr™e_commªd
+(
+EMS_TYPE_IBAS‘tšgs
+, 1, 
+lg
+, EMS_TYPE_IBASettings);
+
+1294 
+	gTh”mo¡©
+::
+£t_cÚŒÞ
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1295 
+	gù¾
+ = 0;
+
+1296 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+ù¾
+)) {
+
+1300 
+ušt8_t
+ 
+	ghc_num
+ = (
+id
+ =ð-1è? 
+AUTO_HEATING_CIRCUIT
+ : id;
+
+1302 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+hc_num
+);
+
+1303 ià(
+	ghc
+ =ð
+nuÎ±r
+) {
+
+1304 
+LOG_WARNING
+(
+F
+("S‘ cÚŒÞ: H—tšg Cœcu™ %d‚Ù found o¸aùiv©ed"), 
+hc_num
+);
+
+1308 ià(
+	gù¾
+ > 2) {
+
+1309 
+LOG_WARNING
+(
+F
+("S‘ cÚŒÞ: Inv®id cÚŒÞ mode: %d"), 
+ù¾
+);
+
+1313 
+LOG_INFO
+(
+F
+("S‘tšg cœcu™-cÚŒÞ fÜ hc%d�Ø%d"), 
+hc_num
+, 
+ù¾
+);
+
+1314 
+wr™e_commªd
+(
+£t_ty³ids
+[
+hc
+->
+hc_num
+(è- 1], 26, 
+ù¾
+);
+
+1318 
+	gTh”mo¡©
+::
+£t_wwmode
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1319 
+	g¡d
+::
+¡ršg
+ 
+v
+(10, '\0');
+
+1320 ià(!
+	gH–³rs
+::
+v®ue2¡ršg
+(
+v®ue
+, 
+v
+)) {
+
+1324 
+ušt8_t
+ 
+	g£t
+ = 0xFF;
+
+1325 ià(
+	gv
+ == "off") {
+
+1326 
+£t
+ = 0;
+
+1327 } ià(
+	gv
+ == "on") {
+
+1328 
+£t
+ = 1;
+
+1329 } ià(
+	gv
+ == "auto") {
+
+1330 
+£t
+ = 2;
+
+1333 ià(
+	g£t
+ != 0xFF) {
+
+1334 
+LOG_INFO
+(
+F
+("S‘tšg�h”mo¡© w¬m w©” mod�tØ%s"), 
+v
+.
+c_¡r
+());
+
+1335 
+wr™e_commªd
+(
+EMS_TYPE_wwS‘tšgs
+, 2, 
+£t
+, EMS_TYPE_wwSettings);
+
+1337 
+LOG_WARNING
+(
+F
+("S‘�h”mo¡© w¬m w©” mode: Inv®id mode: %s"), 
+v
+.
+c_¡r
+());
+
+1342 
+	gTh”mo¡©
+::
+£t_hÞiday
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1343 
+	g¡d
+::
+¡ršg
+ 
+hd
+(30, '\0');
+
+1344 ià(!
+	gH–³rs
+::
+v®ue2¡ršg
+(
+v®ue
+, 
+hd
+)) {
+
+1347 
+ušt8_t
+ 
+	ghc_num
+ = (
+id
+ =ð-1è? 
+AUTO_HEATING_CIRCUIT
+ : id;
+
+1349 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+hc_num
+);
+
+1350 ià(
+	ghc
+ =ð
+nuÎ±r
+) {
+
+1351 
+LOG_WARNING
+(
+F
+("S‘ hÞiday: H—tšg Cœcu™ %d‚Ù found o¸aùiv©ed fÜ deviû ID 0x%02X"), 
+hc_num
+, 
+this
+->
+g‘_deviû_id
+());
+
+1354 
+ušt8_t
+ 
+	gd©a
+[6];
+
+1355 
+	gd©a
+[0] = (
+hd
+[0] - '0') * 10 + (hd[1] - '0');
+
+1356 
+	gd©a
+[1] = (
+hd
+[3] - '0') * 10 + (hd[4] - '0');
+
+1357 
+	gd©a
+[2] = (
+hd
+[7] - '0') * 100 + (hd[8] - '0') * 10 + (hd[9] - '0');
+
+1358 
+	gd©a
+[3] = (
+hd
+[11] - '0') * 10 + (hd[11] - '0');
+
+1359 
+	gd©a
+[4] = (
+hd
+[14] - '0') * 10 + (hd[15] - '0');
+
+1360 
+	gd©a
+[5] = (
+hd
+[18] - '0') * 100 + (hd[19] - '0') * 10 + (hd[20] - '0');
+
+1362 
+LOG_INFO
+(
+F
+("S‘tšg hÞiday fÜ hø%d"), 
+hc
+->
+hc_num
+());
+
+1363 
+wr™e_commªd
+(
+tim”_ty³ids
+[
+hc
+->
+hc_num
+(è- 1], 87, 
+d©a
+, 6, 0);
+
+1367 
+	gTh”mo¡©
+::
+£t_·u£
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1368 
+	ghrs
+ = 0;
+
+1369 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+hrs
+)) {
+
+1372 
+ušt8_t
+ 
+	ghc_num
+ = (
+id
+ =ð-1è? 
+AUTO_HEATING_CIRCUIT
+ : id;
+
+1374 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+hc_num
+);
+
+1375 ià(
+	ghc
+ =ð
+nuÎ±r
+) {
+
+1376 
+LOG_WARNING
+(
+F
+("S‘…au£: H—tšg Cœcu™ %d‚Ù found o¸aùiv©ed fÜ deviû ID 0x%02X"), 
+hc_num
+, 
+this
+->
+g‘_deviû_id
+());
+
+1379 
+LOG_INFO
+(
+F
+("S‘tšg…au£: %d hours, hc: %d"), 
+hrs
+, 
+hc
+->
+hc_num
+());
+
+1380 
+wr™e_commªd
+(
+tim”_ty³ids
+[
+hc
+->
+hc_num
+(è- 1], 85, 
+hrs
+);
+
+1384 
+	gTh”mo¡©
+::
+£t_·¹y
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1385 
+	ghrs
+ = 0;
+
+1386 ià(!
+	gH–³rs
+::
+v®ue2numb”
+(
+v®ue
+, 
+hrs
+)) {
+
+1389 
+ušt8_t
+ 
+	ghc_num
+ = (
+id
+ =ð-1è? 
+AUTO_HEATING_CIRCUIT
+ : id;
+
+1391 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+hc_num
+);
+
+1392 ià(
+	ghc
+ =ð
+nuÎ±r
+) {
+
+1393 
+LOG_WARNING
+(
+F
+("S‘…¬ty: H—tšg Cœcu™ %d‚Ù found o¸aùiv©ed fÜ deviû ID 0x%02X"), 
+hc_num
+, 
+this
+->
+g‘_deviû_id
+());
+
+1396 
+LOG_INFO
+(
+F
+("S‘tšg…¬ty: %d hours, hc: %d"), 
+hrs
+, 
+hc
+->
+hc_num
+());
+
+1397 
+wr™e_commªd
+(
+tim”_ty³ids
+[
+hc
+->
+hc_num
+(è- 1], 86, 
+hrs
+);
+
+1403 
+	gTh”mo¡©
+::
+£t_d©‘ime
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1404 
+	g¡d
+::
+¡ršg
+ 
+dt
+(30, '\0');
+
+1405 ià(!
+	gH–³rs
+::
+v®ue2¡ršg
+(
+v®ue
+, 
+dt
+)) {
+
+1409 
+ušt8_t
+ 
+	gd©a
+[9];
+
+1410 ià(
+	gdt
+ == "ntp") {
+
+1411 
+time_t
+ 
+now
+ = 
+time
+(
+nuÎ±r
+);
+
+1412 
+tm
+ * 
+	gtm_
+ = 
+loÿÉime
+(&
+now
+);
+
+1413 ià(
+	gtm_
+->
+	gtm_y—r
+ < 110) {
+
+1414 
+LOG_WARNING
+(
+F
+("No NTP�ime. Cannot set RCtime"));
+
+1417 
+	gd©a
+[0] = 
+tm_
+->
+tm_y—r
+ - 100;
+
+1418 
+	gd©a
+[1] = 
+tm_
+->
+tm_mÚ
+;
+
+1419 
+	gd©a
+[2] = 
+tm_
+->
+tm_hour
+;
+
+1420 
+	gd©a
+[3] = 
+tm_
+->
+tm_mday
+;
+
+1421 
+	gd©a
+[4] = 
+tm_
+->
+tm_mš
+;
+
+1422 
+	gd©a
+[5] = 
+tm_
+->
+tm_£c
+;
+
+1423 
+	gd©a
+[6] = (
+tm_
+->
+tm_wday
+ + 6) % 7;
+
+1424 
+	gd©a
+[7] = 
+tm_
+->
+tm_isd¡
+ + 2;
+
+1425 
+	gtime_¡ršg
+[25];
+
+1426 
+¡ráime
+(
+time_¡ršg
+, 25, "%FT%T%z", 
+tm_
+);
+
+1427 
+LOG_INFO
+(
+F
+("D©�ªd�ime: %s"), 
+time_¡ršg
+);
+
+1429 
+	gd©a
+[0] = (
+dt
+[16] - '0') * 100 + (dt[17] - '0') * 10 + (dt[18] - '0');
+
+1430 
+	gd©a
+[1] = (
+dt
+[12] - '0') * 10 + (dt[13] - '0');
+
+1431 
+	gd©a
+[2] = (
+dt
+[0] - '0') * 10 + (dt[1] - '0');
+
+1432 
+	gd©a
+[3] = (
+dt
+[9] - '0') * 10 + (dt[10] - '0');
+
+1433 
+	gd©a
+[4] = (
+dt
+[3] - '0') * 10 + (dt[4] - '0');
+
+1434 
+	gd©a
+[5] = (
+dt
+[6] - '0') * 10 + (dt[7] - '0');
+
+1435 
+	gd©a
+[6] = (
+dt
+[20] - '0');
+
+1436 
+	gd©a
+[7] = (
+dt
+[22] - '0') + 2;
+
+1438 
+LOG_INFO
+(
+F
+("Setting date‡nd�ime"));
+
+1439 
+wr™e_commªd
+(
+EMS_TYPE_time
+, 0, 
+d©a
+, 8, EMS_TYPE_time);
+
+1444 
+	gTh”mo¡©
+::
+£t_mode
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1445 
+	g¡d
+::
+¡ršg
+ 
+mode
+(10, '\0');
+
+1446 ià(!
+	gH–³rs
+::
+v®ue2¡ršg
+(
+v®ue
+, 
+mode
+)) {
+
+1450 
+ušt8_t
+ 
+	ghc_num
+ = (
+id
+ =ð-1è? 
+AUTO_HEATING_CIRCUIT
+ : id;
+
+1452 ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+OFF
+è=ð
+mode
+) {
+
+1453 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+OFF
+, 
+hc_num
+);
+
+1454 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+è=ð
+mode
+) {
+
+1455 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+, 
+hc_num
+);
+
+1456 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+è=ð
+mode
+) {
+
+1457 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+, 
+hc_num
+);
+
+1458 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+è=ð
+mode
+) {
+
+1459 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+, 
+hc_num
+);
+
+1460 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+è=ð
+mode
+) {
+
+1461 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+, 
+hc_num
+);
+
+1462 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+è=ð
+mode
+) {
+
+1463 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+, 
+hc_num
+);
+
+1464 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+è=ð
+mode
+) {
+
+1465 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+, 
+hc_num
+);
+
+1466 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+è=ð
+mode
+) {
+
+1467 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+, 
+hc_num
+);
+
+1468 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+è=ð
+mode
+) {
+
+1469 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+, 
+hc_num
+);
+
+1470 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+COMFORT
+è=ð
+mode
+) {
+
+1471 
+£t_mode_n
+(
+H—tšgCœcu™
+::
+Mode
+::
+COMFORT
+, 
+hc_num
+);
+
+1473 
+LOG_WARNING
+(
+F
+("Inv®id mod�%s. CªnÙ s‘"), 
+mode
+.
+c_¡r
+());
+
+1479 
+	gTh”mo¡©
+::
+£t_mode_n
+(cÚ¡ 
+ušt8_t
+ 
+mode
+, cÚ¡ ušt8_ˆ
+hc_num
+) {
+
+1481 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+hc_num
+);
+
+1482 ià(
+	ghc
+ =ð
+nuÎ±r
+) {
+
+1483 
+LOG_WARNING
+(
+F
+("£ˆmode: H—tšg Cœcu™ %d‚Ù found o¸aùiv©ed"), 
+hc_num
+);
+
+1487 
+ušt8_t
+ 
+	g£t_mode_v®ue
+, 
+	goff£t
+;
+
+1488 
+ušt16_t
+ 
+	gv®id©e_ty³id
+ = 0;
+
+1489 
+ušt8_t
+ 
+	ghc_p
+ = 
+hc
+->
+hc_num
+() - 1;
+
+1492 
+	gmode
+) {
+
+1493 
+	gH—tšgCœcu™
+::
+Mode
+::
+NIGHT
+:
+
+1494 
+H—tšgCœcu™
+::
+Mode
+::
+OFF
+:
+
+1495 
+£t_mode_v®ue
+ = 0;
+
+1498 
+	gH—tšgCœcu™
+::
+Mode
+::
+DAY
+:
+
+1499 
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+:
+
+1500 
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+:
+
+1501 
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+:
+
+1502 
+£t_mode_v®ue
+ = 1;
+
+1506 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+:
+
+1507 
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+:
+
+1508 
+£t_mode_v®ue
+ = 2;
+
+1512 
+	gthis
+->
+mod–
+()) {
+
+1513 
+	gEMSdeviû
+::
+EMS_DEVICE_FLAG_RC20
+:
+
+1514 
+off£t
+ = 
+EMS_OFFSET_RC20S‘_mode
+;
+
+1515 
+	gv®id©e_ty³id
+ = 
+£t_ty³ids
+[
+hc_p
+];
+
+1517 
+	gEMSdeviû
+::
+EMS_DEVICE_FLAG_RC20_2
+:
+
+1518 
+off£t
+ = 
+EMS_OFFSET_RC20_2_S‘_mode
+;
+
+1519 
+	gv®id©e_ty³id
+ = 
+£t_ty³ids
+[
+hc_p
+];
+
+1521 
+	gEMSdeviû
+::
+EMS_DEVICE_FLAG_RC30
+:
+
+1522 
+off£t
+ = 
+EMS_OFFSET_RC30S‘_mode
+;
+
+1523 
+	gv®id©e_ty³id
+ = 
+£t_ty³ids
+[
+hc_p
+];
+
+1525 
+	gEMSdeviû
+::
+EMS_DEVICE_FLAG_RC35
+:
+
+1526 
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC30_1
+:
+
+1527 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_mode
+;
+
+1528 
+	gv®id©e_ty³id
+ = 
+£t_ty³ids
+[
+hc_p
+];
+
+1530 
+	gEMSdeviû
+::
+EMS_DEVICE_FLAG_RC300
+:
+
+1531 
+EMSdeviû
+::
+EMS_DEVICE_FLAG_RC100
+:
+
+1532 
+off£t
+ = 
+EMS_OFFSET_RCPLUSS‘_mode
+;
+
+1533 
+	gv®id©e_ty³id
+ = 
+mÚ™Ü_ty³ids
+[
+hc_p
+];
+
+1534 ià(
+	gmode
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+) {
+
+1535 
+£t_mode_v®ue
+ = 0xFF;
+
+1537 
+	g£t_mode_v®ue
+ = 0;
+
+1540 
+	gEMSdeviû
+::
+EMS_DEVICE_FLAG_JUNKERS
+:
+
+1541 ià((
+this
+->
+æags
+(è& 
+EMS_DEVICE_FLAG_JUNKERS_2
+) == EMS_DEVICE_FLAG_JUNKERS_2) {
+
+1542 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge2_£t_mode
+;
+
+1544 
+	goff£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge_£t_mode
+;
+
+1546 
+	gv®id©e_ty³id
+ = 
+mÚ™Ü_ty³ids
+[
+hc_p
+];
+
+1547 ià(
+	gmode
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+) {
+
+1548 
+£t_mode_v®ue
+ = 0x01;
+
+1549 } ià(
+	gmode
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+ || (
+mode
+ =ðH—tšgCœcu™::Mode::
+NIGHT
+)) {
+
+1550 
+£t_mode_v®ue
+ = 0x02;
+
+1551 } ià((
+	gmode
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+è|| (
+mode
+ =ðH—tšgCœcu™::Mode::
+HEAT
+)) {
+
+1552 
+£t_mode_v®ue
+ = 0x03;
+
+1553 } ià(
+	gmode
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+) {
+
+1554 
+£t_mode_v®ue
+ = 0x04;
+
+1558 
+off£t
+ = 0;
+
+1562 
+LOG_INFO
+(
+F
+("S‘tšg�h”mo¡© mod�tØ% fÜ h—tšg cœcu™ %d"), 
+mode_to¡ršg
+(
+mode
+).
+c_¡r
+(), 
+hc
+->
+hc_num
+());
+
+1566 
+wr™e_commªd
+(
+£t_ty³ids
+[
+hc
+->
+hc_num
+(è- 1], 
+off£t
+, 
+£t_mode_v®ue
+, 
+v®id©e_ty³id
+);
+
+1570 
+	gTh”mo¡©
+::
+£t_‹m³¿tu»
+(cÚ¡ 
+‹m³¿tu»
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+mode
+, cÚ¡ 
+ušt8_t
+ 
+hc_num
+) {
+
+1571 ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+è=ð
+mode
+) {
+
+1572 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+MANUAL
+, 
+hc_num
+);
+
+1573 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+è=ð
+mode
+) {
+
+1574 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+, 
+hc_num
+);
+
+1575 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+è=ð
+mode
+) {
+
+1576 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+, 
+hc_num
+);
+
+1577 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+è=ð
+mode
+) {
+
+1578 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+, 
+hc_num
+);
+
+1579 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+COMFORT
+è=ð
+mode
+) {
+
+1580 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+COMFORT
+, 
+hc_num
+);
+
+1581 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+è=ð
+mode
+) {
+
+1582 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+, 
+hc_num
+);
+
+1583 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+è=ð
+mode
+) {
+
+1584 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+, 
+hc_num
+);
+
+1585 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+SUMMER
+è=ð
+mode
+) {
+
+1586 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+SUMMER
+, 
+hc_num
+);
+
+1587 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+è=ð
+mode
+) {
+
+1588 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+, 
+hc_num
+);
+
+1589 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+OFFSET
+è=ð
+mode
+) {
+
+1590 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+OFFSET
+, 
+hc_num
+);
+
+1591 } ià(
+mode_to¡ršg
+(
+H—tšgCœcu™
+::
+Mode
+::
+DESIGN
+è=ð
+mode
+) {
+
+1592 
+£t_‹m³¿tu»
+(
+‹m³¿tu»
+, 
+H—tšgCœcu™
+::
+Mode
+::
+DESIGN
+, 
+hc_num
+);
+
+1594 
+LOG_WARNING
+(
+F
+("Inv®id mod�%s."), 
+mode
+.
+c_¡r
+());
+
+1600 
+	gTh”mo¡©
+::
+£t_‹m³¿tu»
+(cÚ¡ 
+‹m³¿tu»
+, cÚ¡ 
+ušt8_t
+ 
+mode
+, cÚ¡ ušt8_ˆ
+hc_num
+) {
+
+1602 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+hc
+ = 
+h—tšg_cœcu™
+(
+hc_num
+);
+
+1603 ià(
+	ghc
+ =ð
+nuÎ±r
+) {
+
+1604 
+LOG_WARNING
+(
+F
+("S‘�em³¿tu»: H—tšg Cœcu™ %d‚Ù found o¸aùiv©ed fÜ deviû ID 0x%02X"), 
+hc_num
+, 
+this
+->
+g‘_deviû_id
+());
+
+1608 
+ušt8_t
+ 
+	gmod–
+ = 
+this
+->
+mod–
+();
+
+1609 
+št8_t
+ 
+	goff£t
+ = -1;
+
+1610 
+ušt8_t
+ 
+	gçùÜ
+ = 2;
+
+1611 
+ušt16_t
+ 
+	gv®id©e_ty³id
+ = 
+mÚ™Ü_ty³ids
+[
+hc
+->
+hc_num
+() - 1];
+
+1613 ià(
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_RC10
+) {
+
+1614 
+off£t
+ = 
+EMS_OFFSET_RC10S‘_‹mp
+;
+
+1616 } ià(
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_RC20
+) {
+
+1617 
+off£t
+ = 
+EMS_OFFSET_RC20S‘_‹mp
+;
+
+1619 } ià(
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_RC30
+) {
+
+1620 
+off£t
+ = 
+EMS_OFFSET_RC30S‘_‹mp
+;
+
+1622 } ià((
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_RC300
+è|| (
+mod–
+ =ð
+EMS_DEVICE_FLAG_RC100
+)) {
+
+1623 
+v®id©e_ty³id
+ = 
+£t_ty³ids
+[
+hc
+->
+hc_num
+() - 1];
+
+1624 
+	gmode
+) {
+
+1625 
+	gH—tšgCœcu™
+::
+Mode
+::
+MANUAL
+:
+
+1626 
+off£t
+ = 0x0A;
+
+1628 
+	gH—tšgCœcu™
+::
+Mode
+::
+COMFORT
+:
+
+1629 
+off£t
+ = 0x02;
+
+1632 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+:
+
+1633 
+off£t
+ = 0x08;
+
+1634 
+	gv®id©e_ty³id
+ = 
+mÚ™Ü_ty³ids
+[
+hc
+->
+hc_num
+() - 1];
+
+1638 } ià(
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_RC20_2
+) {
+
+1639 
+mode
+) {
+
+1640 
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+:
+
+1641 
+off£t
+ = 
+EMS_OFFSET_RC20_2_S‘_‹mp_night
+;
+
+1643 
+	gH—tšgCœcu™
+::
+Mode
+::
+DAY
+:
+
+1644 
+off£t
+ = 
+EMS_OFFSET_RC20_2_S‘_‹mp_day
+;
+
+1647 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+:
+
+1648 
+ušt8_t
+ 
+mode_ty³
+ = 
+hc
+->
+g‘_mode_ty³
+(
+this
+->
+æags
+());
+
+1649 
+	goff£t
+ = (
+mode_ty³
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+è? 
+EMS_OFFSET_RC20_2_S‘_‹mp_night
+ : 
+EMS_OFFSET_RC20_2_S‘_‹mp_day
+;
+
+1653 } ià((
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_RC35
+è|| (
+mod–
+ =ð
+EMS_DEVICE_FLAG_RC30_1
+)) {
+
+1654 
+v®id©e_ty³id
+ = 
+£t_ty³ids
+[
+hc
+->
+hc_num
+() - 1];
+
+1655 
+	gmode
+) {
+
+1656 
+	gH—tšgCœcu™
+::
+Mode
+::
+NIGHT
+:
+
+1657 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_night
+;
+
+1659 
+	gH—tšgCœcu™
+::
+Mode
+::
+DAY
+:
+
+1660 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_day
+;
+
+1662 
+	gH—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+:
+
+1663 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_hÞiday
+;
+
+1665 
+	gH—tšgCœcu™
+::
+Mode
+::
+OFFSET
+:
+
+1666 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_off£t
+;
+
+1668 
+	gH—tšgCœcu™
+::
+Mode
+::
+DESIGN
+:
+
+1669 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_design
+;
+
+1670 
+	gçùÜ
+ = 1;
+
+1672 
+	gH—tšgCœcu™
+::
+Mode
+::
+SUMMER
+:
+
+1673 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_summ”
+;
+
+1674 
+	gçùÜ
+ = 1;
+
+1676 
+	gH—tšgCœcu™
+::
+Mode
+::
+NOFROST
+:
+
+1677 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_noäo¡
+;
+
+1678 
+	gçùÜ
+ = 1;
+
+1681 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+:
+
+1682 
+v®id©e_ty³id
+ = 
+mÚ™Ü_ty³ids
+[
+hc
+->
+hc_num
+() - 1];
+
+1683 ià(
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_RC35
+) {
+
+1684 
+ušt8_t
+ 
+mode_
+ = 
+hc
+->
+g‘_mode
+(
+this
+->
+æags
+());
+
+1685 ià(
+	gmode_
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+) {
+
+1686 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_night
+;
+
+1687 } ià(
+	gmode_
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+) {
+
+1688 
+off£t
+ = 
+EMS_OFFSET_RC35S‘_‹mp_day
+;
+
+1690 
+	goff£t
+ = 
+EMS_OFFSET_RC35S‘_£Éemp
+;
+
+1693 
+ušt8_t
+ 
+	gmode_ty³
+ = 
+hc
+->
+g‘_mode_ty³
+(
+this
+->
+æags
+());
+
+1694 
+	goff£t
+ = (
+mode_ty³
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+è? 
+EMS_OFFSET_RC35S‘_‹mp_night
+ : 
+EMS_OFFSET_RC35S‘_‹mp_day
+;
+
+1699 } ià(
+	gmod–
+ =ð
+EMS_DEVICE_FLAG_JUNKERS
+) {
+
+1702 
+boÞ
+ 
+Þd_junk”s
+ = ((
+this
+->
+æags
+(è& 
+EMS_DEVICE_FLAG_JUNKERS_2
+) == EMS_DEVICE_FLAG_JUNKERS_2);
+
+1703 ià(!
+	gÞd_junk”s
+) {
+
+1704 
+	gmode
+) {
+
+1705 
+	gH—tšgCœcu™
+::
+Mode
+::
+NOFROST
+:
+
+1706 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge_no_äo¡_‹mp
+;
+
+1708 
+	gH—tšgCœcu™
+::
+Mode
+::
+NIGHT
+:
+
+1709 
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+:
+
+1710 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge_night_‹mp
+;
+
+1712 
+	gH—tšgCœcu™
+::
+Mode
+::
+HEAT
+:
+
+1713 
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+:
+
+1714 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge_day_‹mp
+;
+
+1717 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+:
+
+1718 
+ušt8_t
+ 
+mode_ty³
+ = 
+hc
+->
+g‘_mode_ty³
+(
+this
+->
+æags
+());
+
+1719 ià(
+	gmode_ty³
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+ || 
+mode_ty³
+ =ðH—tšgCœcu™::Mode::
+ECO
+) {
+
+1720 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge_night_‹mp
+;
+
+1721 } ià(
+	gmode_ty³
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+ || 
+mode_ty³
+ =ðH—tšgCœcu™::Mode::
+HEAT
+) {
+
+1722 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge_day_‹mp
+;
+
+1724 
+	goff£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge_no_äo¡_‹mp
+;
+
+1731 
+	gmode
+) {
+
+1732 
+	gH—tšgCœcu™
+::
+Mode
+::
+NOFROST
+:
+
+1733 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge2_no_äo¡_‹mp
+;
+
+1735 
+	gH—tšgCœcu™
+::
+Mode
+::
+ECO
+:
+
+1736 
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+:
+
+1737 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge2_eco_‹mp
+;
+
+1739 
+	gH—tšgCœcu™
+::
+Mode
+::
+HEAT
+:
+
+1740 
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+:
+
+1741 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge2_h—t_‹mp
+;
+
+1744 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+:
+
+1745 
+ušt8_t
+ 
+mode_ty³
+ = 
+hc
+->
+g‘_mode_ty³
+(
+this
+->
+æags
+());
+
+1746 ià(
+	gmode_ty³
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+ || 
+mode_ty³
+ =ðH—tšgCœcu™::Mode::
+ECO
+) {
+
+1747 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge2_eco_‹mp
+;
+
+1748 } ià(
+	gmode_ty³
+ =ð
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+ || 
+mode_ty³
+ =ðH—tšgCœcu™::Mode::
+HEAT
+) {
+
+1749 
+off£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge2_h—t_‹mp
+;
+
+1751 
+	goff£t
+ = 
+EMS_OFFSET_Junk”sS‘Mes§ge2_no_äo¡_‹mp
+;
+
+1759 ià(
+	goff£t
+ != -1) {
+
+1760 
+s
+[10];
+
+1761 
+LOG_INFO
+(
+F
+("Setting�hermostat�emperature�o %s for heating circuit %d, mode %s"),
+
+1762 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+‹m³¿tu»
+, 2),
+
+1763 
+hc
+->
+hc_num
+(),
+
+1764 
+mode_to¡ršg
+(
+mode
+).
+c_¡r
+());
+
+1768 
+wr™e_commªd
+(
+£t_ty³ids
+[
+hc
+->
+hc_num
+(è- 1], 
+off£t
+, (
+ušt8_t
+)(()
+‹m³¿tu»
+ * ()
+çùÜ
+), 
+v®id©e_ty³id
+);
+
+1773 
+	gTh”mo¡©
+::
+th”mo¡©_cmd_‹mp
+(cÚ¡ * 
+mes§ge
+) {
+
+1774 
+f
+ = 
+¡¹of
+((*)
+mes§ge
+, 0);
+
+1775 
+£t_‹m³¿tu»
+(
+f
+, 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+, 
+AUTO_HEATING_CIRCUIT
+);
+
+1780 
+	gTh”mo¡©
+::
+th”mo¡©_cmd_mode
+(cÚ¡ * 
+mes§ge
+) {
+
+1781 
+£t_mode
+(
+mes§ge
+, 
+AUTO_HEATING_CIRCUIT
+);
+
+1784 
+	gTh”mo¡©
+::
+£t_‹m³¿tu»_v®ue
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+, cÚ¡ 
+ušt8_t
+ 
+mode
+) {
+
+1785 
+	gf
+ = 0;
+
+1786 
+ušt8_t
+ 
+	ghc_num
+ = (
+id
+ =ð-1è? 
+AUTO_HEATING_CIRCUIT
+ : id;
+
+1787 ià(
+	gH–³rs
+::
+v®ue2æßt
+(
+v®ue
+, 
+f
+)) {
+
+1788 
+£t_‹m³¿tu»
+(
+f
+, 
+mode
+, 
+hc_num
+);
+
+1792 
+	gTh”mo¡©
+::
+£t_‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1793 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+AUTO
+);
+
+1796 
+	gTh”mo¡©
+::
+£t_nigh‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1797 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+NIGHT
+);
+
+1800 
+	gTh”mo¡©
+::
+£t_day‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1801 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+DAY
+);
+
+1804 
+	gTh”mo¡©
+::
+£t_noäo¡‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1805 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+NOFROST
+);
+
+1808 
+	gTh”mo¡©
+::
+£t_ecÙemp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1809 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+ECO
+);
+
+1812 
+	gTh”mo¡©
+::
+£t_h—‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1813 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+HEAT
+);
+
+1816 
+	gTh”mo¡©
+::
+£t_summ”‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1817 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+SUMMER
+);
+
+1820 
+	gTh”mo¡©
+::
+£t_desigÁemp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1821 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+DESIGN
+);
+
+1824 
+	gTh”mo¡©
+::
+£t_off£‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1825 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+OFFSET
+);
+
+1828 
+	gTh”mo¡©
+::
+£t_hÞiday‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+1829 
+£t_‹m³¿tu»_v®ue
+(
+v®ue
+, 
+id
+, 
+H—tšgCœcu™
+::
+Mode
+::
+HOLIDAY
+);
+
+1833 
+	gTh”mo¡©
+::
+add_commªds
+() {
+
+1835 ià((
+this
+->
+æags
+(è& 
+EMSdeviû
+::
+EMS_DEVICE_FLAG_NO_WRITE
+) == EMSdevice::EMS_DEVICE_FLAG_NO_WRITE) {
+
+1840 
+»gi¡”_mq‰_cmd
+(
+F
+("wwmode"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_wwmode
+(value, id); });
+
+1841 
+»gi¡”_mq‰_cmd
+(
+F
+("‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_‹mp
+(value, id); });
+
+1842 
+»gi¡”_mq‰_cmd
+(
+F
+("mode"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_mode
+(value, id); });
+
+1844 
+ušt8_t
+ 
+	gmod–
+ = 
+this
+->
+mod–
+();
+
+1845 
+	gmod–
+) {
+
+1846 
+	gEMS_DEVICE_FLAG_RC20_2
+:
+
+1847 
+»gi¡”_mq‰_cmd
+(
+F
+("nigh‰emp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_nigh‰emp
+(value, id); });
+
+1848 
+»gi¡”_mq‰_cmd
+(
+F
+("day‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_day‹mp
+(value, id); });
+
+1850 
+	gEMS_DEVICE_FLAG_RC30_1
+:
+
+1851 
+»gi¡”_mq‰_cmd
+(
+F
+("þockoff£t"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_þockoff£t
+(value, id); });
+
+1852 
+»gi¡”_mq‰_cmd
+(
+F
+("Ïnguage"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_Ïnguage
+(value, id); });
+
+1853 
+»gi¡”_mq‰_cmd
+(
+F
+("di¥Ïy"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_di¥Ïy
+(value, id); });
+
+1854 
+	gEMS_DEVICE_FLAG_RC35
+:
+
+1855 
+»gi¡”_mq‰_cmd
+(
+F
+("nigh‰emp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_nigh‰emp
+(value, id); });
+
+1856 
+»gi¡”_mq‰_cmd
+(
+F
+("day‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_day‹mp
+(value, id); });
+
+1857 
+»gi¡”_mq‰_cmd
+(
+F
+("noäo¡‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_noäo¡‹mp
+(value, id); });
+
+1858 
+»gi¡”_mq‰_cmd
+(
+F
+("»mÙ‘emp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_»mÙ‘emp
+(value, id); });
+
+1859 
+»gi¡”_mq‰_cmd
+(
+F
+("d©‘ime"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_d©‘ime
+(value, id); });
+
+1860 
+»gi¡”_mq‰_cmd
+(
+F
+("mšex‰emp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_mšex‰emp
+(value, id); });
+
+1861 
+»gi¡”_mq‰_cmd
+(
+F
+("ÿlš‰emp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_ÿlš‰emp
+(value, id); });
+
+1862 
+»gi¡”_mq‰_cmd
+(
+F
+("buždšg"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_buždšg
+(value, id); });
+
+1863 
+»gi¡”_mq‰_cmd
+(
+F
+("cÚŒÞ"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_cÚŒÞ
+(value, id); });
+
+1864 
+»gi¡”_mq‰_cmd
+(
+F
+("·u£"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_·u£
+(value, id); });
+
+1865 
+»gi¡”_mq‰_cmd
+(
+F
+("·¹y"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_·¹y
+(value, id); });
+
+1866 
+»gi¡”_mq‰_cmd
+(
+F
+("hÞiday"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_hÞiday
+(value, id); });
+
+1867 
+»gi¡”_mq‰_cmd
+(
+F
+("summ”‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_summ”‹mp
+(value, id); });
+
+1868 
+»gi¡”_mq‰_cmd
+(
+F
+("desigÁemp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_desigÁemp
+(value, id); });
+
+1869 
+»gi¡”_mq‰_cmd
+(
+F
+("off£‰emp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_off£‰emp
+(value, id); });
+
+1870 
+»gi¡”_mq‰_cmd
+(
+F
+("hÞiday‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_hÞiday‹mp
+(value, id); });
+
+1872 
+	gEMS_DEVICE_FLAG_JUNKERS
+:
+
+1873 
+»gi¡”_mq‰_cmd
+(
+F
+("noäo¡‹mp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_noäo¡‹mp
+(value, id); });
+
+1874 
+»gi¡”_mq‰_cmd
+(
+F
+("ecÙemp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_ecÙemp
+(value, id); });
+
+1875 
+»gi¡”_mq‰_cmd
+(
+F
+("h—‰emp"), [&](cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+è{ 
+£t_h—‰emp
+(value, id); });
+
+	@src/devices/thermostat.h
+
+19 #iâdeà
+EMSESP_THERMOSTAT_H
+
+
+20 
+	#EMSESP_THERMOSTAT_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<uuid/log.h
+>
+
+27 
+	~"emsdeviû.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"em£¥.h
+"
+
+30 
+	~"h–³rs.h
+"
+
+31 
+	~"mq‰.h
+"
+
+33 
+	~<veùÜ
+>
+
+34 
+	~<time.h
+>
+
+36 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+38 þas 
+	cTh”mo¡©
+ : 
+public
+ 
+EMSdeviû
+ {
+
+39 
+public
+:
+
+40 
+Th”mo¡©
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+);
+
+41 þas 
+	cH—tšgCœcu™
+ {
+
+42 
+	gpublic
+:
+
+43 
+H—tšgCœcu™
+(cÚ¡ 
+ušt8_t
+ 
+hc_num
+)
+
+44 : 
+hc_num_
+(
+hc_num
+)
+
+45 , 
+ha_»gi¡”ed_
+(
+çl£
+) {
+
+47 ~
+H—tšgCœcu™
+() = ;
+
+49 
+št16_t
+ 
+	g£�ošt_roomTemp
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+50 
+št16_t
+ 
+	gcu¼_roomTemp
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+51 
+ušt8_t
+ 
+	gmode
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+52 
+ušt8_t
+ 
+	gmode_ty³
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+53 
+ušt8_t
+ 
+	gsumm”_mode
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+54 
+ušt8_t
+ 
+	ghÞiday_mode
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+55 
+ušt8_t
+ 
+	gday‹mp
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+56 
+ušt8_t
+ 
+	gnigh‰emp
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+57 
+ušt8_t
+ 
+	ghÞiday‹mp
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+58 
+ušt8_t
+ 
+	gh—tšgty³
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+59 
+ušt8_t
+ 
+	g�rg‘æow‹mp
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+60 
+ušt8_t
+ 
+	gsumm”‹mp
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+61 
+ušt8_t
+ 
+	gnoäo¡‹mp
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+62 
+ušt8_t
+ 
+	gdesigÁemp
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+63 
+št8_t
+ 
+	goff£‰emp
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+65 
+ušt8_t
+ 
+hc_num
+() const {
+
+66  
+	ghc_num_
+;
+
+69 
+boÞ
+ 
+ha_»gi¡”ed
+() const {
+
+70  
+	gha_»gi¡”ed_
+;
+
+73 
+ha_»gi¡”ed
+(
+boÞ
+ 
+b
+) {
+
+74 
+	gha_»gi¡”ed_
+ = 
+b
+;
+
+78 
+boÞ
+ 
+is_aùive
+() {
+
+79  
+	gH–³rs
+::
+hasV®ue
+(
+£�ošt_roomTemp
+);
+
+82 
+ušt8_t
+ 
+g‘_mode
+(ušt8_ˆ
+æags
+) const;
+
+83 
+ušt8_t
+ 
+g‘_mode_ty³
+(ušt8_ˆ
+æags
+) const;
+
+85 
+	gMode
+ : 
+ušt8_t
+ { 
+UNKNOWN
+, 
+	gOFF
+, 
+	gMANUAL
+, 
+	gAUTO
+, 
+	gDAY
+, 
+	gNIGHT
+, 
+	gHEAT
+, 
+	gNOFROST
+, 
+	gECO
+, 
+	gHOLIDAY
+, 
+	gCOMFORT
+, 
+	gOFFSET
+, 
+	gDESIGN
+, 
+	gSUMMER
+ };
+
+88 
+ä›nd
+ 
+šlše
+ 
+boÞ
+ 
+	gÝ”©Ü
+<(cÚ¡ 
+	g¡d
+::
+sh¬ed_±r
+<
+H—tšgCœcu™
+> & 
+lhs
+, cÚ¡ std::sh¬ed_±r<H—tšgCœcu™> & 
+rhs
+) {
+
+89  (
+lhs
+->
+hc_num_
+ < 
+rhs
+->hc_num_);
+
+92 
+	g´iv©e
+:
+
+93 
+ušt8_t
+ 
+hc_num_
+;
+
+94 
+boÞ
+ 
+	gha_»gi¡”ed_
+;
+
+97 
+	g¡d
+::
+¡ršg
+ 
+mode_to¡ršg
+(
+ušt8_t
+ 
+mode
+);
+
+99 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+100 
+vœtu®
+ 
+publish_v®ues
+();
+
+101 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+);
+
+102 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+103 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+();
+
+105 
+	g´iv©e
+:
+
+106 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+108 
+cÚsÞe_commªds
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+);
+
+109 
+add_commªds
+();
+
+112 
+šlše
+ 
+ušt8_t
+ 
+mod–
+() const {
+
+113  (
+	gthis
+->
+æags
+() & 0x0F);
+
+117 
+	g¡d
+::
+veùÜ
+<
+ušt16_t
+> 
+mÚ™Ü_ty³ids
+;
+
+118 
+	g¡d
+::
+veùÜ
+<
+ušt16_t
+> 
+£t_ty³ids
+;
+
+119 
+	g¡d
+::
+veùÜ
+<
+ušt16_t
+> 
+tim”_ty³ids
+;
+
+121 
+	g¡d
+::
+¡ršg
+ 
+d©‘ime_
+;
+
+123 
+ušt8_t
+ 
+	gmq‰_fÜm©_
+;
+
+124 
+boÞ
+ 
+	gchªged_
+ = 
+çl£
+;
+
+127 
+ušt8_t
+ 
+	gibaMašDi¥Ïy_
+ =
+
+128 
+EMS_VALUE_UINT_NOTSET
+;
+
+129 
+ušt8_t
+ 
+	gibaLªguage_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+130 
+št8_t
+ 
+	gibaC®IÁTem³¿tu»_
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+131 
+št8_t
+ 
+	gibaMšExtTem³¿tu»_
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+132 
+ušt8_t
+ 
+	gibaBuždšgTy³_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+133 
+ušt8_t
+ 
+	gibaClockOff£t_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+135 
+št8_t
+ 
+	gdam³doutdoÜ‹mp_
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+136 
+ušt16_t
+ 
+	g‹mp£nsÜ1_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+137 
+ušt16_t
+ 
+	g‹mp£nsÜ2_
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+139 
+ušt8_t
+ 
+	gwwSy¡em_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+140 
+ušt8_t
+ 
+	gwwExŒa_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+141 
+ušt8_t
+ 
+	gwwMode_
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+143 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+sh¬ed_±r
+<
+H—tšgCœcu™
+>> 
+h—tšg_cœcu™s_
+;
+
+146 
+cÚ¡ex´
+ 
+ušt16_t
+ 
+	gEMS_TYPE_RCTime
+ = 0x06;
+
+147 
+cÚ¡ex´
+ 
+ušt16_t
+ 
+	gEMS_TYPE_RCOutdoÜTemp
+ = 0xA3;
+
+150 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC10S�tusMes§ge_£�ošt
+ = 1;
+
+151 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC10S�tusMes§ge_cu¼
+ = 2;
+
+152 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC10S‘_‹mp
+ = 4;
+
+154 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC20S�tusMes§ge_£�ošt
+ = 1;
+
+155 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC20S�tusMes§ge_cu¼
+ = 2;
+
+156 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC20S‘_mode
+ = 23;
+
+157 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC20S‘_‹mp
+ = 28;
+
+159 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC20_2_S‘_mode
+ = 3;
+
+160 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC20_2_S‘_‹mp_night
+ = 1;
+
+161 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC20_2_S‘_‹mp_day
+ = 2;
+
+163 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC30S�tusMes§ge_£�ošt
+ = 1;
+
+164 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC30S�tusMes§ge_cu¼
+ = 2;
+
+165 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC30S‘_mode
+ = 23;
+
+166 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC30S‘_‹mp
+ = 28;
+
+168 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S�tusMes§ge_£�ošt
+ = 2;
+
+169 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S�tusMes§ge_cu¼
+ = 3;
+
+170 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S�tusMes§ge_mode
+ = 1;
+
+171 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S�tusMes§ge_mode1
+ = 0;
+
+172 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_mode
+ = 7;
+
+173 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_‹mp_day
+ = 2;
+
+174 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_‹mp_night
+ = 1;
+
+175 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_‹mp_hÞiday
+ = 3;
+
+176 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_h—tšgty³
+ = 0;
+
+177 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_�rg‘æow‹mp
+ = 14;
+
+178 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_£Éemp
+ = 37;
+
+179 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_‹mp_off£t
+ = 6;
+
+180 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_‹mp_design
+ = 17;
+
+181 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_‹mp_summ”
+ = 22;
+
+182 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RC35S‘_‹mp_noäo¡
+ = 23;
+
+184 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_EasyS�tusMes§ge_£�ošt
+ = 10;
+
+185 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_EasyS�tusMes§ge_cu¼
+ = 8;
+
+187 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS�tusMes§ge_mode
+ = 10;
+
+188 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS�tusMes§ge_£�ošt
+ = 3;
+
+189 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS�tusMes§ge_cu¼
+ = 0;
+
+190 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS�tusMes§ge_cu¼£�ošt
+ = 6;
+
+191 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS‘_mode
+ = 0;
+
+192 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS‘_‹mp_comfÜt3
+ = 1;
+
+193 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS‘_‹mp_comfÜt2
+ = 2;
+
+194 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS‘_‹mp_comfÜt1
+ = 3;
+
+195 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS‘_‹mp_eco
+ = 4;
+
+196 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS‘_‹mp_£�ošt
+ = 8;
+
+197 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_RCPLUSS‘_mªu®_£�ošt
+ = 10;
+
+199 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS�tusMes§ge_daymode
+ = 0;
+
+200 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS�tusMes§ge_mode
+ = 1;
+
+201 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS�tusMes§ge_£�ošt
+ = 2;
+
+202 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS�tusMes§ge_cu¼
+ = 4;
+
+203 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge_day_‹mp
+ = 17;
+
+204 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge_night_‹mp
+ = 16;
+
+205 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge_no_äo¡_‹mp
+ = 15;
+
+206 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge_£t_mode
+ = 14;
+
+207 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge2_£t_mode
+ = 4;
+
+208 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge2_no_äo¡_‹mp
+ = 5;
+
+209 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge2_eco_‹mp
+ = 6;
+
+210 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_OFFSET_Junk”sS‘Mes§ge2_h—t_‹mp
+ = 7;
+
+212 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gAUTO_HEATING_CIRCUIT
+ = 0;
+
+215 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_IBAS‘tšgs
+ = 0xA5;
+
+216 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_wwS‘tšgs
+ = 0x37;
+
+217 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TYPE_time
+ = 0x06;
+
+219 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+h—tšg_cœcu™
+(
+¡d
+::sh¬ed_±r<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+220 
+	g¡d
+::
+sh¬ed_±r
+<
+Th”mo¡©
+::
+H—tšgCœcu™
+> 
+h—tšg_cœcu™
+(cÚ¡ 
+ušt8_t
+ 
+hc_num
+);
+
+222 
+»gi¡”_mq‰_ha_cÚfig
+(
+ušt8_t
+ 
+hc_num
+);
+
+224 
+´oûss_RCOutdoÜTemp
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+225 
+´oûss_IBAS‘tšgs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+226 
+´oûss_RCTime
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+227 
+´oûss_RC35wwS‘tšgs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+228 
+´oûss_RC35MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+229 
+´oûss_RC35S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+230 
+´oûss_RC30MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+231 
+´oûss_RC30S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+232 
+´oûss_RC20MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+233 
+´oûss_RC20S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+234 
+´oûss_RC20RemÙe
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+235 
+´oûss_RC20MÚ™Ü_2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+236 
+´oûss_RC20S‘_2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+237 
+´oûss_RC10MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+238 
+´oûss_RC10S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+239 
+´oûss_RC300MÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+240 
+´oûss_RC300S‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+241 
+´oûss_Junk”sMÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+242 
+´oûss_Junk”sS‘
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+243 
+´oûss_Junk”sS‘2
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+244 
+´oûss_EasyMÚ™Ü
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+245 
+´oûss_RC300WWmode
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+248 
+£t_mode_n
+(cÚ¡ 
+ušt8_t
+ 
+mode
+, cÚ¡ ušt8_ˆ
+hc_num
+);
+
+250 
+£t_‹m³¿tu»_v®ue
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+, cÚ¡ 
+ušt8_t
+ 
+mode
+);
+
+251 
+£t_‹m³¿tu»
+(cÚ¡ 
+‹m³¿tu»
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+mode
+, cÚ¡ 
+ušt8_t
+ 
+hc_num
+);
+
+252 
+£t_‹m³¿tu»
+(cÚ¡ 
+‹m³¿tu»
+, cÚ¡ 
+ušt8_t
+ 
+mode
+, cÚ¡ ušt8_ˆ
+hc_num
+);
+
+255 
+th”mo¡©_cmd_‹mp
+(cÚ¡ * 
+mes§ge
+);
+
+256 
+th”mo¡©_cmd_mode
+(cÚ¡ * 
+mes§ge
+);
+
+259 
+£t_mode
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+260 
+£t_cÚŒÞ
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+261 
+£t_hÞiday
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+262 
+£t_·u£
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+263 
+£t_·¹y
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+265 
+£t_‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+266 
+£t_nigh‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+267 
+£t_day‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+268 
+£t_noäo¡‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+269 
+£t_ecÙemp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+270 
+£t_h—‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+271 
+£t_summ”‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+272 
+£t_desigÁemp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+273 
+£t_off£‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+274 
+£t_hÞiday‹mp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+276 
+£t_»mÙ‘emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+279 
+£t_wwmode
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+280 
+£t_d©‘ime
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+281 
+£t_mšex‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+282 
+£t_þockoff£t
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+283 
+£t_ÿlš‰emp
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+284 
+£t_di¥Ïy
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+285 
+£t_buždšg
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+286 
+£t_Ïnguage
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+	@src/emsdevice.cpp
+
+19 
+	~"emsdeviû.h
+"
+
+20 
+	~"em£¥.h
+"
+
+21 
+	~"mq‰.h
+"
+
+23 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+25 
+	guuid
+::
+log
+::
+Logg”
+ 
+EMSdeviû
+::
+logg”_
+{
+F_
+(
+em£¥
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+27 
+	g¡d
+::
+¡ršg
+ 
+EMSdeviû
+::
+b¿nd_to_¡ršg
+() const {
+
+28 
+b¿nd_
+) {
+
+29 
+EMSdeviû
+::
+B¿nd
+::
+BOSCH
+:
+
+30  
+»ad_æash_¡ršg
+(
+F
+("Bosch"));
+
+32 
+	gEMSdeviû
+::
+B¿nd
+::
+JUNKERS
+:
+
+33  
+»ad_æash_¡ršg
+(
+F
+("Junkers"));
+
+35 
+	gEMSdeviû
+::
+B¿nd
+::
+BUDERUS
+:
+
+36  
+»ad_æash_¡ršg
+(
+F
+("Buderus"));
+
+38 
+	gEMSdeviû
+::
+B¿nd
+::
+NEFIT
+:
+
+39  
+»ad_æash_¡ršg
+(
+F
+("Nefit"));
+
+41 
+	gEMSdeviû
+::
+B¿nd
+::
+SIEGER
+:
+
+42  
+»ad_æash_¡ršg
+(
+F
+("Sieger"));
+
+44 
+	gEMSdeviû
+::
+B¿nd
+::
+WORCESTER
+:
+
+45  
+»ad_æash_¡ršg
+(
+F
+("Worcester"));
+
+47 
+	gEMSdeviû
+::
+B¿nd
+::
+NO_BRAND
+:
+
+49  
+»ad_æash_¡ršg
+(
+F
+("---"));
+
+53  
+	g¡d
+::
+¡ršg
+{};
+
+57 
+	g¡d
+::
+¡ršg
+ 
+EMSdeviû
+::
+deviû_ty³_tÝic_Çme
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+) {
+
+58 
+deviû_ty³
+) {
+
+59 
+DeviûTy³
+::
+SERVICEKEY
+:
+
+60  
+»ad_æash_¡ršg
+(
+F
+("system_cmd"));
+
+63 
+	gDeviûTy³
+::
+BOILER
+:
+
+64  
+»ad_æash_¡ršg
+(
+F
+("boiler_cmd"));
+
+67 
+	gDeviûTy³
+::
+THERMOSTAT
+:
+
+68  
+»ad_æash_¡ršg
+(
+F
+("thermostat_cmd"));
+
+71 
+	gDeviûTy³
+::
+HEATPUMP
+:
+
+72  
+»ad_æash_¡ršg
+(
+F
+("heatpump_cmd"));
+
+75 
+	gDeviûTy³
+::
+SOLAR
+:
+
+76  
+»ad_æash_¡ršg
+(
+F
+("solar_cmd"));
+
+79 
+	gDeviûTy³
+::
+MIXING
+:
+
+80  
+»ad_æash_¡ršg
+(
+F
+("mixing_cmd"));
+
+84  
+¡d
+::
+¡ršg
+{};
+
+89 
+	g¡d
+::
+¡ršg
+ 
+EMSdeviû
+::
+deviû_ty³_Çme
+() const {
+
+90 
+deviû_ty³_
+) {
+
+91 
+DeviûTy³
+::
+BOILER
+:
+
+92  
+»ad_æash_¡ršg
+(
+F
+("Boiler"));
+
+95 
+	gDeviûTy³
+::
+THERMOSTAT
+:
+
+96  
+»ad_æash_¡ršg
+(
+F
+("Thermostat"));
+
+99 
+	gDeviûTy³
+::
+HEATPUMP
+:
+
+100  
+»ad_æash_¡ršg
+(
+F
+("Heat Pump"));
+
+103 
+	gDeviûTy³
+::
+SOLAR
+:
+
+104  
+»ad_æash_¡ršg
+(
+F
+("Solar Module"));
+
+107 
+	gDeviûTy³
+::
+CONNECT
+:
+
+108  
+»ad_æash_¡ršg
+(
+F
+("Connect Module"));
+
+111 
+	gDeviûTy³
+::
+CONTROLLER
+:
+
+112  
+»ad_æash_¡ršg
+(
+F
+("Controller"));
+
+115 
+	gDeviûTy³
+::
+MIXING
+:
+
+116  
+»ad_æash_¡ršg
+(
+F
+("Mixing Module"));
+
+119 
+	gDeviûTy³
+::
+SWITCH
+:
+
+120  
+»ad_æash_¡ršg
+(
+F
+("Switching Module"));
+
+123 
+	gDeviûTy³
+::
+GATEWAY
+:
+
+124  
+»ad_æash_¡ršg
+(
+F
+("Gateway Module"));
+
+128  
+»ad_æash_¡ršg
+(
+F
+("Unknown"));
+
+134 
+ušt8_t
+ 
+	gEMSdeviû
+::
+decode_b¿nd
+(ušt8_ˆ
+v®ue
+) {
+
+135 
+v®ue
+) {
+
+137  
+EMSdeviû
+::
+B¿nd
+::
+BOSCH
+;
+
+140  
+EMSdeviû
+::
+B¿nd
+::
+JUNKERS
+;
+
+143  
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+;
+
+146  
+EMSdeviû
+::
+B¿nd
+::
+NEFIT
+;
+
+149  
+EMSdeviû
+::
+B¿nd
+::
+SIEGER
+;
+
+152  
+EMSdeviû
+::
+B¿nd
+::
+WORCESTER
+;
+
+156  
+EMSdeviû
+::
+B¿nd
+::
+NO_BRAND
+;
+
+162 
+	g¡d
+::
+¡ršg
+ 
+EMSdeviû
+::
+to_¡ršg
+() const {
+
+163 
+¡d
+::
+¡ršg
+ 
+¡r
+(160, '\0');
+
+166 ià(
+	g´oduù_id_
+ == 0) {
+
+167 
+¢´štf_P
+(&
+¡r
+[0], sŒ.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("% (DeviûID:0x%02X)"), 
+Çme_
+.
+c_¡r
+(), 
+deviû_id_
+);
+
+168  
+	g¡r
+;
+
+171 ià(
+	gb¿nd_
+ =ð
+B¿nd
+::
+NO_BRAND
+) {
+
+172 
+¢´štf_P
+(&
+¡r
+[0], sŒ.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("% (DeviûID:0x%02X, ProduùID:%d, V”siÚ:%s)"), 
+Çme_
+.
+c_¡r
+(), 
+deviû_id_
+, 
+´oduù_id_
+, 
+v”siÚ_
+.c_str());
+
+174 
+¢´štf_P
+(&
+¡r
+[0],
+
+175 
+¡r
+.
+ÿ·c™y
+() + 1,
+
+176 
+PSTR
+("%s %s (DeviceID:0x%02X ProductID:%d, Version:%s)"),
+
+177 
+b¿nd_to_¡ršg
+().
+c_¡r
+(),
+
+178 
+Çme_
+.
+c_¡r
+(),
+
+179 
+deviû_id_
+,
+
+180 
+´oduù_id_
+,
+
+181 
+v”siÚ_
+.
+c_¡r
+());
+
+184  
+	g¡r
+;
+
+188 
+	g¡d
+::
+¡ršg
+ 
+EMSdeviû
+::
+to_¡ršg_shÜt
+() const {
+
+189 
+¡d
+::
+¡ršg
+ 
+¡r
+(160, '\0');
+
+190 ià(
+	gb¿nd_
+ =ð
+B¿nd
+::
+NO_BRAND
+) {
+
+191 
+¢´štf_P
+(&
+¡r
+[0], sŒ.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%s: %s"), 
+deviû_ty³_Çme
+().
+c_¡r
+(), 
+Çme_
+.c_str());
+
+193 
+¢´štf_P
+(&
+¡r
+[0], sŒ.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%s: % %s"), 
+deviû_ty³_Çme
+().
+c_¡r
+(), 
+b¿nd_to_¡ršg
+().c_¡r(), 
+Çme_
+.c_str());
+
+195  
+	g¡r
+;
+
+199 
+	gEMSdeviû
+::
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+200 
+sh–l
+.
+´štæn
+(
+F
+("%s: %s"), 
+deviû_ty³_Çme
+().
+c_¡r
+(), 
+to_¡ršg
+().c_str());
+
+204 
+	gEMSdeviû
+::
+ãtch_v®ues
+() {
+
+205 
+LOG_DEBUG
+(
+F
+("F‘chšg v®ue fÜ deviû ID 0x%02X"), 
+g‘_deviû_id
+());
+
+207 cÚ¡‡utØ& 
+	gtf
+ : 
+‹Ëg¿m_funùiÚs_
+) {
+
+208 ià(
+tf
+.
+ãtch_
+) {
+
+209 
+»ad_commªd
+(
+tf
+.
+‹Ëg¿m_ty³_id_
+);
+
+215 
+	gEMSdeviû
+::
+toggË_ãtch
+(
+ušt16_t
+ 
+‹Ëg¿m_id
+, 
+boÞ
+ 
+toggË
+) {
+
+216 
+LOG_DEBUG
+(
+F
+("Togglšg f‘ch fÜ deviû ID 0x%02X,�–eg¿m ID 0x%02X�Ø%d"), 
+g‘_deviû_id
+(), 
+‹Ëg¿m_id
+, 
+toggË
+);
+
+218 autØ& 
+	gtf
+ : 
+‹Ëg¿m_funùiÚs_
+) {
+
+219 ià(
+tf
+.
+‹Ëg¿m_ty³_id_
+ =ð
+‹Ëg¿m_id
+) {
+
+220 
+tf
+.
+ãtch_
+ = 
+toggË
+;
+
+226 
+	gEMSdeviû
+::
+show_‹Ëg¿m_hªdËrs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+227 ià(
+‹Ëg¿m_funùiÚs_
+.
+size
+() == 0) {
+
+231 
+	gsh–l
+.
+´štf
+(
+F
+(" Thi % wžÈ»¥Úd�Ø‹Ëg¿m�y³ IDs: "), 
+deviû_ty³_Çme
+().
+c_¡r
+());
+
+232 cÚ¡‡utØ& 
+	gtf
+ : 
+‹Ëg¿m_funùiÚs_
+) {
+
+233 
+sh–l
+.
+´štf
+(
+F
+("0x%02X "), 
+tf
+.
+‹Ëg¿m_ty³_id_
+);
+
+235 
+	gsh–l
+.
+´šŽn
+();
+
+239 
+	gEMSdeviû
+::
+show_mq‰_hªdËrs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+240 
+Mq‰
+::
+show_tÝic_hªdËrs
+(
+sh–l
+, 
+this
+->
+deviû_ty³_
+);
+
+243 
+	gEMSdeviû
+::
+»gi¡”_mq‰_tÝic
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, 
+mq‰_subfunùiÚ_p
+ 
+f
+) {
+
+244 
+LOG_DEBUG
+(
+F
+("Regi¡”šg MQTT�Ýiø% fÜ deviû ID %02X‡nd�y³ %s"), 
+tÝic
+.
+c_¡r
+(), 
+this
+->
+deviû_id_
+,�his->
+deviû_ty³_Çme
+().c_str());
+
+245 
+	gMq‰
+::
+subsüibe
+(
+this
+->
+deviû_ty³_
+, 
+tÝic
+, 
+f
+);
+
+248 
+	gEMSdeviû
+::
+»gi¡”_mq‰_cmd
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+cmd
+, 
+mq‰_cmdfunùiÚ_p
+ 
+f
+) {
+
+249 
+	gMq‰
+::
+add_commªd
+(
+this
+->
+deviû_ty³_
+,�his->
+deviû_id_
+, 
+cmd
+, 
+f
+);
+
+253 
+	gEMSdeviû
+::
+»gi¡”_‹Ëg¿m_ty³
+(cÚ¡ 
+ušt16_t
+ 
+‹Ëg¿m_ty³_id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+‹Ëg¿m_ty³_Çme
+, 
+boÞ
+ 
+ãtch
+, 
+´oûss_funùiÚ_p
+ 
+f
+) {
+
+254 
+	g‹Ëg¿m_funùiÚs_
+.
+em¶aû_back
+(
+‹Ëg¿m_ty³_id
+, 
+‹Ëg¿m_ty³_Çme
+, 
+ãtch
+, 
+f
+);
+
+258 
+	g¡d
+::
+¡ršg
+ 
+EMSdeviû
+::
+‹Ëg¿m_ty³_Çme
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+260 ià(
+‹Ëg¿m
+->
+ty³_id
+ =ð
+EMS_TYPE_VERSION
+) {
+
+261  
+»ad_æash_¡ršg
+(
+F
+("Version"));
+
+262 } ià(
+	g‹Ëg¿m
+->
+	gty³_id
+ =ð
+EMS_TYPE_UBADeviûs
+) {
+
+263  
+»ad_æash_¡ršg
+(
+F
+("UBADevices"));
+
+266 cÚ¡‡utØ& 
+	gtf
+ : 
+‹Ëg¿m_funùiÚs_
+) {
+
+267 ià((
+tf
+.
+‹Ëg¿m_ty³_id_
+ =ð
+‹Ëg¿m
+->
+ty³_id
+) && ((telegram->type_id & 0xF0) != 0xF0)) {
+
+268  
+uuid
+::
+»ad_æash_¡ršg
+(
+tf
+.
+‹Ëg¿m_ty³_Çme_
+);
+
+272  
+	g¡d
+::
+¡ršg
+{};
+
+277 
+boÞ
+ 
+	gEMSdeviû
+::
+hªdË_‹Ëg¿m
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+278 cÚ¡‡utØ& 
+tf
+ : 
+‹Ëg¿m_funùiÚs_
+) {
+
+279 ià(
+tf
+.
+‹Ëg¿m_ty³_id_
+ =ð
+‹Ëg¿m
+->
+ty³_id
+) {
+
+282 ià(
+‹Ëg¿m
+->
+mes§ge_Ëngth
+ == 0) {
+
+283 
+LOG_DEBUG
+(
+F
+("Thi ‹Ëg¿m (%sèi nÙ„ecognized by�h�EMS bus"), 
+uuid
+::
+»ad_æash_¡ršg
+(
+tf
+.
+‹Ëg¿m_ty³_Çme_
+).
+c_¡r
+());
+
+284 
+toggË_ãtch
+(
+tf
+.
+‹Ëg¿m_ty³_id_
+, 
+çl£
+);
+
+285  
+	gçl£
+;
+
+288 
+LOG_DEBUG
+(
+F
+("Reûived %s"), 
+uuid
+::
+»ad_æash_¡ršg
+(
+tf
+.
+‹Ëg¿m_ty³_Çme_
+).
+c_¡r
+());
+
+289 
+	gtf
+.
+´oûss_funùiÚ_
+(
+‹Ëg¿m
+);
+
+290  
+	gŒue
+;
+
+293  
+	gçl£
+;
+
+297 
+	gEMSdeviû
+::
+wr™e_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+off£t
+, ušt8_ˆ* 
+mes§ge_d©a
+, cÚ¡ ušt8_ˆ
+mes§ge_Ëngth
+, cÚ¡ ušt16_ˆ
+v®id©e_ty³id
+) {
+
+298 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(
+ty³_id
+, 
+this
+->
+g‘_deviû_id
+(), 
+off£t
+, 
+mes§ge_d©a
+, 
+mes§ge_Ëngth
+, 
+v®id©e_ty³id
+);
+
+302 
+	gEMSdeviû
+::
+wr™e_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+, cÚ¡ ušt16_ˆ
+v®id©e_ty³id
+) {
+
+303 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(
+ty³_id
+, 
+this
+->
+g‘_deviû_id
+(), 
+off£t
+, 
+v®ue
+, 
+v®id©e_ty³id
+);
+
+307 
+	gEMSdeviû
+::
+wr™e_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+) {
+
+308 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(
+ty³_id
+, 
+this
+->
+g‘_deviû_id
+(), 
+off£t
+, 
+v®ue
+, 0);
+
+312 
+	gEMSdeviû
+::
+»ad_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+) {
+
+313 
+EMSESP
+::
+£nd_»ad_»que¡
+(
+ty³_id
+, 
+g‘_deviû_id
+());
+
+317 
+	gEMSdeviû
+::
+´št_v®ue
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, 
+ušt8_t
+ 
+·ddšg
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, cÚ¡ __FÏshSŒšgH–³¸* 
+v®ue
+) {
+
+318 
+´št_v®ue
+(
+sh–l
+, 
+·ddšg
+, 
+Çme
+, 
+uuid
+::
+»ad_æash_¡ršg
+(
+v®ue
+).
+c_¡r
+());
+
+322 
+	gEMSdeviû
+::
+´št_v®ue
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, 
+ušt8_t
+ 
+·ddšg
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, cÚ¡ * 
+v®ue
+) {
+
+323 
+ušt8_t
+ 
+	gi
+ = 
+·ddšg
+;
+
+324 
+	gi
+-- > 0) {
+
+325 
+	gsh–l
+.
+´št
+(
+F
+(" "));
+
+328 
+	gsh–l
+.
+´štæn
+(
+PSTR
+("%s: %s"), 
+uuid
+::
+»ad_æash_¡ršg
+(
+Çme
+).
+c_¡r
+(), 
+v®ue
+);
+
+332 
+	gEMSdeviû
+::
+add_cÚ‹xt_commªds
+(
+cÚ‹xt
+) {
+
+334 
+æash_¡ršg_veùÜ
+ 
+·¿ms
+;
+
+335 ià((
+	gcÚ‹xt
+ =ð
+Sh–lCÚ‹xt
+::
+THERMOSTAT
+è|| (
+cÚ‹xt
+ =ðSh–lCÚ‹xt::
+MIXING
+)) {
+
+336 
+·¿ms
+ = 
+æash_¡ršg_veùÜ
+{
+F_
+(
+cmd_ÝtiÚ®
+), F_(
+d©a_ÝtiÚ®
+), F_(
+hc_ÝtiÚ®
+)};
+
+338 
+	g·¿ms
+ = 
+æash_¡ršg_veùÜ
+{
+F_
+(
+cmd_ÝtiÚ®
+), F_(
+d©a_ÝtiÚ®
+)};
+
+341 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+
+342 
+cÚ‹xt
+,
+
+343 
+CommªdFÏgs
+::
+ADMIN
+,
+
+344 
+æash_¡ršg_veùÜ
+{
+F_
+(
+ÿÎ
+)},
+
+345 
+·¿ms
+,
+
+346 [&](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+347 
+ušt8_t
+ 
+deviû_ty³_
+ = 
+deviû_ty³
+();
+
+348 ià(
+¬gum’ts
+.
+em±y
+()) {
+
+350 
+sh–l
+.
+´št
+("Available commands:");
+
+351 cÚ¡‡utØ& 
+cf
+ : 
+Mq‰
+::
+commªds
+()) {
+
+352 ià(
+cf
+.
+deviû_ty³_
+ == device_type_) {
+
+353 
+sh–l
+.
+´štf
+(" %s", 
+uuid
+::
+»ad_æash_¡ršg
+(
+cf
+.
+cmd_
+).
+c_¡r
+());
+
+356 
+sh–l
+.
+´šŽn
+();
+
+360 cÚ¡ * 
+cmd
+ = 
+¬gum’ts
+[0].
+c_¡r
+();
+
+361 ià(
+¬gum’ts
+.
+size
+() == 1) {
+
+363 
+Mq‰
+::
+ÿÎ_commªd
+(
+deviû_ty³_
+, 
+cmd
+, 
+nuÎ±r
+, -1);
+
+364 } ià(
+¬gum’ts
+.
+size
+() == 2) {
+
+366 
+Mq‰
+::
+ÿÎ_commªd
+(
+deviû_ty³_
+, 
+cmd
+, 
+¬gum’ts
+.
+back
+().
+c_¡r
+(), -1);
+
+369 
+Mq‰
+::
+ÿÎ_commªd
+(
+deviû_ty³_
+, 
+cmd
+, 
+¬gum’ts
+[1].
+c_¡r
+(), 
+©oi
+(arguments[2].c_str()));
+
+372 [&](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) -> std::vector<std::string> {
+
+373 ià(
+¬gum’ts
+.
+size
+() > 0) {
+
+376 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> 
+commªds
+;
+
+377 cÚ¡‡utØ& 
+cf
+ : 
+Mq‰
+::
+commªds
+()) {
+
+378 ià(
+cf
+.
+deviû_ty³_
+ =ð
+deviû_ty³
+()) {
+
+379 
+commªds
+.
+em¶aû_back
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+cf
+.
+cmd_
+));
+
+382  
+commªds
+;
+
+	@src/emsdevice.h
+
+19 #iâdeà
+EMSESP_EMSDEVICE_H_
+
+
+20 
+	#EMSESP_EMSDEVICE_H_
+
+
+	)
+
+22 
+	~<¡ršg
+>
+
+23 
+	~<veùÜ
+>
+
+24 
+	~<funùiÚ®
+>
+
+26 
+	~"emsçùÜy.h
+"
+
+27 
+	~"‹Ëg¿m.h
+"
+
+28 
+	~"mq‰.h
+"
+
+29 
+	~"h–³rs.h
+"
+
+31 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+33 þas 
+	cEMSdeviû
+ {
+
+34 
+	gpublic
+:
+
+35 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+EMS_DEVICES_MAX_TELEGRAMS
+ = 20;
+
+38 
+EMSdeviû
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ std::¡ršg & 
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+39 : 
+deviû_ty³_
+(
+deviû_ty³
+)
+
+40 , 
+deviû_id_
+(
+deviû_id
+)
+
+41 , 
+´oduù_id_
+(
+´oduù_id
+)
+
+42 , 
+v”siÚ_
+(
+v”siÚ
+)
+
+43 , 
+Çme_
+(
+Çme
+)
+
+44 , 
+æags_
+(
+æags
+)
+
+45 , 
+b¿nd_
+(
+b¿nd
+) {
+
+48 
+	gvœtu®
+ ~
+EMSdeviû
+() = ;
+
+50 
+šlše
+ 
+ušt8_t
+ 
+g‘_deviû_id
+() const {
+
+51  
+	gdeviû_id_
+;
+
+54 
+	g¡d
+::
+¡ršg
+ 
+deviû_ty³_Çme
+() const;
+
+55 
+	g¡d
+::
+¡ršg
+ 
+deviû_ty³_tÝic_Çme
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+);
+
+57 
+šlše
+ 
+ušt8_t
+ 
+´oduù_id
+() const {
+
+58  
+	g´oduù_id_
+;
+
+61 
+´oduù_id
+(
+ušt8_t
+…roduct_id) {
+
+62 
+	g´oduù_id_
+ = 
+´oduù_id
+;
+
+65 
+šlše
+ 
+boÞ
+ 
+is_deviû_id
+(
+ušt8_t
+ 
+deviû_id
+) {
+
+66  ((
+	gdeviû_id
+ & 0x7Fè=ð(
+deviû_id_
+ & 0x7F));
+
+69 
+šlše
+ 
+ušt8_t
+ 
+æags
+() const {
+
+70  
+	gæags_
+;
+
+73 
+šlše
+ 
+æags
+(
+ušt8_t
+ flags) {
+
+74 
+	gæags_
+ = 
+æags
+;
+
+78 
+šlše
+ 
+ušt8_t
+ 
+deviû_ty³
+() const {
+
+79  
+	gdeviû_ty³_
+;
+
+82 
+šlše
+ 
+v”siÚ
+(
+¡d
+::
+¡ršg
+ & version) {
+
+83 
+v”siÚ_
+ = 
+v”siÚ
+;
+
+86 
+šlše
+ 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+() const {
+
+87  
+v”siÚ_
+;
+
+90 
+šlše
+ 
+b¿nd
+(
+ušt8_t
+ brand) {
+
+91 
+	gb¿nd_
+ = 
+b¿nd
+;
+
+94 
+šlše
+ 
+ušt8_t
+ 
+b¿nd
+() const {
+
+95  
+	gb¿nd_
+;
+
+98 
+šlše
+ 
+Çme
+(cÚ¡ 
+¡d
+::
+¡ršg
+ &‚ame) {
+
+99 
+Çme_
+ = 
+Çme
+;
+
+102 
+šlše
+ 
+	g¡d
+::
+¡ršg
+ 
+Çme
+() const {
+
+103  
+Çme_
+;
+
+106 
+šlše
+ 
+ušt8_t
+ 
+unique_id
+() const {
+
+107  
+	gunique_id_
+;
+
+110 
+šlše
+ 
+unique_id
+(
+ušt8_t
+ unique_id) {
+
+111 
+	gunique_id_
+ = 
+unique_id
+;
+
+114 
+	g¡d
+::
+¡ršg
+ 
+b¿nd_to_¡ršg
+() const;
+
+115 
+ušt8_t
+ 
+decode_b¿nd
+(ušt8_ˆ
+v®ue
+);
+
+117 
+	g¡d
+::
+¡ršg
+ 
+to_¡ršg
+() const;
+
+118 
+	g¡d
+::
+¡ršg
+ 
+to_¡ršg_shÜt
+() const;
+
+120 
+show_‹Ëg¿m_hªdËrs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+121 
+show_mq‰_hªdËrs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+123 
+usšg
+ 
+	g´oûss_funùiÚ_p
+ = 
+¡d
+::
+funùiÚ
+<(¡d::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+>)>;
+
+124 
+»gi¡”_‹Ëg¿m_ty³
+(cÚ¡ 
+ušt16_t
+ 
+‹Ëg¿m_ty³_id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+‹Ëg¿m_ty³_Çme
+, 
+boÞ
+ 
+ãtch
+, 
+´oûss_funùiÚ_p
+ 
+cb
+);
+
+125 
+boÞ
+ 
+hªdË_‹Ëg¿m
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+127 
+wr™e_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+off£t
+, ušt8_ˆ* 
+mes§ge_d©a
+, cÚ¡ ušt8_ˆ
+mes§ge_Ëngth
+, cÚ¡ ušt16_ˆ
+v®id©e_ty³id
+);
+
+128 
+wr™e_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+, cÚ¡ ušt16_ˆ
+v®id©e_ty³id
+);
+
+129 
+wr™e_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+);
+
+131 
+»ad_commªd
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+);
+
+133 
+add_cÚ‹xt_commªds
+(
+cÚ‹xt
+);
+
+135 
+»gi¡”_mq‰_tÝic
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, 
+mq‰_subfunùiÚ_p
+ 
+f
+);
+
+136 
+»gi¡”_mq‰_cmd
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+cmd
+, 
+mq‰_cmdfunùiÚ_p
+ 
+f
+);
+
+139 
+vœtu®
+ 
+show_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) = 0;
+
+140 
+vœtu®
+ 
+publish_v®ues
+() = 0;
+
+141 
+vœtu®
+ 
+boÞ
+ 
+upd©ed_v®ues
+() = 0;
+
+142 
+vœtu®
+ 
+add_cÚ‹xt_m’u
+() = 0;
+
+143 
+vœtu®
+ 
+deviû_šfo_web
+(
+JsÚA¼ay
+ & 
+roÙ
+) = 0;
+
+145 
+	g¡d
+::
+¡ršg
+ 
+‹Ëg¿m_ty³_Çme
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+147 
+ãtch_v®ues
+();
+
+148 
+toggË_ãtch
+(
+ušt16_t
+ 
+‹Ëg¿m_id
+, 
+boÞ
+ 
+toggË
+);
+
+150 
+»£rve_mem
+(
+size_t
+ 
+n
+) {
+
+151 
+	g‹Ëg¿m_funùiÚs_
+.
+»£rve
+(
+n
+);
+
+161 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gV®ue
+>
+
+162 
+´št_v®ue
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+,
+
+163 
+ušt8_t
+ 
+·ddšg
+,
+
+164 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+,
+
+165 
+V®ue
+ & 
+v®ue
+,
+
+166 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+suffix
+,
+
+167 cÚ¡ 
+ušt8_t
+ 
+fÜm©
+ = 0) {
+
+168 
+bufãr
+[15];
+
+169 ià(
+	gH–³rs
+::
+»nd”_v®ue
+(
+bufãr
+, 
+v®ue
+, 
+fÜm©
+è=ð
+nuÎ±r
+) {
+
+173 
+ušt8_t
+ 
+	gi
+ = 
+·ddšg
+;
+
+174 
+	gi
+-- > 0) {
+
+175 
+	gsh–l
+.
+´št
+(
+F
+(" "));
+
+178 
+	gsh–l
+.
+´štf
+(
+PSTR
+("%s: %s"), 
+uuid
+::
+»ad_æash_¡ršg
+(
+Çme
+).
+c_¡r
+(), 
+bufãr
+);
+
+180 ià(
+	gsuffix
+ !ð
+nuÎ±r
+) {
+
+181 
+sh–l
+.
+´šŽn
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+suffix
+).
+c_¡r
+());
+
+183 
+	gsh–l
+.
+´šŽn
+();
+
+189 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gV®ue
+>
+
+190 
+»nd”_v®ue_jsÚ
+(
+JsÚA¼ay
+ & 
+jsÚ
+,
+
+191 cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+´efix
+,
+
+192 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+,
+
+193 
+V®ue
+ & 
+v®ue
+,
+
+194 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+suffix
+,
+
+195 cÚ¡ 
+ušt8_t
+ 
+fÜm©
+ = 0) {
+
+196 
+bufãr
+[15];
+
+197 ià(
+	gH–³rs
+::
+»nd”_v®ue
+(
+bufãr
+, 
+v®ue
+, 
+fÜm©
+è=ð
+nuÎ±r
+) {
+
+201 
+JsÚObjeù
+ 
+	gd©aEËm’t
+ = 
+jsÚ
+.
+ü—‹Ne¡edObjeù
+();
+
+205 ià(
+	gsuffix
+ !ð
+nuÎ±r
+) {
+
+206 
+¡d
+::
+¡ršg
+ 
+‹xt
+(20, '\0');
+
+207 
+¢´štf_P
+(&
+‹xt
+[0],�ext.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%s%s"), 
+bufãr
+, 
+uuid
+::
+»ad_æash_¡ršg
+(
+suffix
+).
+c_¡r
+());
+
+208 
+	gd©aEËm’t
+["v®ue"] = 
+‹xt
+;
+
+210 
+	gd©aEËm’t
+["v®ue"] = 
+bufãr
+;
+
+213 
+	g¡d
+::
+¡ršg
+ 
+‹xt2
+(100, '\0');
+
+214 
+¢´štf_P
+(&
+‹xt2
+[0],�ext2.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%s%s"), 
+´efix
+.
+c_¡r
+(), 
+uuid
+::
+»ad_æash_¡ršg
+(
+Çme
+).c_str());
+
+215 
+	gd©aEËm’t
+["Çme"] = 
+‹xt2
+;
+
+218 
+´št_v®ue
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, 
+ušt8_t
+ 
+·ddšg
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, cÚ¡ __FÏshSŒšgH–³¸* 
+v®ue
+);
+
+219 
+´št_v®ue
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, 
+ušt8_t
+ 
+·ddšg
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+Çme
+, cÚ¡ * 
+v®ue
+);
+
+221 
+	gB¿nd
+ : 
+ušt8_t
+ {
+
+222 
+NO_BRAND
+,
+
+223 
+	gBOSCH
+,
+
+224 
+	gJUNKERS
+,
+
+225 
+	gBUDERUS
+,
+
+226 
+	gNEFIT
+,
+
+227 
+	gSIEGER
+,
+
+228 
+	gWORCESTER
+
+
+231 
+	gDeviûTy³
+ : 
+ušt8_t
+ {
+
+232 
+SERVICEKEY
+ = 0,
+
+233 
+	gBOILER
+,
+
+234 
+	gTHERMOSTAT
+,
+
+235 
+	gMIXING
+,
+
+236 
+	gSOLAR
+,
+
+237 
+	gHEATPUMP
+,
+
+238 
+	gGATEWAY
+,
+
+239 
+	gSWITCH
+,
+
+240 
+	gCONTROLLER
+,
+
+241 
+	gCONNECT
+
+
+246 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_ID_BOILER
+ = 0x08;
+
+247 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_ID_MODEM
+ = 0x48;
+
+250 
+cÚ¡ex´
+ 
+ušt16_t
+ 
+	gEMS_TYPE_VERSION
+ = 0x02;
+
+251 
+cÚ¡ex´
+ 
+ušt16_t
+ 
+	gEMS_TYPE_UBADeviûs
+ = 0x07;
+
+254 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_NONE
+ = 0;
+
+257 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_SM10
+ = 1;
+
+258 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_SM100
+ = 2;
+
+259 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_ISM
+ = 3;
+
+262 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_MMPLUS
+ = 1;
+
+263 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_MM10
+ = 2;
+
+264 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_IPM
+ = 3;
+
+267 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_NO_WRITE
+ = (1 << 7);
+
+268 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_EASY
+ = 1;
+
+269 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC10
+ = 2;
+
+270 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC20
+ = 3;
+
+271 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC20_2
+ = 4;
+
+272 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC30_1
+ = 5;
+
+273 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC30
+ = 6;
+
+274 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC35
+ = 7;
+
+275 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC300
+ = 8;
+
+276 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_RC100
+ = 9;
+
+277 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_JUNKERS
+ = 10;
+
+278 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_DEVICE_FLAG_JUNKERS_2
+ = (1 << 6);
+
+280 
+	g´iv©e
+:
+
+281 
+ušt8_t
+ 
+unique_id_
+;
+
+282 
+ušt8_t
+ 
+	gdeviû_ty³_
+ = 
+DeviûTy³
+::
+SERVICEKEY
+;
+
+283 
+ušt8_t
+ 
+	gdeviû_id_
+ = 0;
+
+284 
+ušt8_t
+ 
+	g´oduù_id_
+ = 0;
+
+285 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ_
+;
+
+286 
+	g¡d
+::
+¡ršg
+ 
+Çme_
+;
+
+287 
+ušt8_t
+ 
+	gæags_
+ = 0;
+
+288 
+ušt8_t
+ 
+	gb¿nd_
+ = 
+B¿nd
+::
+NO_BRAND
+;
+
+290 
+	guuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+292 
+	sT–eg¿mFunùiÚ
+ {
+
+293 
+ušt16_t
+ 
+	g‹Ëg¿m_ty³_id_
+;
+
+294 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	g‹Ëg¿m_ty³_Çme_
+;
+
+295 
+boÞ
+ 
+	gãtch_
+;
+
+297 
+´oûss_funùiÚ_p
+ 
+	g´oûss_funùiÚ_
+;
+
+299 
+T–eg¿mFunùiÚ
+(
+ušt16_t
+ 
+‹Ëg¿m_ty³_id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+‹Ëg¿m_ty³_Çme
+, 
+boÞ
+ 
+ãtch
+, 
+´oûss_funùiÚ_p
+ 
+´oûss_funùiÚ
+)
+
+300 : 
+‹Ëg¿m_ty³_id_
+(
+‹Ëg¿m_ty³_id
+)
+
+301 , 
+‹Ëg¿m_ty³_Çme_
+(
+‹Ëg¿m_ty³_Çme
+)
+
+302 , 
+ãtch_
+(
+ãtch
+)
+
+303 , 
+´oûss_funùiÚ_
+(
+´oûss_funùiÚ
+) {
+
+306 
+	g¡d
+::
+veùÜ
+<
+T–eg¿mFunùiÚ
+> 
+‹Ëg¿m_funùiÚs_
+;
+
+	@src/emsesp.cpp
+
+19 
+	~"em£¥.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+AsyncWebS”v”
+ 
+webS”v”
+(80);
+
+25 #ià
+defšed
+(
+ESP32
+)
+
+26 
+ESP8266R—ù
+ 
+	gEMSESP
+::
+e¥8266R—ù
+(&
+webS”v”
+, &
+SPIFFS
+);
+
+27 
+EMSESPS‘tšgsS”viû
+ 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+ = EMSESPS‘tšgsS”viû(&
+webS”v”
+, &
+SPIFFS
+, 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yMªag”
+());
+
+28 #–ià
+defšed
+(
+ESP8266
+)
+
+29 
+ESP8266R—ù
+ 
+	gEMSESP
+::
+e¥8266R—ù
+(&
+webS”v”
+, &
+L™ŽeFS
+);
+
+30 
+EMSESPS‘tšgsS”viû
+ 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+ = EMSESPS‘tšgsS”viû(&
+webS”v”
+, &
+L™ŽeFS
+, 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yMªag”
+());
+
+31 #–ià
+defšed
+(
+EMSESP_STANDALONE
+)
+
+32 
+FS
+ 
+	gdummyFS
+;
+
+33 
+ESP8266R—ù
+ 
+	gEMSESP
+::
+e¥8266R—ù
+(&
+webS”v”
+, &
+dummyFS
+);
+
+34 
+EMSESPS‘tšgsS”viû
+ 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+ = EMSESPS‘tšgsS”viû(&
+webS”v”
+, &
+dummyFS
+, 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yMªag”
+());
+
+37 
+EMSESPS�tusS”viû
+ 
+	gEMSESP
+::
+em£¥S�tusS”viû
+ = EMSESPS�tusS”viû(&
+webS”v”
+, 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yMªag”
+());
+
+38 
+EMSESPDeviûsS”viû
+ 
+	gEMSESP
+::
+em£¥DeviûsS”viû
+ = EMSESPDeviûsS”viû(&
+webS”v”
+, 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yMªag”
+());
+
+40 
+usšg
+ 
+	gDeviûFÏgs
+ = 
+em£¥
+::
+EMSdeviû
+;
+
+41 
+usšg
+ 
+	gDeviûTy³
+ = 
+em£¥
+::
+EMSdeviû
+::
+DeviûTy³
+;
+
+42 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+unique_±r
+<
+EMSdeviû
+>> 
+EMSESP
+::
+emsdeviûs
+;
+
+43 
+	g¡d
+::
+veùÜ
+<
+em£¥
+::
+EMSESP
+::
+Deviû_»cÜd
+> EMSESP::
+deviû_lib¿ry_
+;
+
+45 
+	guuid
+::
+log
+::
+Logg”
+ 
+EMSESP
+::
+logg”_
+{
+F_
+(
+em£¥
+), uuid::log::
+Facž™y
+::
+KERN
+};
+
+48 
+RxS”viû
+ 
+	gEMSESP
+::
+rx£rviû_
+;
+
+49 
+TxS”viû
+ 
+	gEMSESP
+::
+tx£rviû_
+;
+
+50 
+Mq‰
+ 
+	gEMSESP
+::
+mq‰_
+;
+
+51 
+Sy¡em
+ 
+	gEMSESP
+::
+sy¡em_
+;
+
+52 
+CÚsÞe
+ 
+	gEMSESP
+::
+cÚsÞe_
+;
+
+53 
+S’sÜs
+ 
+	gEMSESP
+::
+£nsÜs_
+;
+
+54 
+Show”
+ 
+	gEMSESP
+::
+show”_
+;
+
+57 
+ušt8_t
+ 
+	gEMSESP
+::
+aùu®_ma¡”_th”mo¡©_
+ = 
+EMSESP_DEFAULT_MASTER_THERMOSTAT
+;
+
+58 
+ušt16_t
+ 
+	gEMSESP
+::
+w©ch_id_
+ = 
+WATCH_ID_NONE
+;
+
+59 
+ušt8_t
+ 
+	gEMSESP
+::
+w©ch_
+ = 0;
+
+60 
+ušt16_t
+ 
+	gEMSESP
+::
+»ad_id_
+ = 
+WATCH_ID_NONE
+;
+
+61 
+ušt16_t
+ 
+	gEMSESP
+::
+publish_id_
+ = 0;
+
+62 
+boÞ
+ 
+	gEMSESP
+::
+�p_w©”_aùive_
+ = 
+çl£
+;
+
+63 
+ušt32_t
+ 
+	gEMSESP
+::
+Ï¡_ãtch_
+ = 0;
+
+64 
+ušt8_t
+ 
+	gEMSESP
+::
+unique_id_couÁ_
+ = 0;
+
+68 
+	gEMSESP
+::
+ãtch_deviû_v®ues
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+) {
+
+69 cÚ¡‡utØ& 
+emsdeviû
+ : 
+emsdeviûs
+) {
+
+70 ià(
+emsdeviû
+) {
+
+71 ià((
+deviû_id
+ =ð0è|| 
+emsdeviû
+->
+is_deviû_id
+(device_id)) {
+
+72 
+emsdeviû
+->
+ãtch_v®ues
+();
+
+73 ià(
+	gdeviû_id
+ != 0) {
+
+82 
+	gEMSESP
+::
+þ—r_®l_deviûs
+() {
+
+83 
+emsdeviûs
+.
+þ—r
+();
+
+87 
+ušt8_t
+ 
+	gEMSESP
+::
+couÁ_deviûs
+(cÚ¡ ušt8_ˆ
+deviû_ty³
+) {
+
+88 
+ušt8_t
+ 
+couÁ
+ = 0;
+
+89 cÚ¡‡utØ& 
+	gemsdeviû
+ : 
+emsdeviûs
+) {
+
+90 ià(
+emsdeviû
+) {
+
+91 
+couÁ
+ +ð(
+emsdeviû
+->
+deviû_ty³
+() == device_type);
+
+94  
+	gcouÁ
+;
+
+98 
+	gEMSESP
+::
+sÿn_deviûs
+() {
+
+99 
+EMSESP
+::
+þ—r_®l_deviûs
+();
+
+100 
+	gEMSESP
+::
+£nd_»ad_»que¡
+(
+EMSdeviû
+::
+EMS_TYPE_UBADeviûs
+, EMSdeviû::
+EMS_DEVICE_ID_BOILER
+);
+
+107 
+ušt8_t
+ 
+	gEMSESP
+::
+check_ma¡”_deviû
+(cÚ¡ ušt8_ˆ
+deviû_id
+, cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+boÞ
+ 
+»ad
+) {
+
+108 
+ušt16_t
+ 
+	gmÚ_id
+[4] = {0x02A5, 0x02A6, 0x02A7, 0x02A8};
+
+109 
+ušt16_t
+ 
+	g£t_id
+[4] = {0x02B9, 0x02BA, 0x02BB, 0x02BC};
+
+110 ià(
+	gaùu®_ma¡”_th”mo¡©_
+ == 0x18) {
+
+111 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 4; i++) {
+
+112 ià(
+	gty³_id
+ =ð
+mÚ_id
+[
+i
+] || 
+ty³_id
+ =ð
+£t_id
+[i]) {
+
+113 ià(
+»ad
+) {
+
+116  0x18 + 
+	gi
+;
+
+121  
+	gdeviû_id
+;
+
+124 
+	gEMSESP
+::
+aùu®_ma¡”_th”mo¡©
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+) {
+
+125 
+aùu®_ma¡”_th”mo¡©_
+ = 
+deviû_id
+;
+
+128 
+ušt8_t
+ 
+	gEMSESP
+::
+aùu®_ma¡”_th”mo¡©
+() {
+
+129  
+aùu®_ma¡”_th”mo¡©_
+;
+
+133 
+	gEMSESP
+::
+w©ch_id
+(
+ušt16_t
+ watch_id) {
+
+134 
+w©ch_id_
+ = 
+w©ch_id
+;
+
+140 
+	gEMSESP
+::
+š™_tx
+() {
+
+141 
+ušt8_t
+ 
+tx_mode
+;
+
+142 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+143 
+tx_mode
+ = 
+£‰šgs
+.tx_mode;
+
+145 #iâdeà
+EMSESP_FORCE_SERIAL
+
+
+146 
+EMSu¬t
+::
+¡Ý
+();
+
+147 
+EMSu¬t
+::
+¡¬t
+(
+tx_mode
+, 
+£‰šgs
+.
+rx_gpio
+, s‘tšgs.
+tx_gpio
+);
+
+151 
+	gtx£rviû_
+.
+¡¬t
+();
+
+154 ià(
+	gtx_mode
+ != 0) {
+
+155 
+EMSESP
+::
+ãtch_deviû_v®ues
+();
+
+160 
+ušt8_t
+ 
+	gEMSESP
+::
+bus_¡©us
+() {
+
+161 ià(!
+rx£rviû_
+.
+bus_cÚÃùed
+()) {
+
+162  
+BUS_STATUS_OFFLINE
+;
+
+166 
+ušt32_t
+ 
+	gtÙ®_£Á
+ = 
+tx£rviû_
+.
+‹Ëg¿m_»ad_couÁ
+(è+�x£rviû_.
+‹Ëg¿m_wr™e_couÁ
+();
+
+169 ià((
+	gtÙ®_£Á
+ =ð0è&& (
+tx£rviû_
+.
+‹Ëg¿m_çž_couÁ
+() == 0)) {
+
+170  
+BUS_STATUS_CONNECTED
+;
+
+174 ià((
+	gtÙ®_£Á
+ =ð0è&& (
+tx£rviû_
+.
+‹Ëg¿m_çž_couÁ
+() != 0)) {
+
+175  
+BUS_STATUS_TX_ERRORS
+;
+
+179 ià(((
+	gtx£rviû_
+.
+‹Ëg¿m_çž_couÁ
+(è* 100è/ 
+	gtÙ®_£Á
+è> 
+	gEMSbus
+::
+EMS_TX_ERROR_LIMIT
+) {
+
+180  
+BUS_STATUS_TX_ERRORS
+;
+
+183  
+	gBUS_STATUS_CONNECTED
+;
+
+187 
+	gEMSESP
+::
+show_ems
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+189 
+bus_¡©us
+()) {
+
+190 
+BUS_STATUS_OFFLINE
+:
+
+191 
+sh–l
+.
+´štæn
+(
+F
+("EMS Bus is disconnected."));
+
+193 
+	gBUS_STATUS_TX_ERRORS
+:
+
+194 
+sh–l
+.
+´štæn
+(
+F
+("EMS Bus is connected, but Tx is‚ot stable."));
+
+196 
+	gBUS_STATUS_CONNECTED
+:
+
+198 
+sh–l
+.
+´štæn
+(
+F
+("EMS Bus is connected."));
+
+202 
+	gsh–l
+.
+´šŽn
+();
+
+204 ià(
+bus_¡©us
+(è!ð
+BUS_STATUS_OFFLINE
+) {
+
+205 
+ušt8_t
+ 
+sucûss_¿‹
+ = 0;
+
+206 ià(
+	grx£rviû_
+.
+‹Ëg¿m_”rÜ_couÁ
+()) {
+
+207 
+	gsucûss_¿‹
+ = (()
+rx£rviû_
+.
+‹Ëg¿m_”rÜ_couÁ
+(è/ (ìx£rviû_.
+‹Ëg¿m_couÁ
+()) * 100;
+
+210 
+	gsh–l
+.
+´štæn
+(
+F
+("EMS Bus info:"));
+
+211 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+è{ 
+sh–l
+.
+´štæn
+(
+F
+(" Tx mode: %d"), s‘tšgs.
+tx_mode
+); });
+
+212 
+	gsh–l
+.
+´štæn
+(
+F
+(" Bu ´ÙocÞ: %s"), 
+EMSbus
+::
+is_ht3
+() ? F("HT3") : F("Buderus"));
+
+213 
+	gsh–l
+.
+´štæn
+(
+F
+(" #‹Ëg¿m »ûived: %d"), 
+rx£rviû_
+.
+‹Ëg¿m_couÁ
+());
+
+214 
+	gsh–l
+.
+´štæn
+(
+F
+(" #»ad„eque¡ £Á: %d"), 
+tx£rviû_
+.
+‹Ëg¿m_»ad_couÁ
+());
+
+215 
+	gsh–l
+.
+´štæn
+(
+F
+(" #wr™�»que¡ £Á: %d"), 
+tx£rviû_
+.
+‹Ëg¿m_wr™e_couÁ
+());
+
+216 
+	gsh–l
+.
+´štæn
+(
+F
+(" #šcom¶‘�‹Ëg¿ms: %d (%d%%)"), 
+rx£rviû_
+.
+‹Ëg¿m_”rÜ_couÁ
+(), 
+sucûss_¿‹
+);
+
+217 
+	gsh–l
+.
+´štæn
+(
+F
+(" #tx faž ×á” %d„‘r›s): %d"), 
+TxS”viû
+::
+MAXIMUM_TX_RETRIES
+, 
+tx£rviû_
+.
+‹Ëg¿m_çž_couÁ
+());
+
+220 
+	gsh–l
+.
+´šŽn
+();
+
+223 autØ
+	grx_‹Ëg¿ms
+ = 
+rx£rviû_
+.
+queue
+();
+
+224 ià(
+	grx_‹Ëg¿ms
+.
+em±y
+()) {
+
+225 
+	gsh–l
+.
+´štæn
+(
+F
+("Rx Queue isƒmpty"));
+
+227 
+	gsh–l
+.
+´štæn
+(
+F
+("Rx Queu�(%ld�–eg¿m%s):"), 
+rx_‹Ëg¿ms
+.
+size
+(),„x_telegrams.size() == 1 ? "" : "s");
+
+228 cÚ¡‡utØ& 
+	g™
+ : 
+rx_‹Ëg¿ms
+) {
+
+229 
+sh–l
+.
+´štæn
+(
+F
+(" [%02d] %s"), 
+™
+.
+id_
+, 
+´‘ty_‹Ëg¿m
+(™.
+‹Ëg¿m_
+).
+c_¡r
+());
+
+233 
+	gsh–l
+.
+´šŽn
+();
+
+236 autØ
+	gtx_‹Ëg¿ms
+ = 
+tx£rviû_
+.
+queue
+();
+
+237 ià(
+	gtx_‹Ëg¿ms
+.
+em±y
+()) {
+
+238 
+	gsh–l
+.
+´štæn
+(
+F
+("Tx Queue isƒmpty"));
+
+240 
+	gsh–l
+.
+´štæn
+(
+F
+("Tx Queu�(%ld�–eg¿m%s):"), 
+tx_‹Ëg¿ms
+.
+size
+(),�x_telegrams.size() == 1 ? "" : "s");
+
+242 
+	g¡d
+::
+¡ršg
+ 
+Ý
+(10, '\0');
+
+243 cÚ¡‡utØ& 
+	g™
+ : 
+tx_‹Ëg¿ms
+) {
+
+244 ià((
+™
+.
+‹Ëg¿m_
+->
+Ý”©iÚ
+è=ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_RAW
+) {
+
+245 
+Ý
+ = 
+»ad_æash_¡ršg
+(
+F
+("RAW "));
+
+246 } ià((
+	g™
+.
+	g‹Ëg¿m_
+->
+	gÝ”©iÚ
+è=ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_READ
+) {
+
+247 
+Ý
+ = 
+»ad_æash_¡ršg
+(
+F
+("READ "));
+
+248 } ià((
+	g™
+.
+	g‹Ëg¿m_
+->
+	gÝ”©iÚ
+è=ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+) {
+
+249 
+Ý
+ = 
+»ad_æash_¡ršg
+(
+F
+("WRITE"));
+
+251 
+	gsh–l
+.
+´štæn
+(
+F
+(" [%02d%c] % %s"), 
+™
+.
+id_
+, ((™.
+»Œy_
+è? '*' : ' '), 
+Ý
+.
+c_¡r
+(), 
+´‘ty_‹Ëg¿m
+(™.
+‹Ëg¿m_
+).c_str());
+
+255 
+	gsh–l
+.
+´šŽn
+();
+
+259 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+260 ià(
+emsdeviûs
+.
+em±y
+()) {
+
+261 
+sh–l
+.
+´štæn
+(
+F
+("No EMS devices detected. Try using 'scan devices' from�heƒms menu."));
+
+262 
+	gsh–l
+.
+´šŽn
+();
+
+267 cÚ¡‡utØ& 
+	gdeviû_þass
+ : 
+EMSFaùÜy
+::
+deviû_hªdËrs
+()) {
+
+268 cÚ¡‡utØ& 
+emsdeviû
+ : 
+emsdeviûs
+) {
+
+269 ià((
+emsdeviû
+è&& (emsdeviû->
+deviû_ty³
+(è=ð
+deviû_þass
+.
+fœ¡
+)) {
+
+270 
+emsdeviû
+->
+show_v®ues
+(
+sh–l
+);
+
+277 
+	gEMSESP
+::
+show_£nsÜ_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+278 ià(
+£nsÜ_deviûs
+().
+em±y
+()) {
+
+282 
+	gv®ue¡r
+[8] = {0};
+
+283 
+	gsh–l
+.
+´štæn
+(
+F
+("Dallas�emperature sensors:"));
+
+284 cÚ¡‡utØ& 
+	gdeviû
+ : 
+£nsÜ_deviûs
+()) {
+
+285 
+sh–l
+.
+´štæn
+(
+F
+(" ID: %s, Tem³¿tu»: %sÂ°C"), 
+deviû
+.
+to_¡ršg
+().
+c_¡r
+(), 
+H–³rs
+::
+»nd”_v®ue
+(
+v®ue¡r
+, deviû.
+‹m³¿tu»_c
+, 1));
+
+287 
+	gsh–l
+.
+´šŽn
+();
+
+290 
+	gEMSESP
+::
+publish_deviû_v®ues
+(
+ušt8_t
+ 
+deviû_ty³
+) {
+
+291 ià(
+Mq‰
+::
+cÚÃùed
+()) {
+
+292 cÚ¡‡utØ& 
+emsdeviû
+ : 
+emsdeviûs
+) {
+
+293 ià(
+emsdeviû
+ && (emsdeviû->
+deviû_ty³
+() == device_type)) {
+
+294 
+emsdeviû
+->
+publish_v®ues
+();
+
+300 
+	gEMSESP
+::
+publish_Ùh”_v®ues
+() {
+
+301 ià(
+Mq‰
+::
+cÚÃùed
+()) {
+
+302 cÚ¡‡utØ& 
+emsdeviû
+ : 
+emsdeviûs
+) {
+
+303 ià(
+emsdeviû
+ && (emsdeviû->
+deviû_ty³
+(è!ð
+EMSdeviû
+::
+DeviûTy³
+::
+BOILER
+è&& (emsdeviû->deviû_ty³(è!ðEMSdeviû::DeviûTy³::
+THERMOSTAT
+)
+
+304 && (
+emsdeviû
+->
+deviû_ty³
+(è!ð
+EMSdeviû
+::
+DeviûTy³
+::
+SOLAR
+è&& (emsdeviû->deviû_ty³(è!ðEMSdeviû::DeviûTy³::
+MIXING
+)) {
+
+305 
+emsdeviû
+->
+publish_v®ues
+();
+
+311 
+	gEMSESP
+::
+publish_£nsÜ_v®ues
+(cÚ¡ 
+boÞ
+ 
+fÜû
+) {
+
+312 ià(
+Mq‰
+::
+cÚÃùed
+()) {
+
+313 ià(
+£nsÜs_
+.
+upd©ed_v®ues
+(è|| 
+fÜû
+) {
+
+314 
+£nsÜs_
+.
+publish_v®ues
+();
+
+320 
+	gEMSESP
+::
+publish_»¥Ú£
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+321 
+S�ticJsÚDocum’t
+<
+EMSESP_MAX_JSON_SIZE_SMALL
+> 
+doc
+;
+
+323 
+	gbufãr
+[100];
+
+324 
+	gdoc
+["¤c"] = 
+H–³rs
+::
+hextß
+(
+bufãr
+, 
+‹Ëg¿m
+->
+¤c
+);
+
+325 
+	gdoc
+["de¡"] = 
+H–³rs
+::
+hextß
+(
+bufãr
+, 
+‹Ëg¿m
+->
+de¡
+);
+
+326 
+	gdoc
+["ty³"] = 
+H–³rs
+::
+hextß
+(
+bufãr
+, 
+‹Ëg¿m
+->
+ty³_id
+);
+
+327 
+	gdoc
+["off£t"] = 
+H–³rs
+::
+hextß
+(
+bufãr
+, 
+‹Ëg¿m
+->
+off£t
+);
+
+328 
+¡rýy
+(
+bufãr
+, 
+H–³rs
+::
+d©a_to_hex
+(
+‹Ëg¿m
+->
+mes§ge_d©a
+,�–eg¿m->
+mes§ge_Ëngth
+).
+c_¡r
+());
+
+329 
+	gdoc
+["d©a"] = 
+bufãr
+;
+
+331 ià(
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+ <= 4) {
+
+332 
+ušt32_t
+ 
+v®ue
+ = 0;
+
+333 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+; i++) {
+
+334 
+	gv®ue
+ = (
+v®ue
+ << 8è+ 
+‹Ëg¿m
+->
+mes§ge_d©a
+[
+i
+];
+
+336 
+	gdoc
+["v®ue"] = 
+v®ue
+;
+
+339 
+	gMq‰
+::
+publish
+(
+F
+("»¥Ú£"), 
+doc
+);
+
+343 
+	g¡d
+::
+¡ršg
+ 
+EMSESP
+::
+deviû_to¡ršg
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+) {
+
+344 ià((
+deviû_id
+ & 0x7Fè=ð
+rx£rviû_
+.
+ems_bus_id
+()) {
+
+345  
+»ad_æash_¡ršg
+(
+F
+("Me"));
+
+346 } ià(
+	gdeviû_id
+ == 0x00) {
+
+347  
+»ad_æash_¡ršg
+(
+F
+("All"));
+
+349 
+	gbufãr
+[5];
+
+350  
+	gH–³rs
+::
+hextß
+(
+bufãr
+, 
+deviû_id
+);
+
+356 
+	g¡d
+::
+¡ršg
+ 
+EMSESP
+::
+´‘ty_‹Ëg¿m
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+357 
+ušt8_t
+ 
+¤c
+ = 
+‹Ëg¿m
+->src & 0x7F;
+
+358 
+ušt8_t
+ 
+	gde¡
+ = 
+‹Ëg¿m
+->
+de¡
+ & 0x7F;
+
+359 
+ušt8_t
+ 
+	goff£t
+ = 
+‹Ëg¿m
+->
+off£t
+;
+
+362 
+	g¡d
+::
+¡ršg
+ 
+¤c_Çme
+(20, '\0');
+
+363 
+	g¡d
+::
+¡ršg
+ 
+de¡_Çme
+(20, '\0');
+
+364 
+	g¡d
+::
+¡ršg
+ 
+ty³_Çme
+(20, '\0');
+
+365 cÚ¡‡utØ& 
+	gemsdeviû
+ : 
+emsdeviûs
+) {
+
+366 ià(
+emsdeviû
+) {
+
+368 ià(
+emsdeviû
+->
+is_deviû_id
+(
+¤c
+)) {
+
+369 
+¤c_Çme
+ = 
+emsdeviû
+->
+deviû_ty³_Çme
+();
+
+370 } ià(
+	gemsdeviû
+->
+is_deviû_id
+(
+de¡
+)) {
+
+371 
+	gde¡_Çme
+ = 
+emsdeviû
+->
+deviû_ty³_Çme
+();
+
+374 ià(
+	gty³_Çme
+.
+em±y
+()) {
+
+375 
+	gty³_Çme
+ = 
+emsdeviû
+->
+‹Ëg¿m_ty³_Çme
+(
+‹Ëg¿m
+);
+
+381 ià(
+	g¤c_Çme
+.
+em±y
+()) {
+
+382 
+	g¤c_Çme
+ = 
+deviû_to¡ršg
+(
+¤c
+);
+
+385 ià(
+	gde¡_Çme
+.
+em±y
+()) {
+
+386 
+	gde¡_Çme
+ = 
+deviû_to¡ršg
+(
+de¡
+);
+
+390 ià(
+	g‹Ëg¿m
+->
+	gty³_id
+ =ð
+EMSdeviû
+::
+EMS_TYPE_VERSION
+) {
+
+391 
+ty³_Çme
+ = 
+»ad_æash_¡ršg
+(
+F
+("Version"));
+
+395 ià(
+	gty³_Çme
+.
+em±y
+()) {
+
+396 
+	gty³_Çme
+ = 
+»ad_æash_¡ršg
+(
+F
+("?"));
+
+399 
+	g¡d
+::
+¡ršg
+ 
+¡r
+(200, '\0');
+
+401 ià(
+	goff£t
+) {
+
+402 
+¢´štf_P
+(&
+¡r
+[0],
+
+403 
+¡r
+.
+ÿ·c™y
+() + 1,
+
+404 
+PSTR
+("%s(0x%02X) -> %s(0x%02X), %s(0x%02X), data: %s (offset %d)"),
+
+405 
+¤c_Çme
+.
+c_¡r
+(),
+
+406 
+¤c
+,
+
+407 
+de¡_Çme
+.
+c_¡r
+(),
+
+408 
+de¡
+,
+
+409 
+ty³_Çme
+.
+c_¡r
+(),
+
+410 
+‹Ëg¿m
+->
+ty³_id
+,
+
+411 
+‹Ëg¿m
+->
+to_¡ršg_mes§ge
+().
+c_¡r
+(),
+
+412 
+off£t
+);
+
+414 
+¢´štf_P
+(&
+¡r
+[0],
+
+415 
+¡r
+.
+ÿ·c™y
+() + 1,
+
+416 
+PSTR
+("%s(0x%02X) -> %s(0x%02X), %s(0x%02X), data: %s"),
+
+417 
+¤c_Çme
+.
+c_¡r
+(),
+
+418 
+¤c
+,
+
+419 
+de¡_Çme
+.
+c_¡r
+(),
+
+420 
+de¡
+,
+
+421 
+ty³_Çme
+.
+c_¡r
+(),
+
+422 
+‹Ëg¿m
+->
+ty³_id
+,
+
+423 
+‹Ëg¿m
+->
+to_¡ršg_mes§ge
+().
+c_¡r
+());
+
+426  
+	g¡r
+;
+
+436 
+	gEMSESP
+::
+´oûss_UBADeviûs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+438 ià(
+‹Ëg¿m
+->
+mes§ge_Ëngth
+ > 15) {
+
+443 
+ušt8_t
+ 
+	gd©a_by‹
+ = 0; d©a_by‹ < 
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+; data_byte++) {
+
+444 
+ušt8_t
+ 
+	gÃxt_by‹
+ = 
+‹Ëg¿m
+->
+mes§ge_d©a
+[
+d©a_by‹
+];
+
+446 ià(
+	gÃxt_by‹
+) {
+
+447 
+ušt8_t
+ 
+	gb™
+ = 0; bit < 8; bit++) {
+
+448 ià(
+	gÃxt_by‹
+ & 0x01) {
+
+449 
+ušt8_t
+ 
+	gdeviû_id
+ = ((
+d©a_by‹
+ + 1è* 8è+ 
+b™
+;
+
+452 ià((
+	gdeviû_id
+ !ð
+EMSbus
+::
+ems_bus_id
+()è&& !(
+EMSESP
+::
+deviû_exi¡s
+(
+deviû_id
+))) {
+
+453 
+LOG_DEBUG
+(
+F
+("New EMS deviû d‘eùed w™h ID 0x%02X. Reque¡šg v”siÚ infÜm©iÚ."), 
+deviû_id
+);
+
+454 
+£nd_»ad_»que¡
+(
+EMSdeviû
+::
+EMS_TYPE_VERSION
+, 
+deviû_id
+);
+
+457 
+	gÃxt_by‹
+ = 
+Ãxt_by‹
+ >> 1;
+
+465 
+	gEMSESP
+::
+´oûss_v”siÚ
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+467 ià(
+‹Ëg¿m
+->
+mes§ge_Ëngth
+ < 3) {
+
+472 
+ušt8_t
+ 
+	goff£t
+ = 0;
+
+473 ià(
+	g‹Ëg¿m
+->
+	gmes§ge_d©a
+[0] == 0x00) {
+
+475 ià(
+‹Ëg¿m
+->
+mes§ge_d©a
+[3] != 0x00) {
+
+476 
+off£t
+ = 3;
+
+483 
+ušt8_t
+ 
+	gdeviû_id
+ = 
+‹Ëg¿m
+->
+¤c
+;
+
+484 
+ušt8_t
+ 
+	g´oduù_id
+ = 
+‹Ëg¿m
+->
+mes§ge_d©a
+[
+off£t
+];
+
+487 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+(5, '\0');
+
+488 
+¢´štf_P
+(&
+v”siÚ
+[0], v”siÚ.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%02d.%02d"), 
+‹Ëg¿m
+->
+mes§ge_d©a
+[
+off£t
+ + 1],�elegram->message_data[offset + 2]);
+
+491 
+ušt8_t
+ 
+	gb¿nd
+;
+
+492 ià(
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+ >= 10) {
+
+493 
+b¿nd
+ = 
+EMSdeviû
+::
+decode_b¿nd
+(
+‹Ëg¿m
+->
+mes§ge_d©a
+[9]);
+
+495 
+	gb¿nd
+ = 
+EMSdeviû
+::
+B¿nd
+::
+NO_BRAND
+;
+
+499 ()
+add_deviû
+(
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+b¿nd
+);
+
+506 
+boÞ
+ 
+	gEMSESP
+::
+´oûss_‹Ëg¿m
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+) {
+
+508 ià(
+‹Ëg¿m
+->
+ty³_id
+ =ð
+»ad_id_
+) {
+
+509 
+LOG_NOTICE
+(
+´‘ty_‹Ëg¿m
+(
+‹Ëg¿m
+).
+c_¡r
+());
+
+510 
+publish_»¥Ú£
+(
+‹Ëg¿m
+);
+
+511 
+	g»ad_id_
+ = 
+WATCH_ID_NONE
+;
+
+512 } ià(
+w©ch
+(è=ð
+WATCH_ON
+) {
+
+513 ià((
+w©ch_id_
+ =ð
+WATCH_ID_NONE
+è|| (
+‹Ëg¿m
+->
+ty³_id
+ == watch_id_)
+
+514 || ((
+w©ch_id_
+ < 0x80è&& ((
+‹Ëg¿m
+->
+¤c
+ =ðw©ch_id_è|| (‹Ëg¿m->
+de¡
+ == watch_id_)))) {
+
+515 
+LOG_NOTICE
+(
+´‘ty_‹Ëg¿m
+(
+‹Ëg¿m
+).
+c_¡r
+());
+
+520 ià((
+	g‹Ëg¿m
+->
+	gde¡
+ !ð0x00è&& (
+‹Ëg¿m
+->
+de¡
+ !ð
+rx£rviû_
+.
+ems_bus_id
+())) {
+
+521  
+çl£
+;
+
+525 ià(
+	g‹Ëg¿m
+->
+	gty³_id
+ =ð
+EMSdeviû
+::
+EMS_TYPE_VERSION
+) {
+
+526 
+´oûss_v”siÚ
+(
+‹Ëg¿m
+);
+
+527  
+	gŒue
+;
+
+528 } ià(
+	g‹Ëg¿m
+->
+	gty³_id
+ =ð
+EMSdeviû
+::
+EMS_TYPE_UBADeviûs
+) {
+
+529 
+´oûss_UBADeviûs
+(
+‹Ëg¿m
+);
+
+530  
+	gŒue
+;
+
+537 
+boÞ
+ 
+	gfound
+ = 
+çl£
+;
+
+538 cÚ¡‡utØ& 
+	gemsdeviû
+ : 
+emsdeviûs
+) {
+
+539 ià(
+emsdeviû
+) {
+
+540 ià(
+emsdeviû
+->
+is_deviû_id
+(
+‹Ëg¿m
+->
+¤c
+)) {
+
+541 
+found
+ = 
+emsdeviû
+->
+hªdË_‹Ëg¿m
+(
+‹Ëg¿m
+);
+
+543 ià(
+	gfound
+) {
+
+544 ià((
+	gmq‰_
+.
+g‘_publish_Úchªge
+(
+emsdeviû
+->
+deviû_ty³
+()è&& 
+	gemsdeviû
+->
+upd©ed_v®ues
+()è|| 
+	g‹Ëg¿m
+->
+	gty³_id
+ =ð
+publish_id_
+) {
+
+545 ià(
+‹Ëg¿m
+->
+ty³_id
+ =ð
+publish_id_
+) {
+
+546 
+publish_id_
+ = 0;
+
+548 
+	gemsdeviû
+->
+publish_v®ues
+();
+
+556 ià(!
+	gfound
+) {
+
+557 
+LOG_DEBUG
+(
+F
+("NØ‹Ëg¿m�y³ hªdË¸found fÜ ID 0x%02X (¤ø0x%02X)"), 
+‹Ëg¿m
+->
+ty³_id
+,�–eg¿m->
+¤c
+);
+
+560  
+	gfound
+;
+
+565 
+	gEMSESP
+::
+deviû_šfo_web
+(cÚ¡ 
+ušt8_t
+ 
+unique_id
+, 
+JsÚObjeù
+ & 
+roÙ
+) {
+
+566 cÚ¡‡utØ& 
+	gemsdeviû
+ : 
+emsdeviûs
+) {
+
+567 ià(
+emsdeviû
+) {
+
+568 ià(
+emsdeviû
+->
+unique_id
+() == unique_id) {
+
+569 
+roÙ
+["deviûName"] = 
+emsdeviû
+->
+to_¡ršg_shÜt
+();
+
+570 
+JsÚA¼ay
+ 
+	gd©a
+ = 
+roÙ
+.
+ü—‹Ne¡edA¼ay
+("deviceData");
+
+571 
+	gemsdeviû
+->
+deviû_šfo_web
+(
+d©a
+);
+
+579 
+boÞ
+ 
+	gEMSESP
+::
+deviû_exi¡s
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+) {
+
+580 cÚ¡‡utØ& 
+emsdeviû
+ : 
+emsdeviûs
+) {
+
+581 ià(
+emsdeviû
+) {
+
+582 ià(
+emsdeviû
+->
+is_deviû_id
+(
+deviû_id
+)) {
+
+583  
+Œue
+;
+
+588  
+	gçl£
+;
+
+592 
+	gEMSESP
+::
+add_cÚ‹xt_m’us
+() {
+
+593 cÚ¡‡utØ& 
+emsdeviû
+ : 
+emsdeviûs
+) {
+
+594 ià(
+emsdeviû
+) {
+
+595 
+emsdeviû
+->
+add_cÚ‹xt_m’u
+();
+
+601 
+	gEMSESP
+::
+show_deviûs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+602 ià(
+emsdeviûs
+.
+em±y
+()) {
+
+603 
+sh–l
+.
+´štæn
+(
+F
+("No EMS devices detected. Try using 'scan devices' from�heƒms menu."));
+
+604 
+	gsh–l
+.
+´šŽn
+();
+
+608 
+	gsh–l
+.
+´štæn
+(
+F
+("These EMS devices‡re currently‡ctive:"));
+
+609 
+	gsh–l
+.
+´šŽn
+();
+
+613 cÚ¡‡utØ& 
+	gdeviû_þass
+ : 
+EMSFaùÜy
+::
+deviû_hªdËrs
+()) {
+
+615 cÚ¡‡utØ& 
+emsdeviû
+ : 
+emsdeviûs
+) {
+
+616 ià((
+emsdeviû
+è&& (emsdeviû->
+deviû_ty³
+(è=ð
+deviû_þass
+.
+fœ¡
+)) {
+
+617 
+sh–l
+.
+´štf
+(
+F
+("%s: %s"), 
+emsdeviû
+->
+deviû_ty³_Çme
+().
+c_¡r
+(),ƒmsdeviû->
+to_¡ršg
+().c_str());
+
+618 ià((
+	gemsdeviû
+->
+deviû_ty³
+(è=ð
+EMSdeviû
+::
+DeviûTy³
+::
+THERMOSTAT
+è&& (
+emsdeviû
+->
+g‘_deviû_id
+(è=ð
+aùu®_ma¡”_th”mo¡©
+())) {
+
+619 
+sh–l
+.
+´štf
+(
+F
+(" ** master device **"));
+
+621 
+	gsh–l
+.
+´šŽn
+();
+
+622 
+	gemsdeviû
+->
+show_‹Ëg¿m_hªdËrs
+(
+sh–l
+);
+
+624 
+	gsh–l
+.
+´šŽn
+();
+
+632 
+boÞ
+ 
+	gEMSESP
+::
+add_deviû
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+, cÚ¡ ušt8_ˆ
+´oduù_id
+, 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ ušt8_ˆ
+b¿nd
+) {
+
+634 ià(
+	gdeviû_id
+ =ð
+rx£rviû_
+.
+ems_bus_id
+()) {
+
+635  
+çl£
+;
+
+640 cÚ¡‡utØ& 
+	gemsdeviû
+ : 
+emsdeviûs
+) {
+
+641 ià(
+emsdeviû
+) {
+
+642 ià(
+emsdeviû
+->
+is_deviû_id
+(
+deviû_id
+)) {
+
+643 
+LOG_DEBUG
+(
+F
+("Upd©šg d‘až Ú‡Ì—dyƒxi¡šg deviû ID 0x%02X"), 
+deviû_id
+);
+
+644 
+	gemsdeviû
+->
+´oduù_id
+(product_id);
+
+645 
+	gemsdeviû
+->
+v”siÚ
+(version);
+
+647 ià(
+	gemsdeviû
+->
+b¿nd
+(è=ð
+EMSdeviû
+::
+B¿nd
+::
+NO_BRAND
+) {
+
+648 
+emsdeviû
+->
+b¿nd
+(brand);
+
+651 cÚ¡‡utØ& 
+	gdeviû
+ : 
+deviû_lib¿ry_
+) {
+
+652 ià(
+deviû
+.
+´oduù_id
+ ==…roduct_id) {
+
+653 
+emsdeviû
+->
+Çme
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+deviû
+.name));
+
+654 
+	gemsdeviû
+->
+æags
+(
+deviû
+.flags);
+
+658  
+	gŒue
+;
+
+665 
+Deviû_»cÜd
+ * 
+	gdeviû_p
+ = 
+nuÎ±r
+;
+
+666 autØ& 
+	gdeviû
+ : 
+deviû_lib¿ry_
+) {
+
+667 ià(
+deviû
+.
+´oduù_id
+ ==…roduct_id) {
+
+670 ià(
+deviû
+.
+deviû_ty³
+ =ð
+DeviûTy³
+::
+BOILER
+) {
+
+671 ià(
+deviû_id
+ =ð
+EMSdeviû
+::
+EMS_DEVICE_ID_BOILER
+) {
+
+672 
+deviû_p
+ = &
+deviû
+;
+
+677 
+	gdeviû_p
+ = &
+deviû
+;
+
+684 ià(
+	gdeviû_p
+ =ð
+nuÎ±r
+) {
+
+685 
+LOG_NOTICE
+(
+F
+("UÄecognized EMS deviû w™h deviû ID 0x%02X w™h…roduù ID %d. PËa£„•ÜˆÚ G™Hub."), 
+deviû_id
+, 
+´oduù_id
+);
+
+686  
+	gçl£
+;
+
+688 
+	g¡d
+::
+¡ršg
+ 
+Çme
+ = 
+uuid
+::
+»ad_æash_¡ršg
+(
+deviû_p
+->name);
+
+689 
+	gemsdeviûs
+.
+push_back
+(
+EMSFaùÜy
+::
+add
+(
+deviû_p
+->
+deviû_ty³
+, 
+deviû_id
+, deviû_p->
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, deviû_p->
+æags
+, 
+b¿nd
+));
+
+690 
+	gemsdeviûs
+.
+back
+()->
+unique_id
+(++
+unique_id_couÁ_
+);
+
+691 
+LOG_DEBUG
+(
+F
+("Addšg‚ew deviû w™h deviû ID 0x%02X w™h…roduù ID %d‡nd v”siÚ %s"), 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+.
+c_¡r
+());
+
+692 
+ãtch_deviû_v®ues
+(
+deviû_id
+);
+
+695  
+	gŒue
+;
+
+699 
+	gEMSESP
+::
+£nd_»ad_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+) {
+
+700 
+	gtx£rviû_
+.
+»ad_»que¡
+(
+ty³_id
+, 
+de¡
+, 0);
+
+704 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+,
+
+705 cÚ¡ 
+ušt8_t
+ 
+de¡
+,
+
+706 cÚ¡ 
+ušt8_t
+ 
+off£t
+,
+
+707 
+ušt8_t
+ * 
+mes§ge_d©a
+,
+
+708 cÚ¡ 
+ušt8_t
+ 
+mes§ge_Ëngth
+,
+
+709 cÚ¡ 
+ušt16_t
+ 
+v®id©e_ty³id
+) {
+
+710 
+	gtx£rviû_
+.
+add
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+, 
+de¡
+, 
+ty³_id
+, 
+off£t
+, 
+mes§ge_d©a
+, 
+mes§ge_Ëngth
+);
+
+712 
+	gtx£rviû_
+.
+£t_po¡_£nd_qu”y
+(
+v®id©e_ty³id
+);
+
+715 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+, cÚ¡ ušt8_ˆ
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+) {
+
+716 
+£nd_wr™e_»que¡
+(
+ty³_id
+, 
+de¡
+, 
+off£t
+, 
+v®ue
+, 0);
+
+720 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+, cÚ¡ ušt8_ˆ
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+, cÚ¡ ušt16_ˆ
+v®id©e_ty³id
+) {
+
+721 
+ušt8_t
+ 
+	gmes§ge_d©a
+[1];
+
+722 
+	gmes§ge_d©a
+[0] = 
+v®ue
+;
+
+723 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(
+ty³_id
+, 
+de¡
+, 
+off£t
+, 
+mes§ge_d©a
+, 1, 
+v®id©e_ty³id
+);
+
+729 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+ušt8_t
+ * 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+) {
+
+730 #ifdeà
+EMSESP_DEBUG
+
+
+731 
+ušt32_t
+ 
+	grx_time_
+ = 0;
+
+734 
+ušt8_t
+ 
+	gfœ¡_v®ue
+ = 
+d©a
+[0];
+
+735 ià(((
+	gfœ¡_v®ue
+ & 0x7Fè=ð
+tx£rviû_
+.
+ems_bus_id
+()è&& (
+Ëngth
+ > 1)) {
+
+737 
+Roomù¾
+::
+check
+((
+d©a
+[1] ^ 0x80 ^ 
+rx£rviû_
+.
+ems_mask
+()), data);
+
+738 #ifdeà
+EMSESP_DEBUG
+
+
+740 
+LOG_TRACE
+(
+F
+("[DEBUG] EchØaá” %d ms: %s"), ::
+mžlis
+(è- 
+rx_time_
+, 
+H–³rs
+::
+d©a_to_hex
+(
+d©a
+, 
+Ëngth
+).
+c_¡r
+());
+
+746 
+ušt8_t
+ 
+	gtx_¡©e
+ = 
+EMSbus
+::
+tx_¡©e
+();
+
+747 ià(
+	gtx_¡©e
+ !ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+NONE
+) {
+
+748 
+boÞ
+ 
+tx_sucûssful
+ = 
+çl£
+;
+
+749 
+	gEMSbus
+::
+tx_¡©e
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+NONE
+);
+
+752 ià((
+	gtx_¡©e
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+è&& (
+Ëngth
+ == 1)) {
+
+753 ià(
+fœ¡_v®ue
+ =ð
+TxS”viû
+::
+TX_WRITE_SUCCESS
+) {
+
+754 
+LOG_DEBUG
+(
+F
+("Last Tx write successful"));
+
+755 
+	gtx£rviû_
+.
+šüem’t_‹Ëg¿m_wr™e_couÁ
+();
+
+756 
+	gtx£rviû_
+.
+£nd_pÞl
+();
+
+757 
+	gpublish_id_
+ = 
+tx£rviû_
+.
+po¡_£nd_qu”y
+();
+
+758 
+	gtx£rviû_
+.
+»£t_»Œy_couÁ
+();
+
+759 
+	gtx_sucûssful
+ = 
+Œue
+;
+
+760 } ià(
+	gfœ¡_v®ue
+ =ð
+TxS”viû
+::
+TX_WRITE_FAIL
+) {
+
+761 
+LOG_ERROR
+(
+F
+("Last Tx write„ejected by host"));
+
+762 
+	gtx£rviû_
+.
+£nd_pÞl
+();
+
+763 
+	gtx£rviû_
+.
+»£t_»Œy_couÁ
+();
+
+765 } ià(
+	gtx_¡©e
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_READ
+) {
+
+767 
+ušt8_t
+ 
+¤c
+ = 
+d©a
+[0];
+
+768 
+ušt8_t
+ 
+	gde¡
+ = 
+d©a
+[1];
+
+769 ià(
+	gtx£rviû_
+.
+is_Ï¡_tx
+(
+¤c
+, 
+de¡
+)) {
+
+770 
+LOG_DEBUG
+(
+F
+("Last Tx„ead successful"));
+
+771 
+	gtx£rviû_
+.
+šüem’t_‹Ëg¿m_»ad_couÁ
+();
+
+772 
+	gtx£rviû_
+.
+£nd_pÞl
+();
+
+773 
+	gtx£rviû_
+.
+»£t_»Œy_couÁ
+();
+
+774 
+	gtx_sucûssful
+ = 
+Œue
+;
+
+779 ià(!
+	gtx_sucûssful
+) {
+
+780 
+	gtx£rviû_
+.
+»Œy_tx
+(
+tx_¡©e
+, 
+d©a
+, 
+Ëngth
+);
+
+786 ià(
+	gËngth
+ == 1) {
+
+787 
+EMSbus
+::
+Ï¡_bus_aùiv™y
+(
+uuid
+::
+g‘_u±ime
+());
+
+789 #ifdeà
+EMSESP_DEBUG
+
+
+790 
+	gs
+[4];
+
+791 ià(
+	gfœ¡_v®ue
+ & 0x80) {
+
+792 
+LOG_TRACE
+(
+F
+("[DEBUG]‚exˆPÞÈ% aá” %d ms"), 
+H–³rs
+::
+hextß
+(
+s
+, 
+fœ¡_v®ue
+), ::
+mžlis
+(è- 
+rx_time_
+);
+
+794 
+	grx_time_
+ = ::
+mžlis
+();
+
+796 
+LOG_TRACE
+(
+F
+("[DEBUG] PÞÈack % aá” %d ms"), 
+H–³rs
+::
+hextß
+(
+s
+, 
+fœ¡_v®ue
+), ::
+mžlis
+(è- 
+rx_time_
+);
+
+801 ià((
+	gfœ¡_v®ue
+ ^ 0x80 ^ 
+	grx£rviû_
+.
+ems_mask
+()è=ð
+tx£rviû_
+.
+ems_bus_id
+()) {
+
+802 
+tx£rviû_
+.
+£nd
+();
+
+805 
+	gRoomù¾
+::
+£nd
+(
+fœ¡_v®ue
+ ^ 0x80 ^ 
+rx£rviû_
+.
+ems_mask
+());
+
+808 #ifdeà
+EMSESP_DEBUG
+
+
+809 
+LOG_TRACE
+(
+F
+("[DEBUG] R•ly‡á” %d ms: %s"), ::
+mžlis
+(è- 
+rx_time_
+, 
+H–³rs
+::
+d©a_to_hex
+(
+d©a
+, 
+Ëngth
+).
+c_¡r
+());
+
+811 
+	gRoomù¾
+::
+check
+((
+d©a
+[1] ^ 0x80 ^ 
+rx£rviû_
+.
+ems_mask
+()), data);
+
+813 
+	grx£rviû_
+.
+add
+(
+d©a
+, 
+Ëngth
+);
+
+818 
+	gEMSESP
+::
+£nd_¿w_‹Ëg¿m
+(cÚ¡ * 
+d©a
+) {
+
+819 
+tx£rviû_
+.
+£nd_¿w
+(
+d©a
+);
+
+824 
+	gEMSESP
+::
+¡¬t
+() {
+
+826 ià(!
+sy¡em_
+.
+check_upg¿de
+()) {
+
+827 #ifdeà
+ESP32
+
+
+828 
+SPIFFS
+.
+begš
+(
+Œue
+);
+
+829 #–ià
+defšed
+(
+ESP8266
+)
+
+830 
+	gL™ŽeFS
+.
+begš
+();
+
+833 
+	ge¥8266R—ù
+.
+begš
+();
+
+834 
+	gem£¥S‘tšgsS”viû
+.
+begš
+();
+
+838 
+	gdeviû_lib¿ry_
+.
+»£rve
+(80);
+
+839 
+	gdeviû_lib¿ry_
+ = {
+
+840 
+	~"deviû_lib¿ry.h
+"
+
+843 
+	gcÚsÞe_
+.
+¡¬t
+();
+
+844 
+	gmq‰_
+.
+¡¬t
+();
+
+845 
+	gsy¡em_
+.
+¡¬t
+();
+
+846 
+	gshow”_
+.
+¡¬t
+();
+
+847 
+	g£nsÜs_
+.
+¡¬t
+();
+
+848 
+	gwebS”v”
+.
+begš
+();
+
+850 
+	gemsdeviûs
+.
+»£rve
+(5);
+
+852 
+LOG_INFO
+("EMS Deviû†ib¿ry†ßded w™h %d„ecÜds", 
+deviû_lib¿ry_
+.
+size
+());
+
+854 #ià
+defšed
+(
+EMSESP_STANDALONE
+)
+
+855 
+	gmq‰_
+.
+Ú_cÚÃù
+();
+
+860 
+	gEMSESP
+::
+loÝ
+() {
+
+861 
+e¥8266R—ù
+.
+loÝ
+();
+
+864 ià(
+	gsy¡em_
+.
+u¶ßd_¡©us
+()) {
+
+868 
+	gsy¡em_
+.
+loÝ
+();
+
+869 
+	gshow”_
+.
+loÝ
+();
+
+870 
+	g£nsÜs_
+.
+loÝ
+();
+
+871 
+	gmq‰_
+.
+loÝ
+();
+
+872 
+	gcÚsÞe_
+.
+loÝ
+();
+
+873 
+	grx£rviû_
+.
+loÝ
+();
+
+876 ià((
+	guuid
+::
+g‘_u±ime
+(è- 
+Ï¡_ãtch_
+ > 
+EMS_FETCH_FREQUENCY
+)) {
+
+877 
+Ï¡_ãtch_
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+878 
+ãtch_deviû_v®ues
+();
+
+881 
+d–ay
+(1);
+
+	@src/emsesp.h
+
+19 #iâdeà
+EMSESP_EMSESP_H
+
+
+20 
+	#EMSESP_EMSESP_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+24 
+	~<veùÜ
+>
+
+25 
+	~<queue
+>
+
+26 
+	~<¡ršg
+>
+
+28 
+	~<uuid/commÚ.h
+>
+
+29 
+	~<uuid/cÚsÞe.h
+>
+
+30 
+	~<uuid/log.h
+>
+
+32 #iâdeà
+EMSESP_STANDALONE
+
+
+33 
+	~<uuid/‹Ê‘.h
+>
+
+36 
+	~<ESP8266R—ù.h
+>
+
+37 
+	~"EMSESPS�tusS”viû.h
+"
+
+38 
+	~"EMSESPDeviûsS”viû.h
+"
+
+39 
+	~"EMSESPS‘tšgsS”viû.h
+"
+
+41 
+	~"emsdeviû.h
+"
+
+42 
+	~"emsçùÜy.h
+"
+
+43 
+	~"‹Ëg¿m.h
+"
+
+44 
+	~"mq‰.h
+"
+
+45 
+	~"sy¡em.h
+"
+
+46 
+	~"£nsÜs.h
+"
+
+47 
+	~"cÚsÞe.h
+"
+
+48 
+	~"show”.h
+"
+
+49 
+	~"roomcÚŒÞ.h
+"
+
+51 
+	#WATCH_ID_NONE
+ 0
+
+52 
+
+	)
+
+53 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+55 
+þass
+ 
+	gShow”
+;
+
+57 þas 
+	cEMSESP
+ {
+
+58 
+	gpublic
+:
+
+59 
+¡¬t
+();
+
+60 
+loÝ
+();
+
+62 
+publish_deviû_v®ues
+(
+ušt8_t
+ 
+deviû_ty³
+);
+
+63 
+publish_Ùh”_v®ues
+();
+
+64 
+publish_£nsÜ_v®ues
+(cÚ¡ 
+boÞ
+ 
+fÜû
+ = 
+çl£
+);
+
+66 #ifdeà
+EMSESP_STANDALONE
+
+
+67 
+run_‹¡
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+commªd
+);
+
+68 
+dummy_mq‰_commªds
+(cÚ¡ * 
+mes§ge
+);
+
+69 
+rx_‹Ëg¿m
+(cÚ¡ 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> & 
+d©a
+);
+
+70 
+u¬t_‹Ëg¿m
+(cÚ¡ 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> & 
+rx_d©a
+);
+
+73 
+boÞ
+ 
+´oûss_‹Ëg¿m
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+74 
+	g¡d
+::
+¡ršg
+ 
+´‘ty_‹Ëg¿m
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+76 
+£nd_»ad_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+);
+
+77 
+£nd_wr™e_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+,
+
+78 cÚ¡ 
+ušt8_t
+ 
+de¡
+,
+
+79 cÚ¡ 
+ušt8_t
+ 
+off£t
+,
+
+80 
+ušt8_t
+ * 
+mes§ge_d©a
+,
+
+81 cÚ¡ 
+ušt8_t
+ 
+mes§ge_Ëngth
+,
+
+82 cÚ¡ 
+ušt16_t
+ 
+v®id©e_ty³id
+);
+
+83 
+£nd_wr™e_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+, cÚ¡ ušt8_ˆ
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+);
+
+84 
+£nd_wr™e_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+, cÚ¡ ušt8_ˆ
+off£t
+, cÚ¡ ušt8_ˆ
+v®ue
+, cÚ¡ ušt16_ˆ
+v®id©e_ty³id
+);
+
+86 
+£nd_¿w_‹Ëg¿m
+(cÚ¡ * 
+d©a
+);
+
+87 
+boÞ
+ 
+deviû_exi¡s
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+);
+
+89 
+deviû_šfo_web
+(cÚ¡ 
+ušt8_t
+ 
+unique_id
+, 
+JsÚObjeù
+ & 
+roÙ
+);
+
+91 
+ušt8_t
+ 
+couÁ_deviûs
+(cÚ¡ ušt8_ˆ
+deviû_ty³
+);
+
+93 
+ušt8_t
+ 
+aùu®_ma¡”_th”mo¡©
+();
+
+94 
+aùu®_ma¡”_th”mo¡©
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+);
+
+95 
+ušt8_t
+ 
+check_ma¡”_deviû
+(cÚ¡ ušt8_ˆ
+deviû_id
+, cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+boÞ
+ 
+»ad
+);
+
+97 
+show_deviû_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+98 
+show_£nsÜ_v®ues
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+100 
+show_deviûs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+101 
+show_ems
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+103 
+add_cÚ‹xt_m’us
+();
+
+105 
+š™_tx
+();
+
+107 
+šcomšg_‹Ëg¿m
+(
+ušt8_t
+ * 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+);
+
+109 cÚ¡ 
+	g¡d
+::
+veùÜ
+<
+S’sÜs
+::
+Deviû
+> 
+£nsÜ_deviûs
+() {
+
+110  
+£nsÜs_
+.
+deviûs
+();
+
+113 
+	gW©ch
+ : 
+ušt8_t
+ { 
+WATCH_OFF
+, 
+	gWATCH_ON
+, 
+	gWATCH_RAW
+ };
+
+114 
+w©ch_id
+(
+ušt16_t
+ 
+id
+);
+
+115 
+ušt16_t
+ 
+w©ch_id
+() {
+
+116  
+	gw©ch_id_
+;
+
+119 
+w©ch
+(
+ušt8_t
+ watch) {
+
+120 
+	gw©ch_
+ = 
+w©ch
+;
+
+121 ià(
+	gw©ch
+ =ð
+WATCH_OFF
+) {
+
+122 
+w©ch_id_
+ = 0;
+
+125 
+ušt8_t
+ 
+w©ch
+() {
+
+126  
+	gw©ch_
+;
+
+128 
+£t_»ad_id
+(
+ušt16_t
+ 
+id
+) {
+
+129 
+	g»ad_id_
+ = 
+id
+;
+
+132 
+	gBus_¡©us
+ : 
+ušt8_t
+ { 
+BUS_STATUS_CONNECTED
+ = 0, 
+	gBUS_STATUS_TX_ERRORS
+, 
+	gBUS_STATUS_OFFLINE
+ };
+
+133 
+ušt8_t
+ 
+bus_¡©us
+();
+
+135 
+boÞ
+ 
+�p_w©”_aùive
+() {
+
+136  
+	g�p_w©”_aùive_
+;
+
+139 
+�p_w©”_aùive
+(cÚ¡ 
+boÞ
+�ap_water_active) {
+
+140 
+	g�p_w©”_aùive_
+ = 
+�p_w©”_aùive
+;
+
+143 
+ãtch_deviû_v®ues
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+ = 0);
+
+145 
+boÞ
+ 
+add_deviû
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+, cÚ¡ ušt8_ˆ
+´oduù_id
+, 
+¡d
+::
+¡ršg
+ & 
+v”siÚ
+, cÚ¡ ušt8_ˆ
+b¿nd
+);
+
+146 
+sÿn_deviûs
+();
+
+147 
+þ—r_®l_deviûs
+();
+
+149 
+	g¡d
+::
+veùÜ
+<
+¡d
+::
+unique_±r
+<
+EMSdeviû
+>> 
+emsdeviûs
+;
+
+152 
+Mq‰
+ 
+	gmq‰_
+;
+
+153 
+Sy¡em
+ 
+	gsy¡em_
+;
+
+154 
+S’sÜs
+ 
+	g£nsÜs_
+;
+
+155 
+CÚsÞe
+ 
+	gcÚsÞe_
+;
+
+156 
+Show”
+ 
+	gshow”_
+;
+
+157 
+RxS”viû
+ 
+	grx£rviû_
+;
+
+158 
+TxS”viû
+ 
+	gtx£rviû_
+;
+
+161 
+ESP8266R—ù
+ 
+	ge¥8266R—ù
+;
+
+162 
+EMSESPS‘tšgsS”viû
+ 
+	gem£¥S‘tšgsS”viû
+;
+
+163 
+EMSESPS�tusS”viû
+ 
+	gem£¥S�tusS”viû
+;
+
+164 
+EMSESPDeviûsS”viû
+ 
+	gem£¥DeviûsS”viû
+;
+
+166 
+	guuid
+::
+log
+::
+Logg”
+ 
+logg”
+() {
+
+167  
+logg”_
+;
+
+170 
+	g´iv©e
+:
+
+171 
+EMSESP
+(èð
+d–‘e
+;
+
+173 
+	guuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+175 
+	g¡d
+::
+¡ršg
+ 
+deviû_to¡ršg
+(cÚ¡ 
+ušt8_t
+ 
+deviû_id
+);
+
+177 
+´oûss_UBADeviûs
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+178 
+´oûss_v”siÚ
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+179 
+publish_»¥Ú£
+(
+¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m
+);
+
+181 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gEMS_FETCH_FREQUENCY
+ = 60000;
+
+182 
+ušt32_t
+ 
+	gÏ¡_ãtch_
+;
+
+184 
+	sDeviû_»cÜd
+ {
+
+185 
+ušt8_t
+ 
+	g´oduù_id
+;
+
+186 
+	gEMSdeviû
+::
+DeviûTy³
+ 
+deviû_ty³
+;
+
+187 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	gÇme
+;
+
+188 
+ušt8_t
+ 
+	gæags
+;
+
+191 
+	g¡d
+::
+veùÜ
+<
+Deviû_»cÜd
+> 
+deviû_lib¿ry_
+;
+
+193 
+ušt8_t
+ 
+	gaùu®_ma¡”_th”mo¡©_
+;
+
+194 
+ušt16_t
+ 
+	gw©ch_id_
+;
+
+195 
+ušt8_t
+ 
+	gw©ch_
+;
+
+196 
+ušt16_t
+ 
+	g»ad_id_
+;
+
+197 
+ušt16_t
+ 
+	gpublish_id_
+;
+
+198 
+boÞ
+ 
+	g�p_w©”_aùive_
+;
+
+200 
+ušt8_t
+ 
+	gunique_id_couÁ_
+;
+
+	@src/emsfactory.h
+
+19 #iâdeà
+EMSESP_EMSFACTORY_H_
+
+
+20 
+	#EMSESP_EMSFACTORY_H_
+
+
+	)
+
+22 
+	~<m­
+>
+
+23 
+	~<memÜy
+>
+
+25 
+	~"emsdeviû.h
+"
+
+30 
+	#REGISTER_FACTORY
+(
+d”ivedCÏss
+, 
+deviû_ty³
+) \
+
+31 
+Çme¥aû
+ { \
+
+32 autØ
+»gi¡ry_
+##
+d”ivedCÏss
+ = 
+CÚü‘eEMSFaùÜy
+<d”ivedCÏss>(
+deviû_ty³
+); \
+
+33 }
+
+	)
+
+35 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+37 
+þass
+ 
+	gEMSdeviû
+;
+
+39 þas 
+	cEMSFaùÜy
+ {
+
+40 
+	gpublic
+:
+
+41 
+vœtu®
+ ~
+EMSFaùÜy
+() = ;
+
+45 autØ
+»gi¡”FaùÜy
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, 
+EMSFaùÜy
+ * 
+çùÜy
+) -> {
+
+46 autØ& 
+	g»g
+ = 
+EMSFaùÜy
+::
+g‘Regi¡”
+();
+
+47 
+	g»g
+[
+deviû_ty³
+] = 
+çùÜy
+;
+
+50 
+usšg
+ 
+	gFaùÜyM­
+ = 
+¡d
+::
+m­
+<
+ušt8_t
+, 
+	gEMSFaùÜy
+ *>;
+
+53 autØ
+deviû_hªdËrs
+(è-> 
+	gFaùÜyM­
+ {
+
+54  
+	gEMSFaùÜy
+::
+g‘Regi¡”
+();
+
+58 autØ
+add
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, 
+¡d
+::
+¡ršg
+ &
+v”siÚ
+, std::¡ršg &
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+59 -> 
+	g¡d
+::
+unique_±r
+<
+EMSdeviû
+> {
+
+60  
+¡d
+::
+unique_±r
+<
+EMSdeviû
+>(
+EMSFaùÜy
+::
+makeRaw
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+));
+
+63 
+vœtu®
+‡utØ
+cÚ¡ruù
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, 
+¡d
+::
+¡ršg
+ &
+v”siÚ
+, std::¡ršg &
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+) const
+
+64 -> 
+	gEMSdeviû
+ * = 0;
+
+66 
+	g´iv©e
+:
+
+68 autØ
+g‘Regi¡”
+(è-> 
+FaùÜyM­
+ & {
+
+69 
+FaùÜyM­
+ 
+þassRegi¡”
+{};
+
+70  
+	gþassRegi¡”
+;
+
+75 autØ
+makeRaw
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, 
+¡d
+::
+¡ršg
+ &
+v”siÚ
+, std::¡ršg &
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+)
+
+76 -> 
+	gEMSdeviû
+ * {
+
+77 autØ
+	g™
+ = 
+EMSFaùÜy
+::
+g‘Regi¡”
+().
+fšd
+(
+deviû_ty³
+);
+
+78 ià(
+	g™
+ !ð
+EMSFaùÜy
+::
+g‘Regi¡”
+().
+’d
+()) {
+
+79  
+™
+->
+£cÚd
+->
+cÚ¡ruù
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+);
+
+81  
+	gnuÎ±r
+;
+
+85 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gD”ivedCÏss
+>
+
+86 þas 
+	cCÚü‘eEMSFaùÜy
+ : 
+EMSFaùÜy
+ {
+
+87 
+public
+:
+
+89 
+CÚü‘eEMSFaùÜy
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+) {
+
+90 
+EMSFaùÜy
+::
+»gi¡”FaùÜy
+(
+deviû_ty³
+, 
+this
+);
+
+93 autØ
+cÚ¡ruù
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, ušt8_ˆ
+´oduù_id
+, 
+¡d
+::
+¡ršg
+ &
+v”siÚ
+, std::¡ršg &
+Çme
+, ušt8_ˆ
+æags
+, ušt8_ˆ
+b¿nd
+) const
+
+94 -> 
+	gEMSdeviû
+ * {
+
+95  
+Ãw
+ 
+D”ivedCÏss
+(
+deviû_ty³
+, 
+deviû_id
+, 
+´oduù_id
+, 
+v”siÚ
+, 
+Çme
+, 
+æags
+, 
+b¿nd
+);
+
+	@src/helpers.cpp
+
+19 
+	~"h–³rs.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+24 * 
+	gH–³rs
+::
+hextß
+(* 
+»suÉ
+, cÚ¡ 
+ušt8_t
+ 
+v®ue
+) {
+
+25 * 
+	gp
+ = 
+»suÉ
+;
+
+26 
+ušt8_t
+ 
+	gnib1
+ = (
+v®ue
+ >> 4) & 0x0F;
+
+27 
+ušt8_t
+ 
+	gnib2
+ = (
+v®ue
+ >> 0) & 0x0F;
+
+28 *
+	gp
+++ = 
+nib1
+ < 0xA ? '0' +‚ib1 : 'A' +‚ib1 - 0xA;
+
+29 *
+	gp
+++ = 
+nib2
+ < 0xA ? '0' +‚ib2 : 'A' +‚ib2 - 0xA;
+
+30 *
+	gp
+ = '\0';
+
+31  
+	g»suÉ
+;
+
+34 #ifdeà
+EMSESP_STANDALONE
+
+
+36 * 
+	gH–³rs
+::
+uÉo¡r
+(* 
+±r
+, 
+ušt32_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+ba£
+) {
+
+37 
+	gt
+ = 0, 
+	g»s
+ = 0;
+
+38 
+	gtmp
+ = 
+v®ue
+;
+
+39 
+	gcouÁ
+ = 0;
+
+41 ià(
+	gNULL
+ =ð
+±r
+) {
+
+42  
+NULL
+;
+
+45 ià(
+	gtmp
+ == 0) {
+
+46 
+couÁ
+++;
+
+49 
+	gtmp
+ > 0) {
+
+50 
+	gtmp
+ = 
+tmp
+ / 
+ba£
+;
+
+51 
+	gcouÁ
+++;
+
+54 
+	g±r
+ +ð
+couÁ
+;
+
+56 *
+	g±r
+ = '\0';
+
+59 
+	g»s
+ = 
+v®ue
+ - 
+ba£
+ * (
+t
+ = value / base);
+
+60 ià(
+	g»s
+ < 10) {
+
+61 *--
+	g±r
+ = '0' + 
+»s
+;
+
+62 } ià((
+	g»s
+ >ð10è&& (
+»s
+ < 16)) {
+
+63 *--
+±r
+ = 'A' - 10 + 
+»s
+;
+
+65 } (
+	gv®ue
+ = 
+t
+) != 0);
+
+67  (
+	g±r
+);
+
+75 * 
+	gH–³rs
+::
+™ß
+(* 
+»suÉ
+, 
+št16_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+ba£
+) {
+
+77 ià(
+	gba£
+ < 2 || base > 36) {
+
+78 *
+	g»suÉ
+ = '\0';
+
+79  
+	g»suÉ
+;
+
+82 * 
+	g±r
+ = 
+»suÉ
+, *
+	g±r1
+ =„esuÉ, 
+	gtmp_ch¬
+;
+
+83 
+št16_t
+ 
+	gtmp_v®ue
+;
+
+86 
+	gtmp_v®ue
+ = 
+v®ue
+;
+
+87 
+	gv®ue
+ /ð
+ba£
+;
+
+88 *
+	g±r
+++ = "zyxwvut¤qpÚmlkjihgãdcba9876543210123456789abcdefghijklmnÝqr¡uvwxyz"[35 + (
+tmp_v®ue
+ - 
+v®ue
+ * 
+ba£
+)];
+
+89 } 
+	gv®ue
+);
+
+92 ià(
+	gtmp_v®ue
+ < 0) {
+
+93 *
+	g±r
+++ = '-';
+
+96 *
+	g±r
+-- = '\0';
+
+97 
+	g±r1
+ < 
+	g±r
+) {
+
+98 
+	gtmp_ch¬
+ = *
+±r
+;
+
+99 *
+	g±r
+-- = *
+±r1
+;
+
+100 *
+	g±r1
+++ = 
+tmp_ch¬
+;
+
+103  
+	g»suÉ
+;
+
+107 * 
+	gH–³rs
+::
+sm®l™ß
+(* 
+»suÉ
+, cÚ¡ 
+ušt8_t
+ 
+v®ue
+) {
+
+108 
+	g»suÉ
+[0] = ((
+v®ue
+ / 10) == 0) ? '0' : (value / 10) + '0';
+
+109 
+	g»suÉ
+[1] = (
+v®ue
+ % 10) + '0';
+
+110 
+	g»suÉ
+[2] = '\0';
+
+111  
+	g»suÉ
+;
+
+115 * 
+	gH–³rs
+::
+sm®l™ß
+(* 
+»suÉ
+, cÚ¡ 
+ušt16_t
+ 
+v®ue
+) {
+
+116 
+	g»suÉ
+[0] = ((
+v®ue
+ / 100) == 0) ? '0' : (value / 100) + '0';
+
+117 
+	g»suÉ
+[1] = (((
+v®ue
+ % 100) / 10) == 0) ? '0' : ((value % 100) / 10) + '0';
+
+118 
+	g»suÉ
+[2] = (
+v®ue
+ % 10) + '0';
+
+119 
+	g»suÉ
+[3] = '\0';
+
+120  
+	g»suÉ
+;
+
+125 * 
+	gH–³rs
+::
+»nd”_v®ue
+(* 
+»suÉ
+, 
+ušt8_t
+ 
+v®ue
+, ušt8_ˆ
+fÜm©
+) {
+
+127 ià(
+	gfÜm©
+ =ð
+EMS_VALUE_BOOL
+) {
+
+128 ià(
+v®ue
+ =ð
+EMS_VALUE_BOOL_OFF
+) {
+
+129 
+¡¾ýy
+(
+»suÉ
+, "off", 5);
+
+130 } ià(
+	gv®ue
+ =ð
+EMS_VALUE_BOOL_NOTSET
+) {
+
+131  
+nuÎ±r
+;
+
+133 
+¡¾ýy
+(
+»suÉ
+, "on", 5);
+
+135  
+	g»suÉ
+;
+
+138 ià(!
+hasV®ue
+(
+v®ue
+)) {
+
+139  
+	gnuÎ±r
+;
+
+142 ià(!
+	gfÜm©
+) {
+
+143 
+™ß
+(
+»suÉ
+, 
+v®ue
+, 10);
+
+144  
+	g»suÉ
+;
+
+147 
+	gs2
+[5];
+
+150 ià(
+	gfÜm©
+ == 2) {
+
+151 
+¡¾ýy
+(
+»suÉ
+, 
+™ß
+(
+s2
+, 
+v®ue
+ >> 1, 10), 5);
+
+152 
+¡¾ÿt
+(
+»suÉ
+, ".", 5);
+
+153 
+¡¾ÿt
+(
+»suÉ
+, ((
+v®ue
+ & 0x01) ? "5" : "0"), 5);
+
+154  
+	g»suÉ
+;
+
+157 
+¡¾ýy
+(
+»suÉ
+, 
+™ß
+(
+s2
+, 
+v®ue
+ / 
+fÜm©
+, 10), 5);
+
+158 
+¡¾ÿt
+(
+»suÉ
+, ".", 5);
+
+159 
+¡¾ÿt
+(
+»suÉ
+, 
+™ß
+(
+s2
+, 
+v®ue
+ % 
+fÜm©
+, 10), 5);
+
+161  
+	g»suÉ
+;
+
+166 * 
+	gH–³rs
+::
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+) {
+
+167 
+	gp
+[] = {0, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000};
+
+169 * 
+	g»t
+ = 
+»suÉ
+;
+
+170 
+	gwhÞe
+ = ()
+v®ue
+;
+
+171 
+	gH–³rs
+::
+™ß
+(
+»suÉ
+, 
+whÞe
+, 10);
+
+172 *
+	g»suÉ
+ != '\0') {
+
+173 
+»suÉ
+++;
+
+175 *
+	g»suÉ
+++ = '.';
+
+176 
+	gdecim®
+ = 
+abs
+(()((
+v®ue
+ - 
+whÞe
+è* 
+p
+[
+fÜm©
+]));
+
+177 
+™ß
+(
+»suÉ
+, 
+decim®
+, 10);
+
+179  
+	g»t
+;
+
+184 * 
+	gH–³rs
+::
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+št16_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+) {
+
+185 ià(!
+hasV®ue
+(
+v®ue
+)) {
+
+186  
+	gnuÎ±r
+;
+
+190 ià(!
+	gfÜm©
+) {
+
+191 
+™ß
+(
+»suÉ
+, 
+v®ue
+, 10);
+
+192  
+	g»suÉ
+;
+
+195 
+št16_t
+ 
+	gÃw_v®ue
+ = 
+v®ue
+;
+
+196 
+	g»suÉ
+[0] = '\0';
+
+199 ià(
+	gÃw_v®ue
+ < 0) {
+
+200 
+¡¾ýy
+(
+»suÉ
+, "-", 10);
+
+201 
+	gÃw_v®ue
+ *= -1;
+
+203 
+¡¾ýy
+(
+»suÉ
+, "", 10);
+
+207 
+	gs2
+[10] = {0};
+
+208 ià(
+	gfÜm©
+ == 2) {
+
+210 
+¡¾ÿt
+(
+»suÉ
+, 
+™ß
+(
+s2
+, 
+Ãw_v®ue
+ / 2, 10), 10);
+
+211 
+¡¾ÿt
+(
+»suÉ
+, ".", 10);
+
+212 
+¡¾ÿt
+(
+»suÉ
+, ((
+Ãw_v®ue
+ & 0x01) ? "5" : "0"), 10);
+
+214 
+¡¾ÿt
+(
+»suÉ
+, 
+™ß
+(
+s2
+, 
+Ãw_v®ue
+ / 
+fÜm©
+, 10), 10);
+
+215 
+¡¾ÿt
+(
+»suÉ
+, ".", 10);
+
+216 
+¡¾ÿt
+(
+»suÉ
+, 
+™ß
+(
+s2
+, 
+Ãw_v®ue
+ % 
+fÜm©
+, 10), 10);
+
+219  
+	g»suÉ
+;
+
+223 * 
+	gH–³rs
+::
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+ušt16_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+) {
+
+224 ià(!
+hasV®ue
+(
+v®ue
+)) {
+
+225  
+	gnuÎ±r
+;
+
+227  (
+»nd”_v®ue
+(
+»suÉ
+, (
+št16_t
+)
+v®ue
+, 
+fÜm©
+));
+
+231 * 
+	gH–³rs
+::
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+št8_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+) {
+
+232 ià(!
+hasV®ue
+(
+v®ue
+)) {
+
+233  
+	gnuÎ±r
+;
+
+235  (
+»nd”_v®ue
+(
+»suÉ
+, (
+št16_t
+)
+v®ue
+, 
+fÜm©
+));
+
+239 * 
+	gH–³rs
+::
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+ušt32_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+) {
+
+240 ià(!
+hasV®ue
+(
+v®ue
+)) {
+
+241  
+	gnuÎ±r
+;
+
+244 
+	gs
+[20];
+
+245 
+	g»suÉ
+[0] = '\0';
+
+247 #iâdeà
+EMSESP_STANDALONE
+
+
+248 ià(!
+	gfÜm©
+) {
+
+249 
+¡¾ÿt
+(
+»suÉ
+, 
+Éß
+(
+v®ue
+, 
+s
+, 10), 20);
+
+251 
+¡¾ÿt
+(
+»suÉ
+, 
+Éß
+(
+v®ue
+ / 
+fÜm©
+, 
+s
+, 10), 20);
+
+252 
+¡¾ÿt
+(
+»suÉ
+, ".", 20);
+
+253 
+¡¾ÿt
+(
+»suÉ
+, 
+Éß
+(
+v®ue
+ % 
+fÜm©
+, 
+s
+, 10), 20);
+
+257 ià(!
+	gfÜm©
+) {
+
+258 
+¡¾ÿt
+(
+»suÉ
+, 
+uÉo¡r
+(
+s
+, 
+v®ue
+, 10), 20);
+
+260 
+¡ºÿt
+(
+»suÉ
+, 
+uÉo¡r
+(
+s
+, 
+v®ue
+ / 
+fÜm©
+, 10), 20);
+
+261 
+¡¾ÿt
+(
+»suÉ
+, ".", 20);
+
+262 
+¡ºÿt
+(
+»suÉ
+, 
+uÉo¡r
+(
+s
+, 
+v®ue
+ % 
+fÜm©
+, 10), 20);
+
+266  
+	g»suÉ
+;
+
+270 
+	g¡d
+::
+¡ršg
+ 
+H–³rs
+::
+d©a_to_hex
+(cÚ¡ 
+ušt8_t
+ * 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+) {
+
+271 ià(
+	gËngth
+ == 0) {
+
+272  
+uuid
+::
+»ad_æash_¡ršg
+(
+F
+("<empty>"));
+
+275 
+	g¡d
+::
+¡ršg
+ 
+¡r
+(160, '\0');
+
+276 
+	gbufãr
+[4];
+
+277 * 
+	gp
+ = &
+¡r
+[0];
+
+278 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gËngth
+; i++) {
+
+279 
+	gH–³rs
+::
+hextß
+(
+bufãr
+, 
+d©a
+[
+i
+]);
+
+280 *
+	gp
+++ = 
+bufãr
+[0];
+
+281 *
+	gp
+++ = 
+bufãr
+[1];
+
+282 *
+	gp
+++ = ' ';
+
+284 *--
+	gp
+ = '\0';
+
+286  
+	g¡r
+;
+
+291 
+ušt32_t
+ 
+	gH–³rs
+::
+hextošt
+(cÚ¡ * 
+hex
+) {
+
+292 
+ušt32_t
+ 
+v®
+ = 0;
+
+293 *
+	ghex
+) {
+
+295 
+	gby‹
+ = *
+hex
+++;
+
+297 ià(
+	gby‹
+ >ð'0' && 
+by‹
+ <= '9')
+
+298 
+by‹
+ = byte - '0';
+
+299 ià(
+	gby‹
+ >ð'a' && 
+by‹
+ <= 'f')
+
+300 
+by‹
+ = byte - 'a' + 10;
+
+301 ià(
+	gby‹
+ >ð'A' && 
+by‹
+ <= 'F')
+
+302 
+by‹
+ = byte - 'A' + 10;
+
+306 
+	gv®
+ = (
+v®
+ << 4è| (
+by‹
+ & 0xF);
+
+308  
+	gv®
+;
+
+312 
+ušt16_t
+ 
+	gH–³rs
+::
+©ošt
+(cÚ¡ * 
+v®ue
+) {
+
+313 
+x
+ = 0;
+
+314 *
+	gv®ue
+ != '\0') {
+
+315 
+x
+ = (x * 10è+ (*
+v®ue
+ - '0');
+
+316 ++
+	gv®ue
+;
+
+318  
+	gx
+;
+
+323 
+	gH–³rs
+::
+round2
+(
+v®ue
+) {
+
+324  ()(
+v®ue
+ * 100 + 0.5) / 100.0;
+
+327 
+boÞ
+ 
+	gH–³rs
+::
+check_abs
+(cÚ¡ 
+št32_t
+ 
+i
+) {
+
+328  ((
+i
+ < 0 ? -i : i) != 0xFFFFFF);
+
+332 
+boÞ
+ 
+	gH–³rs
+::
+hasV®ue
+(cÚ¡ 
+ušt8_t
+ &
+v
+, cÚ¡ ušt8_ˆ
+isBoÞ
+) {
+
+333 ià(
+	gisBoÞ
+ =ð
+EMS_VALUE_BOOL
+) {
+
+334  (
+v
+ !ð
+EMS_VALUE_BOOL_NOTSET
+);
+
+336  (
+	gv
+ !ð
+EMS_VALUE_UINT_NOTSET
+);
+
+339 
+boÞ
+ 
+	gH–³rs
+::
+hasV®ue
+(cÚ¡ 
+št8_t
+ &
+v
+) {
+
+340  (
+v
+ !ð
+EMS_VALUE_INT_NOTSET
+);
+
+344 
+boÞ
+ 
+	gH–³rs
+::
+hasV®ue
+(cÚ¡ 
+št16_t
+ &
+v
+) {
+
+345  (
+abs
+(
+v
+è< 
+EMS_VALUE_USHORT_NOTSET
+);
+
+348 
+boÞ
+ 
+	gH–³rs
+::
+hasV®ue
+(cÚ¡ 
+ušt16_t
+ &
+v
+) {
+
+349  (
+v
+ < 
+EMS_VALUE_USHORT_NOTSET
+);
+
+352 
+boÞ
+ 
+	gH–³rs
+::
+hasV®ue
+(cÚ¡ 
+ušt32_t
+ &
+v
+) {
+
+353  (
+v
+ !ð
+EMS_VALUE_ULONG_NOTSET
+);
+
+357 
+boÞ
+ 
+	gH–³rs
+::
+v®ue2numb”
+(cÚ¡ * 
+v
+, & 
+v®ue
+) {
+
+358 ià((
+	gv
+ =ð
+nuÎ±r
+è|| (
+¡¾’
+(
+v
+) == 0)) {
+
+359 
+v®ue
+ = 0;
+
+360  
+	gçl£
+;
+
+362 
+	gv®ue
+ = 
+©oi
+((*)
+v
+);
+
+363  
+	gŒue
+;
+
+367 
+boÞ
+ 
+	gH–³rs
+::
+v®ue2æßt
+(cÚ¡ * 
+v
+, & 
+v®ue
+) {
+
+368 ià((
+	gv
+ =ð
+nuÎ±r
+è|| (
+¡¾’
+(
+v
+) == 0)) {
+
+369 
+v®ue
+ = 0;
+
+370  
+	gçl£
+;
+
+372 
+	gv®ue
+ = 
+©of
+((*)
+v
+);
+
+373  
+	gŒue
+;
+
+377 
+	g¡d
+::
+¡ršg
+ 
+H–³rs
+::
+toLow”
+(
+¡d
+::¡ršg cÚ¡ & 
+s
+) {
+
+378 
+¡d
+::
+¡ršg
+ 
+lc
+ = 
+s
+;
+
+379 
+	g¡d
+::
+ŒªsfÜm
+(
+lc
+.
+begš
+(),†c.
+’d
+(),†c.begš(), [](
+c
+è{  
+¡d
+::
+tÞow”
+(c); });
+
+380  
+	glc
+;
+
+384 
+boÞ
+ 
+	gH–³rs
+::
+v®ue2¡ršg
+(cÚ¡ * 
+v
+, 
+¡d
+::
+¡ršg
+ & 
+v®ue
+) {
+
+385 ià((
+v
+ =ð
+nuÎ±r
+è|| (
+¡¾’
+(v) == 0)) {
+
+386 
+v®ue
+ = {};
+
+387  
+	gçl£
+;
+
+389 
+	gv®ue
+ = 
+toLow”
+(
+v
+);
+
+390  
+	gŒue
+;
+
+395 
+boÞ
+ 
+	gH–³rs
+::
+v®ue2boÞ
+(cÚ¡ * 
+v
+, boÞ & 
+v®ue
+) {
+
+396 ià((
+	gv
+ =ð
+nuÎ±r
+è|| (
+¡¾’
+(
+v
+) == 0)) {
+
+397  
+çl£
+;
+
+400 
+	g¡d
+::
+¡ršg
+ 
+boÞ_¡r
+ = 
+toLow”
+(
+v
+);
+
+402 ià((
+	gboÞ_¡r
+ =ð"Ú"è|| (
+boÞ_¡r
+ =ð"1"è
+Ü
+ (bool_str == "true")) {
+
+403 
+v®ue
+ = 
+Œue
+;
+
+404  
+	gŒue
+;
+
+407 ià((
+	gboÞ_¡r
+ =ð"off"è|| (
+boÞ_¡r
+ =ð"0"è
+Ü
+ (bool_str == "false")) {
+
+408 
+v®ue
+ = 
+çl£
+;
+
+409  
+	gŒue
+;
+
+412  
+	gçl£
+;
+
+	@src/helpers.h
+
+19 #iâdeà
+EMSESP_HELPERS_H
+
+
+20 
+	#EMSESP_HELPERS_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<uuid/commÚ.h
+>
+
+25 
+	~"‹Ëg¿m.h
+"
+
+27 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+29 þas 
+	cH–³rs
+ {
+
+30 
+	gpublic
+:
+
+31 * 
+hextß
+(* 
+»suÉ
+, cÚ¡ 
+ušt8_t
+ 
+v®ue
+);
+
+32 
+	g¡d
+::
+¡ršg
+ 
+d©a_to_hex
+(cÚ¡ 
+ušt8_t
+ * 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+);
+
+34 * 
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+);
+
+35 * 
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+ušt8_t
+ 
+v®ue
+, cÚ¡ ušt8_ˆ
+fÜm©
+);
+
+36 * 
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+št8_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+);
+
+37 * 
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+ušt16_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+);
+
+38 * 
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+ušt32_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+);
+
+39 * 
+»nd”_v®ue
+(* 
+»suÉ
+, cÚ¡ 
+št16_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+fÜm©
+);
+
+41 * 
+sm®l™ß
+(* 
+»suÉ
+, cÚ¡ 
+ušt8_t
+ 
+v®ue
+);
+
+42 * 
+sm®l™ß
+(* 
+»suÉ
+, cÚ¡ 
+ušt16_t
+ 
+v®ue
+);
+
+43 * 
+™ß
+(* 
+»suÉ
+, 
+št16_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+ba£
+ = 10);
+
+44 
+ušt32_t
+ 
+hextošt
+(cÚ¡ * 
+hex
+);
+
+45 
+ušt16_t
+ 
+©ošt
+(cÚ¡ * 
+v®ue
+);
+
+46 
+boÞ
+ 
+check_abs
+(cÚ¡ 
+št32_t
+ 
+i
+);
+
+47 
+round2
+(
+v®ue
+);
+
+49 #ifdeà
+EMSESP_STANDALONE
+
+
+50 * 
+uÉo¡r
+(* 
+±r
+, 
+ušt32_t
+ 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+ba£
+);
+
+53 
+boÞ
+ 
+hasV®ue
+(cÚ¡ 
+ušt8_t
+ &
+v
+, cÚ¡ ušt8_ˆ
+isBoÞ
+ = 0);
+
+54 
+boÞ
+ 
+hasV®ue
+(cÚ¡ 
+št8_t
+ &
+v
+);
+
+55 
+boÞ
+ 
+hasV®ue
+(cÚ¡ 
+št16_t
+ &
+v
+);
+
+56 
+boÞ
+ 
+hasV®ue
+(cÚ¡ 
+ušt16_t
+ &
+v
+);
+
+57 
+boÞ
+ 
+hasV®ue
+(cÚ¡ 
+ušt32_t
+ &
+v
+);
+
+59 
+	g¡d
+::
+¡ršg
+ 
+toLow”
+(
+¡d
+::¡ršg cÚ¡ & 
+s
+);
+
+61 
+boÞ
+ 
+v®ue2numb”
+(cÚ¡ * 
+v
+, & 
+v®ue
+);
+
+62 
+boÞ
+ 
+v®ue2æßt
+(cÚ¡ * 
+v
+, & 
+v®ue
+);
+
+63 
+boÞ
+ 
+v®ue2boÞ
+(cÚ¡ * 
+v
+, boÞ & 
+v®ue
+);
+
+64 
+boÞ
+ 
+v®ue2¡ršg
+(cÚ¡ * 
+v
+, 
+¡d
+::
+¡ršg
+ & 
+v®ue
+);
+
+	@src/locale_EN.h
+
+20 
+	$MAKE_PSTR_WORD
+(
+ex™
+)
+
+21 
+	$MAKE_PSTR_WORD
+(
+h–p
+)
+
+22 
+	$MAKE_PSTR_WORD
+(
+£‰šgs
+)
+
+23 
+	$MAKE_PSTR_WORD
+(
+log
+)
+
+24 
+	$MAKE_PSTR_WORD
+(
+logout
+)
+
+25 
+	$MAKE_PSTR_WORD
+(
+’abËd
+)
+
+26 
+	$MAKE_PSTR_WORD
+(
+di§bËd
+)
+
+27 
+	$MAKE_PSTR_WORD
+(
+£t
+)
+
+28 
+	$MAKE_PSTR_WORD
+(
+show
+)
+
+29 
+	$MAKE_PSTR_WORD
+(
+Ú
+)
+
+30 
+	$MAKE_PSTR_WORD
+(
+off
+)
+
+31 
+	$MAKE_PSTR_WORD
+(
+su
+)
+
+32 
+	$MAKE_PSTR_WORD
+(
+Çme
+)
+
+33 
+	$MAKE_PSTR_WORD
+(auto)
+
+34 
+	$MAKE_PSTR_WORD
+(
+sÿn
+)
+
+35 
+	$MAKE_PSTR_WORD
+(
+·sswÜd
+)
+
+36 
+	$MAKE_PSTR_WORD
+(
+»ad
+)
+
+37 
+	$MAKE_PSTR_WORD
+(
+v”siÚ
+)
+
+38 
+	$MAKE_PSTR_WORD
+(
+v®ues
+)
+
+39 
+	$MAKE_PSTR_WORD
+(
+sy¡em
+)
+
+40 
+	$MAKE_PSTR_WORD
+(
+ãtch
+)
+
+41 
+	$MAKE_PSTR_WORD
+(
+»¡¬t
+)
+
+42 
+	$MAKE_PSTR_WORD
+(
+fÜm©
+)
+
+43 
+	$MAKE_PSTR_WORD
+(
+¿w
+)
+
+44 
+	$MAKE_PSTR_WORD
+(
+w©ch
+)
+
+45 
+	$MAKE_PSTR_WORD
+(
+£nd
+)
+
+46 
+	$MAKE_PSTR_WORD
+(
+‹Ëg¿m
+)
+
+47 
+	$MAKE_PSTR_WORD
+(
+bus_id
+)
+
+48 
+	$MAKE_PSTR_WORD
+(
+tx_mode
+)
+
+49 
+	$MAKE_PSTR_WORD
+(
+ems
+)
+
+50 
+	$MAKE_PSTR_WORD
+(
+deviûs
+)
+
+51 
+	$MAKE_PSTR_WORD
+(
+show”
+)
+
+52 
+	$MAKE_PSTR_WORD
+(
+mq‰
+)
+
+53 
+	$MAKE_PSTR_WORD
+(
+em£¥
+)
+
+54 
+	$MAKE_PSTR_WORD
+(
+cÚÃùed
+)
+
+55 
+	$MAKE_PSTR_WORD
+(
+discÚÃùed
+)
+
+56 
+	$MAKE_PSTR_WORD
+(
+·sswd
+)
+
+57 
+	$MAKE_PSTR_WORD
+(
+ho¡Çme
+)
+
+58 
+	$MAKE_PSTR_WORD
+(
+wifi
+)
+
+59 
+	$MAKE_PSTR_WORD
+(
+»cÚÃù
+)
+
+60 
+	$MAKE_PSTR_WORD
+(
+ssid
+)
+
+61 
+	$MAKE_PSTR_WORD
+(
+h—¹b—t
+)
+
+62 
+	$MAKE_PSTR_WORD
+(
+u£rs
+)
+
+63 
+	$MAKE_PSTR_WORD
+(
+ma¡”
+)
+
+64 
+	$MAKE_PSTR_WORD
+(
+‹¡
+)
+
+65 
+	$MAKE_PSTR_WORD
+(
+pš
+)
+
+68 
+	$MAKE_PSTR_WORD
+(
+ÿÎ
+)
+
+71 
+	$MAKE_PSTR_WORD
+(
+bož”
+)
+
+72 
+	$MAKE_PSTR_WORD
+(
+th”mo¡©
+)
+
+73 
+	$MAKE_PSTR_WORD
+()
+
+74 
+	$MAKE_PSTR_WORD
+(
+sÞ¬
+)
+
+75 
+	$MAKE_PSTR_WORD
+(
+mixšg
+)
+
+76 
+	$MAKE_PSTR_WORD
+(
+g©eway
+)
+
+77 
+	$MAKE_PSTR_WORD
+(
+cÚŒÞËr
+)
+
+78 
+	$MAKE_PSTR_WORD
+(
+cÚÃù
+)
+
+79 
+	$MAKE_PSTR_WORD
+(
+h—�ump
+)
+
+82 
+	$MAKE_PSTR_WORD
+(
+£nsÜs
+)
+
+84 
+	`MAKE_PSTR
+(
+kwh
+, "kWh")
+
+85 
+	`MAKE_PSTR
+(
+wh
+, "Wh")
+
+86 
+	`MAKE_PSTR
+(
+hc_ÝtiÚ®
+, "[heating circuit]")
+
+87 
+	`MAKE_PSTR
+(
+ma¡”_th”mo¡©_fmt
+, "Master Thermostat Device ID = %s")
+
+88 
+	`MAKE_PSTR
+(
+ho¡_fmt
+, "Host = %s")
+
+89 
+	`MAKE_PSTR
+(
+ho¡Çme_fmt
+, "WiFi Hostname = %s")
+
+90 
+	`MAKE_PSTR
+(
+m¬k_š‹rv®_fmt
+, "Mark interval = %lus")
+
+91 
+	`MAKE_PSTR
+(
+wifi_ssid_fmt
+, "WiFi SSID = %s")
+
+92 
+	`MAKE_PSTR
+(
+wifi_·sswÜd_fmt
+, "WiFi Password = %S")
+
+93 
+	`MAKE_PSTR
+(
+sy¡em_h—¹b—t_fmt
+, "MQTT Heartbeat is %s")
+
+94 
+	`MAKE_PSTR
+(
+cmd_ÝtiÚ®
+, "[cmd]")
+
+95 
+	`MAKE_PSTR
+(
+d“p_ÝtiÚ®
+, "[deep]")
+
+96 
+	`MAKE_PSTR
+(
+tx_mode_fmt
+, "Tx mode = %d")
+
+97 
+	`MAKE_PSTR
+(
+bus_id_fmt
+, "Bus ID = %02X")
+
+98 
+	`MAKE_PSTR
+(
+w©chid_ÝtiÚ®
+, "[ID]")
+
+99 
+	`MAKE_PSTR
+(
+w©ch_fÜm©_ÝtiÚ®
+, "[off | on |„aw]")
+
+100 
+	`MAKE_PSTR
+(
+šv®id_w©ch
+, "Invalid watch�ype")
+
+101 
+	`MAKE_PSTR
+(
+d©a_mªd©Üy
+, "<\"XX XX ...\">")
+
+102 
+	`MAKE_PSTR
+(
+³rûÁ
+, "%")
+
+103 
+	`MAKE_PSTR
+(
+deg»es
+, "Â°C")
+
+104 
+	`MAKE_PSTR
+(
+a¡”isks
+, "********")
+
+105 
+	`MAKE_PSTR
+(
+n_mªd©Üy
+, "<n>")
+
+106 
+	`MAKE_PSTR
+(
+n_ÝtiÚ®
+, "[n]")
+
+107 
+	`MAKE_PSTR
+(
+gpio_mªd©Üy
+, "<gpio>")
+
+108 
+	`MAKE_PSTR
+(
+d©a_ÝtiÚ®
+, "[data]")
+
+109 
+	`MAKE_PSTR
+(
+ty³id_mªd©Üy
+, "<type ID>")
+
+110 
+	`MAKE_PSTR
+(
+deviûid_mªd©Üy
+, "<device ID>")
+
+111 
+	`MAKE_PSTR
+(
+šv®id_log_Ëv–
+, "Invalid†og†evel")
+
+112 
+	`MAKE_PSTR
+(
+log_Ëv–_fmt
+, "Log†evel = %s")
+
+113 
+	`MAKE_PSTR
+(
+log_Ëv–_ÝtiÚ®
+, "[level]")
+
+114 
+	`MAKE_PSTR
+(
+Çme_mªd©Üy
+, "<name>")
+
+115 
+	`MAKE_PSTR
+(
+Çme_ÝtiÚ®
+, "[name]")
+
+116 
+	`MAKE_PSTR
+(
+Ãw_·sswÜd_´om±1
+, "Enter‚ew…assword: ")
+
+117 
+	`MAKE_PSTR
+(
+Ãw_·sswÜd_´om±2
+, "Retype‚ew…assword: ")
+
+118 
+	`MAKE_PSTR
+(
+·sswÜd_´om±
+, "Password: ")
+
+119 
+	`MAKE_PSTR
+(
+un£t
+, "<unset>")
+
+	@src/main.cpp
+
+19 
+	~"em£¥.h
+"
+
+21 
+	$£tup
+() {
+
+22 
+em£¥
+::
+EMSESP
+::
+	`¡¬t
+();
+
+23 
+	}
+}
+
+25 
+	$loÝ
+() {
+
+26 
+em£¥
+::
+EMSESP
+::
+	`loÝ
+();
+
+27 
+	}
+}
+
+	@src/mqtt.cpp
+
+19 
+	~"mq‰.h
+"
+
+20 
+	~"em£¥.h
+"
+
+21 
+	~"v”siÚ.h
+"
+
+23 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+25 
+AsyncMq‰Cl›Á
+ * 
+	gMq‰
+::
+mq‰Cl›Á_
+;
+
+28 
+	g¡d
+::
+¡ršg
+ 
+Mq‰
+::
+ho¡Çme_
+;
+
+29 
+ušt8_t
+ 
+	gMq‰
+::
+mq‰_qos_
+;
+
+30 
+ušt8_t
+ 
+	gMq‰
+::
+bus_id_
+;
+
+31 
+ušt32_t
+ 
+	gMq‰
+::
+publish_time_bož”_
+;
+
+32 
+ušt32_t
+ 
+	gMq‰
+::
+publish_time_th”mo¡©_
+;
+
+33 
+ušt32_t
+ 
+	gMq‰
+::
+publish_time_sÞ¬_
+;
+
+34 
+ušt32_t
+ 
+	gMq‰
+::
+publish_time_mixšg_
+;
+
+35 
+ušt32_t
+ 
+	gMq‰
+::
+publish_time_Ùh”_
+;
+
+36 
+ušt32_t
+ 
+	gMq‰
+::
+publish_time_£nsÜ_
+;
+
+38 
+	g¡d
+::
+veùÜ
+<
+Mq‰
+::
+MQTTSubFunùiÚ
+> Mq‰::
+mq‰_subfunùiÚs_
+;
+
+39 
+	g¡d
+::
+veùÜ
+<
+Mq‰
+::
+MQTTCmdFunùiÚ
+> Mq‰::
+mq‰_cmdfunùiÚs_
+;
+
+41 
+ušt16_t
+ 
+	gMq‰
+::
+mq‰_publish_çžs_
+ = 0;
+
+42 
+size_t
+ 
+	gMq‰
+::
+maximum_mq‰_mes§ges_
+ = 
+Mq‰
+::
+MAX_MQTT_MESSAGES
+;
+
+43 
+ušt16_t
+ 
+	gMq‰
+::
+mq‰_mes§ge_id_
+ = 0;
+
+44 
+	g¡d
+::
+li¡
+<
+Mq‰
+::
+QueuedMq‰Mes§ge
+> Mq‰::
+mq‰_mes§ges_
+;
+
+45 
+	gwžl_tÝic_
+[
+Mq‰
+::
+MQTT_TOPIC_MAX_SIZE
+];
+
+47 
+	guuid
+::
+log
+::
+Logg”
+ 
+Mq‰
+::
+logg”_
+{
+F_
+(
+mq‰
+), uuid::log::
+Facž™y
+::
+DAEMON
+};
+
+51 
+	gMq‰
+::
+subsüibe
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, 
+mq‰_subfunùiÚ_p
+ 
+cb
+) {
+
+53 ià(!
+	gmq‰_subfunùiÚs_
+.
+em±y
+()) {
+
+54 cÚ¡‡utØ& 
+	gmq‰_subfunùiÚ
+ : 
+mq‰_subfunùiÚs_
+) {
+
+55 ià((
+mq‰_subfunùiÚ
+.
+deviû_ty³_
+ =ð
+deviû_ty³
+è&& (
+¡rcmp
+(mq‰_subfunùiÚ.
+tÝic_
+.
+c_¡r
+(), 
+tÝic
+.c_str()) == 0)) {
+
+62 autØ
+	gmes§ge
+ = 
+queue_subsüibe_mes§ge
+(
+tÝic
+);
+
+66 
+	gmq‰_subfunùiÚs_
+.
+em¶aû_back
+(
+deviû_ty³
+, 
+¡d
+::
+move
+(
+tÝic
+), std::move(
+mes§ge
+->tÝic), std::move(
+cb
+));
+
+70 
+	gMq‰
+::
+add_commªd
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, cÚ¡ ušt8_ˆ
+deviû_id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+cmd
+, 
+mq‰_cmdfunùiÚ_p
+ 
+cb
+) {
+
+72 
+	g¡d
+::
+¡ršg
+ 
+cmd_tÝic
+ = 
+EMSdeviû
+::
+deviû_ty³_tÝic_Çme
+(
+deviû_ty³
+);
+
+74 
+boÞ
+ 
+	gexi¡s
+ = 
+çl£
+;
+
+75 ià(!
+	gmq‰_subfunùiÚs_
+.
+em±y
+()) {
+
+76 cÚ¡‡utØ& 
+	gmq‰_subfunùiÚ
+ : 
+mq‰_subfunùiÚs_
+) {
+
+77 ià((
+mq‰_subfunùiÚ
+.
+deviû_ty³_
+ =ð
+deviû_ty³
+è&& (
+¡rcmp
+(mq‰_subfunùiÚ.
+tÝic_
+.
+c_¡r
+(), 
+cmd_tÝic
+.c_str()) == 0)) {
+
+78 
+exi¡s
+ = 
+Œue
+;
+
+82 ià(!
+	gexi¡s
+) {
+
+83 
+	gMq‰
+::
+subsüibe
+(
+deviû_ty³
+, 
+cmd_tÝic
+, 
+nuÎ±r
+);
+
+86 
+LOG_DEBUG
+(
+F
+("Regi¡”šg MQTT cmd % w™h�Ýiø%s"), 
+uuid
+::
+»ad_æash_¡ršg
+(
+cmd
+).
+c_¡r
+(), 
+EMSdeviû
+::
+deviû_ty³_tÝic_Çme
+(
+deviû_ty³
+).c_str());
+
+88 
+	gmq‰_cmdfunùiÚs_
+.
+em¶aû_back
+(
+deviû_ty³
+, 
+deviû_id
+, 
+cmd
+, 
+cb
+);
+
+92 
+	gMq‰
+::
+subsüibe
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, 
+mq‰_subfunùiÚ_p
+ 
+cb
+) {
+
+93 
+subsüibe
+(0, 
+tÝic
+, 
+cb
+);
+
+97 
+	gMq‰
+::
+»subsüibe
+() {
+
+98 ià(
+mq‰_subfunùiÚs_
+.
+em±y
+()) {
+
+102 cÚ¡‡utØ& 
+	gmq‰_subfunùiÚ
+ : 
+mq‰_subfunùiÚs_
+) {
+
+103 
+queue_subsüibe_mes§ge
+(
+mq‰_subfunùiÚ
+.
+tÝic_
+);
+
+110 
+	gMq‰
+::
+loÝ
+() {
+
+112 ià(!
+cÚÃùed
+()) {
+
+116 
+ušt32_t
+ 
+	gcu¼’tMžlis
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+119 ià(
+	gpublish_time_bož”_
+ && (
+	gcu¼’tMžlis
+ - 
+	gÏ¡_publish_bož”_
+ >…ublish_time_boiler_)) {
+
+120 
+	gÏ¡_publish_bož”_
+ = 
+cu¼’tMžlis
+;
+
+121 
+	gEMSESP
+::
+publish_deviû_v®ues
+(
+EMSdeviû
+::
+DeviûTy³
+::
+BOILER
+);
+
+123 ià(
+	gpublish_time_th”mo¡©_
+ && (
+	gcu¼’tMžlis
+ - 
+	gÏ¡_publish_th”mo¡©_
+ >…ublish_time_thermostat_)) {
+
+124 
+	gÏ¡_publish_th”mo¡©_
+ = 
+cu¼’tMžlis
+;
+
+125 
+	gEMSESP
+::
+publish_deviû_v®ues
+(
+EMSdeviû
+::
+DeviûTy³
+::
+THERMOSTAT
+);
+
+127 ià(
+	gpublish_time_sÞ¬_
+ && (
+	gcu¼’tMžlis
+ - 
+	gÏ¡_publish_sÞ¬_
+ >…ublish_time_solar_)) {
+
+128 
+	gÏ¡_publish_sÞ¬_
+ = 
+cu¼’tMžlis
+;
+
+129 
+	gEMSESP
+::
+publish_deviû_v®ues
+(
+EMSdeviû
+::
+DeviûTy³
+::
+SOLAR
+);
+
+131 ià(
+	gpublish_time_mixšg_
+ && (
+	gcu¼’tMžlis
+ - 
+	gÏ¡_publish_mixšg_
+ >…ublish_time_mixing_)) {
+
+132 
+	gÏ¡_publish_mixšg_
+ = 
+cu¼’tMžlis
+;
+
+133 
+	gEMSESP
+::
+publish_deviû_v®ues
+(
+EMSdeviû
+::
+DeviûTy³
+::
+MIXING
+);
+
+135 ià(
+	gpublish_time_Ùh”_
+ && (
+	gcu¼’tMžlis
+ - 
+	gÏ¡_publish_Ùh”_
+ >…ublish_time_other_)) {
+
+136 
+	gÏ¡_publish_Ùh”_
+ = 
+cu¼’tMžlis
+;
+
+137 
+	gEMSESP
+::
+publish_Ùh”_v®ues
+();
+
+139 ià(
+	gcu¼’tMžlis
+ - 
+	gÏ¡_publish_£nsÜ_
+ > 
+	gpublish_time_£nsÜ_
+) {
+
+140 
+	gÏ¡_publish_£nsÜ_
+ = 
+cu¼’tMžlis
+;
+
+141 
+	gEMSESP
+::
+publish_£nsÜ_v®ues
+(
+publish_time_£nsÜ_
+ != 0);
+
+144 ià((
+	gušt32_t
+)(
+	gcu¼’tMžlis
+ - 
+	gÏ¡_mq‰_pÞl_
+è> 
+	gMQTT_PUBLISH_WAIT
+) {
+
+145 
+	gÏ¡_mq‰_pÞl_
+ = 
+cu¼’tMžlis
+;
+
+146 
+´oûss_queue
+();
+
+151 
+	gMq‰
+::
+show_mq‰
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+152 
+sh–l
+.
+´štæn
+(
+F
+("MQTT i %s"), 
+cÚÃùed
+(è? 
+uuid
+::
+»ad_æash_¡ršg
+(
+F_
+(cÚÃùed)).
+c_¡r
+(è: uuid::»ad_æash_¡ršg(F_(
+discÚÃùed
+)).c_str());
+
+154 
+boÞ
+ 
+	gsy¡em_h—¹b—t
+;
+
+155 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰S‘tšgsS”viû
+()->
+»ad
+([&](
+Mq‰S‘tšgs
+ & 
+£‰šgs
+è{ 
+sy¡em_h—¹b—t
+ = settings.system_heartbeat; });
+
+156 
+	gsh–l
+.
+´štæn
+(
+F_
+(
+sy¡em_h—¹b—t_fmt
+), 
+sy¡em_h—¹b—t
+ ? F_(
+’abËd
+è: F_(
+di§bËd
+));
+
+158 
+	gsh–l
+.
+´štæn
+(
+F
+("MQTT…ublish fažs: %lu"), 
+mq‰_publish_çžs_
+);
+
+159 
+	gsh–l
+.
+´šŽn
+();
+
+162 
+	gsh–l
+.
+´štæn
+(
+F
+("MQTT subscriptions:"));
+
+163 cÚ¡‡utØ& 
+	gmq‰_subfunùiÚ
+ : 
+mq‰_subfunùiÚs_
+) {
+
+165 ià((
+¡ºcmp
+(
+mq‰_subfunùiÚ
+.
+fuÎ_tÝic_
+.
+c_¡r
+(), "homeassistant/", 13) == 0)) {
+
+166 
+sh–l
+.
+´štf
+(
+F
+("�Ýic: %s"), 
+mq‰_subfunùiÚ
+.
+fuÎ_tÝic_
+.
+c_¡r
+());
+
+169 
+	gsh–l
+.
+´štf
+(
+F
+("�Ýic: %s, [cmd]:"), 
+mq‰_subfunùiÚ
+.
+fuÎ_tÝic_
+.
+c_¡r
+());
+
+170 cÚ¡‡utØ& 
+	gmq‰_cmdfunùiÚ
+ : 
+mq‰_cmdfunùiÚs_
+) {
+
+171 ià(
+EMSdeviû
+::
+deviû_ty³_tÝic_Çme
+(
+mq‰_cmdfunùiÚ
+.
+deviû_ty³_
+è=ð
+mq‰_subfunùiÚ
+.
+tÝic_
+) {
+
+172 
+sh–l
+.
+´štf
+(
+F
+(" %s"), 
+uuid
+::
+»ad_æash_¡ršg
+(
+mq‰_cmdfunùiÚ
+.
+cmd_
+).
+c_¡r
+());
+
+176 
+	gsh–l
+.
+´šŽn
+();
+
+178 
+	gsh–l
+.
+´šŽn
+();
+
+181 ià(
+	gmq‰_mes§ges_
+.
+em±y
+()) {
+
+182 
+	gsh–l
+.
+´štæn
+(
+F
+("MQTT queue isƒmpty"));
+
+183 
+	gsh–l
+.
+´šŽn
+();
+
+187 
+	gsh–l
+.
+´štæn
+(
+F
+("MQTT queu�(%d mes§ges):"), 
+mq‰_mes§ges_
+.
+size
+());
+
+189 cÚ¡‡utØ& 
+	gmes§ge
+ : 
+mq‰_mes§ges_
+) {
+
+190 autØ
+cÚ‹Á
+ = 
+mes§ge
+.
+cÚ‹Á_
+;
+
+191 ià(
+	gcÚ‹Á
+->
+	gÝ”©iÚ
+ =ð
+O³¿tiÚ
+::
+PUBLISH
+) {
+
+193 ià(
+mes§ge
+.
+»Œy_couÁ_
+ == 0) {
+
+194 ià(
+mes§ge
+.
+·ck‘_id_
+ == 0) {
+
+195 
+sh–l
+.
+´štæn
+(
+F
+(" [%02d] (PubètÝic=% ·ylßd=%s"), 
+mes§ge
+.
+id_
+, 
+cÚ‹Á
+->
+tÝic
+.
+c_¡r
+(), cÚ‹Á->
+·ylßd
+.c_str());
+
+197 
+	gsh–l
+.
+´štæn
+(
+F
+(" [%02d] (Pub)�opic=%s…ayload=%s (pid %d)"),
+
+198 
+mes§ge
+.
+id_
+,
+
+199 
+cÚ‹Á
+->
+tÝic
+.
+c_¡r
+(),
+
+200 
+cÚ‹Á
+->
+·ylßd
+.
+c_¡r
+(),
+
+201 
+mes§ge
+.
+·ck‘_id_
+);
+
+204 
+	gsh–l
+.
+´štæn
+(
+F
+(" [%02d] (Pub)�opic=%s…ayload=%s (pid %d,„etry #%d)"),
+
+205 
+mes§ge
+.
+id_
+,
+
+206 
+cÚ‹Á
+->
+tÝic
+.
+c_¡r
+(),
+
+207 
+cÚ‹Á
+->
+·ylßd
+.
+c_¡r
+(),
+
+208 
+mes§ge
+.
+·ck‘_id_
+,
+
+209 
+mes§ge
+.
+»Œy_couÁ_
+);
+
+213 
+	gsh–l
+.
+´štæn
+(
+F
+(" [%02d] (SubètÝic=%s"), 
+mes§ge
+.
+id_
+, 
+cÚ‹Á
+->
+tÝic
+.
+c_¡r
+());
+
+216 
+	gsh–l
+.
+´šŽn
+();
+
+219 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+221 
+	gMq‰
+::
+šcomšg
+(cÚ¡ * 
+tÝic
+, cÚ¡ * 
+·ylßd
+) {
+
+222 
+Ú_mes§ge
+(
+tÝic
+, 
+·ylßd
+, 
+¡¾’
+(payload));
+
+228 
+boÞ
+ 
+	gMq‰
+::
+ÿÎ_commªd
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, cÚ¡ * 
+cmd
+, cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+229 #ifdeà
+EMSESP_DEBUG
+
+
+230 ià(
+	gid
+ == -1) {
+
+231 
+LOG_DEBUG
+(
+F
+("[DEBUG] C®lšg commªd %s, v®u�%s, id i deçuÉ"), 
+cmd
+, 
+v®ue
+);
+
+233 
+LOG_DEBUG
+(
+F
+("[DEBUG] C®lšg commªd %s, v®u�%s, id i %d"), 
+cmd
+, 
+v®ue
+, 
+id
+);
+
+237 ià(!
+	gmq‰_cmdfunùiÚs_
+.
+em±y
+()) {
+
+238 cÚ¡‡utØ& 
+	gcf
+ : 
+mq‰_cmdfunùiÚs_
+) {
+
+239 ià(
+cf
+.
+deviû_ty³_
+ =ð
+deviû_ty³
+) {
+
+240 cÚ¡ * 
+cf_cmd
+ = 
+uuid
+::
+»ad_æash_¡ršg
+(
+cf
+.
+cmd_
+).
+c_¡r
+();
+
+241 ià(
+¡rcmp
+(
+cf_cmd
+, 
+cmd
+) == 0) {
+
+242 (
+cf
+.
+mq‰_cmdfunùiÚ_
+)(
+v®ue
+, 
+id
+);
+
+243  
+	gŒue
+;
+
+248  
+	gçl£
+;
+
+252 
+	gMq‰
+::
+Ú_mes§ge
+(cÚ¡ * 
+tÝic
+, cÚ¡ * 
+·ylßd
+, 
+size_t
+ 
+Ën
+) {
+
+253 ià(
+	gËn
+ == 0) {
+
+258 
+	gmes§ge
+[
+Ën
+ + 2];
+
+259 
+¡¾ýy
+(
+mes§ge
+, 
+·ylßd
+, 
+Ën
+ + 1);
+
+261 #ifdeà
+EMSESP_DEBUG
+
+
+262 
+LOG_DEBUG
+(
+F
+("[DEBUG] Reûived % => % Ö’gth %d)"), 
+tÝic
+, 
+mes§ge
+, 
+Ën
+);
+
+266 cÚ¡‡utØ& 
+	gmf
+ : 
+mq‰_subfunùiÚs_
+) {
+
+267 ià(
+¡rcmp
+(
+tÝic
+, 
+mf
+.
+fuÎ_tÝic_
+.
+c_¡r
+()) == 0) {
+
+268 ià(
+mf
+.
+mq‰_subfunùiÚ_
+) {
+
+269 (
+mf
+.
+mq‰_subfunùiÚ_
+)(
+mes§ge
+);
+
+273 
+	gS�ticJsÚDocum’t
+<
+	gEMSESP_MAX_JSON_SIZE_SMALL
+> 
+	gdoc
+;
+
+274 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+mes§ge
+);
+
+275 ià(
+	g”rÜ
+) {
+
+276 
+LOG_ERROR
+(
+F
+("MQTTƒ¼Ü:…aylßd %s,ƒ¼Ü %s"), 
+mes§ge
+, 
+”rÜ
+.
+c_¡r
+());
+
+280 cÚ¡ * 
+	gcommªd
+ = 
+doc
+["cmd"];
+
+281 ià(
+	gcommªd
+ =ð
+nuÎ±r
+) {
+
+282 
+LOG_ERROR
+(
+F
+("MQTTƒ¼Ü: inv®id…aylßd cmd fÜm©. mes§ge=%s"), 
+mes§ge
+);
+
+287 
+št8_t
+ 
+	gn
+ = -1;
+
+288 ià(
+	gdoc
+.
+cÚ�šsKey
+("hc")) {
+
+289 
+	gn
+ = 
+doc
+["hc"];
+
+290 } ià(
+	gdoc
+.
+cÚ�šsKey
+("id")) {
+
+291 
+	gn
+ = 
+doc
+["id"];
+
+294 
+boÞ
+ 
+	gcmd_known
+ = 
+çl£
+;
+
+295 
+JsÚV¬ŸÁ
+ 
+	gd©a
+ = 
+doc
+["data"];
+
+296 ià(
+	gd©a
+.
+	gis
+<*>()) {
+
+297 
+	gcmd_known
+ = 
+ÿÎ_commªd
+(
+mf
+.
+deviû_ty³_
+, 
+commªd
+, 
+d©a
+.
+as
+<*>(), 
+n
+);
+
+298 } ià(
+	gd©a
+.
+	gis
+<>()) {
+
+299 
+	gd©a_¡r
+[10];
+
+300 
+	gcmd_known
+ = 
+ÿÎ_commªd
+(
+mf
+.
+deviû_ty³_
+, 
+commªd
+, 
+H–³rs
+::
+™ß
+(
+d©a_¡r
+, (
+št16_t
+)
+d©a
+.
+as
+<>()), 
+n
+);
+
+301 } ià(
+	gd©a
+.
+	gis
+<>()) {
+
+302 
+	gd©a_¡r
+[10];
+
+303 
+	gcmd_known
+ = 
+ÿÎ_commªd
+(
+mf
+.
+deviû_ty³_
+, 
+commªd
+, 
+H–³rs
+::
+»nd”_v®ue
+(
+d©a_¡r
+, ()
+d©a
+.
+as
+<>(), 2), 
+n
+);
+
+306 ià(!
+	gcmd_known
+) {
+
+307 
+LOG_ERROR
+(
+F
+("MQTT:‚Øm©chšg cmd o¸šv®id d©a: %s"), 
+mes§ge
+);
+
+315 
+LOG_ERROR
+(
+F
+("NØMQTT hªdË¸found fÜ�Ýiø% ªd…aylßd %s"), 
+tÝic
+, 
+mes§ge
+);
+
+319 
+	gMq‰
+::
+show_tÝic_hªdËrs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+) {
+
+320 ià(
+	g¡d
+::
+couÁ_if
+(
+mq‰_subfunùiÚs_
+.
+cbegš
+(),
+
+321 
+mq‰_subfunùiÚs_
+.
+ûnd
+(),
+
+322 [=](
+MQTTSubFunùiÚ
+ cÚ¡ & 
+mq‰_subfunùiÚ
+è{  
+deviû_ty³
+ =ðmq‰_subfunùiÚ.
+deviû_ty³_
+; })
+
+327 
+	gsh–l
+.
+´št
+(
+F
+(" Subscribed MQTT�opics: "));
+
+328 cÚ¡‡utØ& 
+	gmq‰_subfunùiÚ
+ : 
+mq‰_subfunùiÚs_
+) {
+
+329 ià(
+mq‰_subfunùiÚ
+.
+deviû_ty³_
+ =ð
+deviû_ty³
+) {
+
+330 
+sh–l
+.
+´štf
+(
+F
+("% "), 
+mq‰_subfunùiÚ
+.
+tÝic_
+.
+c_¡r
+());
+
+333 
+	gsh–l
+.
+´šŽn
+();
+
+340 
+	gMq‰
+::
+Ú_publish
+(
+ušt16_t
+ 
+·ck‘Id
+) {
+
+342 ià(
+mq‰_mes§ges_
+.
+em±y
+()) {
+
+346 autØ
+	gmq‰_mes§ge
+ = 
+mq‰_mes§ges_
+.
+äÚt
+();
+
+349 ià(
+	gmq‰_mes§ge
+.
+	g·ck‘_id_
+ == 0) {
+
+353 ià(
+	gmq‰_mes§ge
+.
+	g·ck‘_id_
+ !ð
+·ck‘Id
+) {
+
+354 
+LOG_DEBUG
+(
+F
+("Mism©ch,ƒx³ùšg PID %d, gÙ %d"), 
+mq‰_mes§ge
+.
+·ck‘_id_
+, 
+·ck‘Id
+);
+
+355 
+	gmq‰_publish_çžs_
+++;
+
+358 
+	gmq‰_mes§ges_
+.
+pÝ_äÚt
+();
+
+361 
+	gMq‰
+::
+¡¬t
+() {
+
+362 
+mq‰Cl›Á_
+ = 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰Cl›Á
+();
+
+365 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+»ad
+([&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+è{ 
+ho¡Çme_
+ = wifiS‘tšgs.
+ho¡Çme
+.
+c_¡r
+(); });
+
+368 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰S‘tšgsS”viû
+()->
+»ad
+([&](
+Mq‰S‘tšgs
+ & 
+mq‰S‘tšgs
+) {
+
+369 
+publish_time_bož”_
+ = 
+mq‰S‘tšgs
+.
+publish_time_bož”
+ * 1000;
+
+370 
+publish_time_th”mo¡©_
+ = 
+mq‰S‘tšgs
+.
+publish_time_th”mo¡©
+ * 1000;
+
+371 
+publish_time_sÞ¬_
+ = 
+mq‰S‘tšgs
+.
+publish_time_sÞ¬
+ * 1000;
+
+372 
+publish_time_mixšg_
+ = 
+mq‰S‘tšgs
+.
+publish_time_mixšg
+ * 1000;
+
+373 
+publish_time_Ùh”_
+ = 
+mq‰S‘tšgs
+.
+publish_time_Ùh”
+ * 1000;
+
+374 
+publish_time_£nsÜ_
+ = 
+mq‰S‘tšgs
+.
+publish_time_£nsÜ
+ * 1000;
+
+375 
+mq‰_qos_
+ = 
+mq‰S‘tšgs
+.
+mq‰_qos
+;
+
+378 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+è{ 
+bus_id_
+ = s‘tšgs.
+ems_bus_id
+; });
+
+380 
+	gmq‰Cl›Á_
+->
+ÚCÚÃù
+([
+this
+](
+boÞ
+ 
+£ssiÚP»£Á
+è{ 
+Ú_cÚÃù
+(); });
+
+382 
+	gmq‰Cl›Á_
+->
+ÚDiscÚÃù
+([
+this
+](
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+ 
+»asÚ
+) {
+
+383 ià(
+»asÚ
+ =ð
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+TCP_DISCONNECTED
+) {
+
+384 
+LOG_INFO
+(
+F
+("MQTT disconnected: TCP"));
+
+386 ià(
+»asÚ
+ =ð
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+MQTT_IDENTIFIER_REJECTED
+) {
+
+387 
+LOG_INFO
+(
+F
+("MQTT disconnected: Identifier Rejected"));
+
+389 ià(
+»asÚ
+ =ð
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+MQTT_SERVER_UNAVAILABLE
+) {
+
+390 
+LOG_INFO
+(
+F
+("MQTT disconnected: Server unavailable"));
+
+392 ià(
+»asÚ
+ =ð
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+MQTT_MALFORMED_CREDENTIALS
+) {
+
+393 
+LOG_INFO
+(
+F
+("MQTT disconnected: Malformed credentials"));
+
+395 ià(
+»asÚ
+ =ð
+AsyncMq‰Cl›ÁDiscÚÃùR—sÚ
+::
+MQTT_NOT_AUTHORIZED
+) {
+
+396 
+LOG_INFO
+(
+F
+("MQTT disconnected: Not‡uthorized"));
+
+401 
+	gwžl_tÝic
+[
+MQTT_TOPIC_MAX_SIZE
+];
+
+402 
+¡¾ýy
+(
+wžl_tÝic
+, 
+ho¡Çme_
+.
+c_¡r
+(), 
+MQTT_TOPIC_MAX_SIZE
+);
+
+403 
+¡¾ÿt
+(
+wžl_tÝic
+, "/", 
+MQTT_TOPIC_MAX_SIZE
+);
+
+404 
+¡¾ÿt
+(
+wžl_tÝic
+, "¡©us", 
+MQTT_TOPIC_MAX_SIZE
+);
+
+405 
+	gmq‰Cl›Á_
+->
+£tWžl
+(
+wžl_tÝic
+, 1, 
+Œue
+, "offline");
+
+407 
+	gmq‰Cl›Á_
+->
+ÚMes§ge
+([
+this
+](* 
+tÝic
+, * 
+·ylßd
+, 
+AsyncMq‰Cl›ÁMes§gePrÝ”t›s
+ 
+´Ý”t›s
+, 
+size_t
+ 
+Ën
+, size_ˆ
+šdex
+, size_ˆ
+tÙ®
+) {
+
+409 
+Ú_mes§ge
+(
+tÝic
+, 
+·ylßd
+, 
+Ën
+);
+
+412 
+	gmq‰Cl›Á_
+->
+ÚPublish
+([
+this
+](
+ušt16_t
+ 
+·ck‘Id
+) {
+
+414 
+Ú_publish
+(
+·ck‘Id
+);
+
+418 
+	gmq‰_cmdfunùiÚs_
+.
+»£rve
+(40);
+
+419 
+	gmq‰_subfunùiÚs_
+.
+»£rve
+(10);
+
+422 
+	gMq‰
+::
+£t_publish_time_bož”
+(
+ušt16_t
+ 
+publish_time
+) {
+
+423 
+publish_time_bož”_
+ = 
+publish_time
+ * 1000;
+
+426 
+	gMq‰
+::
+£t_publish_time_th”mo¡©
+(
+ušt16_t
+ 
+publish_time
+) {
+
+427 
+publish_time_th”mo¡©_
+ = 
+publish_time
+ * 1000;
+
+430 
+	gMq‰
+::
+£t_publish_time_sÞ¬
+(
+ušt16_t
+ 
+publish_time
+) {
+
+431 
+publish_time_sÞ¬_
+ = 
+publish_time
+ * 1000;
+
+434 
+	gMq‰
+::
+£t_publish_time_mixšg
+(
+ušt16_t
+ 
+publish_time
+) {
+
+435 
+publish_time_mixšg_
+ = 
+publish_time
+ * 1000;
+
+438 
+	gMq‰
+::
+£t_publish_time_Ùh”
+(
+ušt16_t
+ 
+publish_time
+) {
+
+439 
+publish_time_Ùh”_
+ = 
+publish_time
+ * 1000;
+
+442 
+	gMq‰
+::
+£t_publish_time_£nsÜ
+(
+ušt16_t
+ 
+publish_time
+) {
+
+443 
+publish_time_£nsÜ_
+ = 
+publish_time
+ * 1000;
+
+446 
+boÞ
+ 
+	gMq‰
+::
+g‘_publish_Úchªge
+(
+ušt8_t
+ 
+deviû_ty³
+) {
+
+447 ià(
+deviû_ty³
+ =ð
+EMSdeviû
+::
+DeviûTy³
+::
+BOILER
+) {
+
+448 ià(!
+publish_time_bož”_
+) {
+
+449  
+Œue
+;
+
+451 } ià(
+	gdeviû_ty³
+ =ð
+EMSdeviû
+::
+DeviûTy³
+::
+THERMOSTAT
+) {
+
+452 ià(!
+publish_time_th”mo¡©_
+) {
+
+453  
+Œue
+;
+
+455 } ià(
+	gdeviû_ty³
+ =ð
+EMSdeviû
+::
+DeviûTy³
+::
+SOLAR
+) {
+
+456 ià(!
+publish_time_sÞ¬_
+) {
+
+457  
+Œue
+;
+
+459 } ià(
+	gdeviû_ty³
+ =ð
+EMSdeviû
+::
+DeviûTy³
+::
+MIXING
+) {
+
+460 ià(!
+publish_time_mixšg_
+) {
+
+461  
+Œue
+;
+
+463 } ià(!
+	gpublish_time_Ùh”_
+) {
+
+464  
+	gŒue
+;
+
+466  
+	gçl£
+;
+
+469 
+	gMq‰
+::
+£t_qos
+(
+ušt8_t
+ 
+mq‰_qos
+) {
+
+470 
+mq‰_qos_
+ = 
+mq‰_qos
+;
+
+474 
+	gMq‰
+::
+Ú_cÚÃù
+() {
+
+476 
+S�ticJsÚDocum’t
+<90> 
+doc
+;
+
+477 
+	gdoc
+["event"] = "start";
+
+478 
+	gdoc
+["v”siÚ"] = 
+EMSESP_APP_VERSION
+;
+
+479 #iâdeà
+EMSESP_STANDALONE
+
+
+480 
+	gdoc
+["�"] = 
+WiFi
+.
+loÿlIP
+().
+toSŒšg
+();
+
+482 
+publish
+(
+F
+("šfo"), 
+doc
+, 
+çl£
+);
+
+484 
+publish
+(
+F
+("¡©us"), "Úlše", 
+Œue
+);
+
+486 
+»£t_publish_çžs
+();
+
+488 
+»subsüibe
+();
+
+491 
+add_commªd
+(
+EMSdeviû
+::
+DeviûTy³
+::
+SERVICEKEY
+, 
+bus_id_
+, 
+F
+("pš"), 
+Sy¡em
+::
+mq‰_commªd_pš
+);
+
+492 
+add_commªd
+(
+EMSdeviû
+::
+DeviûTy³
+::
+SERVICEKEY
+, 
+bus_id_
+, 
+F
+("£nd"), 
+Sy¡em
+::
+mq‰_commªd_£nd
+);
+
+494 
+LOG_INFO
+(
+F
+("MQTT connected"));
+
+500 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+Mq‰Mes§ge
+> 
+Mq‰
+::
+queue_mes§ge
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ std::¡ršg & 
+·ylßd
+, cÚ¡ 
+boÞ
+ 
+»�š
+) {
+
+501 ià(
+	gtÝic
+.
+em±y
+()) {
+
+502  
+	gnuÎ±r
+;
+
+506 
+	g¡d
+::
+sh¬ed_±r
+<
+Mq‰Mes§ge
+> 
+mes§ge
+;
+
+507 ià((
+¡ºcmp
+(
+tÝic
+.
+c_¡r
+(), "homeassistant/", 13) == 0)) {
+
+509 
+mes§ge
+ = 
+¡d
+::
+make_sh¬ed
+<
+Mq‰Mes§ge
+>(
+Ý”©iÚ
+, 
+	gtÝic
+, 
+	g¡d
+::
+move
+(
+·ylßd
+), 
+	g»�š
+);
+
+512 
+	g¡d
+::
+¡ršg
+ 
+fuÎ_tÝic
+(50, '\0');
+
+513 
+¢´štf_P
+(&
+fuÎ_tÝic
+[0], fuÎ_tÝic.
+ÿ·c™y
+(è+ 1, 
+PSTR
+("%s/%s"), 
+Mq‰
+::
+ho¡Çme_
+.
+c_¡r
+(), 
+tÝic
+.c_str());
+
+514 
+	gmes§ge
+ = 
+¡d
+::
+make_sh¬ed
+<
+Mq‰Mes§ge
+>(
+Ý”©iÚ
+, 
+	gfuÎ_tÝic
+, 
+	g¡d
+::
+move
+(
+·ylßd
+), 
+	g»�š
+);
+
+518 ià(
+	gmq‰_mes§ges_
+.
+size
+(è>ð
+maximum_mq‰_mes§ges_
+) {
+
+519 
+mq‰_mes§ges_
+.
+pÝ_äÚt
+();
+
+521 
+	gmq‰_mes§ges_
+.
+em¶aû_back
+(
+mq‰_mes§ge_id_
+++, 
+¡d
+::
+move
+(
+mes§ge
+));
+
+523  
+	gmq‰_mes§ges_
+.
+back
+().
+	gcÚ‹Á_
+;
+
+527 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+Mq‰Mes§ge
+> 
+Mq‰
+::
+queue_publish_mes§ge
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ std::¡ršg & 
+·ylßd
+, cÚ¡ 
+boÞ
+ 
+»�š
+) {
+
+528  
+queue_mes§ge
+(
+O³¿tiÚ
+::
+PUBLISH
+, 
+tÝic
+, 
+·ylßd
+, 
+»�š
+);
+
+532 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+Mq‰Mes§ge
+> 
+Mq‰
+::
+queue_subsüibe_mes§ge
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+) {
+
+533  
+queue_mes§ge
+(
+O³¿tiÚ
+::
+SUBSCRIBE
+, 
+tÝic
+, "", 
+çl£
+);
+
+537 
+	gMq‰
+::
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ std::¡ršg & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+) {
+
+538 
+queue_publish_mes§ge
+(
+tÝic
+, 
+·ylßd
+, 
+»�š
+);
+
+542 
+	gMq‰
+::
+publish
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+tÝic
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+) {
+
+543 
+queue_publish_mes§ge
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+tÝic
+), 
+·ylßd
+, 
+»�š
+);
+
+546 
+	gMq‰
+::
+publish
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+tÝic
+, cÚ¡ 
+JsÚDocum’t
+ & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+) {
+
+547 
+publish
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+tÝic
+), 
+·ylßd
+, 
+»�š
+);
+
+550 
+	gMq‰
+::
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ 
+JsÚDocum’t
+ & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+) {
+
+551 
+	g¡d
+::
+¡ršg
+ 
+·ylßd_‹xt
+;
+
+552 
+£rŸlizeJsÚ
+(
+·ylßd
+, 
+·ylßd_‹xt
+);
+
+553 
+queue_publish_mes§ge
+(
+tÝic
+, 
+·ylßd_‹xt
+, 
+»�š
+);
+
+557 
+	gMq‰
+::
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ 
+boÞ
+ 
+v®ue
+) {
+
+558 
+queue_publish_mes§ge
+(
+tÝic
+, 
+v®ue
+ ? "1" : "0", 
+çl£
+);
+
+560 
+	gMq‰
+::
+publish
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+tÝic
+, cÚ¡ 
+boÞ
+ 
+v®ue
+) {
+
+561 
+queue_publish_mes§ge
+(
+uuid
+::
+»ad_æash_¡ršg
+(
+tÝic
+), 
+v®ue
+ ? "1" : "0", 
+çl£
+);
+
+565 
+	gMq‰
+::
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+) {
+
+566 
+queue_publish_mes§ge
+(
+tÝic
+, "", 
+çl£
+);
+
+571 
+	gMq‰
+::
+´oûss_queue
+() {
+
+572 ià(
+mq‰_mes§ges_
+.
+em±y
+()) {
+
+597 autØ
+	gmq‰_mes§ge
+ = 
+mq‰_mes§ges_
+.
+äÚt
+();
+
+598 autØ
+	gmes§ge
+ = 
+mq‰_mes§ge
+.
+cÚ‹Á_
+;
+
+601 ià(
+	gmes§ge
+->
+	gÝ”©iÚ
+ =ð
+O³¿tiÚ
+::
+SUBSCRIBE
+) {
+
+602 
+LOG_DEBUG
+(
+F
+("Subsüibšg�ØtÝic: %s"), 
+mes§ge
+->
+tÝic
+.
+c_¡r
+());
+
+603 
+ušt16_t
+ 
+	g·ck‘_id
+ = 
+mq‰Cl›Á_
+->
+subsüibe
+(
+mes§ge
+->
+tÝic
+.
+c_¡r
+(), 
+mq‰_qos_
+);
+
+604 ià(!
+	g·ck‘_id
+) {
+
+605 
+LOG_DEBUG
+(
+F
+("E¼Ü subsüibšg�Ø%s,ƒ¼Ü %d"), 
+mes§ge
+->
+tÝic
+.
+c_¡r
+(), 
+·ck‘_id
+);
+
+608 
+	gmq‰_mes§ges_
+.
+pÝ_äÚt
+();
+
+615 ià(
+	gmq‰_mes§ge
+.
+	g·ck‘_id_
+ > 0) {
+
+620 
+ušt16_t
+ 
+	g·ck‘_id
+ =
+
+621 
+mq‰Cl›Á_
+->
+publish
+(
+mes§ge
+->
+tÝic
+.
+c_¡r
+(), 
+mq‰_qos_
+, mes§ge->
+»�š
+, mes§ge->
+·ylßd
+.c_¡r(), mes§ge->·ylßd.
+size
+(), 
+çl£
+, 
+mq‰_mes§ge
+.
+id_
+);
+
+622 
+LOG_DEBUG
+(
+F
+("Publishšg�Ýiø% (#%02d,‡‰em± #%d,…id %d)"), 
+mes§ge
+->
+tÝic
+.
+c_¡r
+(), 
+mq‰_mes§ge
+.
+id_
+, mq‰_mes§ge.
+»Œy_couÁ_
+ + 1, 
+·ck‘_id
+);
+
+624 ià(
+	g·ck‘_id
+ == 0) {
+
+626 ià(
+mq‰_mes§ge
+.
+»Œy_couÁ_
+ =ð(
+MQTT_PUBLISH_MAX_RETRY
+ - 1)) {
+
+627 
+LOG_ERROR
+(
+F
+("Fažed�Øpublish�Ø% aá” %d‡‰em±s"), 
+mes§ge
+->
+tÝic
+.
+c_¡r
+(), 
+mq‰_mes§ge
+.
+»Œy_couÁ_
+ + 1);
+
+628 
+	gmq‰_publish_çžs_
+++;
+
+629 
+	gmq‰_mes§ges_
+.
+pÝ_äÚt
+();
+
+632 
+	gmq‰_mes§ges_
+.
+äÚt
+().
+	g»Œy_couÁ_
+++;
+
+633 
+LOG_DEBUG
+(
+F
+("Fažed�Øpublish�Ø%s. Tryšg‡gaš, #%d"), 
+mes§ge
+->
+tÝic
+.
+c_¡r
+(), 
+mq‰_mes§ge
+.
+»Œy_couÁ_
+ + 1);
+
+640 ià(
+	gmq‰_qos_
+ != 0) {
+
+641 
+mq‰_mes§ges_
+.
+äÚt
+().
+·ck‘_id_
+ = 
+·ck‘_id
+;
+
+646 
+	gmq‰_mes§ges_
+.
+pÝ_äÚt
+();
+
+	@src/mqtt.h
+
+19 #iâdeà
+EMSESP_MQTT_H_
+
+
+20 
+	#EMSESP_MQTT_H_
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~<¡ršg
+>
+
+26 
+	~<veùÜ
+>
+
+27 
+	~<li¡
+>
+
+28 
+	~<funùiÚ®
+>
+
+30 
+	~<AsyncMq‰Cl›Á.h
+>
+
+32 
+	~"h–³rs.h
+"
+
+33 
+	~"sy¡em.h
+"
+
+34 
+	~"cÚsÞe.h
+"
+
+36 
+	~<uuid/log.h
+>
+
+38 
+usšg
+ 
+	guuid
+::
+cÚsÞe
+::
+Sh–l
+;
+
+40 
+	#EMSESP_MAX_JSON_SIZE_SMALL
+ 200
+
+41 
+	#EMSESP_MAX_JSON_SIZE_MEDIUM
+ 800
+
+42 
+	#EMSESP_MAX_JSON_SIZE_LARGE
+ 1500
+
+43 
+
+	)
+
+44 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+46 
+usšg
+ 
+	gmq‰_subfunùiÚ_p
+ = 
+¡d
+::
+funùiÚ
+<(cÚ¡ * 
+mes§ge
+)>;
+
+47 
+usšg
+ 
+	gmq‰_cmdfunùiÚ_p
+ = 
+¡d
+::
+funùiÚ
+<(cÚ¡ * 
+d©a
+, cÚ¡ 
+št8_t
+ 
+	gid
+)>;
+
+49 
+	sMq‰Mes§ge
+ {
+
+50 ~
+Mq‰Mes§ge
+() = ;
+
+52 cÚ¡ 
+ušt8_t
+ 
+	gÝ”©iÚ
+;
+
+53 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+tÝic
+;
+
+54 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+·ylßd
+;
+
+55 cÚ¡ 
+boÞ
+ 
+	g»�š
+;
+
+57 
+Mq‰Mes§ge
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ std::¡ršg && 
+·ylßd
+, 
+boÞ
+ 
+»�š
+)
+
+58 : 
+Ý”©iÚ
+(operation)
+
+59 , 
+tÝic
+(topic)
+
+60 , 
+·ylßd
+(payload)
+
+61 , 
+»�š
+(retain) {
+
+65 þas 
+	cMq‰
+ {
+
+66 
+	gpublic
+:
+
+67 
+loÝ
+();
+
+68 
+¡¬t
+();
+
+70 
+£t_publish_time_bož”
+(
+ušt16_t
+ 
+publish_time
+);
+
+71 
+£t_publish_time_th”mo¡©
+(
+ušt16_t
+ 
+publish_time
+);
+
+72 
+£t_publish_time_sÞ¬
+(
+ušt16_t
+ 
+publish_time
+);
+
+73 
+£t_publish_time_mixšg
+(
+ušt16_t
+ 
+publish_time
+);
+
+74 
+£t_publish_time_Ùh”
+(
+ušt16_t
+ 
+publish_time
+);
+
+75 
+£t_publish_time_£nsÜ
+(
+ušt16_t
+ 
+publish_time
+);
+
+76 
+£t_qos
+(
+ušt8_t
+ 
+mq‰_qos
+);
+
+77 
+boÞ
+ 
+g‘_publish_Úchªge
+(
+ušt8_t
+ 
+deviû_ty³
+);
+
+79 
+	eO³¿tiÚ
+ { 
+	gPUBLISH
+, 
+	gSUBSCRIBE
+ };
+
+81 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gMQTT_TOPIC_MAX_SIZE
+ = 100;
+
+83 
+subsüibe
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, 
+mq‰_subfunùiÚ_p
+ 
+cb
+);
+
+84 
+subsüibe
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, 
+mq‰_subfunùiÚ_p
+ 
+cb
+);
+
+85 
+»subsüibe
+();
+
+87 
+add_commªd
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, cÚ¡ ušt8_ˆ
+deviû_id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+cmd
+, 
+mq‰_cmdfunùiÚ_p
+ 
+cb
+);
+
+89 
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ std::¡ršg & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+ = 
+çl£
+);
+
+90 
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ 
+JsÚDocum’t
+ & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+ = 
+çl£
+);
+
+91 
+publish
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+tÝic
+, cÚ¡ 
+JsÚDocum’t
+ & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+ = 
+çl£
+);
+
+92 
+publish
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+tÝic
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·ylßd
+, 
+boÞ
+ 
+»�š
+ = 
+çl£
+);
+
+93 
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ 
+boÞ
+ 
+v®ue
+);
+
+94 
+publish
+(cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+tÝi
+, cÚ¡ 
+boÞ
+ 
+v®ue
+);
+
+95 
+publish
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+);
+
+97 
+show_tÝic_hªdËrs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+);
+
+98 
+show_mq‰
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+100 
+Ú_cÚÃù
+();
+
+102 
+boÞ
+ 
+ÿÎ_commªd
+(cÚ¡ 
+ušt8_t
+ 
+deviû_ty³
+, cÚ¡ * 
+cmd
+, cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+104 
+discÚÃù
+() {
+
+105 
+	gmq‰Cl›Á_
+->
+discÚÃù
+();
+
+108 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+109 
+šcomšg
+(cÚ¡ * 
+tÝic
+, cÚ¡ * 
+·ylßd
+);
+
+112 
+boÞ
+ 
+cÚÃùed
+() {
+
+113  
+	gmq‰Cl›Á_
+->
+cÚÃùed
+();
+
+116 
+ušt32_t
+ 
+publish_çžs
+() {
+
+117  
+	gmq‰_publish_çžs_
+;
+
+120 
+»£t_publish_çžs
+() {
+
+121 
+	gmq‰_publish_çžs_
+ = 0;
+
+124 
+	sMQTTCmdFunùiÚ
+ {
+
+125 
+ušt8_t
+ 
+	gdeviû_ty³_
+;
+
+126 
+ušt8_t
+ 
+	gdeviû_id_
+;
+
+127 cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+	gcmd_
+;
+
+128 
+mq‰_cmdfunùiÚ_p
+ 
+	gmq‰_cmdfunùiÚ_
+;
+
+130 
+MQTTCmdFunùiÚ
+(
+ušt8_t
+ 
+deviû_ty³
+, ušt8_ˆ
+deviû_id
+, cÚ¡ 
+__FÏshSŒšgH–³r
+ * 
+cmd
+, 
+mq‰_cmdfunùiÚ_p
+ 
+mq‰_cmdfunùiÚ
+)
+
+131 : 
+deviû_ty³_
+(
+deviû_ty³
+)
+
+132 , 
+deviû_id_
+(
+deviû_id
+)
+
+133 , 
+cmd_
+(
+cmd
+)
+
+134 , 
+mq‰_cmdfunùiÚ_
+(
+mq‰_cmdfunùiÚ
+) {
+
+138 
+	g¡d
+::
+veùÜ
+<
+MQTTCmdFunùiÚ
+> 
+commªds
+() {
+
+139  
+mq‰_cmdfunùiÚs_
+;
+
+142 
+	g´iv©e
+:
+
+143 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+145 þas 
+	cQueuedMq‰Mes§ge
+ {
+
+146 
+	gpublic
+:
+
+147 cÚ¡ 
+ušt16_t
+ 
+id_
+;
+
+148 cÚ¡ 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+Mq‰Mes§ge
+> 
+cÚ‹Á_
+;
+
+149 
+ušt8_t
+ 
+	g»Œy_couÁ_
+;
+
+150 
+ušt16_t
+ 
+	g·ck‘_id_
+;
+
+152 ~
+QueuedMq‰Mes§ge
+() = ;
+
+153 
+QueuedMq‰Mes§ge
+(
+ušt16_t
+ 
+id
+, 
+¡d
+::
+sh¬ed_±r
+<
+Mq‰Mes§ge
+> && 
+cÚ‹Á
+)
+
+154 : 
+id_
+(
+id
+)
+
+155 , 
+cÚ‹Á_
+(
+¡d
+::
+move
+(
+cÚ‹Á
+)) {
+
+156 
+»Œy_couÁ_
+ = 0;
+
+157 
+	g·ck‘_id_
+ = 0;
+
+160 
+	g¡d
+::
+li¡
+<
+QueuedMq‰Mes§ge
+> 
+mq‰_mes§ges_
+;
+
+162 
+AsyncMq‰Cl›Á
+ * 
+	gmq‰Cl›Á_
+;
+
+164 
+size_t
+ 
+	gmaximum_mq‰_mes§ges_
+;
+
+165 
+ušt16_t
+ 
+	gmq‰_mes§ge_id_
+;
+
+166 
+boÞ
+ 
+	gmq‰_»�š_
+;
+
+168 
+cÚ¡ex´
+ 
+size_t
+ 
+	gMAX_MQTT_MESSAGES
+ = 20;
+
+169 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gMQTT_PUBLISH_WAIT
+ = 200;
+
+170 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gMQTT_PUBLISH_MAX_RETRY
+ = 3;
+
+172 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+Mq‰Mes§ge
+> 
+queue_mes§ge
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ std::¡ršg & 
+·ylßd
+, cÚ¡ 
+boÞ
+ 
+»�š
+);
+
+173 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+Mq‰Mes§ge
+> 
+queue_publish_mes§ge
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+, cÚ¡ std::¡ršg & 
+·ylßd
+, cÚ¡ 
+boÞ
+ 
+»�š
+);
+
+174 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+Mq‰Mes§ge
+> 
+queue_subsüibe_mes§ge
+(cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+tÝic
+);
+
+176 
+Ú_publish
+(
+ušt16_t
+ 
+·ck‘Id
+);
+
+177 
+Ú_mes§ge
+(cÚ¡ * 
+tÝic
+, cÚ¡ * 
+·ylßd
+, 
+size_t
+ 
+Ën
+);
+
+178 
+´oûss_queue
+();
+
+180 
+ušt16_t
+ 
+	gmq‰_publish_çžs_
+;
+
+183 
+	sMQTTSubFunùiÚ
+ {
+
+184 
+ušt8_t
+ 
+	gdeviû_ty³_
+;
+
+185 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+tÝic_
+;
+
+186 cÚ¡ 
+	g¡d
+::
+¡ršg
+ 
+fuÎ_tÝic_
+;
+
+187 
+mq‰_subfunùiÚ_p
+ 
+	gmq‰_subfunùiÚ_
+;
+
+189 
+MQTTSubFunùiÚ
+(
+ušt8_t
+ 
+deviû_ty³
+, cÚ¡ 
+¡d
+::
+¡ršg
+ && 
+tÝic
+, cÚ¡ std::¡ršg && 
+fuÎ_tÝic
+, 
+mq‰_subfunùiÚ_p
+ 
+mq‰_subfunùiÚ
+)
+
+190 : 
+deviû_ty³_
+(
+deviû_ty³
+)
+
+191 , 
+tÝic_
+(
+tÝic
+)
+
+192 , 
+fuÎ_tÝic_
+(
+fuÎ_tÝic
+)
+
+193 , 
+mq‰_subfunùiÚ_
+(
+mq‰_subfunùiÚ
+) {
+
+197 
+	g¡d
+::
+veùÜ
+<
+MQTTSubFunùiÚ
+> 
+mq‰_subfunùiÚs_
+;
+
+198 
+	g¡d
+::
+veùÜ
+<
+MQTTCmdFunùiÚ
+> 
+mq‰_cmdfunùiÚs_
+;
+
+200 
+ušt32_t
+ 
+	gÏ¡_mq‰_pÞl_
+ = 0;
+
+201 
+ušt32_t
+ 
+	gÏ¡_publish_bož”_
+ = 0;
+
+202 
+ušt32_t
+ 
+	gÏ¡_publish_th”mo¡©_
+ = 0;
+
+203 
+ušt32_t
+ 
+	gÏ¡_publish_sÞ¬_
+ = 0;
+
+204 
+ušt32_t
+ 
+	gÏ¡_publish_mixšg_
+ = 0;
+
+205 
+ušt32_t
+ 
+	gÏ¡_publish_Ùh”_
+ = 0;
+
+206 
+ušt32_t
+ 
+	gÏ¡_publish_£nsÜ_
+ = 0;
+
+209 
+	g¡d
+::
+¡ršg
+ 
+ho¡Çme_
+;
+
+210 
+ušt8_t
+ 
+	gmq‰_qos_
+;
+
+211 
+ušt32_t
+ 
+	gpublish_time_
+;
+
+212 
+ušt8_t
+ 
+	gbus_id_
+;
+
+213 
+ušt32_t
+ 
+	gpublish_time_bož”_
+;
+
+214 
+ušt32_t
+ 
+	gpublish_time_th”mo¡©_
+;
+
+215 
+ušt32_t
+ 
+	gpublish_time_sÞ¬_
+;
+
+216 
+ušt32_t
+ 
+	gpublish_time_mixšg_
+;
+
+217 
+ušt32_t
+ 
+	gpublish_time_Ùh”_
+;
+
+218 
+ušt32_t
+ 
+	gpublish_time_£nsÜ_
+;
+
+	@src/roomcontrol.cpp
+
+19 
+	~"roomcÚŒÞ.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+ušt32_t
+ 
+	grc_time_
+ = 0;
+
+24 
+št16_t
+ 
+	g»mÙ‘emp
+[4] = {
+EMS_VALUE_SHORT_NOTSET
+, EMS_VALUE_SHORT_NOTSET, EMS_VALUE_SHORT_NOTSET, EMS_VALUE_SHORT_NOTSET};
+
+29 
+	gRoomù¾
+::
+£t_»mÙ‘emp
+(cÚ¡ 
+ušt8_t
+ 
+hc
+, cÚ¡ 
+št16_t
+ 
+‹mp
+) {
+
+30 ià(
+	ghc
+ > 3) {
+
+33 
+	g»mÙ‘emp
+[
+hc
+] = 
+‹mp
+;
+
+39 
+	gRoomù¾
+::
+£nd
+(cÚ¡ 
+ušt8_t
+ 
+addr
+) {
+
+40 
+ušt8_t
+ 
+hc_
+ = 
+addr
+ - 
+ADDR
+;
+
+42 ià(
+	ghc_
+ > 3) {
+
+46 ià(
+	g»mÙ‘emp
+[
+hc_
+] =ð
+EMS_VALUE_SHORT_NOTSET
+) {
+
+49 ià(
+	guuid
+::
+g‘_u±ime
+(è- 
+rc_time_
+ > 
+SEND_INTERVAL
+) {
+
+50 
+rc_time_
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+51 
+‹m³¿tu»
+(
+addr
+, 0x00);
+
+54 
+	gEMSu¬t
+::
+£nd_pÞl
+(
+addr
+);
+
+61 
+	gRoomù¾
+::
+check
+(cÚ¡ 
+ušt8_t
+ 
+addr
+, cÚ¡ ušt8_ˆ* 
+d©a
+) {
+
+62 
+ušt8_t
+ 
+	ghc_
+ = (
+addr
+ & 0x7Fè- 
+ADDR
+;
+
+65 ià(
+	ghc_
+ > 3) {
+
+69 ià(
+	g»mÙ‘emp
+[
+hc_
+] =ð
+EMS_VALUE_SHORT_NOTSET
+) {
+
+73 ià(
+	gaddr
+ & 0x80) {
+
+74 
+Çck_wr™e
+();
+
+79 ià(
+	gd©a
+[2] == 0x02) {
+
+80 
+v”siÚ
+(
+addr
+, 
+d©a
+[0]);
+
+81 } ià(
+	g»mÙ‘emp
+[
+hc_
+] =ð
+EMS_VALUE_SHORT_NOTSET
+) {
+
+82 
+unknown
+(
+addr
+, 
+d©a
+[0], data[2], data[3]);
+
+83 } ià(
+	gd©a
+[2] =ð0xAF && 
+d©a
+[3] == 0) {
+
+84 
+‹m³¿tu»
+(
+addr
+, 
+d©a
+[0]);
+
+86 
+unknown
+(
+addr
+, 
+d©a
+[0], data[2], data[3]);
+
+93 
+	gRoomù¾
+::
+v”siÚ
+(
+ušt8_t
+ 
+addr
+, ušt8_ˆ
+d¡
+) {
+
+94 
+ušt8_t
+ 
+	gd©a
+[10];
+
+95 
+	gd©a
+[0] = 
+addr
+;
+
+96 
+	gd©a
+[1] = 
+d¡
+;
+
+97 
+	gd©a
+[2] = 0x02;
+
+98 
+	gd©a
+[3] = 0;
+
+99 
+	gd©a
+[4] = 113;
+
+100 
+	gd©a
+[5] = 0x02;
+
+101 
+	gd©a
+[6] = 0x01;
+
+102 
+	gd©a
+[7] = 
+EMSbus
+::
+ÿlcuÏ‹_üc
+(
+d©a
+, 7);
+
+103 
+	gEMSu¬t
+::
+Œªsm™
+(
+d©a
+, 8);
+
+109 
+	gRoomù¾
+::
+unknown
+(
+ušt8_t
+ 
+addr
+, ušt8_ˆ
+d¡
+, ušt8_ˆ
+ty³
+, ušt8_ˆ
+off£t
+) {
+
+110 
+ušt8_t
+ 
+	gd©a
+[10];
+
+111 
+	gd©a
+[0] = 
+addr
+;
+
+112 
+	gd©a
+[1] = 
+d¡
+;
+
+113 
+	gd©a
+[2] = 
+ty³
+;
+
+114 
+	gd©a
+[3] = 
+off£t
+;
+
+115 
+	gd©a
+[4] = 
+EMSbus
+::
+ÿlcuÏ‹_üc
+(
+d©a
+, 4);
+
+116 
+	gEMSu¬t
+::
+Œªsm™
+(
+d©a
+, 5);
+
+122 
+	gRoomù¾
+::
+‹m³¿tu»
+(
+ušt8_t
+ 
+addr
+, ušt8_ˆ
+d¡
+) {
+
+123 
+ušt8_t
+ 
+	gd©a
+[10];
+
+124 
+ušt8_t
+ 
+	ghc_
+ = 
+addr
+ - 
+ADDR
+;
+
+125 
+	gd©a
+[0] = 
+addr
+;
+
+126 
+	gd©a
+[1] = 
+d¡
+;
+
+127 
+	gd©a
+[2] = 0xAF;
+
+128 
+	gd©a
+[3] = 0;
+
+129 
+	gd©a
+[4] = (
+ušt8_t
+)(
+»mÙ‘emp
+[
+hc_
+] >> 8);
+
+130 
+	gd©a
+[5] = (
+ušt8_t
+)(
+»mÙ‘emp
+[
+hc_
+] & 0xFF);
+
+131 
+	gd©a
+[6] = 0;
+
+132 
+	gd©a
+[7] = 
+EMSbus
+::
+ÿlcuÏ‹_üc
+(
+d©a
+, 7);
+
+133 
+	gEMSu¬t
+::
+Œªsm™
+(
+d©a
+, 8);
+
+138 
+	gRoomù¾
+::
+Çck_wr™e
+() {
+
+139 
+ušt8_t
+ 
+d©a
+[1];
+
+140 
+	gd©a
+[0] = 
+TxS”viû
+::
+TX_WRITE_FAIL
+;
+
+141 
+	gEMSu¬t
+::
+Œªsm™
+(
+d©a
+, 1);
+
+	@src/roomcontrol.h
+
+19 #iâdeà
+EMSESP_ROOMCONTROL_H
+
+
+20 
+	#EMSESP_ROOMCONTROL_H
+
+
+	)
+
+22 
+	~"em£¥.h
+"
+
+24 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+26 þas 
+	cRoomù¾
+ {
+
+27 
+	gpublic
+:
+
+28 
+£nd
+(cÚ¡ 
+ušt8_t
+ 
+addr
+);
+
+29 
+check
+(cÚ¡ 
+ušt8_t
+ 
+addr
+, cÚ¡ ušt8_ˆ* 
+d©a
+);
+
+30 
+£t_»mÙ‘emp
+(cÚ¡ 
+ušt8_t
+ 
+hc
+, cÚ¡ 
+št16_t
+ 
+‹mp
+);
+
+32 
+	g´iv©e
+:
+
+33 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+ADDR
+ = 0x18;
+
+34 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSEND_INTERVAL
+ = 60000;
+
+36 
+v”siÚ
+(
+ušt8_t
+ 
+addr
+, ušt8_ˆ
+d¡
+);
+
+37 
+unknown
+(
+ušt8_t
+ 
+addr
+, ušt8_ˆ
+d¡
+, ušt8_ˆ
+ty³
+, ušt8_ˆ
+off£t
+);
+
+38 
+‹m³¿tu»
+(
+ušt8_t
+ 
+addr
+, ušt8_ˆ
+d¡
+);
+
+39 
+Çck_wr™e
+();
+
+	@src/sensors.cpp
+
+21 
+	~"£nsÜs.h
+"
+
+22 
+	~"em£¥.h
+"
+
+24 #ifdeà
+ESP32
+
+
+25 
+	#YIELD
+
+
+	)
+
+27 
+	#YIELD
+ 
+	`y›ld
+()
+
+	)
+
+30 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+32 
+	guuid
+::
+log
+::
+Logg”
+ 
+S’sÜs
+::
+logg”_
+{
+F_
+(
+£nsÜs
+), uuid::log::
+Facž™y
+::
+DAEMON
+};
+
+35 
+	gS’sÜs
+::
+¡¬t
+() {
+
+36 
+»lßd
+();
+
+38 #iâdeà
+EMSESP_STANDALONE
+
+
+39 ià(
+	gd®Ïs_gpio_
+) {
+
+40 
+	gbus_
+.
+begš
+(
+d®Ïs_gpio_
+);
+
+46 
+	gS’sÜs
+::
+»lßd
+() {
+
+48 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰S‘tšgsS”viû
+()->
+»ad
+([&](
+Mq‰S‘tšgs
+ & 
+£‰šgs
+) {
+
+49 
+mq‰_fÜm©_
+ = 
+£‰šgs
+.
+mq‰_fÜm©
+;
+
+52 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+53 
+d®Ïs_gpio_
+ = 
+£‰šgs
+.
+d®Ïs_gpio
+;
+
+54 
+·¿s™e_
+ = 
+£‰šgs
+.
+d®Ïs_·¿s™e
+;
+
+57 ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+HA
+) {
+
+58 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gMAX_SENSORS
+; 
+	g»gi¡”ed_ha_
+[i++] = 
+çl£
+)
+
+63 
+	gS’sÜs
+::
+loÝ
+() {
+
+64 #iâdeà
+EMSESP_STANDALONE
+
+
+65 
+ušt32_t
+ 
+time_now
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+67 ià(
+	g¡©e_
+ =ð
+S�‹
+::
+IDLE
+) {
+
+68 ià(
+time_now
+ - 
+Ï¡_aùiv™y_
+ >ð
+READ_INTERVAL_MS
+) {
+
+70 ià(
+bus_
+.
+»£t
+(è|| 
+·¿s™e_
+) {
+
+71 
+YIELD
+;
+
+72 
+	gbus_
+.
+sk�
+();
+
+73 
+	gbus_
+.
+wr™e
+(
+CMD_CONVERT_TEMP
+, 
+·¿s™e_
+ ? 1 : 0);
+
+74 
+	g¡©e_
+ = 
+S�‹
+::
+READING
+;
+
+78 
+	gdeviûs_
+.
+þ—r
+();
+
+80 
+	gÏ¡_aùiv™y_
+ = 
+time_now
+;
+
+82 } ià(
+	g¡©e_
+ =ð
+S�‹
+::
+READING
+) {
+
+83 ià(
+‹m³¿tu»_cÚv”t_com¶‘e
+(è&& (
+time_now
+ - 
+Ï¡_aùiv™y_
+ > 
+CONVERSION_MS
+)) {
+
+85 
+bus_
+.
+»£t_£¬ch
+();
+
+86 
+	gfound_
+.
+þ—r
+();
+
+87 
+	g¡©e_
+ = 
+S�‹
+::
+SCANNING
+;
+
+88 } ià(
+	gtime_now
+ - 
+	gÏ¡_aùiv™y_
+ > 
+	gREAD_TIMEOUT_MS
+) {
+
+89 
+LOG_ERROR
+(
+F
+("Sensor„ead�imeout"));
+
+90 
+	g¡©e_
+ = 
+S�‹
+::
+IDLE
+;
+
+92 } ià(
+	g¡©e_
+ =ð
+S�‹
+::
+SCANNING
+) {
+
+93 ià(
+time_now
+ - 
+Ï¡_aùiv™y_
+ > 
+SCAN_TIMEOUT_MS
+) {
+
+94 
+LOG_ERROR
+(
+F
+("Sensor scan�imeout"));
+
+95 
+	g¡©e_
+ = 
+S�‹
+::
+IDLE
+;
+
+97 
+ušt8_t
+ 
+	gaddr
+[
+ADDR_LEN
+] = {0};
+
+99 ià(
+	gbus_
+.
+£¬ch
+(
+addr
+)) {
+
+100 ià(!
+	g·¿s™e_
+) {
+
+101 
+	gbus_
+.
+d•ow”
+();
+
+103 ià(
+	gbus_
+.
+üc8
+(
+addr
+, 
+ADDR_LEN
+ - 1) ==‡ddr[ADDR_LEN - 1]) {
+
+104 
+addr
+[0]) {
+
+105 
+TYPE_DS18B20
+:
+
+106 
+TYPE_DS18S20
+:
+
+107 
+TYPE_DS1822
+:
+
+108 
+TYPE_DS1825
+:
+
+109 
+f
+;
+
+110 
+	gf
+ = 
+g‘_‹m³¿tu»_c
+(
+addr
+);
+
+111 ià((
+	gf
+ !ð
+NAN
+è&& (
+f
+ >= -55) && (f <= 125)) {
+
+112 
+found_
+.
+em¶aû_back
+(
+addr
+);
+
+113 
+	gfound_
+.
+back
+().
+	g‹m³¿tu»_c
+ = 
+f
+;
+
+126 
+LOG_ERROR
+(
+F
+("UnknowÀ£nsÜ %s"), 
+Deviû
+(
+addr
+).
+to_¡ršg
+().
+c_¡r
+());
+
+130 
+LOG_ERROR
+(
+F
+("Inv®id s’sÜ %s"), 
+Deviû
+(
+addr
+).
+to_¡ršg
+().
+c_¡r
+());
+
+133 ià(!
+	g·¿s™e_
+) {
+
+134 
+	gbus_
+.
+d•ow”
+();
+
+136 ià((
+	gfound_
+.
+size
+(è>ð
+deviûs_
+.size()è|| (
+»Œyút_
+ > 5)) {
+
+137 ià(
+found_
+.
+size
+(è=ð
+deviûs_
+.size()) {
+
+138 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gdeviûs_
+.
+size
+(); i++) {
+
+139 ià(
+	gfound_
+[
+i
+].
+	g‹m³¿tu»_c
+ !ð
+deviûs_
+[i].
+‹m³¿tu»_c
+) {
+
+140 
+chªged_
+ = 
+Œue
+;
+
+144 
+	gchªged_
+ = 
+Œue
+;
+
+146 
+	gdeviûs_
+ = 
+¡d
+::
+move
+(
+found_
+);
+
+147 
+	g»Œyút_
+ = 0;
+
+149 
+	g»Œyút_
+++;
+
+151 
+	gfound_
+.
+þ—r
+();
+
+153 
+	g¡©e_
+ = 
+S�‹
+::
+IDLE
+;
+
+160 
+boÞ
+ 
+	gS’sÜs
+::
+‹m³¿tu»_cÚv”t_com¶‘e
+() {
+
+161 #iâdeà
+EMSESP_STANDALONE
+
+
+162 ià(
+·¿s™e_
+) {
+
+163  
+Œue
+;
+
+165  
+	gbus_
+.
+»ad_b™
+() == 1;
+
+167  
+	gŒue
+;
+
+171 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+172 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+174 
+	gS’sÜs
+::
+g‘_‹m³¿tu»_c
+(cÚ¡ 
+ušt8_t
+ 
+addr
+[]) {
+
+175 #iâdeà
+EMSESP_STANDALONE
+
+
+176 ià(!
+bus_
+.
+»£t
+()) {
+
+177 
+LOG_ERROR
+(
+F
+("Bu »£ˆçžed befÜ�»adšg sü©ch·d from %s"), 
+Deviû
+(
+addr
+).
+to_¡ršg
+().
+c_¡r
+());
+
+178  
+	gNAN
+;
+
+180 
+	gYIELD
+;
+
+181 
+ušt8_t
+ 
+	gsü©ch·d
+[
+SCRATCHPAD_LEN
+] = {0};
+
+182 
+	gbus_
+.
+£Ëù
+(
+addr
+);
+
+183 
+	gbus_
+.
+wr™e
+(
+CMD_READ_SCRATCHPAD
+);
+
+184 
+	gbus_
+.
+»ad_by‹s
+(
+sü©ch·d
+, 
+SCRATCHPAD_LEN
+);
+
+185 
+	gYIELD
+;
+
+186 ià(!
+	gbus_
+.
+»£t
+()) {
+
+187 
+LOG_ERROR
+(
+F
+("Bu »£ˆçžed‡á”„—dšg sü©ch·d from %s"), 
+Deviû
+(
+addr
+).
+to_¡ršg
+().
+c_¡r
+());
+
+188  
+	gNAN
+;
+
+190 
+	gYIELD
+;
+
+191 ià(
+	gbus_
+.
+üc8
+(
+sü©ch·d
+, 
+SCRATCHPAD_LEN
+ - 1) != scratchpad[SCRATCHPAD_LEN - 1]) {
+
+192 
+LOG_WARNING
+(
+F
+("Invalid scratchpad CRC: %02X%02X%02X%02X%02X%02X%02X%02X%02X from device %s"),
+
+193 
+sü©ch·d
+[0],
+
+194 
+sü©ch·d
+[1],
+
+195 
+sü©ch·d
+[2],
+
+196 
+sü©ch·d
+[3],
+
+197 
+sü©ch·d
+[4],
+
+198 
+sü©ch·d
+[5],
+
+199 
+sü©ch·d
+[6],
+
+200 
+sü©ch·d
+[7],
+
+201 
+sü©ch·d
+[8],
+
+202 
+Deviû
+(
+addr
+).
+to_¡ršg
+().
+c_¡r
+());
+
+203  
+	gNAN
+;
+
+206 
+št16_t
+ 
+	g¿w_v®ue
+ = ((št16_t)
+sü©ch·d
+[
+SCRATCHPAD_TEMP_MSB
+] << 8è| sü©ch·d[
+SCRATCHPAD_TEMP_LSB
+];
+
+208 ià(
+	gaddr
+[0] =ð
+TYPE_DS18S20
+) {
+
+209 
+¿w_v®ue
+ = (¿w_v®u�<< 3è+ 12 - 
+sü©ch·d
+[
+SCRATCHPAD_CNT_REM
+];
+
+212 
+	g»sÞutiÚ
+ = 9 + ((
+sü©ch·d
+[
+SCRATCHPAD_CONFIG
+] >> 5) & 0x3);
+
+213 
+	g»sÞutiÚ
+) {
+
+215 
+¿w_v®ue
+ &= ~0x7;
+
+218 
+¿w_v®ue
+ &= ~0x3;
+
+221 
+¿w_v®ue
+ &= ~0x1;
+
+227 
+ušt32_t
+ 
+	g¿w
+ = ((ušt32_t)
+¿w_v®ue
+ * 625 + 500) / 1000;
+
+228  ()
+	g¿w
+ / 10;
+
+230  
+	gNAN
+;
+
+234 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+236 cÚ¡ 
+	g¡d
+::
+veùÜ
+<
+S’sÜs
+::
+Deviû
+> S’sÜs::
+deviûs
+() const {
+
+237  
+deviûs_
+;
+
+240 
+	gS’sÜs
+::
+Deviû
+::Deviû(cÚ¡ 
+ušt8_t
+ 
+addr
+[])
+
+241 : 
+id_
+(((
+ušt64_t
+)
+addr
+[0] << 56) | ((uint64_t)addr[1] << 48) | ((uint64_t)addr[2] << 40) | ((uint64_t)addr[3] << 32) | ((uint64_t)addr[4] << 24)
+
+242 | ((
+ušt64_t
+)
+addr
+[5] << 16) | ((uint64_t)addr[6] << 8) | (uint64_t)addr[7]) {
+
+245 
+ušt64_t
+ 
+S’sÜs
+::
+Deviû
+::
+id
+() const {
+
+246  
+id_
+;
+
+249 
+	g¡d
+::
+¡ršg
+ 
+S’sÜs
+::
+Deviû
+::
+to_¡ršg
+() const {
+
+250 
+¡d
+::
+¡ršg
+ 
+¡r
+(20, '\0');
+
+251 
+¢´štf_P
+(&
+¡r
+[0],
+
+252 
+¡r
+.
+ÿ·c™y
+() + 1,
+
+253 
+PSTR
+("%02X-%04X-%04X-%04X-%02X"),
+
+254 ()(
+id_
+ >> 56) & 0xFF,
+
+255 ()(
+id_
+ >> 40) & 0xFFFF,
+
+256 ()(
+id_
+ >> 24) & 0xFFFF,
+
+257 ()(
+id_
+ >> 8) & 0xFFFF,
+
+258 ()(
+id_
+)&0xFF);
+
+259  
+	g¡r
+;
+
+263 
+boÞ
+ 
+	gS’sÜs
+::
+upd©ed_v®ues
+() {
+
+264 ià(
+chªged_
+) {
+
+265 
+chªged_
+ = 
+çl£
+;
+
+266  
+	gŒue
+;
+
+268  
+	gçl£
+;
+
+273 
+	gS’sÜs
+::
+publish_v®ues
+() {
+
+274 
+ušt8_t
+ 
+num_deviûs
+ = 
+deviûs_
+.
+size
+();
+
+276 ià(
+	gnum_deviûs
+ == 0) {
+
+283 ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+SINGLE
+) {
+
+284 
+S�ticJsÚDocum’t
+<100> 
+doc
+;
+
+285 cÚ¡‡utØ& 
+	gdeviû
+ : 
+deviûs_
+) {
+
+286 
+s
+[7];
+
+287 
+	gdoc
+["‹mp"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+deviû
+.
+‹m³¿tu»_c
+, 1);
+
+288 
+	gtÝic
+[60];
+
+289 
+¡¾ýy
+(
+tÝic
+, "sensor_", 50);
+
+290 
+¡¾ÿt
+(
+tÝic
+, 
+deviû
+.
+to_¡ršg
+().
+c_¡r
+(), 60);
+
+291 
+	gMq‰
+::
+publish
+(
+tÝic
+, 
+doc
+);
+
+292 
+	gdoc
+.
+þ—r
+();
+
+297 
+DyÇmicJsÚDocum’t
+ 
+doc
+(100 * 
+num_deviûs
+);
+
+298 
+ušt8_t
+ 
+	gi
+ = 1;
+
+299 cÚ¡‡utØ& 
+	gdeviû
+ : 
+deviûs_
+) {
+
+300 
+s
+[7];
+
+302 ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+CUSTOM
+) {
+
+304 
+doc
+[
+deviû
+.
+to_¡ršg
+()] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, deviû.
+‹m³¿tu»_c
+, 1);
+
+305 } ià((
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+NESTED
+è|| (
+mq‰_fÜm©_
+ =ðMQTT_fÜm©::
+HA
+)) {
+
+307 
+£nsÜID
+[10];
+
+308 
+¡¾ýy
+(
+£nsÜID
+, "sensor", 10);
+
+309 
+¡¾ÿt
+(
+£nsÜID
+, 
+H–³rs
+::
+™ß
+(
+s
+, 
+i
+), 10);
+
+310 
+JsÚObjeù
+ 
+	gd©aS’sÜ
+ = 
+doc
+.
+ü—‹Ne¡edObjeù
+(
+£nsÜID
+);
+
+311 
+	gd©aS’sÜ
+["id"] = 
+deviû
+.
+to_¡ršg
+();
+
+312 
+	gd©aS’sÜ
+["‹mp"] = 
+H–³rs
+::
+»nd”_v®ue
+(
+s
+, 
+deviû
+.
+‹m³¿tu»_c
+, 1);
+
+316 ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+HA
+) {
+
+317 
+¡d
+::
+¡ršg
+ 
+tÝic
+(100, '\0');
+
+330 ià(!(
+	g»gi¡”ed_ha_
+[
+i
+])) {
+
+331 
+	gS�ticJsÚDocum’t
+<
+	gEMSESP_MAX_JSON_SIZE_MEDIUM
+> 
+	gcÚfig
+;
+
+332 
+	gcÚfig
+["dev_cla"] = "temperature";
+
+333 
+	gcÚfig
+["stat_t"] = "homeassistant/sensor/ems-esp/state";
+
+334 
+	gcÚfig
+["unit_of_meas"] = "Â°C";
+
+336 
+	g¡d
+::
+¡ršg
+ 
+¡r
+(50, '\0');
+
+337 
+¢´štf_P
+(&
+¡r
+[0], 50, 
+PSTR
+("{{v®ue_jsÚ.£nsÜ%d.‹mp}}"), 
+i
+);
+
+338 
+	gcÚfig
+["v®_�l"] = 
+¡r
+;
+
+340 
+¢´štf_P
+(&
+¡r
+[0], 50, 
+PSTR
+("ems-e¥-£nsÜ%d"), 
+i
+);
+
+341 
+	gcÚfig
+["Çme"] = 
+¡r
+;
+
+342 
+	gcÚfig
+["uniq_id"] = 
+¡r
+;
+
+344 
+¢´štf_P
+(&
+tÝic
+[0], 50, 
+PSTR
+("hom—ssi¡ªt/£nsÜ/ems-e¥/£nsÜ%d/cÚfig"), 
+i
+);
+
+345 
+	gMq‰
+::
+publish
+(
+tÝic
+, 
+cÚfig
+, 
+çl£
+);
+
+347 
+	g»gi¡”ed_ha_
+[
+i
+] = 
+Œue
+;
+
+350 
+	gi
+++;
+
+353 ià((
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+NESTED
+è|| (
+mq‰_fÜm©_
+ =ðMQTT_fÜm©::
+CUSTOM
+)) {
+
+354 
+Mq‰
+::
+publish
+(
+F
+("£nsÜs"), 
+doc
+);
+
+355 } ià(
+	gmq‰_fÜm©_
+ =ð
+MQTT_fÜm©
+::
+HA
+) {
+
+356 
+Mq‰
+::
+publish
+(
+F
+("hom—ssi¡ªt/£nsÜ/ems-e¥/¡©e"), 
+doc
+);
+
+	@src/sensors.h
+
+21 #iâdeà
+EMSESP_SENSORS_H
+
+
+22 
+	#EMSESP_SENSORS_H
+
+
+	)
+
+24 
+	~<¡ršg
+>
+
+25 
+	~<veùÜ
+>
+
+27 
+	~"h–³rs.h
+"
+
+28 
+	~"mq‰.h
+"
+
+29 
+	~"cÚsÞe.h
+"
+
+31 
+	~<uuid/log.h
+>
+
+33 #iâdeà
+EMSESP_STANDALONE
+
+
+34 
+	~<OÃWœe.h
+>
+
+37 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+39 þas 
+	cS’sÜs
+ {
+
+40 
+	gpublic
+:
+
+41 þas 
+	cDeviû
+ {
+
+42 
+public
+:
+
+43 
+Deviû
+(cÚ¡ 
+ušt8_t
+ 
+addr
+[]);
+
+44 ~
+Deviû
+() = ;
+
+46 
+ušt64_t
+ 
+id
+() const;
+
+47 
+	g¡d
+::
+¡ršg
+ 
+to_¡ršg
+() const;
+
+49 
+	g‹m³¿tu»_c
+ = 
+NAN
+;
+
+51 
+	g´iv©e
+:
+
+52 cÚ¡ 
+ušt64_t
+ 
+id_
+;
+
+53 
+boÞ
+ 
+	g»gi¡”ed_
+ = 
+çl£
+;
+
+56 
+S’sÜs
+() = ;
+
+57 ~
+S’sÜs
+() = ;
+
+59 
+¡¬t
+();
+
+60 
+loÝ
+();
+
+61 
+publish_v®ues
+();
+
+62 
+»lßd
+();
+
+63 
+boÞ
+ 
+upd©ed_v®ues
+();
+
+65 cÚ¡ 
+	g¡d
+::
+veùÜ
+<
+Deviû
+> 
+deviûs
+() const;
+
+67 
+	g´iv©e
+:
+
+68 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+MAX_SENSORS
+ = 20;
+
+70 þas 
+	cS�‹
+ { 
+	gIDLE
+, 
+	gREADING
+, 
+	gSCANNING
+ };
+
+72 
+cÚ¡ex´
+ 
+size_t
+ 
+	gADDR_LEN
+ = 8;
+
+74 
+cÚ¡ex´
+ 
+size_t
+ 
+	gSCRATCHPAD_LEN
+ = 9;
+
+75 
+cÚ¡ex´
+ 
+size_t
+ 
+	gSCRATCHPAD_TEMP_MSB
+ = 1;
+
+76 
+cÚ¡ex´
+ 
+size_t
+ 
+	gSCRATCHPAD_TEMP_LSB
+ = 0;
+
+77 
+cÚ¡ex´
+ 
+size_t
+ 
+	gSCRATCHPAD_CONFIG
+ = 4;
+
+78 
+cÚ¡ex´
+ 
+size_t
+ 
+	gSCRATCHPAD_CNT_REM
+ = 6;
+
+81 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gTYPE_DS18B20
+ = 0x28;
+
+82 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gTYPE_DS18S20
+ = 0x10;
+
+83 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gTYPE_DS1822
+ = 0x22;
+
+84 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gTYPE_DS1825
+ = 0x3B;
+
+86 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gREAD_INTERVAL_MS
+ = 5000;
+
+87 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gCONVERSION_MS
+ = 1000;
+
+88 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gREAD_TIMEOUT_MS
+ = 2000;
+
+89 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSCAN_TIMEOUT_MS
+ = 3000;
+
+91 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gCMD_CONVERT_TEMP
+ = 0x44;
+
+92 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gCMD_READ_SCRATCHPAD
+ = 0xBE;
+
+94 
+	guuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+96 #iâdeà
+EMSESP_STANDALONE
+
+
+97 
+OÃWœe
+ 
+	gbus_
+;
+
+100 
+boÞ
+ 
+‹m³¿tu»_cÚv”t_com¶‘e
+();
+
+101 
+g‘_‹m³¿tu»_c
+(cÚ¡ 
+ušt8_t
+ 
+addr
+[]);
+
+103 
+ušt32_t
+ 
+	gÏ¡_aùiv™y_
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+104 
+ušt32_t
+ 
+	gÏ¡_publish_
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+105 
+S�‹
+ 
+	g¡©e_
+ = S�‹::
+IDLE
+;
+
+106 
+	g¡d
+::
+veùÜ
+<
+Deviû
+> 
+found_
+;
+
+107 
+	g¡d
+::
+veùÜ
+<
+Deviû
+> 
+deviûs_
+;
+
+109 
+boÞ
+ 
+	g»gi¡”ed_ha_
+[
+MAX_SENSORS
+];
+
+111 
+ušt8_t
+ 
+	gmq‰_fÜm©_
+;
+
+112 
+ušt8_t
+ 
+	g»Œyút_
+ = 0;
+
+113 
+ušt8_t
+ 
+	gd®Ïs_gpio_
+ = 0;
+
+114 
+boÞ
+ 
+	g·¿s™e_
+ = 
+çl£
+;
+
+115 
+boÞ
+ 
+	gchªged_
+ = 
+çl£
+;
+
+	@src/shower.cpp
+
+19 
+	~"show”.h
+"
+
+21 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+23 
+	guuid
+::
+log
+::
+Logg”
+ 
+Show”
+::
+logg”_
+{
+F_
+(
+show”
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+25 
+	gShow”
+::
+¡¬t
+() {
+
+26 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+27 
+show”_tim”_
+ = 
+£‰šgs
+.
+show”_tim”
+;
+
+28 
+show”_®”t_
+ = 
+£‰šgs
+.
+show”_®”t
+;
+
+32 
+	gShow”
+::
+loÝ
+() {
+
+33 ià(!
+show”_tim”_
+) {
+
+37 
+ušt32_t
+ 
+	gtime_now
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+40 ià(!
+	gdošg_cÞd_shÙ_
+) {
+
+42 ià(
+	gEMSESP
+::
+�p_w©”_aùive
+()) {
+
+44 ià(
+tim”_¡¬t_
+ == 0) {
+
+46 
+tim”_¡¬t_
+ = 
+time_now
+;
+
+47 
+	gtim”_·u£_
+ = 0;
+
+48 
+	gdošg_cÞd_shÙ_
+ = 
+çl£
+;
+
+49 
+	gdu¿tiÚ_
+ = 0;
+
+50 
+	gshow”_Ú_
+ = 
+çl£
+;
+
+54 ià(!
+	gshow”_Ú_
+ && (
+	gtime_now
+ - 
+	gtim”_¡¬t_
+è> 
+	gSHOWER_MIN_DURATION
+) {
+
+55 
+	gshow”_Ú_
+ = 
+Œue
+;
+
+56 
+	gMq‰
+::
+publish
+(
+F
+("show”_aùive"), (
+boÞ
+)
+Œue
+);
+
+57 
+LOG_DEBUG
+(
+F
+("[Shower] hot water still„unning, starting shower�imer"));
+
+60 ià((((
+	gtime_now
+ - 
+	gtim”_¡¬t_
+è> 
+	gSHOWER_MAX_DURATION
+è&& !
+	gdošg_cÞd_shÙ_
+è&& 
+	gshow”_®”t_
+) {
+
+61 
+show”_®”t_¡¬t
+();
+
+66 ià((
+	gtim”_¡¬t_
+è&& (
+	gtim”_·u£_
+ == 0)) {
+
+67 
+tim”_·u£_
+ = 
+time_now
+;
+
+71 ià((
+	gtim”_·u£_
+è&& ((
+	gtime_now
+ -�im”_·u£_è> 
+	gSHOWER_PAUSE_TIME
+)) {
+
+74 ià((
+	gtim”_·u£_
+ - 
+	gtim”_¡¬t_
+è> 
+	gSHOWER_OFFSET_TIME
+) {
+
+75 
+	gdu¿tiÚ_
+ = (
+tim”_·u£_
+ - 
+tim”_¡¬t_
+ - 
+SHOWER_OFFSET_TIME
+);
+
+76 ià(
+	gdu¿tiÚ_
+ > 
+	gSHOWER_MIN_DURATION
+) {
+
+77 
+	gMq‰
+::
+publish
+(
+F
+("show”_aùive"), (
+boÞ
+)
+çl£
+);
+
+78 
+LOG_DEBUG
+(
+F
+("[Show”] fšished w™h du¿tiÚ %d"), 
+du¿tiÚ_
+);
+
+79 
+publish_v®ues
+();
+
+84 
+	gtim”_¡¬t_
+ = 0;
+
+85 
+	gtim”_·u£_
+ = 0;
+
+86 
+	gshow”_Ú_
+ = 
+çl£
+;
+
+87 
+show”_®”t_¡Ý
+();
+
+94 
+	gShow”
+::
+show”_®”t_¡Ý
+() {
+
+95 ià(
+došg_cÞd_shÙ_
+) {
+
+96 
+LOG_DEBUG
+(
+F
+("Shower Alert stopped"));
+
+98 
+	gdošg_cÞd_shÙ_
+ = 
+çl£
+;
+
+104 
+	gShow”
+::
+show”_®”t_¡¬t
+() {
+
+105 ià(
+show”_®”t_
+) {
+
+106 
+LOG_DEBUG
+(
+F
+("Shower Alert started!"));
+
+108 
+	gdošg_cÞd_shÙ_
+ = 
+Œue
+;
+
+116 
+	gShow”
+::
+publish_v®ues
+() {
+
+117 
+S�ticJsÚDocum’t
+<90> 
+doc
+;
+
+118 
+	gdoc
+["show”_tim”"] = 
+show”_tim”_
+ ? "1" : "0";
+
+119 
+	gdoc
+["show”_®”t"] = 
+show”_®”t_
+ ? "1" : "0";
+
+122 
+	gs
+[50];
+
+123 ià(
+	gdu¿tiÚ_
+ > 
+	gSHOWER_MIN_DURATION
+) {
+
+124 
+	gbufãr
+[16] = {0};
+
+125 
+¡¾ýy
+(
+s
+, 
+H–³rs
+::
+™ß
+(
+bufãr
+, (
+ušt8_t
+)((
+du¿tiÚ_
+ / (1000 * 60)) % 60), 10), 50);
+
+126 
+¡¾ÿt
+(
+s
+, " minutes‡nd ", 50);
+
+127 
+¡¾ÿt
+(
+s
+, 
+H–³rs
+::
+™ß
+(
+bufãr
+, (
+ušt8_t
+)((
+du¿tiÚ_
+ / 1000) % 60), 10), 50);
+
+128 
+¡¾ÿt
+(
+s
+, " seconds", 50);
+
+129 
+	gdoc
+["du¿tiÚ"] = 
+s
+;
+
+132 
+	gMq‰
+::
+publish
+(
+F
+("show”_d©a"), 
+doc
+);
+
+	@src/shower.h
+
+19 #iâdeà
+EMSESP_SHOWER_H
+
+
+20 
+	#EMSESP_SHOWER_H
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~"h–³rs.h
+"
+
+26 
+	~"cÚsÞe.h
+"
+
+27 
+	~"mq‰.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+29 
+	~"em£¥.h
+"
+
+31 
+	~<uuid/log.h
+>
+
+33 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+35 þas 
+	cShow”
+ {
+
+36 
+	gpublic
+:
+
+37 
+¡¬t
+();
+
+38 
+loÝ
+();
+
+40 
+boÞ
+ 
+show”_®”t
+() const {
+
+41  
+	gshow”_®”t_
+;
+
+44 
+show”_®”t
+(cÚ¡ 
+boÞ
+ shower_alert) {
+
+45 
+	gshow”_®”t_
+ = 
+show”_®”t
+;
+
+48 
+boÞ
+ 
+show”_tim”
+() const {
+
+49  
+	gshow”_tim”_
+;
+
+52 
+show”_tim”
+(cÚ¡ 
+boÞ
+ shower_timer) {
+
+53 
+	gshow”_tim”_
+ = 
+show”_tim”
+;
+
+56 
+	g´iv©e
+:
+
+57 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+59 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSHOWER_PAUSE_TIME
+ = 15000;
+
+60 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSHOWER_MIN_DURATION
+ = 120000;
+
+61 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSHOWER_OFFSET_TIME
+ = 5000;
+
+62 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSHOWER_COLDSHOT_DURATION
+ = 10;
+
+63 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSHOWER_MAX_DURATION
+ = 420000;
+
+65 
+cÚsÞe_commªds
+();
+
+67 
+publish_v®ues
+();
+
+68 
+show”_®”t_¡¬t
+();
+
+69 
+show”_®”t_¡Ý
+();
+
+71 
+boÞ
+ 
+	gshow”_tim”_
+;
+
+72 
+boÞ
+ 
+	gshow”_®”t_
+;
+
+74 
+boÞ
+ 
+	gshow”_Ú_
+;
+
+75 
+ušt32_t
+ 
+	gtim”_¡¬t_
+;
+
+76 
+ušt32_t
+ 
+	gtim”_·u£_
+;
+
+77 
+ušt32_t
+ 
+	gdu¿tiÚ_
+;
+
+78 
+boÞ
+ 
+	gdošg_cÞd_shÙ_
+;
+
+	@src/system.cpp
+
+19 
+	~"sy¡em.h
+"
+
+20 
+	~"em£¥.h
+"
+
+22 
+	~"v”siÚ.h
+"
+
+24 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+26 
+	guuid
+::
+log
+::
+Logg”
+ 
+Sy¡em
+::
+logg”_
+{
+F_
+(
+sy¡em
+), uuid::log::
+Facž™y
+::
+KERN
+};
+
+28 #iâdeà
+EMSESP_STANDALONE
+
+
+29 
+	guuid
+::
+sy¦og
+::
+Sy¦ogS”viû
+ 
+Sy¡em
+::
+sy¦og_
+;
+
+33 
+ušt32_t
+ 
+	gSy¡em
+::
+h—p_¡¬t_
+ = 0;
+
+34 
+	gSy¡em
+::
+»£t_couÁ”_
+ = 0;
+
+35 
+boÞ
+ 
+	gSy¡em
+::
+u¶ßd_¡©us_
+ = 
+çl£
+;
+
+36 
+boÞ
+ 
+	gSy¡em
+::
+hide_Ëd_
+ = 
+çl£
+;
+
+37 
+ušt8_t
+ 
+	gSy¡em
+::
+Ëd_gpio_
+ = 0;
+
+38 
+ušt16_t
+ 
+	gSy¡em
+::
+ª®og_
+ = 0;
+
+42 
+	gSy¡em
+::
+mq‰_commªd_pš
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+43 
+boÞ
+ 
+	gv
+ = 
+çl£
+;
+
+44 ià(
+	gH–³rs
+::
+v®ue2boÞ
+(
+v®ue
+, 
+v
+)) {
+
+45 
+pšMode
+(
+id
+, 
+OUTPUT
+);
+
+46 
+dig™®Wr™e
+(
+id
+, 
+v
+);
+
+47 
+LOG_INFO
+(
+F
+("GPIO %d s‘�Ø%s"), 
+id
+, 
+v
+ ? "HIGH" : "LOW");
+
+52 
+	gSy¡em
+::
+mq‰_commªd_£nd
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+) {
+
+53 
+	gEMSESP
+::
+£nd_¿w_‹Ëg¿m
+(
+v®ue
+);
+
+57 
+	gSy¡em
+::
+»¡¬t
+() {
+
+58 
+LOG_NOTICE
+("Restarting system...");
+
+59 
+	gSh–l
+::
+loÝ_®l
+();
+
+60 
+d–ay
+(1000);
+
+61 #ià
+defšed
+(
+ESP8266
+)
+
+62 
+	gESP
+.
+»£t
+();
+
+63 #–ià
+defšed
+(
+ESP32
+)
+
+64 
+	gESP
+.
+»¡¬t
+();
+
+69 
+	gSy¡em
+::
+wifi_»cÚÃù
+() {
+
+70 
+LOG_NOTICE
+("The wifi will„econnect...");
+
+71 
+	gSh–l
+::
+loÝ_®l
+();
+
+72 
+d–ay
+(1000);
+
+73 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+§ve
+();
+
+74 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+ÿÎUpd©eHªdËrs
+("local");
+
+79 
+	gSy¡em
+::
+fÜm©
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+80 autØ
+msg
+ = 
+F
+("Formatting file system. This will„eset‡ll settings�o�heir defaults");
+
+81 
+	gsh–l
+.
+logg”
+().
+w¬nšg
+(
+msg
+);
+
+82 
+	gsh–l
+.
+æush
+();
+
+84 
+	gEMSu¬t
+::
+¡Ý
+();
+
+86 #ià
+defšed
+(
+ESP8266
+)
+
+87 
+	gL™ŽeFS
+.
+fÜm©
+();
+
+88 #–ià
+defšed
+(
+ESP32
+)
+
+89 
+	gSPIFFS
+.
+fÜm©
+();
+
+92 
+	gSy¡em
+::
+»¡¬t
+();
+
+96 
+ušt8_t
+ 
+	gSy¡em
+::
+ä“_mem
+() {
+
+97 #iâdeà
+EMSESP_STANDALONE
+
+
+98 
+ušt32_t
+ 
+ä“_memÜy
+ = 
+ESP
+.
+g‘F»eH—p
+();
+
+100 
+ušt32_t
+ 
+	gä“_memÜy
+ = 1000;
+
+103  (100 * 
+	gä“_memÜy
+ / 
+	gh—p_¡¬t_
+);
+
+106 
+	gSy¡em
+::
+sy¦og_š™
+() {
+
+108 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+109 
+sy¦og_Ëv–_
+ = 
+£‰šgs
+.
+sy¦og_Ëv–
+;
+
+110 
+sy¦og_m¬k_š‹rv®_
+ = 
+£‰šgs
+.
+sy¦og_m¬k_š‹rv®
+;
+
+111 
+sy¦og_ho¡_
+ = 
+£‰šgs
+.
+sy¦og_ho¡
+;
+
+114 #iâdeà
+EMSESP_STANDALONE
+
+
+115 
+	gsy¦og_
+.
+¡¬t
+();
+
+118 
+IPAdd»ss
+ 
+	gaddr
+;
+
+119 ià(!
+	gaddr
+.
+äomSŒšg
+(
+sy¦og_ho¡_
+.
+c_¡r
+())) {
+
+120 
+	gaddr
+ = (
+ušt32_t
+)0;
+
+122 
+	gsy¦og_
+.
+log_Ëv–
+((
+uuid
+::
+log
+::
+Lev–
+)
+sy¦og_Ëv–_
+);
+
+123 
+	gsy¦og_
+.
+m¬k_š‹rv®
+(
+sy¦og_m¬k_š‹rv®_
+);
+
+124 
+	gsy¦og_
+.
+de¡š©iÚ
+(
+addr
+);
+
+125 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+»ad
+([&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+è{ 
+sy¦og_
+.
+ho¡Çme
+(wifiS‘tšgs.ho¡Çme.
+c_¡r
+()); });
+
+129 
+	gSy¡em
+::
+£t_h—¹b—t
+(
+boÞ
+ 
+sy¡em_h—¹b—t
+) {
+
+130 
+sy¡em_h—¹b—t_
+ = 
+sy¡em_h—¹b—t
+;
+
+134 
+	gSy¡em
+::
+¡¬t
+() {
+
+136 ià(
+h—p_¡¬t_
+ == 0) {
+
+137 #iâdeà
+EMSESP_STANDALONE
+
+
+138 
+h—p_¡¬t_
+ = 
+ESP
+.
+g‘F»eH—p
+();
+
+140 
+	gh—p_¡¬t_
+ = 2000;
+
+145 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰S‘tšgsS”viû
+()->
+»ad
+([&](
+Mq‰S‘tšgs
+ & 
+£‰šgs
+è{ 
+sy¡em_h—¹b—t_
+ = s‘tšgs.
+sy¡em_h—¹b—t
+; });
+
+148 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+»ad
+(
+
+149 [&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+è{ 
+LOG_INFO
+(
+F
+("Sy¡em % boÙed (EMS-ESP v”siÚ %s)"), wifiS‘tšgs.
+ho¡Çme
+.
+c_¡r
+(), 
+EMSESP_APP_VERSION
+); });
+
+151 
+sy¦og_š™
+();
+
+152 
+£t_Ëd
+();
+
+153 
+	gEMSESP
+::
+š™_tx
+();
+
+157 
+	gSy¡em
+::
+£t_Ëd
+() {
+
+158 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+159 
+hide_Ëd_
+ = 
+£‰šgs
+.
+hide_Ëd
+;
+
+160 
+Ëd_gpio_
+ = 
+£‰šgs
+.
+Ëd_gpio
+;
+
+161 ià(
+Ëd_gpio_
+) {
+
+162 
+pšMode
+(
+Ëd_gpio_
+, 
+OUTPUT
+);
+
+163 
+dig™®Wr™e
+(
+Ëd_gpio_
+, 
+hide_Ëd_
+ ? !
+LED_ON
+ : LED_ON);
+
+169 
+boÞ
+ 
+	gSy¡em
+::
+u¶ßd_¡©us
+() {
+
+170 #ià
+defšed
+(
+EMSESP_STANDALONE
+)
+
+171  
+çl£
+;
+
+173  
+	gu¶ßd_¡©us_
+ || 
+	gUpd©e
+.
+isRuÂšg
+();
+
+177 
+	gSy¡em
+::
+u¶ßd_¡©us
+(
+boÞ
+ 
+š_´og»ss
+) {
+
+179 ià((!
+u¶ßd_¡©us_
+è&& (
+š_´og»ss
+)) {
+
+180 
+EMSu¬t
+::
+¡Ý
+();
+
+182 
+	gu¶ßd_¡©us_
+ = 
+š_´og»ss
+;
+
+186 
+	gSy¡em
+::
+loÝ
+() {
+
+187 #iâdeà
+EMSESP_STANDALONE
+
+
+188 
+sy¦og_
+.
+loÝ
+();
+
+190 
+Ëd_mÚ™Ü
+();
+
+191 
+sy¡em_check
+();
+
+192 
+m—su»_ª®og
+();
+
+195 
+ušt32_t
+ 
+	gcu¼’tMžlis
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+196 ià(!
+	gÏ¡_h—¹b—t_
+ || (
+	gcu¼’tMžlis
+ -†a¡_h—¹b—t_ > 
+	gSYSTEM_HEARTBEAT_INTERVAL
+)) {
+
+197 
+	gÏ¡_h—¹b—t_
+ = 
+cu¼’tMžlis
+;
+
+198 ià(
+	gsy¡em_h—¹b—t_
+) {
+
+199 
+£nd_h—¹b—t
+();
+
+203 #ià
+defšed
+(
+ESP8266
+)
+
+204 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+205 
+ušt32_t
+ 
+	gÏ¡_memcheck_
+ = 0;
+
+206 ià(
+	gcu¼’tMžlis
+ - 
+	gÏ¡_memcheck_
+ > 10000) {
+
+207 
+	gÏ¡_memcheck_
+ = 
+cu¼’tMžlis
+;
+
+208 
+show_mem
+("core");
+
+214 
+	gSy¡em
+::
+show_mem
+(cÚ¡ * 
+nÙe
+) {
+
+215 #ià
+defšed
+(
+ESP8266
+)
+
+216 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+217 
+LOG_INFO
+(
+F
+("(%sèF»�h—p: %d%% (%lu), f¿g:%u%%"), 
+nÙe
+, 
+ä“_mem
+(), ()
+ESP
+.
+g‘F»eH—p
+(), ESP.
+g‘H—pF¿gm’�tiÚ
+());
+
+223 
+	gSy¡em
+::
+£nd_h—¹b—t
+() {
+
+225 
+rssid
+ = 
+wifi_qu®™y
+();
+
+226 ià(
+	grssid
+ == -1) {
+
+230 
+	gS�ticJsÚDocum’t
+<
+	gEMSESP_MAX_JSON_SIZE_SMALL
+> 
+	gdoc
+;
+
+231 
+	gdoc
+["rssid"] = 
+rssid
+;
+
+232 
+	gdoc
+["u±ime"] = 
+uuid
+::
+log
+::
+fÜm©_time¡amp_ms
+(uuid::
+g‘_u±ime_ms
+(), 3);
+
+233 
+	gdoc
+["u±ime_£c"] = 
+uuid
+::
+g‘_u±ime_£c
+();
+
+234 
+	gdoc
+["ä“mem"] = 
+ä“_mem
+();
+
+235 
+	gdoc
+["mq‰publishçžs"] = 
+Mq‰
+::
+publish_çžs
+();
+
+236 
+	gdoc
+["txçžs"] = 
+EMSESP
+::
+tx£rviû_
+.
+‹Ëg¿m_çž_couÁ
+();
+
+237 
+	gdoc
+["rxçžs"] = 
+EMSESP
+::
+rx£rviû_
+.
+‹Ëg¿m_”rÜ_couÁ
+();
+
+238 
+	gdoc
+["adc"] = 
+ª®og_
+;
+
+240 
+	gMq‰
+::
+publish
+(
+F
+("h—¹b—t"), 
+doc
+, 
+çl£
+);
+
+244 
+	gSy¡em
+::
+m—su»_ª®og
+() {
+
+245 
+ušt32_t
+ 
+m—su»_Ï¡_
+ = 0;
+
+247 ià(!
+	gm—su»_Ï¡_
+ || (
+	gušt32_t
+)(
+	guuid
+::
+g‘_u±ime
+(è- 
+m—su»_Ï¡_
+è>ð
+SYSTEM_MEASURE_ANALOG_INTERVAL
+) {
+
+248 
+m—su»_Ï¡_
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+249 #ià
+defšed
+(
+ESP8266
+)
+
+250 
+ušt16_t
+ 
+	ga
+ = 
+ª®ogR—d
+(
+A0
+);
+
+251 #–ià
+defšed
+(
+ESP32
+)
+
+252 
+ušt16_t
+ 
+	ga
+ = 
+ª®ogR—d
+(36);
+
+254 
+ušt16_t
+ 
+	ga
+ = 0;
+
+256 
+ušt32_t
+ 
+	gsum_
+ = 0;
+
+258 ià(!
+	gª®og_
+) {
+
+259 
+	gª®og_
+ = 
+a
+;
+
+260 
+	gsum_
+ = 
+a
+ * 256;
+
+262 
+	gsum_
+ = 
+sum_
+ * 255 / 256 + 
+a
+;
+
+263 
+	gª®og_
+ = 
+sum_
+ / 256;
+
+269 
+	gSy¡em
+::
+£t_Ëd_¥“d
+(
+ušt32_t
+ 
+¥“d
+) {
+
+270 
+Ëd_æash_¥“d_
+ = 
+¥“d
+;
+
+271 
+Ëd_mÚ™Ü
+();
+
+275 
+	gSy¡em
+::
+sy¡em_check
+() {
+
+276 
+ušt32_t
+ 
+Ï¡_sy¡em_check_
+ = 0;
+
+278 ià(!
+	gÏ¡_sy¡em_check_
+ || ((
+	gušt32_t
+)(
+	guuid
+::
+g‘_u±ime
+(è- 
+Ï¡_sy¡em_check_
+è>ð
+SYSTEM_CHECK_FREQUENCY
+)) {
+
+279 
+Ï¡_sy¡em_check_
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+281 #iâdeà
+EMSESP_STANDALONE
+
+
+282 ià(
+	gWiFi
+.
+¡©us
+(è!ð
+WL_CONNECTED
+) {
+
+283 
+£t_Ëd_¥“d
+(
+LED_WARNING_BLINK_FAST
+);
+
+284 
+	gsy¡em_h—Éhy_
+ = 
+çl£
+;
+
+290 ià(!
+	gEMSbus
+::
+bus_cÚÃùed
+()) {
+
+291 
+sy¡em_h—Éhy_
+ = 
+çl£
+;
+
+292 
+£t_Ëd_¥“d
+(
+LED_WARNING_BLINK
+);
+
+296 ià(!
+	gsy¡em_h—Éhy_
+) {
+
+297 
+	gsy¡em_h—Éhy_
+ = 
+Œue
+;
+
+298 ià(
+	gËd_gpio_
+) {
+
+299 
+dig™®Wr™e
+(
+Ëd_gpio_
+, 
+hide_Ëd_
+ ? !
+LED_ON
+ : LED_ON);
+
+307 
+	gSy¡em
+::
+Ëd_mÚ™Ü
+() {
+
+308 ià(!
+Ëd_gpio_
+) {
+
+312 
+ušt32_t
+ 
+	gËd_Ï¡_blšk_
+ = 0;
+
+314 ià(!
+	gËd_Ï¡_blšk_
+ || (
+	gušt32_t
+)(
+	guuid
+::
+g‘_u±ime
+(è- 
+Ëd_Ï¡_blšk_
+è>ð
+Ëd_æash_¥“d_
+) {
+
+315 
+Ëd_Ï¡_blšk_
+ = 
+uuid
+::
+g‘_u±ime
+();
+
+318 ià(!
+	gsy¡em_h—Éhy_
+) {
+
+319 
+dig™®Wr™e
+(
+Ëd_gpio_
+, !
+dig™®R—d
+(led_gpio_));
+
+329 
+št8_t
+ 
+	gSy¡em
+::
+wifi_qu®™y
+() {
+
+330 #iâdeà
+EMSESP_STANDALONE
+
+
+331 ià(
+WiFi
+.
+¡©us
+(è!ð
+WL_CONNECTED
+) {
+
+334 
+	gdBm
+ = 
+WiFi
+.
+RSSI
+();
+
+336 
+št8_t
+ 
+	gdBm
+ = -70;
+
+338 ià(
+	gdBm
+ <= -100) {
+
+341 ià(
+	gdBm
+ >= -50) {
+
+344  2 * (
+	gdBm
+ + 100);
+
+348 
+	gSy¡em
+::
+show_u£rs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+349 
+sh–l
+.
+´štæn
+(
+F
+("Users:"));
+
+351 #iâdeà
+EMSESP_STANDALONE
+
+
+352 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yS‘tšgsS”viû
+()->
+»ad
+([&](
+Secur™yS‘tšgs
+ & 
+£cur™yS‘tšgs
+) {
+
+353 
+U£r
+ 
+u£r
+ : 
+£cur™yS‘tšgs
+.
+u£rs
+) {
+
+354 
+sh–l
+.
+´štæn
+(
+F
+(" u£ºame: %s,…asswÜd: %s, is_admš: %s"), 
+u£r
+.
+u£ºame
+.
+c_¡r
+(), u£r.
+·sswÜd
+.c_¡r(), u£r.
+admš
+ ? F("yes") : F("no"));
+
+359 
+	gsh–l
+.
+´šŽn
+();
+
+362 
+	gSy¡em
+::
+show_sy¡em
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+) {
+
+363 
+sh–l
+.
+´štæn
+(
+F
+("U±ime: %s"), 
+uuid
+::
+log
+::
+fÜm©_time¡amp_ms
+(uuid::
+g‘_u±ime_ms
+(), 3).
+c_¡r
+());
+
+365 #iâdeà
+EMSESP_STANDALONE
+
+
+366 #ià
+defšed
+(
+ESP8266
+)
+
+367 
+	gsh–l
+.
+´štæn
+(
+F
+("Ch� ID: 0x%08x"), 
+ESP
+.
+g‘Ch�Id
+());
+
+368 
+	gsh–l
+.
+´štæn
+(
+F
+("SDK v”siÚ: %s"), 
+ESP
+.
+g‘SdkV”siÚ
+());
+
+369 
+	gsh–l
+.
+´štæn
+(
+F
+("CÜ�v”siÚ: %s"), 
+ESP
+.
+g‘CÜeV”siÚ
+().
+c_¡r
+());
+
+370 
+	gsh–l
+.
+´štæn
+(
+F
+("FuÎ v”siÚ: %s"), 
+ESP
+.
+g‘FuÎV”siÚ
+().
+c_¡r
+());
+
+371 
+	gsh–l
+.
+´štæn
+(
+F
+("BoÙ v”siÚ: %u"), 
+ESP
+.
+g‘BoÙV”siÚ
+());
+
+372 
+	gsh–l
+.
+´štæn
+(
+F
+("BoÙ mode: %u"), 
+ESP
+.
+g‘BoÙMode
+());
+
+373 
+	gsh–l
+.
+´štæn
+(
+F
+("CPU f»qu’cy: %u MHz"), 
+ESP
+.
+g‘CpuF»qMHz
+());
+
+374 
+	gsh–l
+.
+´štæn
+(
+F
+("FÏsh ch�: 0x%08X (%u by‹s)"), 
+ESP
+.
+g‘FÏshCh�Id
+(), ESP.
+g‘FÏshCh�R—lSize
+());
+
+375 
+	gsh–l
+.
+´štæn
+(
+F
+("Re£ˆ»asÚ: %s"), 
+ESP
+.
+g‘Re£tR—sÚ
+().
+c_¡r
+());
+
+376 
+	gsh–l
+.
+´štæn
+(
+F
+("Re£ˆšfo: %s"), 
+ESP
+.
+g‘Re£tInfo
+().
+c_¡r
+());
+
+377 
+	gsh–l
+.
+´štæn
+(
+F
+("F»�h—p: %lu by‹s"), ()
+ESP
+.
+g‘F»eH—p
+());
+
+378 
+	gsh–l
+.
+´štæn
+(
+F
+("F»�mem: %d %%"), 
+ä“_mem
+());
+
+379 
+	gsh–l
+.
+´štæn
+(
+F
+("Maximum f»�block size: %lu by‹s"), ()
+ESP
+.
+g‘MaxF»eBlockSize
+());
+
+380 
+	gsh–l
+.
+´štæn
+(
+F
+("H—°äagm’�tiÚ: %u %%"), 
+ESP
+.
+g‘H—pF¿gm’�tiÚ
+());
+
+381 
+	gsh–l
+.
+´štæn
+(
+F
+("F»�cÚtšu©iÚ ¡ack: %lu by‹s"), ()
+ESP
+.
+g‘F»eCÚtS�ck
+());
+
+382 #–ià
+defšed
+(
+ESP32
+)
+
+383 
+	gsh–l
+.
+´štæn
+(
+F
+("SDK v”siÚ: %s"), 
+ESP
+.
+g‘SdkV”siÚ
+());
+
+384 
+	gsh–l
+.
+´štæn
+(
+F
+("CPU f»qu’cy: %u MHz"), 
+ESP
+.
+g‘CpuF»qMHz
+());
+
+386 
+	gsh–l
+.
+´štæn
+(
+F
+("Sk‘ch size: %u by‹ (%u by‹ ä“)"), 
+ESP
+.
+g‘Sk‘chSize
+(), ESP.
+g‘F»eSk‘chS·û
+());
+
+387 
+	gsh–l
+.
+´štæn
+(
+F
+("F»�h—p: %lu by‹s"), ()
+ESP
+.
+g‘F»eH—p
+());
+
+388 
+	gsh–l
+.
+´štæn
+(
+F
+("F»�mem: %d %%"), 
+ä“_mem
+());
+
+389 
+	gsh–l
+.
+´šŽn
+();
+
+391 
+	gWiFi
+.
+¡©us
+()) {
+
+392 
+	gWL_IDLE_STATUS
+:
+
+393 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Idle"));
+
+396 
+	gWL_NO_SSID_AVAIL
+:
+
+397 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Network‚ot found"));
+
+400 
+	gWL_SCAN_COMPLETED
+:
+
+401 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Network scan complete"));
+
+404 
+	gWL_CONNECTED
+: {
+
+405 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Connected"));
+
+406 
+	gsh–l
+.
+´štæn
+(
+F
+("SSID: %s"), 
+WiFi
+.
+SSID
+().
+c_¡r
+());
+
+407 
+	gsh–l
+.
+´štæn
+(
+F
+("BSSID: %s"), 
+WiFi
+.
+BSSID¡r
+().
+c_¡r
+());
+
+408 
+	gsh–l
+.
+´štæn
+(
+F
+("RSSI: %d dBm (%d %%)"), 
+WiFi
+.
+RSSI
+(), 
+wifi_qu®™y
+());
+
+409 
+	gsh–l
+.
+´štæn
+(
+F
+("MAC‡dd»ss: %s"), 
+WiFi
+.
+macAdd»ss
+().
+c_¡r
+());
+
+411 #ià
+defšed
+(
+ESP8266
+)
+
+412 
+	gsh–l
+.
+´štæn
+(
+F
+("Ho¡Çme: %s"), 
+WiFi
+.
+ho¡Çme
+().
+c_¡r
+());
+
+413 #–ià
+defšed
+(
+ESP32
+)
+
+414 
+	gsh–l
+.
+´štæn
+(
+F
+("Ho¡Çme: %s"), 
+WiFi
+.
+g‘Ho¡Çme
+());
+
+416 
+	gsh–l
+.
+´štæn
+(
+F
+("IPv4‡dd»ss: %s/%s"), 
+uuid
+::
+´š�bË_to_¡ršg
+(
+WiFi
+.
+loÿlIP
+()).
+c_¡r
+(), uuid::´š�bË_to_¡ršg(WiFi.
+subÃtMask
+()).c_str());
+
+417 
+	gsh–l
+.
+´štæn
+(
+F
+("IPv4 g©eway: %s"), 
+uuid
+::
+´š�bË_to_¡ršg
+(
+WiFi
+.
+g©ewayIP
+()).
+c_¡r
+());
+
+418 
+	gsh–l
+.
+´štæn
+(
+F
+("IPv4‚ame£rv”: %s"), 
+uuid
+::
+´š�bË_to_¡ršg
+(
+WiFi
+.
+dnsIP
+()).
+c_¡r
+());
+
+421 
+	gWL_CONNECT_FAILED
+:
+
+422 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Connection failed"));
+
+425 
+	gWL_CONNECTION_LOST
+:
+
+426 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Connection†ost"));
+
+429 
+	gWL_DISCONNECTED
+:
+
+430 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Disconnected"));
+
+433 
+	gWL_NO_SHIELD
+:
+
+435 
+sh–l
+.
+´štæn
+(
+F
+("WiFi: Unknown"));
+
+439 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+440 
+sh–l
+.
+´šŽn
+();
+
+441 
+sh–l
+.
+´štæn
+(
+F
+("Syslog:"));
+
+442 
+sh–l
+.
+´št
+(" ");
+
+443 
+sh–l
+.
+´štæn
+(
+F_
+(
+ho¡_fmt
+), !
+£‰šgs
+.
+sy¦og_ho¡
+.
+isEm±y
+(è? s‘tšgs.sy¦og_ho¡.
+c_¡r
+(è: 
+uuid
+::
+»ad_æash_¡ršg
+(F_(
+un£t
+)).c_str());
+
+444 
+sh–l
+.
+´št
+(" ");
+
+445 
+sh–l
+.
+´štæn
+(
+F_
+(
+log_Ëv–_fmt
+), 
+uuid
+::
+log
+::
+fÜm©_Ëv–_low”ÿ£
+(
+¡©ic_ÿ¡
+<uuid::log::
+Lev–
+>(
+£‰šgs
+.
+sy¦og_Ëv–
+)));
+
+446 
+sh–l
+.
+´št
+(" ");
+
+447 
+sh–l
+.
+´štæn
+(
+F_
+(
+m¬k_š‹rv®_fmt
+), 
+£‰šgs
+.
+sy¦og_m¬k_š‹rv®
+);
+
+454 
+	gSy¡em
+::
+cÚsÞe_commªds
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+) {
+
+455 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+456 
+CommªdFÏgs
+::
+ADMIN
+,
+
+457 
+æash_¡ršg_veùÜ
+{
+F_
+(
+»¡¬t
+)},
+
+458 [](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ __attribute__((unused))) {
+
+459 
+»¡¬t
+();
+
+462 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+463 
+CommªdFÏgs
+::
+ADMIN
+,
+
+464 
+æash_¡ršg_veùÜ
+{
+F_
+(
+wifi
+), F_(
+»cÚÃù
+)},
+
+465 [](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ __attribute__((unused))) {
+
+466 
+wifi_»cÚÃù
+();
+
+469 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+470 
+CommªdFÏgs
+::
+ADMIN
+,
+
+471 
+æash_¡ršg_veùÜ
+{
+F_
+(
+fÜm©
+)},
+
+472 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+473 
+sh–l
+.
+’‹r_·sswÜd
+(
+F_
+(
+·sswÜd_´om±
+), [=](
+Sh–l
+ & sh–l, 
+boÞ
+ 
+com¶‘ed
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·sswÜd
+) {
+
+474 ià(
+com¶‘ed
+) {
+
+475 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yS‘tšgsS”viû
+()->
+»ad
+([&](
+Secur™yS‘tšgs
+ & 
+£cur™yS‘tšgs
+) {
+
+476 ià(
+£cur™yS‘tšgs
+.
+jwtSeü‘
+.
+equ®s
+(
+·sswÜd
+.
+c_¡r
+())) {
+
+477 
+fÜm©
+(
+sh–l
+);
+
+479 
+sh–l
+.
+´šŽn
+(
+F
+("incorrect…assword"));
+
+486 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+487 
+CommªdFÏgs
+::
+ADMIN
+,
+
+488 
+æash_¡ršg_veùÜ
+{
+F_
+(
+·sswd
+)},
+
+489 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+490 
+sh–l
+.
+’‹r_·sswÜd
+(
+F_
+(
+Ãw_·sswÜd_´om±1
+), [](
+Sh–l
+ & sh–l, 
+boÞ
+ 
+com¶‘ed
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·sswÜd1
+) {
+
+491 ià(
+com¶‘ed
+) {
+
+492 
+sh–l
+.
+’‹r_·sswÜd
+(
+F_
+(
+Ãw_·sswÜd_´om±2
+),
+
+493 [
+·sswÜd1
+](
+Sh–l
+ & 
+sh–l
+, 
+boÞ
+ 
+com¶‘ed
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·sswÜd2
+) {
+
+494 ià(
+com¶‘ed
+) {
+
+495 ià(
+·sswÜd1
+ =ð
+·sswÜd2
+) {
+
+496 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yS‘tšgsS”viû
+()->
+upd©e
+(
+
+497 [&](
+Secur™yS‘tšgs
+ & 
+£cur™yS‘tšgs
+) {
+
+498 
+£cur™yS‘tšgs
+.
+jwtSeü‘
+ = 
+·sswÜd2
+.
+c_¡r
+();
+
+499  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+502 
+sh–l
+.
+´šŽn
+(
+F
+("Admin…assword updated"));
+
+504 
+sh–l
+.
+´šŽn
+(
+F
+("Passwords do‚ot match"));
+
+512 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+513 
+CommªdFÏgs
+::
+USER
+,
+
+514 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+)},
+
+515 [=](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+516 
+show_sy¡em
+(
+sh–l
+);
+
+517 
+sh–l
+.
+´šŽn
+();
+
+520 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+521 
+CommªdFÏgs
+::
+ADMIN
+,
+
+522 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+), F_(
+wifi
+), F_(
+ho¡Çme
+)},
+
+523 
+æash_¡ršg_veùÜ
+{
+F_
+(
+Çme_mªd©Üy
+)},
+
+524 [](
+Sh–l
+ & 
+sh–l
+ 
+__©Œibu‹__
+((
+unu£d
+)), cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+525 
+sh–l
+.
+´šŽn
+("The wifi connection will be„eset...");
+
+526 
+Sh–l
+::
+loÝ_®l
+();
+
+527 
+d–ay
+(1000);
+
+528 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+upd©e
+(
+
+529 [&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+) {
+
+530 
+wifiS‘tšgs
+.
+ho¡Çme
+ = 
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+();
+
+531  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+536 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+537 
+CommªdFÏgs
+::
+ADMIN
+,
+
+538 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+), F_(
+wifi
+), F_(
+ssid
+)},
+
+539 
+æash_¡ršg_veùÜ
+{
+F_
+(
+Çme_mªd©Üy
+)},
+
+540 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+541 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+upd©eW™houtPrÝag©iÚ
+([&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+) {
+
+542 
+wifiS‘tšgs
+.
+ssid
+ = 
+¬gum’ts
+.
+äÚt
+().
+c_¡r
+();
+
+543  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+545 
+sh–l
+.
+´šŽn
+("Use `wifi„econnect`�o‡pply�he‚ew settings");
+
+548 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+549 
+CommªdFÏgs
+::
+ADMIN
+,
+
+550 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+), F_(
+wifi
+), F_(
+·sswÜd
+)},
+
+551 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+552 
+sh–l
+.
+’‹r_·sswÜd
+(
+F_
+(
+Ãw_·sswÜd_´om±1
+), [](
+Sh–l
+ & sh–l, 
+boÞ
+ 
+com¶‘ed
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·sswÜd1
+) {
+
+553 ià(
+com¶‘ed
+) {
+
+554 
+sh–l
+.
+’‹r_·sswÜd
+(
+F_
+(
+Ãw_·sswÜd_´om±2
+),
+
+555 [
+·sswÜd1
+](
+Sh–l
+ & 
+sh–l
+, 
+boÞ
+ 
+com¶‘ed
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+·sswÜd2
+) {
+
+556 ià(
+com¶‘ed
+) {
+
+557 ià(
+·sswÜd1
+ =ð
+·sswÜd2
+) {
+
+558 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+upd©eW™houtPrÝag©iÚ
+(
+
+559 [&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+) {
+
+560 
+wifiS‘tšgs
+.
+·sswÜd
+ = 
+·sswÜd2
+.
+c_¡r
+();
+
+561  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+563 
+sh–l
+.
+´šŽn
+("Use `wifi„econnect`�o‡pply�he‚ew settings");
+
+565 
+sh–l
+.
+´šŽn
+(
+F
+("Passwords do‚ot match"));
+
+573 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+574 
+CommªdFÏgs
+::
+USER
+,
+
+575 
+æash_¡ršg_veùÜ
+{
+F_
+(
+£t
+)},
+
+576 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))) {
+
+577 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+»ad
+([&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+) {
+
+578 
+sh–l
+.
+´št
+(" ");
+
+579 
+sh–l
+.
+´štæn
+(
+F_
+(
+ho¡Çme_fmt
+),
+
+580 
+wifiS‘tšgs
+.
+ho¡Çme
+.
+isEm±y
+(è? 
+uuid
+::
+»ad_æash_¡ršg
+(
+F_
+(
+un£t
+)).
+c_¡r
+()
+
+581 : 
+wifiS‘tšgs
+.
+ho¡Çme
+.
+c_¡r
+());
+
+584 
+EMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+»ad
+([&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+) {
+
+585 
+sh–l
+.
+´št
+(" ");
+
+586 
+sh–l
+.
+´štæn
+(
+F_
+(
+wifi_ssid_fmt
+),
+
+587 
+wifiS‘tšgs
+.
+ssid
+.
+isEm±y
+(è? 
+uuid
+::
+»ad_æash_¡ršg
+(
+F_
+(
+un£t
+)).
+c_¡r
+()
+
+588 : 
+wifiS‘tšgs
+.
+ssid
+.
+c_¡r
+());
+
+589 
+sh–l
+.
+´št
+(" ");
+
+590 
+sh–l
+.
+´štæn
+(
+F_
+(
+wifi_·sswÜd_fmt
+), 
+wifiS‘tšgs
+.
+ssid
+.
+isEm±y
+(è? F_(
+un£t
+è: F_(
+a¡”isks
+));
+
+599 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+600 
+CommªdFÏgs
+::
+ADMIN
+,
+
+601 
+æash_¡ršg_veùÜ
+{
+F_
+(
+show
+), F_(
+u£rs
+)},
+
+602 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+ 
+__©Œibu‹__
+((
+unu£d
+))è{ 
+Sy¡em
+::
+show_u£rs
+(shell); });
+
+604 
+	gEMSESPSh–l
+::
+commªds
+->
+add_commªd
+(
+Sh–lCÚ‹xt
+::
+SYSTEM
+,
+
+605 
+CommªdFÏgs
+::
+ADMIN
+,
+
+606 
+æash_¡ršg_veùÜ
+{
+F_
+(
+pš
+)},
+
+607 
+æash_¡ršg_veùÜ
+{
+F_
+(
+gpio_mªd©Üy
+), F_(
+d©a_ÝtiÚ®
+)},
+
+608 [](
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+veùÜ
+<¡d::
+¡ršg
+> & 
+¬gum’ts
+) {
+
+609 ià(
+¬gum’ts
+.
+size
+() == 1) {
+
+610 
+sh–l
+.
+´štæn
+(
+F
+("use on/off, 1/0 or�rue/false"));
+
+613 
+pš
+ = 0;
+
+614 ià(
+H–³rs
+::
+v®ue2numb”
+(
+¬gum’ts
+[0].
+c_¡r
+(), 
+pš
+)) {
+
+615 
+Sy¡em
+::
+mq‰_commªd_pš
+(
+¬gum’ts
+[1].
+c_¡r
+(), 
+pš
+);
+
+620 
+	gCÚsÞe
+::
+’‹r_cu¡om_cÚ‹xt
+(
+sh–l
+, 
+cÚ‹xt
+);
+
+626 
+boÞ
+ 
+	gSy¡em
+::
+check_upg¿de
+() {
+
+627 #ià
+defšed
+(
+ESP8266
+)
+
+629 
+L™ŽeFSCÚfig
+ 
+l_cfg
+;
+
+630 
+	gl_cfg
+.
+£tAutoFÜm©
+(
+çl£
+);
+
+631 
+	gL™ŽeFS
+.
+£tCÚfig
+(
+l_cfg
+);
+
+632 ià(
+	gL™ŽeFS
+.
+begš
+()) {
+
+633 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+634 
+	gS”Ÿl
+.
+begš
+(115200);
+
+635 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("FS is Littlefs"));
+
+636 
+	gS”Ÿl
+.
+’d
+();
+
+638  
+	gçl£
+;
+
+641 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+642 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wdeprecated-declarations"
+
+644 
+SPIFFSCÚfig
+ 
+	gcfg
+;
+
+645 
+	gcfg
+.
+£tAutoFÜm©
+(
+çl£
+);
+
+646 
+	gSPIFFS
+.
+£tCÚfig
+(
+cfg
+);
+
+647 ià(!
+	gSPIFFS
+.
+begš
+()) {
+
+648 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+649 
+	gS”Ÿl
+.
+begš
+(115200);
+
+650 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("No old SPIFFS found!"));
+
+651 
+	gS”Ÿl
+.
+’d
+();
+
+654 
+	gl_cfg
+.
+£tAutoFÜm©
+(
+Œue
+);
+
+655 
+	gL™ŽeFS
+.
+£tCÚfig
+(
+l_cfg
+);
+
+656  
+	gçl£
+;
+
+659 
+	gS”Ÿl
+.
+begš
+(115200);
+
+661 
+boÞ
+ 
+	gçžed
+ = 
+çl£
+;
+
+662 
+Fže
+ 
+	gfže
+;
+
+663 
+JsÚObjeù
+ 
+	gÃtwÜk
+, 
+	gg’”®
+, 
+	gmq‰
+, 
+	gcu¡om_£‰šgs
+;
+
+664 
+	gS�ticJsÚDocum’t
+<1024> 
+	gdoc
+;
+
+674 
+	gfže
+ = 
+SPIFFS
+.
+Ý’
+("/myesp.json", "r");
+
+675 ià(!
+	gfže
+) {
+
+676 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("Unable�o„ead�he system config file"));
+
+677 
+	gçžed
+ = 
+Œue
+;
+
+679 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+fže
+);
+
+680 ià(
+	g”rÜ
+) {
+
+681 
+	gS”Ÿl
+.
+´štf
+(
+PSTR
+("E¼Ü. Fažed�Øde£rŸliz�sy¡em jsÚ,ƒ¼Ü %s\n"), 
+”rÜ
+.
+c_¡r
+());
+
+682 
+	gçžed
+ = 
+Œue
+;
+
+684 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("Migrating settings from EMS-ESP v1.9..."));
+
+685 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+686 
+£rŸlizeJsÚ
+(
+doc
+, 
+S”Ÿl
+);
+
+687 
+	gS”Ÿl
+.
+´šŽn
+();
+
+689 
+	gÃtwÜk
+ = 
+doc
+["network"];
+
+690 
+	gg’”®
+ = 
+doc
+["general"];
+
+691 
+	gmq‰
+ = 
+doc
+["mqtt"];
+
+694 
+	gl_cfg
+.
+£tAutoFÜm©
+(
+Œue
+);
+
+695 
+	gL™ŽeFS
+.
+£tCÚfig
+(
+l_cfg
+);
+
+696 
+	gL™ŽeFS
+.
+begš
+();
+
+697 
+	gEMSESP
+::
+e¥8266R—ù
+.
+begš
+();
+
+698 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+begš
+();
+
+700 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘WiFiS‘tšgsS”viû
+()->
+upd©e
+(
+
+701 [&](
+WiFiS‘tšgs
+ & 
+wifiS‘tšgs
+) {
+
+702 
+wifiS‘tšgs
+.
+ho¡Çme
+ = 
+g’”®
+["ho¡Çme"] | 
+FACTORY_WIFI_HOSTNAME
+;
+
+703 
+wifiS‘tšgs
+.
+ssid
+ = 
+ÃtwÜk
+["ssid"] | 
+FACTORY_WIFI_SSID
+;
+
+704 
+wifiS‘tšgs
+.
+·sswÜd
+ = 
+ÃtwÜk
+["·sswÜd"] | 
+FACTORY_WIFI_PASSWORD
+;
+
+706 
+wifiS‘tšgs
+.
+¡©icIPCÚfig
+ = 
+çl£
+;
+
+707 
+JsÚUtžs
+::
+»adIP
+(
+ÃtwÜk
+, "¡©ic�", 
+wifiS‘tšgs
+.
+loÿlIP
+);
+
+708 
+JsÚUtžs
+::
+»adIP
+(
+ÃtwÜk
+, "dns�", 
+wifiS‘tšgs
+.
+dnsIP1
+);
+
+709 
+JsÚUtžs
+::
+»adIP
+(
+ÃtwÜk
+, "g©eway�", 
+wifiS‘tšgs
+.
+g©ewayIP
+);
+
+710 
+JsÚUtžs
+::
+»adIP
+(
+ÃtwÜk
+, "nmask", 
+wifiS‘tšgs
+.
+subÃtMask
+);
+
+712  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+716 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Secur™yS‘tšgsS”viû
+()->
+upd©e
+(
+
+717 [&](
+Secur™yS‘tšgs
+ & 
+£cur™yS‘tšgs
+) {
+
+718 
+£cur™yS‘tšgs
+.
+jwtSeü‘
+ = 
+g’”®
+["·sswÜd"] | 
+FACTORY_JWT_SECRET
+;
+
+720  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+724 
+	gEMSESP
+::
+e¥8266R—ù
+.
+g‘Mq‰S‘tšgsS”viû
+()->
+upd©e
+(
+
+725 [&](
+Mq‰S‘tšgs
+ & 
+mq‰S‘tšgs
+) {
+
+726 
+mq‰S‘tšgs
+.
+ho¡
+ = 
+mq‰
+["�"] | 
+FACTORY_MQTT_HOST
+;
+
+727 
+mq‰S‘tšgs
+.
+mq‰_fÜm©
+ = (
+mq‰
+["Ã¡edjsÚ"] ? 
+MQTT_fÜm©
+::
+NESTED
+ : MQTT_fÜm©::
+SINGLE
+);
+
+728 
+mq‰S‘tšgs
+.
+mq‰_qos
+ = 
+mq‰
+["qos"] | 0;
+
+729 
+mq‰S‘tšgs
+.
+u£ºame
+ = 
+mq‰
+["user"] | "";
+
+730 
+mq‰S‘tšgs
+.
+·sswÜd
+ = 
+mq‰
+["password"] | "";
+
+731 
+mq‰S‘tšgs
+.
+pÜt
+ = 
+mq‰
+["pÜt"] | 
+FACTORY_MQTT_PORT
+;
+
+732 
+mq‰S‘tšgs
+.
+þ›ÁId
+ = 
+FACTORY_MQTT_CLIENT_ID
+;
+
+733 
+mq‰S‘tšgs
+.
+’abËd
+ = 
+mq‰
+["enabled"];
+
+734 
+mq‰S‘tšgs
+.
+sy¡em_h—¹b—t
+ = 
+mq‰
+["heartbeat"];
+
+735 
+mq‰S‘tšgs
+.
+k“pAlive
+ = 
+FACTORY_MQTT_KEEP_ALIVE
+;
+
+736 
+mq‰S‘tšgs
+.
+þ—nSessiÚ
+ = 
+FACTORY_MQTT_CLEAN_SESSION
+;
+
+737 
+mq‰S‘tšgs
+.
+maxTÝicL’gth
+ = 
+FACTORY_MQTT_MAX_TOPIC_LENGTH
+;
+
+739  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+744 
+	gfže
+.
+þo£
+();
+
+746 ià(
+	gçžed
+) {
+
+747 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+748 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("Failed�o„ead system config. Quitting."));
+
+750 
+	gSPIFFS
+.
+’d
+();
+
+751 
+	gS”Ÿl
+.
+’d
+();
+
+752  
+	gçl£
+;
+
+760 
+	gdoc
+.
+þ—r
+();
+
+761 
+	gçžed
+ = 
+çl£
+;
+
+762 
+	gfže
+ = 
+SPIFFS
+.
+Ý’
+("/customconfig.json", "r");
+
+763 ià(!
+	gfže
+) {
+
+764 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("Unable�o„ead custom config file"));
+
+765 
+	gçžed
+ = 
+Œue
+;
+
+767 
+De£rŸliz©iÚE¼Ü
+ 
+	g”rÜ
+ = 
+de£rŸlizeJsÚ
+(
+doc
+, 
+fže
+);
+
+768 ià(
+	g”rÜ
+) {
+
+769 
+	gS”Ÿl
+.
+´štf
+(
+PSTR
+("E¼Ü. Fažed�Øde£rŸliz�cu¡om jsÚ,ƒ¼Ü %s\n"), 
+”rÜ
+.
+c_¡r
+());
+
+770 
+	gçžed
+ = 
+Œue
+;
+
+772 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+773 
+£rŸlizeJsÚ
+(
+doc
+, 
+S”Ÿl
+);
+
+774 
+	gS”Ÿl
+.
+´šŽn
+();
+
+776 
+	gcu¡om_£‰šgs
+ = 
+doc
+["settings"];
+
+777 
+	gEMSESP
+::
+em£¥S‘tšgsS”viû
+.
+upd©e
+(
+
+778 [&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+779 
+£‰šgs
+.
+tx_mode
+ = 
+cu¡om_£‰šgs
+["tx_mode"] | 
+EMSESP_DEFAULT_TX_MODE
+;
+
+780 
+£‰šgs
+.
+show”_®”t
+ = 
+cu¡om_£‰šgs
+["show”_®”t"] | 
+EMSESP_DEFAULT_SHOWER_ALERT
+;
+
+781 
+£‰šgs
+.
+show”_tim”
+ = 
+cu¡om_£‰šgs
+["show”_tim”"] | 
+EMSESP_DEFAULT_SHOWER_TIMER
+;
+
+782 
+£‰šgs
+.
+ma¡”_th”mo¡©
+ = 
+cu¡om_£‰šgs
+["ma¡”_th”mo¡©"] | 
+EMSESP_DEFAULT_MASTER_THERMOSTAT
+;
+
+783 
+£‰šgs
+.
+ems_bus_id
+ = 
+cu¡om_£‰šgs
+["bus_id"] | 
+EMSESP_DEFAULT_EMS_BUS_ID
+;
+
+784 
+£‰šgs
+.
+sy¦og_ho¡
+ = 
+EMSESP_DEFAULT_SYSLOG_HOST
+;
+
+785 
+£‰šgs
+.
+sy¦og_Ëv–
+ = 
+EMSESP_DEFAULT_SYSLOG_LEVEL
+;
+
+786 
+£‰šgs
+.
+sy¦og_m¬k_š‹rv®
+ = 
+EMSESP_DEFAULT_SYSLOG_MARK_INTERVAL
+;
+
+787 
+£‰šgs
+.
+d®Ïs_gpio
+ = 
+cu¡om_£‰šgs
+["d®Ïs_gpio"] | 
+EMSESP_DEFAULT_DALLAS_GPIO
+;
+
+788 
+£‰šgs
+.
+d®Ïs_·¿s™e
+ = 
+cu¡om_£‰šgs
+["d®Ïs_·¿s™e"] | 
+EMSESP_DEFAULT_DALLAS_PARASITE
+;
+
+789 
+£‰šgs
+.
+Ëd_gpio
+ = 
+cu¡om_£‰šgs
+["Ëd_gpio"] | 
+EMSESP_DEFAULT_LED_GPIO
+;
+
+791  
+S�‹Upd©eResuÉ
+::
+CHANGED
+;
+
+796 
+	gfže
+.
+þo£
+();
+
+798 
+	gSPIFFS
+.
+’d
+();
+
+800 ià(
+	gçžed
+) {
+
+801 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+802 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("Failed�o„ead custom config. Quitting."));
+
+804 
+	gS”Ÿl
+.
+’d
+();
+
+805  
+	gçl£
+;
+
+808 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+810 
+	gS”Ÿl
+.
+´šŽn
+(
+F
+("Restarting..."));
+
+811 
+	gS”Ÿl
+.
+æush
+();
+
+812 
+d–ay
+(1000);
+
+813 
+	gS”Ÿl
+.
+’d
+();
+
+814 
+d–ay
+(1000);
+
+815 
+»¡¬t
+();
+
+816  
+	gŒue
+;
+
+818  
+	gçl£
+;
+
+	@src/system.h
+
+19 #iâdeà
+EMSESP_SYSTEM_H_
+
+
+20 
+	#EMSESP_SYSTEM_H_
+
+
+	)
+
+22 
+	~<Ardušo.h
+>
+
+23 
+	~<ArdušoJsÚ.h
+>
+
+25 
+	~"h–³rs.h
+"
+
+26 
+	~"cÚsÞe.h
+"
+
+27 
+	~"mq‰.h
+"
+
+28 
+	~"‹Ëg¿m.h
+"
+
+30 #iâdeà
+EMSESP_STANDALONE
+
+
+31 
+	~<uuid/sy¦og.h
+>
+
+34 
+	~<uuid/log.h
+>
+
+36 
+usšg
+ 
+	guuid
+::
+cÚsÞe
+::
+Sh–l
+;
+
+38 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+40 þas 
+	cSy¡em
+ {
+
+41 
+	gpublic
+:
+
+42 
+¡¬t
+();
+
+43 
+loÝ
+();
+
+46 
+»¡¬t
+();
+
+47 
+fÜm©
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+49 
+cÚsÞe_commªds
+(
+Sh–l
+ & 
+sh–l
+, 
+cÚ‹xt
+);
+
+51 
+mq‰_commªd_pš
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+52 
+mq‰_commªd_£nd
+(cÚ¡ * 
+v®ue
+, cÚ¡ 
+št8_t
+ 
+id
+);
+
+54 
+ušt8_t
+ 
+ä“_mem
+();
+
+55 
+u¶ßd_¡©us
+(
+boÞ
+ 
+š_´og»ss
+);
+
+56 
+boÞ
+ 
+u¶ßd_¡©us
+();
+
+57 
+sy¦og_š™
+();
+
+58 
+£t_h—¹b—t
+(
+boÞ
+ 
+sy¡em_h—¹b—t
+);
+
+59 
+£nd_h—¹b—t
+();
+
+60 
+show_mem
+(cÚ¡ * 
+nÙe
+);
+
+61 
+£t_Ëd
+();
+
+62 
+boÞ
+ 
+check_upg¿de
+();
+
+64 
+	g´iv©e
+:
+
+65 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+67 #iâdeà
+EMSESP_STANDALONE
+
+
+68 
+	guuid
+::
+sy¦og
+::
+Sy¦ogS”viû
+ 
+sy¦og_
+;
+
+71 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSYSTEM_CHECK_FREQUENCY
+ = 5000;
+
+72 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gLED_WARNING_BLINK
+ = 1000;
+
+73 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gLED_WARNING_BLINK_FAST
+ = 100;
+
+74 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSYSTEM_HEARTBEAT_INTERVAL
+ = 60000;
+
+75 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gSYSTEM_MEASURE_ANALOG_INTERVAL
+ = 1100;
+
+78 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gLED_ON
+ = 
+LOW
+;
+
+80 
+Ëd_mÚ™Ü
+();
+
+81 
+£t_Ëd_¥“d
+(
+ušt32_t
+ 
+¥“d
+);
+
+82 
+sy¡em_check
+();
+
+83 
+m—su»_ª®og
+();
+
+85 
+show_sy¡em
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+86 
+show_u£rs
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+);
+
+87 
+wifi_»cÚÃù
+();
+
+88 
+št8_t
+ 
+wifi_qu®™y
+();
+
+90 
+boÞ
+ 
+	gsy¡em_h—Éhy_
+ = 
+çl£
+;
+
+91 
+ušt32_t
+ 
+	gËd_æash_¥“d_
+ = 
+LED_WARNING_BLINK_FAST
+;
+
+92 
+ušt32_t
+ 
+	gh—p_¡¬t_
+;
+
+93 
+	g»£t_couÁ”_
+;
+
+94 
+ušt32_t
+ 
+	gÏ¡_h—¹b—t_
+ = 0;
+
+95 
+boÞ
+ 
+	gu¶ßd_¡©us_
+;
+
+96 
+ušt16_t
+ 
+	gª®og_
+;
+
+99 
+boÞ
+ 
+	gsy¡em_h—¹b—t_
+;
+
+100 
+boÞ
+ 
+	ghide_Ëd_
+;
+
+101 
+ušt8_t
+ 
+	gsy¦og_Ëv–_
+;
+
+102 
+ušt32_t
+ 
+	gsy¦og_m¬k_š‹rv®_
+;
+
+103 
+SŒšg
+ 
+	gsy¦og_ho¡_
+;
+
+104 
+ušt8_t
+ 
+	gËd_gpio_
+;
+
+	@src/telegram.cpp
+
+19 
+	~"‹Ëg¿m.h
+"
+
+20 
+	~"em£¥.h
+"
+
+22 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+25 cÚ¡ 
+ušt8_t
+ 
+	gems_üc_�bË
+[] = {0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24, 0x26,
+
+39 
+ušt32_t
+ 
+	gEMSbus
+::
+Ï¡_bus_aùiv™y_
+ = 0;
+
+40 
+boÞ
+ 
+	gEMSbus
+::
+bus_cÚÃùed_
+ = 
+çl£
+;
+
+41 
+ušt8_t
+ 
+	gEMSbus
+::
+ems_mask_
+ = 
+EMS_MASK_UNSET
+;
+
+42 
+ušt8_t
+ 
+	gEMSbus
+::
+ems_bus_id_
+ = 
+EMSESP_DEFAULT_EMS_BUS_ID
+;
+
+43 
+ušt8_t
+ 
+	gEMSbus
+::
+tx_mode_
+ = 
+EMSESP_DEFAULT_TX_MODE
+;
+
+44 
+ušt8_t
+ 
+	gEMSbus
+::
+tx_¡©e_
+ = 
+T–eg¿m
+::
+O³¿tiÚ
+::
+NONE
+;
+
+46 
+	guuid
+::
+log
+::
+Logg”
+ 
+EMSbus
+::
+logg”_
+{
+F_
+(
+‹Ëg¿m
+), uuid::log::
+Facž™y
+::
+CONSOLE
+};
+
+50 
+ušt8_t
+ 
+	gEMSbus
+::
+ÿlcuÏ‹_üc
+(cÚ¡ ušt8_ˆ* 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+) {
+
+51 
+ušt8_t
+ 
+	gi
+ = 0;
+
+52 
+ušt8_t
+ 
+	güc
+ = 0;
+
+53 
+	gi
+ < 
+	gËngth
+) {
+
+54 
+	güc
+ = 
+ems_üc_�bË
+[
+üc
+];
+
+55 
+	güc
+ ^ð
+d©a
+[
+i
+++];
+
+57  
+	güc
+;
+
+62 
+	gT–eg¿m
+::
+T–eg¿m
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+,
+
+63 cÚ¡ 
+ušt8_t
+ 
+¤c
+,
+
+64 cÚ¡ 
+ušt8_t
+ 
+de¡
+,
+
+65 cÚ¡ 
+ušt16_t
+ 
+ty³_id
+,
+
+66 cÚ¡ 
+ušt8_t
+ 
+off£t
+,
+
+67 cÚ¡ 
+ušt8_t
+ * 
+d©a
+,
+
+68 cÚ¡ 
+ušt8_t
+ 
+mes§ge_Ëngth
+)
+
+69 : 
+Ý”©iÚ
+(operation)
+
+70 , 
+¤c
+(src)
+
+71 , 
+de¡
+(dest)
+
+72 , 
+ty³_id
+(type_id)
+
+73 , 
+off£t
+(offset)
+
+74 , 
+mes§ge_Ëngth
+(message_length) {
+
+76 
+ušt8_t
+ 
+	gi
+ = 0; ((˜< 
+	gmes§ge_Ëngth
+è&& (˜< 
+	gEMS_MAX_TELEGRAM_MESSAGE_LENGTH
+)); i++) {
+
+77 
+	gmes§ge_d©a
+[
+i
+] = 
+d©a
+[i];
+
+82 
+	g¡d
+::
+¡ršg
+ 
+T–eg¿m
+::
+to_¡ršg
+() const {
+
+83 
+ušt8_t
+ 
+d©a
+[
+EMS_MAX_TELEGRAM_LENGTH
+];
+
+84 
+ušt8_t
+ 
+	gËngth
+ = 0;
+
+85 
+	gd©a
+[0] = 
+this
+->
+¤c
+ ^ 
+RxS”viû
+::
+ems_mask
+();
+
+86 ià(
+	gthis
+->
+	gÝ”©iÚ
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_READ
+) {
+
+87 
+d©a
+[1] = 
+this
+->
+de¡
+ | 0x80;
+
+88 
+	gd©a
+[4] = 
+this
+->
+mes§ge_d©a
+[0];
+
+89 ià(
+	gthis
+->
+	gty³_id
+ > 0xFF) {
+
+90 
+	gd©a
+[2] = 0xFF;
+
+91 
+	gd©a
+[5] = (
+this
+->
+ty³_id
+ >> 8) - 1;
+
+92 
+	gd©a
+[6] = 
+this
+->
+ty³_id
+ & 0xFF;
+
+93 
+	gËngth
+ = 7;
+
+95 
+	gd©a
+[2] = 
+this
+->
+ty³_id
+;
+
+96 
+	gËngth
+ = 5;
+
+99 
+	gd©a
+[1] = 
+this
+->
+de¡
+;
+
+100 ià(
+	gthis
+->
+	gty³_id
+ > 0xFF) {
+
+101 
+	gd©a
+[2] = 0xFF;
+
+102 
+	gd©a
+[4] = (
+this
+->
+ty³_id
+ >> 8) - 1;
+
+103 
+	gd©a
+[5] = 
+this
+->
+ty³_id
+ & 0xFF;
+
+104 
+	gËngth
+ = 6;
+
+106 
+	gd©a
+[2] = 
+this
+->
+ty³_id
+;
+
+107 
+	gËngth
+ = 4;
+
+109 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gthis
+->
+	gmes§ge_Ëngth
+; i++) {
+
+110 
+	gd©a
+[
+Ëngth
+++] = 
+this
+->
+mes§ge_d©a
+[
+i
+];
+
+114  
+	gH–³rs
+::
+d©a_to_hex
+(
+d©a
+, 
+Ëngth
+);
+
+118 
+	g¡d
+::
+¡ršg
+ 
+T–eg¿m
+::
+to_¡ršg_mes§ge
+() const {
+
+119 ià(
+this
+->
+mes§ge_Ëngth
+ == 0) {
+
+120  
+»ad_æash_¡ršg
+(
+F
+("<empty>"));
+
+123  
+	gH–³rs
+::
+d©a_to_hex
+(
+this
+->
+mes§ge_d©a
+,�his->
+mes§ge_Ëngth
+);
+
+127 
+	gRxS”viû
+::
+loÝ
+() {
+
+128 !
+rx_‹Ëg¿ms_
+.
+em±y
+()) {
+
+129 autØ
+‹Ëg¿m
+ = 
+rx_‹Ëg¿ms_
+.
+äÚt
+().
+‹Ëg¿m_
+;
+
+130 ()
+	gEMSESP
+::
+´oûss_‹Ëg¿m
+(
+‹Ëg¿m
+);
+
+131 
+šüem’t_‹Ëg¿m_couÁ
+();
+
+132 
+	grx_‹Ëg¿ms_
+.
+pÝ_äÚt
+();
+
+140 
+	gRxS”viû
+::
+add
+(
+ušt8_t
+ * 
+d©a
+, ušt8_ˆ
+Ëngth
+) {
+
+141 ià(
+	gËngth
+ < 2) {
+
+146 
+ušt8_t
+ 
+	güc
+ = 
+ÿlcuÏ‹_üc
+(
+d©a
+, 
+Ëngth
+ - 1);
+
+147 ià(
+	gd©a
+[
+Ëngth
+ - 1] !ð
+üc
+) {
+
+148 
+šüem’t_‹Ëg¿m_”rÜ_couÁ
+();
+
+149 
+LOG_ERROR
+(
+F
+("Rx: % (CRC %02X !ð%02X)"), 
+H–³rs
+::
+d©a_to_hex
+(
+d©a
+, 
+Ëngth
+).
+c_¡r
+(), d©a[Ëngth - 1], 
+üc
+);
+
+157 ià(
+ems_mask
+(è=ð
+EMS_MASK_UNSET
+) {
+
+158 
+ems_mask
+(
+d©a
+[0]);
+
+162 
+ušt8_t
+ 
+	g¤c
+ = 
+d©a
+[0] & 0x7F;
+
+163 
+ušt8_t
+ 
+	gde¡
+ = 
+d©a
+[1] & 0x7F;
+
+164 
+ušt8_t
+ 
+	goff£t
+ = 
+d©a
+[3];
+
+166 
+ušt16_t
+ 
+	gty³_id
+;
+
+167 
+ušt8_t
+ * 
+	gmes§ge_d©a
+;
+
+168 
+ušt8_t
+ 
+	gmes§ge_Ëngth
+;
+
+174 ià(
+	gd©a
+[2] < 0xF0 || 
+	gËngth
+ < 6) {
+
+176 
+	gty³_id
+ = 
+d©a
+[2];
+
+177 
+	gmes§ge_d©a
+ = 
+d©a
+ + 4;
+
+178 
+	gmes§ge_Ëngth
+ = 
+Ëngth
+ - 5;
+
+181 
+ušt8_t
+ 
+	gshiá
+ = 0;
+
+182 ià(
+	gd©a
+[2] != 0xFF) {
+
+184 
+shiá
+ = (
+d©a
+[4] != 0xFF) ? 2 : 1;
+
+186 
+	gty³_id
+ = (
+d©a
+[4 + 
+shiá
+] << 8) + data[5 + shift] + 256;
+
+187 
+	gmes§ge_d©a
+ = 
+d©a
+ + 6 + 
+shiá
+;
+
+188 
+	gmes§ge_Ëngth
+ = 
+Ëngth
+ - 7 - 
+shiá
+;
+
+192 ià(
+	gEMSESP
+::
+w©ch
+(è=ð
+EMSESP
+::
+W©ch
+::
+WATCH_RAW
+) {
+
+193 
+ušt16_t
+ 
+Œaû_w©ch_id
+ = 
+EMSESP
+::
+w©ch_id
+();
+
+194 ià((
+	gŒaû_w©ch_id
+ =ð
+WATCH_ID_NONE
+è|| (
+ty³_id
+ =ð
+Œaû_w©ch_id
+)
+
+195 || ((
+Œaû_w©ch_id
+ < 0x80è&& ((
+¤c
+ =ðŒaû_w©ch_idè|| (
+de¡
+ ==�race_watch_id)))) {
+
+196 
+LOG_NOTICE
+(
+F
+("Rx: %s"), 
+H–³rs
+::
+d©a_to_hex
+(
+d©a
+, 
+Ëngth
+).
+c_¡r
+());
+
+200 #ifdeà
+EMSESP_DEBUG
+
+
+201 
+LOG_DEBUG
+(
+F
+("[DEBUG] New Rx�–eg¿m, mes§g�Ëngth %d"), 
+mes§ge_Ëngth
+);
+
+206 ià(
+	gty³_id
+ == 0) {
+
+211 
+	g¤c
+ = 
+EMSESP
+::
+check_ma¡”_deviû
+(
+¤c
+, 
+ty³_id
+, 
+Œue
+);
+
+214 autØ
+	g‹Ëg¿m
+ = 
+¡d
+::
+make_sh¬ed
+<
+T–eg¿m
+>(T–eg¿m::
+O³¿tiÚ
+::
+RX
+, 
+	g¤c
+, 
+	gde¡
+, 
+	gty³_id
+, 
+	goff£t
+, 
+	gmes§ge_d©a
+, 
+	gmes§ge_Ëngth
+);
+
+217 ià(
+	grx_‹Ëg¿ms_
+.
+size
+(è>ð
+MAX_RX_TELEGRAMS
+) {
+
+218 
+rx_‹Ëg¿ms_
+.
+pÝ_äÚt
+();
+
+219 
+šüem’t_‹Ëg¿m_”rÜ_couÁ
+();
+
+222 
+	grx_‹Ëg¿ms_
+.
+em¶aû_back
+(
+rx_‹Ëg¿m_id_
+++, 
+¡d
+::
+move
+(
+‹Ëg¿m
+));
+
+230 
+	gTxS”viû
+::
+æush_tx_queue
+() {
+
+231 
+tx_‹Ëg¿ms_
+.
+þ—r
+();
+
+232 
+	gtx_‹Ëg¿m_id_
+ = 0;
+
+237 
+	gTxS”viû
+::
+¡¬t
+() {
+
+239 
+EMSESP
+::
+em£¥S‘tšgsS”viû
+.
+»ad
+([&](
+EMSESPS‘tšgs
+ & 
+£‰šgs
+) {
+
+240 
+ems_bus_id
+(
+£‰šgs
+.ems_bus_id);
+
+241 
+tx_mode
+(
+£‰šgs
+.tx_mode);
+
+245 
+‹Ëg¿m_»ad_couÁ
+(0);
+
+246 
+‹Ëg¿m_wr™e_couÁ
+(0);
+
+247 
+‹Ëg¿m_çž_couÁ
+(0);
+
+251 
+»ad_»que¡
+(
+EMSdeviû
+::
+EMS_TYPE_UBADeviûs
+, EMSdeviû::
+EMS_DEVICE_ID_BOILER
+);
+
+255 
+	gTxS”viû
+::
+£nd_pÞl
+() {
+
+257 ià(
+tx_mode
+()) {
+
+258 
+EMSu¬t
+::
+£nd_pÞl
+(
+ems_bus_id
+(è^ 
+ems_mask
+());
+
+264 
+	gTxS”viû
+::
+£nd
+() {
+
+266 ià(!
+bus_cÚÃùed
+()) {
+
+271 ià(
+	gtx_‹Ëg¿ms_
+.
+em±y
+()) {
+
+272 
+£nd_pÞl
+();
+
+277 ià(
+tx_mode
+() != 0) {
+
+278 
+£nd_‹Ëg¿m
+(
+tx_‹Ëg¿ms_
+.
+äÚt
+());
+
+282 
+	gtx_‹Ëg¿ms_
+.
+pÝ_äÚt
+();
+
+286 
+	gTxS”viû
+::
+£nd_‹Ëg¿m
+(cÚ¡ 
+QueuedTxT–eg¿m
+ & 
+tx_‹Ëg¿m
+) {
+
+287 
+ušt8_t
+ 
+‹Ëg¿m_¿w
+[
+EMS_MAX_TELEGRAM_LENGTH
+];
+
+290 autØ
+	g‹Ëg¿m
+ = 
+tx_‹Ëg¿m
+.
+‹Ëg¿m_
+;
+
+293 
+ušt8_t
+ 
+	g¤c
+ = 
+‹Ëg¿m
+->
+¤c
+;
+
+294 ià(
+ems_mask
+(è!ð
+EMS_MASK_UNSET
+) {
+
+295 
+¤c
+ ^ð
+ems_mask
+();
+
+297 
+	g‹Ëg¿m_¿w
+[0] = 
+¤c
+;
+
+301 
+ušt8_t
+ 
+	gde¡
+ = 
+‹Ëg¿m
+->
+de¡
+;
+
+304 
+	gde¡
+ = 
+EMSESP
+::
+check_ma¡”_deviû
+(
+de¡
+, 
+‹Ëg¿m
+->
+ty³_id
+, 
+çl£
+);
+
+306 ià(
+	g‹Ëg¿m
+->
+	gÝ”©iÚ
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_READ
+) {
+
+307 
+de¡
+ |= 0x80;
+
+309 
+	g‹Ëg¿m_¿w
+[1] = 
+de¡
+;
+
+311 
+ušt8_t
+ 
+	gmes§ge_p
+ = 0;
+
+312 
+boÞ
+ 
+	gcÝy_d©a
+ = 
+Œue
+;
+
+314 ià(
+	g‹Ëg¿m
+->
+	gty³_id
+ > 0xFF) {
+
+316 
+	g‹Ëg¿m_¿w
+[2] = 0xFF;
+
+317 
+	g‹Ëg¿m_¿w
+[3] = 
+‹Ëg¿m
+->
+off£t
+;
+
+320 ià(
+	g‹Ëg¿m
+->
+	gÝ”©iÚ
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+) {
+
+322 
+‹Ëg¿m_¿w
+[4] = (
+‹Ëg¿m
+->
+ty³_id
+ >> 8) - 1;
+
+323 
+	g‹Ëg¿m_¿w
+[5] = 
+‹Ëg¿m
+->
+ty³_id
+ & 0xFF;
+
+324 
+	gmes§ge_p
+ = 6;
+
+327 
+	g‹Ëg¿m_¿w
+[4] = 
+‹Ëg¿m
+->
+mes§ge_d©a
+[0];
+
+328 
+	g‹Ëg¿m_¿w
+[5] = (
+‹Ëg¿m
+->
+ty³_id
+ >> 8) - 1;
+
+329 
+	g‹Ëg¿m_¿w
+[6] = 
+‹Ëg¿m
+->
+ty³_id
+ & 0xFF;
+
+330 
+	gmes§ge_p
+ = 7;
+
+331 
+	gcÝy_d©a
+ = 
+çl£
+;
+
+335 
+	g‹Ëg¿m_¿w
+[2] = 
+‹Ëg¿m
+->
+ty³_id
+;
+
+336 
+	g‹Ëg¿m_¿w
+[3] = 
+‹Ëg¿m
+->
+off£t
+;
+
+337 
+	gmes§ge_p
+ = 4;
+
+340 ià(
+	gcÝy_d©a
+) {
+
+341 ià(
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+ > 
+	gEMS_MAX_TELEGRAM_MESSAGE_LENGTH
+) {
+
+346 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	g‹Ëg¿m
+->
+	gmes§ge_Ëngth
+; i++) {
+
+347 
+	g‹Ëg¿m_¿w
+[
+mes§ge_p
+++] = 
+‹Ëg¿m
+->
+mes§ge_d©a
+[
+i
+];
+
+351 
+ušt8_t
+ 
+	gËngth
+ = 
+mes§ge_p
+;
+
+353 
+	g‹Ëg¿m_Ï¡_
+ = 
+¡d
+::
+make_sh¬ed
+<
+T–eg¿m
+>(*
+‹Ëg¿m
+);
+
+355 
+	g‹Ëg¿m_¿w
+[
+Ëngth
+] = 
+ÿlcuÏ‹_üc
+(
+‹Ëg¿m_¿w
+,†ength);
+
+357 
+	gËngth
+++;
+
+359 
+LOG_DEBUG
+(
+F
+("Sending %s Tx [#%d],�elegram: %s"),
+
+360 (
+‹Ëg¿m
+->
+Ý”©iÚ
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+è? 
+F
+("write") : F("read"),
+
+361 
+tx_‹Ëg¿m
+.
+id_
+,
+
+362 
+H–³rs
+::
+d©a_to_hex
+(
+‹Ëg¿m_¿w
+, 
+Ëngth
+).
+c_¡r
+());
+
+365 
+ušt16_t
+ 
+	g¡©us
+ = 
+EMSu¬t
+::
+Œªsm™
+(
+‹Ëg¿m_¿w
+, 
+Ëngth
+);
+
+367 ià(
+	g¡©us
+ =ð
+EMS_TX_STATUS_ERR
+) {
+
+368 
+LOG_ERROR
+(
+F
+("Failed�o�ransmit Tx via UART."));
+
+369 
+šüem’t_‹Ëg¿m_çž_couÁ
+();
+
+370 
+tx_¡©e
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+NONE
+);
+
+374 
+tx_¡©e
+(
+‹Ëg¿m
+->
+Ý”©iÚ
+);
+
+380 
+	gTxS”viû
+::
+£nd_‹Ëg¿m
+(cÚ¡ 
+ušt8_t
+ * 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+) {
+
+381 
+ušt8_t
+ 
+	g‹Ëg¿m_¿w
+[
+EMS_MAX_TELEGRAM_LENGTH
+];
+
+383 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gËngth
+; i++) {
+
+384 
+	g‹Ëg¿m_¿w
+[
+i
+] = 
+d©a
+[i];
+
+386 
+	g‹Ëg¿m_¿w
+[
+Ëngth
+] = 
+ÿlcuÏ‹_üc
+(
+‹Ëg¿m_¿w
+,†ength);
+
+388 
+tx_¡©e
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+NONE
+);
+
+391 
+ušt16_t
+ 
+	g¡©us
+ = 
+EMSu¬t
+::
+Œªsm™
+(
+‹Ëg¿m_¿w
+, 
+Ëngth
+);
+
+393 ià(
+	g¡©us
+ =ð
+EMS_TX_STATUS_ERR
+) {
+
+394 
+LOG_ERROR
+(
+F
+("Failed�o�ransmit Tx via UART."));
+
+395 
+šüem’t_‹Ëg¿m_çž_couÁ
+();
+
+401 
+	gTxS”viû
+::
+add
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+,
+
+402 cÚ¡ 
+ušt8_t
+ 
+de¡
+,
+
+403 cÚ¡ 
+ušt16_t
+ 
+ty³_id
+,
+
+404 cÚ¡ 
+ušt8_t
+ 
+off£t
+,
+
+405 
+ušt8_t
+ * 
+mes§ge_d©a
+,
+
+406 cÚ¡ 
+ušt8_t
+ 
+mes§ge_Ëngth
+,
+
+407 cÚ¡ 
+boÞ
+ 
+äÚt
+) {
+
+408 autØ
+	g‹Ëg¿m
+ = 
+¡d
+::
+make_sh¬ed
+<
+T–eg¿m
+>(
+Ý”©iÚ
+, 
+ems_bus_id
+(), 
+	gde¡
+, 
+	gty³_id
+, 
+	goff£t
+, 
+	gmes§ge_d©a
+, 
+	gmes§ge_Ëngth
+);
+
+410 #ifdeà
+EMSESP_DEBUG
+
+
+411 
+LOG_DEBUG
+(
+F
+("[DEBUG] New Tx [#%d]�–eg¿m,†’gth %d"), 
+tx_‹Ëg¿m_id_
+, 
+mes§ge_Ëngth
+);
+
+415 ià(
+	gtx_‹Ëg¿ms_
+.
+size
+(è>ð
+MAX_TX_TELEGRAMS
+) {
+
+416 
+tx_‹Ëg¿ms_
+.
+pÝ_äÚt
+();
+
+419 ià(
+	gäÚt
+) {
+
+420 
+	gtx_‹Ëg¿ms_
+.
+em¶aû_äÚt
+(
+tx_‹Ëg¿m_id_
+++, 
+¡d
+::
+move
+(
+‹Ëg¿m
+), 
+çl£
+);
+
+422 
+	gtx_‹Ëg¿ms_
+.
+em¶aû_back
+(
+tx_‹Ëg¿m_id_
+++, 
+¡d
+::
+move
+(
+‹Ëg¿m
+), 
+çl£
+);
+
+430 
+	gTxS”viû
+::
+add
+(
+ušt8_t
+ 
+Ý”©iÚ
+, cÚ¡ ušt8_ˆ* 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+, cÚ¡ 
+boÞ
+ 
+äÚt
+) {
+
+432 
+ušt8_t
+ 
+	g¤c
+ = 
+d©a
+[0];
+
+433 
+ušt8_t
+ 
+	gde¡
+ = 
+d©a
+[1];
+
+434 
+ušt8_t
+ 
+	goff£t
+ = 
+d©a
+[3];
+
+436 
+ušt16_t
+ 
+	gty³_id
+;
+
+437 cÚ¡ 
+ušt8_t
+ * 
+	gmes§ge_d©a
+;
+
+438 
+ušt8_t
+ 
+	gmes§ge_Ëngth
+;
+
+442 ià(
+	gd©a
+[2] < 0xF0) {
+
+444 
+	gty³_id
+ = 
+d©a
+[2];
+
+445 
+	gmes§ge_d©a
+ = 
+d©a
+ + 4;
+
+446 
+	gmes§ge_Ëngth
+ = 
+Ëngth
+ - 4;
+
+449 
+ušt8_t
+ 
+	gshiá
+ = 0;
+
+450 ià(
+	gd©a
+[2] != 0xFF) {
+
+452 
+shiá
+ = (
+d©a
+[4] != 0xFF) ? 2 : 1;
+
+454 
+	gty³_id
+ = (
+d©a
+[4 + 
+shiá
+] << 8) + data[5 + shift] + 256;
+
+455 
+	gmes§ge_d©a
+ = 
+d©a
+ + 6 + 
+shiá
+;
+
+456 
+	gmes§ge_Ëngth
+ = 
+Ëngth
+ - 6 - 
+shiá
+;
+
+460 ià((
+	gty³_id
+ =ð0è|| (
+mes§ge_Ëngth
+ == 0)) {
+
+461 #ifdeà
+EMSESP_DEBUG
+
+
+462 
+LOG_DEBUG
+(
+F
+("[DEBUG] Tx�–eg¿m�y³ %d fažed,†’gth %d"), 
+ty³_id
+, 
+mes§ge_Ëngth
+);
+
+467 ià(
+	gÝ”©iÚ
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_RAW
+) {
+
+468 ià(
+de¡
+ & 0x80) {
+
+469 
+Ý”©iÚ
+ = 
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_READ
+;
+
+471 
+	gÝ”©iÚ
+ = 
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+;
+
+472 
+£t_po¡_£nd_qu”y
+(
+ty³_id
+);
+
+474 
+	gEMSESP
+::
+£t_»ad_id
+(
+ty³_id
+);
+
+477 autØ
+	g‹Ëg¿m
+ = 
+¡d
+::
+make_sh¬ed
+<
+T–eg¿m
+>(
+Ý”©iÚ
+, 
+	g¤c
+, 
+	gde¡
+, 
+	gty³_id
+, 
+	goff£t
+, 
+	gmes§ge_d©a
+, 
+	gmes§ge_Ëngth
+);
+
+480 ià(
+	gtx_‹Ëg¿ms_
+.
+size
+(è>ð
+MAX_TX_TELEGRAMS
+) {
+
+481 
+tx_‹Ëg¿ms_
+.
+pÝ_äÚt
+();
+
+484 #ifdeà
+EMSESP_DEBUG
+
+
+485 
+LOG_DEBUG
+(
+F
+("[DEBUG] New Tx [#%d]�–eg¿m,†’gth %d"), 
+tx_‹Ëg¿m_id_
+, 
+mes§ge_Ëngth
+);
+
+488 ià(
+	gäÚt
+) {
+
+489 
+	gtx_‹Ëg¿ms_
+.
+em¶aû_äÚt
+(
+tx_‹Ëg¿m_id_
+++, 
+¡d
+::
+move
+(
+‹Ëg¿m
+), 
+çl£
+);
+
+491 
+	gtx_‹Ëg¿ms_
+.
+em¶aû_back
+(
+tx_‹Ëg¿m_id_
+++, 
+¡d
+::
+move
+(
+‹Ëg¿m
+), 
+çl£
+);
+
+496 
+	gTxS”viû
+::
+»ad_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+, cÚ¡ ušt8_ˆ
+off£t
+) {
+
+497 
+LOG_DEBUG
+(
+F
+("Tx„—d„eque¡�Ødeviû 0x%02X fÜ�y³ ID 0x%02X"), 
+de¡
+, 
+ty³_id
+);
+
+499 
+ušt8_t
+ 
+	gmes§ge_d©a
+[1] = {
+EMS_MAX_TELEGRAM_LENGTH
+};
+
+500 
+add
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_READ
+, 
+de¡
+, 
+ty³_id
+, 
+off£t
+, 
+mes§ge_d©a
+, 1);
+
+504 
+	gTxS”viû
+::
+£nd_¿w
+(cÚ¡ * 
+‹Ëg¿m_d©a
+) {
+
+506 
+‹Ëg¿m
+[
+EMS_MAX_TELEGRAM_LENGTH
+ * 3];
+
+507 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+¡¾’
+(
+‹Ëg¿m_d©a
+); i++) {
+
+508 
+	g‹Ëg¿m
+[
+i
+] = 
+‹Ëg¿m_d©a
+[i];
+
+510 
+	g‹Ëg¿m
+[
+¡¾’
+(
+‹Ëg¿m_d©a
+)] = '\0';
+
+512 
+ušt8_t
+ 
+	gcouÁ
+ = 0;
+
+513 * 
+	gp
+;
+
+514 
+	gv®ue
+[10] = {0};
+
+516 
+ušt8_t
+ 
+	gd©a
+[
+EMS_MAX_TELEGRAM_LENGTH
+];
+
+519 ià((
+	gp
+ = 
+¡¹ok
+(
+‹Ëg¿m
+, " ,"))) {
+
+520 
+¡¾ýy
+(
+v®ue
+, 
+p
+, 10);
+
+521 
+	gd©a
+[0] = (
+ušt8_t
+)
+¡¹Þ
+(
+v®ue
+, 0, 16);
+
+525 
+	gp
+ != 0) {
+
+526 ià((
+p
+ = 
+¡¹ok
+(
+nuÎ±r
+, " ,"))) {
+
+527 
+¡¾ýy
+(
+v®ue
+, 
+p
+, 10);
+
+528 
+ušt8_t
+ 
+	gv®
+ = (ušt8_t)
+¡¹Þ
+(
+v®ue
+, 0, 16);
+
+529 
+	gd©a
+[++
+couÁ
+] = 
+v®
+;
+
+533 ià(
+	gcouÁ
+ == 0) {
+
+537 
+add
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_RAW
+, 
+d©a
+, 
+couÁ
+ + 1, 
+Œue
+);
+
+542 
+	gTxS”viû
+::
+»Œy_tx
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+, cÚ¡ ušt8_ˆ* 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+) {
+
+544 ià(++
+	g»Œy_couÁ_
+ > 
+	gMAXIMUM_TX_RETRIES
+) {
+
+545 
+»£t_»Œy_couÁ
+();
+
+546 
+šüem’t_‹Ëg¿m_çž_couÁ
+();
+
+548 
+LOG_ERROR
+(
+F
+("Last Tx %s operation failed‡fter %d„etries. Ignoring„equest."),
+
+549 (
+Ý”©iÚ
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+è? 
+F
+("Write") : F("Read"),
+
+550 
+MAXIMUM_TX_RETRIES
+);
+
+554 #ifdeà
+EMSESP_DEBUG
+
+
+555 
+LOG_DEBUG
+(
+F
+("[DEBUG] Last Tx %s operation failed. Retry #%d. sent message: %s,„eceived: %s"),
+
+556 (
+Ý”©iÚ
+ =ð
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_WRITE
+è? 
+F
+("Write") : F("Read"),
+
+557 
+»Œy_couÁ_
+,
+
+558 
+‹Ëg¿m_Ï¡_
+->
+to_¡ršg
+().
+c_¡r
+(),
+
+559 
+H–³rs
+::
+d©a_to_hex
+(
+d©a
+, 
+Ëngth
+).
+c_¡r
+());
+
+563 ià(
+	gtx_‹Ëg¿ms_
+.
+size
+(è>ð
+MAX_TX_TELEGRAMS
+) {
+
+564 
+tx_‹Ëg¿ms_
+.
+pÝ_back
+();
+
+567 
+	gtx_‹Ëg¿ms_
+.
+em¶aû_äÚt
+(
+tx_‹Ëg¿m_id_
+++, 
+¡d
+::
+move
+(
+‹Ëg¿m_Ï¡_
+), 
+Œue
+);
+
+575 
+boÞ
+ 
+	gTxS”viû
+::
+is_Ï¡_tx
+(cÚ¡ 
+ušt8_t
+ 
+¤c
+, cÚ¡ ušt8_ˆ
+de¡
+) const {
+
+576  (((
+	g‹Ëg¿m_Ï¡_
+->
+	gde¡
+ & 0x7Fè=ð(
+¤c
+ & 0x7F)è&& ((
+de¡
+ & 0x7Fè=ð
+ems_bus_id
+()));
+
+581 
+ušt16_t
+ 
+	gTxS”viû
+::
+po¡_£nd_qu”y
+() {
+
+582 
+ušt16_t
+ 
+po¡_ty³id
+ = 
+this
+->
+g‘_po¡_£nd_qu”y
+();
+
+584 ià(
+	gpo¡_ty³id
+) {
+
+585 
+ušt8_t
+ 
+	gde¡
+ = (
+this
+->
+‹Ëg¿m_Ï¡_
+->
+de¡
+ & 0x7F);
+
+587 
+ušt8_t
+ 
+	goff£t
+ = (
+this
+->
+‹Ëg¿m_Ï¡_
+->
+ty³_id
+ =ð
+po¡_ty³id
+è? (Ñhis->‹Ëg¿m_Ï¡_->
+off£t
+ / 26) * 26) : 0;
+
+588 
+ušt8_t
+ 
+	gmes§ge_d©a
+[1] = {
+EMS_MAX_TELEGRAM_LENGTH
+};
+
+589 
+	gthis
+->
+add
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_READ
+, 
+de¡
+, 
+po¡_ty³id
+, 
+off£t
+, 
+mes§ge_d©a
+, 1, 
+Œue
+);
+
+591 
+LOG_DEBUG
+(
+F
+("S’dšg…o¡ v®id©�»ad,�y³ ID 0x%02X�Øde¡ 0x%02X"), 
+po¡_ty³id
+, 
+de¡
+);
+
+592 
+£t_po¡_£nd_qu”y
+(0);
+
+595  
+	gpo¡_ty³id
+;
+
+	@src/telegram.h
+
+19 #iâdeà
+EMSESP_TELEGRAM_H
+
+
+20 
+	#EMSESP_TELEGRAM_H
+
+
+	)
+
+22 
+	~<¡ršg
+>
+
+23 
+	~<li¡
+>
+
+26 #ià
+defšed
+(
+ESP8266
+)
+
+27 
+	~"u¬t/emsu¬t_e¥8266.h
+"
+
+28 #–ià
+defšed
+(
+ESP32
+)
+
+29 
+	~"u¬t/emsu¬t_e¥32.h
+"
+
+30 #–ià
+defšed
+(
+EMSESP_STANDALONE
+)
+
+31 
+	~<emsu¬t_¡ªd®Úe.h
+>
+
+34 
+	~<uuid/log.h
+>
+
+36 
+	~"h–³rs.h
+"
+
+39 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_VALUE_BOOL
+ = 0xFF;
+
+40 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_VALUE_BOOL_OFF
+ = 0x00;
+
+41 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_VALUE_BOOL_ON
+ = 0x01;
+
+43 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_VALUE_BOOL_NOTSET
+ = 0xFE;
+
+44 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_VALUE_UINT_NOTSET
+ = 0xFF;
+
+45 
+cÚ¡ex´
+ 
+št8_t
+ 
+	gEMS_VALUE_INT_NOTSET
+ = 0x7F;
+
+46 
+cÚ¡ex´
+ 
+ušt16_t
+ 
+	gEMS_VALUE_USHORT_NOTSET
+ = 0x7D00;
+
+47 
+cÚ¡ex´
+ 
+št16_t
+ 
+	gEMS_VALUE_SHORT_NOTSET
+ = 0x7D00;
+
+48 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+	gEMS_VALUE_ULONG_NOTSET
+ = 0xFFFFFFFF;
+
+50 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_MAX_TELEGRAM_LENGTH
+ = 32;
+
+51 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_MAX_TELEGRAM_MESSAGE_LENGTH
+ = 27;
+
+53 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+55 þas 
+	cT–eg¿m
+ {
+
+56 
+	gpublic
+:
+
+57 
+T–eg¿m
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+,
+
+58 cÚ¡ 
+ušt8_t
+ 
+¤c
+,
+
+59 cÚ¡ 
+ušt8_t
+ 
+de¡
+,
+
+60 cÚ¡ 
+ušt16_t
+ 
+ty³_id
+,
+
+61 cÚ¡ 
+ušt8_t
+ 
+off£t
+,
+
+62 cÚ¡ 
+ušt8_t
+ * 
+mes§ge_d©a
+,
+
+63 cÚ¡ 
+ušt8_t
+ 
+mes§ge_Ëngth
+);
+
+64 ~
+T–eg¿m
+() = ;
+
+66 cÚ¡ 
+ušt8_t
+ 
+	gÝ”©iÚ
+;
+
+67 cÚ¡ 
+ušt8_t
+ 
+	g¤c
+;
+
+68 cÚ¡ 
+ušt8_t
+ 
+	gde¡
+;
+
+69 cÚ¡ 
+ušt16_t
+ 
+	gty³_id
+;
+
+70 cÚ¡ 
+ušt8_t
+ 
+	goff£t
+;
+
+71 cÚ¡ 
+ušt8_t
+ 
+	gmes§ge_Ëngth
+;
+
+72 
+ušt8_t
+ 
+	gmes§ge_d©a
+[
+EMS_MAX_TELEGRAM_MESSAGE_LENGTH
+];
+
+74 
+	gO³¿tiÚ
+ : 
+ušt8_t
+ {
+
+75 
+NONE
+ = 0,
+
+76 
+	gRX
+,
+
+77 
+	gTX_RAW
+,
+
+78 
+	gTX_READ
+,
+
+79 
+	gTX_WRITE
+,
+
+82 
+	g¡d
+::
+¡ršg
+ 
+to_¡ršg_mes§ge
+() const;
+
+83 
+	g¡d
+::
+¡ršg
+ 
+to_¡ršg
+() const;
+
+86 
+boÞ
+ 
+»ad_b™v®ue
+(
+ušt8_t
+ & 
+v®ue
+, cÚ¡ ušt8_ˆ
+šdex
+, cÚ¡ ušt8_ˆ
+b™
+) const {
+
+87 
+ušt8_t
+ 
+	gabs_šdex
+ = (
+šdex
+ - 
+this
+->
+off£t
+);
+
+88 ià(
+	gabs_šdex
+ >ð
+this
+->
+mes§ge_Ëngth
+) {
+
+89  
+çl£
+;
+
+91 
+ušt8_t
+ 
+	gv®
+ = 
+v®ue
+;
+
+92 
+	gv®ue
+ = (
+ušt8_t
+)(((
+this
+->
+mes§ge_d©a
+[
+abs_šdex
+]è>> (
+b™
+)) & 0x01);
+
+93 ià(
+	gv®
+ !ð
+v®ue
+) {
+
+94  
+Œue
+;
+
+96  
+	gçl£
+;
+
+100 
+	g‹m¶©e
+ <
+ty³Çme
+ 
+	gV®ue
+>
+
+106 
+boÞ
+ 
+»ad_v®ue
+(
+V®ue
+ & 
+v®ue
+, cÚ¡ 
+ušt8_t
+ 
+šdex
+, ušt8_ˆ
+s
+ = 0) const {
+
+107 
+ušt8_t
+ 
+num_by‹s
+ = (!
+s
+è? (
+V®ue
+) : s;
+
+109 ià((
+	gšdex
+ < 
+	gthis
+->
+	goff£t
+è|| ((šdex -�his->off£ˆ+ 
+	gnum_by‹s
+ - 1è>ð
+this
+->
+mes§ge_Ëngth
+)) {
+
+110  
+çl£
+;
+
+112 autØ
+	gv®
+ = 
+v®ue
+;
+
+113 
+	gv®ue
+ = 0;
+
+114 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gnum_by‹s
+; i++) {
+
+115 
+	gv®ue
+ = (
+v®ue
+ << 8è+ 
+this
+->
+mes§ge_d©a
+[
+šdex
+ -�his->
+off£t
+ + 
+i
+];
+
+117 ià(
+	gv®
+ !ð
+v®ue
+) {
+
+118  
+Œue
+;
+
+120  
+	gçl£
+;
+
+123 
+	g´iv©e
+:
+
+124 
+št8_t
+ 
+_g‘D©aPos™iÚ
+(cÚ¡ 
+ušt8_t
+ 
+šdex
+, cÚ¡ ušt8_ˆ
+size
+) const;
+
+127 þas 
+	cEMSbus
+ {
+
+128 
+	gpublic
+:
+
+129 
+uuid
+::
+log
+::
+Logg”
+ 
+logg”_
+;
+
+131 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_MASK_UNSET
+ = 0xFF;
+
+132 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_MASK_HT3
+ = 0x80;
+
+133 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_MASK_BUDERUS
+ = 0xFF;
+
+134 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gEMS_TX_ERROR_LIMIT
+ = 10;
+
+136 
+boÞ
+ 
+is_ht3
+() {
+
+137  (
+	gems_mask_
+ =ð
+EMS_MASK_HT3
+);
+
+140 
+ušt8_t
+ 
+ems_mask
+() {
+
+141  
+	gems_mask_
+;
+
+144 
+ems_mask
+(
+ušt8_t
+ƒms_mask) {
+
+145 
+	gems_mask_
+ = 
+ems_mask
+ & 0x80;
+
+148 
+ušt8_t
+ 
+tx_mode
+() {
+
+149  
+	gtx_mode_
+;
+
+152 
+tx_mode
+(
+ušt8_t
+�x_mode) {
+
+153 
+	gtx_mode_
+ = 
+tx_mode
+;
+
+156 
+ušt8_t
+ 
+ems_bus_id
+() {
+
+157  
+	gems_bus_id_
+;
+
+160 
+ems_bus_id
+(
+ušt8_t
+ƒms_bus_id) {
+
+161 
+	gems_bus_id_
+ = 
+ems_bus_id
+;
+
+164 
+boÞ
+ 
+bus_cÚÃùed
+() {
+
+165 #iâdeà
+EMSESP_STANDALONE
+
+
+166 ià((
+	guuid
+::
+g‘_u±ime
+(è- 
+Ï¡_bus_aùiv™y_
+è> 
+EMS_BUS_TIMEOUT
+) {
+
+167 
+bus_cÚÃùed_
+ = 
+çl£
+;
+
+169  
+	gbus_cÚÃùed_
+;
+
+171  
+	gŒue
+;
+
+176 
+Ï¡_bus_aùiv™y
+(
+ušt32_t
+ 
+time¡amp
+) {
+
+177 
+	gÏ¡_bus_aùiv™y_
+ = 
+time¡amp
+;
+
+178 
+	gbus_cÚÃùed_
+ = 
+Œue
+;
+
+181 
+ušt8_t
+ 
+tx_¡©e
+() {
+
+182  
+	gtx_¡©e_
+;
+
+184 
+tx_¡©e
+(
+ušt8_t
+�x_state) {
+
+185 
+	gtx_¡©e_
+ = 
+tx_¡©e
+;
+
+188 
+ušt8_t
+ 
+ÿlcuÏ‹_üc
+(cÚ¡ ušt8_ˆ* 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+);
+
+190 
+	g´iv©e
+:
+
+191 
+cÚ¡ex´
+ 
+ušt32_t
+ 
+EMS_BUS_TIMEOUT
+ = 30000;
+
+192 
+ušt32_t
+ 
+	gÏ¡_bus_aùiv™y_
+;
+
+193 
+boÞ
+ 
+	gbus_cÚÃùed_
+;
+
+194 
+ušt8_t
+ 
+	gems_mask_
+;
+
+195 
+ušt8_t
+ 
+	gems_bus_id_
+;
+
+196 
+ušt8_t
+ 
+	gtx_mode_
+;
+
+197 
+ušt8_t
+ 
+	gtx_¡©e_
+;
+
+200 þas 
+	cRxS”viû
+ : 
+public
+ 
+EMSbus
+ {
+
+201 
+cÚ¡ex´
+ 
+size_t
+ 
+MAX_RX_TELEGRAMS
+ = 10;
+
+203 
+	gpublic
+:
+
+204 
+RxS”viû
+() = ;
+
+205 ~
+RxS”viû
+() = ;
+
+207 
+loÝ
+();
+
+208 
+add
+(
+ušt8_t
+ * 
+d©a
+, ušt8_ˆ
+Ëngth
+);
+
+210 
+ušt32_t
+ 
+‹Ëg¿m_couÁ
+() const {
+
+211  
+	g‹Ëg¿m_couÁ_
+;
+
+214 
+šüem’t_‹Ëg¿m_couÁ
+() {
+
+215 
+	g‹Ëg¿m_couÁ_
+++;
+
+218 
+ušt32_t
+ 
+‹Ëg¿m_”rÜ_couÁ
+() const {
+
+219  
+	g‹Ëg¿m_”rÜ_couÁ_
+;
+
+222 
+šüem’t_‹Ëg¿m_”rÜ_couÁ
+() {
+
+223 
+	g‹Ëg¿m_”rÜ_couÁ_
+++;
+
+226 þas 
+	cQueuedRxT–eg¿m
+ {
+
+227 
+	gpublic
+:
+
+228 cÚ¡ 
+ušt16_t
+ 
+id_
+;
+
+229 cÚ¡ 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m_
+;
+
+231 ~
+QueuedRxT–eg¿m
+() = ;
+
+232 
+QueuedRxT–eg¿m
+(
+ušt16_t
+ 
+id
+, 
+¡d
+::
+sh¬ed_±r
+<
+T–eg¿m
+> && 
+‹Ëg¿m
+)
+
+233 : 
+id_
+(
+id
+)
+
+234 , 
+‹Ëg¿m_
+(
+¡d
+::
+move
+(
+‹Ëg¿m
+)) {
+
+238 cÚ¡ 
+	g¡d
+::
+li¡
+<
+QueuedRxT–eg¿m
+> 
+queue
+() const {
+
+239  
+rx_‹Ëg¿ms_
+;
+
+242 
+	g´iv©e
+:
+
+243 
+ušt8_t
+ 
+rx_‹Ëg¿m_id_
+ = 0;
+
+244 
+ušt32_t
+ 
+	g‹Ëg¿m_couÁ_
+ = 0;
+
+245 
+ušt32_t
+ 
+	g‹Ëg¿m_”rÜ_couÁ_
+ = 0;
+
+246 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+rx_‹Ëg¿m
+;
+
+247 
+	g¡d
+::
+li¡
+<
+QueuedRxT–eg¿m
+> 
+rx_‹Ëg¿ms_
+;
+
+250 þas 
+	cTxS”viû
+ : 
+public
+ 
+EMSbus
+ {
+
+251 
+public
+:
+
+252 
+cÚ¡ex´
+ 
+size_t
+ 
+MAX_TX_TELEGRAMS
+ = 20;
+
+253 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gTX_WRITE_FAIL
+ = 4;
+
+254 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gTX_WRITE_SUCCESS
+ = 1;
+
+256 
+TxS”viû
+() = ;
+
+257 ~
+TxS”viû
+() = ;
+
+259 
+¡¬t
+();
+
+260 
+£nd
+();
+
+261 
+add
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+,
+
+262 cÚ¡ 
+ušt8_t
+ 
+de¡
+,
+
+263 cÚ¡ 
+ušt16_t
+ 
+ty³_id
+,
+
+264 cÚ¡ 
+ušt8_t
+ 
+off£t
+,
+
+265 
+ušt8_t
+ * 
+mes§ge_d©a
+,
+
+266 cÚ¡ 
+ušt8_t
+ 
+mes§ge_Ëngth
+,
+
+267 cÚ¡ 
+boÞ
+ 
+äÚt
+ = 
+çl£
+);
+
+268 
+add
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+, cÚ¡ ušt8_ˆ* 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+, cÚ¡ 
+boÞ
+ 
+äÚt
+ = 
+çl£
+);
+
+269 
+»ad_»que¡
+(cÚ¡ 
+ušt16_t
+ 
+ty³_id
+, cÚ¡ 
+ušt8_t
+ 
+de¡
+, cÚ¡ ušt8_ˆ
+off£t
+ = 0);
+
+270 
+£nd_¿w
+(cÚ¡ * 
+‹Ëg¿m_d©a
+);
+
+271 
+£nd_pÞl
+();
+
+272 
+æush_tx_queue
+();
+
+273 
+»Œy_tx
+(cÚ¡ 
+ušt8_t
+ 
+Ý”©iÚ
+, cÚ¡ ušt8_ˆ* 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+);
+
+274 
+boÞ
+ 
+is_Ï¡_tx
+(cÚ¡ 
+ušt8_t
+ 
+¤c
+, cÚ¡ ušt8_ˆ
+de¡
+) const;
+
+275 
+ušt16_t
+ 
+po¡_£nd_qu”y
+();
+
+277 
+ušt8_t
+ 
+»Œy_couÁ
+() const {
+
+278  
+	g»Œy_couÁ_
+;
+
+281 
+»£t_»Œy_couÁ
+() {
+
+282 
+	g»Œy_couÁ_
+ = 0;
+
+285 
+£t_po¡_£nd_qu”y
+(
+ušt16_t
+ 
+ty³_id
+) {
+
+286 
+	g‹Ëg¿m_Ï¡_po¡_£nd_qu”y_
+ = 
+ty³_id
+;
+
+289 
+ušt16_t
+ 
+g‘_po¡_£nd_qu”y
+() {
+
+290  
+	g‹Ëg¿m_Ï¡_po¡_£nd_qu”y_
+;
+
+293 
+ušt32_t
+ 
+‹Ëg¿m_»ad_couÁ
+() const {
+
+294  
+	g‹Ëg¿m_»ad_couÁ_
+;
+
+297 
+‹Ëg¿m_»ad_couÁ
+(
+ušt8_t
+�elegram_read_count) {
+
+298 
+	g‹Ëg¿m_»ad_couÁ_
+ = 
+‹Ëg¿m_»ad_couÁ
+;
+
+301 
+šüem’t_‹Ëg¿m_»ad_couÁ
+() {
+
+302 
+	g‹Ëg¿m_»ad_couÁ_
+++;
+
+305 
+ušt32_t
+ 
+‹Ëg¿m_çž_couÁ
+() const {
+
+306  
+	g‹Ëg¿m_çž_couÁ_
+;
+
+309 
+‹Ëg¿m_çž_couÁ
+(
+ušt8_t
+�elegram_fail_count) {
+
+310 
+	g‹Ëg¿m_çž_couÁ_
+ = 
+‹Ëg¿m_çž_couÁ
+;
+
+313 
+šüem’t_‹Ëg¿m_çž_couÁ
+() {
+
+314 
+	g‹Ëg¿m_çž_couÁ_
+++;
+
+317 
+ušt32_t
+ 
+‹Ëg¿m_wr™e_couÁ
+() const {
+
+318  
+	g‹Ëg¿m_wr™e_couÁ_
+;
+
+321 
+‹Ëg¿m_wr™e_couÁ
+(
+ušt8_t
+�elegram_write_count) {
+
+322 
+	g‹Ëg¿m_wr™e_couÁ_
+ = 
+‹Ëg¿m_wr™e_couÁ
+;
+
+325 
+šüem’t_‹Ëg¿m_wr™e_couÁ
+() {
+
+326 
+	g‹Ëg¿m_wr™e_couÁ_
+++;
+
+329 þas 
+	cQueuedTxT–eg¿m
+ {
+
+330 
+	gpublic
+:
+
+331 cÚ¡ 
+ušt16_t
+ 
+id_
+;
+
+332 cÚ¡ 
+	g¡d
+::
+sh¬ed_±r
+<cÚ¡ 
+T–eg¿m
+> 
+‹Ëg¿m_
+;
+
+333 cÚ¡ 
+boÞ
+ 
+	g»Œy_
+;
+
+335 ~
+QueuedTxT–eg¿m
+() = ;
+
+336 
+QueuedTxT–eg¿m
+(
+ušt16_t
+ 
+id
+, 
+¡d
+::
+sh¬ed_±r
+<
+T–eg¿m
+> && 
+‹Ëg¿m
+, 
+boÞ
+ 
+»Œy
+)
+
+337 : 
+id_
+(
+id
+)
+
+338 , 
+‹Ëg¿m_
+(
+¡d
+::
+move
+(
+‹Ëg¿m
+))
+
+339 , 
+»Œy_
+(
+»Œy
+) {
+
+343 cÚ¡ 
+	g¡d
+::
+li¡
+<
+QueuedTxT–eg¿m
+> 
+queue
+() const {
+
+344  
+tx_‹Ëg¿ms_
+;
+
+347 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+348 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gMAXIMUM_TX_RETRIES
+ = 0;
+
+350 
+cÚ¡ex´
+ 
+ušt8_t
+ 
+	gMAXIMUM_TX_RETRIES
+ = 3;
+
+353 
+	g´iv©e
+:
+
+354 
+¡d
+::
+li¡
+<
+QueuedTxT–eg¿m
+> 
+tx_‹Ëg¿ms_
+;
+
+356 
+ušt32_t
+ 
+	g‹Ëg¿m_»ad_couÁ_
+ = 0;
+
+357 
+ušt32_t
+ 
+	g‹Ëg¿m_wr™e_couÁ_
+ = 0;
+
+358 
+ušt32_t
+ 
+	g‹Ëg¿m_çž_couÁ_
+ = 0;
+
+360 
+	g¡d
+::
+sh¬ed_±r
+<
+T–eg¿m
+> 
+‹Ëg¿m_Ï¡_
+;
+
+361 
+ušt16_t
+ 
+	g‹Ëg¿m_Ï¡_po¡_£nd_qu”y_
+;
+
+362 
+ušt8_t
+ 
+	g»Œy_couÁ_
+ = 0;
+
+364 
+ušt8_t
+ 
+	gtx_‹Ëg¿m_id_
+ = 0;
+
+366 
+£nd_‹Ëg¿m
+(cÚ¡ 
+QueuedTxT–eg¿m
+ & 
+tx_‹Ëg¿m
+);
+
+367 
+£nd_‹Ëg¿m
+(cÚ¡ 
+ušt8_t
+ * 
+d©a
+, cÚ¡ ušt8_ˆ
+Ëngth
+);
+
+	@src/test/test.cpp
+
+21 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+23 
+	~"‹¡.h
+"
+
+25 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+29 
+	gTe¡
+::
+run_‹¡
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+commªd
+) {
+
+30 ià(
+commªd
+ == "default") {
+
+31 
+run_‹¡
+(
+sh–l
+, "mqtt");
+
+34 ià(
+	gcommªd
+.
+em±y
+()) {
+
+35 
+run_‹¡
+(
+sh–l
+, "default");
+
+38 ià(
+	gcommªd
+ == "render") {
+
+39 
+ušt8_t
+ 
+‹¡1
+ = 12;
+
+40 
+št8_t
+ 
+	g‹¡2
+ = -12;
+
+41 
+ušt16_t
+ 
+	g‹¡3
+ = 456;
+
+42 
+št16_t
+ 
+	g‹¡4
+ = -456;
+
+43 
+ušt8_t
+ 
+	g‹¡5
+ = 1;
+
+44 
+ušt32_t
+ 
+	g‹¡6
+ = 305419896;
+
+45 
+	g‹¡7
+ = 89.43;
+
+47 
+ušt8_t
+ 
+	g‹¡1u
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+48 
+št8_t
+ 
+	g‹¡2u
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+50 
+ušt8_t
+ 
+	g‹¡5u
+ = 
+EMS_VALUE_BOOL_NOTSET
+;
+
+51 
+ušt32_t
+ 
+	g‹¡6u
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+53 
+ušt16_t
+ 
+	g‹¡3u
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+54 
+št16_t
+ 
+	g‹¡4u
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+56 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»1"), 
+‹¡1
+, 
+F_
+(
+deg»es
+));
+
+57 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»2"), 
+‹¡2
+, 
+F_
+(
+deg»es
+));
+
+58 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»3"), 
+‹¡3
+, 
+F_
+(
+deg»es
+), 10);
+
+59 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»4"), 
+‹¡4
+, 
+F_
+(
+deg»es
+), 10);
+
+60 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»5"), 
+‹¡5
+, 
+nuÎ±r
+, 
+EMS_VALUE_BOOL
+);
+
+61 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»6"), 
+‹¡6
+, 
+F_
+(
+deg»es
+));
+
+62 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»7"), 
+‹¡7
+, 
+F_
+(
+deg»es
+), 2);
+
+63 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("Warm Water comfort setting"), F("Intelligent"));
+
+64 
+	gs
+[100];
+
+65 
+¡rýy
+(
+s
+, "Not very intelligent");
+
+66 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("W¬m W©” comfÜˆ£‰šg2"), 
+s
+);
+
+68 
+	gsh–l
+.
+´šŽn
+();
+
+70 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»1u"), 
+‹¡1u
+, 
+F_
+(
+deg»es
+));
+
+71 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»2u"), 
+‹¡2u
+, 
+F_
+(
+deg»es
+));
+
+72 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»3u"), 
+‹¡3u
+, 
+F_
+(
+deg»es
+), 10);
+
+73 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»4u"), 
+‹¡4u
+, 
+F_
+(
+deg»es
+), 10);
+
+74 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»5u"), 
+‹¡5u
+, 
+F_
+(
+deg»es
+), 
+EMS_VALUE_BOOL
+);
+
+75 
+	gEMSdeviû
+::
+´št_v®ue
+(
+sh–l
+, 2, 
+F
+("S–eùed flow�em³¿tu»6u"), 
+‹¡6u
+, 
+F_
+(
+deg»es
+), 100);
+
+77 
+	gsh–l
+.
+´šŽn
+();
+
+80 
+ušt8_t
+ 
+	gmes§ge_d©a
+[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+
+81 autØ
+	g‹Ëg¿m
+ = 
+¡d
+::
+make_sh¬ed
+<
+T–eg¿m
+>(T–eg¿m::
+O³¿tiÚ
+::
+RX
+, 0x10, 0x11, 0x1234, 0, 
+	gmes§ge_d©a
+, (message_data));
+
+83 
+ušt8_t
+ 
+	gušt8b
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+84 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+ušt8b
+, 0);
+
+85 
+	gsh–l
+.
+´štæn
+("ušt8:ƒx³ùšg %02X, gÙ:%02X", 1, 
+ušt8b
+);
+
+87 
+št8_t
+ 
+	gšt8b
+ = 
+EMS_VALUE_INT_NOTSET
+;
+
+88 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+št8b
+, 0);
+
+89 
+	gsh–l
+.
+´štæn
+("št8:ƒx³ùšg %02X, gÙ:%02X", 1, 
+št8b
+);
+
+91 
+ušt16_t
+ 
+	gušt16b
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+92 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+ušt16b
+, 1);
+
+93 
+	gsh–l
+.
+´štæn
+("ušt16:ƒx³ùšg %02X, gÙ:%02X", 0x0203, 
+ušt16b
+);
+
+95 
+št16_t
+ 
+	gšt16b
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+96 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+št16b
+, 1);
+
+97 
+	gsh–l
+.
+´štæn
+("št16:ƒx³ùšg %02X, gÙ:%02X", 0x0203, 
+št16b
+);
+
+99 
+št16_t
+ 
+	gšt16b8
+ = 
+EMS_VALUE_SHORT_NOTSET
+;
+
+100 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+št16b8
+, 1, 1);
+
+101 
+	gsh–l
+.
+´štæn
+("št16 1 by‹:ƒx³ùšg %02X, gÙ:%02X", 0x02, 
+št16b8
+);
+
+103 
+ušt32_t
+ 
+	gušt32b
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+104 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+ušt32b
+, 1, 3);
+
+105 
+	gsh–l
+.
+´štæn
+("ušt32 3 by‹s:ƒx³ùšg %02X, gÙ:%02X", 0x020304, 
+ušt32b
+);
+
+107 
+	gušt32b
+ = 
+EMS_VALUE_ULONG_NOTSET
+;
+
+108 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+ušt32b
+, 1);
+
+109 
+	gsh–l
+.
+´štæn
+("ušt32 4 by‹s:ƒx³ùšg %02X, gÙ:%02X", 0x02030405, 
+ušt32b
+);
+
+112 
+ušt16_t
+ 
+	gušt16
+ = 
+EMS_VALUE_USHORT_NOTSET
+;
+
+113 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+ušt16
+, 9);
+
+114 
+	gsh–l
+.
+´štæn
+("ušt16 out-of-bounds: was:%02X,‚ew:%02X", 
+EMS_VALUE_USHORT_NOTSET
+, 
+ušt16
+);
+
+115 
+ušt8_t
+ 
+	gušt8oob
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+116 
+	g‹Ëg¿m
+->
+»ad_v®ue
+(
+ušt8oob
+, 9);
+
+117 
+	gsh–l
+.
+´štæn
+("ušt8 out-of-bounds: was:%02X,‚ew:%02X", 
+EMS_VALUE_UINT_NOTSET
+, 
+ušt8oob
+);
+
+120 
+ušt8_t
+ 
+	gušt8b™b
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+121 
+	g‹Ëg¿m
+->
+»ad_b™v®ue
+(
+ušt8b™b
+, 1, 1);
+
+122 
+	gsh–l
+.
+´štæn
+("ušt8 b™„—d:ƒx³ùšg 1, gÙ:%d", 
+ušt8b™b
+);
+
+123 
+	gušt8b™b
+ = 
+EMS_VALUE_UINT_NOTSET
+;
+
+124 
+	g‹Ëg¿m
+->
+»ad_b™v®ue
+(
+ušt8b™b
+, 0, 0);
+
+125 
+	gsh–l
+.
+´štæn
+("ušt8 b™„—d:ƒx³ùšg 1, gÙ:%d", 
+ušt8b™b
+);
+
+128 ià(
+	gcommªd
+ == "devices") {
+
+129 
+EMSESP
+::
+rx£rviû_
+.
+ems_mask
+(
+EMSbus
+::
+EMS_MASK_BUDERUS
+);
+
+134 
+rx_‹Ëg¿m
+({0x08, 0x00, 0x07, 0x00, 0x0B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00});
+
+137 ià(
+	gcommªd
+ == "boiler") {
+
+139 
+¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+140 
+	gEMSESP
+::
+add_deviû
+(0x08, 123, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+143 
+u¬t_‹Ëg¿m
+({0x08, 0x0B, 0x14, 00, 0x3C, 0x1F, 0xAC, 0x70});
+
+147 ià((
+	gcommªd
+ =ð"unknown"è|| (
+commªd
+ == "u")) {
+
+149 
+¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+152 
+	gEMSESP
+::
+add_deviû
+(0x08, 84, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+155 
+	gEMSESP
+::
+add_deviû
+(0x09, 84, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+159 
+rx_‹Ëg¿m
+({0x09, 0x0B, 0x02, 0x00, 0x59, 0x09, 0x0a});
+
+161 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+164 ià(
+	gcommªd
+ == "unknown2") {
+
+166 
+rx_‹Ëg¿m
+({0x09, 0x0B, 0x02, 0x00, 0x5A, 0x01, 0x02});
+
+169 ià(
+	gcommªd
+ == "gateway") {
+
+171 
+rx_‹Ëg¿m
+({0x48, 0x0B, 0x02, 0x00, 0xBD, 0x04, 0x06, 00, 00, 00, 00, 00, 00, 00});
+
+175 
+rx_‹Ëg¿m
+({0x08, 0x00, 0x07, 0x00, 0x09, 01, 00, 00, 00, 00, 00, 00, 01, 00, 00, 00, 00});
+
+178 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("01.03");
+
+179 
+	gEMSESP
+::
+add_deviû
+(0x10, 158, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+183 
+rx_‹Ëg¿m
+({0x10, 0x48, 0xFF, 00, 01, 0x6B, 00, 0x6B, 0x08, 0x4F, 00, 00, 00, 02, 00, 00, 00, 02, 00, 03, 00, 03, 00, 03});
+
+186 ià(
+	gcommªd
+ == "general") {
+
+187 
+sh–l
+.
+´štæn
+(
+F
+("Testing‡dding‡ boiler &�hermostat..."));
+
+189 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+190 
+	gEMSESP
+::
+add_deviû
+(0x08, 123, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+191 
+	gEMSESP
+::
+add_deviû
+(0x18, 157, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BOSCH
+);
+
+195 
+u¬t_‹Ëg¿m
+({0x08, 0x00, 0x18, 0x00, 0x00, 0x02, 0x5A, 0x73, 0x3D, 0x0A, 0x10, 0x65, 0x40, 0x02, 0x1A,
+
+199 
+u¬t_‹Ëg¿m
+({0x08, 0x98, 0x33, 0x00, 0x23, 0x24});
+
+202 
+u¬t_‹Ëg¿m
+({0x08, 0x0B, 0x33, 0x00, 0x08, 0xFF, 0x34, 0xFB, 0x00, 0x28, 0x00, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x00});
+
+205 
+u¬t_‹Ëg¿m
+({0x98, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xCF, 0x21, 0x2E, 0x00, 0x00, 0x2E, 0x24,
+
+208 
+	gsh–l
+.
+švoke_commªd
+("show");
+
+213 ià(
+	gcommªd
+ == "thermostat") {
+
+214 
+sh–l
+.
+´štæn
+(
+F
+("Testing‡dding‡�hermostat�o�he EMS bus..."));
+
+223 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+229 
+	gEMSESP
+::
+add_deviû
+(0x10, 192, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+JUNKERS
+);
+
+232 
+u¬t_‹Ëg¿m
+({0x90, 0x00, 0xFF, 0x00, 0x00, 0x6F, 0x00, 0xCF, 0x21, 0x2E, 0x20, 0x00, 0x2E, 0x24,
+
+236 
+u¬t_‹Ëg¿m
+({0x90, 0x00, 0xFF, 0x00, 0x00, 0x70, 0x00, 0xCF, 0x22, 0x2F, 0x10, 0x00, 0x2E, 0x24,
+
+240 
+u¬t_‹Ëg¿m
+({0x90, 0x00, 0xFF, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00});
+
+243 ià(
+	gcommªd
+ == "tc100") {
+
+244 
+sh–l
+.
+´štæn
+(
+F
+("Testing‡dding‡ TC100�hermostat�o�he EMS bus..."));
+
+246 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("02.21");
+
+252 
+	gEMSESP
+::
+add_deviû
+(0x18, 202, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BOSCH
+);
+
+255 
+u¬t_‹Ëg¿m
+({0x98, 0x0B, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+259 ià(
+	gcommªd
+ == "solar") {
+
+260 
+sh–l
+.
+´štæn
+(
+F
+("Testing Solar"));
+
+262 
+	gEMSESP
+::
+rx£rviû_
+.
+ems_mask
+(
+EMSbus
+::
+EMS_MASK_BUDERUS
+);
+
+264 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+265 
+	gEMSESP
+::
+add_deviû
+(0x30, 163, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+269 
+rx_‹Ëg¿m
+({0xB0, 0x0B, 0xFF, 00, 0x02, 0x62, 00, 0x44, 0x02, 0x7A, 0x80, 00, 0x80, 0x00, 0x80, 00,
+
+271 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+273 
+rx_‹Ëg¿m
+({0xB0, 0x0B, 0xFF, 0x00, 0x02, 0x62, 0x01, 0x44, 0x03, 0x30, 0x80, 00, 0x80, 00, 0x80, 00,
+
+275 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+277 
+rx_‹Ëg¿m
+({0xB0, 00, 0xFF, 0x18, 02, 0x62, 0x80, 00, 0xB8});
+
+278 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+280 
+	gEMSESP
+::
+£nd_¿w_‹Ëg¿m
+("B0 00 FF 18 02 62 80 00 B8");
+
+282 
+u¬t_‹Ëg¿m
+("30 00 FF 0A 02 6A 04");
+
+283 
+u¬t_‹Ëg¿m
+("30 00 FF 00 02 64 00 00 00 04 00 00 FF 00 00 1E 0B 09 64 00 00 00 00");
+
+285 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+287 
+u¬t_‹Ëg¿m
+("30 00 FF 0A 02 6A 03");
+
+289 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+292 ià(
+	gcommªd
+ == "solar200") {
+
+293 
+sh–l
+.
+´štæn
+(
+F
+("Testing Solar SM200"));
+
+295 
+	gEMSESP
+::
+rx£rviû_
+.
+ems_mask
+(
+EMSbus
+::
+EMS_MASK_BUDERUS
+);
+
+297 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+298 
+	gEMSESP
+::
+add_deviû
+(0x30, 164, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+302 
+rx_‹Ëg¿m
+({0xB0, 0x0B, 0xFF, 00, 0x02, 0x62, 00, 0x44, 0x02, 0x7A, 0x80, 00, 0x80, 0x00, 0x80, 00,
+
+304 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+306 
+rx_‹Ëg¿m
+({0xB0, 0x0B, 0xFF, 0x00, 0x02, 0x62, 0x01, 0x44, 0x03, 0x30, 0x80, 00, 0x80, 00, 0x80, 00,
+
+308 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+310 
+rx_‹Ëg¿m
+({0xB0, 00, 0xFF, 0x18, 02, 0x62, 0x80, 00, 0xB8});
+
+311 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+313 
+	gEMSESP
+::
+£nd_¿w_‹Ëg¿m
+("B0 00 FF 18 02 62 80 00 B8");
+
+315 
+u¬t_‹Ëg¿m
+("30 00 FF 0A 02 6A 04");
+
+316 
+u¬t_‹Ëg¿m
+("30 00 FF 00 02 64 00 00 00 04 00 00 FF 00 00 1E 0B 09 64 00 00 00 00");
+
+318 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+320 
+u¬t_‹Ëg¿m
+("30 00 FF 0A 02 6A 03");
+
+322 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+325 ià(
+	gcommªd
+ == "km") {
+
+326 
+sh–l
+.
+´štæn
+(
+F
+("Testing KM200 Gateway"));
+
+328 
+	gem£¥
+::
+EMSESP
+::
+w©ch
+(EMSESP::
+W©ch
+::
+WATCH_RAW
+);
+
+330 
+	gEMSESP
+::
+rx£rviû_
+.
+ems_mask
+(
+EMSbus
+::
+EMS_MASK_BUDERUS
+);
+
+332 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+333 
+	gEMSESP
+::
+add_deviû
+(0x10, 158, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+334 
+	gEMSESP
+::
+add_deviû
+(0x48, 189, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+378 
+u¬t_‹Ëg¿m_w™hCRC
+("C8 90 F7 02 01 FF 01 A6 BA");
+
+380 
+u¬t_‹Ëg¿m_w™hCRC
+("90 48 FF 04 01 A6 5C");
+
+381 
+u¬t_‹Ëg¿m_w™hCRC
+("90 00 FF 00 01 A5 80 00 01 27 16 00 27 2A 05 A0 02 03 03 05 A0 05 A0 00 00 11 01 02 FF FF 00 9A");
+
+382 
+u¬t_‹Ëg¿m_w™hCRC
+("90 00 FF 19 01 A5 01 04 00 00 00 00 FF 64 2A 00 3C 01 FF 92");
+
+383 
+u¬t_‹Ëg¿m_w™hCRC
+("90 0B FF 00 01 A5 80 00 01 26 15 00 26 2A 05 A0 03 03 03 05 A0 05 A0 00 00 11 01 03 FF FF 00 FE");
+
+384 
+u¬t_‹Ëg¿m_w™hCRC
+("90 00 FF 19 01 A5 01 04 00 00 00 00 FF 64 2A 00 3C 01 FF 92");
+
+386 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+387 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+390 ià(
+	gcommªd
+ == "cr100") {
+
+391 
+sh–l
+.
+´štæn
+(
+F
+("Testing CR100"));
+
+393 
+	gem£¥
+::
+EMSESP
+::
+w©ch
+(EMSESP::
+W©ch
+::
+WATCH_RAW
+);
+
+395 
+	gEMSESP
+::
+rx£rviû_
+.
+ems_mask
+(
+EMSbus
+::
+EMS_MASK_HT3
+);
+
+397 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+398 
+	gEMSESP
+::
+add_deviû
+(0x18, 157, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BOSCH
+);
+
+402 
+u¬t_‹Ëg¿m
+({0x98, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xCF, 0x21, 0x2E, 0x00, 0x00, 0x2E, 0x24,
+
+405 
+u¬t_‹Ëg¿m
+("98 00 FF 00 01 A5 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03");
+
+406 
+u¬t_‹Ëg¿m_w™hCRC
+("98 00 FF 00 01 A6 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03 6B");
+
+408 
+	gEMSESP
+::
+tx£rviû_
+.
+æush_tx_queue
+();
+
+409 
+	gsh–l
+.
+loÝ_®l
+();
+
+410 
+	gEMSESP
+::
+show_deviû_v®ues
+(
+sh–l
+);
+
+412 
+	gsh–l
+.
+švoke_commªd
+("thermostat");
+
+413 
+	gsh–l
+.
+loÝ_®l
+();
+
+416 
+	gsh–l
+.
+švoke_commªd
+("set mode‡uto");
+
+418 
+	gsh–l
+.
+loÝ_®l
+();
+
+419 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+420 
+	gsh–l
+.
+loÝ_®l
+();
+
+422 
+	gEMSESP
+::
+tx£rviû_
+.
+£nd
+();
+
+425 ià(
+	gcommªd
+ == "rx2") {
+
+426 
+sh–l
+.
+´štæn
+(
+F
+("Testing Rx2..."));
+
+427 
+ušt8_t
+ 
+	gi
+ = 0; i < 30; i++) {
+
+428 
+u¬t_‹Ëg¿m
+({0x08, 0x0B, 0x33, 0x00, 0x08, 0xFF, 0x34, 0xFB, 0x00, 0x28, 0x00, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x00});
+
+432 ià(
+	gcommªd
+ == "rx") {
+
+433 
+sh–l
+.
+´štæn
+(
+F
+("Testing Rx..."));
+
+437 
+u¬t_‹Ëg¿m
+({0x08, 0x00, 0x18, 0x00, 0x00, 0x02, 0x5A, 0x73, 0x3D, 0x0A, 0x10, 0x65, 0x40, 0x02, 0x1A,
+
+441 
+u¬t_‹Ëg¿m
+({0x08, 0x97, 0x33, 0x00, 0x23, 0x24});
+
+444 
+u¬t_‹Ëg¿m
+({0x08, 0x0B, 0x33, 0x00, 0x08, 0xFF, 0x34, 0xFB, 0x00, 0x28, 0x00, 0x00, 0x46, 0x00, 0xFF, 0xFF, 0x00});
+
+447 
+u¬t_‹Ëg¿m
+({0x17, 0x0B, 0x91, 0x05, 0x44, 0x45, 0x46, 0x47});
+
+450 
+ušt8_t
+ 
+	gt5
+[] = {0x17, 0x0B, 0x91, 0x05, 0x44, 0x45, 0x46, 0x47, 0x99};
+
+451 
+	gEMSESP
+::
+rx£rviû_
+.
+add
+(
+t5
+, (t5));
+
+454 
+u¬t_‹Ëg¿m
+({0x0B, 0x88, 0x07, 0x00, 0x20});
+
+457 
+u¬t_‹Ëg¿m
+({0x08, 0x0B, 0x02, 0x00, 0x7B, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04});
+
+460 
+u¬t_‹Ëg¿m
+({0x11, 0x0B, 0x02, 0x00, 0x4D, 0x03, 0x03});
+
+464 
+u¬t_‹Ëg¿m
+({0x10, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xD7, 0x21, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x84,
+
+468 
+u¬t_‹Ëg¿m
+({0x10, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xC7, 0x21, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x84,
+
+472 
+u¬t_‹Ëg¿m
+({0x17, 0x08, 0x35, 0x00, 0x11, 0x00});
+
+475 
+u¬t_‹Ëg¿m
+({0x17, 0x08, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00});
+
+478 
+u¬t_‹Ëg¿m
+({0x17, 0x0B, 0xA8, 0x00, 0x01, 0x00, 0xFF, 0xF6, 0x01, 0x06, 0x00, 0x01, 0x0D, 0x01, 0x00, 0xFF,
+
+482 
+u¬t_‹Ëg¿m
+(
+
+486 
+u¬t_‹Ëg¿m
+({0x88, 00, 0x2A, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0xD2, 00, 00, 0x80, 00, 00, 01, 0x9D, 0x80, 0x00, 0x02, 0x79, 00});
+
+489 ià(
+	gcommªd
+ == "send") {
+
+490 
+sh–l
+.
+´štæn
+(
+F
+("Sending�o Tx..."));
+
+491 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+492 
+	gEMSESP
+::
+tx£rviû_
+.
+£nd
+();
+
+495 ià(
+	gcommªd
+ == "tx") {
+
+496 
+sh–l
+.
+´štæn
+(
+F
+("Testing Tx..."));
+
+498 
+	gEMSESP
+::
+tx£rviû_
+.
+æush_tx_queue
+();
+
+501 
+ušt8_t
+ 
+	gt11
+[] = {0x44, 0x45, 0x46, 0x47};
+
+502 
+	gEMSESP
+::
+tx£rviû_
+.
+add
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_RAW
+, 0x17, 0x91, 0x05, 
+t11
+, (t11));
+
+505 
+ušt8_t
+ 
+	gt12
+[] = {0x10, 0x08, 0x63, 0x04, 0x64};
+
+506 
+	gEMSESP
+::
+tx£rviû_
+.
+add
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_RAW
+, 
+t12
+, (t12));
+
+509 
+	gEMSESP
+::
+tx£rviû_
+.
+£nd_¿w
+("10 08 63 03 64 65 66");
+
+512 
+	gEMSESP
+::
+£nd_»ad_»que¡
+(0x18, 0x08);
+
+515 
+ušt8_t
+ 
+	gt18
+[] = {0x52, 0x79};
+
+516 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(0x91, 0x17, 0x00, 
+t18
+, (t18), 0x00);
+
+519 cÚ¡ 
+ušt8_t
+ 
+	gt13
+[] = {0x90, 0x0B, 0xFF, 00, 01, 0xBA, 00, 0x2E, 0x2A, 0x26, 0x1E, 0x03,
+
+521 
+	gEMSESP
+::
+tx£rviû_
+.
+add
+(
+T–eg¿m
+::
+O³¿tiÚ
+::
+TX_RAW
+, 
+t13
+, (t13));
+
+524 
+	gEMSESP
+::
+£nd_»ad_»que¡
+(0x16F, 0x10);
+
+526 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+529 
+ušt8_t
+ 
+	gi
+ = 0; i < 10; i++) {
+
+530 
+	gEMSESP
+::
+tx£rviû_
+.
+£nd
+();
+
+533 
+	gsh–l
+.
+loÝ_®l
+();
+
+535 
+	gEMSESP
+::
+tx£rviû_
+.
+æush_tx_queue
+();
+
+538 ià(
+	gcommªd
+ == "poll") {
+
+539 
+sh–l
+.
+´štæn
+(
+F
+("Testing Poll..."));
+
+542 
+	gEMSESP
+::
+tx£rviû_
+.
+æush_tx_queue
+();
+
+547 
+	gEMSESP
+::
+£nd_»ad_»que¡
+(0x91, 0x17);
+
+551 
+ušt8_t
+ 
+	gpÞl
+[1] = {0x8B};
+
+552 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+pÞl
+, 1);
+
+555 
+u¬t_‹Ëg¿m
+({0x17, 0x08, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A});
+
+558 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+pÞl
+, 1);
+
+560 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+561 
+ušt8_t
+ 
+	gt2
+[] = {0x21, 0x22};
+
+562 
+	gEMSESP
+::
+£nd_wr™e_»que¡
+(0x91, 0x17, 0x00, 
+t2
+, (t2), 0);
+
+563 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+565 
+	gEMSESP
+::
+tx£rviû_
+.
+æush_tx_queue
+();
+
+568 ià(
+	gcommªd
+ == "pin") {
+
+569 
+sh–l
+.
+´štæn
+(
+F
+("Testing…in..."));
+
+571 
+	gEMSESP
+::
+add_cÚ‹xt_m’us
+();
+
+572 
+	gsh–l
+.
+švoke_commªd
+("su");
+
+573 
+	gsh–l
+.
+švoke_commªd
+("system");
+
+574 
+	gsh–l
+.
+švoke_commªd
+("help");
+
+575 
+	gsh–l
+.
+švoke_commªd
+("pin");
+
+576 
+	gsh–l
+.
+švoke_commªd
+("pin 1�rue");
+
+579 ià(
+	gcommªd
+ == "mqtt") {
+
+580 
+sh–l
+.
+´štæn
+(
+F
+("Testing MQTT..."));
+
+584 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+585 
+	gEMSESP
+::
+add_deviû
+(0x08, 123, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+588 
+	gEMSESP
+::
+add_deviû
+(0x18, 157, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BOSCH
+);
+
+591 
+u¬t_‹Ëg¿m
+({0x98, 0x00, 0xFF, 0x00, 0x01, 0xA5, 0x00, 0xCF, 0x21, 0x2E, 0x00, 0x00, 0x2E, 0x24,
+
+593 
+u¬t_‹Ëg¿m
+("98 00 FF 00 01 A5 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03");
+
+594 
+u¬t_‹Ëg¿m_w™hCRC
+("98 00 FF 00 01 A5 00 CF 21 2E 00 00 2E 24 03 25 03 03 01 03 25 00 C8 00 00 11 01 03 13");
+
+596 
+	gsh–l
+.
+loÝ_®l
+();
+
+598 
+	gbož”_tÝic
+[
+Mq‰
+::
+MQTT_TOPIC_MAX_SIZE
+];
+
+599 
+	gth”mo¡©_tÝic
+[
+Mq‰
+::
+MQTT_TOPIC_MAX_SIZE
+];
+
+600 
+	gsy¡em_tÝic
+[
+Mq‰
+::
+MQTT_TOPIC_MAX_SIZE
+];
+
+603 
+	gEMSESP
+::
+tx£rviû_
+.
+æush_tx_queue
+();
+
+604 
+	gEMSESP
+::
+EMSESP
+::
+mq‰_
+.
+publish
+("boiler_cmd", "test me");
+
+605 
+	gMq‰
+::
+show_mq‰
+(
+sh–l
+);
+
+607 
+¡rýy
+(
+bož”_tÝic
+, "ems-esp/boiler_cmd");
+
+608 
+¡rýy
+(
+th”mo¡©_tÝic
+, "ems-esp/thermostat_cmd");
+
+609 
+¡rýy
+(
+sy¡em_tÝic
+, "ems-esp/saystem_cmd");
+
+611 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+bož”_tÝic
+, "12345");
+
+612 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+("bad_topic", "12345");
+
+613 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+bož”_tÝic
+, "{\"cmd\":\"garbage\",\"data\":22.52}");
+
+614 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+bož”_tÝic
+, "{\"cmd\":\"comfort\",\"data\":\"eco\"}");
+
+615 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+bož”_tÝic
+, "{\"cmd\":\"wwactivated\",\"data\":\"1\"}");
+
+616 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+bož”_tÝic
+, "{\"cmd\":\"wwactivated\",\"data\":1}");
+
+617 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+bož”_tÝic
+, "{\"cmd\":\"flowtemp\",\"data\":55}");
+
+619 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+sy¡em_tÝic
+, "{\"cmd\":\"send\",\"data\":\"01 02 03 04 05\"}");
+
+620 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+sy¡em_tÝic
+, "{\"cmd\":\"pin\",\"id\":12,\"data\":\"1\"}");
+
+622 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"wwmode\",\"data\":\"auto\"}");
+
+623 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"control\",\"data\":\"1\"}");
+
+624 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"control\",\"data\":1}");
+
+625 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"mode\",\"data\":\"auto\",\"id\":2}");
+
+626 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"mode\",\"data\":\"auto\",\"hc\":2}");
+
+627 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"temp\",\"data\":19.5,\"hc\":1}");
+
+628 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"mode\",\"data\":\"auto\",\"hc\":\"2\"}");
+
+629 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"temp\",\"data\":22.56}");
+
+630 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"temp\",\"data\":22}");
+
+631 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"temp\",\"data\":\"22.56\"}");
+
+632 
+	gEMSESP
+::
+mq‰_
+.
+šcomšg
+(
+th”mo¡©_tÝic
+, "{\"cmd\":\"temp\",\"id\":2,\"data\":22}");
+
+637 
+	gEMSESP
+::
+add_cÚ‹xt_m’us
+();
+
+638 
+	gsh–l
+.
+švoke_commªd
+("su");
+
+639 
+	gsh–l
+.
+švoke_commªd
+("thermostat");
+
+640 
+	gsh–l
+.
+švoke_commªd
+("help");
+
+641 
+	gsh–l
+.
+švoke_commªd
+("call");
+
+642 
+	gsh–l
+.
+švoke_commªd
+("call wwmode");
+
+643 
+	gsh–l
+.
+švoke_commªd
+("call mode‡uto 2");
+
+644 
+	gsh–l
+.
+švoke_commªd
+("call�emp 22.56");
+
+646 
+	gMq‰
+::
+»subsüibe
+();
+
+647 
+	gMq‰
+::
+show_mq‰
+(
+sh–l
+);
+
+650 ià(
+	gcommªd
+ == "poll2") {
+
+651 
+sh–l
+.
+´štæn
+(
+F
+("Testing Tx Sending†ast message on queue..."));
+
+653 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+655 
+ušt8_t
+ 
+	gpÞl
+[1] = {0x8B};
+
+656 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+pÞl
+, 1);
+
+658 
+	gEMSESP
+::
+show_ems
+(
+sh–l
+);
+
+659 
+	gEMSESP
+::
+tx£rviû_
+.
+æush_tx_queue
+();
+
+662 ià(
+	gcommªd
+ == "rx2") {
+
+663 
+u¬t_‹Ëg¿m
+({0x1B, 0x5B, 0xFD, 0x2D, 0x9E, 0x3A, 0xB6, 0xE5, 0x02, 0x20, 0x33, 0x30, 0x32, 0x3A, 0x20, 0x5B,
+
+668 ià(
+	gcommªd
+ == "rx3") {
+
+669 
+u¬t_‹Ëg¿m
+({0x21, 0x0B, 0xFF, 0x00});
+
+673 ià(
+	gcommªd
+ == "tx2") {
+
+674 
+ušt8_t
+ 
+t
+[] = {0x0B, 0x88, 0x18, 0x00, 0x20, 0xD4};
+
+675 
+	gEMSu¬t
+::
+Œªsm™
+(
+t
+, (t));
+
+679 ià(
+	gcommªd
+ == "offset") {
+
+681 
+EMSESP
+::
+tx£rviû_
+.
+»ad_»que¡
+(0x18, 0x08, 27);
+
+684 ià(
+	gcommªd
+ == "mixing") {
+
+685 
+sh–l
+.
+´štæn
+(
+F
+("Testing Mixing..."));
+
+687 
+	gEMSESP
+::
+rx£rviû_
+.
+ems_mask
+(
+EMSbus
+::
+EMS_MASK_BUDERUS
+);
+
+689 
+	g¡d
+::
+¡ršg
+ 
+v”siÚ
+("1.2.3");
+
+690 
+	gEMSESP
+::
+add_deviû
+(0x28, 160, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+691 
+	gEMSESP
+::
+add_deviû
+(0x29, 161, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BUDERUS
+);
+
+693 
+	gEMSESP
+::
+add_deviû
+(0x20, 160, 
+v”siÚ
+, 
+EMSdeviû
+::
+B¿nd
+::
+BOSCH
+);
+
+696 
+rx_‹Ëg¿m
+({0xA9, 0x00, 0xFF, 0x00, 0x02, 0x32, 0x02, 0x6C, 0x00, 0x3C, 0x00, 0x3C, 0x3C, 0x46, 0x02, 0x03, 0x03, 0x00, 0x3C});
+
+699 
+rx_‹Ëg¿m
+({0xA8, 0x00, 0xFF, 0x00, 0x02, 0x31, 0x02, 0x35, 0x00, 0x3C, 0x00, 0x3C, 0x3C, 0x46, 0x02, 0x03, 0x03, 0x00, 0x3C});
+
+702 
+rx_‹Ëg¿m
+({0xA0, 0x00, 0xFF, 0x00, 0x01, 0x55, 0x00, 0x1A});
+
+706 
+	gEMSESP
+::
+loÝ
+();
+
+710 
+	gTe¡
+::
+rx_‹Ëg¿m
+(cÚ¡ 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> & 
+rx_d©a
+) {
+
+711 
+ušt8_t
+ 
+Ën
+ = 
+rx_d©a
+.
+size
+();
+
+712 
+ušt8_t
+ 
+	gd©a
+[50];
+
+713 
+ušt8_t
+ 
+	gi
+ = 0;
+
+714 
+	gËn
+--) {
+
+715 
+	gd©a
+[
+i
+] = 
+rx_d©a
+[i];
+
+716 
+	gi
+++;
+
+718 
+	gd©a
+[
+i
+] = 
+EMSESP
+::
+rx£rviû_
+.
+ÿlcuÏ‹_üc
+(
+d©a
+, i);
+
+719 
+	gEMSESP
+::
+rx£rviû_
+.
+add
+(
+d©a
+, 
+Ën
+ + 1);
+
+723 
+	gTe¡
+::
+u¬t_‹Ëg¿m
+(cÚ¡ 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> & 
+rx_d©a
+) {
+
+724 
+ušt8_t
+ 
+Ën
+ = 
+rx_d©a
+.
+size
+();
+
+725 
+ušt8_t
+ 
+	gd©a
+[50];
+
+726 
+ušt8_t
+ 
+	gi
+ = 0;
+
+727 
+	gËn
+--) {
+
+728 
+	gd©a
+[
+i
+] = 
+rx_d©a
+[i];
+
+729 
+	gi
+++;
+
+731 
+	gd©a
+[
+i
+] = 
+EMSESP
+::
+rx£rviû_
+.
+ÿlcuÏ‹_üc
+(
+d©a
+, i);
+
+732 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+d©a
+, 
+i
+ + 1);
+
+733 
+	gEMSESP
+::
+rx£rviû_
+.
+loÝ
+();
+
+737 
+	gTe¡
+::
+u¬t_‹Ëg¿m_w™hCRC
+(cÚ¡ * 
+rx_d©a
+) {
+
+739 
+‹Ëg¿m
+[(
+EMS_MAX_TELEGRAM_LENGTH
+ * 3) + 1];
+
+740 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+¡¾’
+(
+rx_d©a
+); i++) {
+
+741 
+	g‹Ëg¿m
+[
+i
+] = 
+rx_d©a
+[i];
+
+743 
+	g‹Ëg¿m
+[
+¡¾’
+(
+rx_d©a
+)] = '\0';
+
+745 
+ušt8_t
+ 
+	gcouÁ
+ = 0;
+
+746 * 
+	gp
+;
+
+747 
+	gv®ue
+[10] = {0};
+
+749 
+ušt8_t
+ 
+	gd©a
+[
+EMS_MAX_TELEGRAM_LENGTH
+];
+
+752 ià((
+	gp
+ = 
+¡¹ok
+(
+‹Ëg¿m
+, " ,"))) {
+
+753 
+¡¾ýy
+(
+v®ue
+, 
+p
+, 10);
+
+754 
+	gd©a
+[0] = (
+ušt8_t
+)
+¡¹Þ
+(
+v®ue
+, 0, 16);
+
+758 
+	gp
+ != 0) {
+
+759 ià((
+p
+ = 
+¡¹ok
+(
+nuÎ±r
+, " ,"))) {
+
+760 
+¡¾ýy
+(
+v®ue
+, 
+p
+, 10);
+
+761 
+ušt8_t
+ 
+	gv®
+ = (ušt8_t)
+¡¹Þ
+(
+v®ue
+, 0, 16);
+
+762 
+	gd©a
+[++
+couÁ
+] = 
+v®
+;
+
+766 ià(
+	gcouÁ
+ == 0) {
+
+770 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+d©a
+, 
+couÁ
+ + 1);
+
+771 
+	gEMSESP
+::
+rx£rviû_
+.
+loÝ
+();
+
+775 
+	gTe¡
+::
+u¬t_‹Ëg¿m
+(cÚ¡ * 
+rx_d©a
+) {
+
+777 
+‹Ëg¿m
+[(
+EMS_MAX_TELEGRAM_LENGTH
+ * 3) + 1];
+
+778 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+¡¾’
+(
+rx_d©a
+); i++) {
+
+779 
+	g‹Ëg¿m
+[
+i
+] = 
+rx_d©a
+[i];
+
+781 
+	g‹Ëg¿m
+[
+¡¾’
+(
+rx_d©a
+)] = '\0';
+
+783 
+ušt8_t
+ 
+	gcouÁ
+ = 0;
+
+784 * 
+	gp
+;
+
+785 
+	gv®ue
+[10] = {0};
+
+787 
+ušt8_t
+ 
+	gd©a
+[
+EMS_MAX_TELEGRAM_LENGTH
+];
+
+790 ià((
+	gp
+ = 
+¡¹ok
+(
+‹Ëg¿m
+, " ,"))) {
+
+791 
+¡¾ýy
+(
+v®ue
+, 
+p
+, 10);
+
+792 
+	gd©a
+[0] = (
+ušt8_t
+)
+¡¹Þ
+(
+v®ue
+, 0, 16);
+
+796 
+	gp
+ != 0) {
+
+797 ià((
+p
+ = 
+¡¹ok
+(
+nuÎ±r
+, " ,"))) {
+
+798 
+¡¾ýy
+(
+v®ue
+, 
+p
+, 10);
+
+799 
+ušt8_t
+ 
+	gv®
+ = (ušt8_t)
+¡¹Þ
+(
+v®ue
+, 0, 16);
+
+800 
+	gd©a
+[++
+couÁ
+] = 
+v®
+;
+
+804 ià(
+	gcouÁ
+ == 0) {
+
+808 
+	gd©a
+[
+couÁ
+ + 1] = 
+EMSESP
+::
+rx£rviû_
+.
+ÿlcuÏ‹_üc
+(
+d©a
+, count + 1);
+
+810 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+d©a
+, 
+couÁ
+ + 2);
+
+811 
+	gEMSESP
+::
+rx£rviû_
+.
+loÝ
+();
+
+814 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+push
+
+
+815 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+ignÜed
+ "-Wunused-parameter"
+
+818 #´agm¨
+GCC
+ 
+dŸgno¡ic
+ 
+pÝ
+
+
+	@src/test/test.h
+
+19 #ià
+defšed
+(
+EMSESP_DEBUG
+)
+
+21 #iâdeà
+EMSESP_TEST_H
+
+
+22 
+	#EMSESP_TEST_H
+
+
+	)
+
+24 
+	~<Ardušo.h
+>
+
+26 
+	~<veùÜ
+>
+
+27 
+	~<¡ršg
+>
+
+29 
+	~<uuid/commÚ.h
+>
+
+30 
+	~<uuid/cÚsÞe.h
+>
+
+31 
+	~<uuid/log.h
+>
+
+33 
+	~"emsdeviû.h
+"
+
+34 
+	~"emsçùÜy.h
+"
+
+35 
+	~"‹Ëg¿m.h
+"
+
+36 
+	~"mq‰.h
+"
+
+37 
+	~"em£¥.h
+"
+
+39 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+41 þas 
+	cTe¡
+ {
+
+42 
+	gpublic
+:
+
+43 
+run_‹¡
+(
+uuid
+::
+cÚsÞe
+::
+Sh–l
+ & 
+sh–l
+, cÚ¡ 
+¡d
+::
+¡ršg
+ & 
+commªd
+);
+
+44 
+dummy_mq‰_commªds
+(cÚ¡ * 
+mes§ge
+);
+
+45 
+rx_‹Ëg¿m
+(cÚ¡ 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> & 
+d©a
+);
+
+46 
+u¬t_‹Ëg¿m
+(cÚ¡ 
+¡d
+::
+veùÜ
+<
+ušt8_t
+> & 
+rx_d©a
+);
+
+47 
+u¬t_‹Ëg¿m
+(cÚ¡ * 
+rx_d©a
+);
+
+48 
+u¬t_‹Ëg¿m_w™hCRC
+(cÚ¡ * 
+rx_d©a
+);
+
+	@src/uart/emsuart_esp32.cpp
+
+23 #ià
+defšed
+(
+ESP32
+)
+
+25 
+	~"u¬t/emsu¬t_e¥32.h
+"
+
+27 
+	~"em£¥.h
+"
+
+29 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+31 
+RšgbufHªdË_t
+ 
+	gbuf_hªdË
+ = 
+NULL
+;
+
+32 
+pÜtMUX_TYPE
+ 
+	gmux
+ = 
+pÜtMUX_INITIALIZER_UNLOCKED
+;
+
+33 
+hw_tim”_t
+ * 
+	gtim”
+ = 
+NULL
+;
+
+34 
+boÞ
+ 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+35 
+ušt8_t
+ 
+	gtx_mode_
+ = 0xFF;
+
+36 
+ušt8_t
+ 
+	gemsTxBuf
+[
+EMS_MAXBUFFERSIZE
+];
+
+37 
+ušt8_t
+ 
+	gemsTxBufIdx
+ = 0;
+
+38 
+ušt8_t
+ 
+	gemsTxBufL’
+ = 0;
+
+39 
+ušt32_t
+ 
+	gemsTxWa™
+;
+
+44 
+	gEMSu¬t
+::
+emsu¬t_»cvTask
+(* 
+·¿
+) {
+
+46 
+size_t
+ 
+™em_size
+;
+
+47 
+ušt8_t
+ * 
+	g‹Ëg¿m
+ = (ušt8_ˆ*)
+xRšgbufãrReûive
+(
+buf_hªdË
+, &
+™em_size
+, 
+pÜtMAX_DELAY
+);
+
+48 
+ušt8_t
+ 
+	g‹Ëg¿mSize
+ = 
+™em_size
+;
+
+49 ià(
+	g‹Ëg¿m
+) {
+
+50 
+	gEMSESP
+::
+šcomšg_‹Ëg¿m
+(
+‹Ëg¿m
+, 
+‹Ëg¿mSize
+);
+
+51 
+vRšgbufãrR‘uºI‹m
+(
+buf_hªdË
+, (*)
+‹Ëg¿m
+);
+
+59 
+IRAM_ATTR
+ 
+	gEMSu¬t
+::
+emsu¬t_rx_šŒ_hªdËr
+(* 
+·¿
+) {
+
+60 
+ušt8_t
+ 
+rxbuf
+[
+EMS_MAXBUFFERSIZE
+];
+
+61 
+ušt8_t
+ 
+	gËngth
+;
+
+62 
+pÜtENTER_CRITICAL
+(&
+mux
+);
+
+63 ià(
+	gEMS_UART
+.
+	gšt_¡
+.
+	gbrk_d‘
+) {
+
+64 
+	gEMS_UART
+.
+	gšt_þr
+.
+	gbrk_d‘
+ = 1;
+
+65 
+	gËngth
+ = 0;
+
+66 
+	gEMS_UART
+.
+	g¡©us
+.
+	grxfifo_út
+) {
+
+67 
+ušt8_t
+ 
+	grx
+ = 
+EMS_UART
+.
+fifo
+.
+rw_by‹
+;
+
+68 ià(
+	gËngth
+ < 
+	gEMS_MAXBUFFERSIZE
+) {
+
+69 
+	grxbuf
+[
+Ëngth
+++] = 
+rx
+;
+
+71 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+74 ià((!
+	gdrÝ_Ãxt_rx
+è&& ((
+	gËngth
+ =ð2è|| (
+Ëngth
+ > 4))) {
+
+75 
+ba£Ty³
+ = 0;
+
+76 
+xRšgbufãrS’dFromISR
+(
+buf_hªdË
+, 
+rxbuf
+, 
+Ëngth
+ - 1, &
+ba£Ty³
+);
+
+78 
+	gdrÝ_Ãxt_rx
+ = 
+çl£
+;
+
+80 
+pÜtEXIT_CRITICAL
+(&
+mux
+);
+
+83 
+IRAM_ATTR
+ 
+	gEMSu¬t
+::
+emsu¬t_tx_tim”_šŒ_hªdËr
+() {
+
+84 ià(
+emsTxBufL’
+ == 0) {
+
+87 
+pÜtENTER_CRITICAL
+(&
+mux
+);
+
+88 ià(
+	gemsTxBufIdx
+ < 
+	gemsTxBufL’
+) {
+
+89 
+	gEMS_UART
+.
+	gfifo
+.
+	grw_by‹
+ = 
+emsTxBuf
+[
+emsTxBufIdx
+];
+
+90 ià(
+	gemsTxBufIdx
+ == 1) {
+
+91 
+tim”AÏrmWr™e
+(
+tim”
+, 
+emsTxWa™
+, 
+Œue
+);
+
+93 } ià(
+	gemsTxBufIdx
+ =ð
+emsTxBufL’
+) {
+
+94 
+EMS_UART
+.
+cÚf0
+.
+txd_šv
+ = 1;
+
+95 
+tim”AÏrmWr™e
+(
+tim”
+, 
+EMSUART_TX_BRK_TIMER
+, 
+Œue
+);
+
+96 } ià(
+	gemsTxBufIdx
+ =ð
+emsTxBufL’
+ + 1) {
+
+97 
+EMS_UART
+.
+cÚf0
+.
+txd_šv
+ = 0;
+
+98 
+	gemsTxBufL’
+ = 0;
+
+99 
+tim”AÏrmDi§bË
+(
+tim”
+);
+
+101 
+	gemsTxBufIdx
+++;
+
+102 
+pÜtEXIT_CRITICAL
+(&
+mux
+);
+
+108 
+	gEMSu¬t
+::
+¡¬t
+(cÚ¡ 
+ušt8_t
+ 
+tx_mode
+, cÚ¡ ušt8_ˆ
+rx_gpio
+, cÚ¡ ušt8_ˆ
+tx_gpio
+) {
+
+109 ià(
+	gtx_mode_
+ != 0xFF) {
+
+110 
+tx_mode_
+ = 
+tx_mode
+;
+
+111 
+»¡¬t
+();
+
+114 
+	gtx_mode_
+ = 
+tx_mode
+;
+
+116 
+u¬t_cÚfig_t
+ 
+	gu¬t_cÚfig
+ = {
+
+117 .
+baud_¿‹
+ = 
+EMSUART_BAUD
+,
+
+118 .
+	gd©a_b™s
+ = 
+UART_DATA_8_BITS
+,
+
+119 .
+	g·r™y
+ = 
+UART_PARITY_DISABLE
+,
+
+120 .
+	g¡Ý_b™s
+ = 
+UART_STOP_BITS_1
+,
+
+121 .
+	gæow_ù¾
+ = 
+UART_HW_FLOWCTRL_DISABLE
+,
+
+124 
+u¬t_·¿m_cÚfig
+(
+EMSUART_UART
+, &
+u¬t_cÚfig
+);
+
+125 
+u¬t_£t_pš
+(
+EMSUART_UART
+, 
+tx_gpio
+, 
+rx_gpio
+, 
+UART_PIN_NO_CHANGE
+, UART_PIN_NO_CHANGE);
+
+126 
+	gEMS_UART
+.
+	gšt_’a
+.
+	gv®
+ = 0;
+
+127 
+	gEMS_UART
+.
+	gšt_þr
+.
+	gv®
+ = 0xFFFFFFFF;
+
+128 
+	gEMS_UART
+.
+	gidË_cÚf
+.
+	gtx_brk_num
+ = 10;
+
+129 
+	gEMS_UART
+.
+	gidË_cÚf
+.
+	grx_idË_thrhd
+ = 256;
+
+130 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+131 
+	gbuf_hªdË
+ = 
+xRšgbufãrC»©e
+(128, 
+RINGBUF_TYPE_NOSPLIT
+);
+
+132 
+u¬t_i¤_»gi¡”
+(
+EMSUART_UART
+, 
+emsu¬t_rx_šŒ_hªdËr
+, 
+NULL
+, 
+ESP_INTR_FLAG_IRAM
+, NULL);
+
+133 
+xTaskC»©e
+(
+emsu¬t_»cvTask
+, "emsu¬t_»cvTask", 2048, 
+NULL
+, 
+cÚfigMAX_PRIORITIES
+ - 1, NULL);
+
+135 
+	gtim”
+ = 
+tim”Begš
+(0, 80, 
+Œue
+);
+
+136 
+tim”A‰achIÁ”ru±
+(
+tim”
+, &
+emsu¬t_tx_tim”_šŒ_hªdËr
+, 
+Œue
+);
+
+137 
+»¡¬t
+();
+
+143 
+	gEMSu¬t
+::
+¡Ý
+() {
+
+144 
+EMS_UART
+.
+št_’a
+.
+v®
+ = 0;
+
+145 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_šv
+ = 0;
+
+146 ià(
+	gemsTxBufL’
+ > 0) {
+
+147 
+tim”AÏrmDi§bË
+(
+tim”
+);
+
+154 
+	gEMSu¬t
+::
+»¡¬t
+() {
+
+155 ià(
+EMS_UART
+.
+št_¿w
+.
+brk_d‘
+) {
+
+156 
+EMS_UART
+.
+št_þr
+.
+brk_d‘
+ = 1;
+
+157 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+159 
+	gEMS_UART
+.
+	gšt_’a
+.
+	gbrk_d‘
+ = 1;
+
+160 
+	gemsTxBufIdx
+ = 0;
+
+161 
+	gemsTxBufL’
+ = 0;
+
+162 ià(
+	gtx_mode_
+ > 100) {
+
+163 
+	gemsTxWa™
+ = 
+EMSUART_TX_BIT_TIME
+ * (
+tx_mode_
+ - 90);
+
+165 
+	gemsTxWa™
+ = 
+EMSUART_TX_BIT_TIME
+ * (
+tx_mode_
+ + 10);
+
+167 ià(
+	gtx_mode_
+ =ð
+EMS_TXMODE_NEW
+) {
+
+168 
+EMS_UART
+.
+cÚf0
+.
+txd_brk
+ = 1;
+
+170 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_brk
+ = 0;
+
+177 
+	gEMSu¬t
+::
+£nd_pÞl
+(cÚ¡ 
+ušt8_t
+ 
+d©a
+) {
+
+178 
+Œªsm™
+(&
+d©a
+, 1);
+
+186 
+ušt16_t
+ 
+	gEMSu¬t
+::
+Œªsm™
+(cÚ¡ 
+ušt8_t
+ * 
+buf
+, cÚ¡ ušt8_ˆ
+Ën
+) {
+
+187 ià(
+	gËn
+ =ð0 || 
+Ën
+ >ð
+EMS_MAXBUFFERSIZE
+) {
+
+188  
+EMS_TX_STATUS_ERR
+;
+
+191 ià(
+	gtx_mode_
+ > 5) {
+
+192 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; i++) {
+
+193 
+	gemsTxBuf
+[
+i
+] = 
+buf
+[i];
+
+195 
+	gemsTxBufIdx
+ = 0;
+
+196 
+	gemsTxBufL’
+ = 
+Ën
+;
+
+197 ià(
+	gtx_mode_
+ > 100 && 
+	gËn
+ > 1) {
+
+198 
+tim”AÏrmWr™e
+(
+tim”
+, 
+EMSUART_TX_WAIT_REPLY
+, 
+Œue
+);
+
+200 
+tim”AÏrmWr™e
+(
+tim”
+, 
+emsTxWa™
+, 
+Œue
+);
+
+202 
+tim”AÏrmEÇbË
+(
+tim”
+);
+
+203  
+	gEMS_TX_STATUS_OK
+;
+
+206 ià(
+	gtx_mode_
+ =ð
+EMS_TXMODE_NEW
+) {
+
+207 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gËn
+; i++) {
+
+208 
+	gEMS_UART
+.
+	gfifo
+.
+	grw_by‹
+ = 
+buf
+[
+i
+];
+
+210  
+	gEMS_TX_STATUS_OK
+;
+
+213 ià(
+	gtx_mode_
+ =ð
+EMS_TXMODE_EMSPLUS
+) {
+
+214 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gËn
+; i++) {
+
+215 
+	gEMS_UART
+.
+	gfifo
+.
+	grw_by‹
+ = 
+buf
+[
+i
+];
+
+216 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_WAIT_PLUS
+);
+
+218 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_šv
+ = 1;
+
+219 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BRK_PLUS
+);
+
+220 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_šv
+ = 0;
+
+221  
+	gEMS_TX_STATUS_OK
+;
+
+224 ià(
+	gtx_mode_
+ =ð
+EMS_TXMODE_HT3
+) {
+
+225 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gËn
+; i++) {
+
+226 
+	gEMS_UART
+.
+	gfifo
+.
+	grw_by‹
+ = 
+buf
+[
+i
+];
+
+227 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_WAIT_HT3
+);
+
+229 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_šv
+ = 1;
+
+230 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BRK_HT3
+);
+
+231 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_šv
+ = 0;
+
+232  
+	gEMS_TX_STATUS_OK
+;
+
+239 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; i++) {
+
+240 vÞ©ž�
+ušt8_t
+ 
+	g_u¤xc
+ = 
+EMS_UART
+.
+¡©us
+.
+rxfifo_út
+;
+
+241 
+	gEMS_UART
+.
+	gfifo
+.
+	grw_by‹
+ = 
+buf
+[
+i
+];
+
+242 
+ušt16_t
+ 
+	gtimeoutút
+ = 
+EMSUART_TX_TIMEOUT
+;
+
+243 (
+	gEMS_UART
+.
+	g¡©us
+.
+	grxfifo_út
+ =ð
+_u¤xc
+è&& (--
+timeoutút
+ > 0)) {
+
+244 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BUSY_WAIT
+);
+
+247 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_šv
+ = 1;
+
+248 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BRK_EMS
+);
+
+249 
+	gEMS_UART
+.
+	gcÚf0
+.
+	gtxd_šv
+ = 0;
+
+250  
+	gEMS_TX_STATUS_OK
+;
+
+	@src/uart/emsuart_esp32.h
+
+23 #ià
+defšed
+(
+ESP32
+)
+
+25 #iâdeà
+EMSESP_EMSUART_H
+
+
+26 
+	#EMSESP_EMSUART_H
+
+
+	)
+
+28 
+	~<Ardušo.h
+>
+
+30 
+	~"ä“¹os/F»eRTOS.h
+"
+
+31 
+	~"ä“¹os/�sk.h
+"
+
+32 
+	~"ä“¹os/ršgbuf.h
+"
+
+33 
+	~"ä“¹os/queue.h
+"
+
+34 
+	~<driv”/u¬t.h
+>
+
+35 
+	~<driv”/tim”.h
+>
+
+37 
+	#EMS_MAXBUFFERSIZE
+ 33
+
+38 
+
+	)
+
+39 
+	#EMSUART_UART
+ 
+UART_NUM_2
+
+
+40 
+	#EMS_UART
+ 
+UART2
+
+
+41 
+	#EMSUART_BAUD
+ 9600
+
+42 
+
+	)
+
+43 
+	#EMS_TXMODE_DEFAULT
+ 1
+
+	)
+
+44 
+	#EMS_TXMODE_EMSPLUS
+ 2
+
+	)
+
+45 
+	#EMS_TXMODE_HT3
+ 3
+
+	)
+
+46 
+	#EMS_TXMODE_NEW
+ 4
+
+47 
+
+	)
+
+49 
+	#EMSUART_TX_BIT_TIME
+ 104
+
+50 
+
+	)
+
+52 
+	#EMSUART_TX_BRK_TIMER
+ (
+EMSUART_TX_BIT_TIME
+ * 10 + 28)
+
+53 
+	#EMSUART_TX_WAIT_REPLY
+ 100000
+
+54 
+
+	)
+
+56 
+	#EMSUART_TX_BUSY_WAIT
+ (
+EMSUART_TX_BIT_TIME
+ / 8)
+
+57 
+	#EMSUART_TX_TIMEOUT
+ (20 * 
+EMSUART_TX_BIT_TIME
+ / 
+EMSUART_TX_BUSY_WAIT
+)
+
+	)
+
+58 
+	#EMSUART_TX_BRK_EMS
+ (
+EMSUART_TX_BIT_TIME
+ * 10)
+
+	)
+
+62 
+	#EMSUART_TX_WAIT_HT3
+ (
+EMSUART_TX_BIT_TIME
+ * 17)
+
+63 
+	#EMSUART_TX_BRK_HT3
+ (
+EMSUART_TX_BIT_TIME
+ * 11)
+
+	)
+
+66 
+	#EMSUART_TX_WAIT_PLUS
+ (
+EMSUART_TX_BIT_TIME
+ * 20)
+
+67 
+	#EMSUART_TX_BRK_PLUS
+ (
+EMSUART_TX_BIT_TIME
+ * 11)
+
+	)
+
+69 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+71 
+	#EMS_TX_STATUS_OK
+ 1
+
+	)
+
+72 
+	#EMS_TX_STATUS_ERR
+ 0
+
+	)
+
+74 þas 
+	cEMSu¬t
+ {
+
+75 
+	gpublic
+:
+
+76 
+EMSu¬t
+() = ;
+
+77 ~
+EMSu¬t
+() = ;
+
+79 
+¡¬t
+(cÚ¡ 
+ušt8_t
+ 
+tx_mode
+, cÚ¡ ušt8_ˆ
+rx_gpio
+, cÚ¡ ušt8_ˆ
+tx_gpio
+);
+
+80 
+£nd_pÞl
+(cÚ¡ 
+ušt8_t
+ 
+d©a
+);
+
+81 
+¡Ý
+();
+
+82 
+»¡¬t
+();
+
+83 
+ušt16_t
+ 
+Œªsm™
+(cÚ¡ 
+ušt8_t
+ * 
+buf
+, cÚ¡ ušt8_ˆ
+Ën
+);
+
+85 
+	g´iv©e
+:
+
+86 
+emsu¬t_»cvTask
+(* 
+·¿
+);
+
+87 
+IRAM_ATTR
+ 
+emsu¬t_rx_šŒ_hªdËr
+(* 
+·¿
+);
+
+88 
+IRAM_ATTR
+ 
+emsu¬t_tx_tim”_šŒ_hªdËr
+();
+
+	@src/uart/emsuart_esp8266.cpp
+
+19 #ià
+defšed
+(
+ESP8266
+)
+
+21 
+	~"u¬t/emsu¬t_e¥8266.h
+"
+
+23 
+	~"em£¥.h
+"
+
+25 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+27 
+os_ev’t_t
+ 
+	g»cvTaskQueue
+[
+EMSUART_»cvTaskQueueL’
+];
+
+28 
+	gEMSu¬t
+::
+EMSRxBuf_t
+ * 
+pEMSRxBuf
+;
+
+29 
+	gEMSu¬t
+::
+EMSRxBuf_t
+ * 
+·EMSRxBuf
+[
+EMS_MAXBUFFERS
+];
+
+30 
+ušt8_t
+ 
+	gemsRxBufIdx
+ = 0;
+
+31 
+ušt8_t
+ 
+	gtx_mode_
+ = 0xFF;
+
+32 
+boÞ
+ 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+33 
+ušt8_t
+ 
+	gemsTxBuf
+[
+EMS_MAXBUFFERSIZE
+];
+
+34 
+ušt8_t
+ 
+	gemsTxBufIdx
+;
+
+35 
+ušt8_t
+ 
+	gemsTxBufL’
+;
+
+36 
+ušt32_t
+ 
+	gemsTxWa™
+;
+
+37 
+boÞ
+ 
+	gEMSu¬t
+::
+£ndšg_
+ = 
+çl£
+;
+
+43 
+ICACHE_RAM_ATTR
+ 
+	gEMSu¬t
+::
+emsu¬t_rx_šŒ_hªdËr
+(* 
+·¿
+) {
+
+44 
+ušt8_t
+ 
+Ëngth
+ = 0;
+
+45 
+ušt8_t
+ 
+	gu¬t_bufãr
+[
+EMS_MAXBUFFERSIZE
+ + 2];
+
+47 ià(
+USIS
+(
+EMSUART_UART
+è& ((1 << 
+	gUIBD
+))) {
+
+48 
+USC0
+(
+EMSUART_UART
+è&ð~(1 << 
+UCBRK
+);
+
+49 ià(
+	g£ndšg_
+) {
+
+50 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+52 
+USIC
+(
+EMSUART_UART
+èð(1 << 
+UIBD
+);
+
+53 
+	gËngth
+ = 0;
+
+54 (
+USS
+(
+EMSUART_UART
+è>> 
+	gUSRXC
+) & 0x0FF) {
+
+55 
+ušt8_t
+ 
+	grx
+ = 
+USF
+(
+EMSUART_UART
+);
+
+56 ià(
+	gËngth
+ < 
+	gEMS_MAXBUFFERSIZE
+) {
+
+57 ià(
+	gËngth
+ || 
+	grx
+) {
+
+58 
+	gu¬t_bufãr
+[
+Ëngth
+++] = 
+rx
+;
+
+61 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+64 ià(!
+	gdrÝ_Ãxt_rx
+) {
+
+65 ià(
+	gu¬t_bufãr
+[
+Ëngth
+ - 1]) {
+
+66 
+	gËngth
+++;
+
+68 
+	gpEMSRxBuf
+->
+	gËngth
+ = 
+Ëngth
+;
+
+69 
+os_memýy
+((*)
+pEMSRxBuf
+->
+bufãr
+, (*)&
+u¬t_bufãr
+,…EMSRxBuf->
+Ëngth
+);
+
+70 
+sy¡em_os_po¡
+(
+EMSUART_»cvTaskPrio
+, 0, 0);
+
+72 
+	gdrÝ_Ãxt_rx
+ = 
+çl£
+;
+
+73 
+	g£ndšg_
+ = 
+çl£
+;
+
+82 
+ICACHE_FLASH_ATTR
+ 
+	gEMSu¬t
+::
+emsu¬t_»cvTask
+(
+os_ev’t_t
+ * 
+ev’ts
+) {
+
+83 
+EMSRxBuf_t
+ * 
+pCu¼’t
+ = 
+pEMSRxBuf
+;
+
+84 
+	gpEMSRxBuf
+ = 
+·EMSRxBuf
+[++
+emsRxBufIdx
+ % 
+EMS_MAXBUFFERS
+];
+
+85 
+ušt8_t
+ 
+	gËngth
+ = 
+pCu¼’t
+->
+Ëngth
+;
+
+86 
+	gpCu¼’t
+->
+	gËngth
+ = 0;
+
+89 ià(
+	gËngth
+ > 4 ||†ength == 2) {
+
+90 
+EMSESP
+::
+šcomšg_‹Ëg¿m
+((
+ušt8_t
+ *)
+pCu¼’t
+->
+bufãr
+, 
+Ëngth
+ - 1);
+
+95 
+ICACHE_RAM_ATTR
+ 
+	gEMSu¬t
+::
+emsu¬t_tx_tim”_šŒ_hªdËr
+() {
+
+96 ià(!
+£ndšg_
+) {
+
+99 
+	gemsTxBufIdx
+++;
+
+100 ià(
+	gemsTxBufIdx
+ < 
+	gemsTxBufL’
+) {
+
+101 
+USF
+(
+EMSUART_UART
+èð
+emsTxBuf
+[
+emsTxBufIdx
+];
+
+102 
+tim”1_wr™e
+(
+emsTxWa™
+);
+
+103 } ià(
+	gemsTxBufIdx
+ =ð
+emsTxBufL’
+) {
+
+104 
+USC0
+(
+EMSUART_UART
+è|ð(1 << 
+UCBRK
+);
+
+105 
+tim”1_wr™e
+(
+EMSUART_TX_BRK_TIMER
+);
+
+107 
+USC0
+(
+EMSUART_UART
+è&ð~(1 << 
+UCBRK
+);
+
+108 
+	g£ndšg_
+ = 
+çl£
+;
+
+115 
+ICACHE_FLASH_ATTR
+ 
+	gEMSu¬t
+::
+emsu¬t_æush_fifos
+() {
+
+116 
+USC0
+(
+EMSUART_UART
+è|ð((1 << 
+UCRXRST
+è| (1 << 
+UCTXRST
+));
+
+117 
+USC0
+(
+EMSUART_UART
+è&ð~((1 << 
+UCRXRST
+è| (1 << 
+UCTXRST
+));
+
+123 
+ICACHE_FLASH_ATTR
+ 
+	gEMSu¬t
+::
+¡¬t
+(cÚ¡ 
+ušt8_t
+ 
+tx_mode
+, cÚ¡ ušt8_ˆ
+rx_gpio
+, cÚ¡ ušt8_ˆ
+tx_gpio
+) {
+
+124 ià(
+	gtx_mode_
+ != 0xFF) {
+
+125 
+tx_mode_
+ = 
+tx_mode
+;
+
+126 
+»¡¬t
+();
+
+129 
+	gtx_mode_
+ = 
+tx_mode
+;
+
+131 
+	gi
+ = 0; i < 
+	gEMS_MAXBUFFERS
+; i++) {
+
+132 
+EMSRxBuf_t
+ * 
+	gp
+ = (EMSRxBuf_ˆ*)
+m®loc
+((EMSRxBuf_t));
+
+133 
+	gp
+->
+	gËngth
+ = 0;
+
+134 
+	g·EMSRxBuf
+[
+i
+] = 
+p
+;
+
+136 
+	gpEMSRxBuf
+ = 
+·EMSRxBuf
+[0];
+
+138 
+ETS_UART_INTR_ATTACH
+(
+nuÎ±r
+,‚ullptr);
+
+141 
+PIN_PULLUP_DIS
+(
+PERIPHS_IO_MUX_U0TXD_U
+);
+
+142 
+PIN_FUNC_SELECT
+(
+PERIPHS_IO_MUX_U0TXD_U
+, 
+FUNC_U0TXD
+);
+
+143 
+PIN_PULLUP_DIS
+(
+PERIPHS_IO_MUX_U0RXD_U
+);
+
+144 
+PIN_FUNC_SELECT
+(
+PERIPHS_IO_MUX_U0RXD_U
+, 
+FUNC_U0RXD
+);
+
+147 
+USD
+(
+EMSUART_UART
+èð(
+UART_CLK_FREQ
+ / 
+EMSUART_BAUD
+);
+
+148 
+USC0
+(
+EMSUART_UART
+èð
+EMSUART_CONFIG
+;
+
+149 
+emsu¬t_æush_fifos
+();
+
+158 
+USC1
+(
+EMSUART_UART
+) = 0;
+
+162 
+USIC
+(
+EMSUART_UART
+) = 0xFFFF;
+
+163 
+USIE
+(
+EMSUART_UART
+) = 0;
+
+166 
+sy¡em_os_�sk
+(
+emsu¬t_»cvTask
+, 
+EMSUART_»cvTaskPrio
+, 
+»cvTaskQueue
+, 
+EMSUART_»cvTaskQueueL’
+);
+
+169 
+sy¡em_£t_os_´št
+(0);
+
+171 ià(
+	gtx_gpio
+ =ð1 && 
+rx_gpio
+ == 3) {
+
+172 
+sy¡em_u¬t_de_sw­
+();
+
+173 } ià(
+	gtx_gpio
+ =ð15 && 
+rx_gpio
+ == 13) {
+
+174 
+sy¡em_u¬t_sw­
+();
+
+177 
+ETS_UART_INTR_ATTACH
+(
+emsu¬t_rx_šŒ_hªdËr
+, 
+nuÎ±r
+);
+
+178 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+181 
+tim”1_©�chIÁ”ru±
+(
+emsu¬t_tx_tim”_šŒ_hªdËr
+);
+
+183 
+»¡¬t
+();
+
+190 
+ICACHE_FLASH_ATTR
+ 
+	gEMSu¬t
+::
+¡Ý
+() {
+
+191 
+USIE
+(
+EMSUART_UART
+) = 0;
+
+192 
+USC0
+(
+EMSUART_UART
+è&ð~(1 << 
+UCBRK
+);
+
+193 
+tim”1_di§bË
+();
+
+194 
+	g£ndšg_
+ = 
+çl£
+;
+
+200 
+ICACHE_FLASH_ATTR
+ 
+	gEMSu¬t
+::
+»¡¬t
+() {
+
+201 ià(
+USIR
+(
+EMSUART_UART
+è& ((1 << 
+UIBD
+))) {
+
+202 
+USIC
+(
+EMSUART_UART
+èð(1 << 
+UIBD
+);
+
+203 
+	gdrÝ_Ãxt_rx
+ = 
+Œue
+;
+
+205 ià(
+	gtx_mode_
+ > 100) {
+
+206 
+	gemsTxWa™
+ = 5 * 
+EMSUART_TX_BIT_TIME
+ * (
+tx_mode_
+ - 90);
+
+208 
+	gemsTxWa™
+ = 5 * 
+EMSUART_TX_BIT_TIME
+ * (
+tx_mode_
+ + 10);
+
+210 
+	gemsTxBufIdx
+ = 0;
+
+211 
+	gemsTxBufL’
+ = 0;
+
+212 
+tim”1_’abË
+(
+TIM_DIV16
+, 
+TIM_EDGE
+, 
+TIM_SINGLE
+);
+
+213 
+USIE
+(
+EMSUART_UART
+èð(1 << 
+UIBD
+);
+
+219 
+ICACHE_FLASH_ATTR
+ 
+	gEMSu¬t
+::
+£nd_pÞl
+(
+ušt8_t
+ 
+d©a
+) {
+
+220 
+Œªsm™
+(&
+d©a
+, 1);
+
+228 
+ušt16_t
+ 
+ICACHE_FLASH_ATTR
+ 
+	gEMSu¬t
+::
+Œªsm™
+(
+ušt8_t
+ * 
+buf
+, ušt8_ˆ
+Ën
+) {
+
+229 ià(
+	gËn
+ =ð0 || 
+Ën
+ >ð
+EMS_MAXBUFFERSIZE
+) {
+
+230  
+EMS_TX_STATUS_ERR
+;
+
+234 ià(
+	gtx_mode_
+ >= 5) {
+
+235 
+£ndšg_
+ = 
+Œue
+;
+
+236 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; i++) {
+
+237 
+	gemsTxBuf
+[
+i
+] = 
+buf
+[i];
+
+239 
+USF
+(
+EMSUART_UART
+èð
+buf
+[0];
+
+240 
+	gemsTxBufIdx
+ = 0;
+
+241 
+	gemsTxBufL’
+ = 
+Ën
+;
+
+242 ià(
+	gtx_mode_
+ > 100 && 
+	gËn
+ > 1) {
+
+243 
+tim”1_wr™e
+(
+EMSUART_TX_WAIT_REPLY
+);
+
+245 
+tim”1_wr™e
+(
+emsTxWa™
+);
+
+247  
+	gEMS_TX_STATUS_OK
+;
+
+251 ià(
+	gtx_mode_
+ =ð
+EMS_TXMODE_NEW
+) {
+
+252 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gËn
+; i++) {
+
+253 
+USF
+(
+EMSUART_UART
+èð
+buf
+[
+i
+];
+
+255 
+USC0
+(
+EMSUART_UART
+è|ð(1 << 
+UCBRK
+);
+
+256  
+	gEMS_TX_STATUS_OK
+;
+
+260 ià(
+	gtx_mode_
+ =ð
+EMS_TXMODE_EMSPLUS
+) {
+
+261 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gËn
+; i++) {
+
+262 
+USF
+(
+EMSUART_UART
+èð
+buf
+[
+i
+];
+
+263 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_WAIT_PLUS
+);
+
+265 
+USC0
+(
+EMSUART_UART
+è|ð(1 << 
+UCBRK
+);
+
+266 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BRK_PLUS
+);
+
+267 
+USC0
+(
+EMSUART_UART
+è&ð~(1 << 
+UCBRK
+);
+
+268  
+	gEMS_TX_STATUS_OK
+;
+
+272 ià(
+	gtx_mode_
+ =ð
+EMS_TXMODE_HT3
+) {
+
+273 
+ušt8_t
+ 
+i
+ = 0; 
+	gi
+ < 
+	gËn
+; i++) {
+
+274 
+USF
+(
+EMSUART_UART
+èð
+buf
+[
+i
+];
+
+276 ((
+USS
+(
+EMSUART_UART
+è>> 
+	gUSTXC
+) & 0xff)) {
+
+279 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_WAIT_HT3
+);
+
+281 
+USC0
+(
+EMSUART_UART
+è|ð(1 << 
+UCBRK
+);
+
+282 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BRK_HT3
+);
+
+283 
+USC0
+(
+EMSUART_UART
+è&ð~(1 << 
+UCBRK
+);
+
+284  
+	gEMS_TX_STATUS_OK
+;
+
+313 
+emsu¬t_æush_fifos
+();
+
+316 
+ušt8_t
+ 
+	gi
+ = 0; i < 
+	gËn
+; i++) {
+
+317 vÞ©ž�
+ušt8_t
+ 
+	g_u¤xc
+ = (
+USS
+(
+EMSUART_UART
+è>> 
+USRXC
+) & 0xFF;
+
+318 
+ušt16_t
+ 
+	gtimeoutút
+ = 
+EMSUART_TX_TIMEOUT
+;
+
+319 
+USF
+(
+EMSUART_UART
+èð
+buf
+[
+i
+];
+
+321 (((
+USS
+(
+EMSUART_UART
+è>> 
+	gUSRXC
+è& 0xFFè=ð
+_u¤xc
+è&& (--
+timeoutút
+ > 0)) {
+
+322 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BUSY_WAIT
+);
+
+325 
+USC0
+(
+EMSUART_UART
+è|ð(1 << 
+UCBRK
+);
+
+326 
+d–ayMiüo£cÚds
+(
+EMSUART_TX_BRK_EMS
+);
+
+327 
+USC0
+(
+EMSUART_UART
+è&ð~(1 << 
+UCBRK
+);
+
+328  
+	gEMS_TX_STATUS_OK
+;
+
+	@src/uart/emsuart_esp8266.h
+
+18 #ià
+defšed
+(
+ESP8266
+)
+
+20 #iâdeà
+EMSESP_EMSUART_H
+
+
+21 
+	#EMSESP_EMSUART_H
+
+
+	)
+
+23 
+	~<Ardušo.h
+>
+
+25 
+	~<u£r_š‹rçû.h
+>
+
+27 
+	#EMSUART_UART
+ 0
+
+28 
+	#EMSUART_CONFIG
+ 0x1C
+
+29 
+	#EMSUART_BAUD
+ 9600
+
+30 
+
+	)
+
+31 
+	#EMS_MAXBUFFERS
+ 3
+
+32 
+	#EMS_MAXBUFFERSIZE
+ 33
+
+33 
+
+	)
+
+34 
+	#EMSUART_»cvTaskPrio
+ 2
+
+35 
+	#EMSUART_»cvTaskQueueL’
+ 10
+
+36 
+
+	)
+
+37 
+	#EMS_TXMODE_DEFAULT
+ 1
+
+	)
+
+38 
+	#EMS_TXMODE_EMSPLUS
+ 2
+
+	)
+
+39 
+	#EMS_TXMODE_HT3
+ 3
+
+	)
+
+40 
+	#EMS_TXMODE_NEW
+ 4
+
+41 
+
+	)
+
+43 
+	#EMSUART_TX_BIT_TIME
+ 104
+
+44 
+
+	)
+
+46 
+	#EMSUART_TX_BRK_TIMER
+ (
+EMSUART_TX_BIT_TIME
+ * 52)
+
+47 
+	#EMSUART_TX_WAIT_REPLY
+ 500000
+
+48 
+
+	)
+
+50 
+	#EMSUART_TX_BUSY_WAIT
+ (
+EMSUART_TX_BIT_TIME
+ / 8)
+
+52 
+	#EMSUART_TX_TIMEOUT
+ (220 * 8)
+
+53 
+	#EMSUART_TX_BRK_EMS
+ (
+EMSUART_TX_BIT_TIME
+ * 10)
+
+	)
+
+57 
+	#EMSUART_TX_WAIT_HT3
+ (
+EMSUART_TX_BIT_TIME
+ * 17)
+
+58 
+	#EMSUART_TX_BRK_HT3
+ (
+EMSUART_TX_BIT_TIME
+ * 11)
+
+	)
+
+61 
+	#EMSUART_TX_WAIT_PLUS
+ (
+EMSUART_TX_BIT_TIME
+ * 20)
+
+62 
+	#EMSUART_TX_BRK_PLUS
+ (
+EMSUART_TX_BIT_TIME
+ * 11)
+
+	)
+
+64 
+Çme¥aû
+ 
+	gem£¥
+ {
+
+66 
+	#EMS_TX_STATUS_ERR
+ 0
+
+	)
+
+67 
+	#EMS_TX_STATUS_OK
+ 1
+
+	)
+
+69 þas 
+	cEMSu¬t
+ {
+
+70 
+	gpublic
+:
+
+71 
+EMSu¬t
+() = ;
+
+72 ~
+EMSu¬t
+() = ;
+
+74 
+ICACHE_FLASH_ATTR
+ 
+¡¬t
+(cÚ¡ 
+ušt8_t
+ 
+tx_mode
+, cÚ¡ ušt8_ˆ
+rx_gpio
+, cÚ¡ ušt8_ˆ
+tx_gpio
+);
+
+75 
+ICACHE_FLASH_ATTR
+ 
+¡Ý
+();
+
+76 
+ICACHE_FLASH_ATTR
+ 
+»¡¬t
+();
+
+77 
+ICACHE_FLASH_ATTR
+ 
+£nd_pÞl
+(
+ušt8_t
+ 
+d©a
+);
+
+78 
+ušt16_t
+ 
+ICACHE_FLASH_ATTR
+ 
+Œªsm™
+(
+ušt8_t
+ * 
+buf
+, ušt8_ˆ
+Ën
+);
+
+79 
+boÞ
+ 
+£ndšg
+() {
+
+80  
+	g£ndšg_
+;
+
+84 
+ušt8_t
+ 
+	gËngth
+;
+
+85 
+ušt8_t
+ 
+	gbufãr
+[
+EMS_MAXBUFFERSIZE
+];
+
+86 } 
+	tEMSRxBuf_t
+;
+
+88 
+	g´iv©e
+:
+
+89 
+ICACHE_RAM_ATTR
+ 
+emsu¬t_rx_šŒ_hªdËr
+(* 
+·¿
+);
+
+90 
+ICACHE_FLASH_ATTR
+ 
+emsu¬t_»cvTask
+(
+os_ev’t_t
+ * 
+ev’ts
+);
+
+91 
+ICACHE_FLASH_ATTR
+ 
+emsu¬t_æush_fifos
+();
+
+92 
+ICACHE_RAM_ATTR
+ 
+emsu¬t_tx_tim”_šŒ_hªdËr
+();
+
+93 
+boÞ
+ 
+	g£ndšg_
+;
+
+	@src/version.h
+
+1 
+	#EMSESP_APP_VERSION
+ "2.0.1"
+
+	)
+
+	@
+1
+.
+0
+701
+42112
+.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/Pair.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/static_array.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/FlashStringIterator.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StdStringAdapter.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/String.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantShortcuts.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp
+.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/examples/FullyFeaturedSSL/src/main.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.h
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Callbacks.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/DisconnectReasons.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Flags.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Helpers.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/MessageProperties.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/ConnAckPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/Packet.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PingRespPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubAckPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubCompPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRecPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PubRelPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/PublishPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/SubAckPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.cpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Packets/UnsubAckPacket.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/ParsingInformation.hpp
+.pio/libdeps/esp8266/AsyncMqttClient/src/AsyncMqttClient/Storage.hpp
+.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.cpp
+.pio/libdeps/esp8266/AsyncTCP/src/AsyncTCP.h
+.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h
+.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h
+.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp
+.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h
+.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp
+.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h
+.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp
+.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h
+.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp
+.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h
+.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h
+.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c
+.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h
+interface/node_modules/jest-haste-map/node_modules/fsevents/fsevents.cc
+interface/node_modules/jest-haste-map/node_modules/fsevents/src/async.cc
+interface/node_modules/jest-haste-map/node_modules/fsevents/src/constants.cc
+interface/node_modules/jest-haste-map/node_modules/fsevents/src/methods.cc
+interface/node_modules/jest-haste-map/node_modules/fsevents/src/storage.cc
+interface/node_modules/jest-haste-map/node_modules/fsevents/src/thread.cc
+interface/node_modules/nan/nan.h
+interface/node_modules/nan/nan_callbacks.h
+interface/node_modules/nan/nan_callbacks_12_inl.h
+interface/node_modules/nan/nan_callbacks_pre_12_inl.h
+interface/node_modules/nan/nan_converters.h
+interface/node_modules/nan/nan_converters_43_inl.h
+interface/node_modules/nan/nan_converters_pre_43_inl.h
+interface/node_modules/nan/nan_define_own_property_helper.h
+interface/node_modules/nan/nan_implementation_12_inl.h
+interface/node_modules/nan/nan_implementation_pre_12_inl.h
+interface/node_modules/nan/nan_json.h
+interface/node_modules/nan/nan_maybe_43_inl.h
+interface/node_modules/nan/nan_maybe_pre_43_inl.h
+interface/node_modules/nan/nan_new.h
+interface/node_modules/nan/nan_object_wrap.h
+interface/node_modules/nan/nan_persistent_12_inl.h
+interface/node_modules/nan/nan_persistent_pre_12_inl.h
+interface/node_modules/nan/nan_private.h
+interface/node_modules/nan/nan_string_bytes.h
+interface/node_modules/nan/nan_typedarray_contents.h
+interface/node_modules/nan/nan_weak.h
+interface/node_modules/watchpack-chokidar2/node_modules/fsevents/fsevents.cc
+interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/async.cc
+interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/constants.cc
+interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/methods.cc
+interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/storage.cc
+interface/node_modules/watchpack-chokidar2/node_modules/fsevents/src/thread.cc
+interface/node_modules/webpack-dev-server/node_modules/fsevents/fsevents.cc
+interface/node_modules/webpack-dev-server/node_modules/fsevents/src/async.cc
+interface/node_modules/webpack-dev-server/node_modules/fsevents/src/constants.cc
+interface/node_modules/webpack-dev-server/node_modules/fsevents/src/methods.cc
+interface/node_modules/webpack-dev-server/node_modules/fsevents/src/storage.cc
+interface/node_modules/webpack-dev-server/node_modules/fsevents/src/thread.cc
+interface/node_modules/zlib/src/node-zlib.cc
+lib/ESPAsyncWebServer/AsyncEventSource.cpp
+lib/ESPAsyncWebServer/AsyncEventSource.h
+lib/ESPAsyncWebServer/AsyncJson.h
+lib/ESPAsyncWebServer/AsyncWebSocket.cpp
+lib/ESPAsyncWebServer/AsyncWebSocket.h
+lib/ESPAsyncWebServer/AsyncWebSynchronization.h
+lib/ESPAsyncWebServer/ESPAsyncWebServer.h
+lib/ESPAsyncWebServer/SPIFFSEditor.cpp
+lib/ESPAsyncWebServer/SPIFFSEditor.h
+lib/ESPAsyncWebServer/StringArray.h
+lib/ESPAsyncWebServer/WebAuthentication.cpp
+lib/ESPAsyncWebServer/WebAuthentication.h
+lib/ESPAsyncWebServer/WebHandlerImpl.h
+lib/ESPAsyncWebServer/WebHandlers.cpp
+lib/ESPAsyncWebServer/WebRequest.cpp
+lib/ESPAsyncWebServer/WebResponseImpl.h
+lib/ESPAsyncWebServer/WebResponses.cpp
+lib/ESPAsyncWebServer/WebServer.cpp
+lib/OneWire/OneWire.cpp
+lib/OneWire/OneWire.h
+lib/OneWire/OneWire_direct_gpio.h
+lib/OneWire/OneWire_direct_regtype.h
+lib/framework/APSettingsService.cpp
+lib/framework/APSettingsService.h
+lib/framework/APStatus.cpp
+lib/framework/APStatus.h
+lib/framework/ArduinoJsonJWT.cpp
+lib/framework/ArduinoJsonJWT.h
+lib/framework/AuthenticationService.cpp
+lib/framework/AuthenticationService.h
+lib/framework/ESP8266React.cpp
+lib/framework/ESP8266React.h
+lib/framework/ESPUtils.h
+lib/framework/FSPersistence.h
+lib/framework/FactoryResetService.cpp
+lib/framework/FactoryResetService.h
+lib/framework/Features.h
+lib/framework/FeaturesService.cpp
+lib/framework/FeaturesService.h
+lib/framework/HttpEndpoint.h
+lib/framework/JsonUtils.h
+lib/framework/MqttPubSub.h
+lib/framework/MqttSettingsService.cpp
+lib/framework/MqttSettingsService.h
+lib/framework/MqttStatus.cpp
+lib/framework/MqttStatus.h
+lib/framework/NTPSettingsService.cpp
+lib/framework/NTPSettingsService.h
+lib/framework/NTPStatus.cpp
+lib/framework/NTPStatus.h
+lib/framework/OTASettingsService.cpp
+lib/framework/OTASettingsService.h
+lib/framework/RestartService.cpp
+lib/framework/RestartService.h
+lib/framework/SecurityManager.h
+lib/framework/SecuritySettingsService.cpp
+lib/framework/SecuritySettingsService.h
+lib/framework/StatefulService.cpp
+lib/framework/StatefulService.h
+lib/framework/SystemStatus.cpp
+lib/framework/SystemStatus.h
+lib/framework/UploadFirmwareService.cpp
+lib/framework/UploadFirmwareService.h
+lib/framework/WWWData.h
+lib/framework/WebSocketTxRx.h
+lib/framework/WiFiScanner.cpp
+lib/framework/WiFiScanner.h
+lib/framework/WiFiSettingsService.cpp
+lib/framework/WiFiSettingsService.h
+lib/framework/WiFiStatus.cpp
+lib/framework/WiFiStatus.h
+lib/uuid-common/src/common.cpp
+lib/uuid-common/src/get_uptime_ms.cpp
+lib/uuid-common/src/loop.cpp
+lib/uuid-common/src/printable_to_string.cpp
+lib/uuid-common/src/read_flash_string.cpp
+lib/uuid-common/src/uuid/common.h
+lib/uuid-console/src/command_line.cpp
+lib/uuid-console/src/commands.cpp
+lib/uuid-console/src/console.cpp
+lib/uuid-console/src/shell.cpp
+lib/uuid-console/src/shell_log.cpp
+lib/uuid-console/src/shell_loop_all.cpp
+lib/uuid-console/src/shell_print.cpp
+lib/uuid-console/src/shell_prompt.cpp
+lib/uuid-console/src/shell_stream.cpp
+lib/uuid-console/src/stream_console.cpp
+lib/uuid-console/src/uuid/console.h
+lib/uuid-log/src/format_level_char.cpp
+lib/uuid-log/src/format_level_lowercase.cpp
+lib/uuid-log/src/format_level_uppercase.cpp
+lib/uuid-log/src/format_timestamp_ms.cpp
+lib/uuid-log/src/levels.cpp
+lib/uuid-log/src/levels_lowercase.cpp
+lib/uuid-log/src/levels_uppercase.cpp
+lib/uuid-log/src/log.cpp
+lib/uuid-log/src/parse_level_lowercase.cpp
+lib/uuid-log/src/parse_level_uppercase.cpp
+lib/uuid-log/src/uuid/log.h
+lib/uuid-syslog/src/syslog.cpp
+lib/uuid-syslog/src/uuid/syslog.h
+lib/uuid-telnet/src/stream.cpp
+lib/uuid-telnet/src/telnet.cpp
+lib/uuid-telnet/src/uuid/telnet.h
+lib_standalone/Arduino.cpp
+lib_standalone/Arduino.h
+lib_standalone/ArduinoJson/ArduinoJson.h
+lib_standalone/ArduinoJson/extras/fuzzing/fuzzer_main.cpp
+lib_standalone/ArduinoJson/extras/fuzzing/json_fuzzer.cpp
+lib_standalone/ArduinoJson/extras/fuzzing/msgpack_fuzzer.cpp
+lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonGeneratorExample.cpp
+lib_standalone/ArduinoJson/extras/scripts/wandbox/JsonParserExample.cpp
+lib_standalone/ArduinoJson/extras/scripts/wandbox/MsgPackParserExample.cpp
+lib_standalone/ArduinoJson/extras/tests/ElementProxy/add.cpp
+lib_standalone/ArduinoJson/extras/tests/ElementProxy/clear.cpp
+lib_standalone/ArduinoJson/extras/tests/ElementProxy/compare.cpp
+lib_standalone/ArduinoJson/extras/tests/ElementProxy/remove.cpp
+lib_standalone/ArduinoJson/extras/tests/ElementProxy/set.cpp
+lib_standalone/ArduinoJson/extras/tests/ElementProxy/size.cpp
+lib_standalone/ArduinoJson/extras/tests/ElementProxy/subscript.cpp
+lib_standalone/ArduinoJson/extras/tests/Helpers/CustomReader.hpp
+lib_standalone/ArduinoJson/extras/tests/Helpers/Stream.h
+lib_standalone/ArduinoJson/extras/tests/Helpers/WString.h
+lib_standalone/ArduinoJson/extras/tests/Helpers/progmem_emulation.hpp
+lib_standalone/ArduinoJson/extras/tests/IntegrationTests/gbathree.cpp
+lib_standalone/ArduinoJson/extras/tests/IntegrationTests/issue772.cpp
+lib_standalone/ArduinoJson/extras/tests/IntegrationTests/openweathermap.cpp
+lib_standalone/ArduinoJson/extras/tests/IntegrationTests/round_trip.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/add.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/copyArray.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/createNested.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/equals.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/get.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/isNull.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/iterator.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/memoryUsage.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/nesting.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/remove.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/size.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/std_string.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/subscript.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonArray/undefined.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/DeserializationError.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/array_static.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/filter.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/incomplete_input.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/input_types.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/invalid_input.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/misc.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/nestingLimit.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/number.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/object_static.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDeserializer/string.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/BasicJsonDocument.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/DynamicJsonDocument.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/StaticJsonDocument.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/add.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/compare.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/containsKey.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/createNested.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/isNull.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/nesting.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/remove.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/shrinkToFit.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/size.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonDocument/subscript.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/containsKey.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/copy.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedArray.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/createNestedObject.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/equals.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/invalid.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/isNull.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/iterator.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/memoryUsage.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/nesting.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/remove.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/size.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/std_string.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonObject/subscript.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/CustomWriter.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArray.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonArrayPretty.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObject.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonObjectPretty.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/JsonVariant.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/misc.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_stream.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonSerializer/std_string.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/add.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/as.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/clear.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/compare.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/containsKey.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/copy.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/createNested.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/is.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/isnull.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/memoryUsage.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/misc.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/nesting.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/or.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/overflow.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/remove.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/set.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/subscript.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/types.cpp
+lib_standalone/ArduinoJson/extras/tests/JsonVariant/undefined.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/add.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/clear.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/compare.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/containsKey.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/remove.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/set.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/size.cpp
+lib_standalone/ArduinoJson/extras/tests/MemberProxy/subscript.cpp
+lib_standalone/ArduinoJson/extras/tests/MemoryPool/StringBuilder.cpp
+lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocString.cpp
+lib_standalone/ArduinoJson/extras/tests/MemoryPool/allocVariant.cpp
+lib_standalone/ArduinoJson/extras/tests/MemoryPool/clear.cpp
+lib_standalone/ArduinoJson/extras/tests/MemoryPool/size.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/FloatParts.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/Issue1189.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/Issue978.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/Readers.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/StringAdapters.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/StringWriter.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/TypeTraits.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/Utf16.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/Utf8.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/conflicts.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/custom_string.hpp
+lib_standalone/ArduinoJson/extras/tests/Misc/unsigned_char.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/version.cpp
+lib_standalone/ArduinoJson/extras/tests/Misc/weird_strcmp.hpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/cpp11.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_0.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/decode_unicode_1.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_0.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_comments_1.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_0.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_infinity_1.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_0.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_nan_1.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/enable_progmem_1.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_0.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_double_1.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_0.cpp
+lib_standalone/ArduinoJson/extras/tests/MixedConfiguration/use_long_long_1.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeArray.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeObject.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeStaticVariant.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/deserializeVariant.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/doubleToFloat.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/incompleteInput.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/input_types.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/nestingLimit.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackDeserializer/notSupported.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/destination_types.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/measure.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/misc.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeArray.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeObject.cpp
+lib_standalone/ArduinoJson/extras/tests/MsgPackSerializer/serializeVariant.cpp
+lib_standalone/ArduinoJson/extras/tests/Numbers/parseFloat.cpp
+lib_standalone/ArduinoJson/extras/tests/Numbers/parseInteger.cpp
+lib_standalone/ArduinoJson/extras/tests/Numbers/parseNumber.cpp
+lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeFloat.cpp
+lib_standalone/ArduinoJson/extras/tests/TextFormatter/writeString.cpp
+lib_standalone/ArduinoJson/extras/tests/catch/catch.cpp
+lib_standalone/ArduinoJson/extras/tests/catch/catch.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson.h
+lib_standalone/ArduinoJson/src/ArduinoJson.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayFunctions.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayIterator.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayRef.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Array/ArrayShortcuts.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Configuration.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Document/StaticJsonDocument.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/Latch.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Memory/StringSlot.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Misc/Visitable.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Namespace.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Float.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/Integer.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseFloat.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseInteger.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectFunctions.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectIterator.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectRef.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Object/ObjectShortcuts.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Object/Pair.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantCasts.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantComparisons.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOperators.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantOr.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Operators/VariantShortcuts.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/gsl/not_null.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/safe_strcmp.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringCopier.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringMover.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/StringStorage/StringStorage.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ArduinoStringAdapter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/ConstRamStringAdapter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/FlashStringAdapter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/IsWriteableString.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/RamStringAdapter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedFlashStringAdapter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/SizedRamStringAdapter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StlStringAdapter.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StoragePolicy.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/String.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/SlotFunctions.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAs.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantAsImpl.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantFunctions.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantRef.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/compatibility.hpp
+lib_standalone/ArduinoJson/src/ArduinoJson/version.hpp
+lib_standalone/AsyncJson.h
+lib_standalone/AsyncMqttClient.h
+lib_standalone/AsyncTCP.h
+lib_standalone/ESP8266React.h
+lib_standalone/ESPAsyncWebServer.h
+lib_standalone/FS.h
+lib_standalone/FSPersistence.h
+lib_standalone/Features.h
+lib_standalone/HttpEndpoint.h
+lib_standalone/MqttPubSub.h
+lib_standalone/SecurityManager.h
+lib_standalone/SecuritySettingsService.cpp
+lib_standalone/SecuritySettingsService.h
+lib_standalone/StatefulService.cpp
+lib_standalone/StatefulService.h
+lib_standalone/WString.cpp
+lib_standalone/WString.h
+lib_standalone/WebSocketTxRx.h
+lib_standalone/emsuart_standalone.cpp
+lib_standalone/emsuart_standalone.h
+src/EMSESPDevicesService.cpp
+src/EMSESPDevicesService.h
+src/EMSESPSettingsService.cpp
+src/EMSESPSettingsService.h
+src/EMSESPStatusService.cpp
+src/EMSESPStatusService.h
+src/console.cpp
+src/console.h
+src/device_library.h
+src/devices/boiler.cpp
+src/devices/boiler.h
+src/devices/connect.cpp
+src/devices/connect.h
+src/devices/controller.cpp
+src/devices/controller.h
+src/devices/gateway.cpp
+src/devices/gateway.h
+src/devices/heatpump.cpp
+src/devices/heatpump.h
+src/devices/mixing.cpp
+src/devices/mixing.h
+src/devices/solar.cpp
+src/devices/solar.h
+src/devices/switch.cpp
+src/devices/switch.h
+src/devices/thermostat.cpp
+src/devices/thermostat.h
+src/emsdevice.cpp
+src/emsdevice.h
+src/emsesp.cpp
+src/emsesp.h
+src/emsfactory.h
+src/helpers.cpp
+src/helpers.h
+src/locale_EN.h
+src/main.cpp
+src/mqtt.cpp
+src/mqtt.h
+src/roomcontrol.cpp
+src/roomcontrol.h
+src/sensors.cpp
+src/sensors.h
+src/shower.cpp
+src/shower.h
+src/system.cpp
+src/system.h
+src/telegram.cpp
+src/telegram.h
+src/test/test.cpp
+src/test/test.h
+src/uart/emsuart_esp32.cpp
+src/uart/emsuart_esp32.h
+src/uart/emsuart_esp8266.cpp
+src/uart/emsuart_esp8266.h
+src/version.h
diff --git a/pio_local.ini.txt b/pio_local.ini.txt
new file mode 100644
index 000000000..4c89f40e2
--- /dev/null
+++ b/pio_local.ini.txt
@@ -0,0 +1,3 @@
+upload_protocol = espota
+upload_flags = --port=8266 --auth=ems-esp-neo
+upload_port = ems-esp.local
diff --git a/src/.emsdevice.cpp.swp b/src/.emsdevice.cpp.swp
new file mode 100644
index 000000000..9c75687c0
Binary files /dev/null and b/src/.emsdevice.cpp.swp differ
diff --git a/src/devices/solar.cpp b/src/devices/solar.cpp
index f563b02c3..8ad138d2e 100644
--- a/src/devices/solar.cpp
+++ b/src/devices/solar.cpp
@@ -17,6 +17,7 @@
  */
 
 #include "solar.h"
+#include "emsesp.h"
 
 namespace emsesp {
 
@@ -41,6 +42,12 @@ Solar::Solar(uint8_t device_type, uint8_t device_id, uint8_t product_id, const s
         register_telegram_type(0x0364, F("SM100Status"), false, [&](std::shared_ptr<const Telegram> t) { process_SM100Status(t); });
         register_telegram_type(0x036A, F("SM100Status2"), false, [&](std::shared_ptr<const Telegram> t) { process_SM100Status2(t); });
         register_telegram_type(0x038E, F("SM100Energy"), true, [&](std::shared_ptr<const Telegram> t) { process_SM100Energy(t); });
+		register_telegram_type(0x035A, F("SM100Tank1MaxTemp"), false, [&](std::shared_ptr<const Telegram> t) { process_SM100Tank1MaxTemp(t); });
+//		EMSESP::send_read_request(0x035A, device_id);
+        // This is a hack right now, need to update TXService to support sending F9 packets
+        uint8_t msg[]="8B B0 F9 00 11 FF 02 5A 03 00";
+        msg[sizeof(msg)-2] = EMSESP::rxservice_.calculate_crc(msg, sizeof(msg)-2);
+        EMSESP::send_raw_telegram((const char*)msg);
     }
 
     if (flags == EMSdevice::EMS_DEVICE_FLAG_ISM) {
@@ -51,6 +58,13 @@ Solar::Solar(uint8_t device_type, uint8_t device_id, uint8_t product_id, const s
 
 // context submenu
 void Solar::add_context_menu() {
+    EMSESPShell::commands->add_command(ShellContext::MAIN,
+                                       CommandFlags::USER,
+                                       flash_string_vector{F_(solar)},
+                                       [&](Shell & shell, const std::vector<std::string> & arguments __attribute__((unused))) {
+                                           Solar::console_commands(shell, ShellContext::SOLAR);
+//                                           add_context_commands(ShellContext::SOLAR);
+                                       });
 }
 
 // print to web
@@ -58,6 +72,7 @@ void Solar::device_info_web(JsonArray & root) {
     render_value_json(root, "", F("Collector temperature (TS1)"), collectorTemp_, F_(degrees), 10);
     render_value_json(root, "", F("Tank bottom temperature (TS2)"), tankBottomTemp_, F_(degrees), 10);
     render_value_json(root, "", F("Tank bottom temperature (TS5)"), tankBottomTemp2_, F_(degrees), 10);
+    render_value_json(root, "", F("Tank maximum temperature"), tank1MaxTempCurrent_, F_(degrees), 0);
     render_value_json(root, "", F("Heat exchanger temperature (TS6)"), heatExchangerTemp_, F_(degrees), 10);
     render_value_json(root, "", F("Solar pump modulation (PS1)"), solarPumpModulation_, F_(percent));
     render_value_json(root, "", F("Cylinder pump modulation (PS5)"), cylinderPumpModulation_, F_(percent));
@@ -88,6 +103,7 @@ void Solar::show_values(uuid::console::Shell & shell) {
     print_value(shell, 2, F("Collector temperature (TS1)"), collectorTemp_, F_(degrees), 10);
     print_value(shell, 2, F("Bottom temperature (TS2)"), tankBottomTemp_, F_(degrees), 10);
     print_value(shell, 2, F("Bottom temperature (TS5)"), tankBottomTemp2_, F_(degrees), 10);
+    print_value(shell, 2, F("Tank Maximum temperature"), tank1MaxTempCurrent_, F_(degrees), 0);
     print_value(shell, 2, F("Heat exchanger temperature (TS6)"), heatExchangerTemp_, F_(degrees), 10);
     print_value(shell, 2, F("Solar pump modulation (PS1)"), solarPumpModulation_, F_(percent));
     print_value(shell, 2, F("Cylinder pump modulation (PS5)"), cylinderPumpModulation_, F_(percent));
@@ -124,6 +140,10 @@ void Solar::publish_values() {
         doc["tankBottomTemp2"] = (float)tankBottomTemp2_ / 10;
     }
 
+    if (Helpers::hasValue(tank1MaxTempCurrent_)) {
+        doc["tankMaximumTemp"] = tank1MaxTempCurrent_;
+    }
+    
     if (Helpers::hasValue(heatExchangerTemp_)) {
         doc["heatExchangerTemp"] = (float)heatExchangerTemp_ / 10;
     }
@@ -184,7 +204,19 @@ bool Solar::updated_values() {
 }
 
 // add console commands
-void Solar::console_commands() {
+void Solar::console_commands(Shell & shell, unsigned int context) {
+    EMSESPShell::commands->add_command(ShellContext::SOLAR,
+                                       CommandFlags::USER,
+                                       flash_string_vector{F_(read)},
+                                       [](Shell & shell __attribute__((unused)), const std::vector<std::string> & arguments __attribute__((unused)))
+                                       {
+                                           uint8_t msg[]="8B B0 F9 00 11 FF 02 5A 03 00";
+                                           msg[sizeof(msg)-2] = EMSESP::rxservice_.calculate_crc(msg, sizeof(msg)-2);
+                                           EMSESP::send_raw_telegram((const char*)msg);
+                                       });
+    
+    // enter the context
+    Console::enter_custom_context(shell, context);
 }
 
 // SM10Monitor - type 0x97
@@ -196,6 +228,29 @@ void Solar::process_SM10Monitor(std::shared_ptr<const Telegram> telegram) {
     changed_ |= telegram->read_value(pumpWorkMin_, 8);
 }
 
+/*
+ * process_SM100Tank1MaxTemp - type 0x035A EMS+ - for MS/SM100 and MS/SM200
+ * e.g. B0 10 F9 00 FF 02 5A 03 17 00 00 00 14 00 00 00 3C 00 00 00 5A 00 00 00 59 29 - requested with 90 B0 F9 00 11 FF 02 5A 03 AF
+ * bytes 0-1 = packet format designator
+ * bytes 2..5 = minimum value
+ * bytes 6..9 = default value
+ * bytes 10..13 = maximum value
+ * bytes 14..17 = current value
+ * e.g, FD 3F - requested with 90 B0 F7 00 FF FF 02 5A B0
+ */
+void Solar::process_SM100Tank1MaxTemp(std::shared_ptr<const Telegram> telegram) {
+    int16_t designator;
+    telegram->read_value(designator, 0);
+    LOG_DEBUG(F("SM100Tank1MaxTemp designator 0x%02X"), designator);
+    if(designator==0x0317)  // The telegram has the right form
+    {
+        changed_ |= telegram->read_value(tank1MaxTempMinimum_, 2);
+        changed_ |= telegram->read_value(tank1MaxTempDefault_, 6);
+        changed_ |= telegram->read_value(tank1MaxTempMaximum_, 10);
+        changed_ |= telegram->read_value(tank1MaxTempCurrent_, 14);
+    }
+}
+
 /*
  * SM100Monitor - type 0x0362 EMS+ - for MS/SM100 and MS/SM200
  * e.g. B0 0B FF 00 02 62 00 77 01 D4 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 00 F9 80 00 80 9E - for heat exchanger temp
diff --git a/src/devices/solar.h b/src/devices/solar.h
index 248cd71ec..89209dd03 100644
--- a/src/devices/solar.h
+++ b/src/devices/solar.h
@@ -44,8 +44,12 @@ class Solar : public EMSdevice {
   private:
     static uuid::log::Logger logger_;
 
-    void console_commands();
+    void console_commands(Shell & shell, unsigned int context);
 
+    uint32_t tank1MaxTempMinimum_    = EMS_VALUE_ULONG_NOTSET; // Min value for max tank temp
+    uint32_t tank1MaxTempDefault_    = EMS_VALUE_ULONG_NOTSET; // Default value for max tank temp
+    uint32_t tank1MaxTempMaximum_    = EMS_VALUE_ULONG_NOTSET; // Max value for max tank temp
+    uint32_t tank1MaxTempCurrent_    = EMS_VALUE_ULONG_NOTSET; // Current value for max tank temp
     int16_t  collectorTemp_          = EMS_VALUE_SHORT_NOTSET; // TS1: Temperature sensor for collector array 1
     int16_t  tankBottomTemp_         = EMS_VALUE_SHORT_NOTSET; // TS2: Temperature sensor 1 cylinder, bottom (solar thermal system)
     int16_t  tankBottomTemp2_        = EMS_VALUE_SHORT_NOTSET; // TS5: Temperature sensor 2 cylinder, bottom, or swimming pool (solar thermal system)
@@ -68,6 +72,7 @@ class Solar : public EMSdevice {
     bool    changed_          = false;
 
     void process_SM10Monitor(std::shared_ptr<const Telegram> telegram);
+    void process_SM100Tank1MaxTemp(std::shared_ptr<const Telegram> telegram);
     void process_SM100Monitor(std::shared_ptr<const Telegram> telegram);
     void process_SM100Monitor2(std::shared_ptr<const Telegram> telegram);
 
