From ff281e0f6108fa65d6476d50d143ab95676d4a86 Mon Sep 17 00:00:00 2001
From: Wtm <micromaomao@gmail.com>
Date: Sun, 5 Jun 2016 13:42:05 +0800
Subject: [PATCH] Trigger event on body itself before/after it's removed

Events.on(body, "beforeRemoved", callback);
Events.on(body, "afterRemoved", callback);
---
 src/body/.Body.js.swp      | Bin 0 -> 57344 bytes
 src/body/.Composite.js.swp | Bin 0 -> 40960 bytes
 src/body/Body.js           |  20 ++++++++++++++++++++
 src/body/Composite.js      |   2 ++
 4 files changed, 22 insertions(+)
 create mode 100644 src/body/.Body.js.swp
 create mode 100644 src/body/.Composite.js.swp

diff --git a/src/body/.Body.js.swp b/src/body/.Body.js.swp
new file mode 100644
index 0000000000000000000000000000000000000000..53bad2707af7826b6abc696193e39ed3ed397974
GIT binary patch
literal 57344
zcmeI537Di+dG9-l;u3_IfRLd1kVy9o)73pV12{0k^f2HU2S;WYz+s%KsrtIRnC_~k
zmYHsGT!>3FM9nptXcCu1ToM;F8Xy|4MqI9vgb2}_a8ZefCMHIc$0ae*`}@D=oNueD
zUSP~k?$h-=|E{j@JKtH}bIyC-?VRtx_@3=MqH{_chWMN?H1y&R?Yd&aaZexm`_|CV
zY^ABIOMXbVtfbE;)mWw4sUM0*=UUBc;%cWoHe2a*;@0Rj?Xh;NI(DF0TNs<*PwATW
zlI5-@Sf#)!1(r#HZfA1z+~bCxeAfDLJ#qRIPm6x~v6nCN;nifT6j-IeDg{<4uu6ed
z3anCKl>)02Sf#-K4;1Lk{p8RKXvjl+V`lyLPZYi%>3^5~ccXCsQU3Qq|NZBM`;Yd&
z>;C&GzJO59Px|Yz|Nh;={p0-gvj0BTS2#R>jK99de@_+eKg?f$w*P)%;r_$@^-#ah
z7w#YH@9*~C7d+Jc6Uu*tzrNppzou~C{~S8x@Bee*zQ4TswMv0i3anCKl>)02Sf#)!
z1y(7rN`X}htWsc=0;?4Gu~48=8ydQhoKKLxi~m39|Nnmc(9n(G3h?R23=Mq}Oo2&o
zCAb{y2HU_zU=*wa|Bj-52Y4%ZF1QSw0e*;r{~zF=z&F9?z<a<;K@4i(YVemB3M$~+
z7!>XXe+u3X-UJpv8C(FK1Re$c1;fNW;I*I$o&h$3M}WUTDSsdME%1DBB{&!S9QYv$
z{g=R}!8^bWU=CakHh>escQFdw1>O%{4_*OU;7Tw7P6x+=f5f=(=it5IRbUS615X9x
z;7Q;Yz&~N6_$K%y_yo8Kyc4_wycz5PU&Ai&Uhq0_4UnDT9B?f727Poh_#^Oga6Nbt
zSODt3<H3XdMEb0aE{i+eR-+wtrsJp)&v&A3qke5Sj;fVTJk@M1L<j1f$$C6fi$>a=
zN~=?EOhuJR0y*r7dZXT{S7xGGJXz_^bke8F<MZR=<Lk?7N<%7VZ0*`1`{&4c_N8kr
zD><?lko_upYjb9%UZa3ZTFvg<_S%_ep64D?YJGa1xU|_QJ~TR-mQbIJM(XWsqBTRx
z$BI;mR#3D#n(Q_RR%tehsiW&GeYAGWe@7SkI$U>YclJQsIuc#($Tg)ZNA*T6o==j_
zRa%wV=(+>V=FE|3Z@wa%Co41UcwdrsHttL}Yt{o+sc>Ug97kov%9N_2PMb<zT%Upb
z<!G|mie{Uwm{R$d=o;=hYSXRTC!=z{#Bx+`N99hd8<*F4O7`}8rWuz1;puvHI->k~
z+>Q>{XJ(@Pjb>+mWR<DKNpXWl(bD<la$01Vhz6PAuwNr@XRA3EGbH2oh;FZonsXvT
zdrc<cp-M~jU!a$_HfLuc5&a%FY9oHgw);Mn8Kx1RBd$C2um8-{8}SwOT4#Dww7#@)
zC|nNTN7nUR(yfJOPENMt&ZcO*@9p{I_JGHCRVy<wCHB8PKlpZgu2t{wq#w_!i~ls|
zD%E;tp>L*#7;gtuphiu;%oZe!Tg41J_1U<8CE7F1IhtJ>-<Z#*520+#^dr%1rG1d=
z^B4P1J}0#&FfFAL`^l#$%%EcBCtG!60$b{|i<%am4!3u8m}ym|C^RJ`(5=F=t+?H(
zce)y!+|Adj7B||~0Tfv*vpo~XbGxT`e7ZSP+Z3H$cy_kgH_Li^mmY+ZZi<Z0<V)nX
zZ$tl^RHz9F`rNEErn)ng)}DB#=>|=qK8KPU*G2PcX~e)9j|!dabJ;Z)$F!-CMZ53S
zPP0>)+1hM$2r6v%JX2-PcUqNtqqBW>t_xqKYcu7qizrdUxThv_O-N6t^nI*Y?M}1B
z!q`(dyti5?u=r#sCSR>$szYLB)tKh(@&A=3Tg};>mCp3Y@H43Vc=U{DL-NIcy0~F{
zcul^0Lu2z-S&T%vz5DW)XDSEcnN88~1T1nmf2*@FN4ti_JPUW~bem_UT1B_lMlw|p
z!wtL@rt3J4vM*IzF+xRlxefd}@TETMtcpKk9DK+)*4pSozpfq$>^`~S7g1MExT+OY
z!VPh#ezAz!#G}&d5lwF%wso!+cPjOnxRzZ@BT^imu5_Y>W*5%Vh~_Hoc66v-vFyse
z?&YX?K=G}~Qn-ahGE>%c<xm{x5gn?`bYoVWN~0FdRvHUYh2?v$6_3K#tIVtpHK=qu
z1lckYDl;=kUzIl3s7aGHv@#hd<!v>pwxbHd!{Mk^pQ_i~f;Zc&#WSU7H*NQIr3FYN
zv4l5d0b1m$PJ3u26R%oF($kHFOhMNC!}a!b)M-Xd25GBaa}*7|?5dKi-PYGmpbIkO
zX3vkEXqG0(ie@JEY_BmqM%Ne9Z7oQKB+8{>F=p;mZ0X_N2G;+PM5bHA=o-?f+%iw&
zHY597+pV|ak>OHlY$|R-kJiGN?hPY1DBVP}+o%mp>F$QKZW<JFts<3;xjP}<Wwu@x
z(z!)+%-stq1M4oNwLHVUkaiCP4=Hd!o7~+rtz$2PQ@i_0Kg8JS&cujHb4}O=kEqYM
z?#N@()OE;6LrhpEWOYU}LrJ(2g$Y-0RA;(1MsK%WnTn&m@qA@=ZYFN;8=3BO=GvRa
z#-{3>>Fxm}+u5<1dgVZ?n~4$cwBnebZ3gRDcoJn|Ed^Z6BG7DUq)G(lX{0))N>?-G
z0F~fUW3oQgZJ9{iMsevP#8%q$e6?fTkttZMx2jaerlOx)&6$NMNsl(!55(loIDjMA
ze0LOy$~!EIy+mWFK$!|fTe24yOw6ui=b_Cm@ei_W*Ju4SKfvTq9^BTLVhCGqny#5b
z$j_Hdqu^0!YL3hK#%uDMO6E99o#oG6FhUp$XqSdGH>LmIh!gwu=$F#}gMa!T(EINL
zUjcW6H-g^)hrt1`18f5qf%Cy};NjqYYyh7F9|gC9Tfj|VFOa=pBRCD50!{`efDd3F
zcsF<{Xn|`$4O|T#4UPd{#5V95a0|EzycfJ3>;caNYru)%q2LGD5B^Oy1n>%QJ$N?Q
z2F?O&zzFzxa5FZ9_kx#!7T6E=fXl%S@Hf~I-U8kL=0OeY1WyB(fD6D~*b|O`Ltr<!
z5Jcc)@HlWhcmwu?t>AocGB^g@hwb41fV;t+;054B@EL3c9|!LSzX4=ZcsY0xcr17{
z_zt#$d%+#x)8JF!e}e14-Sp*M;KSe@;LYGoKz;n1VD<CgfC5L>j3f$cMgWrd1v}GH
z6hxT|y<CA<ki8ymZ|~T$o|7Lkf`x=hV`Wop%V~&79*XCq=`QlhNI3|fWkixzWnqoj
zURfO7OKn_-!<e95X>`PG=V~Udz{gxVccC2Bx-Bsz&*>1e5=jL{=@!o*GdaNnF#_i2
zY!O?wOiaM0rzD+;xl3>pCo6~;S%Zw1LZU#03ypB-1Jok9mJkkstKzSQn^emgbIPth
z`)A`yyNk}X--_20QFAh>%5XbNIu??Q=!OBz7&5g_=;EYNczeW0j9A~Hwy9moYJJGo
z^S!BAD6Kd0iF?v#uvUVd6ChX6E23wgo*}DtY{F<>`pmTL!Hu4D3^d#T6GgqHu`-V^
z>RQfP9oLW*8nS22uoByv?pAqk{X&-RK&50{C1Pj4F~K^_uw~ez`Zv2RPrzvLA>yR6
z5+kU2Fy7T!n28I7ck|3hi8L+2;_x&Rs@t}OSkl9x3KB-U8Pz*crCN>W5TUm2+7-2x
zSrDxkyf%=MCMxf;QR~NHc3!y3_zaN4p^GcjRaOP7KDOvLyB%4lFnvx&6~ua3e#96s
z+({APR;_52J=(OJ#8UWQgmS9N^62&;>6MrP5r}OvH_SqujJaeg`|*`n5DTMgiyIf3
zAmwqSzqo?T*Fg31-D*}?L`j!TT+5E193RV$9~%&dWv`SLceF=OGJGQ19{6!EarPsJ
z(iQ3925QNhNF7lk&+JHF<kH#JHO;CTB=v<+<0xVI@DpIf@szqL2@6pNy9GQxnvUyJ
z(;Yt_Qa1&j5zm^BLX*5%_dzsiekDz^ZtiVSXi%n$)+d8=IRiFykZIXHgEqg0W_zd2
zDk28u6{)`6vn~>|YAk1+e?XOXrtt?}>AoG%Tj@w2UrJ$VA0&{3)yCL#$q!4Ph5w4S
zAd3xL8s@MMYEp~;*Jq_^`x(x<WNVaL0DR89b?#qXXBi3=7%*A;RP&i;4C}XoxoY@X
zFXg>2BN|Y@2R(Sbo1;+UT`?=Oh~#hguTv_z_0TFXJ2^-aV%cPp*ALd6Tr9FX?^`KU
zXiGFXQ_)(EK@MjkM!*h~Vs0d>JDz|p&e)y>psyTcHSt|3{r`vPupdF!mHxlRt46n?
z%g5jXa3c5ydisaJ^T1Dnhk%~|pF}r*Hn<8r6`TXk24i3iI1U^OhQN=|&A$ge2|fyL
z1he20@M!Qi=;L>S&w<Z?8^N2vOTd*ty8Cyj=O=*b`#KPV=YV}cdizc=4%ULx!4tvH
zf)CKfcZ1i1mw+SSd7uNffv18I@H5~)(AWO~+y}k_?glr2mw*O%HrNWz1Dn8E;7925
zZv?*x6gTh&Z~-_MoCb~q4+F=5e@B1688pD<;8JilP>jH-;OD?kgFDgXZwDU)Zvn3Y
zF9R<H&j)M4-=oie1-upf4)_)^0E!1_f&2XCgh-#Y(K8t>SzB=w3}9u1KN(7$Hdl69
zq*Okn*d^6QnZL2H1x+y;={7K+wI$CU!X(U{dL>HC;$Z>Gsw+|1nIwb$hxJV*&mbvR
zx>K`pL-y~(7zLwBt!9oHLJKk+!&`1^rW(eRll5wyXC&M^&v-^R2wXV2LZW%7x+<7e
zYS-DkN?N4a;74k-oh7~%%a(@u9!>?V&_aVFr;Ko2ic8VqW^1N4+Qx+%JEQ&zRIyYI
z>mikTac|axg{#PUw9eXSF13yFWVtIF6DM2H8i({aqhPlwbt%6{`l&*{cO2W3yMV=I
zgiOZQluOaJ(o`x>W>mGFj?1_V5T@Xuv^+5<cx^fLMJ$7ZdU3Izw3rnZ&3x-y=)ba}
zp>tv^1bxU-XO(xBmj*gvtxhK|QYp{Dv1da`(K1~CaiK8g{B{3jCT~AN<Yx2Aewc|k
zPvkH`1(VkW!F@6&kE)HUgs&Sx(?oLDQSr1ha9YhwW}eNi31sWSGAi=$=s9F5XVhN8
zc#<@<pUpve6^#y;(-b#_h-27kjdhABKg|$r4{65WMV5e#-$G`0Z!c<F-EtnXq=}ZB
z#?mZJJ;bu-hi)Tgf@;BoDZn4dnpu2>W*&hoX89KpDObF}G~i^+7xH%82A`kHM$W96
z%G|ohd~{QlIcnF6@U&Al|4^(Mp=3R1ROQAaa|D+pQ+fK_r6Ajut@Yl9Mop)P>Y?ta
zBC}Ll_5t*NH!W~m%$a{7?IAa3qse-!?Hl4nW;4k}vt2G%W)4>t+D47yh=4F6M70aS
z110bm;PI%YfjWqiE;q)Aue*)B*~-C~K61m<s^mCmU$G)cJx`o~DLyewg2k;W=4dWV
z8><ZQWvvQvW{HH`kWq!kOvf{-57lZzLspnZr#^|r%XvB^=(+~D{^(m#jB&MR;u}h;
znABWNTxQKRM~W3sYfH5V!tnMNCvQ#WT*7@TW(fxw2<o+BaSa9-;dqcCQL~)!3`1-n
zjOyTWjHY6id9%)nxvP^BE3V9v&NEqZuKSE((n|G`wp+H>M$yjHZGKU++SMX$ZZ((K
z{*J93$~~I#&}$BLO4g&h=}G&?uMT$0Jr^E`+$U7Qeg(;&AIbF#nP!TtJ7RNm`S~Xg
zv@r(4e^n*_ulIxxu3LCk%9vH%ck+;GsZ~q-omf9bD=1(6$LK|lKWv`IS-6esR}#An
zER6E9ICIBmb}{a00s$<_vf^?oW|EAm|E5HNSW``#Hch9?WT+76b0CIs#)Apu?!#D(
z){ErWLo83{Xq$#-J6dXBXQBap_-87V;sj>^Ea#IxQ^K#^j!xUWIogh+nn1>d=z@%#
z>uztdW|eG3Db2)<sm?TRqEJvKvnp+1q1_xg;ks0-9~$Yoy)H`Y*&EFma_#f&GsSJ)
z8Btvl8F-z^8vUE1bk;_~3fE+6t^9kcme!mFzHiO5)yh2Xm6_<w&8{l`cS@u}aV-Cp
zB(Z)BOlfrw+3H6=rJ^823u>;R=lW=GeP5bN#>WvQtLM`AevCHL_3P>L@dyH)N22pH
z8Tmw9KJ!e)u7uW)jiJXm4_-=yAWtRYgpC(n)yl~a28ZQs{{R2+(4nD|&^M+3hyC$C
zLg)V;_(Sk+@LI4RJO%s*djIX<6W})RVenkg0nY(z!7<>|=={F{UJYIaei>X34gmS~
zF9*B9Gr;}m|6c;11vdlv_q9LZZQwAN1J4E*gE8;~a1xNu|2XgwYy&rgH-j5M7tDeg
zPy_419oPYmfDv#zdj7TG8n6q<kADt08<fD`q0_$^ybQb$OoKh(Qm_MT0}lh*NANXp
zC-@k+72E=D0#}1mf%X!79=-oBz!SkAK<l>xqq(=YtbVOhV3h*@RVZN0b=6`<l!nvy
z5M@^_X2HVFGV3gxs}{3Wi<vlu^gI`qRa;oKn5|mORxM_z@I!tLO>N|>7BhL-up%#I
zSom*hyqU(LrTq-G$Tp~jF_0Lx?CQ3LH+R|iAZp)?S{5niEjDC<k>BrBi$=JG8KW#i
zng!8Ift7mg-D5pQoM1H!mbqn{8IuS8Q_X-Pn(d%ooNR2(YdQB)Fv0c`&azo4>E!=E
z1F`#l`HIp1>s|zZK6<`l{r7=OfZ_n23eE;!L%07j(3t@52d@FY0$u^G2j4-T|0ehX
z_&Cs60KW}>3%myW6nGT)XY_W(_1_L|10M$;0w;h+g72fV-wXZ>d<gs@ct7}k@GW%s
zzXSgp{4sbN_;qjt_!aO=-~{j-bond5#b6yc8T>1H`?tZjz}LYn_%J&92f<sxFM%f5
z2Xr35Ztx87QFQkb7zXm^e;*zGZ^7SyzXpE^E&`ju>EJQo`}pX;1+@47YhWw54SUO<
zfVY4fz#-58vmgc^$9KO2TnsjX$Ad?L@6kv91ilH>Uta~w`-m4OGbLEeCAS36$1?q_
zZfB`YT|HfJq=f4(5*Ggq)@s}`nV4`*-mr}&>{?2;vh;+A%iU9B`xzU{ENImXx|%SU
zwagc!4YaA>E%kz!fxQ^8J&Rw>oS?EP%V80DhT~mhI8BuINJZHns5i`?A(L6zHlO<7
z2z<xd>$*$(Q8~sSa%~kMM$PG{277Ou3kx{py=;q;-!|0-@&#dXK%`K*jn_XAp4&cY
zoAMgeOq9d*8d@kG;~6S}0_<D#u24mMmP0?3cz{MK@(H8452|2ak<Jo;ppEDnc^ZR5
z*AgizDMSB$K}xW1Iz0{9m$O^p5Ok`%8KGLGXiM_Hv3DY*F~JiJQHR=U4vtdWo@{s5
zMe)1>s1-_0hR)p^<2p5;q56PuYjcMlCR*F?H8`3*V4I-}^zR>~6$p^}BWQ^|ULrt1
zd#VX8sZZg>6JbKgin)S_7C%5pMy(mQ8^ayC1e&-&7)z)#F&wStrWe|7XXqkc&oI?j
zIM$5lg_bTp(p)z=KUJMh44WT%hu(zD<cug*H+HuE_y%7}`|QxOLT%u=8XJ4jxN)Hc
zRmMEt<Ph8=-@gkS(eScStbL1}7``!CpAQk&iw?47a#_z~!hZTNzX!70{Jdv(pE<;B
zXs|8C=SGB<+nyiQ5V@*s*2(opWp0j!u!-5Wv#YVpJzer-2x1o*mW>PqI~lKtk@>Vu
zQT}+MzWmnt(LDrFz<|s_?RH!y@k~th#9!TyQ-@H6o{D?-h4oW<*bKW&JKmk`HyibE
z<&v{vE!sEvz^a7irr5h}D9JVNXJM;`CuwqL(1N&l4~1;{_e@OW8w@mb5I!V))Qk2{
z=!6H?MIk6}u`Wt#{$uT$l}#I4nwRR46%Ij@0D}8$<>QYz*drAXE7)N&X<iYYjklLg
z(I#yu`%-}g^c<M<AY?de%Tc1we>z>lfIFH5aV*bMBoL-JKxnBy2SGjNx#Wlr$<iup
zlX8uTDaJ>AgjV2WY*(KPOzF9Ct0}?Q!Z=vw72`CaE)UGhYH-w9mDRAfjk!slZ=+*0
zlDr;tlPnU_0(xCjEys(+$ck}B{l@hJ;mm;ruBgSKyE5^+$%2-h{EG-#ndPFNC7ABE
z!(0m0+Ug?-wd>YJKWkTBs+Y98b2@PW8N-5z3WpA`)LN!x3D)i~0M_Ek?o94X02*~r
zL)8MQLp@67|9=Wf<c-oL(f`Bw_R{mm!13S*==5I)()qsxz5reTq~kveJRPhDj|YnN
zSDe4j`};0vfyaPjf%fCy1O5u!1#So0o3FV3Gr?oPzoE1LGtl{e((hjZP6qEmZ+|;@
zC3r4q0r~Ii;CS$1bodW~*Mb*;1uzfhz(1h7zY?qgzk}ZXI&d|(94J2j7r<k|qrfA<
zPk>)VcmGB3b@cUn!Mi~loC<Wdzx4Ji!LxwQ=Q|x74|Go7!@&>H*MA3`4n*6xE?Zac
zqtQqDSm<^%&BipZPT8?BY>g#2J1VaqFRyWN>!z@|$%}Sm`vN-(<76iLbNP_!2tl=_
z$JR0wVjCHXiEqS}7WYlpYBq?#%;<NnKxxFu4#Xf9x^kT0Jj|(9)q}$>0N5#LJ-OP7
zXlh$+f$+b2H7bXLvdqdS<3Xn6yu64egTU$5POlV(hqKd^71kZnu@%o9Dt(kBvI8(s
z-fbE#%4#{Y%M!`jVRL&>bY{rgrw$KAd^j6qx-?sF*lBcIIK9aoD28$e+n-2&yF&=W
z-o~}jrA;>In(&pXg%~{MP@Zk$ZgK|D{<#XV!TZ&8a>T&wHXYcb8LGNdhHP)eerMr`
zYx^BLP%loRdo~aI#Z1SMYzl4I&E2ewU*VLeegtKB>1Y>a;d@154@@U!JS4<Vdi80H
zWWU)N35dfBP$3kT%+YdKedaI&D<}5MhcT8sX%(8BM2WG$aou-A(`VCYHb%9zwbJrk
zoDwy=jdp$5MjHySY6RPo><!I1Y&o+{^a~d;trHGH{H32^uxpmbdTzA#ohO8R=E`Yv
zs3rY~z1(8`P$QG}6=jd?cn_l|JJ8*#;7Ua?EtsEds&Uy*1~#&w)!N>U_3Z7iPF{Qp
zgmJL=1duJxA7<wt2+u`)+#IOP`#F$F9Hv3$(vN2*WC|#Uai`G#l}(2102(iy+jj_Q
z0~I>jflBqDn_mo(R&$<hm}V_Fcl=4}J()(r<WOYxRCWOL8A1scz$WLW3kR2J5-=zk
z>{5f7W}0$r3%4q0{wQg)iYSpxg&y@gJG?SPVr6l85{SCy$3NT_<*s#h5w+U!cDGNh
zFuuGs%G*86Flpp-_6@&3g3V+}0*1d>ZwacoZEr!LU)Butbs;-5BC97|K3N(?Bjxqc
zSh%yOwz5RSt%^sl#aTL*L)7g;|LU^nIrH|?y8xGUc#OuTKi5*+D7OV+S)}hJx!Z8Z
z$$d@oPH!uWH$P^Lf_?ei67)BM?I76qX!U^thf~TgtKG?v<Iz5&%yKOHL$jLHqD|D(
zN2_hVq9Rw?L_fH)wPa*1w#X@Iww(wxGaQ86MPNXl^xV(nT;r_lA&0X{z;zm|+j>~`
zLoHJgt>SoUmb2*T)KyQFB_uyzOo4>E{l-4G=|*QZa-btS{7k%2O`UZ$xKpgf&Ps$7
z=1y_*r#N@I?0IFInHLmv1`<3+YYELpU33aStI1*`|5YWZ2w|on2XbO%vl)(e(X4j%
zNISVwLP<z!TXiSI8vXG^CbE>R=TcrF5o6%CU<{LTFeSpNvTxU)%egbTIq5dmENk$G
z%F*Z`KuOWjR(OOO7Ez-eYoSgK!sW%(Uq%O?y-cH`IjEAeb_<=n*ckSkuBf#$?3e)N
z4$ihEN-L1tyl49iC9RIiHk25Z5r~m75fQDS3>5k1g1<}$Nr@T*ovAvuCP@sT;)X^Z
zCj_|XoIDTDkpEw*>Fd4zAKqW5z5mYv^7*d?CxOQRo%8oF@JHzXli(!qRdoI@f{y{6
z<M*2&#QeXE|2Ke9@ORh%UJEvZp9Qy}?;ikr!H>}Kb;kdN;CS!|a3gyCh2SaR3tp$M
z@_jYX-uq$j^WX{KB%t{FmxJrUUT_K62u8s=@C)Ft(CuFa&I1nx+Kc}=@DcDXpt$_s
z1HT2ff#bl#!I#ndwHN<Z@IG)8cn3HKd>(y&Kaf3O0+hfh;HSU|;1OURJHWMI510Vs
zU<3?<p9i-<|Mvmw2blmOeb73CY=ZkwXKVZG{>#n)8F;vcdqPs6&%~dvfu<!t7`yh8
z@lY@+U1nu1M>|+1lT3~PFV;WGtM;63EB4219<>Rg=OTYp3{GE}Ix5cEI_h3O;KGAQ
ztG2=4rBq3(N50^2@x!AoVqqP|2oCaf$K}GlNC5x9M8+Xd^5idrVd#+ZK=s8nAsuR7
zXy$HXvhHOF-uIp^4DGJYEYMK_VUa`TScvd@C!1Mq&GRmKccT?l7<h!#ZE4MXRb}H#
z+3KMt$NriJPop3ejbW8`NP}24M+qWZvmcnK0jfFIZDBlht_ZaRa||aXn1fkdM6SNf
zUgtvhr50p)5@%TMqzJKMP3uHu9Qmmy)_R%&$XYne7HI56G^E9W-a3}7!PR7^Iz79L
z{uwQdM1Q_Xq)&DlC2Ev=VS+ZK9W3<L1AV)~7QGci%h5r%KBd$UVUvQ1O|X|}*ld)T
z;FbauHA}((mW_59O@4qa_Qi+o&%W`Q(+ZNBF6*5VCh55I$Y`c!7SNvYX7uE<v?kko
zLz2jbOyetuI9*#KHyN;+C!u=YrsJoJEs|z1Y~pJcommmri4_nEVkZb=m2@u`Npf@j
z;rN6J3`=x~md4N>It08ig^jVfjE*SC63ZQW_DX}JHTD|p8qIG8_fpcJM!T1AtgywV
zNi4H{g_dbp9AHx0Ya^0AN_rbE<Au3{9LJ$!RLUda=9cITn^qHRY<n!$XK}0a{)E53
zCEO2V`f@vb(Pp2Ua|=2=`e4-J7;DU=ox`$}*wRtn;xnC)8-*|&8RsS=LT=DG+>zDJ
z;B0JZxTrB@im-*qA3sxLQ8I_ih!P|gI{jb>+X*0BF1^U#KvaY&iV4Gh(`k~%O>9$T
zj9Hj3E!b@ouomKm$W;wo7deGo`}&ic8HQKZdPru;*eLWB5hQjRN%j<-v_?_y#7&!L
zVmh-Zkz4qm14uYsqh%@`B&VyD-dQ5|u3s0O^_(ZK-zO_(SDlhDktd%O`Z1xL`~s4L
zSw~<2Zfb{>D~y&9-8O(_h*i1Ouo4bziBig@^PVyi(uM9IW@a#9L-`z-Bc50wX%vmX
zt26<!h6xQ8r?n*(zi}ghBT>jQGipO1h;&2~mJ&PtsPsA!HZ!b^25E0vA*NdQ3=3li
z9KpoqWKODRgtIN8D4a8v^g$z@B3vuPHL|!yDs_Q@&gk{V=gbsRjgn`bU-pnc7b$(r
zhg`Xd7kYhQgOp`k=Yh!5@02FJLP6teK)d`qEY{+>@KZ&nrF0I*xV$ptvL-YS&=?hw
zx<rg$1VV@EZNY?<lf9GKWKXAqhr>pttmozMFi$j}m$St1=9y6N;^JrU5b(kp|3G+d
zH*Mm4tX{u~SaTnzi8-5#4o4fE$Z|S@KZtXZwEc0n-j~>!=FL}_YwQrLgxTke=RKx#
zBfc95%23l>;uO)k;=KLy%WDsTBdYW8i6uU#tSt#c1b47=*Cq2-<7K)5mnr)P;_tGM
z!XEm=3zMm!vlHs(I&w>dDxGoHCHxaP%8ucI7Mws`m-Dw7qVh87#RX^evKzqiC^o?v
zEzUAlNn)RAbKV&z{r@D?&G&o#zbxI8&rRs~zYeNkFHk(d5V!|@|MTFlz@LG40>%An
z|9=@=0xkfL2A@OczZJ}bbwFqT>AipN1TO}A!IQx-I0JkIJAn4^Ywvys3<Jdk+>0&X
z13+i=Uj{A)+kp1*{~or1E5UI<F#s2V+tKqs0d50|>whx%BD(%(!TZ3ozz|UU{-?nE
zz)j%ApbDM_BB1^GCxUOG<9`}_3cLm^fO&8wxB_ef$ARxY6gvfY7kDjr9#DM1Ch!EH
zv-$oS{0Vp!kWFAOSO-o7-=`1$7f@fkPyNyN6BRxOFnAqI&zJ~zC&X8fk$3utO#d!4
z8-9heH>wo`j^Pk8Gwk_X$cXPHirC`=P?jtLy_V6(D^*rpg!lX`S%P=Pth|7W2*t+H
zwPXR_8oBZUc3{(9GIwOR6%c2akLg!8FPU|^ZD8efcie0_MHqXbfT7IjiQ0(32%F&$
z7rcqr<r65eVwdWTZk!*<$RZ=B(L9}{)h;0^J@as5r#pLUA<b`1K0C)^H;26n?Y)7Q
z7LQ^H*CmmLLUNVMpNSKar1^1-ixrlybV$cty$&Z!iloG}c4-1NRtgrPL7D|;!Vpj+
z>0vlmH9Kv_Q^I8tW<13vZ#j~5!I|@(fa_dsljCE;DO$3RgtN08@gyp^|5$8zTtZ+u
zWMdIJ#79sktWHUjbc|QB)TbGSr=l(Sq$Ur~R_3%g`#dBKYaO$aIp^P(-7f|t<gW%6
zUIgaf_eHsm^lLe-Os*GYhyGx~89OPuoFb~aaU+n+Z1nP~>qP^yTva(GUmGiEE9v!m
zfz<YOiM=la)y8*%)x6@VCRyLLji@Y2ak^tjIzrnrjao;wBpsUAl3BKUYiIKP0u~R1
zmx9ok8EB$O$r*o3;dpNM4oRJJG-~s><W6~2TvBNv8a1^tImD^N6djB5=_>PSy6m%=
zwWLqE{*d$j<<9q%JKwk5BweQ5`9bBT?`H^SECotr?mX{#a;NFtv>c!v-sg}`#B4(l
z-rY+J3fZOC)6CGYUD`A&P5$1Z$ZM;6?Pz<tQj1Yanyv8a(Ik^~(db#@nPzIn`>c{Q
zWaPRD_U=Tx3!>rEWBUwqjFc~>I^D#kJF<89^o<+OKI@$E;dP|iux;x_TQ}IhThF<8
z!`bfNi!VNV;_L}`b;E{>Hl91YZ%yVsejGRD=o!X6b2jC^M>5q_%l&e^DZFYfgj__>
z%!uq03@LH=Xc0`G(61!9e&k<Ai0V>F6YE!!SU(Dhd0k2-v0nTZDpKJ`ns~wsPkza}
zZYb1^=9}R<G)O!}2ZknZzZ>WoO<7z@t_gczkB|J$PB#}6RSNP_^3(0$$q-pDs4F?E
zxqIH);b?2ybTVm!n3hXlD8ioc#RY+oERyyYJJ=m1mL5u{ZIzy+$upu|Dt-90>4lW)
zKB0}{G@1R(C$iJb(n8^`l(|;}s_-7m&^n(s{LJTOZDxr$<WnWTLrb(9W2W$?+d!Pm
zbJ<IJ)Sr=8#gH7k&Iu_p^GR)XY|WSMe&~5WI-D!sWe^&W$zZXes(4?ftG(E;mYJ|x
zdU5)g16`XYQG`1#=uSMQ@DgQMOjsYS66u?f!zpzA#0dXx$sx7R{4e3H*FDQMI_e>e
zvq?(7d>3jFZf~baggtO}viF;$^J?&d*z<<)t=<}(@@XSu@%5B_E}nmW?j4glEj478
zB~(8VYrs3ggN;uXO*3eQre5eNku4+KLq7AK7JMwJId<hv9O?h3pl9AIeUteAgI?#n
zA6@^C!S8{Wf-As<;8buwy8T~(4}zD27T5<if(_sda4I+v{0z|h0)8L;|JT4_pmzmm
z-@s|$8|eL?0B-_s1lNPB!BfC@(EV=(w}2Ocr-R3Xe?jlR6TAy(ufNXpYl9hZ5LChU
zum^k@d=mUV_+6m)_vt)<4dCJ6N7xE}2)+w`8(a@`&fj*h1^g8FGPZ+{g6z3|SMd7>
z*bnXnp91dyZw7N<Cy2l);AC(DkX=Ex1ihc{7BB(6k3HbqK(PaQPv0AW&S5NrZQxY!
zU2Fnh1@8cF1lmvVLhy8OGWc8iO#Sxdfwls5X5>GCQS4w1^%MDkmbnmLv(~Q~teTlc
z!;;vts*^;W`d-rS0z*n?l6yjH>t=hms=cl_JUZ|x7FHK0lVMY7-Sc{wl@M4VrG(6V
z)Y3?}<<_xGV>lU@*FXoh<>^w)Ej*pJNP1bgx_5jZqO)FgiejdJl9^6+G{SF}4atX8
z$b`s@Fu%vsFUu&D1!|eUlVsM*Qr#ZZz59+Ni7oHNd26Z)g|hua;n{H6MIuS>iRAW3
z4(;bfc769Ir8|;BPSP05p&j_rT2po^ba2KHbK+mOAn#4)xbYCd6n3J`asDq0x)i8N
z65bT5seJVw!k}hm3U@EPLxm#mTy$FI)eQ)1wztcfrPCm_vU(xWetg&qlnuo?*9J}K
zle1{%!Wg)(_s{AiY&oegSfk2PA<WJGFkUoW6K5d-*Oi)ZiqIB#w^tKY8@7f9Vwz$Z
zg2;3)Gez_wIo5J%;tZp71BREYi7Amp>}<ox(Ie)J#Q4o_M)o6w7g%@}&=aOy)G6~}
z*bHOEI2-MJdFh<VUL|4f{)DK_eAw>erh5bopL&tm;G*k}gnYv|Se8}57aN}0?qbVB
zRuYQx-Rwwjkt)~`W{h(5o}1|<wl+Xm9<nWac4k1jb1CW4G&I?_&A%#S>B!}*@1hi0
zrIRq`V*dnIzBxp6ru`9Up5gu>buZ%&i7#?S(O!P#A6-TV`ILd!%jzIsY<MOiqR%T&
zkwE^H^x1N$XoJ{htRLo@O({+7b|&OGJ0bK`A*E%s**Ji^6Ub~$=$Qmcz6=5@S)kOi
zsH@V#0|{xBOP;P_TG$;ikU)KCu%Zbvkl6V}J^w4>BQ3Aw;`gBJcuGy()W;H_n<WSG
zERqb42UA`$n?2!>j73w<#8UgnE!1G9V75+b7c@Sl$A0FY2v<wIJY7k%AImZ%u*c?m
z9-Gf-<l$L+E<YHvmr`Ckh>+IN`7_f)!J+HZlj#T4JGei2aQ%QJ*&RkbM3$r#ELj@+
zL!ov0cFhTPF4h$PZ@wV2i!c8a_VMMMvmPd@H?j3h)lic~rmJ53#&YGW?An!@-Ni`;
zTCrWJ;gMv@>KO|OcLtK|;vZ;a2Qq2yw*6~(lF1xaAw+=ivVp<sbAD<b$@hwSMpaqL
zDdH`cEB5^Dq%VWMVt#>)Jg>67^HQl+?%3Mmm`9lPUM(72jAu3>{mKgrPcB)~A<u|b
zUIcBLarUO*?#WLOM=)A46O+00|0kg(e%0&$b+7+R_kRhv6zl*x2jIQv@$UgT@9!$`
zIB)_u9vllkgg*aLpm+Z1-G09c+TcncKmVCPI{p3NtKijO4m=C!41klsiQwz#@1FuX
z)9-q)7wiCA!320bcqGssfj>o${}|Aj00+QU@K|ssy89=<ZQyl4=K{oFJs1ZM2cJcc
z*Pa3C_X}VLcm`MpP5}3#yMGwG5|qJya1PKJ0e7R%-v#ajp9OP3@A5kjg!lK|i=MAN
z0xtw1R^T-L{{g!Fo!}2Z7mR@?0mTSB9-Ii?kAD9KAbr0I6elnSjs@ZDzxx)|`+Y~+
zmnMonnyAj2X$u(MpjtfB$%r)0$G{~xxDAouqOl)tAWbL}ILa0cA<`ABgO+j;P8dXY
zOE+ZIS|%g30>cvtAGCb3vJ0HBEsG{Qs@Wf5(gC`ZGoAB#5+4s?vBOmYqB_-*v?L;x
zokU;U43H7B^NcWWy|>lL8E^eNP=fw8*m|$V2OYDN=&A07D(TbKMFp;BrG=&-ScIM|
zN)-8Y^JzLn2$dc_M|;&A3K`po3l;TJP`}Fdrt4qX>;Ux!_ICHcNGPG#b)kxc5xdj(
zeea+R&o44=odM=ZGJsqYmpODp$>E`7^oD{54dAd~pvh~xJ&;jbY`tH5I_$NWDLKnT
zW^{$rUSP~6_EJNi)H~20a!Dm=kj}N2F6ixFNyFJXWQT5VY6-!))R_UCOKnniE@ei@
z&Zk^DPxt~3EobOUCyeDHRWPZOeq<V}L26YX!G8N^rwbCmS!z_uP!OBpgL!{XLf|}a
z>cds6)+txfSwmZCT`SI1hK@=mOUS}^tI}sXR7v$o^P#cf89%H>{6j9K`zzY$ayGSo
zCl*$GTSM6g(mY||2Ng5F3y)QrJVSRqmZyWRgf>%R__t(MP50`mHm_((Jgo&<XnV<s
zUe@H*1hLchpf@pDS+p(`!ee{)rK3i=jf@me6CpD;Xa)c$fVj<98Oy5}g0=%#kuue>
z;)b9Ru4!DVM^jpbyeZZP5hYjjPO)L_^U}FFwP9W{mE787+c63>be^hw)!o#|wBNn1
zYE4>!JmvGhM4L<wbKUl|Epr8WE16re`p-Pw7af(xwt^_nEHRZJvz8h0dSAh{RF4iR
z8+}5R2XX-`pk&Rls-!dvk0#^AM$wRE%O87?OD+QrgQ><N*<cSw1@Aoz8$w(%HbCm_
zsV-E=pC{v93#weqaOvIyD&sPjddG-JQ+IWo@KW4Pbtx4oNO4v#7M<dN?R88z&311{
zxmhng-{;zyERN1M?^;o~<zJ2{awT_Cw}sU%Tu)C#vRz9)m4%HPVf=APYJHY0gz2Z9
z!OoY=HU&)fN^SR3v;V|Gh_kV~*-2>+^ORc47JPT;E<Tdkxvm-govy8U>hdJC%k8u*
z2l`m>oaVBu?{*e%sT>+;+fYP#S4rEvp-oX-QeTFr)S9%msVHGR3EN1Ulye<uNtTa5
zz9#1ru*IJ(qJvfcyo_sP3^K0$2)u5vjJqc|4O98H-;+TO$}j|`fOiQ_#hkU$X=Rw*
zgde?mDaEc5IAAT@MciJTapHv7BU{fBhVLtG;!5AL1HIe^;?Q2x7?^_2g%i0qWv8rg
z=|(%bix98%nNl@9-3=yWl83vJuXg4k$mHBk>B5uxo<eqv3N=x?p7T|f{*Nkb`_JY7
zkG<OX8T9?Pf?on#fcF32fsTJO*bkls6zhK>P`v*+K(YRB1TO|Ppm+SO1>Z#Pe?PbZ
zOoDN+28@6Ryak>A1t137z-Dj^xC{OM4?q)4gDJ2d$hZGRa2t3Fcs-Z|PXLbtCxOR+
zH`B0J0G$E26Fd$49MJpvz6`zuz5t#Ev`63+Aiw@S;3MFVz!7i>I1R|J{}6BsI{wYz
zb>M2S7d!?02;Kf;;G^KV;1uvlbonW870~$r=Yj8_!+!((J-7qB2fQ3y4K4wv0G;!H
zFZcrZJka?7H-qqr{70+dX*QvPZBfgiV<;raufq9X%E6wj)?3w?_%hyq-qlLbKtM^?
zF{RRnVWz~+(-moRECEFLitX7UOXC0Z^|I?;Z((Z*gVr>?GGCq=<*u8MVgFv0UFMab
zCpQvAL%t5GF21-L9Kh8u8>E;dQsO*^6Z7?<u`ANzQ(ooRW7-2MqnGZ<<W9Mw6&?7?
zI@&V7$rjASFI}4FM62Spg{T;k=Ngssu$sKIF6AhmrxgtiR)ZoZRCf9-v&N&AN#N$b
z%7u&l>ztA>u-uX4B?N&iS~Ru#1}?THPiNJ0!mkWFq>-vJp2G(p##%>IR@7{mi=NcS
zYOi})2CUzCT4mU;o?2oOrWp^4im_rtBMX_QbV)<q^36`V#wJR>rbM6H1oPil^*4~H
zhWb#JB~O-;d_ft>+Gd}sE%hm#y{0gklnDV>;9Ie^x<?2tR^4Jl5<bu?iUt$SUQ1XM
zLaz&!N6YrAA!~6WqUP^jS-h+E4)D;Z?jiXu{czD8dLkQ=VX};5_wcrcY#7Igrk#t{
z;ICqlgP_L#fyq`=VLAC@iHVYlLddw7vWoMoeeo!;j0JPT&ki%Cdd*%>I-_uOraOUy
zeGYyQT6%vfM^E?Ib)^m3Y;TVQl82;$P8TwC^saW5-Jh(k(2)KzI~WA{#kG@t?G?Wh
z+nIk`oK<M2WWgXLF^8j^z0pizFHK&h!J%6WS#?6CK^6t$@M2=H<EO!l=PBn6ka|J2
z5izhm_Q<liy{#%ioh&KC^*(m<aBFdbh9RCw9cZ*PO~XUUaNS{>YkP_6N+EQ(KULFq
z_9twxwhty~7;{<Iy`2$SIp8d0#S`!|OfmaxFpt7*LZK-$3JDW;eR=`6Mn3&SIx$qI
zOuhxhI6StDK_8MXzk|^5n3>rMgl7{iuQ+H28IHqHUD|MLLBq>Bojt=yjFcg$!q0=`
zJqB(zgyt8!E?hTDZTh3oZ^;c=Y11EtRAD40@fB9DaFr6$eqP$XoPSokj*8`mQL-lu
z6IuE22vay@9=dqx`OEMKC5MNSap4X;PHO!BXjtSW-TbeJj~^+Hxo<&Mb~e~V#$D$e
zk_9Qni{hbMGXqL_O8TltPmRWtDXFV`j*e)b-C|>Mnp>XxdF2v8%(bs5iP<BCrWM-a
z3NXiN@RFq?UTr$sBAE35jVP6WDcutNzw8yvJJ9#v1zrdg18@=849*7|z=zTI-v({~
z2f@?92#CPl==?hOPq6^913V7gg`WRw;MHIs_!|2CwLt#=E#R@>esp`i%kNh3eDG~_
z_}it&gExW0U<-H{I0oE<F8_9*^Zs85Ccs8;D)>6O{0G3>z>VNAcp|tD{arEpI{*La
z;C!I70KbF&{ta*+_zIAJ|2j|smw;jLDDV*Q8T9&hf?o!s;2$4K-N9GEJ>cb_4y5y6
z07ilQ`~Qkw|J&d>U?0#qfTKXM{6pX#`rvaweQ}5S;{km%O7zJvYyEUqq)kq*<ct|K
z$?<|>>h&&e6gEhq|MXmxz?!>gBQtSx!L&1G2=t2SPG@e@*cdY&Q)#Kw9Me&Khbs$X
zJ}{_MY0q77ZKJt){aNeRkB^U^d(M!mt&e}Y&Ep*O+vOnWcB$Dd#kKBOb*etfyZXjr
ztk4Hb{JNmltZqJoliTan&F#(^xb)}t6J)!2{G8HRXUtWm;>}n`o0t-nv8r73&r$Il
zOHY_eMz{?-c|3nhbqK8>1#x!J_NIbc(CUM=^0HX(lyMpae!(OtGu8cqV@O743o#eZ
zNYkOLde_hr(wBdS4Q!@4ImyaWnx}a5w`y$5roXt5T+BFJMK^a}-E4*m?^!34;$C8J
zwFn9NY&OmgRa=8YEvTFSH)VpE1QsFS68Os5`m6)_7cREfWEJ|7b;MW0`_cP#F65ME
z5>{!;KlDymqQlLQUGaXOap1ibY30H*TkQP-Qf;g#nK-;a?)5%*;#6MyV?R22LRP&b
zu2KieXdAh`!fkNx=U3$izDT+TMDCN%RM&d1=<3n}fOW8!a)Y!}STq-x2UN^JnLsxO
ztmyp;E-cS_dWl88UoM5}7cxzZnT1BXv+guRhg5F(^wQOYhA<SFyi6ObMG!Evl5fZ*
z|BTI~{4<&9u4e`kbSUJg?}RpqrdgDMa)m&M+~Y@ExCvEb0kH}(!Dh`nrdse0oT69B
zD(8D)mk$_Ukyg55g~-*6qr2Uciq&ODPpp$uHNjKzgsNfC4&7TAE(I3J-9CD6Z=$TS
z2{#{cx|=;6Sb37w8Z8F?^)(zX#xFJ>>1C2;vpCb+<o&{u-x;JwP5#}@iN3q8?XpbO
z(#k*v@9Oi7O7$4qvBbD4yiKw|nPrZCqhgYF@ll^kJ4nAwo6wtFifis_i8+;wce|6$
zP?0|TQejsui`2GaFylR~&33;iq4TAxhPhI&TtTVx%P%$U-q1vM<k@1~s<|6dJAxFc
z*&|7~PD;C^n8lU79TJ9k7!#Jod@BBmBV|Xtw!C=(CwqBqlpJsk1&zqbg)}qBU`x9E
z^K<lZy@|g~?*>dqg~}^V6KZWth%+=X_!66|DMT?z3B5%|XZbZ|LS`*LwR(i1Bs1)l
znw7F$Yr|(crLS|tH6!|Z=_uHB)5Jbya*|L;k>ormK~jri0+F#GOnV{9H7KOt=??6X
z1jSnw;Adh-MpsEx#_yd7RaTDWtk9I&<h@*I0TYh-xifishv@PJtGo|Rg+pkIy7Zb>
sK@hOcLJ~LERW`ZJ>-@OZZQF;<=x}+;OO;Qf!DRPHQ&e+|%~SsW1!dnJmH+?%

literal 0
HcmV?d00001

diff --git a/src/body/.Composite.js.swp b/src/body/.Composite.js.swp
new file mode 100644
index 0000000000000000000000000000000000000000..0c06b602ec1692220885d40279c4d2c8bd4a69ec
GIT binary patch
literal 40960
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

literal 0
HcmV?d00001

diff --git a/src/body/Body.js b/src/body/Body.js
index 2190968..b7767cd 100644
--- a/src/body/Body.js
+++ b/src/body/Body.js
@@ -634,6 +634,26 @@ var Axes = require('../geometry/Axes');
     *
     */
 
+    /**
+    * Fired before a body is going to be removed
+    *
+    * @event beforeRemoved
+    * @this {body} The body that is going to be removed
+    * @param {} event An event object
+    * @param {} event.source The source object of the event
+    * @param {} event.name The name of the event
+    */
+
+    /**
+    * Fired after a body was removed
+    *
+    * @event afterRemoved
+    * @this {body} The body that was removed
+    * @param {} event An event object
+    * @param {} event.source The source object of the event
+    * @param {} event.name The name of the event
+    */
+
     /**
     * Fired when a body starts sleeping (where `this` is the body).
     *
diff --git a/src/body/Composite.js b/src/body/Composite.js
index ec04e25..1e9a720 100644
--- a/src/body/Composite.js
+++ b/src/body/Composite.js
@@ -238,6 +238,7 @@ var Body = require('./Body');
      * @return {composite} The original composite with the body removed
      */
     Composite.removeBody = function(composite, body, deep) {
+        Events.trigger(body, 'beforeRemoved', {});
         var position = Common.indexOf(composite.bodies, body);
         if (position !== -1) {
             Composite.removeBodyAt(composite, position);
@@ -250,6 +251,7 @@ var Body = require('./Body');
             }
         }
 
+        Events.trigger(body, 'afterRemoved', {});
         return composite;
     };