From c663b9636066d2d82118e5c435858c2a1d4bae02 Mon Sep 17 00:00:00 2001 From: Scott Volk Date: Sat, 22 Jun 2019 07:16:44 -0700 Subject: [PATCH] adding recipes to documentation --- doc/_static/named_tuple_payload.pdf | Bin 0 -> 1296 bytes doc/_static/named_tuple_payload.svg | 28 ++ doc/_static/named_tuple_payload.uxf | 17 ++ doc/_static/start_at.pdf | Bin 0 -> 2894 bytes doc/_static/start_at.svg | 226 ++++++++++++++ doc/_static/start_at.uxf | 229 +++++++++++++++ doc/recipes.rst | 424 +++++++++++++++++++-------- docs/_images/named_tuple_payload.svg | 28 ++ docs/_images/start_at.svg | 226 ++++++++++++++ docs/_sources/recipes.rst.txt | 424 +++++++++++++++++++-------- docs/_static/named_tuple_payload.pdf | Bin 0 -> 1296 bytes docs/_static/named_tuple_payload.svg | 28 ++ docs/_static/named_tuple_payload.uxf | 17 ++ docs/_static/start_at.pdf | Bin 0 -> 2894 bytes docs/_static/start_at.svg | 226 ++++++++++++++ docs/_static/start_at.uxf | 229 +++++++++++++++ docs/objects.inv | Bin 8294 -> 8346 bytes docs/recipes.html | 369 ++++++++++++++++------- docs/searchindex.js | 2 +- examples/start_at_example.py | 58 ++++ 20 files changed, 2194 insertions(+), 337 deletions(-) create mode 100644 doc/_static/named_tuple_payload.pdf create mode 100644 doc/_static/named_tuple_payload.svg create mode 100644 doc/_static/named_tuple_payload.uxf create mode 100644 doc/_static/start_at.pdf create mode 100644 doc/_static/start_at.svg create mode 100644 doc/_static/start_at.uxf create mode 100644 docs/_images/named_tuple_payload.svg create mode 100644 docs/_images/start_at.svg create mode 100644 docs/_static/named_tuple_payload.pdf create mode 100644 docs/_static/named_tuple_payload.svg create mode 100644 docs/_static/named_tuple_payload.uxf create mode 100644 docs/_static/start_at.pdf create mode 100644 docs/_static/start_at.svg create mode 100644 docs/_static/start_at.uxf create mode 100644 examples/start_at_example.py diff --git a/doc/_static/named_tuple_payload.pdf b/doc/_static/named_tuple_payload.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ee3e57e0b7c43fd0b48fff5b0973b223f88d927b GIT binary patch literal 1296 zcmaJ>e`p(39LG&@UeQJyO0`4Zz}RG(ymyyeE>}XdNt!HM=dvWYL00tT?xkLr-nqML zNIMYbMCnl2AA-|P*FvGI!;WDUbxiB8h+|Sj_RC^79XK6`t*FDQ(|2jcjTU_Wy!XC8 zKKJ>4zTbPUbUfi@eF4Vx{iT_&nE*gQEA%qqFia>Vljtx}!X}9mNs|feB5IHMB;Z6b z5;07j;6A2u@I+?Q&b^N~KA1UrVE8uYTgNA>YX?13d!nO5(ZgR)kDfBqs7yn$7g--H_V-jFP>f9 zI&sUDKW|@ue)qzA$-CDsR&Sns`NOMgs=pm6-~aCP^wgVOvzIrh!{hjmPq$p$6`Ge$ zZ5!J6*~#WRp8NZ3Y2CAB_67Xw;vd2@BL-OPH6zX7QC6r3XW=(JfhbCk3a}@Mc1lg_7&dW9>#1pOER}ELhwR|ZnjEK^y5sE}Vnr0>I27c0F5pE%8$xX! z7^A<1sc7o|N6}8o{SwjLiq*tP!21F|7EEvmAuk2y0Gsn~&w=P;(GIY~-H}XpdCNpM zDDDoA$0kEDo_$+GREYt<3d@ zR^|#pIyK93L+A!PQ^!h)=+;}4Qi~d}RL;Ou9OT1X5aA$CiljhrQ9waKupnZIqYqJmBgK$R_=3nw0a=h`35x+t0+DW*(KHiSea^tFGDrY@v=~=SZ*NU* T#xSvN)+D5;jLX%zCBgg$ih87{ literal 0 HcmV?d00001 diff --git a/doc/_static/named_tuple_payload.svg b/doc/_static/named_tuple_payload.svg new file mode 100644 index 0000000..0dd3bf7 --- /dev/null +++ b/doc/_static/named_tuple_payload.svg @@ -0,0 +1,28 @@ + + +PioneerRequestSpec = namedtuple( 'PioneerSpecRequest', ['cells_per_generation', 'queue_depth']) diff --git a/doc/_static/named_tuple_payload.uxf b/doc/_static/named_tuple_payload.uxf new file mode 100644 index 0000000..f9c70ae --- /dev/null +++ b/doc/_static/named_tuple_payload.uxf @@ -0,0 +1,17 @@ + + + 10 + + UMLNote + + 530 + 340 + 410 + 40 + + PioneerRequestSpec = namedtuple( + 'PioneerSpecRequest', ['cells_per_generation', 'queue_depth']) +layer=3 + + + diff --git a/doc/_static/start_at.pdf b/doc/_static/start_at.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7e3f714265f5f9ac3829e955f05ee37aba31a1e5 GIT binary patch literal 2894 zcmaJ@3pAAJ8!x$RLsA(@^Vdi2x4F-t$z?F^w{gv7H27xBEHj!J45=g`axayoL@jbD ztgK6PK~}j$R5Yy=)yC3Ap;rHItUdm_d(Qto=R4o~{@&+#zTfkEzH^>O)6JSvrdhG|jbl)y*p zp?P)(&gs09VBc^J)uL&&|8f3=6t2BKk=2{^FvGy2?;4Gx+>pd0`>H6M;kDfDXHr|o zEI%*QA4-7_l3#jBT_~=qLU494b5HLtQf@K5_p(r~w*%QfTg6Tu(fujYD=|tzCaZme zqndo*Ek?ZlaVpBRa?oHqbG!_9?-FLB%0-n_@nyJdYIy9kv&fuuaC6+a;qm^xk^>!6 zn##b@Bpf=%6Yuz*Y8}oNuF^W& z8Lc2&q@ox&x%Yt=<=*dJf!8u8bjx?6%ZE&>OFkVesYLk4Ab%TZ#tc7Oj#6l%=zQ** zD~ZN>4g{RkC^GSh96pree6G;t9NbuE=irIlH&4nKL+KZ;2a2YnMW0SBT3eS%$5~xE z*0e;JV~4Sk!PrIQMEj|d)vlfS(R%N z_*^ANH+ZS(b5&omemPUAD7Ff?-l~dy@{Q@{QIG9EmCZm@G^AO1uui_(`h8W=q6V-5 z;UfI$T6TAE@q7RK3v#rJjP8XQ<~w8WBRA4o?dp5@lzjg|pd)35yZk03NW$*X~yhYBQdi*2Nsz@vYew zbBLLte|dAC3_e-Y=Xhw=1YPvx?eq$-%{mSlNapT5)+18J zWt2zu_SmU!;J6=*PH>k~(km|!uG2^)R3xN@v#UM?O*=mRprq&3v;ED_Ihl$hVdL#j z?;Nmi?SB1!V;6l#Ly|@&V_;e$Trp!gp#|ROm+(judceSB%nsXO+= z^tjgE=*+7zoz4Q4TSKxbG}@-Eo#*S6k#*gRpIAEYrNCHO;%ROEP^2Ms5sQ|Xled(9<}!?x(h-=E^Hi%6p5|*pu%bzBuRo*lbx9J@j?>u3WoJ`I))eZ66|b zd;j3oUeH+CUU2;Np4!4A>^9*Pd8WxwRGZQ8>e7uMLS^+M-RM7Bxz;fcX1!&F=hOQ| zo!;^02TiJFS_K>Lng$dXr!@A)$}o;;x%ZEGM`kULZK~xgfsJQ>G;gdh_>7EYigph) zjY^$<*gFX``)#q4QxbE^0Tdj)&m3)fObZ_fzEw8XJZ5myL&QkwtLTicS9l>i_jXUW z1IcDV9` zwfeRXMA`@iwjKhg@k5Tb9%ul)64=%Q17O5EGczOw`lfhDKm*u65eRdm^B@`ke#O`s z3}w;DT%kV-IueXg01k%=G&2(?BBn3)S{*bzqJjlt%3|K=KiP|;Bgu3=xU#VW!=pg~ zD};`;;Xrc;i^D|vusD_+KI^aZT3j*H)wm&a0JU}@CcbuoUb_&}UA=H*h4THy!cqg* zROBPAxKU7A|Kmbjb6FAFiY}msbD1lm^Z(3$Exz%Zu`@T+8WL5<+7yFAo1h37H1wb_ zL_-u&8->!=MOr~4m4LV;C&zU-8f;L`ctn+Ts6=;ZRTw|FRSC=&W#%CmvMoISei! zR+);lw+8%4khI2V6D-cyghA{Kv0TW0!%@w^3SLBBA1$3TZMM4Z7kB4b$ J+PG3+{{ + +ActiveObjectEvent Processorao.start_at(c2)c2entry / print("c2 entered")c1centry / print("c entered")BAAStartcharts are initialized to havetheir initial state outside of your HSMbefore you call their start_at methodSo, this start_at call will causea run the entry conditions of c and c2and then the init condition of c2Using an attachment point like this is NOT UMLcompliant,but it shows where you wantto start your statechart when you turn it on diff --git a/doc/_static/start_at.uxf b/doc/_static/start_at.uxf new file mode 100644 index 0000000..f0a0ae1 --- /dev/null +++ b/doc/_static/start_at.uxf @@ -0,0 +1,229 @@ + + + 10 + + UMLState + + 330 + 280 + 370 + 190 + + c +-- +entry / + print("c entered") + +valign=top + + + + + UMLState + + 380 + 350 + 110 + 100 + + c1 +-- + + +valign=top + + + + + UMLSpecialState + + 350 + 350 + 20 + 20 + + type=initial + + + + Relation + + 350 + 350 + 50 + 70 + + lt=-> + 10.0;10.0;10.0;50.0;30.0;50.0 + + + UMLState + + 550 + 350 + 140 + 100 + + c2 +-- +entry / + print("c2 entered") +valign=top + + + + + Relation + + 480 + 360 + 90 + 40 + + lt=-> +A + 10.0;20.0;70.0;20.0 + + + Relation + + 480 + 400 + 90 + 40 + + lt=-> +A + 70.0;20.0;10.0;20.0 + + + Relation + + 390 + 460 + 230 + 60 + + lt=-> +B + 210.0;10.0;210.0;40.0;10.0;40.0;10.0;10.0 + + + Relation + + 560 + 320 + 30 + 60 + + lt=()-[v] + 10.0;10.0;10.0;40.0 + + + Relation + + 550 + 210 + 50 + 130 + + lt=[^]-( + 20.0;10.0;20.0;100.0 + + + Text + + 470 + 240 + 110 + 30 + + ao.start_at(c2) +style=wordwrap + + + + UMLGeneric + + 470 + 170 + 200 + 60 + + symbol=component +Event Processor + + + + UMLObject + + 460 + 140 + 220 + 100 + + ActiveObject +valign=top + + + + UMLNote + + 730 + 280 + 190 + 110 + + Using an attachment point +like this is NOT UML +compliant, +but it shows where you want +to start your statechart when +you turn it on +layer=3 + + + + Relation + + 570 + 300 + 180 + 70 + + lt=. +layer=3 + 10.0;50.0;160.0;10.0 + + + UMLNote + + 730 + 120 + 240 + 140 + + Startcharts are initialized to have +their initial state outside of your HSM +before you call their start_at method + +So, this start_at call will cause +a run the entry conditions of c and c2 +and then the init condition of c2 + +layer=3 + + + + Relation + + 650 + 240 + 100 + 40 + + lt=. +layer=3 + 10.0;20.0;80.0;10.0 + + diff --git a/doc/recipes.rst b/doc/recipes.rst index f251a9d..a420ff1 100644 --- a/doc/recipes.rst +++ b/doc/recipes.rst @@ -1,6 +1,5 @@ .. _recipes: - Recipes ======= @@ -571,8 +570,6 @@ outside of of your state method's boundary. self.temp.fun = self.c return status - - .. _recipes-create-a-hook: Create a Hook @@ -746,7 +743,6 @@ Deferring and Recalling an Event .. include:: i_defer_and_recall.rst - .. _recipes-create-a-guard: Create a Guard @@ -785,6 +781,9 @@ To learn more about guards read the Events And Signals ------------------ +* :ref:`Subscribing to an event posted by another Activeobject and Factories` +* :ref:`Publishing events to other Activeobjects and Factories` + .. _recipes-creating-an-event: Creating an Event @@ -919,8 +918,8 @@ Creating a Multishot Event ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. include:: i_create_a_multishot.rst -Cancelling a Specific Event Source -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Canceling a Specific Event Source +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The requests to the ``post_fifo`` and ``post_lifo`` methods, where ``times`` are specified, can be thought of as event sources. This is because they create background threads which track time and periodically post events to the active @@ -989,7 +988,7 @@ simpler api: the ``cancel_event``. .. _recipes-cancelling-event-source-by-signal-name: -Cancelling Event Source By Signal Name +Canceling Event Source By Signal Name ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you would like to re-use your event source signal names through your chart, then you can use the :ref:`recipes-cancelling-a-specific-event-source` recipe @@ -1049,6 +1048,60 @@ To add a payload to your event: e = Event(signal=signals.YOUR_SIGNAL_NAME, payload="My Payload") +If you are creating a payload that will be shared across statecharts put it +within an immutable object like a namedtuple before you send it out. Then draw +the named tuple onto your diagrams, because the structure of the payload will +become extremely important when you are trying to understand your design later. + +.. note:: + + We want to use an immutable object when sharing data between threads to avoid + nasty multi-threading bugs. If you can't change the object in two different + locations at the same time, then you can't accidently create this kind of bug. + +Here is an example of a payload picture, taken from the miros-random project: + +.. image:: _static/named_tuple_payload.svg + :target: _static/named_tuple_payload.pdf + :align: center + +You can see, it's just the code used to make it, placed within a UML note. + +Here is the code to make this payload's class: + +.. code-block:: python + + # collections are in the Python standard library + from collections import namedtuple + + # create a structured immutable object that has useful names related + # to your problem + PioneerRequestSpec = namedtuple( + 'PioneerRequestSpec', ['cells_per_generation', 'deque_depth') + +Here is how you would create an event with this payload class: + +.. code-block:: python + + # There is often a relationship between your signal names and your payload + # name + e = Event(signal=signals.PioneerRequest, + payload=PioneerRequestSpec( + cells_per_generation=45, + queue_depth=11) + +Here is how you would access the payload elsewhere in your design: + +.. code-block:: python + + # to get access to the payload information when you receive this event in one + # of your event handlers: + e.payload.cells_per_generation # => 45 + e.payload.queue_depth # => 11 + +I would recommend that you always place your payloads in immutable objects, +even if you aren't intending to share them between statecharts. + .. _recipes-determining-if-an-event-has-a-payload: Determining if an Event Has a Payload @@ -1064,24 +1117,260 @@ To determine if an event has a payload: assert(e2.has_payload() == False) +.. _recipes-subscribing-to-an-event-posted-by-another-active-object: + +Subscribing to an Event Posted by Another Active Object +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Your active object can subscribe to the events published by other active objects: + +.. code-block:: python + + subscribing_ao = ActiveObject() + subscribing_ao.subscribe( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT)) + +An active object can set how the ActiveFabric (the infrastructure connecting all +of your statecharts together) posts events to it. If it would like a message to +take priority over all other events waiting to be managed, you would use the +``lifo`` technique: + +.. code-block:: python + + subscribing_ao = ActiveObject() + subscribing_ao.subscribe( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), + queue_type='lifo') + +This approach would make sense if you were subscribed to a timed heart beat +being sent out by another active object, or if this event was some sort of +safety related thing. + +In most situations you can use the subscription defaults: + +.. code-block:: python + + subscribing_ao = ActiveObject() + subscribing_ao.subscribe(signals.THING_SUBSCRIBING_AO_CARES_ABOUT) + # which is the same as writing + subscribing_ao.subscribe( + signals.THING_SUBSCRIBING_AO_CARES_ABOUT, queue_type='fifo') + +It may seem a little bit strange to subscribe to an event, since an event is a +specific thing, which contains a general thing; the signal. But the ``subscribe`` +method supports subscribing to events so that it's method signature looks like +the other method signatures in the library. (Less things for you to remember) + +If you chose to subscribe to events and not directly to signals, think of your +call as saying, "I would like to subscribe to this type of event". + +.. code-block:: python + + # subscribing to a `type` of event + subscribing_ao.subscribe( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), + queue_type='fifo') + +.. _recipes-publishing-event-to-other-active-objects: + +Publishing events to other Active Objects +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Your active object can send data to other active objects in the system by +publishing events. + +But your active object can only control *how it talks to others*, not *who +listens to it*; so, if another active object wants to receive a published event +it must subscribe to it first. + +If you would like to publish data that will be used by another ActiveObject, +copy your data into some sort of immutable object before you publish it: +namedtuple objects are perfect for these situations: + +.. code-block:: python + + from collections import namedtuple + + # draw these payloads on your statechart diagram + MyPayload = namedtuple('MyPayload', ['name_of_item_1', 'name_of_item2']) + + publishing_ao = ActiveObect() + + # This is how you can send an 'THING_SUBSCRIBING_AO_CARES_ABOUT' event + # to anything that has subscribed to it + publishing_ao.publish( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT, + payload=MyPayload( + name_of_item_1='something', + name_of_item_2='something_else' + ) + ) + ) + +Here is how to publish an event with a specific priority: + +.. code-block:: python + + publishing_ao = ActiveObect() + publishing_ao.publish( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT)) + + # or you can set the priority (1 is the highest priority see note): + publishing_ao.publish( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), + priority=1) + +.. note:: + + The priority numbering scheme is counter-intuitive: low numbers mean high + priority while high numbers mean low priority. The highest published event + priority is 1. By default all published events are given a priority of 1000. + If two events have the same priority the queue will behave like a first in + first out queue. .. _recipes-activeobjects-and-factories: Activeobjects and Factories --------------------------- +* :ref:`Starting an ActiveObject or Factory` +* :ref:`Stopping an ActiveObject or Factory` * :ref:`Augment your active object` * :ref:`Create a statechart from a template` * :ref:`Create a statechart from a Factory` -* :ref:`Subscribing to an event posted by another Activeobject and Factories` -* :ref:`Publishing events to other Activeobjects and Factories` * :ref:`Create a statechart inside of a Class` * :ref:`Getting information out of of your Statechart` * :ref:`Working with Multiple statecharts` +.. _recipes-starting-an-activeojbect-or-factory: + +Starting an Activeobject or Factory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Once you have created an Activeobject or a +:ref:`Factory` you can start its +statemachine and thread with its ``start_at`` method. + +There is a set of queues and threads which connect *all of your ActiveObjects +together* (the ActiveFabric), if it hasn't been started yet, the ``start_at`` +method will turn on this infrastructure as well. + +Here is a simple example: + +.. image:: _static/start_at.svg + :target: _static/start_at.pdf + :align: center + +The ``start_at`` method can start the statechart in any of its states. + +.. note:: + + The diagram needs a way to show where the miros framework starts it. There + is no way to indicate this with standard UML, so I parsimoniously appropriate + the bottom part of the component icon; I connect it to where we want the + machine to start when it is first turned on. + +Here is the code: + +.. code-block:: python + :emphasize-lines: 47 + + import time + from miros import spy_on + from miros import ActiveObject + from miros import signals, Event, return_status + + @spy_on + def c(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.ENTRY_SIGNAL): + status = return_status.HANDLED + print("c1 entered") + elif(e.signal == signals.INIT_SIGNAL): + status = chart.trans(c1) + elif(e.signal == signals.B): + status = chart.trans(c) + else: + chart.temp.fun = chart.top + status = return_status.SUPER + return status + + @spy_on + def c1(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.A): + status = chart.trans(c2) + else: + chart.temp.fun = c + status = return_status.SUPER + return status + + @spy_on + def c2(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.ENTRY_SIGNAL): + print("c2 entered") + status = return_status.HANDLED + elif(e.signal == signals.A): + status = chart.trans(c1) + else: + chart.temp.fun = c + status = return_status.SUPER + return status + + if __name__ == "__main__": + ao = ActiveObject('start_example') + print("calling: start_at(c2)") + ao.start_at(c2) + + time.sleep(0.2) + print(ao.trace()) # print what happened from the start_at call + ao.clear_trace() # clear our instrumentation + + print("sending B, then A, then A:") + ao.post_fifo(Event(signal=signals.B)) + ao.post_fifo(Event(signal=signals.A)) + ao.post_fifo(Event(signal=signals.A)) + time.sleep(0.2) + print(ao.trace()) # print what happened + +When we run this code we will see this result: + +.. code-block:: python + + calling: start_at(c2) + c1 entered + c2 entered + [2019-06-21 06:05:36.234137] [start_example] e->start_at() top->c2 + + sending B, then A, then A + c1 entered + c2 entered + [2019-06-21 06:05:36.435853] [start_example] e->B() c2->c1 + [2019-06-21 06:05:36.436074] [start_example] e->A() c1->c2 + [2019-06-21 06:05:36.436228] [start_example] e->A() c2->c1 + + +.. _recipes-stopping-an-activeobject-or-factory: + +Stopping an ActiveObject or Factory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +If you would like to stop an Activeobject or a +:ref:`Factory` you can use its +``stop`` method. + +This will stop its thread, and it will stop all of that Activeobject's slave +threads (constructed by the post_fifo or post_lifo heartbeat constructors). The +stop method sets the Activeobject's ActiveFabric-facing queue to None, so that +the ActiveFabric will not post items to it anymore. + +.. note:: + + Calling the ``stop`` method will not stop the ActiveFabric. But the + ActiveFabric, like all threads in miros, is a daemonic thread, so it will stop + running when your program has stopped running. + .. _recipes-markup-your-event-processor: -Augment Your Activeobject -^^^^^^^^^^^^^^^^^^^^^^^^^^ +Augmentng your ActiveObject +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + It is a bad idea to add variables to the state methods, instead augment your active objects using the ``augment`` command. @@ -1091,14 +1380,17 @@ active objects using the ``augment`` command. chart.augment(other=0, name='counter') assert(chart.counter == 0) -An even better idea would be to include the attributes in a subclass of an -Activeobject or Factory. - +.. note:: + + An even better idea would be to include the attributes in a subclass of an + Activeobject or Factory. .. _recipes-creating-a-state-method-from-a-template: Creating a Statechart From a Template ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Don't do this, use the :ref:`Factory` instead. + To have the library create your state methods for you: 1. :ref:`Import the correct items from the miros library` @@ -1110,7 +1402,6 @@ To have the library create your state methods for you: 7. :ref:`Start up the active object in the desired state` 8. :ref:`Debugging a templated state method` - .. image:: _static/factory2.svg :target: _static/factory2.pdf :align: center @@ -1192,7 +1483,6 @@ Relate your states to one another by assigning them to parents: .. _recipes-template-7: - Start up the active object in the desired state: .. code-block:: python @@ -1915,108 +2205,6 @@ Here is the code (asynchronous parts highlighted): # asynchronous part of our program print(tracker.get_weather()) #=> sunny -.. _recipes-subscribing-to-an-event-posted-by-another-active-object: - -Subscribing to an Event Posted by Another Active Object -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Your active object can subscribe to the events published by other active objects. - -An active object can set how the active fabric posts events to it. If it would -like a message to take priority over all other events waiting to be managed, -you would use the ``lifo`` technique: - -.. code-block:: python - - subscribing_ao = ActiveObject() - subscribing_ao.subscribe( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), - queue_type='lifo') - -This approach would make sense if you were subscribed to a timed heart beat -being sent out by another active object, or if this event was some sort of -safety related thing. - -In most situations you can use the subscription defaults: - -.. code-block:: python - - subscribing_ao = ActiveObject() - subscribing_ao.subscribe(signals.THING_SUBSCRIBING_AO_CARES_ABOUT) - # which is the same as writing - subscribing_ao.subscribe( - signals.THING_SUBSCRIBING_AO_CARES_ABOUT, queue_type='fifo') - -It may seem a little bit strange to subscribe to an event, since an event is a -specific thing, which contains a general thing; the signal. But the ``subscribe`` -method supports subscribing to events so that it's method signature looks like -the other method signatures in the library. (Less things for you to remember) - -If you chose to subscribe to events and not directly to signals, think of your -call as saying, "I would like to subscribe to this type of event". - -.. code-block:: python - - # subscribing to a `type` of event - subscribing_ao.subscribe( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), - queue_type='fifo') - -.. _recipes-publishing-event-to-other-active-objects: - -Publishing events to other Active Objects -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Your active object can send data to other active objects in the system by -publishing events. - -But your active object can only control *how it talks to others*, not *who -listens to it*; so, if another active object wants to receive a published event -it must subscribe to it first. - -If you would like to publish data that will be used by another ActiveObject, -copy your data into some sort of immutable object before you publish it: -namedtuple objects are perfect for these situations: - -.. code-block:: python - - from collections import namedtuple - - # draw these payloads on your statechart diagram - MyPayload = namedtuple('MyPayload', ['name_of_item_1', 'name_of_item2']) - - publishing_ao = ActiveObect() - - # This is how you can send an 'THING_SUBSCRIBING_AO_CARES_ABOUT' event - # to anything that has subscribed to it - publishing_ao.publish( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT, - payload=MyPayload( - name_of_item_1='something', - name_of_item_2='something_else' - ) - ) - ) - -Here is how to publish an event with a specific priority: - -.. code-block:: python - - publishing_ao = ActiveObect() - publishing_ao.publish( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT)) - - # or you can set the priority (1 is the highest priority see note): - publishing_ao.publish( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), - priority=1) - -.. note:: - - The priority numbering scheme is counter-intuitive: low numbers mean high - priority while high numbers mean low priority. The highest published event - priority is 1. By default all published events are given a priority of 1000. - If two events have the same priority the queue will behave like a first in - first out queue. - .. _recipes-multiple-statecharts: Multiple Statecharts diff --git a/docs/_images/named_tuple_payload.svg b/docs/_images/named_tuple_payload.svg new file mode 100644 index 0000000..0dd3bf7 --- /dev/null +++ b/docs/_images/named_tuple_payload.svg @@ -0,0 +1,28 @@ + + +PioneerRequestSpec = namedtuple( 'PioneerSpecRequest', ['cells_per_generation', 'queue_depth']) diff --git a/docs/_images/start_at.svg b/docs/_images/start_at.svg new file mode 100644 index 0000000..bbcfeb7 --- /dev/null +++ b/docs/_images/start_at.svg @@ -0,0 +1,226 @@ + + +ActiveObjectEvent Processorao.start_at(c2)c2entry / print("c2 entered")c1centry / print("c entered")BAAStartcharts are initialized to havetheir initial state outside of your HSMbefore you call their start_at methodSo, this start_at call will causea run the entry conditions of c and c2and then the init condition of c2Using an attachment point like this is NOT UMLcompliant,but it shows where you wantto start your statechart when you turn it on diff --git a/docs/_sources/recipes.rst.txt b/docs/_sources/recipes.rst.txt index f251a9d..a420ff1 100644 --- a/docs/_sources/recipes.rst.txt +++ b/docs/_sources/recipes.rst.txt @@ -1,6 +1,5 @@ .. _recipes: - Recipes ======= @@ -571,8 +570,6 @@ outside of of your state method's boundary. self.temp.fun = self.c return status - - .. _recipes-create-a-hook: Create a Hook @@ -746,7 +743,6 @@ Deferring and Recalling an Event .. include:: i_defer_and_recall.rst - .. _recipes-create-a-guard: Create a Guard @@ -785,6 +781,9 @@ To learn more about guards read the Events And Signals ------------------ +* :ref:`Subscribing to an event posted by another Activeobject and Factories` +* :ref:`Publishing events to other Activeobjects and Factories` + .. _recipes-creating-an-event: Creating an Event @@ -919,8 +918,8 @@ Creating a Multishot Event ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. include:: i_create_a_multishot.rst -Cancelling a Specific Event Source -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Canceling a Specific Event Source +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The requests to the ``post_fifo`` and ``post_lifo`` methods, where ``times`` are specified, can be thought of as event sources. This is because they create background threads which track time and periodically post events to the active @@ -989,7 +988,7 @@ simpler api: the ``cancel_event``. .. _recipes-cancelling-event-source-by-signal-name: -Cancelling Event Source By Signal Name +Canceling Event Source By Signal Name ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you would like to re-use your event source signal names through your chart, then you can use the :ref:`recipes-cancelling-a-specific-event-source` recipe @@ -1049,6 +1048,60 @@ To add a payload to your event: e = Event(signal=signals.YOUR_SIGNAL_NAME, payload="My Payload") +If you are creating a payload that will be shared across statecharts put it +within an immutable object like a namedtuple before you send it out. Then draw +the named tuple onto your diagrams, because the structure of the payload will +become extremely important when you are trying to understand your design later. + +.. note:: + + We want to use an immutable object when sharing data between threads to avoid + nasty multi-threading bugs. If you can't change the object in two different + locations at the same time, then you can't accidently create this kind of bug. + +Here is an example of a payload picture, taken from the miros-random project: + +.. image:: _static/named_tuple_payload.svg + :target: _static/named_tuple_payload.pdf + :align: center + +You can see, it's just the code used to make it, placed within a UML note. + +Here is the code to make this payload's class: + +.. code-block:: python + + # collections are in the Python standard library + from collections import namedtuple + + # create a structured immutable object that has useful names related + # to your problem + PioneerRequestSpec = namedtuple( + 'PioneerRequestSpec', ['cells_per_generation', 'deque_depth') + +Here is how you would create an event with this payload class: + +.. code-block:: python + + # There is often a relationship between your signal names and your payload + # name + e = Event(signal=signals.PioneerRequest, + payload=PioneerRequestSpec( + cells_per_generation=45, + queue_depth=11) + +Here is how you would access the payload elsewhere in your design: + +.. code-block:: python + + # to get access to the payload information when you receive this event in one + # of your event handlers: + e.payload.cells_per_generation # => 45 + e.payload.queue_depth # => 11 + +I would recommend that you always place your payloads in immutable objects, +even if you aren't intending to share them between statecharts. + .. _recipes-determining-if-an-event-has-a-payload: Determining if an Event Has a Payload @@ -1064,24 +1117,260 @@ To determine if an event has a payload: assert(e2.has_payload() == False) +.. _recipes-subscribing-to-an-event-posted-by-another-active-object: + +Subscribing to an Event Posted by Another Active Object +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Your active object can subscribe to the events published by other active objects: + +.. code-block:: python + + subscribing_ao = ActiveObject() + subscribing_ao.subscribe( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT)) + +An active object can set how the ActiveFabric (the infrastructure connecting all +of your statecharts together) posts events to it. If it would like a message to +take priority over all other events waiting to be managed, you would use the +``lifo`` technique: + +.. code-block:: python + + subscribing_ao = ActiveObject() + subscribing_ao.subscribe( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), + queue_type='lifo') + +This approach would make sense if you were subscribed to a timed heart beat +being sent out by another active object, or if this event was some sort of +safety related thing. + +In most situations you can use the subscription defaults: + +.. code-block:: python + + subscribing_ao = ActiveObject() + subscribing_ao.subscribe(signals.THING_SUBSCRIBING_AO_CARES_ABOUT) + # which is the same as writing + subscribing_ao.subscribe( + signals.THING_SUBSCRIBING_AO_CARES_ABOUT, queue_type='fifo') + +It may seem a little bit strange to subscribe to an event, since an event is a +specific thing, which contains a general thing; the signal. But the ``subscribe`` +method supports subscribing to events so that it's method signature looks like +the other method signatures in the library. (Less things for you to remember) + +If you chose to subscribe to events and not directly to signals, think of your +call as saying, "I would like to subscribe to this type of event". + +.. code-block:: python + + # subscribing to a `type` of event + subscribing_ao.subscribe( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), + queue_type='fifo') + +.. _recipes-publishing-event-to-other-active-objects: + +Publishing events to other Active Objects +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Your active object can send data to other active objects in the system by +publishing events. + +But your active object can only control *how it talks to others*, not *who +listens to it*; so, if another active object wants to receive a published event +it must subscribe to it first. + +If you would like to publish data that will be used by another ActiveObject, +copy your data into some sort of immutable object before you publish it: +namedtuple objects are perfect for these situations: + +.. code-block:: python + + from collections import namedtuple + + # draw these payloads on your statechart diagram + MyPayload = namedtuple('MyPayload', ['name_of_item_1', 'name_of_item2']) + + publishing_ao = ActiveObect() + + # This is how you can send an 'THING_SUBSCRIBING_AO_CARES_ABOUT' event + # to anything that has subscribed to it + publishing_ao.publish( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT, + payload=MyPayload( + name_of_item_1='something', + name_of_item_2='something_else' + ) + ) + ) + +Here is how to publish an event with a specific priority: + +.. code-block:: python + + publishing_ao = ActiveObect() + publishing_ao.publish( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT)) + + # or you can set the priority (1 is the highest priority see note): + publishing_ao.publish( + Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), + priority=1) + +.. note:: + + The priority numbering scheme is counter-intuitive: low numbers mean high + priority while high numbers mean low priority. The highest published event + priority is 1. By default all published events are given a priority of 1000. + If two events have the same priority the queue will behave like a first in + first out queue. .. _recipes-activeobjects-and-factories: Activeobjects and Factories --------------------------- +* :ref:`Starting an ActiveObject or Factory` +* :ref:`Stopping an ActiveObject or Factory` * :ref:`Augment your active object` * :ref:`Create a statechart from a template` * :ref:`Create a statechart from a Factory` -* :ref:`Subscribing to an event posted by another Activeobject and Factories` -* :ref:`Publishing events to other Activeobjects and Factories` * :ref:`Create a statechart inside of a Class` * :ref:`Getting information out of of your Statechart` * :ref:`Working with Multiple statecharts` +.. _recipes-starting-an-activeojbect-or-factory: + +Starting an Activeobject or Factory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Once you have created an Activeobject or a +:ref:`Factory` you can start its +statemachine and thread with its ``start_at`` method. + +There is a set of queues and threads which connect *all of your ActiveObjects +together* (the ActiveFabric), if it hasn't been started yet, the ``start_at`` +method will turn on this infrastructure as well. + +Here is a simple example: + +.. image:: _static/start_at.svg + :target: _static/start_at.pdf + :align: center + +The ``start_at`` method can start the statechart in any of its states. + +.. note:: + + The diagram needs a way to show where the miros framework starts it. There + is no way to indicate this with standard UML, so I parsimoniously appropriate + the bottom part of the component icon; I connect it to where we want the + machine to start when it is first turned on. + +Here is the code: + +.. code-block:: python + :emphasize-lines: 47 + + import time + from miros import spy_on + from miros import ActiveObject + from miros import signals, Event, return_status + + @spy_on + def c(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.ENTRY_SIGNAL): + status = return_status.HANDLED + print("c1 entered") + elif(e.signal == signals.INIT_SIGNAL): + status = chart.trans(c1) + elif(e.signal == signals.B): + status = chart.trans(c) + else: + chart.temp.fun = chart.top + status = return_status.SUPER + return status + + @spy_on + def c1(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.A): + status = chart.trans(c2) + else: + chart.temp.fun = c + status = return_status.SUPER + return status + + @spy_on + def c2(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.ENTRY_SIGNAL): + print("c2 entered") + status = return_status.HANDLED + elif(e.signal == signals.A): + status = chart.trans(c1) + else: + chart.temp.fun = c + status = return_status.SUPER + return status + + if __name__ == "__main__": + ao = ActiveObject('start_example') + print("calling: start_at(c2)") + ao.start_at(c2) + + time.sleep(0.2) + print(ao.trace()) # print what happened from the start_at call + ao.clear_trace() # clear our instrumentation + + print("sending B, then A, then A:") + ao.post_fifo(Event(signal=signals.B)) + ao.post_fifo(Event(signal=signals.A)) + ao.post_fifo(Event(signal=signals.A)) + time.sleep(0.2) + print(ao.trace()) # print what happened + +When we run this code we will see this result: + +.. code-block:: python + + calling: start_at(c2) + c1 entered + c2 entered + [2019-06-21 06:05:36.234137] [start_example] e->start_at() top->c2 + + sending B, then A, then A + c1 entered + c2 entered + [2019-06-21 06:05:36.435853] [start_example] e->B() c2->c1 + [2019-06-21 06:05:36.436074] [start_example] e->A() c1->c2 + [2019-06-21 06:05:36.436228] [start_example] e->A() c2->c1 + + +.. _recipes-stopping-an-activeobject-or-factory: + +Stopping an ActiveObject or Factory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +If you would like to stop an Activeobject or a +:ref:`Factory` you can use its +``stop`` method. + +This will stop its thread, and it will stop all of that Activeobject's slave +threads (constructed by the post_fifo or post_lifo heartbeat constructors). The +stop method sets the Activeobject's ActiveFabric-facing queue to None, so that +the ActiveFabric will not post items to it anymore. + +.. note:: + + Calling the ``stop`` method will not stop the ActiveFabric. But the + ActiveFabric, like all threads in miros, is a daemonic thread, so it will stop + running when your program has stopped running. + .. _recipes-markup-your-event-processor: -Augment Your Activeobject -^^^^^^^^^^^^^^^^^^^^^^^^^^ +Augmentng your ActiveObject +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + It is a bad idea to add variables to the state methods, instead augment your active objects using the ``augment`` command. @@ -1091,14 +1380,17 @@ active objects using the ``augment`` command. chart.augment(other=0, name='counter') assert(chart.counter == 0) -An even better idea would be to include the attributes in a subclass of an -Activeobject or Factory. - +.. note:: + + An even better idea would be to include the attributes in a subclass of an + Activeobject or Factory. .. _recipes-creating-a-state-method-from-a-template: Creating a Statechart From a Template ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Don't do this, use the :ref:`Factory` instead. + To have the library create your state methods for you: 1. :ref:`Import the correct items from the miros library` @@ -1110,7 +1402,6 @@ To have the library create your state methods for you: 7. :ref:`Start up the active object in the desired state` 8. :ref:`Debugging a templated state method` - .. image:: _static/factory2.svg :target: _static/factory2.pdf :align: center @@ -1192,7 +1483,6 @@ Relate your states to one another by assigning them to parents: .. _recipes-template-7: - Start up the active object in the desired state: .. code-block:: python @@ -1915,108 +2205,6 @@ Here is the code (asynchronous parts highlighted): # asynchronous part of our program print(tracker.get_weather()) #=> sunny -.. _recipes-subscribing-to-an-event-posted-by-another-active-object: - -Subscribing to an Event Posted by Another Active Object -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Your active object can subscribe to the events published by other active objects. - -An active object can set how the active fabric posts events to it. If it would -like a message to take priority over all other events waiting to be managed, -you would use the ``lifo`` technique: - -.. code-block:: python - - subscribing_ao = ActiveObject() - subscribing_ao.subscribe( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), - queue_type='lifo') - -This approach would make sense if you were subscribed to a timed heart beat -being sent out by another active object, or if this event was some sort of -safety related thing. - -In most situations you can use the subscription defaults: - -.. code-block:: python - - subscribing_ao = ActiveObject() - subscribing_ao.subscribe(signals.THING_SUBSCRIBING_AO_CARES_ABOUT) - # which is the same as writing - subscribing_ao.subscribe( - signals.THING_SUBSCRIBING_AO_CARES_ABOUT, queue_type='fifo') - -It may seem a little bit strange to subscribe to an event, since an event is a -specific thing, which contains a general thing; the signal. But the ``subscribe`` -method supports subscribing to events so that it's method signature looks like -the other method signatures in the library. (Less things for you to remember) - -If you chose to subscribe to events and not directly to signals, think of your -call as saying, "I would like to subscribe to this type of event". - -.. code-block:: python - - # subscribing to a `type` of event - subscribing_ao.subscribe( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), - queue_type='fifo') - -.. _recipes-publishing-event-to-other-active-objects: - -Publishing events to other Active Objects -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Your active object can send data to other active objects in the system by -publishing events. - -But your active object can only control *how it talks to others*, not *who -listens to it*; so, if another active object wants to receive a published event -it must subscribe to it first. - -If you would like to publish data that will be used by another ActiveObject, -copy your data into some sort of immutable object before you publish it: -namedtuple objects are perfect for these situations: - -.. code-block:: python - - from collections import namedtuple - - # draw these payloads on your statechart diagram - MyPayload = namedtuple('MyPayload', ['name_of_item_1', 'name_of_item2']) - - publishing_ao = ActiveObect() - - # This is how you can send an 'THING_SUBSCRIBING_AO_CARES_ABOUT' event - # to anything that has subscribed to it - publishing_ao.publish( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT, - payload=MyPayload( - name_of_item_1='something', - name_of_item_2='something_else' - ) - ) - ) - -Here is how to publish an event with a specific priority: - -.. code-block:: python - - publishing_ao = ActiveObect() - publishing_ao.publish( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT)) - - # or you can set the priority (1 is the highest priority see note): - publishing_ao.publish( - Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT), - priority=1) - -.. note:: - - The priority numbering scheme is counter-intuitive: low numbers mean high - priority while high numbers mean low priority. The highest published event - priority is 1. By default all published events are given a priority of 1000. - If two events have the same priority the queue will behave like a first in - first out queue. - .. _recipes-multiple-statecharts: Multiple Statecharts diff --git a/docs/_static/named_tuple_payload.pdf b/docs/_static/named_tuple_payload.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ee3e57e0b7c43fd0b48fff5b0973b223f88d927b GIT binary patch literal 1296 zcmaJ>e`p(39LG&@UeQJyO0`4Zz}RG(ymyyeE>}XdNt!HM=dvWYL00tT?xkLr-nqML zNIMYbMCnl2AA-|P*FvGI!;WDUbxiB8h+|Sj_RC^79XK6`t*FDQ(|2jcjTU_Wy!XC8 zKKJ>4zTbPUbUfi@eF4Vx{iT_&nE*gQEA%qqFia>Vljtx}!X}9mNs|feB5IHMB;Z6b z5;07j;6A2u@I+?Q&b^N~KA1UrVE8uYTgNA>YX?13d!nO5(ZgR)kDfBqs7yn$7g--H_V-jFP>f9 zI&sUDKW|@ue)qzA$-CDsR&Sns`NOMgs=pm6-~aCP^wgVOvzIrh!{hjmPq$p$6`Ge$ zZ5!J6*~#WRp8NZ3Y2CAB_67Xw;vd2@BL-OPH6zX7QC6r3XW=(JfhbCk3a}@Mc1lg_7&dW9>#1pOER}ELhwR|ZnjEK^y5sE}Vnr0>I27c0F5pE%8$xX! z7^A<1sc7o|N6}8o{SwjLiq*tP!21F|7EEvmAuk2y0Gsn~&w=P;(GIY~-H}XpdCNpM zDDDoA$0kEDo_$+GREYt<3d@ zR^|#pIyK93L+A!PQ^!h)=+;}4Qi~d}RL;Ou9OT1X5aA$CiljhrQ9waKupnZIqYqJmBgK$R_=3nw0a=h`35x+t0+DW*(KHiSea^tFGDrY@v=~=SZ*NU* T#xSvN)+D5;jLX%zCBgg$ih87{ literal 0 HcmV?d00001 diff --git a/docs/_static/named_tuple_payload.svg b/docs/_static/named_tuple_payload.svg new file mode 100644 index 0000000..0dd3bf7 --- /dev/null +++ b/docs/_static/named_tuple_payload.svg @@ -0,0 +1,28 @@ + + +PioneerRequestSpec = namedtuple( 'PioneerSpecRequest', ['cells_per_generation', 'queue_depth']) diff --git a/docs/_static/named_tuple_payload.uxf b/docs/_static/named_tuple_payload.uxf new file mode 100644 index 0000000..f9c70ae --- /dev/null +++ b/docs/_static/named_tuple_payload.uxf @@ -0,0 +1,17 @@ + + + 10 + + UMLNote + + 530 + 340 + 410 + 40 + + PioneerRequestSpec = namedtuple( + 'PioneerSpecRequest', ['cells_per_generation', 'queue_depth']) +layer=3 + + + diff --git a/docs/_static/start_at.pdf b/docs/_static/start_at.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7e3f714265f5f9ac3829e955f05ee37aba31a1e5 GIT binary patch literal 2894 zcmaJ@3pAAJ8!x$RLsA(@^Vdi2x4F-t$z?F^w{gv7H27xBEHj!J45=g`axayoL@jbD ztgK6PK~}j$R5Yy=)yC3Ap;rHItUdm_d(Qto=R4o~{@&+#zTfkEzH^>O)6JSvrdhG|jbl)y*p zp?P)(&gs09VBc^J)uL&&|8f3=6t2BKk=2{^FvGy2?;4Gx+>pd0`>H6M;kDfDXHr|o zEI%*QA4-7_l3#jBT_~=qLU494b5HLtQf@K5_p(r~w*%QfTg6Tu(fujYD=|tzCaZme zqndo*Ek?ZlaVpBRa?oHqbG!_9?-FLB%0-n_@nyJdYIy9kv&fuuaC6+a;qm^xk^>!6 zn##b@Bpf=%6Yuz*Y8}oNuF^W& z8Lc2&q@ox&x%Yt=<=*dJf!8u8bjx?6%ZE&>OFkVesYLk4Ab%TZ#tc7Oj#6l%=zQ** zD~ZN>4g{RkC^GSh96pree6G;t9NbuE=irIlH&4nKL+KZ;2a2YnMW0SBT3eS%$5~xE z*0e;JV~4Sk!PrIQMEj|d)vlfS(R%N z_*^ANH+ZS(b5&omemPUAD7Ff?-l~dy@{Q@{QIG9EmCZm@G^AO1uui_(`h8W=q6V-5 z;UfI$T6TAE@q7RK3v#rJjP8XQ<~w8WBRA4o?dp5@lzjg|pd)35yZk03NW$*X~yhYBQdi*2Nsz@vYew zbBLLte|dAC3_e-Y=Xhw=1YPvx?eq$-%{mSlNapT5)+18J zWt2zu_SmU!;J6=*PH>k~(km|!uG2^)R3xN@v#UM?O*=mRprq&3v;ED_Ihl$hVdL#j z?;Nmi?SB1!V;6l#Ly|@&V_;e$Trp!gp#|ROm+(judceSB%nsXO+= z^tjgE=*+7zoz4Q4TSKxbG}@-Eo#*S6k#*gRpIAEYrNCHO;%ROEP^2Ms5sQ|Xled(9<}!?x(h-=E^Hi%6p5|*pu%bzBuRo*lbx9J@j?>u3WoJ`I))eZ66|b zd;j3oUeH+CUU2;Np4!4A>^9*Pd8WxwRGZQ8>e7uMLS^+M-RM7Bxz;fcX1!&F=hOQ| zo!;^02TiJFS_K>Lng$dXr!@A)$}o;;x%ZEGM`kULZK~xgfsJQ>G;gdh_>7EYigph) zjY^$<*gFX``)#q4QxbE^0Tdj)&m3)fObZ_fzEw8XJZ5myL&QkwtLTicS9l>i_jXUW z1IcDV9` zwfeRXMA`@iwjKhg@k5Tb9%ul)64=%Q17O5EGczOw`lfhDKm*u65eRdm^B@`ke#O`s z3}w;DT%kV-IueXg01k%=G&2(?BBn3)S{*bzqJjlt%3|K=KiP|;Bgu3=xU#VW!=pg~ zD};`;;Xrc;i^D|vusD_+KI^aZT3j*H)wm&a0JU}@CcbuoUb_&}UA=H*h4THy!cqg* zROBPAxKU7A|Kmbjb6FAFiY}msbD1lm^Z(3$Exz%Zu`@T+8WL5<+7yFAo1h37H1wb_ zL_-u&8->!=MOr~4m4LV;C&zU-8f;L`ctn+Ts6=;ZRTw|FRSC=&W#%CmvMoISei! zR+);lw+8%4khI2V6D-cyghA{Kv0TW0!%@w^3SLBBA1$3TZMM4Z7kB4b$ J+PG3+{{ + +ActiveObjectEvent Processorao.start_at(c2)c2entry / print("c2 entered")c1centry / print("c entered")BAAStartcharts are initialized to havetheir initial state outside of your HSMbefore you call their start_at methodSo, this start_at call will causea run the entry conditions of c and c2and then the init condition of c2Using an attachment point like this is NOT UMLcompliant,but it shows where you wantto start your statechart when you turn it on diff --git a/docs/_static/start_at.uxf b/docs/_static/start_at.uxf new file mode 100644 index 0000000..f0a0ae1 --- /dev/null +++ b/docs/_static/start_at.uxf @@ -0,0 +1,229 @@ + + + 10 + + UMLState + + 330 + 280 + 370 + 190 + + c +-- +entry / + print("c entered") + +valign=top + + + + + UMLState + + 380 + 350 + 110 + 100 + + c1 +-- + + +valign=top + + + + + UMLSpecialState + + 350 + 350 + 20 + 20 + + type=initial + + + + Relation + + 350 + 350 + 50 + 70 + + lt=-> + 10.0;10.0;10.0;50.0;30.0;50.0 + + + UMLState + + 550 + 350 + 140 + 100 + + c2 +-- +entry / + print("c2 entered") +valign=top + + + + + Relation + + 480 + 360 + 90 + 40 + + lt=-> +A + 10.0;20.0;70.0;20.0 + + + Relation + + 480 + 400 + 90 + 40 + + lt=-> +A + 70.0;20.0;10.0;20.0 + + + Relation + + 390 + 460 + 230 + 60 + + lt=-> +B + 210.0;10.0;210.0;40.0;10.0;40.0;10.0;10.0 + + + Relation + + 560 + 320 + 30 + 60 + + lt=()-[v] + 10.0;10.0;10.0;40.0 + + + Relation + + 550 + 210 + 50 + 130 + + lt=[^]-( + 20.0;10.0;20.0;100.0 + + + Text + + 470 + 240 + 110 + 30 + + ao.start_at(c2) +style=wordwrap + + + + UMLGeneric + + 470 + 170 + 200 + 60 + + symbol=component +Event Processor + + + + UMLObject + + 460 + 140 + 220 + 100 + + ActiveObject +valign=top + + + + UMLNote + + 730 + 280 + 190 + 110 + + Using an attachment point +like this is NOT UML +compliant, +but it shows where you want +to start your statechart when +you turn it on +layer=3 + + + + Relation + + 570 + 300 + 180 + 70 + + lt=. +layer=3 + 10.0;50.0;160.0;10.0 + + + UMLNote + + 730 + 120 + 240 + 140 + + Startcharts are initialized to have +their initial state outside of your HSM +before you call their start_at method + +So, this start_at call will cause +a run the entry conditions of c and c2 +and then the init condition of c2 + +layer=3 + + + + Relation + + 650 + 240 + 100 + 40 + + lt=. +layer=3 + 10.0;20.0;80.0;10.0 + + diff --git a/docs/objects.inv b/docs/objects.inv index 95b8f5ac574e97bdeb733634e5fd96fb03cd84d5..50f0cb563d776cbbfd25a271eca9545e182193bc 100644 GIT binary patch delta 8275 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 RNfd1o3NWML{{e)85UeV*C~g1% delta 8223 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 R&!W_lP=FZ?{|}h{!AyLGC@ug1 diff --git a/docs/recipes.html b/docs/recipes.html index fdaec56..50cc7f7 100644 --- a/docs/recipes.html +++ b/docs/recipes.html @@ -801,6 +801,10 @@

Events And Signals

+

Creating an Event

An event is something that will be passed into your statechart, it will be @@ -1000,8 +1004,8 @@

Events And Signals -

Cancelling a Specific Event Source

+
+

Canceling a Specific Event Source

The requests to the post_fifo and post_lifo methods, where times are specified, can be thought of as event sources. This is because they create background threads which track time and periodically post events to the active @@ -1009,7 +1013,7 @@

Events And SignalsCancelling Event Source By Signal Name recipe to see how to do +Canceling Event Source By Signal Name recipe to see how to do this.

To cancel a specific signal source, you need to track the thread id which was created when it was made, then use that id to cancel the event. Since a state @@ -1062,8 +1066,8 @@

Events And Signalscancel_event.

-
-

Cancelling Event Source By Signal Name

+
+

Canceling Event Source By Signal Name

If you would like to re-use your event source signal names through your chart, then you can use the recipes-cancelling-a-specific-event-source recipe to cancel a specific source and leave your other event sources running. @@ -1129,6 +1133,48 @@

Events And Signals
e = Event(signal=signals.YOUR_SIGNAL_NAME, payload="My Payload")
 

+

If you are creating a payload that will be shared across statecharts put it +within an immutable object like a namedtuple before you send it out. Then draw +the named tuple onto your diagrams, because the structure of the payload will +become extremely important when you are trying to understand your design later.

+
+

Note

+

We want to use an immutable object when sharing data between threads to avoid +nasty multi-threading bugs. If you can’t change the object in two different +locations at the same time, then you can’t accidently create this kind of bug.

+
+

Here is an example of a payload picture, taken from the miros-random project:

+
_images/named_tuple_payload.svg
+
+

You can see, it’s just the code used to make it, placed within a UML note.

+

Here is the code to make this payload’s class:

+
# collections are in the Python standard library
+from collections import namedtuple
+
+# create a structured immutable object that has useful names related
+# to your problem
+PioneerRequestSpec = namedtuple(
+  'PioneerRequestSpec', ['cells_per_generation', 'deque_depth')
+
+
+

Here is how you would create an event with this payload class:

+
# There is often a relationship between your signal names and your payload
+# name
+e = Event(signal=signals.PioneerRequest,
+      payload=PioneerRequestSpec(
+        cells_per_generation=45,
+        queue_depth=11)
+
+
+

Here is how you would access the payload elsewhere in your design:

+
# to get access to the payload information when you receive this event in one
+# of your event handlers:
+e.payload.cells_per_generation  # => 45
+e.payload.queue_depth  # => 11
+
+
+

I would recommend that you always place your payloads in immutable objects, +even if you aren’t intending to share them between statecharts.

Determining if an Event Has a Payload

@@ -1141,21 +1187,223 @@

Events And Signals +

Subscribing to an Event Posted by Another Active Object

+

Your active object can subscribe to the events published by other active objects:

+
subscribing_ao = ActiveObject()
+subscribing_ao.subscribe(
+  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT))
+
+
+

An active object can set how the ActiveFabric (the infrastructure connecting all +of your statecharts together) posts events to it. If it would like a message to +take priority over all other events waiting to be managed, you would use the +lifo technique:

+
subscribing_ao = ActiveObject()
+subscribing_ao.subscribe(
+  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT),
+  queue_type='lifo')
+
+
+

This approach would make sense if you were subscribed to a timed heart beat +being sent out by another active object, or if this event was some sort of +safety related thing.

+

In most situations you can use the subscription defaults:

+
subscribing_ao = ActiveObject()
+subscribing_ao.subscribe(signals.THING_SUBSCRIBING_AO_CARES_ABOUT)
+# which is the same as writing
+subscribing_ao.subscribe(
+  signals.THING_SUBSCRIBING_AO_CARES_ABOUT, queue_type='fifo')
+
+
+

It may seem a little bit strange to subscribe to an event, since an event is a +specific thing, which contains a general thing; the signal. But the subscribe +method supports subscribing to events so that it’s method signature looks like +the other method signatures in the library. (Less things for you to remember)

+

If you chose to subscribe to events and not directly to signals, think of your +call as saying, “I would like to subscribe to this type of event”.

+
# subscribing to a `type` of event
+subscribing_ao.subscribe(
+  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT),
+  queue_type='fifo')
+
+
+

+
+

Publishing events to other Active Objects

+

Your active object can send data to other active objects in the system by +publishing events.

+

But your active object can only control how it talks to others, not who +listens to it; so, if another active object wants to receive a published event +it must subscribe to it first.

+

If you would like to publish data that will be used by another ActiveObject, +copy your data into some sort of immutable object before you publish it: +namedtuple objects are perfect for these situations:

+
from collections import namedtuple
+
+# draw these payloads on your statechart diagram
+MyPayload = namedtuple('MyPayload', ['name_of_item_1', 'name_of_item2'])
+
+publishing_ao = ActiveObect()
+
+# This is how you can send an 'THING_SUBSCRIBING_AO_CARES_ABOUT' event
+# to anything that has subscribed to it
+publishing_ao.publish(
+  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT,
+    payload=MyPayload(
+      name_of_item_1='something',
+      name_of_item_2='something_else'
+    )
+  )
+)
+
+
+

Here is how to publish an event with a specific priority:

+
publishing_ao = ActiveObect()
+publishing_ao.publish(
+  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT))
+
+# or you can set the priority (1 is the highest priority see note):
+publishing_ao.publish(
+  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT),
+  priority=1)
+
+
+
+

Note

+

The priority numbering scheme is counter-intuitive: low numbers mean high +priority while high numbers mean low priority. The highest published event +priority is 1. By default all published events are given a priority of 1000. +If two events have the same priority the queue will behave like a first in +first out queue.

+
+

Activeobjects and Factories

-
-

Augment Your Activeobject

+
+

Starting an Activeobject or Factory

+

Once you have created an Activeobject or a +Factory you can start its +statemachine and thread with its start_at method.

+

There is a set of queues and threads which connect all of your ActiveObjects +together (the ActiveFabric), if it hasn’t been started yet, the start_at +method will turn on this infrastructure as well.

+

Here is a simple example:

+
_images/start_at.svg
+
+

The start_at method can start the statechart in any of its states.

+
+

Note

+

The diagram needs a way to show where the miros framework starts it. There +is no way to indicate this with standard UML, so I parsimoniously appropriate +the bottom part of the component icon; I connect it to where we want the +machine to start when it is first turned on.

+
+

Here is the code:

+
import time
+from miros import spy_on
+from miros import ActiveObject
+from miros import signals, Event, return_status
+
+@spy_on
+def c(chart, e):
+  status = return_status.UNHANDLED
+  if(e.signal == signals.ENTRY_SIGNAL):
+    status = return_status.HANDLED
+    print("c1 entered")
+  elif(e.signal == signals.INIT_SIGNAL):
+    status = chart.trans(c1)
+  elif(e.signal == signals.B):
+    status = chart.trans(c)
+  else:
+    chart.temp.fun = chart.top
+    status = return_status.SUPER
+  return status
+
+@spy_on
+def c1(chart, e):
+  status = return_status.UNHANDLED
+  if(e.signal == signals.A):
+    status = chart.trans(c2)
+  else:
+    chart.temp.fun = c
+    status = return_status.SUPER
+  return status
+
+@spy_on
+def c2(chart, e):
+  status = return_status.UNHANDLED
+  if(e.signal == signals.ENTRY_SIGNAL):
+    print("c2 entered")
+    status = return_status.HANDLED
+  elif(e.signal == signals.A):
+    status = chart.trans(c1)
+  else:
+    chart.temp.fun = c
+    status = return_status.SUPER
+  return status
+
+if __name__ == "__main__":
+  ao = ActiveObject('start_example')
+  print("calling: start_at(c2)")
+  ao.start_at(c2)
+
+  time.sleep(0.2)
+  print(ao.trace()) # print what happened from the start_at call
+  ao.clear_trace()  # clear our instrumentation
+
+  print("sending B, then A, then A:")
+  ao.post_fifo(Event(signal=signals.B))
+  ao.post_fifo(Event(signal=signals.A))
+  ao.post_fifo(Event(signal=signals.A))
+  time.sleep(0.2)
+  print(ao.trace()) # print what happened
+
+
+

When we run this code we will see this result:

+
calling: start_at(c2)
+c1 entered
+c2 entered
+[2019-06-21 06:05:36.234137] [start_example] e->start_at() top->c2
+
+sending B, then A, then A
+c1 entered
+c2 entered
+[2019-06-21 06:05:36.435853] [start_example] e->B() c2->c1
+[2019-06-21 06:05:36.436074] [start_example] e->A() c1->c2
+[2019-06-21 06:05:36.436228] [start_example] e->A() c2->c1
+
+
+
+
+

Stopping an ActiveObject or Factory

+

If you would like to stop an Activeobject or a +Factory you can use its +stop method.

+

This will stop its thread, and it will stop all of that Activeobject’s slave +threads (constructed by the post_fifo or post_lifo heartbeat constructors). The +stop method sets the Activeobject’s ActiveFabric-facing queue to None, so that +the ActiveFabric will not post items to it anymore.

+
+

Note

+

Calling the stop method will not stop the ActiveFabric. But the +ActiveFabric, like all threads in miros, is a daemonic thread, so it will stop +running when your program has stopped running.

+
+
+
+

Augmentng your ActiveObject

It is a bad idea to add variables to the state methods, instead augment your active objects using the augment command.

chart = ActiveObect()
@@ -1163,11 +1411,15 @@ 

Events And Signalsassert(chart.counter == 0)

-

An even better idea would be to include the attributes in a subclass of an +

+

Note

+

An even better idea would be to include the attributes in a subclass of an Activeobject or Factory.

+

Creating a Statechart From a Template

+

Don’t do this, use the Factory instead.

To have the library create your state methods for you:

  1. Import the correct items from the miros library
  2. @@ -1865,91 +2117,6 @@

    Events And Signals -

    Subscribing to an Event Posted by Another Active Object

    -

    Your active object can subscribe to the events published by other active objects.

    -

    An active object can set how the active fabric posts events to it. If it would -like a message to take priority over all other events waiting to be managed, -you would use the lifo technique:

    -
    subscribing_ao = ActiveObject()
    -subscribing_ao.subscribe(
    -  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT),
    -  queue_type='lifo')
    -
    -
    -

    This approach would make sense if you were subscribed to a timed heart beat -being sent out by another active object, or if this event was some sort of -safety related thing.

    -

    In most situations you can use the subscription defaults:

    -
    subscribing_ao = ActiveObject()
    -subscribing_ao.subscribe(signals.THING_SUBSCRIBING_AO_CARES_ABOUT)
    -# which is the same as writing
    -subscribing_ao.subscribe(
    -  signals.THING_SUBSCRIBING_AO_CARES_ABOUT, queue_type='fifo')
    -
    -
    -

    It may seem a little bit strange to subscribe to an event, since an event is a -specific thing, which contains a general thing; the signal. But the subscribe -method supports subscribing to events so that it’s method signature looks like -the other method signatures in the library. (Less things for you to remember)

    -

    If you chose to subscribe to events and not directly to signals, think of your -call as saying, “I would like to subscribe to this type of event”.

    -
    # subscribing to a `type` of event
    -subscribing_ao.subscribe(
    -  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT),
    -  queue_type='fifo')
    -
    -
    -

-
-

Publishing events to other Active Objects

-

Your active object can send data to other active objects in the system by -publishing events.

-

But your active object can only control how it talks to others, not who -listens to it; so, if another active object wants to receive a published event -it must subscribe to it first.

-

If you would like to publish data that will be used by another ActiveObject, -copy your data into some sort of immutable object before you publish it: -namedtuple objects are perfect for these situations:

-
from collections import namedtuple
-
-# draw these payloads on your statechart diagram
-MyPayload = namedtuple('MyPayload', ['name_of_item_1', 'name_of_item2'])
-
-publishing_ao = ActiveObect()
-
-# This is how you can send an 'THING_SUBSCRIBING_AO_CARES_ABOUT' event
-# to anything that has subscribed to it
-publishing_ao.publish(
-  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT,
-    payload=MyPayload(
-      name_of_item_1='something',
-      name_of_item_2='something_else'
-    )
-  )
-)
-
-
-

Here is how to publish an event with a specific priority:

-
publishing_ao = ActiveObect()
-publishing_ao.publish(
-  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT))
-
-# or you can set the priority (1 is the highest priority see note):
-publishing_ao.publish(
-  Event(signal=signals.THING_SUBSCRIBING_AO_CARES_ABOUT),
-  priority=1)
-
-
-
-

Note

-

The priority numbering scheme is counter-intuitive: low numbers mean high -priority while high numbers mean low priority. The highest published event -priority is 1. By default all published events are given a priority of 1000. -If two events have the same priority the queue will behave like a first in -first out queue.

-
-

Multiple Statecharts

Break your design down into different interacting charts by using the @@ -2686,21 +2853,23 @@

Table of Contents

  • Posting an Event to the LIFO
  • Creating a One-Shot Event
  • Creating a Multishot Event
  • -
  • Cancelling a Specific Event Source
  • -
  • Cancelling Event Source By Signal Name
  • +
  • Canceling a Specific Event Source
  • +
  • Canceling Event Source By Signal Name
  • Deferring and Recalling an Event
  • Adding a Payload to an Event
  • Determining if an Event Has a Payload
  • +
  • Subscribing to an Event Posted by Another Active Object
  • +
  • Publishing events to other Active Objects
  • Activeobjects and Factories
  • diff --git a/docs/searchindex.js b/docs/searchindex.js index ebb9adb..931ddfa 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["activeobject","architecture","cellular_automata","comprehensive","concurrency_essay","event","examples","glossary","hsm","i_bitcoin_miner_toaster_oven","i_create_a_multishot","i_create_a_one_shot","i_defer_and_recall","i_determining_the_current_state","i_making_sequence_diagrams_from_trace","i_mongol_example","i_mongol_with_empathy_code_listing","i_navigation_1","i_navigation_2","i_navigation_3","i_navigation_4","i_navigation_5","i_navigation_6","i_networking_instrumentation_file_table","i_scribble_on_the_spy","i_seeing_your_signals","i_spy_reactive","i_test_with_spy","i_test_with_trace","i_trace_reactive","index","installation","interactingcharts","introduction","networked_instrumentation","patterns","postingexample","quickstart","reading_diagrams","recipes","reflection","scribbleexample","setting_up_rabbit_mq","singlechartexample","testing","towardsthefactoryexample","zero_to_one"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["activeobject.rst","architecture.rst","cellular_automata.rst","comprehensive.rst","concurrency_essay.rst","event.rst","examples.rst","glossary.rst","hsm.rst","i_bitcoin_miner_toaster_oven.rst","i_create_a_multishot.rst","i_create_a_one_shot.rst","i_defer_and_recall.rst","i_determining_the_current_state.rst","i_making_sequence_diagrams_from_trace.rst","i_mongol_example.rst","i_mongol_with_empathy_code_listing.rst","i_navigation_1.rst","i_navigation_2.rst","i_navigation_3.rst","i_navigation_4.rst","i_navigation_5.rst","i_navigation_6.rst","i_networking_instrumentation_file_table.rst","i_scribble_on_the_spy.rst","i_seeing_your_signals.rst","i_spy_reactive.rst","i_test_with_spy.rst","i_test_with_trace.rst","i_trace_reactive.rst","index.rst","installation.rst","interactingcharts.rst","introduction.rst","networked_instrumentation.rst","patterns.rst","postingexample.rst","quickstart.rst","reading_diagrams.rst","recipes.rst","reflection.rst","scribbleexample.rst","setting_up_rabbit_mq.rst","singlechartexample.rst","testing.rst","towardsthefactoryexample.rst","zero_to_one.rst"],objects:{"":{activeobject:[0,0,0,"-"],event:[5,0,0,"-"],hsm:[8,0,0,"-"]},"activeobject.ActiveFabricSource":{clear:[0,3,1,""],publish:[0,3,1,""],start:[0,3,1,""],stop:[0,3,1,""],subscribe:[0,3,1,""],thread_runner_fifo:[0,3,1,""],thread_runner_lifo:[0,3,1,""]},"activeobject.ActiveObject":{append_publish_to_spy:[0,3,1,""],append_subscribe_to_spy:[0,3,1,""],cancel_event:[0,3,1,""],cancel_events:[0,3,1,""],make_unique_name_based_on_start_at_function:[0,3,1,""],run_event:[0,3,1,""],start_thread_if_not_running:[0,3,1,""],stop:[0,3,1,""],trace:[0,3,1,""]},"event.Event":{dumps:[5,4,1,""],has_payload:[5,3,1,""],loads:[5,4,1,""]},"event.SignalSource":{name_for_signal:[5,3,1,""]},"hsm.HsmEventProcessor":{augment:[8,3,1,""],child_state:[8,3,1,""],dispatch:[8,3,1,""],init:[8,3,1,""],is_in:[8,3,1,""],start_at:[8,3,1,""],top:[8,3,1,""],trans:[8,3,1,""],trans_:[8,3,1,""]},activeobject:{ActiveFabric:[0,1,1,""],ActiveFabricSource:[0,2,1,""],ActiveObject:[0,2,1,""]},event:{Event:[5,2,1,""],OrderedDictWithParams:[5,2,1,""],ReturnStatusSource:[5,2,1,""],Signal:[5,1,1,""],SignalSource:[5,2,1,""]},hsm:{HsmEventProcessor:[8,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","staticmethod","Python static method"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:class","3":"py:method","4":"py:staticmethod"},terms:{"0bmhjf0rke8":[],"100m":[35,46],"13th":15,"142x5zhqemk5lljxgzeitbwpv2oxqpfahj":[9,37],"1980s":[],"1990s":[33,38],"1st":[43,46],"2000s":33,"257m":4,"2nd":[37,38,43,46],"2onedcellularautomata":[],"2twodcellularautomata":[],"33691e":[],"37474f":[],"3nd":43,"3rd":34,"3th":43,"4nd":43,"4th":43,"70s":4,"75c8c":[14,29,36,39,40],"8ahweo_dgs0":[],"90s":[],"95a8c":[14,39,40],"abstract":[15,35,37,45],"break":[4,14,15,35,36,37,39,40,43,45,46],"case":[11,15,36,37,39,43,46],"catch":[7,9,15,16,32,34,35,37,38,45,46],"class":[0,5,6,7,8,9,13,15,16,17,18,19,20,21,22,25,33,35,36,37,40,41,44,46],"default":[0,15,35,39,42,46],"enum":5,"final":[7,8,15,34,35,36,37,43,46],"float":[4,46],"function":[0,3,5,7,8,10,13,32,35,36,37,38,39,40,45,46],"import":[4,9,11,15,16,25,26,27,28,32,35,36,37,38,39,40,43,45,46],"int":[25,39,40,46],"long":[15,32,35,36,37,46],"new":[0,4,5,7,8,15,26,27,28,34,35,36,37,38,39,40,41,42,43,45,46],"public":[42,43],"return":[0,5,7,8,9,10,11,15,16,24,32,34,35,36,37,38,39,41,43,45,46],"short":[15,35,37,38,41,46],"static":[5,15,34,36],"super":[4,8,9,10,11,15,16,24,34,35,36,37,39,41,43,45,46],"switch":[3,35,46],"throw":[14,15,37,38,39,40,46],"true":[0,5,7,8,9,10,11,15,16,34,35,36,37,38,39,40,41,43,46],"try":[4,8,15,34,35,36,37,38,39,41,43,45,46],"var":[],"while":[3,4,7,10,14,15,16,33,34,35,36,37,38,39,40,42,43,45,46],Adding:34,And:[15,16,46],Are:46,Being:[37,46],But:[15,33,34,35,36,37,38,39,40,41,42,45,46],Eve:[37,46],For:[0,5,7,27,34,35,37,38,39,40,43,45,46],Going:37,His:[4,15,46],Its:37,NOT:[0,42,43],Not:[7,37,46],One:[7,15,30,36,37,41],Such:[15,46],That:[4,15,28,32,35,36,37,39,40,41,45,46],The:[0,2,3,4,5,7,8,9,10,11,14,16,25,26,28,29,32,33,35,36,38,39,41,42,43,44,45,46],Their:[4,8,15,45],Then:[4,8,14,15,32,33,35,36,37,38,39,40,41,43,45,46],There:[0,4,7,8,12,15,29,32,34,35,36,37,38,39,40,41,42,46],These:[4,8,15,33,35,37,38,39,42,45,46],Use:[4,34,35,38,46],Used:8,Useful:8,Using:[6,15,37],WLS:[],With:[15,28,36,37,38,39,40,45],Yes:46,__add__:[15,16],__getattr__:[25,39,40],__init__:[5,9,15,16,34,35,37,38,39,46],__main__:[9,15,34,37,39,41,46],__name__:[9,15,34,37,39,41,45,46],__post_ev:0,_decrypt:34,_encrypt:34,_fake_new:35,_fake_news_gener:35,_gener:[],_static:[],_strip_trac:34,a1_entri:39,a1_to_b1:39,a53:46,aa00ff:[],abandon:[38,39],abil:[7,15,33,36,37,46],abl:[7,15,34,35,38,40,46],about:[0,4,7,8,10,11,14,15,26,27,29,33,34,35,36,37,39,40,41,42,43,45,46],abov:[3,8,14,15,28,34,35,36,37,38,39,40,41,42,43,45,46],abs:[],absent:15,absolut:[15,39],acceler:7,acceleromet:[],acceller:[],accept:[34,44],accerer:[],access:[4,7,15,25,26,34,35,37,38,39,40,46],accident:[15,38,45,46],accomod:46,accord:[7,15,37,38],account:[4,9,36,37,46],accumul:[38,46],accur:15,achiev:[4,15],acquisit:35,acronym:[37,46],across:[5,8,15,25,33,35,36,37,39,40,42,45,46],act:[4,8,12,14,15,16,34,35,36,37,38,39,40,46],action:[0,7,8,15,33,36,37,38,41,43,45,46],activ:[1,3,4,6,7,10,14,15,24,26,27,28,29,32,34,35,36,37,38,40,41,45,46],active_object:45,active_object_input_queu:0,activefabr:[0,39,43],activefabricsourc:0,activefactori:38,activeobect:[39,46],activeobject:[0,9,15,35,36,37,38,40,41,43,45,46],actual:[4,7,8,14,15,16,27,29,32,35,37,38,39,40,41,43,45,46],adapt:35,add:[4,5,7,8,11,15,24,32,35,36,38,42,43,46],add_member_if_need:15,add_timeout:34,added:[5,15,34,36,37,39,45,46],adding:[7,15,33,35,37,46],addit:[3,7,15,34,37,38,40,46],address:[15,16,34,37,42,46],adher:[7,15],adjac:8,adjust:[3,14,15,16,34,35,36,39,40,41],admistr:7,advanc:[8,15,16,38],advance_close_enough_for_circl:[15,16],advance_entri:[15,16],advance_exit:[15,16],advance_other_advanced_war_cri:[15,16],advance_senior_advanced_war_cri:[15,16],advance_war_cri:[15,16],advantag:15,adventur:[37,46],advertis:46,advic:46,advis:46,advoc:[],aesthet:[37,46],af_inet:34,affair:15,affect:37,afford:37,after:[3,4,7,15,26,27,33,35,36,37,38,39,40,41,42,43,45,46],afternoon:38,again:[0,8,15,32,35,36,37,39,41,43,45,46],against:[7,15,25,28,34,36,39,40,41,46],agent:15,aggreg:[23,34,35,38],aggress:35,aggression_max:35,agil:15,ago:[],agre:35,agress:35,ahead:[10,39],aim:[8,15],ain:15,air:4,aircraft:4,airforc:[],alan:[33,39],alarm:8,albert:38,alcohol:[37,46],alert:[],alexand:[7,35],algebra:15,algorithm:[7,8,33,35,36,37,38,39,41,45,46],align:[],aliv:15,all:[0,3,4,5,7,8,10,14,15,16,23,26,32,34,35,36,37,38,39,40,42,43,45,46],all_readi:35,alli:[],allow:[3,7,15,33,34,35,36,37,42,43,46],allowfullscreen:[],allur:15,almost:[15,36,38,44,45,46],alon:[15,37,46],along:[38,46],alpha:[],alreadi:[4,8,15,16,35,37,38,42,43,46],also:[3,4,5,7,8,10,14,15,34,35,36,37,38,39,40,41,42,45,46],altan:[15,16],altan_192:15,alter:15,alwai:[4,7,8,15,35,36,37,39,42,46],alzheim:[],ambiti:[35,40],american:4,ammunit:[15,16],ammunition_low:[15,16],amoungst:[],amount:[4,15,26,35,38,39,40,46],amplifi:[36,40],analog:41,analysi:[],analyz:[],ancestor:[8,15,37,46],ancestr:15,anchor:[7,39],angl:7,angle_in_radian:[],angri:15,ani:[0,3,4,5,7,8,11,15,25,34,35,36,37,38,39,40,41,43,44,46],anim:[],annihil:46,annoi:46,announc:[37,46],anoth:[3,4,5,7,8,14,15,16,29,32,34,35,36,37,38,40,41,42,43,45,46],answer:[4,15,37,44,45,46],anti:[38,39,46],anymor:[15,36,37,46],anyon:[15,36,37,40,46],anyth:[4,36,37,38,39,40,45,46],anytim:[7,15,34,35,37,39,43,46],anywai:[37,46],anywher:[15,38,46],ao1:[39,40],ao2:39,aos:[10,36,39],apart:[4,35,46],api:[0,10,11,15,24,34,39,43,45,46],app:[42,46],appear:[15,37,46],append:[0,5,8,15,16,34,39],append_publish_to_spi:0,append_subscribe_to_spi:0,append_to_spi:34,append_to_trac:34,appendix:46,appli:[7,15,37,39,43,46],applic:[4,15,33,37,38,39,45,46],approach:[0,4,7,8,15,35,37,39,41,46],approxim:[],apt:42,arab:4,arbitrari:15,archer:[6,16],architect:[7,15,35],architectur:[15,30,35,36,37,46],area:[4,35],aren:[4,7,15,35,36,37,38,46],arg:[5,8,46],argu:15,argument:[7,8,10,34,36,37,39,43,45,46],aris:[15,35,46],arm:[14,15,27,28,29,33,35,36,39,40,46],armi:15,armin:7,armli:[],armour:15,around:[4,7,15,28,34,35,37,39,40,46],arrai:[8,35,46],arrang:[37,38,46],array_equ:[],arriv:[15,37,38,46],arrow:[7,8,15,16,34,35,36,37,39,41,43,46],art:[34,39,43],artifact:46,artifici:[7,12,35,39],ascii:[7,14,34,39,40,46],ask:[4,15,34,35,36,37,38,39,41,43,44,45,46],aspect:[35,37,39,46],assert:[0,5,8,15,27,28,35,37,39,40,46],assign:[0,8,39,45,46],assimil:[],assist:[14,39,40],associ:[0,36,37,41,46],assort:38,assum:[15,26,35,39,40,41,45],assumpt:35,asychron:[],asymetr:46,asynchron:[4,7,39],asyncio:46,at15:46,atan:[],atom:41,attach:[37,39,43,46],attack:[15,16,41],attempt:38,attent:[3,4,8,14,15,32,35,36,37,38,39,40,43,45,46],attractor:15,attribut:[5,8,9,15,34,35,36,37,38,39,43,46],audienc:[37,38,46],augment:[8,10,35,36,38],augustin:4,aureliu:[],australia:[],author:35,authorized_kei:42,authorizing_author:35,authorizing_entri:35,autist:15,auto:[39,45],autocorrel:[],autodoc:[],autom:42,automat:[15,35,37,39,42,45,46],automata:6,autonom:15,autonoma:[],autoplai:[],avail:[4,38,46],avalanch:15,avion:4,avoid:[4,10,15,36,38,39,40,41,45,46],awai:[14,15,16,33,35,36,38,39,40,43,46],await:[26,39,40],awaken:46,awar:[4,15,37,38,46],awesom:[],awkward:[7,41],axi:46,b11:39,b11_entri:39,b11_inner_most:39,b11_other_inner_most:39,b1_entri:39,b1_exit:39,b1_init:39,b27300:[],b_chart:32,babi:4,back:[2,3,7,8,15,32,34,35,36,37,38,39,41,43,45,46],background:[15,32,35,38,39,43,46],backward:[8,38],bad:[4,15,32,34,35,39,46],bafflingli:15,bait:15,bak:44,bake:[9,35,37,46],bake_tim:46,bake_time_in_sec:46,baking_buzz_test_spec:46,baking_entri:35,baking_st:37,baking_time_m:46,balanc:4,ball:[],balloon:46,ban:[37,46],bang:15,bank:35,bar:[37,38,46],barg:[0,7,10,39,46],barrag:15,barrier:[],bartend:[37,46],base:[0,7,8,15,34,35,37,39,40,41,43,46],base_state_method:45,basic:[5,15,25,35,37,39,40,43],basic_consum:34,basic_publish:34,bate:15,batteri:[14,36,39,40],battery_charg:[27,28,29,36,39,40],battl:[4,15,16],battle_entri:[15,16],battle_init:[15,16],battlefield:15,battleground:4,bb_handler:32,beagleboard:46,beat:[4,10,39],beauti:[38,40,45],beautifulli:8,beazlei:46,becam:[4,39],becaus:[4,5,7,12,15,27,32,33,34,35,36,37,38,39,40,41,43,45,46],becom:[4,7,14,15,28,33,36,37,38,39,40,45,46],been:[0,2,3,4,5,7,8,15,27,31,32,34,35,36,37,39,40,41,43,45,46],befor:[0,4,5,7,8,9,11,15,33,34,35,36,37,38,39,41,42,43,45,46],began:[36,46],begin:[0,4,7,8,14,15,16,32,34,35,36,37,38,39,40,41,43,46],beginn:4,behav:[3,11,14,15,16,33,35,36,37,39,40,43,45,46],behavior:[7,15,24,26,27,28,32,33,34,35,36,37,38,39,41,43,45,46],behavior_nam:35,behaviour:[15,34,37,46],behind:[33,38,45,46],being:[4,5,7,8,10,12,15,16,23,25,28,34,35,36,37,38,39,40,43,45,46],beings:46,belief:15,believ:[37,46],belong:[15,35],below:[15,25,32,39,40,42],benefit:[37,38,39,45,46],benifit:[],bernhard:42,besid:[7,37,38,39,46],best:[0,4,7,15,37,38,46],better:[4,15,35,37,38,39,43,46],between:[4,7,8,10,11,15,16,26,29,35,36,37,38,39,40,41,43,45,46],beyond:[8,15,38,46],bia:[],bias:15,big:[7,15,34,35,36,37,39,41,43,46],bigger:[3,4,36,40],billion:4,bin:46,binari:7,bind:[34,44],binocular:46,bird:[37,46],bit:[4,9,11,15,32,34,36,37,39,41,43,45,46],bitcoin:[9,37],bitcoin_address:[9,37],bitcoin_miner_off:[9,37],bitcoin_miner_on:[9,37],black:[7,15,36,37,38,39,41,43,46],black_mask:[],blast:15,blazingli:46,blind:[15,27,32,39,40],blit:[],block:[4,15,35,37,39,41,43,45,46],blockingconnect:34,blog:[42,46],blue:[7,37,39,46],blueprint:[15,38],blur:15,bluster:15,board:[37,38,46],bob:[34,42],bodi:[15,34],bog:15,boiler:46,boilerpl:34,bold:35,bomb:4,bombard:15,book:[4,8,35,36,37,38,41],bool:8,bordercolor:[],borg:[],boss:46,bot:[15,42],both:[0,4,7,15,32,34,35,37,38,39,43,46],bother:[14,15,39,40,46],botnet:15,bottl:15,bottom:[4,45,46],bottom_bound:46,bounc:46,bouncer:[37,46],bound:15,boundari:[7,39,41,46],bow:[15,16],box:[34,37,46],boyd:33,bracket:[29,35,39,40,41],brain:[],brake:[35,39],brand:[38,39,46],brass:37,brave:15,breach:7,bread:[36,46],breakpoint:37,brethren:15,brew:[],bridg:[37,46],briefest:45,briefli:[37,46],bring:[4,15,39,41],broad:15,broadcast:[14,39,40],broadcast_spi:34,broadcast_trac:34,broken:[4,15,34,35,39,46],broker:42,brother:15,brown:[],browser:[37,46],bubbl:[35,37,39,46],buffer:[7,26,35,36,39,40],bug:[15,36,39,45,46],bui:[4,40,46],build:[3,4,7,8,12,16,32,34,35,36,37,38,39,40,41,43,45,46],build_next_mask:[],build_piston:35,built:[3,7,15,29,32,34,35,37,38,39,40,41,46],bulk:[],bullet:46,bunch:[7,15,37,46],burden:46,buri:[],burst:[15,35],burst_ev:35,bus:46,busi:[4,7,15,32,34,35,37],busy_count:35,busy_entri:35,busy_time_out:35,busy_time_out_hook:35,butterfli:[],button:[37,46],buttress:46,buzz:[41,46],buzz_tim:46,buzz_time_m:46,buzzer:46,buzzspec:46,c11:39,c1_a:34,c2_a:34,c_chart:32,c_trace_consum:[23,34],c_trace_produc:[23,34],cachefilechart:38,caf_second:[15,16],calcium:[],calcul:[],calculu:15,call:[0,3,4,7,8,10,11,12,15,25,26,29,32,33,34,35,36,37,38,39,40,41,43,45,46],call_something_lat:[37,46],callback:[7,15,16,32,35,37,39,46],callback_method:34,caller:[7,35,39],came:[4,7,11,15,26,35,38,39,40,46],camera:15,camil:43,campaign:[37,46],can:[0,2,3,4,5,6,7,8,9,10,11,12,14,15,16,24,25,26,27,28,29,32,33,35,36,37,38,39,40,41,42,43,44,45,46],cancel:[0,10,11,15,36,46],cancel_ev:[0,10,11,15,16,36,39,46],cancel_sourc:39,cannot:35,capabl:[15,34],capacitor:36,capacitor_charg:[27,36,39,40],captur:[10,11,15,35,39],card:15,care:[0,7,11,14,15,37,38,39,40,41,43,45,46],career:[4,15],carefulli:[27,39,40,46],cargo:4,carpet:[37,46],carri:[7,15,37,39,46],cascad:36,cast:46,casual:38,cat:42,catagor:7,caught:[7,15,35,37,39,46],caus:[3,4,15,29,32,35,36,37,38,39,40,43,45,46],causal:[],ccceler:[],cell:[],cells_per_gener:[],cellular:6,celsiu:35,cement:[],center:43,centr:35,centuri:15,ceo:4,certain:[15,37,38,45,46],certainli:[15,37],ceullular:[],chain:15,challeng:[37,46],chamber:35,chanc:[15,16,39,46],chang:[3,4,8,11,14,15,28,33,34,35,37,38,39,40,42,43,45,46],changebordercolor:[],channel:34,chao:[15,35],chaotic:15,chapter:[35,38],charact:[0,29,34,37,39,40,46],characterist:[8,15,35,46],charg:[14,15,16,36,39,40],charli:46,chart1:39,chart2:39,chart3:39,chart:[0,3,6,7,8,10,11,12,13,14,15,16,24,25,26,29,32,34,35,36,37,38,39,41,43,45,46],chart_b:32,chart_nam:34,chase:15,cheap:[40,46],check:[0,15,37,46],chicken:[15,16],child:[7,8,35,39,43],child_stat:8,child_state_graph_e1_s5:8,children:15,choa:[],choic:[39,46],chomski:42,choos:[15,37,46],chortl:4,chose:39,christoph:[7,35],chunk:[4,43],circl:[7,15,16,37,38,46],circle_and_fir:[15,16],circuit:[15,35,36],circular:46,claim:[35,46],clariti:5,classwithstatechartinit:39,claus:[7,35,37,39,46],clean:[5,45,46],clear:[0,8,15,28,37,39,40,43,46],clear_spi:[34,41,43,46],clear_trac:[15,34,37,43,46],clearer:[41,45],click:[3,7,15,35,37,38,46],client:[7,15,35],client_dequ:0,climb:[8,35,37,43,46],clip:[37,46],clobber:8,clock:[35,46],clone:[],close:[9,15,16,35,36,37,46],close_enough_for_circl:[15,16],closer:15,closest:15,closur:34,club:35,clue:[37,46],clumsi:34,cluster:[],clutter:[34,35,46],cmap:[],cod:[],code:[0,2,3,4,5,7,8,9,12,14,15,16,17,18,19,20,21,22,23,26,28,32,33,35,36,38,40,42,43,45],codebas:37,cognit:[15,36,41,45],cohes:15,collabor:[15,35],collect:[4,5,7,8,15,34,38,39,42,46],collegu:32,collis:41,color:[],color_numb:[],colour:[34,38],column:[],com:[],combin:[],come:[3,4,7,14,15,34,35,36,37,38,39,40,42,43,46],comfort:[15,34,37],command:[4,15,16,27,35,39,40,42],comment:[8,14,15,27,35,36,39,40,45,46],commerci:39,committe:38,commmon:7,common:[7,8,35,37,38,39,44,45,46],common_behavior:39,common_behaviors_entri:39,common_behaviors_hook_1:39,common_behaviors_hook_2:39,common_behaviors_init:39,common_behaviors_other_inner_most:39,common_behaviors_reset:39,common_featur:46,commonplac:[],commun:[0,4,7,15,32,35,37,38,39,44,45,46],comp:35,compact:[15,38,39,40,45],compani:[37,42,46],companion:[37,46],compar:[4,15,25,27,28,34,35,37,39,40,43,46],comparison:[4,46],compens:4,compet:15,compil:[33,46],complet:[4,7,8,15,34,35,36,37,38,43,44,45,46],complete_circuit:15,complex:[4,7,15,32,33,35,37,38,39,40,43,45,46],complianc:15,compliant:[14,39,40,46],complic:[4,15,35,38,39,40,45,46],complicit:15,compon:[3,15,46],composit:[35,38,41],comprehend:15,comprehens:6,comprehensive_no_instrument:3,compress:[15,16,35],compromis:15,comput:[7,15,23,33,34,35,37,38,39,42,46],concaten:42,conceiv:38,concentr:15,concept:[7,15,37,46],concern:[15,35,39,45],concert:39,concis:[32,45],conclud:15,conclus:15,concret:37,concurr:[32,33,38,39,46],condit:[3,4,7,15,16,35,36,37,38,39,41,46],conduct:15,cone:[],conf:42,confid:[15,46],config:42,configur:[7,8,14,39,40,41,42],confin:[33,35],confirm:[15,35,41,42,46],conflict:4,confus:[15,37,46],connect:[7,15,32,35,37,38,39,42,43,46],connection_attempt:15,connectionparamet:34,consciou:46,consequ:15,conserv:44,consid:[4,7,8,14,15,28,35,37,39,40,41,46],consider:37,consist:[15,34,35,37,46],constant:15,constraint:33,construct:[5,7,8,11,13,15,34,35,36,37,39,40,42,46],constructor:[],consult:42,consum:[7,15,23,38,39],consumpt:[15,37,46],contain:[3,4,5,7,15,26,28,29,32,34,35,36,37,38,39,40,41,43,45,46],contemporari:46,contemptu:15,content:[1,3,15,30,36,38,39],context:[4,7,28,35,37,38,39,40,41,45,46],contextu:38,continu:[4,7,15,35,36,37,43,46],contract:[15,35],contractor:[4,15],contradict:39,contrari:41,contrast:[7,35],contribut:[7,38],control:[3,11,15,35,36,37,38,39,40,41,42,43,45,46],conu:[],conundrum:15,conveni:35,convent:[15,38,46],convers:40,convert:[7,15],convinc:[15,46],cook:46,cook_tim:46,cook_time_sec:46,cool:[4,35,46],cool_enough:35,copi:[4,14,27,28,35,37,38,39,40,42,45,46],core:[33,35,46],core_color:[],corner:[15,46],coroutin:[],correct:[4,8,15,16,32,39,40,42,45,46],correctli:8,correspond:41,corrupt:4,cortext:46,cosmologist:44,cost:[4,7,35,37,38,40,46],couch:4,could:[4,10,14,15,16,28,32,34,35,36,37,38,39,40,41,43,45,46],couldn:[15,39],count:[15,35],countdown:37,counter:[15,39],countri:[4,35],coupl:[27,35,39,40,46],cours:[15,41],cover:15,coward:15,cpu:[15,35,46],cpython:46,crack:[],craft:7,crank:46,crash:[8,34],creat:[0,4,5,7,10,11,14,15,16,29,32,33,35,36,37,38,40,41,42,43,46],create_burst:35,createel:[],creation:46,creativ:[],credenti:[15,34],cri:[15,16],criteria:35,criterion:35,critic:4,crockford:4,crucial:15,crumb:36,crush:4,cry:[15,16],crypto:34,cryptographi:34,crystal:[],cscope:38,ctag:38,ctor:39,ctrl:[14,39,40],cued:[],cult:4,cultur:[4,15],cunningham:45,curat:[4,39],curiou:[],current:[0,7,8,15,35,37,38,40,43,46],current_numb:35,curs:40,custom:[5,36,37,38,39,40,43,46],cut:15,cyan:[],cycl:[7,10,12,15,35,36,37,39,46],cyphertext:34,daemon:[36,43,46],dag:46,dai:4,damag:[15,35],damn:39,danc:15,danger:[15,39],dark:[15,33],data:[7,8,14,15,26,35,38,39,40,42,45,46],data_readi:35,date:[15,28,37,39,40],datetim:[29,35,39,40,46],daunt:4,dave:38,david:[4,7,15,33,35,38,46],daydream:[37,46],dd2c00:[],dead:[15,16],deaden:15,deadlin:34,deadlock:[4,46],deal:[35,36],dean:46,debt:46,debug:[10,15,27,34,37,38,39,40,41,43,45,46],debugg:[37,38,46],deceit:16,deceit_in_detail:[15,16],deceit_in_detail_tact:15,decent:[15,28,38,39,40],decid:[15,34,36,37,43,46],decim:46,decis:[15,33,38,46],declar:[34,39],decod:34,decomposit:38,decor:[3,13,34,36,37,39,40,43,45,46],decoupl:[4,46],deep:[7,35,37,46],deeper:[38,39,46],deepest:[],deepli:[38,41],deer:37,def:[5,8,9,10,11,15,16,24,25,32,34,35,36,37,38,39,40,41,43,45,46],default_nam:39,defeat:15,defeat_in_detail_tact:15,defend:4,defens:4,defer:[0,3,7,10,11,12,15,16,26,27,32,34,36,37,40,41,43,45,46],defi:[],defin:[5,7,8,10,11,15,28,34,35,36,37,38,39,40,42,43,45,46],degre:35,deisgn:[],del:39,delai:[7,11,39,45,46],delay_in_m:46,delay_one_second:[11,39],delay_tim:[15,16],delayed_one_second:[11,39],delet:35,delic:4,deliv:15,deliver:15,delv:15,demo:[],demonstr:[4,15,34,35,38,39,45,46],depend:[4,15,31,33,38,45,46],deploi:[41,42],deploy:42,depth:8,dequ:[0,7,35,37,39,46],deriv:[15,37,46],desc:46,descend:[35,37,46],descent:46,describ:[3,4,7,8,15,27,28,29,32,33,35,36,37,38,40,41,43,45,46],descript:[14,15,26,35,37,38,39,45,46],deseri:5,design:[3,4,7,8,9,14,17,18,19,20,21,22,28,33,35,36,38,39,43,44,45],desir:[11,15,35,39],desktop:[],despit:[4,35,37,46],destination_ip:34,destination_port:34,destroi:[15,34,38,41,46],destruct:[],destructor:[14,39,40,41],detail:[7,16,26,32,33,35,36,37,39,43,46],detect:[14,35,37,39,40,41],deterim:35,determin:[7,8,15,25,27,35,36,40,43,46],determinist:[],deterministicli:39,develop:[4,15,33,36,37,38,39,45,46],deviat:46,devic:[7,15,36,39],diagram:[3,7,8,9,14,15,29,30,32,33,34,35,36,37,40,41,43,45,46],diamond:38,dict:[25,39,40],dictionari:[5,15,25,39,40],did:[3,4,15,32,35,36,37,38,39,43,45,46],didn:[7,15,34,35,36,37,38,39,42,43,46],didt_advance_war_cri:[15,16],didt_entri:[15,16],didt_exit:[15,16],didt_init:[15,16],didt_other_advance_war_cri:[15,16],didt_other_ready_war_cri:[15,16],didt_other_retreat_ready_war_cri:[15,16],didt_other_retreat_war_cri:[15,16],didt_other_skirmish_war_cri:[15,16],didt_retreat_war_cri:[15,16],didt_second:[15,16],didt_senior_advance_war_cri:[15,16],didt_skirmish_war_cri:[15,16],die:15,diff:[15,46],differ:[0,3,4,7,8,9,10,14,15,23,33,34,35,36,37,38,39,40,41,42,43,45,46],differenti:15,difficult:[7,33,35,43,46],difficulti:45,difficultli:35,dig:[35,37,40],digit:[39,46],dimens:[15,37,46],dimension:15,diminish:15,direct:[15,16,37,38,46],directli:[7,15,32,35,36,37,38,39,41,46],directori:[8,15,42],disarm:35,discard:4,disciplin:40,disconnect:34,discov:[7,8,15,16,37,39,45,46],discoveri:[4,15,46],discuss:[35,46],disk:[],disord:15,disorgan:15,dispatch:[0,3,7,8,15,16,34,35,39,43],dispatch_graph_a1_s1:8,dispatch_graph_f1_s0:8,dispatch_graph_f1_s22:8,dispatch_to_all_empathi:15,dispatch_to_empathi:15,displai:[39,43,46],disprov:41,disregard:39,distanc:15,distil:38,distinct:[15,35],distinguish:[5,29,37,39,40,45],distort:4,distract:15,distribut:[15,35],div:[],dive:[],divid:[],do_noth:45,dobb:[34,42],doc:[34,35,38,42],doc_process:38,dock:[37,46],docstr:[8,46],document:[4,7,8,14,15,32,33,34,35,37,39,40,42,46],dodg:15,doe:[0,7,8,15,27,28,35,36,37,38,40,41,42,43,45,46],doesn:[4,5,7,8,10,15,34,35,36,37,38,39,40,41,43,46],dogfight:4,dogmat:4,doh:15,doing:[7,15,27,29,35,36,37,38,39,40,41,43,46],dollar:4,domain:46,domin:4,don:[7,8,10,11,14,15,26,34,36,37,38,39,40,41,42,43,44,45,46],done:[4,15,35,36,37,38,39,42,43,45,46],done_buzz_period_sec:46,doom:15,door:[9,35,37,46],door_clos:[9,35,37,46],door_closed_bak:35,door_closed_init:35,door_closed_off:35,door_closed_open:35,door_closed_toast:35,door_open:[9,35,37,46],door_open_clos:35,door_open_entri:35,door_open_exit:35,dot:[7,15,35,36,37,38,39,41,43,46],dotenv:15,doubl:[],doubt:15,dougla:4,dove:4,down:[11,15,34,35,36,37,38,39,40,43,45,46],downward:46,draconian:15,dragon:37,draw:[7,8,15,32,33,35,37,38,41,43,46],drawit:39,drawn:[8,34,37,38,46],dreari:40,drew:33,drift:[37,46],drill:[7,35],drink:[15,16,37,46],drive:[15,35,37,38,46],driven:[8,35,37,38,46],driver:46,drop:[4,15,27,37,38,39,40,46],drown:15,drum:15,drunk:[37,46],dry:[7,14,15,39,40,42],dtdakkeosog:[],dtype:[],due:[5,15,46],dumber:15,dump:[5,37],durat:[36,46],dure:[5,7,8,15,37,38,39],duti:[35,37,46],dynam:[5,15,27,35,36,39,40,43,46],e_funct:41,each:[0,4,5,7,8,14,15,16,26,28,29,34,35,36,37,39,40,41,43,45,46],ear:[37,46],earli:[33,46],earshot:15,earth:[37,46],easi:[7,15,28,32,33,35,36,37,38,39,40,41,43,45,46],easier:[4,14,15,25,35,36,39,40,45,46],easiest:[39,44],easili:[15,35,37,39],easy_bak:35,eat:[],eco1:[],eco2:[],eco:[],ecosystem:46,edg:[37,39,46],edit:[4,7,35,37,38,39,41],editor:[4,14,38,39,40,46],educ:43,edward:15,effect:[7,14,15,35,37,38,39,40,46],effort:[14,15,35,38,39,40,42,46],effortless:[],effortlessli:39,eight:[],einstein:38,either:[4,7,15,16,35,37,38,39,41,43,46],elabor:46,elaps:46,electr:[7,35,37],element:[7,8,9,35,36,37,46],elev:39,elif:[7,8,9,10,11,15,16,24,35,36,37,39,41,43,45,46],ellison:46,els:[7,9,10,11,15,16,24,34,35,36,37,39,40,41,43,45,46],elsewher:[34,39,46],email:[39,46],emb:38,embed:[4,8,35,36,38,39,40,46],emerg:[15,37],emit:34,emot:38,emotion:38,empath:15,empathet:15,empathi:[15,16],empathy_for_first_broth:15,empathy_nam:[15,16],emphas:[33,36,38],emphasi:[],employe:15,empt:7,empti:[15,43],enabl:[3,15],enable_snoop_spi:15,enable_snoop_trac:15,enact:[],enammour:[],enamor:33,enclos:[34,38,46],encod:34,encompass:15,encount:[4,15],encourag:[37,46],encrypt:[15,34,42],end:[0,7,15,26,29,35,36,37,39,40,43,46],enemi:[4,15,16],energi:35,energy_gener:35,energy_generation_init:35,engag:[15,46],engin:[4,8,15,35,40,45],english:[15,35,38,46],enjoi:[37,46],enlist:35,enough:[8,15,16,33,34,35,36,37,38,39,41,43,45,46],enrag:15,ensur:[0,15,32,34,36,39,45,46],enter:[8,11,15,16,32,35,36,37,41,42,43,46],enthusiast:[37,46],entir:[15,37,39,45,46],entireti:40,entiti:[],entri:[3,7,8,10,15,32,35,36,37,38,39,41,43,45,46],entropi:[],entry_sign:[5,7,9,10,11,15,16,24,25,26,27,32,34,35,36,37,39,40,41,43,45,46],enumer:[5,7,46],env:[15,42],env_path:15,enviro:[],environ:[15,42,46],envis:15,equal:[],equat:15,equip:[15,37,46],equival:[15,36,46],era:43,ergod:15,ergot:15,erlang:42,erron:15,error:35,escap:[15,35],especi:[15,35,37,46],essenc:35,essenti:[],estim:[],etc:[7,42,46],etho:46,evalu:[32,35,41],even:[11,15,35,36,37,39,42,43,45,46],event:[0,1,3,4,7,8,9,10,11,12,14,15,16,25,26,27,29,32,33,36,37,40,43],event_1:39,event_2:39,event_a:0,event_b:0,event_or_sign:0,event_reset_chart:43,event_wait_complet:43,eventu:[37,46],ever:[4,15,34,35,38],everi:[3,4,7,15,16,34,35,37,38,39,46],everyon:[15,35,37,38,40,46],everyth:[0,15,28,32,37,38,39,40,46],everywher:42,evid:[15,37,39,41,46],evolv:46,evt_a:38,exact:[27,39,40,46],exactli:[4,8,15,32,37,38,41,45,46],examin:[36,41,46],exampl:[0,2,3,5,7,8,17,26,27,28,29,30,33,35,37,38,39,40,41,42],examplestatechart:3,exce:[],excel:[37,42],except:[4,7,15,34,36,37,42,46],exception:15,exchang:[4,34],exchange_declar:34,exchange_typ:34,excit:[37,46],exclud:35,exclus:34,execut:[0,4,8,15,41],exercis:15,exert:15,exhaust:[36,38,43,46],exist:[5,7,15,36,37,38,46],exit:[0,3,7,10,15,32,34,35,36,37,38,41,42,43,45,46],exit_sign:[7,9,10,11,15,16,24,25,26,32,34,35,36,37,39,40,41,43,45,46],expand:[],expans:[],expect:[15,32,33,34,35,36,37,39,41,43,45,46],expected_empathy_target_trac:15,expected_empathy_trac:15,expens:[4,7,35,40,46],experi:[15,35,40,41],experienc:[15,35,39,45],experiment:15,expertli:15,explain:[0,14,15,32,33,35,39,41,46],explan:[34,44,46],explicit:[7,35,37],explicitli:[7,15,35,37,39,46],explor:[37,46],exponenti:40,expos:15,express:[4,5,15,36,38,39,46],extend:[7,8,15,34,35,45],extens:[5,7,10,39,42],extern:[0,7,15,35,36,37,38,39,46],extract:[35,39],extraordinarili:[37,46],extrem:[4,15,37,38,39,46],extrud:[],eye:[37,46],eyebal:[],eyes:[15,37,38,41,43,46],fabric:[1,7,32,39,43],fabric_task_ev:0,face:[15,37,40,44,46],facil:[35,43],fact:[4,15,35,36,37,38,39,40,44,46],factor:[7,39],factori:[4,6,7,13,15,16,32,34,35,37,40,46],factory_class_exampl:[39,45],factory_class_recipe_exampl:39,factory_in_class:[],fad:38,fade:[37,46],fail:[8,27,35,39,40,46],fairli:[15,33,39],fake:[14,15,35,39,40,46],fake_black:[],fake_new:35,fake_transduc:35,fake_whit:[],fakenewsspec:35,fall:[37,39,46],fallaci:38,fallen:38,fals:[15,35,38,39,41,46],falsifi:44,fame:38,famili:15,familiar:[35,36,39,41],famous:4,fanout:34,far:[15,39,41,42,46],farc:46,fast:[15,35,37,38,46],faster:[15,39,46],fastest_tim:35,father:15,fathom:15,favor:[35,38],favour:15,fb11:32,fb1:32,fc1:[32,39,45],fc2:[32,39,45],featur:[7,8,14,15,33,34,35,37,38,39,40,46],fed:[15,35,46],feder:39,feed:[15,34,39],feedback:[4,15,37,46],feel:[4,15,34,35,36,37,41,46],feign:[15,16],feigned_retreat:[15,16],fellow:[37,46],fermet:34,fernet:34,few:[4,15,35,37,38,46],feynman:44,ff6d00:[],ff6doo:[],ffa501:[],ffff00:[],ffffff:[],ffmpeg:[],fiction:37,fidel:[15,46],field:[15,16,35,44],fifo:[0,7,11,15,32,36,38,46],fifo_queu:0,fifo_subscript:0,fig:[],fight:[15,39],fighter:4,figur:[15,32,35,36,37,39,42,43,46],file:[7,15,23,34,39,42,46],filenam:[],fill:[10,15,34,35,36,39,42],film:37,filter:[4,35],find:[2,4,7,8,15,33,35,36,37,38,39,45,46],findal:46,fine:40,finish:[7,15,35,36,37,38,39,46],finit:[7,38],fire:[10,11,15,16,35,36,37,39,43,46],firm:41,firmwar:[4,33],first:[0,5,7,8,12,14,28,29,34,35,36,37,38,39,40,43,44,45,46],first_brothers_nam:15,first_name_of_oth:15,firstscripttag:[],fit:[15,38,46],five:15,fix:[15,27,39,40,46],fixat:15,flank:15,flash:36,flashlight:33,flat:[7,15,35,45,46],flatten:[39,45],flavor:38,flexibl:[15,35],fli:[37,46],flip:46,float32:[],floor:36,flow:39,flower:[],floweri:[],fly:[37,39,46],fn_parent_state_handl:8,fn_state_handl:8,focu:[15,37,45,46],focus:[15,36],fodder:4,fog:15,folder:15,follow:[4,5,7,8,14,15,28,29,32,34,35,36,37,39,40,42,43,45,46],foo:3,food:[37,46],fool:[35,44],foot:38,footman:[15,16],footmen:15,footprint:46,forc:[4,15,35,43],forecast:37,foreign:[23,34],foreign_hsm:34,foreign_spy_item:34,foreign_trace_item:34,foreseen:15,forev:[0,26,39,40],forget:[36,41],forgot:32,fork:38,form:[7,15,34,35,39],formal:[4,7,15,33,35,36,37,38,39,40,45,46],format:[7,9,15,16,25,34,35,37,39,40,46],former:4,forth:[15,46],forward:[33,35,39],found:[2,3,6,8,15,35,37,42,43,46],foundat:46,four:[41,45],fowler:38,fr_entri:[15,16],fr_exit:[15,16],fr_other_retreat_war_cri:[15,16],fr_out_of_arrow:[15,16],fr_retreat_war_cri:[15,16],fr_second:[15,16],fragil:[15,38],frai:15,frame:[15,34,39,45],framebord:[],framework:[4,7,15,33,35,36,37,39,40,45,46],free:[4,15,35,39],freez:46,frequenc:36,fresh:35,fridai:38,friedrich:36,friendli:35,frighten:36,from:[0,3,4,5,7,8,9,11,14,15,16,23,25,26,28,29,32,33,34,35,36,37,38,41,43,45,46],from_list:[],front:[0,7,15,39,46],frustrat:[15,37,46],fsm:[7,38],fuck:4,fuel:[4,35],full:[0,3,15,16,26,27,33,34,35,36,37,39,40,43,46],fun:[8,9,10,11,15,16,24,35,36,37,39,41,43,45,46],funcanim:[],functool:34,further:[7,35,38],furthermor:[15,35],fusion:35,fusion_act:35,fusion_active_cool_enough:35,fusion_active_entri:35,fusion_and_heat_transf:35,fusion_and_heat_transfer_fir:35,fusion_reactor:35,fusionreactor:35,futil:[37,46],futur:[7,15,27,28,34,39,40,46],fuzzier:15,gain:[7,33,34,37,38],gallop:[15,16],game:38,ganbaatar:[15,16],gandbold:[15,16],gang:[14,39,40],ganssl:4,gantulga:[15,16],garbag:[5,8,46],garden:37,gather:39,gave:46,gaze:[37,46],gear:35,gearbox:35,gem:[],gener:[4,7,11,14,15,28,29,34,35,36,37,38,39,40,42,45,46],general_state_method:45,genghi:15,geniu:40,geometri:7,geopolit:43,gestur:[37,46],get:[4,5,7,8,15,25,28,35,36,37,38,40,41,42,43,45,46],get_100ms_from_timestamp:46,get_a_nam:15,get_composite_read:35,get_ip:34,get_my_m:46,get_nam:15,get_readi:46,get_ready_sec:46,get_temperature_read:35,get_weath:39,getelementbyid:[],getelementsbytagnam:[],getenv:15,getsocknam:34,gibberish:42,gift:4,gil:46,gist:[],git:15,give:[14,15,16,36,37,38,39,40,41,43,45,46],given:[0,7,8,11,12,15,25,29,32,35,36,37,39,40,45,46],glanc:[37,38,46],glee:4,global:[4,5,15,38,39,40,46],glossari:30,glow:37,glyph:[7,15,35,46],goal:[15,33,34,37,46],god:[37,46],goddess:[37,46],goe:[15,35,46],going:[8,15,34,35,36,37,38,39,44,46],gone:[11,34,39,46],good:[15,32,35,37,38,39,40,41,44,46],got:[14,15,35,36,38,39,40,41,42,43,46],gotten:[15,28,37,39,40,46],govern:[4,37],grab:[],grade:[],graffiti:39,grai:[],granit:15,grap:[],graph:[7,8,37,38,45,46],graph_e1_s1:8,graph_e1_s2:8,graph_e1_s3:8,graph_e1_s4:8,graph_e1_s5:8,graphic:[38,46],great:[4,14,15,32,35,37,39,40,42,46],greater:[4,15,36,39,43,46],greedi:0,green:[38,39],greeter:[37,46],grid:[],grind:40,grok:41,groov:[37,38],ground:[15,37],group:[15,33,46],grown:[],guarante:[4,5,15],guard:[7,38],guess:[15,37],guest:[37,42,46],guest_password:42,gui:[15,37,42,44,46],guid:[33,42],guidanc:[],guidenc:[],gun:[15,46],gusto:[37,46],gyroscop:[],hack:[6,32,37,39,46],hacker:41,had:[4,15,26,32,34,36,37,38,39,40,41,43,45,46],hadan:[15,16],hadn:4,hal:46,half:4,hall:46,halt:[15,16],hand:[4,7,15,37,38,39,41,45,46],handi:34,handl:[7,9,10,11,15,16,24,32,35,36,37,38,39,41,43,45,46],handler:[8,10,15,16,32,34,35,36,37,38,39,43,45,46],handwav:15,hang:[41,46],happen:[4,5,7,8,15,26,27,32,34,35,36,37,39,40,41,43,46],happi:[37,46],hard:[15,34,37,38,39,41,45,46],harden:46,harder:[15,38,45,46],hardli:45,hardwar:[4,38],harel:[4,7,15,33,35,36,37,38,39,40,45,46],harm:[4,15],has:[0,4,5,7,8,11,15,16,26,27,28,29,31,32,34,35,36,37,38,39,40,41,43,45,46],has_payload:[5,39],hasn:[0,3,5,7,11,15,37,39,46],hast:4,hate:[7,35],have:[0,2,3,4,5,7,8,11,12,13,14,15,25,26,27,28,29,32,33,35,36,37,38,41,42,43,45,46],haven:[4,15,29,34,35,36,37,38,39,40,41,42,43,46],hawk:4,hazard:38,head:[15,35,38,40,45,46],hear:[15,37,46],heard:[15,16,43],heart:[10,15,35,39],heat:[9,15,35,37,46],heater:[35,46],heater_off:[35,46],heater_on:[35,46],heating_element_off:[9,37],heating_element_on:[9,37],heating_entri:35,heating_exit:35,heating_st:46,heaven:[37,46],heavi:[4,15,35],heavili:[15,46],heed:4,heehaw:46,hei:[],height:[],heirach:[],held:[37,39,46],hello:[37,42,43,46],helmet:15,help:[4,15,33,35,37,38,40,43,46],helper:[8,46],helpless:15,her:[37,46],here:[2,3,4,5,7,10,11,15,26,27,29,32,33,34,35,36,37,38,39,40,41,42,43,45,46],herself:[37,46],hesit:39,heurist:15,hidden:[15,35,45],hide:[34,35,38,39,45],hierarch:[7,15,33,34,36,37,38],hierarchi:[7,8,15,34,36,37,38,39,41],high:[0,4,7,15,28,29,35,36,37,39,43,46],higher:[4,15,37,39,46],highest:[0,15,39],highli:[],highlight:[3,15,32,34,35,36,37,39,45,46],him:[4,15,16,35,37,46],himself:15,hint:[15,36],hire:4,his:[4,7,8,15,16,35,36,37,41,45,46],histor:[],histori:[9,15,37],hit:[11,15,35,39,42],hmm:41,hod:4,hold:[9,12,15,36,37,38,39,42,46],hole:[],holi:4,hollow:[37,46],hologram:15,holograph:15,home:15,honour:7,hood:46,hook:[3,7,15,26,27,36,37,38,40],hook_1:39,hook_2:39,hope:[4,15,36,46],hord:15,horizont:46,hornet:15,hors:[6,16],horsearch:[15,16],horseback:15,horsemen:15,horserarch:15,host:42,hostnam:42,hot:[32,37],hour:40,how:[1,3,4,7,8,10,14,15,16,24,26,29,32,33,34,35,36,37,38,41,42,43,44,45,46],howev:[5,8,34,35,36,37,44,45,46],href:[6,17,18,19,20,21,22,33,35,37,38,39,40,44,46],hsm:[0,1,3,7,15,16,33,35,37,38,39,45,46],hsm_queues_graph_g1_s01:0,hsm_queues_graph_g1_s1:0,hsm_queues_graph_g1_s2111:0,hsm_queues_graph_g1_s22:0,hsm_queues_graph_g1_s321:0,hsmevent:0,hsmeventprocessor:[8,35],hsmtester:3,hsmtoplogyexcept:35,hsmtopologyexcept:[7,8,35,39],hsmwithqueu:[15,16,34,35],html:[6,17,18,19,20,21,22,33,35,37,38,39,40,44,46],http:4,huge:33,hulagu:[15,16],human:[4,37,38,46],hung:15,hunt:15,hurri:36,hypothes:[],hypothesi:[],i_list:46,iaf:4,icon:[7,35,37,39,46],id_rsa:42,idea:[4,7,10,15,26,33,35,36,37,38,39,40,43,46],ideal:15,ident:45,identifi:[15,16,29,34,38,39,40,45,46],idiom:38,idiot:4,idl:35,idle_data_readi:35,idle_entri:35,idle_new_request:35,ids:36,ifram:[],iframe_api:[],ignor:[0,5,7,11,15,16,35,36,37,38,39,41,43,46],ihbarhasvad:[15,16],iir:35,ill:38,illeg:[7,35,41,42],illus:[4,45],illustr:46,imag:[7,14,15,37,39,40],imagin:[7,15,35,37,41,46],immedi:[4,12,15,16,26,35,38,39,40,46],immut:[5,38,39,46],impati:15,impedi:39,implement:[15,33,35,36,37,39,41,45,46],implemt:[],implicit:[],implment:7,importantli:[4,41,45],importerror:46,impos:15,imposs:35,imprecis:15,impress:[4,39],improv:[15,46],impuls:35,inabl:15,inadvert:38,inbox:15,incent:4,incid:[],incircl:7,includ:[3,15,33,37,38,39,42,46],incompet:15,incomprehens:15,inconveni:[3,35],incorpor:38,incorrect:[],incorrectli:[7,15],increas:[7,15,35,40,46],incred:[],increment:[15,35],independ:[15,35],index:[8,30],index_and_time_delai:39,indic:[7,8,29,35,39,40,46],indirect:45,individu:[15,16,34,35,36],industri:[4,36],ineffici:[],inevit:[35,40],inexpens:[14,39,40],infect:[],infer:41,infinit:[4,7,10,15,26,35,39,40],inflex:15,inform:[0,4,7,9,15,23,26,28,32,35,36,37,38,40,43,45,46],infra:[],infract:41,infrastructur:[33,42],infrequ:39,inherit:[0,7,8,15,34,35,36,37,39,43,46],init:[3,5,7,8,11,32,35,36,37,38,39,43,45,46],init_func:[],init_sign:[7,9,10,11,15,16,24,25,26,27,32,34,35,36,37,39,40,41,43,45,46],initi:[7,8,15,35,36,38,41,43,46],initial_condition_index:[],initial_st:8,initial_valu:35,inject:[7,15,34,35,39,45],inner:[7,10,11,15,26,35,36,37,39,40,43,46],inner_most:39,inner_st:35,innner:36,innocu:[15,45],innov:[4,15],input:[7,15,34,35,36,38,39,46],insert:15,insertbefor:[],insid:[7,15,34,37,46],insight:4,inspect:[32,35,46],inspir:35,instal:[15,30,33,34,46],instanc:[7,15,27,34,38,39,40,43,45,46],instanti:[35,38,39,45,46],instati:[],instead:[0,5,10,15,33,34,35,36,37,38,39,40,43,45,46],instruct:[15,33,41,42],instructor:4,instrument:[0,6,7,9,15,26,29,32,34,35,36,38,39,40,43,44,45,46],instrumentation_line_of_match:46,insur:46,intact:15,intang:15,integ:15,integr:[15,46],intellig:15,intend:[4,7,15,34,35,37,39,46],intent:[15,35,38,39,46],interact:[3,4,6,8,14,15,33,36,37,39,40,43,46],intercept:35,interconnect:[37,46],interest:[4,15,32,34,37,46],interfac:[5,15,34,37,39,46],interleav:[14,39,40,46],intermedi:[38,46],intern:[0,5,6,7,15,17,18,19,20,21,22,26,33,35,37,38,39,40,43,44,46],internet:[34,39,42],interplai:43,interpret:[38,39,46],interrel:46,interrupt:[4,35,38,43],interv:[],intervent:40,intial_condition_index:[],intimid:[37,46],intric:15,intrins:37,introduc:[15,26,34,35,39,40,46],introduct:[30,37,42],introspect:[15,16],intuit:[15,39],invent:[4,7,15,33,35,37,38,39,46],invers:[4,36,37,45,46],invert:8,invest:[38,46],investig:36,involv:[15,32,35,46],inward:46,iot:33,ips:[15,16],is_fil:15,is_in:8,is_this_piston_readi:35,ish:15,isn:[4,5,12,15,16,37,38,39,43,46],isol:[40,46],isra:4,issu:[7,15,16,27,28,34,35,37,39,40,43,45,46],item:[0,5,7,8,15,16,25,29,34,35,36,37,39,40,41,43,46],iter1:[17,18,46],iter2:[18,19,46],iter3:[19,20,46],iter4:[20,21,46],iter5:[21,22,46],iter6:[22,46],iter:[15,35],its:[0,3,4,7,8,14,26,29,32,33,35,36,37,38,39,40,42,43,45,46],itself:[7,15,34,35,36,37,38,39,40,41,43,45,46],jack:4,jacket:46,java:46,javascript:4,jersei:4,jet:4,jinja2:[7,42],jinja:7,jitter:46,job:[28,36,37,39,40,42,46],john:33,join:[15,37,38,46],joke:15,journal:36,journei:[37,46],json:[4,5,46],json_ev:5,juggl:46,jump:[8,15,36,37,46],junior:15,jupyt:46,just:[4,5,8,10,15,25,27,28,32,34,35,36,37,38,39,40,41,42,43,45,46],kai:[33,39],keep:[0,8,15,33,34,35,36,37,38,39,41,42,45,46],kei:[4,15,25,32,34,37,39,40,42],kept:[35,37,46],keygen:42,keyword:37,khan:15,kill:[0,4,15,36,39,43,46],kind:[7,12,15,35,36,37,38,39,43,46],knew:[34,35,37,43,46],knight:[15,16],know:[4,7,8,10,11,14,15,32,33,34,35,36,37,38,39,40,41,42,43,45,46],knowabl:46,knowledg:[15,46],korean:15,kwarg:[5,8],label:[8,14,36,39,40,43],laberg:35,lac:8,lack:[15,44],lag:15,lai:[36,37,46],lame:46,lamp:35,lamp_off:35,lamp_on:35,lan:15,lanchart:38,land:[37,46],languag:[4,7,15,33,35,37,38,39,42,45,46],lanreccechart:38,larg:[7,8,15,35,38,39,43],larger:[4,15],larri:46,last:[0,7,15,32,35,37,39,43,45,46],last_brothers_nam:15,lastli:37,late:[4,46],latenc:46,later:[8,15,34,35,36,37,39,46],latest:[4,15,39],latex:40,law:[4,37,46],layer:[15,37,39,45,46],lazi:[37,46],lca:[8,37,46],lead:[15,35,46],leader:15,leadership:[4,15],lean:[15,37,46],leap:39,learn:[4,6,7,15,32,33,35,37,38,39,43,46],least:[8,15,35,37,42,45,46],leav:[3,7,8,11,15,35,36,37,38,39,43,46],left:[7,15,16,34,37,38,45,46],left_wal:[],leftmost:0,legend:46,legibl:[15,37,46],leisur:15,len:[15,25,34,39,40],length:8,less:[15,16,35,37,39,43,45,46],let:[4,9,15,16,32,33,34,35,36,37,38,39,41,43,45,46],level:[4,7,15,28,29,35,36,37,39,43,46],lib:[],librari:[1,4,7,15,31,32,33,35,36,37,38,39,42,43,45,46],licenc:[],lie:15,life:[35,39,46],lifetim:[4,44],lifo:[0,7,11],lifo_queu:0,lifo_subscript:0,light:[9,15,33,37,38,41,46],light_off:46,light_on:46,like:[4,7,8,10,11,12,14,15,25,26,28,29,32,33,34,35,36,37,38,39,40,41,43,45,46],likewis:[15,37,38,43,46],limbo:41,limit:[8,15,34,37,38,46],limp:38,line:[7,15,27,28,29,32,34,35,36,38,39,40,41,43,45,46],linear:15,linearsegmentedcolormap:[],lineno:[],ling:[],linger:15,link:[15,32,33,35,36,37,39,40,42,43,45,46],lint:4,linux:[34,46],lion:33,lip:[],liquid:35,list:[0,5,8,15,16,35,36,37,41,46],list_spi:46,listen:[15,34,39],listless:[37,46],liter:45,lithium:35,litter:37,littl:[4,14,15,32,35,36,37,38,39,40,41,46],live:[4,7,15,34,35,37,46],live_spi:[15,34,37,39,40,46],live_trac:[9,15,34,37,39,40,46],load:[5,15,16,37,41,46],load_dotenv:15,lobotom:15,local:[7,15,16,34,35,38,42],local_consum:34,localconsum:34,localhost:42,locat:[0,7,8,15,34,35,37,39,46],lock:[0,4,15,38,40,46],lockhe:4,lockingdequ:0,log:[7,10,15,24,26,29,35,36,37,38,39,40,41,42,43,45,46],logic:[15,39,41,46],login:42,longer:[15,35,37,38,41,46],look:[4,7,11,15,27,28,29,32,33,34,35,36,37,38,39,40,41,42,43,45,46],lookuperror:39,loop:[0,14,15,36,39,40,43,46],loos:[7,15,35],loosen:15,lorenz:15,lose:[15,40,46],loss:15,lost:[15,33,45],lot:[4,7,14,15,32,35,36,37,38,39,40,42,43,45,46],lotteri:37,loud:15,love:[35,37,38,46],low:[15,16,36,39],lower:[0,4,15,37,39,46],lowest:[39,46],luck:[4,37,46],lure:[15,16],mac:[],machin:[5,6,7,9,15,23,33,34,35,36,37,38,39,41,42,46],machine_cl:[],macho:39,made:[4,7,15,32,35,37,38,39,42,45,46],magnet:35,mai:[15,37,39,40,46],maim:15,main:[0,9,15,34,36,37,39,46],mainli:15,maintain:[4,15,34,38,45],mainten:[4,45,46],maintenc:7,major:4,make:[4,5,7,9,10,12,14,15,16,25,32,33,35,36,37,38,39,40,42,43,45,46],make_and_start_left_wall_machin:[],make_and_start_right_wall_machin:[],make_generation_coroutin:[],make_test_spec:46,make_unique_name_based_on_start_at_funct:0,malevol:15,malform:8,man:[4,15],manag:[0,3,4,7,15,28,32,36,37,38,39,40,41,42,43,45,46],mandatori:8,maneuv:[15,16],mani:[4,7,10,15,27,35,36,37,38,39,40,42,43,46],manifest:[7,33,39,46],manipul:[37,38],manner:[7,39,40,46],manoeuvr:15,manual:[14,35,39,40],manufactur:7,map:[7,9,15,16,28,32,37,38,39,40,45,46],marbl:[37,38,39],march:[37,46],marcu:[],margin:[],mari:[5,37,39,46],mark:[10,14,15,32,35,36,37,38,39,40,42,46],markdown:40,marker:[37,39],market:[15,37],markup:[7,39],marshal:[15,16],marshal_entri:[15,16],marshal_readi:[15,16],martin:[4,38],marvel:[37,46],mass:[4,15],massiv:[15,37],master:35,match:[15,37,46],materi:43,math:[],mathemat:15,mathematica:[],mathematician:33,matlab:[],matplot:[],matplotlib:[],matrix:[],matter:[5,15,46],max:[25,39,40],max_index:8,max_name_len:[25,39,40],max_number_len:[25,39,40],maxim:15,maximum:[8,35],maximum_arrow_capac:[15,16],maxlen:[0,39],mayb:[15,35,37,38,41,46],mba:15,meali:[7,38],mean:[4,7,8,15,25,26,33,34,35,36,37,38,39,40,41,43,45,46],meaning:[15,39],meaningless:[37,46],meant:[7,15,43],meanwhil:46,measur:[7,35],meat:15,mechan:[4,15,35,38,40,46],media:[],mediev:15,meet:[15,34,37,46],member:[15,37,46],memori:[4,15,26,33,35,37,39,40,45,46],men:15,menac:15,mental:[15,37,46],mention:[36,43,46],merv:[37,46],mesh_encryption_kei:15,mess:46,messag:[0,7,11,14,15,24,35,37,39,40,46],met:[35,46],meta:46,metal:35,metaphor:[15,36,37,46],metaprogram:[39,45],method:[0,3,5,7,8,9,15,24,25,29,32,34,35,36,37,38,40,41,43,46],michel:35,micro:15,micromanag:[15,46],microsoft:[37,40],middl:[4,10,11,26,36,39,40,41,43],might:[4,7,11,15,26,27,28,34,35,36,37,38,39,40,45,46],militari:[4,15],millisecond:46,mind:[38,41],mine:37,minecraft:7,miner:[9,37],mingu:[],mini:[],minim:[15,42,46],minimalist:46,minimum:35,minion:[37,46],minor:[],minut:[15,38,46],miracl:15,miro:[1,3,4,7,8,9,15,16,25,26,28,31,32,33,34,35,36,37,39,40,41,43,44,45,46],miros_rabbitmq:15,mirror:15,misbehav:46,miss:[15,37,38,43,45,46],mistak:[15,33,38,46],mistakenli:15,mix:35,mixtur:[37,39],mkdir:42,mnemon:[8,37,38,46],mobil:15,mock:46,mockup:[],mode:[3,35,46],mode_control:3,model:[7,33,35,36,37,38],model_control:3,moder:40,modern:15,modifi:35,modul:[1,30,45],modular:46,modulo_bas:46,molten:35,momen:7,moment:[0,15,35,37,39,45,46],momentarili:39,momentum:33,monei:[4,40,46],mongol:6,monitor:[4,15,23,34,37,39,46],month:4,moor:[7,38],moot:40,mordecai:4,more:[0,4,6,7,8,15,29,32,33,34,35,36,37,38,39,40,41,43,45,46],moreov:41,most:[4,8,15,32,33,35,36,37,39,42,46],mostli:[34,39,42,46],motiv:[37,46],mount:15,mous:38,mouse_click:38,mouse_click_evt:38,mousecoordin:38,move:[2,8,15,34,36,37,38,39,41,43,46],movement:[15,33,46],movi:[],mp4:[],much:[4,7,8,15,35,38,39,41,45,46],mud:15,multi:[7,10,15],multi_shot_thread:[10,36,39],multipl:[15,29,34,35,37,38,40,42,45,46],multishot:[7,46],multitask:4,multithread:[],multivers:[37,46],munger:46,must:[5,7,8,15,34,36,37,39,43,44,46],mutabl:38,mute:3,mutex:4,mutual:8,my_ev:38,my_event_with_payload:38,my_hook:39,mypayload:39,myself:[15,41,46],n_angl:[],n_mask:[],nag:41,nai:[],name:[0,4,5,7,8,10,13,15,16,25,29,32,33,34,35,36,37,38,40,41,42,43,45,46],name_for_sign:[5,25,39,40],name_of_item2:39,name_of_item_1:39,name_of_item_2:39,name_of_sign:39,name_of_subclass:5,namedtupl:[38,39,46],namespac:36,nametupl:46,napkin:33,napoleon:15,narankhuu:[15,16],narantuyaa:[15,16],narrow:[],nassim:[32,41],nasti:46,nativ:[],natur:[5,35,38,39,41,44],navig:[8,35],nearbi:46,neat:34,necessari:15,necessarili:[],neck:[15,46],need:[0,4,7,8,10,11,14,15,26,27,32,33,34,35,36,37,38,39,40,41,42,43,45,46],needlessli:[11,39],neg:46,neighbor:[],neither:39,neovim:4,nergui:[15,16],nervou:[15,37,46],ness:15,nest:[7,15,16,32,34,35,39,45],net:8,netscap:4,network:[5,8,14,16,33,39,40],networked_horse_arch:15,networkedactiveobject:15,networkedfactori:15,never:[4,15,33,35,36,39,46],new_machin:[],new_nam:46,new_named_attribut:5,new_request:35,newest:35,newli:[34,42],newlin:34,next:[6,7,15,16,17,18,19,20,21,22,27,31,33,35,36,37,38,39,40,41,43,44,45,46],next_gener:[],next_rtc:0,nice:[38,45,46],nichola:[32,41],nietzsch:36,no_ack:34,noam:42,nobodi:[15,37,46],node:[15,34,45],noisi:15,non:[9,37,39,40,46],nondetermin:4,none:[0,5,7,8,9,15,16,32,34,35,36,37,39,41,43,45,46],nonexist:46,nonsens:34,noob:[],normal:3,norman:4,north:15,not_wait:[15,16],note:[15,34,37,39,41,46],noth:[0,3,4,7,35,36,37,38,39,43,44,46],nothing_angl:[],nothing_at_row:[],nothing_mask:[],notic:[7,14,15,29,35,36,37,38,39,40,41,45,46],notifi:[15,46],notion:15,now:[4,8,11,14,15,32,34,35,36,37,38,39,40,41,42,43,45,46],nuanc:39,nuclear:35,number:[5,7,10,14,15,25,26,29,32,35,37,38,39,40,43,46],numer:15,numpi:35,nutshel:46,nvu8m8a73jg:[15,34],oadp1sh69j:[],obei:15,obj:5,object:[1,4,5,6,7,8,10,14,15,25,26,27,28,29,32,33,35,36,37,38,40,41,45,46],oblivion:[37,46],obscur:4,observ:41,obtain:[14,34,39,40],obviou:[15,32],obvious:37,occur:[7,8,15,26,29,35,36,37,39,40,43,46],occurr:38,od647c:[],oddli:[37,46],off:[9,11,12,15,35,36,37,38,39,45,46],off_entri:35,offer:[34,46],offic:[15,16],officer_lur:[15,16],offset:46,often:[7,15,35,38,39,46],oha:[15,16],oha_1:15,old:[0,15,26,37,39,40,43,45,46],old_left_machin:[],old_machin:[],old_right_machin:[],oldest:[7,35,36,39],onc:[5,7,8,10,15,16,26,33,35,36,37,39,40,42,43,46],one:[0,4,5,7,8,10,11,12,14,15,17,23,29,33,34,35,36,37,38,39,40,42,43,44],onedcellularautomatawithanglediscoveri:[],onedcellularautonomata:[],ones:45,oneshot:46,onli:[0,4,8,10,13,15,28,29,31,33,34,35,36,37,38,39,40,41,42,43,46],onlin:39,onplayerreadi:[],onplayerstatechang:[],onreadi:[],onstatechang:[],onto:[0,4,7,14,15,32,34,35,36,37,38,39,40,42,46],onyoutubeiframeapireadi:[],onyoutubeplayerapireadi:[],oop:41,open:[9,35,37,38,39,42,46],oper:[4,7,15,35,37,43,46],oppon:15,opportun:[15,45,46],oppos:[4,15],opposit:[4,15],optim:[],option:[7,8,15,37,38,39,42,46],orang:[],orb:[37,46],order:[7,15,16,35,37,40,41,46],ordereddict:5,ordereddictionari:[25,39,40],ordereddictwithparam:5,organ:[6,35,37,40,45,46],orient:[33,35,38],origin:[0,7,11,15,35,39,41,45,46],orthogon:[3,7,15,46],oscil:15,oscilloscop:46,other:[0,4,7,8,10,14,15,16,25,26,27,32,33,34,35,36,37,38,42,43,44,45,46],other_advance_war_cri:[15,16],other_archer_nam:15,other_arrival_on_field:15,other_inner_most:39,other_ready_war_cri:[15,16],other_retreat_ready_war_cri:[15,16],other_retreat_war_cri:[15,16],other_skirmish_war_cri:[15,16],otherhorsearch:[15,16],otherwis:[7,8,15,27,35,39,40,41,45],our:[0,4,8,9,11,12,27,28,32,33,35,36,37,38,39,40,42,43,44,45,46],ourselv:[15,35,39],out:[0,4,5,7,8,9,12,15,16,26,28,32,34,35,36,37,38,39,40,41,42,43,45,46],out_of_arrow:[15,16],outcom:4,outer:[7,10,11,15,26,35,36,37,38,39,40,43,46],outer_st:35,outermost:[37,39,46],output:[0,7,8,14,15,25,26,27,28,29,32,35,36,37,38,39,41,43,45,46],outsid:[7,8,11,12,15,16,35,36,37,38,39,41,43,46],outsourc:37,outward:[7,8,15,35,37,38,39,46],outweigh:46,oval:46,oven:[9,35,38],oven_off:5,over:[0,3,4,7,8,15,27,28,32,34,35,36,37,38,39,40,41,42,45,46],over_off:5,overal:[15,33],overflow:[34,35],overli:39,overload:35,overrid:35,overtak:[],overwhelm:[15,36],overwrit:[35,40],overwritten:[8,36],own:[2,4,7,15,33,35,36,37,38,39,41,42,45,46],p27:[],pack:[4,15,32,38,39,43,45,46],packag:[7,15,33,37,38,39,46],packet:38,pact:[],page:[4,15,30,32,38,41,42,46],paglia:43,pai:[3,4,15,32,35,36,38,39,46],paid:4,pain:[4,42],paint:[37,46],pair:46,pale:4,pantri:35,paper:[7,35,36,39,43],paradigm:36,paradox:15,paragraph:[43,46],parallel:[36,39,40],paramet:[5,34,46],parameter:46,parameteriz:[],parametr:15,paramount:15,parent:[7,8,15,16,32,34,35,37,43,45,46],parent_callback:[7,45],parent_state_of_this_state_method:39,parentnod:[],pariti:5,pars:[39,46],part:[0,3,8,9,10,15,16,33,34,35,36,37,38,39,41,42,43,45,46],partial:39,particip:[15,40,46],particular:[4,39,40],particularli:[37,41,46],pass:[5,7,11,15,16,34,35,36,37,38,41,43,46],passphras:42,password:42,past:[14,37,39,40,41],patch:38,path:[7,8,15,37],pathlib:15,pathwai:15,patient:[37,46],pattern:[3,6,7,15,30,34,36,37,38,39,43,44,46],paus:[],payload:[5,7,15,16,29,32,35,37,40],pcolormesh:[],pdb:[27,39,40],pdf:[37,46],peachi:[28,39,40],pedant:4,pencil:39,pend:[0,5,15,28,37,39,40,43,45,46],pending_on_piston:35,pending_on_pistons_timeout:35,pending_optimal_condit:35,pentagon:4,peopl:[4,15,33,35,37,38,46],pepper:[15,36,37,38,46],per:[7,15,16,36,44,46],percent:[4,15,16,46],perfect:[15,39],perfectli:[],perform:[4,8,15,16,33,35,36,37,38,41,42,45,46],peril:[4,37],period:[0,7,10,11,15,16,35,36,39,46],peripher:15,permiss:[41,42],permit:[15,37,46],permut:[],pernici:39,perpetu:[],persist:46,person:[15,33,37,38,41,44,45,46],peter:[15,46],pgn:[],phase:[39,43,46],phenomenon:15,philosoph:41,philosophi:46,phoenix:43,phrase:[37,46],phsysic:[],physic:[7,35,37,46],pic:34,pick:[4,15,37,46],pickl:5,pico:42,pictur:[14,15,32,33,34,37,38,39,40,43,44,46],piec:[4,37,43,46],pierr:[4,32],pigment:[],pika:[34,42],pilot:4,pin:46,pip3:34,pip:[31,46],piston:35,piston_1:35,piston_:35,piston_act:35,piston_manag:35,piston_numb:35,piston_readi:35,piston_slam:35,pitch:38,pivot:46,place:[0,3,7,8,12,14,15,28,32,34,35,36,37,38,39,40,42,43,45,46],plai:[3,15,37,39,46],plain:[7,15,38],plain_text:34,plaincredenti:34,plan:[15,35,43,46],plane:4,planet:4,plant:37,plasma:35,plastic:37,plate:46,platform:[34,37,46],playbook:42,player:37,player_api:[],playerstatu:[],playvideo:[],plenti:15,plod:15,ploi:37,plot:[],plt:[],pluck:15,plugin:[15,33,38,39],png:[],pocket:46,point:[4,7,8,14,15,16,27,28,33,35,37,39,40,43,46],pointless:[33,37,46],pole:35,polici:[15,35],poll:35,polling_ent:35,polling_init:35,polling_process:35,polling_time_out:35,polling_time_out_hook:35,polyamor:[35,39],poni:15,pool:[7,35],pop:[0,4,7,37],popleft:39,popul:8,popular:38,port:[4,7,33,34,35,36,37,39,42,46],portabl:46,portal:[37,46],portion:33,posit:[35,37,46],possess:41,possibl:[8,15,34,35,39,40,42,46],post:[0,5,6,7,11,12,15,26,32,35,38,40,43,45,46],post_act:3,post_def:[26,27,35,36,39,40],post_fifo:[0,7,9,10,11,15,16,26,32,34,35,36,37,39,40,41,43,45,46],post_id_1:0,post_id_2:0,post_lifo:[7,10,35,37,39,46],postul:4,potato:46,power:[4,15,35,37,40,46],practic:[4,7,8,32,35,37,38,41,46],practition:35,pragmat:38,pre:[7,15,28,39,40,45,46],pre_time_sec:46,preced:[],precis:[15,46],predatori:[],predefin:[37,46],predetermin:[15,35,46],predica:15,predict:[],preemption:4,preemptiv:4,prefer:15,prefix:15,preform:46,prei:15,preliminari:46,prematur:15,prepar:15,prepend:46,prepend_trace_timestamp:46,preprocessor:45,present:[4,7,15,35,43,46],press:[14,37,39,40,46],pressur:[12,35,39],presum:46,pretend:[15,35,36,46],pretti:[15,26,27,37,39,40,41,42,45,46],prev:[6,17,18,19,20,21,22,31,33,35,37,38,39,40,44,46],previou:[3,15,36,37,43,45,46],previous:[15,36,37,43],previous_gener:[],price:[36,38,39,46],prim:0,prime:[15,35],princip:43,principl:[14,39,40,44],print:[0,3,5,7,9,15,16,25,26,27,28,32,34,35,36,37,39,40,43,45,46],print_msg:[37,46],printer:[26,39,40],prion:[],prior:[5,7,11,32,34,35,36,39],priorit:[],prioriti:[0,4,7,15,32,39,46],priorti:[0,7],privat:42,privileg:36,probabilist:39,probabl:[14,15,35,36,37,38,39,40,46],problem:[4,7,15,28,33,35,37,38,39,40,41,42,45,46],proce:[15,37,46],procedur:42,process:[4,5,7,8,10,12,15,16,26,33,34,35,36,37,38,39,40,42,43,45,46],process_a_gener:35,process_a_specif:35,process_b_gener:35,processing_count:35,processing_entri:35,processing_exit:35,processing_init:35,processing_pol:35,processor:[4,7,8,15,26,33,34,35,36,37,39,40,41,43,45,46],produc:[7,15,23,35,36,38,46],producer_192:34,producer_out:34,producer_outer_b:34,producer_outer_init:34,product:[35,37,40,46],profession:35,profil:[],profit:4,program:[3,4,6,7,8,9,14,25,27,28,33,35,36,37,38,39,40,42,43,45,46],programat:40,programm:[15,33,35,46],progress:46,prohibit:[37,46],project:[4,15,29,35,37,39,40,46],promis:33,prompt:42,proof:[17,18,19,20,21,22],propag:[35,46],properli:[7,15,38,39,45],properti:[7,15,34],prophet:32,propos:35,protect:[4,15,46],protocol:46,prototyp:[35,38,46],protractor:[],prove:[15,46],proven:[4,46],provid:[0,4,5,7,8,10,15,25,32,33,34,35,37,38,39,40,42,43,45,46],pseudo:[],pseudost:[7,35,37,38,46],psycholog:[40,41],pub:[0,32,34,37,42,46],publish:[0,4,7,15,32,33,34,42,46],publish_bb:32,publishing_ao:39,pull:[4,5,15,16,33,36,37,41,43,46],puls:[35,46],pump:[15,35,36],purchas:4,purpl:[],purpos:[23,34,35,39,42,46],pursu:[4,15],pursuit:41,push:[0,15,35,41,45,46],put:[0,15,16,35,36,37,38,39,40,41,46],puzzl:[37,46],pycrypto:34,pydotenv:15,pyplot:[],python3:46,python:[3,4,7,15,25,31,33,34,35,37,38,39,40,41,42,45,46],qai9iicv3fkbfruakrm1gh8w51:[15,34],quad:46,quantum:[36,39],quarri:15,quarter:15,queri:[3,39,43,46],question:[14,15,17,18,19,20,21,22,32,37,39,40,45],queu:[3,26,27,32,33,34,35,36,37,39,40,41,43,45,46],queue:[0,7,12,15,32,34,35,36,37,38,39,42,43,46],queue_bind:34,queue_declar:34,queue_typ:[0,39],quick:[30,38],quicker:[],quickli:[15,33,36,38,40,46],quickstart:46,quieter:15,quit:[15,34,35],quiver:15,quot:[4,35],rabbit123:42,rabbit567:15,rabbit:[15,34,35,42],rabbit_guest_us:15,rabbit_heartbeat_interv:15,rabbit_instal:42,rabbit_nam:42,rabbit_password:[15,34,42],rabbit_port:15,rabbit_producer_192:34,rabbit_us:[15,34],rabbitfactori:15,rabbitmq:[15,33,38,39],rabbitproduc:34,race:[4,15,39],rage:38,raid:37,rain:[15,39],rais:[7,8,37,39,46],ran:[23,33,34,35,36,39,43,45,46],randint:[15,16,39],random:[15,16,34,35,39],random_numb:35,randomli:46,rang:[4,15,35,46],rank:15,rap:46,rare:[37,46],raspberri:[15,23,34,42,46],rate:[4,35],rather:[7,15,35,36,37,39,40,46],ratio:[],ravel:[],raw:[],reach:[7,15,35,36,37,39,46],reachabl:34,react:[3,7,11,15,26,35,36,37,38,39,40,43,45,46],reaction:[7,12,15,35,36,38,39,43,46],reactiv:[35,37,38,43],reactor:35,reactor_on:35,reactor_on_entri:35,reactor_on_init:35,reactor_on_prim:35,reactor_on_time_out:35,read:[4,7,8,15,25,26,35,36,37,38,39,40,42,43,45,46],readi:[15,16,27,35,36,39,40,41,46],real:[4,15,34,35,37,38,46],realiti:[15,41],realli:[4,15,33,35,37,38,39,41,43,46],rearm:36,reason:[5,15,29,34,37,38,39,40,42,43,46],rebuild:[27,39,40],recal:[7,12,26,35,36,40],receiv:[7,15,25,26,32,34,35,36,37,38,39,40,41,42,43,46],receiving_entri:35,receiving_receiv:35,recent:[35,37],recip:[30,36,40],reckless:33,recogn:[15,36,38],recommend:[4,34,39,40,42,43],reconnect:34,reconsid:[35,45],reconstruct:4,record:[37,46],rectangl:[15,37,39,41,43,46],recurs:[15,35,36,37,38,46],red:[9,37,38,39,46],red_light_off:[9,37],red_light_on:[9,37],redesign:35,redraw:35,reduc:[7,15,40,46],reduct:[],redund:[15,46],reef:[],ref:[],refact:7,refactor:[15,33,35,38],refer:[6,8,15,17,18,19,20,21,22,26,32,33,34,35,36,37,38,39,40,42,43,44,46],referenc:[7,8,14,15,37,38,39,40,46],refil:15,reflect:[7,15,25,30,33,35,36,37,39,43],reflection_sign:[25,39,40],refocu:15,refrain:[],refresh:[37,46],regard:[35,36,46],region:[7,15,35,37,38,46],regist:[34,39],register_live_spy_callback:34,register_live_trace_callback:34,register_par:[39,45],register_signal_callback:[39,45],registr:45,registri:0,regress:[15,28,39,40,46],regroup:15,rejoic:[37,46],rejoin:[37,46],rel:[7,46],relai:[37,38,46],relat:[4,7,8,15,34,35,36,37,38,39,45,46],relationship:[7,8,38],relax:[35,37,46],releas:[4,7,35,37,38,46],relentlessli:46,relev:35,reli:[15,35,46],reliabl:46,reliev:[12,39],religi:4,relinquish:46,reload:15,reluct:40,remain:[15,35,43,46],remark:[4,15],remedi:[],rememb:[4,15,35,36,37,38,39,41,43,46],remidi:7,remind:[7,15,42,46],reminder_pattern_needed_1:35,reminder_pattern_needed_2:35,remov:[15,28,34,35,37,39,40,45,46],renam:45,render:[15,38],rendit:36,reorgan:15,repeat:[7,10,35,37,38,39,43,45,46],repeatedli:36,repetit:[15,46],replac:[14,15,34,37,39,40,42,46],replic:[14,39,40],repo:2,report:[35,37,39,46],repost:[12,39],repres:[7,8,14,15,35,36,37,39,40,43,46],represent:38,reproduc:46,request:[0,35,39,46],requir:[5,8,15,32,35,36,37,38,39,42,43,45,46],reset:39,resetchart:43,resettact:15,resist:15,resolut:15,resourc:[4,15,37],respect:[15,46],respond:[7,15,16,32,36,37,39,40,43,45,46],respons:[15,35,37,39,43,46],rest:[15,34,35,36,37,39,43],restart:0,restor:43,restructuredtext:46,resubscrib:34,result:[15,16,27,28,34,35,36,37,39,40,43,45,46],resulting_funct:45,resurrect:43,ret_sup:5,ret_super_sub:5,ret_zz:5,retir:4,retreat:[15,16],retreat_ready_war:15,retreat_ready_war_cri:[15,16],retreat_war_cri:[15,16],return_st:[35,39,46],return_statu:[9,15,16,24,25,32,35,37,39,40,41,43,45,46],returncod:5,returnstatussourc:1,reus:35,reusabl:35,reveal:[4,15,39,41],rever:[37,46],revis:42,rewind:43,rich:[4,46],richard:44,richest:4,richli:[],rid:46,ride:[15,32],right:[4,7,15,34,35,37,38,41,45,46],right_wal:[],rightfulli:38,rigid:35,rigor:[4,15,46],ring:[7,26,35,39,40,46],risk:15,ritual:[37,46],robust:[15,33,34],roll:[37,38,39],roman:[],ronach:7,room:[26,38,39,40],root:[],rosetta:[37,46],rotat:[15,35],rough:46,roughli:[4,46],round:[37,39,46],rout:[15,34,42],routin:[8,35,45],routing_kei:34,row:45,row_to_check:[],rpc:42,rtc:[0,4,7,8,26,35,37,38,39,40,43,46],rubbl:[],rubi:46,rule:[4,7,15,32,33,37,38,43,46],rule_30:[],rule_30_black_walls_200_gener:[],rule_30_white_walls_100_generations_width_30:[],rule_30_white_walls_200_gener:[],rulebook:37,run:[0,3,4,7,8,9,14,15,23,24,26,27,28,32,33,34,35,36,37,38,39,40,42,43,45,46],run_anim:[],run_ev:0,runtim:39,rush:[],ruthlessli:41,rx_routing_kei:15,s11:[3,41],s11_state:41,s1_state:41,s211:3,s21:[3,8,41],s21_state:[24,39,41],s2_state:[24,39,41],s_state:[24,39,41],safe:[4,15,35,38,41,46],safeti:[15,39],sai:[4,15,35,36,37,38,39,43,45,46],said:[35,37,43,46],sake:39,salari:4,salt:36,same:[0,3,4,5,6,8,10,11,15,25,28,33,34,35,36,37,38,39,40,41,42,43,45,46],samek:[4,7,8,15,33,35,36,37,38,41,45,46],sampl:[35,46],sandwich:[],satisfact:[37,41,46],satisfi:46,saturn:4,save:[10,15,35,36,37,39,40,42],savefig:[],saw:[15,39,43],scaffold:46,scalabl:42,scale:35,scan:[15,38,43],scare:[15,16],scenario:[37,46],scene:[37,46],scheme:[15,35,39],scienc:[35,38],scientif:[41,44],scimitar:[15,16],scipi:[],scope:34,score:4,scotti:42,scrambl:46,scratch:15,screen:[3,15,27,34,39,40,46],scribbl:[7,15,16,24,32,35,41,43,46],script:[34,42],scroll:[37,46],sculpt:15,search:[7,8,11,30,35,36,37,38,39,43,45,46],search_for_super_sign:[25,26,27,32,34,35,36,37,39,40,41,43,45,46],season:15,sec:[15,16],second:[7,11,15,16,29,35,36,37,39,40,41,45,46],secondari:7,secondli:46,secret:[15,37,42,46],secretli:35,section:[3,6,15,36,37,38,39,42,43,45,46],secur:[15,42],see:[0,3,4,5,7,13,14,15,24,25,29,32,33,34,35,36,37,38,40,42,43,45,46],seed:35,seek:41,seem:[4,15,34,35,37,39,43,45,46],seemingli:[],seen:[5,7,15,35,37,38,39,42,43,46],select:[14,39,40,46],self:[5,8,9,15,16,34,35,36,38,39,42,46],selfpayingtoasteroven:[9,37],semant:[35,36],semaphor:4,semblanc:15,send:[3,5,7,14,15,35,36,37,38,39,40,41,42,43,45,46],senior:[15,16],senior_advance_war_cri:[15,16],senior_retreat_war_cri:15,senior_skirmish_war_cri:[15,16],sens:[15,34,36,38,39,40,41,42,43,46],senseless:36,sensibl:15,sensit:[],sensor:[15,35,37],sent:[7,15,32,34,35,36,37,39,43,46],sentenc:[15,38,46],separ:[4,15,33,34,35,36,37,38,39,46],seper:7,sequenc:[7,8,14,15,29,32,34,35,40,41,46],sequence_diagram:38,seri:43,serial:5,seriou:[4,46],serious:4,serv:[15,39,46],server:[34,35,42,46],servic:[4,7],session:[27,39,40],set:[0,7,8,10,15,35,36,37,39,46],set_arrai:[],set_aspect:[],set_ticks_posit:[],set_titl:[],set_trac:[27,39,40],set_xticklabel:[],set_yticklabel:[],settl:[7,8,11,15,35,37,39,43,46],setup:[15,42],seventi:[],sever:[39,40],shadow:8,shake:46,shallow:46,shalt:43,shape:45,share:[4,7,8,15,25,32,33,35,36,37,38,39,40,46],she:[37,46],sheet:[15,37],shelf:35,shell:[15,42],shelv:35,shift:[26,37,39,40,46],shine:35,ship:[15,46],shoot:[15,38,45,46],shop:46,shortcode1:[],shortcode2:[],shorten:[],shorter:15,shorthand:[15,38,41,46],shortli:[35,37,42],shot:[7,10,11,15,16,35],should:[4,5,7,10,11,15,28,32,33,34,35,36,37,38,39,40,42,43,45,46],shoulder:[37,46],shouldn:[28,38,39,40,46],shout:15,show:[0,7,15,32,33,34,35,36,37,38,39,42,43,45,46],shown:[3,4,46],shrink:38,shut:[34,43,46],shutdown:40,side:[4,15,37,38,46],signal:[0,1,3,7,8,9,10,11,12,15,16,24,25,26,29,32,34,35,36,37,38,41,43,45,46],signal_callback:[7,45],signal_nam:[0,5,25,38,39,40],signal_numb:[25,39,40],signal_that_is_def:[12,39],signalsourc:[1,25,39,40],signatur:[34,36,37,39,45,46],signifi:38,signific:15,significantli:[4,34],silo:[],similar:[15,35,37,39,45,46],similarli:35,simpl:[6,14,15,17,26,33,34,35,37,38,39,40,42,44,45],simpleacyncexampl:39,simpleasyncexampl:39,simpler:[15,39],simpli:[4,35,38],simplic:[14,35,39,40],simplif:15,simplifi:[4,35,37,38,46],simul:[35,46],sinc:[4,5,8,11,14,15,26,32,33,34,35,36,37,38,39,40,41,42,43,44,46],singl:[6,15,35,36,39,46],singleton:[0,7,25,39,40],sissi:39,sisyphean:38,sit:[7,15,46],site:[8,42],situat:[12,15,24,35,39,41,46],sixti:15,size:[35,37,46],sketch:[7,15,28,39,40],skill:15,skip:[15,34,35,39,43],skirmish:[15,16],skirmish_ammunition_low:[15,16],skirmish_entri:[15,16],skirmish_exit:[15,16],skirmish_officer_lur:[15,16],skirmish_other_squirmish_war_cri:[15,16],skirmish_retreat_ready_war_cri:[15,16],skirmish_second:[15,16],skirmish_senior_squirmish_war_cri:[15,16],skirmish_war_cri:[15,16],sky:[37,46],slai:15,slam:35,slaughter:15,sleep:[9,15,32,34,35,36,37,39,41,43,45,46],slide:36,slight:15,slightli:[15,37,38,46],slip:46,slot:35,slow:[15,46],slower:7,slowest_tim:35,slowli:[15,37,46],small:[14,15,33,35,36,37,39,40,41,46],smaller:[15,38,39],smallest:40,smart:15,smarter:15,smear:46,smell:46,smile:[37,46],smurf:15,snail:[],snap:[15,46],snare:15,snippet:[15,36,46],snoop:15,snoop_kei:15,snoop_scribbl:15,snoop_spy_encryption_kei:15,snoop_trace_encryption_kei:15,snow:39,social:[15,44],societi:46,sock_dgram:34,socket:34,softwar:[4,7,15,32,33,35,37,38,39,42,45,46],soil:37,soldier:15,solid:38,solipsist:[37,46],solo:[],solut:[15,35],solv:[7,34,35,37,38,39,45],some:[4,7,11,14,25,32,33,35,36,37,38,39,40,41,43,44,45,46],some_event_the_system_has_never_seen:46,some_example_st:[25,39,40],some_st:46,some_state_funct:[37,46],some_state_to_prove_this_work:46,somebodi:36,somehow:[15,37,46],someon:[15,32,35,36,37,39,40,46],someth:[0,4,7,15,25,28,33,34,35,36,37,38,40,41,42,43,45,46],something_els:39,sometim:[8,15,16,37,46],somewai:37,somewhat:34,somewher:15,soon:[15,34,35],sorri:4,sort:[15,32,35,36,38,39],sound:[36,46],sourc:[2,7,8,14,15,36,37,38,40,41,42,46],source_st:38,space:[8,15,35,36,37,39,46],span:[34,46],spare:39,spawn:46,speak:[7,11,36,39],spec:[17,18,19,20,21,22,35,37,38,46],special:[3,15,32,35,36,37,43,46],specif:[14,15,26,27,28,33,35,36,37,38,40,41,43],specifi:[0,35,38,39,46],speed:[4,15,35,39],spell:45,spend:[4,15,38,46],spent:[4,15,33],sphere:35,spike:[37,46],spirit:[37,46],spit:34,split:[15,43,46],spoil:15,spooki:[],sporat:35,spot:[7,15,26,39,40,46],spread:15,spreadsheet:15,sprei:[4,32],sprinkler:37,spruce:34,spy:[0,3,7,15,23,24,26,27,32,35,36,37,41,43,45,46],spy_callback:34,spy_ful:[36,43],spy_lin:46,spy_liv:34,spy_of_trac:46,spy_on:[3,9,10,11,13,15,16,24,35,36,37,39,40,41,43,45,46],spy_on_buzz:46,spy_on_heater_off:46,spy_on_heater_on:46,spy_on_light_off:46,spy_on_light_on:46,spy_or_trac:46,spy_queue_nam:34,spy_result:34,squar:[29,35,39,40,41],squirrel:43,squish:[],src:[],ssh:42,stabil:[37,46],stabl:46,stack:34,stadium:37,staff:4,stage:[12,15,35,37,39,46],stai:[15,35,37,38,39,46],stair:[37,46],staircas:[37,46],stamp:[29,35,39,40,46],stand:[37,43,45,46],standard:[14,31,33,34,38,39,40],star:[35,37,38,46],stare:[],start:[0,7,8,9,15,16,26,27,29,30,32,33,34,35,36,39,40,41,43,45,46],start_at:[0,8,9,14,15,16,28,29,32,34,35,36,37,39,40,41,43,45,46],start_consum:34,start_thread_if_not_run:0,start_tim:46,startchart:[12,39],starting_st:35,starting_state_funct:8,startup:[37,46],starvat:4,stash:[15,16],statchart:7,statchmachin:46,state:[0,3,4,5,7,8,9,10,11,12,13,14,15,16,24,26,29,32,33,34,35,36,37,43,46],state_chart_object:46,state_fn:[13,39,40],state_method_nam:39,state_method_templ:[7,39,45],state_nam:[0,13,15,16,39,40,46],state_return:5,state_to_transition_to:39,statecchart:[],statechart:[0,3,4,5,6,7,8,9,11,13,14,15,23,24,28,33,35,36,37,40,41,43,46],statechart_object:37,statehandl:39,stateless:39,statemachin:[3,23,34,37,38,39,46],statement:[3,15,37,39,43,46],statemethod:[13,39,40],staticmethod:[34,38,39,46],statu:[9,10,11,15,16,24,25,32,34,35,36,37,39,40,41,43,45,46],steadi:35,steam:35,step:[7,8,15,35,36,37,38,40,41,42,46],stephen:[],stick:[15,46],still:[0,4,15,35,36,38,41,45,46],stimul:[7,43],stimulu:35,stitch:[],stochast:35,stock:[37,38],stone:[37,46],stop:[0,7,15,16,34,35,36,37,38,39,43,46],stop_active_object:0,stop_consum:34,stop_fabr:[],store:[4,34,35,36,37,39],stori:[4,14,15,27,36,39,40,43],str:[15,16,25,35,39,40,46],straight:[33,39],straightforward:[34,35,37,42],strand:15,strang:[15,36,37,39,41,45,46],strateg:15,strategi:[4,15,34,36,37,39],straw:15,stream:[3,5,15,34,46],stretch:[],strftime:[35,39,46],strike:35,string:[5,7,8,13,25,28,34,35,37,38,39,40,45,46],strip:[15,28,37,39,40,46],strip_trac:34,stripped_spec:37,stripped_target:[15,28,39,40,46],stripped_trace_result:[15,28,37,39,40,46],stroke:15,strong:15,strongli:[4,35],structur:[1,7,15,32,33,35,36,37,41,42,43,45,46],struggl:36,stub:[],studi:[15,37,46],studio:37,stuff:[37,39,46],stupid:15,stupidli:15,style:[7,39,46],sub:[0,34,37,42],sub_row_to_check:[],subclass:[5,35,38,39,46],subject:[],suboptim:35,subordin:15,subplot:[],subscrib:[0,4,7,15,32,34,38,42],subscribing_ao:39,subscript:[0,7,15,39],subservi:[37,46],subset:[4,7,15],substat:[7,8,15,35],subsystem:46,subtl:[35,39],subvers:46,succe:[37,42],succeed:34,success:[4,35],successfulli:15,suck:15,sudo:42,suffici:15,suffix:[],suggest:[37,39],suicid:[],suit:[37,46],sum:15,summar:[34,40,43],summari:43,sunk:38,sunni:39,superior:15,supernatur:[37,46],superst:[7,35,46],suppli:15,support:[0,8,14,34,35,37,38,39,40,42,46],suppos:[14,15,29,35,37,39,40,41,45,46],sure:[15,16,34,35,38,39,45,46],surpris:[35,44,45,46],surround:[4,15],surviv:[15,37],suspens:46,sustain:15,svg:39,swap:4,swarm:15,swell:[],swing:[15,35],symmetr:15,synchron:[15,35,39],synonym:7,syntact:[15,35],syntax:[25,33,35,36,39,40,42,45],synthes:39,system:[4,5,6,7,8,11,14,26,27,32,33,35,36,37,38,40,42,43,45,46],t_question:41,tabl:39,tack:37,tactic:16,tag:[37,46],tail:[26,35,39,40,43],taint:38,take:[0,4,7,15,34,35,36,37,39,41,43,46],takeawai:[],taken:[7,15],taleb:[32,41],talk:[4,15,35,36,37,38,39,40,42,46],tar:4,tara:[37,46],target:[7,8,11,15,27,28,35,37,40,41,46],target_st:38,targetandtolerancespec:46,tart_at:[14,39,40],task:[0,4,15,39,43,46],task_ev:0,tatechart:[],taught:4,taxat:15,tazor:[14,27,28,29,36,39,40],tazor_oper:[27,36,39,40],tc1:45,tc2:45,tc2_s1:39,tc2_s2:39,tc2_s3:39,teach:4,team:[15,32,34,38,40],teammat:[15,40],tear:46,technic:[4,37,41,46],techniqu:[0,7,15,34,35,37,39,46],technolog:[4,33,34,37,38,46],tediou:46,tell:[4,8,14,15,27,33,35,36,37,39,40,42,43,46],tem:46,temp:[8,9,10,11,15,16,24,35,36,37,39,41,43,45,46],temperatur:[7,35,37,46],templat:[7,38,42],temporari:[5,40,46],tempt:[15,46],ten:[15,42],tend:38,tension:[37,46],term:[7,26,39,40,46],termin:[3,14,26,34,35,36,37,39,40,45,46],terminolog:[34,37,38],terrac:[37,46],terrain:15,terribl:15,test:[0,4,8,9,14,15,27,28,30,31,33,34,35,41,42],test_baking_buzz_one_shot_tim:46,test_buzz_ev:46,test_buzz_tim:46,test_toaster_buzz_one_shot_tim:46,test_typ:46,testabl:46,text:[4,7,14,38,39,40,46],textil:[],than:[4,7,9,14,15,16,23,32,34,35,36,37,39,40,45,46],thankfulli:[15,46],thei:[3,4,7,8,11,14,15,16,32,33,34,35,36,37,38,39,40,41,42,43,45,46],theirs:15,them:[4,5,7,8,10,11,15,16,32,33,34,35,36,37,38,39,41,42,43,45,46],theme:46,themselv:[7,15,16,34,37,38,39,46],theo:[37,46],theoret:[],theori:[15,33,41,44],therebi:[7,15,34],therefor:[15,36],thi:[0,2,3,4,5,7,8,9,10,11,12,13,14,15,16,25,26,27,28,29,32,33,34,35,36,37,38,39,40,41,42,43,45,46],thickest:[],thiel:46,thin:[],thing:[4,5,7,8,12,14,15,27,34,35,36,37,38,39,40,41,42,45,46],thing_subscribing_ao_cares_about:39,think:[11,15,25,33,34,35,36,37,38,39,40,41,42,43,46],thinner:[],thinnest:[],third:[15,35],thirti:[],thoma:38,those:[7,15,32,36,38,45,46],thou:43,though:[7,11,15,36,37,39,42,43,45,46],thought:[15,16,35,37,39,46],thread:[0,3,4,7,9,15,32,33,34,35,36,37,38,39,41,43,45,46],thread_runner_fifo:0,thread_runner_lifo:0,thread_safe_queu:39,threadsaf:39,thredo:46,three:[15,35,36,37,39,42,43,45,46],three_puls:[10,39],threshold:[35,38],throb:[37,46],throe:7,through:[4,5,7,8,14,15,28,33,34,35,36,37,40,41,42,43,45,46],throughput:15,thrown:40,tick:[15,16],ticket:37,tie:[15,35,36,46],tied:[7,15,41],ties:37,tight:[33,46],tight_layout:[],tighten:41,tightli:[27,39,40,46],till:37,timat:7,time:[0,3,4,7,9,10,11,15,16,28,32,33,34,35,36,37,38,40,41,43,45],time_1:46,time_1_str:46,time_2:46,time_2_str:46,time_compress:[15,16],time_differ:46,time_in_sec:46,time_in_second:[15,16],time_keep:8,time_out:35,timeout:34,timeout_callback:34,timer:[34,37,46],timestamp:[28,39,40,43,46],timestamp_str:46,tini:[4,41,46],tip:43,titl:[4,8,36,41,46],to_b1:39,to_cod:[7,15,39,45],to_method:[15,16,32,34,35,39,45],to_tim:[15,16],toast:[9,35,37,46],toast_tim:46,toast_time_in_sec:46,toaster:[9,35,38],toaster_142x5:37,toaster_:[9,37],toaster_baking_to_toast_spec:37,toaster_off_to_baking_trace_spec:37,toaster_oven:38,toaster_oven_1:46,toaster_oven_2:46,toasteroven:[35,38,46],toasterovenmock:46,toasting_buzz_test_spec:46,toasting_entri:35,toasting_time_m:46,toateroven:[38,46],todai:15,togeth:[14,15,33,38,39,40,44,46],toggl:46,told:[37,46],toler:[15,46],toleranc:46,tolern:46,tolernance_in_m:46,tonsil:46,too:[0,7,8,14,15,33,34,35,36,37,38,39,40,41,45,46],took:[15,32,37,43,46],tool:[4,7,15,32,33,34,37,38,39,40,42,46],top:[0,6,7,8,9,14,15,16,28,29,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],top_bound:46,topic:[15,42],topolog:[8,32,35,36,37,38,39,45,46],topology_a:8,topology_h:8,total:41,totalitarian:35,touch:[4,37,39,46],toward:[8,15,35,37,46],tpath:8,trace:[0,3,7,14,15,23,27,28,29,32,35,36,37,38,43,46],trace_callback:34,trace_l:34,trace_lin:46,trace_queue_nam:34,trace_result:34,trace_target:46,trace_through_all_st:46,track:[15,16,34,35,37,38,39,40,43,46],tracker:39,trade:[35,36,37,38,45,46],tradit:[4,15,36,46],traffic:15,train:[15,39],tran:[7,8,9,10,11,15,16,24,32,34,35,36,37,39,41,43,45,46],tranduc:35,trans_:8,trans_to_c2_s1:39,trans_to_c2_s2:39,trans_to_c2_s3:39,trans_to_fb11:32,trans_to_fb1:32,trans_to_fb:32,trans_to_fc1:[32,39,45],trans_to_fc2:[32,39,45],trans_to_fc:[32,39,45],trans_to_tc1:45,trans_to_tc2:45,trans_to_tc:45,transact:40,transduc:[7,15,35],transfer:[35,36,39,41],transform:[],transit:[0,3,7,8,10,11,15,16,29,32,36,37,38,40,41,43,45,46],transitori:46,translat:[33,35,37,40,46],transmit:[15,34,42],transpar:37,transpir:[37,46],travel:[],travers:36,treat:[8,38,39,46],tremend:15,tri:[7,15,33,35,39,45,46],trial:35,triangl:[],tribe:36,trick:15,tricki:[37,38],trickl:39,trigger:[7,8,15,16,35,36,37,38,41,45,46],trigger_pul:36,trip:15,trivial:[15,32,39,46],troop:15,troubl:[4,15,36,38,45],troubleshoot:[3,33,37],troublesom:4,truck:35,truli:15,trust:[15,46],truth:15,tube:[],tunabl:[35,46],tune:[15,35],tupl:38,turbin:35,turn:[4,5,7,9,14,15,28,32,33,35,36,37,39,40,41,42,43,45,46],tutori:[34,42],twain:15,tweak:[15,39],twice:46,two:[0,3,4,7,12,14,15,34,35,36,37,38,39,40,41,42,43,45,46],twodcellularautomatawithanglediscoveri:[],twodcellularautonomata:[],tx_routing_kei:15,type:[3,5,10,15,29,32,33,35,37,39,40,42,43,45,46],typic:[0,15,32,38,39,46],u3uc:[15,34],ubuntu:[],ugli:46,ultim:[3,7,36,37,38,43,46],ultimate_hook_exampl:35,ultisnip:46,uml:[4,7,14,15,32,33,34,35,37,38,39,40,41,46],umlet:[14,15,33,38,39,40],umletino:39,uncom:[27,39,40],uncomfort:[37,46],undefin:[39,46],under:[4,15,42,46],underl:[37,46],underli:[7,46],understand:[7,8,15,26,32,33,35,36,37,38,39,40,41,43,44,45,46],understood:[],underworld:[37,46],unexcept:15,unexpect:15,unfamiliar:41,unfold:15,unforeseen:15,unfortun:[4,38],ungodli:4,unhandl:[5,9,10,11,15,16,24,32,35,36,37,38,39,41,43,45,46],unhanld:[25,39,40],unifi:38,uniform:35,uniqu:[5,15,29,39,40,45,46],unison:[15,34,35],unit:[4,7,14,16,35,39,40,46],univers:[7,15,33,37,44,46],unives:[],unless:[7,15],unlik:[4,7,15,36,37,44,46],unlink:15,unload:36,unlock:38,unmanag:7,unnecessari:[10,39],unneed:46,unorgan:15,unpredict:35,unprocess:39,unprotect:[4,15],unreason:[],unreli:[],unrespons:[37,46],unseen:5,unstabl:43,unstart:[],unsupport:44,unsuspect:36,untest:46,until:[4,7,8,15,34,35,36,37,38,39,43,46],unus:46,unusu:15,unwind:[6,7,39,40],upcom:46,updat:[14,15,28,39,40,46],update_angl:[],upon:[4,7,12,15,16,25,31,32,33,35,36,37,38,39,40,43,45,46],upper:[15,46],upward:[],usag:46,use:[0,4,7,10,11,14,15,24,25,26,28,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],used:[0,2,4,5,7,8,9,10,11,14,15,29,34,35,36,37,38,39,40,41,42,43,45,46],useful:[8,10,15,33,34,35,36,37,38,39,46],useless:46,uselessli:15,user:[0,7,34,35,36,37,39,40,42,43,46],uses:[0,3,5,7,15,33,35,36,37,38,39,42,45,46],using:[0,3,4,5,7,8,14,15,26,28,29,32,33,34,35,36,37,38,39,40,42,43,45,46],usual:[39,46],util:[14,39,40],uuid5:0,uuid:0,vain:4,valid:8,valour:15,valu:[5,7,15,25,35,39,40,46],valuabl:[37,46],vantag:[15,37,46],variabl:[4,7,8,15,28,32,35,36,37,38,39,40,42,43,46],varient:37,varieti:34,variou:[7,15,36,37,39,43,46],veer:15,veloc:[],vent:39,venv:46,veri:[0,4,14,15,26,29,32,35,36,37,38,39,40,41,43,45,46],verifi:[35,46],vers:40,version:[3,34,37,39,42,45,46],versu:46,vertic:[39,46],vestigi:46,via:[35,37,42,46],victim:36,victori:[4,15],video:[15,39],videoid:[],view:[4,7,15,33,34,35,36,37,38,41,43,44,46],vigil:15,vim:[32,39,46],virtual:[],visibl:[38,39],visio:40,vision:[15,32],visit:39,visual:[32,37,46],vitamin:38,vnc:[],voic:15,voltag:[36,46],voodoo:15,vortex:35,wai:[0,4,7,10,12,15,16,32,33,34,35,36,37,38,39,40,41,42,43,45,46],waist:4,wait:[0,4,9,10,15,16,34,35,36,37,38,39,41,43,46],waitcomplet:43,waiting_to_adv:[15,16],waiting_to_lur:[15,16],wake:[7,35,37,46],walk:[35,37,45,46],walker:46,wall_cl:[],wallleftblackrightblack:[],wallleftblackrightwhit:[],wallleftwhiterightblack:[],wallleftwhiterightwhit:[],want:[8,11,12,15,25,26,28,33,34,35,36,37,38,39,40,42,43,45,46],war:[4,15,16],warbot:15,ward:45,warhors:15,warn:[37,46],wasn:[15,27,35,37,39,40,43,46],wast:[7,15,35,36,37,40,46],watch:[0,4,15,34,36,37,43,45,46],watch_external_weather_api:39,watch_external_weather_api_entri:39,watch_external_weather_api_weather_report:39,water:[15,16],wave:[15,35,46],weak:15,weaken:15,weapon:[4,15,32],wear:15,weather:[37,39],weather_read:39,weather_report:39,weather_track:39,weatherreport:39,weav:15,web:[42,46],websit:42,weekend:38,weigh:4,weight:[4,32],weirder:39,well:[0,4,5,8,15,33,36,37,38,41,42,45,46],went:[33,42],wenzel:42,were:[0,3,4,7,15,28,33,34,35,36,37,39,40,43,45,46],weren:[4,15,45,46],western:15,what:[4,7,8,13,15,26,27,28,29,32,33,34,35,36,37,38,41,42,43,44,45,46],whatev:[15,33,38,39,41,42,46],whatever_name_you_w:46,when:[3,4,7,8,10,12,14,15,16,26,27,28,32,34,35,36,37,38,40,41,42,43,45,46],whenev:35,where:[0,4,7,8,12,15,23,32,34,35,36,37,38,39,42,43,46],wherea:40,wherev:[37,46],whether:[45,46],which:[0,4,5,7,8,12,14,15,25,26,27,28,32,34,35,36,37,38,39,40,41,42,43,45,46],whichev:35,whine:36,whisper:[37,46],white:[9,37,46],white_light_off:[9,37],white_light_on:[9,37],white_mask:[],who:[4,7,15,33,34,35,36,37,38,39,40,45,46],whole:[4,15,25,34,36,37,39,40,46],whose:15,why:[14,15,32,33,35,37,38,39,40,43,44,46],wide:[],widget:38,width:[],wiki:35,wikipedia:46,willing:15,wilt:[],win:4,window:[15,23,34,46],wipe:[],wire:[15,34,37],within:[0,3,4,5,7,8,11,15,16,24,32,33,34,35,36,37,38,39,40,41,43,45,46],without:[4,7,14,15,26,33,35,37,38,39,40,45,46],woke:43,wolfram:[],won:[4,10,12,33,35,36,37,38,39,40,46],wonder:35,word:[4,7,15,37,40,42,46],work2:39,work:[0,3,4,7,8,9,12,13,14,15,28,32,33,34,35,36,37,38,40,42,43,44,45,46],worker1:39,worker2:39,worker:[4,9,37,38,46],workflow:15,world:[4,7,12,15,33,35,37,38,39,42,43,46],worri:[36,37,39,43,45,46],wors:[4,15,39],worst:[15,46],worth:[15,33,35,45],worthwhil:46,would:[0,4,7,8,10,11,12,14,15,25,26,27,28,29,32,33,34,35,36,37,38,39,40,41,43,44,45,46],wouldn:[15,36,37,39,41,45,46],wound:[15,16],wrap:[5,8,13,15,16,34,37,38,39,40,45,46],wrapper:8,wrestl:[15,42,45],write:[3,4,7,14,15,26,27,32,33,34,35,36,37,38,39,40,42,43,46],written:[3,4,7,8,15,32,33,34,35,36,37,38,39,42,45,46],wrong:[8,15,33,36,45],wrote:[4,15,34,35,36,41,42,45,46],wta_entri:[15,16],wta_exit:[15,16],wtl_entri:[15,16],wtl_exit:[15,16],wtl_second:[15,16],www:[],x15:46,x_px:38,xaxi:[],xml:7,xor:[],y_px:38,yaml:7,yaxi:[],year:4,yell:[15,16,46],yellow:[],yes:[15,38,46],yet:[4,7,11,14,15,35,36,37,38,39,40,41,45,46],yield:35,yml:[7,42],you:[0,2,3,4,5,7,8,10,11,12,13,14,15,24,25,26,27,28,29,32,33,34,35,36,37,38,40,41,42,43,44,45,46],your:[0,3,4,5,6,7,8,10,11,12,13,14,24,25,26,27,28,29,32,33,34,35,36,37,38,41,42,43,44,45,46],your_parent_state_method:39,your_signal_nam:39,your_state_method_nam:39,yourself:[7,15,35,36,38,39,44,45],youtub:39,z_px:38,z_pz:38,zap:36,zero:[4,15,17,30,35,37],zero_to_on:[6,17,18,19,20,21,22,38,46],zeromq:46,zip:[15,28,37,39,40,46],zoologi:4,zoom:39,zuvk:[]},titles:["Active Object","Architecture","Cellular Automata","Comprehensive","Concurrency: the Good Parts","Events","Examples","Glossary","Hsm","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Mongol Horse Archer","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Python Statecharts","Installation","Interacting Statecharts (Same Machine)","Introduction","Spy and Trace Across a Network","Patterns","Simple Posting Example","Quick Start","Diagrams","Recipes","Reflection","Hacking to Learn","Setting Up RabbitMQ","Active Object Example","Testing","Using and Unwinding a Factory","Zero To One"],titleterms:{"abstract":46,"catch":39,"class":[34,38,39,45],"final":38,"function":[34,41],"import":[34,41],Adding:39,And:39,For:15,Going:39,Has:39,One:[39,46],The:[15,34,37,40],Using:[39,40,45],abil:34,about:38,across:34,activ:[0,39,43],activeobject:39,add:[34,39,41],analog:37,anoth:39,ansibl:42,answer:41,anyth:41,approach:45,archer:15,architectur:1,arrow:38,attach:[15,38],augment:39,automata:2,basic:[42,46],behavior:40,better:41,boiler:[34,39],build:15,callback:[34,45],can:34,cancel:39,canva:[],cellular:2,challeng:41,chart:40,close:34,code:[34,37,39,41,46],common:41,compon:35,comprehens:3,concurr:4,connect:34,construct:38,consum:34,context:[15,34],count:34,creat:[34,39,45],current:39,deceit:15,decrypt:34,deep:38,defer:[35,39],describ:39,descript:40,design:[15,34,37,40,46],detail:[15,38,40],determin:39,diagram:[38,39],docstr:34,doe:39,draw:[34,39],dynam:37,els:38,embed:37,enter:39,entropi:[],event:[5,34,35,38,39,41,45,46],exampl:[6,15,32,34,36,43,45,46],exit:39,experienc:37,explain:40,extend:38,extrem:40,fabric:0,factori:[39,45],fall:38,feder:38,fifo:39,first:[15,41],flat:39,foreignhsm:34,frame:41,from:[39,40],game:37,gener:[],get:[34,39],glossari:7,good:4,guard:[39,41],hack:41,hardwar:46,have:[34,39,40],hiearchi:41,high:[38,40],highlevel:[],hint:[37,46],histor:15,histori:[35,38,46],hook:[35,39,46],hors:15,horseman:15,how:[39,40],hsm:[8,34],hypothesi:41,icon:38,indic:30,inform:[34,39],inherit:38,init:41,initi:39,insid:39,instal:[31,42],instrument:[3,37],interact:32,intern:41,introduct:33,iter:46,its:[15,34],learn:[41,42],level:[38,40],librari:34,lifo:39,link:34,linux:42,live:[39,40],log:34,machin:32,make:[34,41],mechan:37,medium:38,mesh:15,messag:[34,42],method:[39,45],mind:15,miro:38,mistak:41,model:15,modul:5,mongol:15,multi:[39,46],multichart:35,multipl:39,multishot:39,name:39,need:[],network:[15,34,42],newbi:37,noth:[],number:[],object:[0,34,39,43],off:34,one:46,onedcellularautomata:[],organ:15,orthogon:35,other:[39,40,41],our:[15,34,41],output:[34,40],oven:[37,46],overview:15,pai:37,parent:39,part:4,partial:41,pass:39,pattern:[35,42],payload:[38,39,46],pend:35,phenomenon:[],pictur:41,plate:[34,39],point:38,post:[36,39],processor:38,produc:34,program:[15,34],proof:46,pub:38,publish:[38,39],python:30,question:[41,46],quick:37,rabbitmq:[34,42],race:35,random:[],react:34,recal:39,recip:39,reflect:40,regist:45,releas:39,remind:35,requir:[34,41],returnstatussourc:5,rule30:[],rule:[],run:41,same:32,scott:[37,46],scribbl:39,see:[39,41],self:37,send:34,sequenc:[38,39],set:[34,42],setup:46,shot:[39,46],shutdown:34,signal:[5,39,40],signalsourc:5,simpl:[32,36,46],sketch:[],small:[],some:[15,34],someth:39,sourc:39,specif:[34,39,45,46],spy:[34,39,40],standard:45,start:37,state:[38,39,40,41,45],statechart:[30,32,34,38,39,45],statemachin:[],stori:[37,46],structur:[38,39],sub:38,subscrib:39,subscript:38,subsect:[],summari:45,system:[15,39],tabl:30,tactic:15,target:39,technic:15,templat:[39,45],termin:38,test:[37,39,40,44,46],thought:40,through:[38,39],time:[39,46],titl:[],toaster:[37,46],trace:[34,39,40],transit:[35,39],turn:34,twodcellularautomata:[],ultim:35,unit:15,unwind:45,view:40,visual:[],volk:[37,46],wall:[],warn:38,what:[39,40],when:39,why:45,window:42,work:[39,41],write:45,you:39,your:[15,39,40],zero:46}}) \ No newline at end of file +Search.setIndex({docnames:["activeobject","architecture","cellular_automata","comprehensive","concurrency_essay","event","examples","glossary","hsm","i_bitcoin_miner_toaster_oven","i_create_a_multishot","i_create_a_one_shot","i_defer_and_recall","i_determining_the_current_state","i_making_sequence_diagrams_from_trace","i_mongol_example","i_mongol_with_empathy_code_listing","i_navigation_1","i_navigation_2","i_navigation_3","i_navigation_4","i_navigation_5","i_navigation_6","i_networking_instrumentation_file_table","i_scribble_on_the_spy","i_seeing_your_signals","i_spy_reactive","i_test_with_spy","i_test_with_trace","i_trace_reactive","index","installation","interactingcharts","introduction","networked_instrumentation","patterns","postingexample","quickstart","reading_diagrams","recipes","reflection","scribbleexample","setting_up_rabbit_mq","singlechartexample","testing","towardsthefactoryexample","zero_to_one"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["activeobject.rst","architecture.rst","cellular_automata.rst","comprehensive.rst","concurrency_essay.rst","event.rst","examples.rst","glossary.rst","hsm.rst","i_bitcoin_miner_toaster_oven.rst","i_create_a_multishot.rst","i_create_a_one_shot.rst","i_defer_and_recall.rst","i_determining_the_current_state.rst","i_making_sequence_diagrams_from_trace.rst","i_mongol_example.rst","i_mongol_with_empathy_code_listing.rst","i_navigation_1.rst","i_navigation_2.rst","i_navigation_3.rst","i_navigation_4.rst","i_navigation_5.rst","i_navigation_6.rst","i_networking_instrumentation_file_table.rst","i_scribble_on_the_spy.rst","i_seeing_your_signals.rst","i_spy_reactive.rst","i_test_with_spy.rst","i_test_with_trace.rst","i_trace_reactive.rst","index.rst","installation.rst","interactingcharts.rst","introduction.rst","networked_instrumentation.rst","patterns.rst","postingexample.rst","quickstart.rst","reading_diagrams.rst","recipes.rst","reflection.rst","scribbleexample.rst","setting_up_rabbit_mq.rst","singlechartexample.rst","testing.rst","towardsthefactoryexample.rst","zero_to_one.rst"],objects:{"":{activeobject:[0,0,0,"-"],event:[5,0,0,"-"],hsm:[8,0,0,"-"]},"activeobject.ActiveFabricSource":{clear:[0,3,1,""],publish:[0,3,1,""],start:[0,3,1,""],stop:[0,3,1,""],subscribe:[0,3,1,""],thread_runner_fifo:[0,3,1,""],thread_runner_lifo:[0,3,1,""]},"activeobject.ActiveObject":{append_publish_to_spy:[0,3,1,""],append_subscribe_to_spy:[0,3,1,""],cancel_event:[0,3,1,""],cancel_events:[0,3,1,""],make_unique_name_based_on_start_at_function:[0,3,1,""],run_event:[0,3,1,""],start_thread_if_not_running:[0,3,1,""],stop:[0,3,1,""],trace:[0,3,1,""]},"event.Event":{dumps:[5,4,1,""],has_payload:[5,3,1,""],loads:[5,4,1,""]},"event.SignalSource":{name_for_signal:[5,3,1,""]},"hsm.HsmEventProcessor":{augment:[8,3,1,""],child_state:[8,3,1,""],dispatch:[8,3,1,""],init:[8,3,1,""],is_in:[8,3,1,""],start_at:[8,3,1,""],top:[8,3,1,""],trans:[8,3,1,""],trans_:[8,3,1,""]},activeobject:{ActiveFabric:[0,1,1,""],ActiveFabricSource:[0,2,1,""],ActiveObject:[0,2,1,""]},event:{Event:[5,2,1,""],OrderedDictWithParams:[5,2,1,""],ReturnStatusSource:[5,2,1,""],Signal:[5,1,1,""],SignalSource:[5,2,1,""]},hsm:{HsmEventProcessor:[8,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","staticmethod","Python static method"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:class","3":"py:method","4":"py:staticmethod"},terms:{"0bmhjf0rke8":[],"100m":[35,46],"13th":15,"142x5zhqemk5lljxgzeitbwpv2oxqpfahj":[9,37],"1980s":[],"1990s":[33,38],"1st":[43,46],"2000s":33,"257m":4,"2nd":[37,38,43,46],"2onedcellularautomata":[],"2twodcellularautomata":[],"33691e":[],"37474f":[],"3nd":43,"3rd":34,"3th":43,"4nd":43,"4th":43,"70s":4,"75c8c":[14,29,36,39,40],"8ahweo_dgs0":[],"90s":[],"95a8c":[14,39,40],"abstract":[15,35,37,45],"break":[4,14,15,35,36,37,39,40,43,45,46],"case":[11,15,36,37,39,43,46],"catch":[7,9,15,16,32,34,35,37,38,45,46],"class":[0,5,6,7,8,9,13,15,16,17,18,19,20,21,22,25,33,35,36,37,40,41,44,46],"default":[0,15,35,39,42,46],"enum":5,"final":[7,8,15,34,35,36,37,43,46],"float":[4,46],"function":[0,3,5,7,8,10,13,32,35,36,37,38,39,40,45,46],"import":[4,9,11,15,16,25,26,27,28,32,35,36,37,38,39,40,43,45,46],"int":[25,39,40,46],"long":[15,32,35,36,37,46],"new":[0,4,5,7,8,15,26,27,28,34,35,36,37,38,39,40,41,42,43,45,46],"public":[42,43],"return":[0,5,7,8,9,10,11,15,16,24,32,34,35,36,37,38,39,41,43,45,46],"short":[15,35,37,38,41,46],"static":[5,15,34,36],"super":[4,8,9,10,11,15,16,24,34,35,36,37,39,41,43,45,46],"switch":[3,35,46],"throw":[14,15,37,38,39,40,46],"true":[0,5,7,8,9,10,11,15,16,34,35,36,37,38,39,40,41,43,46],"try":[4,8,15,34,35,36,37,38,39,41,43,45,46],"var":[],"while":[3,4,7,10,14,15,16,33,34,35,36,37,38,39,40,42,43,45,46],Adding:34,And:[15,16,46],Are:46,Being:[37,46],But:[15,33,34,35,36,37,38,39,40,41,42,45,46],Eve:[37,46],For:[0,5,7,27,34,35,37,38,39,40,43,45,46],Going:37,His:[4,15,46],Its:37,NOT:[0,42,43],Not:[7,37,46],One:[7,15,30,36,37,41],Such:[15,46],That:[4,15,28,32,35,36,37,39,40,41,45,46],The:[0,2,3,4,5,7,8,9,10,11,14,16,25,26,28,29,32,33,35,36,38,39,41,42,43,44,45,46],Their:[4,8,15,45],Then:[4,8,14,15,32,33,35,36,37,38,39,40,41,43,45,46],There:[0,4,7,8,12,15,29,32,34,35,36,37,38,39,40,41,42,46],These:[4,8,15,33,35,37,38,39,42,45,46],Use:[4,34,35,38,46],Used:8,Useful:8,Using:[6,15,37],WLS:[],With:[15,28,36,37,38,39,40,45],Yes:46,__add__:[15,16],__getattr__:[25,39,40],__init__:[5,9,15,16,34,35,37,38,39,46],__main__:[9,15,34,37,39,41,46],__name__:[9,15,34,37,39,41,45,46],__post_ev:0,_decrypt:34,_encrypt:34,_fake_new:35,_fake_news_gener:35,_gener:[],_static:[],_strip_trac:34,a1_entri:39,a1_to_b1:39,a53:46,aa00ff:[],abandon:[38,39],abil:[7,15,33,36,37,46],abl:[7,15,34,35,38,40,46],about:[0,4,7,8,10,11,14,15,26,27,29,33,34,35,36,37,39,40,41,42,43,45,46],abov:[3,8,14,15,28,34,35,36,37,38,39,40,41,42,43,45,46],abs:[],absent:15,absolut:[15,39],acceler:7,acceleromet:[],acceller:[],accept:[34,44],accerer:[],access:[4,7,15,25,26,34,35,37,38,39,40,46],accid:39,accident:[15,38,45,46],accomod:46,accord:[7,15,37,38],account:[4,9,36,37,46],accumul:[38,46],accur:15,achiev:[4,15],acquisit:35,acronym:[37,46],across:[5,8,15,25,33,35,36,37,39,40,42,45,46],act:[4,8,12,14,15,16,34,35,36,37,38,39,40,46],action:[0,7,8,15,33,36,37,38,41,43,45,46],activ:[1,3,4,6,7,10,14,15,24,26,27,28,29,32,34,35,36,37,38,40,41,45,46],active_object:45,active_object_input_queu:0,activefab:[],activefabr:[0,39,43],activefabricsourc:0,activefactori:38,activefrab:[],activeobect:[39,46],activeobject:[0,9,15,35,36,37,38,40,41,43,45,46],actual:[4,7,8,14,15,16,27,29,32,35,37,38,39,40,41,43,45,46],adapt:35,add:[4,5,7,8,11,15,24,32,35,36,38,42,43,46],add_member_if_need:15,add_timeout:34,added:[5,15,34,36,37,39,45,46],adding:[7,15,33,35,37,46],addit:[3,7,15,34,37,38,40,46],address:[15,16,34,37,42,46],adher:[7,15],adjac:8,adjust:[3,14,15,16,34,35,36,39,40,41],admistr:7,advanc:[8,15,16,38],advance_close_enough_for_circl:[15,16],advance_entri:[15,16],advance_exit:[15,16],advance_other_advanced_war_cri:[15,16],advance_senior_advanced_war_cri:[15,16],advance_war_cri:[15,16],advantag:15,adventur:[37,46],advertis:46,advic:46,advis:46,advoc:[],aesthet:[37,46],af_inet:34,affair:15,affect:37,afford:37,after:[3,4,7,15,26,27,33,35,36,37,38,39,40,41,42,43,45,46],afternoon:38,again:[0,8,15,32,35,36,37,39,41,43,45,46],against:[7,15,25,28,34,36,39,40,41,46],agent:15,aggreg:[23,34,35,38],aggress:35,aggression_max:35,agil:15,ago:[],agre:35,agress:35,ahead:[10,39],aim:[8,15],ain:15,air:4,aircraft:4,airforc:[],alan:[33,39],alarm:8,albert:38,alcohol:[37,46],alert:[],alexand:[7,35],algebra:15,algorithm:[7,8,33,35,36,37,38,39,41,45,46],align:[],aliv:15,all:[0,3,4,5,7,8,10,14,15,16,23,26,32,34,35,36,37,38,39,40,42,43,45,46],all_readi:35,alli:[],allow:[3,7,15,33,34,35,36,37,42,43,46],allowfullscreen:[],allur:15,almost:[15,36,38,44,45,46],alon:[15,37,46],along:[38,46],alpha:[],alreadi:[4,8,15,16,35,37,38,42,43,46],also:[3,4,5,7,8,10,14,15,34,35,36,37,38,39,40,41,42,45,46],altan:[15,16],altan_192:15,alter:15,alwai:[4,7,8,15,35,36,37,39,42,46],alzheim:[],ambiti:[35,40],american:4,ammunit:[15,16],ammunition_low:[15,16],amoungst:[],amount:[4,15,26,35,38,39,40,46],amplifi:[36,40],analog:41,analysi:[],analyz:[],ancestor:[8,15,37,46],ancestr:15,anchor:[7,39],angl:7,angle_in_radian:[],angri:15,ani:[0,3,4,5,7,8,11,15,25,34,35,36,37,38,39,40,41,43,44,46],anim:[],annihil:46,annoi:46,announc:[37,46],anoth:[3,4,5,7,8,14,15,16,29,32,34,35,36,37,38,40,41,42,43,45,46],answer:[4,15,37,44,45,46],anti:[38,39,46],anymor:[15,36,37,39,46],anyon:[15,36,37,40,46],anyth:[4,36,37,38,39,40,45,46],anytim:[7,15,34,35,37,39,43,46],anywai:[37,46],anywher:[15,38,46],ao1:[39,40],ao2:39,aos:[10,36,39],apart:[4,35,46],api:[0,10,11,15,24,34,39,43,45,46],app:[42,46],appear:[15,37,46],append:[0,5,8,15,16,34,39],append_publish_to_spi:0,append_subscribe_to_spi:0,append_to_spi:34,append_to_trac:34,appendix:46,appli:[7,15,37,39,43,46],applic:[4,15,33,37,38,39,45,46],approach:[0,4,7,8,15,35,37,39,41,46],appropri:39,approxim:[],apt:42,arab:4,arbitrari:15,archer:[6,16],architect:[7,15,35],architectur:[15,30,35,36,37,46],area:[4,35],aren:[4,7,15,35,36,37,38,39,46],arg:[5,8,46],argu:15,argument:[7,8,10,34,36,37,39,43,45,46],aris:[15,35,46],arm:[14,15,27,28,29,33,35,36,39,40,46],armi:15,armin:7,armli:[],armour:15,around:[4,7,15,28,34,35,37,39,40,46],arrai:[8,35,46],arrang:[37,38,46],array_equ:[],arriv:[15,37,38,46],arrow:[7,8,15,16,34,35,36,37,39,41,43,46],art:[34,39,43],artifact:46,artifici:[7,12,35,39],ascii:[7,14,34,39,40,46],ask:[4,15,34,35,36,37,38,39,41,43,44,45,46],aspect:[35,37,39,46],assert:[0,5,8,15,27,28,35,37,39,40,46],assign:[0,8,39,45,46],assimil:[],assist:[14,39,40],associ:[0,36,37,41,46],assort:38,assum:[15,26,35,39,40,41,45],assumpt:35,asychron:[],asymetr:46,asynchron:[4,7,39],asyncio:46,at15:46,atan:[],atom:41,attach:[37,39,43,46],attack:[15,16,41],attempt:38,attent:[3,4,8,14,15,32,35,36,37,38,39,40,43,45,46],attractor:15,attribut:[5,8,9,15,34,35,36,37,38,39,43,46],audienc:[37,38,46],augment:[8,10,35,36,38,39],augustin:4,aureliu:[],australia:[],author:35,authorized_kei:42,authorizing_author:35,authorizing_entri:35,autist:15,auto:[39,45],autocorrel:[],autodoc:[],autom:42,automat:[15,35,37,39,42,45,46],automata:6,autonom:15,autonoma:[],autoplai:[],avail:[4,38,46],avalanch:15,avion:4,avoid:[4,10,15,36,38,39,40,41,45,46],awai:[14,15,16,33,35,36,38,39,40,43,46],await:[26,39,40],awaken:46,awar:[4,15,37,38,46],awesom:[],awkward:[7,41],axi:46,b11:39,b11_entri:39,b11_inner_most:39,b11_other_inner_most:39,b1_entri:39,b1_exit:39,b1_init:39,b27300:[],b_chart:32,babi:4,back:[2,3,7,8,15,32,34,35,36,37,38,39,41,43,45,46],background:[15,32,35,38,39,43,46],backward:[8,38],bad:[4,15,32,34,35,39,46],bafflingli:15,bait:15,bak:44,bake:[9,35,37,46],bake_tim:46,bake_time_in_sec:46,baking_buzz_test_spec:46,baking_entri:35,baking_st:37,baking_time_m:46,balanc:4,ball:[],balloon:46,ban:[37,46],bang:15,bank:35,bar:[37,38,46],barg:[0,7,10,39,46],barrag:15,barrier:[],bartend:[37,46],base:[0,7,8,15,34,35,37,39,40,41,43,46],base_state_method:45,basic:[5,15,25,35,37,39,40,43],basic_consum:34,basic_publish:34,bate:15,batteri:[14,36,39,40],battery_charg:[27,28,29,36,39,40],battl:[4,15,16],battle_entri:[15,16],battle_init:[15,16],battlefield:15,battleground:4,bb_handler:32,beagleboard:46,beat:[4,10,39],beauti:[38,40,45],beautifulli:8,beazlei:46,becam:[4,39],becaus:[4,5,7,12,15,27,32,33,34,35,36,37,38,39,40,41,43,45,46],becom:[4,7,14,15,28,33,36,37,38,39,40,45,46],been:[0,2,3,4,5,7,8,15,27,31,32,34,35,36,37,39,40,41,43,45,46],befor:[0,4,5,7,8,9,11,15,33,34,35,36,37,38,39,41,42,43,45,46],began:[36,46],begin:[0,4,7,8,14,15,16,32,34,35,36,37,38,39,40,41,43,46],beginn:4,behav:[3,11,14,15,16,33,35,36,37,39,40,43,45,46],behavior:[7,15,24,26,27,28,32,33,34,35,36,37,38,39,41,43,45,46],behavior_nam:35,behaviour:[15,34,37,46],behind:[33,38,45,46],being:[4,5,7,8,10,12,15,16,23,25,28,34,35,36,37,38,39,40,43,45,46],beings:46,belief:15,believ:[37,46],belong:[15,35],below:[15,25,32,39,40,42],benefit:[37,38,39,45,46],benifit:[],bernhard:42,besid:[7,37,38,39,46],best:[0,4,7,15,37,38,46],better:[4,15,35,37,38,39,43,46],between:[4,7,8,10,11,15,16,26,29,35,36,37,38,39,40,41,43,45,46],beyond:[8,15,38,46],bia:[],bias:15,big:[7,15,34,35,36,37,39,41,43,46],bigger:[3,4,36,40],billion:4,bin:46,binari:7,bind:[34,44],binocular:46,bird:[37,46],bit:[4,9,11,15,32,34,36,37,39,41,43,45,46],bitcoin:[9,37],bitcoin_address:[9,37],bitcoin_miner_off:[9,37],bitcoin_miner_on:[9,37],black:[7,15,36,37,38,39,41,43,46],black_mask:[],blast:15,blazingli:46,blind:[15,27,32,39,40],blit:[],block:[4,15,35,37,39,41,43,45,46],blockingconnect:34,blog:[42,46],blue:[7,37,39,46],blueprint:[15,38],blur:15,bluster:15,board:[37,38,46],bob:[34,42],bodi:[15,34],bog:15,boiler:46,boilerpl:34,bold:35,bomb:4,bombard:15,book:[4,8,35,36,37,38,41],bool:8,bordercolor:[],borg:[],boss:46,bot:[15,42],both:[0,4,7,15,32,34,35,37,38,39,43,46],bother:[14,15,39,40,46],botnet:15,bottl:15,bottom:[4,39,45,46],bottom_bound:46,bounc:46,bouncer:[37,46],bound:15,boundari:[7,39,41,46],bow:[15,16],box:[34,37,46],boyd:33,bracket:[29,35,39,40,41],brain:[],brake:[35,39],brand:[38,39,46],brass:37,brave:15,breach:7,bread:[36,46],breakpoint:37,brethren:15,brew:[],bridg:[37,46],briefest:45,briefli:[37,46],bring:[4,15,39,41],broad:15,broadcast:[14,39,40],broadcast_spi:34,broadcast_trac:34,broken:[4,15,34,35,39,46],broker:42,brother:15,brown:[],browser:[37,46],bubbl:[35,37,39,46],buffer:[7,26,35,36,39,40],bug:[15,36,39,45,46],bui:[4,40,46],build:[3,4,7,8,12,16,32,34,35,36,37,38,39,40,41,43,45,46],build_next_mask:[],build_piston:35,built:[3,7,15,29,32,34,35,37,38,39,40,41,46],bulk:[],bullet:46,bunch:[7,15,37,46],burden:46,buri:[],burst:[15,35],burst_ev:35,bus:46,busi:[4,7,15,32,34,35,37],busy_count:35,busy_entri:35,busy_time_out:35,busy_time_out_hook:35,butterfli:[],button:[37,46],buttress:46,buzz:[41,46],buzz_tim:46,buzz_time_m:46,buzzer:46,buzzspec:46,c11:39,c1_a:34,c2_a:34,c_chart:32,c_trace_consum:[23,34],c_trace_produc:[23,34],cachefilechart:38,caf_second:[15,16],calcium:[],calcul:[],calculu:15,call:[0,3,4,7,8,10,11,12,15,25,26,29,32,33,34,35,36,37,38,39,40,41,43,45,46],call_something_lat:[37,46],callback:[7,15,16,32,35,37,39,46],callback_method:34,caller:[7,35,39],came:[4,7,11,15,26,35,38,39,40,46],camera:15,camil:43,campaign:[37,46],can:[0,2,3,4,5,6,7,8,9,10,11,12,14,15,16,24,25,26,27,28,29,32,33,35,36,37,38,39,40,41,42,43,44,45,46],cancel:[0,10,11,15,36,46],cancel_ev:[0,10,11,15,16,36,39,46],cancel_sourc:39,cannot:35,capabl:[15,34],capacitor:36,capacitor_charg:[27,36,39,40],captur:[10,11,15,35,39],card:15,care:[0,7,11,14,15,37,38,39,40,41,43,45,46],career:[4,15],carefulli:[27,39,40,46],cargo:4,carpet:[37,46],carri:[7,15,37,39,46],cascad:36,cast:46,casual:38,cat:42,catagor:7,caught:[7,15,35,37,39,46],caus:[3,4,15,29,32,35,36,37,38,39,40,43,45,46],causal:[],ccceler:[],cell:[],cells_per_gener:39,cellular:6,celsiu:35,cement:[],center:43,centr:35,centuri:15,ceo:4,certain:[15,37,38,45,46],certainli:[15,37],ceullular:[],chain:15,challeng:[37,46],chamber:35,chanc:[15,16,39,46],chang:[3,4,8,11,14,15,28,33,34,35,37,38,39,40,42,43,45,46],changebordercolor:[],channel:34,chao:[15,35],chaotic:15,chapter:[35,38],charact:[0,29,34,37,39,40,46],characterist:[8,15,35,46],charg:[14,15,16,36,39,40],charli:46,chart1:39,chart2:39,chart3:39,chart:[0,3,6,7,8,10,11,12,13,14,15,16,24,25,26,29,32,34,35,36,37,38,39,41,43,45,46],chart_b:32,chart_nam:34,chase:15,cheap:[40,46],check:[0,15,37,46],chicken:[15,16],child:[7,8,35,39,43],child_stat:8,child_state_graph_e1_s5:8,children:15,choa:[],choic:[39,46],chomski:42,choos:[15,37,46],chortl:4,chose:39,christoph:[7,35],chunk:[4,43],circl:[7,15,16,37,38,46],circle_and_fir:[15,16],circuit:[15,35,36],circular:46,claim:[35,46],clariti:5,classwithstatechartinit:39,claus:[7,35,37,39,46],clean:[5,45,46],clear:[0,8,15,28,37,39,40,43,46],clear_spi:[34,41,43,46],clear_trac:[15,34,37,39,43,46],clearer:[41,45],click:[3,7,15,35,37,38,46],client:[7,15,35],client_dequ:0,climb:[8,35,37,43,46],clip:[37,46],clobber:8,clock:[35,46],clone:[],close:[9,15,16,35,36,37,46],close_enough_for_circl:[15,16],closer:15,closest:15,closur:34,club:35,clue:[37,46],clumsi:34,cluster:[],clutter:[34,35,46],cmap:[],cod:[],code:[0,2,3,4,5,7,8,9,12,14,15,16,17,18,19,20,21,22,23,26,28,32,33,35,36,38,40,42,43,45],codebas:37,cognit:[15,36,41,45],cohes:15,collabor:[15,35],collect:[4,5,7,8,15,34,38,39,42,46],collegu:32,collis:41,color:[],color_numb:[],colour:[34,38],column:[],com:[],combin:[],come:[3,4,7,14,15,34,35,36,37,38,39,40,42,43,46],comfort:[15,34,37],command:[4,15,16,27,35,39,40,42],comment:[8,14,15,27,35,36,39,40,45,46],commerci:39,committe:38,commmon:7,common:[7,8,35,37,38,39,44,45,46],common_behavior:39,common_behaviors_entri:39,common_behaviors_hook_1:39,common_behaviors_hook_2:39,common_behaviors_init:39,common_behaviors_other_inner_most:39,common_behaviors_reset:39,common_featur:46,commonplac:[],commun:[0,4,7,15,32,35,37,38,39,44,45,46],comp:35,compact:[15,38,39,40,45],compani:[37,42,46],companion:[37,46],compar:[4,15,25,27,28,34,35,37,39,40,43,46],comparison:[4,46],compens:4,compet:15,compil:[33,46],complet:[4,7,8,15,34,35,36,37,38,43,44,45,46],complete_circuit:15,complex:[4,7,15,32,33,35,37,38,39,40,43,45,46],complianc:15,compliant:[14,39,40,46],complic:[4,15,35,38,39,40,45,46],complicit:15,compon:[3,15,39,46],composit:[35,38,41],comprehend:15,comprehens:6,comprehensive_no_instrument:3,compress:[15,16,35],compromis:15,comput:[7,15,23,33,34,35,37,38,39,42,46],concaten:42,conceiv:38,concentr:15,concept:[7,15,37,46],concern:[15,35,39,45],concert:39,concis:[32,45],conclud:15,conclus:15,concret:37,concurr:[32,33,38,39,46],condit:[3,4,7,15,16,35,36,37,38,39,41,46],conduct:15,cone:[],conf:42,confid:[15,46],config:42,configur:[7,8,14,39,40,41,42],confin:[33,35],confirm:[15,35,41,42,46],conflict:4,confus:[15,37,46],connect:[7,15,32,35,37,38,39,42,43,46],connection_attempt:15,connectionparamet:34,consciou:46,consequ:15,conserv:44,consid:[4,7,8,14,15,28,35,37,39,40,41,46],consider:37,consist:[15,34,35,37,46],constant:15,constraint:33,construct:[5,7,8,11,13,15,34,35,36,37,39,40,42,46],constructor:39,consult:42,consum:[7,15,23,38,39],consumpt:[15,37,46],contain:[3,4,5,7,15,26,28,29,32,34,35,36,37,38,39,40,41,43,45,46],contemporari:46,contemptu:15,content:[1,3,15,30,36,38,39],context:[4,7,28,35,37,38,39,40,41,45,46],contextu:38,continu:[4,7,15,35,36,37,43,46],contract:[15,35],contractor:[4,15],contradict:39,contrari:41,contrast:[7,35],contribut:[7,38],control:[3,11,15,35,36,37,38,39,40,41,42,43,45,46],conu:[],conundrum:15,conveni:35,convent:[15,38,46],convers:40,convert:[7,15],convinc:[15,46],cook:46,cook_tim:46,cook_time_sec:46,cool:[4,35,46],cool_enough:35,copi:[4,14,27,28,35,37,38,39,40,42,45,46],core:[33,35,46],core_color:[],corner:[15,46],coroutin:[],correct:[4,8,15,16,32,39,40,42,45,46],correctli:8,correspond:41,corrupt:4,cortext:46,cosmologist:44,cost:[4,7,35,37,38,40,46],couch:4,could:[4,10,14,15,16,28,32,34,35,36,37,38,39,40,41,43,45,46],couldn:[15,39],count:[15,35],countdown:37,counter:[15,39],countri:[4,35],coupl:[27,35,39,40,46],cours:[15,41],cover:15,coward:15,cpu:[15,35,46],cpython:46,crack:[],craft:7,crank:46,crash:[8,34],creat:[0,4,5,7,10,11,14,15,16,29,32,33,35,36,37,38,40,41,42,43,46],create_burst:35,createel:[],creation:46,creativ:[],credenti:[15,34],cri:[15,16],criteria:35,criterion:35,critic:4,crockford:4,crucial:15,crumb:36,crush:4,cry:[15,16],crypto:34,cryptographi:34,crystal:[],cscope:38,ctag:38,ctor:39,ctrl:[14,39,40],cued:[],cult:4,cultur:[4,15],cunningham:45,curat:[4,39],curiou:[],current:[0,7,8,15,35,37,38,40,43,46],current_numb:35,curs:40,custom:[5,36,37,38,39,40,43,46],cut:15,cyan:[],cycl:[7,10,12,15,35,36,37,39,46],cyphertext:34,daemon:[36,39,43,46],dag:46,dai:4,damag:[15,35],damn:39,danc:15,danger:[15,39],dark:[15,33],data:[7,8,14,15,26,35,38,39,40,42,45,46],data_readi:35,date:[15,28,37,39,40],datetim:[29,35,39,40,46],daunt:4,dave:38,david:[4,7,15,33,35,38,46],daydream:[37,46],dd2c00:[],dead:[15,16],deaden:15,deadlin:34,deadlock:[4,46],deal:[35,36],dean:46,debt:46,debug:[10,15,27,34,37,38,39,40,41,43,45,46],debugg:[37,38,46],deceit:16,deceit_in_detail:[15,16],deceit_in_detail_tact:15,decent:[15,28,38,39,40],decid:[15,34,36,37,43,46],decim:46,decis:[15,33,38,46],declar:[34,39],decod:34,decomposit:38,decor:[3,13,34,36,37,39,40,43,45,46],decoupl:[4,46],deep:[7,35,37,46],deeper:[38,39,46],deepest:[],deepli:[38,41],deer:37,def:[5,8,9,10,11,15,16,24,25,32,34,35,36,37,38,39,40,41,43,45,46],default_nam:39,defeat:15,defeat_in_detail_tact:15,defend:4,defens:4,defer:[0,3,7,10,11,12,15,16,26,27,32,34,36,37,40,41,43,45,46],defi:[],defin:[5,7,8,10,11,15,28,34,35,36,37,38,39,40,42,43,45,46],degre:35,deisgn:[],del:39,delai:[7,11,39,45,46],delay_in_m:46,delay_one_second:[11,39],delay_tim:[15,16],delayed_one_second:[11,39],delet:35,delic:4,deliv:15,deliver:15,delv:15,demo:[],demonstr:[4,15,34,35,38,39,45,46],depend:[4,15,31,33,38,45,46],deploi:[41,42],deploy:42,depth:8,dequ:[0,7,35,37,39,46],deque_depth:39,deriv:[15,37,46],desc:46,descend:[35,37,46],descent:46,describ:[3,4,7,8,15,27,28,29,32,33,35,36,37,38,40,41,43,45,46],descript:[14,15,26,35,37,38,39,45,46],deseri:5,design:[3,4,7,8,9,14,17,18,19,20,21,22,28,33,35,36,38,39,43,44,45],desir:[11,15,35,39],desktop:[],despit:[4,35,37,46],destination_ip:34,destination_port:34,destroi:[15,34,38,41,46],destruct:[],destructor:[14,39,40,41],detail:[7,16,26,32,33,35,36,37,39,43,46],detect:[14,35,37,39,40,41],deterim:35,determin:[7,8,15,25,27,35,36,40,43,46],determinist:[],deterministicli:39,develop:[4,15,33,36,37,38,39,45,46],deviat:46,devic:[7,15,36,39],diagram:[3,7,8,9,14,15,29,30,32,33,34,35,36,37,40,41,43,45,46],diamond:38,dict:[25,39,40],dictionari:[5,15,25,39,40],did:[3,4,15,32,35,36,37,38,39,43,45,46],didn:[7,15,34,35,36,37,38,39,42,43,46],didt_advance_war_cri:[15,16],didt_entri:[15,16],didt_exit:[15,16],didt_init:[15,16],didt_other_advance_war_cri:[15,16],didt_other_ready_war_cri:[15,16],didt_other_retreat_ready_war_cri:[15,16],didt_other_retreat_war_cri:[15,16],didt_other_skirmish_war_cri:[15,16],didt_retreat_war_cri:[15,16],didt_second:[15,16],didt_senior_advance_war_cri:[15,16],didt_skirmish_war_cri:[15,16],die:15,diff:[15,46],differ:[0,3,4,7,8,9,10,14,15,23,33,34,35,36,37,38,39,40,41,42,43,45,46],differenti:15,difficult:[7,33,35,43,46],difficulti:45,difficultli:35,dig:[35,37,40],digit:[39,46],dimens:[15,37,46],dimension:15,diminish:15,direct:[15,16,37,38,46],directli:[7,15,32,35,36,37,38,39,41,46],directori:[8,15,42],disarm:35,discard:4,disciplin:40,disconnect:34,discov:[7,8,15,16,37,39,45,46],discoveri:[4,15,46],discuss:[35,46],disk:[],disord:15,disorgan:15,dispatch:[0,3,7,8,15,16,34,35,39,43],dispatch_graph_a1_s1:8,dispatch_graph_f1_s0:8,dispatch_graph_f1_s22:8,dispatch_to_all_empathi:15,dispatch_to_empathi:15,displai:[39,43,46],disprov:41,disregard:39,distanc:15,distil:38,distinct:[15,35],distinguish:[5,29,37,39,40,45],distort:4,distract:15,distribut:[15,35],div:[],dive:[],divid:[],do_noth:45,dobb:[34,42],doc:[34,35,38,42],doc_process:38,dock:[37,46],docstr:[8,46],document:[4,7,8,14,15,32,33,34,35,37,39,40,42,46],dodg:15,doe:[0,7,8,15,27,28,35,36,37,38,40,41,42,43,45,46],doesn:[4,5,7,8,10,15,34,35,36,37,38,39,40,41,43,46],dogfight:4,dogmat:4,doh:15,doing:[7,15,27,29,35,36,37,38,39,40,41,43,46],dollar:4,domain:46,domin:4,don:[7,8,10,11,14,15,26,34,36,37,38,39,40,41,42,43,44,45,46],done:[4,15,35,36,37,38,39,42,43,45,46],done_buzz_period_sec:46,doom:15,door:[9,35,37,46],door_clos:[9,35,37,46],door_closed_bak:35,door_closed_init:35,door_closed_off:35,door_closed_open:35,door_closed_toast:35,door_open:[9,35,37,46],door_open_clos:35,door_open_entri:35,door_open_exit:35,dot:[7,15,35,36,37,38,39,41,43,46],dotenv:15,doubl:[],doubt:15,dougla:4,dove:4,down:[11,15,34,35,36,37,38,39,40,43,45,46],downward:46,draconian:15,dragon:37,draw:[7,8,15,32,33,35,37,38,41,43,46],drawit:39,drawn:[8,34,37,38,46],dreari:40,drew:33,drift:[37,46],drill:[7,35],drink:[15,16,37,46],drive:[15,35,37,38,46],driven:[8,35,37,38,46],driver:46,drop:[4,15,27,37,38,39,40,46],drown:15,drum:15,drunk:[37,46],dry:[7,14,15,39,40,42],dtdakkeosog:[],dtype:[],due:[5,15,46],dumber:15,dump:[5,37],durat:[36,46],dure:[5,7,8,15,37,38,39],duti:[35,37,46],dynam:[5,15,27,35,36,39,40,43,46],e_funct:41,each:[0,4,5,7,8,14,15,16,26,28,29,34,35,36,37,39,40,41,43,45,46],ear:[37,46],earli:[33,46],earshot:15,earth:[37,46],easi:[7,15,28,32,33,35,36,37,38,39,40,41,43,45,46],easier:[4,14,15,25,35,36,39,40,45,46],easiest:[39,44],easili:[15,35,37,39],easy_bak:35,eat:[],eco1:[],eco2:[],eco:[],ecosystem:46,edg:[37,39,46],edit:[4,7,35,37,38,39,41],editor:[4,14,38,39,40,46],educ:43,edward:15,effect:[7,14,15,35,37,38,39,40,46],effort:[14,15,35,38,39,40,42,46],effortless:[],effortlessli:39,eight:[],einstein:38,either:[4,7,15,16,35,37,38,39,41,43,46],elabor:46,elaps:46,electr:[7,35,37],element:[7,8,9,35,36,37,46],elev:39,elif:[7,8,9,10,11,15,16,24,35,36,37,39,41,43,45,46],ellison:46,els:[7,9,10,11,15,16,24,34,35,36,37,39,40,41,43,45,46],elsewher:[34,39,46],email:[39,46],emb:38,embed:[4,8,35,36,38,39,40,46],emerg:[15,37],emit:34,emot:38,emotion:38,empath:15,empathet:15,empathi:[15,16],empathy_for_first_broth:15,empathy_nam:[15,16],emphas:[33,36,38],emphasi:[],employe:15,empt:7,empti:[15,43],enabl:[3,15],enable_snoop_spi:15,enable_snoop_trac:15,enact:[],enammour:[],enamor:33,enclos:[34,38,46],encod:34,encompass:15,encount:[4,15],encourag:[37,46],encrypt:[15,34,42],end:[0,7,15,26,29,35,36,37,39,40,43,46],enemi:[4,15,16],energi:35,energy_gener:35,energy_generation_init:35,engag:[15,46],engin:[4,8,15,35,40,45],english:[15,35,38,46],enjoi:[37,46],enlist:35,enough:[8,15,16,33,34,35,36,37,38,39,41,43,45,46],enrag:15,ensur:[0,15,32,34,36,39,45,46],enter:[8,11,15,16,32,35,36,37,41,42,43,46],enthusiast:[37,46],entir:[15,37,39,45,46],entireti:40,entiti:[],entri:[3,7,8,10,15,32,35,36,37,38,39,41,43,45,46],entropi:[],entry_sign:[5,7,9,10,11,15,16,24,25,26,27,32,34,35,36,37,39,40,41,43,45,46],enumer:[5,7,46],env:[15,42],env_path:15,enviro:[],environ:[15,42,46],envis:15,equal:[],equat:15,equip:[15,37,46],equival:[15,36,46],era:43,ergod:15,ergot:15,erlang:42,erron:15,error:35,escap:[15,35],especi:[15,35,37,46],essenc:35,essenti:[],estim:[],etc:[7,42,46],etho:46,evalu:[32,35,41],even:[11,15,35,36,37,39,42,43,45,46],event:[0,1,3,4,7,8,9,10,11,12,14,15,16,25,26,27,29,32,33,36,37,40,43],event_1:39,event_2:39,event_a:0,event_b:0,event_or_sign:0,event_reset_chart:43,event_wait_complet:43,eventu:[37,46],ever:[4,15,34,35,38],everi:[3,4,7,15,16,34,35,37,38,39,46],everyon:[15,35,37,38,40,46],everyth:[0,15,28,32,37,38,39,40,46],everywher:42,evid:[15,37,39,41,46],evolv:46,evt_a:38,exact:[27,39,40,46],exactli:[4,8,15,32,37,38,41,45,46],examin:[36,41,46],exampl:[0,2,3,5,7,8,17,26,27,28,29,30,33,35,37,38,39,40,41,42],examplestatechart:3,exce:[],excel:[37,42],except:[4,7,15,34,36,37,42,46],exception:15,exchang:[4,34],exchange_declar:34,exchange_typ:34,excit:[37,46],exclud:35,exclus:34,execut:[0,4,8,15,41],exercis:15,exert:15,exhaust:[36,38,43,46],exist:[5,7,15,36,37,38,46],exit:[0,3,7,10,15,32,34,35,36,37,38,41,42,43,45,46],exit_sign:[7,9,10,11,15,16,24,25,26,32,34,35,36,37,39,40,41,43,45,46],expand:[],expans:[],expect:[15,32,33,34,35,36,37,39,41,43,45,46],expected_empathy_target_trac:15,expected_empathy_trac:15,expens:[4,7,35,40,46],experi:[15,35,40,41],experienc:[15,35,39,45],experiment:15,expertli:15,explain:[0,14,15,32,33,35,39,41,46],explan:[34,44,46],explicit:[7,35,37],explicitli:[7,15,35,37,39,46],explor:[37,46],exponenti:40,expos:15,express:[4,5,15,36,38,39,46],extend:[7,8,15,34,35,45],extens:[5,7,10,39,42],extern:[0,7,15,35,36,37,38,39,46],extract:[35,39],extraordinarili:[37,46],extrem:[4,15,37,38,39,46],extrud:[],eye:[37,46],eyebal:[],eyes:[15,37,38,41,43,46],fabric:[1,7,32,39,43],fabric_task_ev:0,face:[15,37,39,40,44,46],facil:[35,43],facin:[],fact:[4,15,35,36,37,38,39,40,44,46],factor:[7,39],factori:[4,6,7,13,15,16,32,34,35,37,40,46],factory_class_exampl:[39,45],factory_class_recipe_exampl:39,factory_in_class:[],fad:38,fade:[37,46],fail:[8,27,35,39,40,46],fairli:[15,33,39],fake:[14,15,35,39,40,46],fake_black:[],fake_new:35,fake_transduc:35,fake_whit:[],fakenewsspec:35,fall:[37,39,46],fallaci:38,fallen:38,fals:[15,35,38,39,41,46],falsifi:44,fame:38,famili:15,familiar:[35,36,39,41],famous:4,fanout:34,far:[15,39,41,42,46],farc:46,fast:[15,35,37,38,46],faster:[15,39,46],fastest_tim:35,father:15,fathom:15,favor:[35,38],favour:15,fb11:32,fb1:32,fc1:[32,39,45],fc2:[32,39,45],featur:[7,8,14,15,33,34,35,37,38,39,40,46],fed:[15,35,46],feder:39,feed:[15,34,39],feedback:[4,15,37,46],feel:[4,15,34,35,36,37,41,46],feign:[15,16],feigned_retreat:[15,16],fellow:[37,46],fermet:34,fernet:34,few:[4,15,35,37,38,46],feynman:44,ff6d00:[],ff6doo:[],ffa501:[],ffff00:[],ffffff:[],ffmpeg:[],fiction:37,fidel:[15,46],field:[15,16,35,44],fifo:[0,7,11,15,32,36,38,46],fifo_queu:0,fifo_subscript:0,fig:[],fight:[15,39],fighter:4,figur:[15,32,35,36,37,39,42,43,46],file:[7,15,23,34,39,42,46],filenam:[],fill:[10,15,34,35,36,39,42],film:37,filter:[4,35],find:[2,4,7,8,15,33,35,36,37,38,39,45,46],findal:46,fine:40,finish:[7,15,35,36,37,38,39,46],finit:[7,38],fire:[10,11,15,16,35,36,37,39,43,46],firm:41,firmwar:[4,33],first:[0,5,7,8,12,14,28,29,34,35,36,37,38,39,40,43,44,45,46],first_brothers_nam:15,first_name_of_oth:15,firstscripttag:[],fit:[15,38,46],five:15,fix:[15,27,39,40,46],fixat:15,flank:15,flash:36,flashlight:33,flat:[7,15,35,45,46],flatten:[39,45],flavor:38,flexibl:[15,35],fli:[37,46],flip:46,float32:[],floor:36,flow:39,flower:[],floweri:[],fly:[37,39,46],fn_parent_state_handl:8,fn_state_handl:8,focu:[15,37,45,46],focus:[15,36],fodder:4,fog:15,folder:15,follow:[4,5,7,8,14,15,28,29,32,34,35,36,37,39,40,42,43,45,46],foo:3,food:[37,46],fool:[35,44],foot:38,footman:[15,16],footmen:15,footprint:46,forc:[4,15,35,43],forecast:37,foreign:[23,34],foreign_hsm:34,foreign_spy_item:34,foreign_trace_item:34,foreseen:15,forev:[0,26,39,40],forget:[36,41],forgot:32,fork:38,form:[7,15,34,35,39],formal:[4,7,15,33,35,36,37,38,39,40,45,46],format:[7,9,15,16,25,34,35,37,39,40,46],former:4,forth:[15,46],forward:[33,35,39],found:[2,3,6,8,15,35,37,42,43,46],foundat:46,four:[41,45],fowler:38,fr_entri:[15,16],fr_exit:[15,16],fr_other_retreat_war_cri:[15,16],fr_out_of_arrow:[15,16],fr_retreat_war_cri:[15,16],fr_second:[15,16],fragil:[15,38],frai:15,frame:[15,34,39,45],framebord:[],framework:[4,7,15,33,35,36,37,39,40,45,46],free:[4,15,35,39],freez:46,frequenc:36,fresh:35,fridai:38,friedrich:36,friendli:35,frighten:36,from:[0,3,4,5,7,8,9,11,14,15,16,23,25,26,28,29,32,33,34,35,36,37,38,41,43,45,46],from_list:[],front:[0,7,15,39,46],frustrat:[15,37,46],fsm:[7,38],fuck:4,fuel:[4,35],full:[0,3,15,16,26,27,33,34,35,36,37,39,40,43,46],fun:[8,9,10,11,15,16,24,35,36,37,39,41,43,45,46],funcanim:[],functool:34,further:[7,35,38],furthermor:[15,35],fusion:35,fusion_act:35,fusion_active_cool_enough:35,fusion_active_entri:35,fusion_and_heat_transf:35,fusion_and_heat_transfer_fir:35,fusion_reactor:35,fusionreactor:35,futil:[37,46],futur:[7,15,27,28,34,39,40,46],fuzzier:15,gain:[7,33,34,37,38],gallop:[15,16],game:38,ganbaatar:[15,16],gandbold:[15,16],gang:[14,39,40],ganssl:4,gantulga:[15,16],garbag:[5,8,46],garden:37,gather:39,gave:46,gaze:[37,46],gear:35,gearbox:35,gem:[],gener:[4,7,11,14,15,28,29,34,35,36,37,38,39,40,42,45,46],general_state_method:45,genghi:15,geniu:40,geometri:7,geopolit:43,gestur:[37,46],get:[4,5,7,8,15,25,28,35,36,37,38,40,41,42,43,45,46],get_100ms_from_timestamp:46,get_a_nam:15,get_composite_read:35,get_ip:34,get_my_m:46,get_nam:15,get_readi:46,get_ready_sec:46,get_temperature_read:35,get_weath:39,getelementbyid:[],getelementsbytagnam:[],getenv:15,getsocknam:34,gibberish:42,gift:4,gil:46,gist:[],git:15,give:[14,15,16,36,37,38,39,40,41,43,45,46],given:[0,7,8,11,12,15,25,29,32,35,36,37,39,40,45,46],glanc:[37,38,46],glee:4,global:[4,5,15,38,39,40,46],glossari:30,glow:37,glyph:[7,15,35,46],goal:[15,33,34,37,46],god:[37,46],goddess:[37,46],goe:[15,35,46],going:[8,15,34,35,36,37,38,39,44,46],gone:[11,34,39,46],good:[15,32,35,37,38,39,40,41,44,46],got:[14,15,35,36,38,39,40,41,42,43,46],gotten:[15,28,37,39,40,46],govern:[4,37],grab:[],grade:[],graffiti:39,grai:[],granit:15,grap:[],graph:[7,8,37,38,45,46],graph_e1_s1:8,graph_e1_s2:8,graph_e1_s3:8,graph_e1_s4:8,graph_e1_s5:8,graphic:[38,46],great:[4,14,15,32,35,37,39,40,42,46],greater:[4,15,36,39,43,46],greedi:0,green:[38,39],greeter:[37,46],grid:[],grind:40,grok:41,groov:[37,38],ground:[15,37],group:[15,33,46],grown:[],guarante:[4,5,15],guard:[7,38],guess:[15,37],guest:[37,42,46],guest_password:42,gui:[15,37,42,44,46],guid:[33,42],guidanc:[],guidenc:[],gun:[15,46],gusto:[37,46],gyroscop:[],hack:[6,32,37,39,46],hacker:41,had:[4,15,26,32,34,36,37,38,39,40,41,43,45,46],hadan:[15,16],hadn:4,hal:46,half:4,hall:46,halt:[15,16],hand:[4,7,15,37,38,39,41,45,46],handi:34,handl:[7,9,10,11,15,16,24,32,35,36,37,38,39,41,43,45,46],handler:[8,10,15,16,32,34,35,36,37,38,39,43,45,46],handwav:15,hang:[41,46],happen:[4,5,7,8,15,26,27,32,34,35,36,37,39,40,41,43,46],happi:[37,46],hard:[15,34,37,38,39,41,45,46],harden:46,harder:[15,38,45,46],hardli:45,hardwar:[4,38],harel:[4,7,15,33,35,36,37,38,39,40,45,46],harm:[4,15],has:[0,4,5,7,8,11,15,16,26,27,28,29,31,32,34,35,36,37,38,39,40,41,43,45,46],has_payload:[5,39],hasn:[0,3,5,7,11,15,37,39,46],hast:4,hate:[7,35],have:[0,2,3,4,5,7,8,11,12,13,14,15,25,26,27,28,29,32,33,35,36,37,38,41,42,43,45,46],haven:[4,15,29,34,35,36,37,38,39,40,41,42,43,46],hawk:4,hazard:38,head:[15,35,38,40,45,46],hear:[15,37,46],heard:[15,16,43],heart:[10,15,35,39],heartbeat:39,heat:[9,15,35,37,46],heater:[35,46],heater_off:[35,46],heater_on:[35,46],heating_element_off:[9,37],heating_element_on:[9,37],heating_entri:35,heating_exit:35,heating_st:46,heaven:[37,46],heavi:[4,15,35],heavili:[15,46],heed:4,heehaw:46,hei:[],height:[],heirach:[],held:[37,39,46],hello:[37,42,43,46],helmet:15,help:[4,15,33,35,37,38,40,43,46],helper:[8,46],helpless:15,her:[37,46],here:[2,3,4,5,7,10,11,15,26,27,29,32,33,34,35,36,37,38,39,40,41,42,43,45,46],herself:[37,46],hesit:39,heurist:15,hidden:[15,35,45],hide:[34,35,38,39,45],hierarch:[7,15,33,34,36,37,38],hierarchi:[7,8,15,34,36,37,38,39,41],high:[0,4,7,15,28,29,35,36,37,39,43,46],higher:[4,15,37,39,46],highest:[0,15,39],highli:[],highlight:[3,15,32,34,35,36,37,39,45,46],him:[4,15,16,35,37,46],himself:15,hint:[15,36],hire:4,his:[4,7,8,15,16,35,36,37,41,45,46],histor:[],histori:[9,15,37],hit:[11,15,35,39,42],hmm:41,hod:4,hold:[9,12,15,36,37,38,39,42,46],hole:[],holi:4,hollow:[37,46],hologram:15,holograph:15,home:15,honour:7,hood:46,hook:[3,7,15,26,27,36,37,38,40],hook_1:39,hook_2:39,hope:[4,15,36,46],hord:15,horizont:46,hornet:15,hors:[6,16],horsearch:[15,16],horseback:15,horsemen:15,horserarch:15,host:42,hostnam:42,hot:[32,37],hour:40,how:[1,3,4,7,8,10,14,15,16,24,26,29,32,33,34,35,36,37,38,41,42,43,44,45,46],howev:[5,8,34,35,36,37,44,45,46],href:[6,17,18,19,20,21,22,33,35,37,38,39,40,44,46],hsm:[0,1,3,7,15,16,33,35,37,38,39,45,46],hsm_queues_graph_g1_s01:0,hsm_queues_graph_g1_s1:0,hsm_queues_graph_g1_s2111:0,hsm_queues_graph_g1_s22:0,hsm_queues_graph_g1_s321:0,hsmevent:0,hsmeventprocessor:[8,35],hsmtester:3,hsmtoplogyexcept:35,hsmtopologyexcept:[7,8,35,39],hsmwithqueu:[15,16,34,35],html:[6,17,18,19,20,21,22,33,35,37,38,39,40,44,46],http:4,huge:33,hulagu:[15,16],human:[4,37,38,46],hung:15,hunt:15,hurri:36,hypothes:[],hypothesi:[],i_list:46,iaf:4,icon:[7,35,37,39,46],id_rsa:42,idea:[4,7,10,15,26,33,35,36,37,38,39,40,43,46],ideal:15,ident:45,identifi:[15,16,29,34,38,39,40,45,46],idiom:38,idiot:4,idl:35,idle_data_readi:35,idle_entri:35,idle_new_request:35,ids:36,ifram:[],iframe_api:[],ignor:[0,5,7,11,15,16,35,36,37,38,39,41,43,46],ihbarhasvad:[15,16],iir:35,ill:38,illeg:[7,35,41,42],illus:[4,45],illustr:46,imag:[7,14,15,37,39,40],imagin:[7,15,35,37,41,46],immedi:[4,12,15,16,26,35,38,39,40,46],immut:[5,38,39,46],impati:15,impedi:39,implement:[15,33,35,36,37,39,41,45,46],implemt:[],implicit:[],implment:7,importantli:[4,41,45],importerror:46,impos:15,imposs:35,imprecis:15,impress:[4,39],improv:[15,46],impuls:35,inabl:15,inadvert:38,inbox:15,incent:4,incid:[],incircl:7,includ:[3,15,33,37,38,39,42,46],incompet:15,incomprehens:15,inconveni:[3,35],incorpor:38,incorrect:[],incorrectli:[7,15],increas:[7,15,35,40,46],incred:[],increment:[15,35],independ:[15,35],index:[8,30],index_and_time_delai:39,indic:[7,8,29,35,39,40,46],indirect:45,individu:[15,16,34,35,36],industri:[4,36],ineffici:[],inevit:[35,40],inexpens:[14,39,40],infect:[],infer:41,infinit:[4,7,10,15,26,35,39,40],inflex:15,inform:[0,4,7,9,15,23,26,28,32,35,36,37,38,40,43,45,46],infra:[],infract:41,infrastructur:[33,39,42],infrequ:39,inherit:[0,7,8,15,34,35,36,37,39,43,46],init:[3,5,7,8,11,32,35,36,37,38,39,43,45,46],init_func:[],init_sign:[7,9,10,11,15,16,24,25,26,27,32,34,35,36,37,39,40,41,43,45,46],initi:[7,8,15,35,36,38,41,43,46],initial_condition_index:[],initial_st:8,initial_valu:35,inject:[7,15,34,35,39,45],inner:[7,10,11,15,26,35,36,37,39,40,43,46],inner_most:39,inner_st:35,innner:36,innocu:[15,45],innov:[4,15],input:[7,15,34,35,36,38,39,46],insert:15,insertbefor:[],insid:[7,15,34,37,46],insight:4,inspect:[32,35,46],inspir:35,instal:[15,30,33,34,46],instanc:[7,15,27,34,38,39,40,43,45,46],instanti:[35,38,39,45,46],instati:[],instead:[0,5,10,15,33,34,35,36,37,38,39,40,43,45,46],instruct:[15,33,41,42],instructor:4,instrument:[0,6,7,9,15,26,29,32,34,35,36,38,39,40,43,44,45,46],instrumentation_line_of_match:46,insur:46,intact:15,intang:15,integ:15,integr:[15,46],intellig:15,intend:[4,7,15,34,35,37,39,46],intent:[15,35,38,39,46],interact:[3,4,6,8,14,15,33,36,37,39,40,43,46],intercept:35,interconnect:[37,46],interest:[4,15,32,34,37,46],interfac:[5,15,34,37,39,46],interleav:[14,39,40,46],intermedi:[38,46],intern:[0,5,6,7,15,17,18,19,20,21,22,26,33,35,37,38,39,40,43,44,46],internet:[34,39,42],interplai:43,interpret:[38,39,46],interrel:46,interrupt:[4,35,38,43],interv:[],intervent:40,intial_condition_index:[],intimid:[37,46],intric:15,intrins:37,introduc:[15,26,34,35,39,40,46],introduct:[30,37,42],introspect:[15,16],intuit:[15,39],invent:[4,7,15,33,35,37,38,39,46],invers:[4,36,37,45,46],invert:8,invest:[38,46],investig:36,involv:[15,32,35,46],inward:46,iot:33,ips:[15,16],is_fil:15,is_in:8,is_this_piston_readi:35,ish:15,isn:[4,5,12,15,16,37,38,39,43,46],isol:[40,46],isra:4,issu:[7,15,16,27,28,34,35,37,39,40,43,45,46],item:[0,5,7,8,15,16,25,29,34,35,36,37,39,40,41,43,46],iter1:[17,18,46],iter2:[18,19,46],iter3:[19,20,46],iter4:[20,21,46],iter5:[21,22,46],iter6:[22,46],iter:[15,35],its:[0,3,4,7,8,14,26,29,32,33,35,36,37,38,39,40,42,43,45,46],itself:[7,15,34,35,36,37,38,39,40,41,43,45,46],jack:4,jacket:46,java:46,javascript:4,jersei:4,jet:4,jinja2:[7,42],jinja:7,jitter:46,job:[28,36,37,39,40,42,46],john:33,join:[15,37,38,46],joke:15,journal:36,journei:[37,46],json:[4,5,46],json_ev:5,juggl:46,jump:[8,15,36,37,46],junior:15,jupyt:46,just:[4,5,8,10,15,25,27,28,32,34,35,36,37,38,39,40,41,42,43,45,46],kai:[33,39],keep:[0,8,15,33,34,35,36,37,38,39,41,42,45,46],kei:[4,15,25,32,34,37,39,40,42],kept:[35,37,46],keygen:42,keyword:37,khan:15,kill:[0,4,15,36,39,43,46],kind:[7,12,15,35,36,37,38,39,43,46],knew:[34,35,37,43,46],knight:[15,16],know:[4,7,8,10,11,14,15,32,33,34,35,36,37,38,39,40,41,42,43,45,46],knowabl:46,knowledg:[15,46],korean:15,kwarg:[5,8],label:[8,14,36,39,40,43],laberg:35,lac:8,lack:[15,44],lag:15,lai:[36,37,46],lame:46,lamp:35,lamp_off:35,lamp_on:35,lan:15,lanchart:38,land:[37,46],languag:[4,7,15,33,35,37,38,39,42,45,46],lanreccechart:38,larg:[7,8,15,35,38,39,43],larger:[4,15],larri:46,last:[0,7,15,32,35,37,39,43,45,46],last_brothers_nam:15,lastli:37,late:[4,46],latenc:46,later:[8,15,34,35,36,37,39,46],latest:[4,15,39],latex:40,law:[4,37,46],layer:[15,37,39,45,46],lazi:[37,46],lca:[8,37,46],lead:[15,35,46],leader:15,leadership:[4,15],lean:[15,37,46],leap:39,learn:[4,6,7,15,32,33,35,37,38,39,43,46],least:[8,15,35,37,42,45,46],leav:[3,7,8,11,15,35,36,37,38,39,43,46],left:[7,15,16,34,37,38,45,46],left_wal:[],leftmost:0,legend:46,legibl:[15,37,46],leisur:15,len:[15,25,34,39,40],length:8,less:[15,16,35,37,39,43,45,46],let:[4,9,15,16,32,33,34,35,36,37,38,39,41,43,45,46],level:[4,7,15,28,29,35,36,37,39,43,46],lib:[],librari:[1,4,7,15,31,32,33,35,36,37,38,39,42,43,45,46],licenc:[],lie:15,life:[35,39,46],lifetim:[4,44],lifo:[0,7,11],lifo_queu:0,lifo_subscript:0,light:[9,15,33,37,38,41,46],light_off:46,light_on:46,like:[4,7,8,10,11,12,14,15,25,26,28,29,32,33,34,35,36,37,38,39,40,41,43,45,46],likewis:[15,37,38,43,46],limbo:41,limit:[8,15,34,37,38,46],limp:38,line:[7,15,27,28,29,32,34,35,36,38,39,40,41,43,45,46],linear:15,linearsegmentedcolormap:[],lineno:[],ling:[],linger:15,link:[15,32,33,35,36,37,39,40,42,43,45,46],lint:4,linux:[34,46],lion:33,lip:[],liquid:35,list:[0,5,8,15,16,35,36,37,41,46],list_spi:46,listen:[15,34,39],listless:[37,46],liter:45,lithium:35,litter:37,littl:[4,14,15,32,35,36,37,38,39,40,41,46],live:[4,7,15,34,35,37,46],live_spi:[15,34,37,39,40,46],live_trac:[9,15,34,37,39,40,46],load:[5,15,16,37,41,46],load_dotenv:15,lobotom:15,local:[7,15,16,34,35,38,42],local_consum:34,localconsum:34,localhost:42,locat:[0,7,8,15,34,35,37,39,46],lock:[0,4,15,38,40,46],lockhe:4,lockingdequ:0,log:[7,10,15,24,26,29,35,36,37,38,39,40,41,42,43,45,46],logic:[15,39,41,46],login:42,longer:[15,35,37,38,41,46],look:[4,7,11,15,27,28,29,32,33,34,35,36,37,38,39,40,41,42,43,45,46],lookuperror:39,loop:[0,14,15,36,39,40,43,46],loos:[7,15,35],loosen:15,lorenz:15,lose:[15,40,46],loss:15,lost:[15,33,45],lot:[4,7,14,15,32,35,36,37,38,39,40,42,43,45,46],lotteri:37,loud:15,love:[35,37,38,46],low:[15,16,36,39],lower:[0,4,15,37,39,46],lowest:[39,46],luck:[4,37,46],lure:[15,16],mac:[],machin:[5,6,7,9,15,23,33,34,35,36,37,38,39,41,42,46],machine_cl:[],macho:39,made:[4,7,15,32,35,37,38,39,42,45,46],magnet:35,mai:[15,37,39,40,46],maim:15,main:[0,9,15,34,36,37,39,46],mainli:15,maintain:[4,15,34,38,45],mainten:[4,45,46],maintenc:7,major:4,make:[4,5,7,9,10,12,14,15,16,25,32,33,35,36,37,38,39,40,42,43,45,46],make_and_start_left_wall_machin:[],make_and_start_right_wall_machin:[],make_generation_coroutin:[],make_test_spec:46,make_unique_name_based_on_start_at_funct:0,malevol:15,malform:8,man:[4,15],manag:[0,3,4,7,15,28,32,36,37,38,39,40,41,42,43,45,46],mandatori:8,maneuv:[15,16],mani:[4,7,10,15,27,35,36,37,38,39,40,42,43,46],manifest:[7,33,39,46],manipul:[37,38],manner:[7,39,40,46],manoeuvr:15,manual:[14,35,39,40],manufactur:7,map:[7,9,15,16,28,32,37,38,39,40,45,46],marbl:[37,38,39],march:[37,46],marcu:[],margin:[],mari:[5,37,39,46],mark:[10,14,15,32,35,36,37,38,39,40,42,46],markdown:40,marker:[37,39],market:[15,37],markup:[7,39],marshal:[15,16],marshal_entri:[15,16],marshal_readi:[15,16],martin:[4,38],marvel:[37,46],mass:[4,15],massiv:[15,37],master:35,match:[15,37,46],materi:43,math:[],mathemat:15,mathematica:[],mathematician:33,matlab:[],matplot:[],matplotlib:[],matrix:[],matter:[5,15,46],max:[25,39,40],max_index:8,max_name_len:[25,39,40],max_number_len:[25,39,40],maxim:15,maximum:[8,35],maximum_arrow_capac:[15,16],maxlen:[0,39],mayb:[15,35,37,38,41,46],mba:15,meali:[7,38],mean:[4,7,8,15,25,26,33,34,35,36,37,38,39,40,41,43,45,46],meaning:[15,39],meaningless:[37,46],meant:[7,15,43],meanwhil:46,measur:[7,35],meat:15,mechan:[4,15,35,38,40,46],media:[],mediev:15,meet:[15,34,37,46],member:[15,37,46],memori:[4,15,26,33,35,37,39,40,45,46],men:15,menac:15,mental:[15,37,46],mention:[36,43,46],merv:[37,46],mesh_encryption_kei:15,mess:46,messag:[0,7,11,14,15,24,35,37,39,40,46],met:[35,46],meta:46,metal:35,metaphor:[15,36,37,46],metaprogram:[39,45],method:[0,3,5,7,8,9,15,24,25,29,32,34,35,36,37,38,40,41,43,46],michel:35,micro:15,micromanag:[15,46],microsoft:[37,40],middl:[4,10,11,26,36,39,40,41,43],might:[4,7,11,15,26,27,28,34,35,36,37,38,39,40,45,46],militari:[4,15],millisecond:46,mind:[38,41],mine:37,minecraft:7,miner:[9,37],mingu:[],mini:[],minim:[15,42,46],minimalist:46,minimum:35,minion:[37,46],minor:[],minut:[15,38,46],miracl:15,miro:[1,3,4,7,8,9,15,16,25,26,28,31,32,33,34,35,36,37,39,40,41,43,44,45,46],miros_rabbitmq:15,mirror:15,misbehav:46,miss:[15,37,38,43,45,46],mistak:[15,33,38,46],mistakenli:15,mix:35,mixtur:[37,39],mkdir:42,mnemon:[8,37,38,46],mobil:15,mock:46,mockup:[],mode:[3,35,46],mode_control:3,model:[7,33,35,36,37,38],model_control:3,moder:40,modern:15,modifi:35,modul:[1,30,45],modular:46,modulo_bas:46,molten:35,momen:7,moment:[0,15,35,37,39,45,46],momentarili:39,momentum:33,monei:[4,40,46],mongol:6,monitor:[4,15,23,34,37,39,46],month:4,moor:[7,38],moot:40,mordecai:4,more:[0,4,6,7,8,15,29,32,33,34,35,36,37,38,39,40,41,43,45,46],moreov:41,most:[4,8,15,32,33,35,36,37,39,42,46],mostli:[34,39,42,46],motiv:[37,46],mount:15,mous:38,mouse_click:38,mouse_click_evt:38,mousecoordin:38,move:[2,8,15,34,36,37,38,39,41,43,46],movement:[15,33,46],movi:[],mp4:[],much:[4,7,8,15,35,38,39,41,45,46],mud:15,multi:[7,10,15],multi_shot_thread:[10,36,39],multipl:[15,29,34,35,37,38,40,42,45,46],multishot:[7,46],multitask:4,multithread:[],multivers:[37,46],munger:46,must:[5,7,8,15,34,36,37,39,43,44,46],mutabl:38,mute:3,mutex:4,mutual:8,my_ev:38,my_event_with_payload:38,my_hook:39,mypayload:39,myself:[15,41,46],n_angl:[],n_mask:[],nag:41,nai:[],name:[0,4,5,7,8,10,13,15,16,25,29,32,33,34,35,36,37,38,40,41,42,43,45,46],name_for_sign:[5,25,39,40],name_of_item2:39,name_of_item_1:39,name_of_item_2:39,name_of_sign:39,name_of_subclass:5,namedtupl:[38,39,46],namespac:36,nametupl:46,napkin:33,napoleon:15,narankhuu:[15,16],narantuyaa:[15,16],narrow:[],nassim:[32,41],nasti:[39,46],nativ:[],natur:[5,35,38,39,41,44],navig:[8,35],nearbi:46,neat:34,necessari:15,necessarili:[],neck:[15,46],need:[0,4,7,8,10,11,14,15,26,27,32,33,34,35,36,37,38,39,40,41,42,43,45,46],needlessli:[11,39],neg:46,neighbor:[],neither:39,neovim:4,nergui:[15,16],nervou:[15,37,46],ness:15,nest:[7,15,16,32,34,35,39,45],net:8,netscap:4,network:[5,8,14,16,33,39,40],networked_horse_arch:15,networkedactiveobject:15,networkedfactori:15,never:[4,15,33,35,36,39,46],new_machin:[],new_nam:46,new_named_attribut:5,new_request:35,newest:35,newli:[34,42],newlin:34,next:[6,7,15,16,17,18,19,20,21,22,27,31,33,35,36,37,38,39,40,41,43,44,45,46],next_gener:[],next_rtc:0,nice:[38,45,46],nichola:[32,41],nietzsch:36,no_ack:34,noam:42,nobodi:[15,37,46],node:[15,34,45],noisi:15,non:[9,37,39,40,46],nondetermin:4,none:[0,5,7,8,9,15,16,32,34,35,36,37,39,41,43,45,46],nonexist:46,nonsens:34,noob:[],normal:3,norman:4,north:15,not_wait:[15,16],note:[15,34,37,39,41,46],noth:[0,3,4,7,35,36,37,38,39,43,44,46],nothing_angl:[],nothing_at_row:[],nothing_mask:[],notic:[7,14,15,29,35,36,37,38,39,40,41,45,46],notifi:[15,46],notion:15,now:[4,8,11,14,15,32,34,35,36,37,38,39,40,41,42,43,45,46],nuanc:39,nuclear:35,number:[5,7,10,14,15,25,26,29,32,35,37,38,39,40,43,46],numer:15,numpi:35,nutshel:46,nvu8m8a73jg:[15,34],oadp1sh69j:[],obei:15,obj:5,object:[1,4,5,6,7,8,10,14,15,25,26,27,28,29,32,33,35,36,37,38,40,41,45,46],oblivion:[37,46],obscur:4,observ:41,obtain:[14,34,39,40],obviou:[15,32],obvious:37,occur:[7,8,15,26,29,35,36,37,39,40,43,46],occurr:38,od647c:[],oddli:[37,46],off:[9,11,12,15,35,36,37,38,39,45,46],off_entri:35,offer:[34,46],offic:[15,16],officer_lur:[15,16],offset:46,often:[7,15,35,38,39,46],oha:[15,16],oha_1:15,old:[0,15,26,37,39,40,43,45,46],old_left_machin:[],old_machin:[],old_right_machin:[],oldest:[7,35,36,39],onc:[5,7,8,10,15,16,26,33,35,36,37,39,40,42,43,46],one:[0,4,5,7,8,10,11,12,14,15,17,23,29,33,34,35,36,37,38,39,40,42,43,44],onedcellularautomatawithanglediscoveri:[],onedcellularautonomata:[],ones:45,oneshot:46,onli:[0,4,8,10,13,15,28,29,31,33,34,35,36,37,38,39,40,41,42,43,46],onlin:39,onplayerreadi:[],onplayerstatechang:[],onreadi:[],onstatechang:[],onto:[0,4,7,14,15,32,34,35,36,37,38,39,40,42,46],onyoutubeiframeapireadi:[],onyoutubeplayerapireadi:[],oop:41,open:[9,35,37,38,39,42,46],oper:[4,7,15,35,37,43,46],oppon:15,opportun:[15,45,46],oppos:[4,15],opposit:[4,15],optim:[],option:[7,8,15,37,38,39,42,46],orang:[],orb:[37,46],order:[7,15,16,35,37,40,41,46],ordereddict:5,ordereddictionari:[25,39,40],ordereddictwithparam:5,organ:[6,35,37,40,45,46],orient:[33,35,38],origin:[0,7,11,15,35,39,41,45,46],orthogon:[3,7,15,46],oscil:15,oscilloscop:46,other:[0,4,7,8,10,14,15,16,25,26,27,32,33,34,35,36,37,38,42,43,44,45,46],other_advance_war_cri:[15,16],other_archer_nam:15,other_arrival_on_field:15,other_inner_most:39,other_ready_war_cri:[15,16],other_retreat_ready_war_cri:[15,16],other_retreat_war_cri:[15,16],other_skirmish_war_cri:[15,16],otherhorsearch:[15,16],otherwis:[7,8,15,27,35,39,40,41,45],our:[0,4,8,9,11,12,27,28,32,33,35,36,37,38,39,40,42,43,44,45,46],ourselv:[15,35,39],out:[0,4,5,7,8,9,12,15,16,26,28,32,34,35,36,37,38,39,40,41,42,43,45,46],out_of_arrow:[15,16],outcom:4,outer:[7,10,11,15,26,35,36,37,38,39,40,43,46],outer_st:35,outermost:[37,39,46],output:[0,7,8,14,15,25,26,27,28,29,32,35,36,37,38,39,41,43,45,46],outsid:[7,8,11,12,15,16,35,36,37,38,39,41,43,46],outsourc:37,outward:[7,8,15,35,37,38,39,46],outweigh:46,oval:46,oven:[9,35,38],oven_off:5,over:[0,3,4,7,8,15,27,28,32,34,35,36,37,38,39,40,41,42,45,46],over_off:5,overal:[15,33],overflow:[34,35],overli:39,overload:35,overrid:35,overtak:[],overwhelm:[15,36],overwrit:[35,40],overwritten:[8,36],own:[2,4,7,15,33,35,36,37,38,39,41,42,45,46],p27:[],pack:[4,15,32,38,39,43,45,46],packag:[7,15,33,37,38,39,46],packet:38,pact:[],page:[4,15,30,32,38,41,42,46],paglia:43,pai:[3,4,15,32,35,36,38,39,46],paid:4,pain:[4,42],paint:[37,46],pair:46,pale:4,pantri:35,paper:[7,35,36,39,43],paradigm:36,paradox:15,paragraph:[43,46],parallel:[36,39,40],paramet:[5,34,46],parameter:46,parameteriz:[],parametr:15,paramount:15,parent:[7,8,15,16,32,34,35,37,43,45,46],parent_callback:[7,45],parent_state_of_this_state_method:39,parentnod:[],pariti:5,pars:[39,46],parsimoni:39,part:[0,3,8,9,10,15,16,33,34,35,36,37,38,39,41,42,43,45,46],partial:39,particip:[15,40,46],particular:[4,39,40],particularli:[37,41,46],pass:[5,7,11,15,16,34,35,36,37,38,41,43,46],passphras:42,password:42,past:[14,37,39,40,41],patch:38,path:[7,8,15,37],pathlib:15,pathwai:15,patient:[37,46],pattern:[3,6,7,15,30,34,36,37,38,39,43,44,46],paus:[],payload:[5,7,15,16,29,32,35,37,40],pcolormesh:[],pdb:[27,39,40],pdf:[37,46],peachi:[28,39,40],pedant:4,pencil:39,pend:[0,5,15,28,37,39,40,43,45,46],pending_on_piston:35,pending_on_pistons_timeout:35,pending_optimal_condit:35,pentagon:4,peopl:[4,15,33,35,37,38,46],pepper:[15,36,37,38,46],per:[7,15,16,36,44,46],percent:[4,15,16,46],perfect:[15,39],perfectli:[],perform:[4,8,15,16,33,35,36,37,38,41,42,45,46],peril:[4,37],period:[0,7,10,11,15,16,35,36,39,46],peripher:15,permiss:[41,42],permit:[15,37,46],permut:[],pernici:39,perpetu:[],persist:46,person:[15,33,37,38,41,44,45,46],peter:[15,46],pgn:[],phase:[39,43,46],phenomenon:15,philosoph:41,philosophi:46,phoenix:43,phrase:[37,46],phsysic:[],physic:[7,35,37,46],pic:34,pick:[4,15,37,46],pickl:5,pico:42,pictur:[14,15,32,33,34,37,38,39,40,43,44,46],piec:[4,37,43,46],pierr:[4,32],pigment:[],pika:[34,42],pilot:4,pin:46,pioneerrequest:39,pioneerrequestspec:39,pip3:34,pip:[31,46],piston:35,piston_1:35,piston_:35,piston_act:35,piston_manag:35,piston_numb:35,piston_readi:35,piston_slam:35,pitch:38,pivot:46,place:[0,3,7,8,12,14,15,28,32,34,35,36,37,38,39,40,42,43,45,46],plai:[3,15,37,39,46],plain:[7,15,38],plain_text:34,plaincredenti:34,plan:[15,35,43,46],plane:4,planet:4,plant:37,plasma:35,plastic:37,plate:46,platform:[34,37,46],playbook:42,player:37,player_api:[],playerstatu:[],playvideo:[],plenti:15,plod:15,ploi:37,plot:[],plt:[],pluck:15,plugin:[15,33,38,39],png:[],pocket:46,point:[4,7,8,14,15,16,27,28,33,35,37,39,40,43,46],pointless:[33,37,46],pole:35,polici:[15,35],poll:35,polling_ent:35,polling_init:35,polling_process:35,polling_time_out:35,polling_time_out_hook:35,polyamor:[35,39],poni:15,pool:[7,35],pop:[0,4,7,37],popleft:39,popul:8,popular:38,port:[4,7,33,34,35,36,37,39,42,46],portabl:46,portal:[37,46],portion:33,posit:[35,37,46],possess:41,possibl:[8,15,34,35,39,40,42,46],post:[0,5,6,7,11,12,15,26,32,35,38,40,43,45,46],post_act:3,post_def:[26,27,35,36,39,40],post_fifo:[0,7,9,10,11,15,16,26,32,34,35,36,37,39,40,41,43,45,46],post_id_1:0,post_id_2:0,post_lifo:[7,10,35,37,39,46],postul:4,potato:46,power:[4,15,35,37,40,46],practic:[4,7,8,32,35,37,38,41,46],practition:35,pragmat:38,pre:[7,15,28,39,40,45,46],pre_time_sec:46,preced:[],precis:[15,46],predatori:[],predefin:[37,46],predetermin:[15,35,46],predica:15,predict:[],preemption:4,preemptiv:4,prefer:15,prefix:15,preform:46,prei:15,preliminari:46,prematur:15,prepar:15,prepend:46,prepend_trace_timestamp:46,preprocessor:45,present:[4,7,15,35,43,46],press:[14,37,39,40,46],pressur:[12,35,39],presum:46,pretend:[15,35,36,46],pretti:[15,26,27,37,39,40,41,42,45,46],prev:[6,17,18,19,20,21,22,31,33,35,37,38,39,40,44,46],previou:[3,15,36,37,43,45,46],previous:[15,36,37,43],previous_gener:[],price:[36,38,39,46],prim:0,prime:[15,35],princip:43,principl:[14,39,40,44],print:[0,3,5,7,9,15,16,25,26,27,28,32,34,35,36,37,39,40,43,45,46],print_msg:[37,46],printer:[26,39,40],prion:[],prior:[5,7,11,32,34,35,36,39],priorit:[],prioriti:[0,4,7,15,32,39,46],priorti:[0,7],privat:42,privileg:36,probabilist:39,probabl:[14,15,35,36,37,38,39,40,46],problem:[4,7,15,28,33,35,37,38,39,40,41,42,45,46],proce:[15,37,46],procedur:42,process:[4,5,7,8,10,12,15,16,26,33,34,35,36,37,38,39,40,42,43,45,46],process_a_gener:35,process_a_specif:35,process_b_gener:35,processing_count:35,processing_entri:35,processing_exit:35,processing_init:35,processing_pol:35,processor:[4,7,8,15,26,33,34,35,36,37,39,40,41,43,45,46],produc:[7,15,23,35,36,38,46],producer_192:34,producer_out:34,producer_outer_b:34,producer_outer_init:34,product:[35,37,40,46],profession:35,profil:[],profit:4,program:[3,4,6,7,8,9,14,25,27,28,33,35,36,37,38,39,40,42,43,45,46],programat:40,programm:[15,33,35,46],progress:46,prohibit:[37,46],project:[4,15,29,35,37,39,40,46],promis:33,prompt:42,proof:[17,18,19,20,21,22],propag:[35,46],properli:[7,15,38,39,45],properti:[7,15,34],prophet:32,propos:35,protect:[4,15,46],protocol:46,prototyp:[35,38,46],protractor:[],prove:[15,46],proven:[4,46],provid:[0,4,5,7,8,10,15,25,32,33,34,35,37,38,39,40,42,43,45,46],pseudo:[],pseudost:[7,35,37,38,46],psycholog:[40,41],pub:[0,32,34,37,42,46],publish:[0,4,7,15,32,33,34,42,46],publish_bb:32,publishing_ao:39,pull:[4,5,15,16,33,36,37,41,43,46],puls:[35,46],pump:[15,35,36],purchas:4,purpl:[],purpos:[23,34,35,39,42,46],pursu:[4,15],pursuit:41,push:[0,15,35,41,45,46],put:[0,15,16,35,36,37,38,39,40,41,46],puzzl:[37,46],pycrypto:34,pydotenv:15,pyplot:[],python3:46,python:[3,4,7,15,25,31,33,34,35,37,38,39,40,41,42,45,46],qai9iicv3fkbfruakrm1gh8w51:[15,34],quad:46,quantum:[36,39],quarri:15,quarter:15,queri:[3,39,43,46],question:[14,15,17,18,19,20,21,22,32,37,39,40,45],queu:[3,26,27,32,33,34,35,36,37,39,40,41,43,45,46],queu_depth:[],queue:[0,7,12,15,32,34,35,36,37,38,39,42,43,46],queue_bind:34,queue_declar:34,queue_depth:39,queue_typ:[0,39],quick:[30,38],quicker:[],quickli:[15,33,36,38,40,46],quickstart:46,quieter:15,quit:[15,34,35],quiver:15,quot:[4,35],rabbit123:42,rabbit567:15,rabbit:[15,34,35,42],rabbit_guest_us:15,rabbit_heartbeat_interv:15,rabbit_instal:42,rabbit_nam:42,rabbit_password:[15,34,42],rabbit_port:15,rabbit_producer_192:34,rabbit_us:[15,34],rabbitfactori:15,rabbitmq:[15,33,38,39],rabbitproduc:34,race:[4,15,39],rage:38,raid:37,rain:[15,39],rais:[7,8,37,39,46],ran:[23,33,34,35,36,39,43,45,46],randint:[15,16,39],random:[15,16,34,35,39],random_numb:35,randomli:46,rang:[4,15,35,46],rank:15,rap:46,rare:[37,46],raspberri:[15,23,34,42,46],rate:[4,35],rather:[7,15,35,36,37,39,40,46],ratio:[],ravel:[],raw:[],reach:[7,15,35,36,37,39,46],reachabl:34,react:[3,7,11,15,26,35,36,37,38,39,40,43,45,46],reaction:[7,12,15,35,36,38,39,43,46],reactiv:[35,37,38,43],reactor:35,reactor_on:35,reactor_on_entri:35,reactor_on_init:35,reactor_on_prim:35,reactor_on_time_out:35,read:[4,7,8,15,25,26,35,36,37,38,39,40,42,43,45,46],readi:[15,16,27,35,36,39,40,41,46],real:[4,15,34,35,37,38,46],realiti:[15,41],realli:[4,15,33,35,37,38,39,41,43,46],rearm:36,reason:[5,15,29,34,37,38,39,40,42,43,46],rebuild:[27,39,40],recal:[7,12,26,35,36,40],receiv:[7,15,25,26,32,34,35,36,37,38,39,40,41,42,43,46],receiving_entri:35,receiving_receiv:35,recent:[35,37],recip:[30,36,40],reckless:33,recogn:[15,36,38],recommend:[4,34,39,40,42,43],reconnect:34,reconsid:[35,45],reconstruct:4,record:[37,46],rectangl:[15,37,39,41,43,46],recurs:[15,35,36,37,38,46],red:[9,37,38,39,46],red_light_off:[9,37],red_light_on:[9,37],redesign:35,redraw:35,reduc:[7,15,40,46],reduct:[],redund:[15,46],reef:[],ref:[],refact:7,refactor:[15,33,35,38],refer:[6,8,15,17,18,19,20,21,22,26,32,33,34,35,36,37,38,39,40,42,43,44,46],referenc:[7,8,14,15,37,38,39,40,46],refil:15,reflect:[7,15,25,30,33,35,36,37,39,43],reflection_sign:[25,39,40],refocu:15,refrain:[],refresh:[37,46],regard:[35,36,46],region:[7,15,35,37,38,46],regist:[34,39],register_live_spy_callback:34,register_live_trace_callback:34,register_par:[39,45],register_signal_callback:[39,45],registr:45,registri:0,regress:[15,28,39,40,46],regroup:15,rejoic:[37,46],rejoin:[37,46],rel:[7,46],relai:[37,38,46],relat:[4,7,8,15,34,35,36,37,38,39,45,46],relationship:[7,8,38,39],relax:[35,37,46],releas:[4,7,35,37,38,46],relentlessli:46,relev:35,reli:[15,35,46],reliabl:46,reliev:[12,39],religi:4,relinquish:46,reload:15,reluct:40,remain:[15,35,43,46],remark:[4,15],remedi:[],rememb:[4,15,35,36,37,38,39,41,43,46],remidi:7,remind:[7,15,42,46],reminder_pattern_needed_1:35,reminder_pattern_needed_2:35,remov:[15,28,34,35,37,39,40,45,46],renam:45,render:[15,38],rendit:36,reorgan:15,repeat:[7,10,35,37,38,39,43,45,46],repeatedli:36,repetit:[15,46],replac:[14,15,34,37,39,40,42,46],replic:[14,39,40],repo:2,report:[35,37,39,46],repost:[12,39],repres:[7,8,14,15,35,36,37,39,40,43,46],represent:38,reproduc:46,request:[0,35,39,46],requir:[5,8,15,32,35,36,37,38,39,42,43,45,46],reset:39,resetchart:43,resettact:15,resist:15,resolut:15,resourc:[4,15,37],respect:[15,46],respond:[7,15,16,32,36,37,39,40,43,45,46],respons:[15,35,37,39,43,46],rest:[15,34,35,36,37,39,43],restart:0,restor:43,restructuredtext:46,resubscrib:34,result:[15,16,27,28,34,35,36,37,39,40,43,45,46],resulting_funct:45,resurrect:43,ret_sup:5,ret_super_sub:5,ret_zz:5,retir:4,retreat:[15,16],retreat_ready_war:15,retreat_ready_war_cri:[15,16],retreat_war_cri:[15,16],retriev:[],return_st:[35,39,46],return_statu:[9,15,16,24,25,32,35,37,39,40,41,43,45,46],returncod:5,returnstatussourc:1,reus:35,reusabl:35,reveal:[4,15,39,41],rever:[37,46],revis:42,rewind:43,rich:[4,46],richard:44,richest:4,richli:[],rid:46,ride:[15,32],right:[4,7,15,34,35,37,38,41,45,46],right_wal:[],rightfulli:38,rigid:35,rigor:[4,15,46],ring:[7,26,35,39,40,46],risk:15,ritual:[37,46],robust:[15,33,34],roll:[37,38,39],roman:[],ronach:7,room:[26,38,39,40],root:[],rosetta:[37,46],rotat:[15,35],rough:46,roughli:[4,46],round:[37,39,46],rout:[15,34,42],routin:[8,35,45],routing_kei:34,row:45,row_to_check:[],rpc:42,rtc:[0,4,7,8,26,35,37,38,39,40,43,46],rubbl:[],rubi:46,rule:[4,7,15,32,33,37,38,43,46],rule_30:[],rule_30_black_walls_200_gener:[],rule_30_white_walls_100_generations_width_30:[],rule_30_white_walls_200_gener:[],rulebook:37,run:[0,3,4,7,8,9,14,15,23,24,26,27,28,32,33,34,35,36,37,38,39,40,42,43,45,46],run_anim:[],run_ev:0,runtim:39,rush:[],ruthlessli:41,rx_routing_kei:15,s11:[3,41],s11_state:41,s1_state:41,s211:3,s21:[3,8,41],s21_state:[24,39,41],s2_state:[24,39,41],s_state:[24,39,41],safe:[4,15,35,38,41,46],safeti:[15,39],sai:[4,15,35,36,37,38,39,43,45,46],said:[35,37,43,46],sake:39,salari:4,salt:36,same:[0,3,4,5,6,8,10,11,15,25,28,33,34,35,36,37,38,39,40,41,42,43,45,46],samek:[4,7,8,15,33,35,36,37,38,41,45,46],sampl:[35,46],sandwich:[],satisfact:[37,41,46],satisfi:46,saturn:4,save:[10,15,35,36,37,39,40,42],savefig:[],saw:[15,39,43],scaffold:46,scalabl:42,scale:35,scan:[15,38,43],scare:[15,16],scenario:[37,46],scene:[37,46],scheme:[15,35,39],scienc:[35,38],scientif:[41,44],scimitar:[15,16],scipi:[],scope:34,score:4,scotti:42,scrambl:46,scratch:15,screen:[3,15,27,34,39,40,46],scribbl:[7,15,16,24,32,35,41,43,46],script:[34,42],scroll:[37,46],sculpt:15,search:[7,8,11,30,35,36,37,38,39,43,45,46],search_for_super_sign:[25,26,27,32,34,35,36,37,39,40,41,43,45,46],season:15,sec:[15,16],second:[7,11,15,16,29,35,36,37,39,40,41,45,46],secondari:7,secondli:46,secret:[15,37,42,46],secretli:35,section:[3,6,15,36,37,38,39,42,43,45,46],secur:[15,42],see:[0,3,4,5,7,13,14,15,24,25,29,32,33,34,35,36,37,38,40,42,43,45,46],seed:35,seek:41,seem:[4,15,34,35,37,39,43,45,46],seemingli:[],seen:[5,7,15,35,37,38,39,42,43,46],select:[14,39,40,46],self:[5,8,9,15,16,34,35,36,38,39,42,46],selfpayingtoasteroven:[9,37],semant:[35,36],semaphor:4,semblanc:15,send:[3,5,7,14,15,35,36,37,38,39,40,41,42,43,45,46],senior:[15,16],senior_advance_war_cri:[15,16],senior_retreat_war_cri:15,senior_skirmish_war_cri:[15,16],sens:[15,34,36,38,39,40,41,42,43,46],senseless:36,sensibl:15,sensit:[],sensor:[15,35,37],sent:[7,15,32,34,35,36,37,39,43,46],sentenc:[15,38,46],separ:[4,15,33,34,35,36,37,38,39,46],seper:7,sequenc:[7,8,14,15,29,32,34,35,40,41,46],sequence_diagram:38,seri:43,serial:5,seriou:[4,46],serious:4,serv:[15,39,46],server:[34,35,42,46],servic:[4,7],session:[27,39,40],set:[0,7,8,10,15,35,36,37,39,46],set_arrai:[],set_aspect:[],set_ticks_posit:[],set_titl:[],set_trac:[27,39,40],set_xticklabel:[],set_yticklabel:[],settl:[7,8,11,15,35,37,39,43,46],setup:[15,42],seventi:[],sever:[39,40],shadow:8,shake:46,shallow:46,shalt:43,shape:45,share:[4,7,8,15,25,32,33,35,36,37,38,39,40,46],she:[37,46],sheet:[15,37],shelf:35,shell:[15,42],shelv:35,shift:[26,37,39,40,46],shine:35,ship:[15,46],shoot:[15,38,45,46],shop:46,shortcode1:[],shortcode2:[],shorten:[],shorter:15,shorthand:[15,38,41,46],shortli:[35,37,42],shot:[7,10,11,15,16,35],should:[4,5,7,10,11,15,28,32,33,34,35,36,37,38,39,40,42,43,45,46],shoulder:[37,46],shouldn:[28,38,39,40,46],shout:15,show:[0,7,15,32,33,34,35,36,37,38,39,42,43,45,46],shown:[3,4,46],shrink:38,shut:[34,43,46],shutdown:40,side:[4,15,37,38,46],signal:[0,1,3,7,8,9,10,11,12,15,16,24,25,26,29,32,34,35,36,37,38,41,43,45,46],signal_callback:[7,45],signal_nam:[0,5,25,38,39,40],signal_numb:[25,39,40],signal_that_is_def:[12,39],signalsourc:[1,25,39,40],signatur:[34,36,37,39,45,46],signifi:38,signific:15,significantli:[4,34],silo:[],similar:[15,35,37,39,45,46],similarli:35,simpl:[6,14,15,17,26,33,34,35,37,38,39,40,42,44,45],simpleacyncexampl:39,simpleasyncexampl:39,simpler:[15,39],simpli:[4,35,38],simplic:[14,35,39,40],simplif:15,simplifi:[4,35,37,38,46],simul:[35,46],sinc:[4,5,8,11,14,15,26,32,33,34,35,36,37,38,39,40,41,42,43,44,46],singl:[6,15,35,36,39,46],singleton:[0,7,25,39,40],sissi:39,sisyphean:38,sit:[7,15,46],site:[8,42],situat:[12,15,24,35,39,41,46],sixti:15,size:[35,37,46],sketch:[7,15,28,39,40],skill:15,skip:[15,34,35,39,43],skirmish:[15,16],skirmish_ammunition_low:[15,16],skirmish_entri:[15,16],skirmish_exit:[15,16],skirmish_officer_lur:[15,16],skirmish_other_squirmish_war_cri:[15,16],skirmish_retreat_ready_war_cri:[15,16],skirmish_second:[15,16],skirmish_senior_squirmish_war_cri:[15,16],skirmish_war_cri:[15,16],sky:[37,46],slai:15,slam:35,slaughter:15,slave:39,sleep:[9,15,32,34,35,36,37,39,41,43,45,46],slide:36,slight:15,slightli:[15,37,38,46],slip:46,slot:35,slow:[15,46],slower:7,slowest_tim:35,slowli:[15,37,46],small:[14,15,33,35,36,37,39,40,41,46],smaller:[15,38,39],smallest:40,smart:15,smarter:15,smear:46,smell:46,smile:[37,46],smurf:15,snail:[],snap:[15,46],snare:15,snippet:[15,36,46],snoop:15,snoop_kei:15,snoop_scribbl:15,snoop_spy_encryption_kei:15,snoop_trace_encryption_kei:15,snow:39,social:[15,44],societi:46,sock_dgram:34,socket:34,softwar:[4,7,15,32,33,35,37,38,39,42,45,46],soil:37,soldier:15,solid:38,solipsist:[37,46],solo:[],solut:[15,35],solv:[7,34,35,37,38,39,45],some:[4,7,11,14,25,32,33,35,36,37,38,39,40,41,43,44,45,46],some_event_the_system_has_never_seen:46,some_example_st:[25,39,40],some_st:46,some_state_funct:[37,46],some_state_to_prove_this_work:46,somebodi:36,somehow:[15,37,46],someon:[15,32,35,36,37,39,40,46],someth:[0,4,7,15,25,28,33,34,35,36,37,38,40,41,42,43,45,46],something_els:39,sometim:[8,15,16,37,46],somewai:37,somewhat:34,somewher:15,soon:[15,34,35],sorri:4,sort:[15,32,35,36,38,39],sound:[36,46],sourc:[2,7,8,14,15,36,37,38,40,41,42,46],source_st:38,space:[8,15,35,36,37,39,46],span:[34,46],spare:39,spawn:46,speak:[7,11,36,39],spec:[17,18,19,20,21,22,35,37,38,46],special:[3,15,32,35,36,37,43,46],specif:[14,15,26,27,28,33,35,36,37,38,40,41,43],specifi:[0,35,38,39,46],speed:[4,15,35,39],spell:45,spend:[4,15,38,46],spent:[4,15,33],sphere:35,spike:[37,46],spirit:[37,46],spit:34,split:[15,43,46],spoil:15,spooki:[],sporat:35,spot:[7,15,26,39,40,46],spread:15,spreadsheet:15,sprei:[4,32],sprinkler:37,spruce:34,spy:[0,3,7,15,23,24,26,27,32,35,36,37,41,43,45,46],spy_callback:34,spy_ful:[36,43],spy_lin:46,spy_liv:34,spy_of_trac:46,spy_on:[3,9,10,11,13,15,16,24,35,36,37,39,40,41,43,45,46],spy_on_buzz:46,spy_on_heater_off:46,spy_on_heater_on:46,spy_on_light_off:46,spy_on_light_on:46,spy_or_trac:46,spy_queue_nam:34,spy_result:34,squar:[29,35,39,40,41],squirrel:43,squish:[],src:[],ssh:42,stabil:[37,46],stabl:46,stack:34,stadium:37,staff:4,stage:[12,15,35,37,39,46],stai:[15,35,37,38,39,46],stair:[37,46],staircas:[37,46],stamp:[29,35,39,40,46],stand:[37,43,45,46],standard:[14,31,33,34,38,39,40],star:[35,37,38,46],stare:[],start:[0,7,8,9,15,16,26,27,29,30,32,33,34,35,36,40,41,43,45,46],start_at:[0,8,9,14,15,16,28,29,32,34,35,36,37,39,40,41,43,45,46],start_consum:34,start_exampl:39,start_thread_if_not_run:0,start_tim:46,startchart:[12,39],starting_st:35,starting_state_funct:8,startup:[37,46],starvat:4,stash:[15,16],statchart:7,statchmachin:46,state:[0,3,4,5,7,8,9,10,11,12,13,14,15,16,24,26,29,32,33,34,35,36,37,43,46],state_chart_object:46,state_fn:[13,39,40],state_method_nam:39,state_method_templ:[7,39,45],state_nam:[0,13,15,16,39,40,46],state_return:5,state_to_transition_to:39,statecchart:[],statechart:[0,3,4,5,6,7,8,9,11,13,14,15,23,24,28,33,35,36,37,40,41,43,46],statechart_object:37,statehandl:39,stateless:39,statemachin:[3,23,34,37,38,39,46],statement:[3,15,37,39,43,46],statemethod:[13,39,40],staticmethod:[34,38,39,46],statu:[9,10,11,15,16,24,25,32,34,35,36,37,39,40,41,43,45,46],steadi:35,steam:35,step:[7,8,15,35,36,37,38,40,41,42,46],stephen:[],stick:[15,46],still:[0,4,15,35,36,38,41,45,46],stimul:[7,43],stimulu:35,stitch:[],stochast:35,stock:[37,38],stone:[37,46],stop:[0,7,15,16,34,35,36,37,38,43,46],stop_active_object:0,stop_consum:34,stop_fabr:[],store:[4,34,35,36,37,39],stori:[4,14,15,27,36,39,40,43],str:[15,16,25,35,39,40,46],straight:[33,39],straightforward:[34,35,37,42],strand:15,strang:[15,36,37,39,41,45,46],strateg:15,strategi:[4,15,34,36,37,39],straw:15,stream:[3,5,15,34,46],stretch:[],strftime:[35,39,46],strike:35,string:[5,7,8,13,25,28,34,35,37,38,39,40,45,46],strip:[15,28,37,39,40,46],strip_trac:34,stripped_spec:37,stripped_target:[15,28,39,40,46],stripped_trace_result:[15,28,37,39,40,46],stroke:15,strong:15,strongli:[4,35],structur:[1,7,15,32,33,35,36,37,41,42,43,45,46],struggl:36,stub:[],studi:[15,37,46],studio:37,stuff:[37,39,46],stupid:15,stupidli:15,style:[7,39,46],sub:[0,34,37,42],sub_row_to_check:[],subclass:[5,35,38,39,46],subject:[],suboptim:35,subordin:15,subplot:[],subscrib:[0,4,7,15,32,34,38,42],subscribing_ao:39,subscript:[0,7,15,39],subservi:[37,46],subset:[4,7,15],substat:[7,8,15,35],subsystem:46,subtl:[35,39],subvers:46,succe:[37,42],succeed:34,success:[4,35],successfulli:15,suck:15,sudo:42,suffici:15,suffix:[],suggest:[37,39],suicid:[],suit:[37,46],sum:15,summar:[34,40,43],summari:43,sunk:38,sunni:39,superior:15,supernatur:[37,46],superst:[7,35,46],suppli:15,support:[0,8,14,34,35,37,38,39,40,42,46],suppos:[14,15,29,35,37,39,40,41,45,46],sure:[15,16,34,35,38,39,45,46],surpris:[35,44,45,46],surround:[4,15],surviv:[15,37],suspens:46,sustain:15,svg:39,swap:4,swarm:15,swell:[],swing:[15,35],symmetr:15,synchron:[15,35,39],synonym:7,syntact:[15,35],syntax:[25,33,35,36,39,40,42,45],synthes:39,system:[4,5,6,7,8,11,14,26,27,32,33,35,36,37,38,40,42,43,45,46],t_question:41,tabl:39,tack:37,tactic:16,tag:[37,46],tail:[26,35,39,40,43],taint:38,take:[0,4,7,15,34,35,36,37,39,41,43,46],takeawai:[],taken:[7,15,39],taleb:[32,41],talk:[4,15,35,36,37,38,39,40,42,46],tar:4,tara:[37,46],target:[7,8,11,15,27,28,35,37,40,41,46],target_st:38,targetandtolerancespec:46,tart_at:[14,39,40],task:[0,4,15,39,43,46],task_ev:0,tatechart:[],taught:4,taxat:15,tazor:[14,27,28,29,36,39,40],tazor_oper:[27,36,39,40],tc1:45,tc2:45,tc2_s1:39,tc2_s2:39,tc2_s3:39,teach:4,team:[15,32,34,38,40],teammat:[15,40],tear:46,technic:[4,37,41,46],techniqu:[0,7,15,34,35,37,39,46],technolog:[4,33,34,37,38,46],tediou:46,tell:[4,8,14,15,27,33,35,36,37,39,40,42,43,46],tem:46,temp:[8,9,10,11,15,16,24,35,36,37,39,41,43,45,46],temperatur:[7,35,37,46],templat:[7,38,42],temporari:[5,40,46],tempt:[15,46],ten:[15,42],tend:38,tension:[37,46],term:[7,26,39,40,46],termin:[3,14,26,34,35,36,37,39,40,45,46],terminolog:[34,37,38],terrac:[37,46],terrain:15,terribl:15,test:[0,4,8,9,14,15,27,28,30,31,33,34,35,41,42],test_baking_buzz_one_shot_tim:46,test_buzz_ev:46,test_buzz_tim:46,test_toaster_buzz_one_shot_tim:46,test_typ:46,testabl:46,text:[4,7,14,38,39,40,46],textil:[],than:[4,7,9,14,15,16,23,32,34,35,36,37,39,40,45,46],thankfulli:[15,46],thei:[3,4,7,8,11,14,15,16,32,33,34,35,36,37,38,39,40,41,42,43,45,46],theirs:15,them:[4,5,7,8,10,11,15,16,32,33,34,35,36,37,38,39,41,42,43,45,46],theme:46,themselv:[7,15,16,34,37,38,39,46],theo:[37,46],theoret:[],theori:[15,33,41,44],therebi:[7,15,34],therefor:[15,36],thi:[0,2,3,4,5,7,8,9,10,11,12,13,14,15,16,25,26,27,28,29,32,33,34,35,36,37,38,39,40,41,42,43,45,46],thickest:[],thiel:46,thin:[],thing:[4,5,7,8,12,14,15,27,34,35,36,37,38,39,40,41,42,45,46],thing_subscribing_ao_cares_about:39,think:[11,15,25,33,34,35,36,37,38,39,40,41,42,43,46],thinner:[],thinnest:[],third:[15,35],thirti:[],thoma:38,those:[7,15,32,36,38,45,46],thou:43,though:[7,11,15,36,37,39,42,43,45,46],thought:[15,16,35,37,39,46],thread:[0,3,4,7,9,15,32,33,34,35,36,37,38,39,41,43,45,46],thread_runner_fifo:0,thread_runner_lifo:0,thread_safe_queu:39,threadsaf:39,thredo:46,three:[15,35,36,37,39,42,43,45,46],three_puls:[10,39],threshold:[35,38],throb:[37,46],throe:7,through:[4,5,7,8,14,15,28,33,34,35,36,37,40,41,42,43,45,46],throughput:15,thrown:40,tick:[15,16],ticket:37,tie:[15,35,36,46],tied:[7,15,41],ties:37,tight:[33,46],tight_layout:[],tighten:41,tightli:[27,39,40,46],till:37,timat:7,time:[0,3,4,7,9,10,11,15,16,28,32,33,34,35,36,37,38,40,41,43,45],time_1:46,time_1_str:46,time_2:46,time_2_str:46,time_compress:[15,16],time_differ:46,time_in_sec:46,time_in_second:[15,16],time_keep:8,time_out:35,timeout:34,timeout_callback:34,timer:[34,37,46],timestamp:[28,39,40,43,46],timestamp_str:46,tini:[4,41,46],tip:43,titl:[4,8,36,41,46],to_b1:39,to_cod:[7,15,39,45],to_method:[15,16,32,34,35,39,45],to_tim:[15,16],toast:[9,35,37,46],toast_tim:46,toast_time_in_sec:46,toaster:[9,35,38],toaster_142x5:37,toaster_:[9,37],toaster_baking_to_toast_spec:37,toaster_off_to_baking_trace_spec:37,toaster_oven:38,toaster_oven_1:46,toaster_oven_2:46,toasteroven:[35,38,46],toasterovenmock:46,toasting_buzz_test_spec:46,toasting_entri:35,toasting_time_m:46,toateroven:[38,46],todai:15,togeth:[14,15,33,38,39,40,44,46],toggl:46,told:[37,46],toler:[15,46],toleranc:46,tolern:46,tolernance_in_m:46,tonsil:46,too:[0,7,8,14,15,33,34,35,36,37,38,39,40,41,45,46],took:[15,32,37,43,46],tool:[4,7,15,32,33,34,37,38,39,40,42,46],top:[0,6,7,8,9,14,15,16,28,29,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],top_bound:46,topic:[15,42],topolog:[8,32,35,36,37,38,39,45,46],topology_a:8,topology_h:8,total:41,totalitarian:35,touch:[4,37,39,46],toward:[8,15,35,37,46],tpath:8,trace:[0,3,7,14,15,23,27,28,29,32,35,36,37,38,43,46],trace_callback:34,trace_l:34,trace_lin:46,trace_queue_nam:34,trace_result:34,trace_target:46,trace_through_all_st:46,track:[15,16,34,35,37,38,39,40,43,46],tracker:39,trade:[35,36,37,38,45,46],tradit:[4,15,36,46],traffic:15,train:[15,39],tran:[7,8,9,10,11,15,16,24,32,34,35,36,37,39,41,43,45,46],tranduc:35,trans_:8,trans_to_c2_s1:39,trans_to_c2_s2:39,trans_to_c2_s3:39,trans_to_fb11:32,trans_to_fb1:32,trans_to_fb:32,trans_to_fc1:[32,39,45],trans_to_fc2:[32,39,45],trans_to_fc:[32,39,45],trans_to_tc1:45,trans_to_tc2:45,trans_to_tc:45,transact:40,transduc:[7,15,35],transfer:[35,36,39,41],transform:[],transit:[0,3,7,8,10,11,15,16,29,32,36,37,38,40,41,43,45,46],transitori:46,translat:[33,35,37,40,46],transmit:[15,34,42],transpar:37,transpir:[37,46],travel:[],travers:36,treat:[8,38,39,46],tremend:15,tri:[7,15,33,35,39,45,46],trial:35,triangl:[],tribe:36,trick:15,tricki:[37,38],trickl:39,trigger:[7,8,15,16,35,36,37,38,41,45,46],trigger_pul:36,trip:15,trivial:[15,32,39,46],troop:15,troubl:[4,15,36,38,45],troubleshoot:[3,33,37],troublesom:4,truck:35,truli:15,trust:[15,46],truth:15,tube:[],tunabl:[35,46],tune:[15,35],tupl:[38,39],turbin:35,turn:[4,5,7,9,14,15,28,32,33,35,36,37,39,40,41,42,43,45,46],tutori:[34,42],twain:15,tweak:[15,39],twice:46,two:[0,3,4,7,12,14,15,34,35,36,37,38,39,40,41,42,43,45,46],twodcellularautomatawithanglediscoveri:[],twodcellularautonomata:[],tx_routing_kei:15,type:[3,5,10,15,29,32,33,35,37,39,40,42,43,45,46],typic:[0,15,32,38,39,46],u3uc:[15,34],ubuntu:[],ugli:46,ultim:[3,7,36,37,38,43,46],ultimate_hook_exampl:35,ultisnip:46,uml:[4,7,14,15,32,33,34,35,37,38,39,40,41,46],umlet:[14,15,33,38,39,40],umletino:39,uncom:[27,39,40],uncomfort:[37,46],undefin:[39,46],under:[4,15,42,46],underl:[37,46],underli:[7,46],understand:[7,8,15,26,32,33,35,36,37,38,39,40,41,43,44,45,46],understood:[],underworld:[37,46],unexcept:15,unexpect:15,unfamiliar:41,unfold:15,unforeseen:15,unfortun:[4,38],ungodli:4,unhandl:[5,9,10,11,15,16,24,32,35,36,37,38,39,41,43,45,46],unhanld:[25,39,40],unifi:38,uniform:35,uniqu:[5,15,29,39,40,45,46],unison:[15,34,35],unit:[4,7,14,16,35,39,40,46],univers:[7,15,33,37,44,46],unives:[],unless:[7,15],unlik:[4,7,15,36,37,44,46],unlink:15,unload:36,unlock:38,unmanag:7,unnecessari:[10,39],unneed:46,unorgan:15,unpredict:35,unprocess:39,unprotect:[4,15],unreason:[],unreli:[],unrespons:[37,46],unseen:5,unstabl:43,unstart:[],unsupport:44,unsuspect:36,untest:46,until:[4,7,8,15,34,35,36,37,38,39,43,46],unus:46,unusu:15,unwind:[6,7,39,40],upcom:46,updat:[14,15,28,39,40,46],update_angl:[],upon:[4,7,12,15,16,25,31,32,33,35,36,37,38,39,40,43,45,46],upper:[15,46],upward:[],usag:46,use:[0,4,7,10,11,14,15,24,25,26,28,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],used:[0,2,4,5,7,8,9,10,11,14,15,29,34,35,36,37,38,39,40,41,42,43,45,46],useful:[8,10,15,33,34,35,36,37,38,39,46],useless:46,uselessli:15,user:[0,7,34,35,36,37,39,40,42,43,46],uses:[0,3,5,7,15,33,35,36,37,38,39,42,45,46],using:[0,3,4,5,7,8,14,15,26,28,29,32,33,34,35,36,37,38,39,40,42,43,45,46],usual:[39,46],util:[14,39,40],uuid5:0,uuid:0,vain:4,valid:8,valour:15,valu:[5,7,15,25,35,39,40,46],valuabl:[37,46],vantag:[15,37,46],variabl:[4,7,8,15,28,32,35,36,37,38,39,40,42,43,46],varient:37,varieti:34,variou:[7,15,36,37,39,43,46],veer:15,veloc:[],vent:39,venv:46,veri:[0,4,14,15,26,29,32,35,36,37,38,39,40,41,43,45,46],verifi:[35,46],vers:40,version:[3,34,37,39,42,45,46],versu:46,vertic:[39,46],vestigi:46,via:[35,37,42,46],victim:36,victori:[4,15],video:[15,39],videoid:[],view:[4,7,15,33,34,35,36,37,38,41,43,44,46],vigil:15,vim:[32,39,46],virtual:[],visibl:[38,39],visio:40,vision:[15,32],visit:39,visual:[32,37,46],vitamin:38,vnc:[],voic:15,voltag:[36,46],voodoo:15,vortex:35,wai:[0,4,7,10,12,15,16,32,33,34,35,36,37,38,39,40,41,42,43,45,46],waist:4,wait:[0,4,9,10,15,16,34,35,36,37,38,39,41,43,46],waitcomplet:43,waiting_to_adv:[15,16],waiting_to_lur:[15,16],wake:[7,35,37,46],walk:[35,37,45,46],walker:46,wall_cl:[],wallleftblackrightblack:[],wallleftblackrightwhit:[],wallleftwhiterightblack:[],wallleftwhiterightwhit:[],want:[8,11,12,15,25,26,28,33,34,35,36,37,38,39,40,42,43,45,46],war:[4,15,16],warbot:15,ward:45,warhors:15,warn:[37,46],wasn:[15,27,35,37,39,40,43,46],wast:[7,15,35,36,37,40,46],watch:[0,4,15,34,36,37,43,45,46],watch_external_weather_api:39,watch_external_weather_api_entri:39,watch_external_weather_api_weather_report:39,water:[15,16],wave:[15,35,46],weak:15,weaken:15,weapon:[4,15,32],wear:15,weather:[37,39],weather_read:39,weather_report:39,weather_track:39,weatherreport:39,weav:15,web:[42,46],websit:42,weekend:38,weigh:4,weight:[4,32],weirder:39,well:[0,4,5,8,15,33,36,37,38,39,41,42,45,46],went:[33,42],wenzel:42,were:[0,3,4,7,15,28,33,34,35,36,37,39,40,43,45,46],weren:[4,15,45,46],western:15,what:[4,7,8,13,15,26,27,28,29,32,33,34,35,36,37,38,41,42,43,44,45,46],whatev:[15,33,38,39,41,42,46],whatever_name_you_w:46,when:[3,4,7,8,10,12,14,15,16,26,27,28,32,34,35,36,37,38,40,41,42,43,45,46],whenev:35,where:[0,4,7,8,12,15,23,32,34,35,36,37,38,39,42,43,46],wherea:40,wherev:[37,46],whether:[45,46],which:[0,4,5,7,8,12,14,15,25,26,27,28,32,34,35,36,37,38,39,40,41,42,43,45,46],whichev:35,whine:36,whisper:[37,46],white:[9,37,46],white_light_off:[9,37],white_light_on:[9,37],white_mask:[],who:[4,7,15,33,34,35,36,37,38,39,40,45,46],whole:[4,15,25,34,36,37,39,40,46],whose:15,why:[14,15,32,33,35,37,38,39,40,43,44,46],wide:[],widget:38,width:[],wiki:35,wikipedia:46,willing:15,wilt:[],win:4,window:[15,23,34,46],wipe:[],wire:[15,34,37],within:[0,3,4,5,7,8,11,15,16,24,32,33,34,35,36,37,38,39,40,41,43,45,46],without:[4,7,14,15,26,33,35,37,38,39,40,45,46],woke:43,wolfram:[],won:[4,10,12,33,35,36,37,38,39,40,46],wonder:35,word:[4,7,15,37,40,42,46],work2:39,work:[0,3,4,7,8,9,12,13,14,15,28,32,33,34,35,36,37,38,40,42,43,44,45,46],worker1:39,worker2:39,worker:[4,9,37,38,46],workflow:15,world:[4,7,12,15,33,35,37,38,39,42,43,46],worri:[36,37,39,43,45,46],wors:[4,15,39],worst:[15,46],worth:[15,33,35,45],worthwhil:46,would:[0,4,7,8,10,11,12,14,15,25,26,27,28,29,32,33,34,35,36,37,38,39,40,41,43,44,45,46],wouldn:[15,36,37,39,41,45,46],wound:[15,16],wrap:[5,8,13,15,16,34,37,38,39,40,45,46],wrapper:8,wrestl:[15,42,45],write:[3,4,7,14,15,26,27,32,33,34,35,36,37,38,39,40,42,43,46],written:[3,4,7,8,15,32,33,34,35,36,37,38,39,42,45,46],wrong:[8,15,33,36,45],wrote:[4,15,34,35,36,41,42,45,46],wta_entri:[15,16],wta_exit:[15,16],wtl_entri:[15,16],wtl_exit:[15,16],wtl_second:[15,16],www:[],x15:46,x_px:38,xaxi:[],xml:7,xor:[],y_px:38,yaml:7,yaxi:[],year:4,yell:[15,16,46],yellow:[],yes:[15,38,46],yet:[4,7,11,14,15,35,36,37,38,39,40,41,45,46],yield:35,yml:[7,42],you:[0,2,3,4,5,7,8,10,11,12,13,14,15,24,25,26,27,28,29,32,33,34,35,36,37,38,40,41,42,43,44,45,46],your:[0,3,4,5,6,7,8,10,11,12,13,14,24,25,26,27,28,29,32,33,34,35,36,37,38,41,42,43,44,45,46],your_parent_state_method:39,your_signal_nam:39,your_state_method_nam:39,yourself:[7,15,35,36,38,39,44,45],youtub:39,z_px:38,z_pz:38,zap:36,zero:[4,15,17,30,35,37],zero_to_on:[6,17,18,19,20,21,22,38,46],zeromq:46,zip:[15,28,37,39,40,46],zoologi:4,zoom:39,zuvk:[]},titles:["Active Object","Architecture","Cellular Automata","Comprehensive","Concurrency: the Good Parts","Events","Examples","Glossary","Hsm","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Mongol Horse Archer","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","<no title>","Python Statecharts","Installation","Interacting Statecharts (Same Machine)","Introduction","Spy and Trace Across a Network","Patterns","Simple Posting Example","Quick Start","Diagrams","Recipes","Reflection","Hacking to Learn","Setting Up RabbitMQ","Active Object Example","Testing","Using and Unwinding a Factory","Zero To One"],titleterms:{"abstract":46,"catch":39,"class":[34,38,39,45],"final":38,"function":[34,41],"import":[34,41],Adding:39,And:39,For:15,Going:39,Has:39,One:[39,46],The:[15,34,37,40],Using:[39,40,45],abil:34,about:38,across:34,activ:[0,39,43],activeobject:39,activeojbect:[],add:[34,39,41],analog:37,anoth:39,ansibl:42,answer:41,anyth:41,approach:45,archer:15,architectur:1,arrow:38,attach:[15,38],augment:[],augmentng:39,automata:2,basic:[42,46],behavior:40,better:41,boiler:[34,39],build:15,callback:[34,45],can:34,cancel:39,canva:[],cellular:2,challeng:41,chart:40,close:34,code:[34,37,39,41,46],common:41,compon:35,comprehens:3,concurr:4,connect:34,construct:38,consum:34,context:[15,34],count:34,creat:[34,39,45],current:39,deceit:15,decrypt:34,deep:38,defer:[35,39],describ:39,descript:40,design:[15,34,37,40,46],detail:[15,38,40],determin:39,diagram:[38,39],docstr:34,doe:39,draw:[34,39],dynam:37,els:38,embed:37,enter:39,entropi:[],event:[5,34,35,38,39,41,45,46],exampl:[6,15,32,34,36,43,45,46],exit:39,experienc:37,explain:40,extend:38,extrem:40,fabric:0,factori:[39,45],fall:38,feder:38,fifo:39,first:[15,41],flat:39,foreignhsm:34,frame:41,from:[39,40],game:37,gener:[],get:[34,39],glossari:7,good:4,guard:[39,41],hack:41,hardwar:46,have:[34,39,40],hiearchi:41,high:[38,40],highlevel:[],hint:[37,46],histor:15,histori:[35,38,46],hook:[35,39,46],hors:15,horseman:15,how:[39,40],hsm:[8,34],hypothesi:41,icon:38,indic:30,inform:[34,39],inherit:38,init:41,initi:39,insid:39,instal:[31,42],instrument:[3,37],interact:32,intern:41,introduct:33,iter:46,its:[15,34],learn:[41,42],level:[38,40],librari:34,lifo:39,link:34,linux:42,live:[39,40],log:34,machin:32,make:[34,41],mechan:37,medium:38,mesh:15,messag:[34,42],method:[39,45],mind:15,miro:38,mistak:41,model:15,modul:5,mongol:15,multi:[39,46],multichart:35,multipl:39,multishot:39,name:39,need:[],network:[15,34,42],newbi:37,noth:[],number:[],object:[0,34,39,43],off:34,one:46,onedcellularautomata:[],organ:15,orthogon:35,other:[39,40,41],our:[15,34,41],output:[34,40],oven:[37,46],overview:15,pai:37,parent:39,part:4,partial:41,pass:39,pattern:[35,42],payload:[38,39,46],pend:35,phenomenon:[],pictur:41,plate:[34,39],point:38,post:[36,39],processor:38,produc:34,program:[15,34],proof:46,pub:38,publish:[38,39],python:30,question:[41,46],quick:37,rabbitmq:[34,42],race:35,random:[],react:34,recal:39,recip:39,reflect:40,regist:45,releas:39,remind:35,requir:[34,41],returnstatussourc:5,rule30:[],rule:[],run:41,same:32,scott:[37,46],scribbl:39,see:[39,41],self:37,send:34,sequenc:[38,39],set:[34,42],setup:46,shot:[39,46],shutdown:34,signal:[5,39,40],signalsourc:5,simpl:[32,36,46],sketch:[],small:[],some:[15,34],someth:39,sourc:39,specif:[34,39,45,46],spy:[34,39,40],standard:45,start:[37,39],state:[38,39,40,41,45],statechart:[30,32,34,38,39,45],statemachin:[],stop:39,stori:[37,46],structur:[38,39],sub:38,subscrib:39,subscript:38,subsect:[],summari:45,system:[15,39],tabl:30,tactic:15,target:39,technic:15,templat:[39,45],termin:38,test:[37,39,40,44,46],thought:40,through:[38,39],time:[39,46],titl:[],toaster:[37,46],trace:[34,39,40],transit:[35,39],turn:34,twodcellularautomata:[],ultim:35,unit:15,unwind:45,view:40,visual:[],volk:[37,46],wall:[],warn:38,what:[39,40],when:39,why:45,window:42,work:[39,41],write:45,you:39,your:[15,39,40],zero:46}}) \ No newline at end of file diff --git a/examples/start_at_example.py b/examples/start_at_example.py new file mode 100644 index 0000000..181d20f --- /dev/null +++ b/examples/start_at_example.py @@ -0,0 +1,58 @@ +import time +from miros import spy_on +from miros import ActiveObject +from miros import signals, Event, return_status + +@spy_on +def c(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.ENTRY_SIGNAL): + status = return_status.HANDLED + print("c1 entered") + elif(e.signal == signals.INIT_SIGNAL): + status = chart.trans(c1) + elif(e.signal == signals.B): + status = chart.trans(c) + else: + chart.temp.fun = chart.top + status = return_status.SUPER + return status + +@spy_on +def c1(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.A): + status = chart.trans(c2) + else: + chart.temp.fun = c + status = return_status.SUPER + return status + +@spy_on +def c2(chart, e): + status = return_status.UNHANDLED + if(e.signal == signals.ENTRY_SIGNAL): + print("c2 entered") + status = return_status.HANDLED + elif(e.signal == signals.A): + status = chart.trans(c1) + else: + chart.temp.fun = c + status = return_status.SUPER + return status + +if __name__ == "__main__": + ao = ActiveObject('start_example') + print("calling: start_at(c2)") + ao.start_at(c2) + + time.sleep(0.2) + print(ao.trace()) # print what happened from the start_at call + ao.clear_trace() # clear our instrumentation + + print("sending B, then A, then A:") + ao.post_fifo(Event(signal=signals.B)) + ao.post_fifo(Event(signal=signals.A)) + ao.post_fifo(Event(signal=signals.A)) + time.sleep(0.2) + print(ao.trace()) # print what happened