{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 950458c031dbfbf07514","webpack:///./src/react-motion.js","webpack:///./src/Motion.js","webpack:///./src/mapToZero.js","webpack:///./src/stripStyle.js","webpack:///./src/stepper.js","webpack:///./~/performance-now/lib/performance-now.js","webpack:///./~/process/browser.js","webpack:///./~/raf/index.js","webpack:///./src/shouldStopAnimation.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./src/StaggeredMotion.js","webpack:///./src/TransitionMotion.js","webpack:///./src/mergeDiff.js","webpack:///./src/spring.js","webpack:///./src/presets.js","webpack:///./src/reorderKeys.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;mCCrCgC,CAAU;;SAAvB,MAAM;;4CACgB,EAAmB;;SAAzC,eAAe;;6CACQ,EAAoB;;SAA3C,gBAAgB;;mCACH,EAAU;;SAAvB,MAAM;;oCACQ,EAAW;;SAAzB,OAAO;;;;wCAGW,EAAe;;SAAjC,WAAW,iC;;;;;;;;;;;;;;sCCPR,CAAa;;;;uCACZ,CAAc;;;;qCACjB,CAAW;;;;2CACR,CAAiB;;;;gCACjB,CAAK;;;;gDACI,CAAuB;;;;kCACxB,CAAO;;;;AAItC,KAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;;AAS7B,KAAM,MAAM,GAAG,mBAAM,WAAW,CAAC;;;AAC/B,YAAS,EAAE;;AAET,iBAAY,EAAE,iBAAU,QAAQ,CAAC,iBAAU,MAAM,CAAC;AAClD,UAAK,EAAE,iBAAU,QAAQ,CAAC,iBAAU,SAAS,CAAC,CAC5C,iBAAU,MAAM,EAChB,iBAAU,MAAM,CACjB,CAAC,CAAC,CAAC,UAAU;AACd,aAAQ,EAAE,iBAAU,IAAI,CAAC,UAAU;AACnC,WAAM,EAAE,iBAAU,IAAI;IACvB;;AAED,kBAAe,6BAAgB;kBACC,IAAI,CAAC,KAAK;SAAjC,YAAY,UAAZ,YAAY;SAAE,KAAK,UAAL,KAAK;;AAC1B,SAAM,YAAY,GAAG,YAAY,IAAI,wBAAW,KAAK,CAAC,CAAC;AACvD,SAAM,eAAe,GAAG,uBAAU,YAAY,CAAC,CAAC;AAChD,YAAO;AACL,mBAAY,EAAZ,YAAY;AACZ,sBAAe,EAAf,eAAe;AACf,qBAAc,EAAE,YAAY;AAC5B,wBAAiB,EAAE,eAAe;MACnC,CAAC;IACH;;AAED,eAAY,EAAE,KAAK;AACnB,cAAW,EAAG,IAAc;AAC5B,WAAQ,EAAE,CAAC;AACX,kBAAe,EAAE,CAAC;;;;;;AAMlB,kBAAe,EAAG,IAAa;;;;AAI/B,uBAAoB,gCAAC,SAAgB,EAAQ;AAC3C,SAAI,KAAK,GAAG,KAAK,CAAC;kBACuD,IAAI,CAAC,KAAK;SAA9E,YAAY,UAAZ,YAAY;SAAE,eAAe,UAAf,eAAe;SAAE,cAAc,UAAd,cAAc;SAAE,iBAAiB,UAAjB,iBAAiB;;AAErE,UAAK,IAAI,GAAG,IAAI,SAAS,EAAE;AACzB,WAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;AACzD,kBAAS;QACV;;AAED,WAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,WAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,aAAI,CAAC,KAAK,EAAE;AACV,gBAAK,GAAG,IAAI,CAAC;AACb,uBAAY,gBAAO,YAAY,CAAC,CAAC;AACjC,0BAAe,gBAAO,eAAe,CAAC,CAAC;AACvC,yBAAc,gBAAO,cAAc,CAAC,CAAC;AACrC,4BAAiB,gBAAO,iBAAiB,CAAC,CAAC;UAC5C;;AAED,qBAAY,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AAC/B,wBAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,uBAAc,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACjC,0BAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B;MACF;;AAED,SAAI,KAAK,EAAE;AACT,WAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAZ,YAAY,EAAE,eAAe,EAAf,eAAe,EAAE,cAAc,EAAd,cAAc,EAAE,iBAAiB,EAAjB,iBAAiB,EAAC,CAAC,CAAC;MACnF;IACF;;AAED,4BAAyB,uCAAS;;;;;AAGhC,SAAI,CAAC,WAAW,GAAG,iBAAW,UAAC,SAAS,EAAK;;AAE3C,WAAM,UAAiB,GAAG,MAAK,KAAK,CAAC,KAAK,CAAC;AAC3C,WAAI,iCACF,MAAK,KAAK,CAAC,YAAY,EACvB,UAAU,EACV,MAAK,KAAK,CAAC,eAAe,CAC3B,EAAE;AACD,aAAI,MAAK,YAAY,IAAI,MAAK,KAAK,CAAC,MAAM,EAAE;AAC1C,iBAAK,KAAK,CAAC,MAAM,EAAE,CAAC;UACrB;;;AAGD,eAAK,WAAW,GAAG,IAAI,CAAC;AACxB,eAAK,YAAY,GAAG,KAAK,CAAC;AAC1B,eAAK,eAAe,GAAG,CAAC,CAAC;AACzB,gBAAO;QACR;;AAED,aAAK,YAAY,GAAG,IAAI,CAAC;;AAEzB,WAAM,WAAW,GAAG,SAAS,IAAI,6BAAY,CAAC;AAC9C,WAAM,SAAS,GAAG,WAAW,GAAG,MAAK,QAAQ,CAAC;AAC9C,aAAK,QAAQ,GAAG,WAAW,CAAC;AAC5B,aAAK,eAAe,GAAG,MAAK,eAAe,GAAG,SAAS,CAAC;;AAExD,WAAI,MAAK,eAAe,GAAG,UAAU,GAAG,EAAE,EAAE;AAC1C,eAAK,eAAe,GAAG,CAAC,CAAC;QAC1B;;AAED,WAAI,MAAK,eAAe,KAAK,CAAC,EAAE;;AAE9B,eAAK,WAAW,GAAG,IAAI,CAAC;AACxB,eAAK,yBAAyB,EAAE,CAAC;AACjC,gBAAO;QACR;;AAED,WAAI,sBAAsB,GACxB,CAAC,MAAK,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAK,eAAe,GAAG,UAAU,CAAC,GAAG,UAAU,IAAI,UAAU,CAAC;AACnG,WAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAK,eAAe,GAAG,UAAU,CAAC,CAAC;;AAEtE,WAAI,iBAA6B,GAAG,EAAE,CAAC;AACvC,WAAI,oBAA8B,GAAG,EAAE,CAAC;AACxC,WAAI,eAA2B,GAAG,EAAE,CAAC;AACrC,WAAI,kBAA4B,GAAG,EAAE,CAAC;;AAEtC,YAAK,IAAI,GAAG,IAAI,UAAU,EAAE;AAC1B,aAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;AAC1D,oBAAS;UACV;;AAED,aAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACnC,aAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,0BAAe,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AAClC,6BAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,4BAAiB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACpC,+BAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;UAC/B,MAAM;AACL,eAAI,sBAAsB,GAAG,MAAK,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC5D,eAAI,yBAAyB,GAAG,MAAK,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAClE,gBAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;4BACc,qBACpD,UAAU,GAAG,IAAI,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,CAAC,GAAG,EACd,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,SAAS,CACrB;;AARA,mCAAsB;AAAE,sCAAyB;YASnD;;2BACgC,qBAC/B,UAAU,GAAG,IAAI,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,CAAC,GAAG,EACd,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,SAAS,CACrB;;eARM,UAAU;eAAE,UAAU;;AAU7B,0BAAe,CAAC,GAAG,CAAC,GAClB,sBAAsB,GACtB,CAAC,UAAU,GAAG,sBAAsB,IAAI,sBAAsB,CAAC;AACjE,6BAAkB,CAAC,GAAG,CAAC,GACrB,yBAAyB,GACzB,CAAC,UAAU,GAAG,yBAAyB,IAAI,sBAAsB,CAAC;AACpE,4BAAiB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC;AAChD,+BAAoB,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC;UACvD;QACF;;AAED,aAAK,WAAW,GAAG,IAAI,CAAC;;AAExB,aAAK,eAAe,IAAI,eAAe,GAAG,UAAU,CAAC;;AAErD,aAAK,QAAQ,CAAC;AACZ,qBAAY,EAAE,eAAe;AAC7B,wBAAe,EAAE,kBAAkB;AACnC,uBAAc,EAAE,iBAAiB;AACjC,0BAAiB,EAAE,oBAAoB;QACxC,CAAC,CAAC;;AAEH,aAAK,eAAe,GAAG,IAAI,CAAC;;AAE5B,aAAK,yBAAyB,EAAE,CAAC;MAClC,CAAC,CAAC;IACJ;;AAED,oBAAiB,+BAAG;AAClB,SAAI,CAAC,QAAQ,GAAG,6BAAY,CAAC;AAC7B,SAAI,CAAC,yBAAyB,EAAE,CAAC;IAClC;;AAED,4BAAyB,qCAAC,KAAkB,EAAE;AAC5C,SAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;;AAEhC,WAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;MACjD;;AAED,SAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AACnC,SAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,WAAI,CAAC,QAAQ,GAAG,6BAAY,CAAC;AAC7B,WAAI,CAAC,yBAAyB,EAAE,CAAC;MAClC;IACF;;AAED,uBAAoB,kCAAG;AACrB,SAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,wBAAW,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,WAAI,CAAC,WAAW,GAAG,IAAI,CAAC;MACzB;IACF;;AAED,SAAM,oBAAiB;AACrB,SAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACtE,YAAO,gBAAgB,IAAI,mBAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE;EACF,CAAC,CAAC;;sBAEY,MAAM;;;;;;;;;;;;;sBCnOG,SAAS;;AAAlB,UAAS,SAAS,CAAC,GAAuB,EAAc;AACrE,OAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAK,IAAM,GAAG,IAAI,GAAG,EAAE;AACrB,SAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AAClD,UAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;MACd;IACF;AACD,UAAO,GAAG,CAAC;EACZ;;;;;;;;;;;;;;;sBCNuB,UAAU;;AAAnB,UAAS,UAAU,CAAC,KAAY,EAAc;AAC3D,OAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAK,IAAM,GAAG,IAAI,KAAK,EAAE;AACvB,SAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AACrD,gBAAS;MACV;AACD,QAAG,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IACzE;AACD,UAAO,GAAG,CAAC;EACZ;;;;;;;;;;;;;;;;sBCRuB,OAAO;;AAD/B,KAAI,WAA6B,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAC5B,UAAS,OAAO,CAC7B,cAAsB,EACtB,CAAS,EACT,CAAS,EACT,KAAa,EACb,CAAS,EACT,CAAS,EACT,SAAiB,EAAoB;;;;;AAKrC,OAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;;;AAGjC,OAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;;;;AAKvB,OAAM,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;;AAE5B,OAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;AACpC,OAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,cAAc,CAAC;;AAEvC,OAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,SAAS,EAAE;AACpE,gBAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACvB,gBAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,YAAO,WAAW,CAAC;IACpB;;AAED,cAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACtB,cAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACtB,UAAO,WAAW,CAAC;EACpB;;;;;;;;;;;;ACxCD,EAAC,YAAW;AACV,OAAI,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC;;AAErC,OAAK,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,IAAI,IAAK,WAAW,CAAC,GAAG,EAAE;AACnF,WAAM,CAAC,OAAO,GAAG,YAAW;AAC1B,cAAO,WAAW,CAAC,GAAG,EAAE,CAAC;MAC1B,CAAC;IACH,MAAM,IAAK,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAK,OAAO,CAAC,MAAM,EAAE;AACjF,WAAM,CAAC,OAAO,GAAG,YAAW;AAC1B,cAAO,CAAC,cAAc,EAAE,GAAG,QAAQ,IAAI,GAAG,CAAC;MAC5C,CAAC;AACF,WAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACxB,mBAAc,GAAG,YAAW;AAC1B,WAAI,EAAE,CAAC;AACP,SAAE,GAAG,MAAM,EAAE,CAAC;AACd,cAAO,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;MAC5B,CAAC;AACF,aAAQ,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;AACnB,WAAM,CAAC,OAAO,GAAG,YAAW;AAC1B,cAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;MAC9B,CAAC;AACF,aAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM;AACL,WAAM,CAAC,OAAO,GAAG,YAAW;AAC1B,cAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC;MACxC,CAAC;AACF,aAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACjC;EAEF,EAAE,IAAI,WAAM,C;;;;;;;;;;AC9Bb,KAAI,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;;;;;;;AAOlC,KAAI,gBAAgB,CAAC;AACrB,KAAI,kBAAkB,CAAC;;AAEvB,UAAS,gBAAgB,GAAG;AACxB,WAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;EACtD;AACD,UAAS,mBAAmB,GAAI;AAC5B,WAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;EACxD;AACA,cAAY;AACT,SAAI;AACA,aAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAClC,6BAAgB,GAAG,UAAU,CAAC;UACjC,MAAM;AACH,6BAAgB,GAAG,gBAAgB,CAAC;UACvC;MACJ,CAAC,OAAO,CAAC,EAAE;AACR,yBAAgB,GAAG,gBAAgB,CAAC;MACvC;AACD,SAAI;AACA,aAAI,OAAO,YAAY,KAAK,UAAU,EAAE;AACpC,+BAAkB,GAAG,YAAY,CAAC;UACrC,MAAM;AACH,+BAAkB,GAAG,mBAAmB,CAAC;UAC5C;MACJ,CAAC,OAAO,CAAC,EAAE;AACR,2BAAkB,GAAG,mBAAmB,CAAC;MAC5C;EACJ,GAAG,CAAC;AACL,UAAS,UAAU,CAAC,GAAG,EAAE;AACrB,SAAI,gBAAgB,KAAK,UAAU,EAAE;;AAEjC,gBAAO,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;MAC7B;;AAED,SAAI,CAAC,gBAAgB,KAAK,gBAAgB,IAAI,CAAC,gBAAgB,KAAK,UAAU,EAAE;AAC5E,yBAAgB,GAAG,UAAU,CAAC;AAC9B,gBAAO,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;MAC7B;AACD,SAAI;;AAEA,gBAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;MACnC,CAAC,OAAM,CAAC,EAAC;AACN,aAAI;;AAEA,oBAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;UAC9C,CAAC,OAAM,CAAC,EAAC;;AAEN,oBAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;UAC9C;MACJ;EAGJ;AACD,UAAS,eAAe,CAAC,MAAM,EAAE;AAC7B,SAAI,kBAAkB,KAAK,YAAY,EAAE;;AAErC,gBAAO,YAAY,CAAC,MAAM,CAAC,CAAC;MAC/B;;AAED,SAAI,CAAC,kBAAkB,KAAK,mBAAmB,IAAI,CAAC,kBAAkB,KAAK,YAAY,EAAE;AACrF,2BAAkB,GAAG,YAAY,CAAC;AAClC,gBAAO,YAAY,CAAC,MAAM,CAAC,CAAC;MAC/B;AACD,SAAI;;AAEA,gBAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;MACrC,CAAC,OAAO,CAAC,EAAC;AACP,aAAI;;AAEA,oBAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;UAChD,CAAC,OAAO,CAAC,EAAC;;;AAGP,oBAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;UAChD;MACJ;EAIJ;AACD,KAAI,KAAK,GAAG,EAAE,CAAC;AACf,KAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,KAAI,YAAY,CAAC;AACjB,KAAI,UAAU,GAAG,CAAC,CAAC,CAAC;;AAEpB,UAAS,eAAe,GAAG;AACvB,SAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC5B,gBAAO;MACV;AACD,aAAQ,GAAG,KAAK,CAAC;AACjB,SAAI,YAAY,CAAC,MAAM,EAAE;AACrB,cAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;MACtC,MAAM;AACH,mBAAU,GAAG,CAAC,CAAC,CAAC;MACnB;AACD,SAAI,KAAK,CAAC,MAAM,EAAE;AACd,mBAAU,EAAE,CAAC;MAChB;EACJ;;AAED,UAAS,UAAU,GAAG;AAClB,SAAI,QAAQ,EAAE;AACV,gBAAO;MACV;AACD,SAAI,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AAC1C,aAAQ,GAAG,IAAI,CAAC;;AAEhB,SAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;AACvB,YAAM,GAAG,EAAE;AACP,qBAAY,GAAG,KAAK,CAAC;AACrB,cAAK,GAAG,EAAE,CAAC;AACX,gBAAO,EAAE,UAAU,GAAG,GAAG,EAAE;AACvB,iBAAI,YAAY,EAAE;AACd,6BAAY,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;cAClC;UACJ;AACD,mBAAU,GAAG,CAAC,CAAC,CAAC;AAChB,YAAG,GAAG,KAAK,CAAC,MAAM,CAAC;MACtB;AACD,iBAAY,GAAG,IAAI,CAAC;AACpB,aAAQ,GAAG,KAAK,CAAC;AACjB,oBAAe,CAAC,OAAO,CAAC,CAAC;EAC5B;;AAED,QAAO,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;AAC9B,SAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,SAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,cAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,iBAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;UAC9B;MACJ;AACD,UAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAChC,SAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;AACjC,mBAAU,CAAC,UAAU,CAAC,CAAC;MAC1B;EACJ,CAAC;;;AAGF,UAAS,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE;AACtB,SAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,SAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EACtB;AACD,KAAI,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY;AAC7B,SAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;EACpC,CAAC;AACF,QAAO,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1B,QAAO,CAAC,OAAO,GAAG,IAAI,CAAC;AACvB,QAAO,CAAC,GAAG,GAAG,EAAE,CAAC;AACjB,QAAO,CAAC,IAAI,GAAG,EAAE,CAAC;AAClB,QAAO,CAAC,OAAO,GAAG,EAAE,CAAC;AACrB,QAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;;AAEtB,UAAS,IAAI,GAAG,EAAE;;AAElB,QAAO,CAAC,EAAE,GAAG,IAAI,CAAC;AAClB,QAAO,CAAC,WAAW,GAAG,IAAI,CAAC;AAC3B,QAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,QAAO,CAAC,GAAG,GAAG,IAAI,CAAC;AACnB,QAAO,CAAC,cAAc,GAAG,IAAI,CAAC;AAC9B,QAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAClC,QAAO,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEpB,QAAO,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE;AAC9B,WAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;EACvD,CAAC;;AAEF,QAAO,CAAC,GAAG,GAAG,YAAY;AAAE,YAAO,GAAG;EAAE,CAAC;AACzC,QAAO,CAAC,KAAK,GAAG,UAAU,GAAG,EAAE;AAC3B,WAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;EACrD,CAAC;AACF,QAAO,CAAC,KAAK,GAAG,YAAW;AAAE,YAAO,CAAC,CAAC;EAAE,C;;;;;;;;ACnLxC,KAAI,GAAG,GAAG,mBAAO,CAAC,CAAiB,CAAC;KAChC,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM;KACtD,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;KAC3B,MAAM,GAAG,gBAAgB;KACzB,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;KAC9B,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;;AAEnE,MAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,MAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;AAC3C,MAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,IACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,MAAM,CAAC;EACnD;;;AAGD,KAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACf,OAAI,IAAI,GAAG,CAAC;OACR,EAAE,GAAG,CAAC;OACN,KAAK,GAAG,EAAE;OACV,aAAa,GAAG,IAAI,GAAG,EAAE;;AAE7B,MAAG,GAAG,UAAS,QAAQ,EAAE;AACvB,SAAG,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,WAAI,IAAI,GAAG,GAAG,EAAE;WACZ,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;AACrD,WAAI,GAAG,IAAI,GAAG,IAAI;AAClB,iBAAU,CAAC,YAAW;AACpB,aAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;;;;AAIvB,cAAK,CAAC,MAAM,GAAG,CAAC;AAChB,cAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjC,eAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;AACnB,iBAAG;AACD,iBAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;cACrB,CAAC,OAAM,CAAC,EAAE;AACT,yBAAU,CAAC,YAAW;AAAE,uBAAM,CAAC;gBAAE,EAAE,CAAC,CAAC;cACtC;YACF;UACF;QACF,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MACrB;AACD,UAAK,CAAC,IAAI,CAAC;AACT,aAAM,EAAE,EAAE,EAAE;AACZ,eAAQ,EAAE,QAAQ;AAClB,gBAAS,EAAE,KAAK;MACjB,CAAC;AACF,YAAO,EAAE;IACV;;AAED,MAAG,GAAG,UAAS,MAAM,EAAE;AACrB,UAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,WAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;AAC7B,cAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI;QAC1B;MACF;IACF;EACF;;AAED,OAAM,CAAC,OAAO,GAAG,UAAS,EAAE,EAAE;;;;AAI5B,UAAO,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;EAC1B;AACD,OAAM,CAAC,OAAO,CAAC,MAAM,GAAG,YAAW;AACjC,MAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EAC3B;AACD,OAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAW;AACnC,OAAI,CAAC,qBAAqB,GAAG,GAAG;AAChC,OAAI,CAAC,oBAAoB,GAAG,GAAG;EAChC,C;;;;;;;;;;;;;;sBClEuB,mBAAmB;;AAA5B,UAAS,mBAAmB,CACzC,YAAwB,EACxB,KAAY,EACZ,eAAyB,EAChB;AACT,QAAK,IAAI,GAAG,IAAI,KAAK,EAAE;AACrB,SAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AACrD,gBAAS;MACV;;AAED,SAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC9B,cAAO,KAAK,CAAC;MACd;;AAED,SAAM,UAAU,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,GAC7C,KAAK,CAAC,GAAG,CAAC,GACV,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;;;AAGnB,SAAI,YAAY,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;AACpC,cAAO,KAAK,CAAC;MACd;IACF;;AAED,UAAO,IAAI,CAAC;EACb;;;;;;;;AC9BD,gD;;;;;;;;;;;;;;sCCCsB,CAAa;;;;uCACZ,CAAc;;;;qCACjB,CAAW;;;;2CACR,CAAiB;;;;gCACjB,CAAK;;;;gDACI,CAAuB;;;;kCACxB,CAAO;;;;AAItC,KAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;;AAS7B,UAAS,sBAAsB,CAC7B,aAAgC,EAChC,MAAoB,EACpB,iBAAkC,EACzB;AACT,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,SAAI,CAAC,iCAAoB,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3E,cAAO,KAAK,CAAC;MACd;IACF;AACD,UAAO,IAAI,CAAC;EACb;;AAED,KAAM,eAAe,GAAG,mBAAM,WAAW,CAAC;;;AACxC,YAAS,EAAE;;AAET,kBAAa,EAAE,iBAAU,OAAO,CAAC,iBAAU,QAAQ,CAAC,iBAAU,MAAM,CAAC,CAAC;AACtE,WAAM,EAAE,iBAAU,IAAI,CAAC,UAAU;AACjC,aAAQ,EAAE,iBAAU,IAAI,CAAC,UAAU;IACpC;;AAED,kBAAe,6BAAyB;kBACN,IAAI,CAAC,KAAK;SAAnC,aAAa,UAAb,aAAa;SAAE,MAAM,UAAN,MAAM;;AAC5B,SAAM,aAAgC,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC,GAAG,yBAAY,CAAC;AACnF,SAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,sBAAY;cAAI,uBAAU,YAAY,CAAC;MAAA,CAAC,CAAC;AACrF,YAAO;AACL,oBAAa,EAAb,aAAa;AACb,wBAAiB,EAAjB,iBAAiB;AACjB,sBAAe,EAAE,aAAa;AAC9B,0BAAmB,EAAE,iBAAiB;MACvC,CAAC;IACH;;AAED,cAAW,EAAG,IAAc;AAC5B,WAAQ,EAAE,CAAC;AACX,kBAAe,EAAE,CAAC;;;;;;AAMlB,mBAAgB,EAAG,IAAoB;;;;AAIvC,uBAAoB,gCAAC,gBAA8B,EAAQ;kBACsB,IAAI,CAAC,KAAK;SAApF,aAAa,UAAb,aAAa;SAAE,iBAAiB,UAAjB,iBAAiB;SAAE,eAAe,UAAf,eAAe;SAAE,mBAAmB,UAAnB,mBAAmB;;AAE3E,SAAI,SAAS,GAAG,KAAK,CAAC;AACtB,UAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,WAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC5C,WAAI,KAAK,GAAG,KAAK,CAAC;;AAElB,YAAK,IAAI,GAAG,IAAI,eAAe,EAAE;AAC/B,aAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;AAC/D,oBAAS;UACV;;AAED,aAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AACxC,aAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,eAAI,CAAC,KAAK,EAAE;AACV,kBAAK,GAAG,IAAI,CAAC;AACb,sBAAS,GAAG,IAAI,CAAC;AACjB,0BAAa,CAAC,CAAC,CAAC,gBAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,8BAAiB,CAAC,CAAC,CAAC,gBAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,4BAAe,CAAC,CAAC,CAAC,gBAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,gCAAmB,CAAC,CAAC,CAAC,gBAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD;AACD,wBAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACnC,4BAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,0BAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACrC,8BAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;UACjC;QACF;MACF;;AAED,SAAI,SAAS,EAAE;AACb,WAAI,CAAC,QAAQ,CAAC,EAAC,aAAa,EAAb,aAAa,EAAE,iBAAiB,EAAjB,iBAAiB,EAAE,eAAe,EAAf,eAAe,EAAE,mBAAmB,EAAnB,mBAAmB,EAAC,CAAC,CAAC;MACzF;IACF;;AAED,4BAAyB,uCAAS;;;;;AAGhC,SAAI,CAAC,WAAW,GAAG,iBAAW,UAAC,SAAS,EAAK;AAC3C,WAAM,UAAwB,GAAG,MAAK,KAAK,CAAC,MAAM,CAAC,MAAK,KAAK,CAAC,eAAe,CAAC,CAAC;;;AAG/E,WAAI,sBAAsB,CACxB,MAAK,KAAK,CAAC,aAAa,EACxB,UAAU,EACV,MAAK,KAAK,CAAC,iBAAiB,CAC7B,EAAE;;AAED,eAAK,WAAW,GAAG,IAAI,CAAC;AACxB,eAAK,eAAe,GAAG,CAAC,CAAC;AACzB,gBAAO;QACR;;AAED,WAAM,WAAW,GAAG,SAAS,IAAI,6BAAY,CAAC;AAC9C,WAAM,SAAS,GAAG,WAAW,GAAG,MAAK,QAAQ,CAAC;AAC9C,aAAK,QAAQ,GAAG,WAAW,CAAC;AAC5B,aAAK,eAAe,GAAG,MAAK,eAAe,GAAG,SAAS,CAAC;;AAExD,WAAI,MAAK,eAAe,GAAG,UAAU,GAAG,EAAE,EAAE;AAC1C,eAAK,eAAe,GAAG,CAAC,CAAC;QAC1B;;AAED,WAAI,MAAK,eAAe,KAAK,CAAC,EAAE;;AAE9B,eAAK,WAAW,GAAG,IAAI,CAAC;AACxB,eAAK,yBAAyB,EAAE,CAAC;AACjC,gBAAO;QACR;;AAED,WAAI,sBAAsB,GACxB,CAAC,MAAK,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAK,eAAe,GAAG,UAAU,CAAC,GAAG,UAAU,IAAI,UAAU,CAAC;AACnG,WAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAK,eAAe,GAAG,UAAU,CAAC,CAAC;;AAEtE,WAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,WAAI,sBAAsB,GAAG,EAAE,CAAC;AAChC,WAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,WAAI,oBAAoB,GAAG,EAAE,CAAC;;AAE9B,YAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,aAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,aAAI,eAA2B,GAAG,EAAE,CAAC;AACrC,aAAI,kBAA4B,GAAG,EAAE,CAAC;AACtC,aAAI,iBAA6B,GAAG,EAAE,CAAC;AACvC,aAAI,oBAA8B,GAAG,EAAE,CAAC;;AAExC,cAAK,IAAI,GAAG,IAAI,SAAS,EAAE;AACzB,eAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;AACzD,sBAAS;YACV;;AAED,eAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAClC,eAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,4BAAe,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AAClC,+BAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,8BAAiB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACpC,iCAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM;AACL,iBAAI,sBAAsB,GAAG,MAAK,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChE,iBAAI,yBAAyB,GAAG,MAAK,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvE,kBAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;8BACc,qBACpD,UAAU,GAAG,IAAI,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,CAAC,GAAG,EACd,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,SAAS,CACrB;;AARA,qCAAsB;AAAE,wCAAyB;cASnD;;6BACgC,qBAC/B,UAAU,GAAG,IAAI,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,CAAC,GAAG,EACd,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,SAAS,CACrB;;iBARM,UAAU;iBAAE,UAAU;;AAU7B,4BAAe,CAAC,GAAG,CAAC,GAClB,sBAAsB,GACtB,CAAC,UAAU,GAAG,sBAAsB,IAAI,sBAAsB,CAAC;AACjE,+BAAkB,CAAC,GAAG,CAAC,GACrB,yBAAyB,GACzB,CAAC,UAAU,GAAG,yBAAyB,IAAI,sBAAsB,CAAC;AACpE,8BAAiB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC;AAChD,iCAAoB,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC;YACvD;UACF;;AAED,yBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;AACtC,6BAAoB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;AAC7C,2BAAkB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;AAC1C,+BAAsB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;QAClD;;AAED,aAAK,WAAW,GAAG,IAAI,CAAC;;AAExB,aAAK,eAAe,IAAI,eAAe,GAAG,UAAU,CAAC;;AAErD,aAAK,QAAQ,CAAC;AACZ,sBAAa,EAAE,gBAAgB;AAC/B,0BAAiB,EAAE,oBAAoB;AACvC,wBAAe,EAAE,kBAAkB;AACnC,4BAAmB,EAAE,sBAAsB;QAC5C,CAAC,CAAC;;AAEH,aAAK,gBAAgB,GAAG,IAAI,CAAC;;AAE7B,aAAK,yBAAyB,EAAE,CAAC;MAClC,CAAC,CAAC;IACJ;;AAED,oBAAiB,+BAAG;AAClB,SAAI,CAAC,QAAQ,GAAG,6BAAY,CAAC;AAC7B,SAAI,CAAC,yBAAyB,EAAE,CAAC;IAClC;;AAED,4BAAyB,qCAAC,KAAqB,EAAE;AAC/C,SAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;;AAEjC,WAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;MAClD;;AAED,SAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACjE,SAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,WAAI,CAAC,QAAQ,GAAG,6BAAY,CAAC;AAC7B,WAAI,CAAC,yBAAyB,EAAE,CAAC;MAClC;IACF;;AAED,uBAAoB,kCAAG;AACrB,SAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,wBAAW,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,WAAI,CAAC,WAAW,GAAG,IAAI,CAAC;MACzB;IACF;;AAED,SAAM,oBAAiB;AACrB,SAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACvE,YAAO,gBAAgB,IAAI,mBAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE;EACF,CAAC,CAAC;;sBAEY,eAAe;;;;;;;;;;;;;;;sCC1PR,CAAa;;;;uCACZ,CAAc;;;;qCACjB,CAAW;;;;sCACT,EAAa;;;;2CACZ,CAAiB;;;;gCACjB,CAAK;;;;gDACI,CAAuB;;;;kCACxB,CAAO;;;;AActC,KAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;;;;;;;;;AAS7B,UAAS,eAAe,CACtB,iBAAyC,EACzC,gBAAyC,EACzC,WAA8B,EACD;;;AAG7B,OAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,OAAI,iBAAiB,IAAI,IAAI,EAAE;AAC7B,YAAO,iBAAiB,CAAC,GAAG,CAAC,UAAC,gBAAgB,EAAE,CAAC;cAAM;AACrD,YAAG,EAAE,gBAAgB,CAAC,GAAG;AACzB,aAAI,EAAE,gBAAgB,CAAC,IAAI;AAC3B,cAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QACtB;MAAC,CAAC,CAAC;IACL;AACD,UAAO,iBAAiB,CAAC,GAAG,CAAC,UAAC,gBAAgB,EAAE,CAAC,EAAK;AACpD,UAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,WAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,gBAAgB,CAAC,GAAG,EAAE;AACrD,gBAAO;AACL,cAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG;AAC7B,eAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;AAC/B,gBAAK,EAAE,WAAW,CAAC,CAAC,CAAC;UACtB,CAAC;QACH;MACF;AACD,YAAO,EAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAC,CAAC;IACxF,CAAC,CAAC;EACJ;;AAED,UAAS,sBAAsB,CAC7B,aAAgC,EAChC,UAAkC,EAClC,iBAAkC,EAClC,iBAAyC,EAChC;AACT,OAAI,iBAAiB,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;AAClD,YAAO,KAAK,CAAC;IACd;;AAED,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,SAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAClD,cAAO,KAAK,CAAC;MACd;IACF;;;;;AAKD,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,SAAI,CAAC,iCACD,aAAa,CAAC,CAAC,CAAC,EAChB,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EACnB,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;AACzB,cAAO,KAAK,CAAC;MACd;IACF;;AAED,UAAO,IAAI,CAAC;EACb;;;;;;;;;;;;;;;;;AAiBD,UAAS,YAAY,CACnB,SAAoB,EACpB,SAAoB,EACpB,QAAkB,EAClB,oBAA4C,EAC5C,UAAkC,EAClC,gBAAmC,EACnC,oBAAqC,EACrC,kBAAqC,EACrC,sBAAuC,EAC2D;AAClG,OAAM,oBAAoB,GAAG,uBAC3B,oBAAoB,EACpB,UAAU,EACV,UAAC,QAAQ,EAAE,mBAAmB,EAAK;AACjC,SAAM,YAAY,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;AACpD,SAAI,YAAY,IAAI,IAAI,EAAE;AACxB,eAAQ,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3E,cAAO,IAAI,CAAC;MACb;AACD,SAAI,iCACA,gBAAgB,CAAC,QAAQ,CAAC,EAC1B,YAAY,EACZ,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE;AACnC,eAAQ,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3E,cAAO,IAAI,CAAC;MACb;AACD,YAAO,EAAC,GAAG,EAAE,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;IAC5F,CACF,CAAC;;AAEF,OAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,OAAI,oBAAoB,GAAG,EAAE,CAAC;AAC9B,OAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,OAAI,sBAAsB,GAAG,EAAE,CAAC;AAChC,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,SAAM,uBAAuB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACxD,SAAI,aAAa,GAAG,IAAI,CAAC;AACzB,UAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,WAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,uBAAuB,CAAC,GAAG,EAAE;AAC/D,sBAAa,GAAG,CAAC,CAAC;AAClB,eAAM;QACP;MACF;;AAED,SAAI,aAAa,IAAI,IAAI,EAAE;AACzB,WAAM,UAAU,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC;AACtD,uBAAgB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AACjC,yBAAkB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;;AAEnC,WAAM,QAAQ,GAAG,uBAAU,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC1D,2BAAoB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AACnC,6BAAsB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;MACtC,MAAM;AACL,uBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACtD,yBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC1D,2BAAoB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;AAC9D,6BAAsB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;MACnE;IACF;;AAED,UAAO,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;EACnH;;AAmBD,KAAM,gBAAgB,GAAG,mBAAM,WAAW,CAAC;;;AACzC,YAAS,EAAE;AACT,kBAAa,EAAE,iBAAU,OAAO,CAAC,iBAAU,KAAK,CAAC;AAC/C,UAAG,EAAE,iBAAU,MAAM,CAAC,UAAU;AAChC,WAAI,EAAE,iBAAU,GAAG;AACnB,YAAK,EAAE,iBAAU,QAAQ,CAAC,iBAAU,MAAM,CAAC,CAAC,UAAU;MACvD,CAAC,CAAC;AACH,WAAM,EAAE,iBAAU,SAAS,CAAC,CAC1B,iBAAU,IAAI,EACd,iBAAU,OAAO,CAAC,iBAAU,KAAK,CAAC;AAChC,UAAG,EAAE,iBAAU,MAAM,CAAC,UAAU;AAChC,WAAI,EAAE,iBAAU,GAAG;AACnB,YAAK,EAAE,iBAAU,QAAQ,CAAC,iBAAU,SAAS,CAAC,CAC5C,iBAAU,MAAM,EAChB,iBAAU,MAAM,CACjB,CAAC,CAAC,CAAC,UAAU;MACf,CAAC,CACH,CAAC,CAAC,CAAC,UAAU;AACd,aAAQ,EAAE,iBAAU,IAAI,CAAC,UAAU;AACnC,cAAS,EAAE,iBAAU,IAAI;AACzB,cAAS,EAAE,iBAAU,IAAI;AACzB,aAAQ,EAAE,iBAAU,IAAI;IACzB;;AAED,kBAAe,6BAAqE;AAClF,YAAO;AACL,gBAAS,EAAE,mCAAgB;gBAAI,wBAAW,gBAAgB,CAAC,KAAK,CAAC;QAAA;;;AAGjE,gBAAS,EAAE;gBAAM,IAAI;QAAA;AACrB,eAAQ,EAAE,oBAAM,EAAE;MACnB,CAAC;IACH;;AAED,kBAAe,6BAA0B;kBACyB,IAAI,CAAC,KAAK;SAAnE,aAAa,UAAb,aAAa;SAAE,MAAM,UAAN,MAAM;SAAE,SAAS,UAAT,SAAS;SAAE,SAAS,UAAT,SAAS;SAAE,QAAQ,UAAR,QAAQ;;AAC5D,SAAM,UAAkC,GAAG,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;;;;;;AAMzG,SAAI,oBAA4C,aAAC;AACjD,SAAI,aAAa,IAAI,IAAI,EAAE;AACzB,2BAAoB,GAAG,UAAU,CAAC;MACnC,MAAM;AACL,2BAAoB,GAAI,aAAa,CAAO,GAAG,CAAC,0BAAgB,EAAI;;AAElE,cAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,eAAI,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,gBAAgB,CAAC,GAAG,EAAE;AAC9C,oBAAO,UAAU,CAAC,CAAC,CAAC,CAAC;YACtB;UACF;AACD,gBAAO,gBAAgB,CAAC;QACzB,CAAC,CAAC;MACJ;AACD,SAAM,gBAAgB,GAAG,aAAa,IAAI,IAAI,GAC1C,UAAU,CAAC,GAAG,CAAC,WAAC;cAAI,wBAAW,CAAC,CAAC,KAAK,CAAC;MAAA,CAAC,GACvC,aAAa,CAAO,GAAG,CAAC,WAAC;cAAI,wBAAW,CAAC,CAAC,KAAK,CAAC;MAAA,CAAC,CAAC;AACvD,SAAM,oBAAoB,GAAG,aAAa,IAAI,IAAI,GAC9C,UAAU,CAAC,GAAG,CAAC,WAAC;cAAI,uBAAU,CAAC,CAAC,KAAK,CAAC;MAAA,CAAC,GACvC,aAAa,CAAC,GAAG,CAAC,WAAC;cAAI,uBAAU,CAAC,CAAC,KAAK,CAAC;MAAA,CAAC,CAAC;;yBACqD,YAAY;;;;AAI7G,cAAS,EACT,SAAS,EACT,QAAQ,EACT,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB;AAChB,yBAAoB,CACrB;;SAbM,iBAAiB;SAAE,aAAa;SAAE,iBAAiB;SAAE,eAAe;SAAE,mBAAmB;;;AAehG,YAAO;AACL,oBAAa,EAAb,aAAa;AACb,wBAAiB,EAAjB,iBAAiB;AACjB,sBAAe,EAAf,eAAe;AACf,0BAAmB,EAAnB,mBAAmB;AACnB,wBAAiB,EAAjB,iBAAiB;MAClB,CAAC;IACH;;AAED,aAAU,EAAG,KAAe;AAC5B,cAAW,EAAG,IAAc;AAC5B,WAAQ,EAAE,CAAC;AACX,kBAAe,EAAE,CAAC;;;;;;AAMlB,mBAAgB,EAAG,IAA8B;;;;AAIjD,uBAAoB,gCAAC,gBAAwC,EAAQ;0BAC+B,YAAY,CAC3G,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,EACpB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC5B,gBAAgB,EAChB,IAAI,CAAC,KAAK,CAAC,aAAa,EACxB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC5B,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAC/B;;SAVI,iBAAiB;SAAE,aAAa;SAAE,iBAAiB;SAAE,eAAe;SAAE,mBAAmB;;AAY9F,UAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,WAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,WAAI,KAAK,GAAG,KAAK,CAAC;;AAElB,YAAK,IAAI,GAAG,IAAI,eAAe,EAAE;AAC/B,aAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;AAC/D,oBAAS;UACV;;AAED,aAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AACxC,aAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,eAAI,CAAC,KAAK,EAAE;AACV,kBAAK,GAAG,IAAI,CAAC;AACb,0BAAa,CAAC,CAAC,CAAC,gBAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,8BAAiB,CAAC,CAAC,CAAC,gBAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,4BAAe,CAAC,CAAC,CAAC,gBAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,gCAAmB,CAAC,CAAC,CAAC,gBAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,8BAAiB,CAAC,CAAC,CAAC,GAAG;AACrB,kBAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG;AAC7B,mBAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;AAC/B,oBAAK,eAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;cACvC,CAAC;YACH;AACD,wBAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACnC,4BAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,0BAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACrC,8BAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,4BAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;UAC9C;QACF;MACF;;;;;AAKD,SAAI,CAAC,QAAQ,CAAC;AACZ,oBAAa,EAAb,aAAa;AACb,wBAAiB,EAAjB,iBAAiB;AACjB,wBAAiB,EAAjB,iBAAiB;AACjB,sBAAe,EAAf,eAAe;AACf,0BAAmB,EAAnB,mBAAmB;MACpB,CAAC,CAAC;IACJ;;AAED,4BAAyB,uCAAS;;;AAChC,SAAI,IAAI,CAAC,UAAU,EAAE;AACnB,cAAO;MACR;;;AAGD,SAAI,CAAC,WAAW,GAAG,iBAAW,UAAC,SAAS,EAAK;AAC3C,WAAM,UAAU,GAAG,MAAK,KAAK,CAAC,MAAM,CAAC;AACrC,WAAI,UAAkC,GAAG,OAAO,UAAU,KAAK,UAAU,GACrE,UAAU,CAAC,eAAe,CAC1B,MAAK,KAAK,CAAC,iBAAiB,EAC5B,MAAK,gBAAgB,EACrB,MAAK,KAAK,CAAC,eAAe,CAC3B,CAAC,GACA,UAAU,CAAC;;;AAGf,WAAI,sBAAsB,CACxB,MAAK,KAAK,CAAC,aAAa,EACxB,UAAU,EACV,MAAK,KAAK,CAAC,iBAAiB,EAC5B,MAAK,KAAK,CAAC,iBAAiB,CAC7B,EAAE;;AAED,eAAK,WAAW,GAAG,IAAI,CAAC;AACxB,eAAK,eAAe,GAAG,CAAC,CAAC;AACzB,gBAAO;QACR;;AAED,WAAM,WAAW,GAAG,SAAS,IAAI,6BAAY,CAAC;AAC9C,WAAM,SAAS,GAAG,WAAW,GAAG,MAAK,QAAQ,CAAC;AAC9C,aAAK,QAAQ,GAAG,WAAW,CAAC;AAC5B,aAAK,eAAe,GAAG,MAAK,eAAe,GAAG,SAAS,CAAC;;AAExD,WAAI,MAAK,eAAe,GAAG,UAAU,GAAG,EAAE,EAAE;AAC1C,eAAK,eAAe,GAAG,CAAC,CAAC;QAC1B;;AAED,WAAI,MAAK,eAAe,KAAK,CAAC,EAAE;;AAE9B,eAAK,WAAW,GAAG,IAAI,CAAC;AACxB,eAAK,yBAAyB,EAAE,CAAC;AACjC,gBAAO;QACR;;AAED,WAAI,sBAAsB,GACxB,CAAC,MAAK,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAK,eAAe,GAAG,UAAU,CAAC,GAAG,UAAU,IAAI,UAAU,CAAC;AACnG,WAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAK,eAAe,GAAG,UAAU,CAAC,CAAC;;4BAE2C,YAAY,CAC1H,MAAK,KAAK,CAAC,SAAS,EACpB,MAAK,KAAK,CAAC,SAAS,EACpB,MAAK,KAAK,CAAC,QAAQ,EACpB,MAAK,KAAK,CAAC,iBAAiB,EAC5B,UAAU,EACV,MAAK,KAAK,CAAC,aAAa,EACxB,MAAK,KAAK,CAAC,iBAAiB,EAC5B,MAAK,KAAK,CAAC,eAAe,EAC1B,MAAK,KAAK,CAAC,mBAAmB,CAC/B;;WAVI,oBAAoB;WAAE,gBAAgB;WAAE,oBAAoB;WAAE,kBAAkB;WAAE,sBAAsB;;AAW7G,YAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,aAAM,mBAAmB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,aAAI,eAA2B,GAAG,EAAE,CAAC;AACrC,aAAI,kBAA4B,GAAG,EAAE,CAAC;AACtC,aAAI,iBAA6B,GAAG,EAAE,CAAC;AACvC,aAAI,oBAA8B,GAAG,EAAE,CAAC;;AAExC,cAAK,IAAI,GAAG,IAAI,mBAAmB,EAAE;AACnC,eAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE;AACnE,sBAAS;YACV;;AAED,eAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC5C,eAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,4BAAe,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AAClC,+BAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,8BAAiB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACpC,iCAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM;AACL,iBAAI,sBAAsB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxD,iBAAI,yBAAyB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/D,kBAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;8BACc,qBACpD,UAAU,GAAG,IAAI,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,CAAC,GAAG,EACd,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,SAAS,CACrB;;AARA,qCAAsB;AAAE,wCAAyB;cASnD;;6BACgC,qBAC/B,UAAU,GAAG,IAAI,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,UAAU,CAAC,GAAG,EACd,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,SAAS,CACrB;;iBARM,UAAU;iBAAE,UAAU;;AAU7B,4BAAe,CAAC,GAAG,CAAC,GAClB,sBAAsB,GACtB,CAAC,UAAU,GAAG,sBAAsB,IAAI,sBAAsB,CAAC;AACjE,+BAAkB,CAAC,GAAG,CAAC,GACrB,yBAAyB,GACzB,CAAC,UAAU,GAAG,yBAAyB,IAAI,sBAAsB,CAAC;AACpE,8BAAiB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC;AAChD,iCAAoB,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC;YACvD;UACF;;AAED,2BAAkB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;AAC1C,+BAAsB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC;AACjD,yBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;AACtC,6BAAoB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;QAC9C;;AAED,aAAK,WAAW,GAAG,IAAI,CAAC;;AAExB,aAAK,eAAe,IAAI,eAAe,GAAG,UAAU,CAAC;;AAErD,aAAK,QAAQ,CAAC;AACZ,sBAAa,EAAE,gBAAgB;AAC/B,0BAAiB,EAAE,oBAAoB;AACvC,wBAAe,EAAE,kBAAkB;AACnC,4BAAmB,EAAE,sBAAsB;AAC3C,0BAAiB,EAAE,oBAAoB;QACxC,CAAC,CAAC;;AAEH,aAAK,gBAAgB,GAAG,IAAI,CAAC;;AAE7B,aAAK,yBAAyB,EAAE,CAAC;MAClC,CAAC,CAAC;IACJ;;AAED,oBAAiB,+BAAG;AAClB,SAAI,CAAC,QAAQ,GAAG,6BAAY,CAAC;AAC7B,SAAI,CAAC,yBAAyB,EAAE,CAAC;IAClC;;AAED,4BAAyB,qCAAC,KAAsB,EAAE;AAChD,SAAI,IAAI,CAAC,gBAAgB,EAAE;;AAEzB,WAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;MAClD;;AAED,SAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,SAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAChC,WAAI,CAAC,gBAAgB,GAAG,MAAM,CAC5B,eAAe,CACb,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC5B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,KAAK,CAAC,eAAe,CAC3B,CACF,CAAC;MACH,MAAM;AACL,WAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;MAChC;;AAED,SAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,WAAI,CAAC,QAAQ,GAAG,6BAAY,CAAC;AAC7B,WAAI,CAAC,yBAAyB,EAAE,CAAC;MAClC;IACF;;AAED,uBAAoB,kCAAG;AACrB,SAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,SAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC5B,wBAAW,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,WAAI,CAAC,WAAW,GAAG,IAAI,CAAC;MACzB;IACF;;AAED,SAAM,oBAAiB;AACrB,SAAM,cAAc,GAAG,eAAe,CACpC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC5B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,KAAK,CAAC,aAAa,CACzB,CAAC;AACF,SAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC7D,YAAO,gBAAgB,IAAI,mBAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE;EACF,CAAC,CAAC;;sBAEY,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBC9fP,SAAS;;AAAlB,UAAS,SAAS,CAC/B,IAA4B,EAC5B,IAA4B,EAC5B,QAAiF,EACzD;;;;AAIxB,OAAI,YAAqC,GAAG,EAAE,CAAC;AAC/C,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,iBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B;AACD,OAAI,YAAqC,GAAG,EAAE,CAAC;AAC/C,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,iBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B;;;;;AAKD,OAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,QAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB;AACD,QAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,SAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;;;AAGpE,WAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,WAAI,IAAI,IAAI,IAAI,EAAE;AAChB,YAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB;MACF;IACF;;;AAGD,UAAO,GAAG,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAK;AACxB,SAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,SAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;AAEvC,SAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE;;AAE5C,cAAO,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;MAClD,MAAM,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE;;AAEnD,cAAO,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;MAClD,MAAM,IAAI,UAAU,IAAI,IAAI,EAAE;;;;;;;AAO7B,YAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,aAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,aAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;AAC9D,oBAAS;UACV;;AAED,aAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE;AACxE,kBAAO,CAAC,CAAC,CAAC;UACX,MAAM,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE;AAC/E,kBAAO,CAAC,CAAC;UACV;QACF;;AAED,cAAO,CAAC,CAAC;MACV;;AAED,UAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,WAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1B,WAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;AAC9D,kBAAS;QACV;AACD,WAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE;AACxE,gBAAO,CAAC,CAAC;QACV,MAAM,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE;AAC/E,gBAAO,CAAC,CAAC,CAAC;QACX;MACF;;AAED,YAAO,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;EACJ;;;;;;;;;;;;;;;sBC/FuB,MAAM;;;;oCARV,EAAW;;;;AAG/B,KAAM,aAAa,gBACd,qBAAQ,QAAQ;AACnB,YAAS,EAAE,IAAI;GAChB,CAAC;;AAEa,UAAS,MAAM,CAAC,GAAW,EAAE,MAA2B,EAAgB;AACrF,uBAAW,aAAa,EAAK,MAAM,IAAE,GAAG,EAAH,GAAG,IAAE;EAC3C;;;;;;;;;;;sBCVc;AACb,WAAQ,EAAE,EAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAC;AACvC,SAAM,EAAE,EAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAC;AACrC,SAAM,EAAE,EAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAC;AACrC,QAAK,EAAE,EAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAC;EACrC;;;;;;;;;;sBCHuB,WAAW;;AADnC,KAAI,SAAS,GAAG,KAAK,CAAC;;AACP,UAAS,WAAW,GAAG;AACpC,OAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;AAC1C,SAAI,CAAC,SAAS,EAAE;AACd,gBAAS,GAAG,IAAI,CAAC;AACjB,cAAO,CAAC,KAAK,CACX,4GAA4G,CAC7G,CAAC;MACH;IACF;EACF","file":"react-motion.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactMotion\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReactMotion\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_9__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"build/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 950458c031dbfbf07514","/* @flow */\nexport {default as Motion} from './Motion';\nexport {default as StaggeredMotion} from './StaggeredMotion';\nexport {default as TransitionMotion} from './TransitionMotion';\nexport {default as spring} from './spring';\nexport {default as presets} from './presets';\n\n// deprecated, dummy warning function\nexport {default as reorderKeys} from './reorderKeys';\n\n\n\n// WEBPACK FOOTER //\n// ./src/react-motion.js","/* @flow */\nimport mapToZero from './mapToZero';\nimport stripStyle from './stripStyle';\nimport stepper from './stepper';\nimport defaultNow from 'performance-now';\nimport defaultRaf from 'raf';\nimport shouldStopAnimation from './shouldStopAnimation';\nimport React, {PropTypes} from 'react';\n\nimport type {ReactElement, PlainStyle, Style, Velocity, MotionProps} from './Types';\n\nconst msPerFrame = 1000 / 60;\n\ntype MotionState = {\n  currentStyle: PlainStyle,\n  currentVelocity: Velocity,\n  lastIdealStyle: PlainStyle,\n  lastIdealVelocity: Velocity,\n};\n\nconst Motion = React.createClass({\n  propTypes: {\n    // TOOD: warn against putting a config in here\n    defaultStyle: PropTypes.objectOf(PropTypes.number),\n    style: PropTypes.objectOf(PropTypes.oneOfType([\n      PropTypes.number,\n      PropTypes.object,\n    ])).isRequired,\n    children: PropTypes.func.isRequired,\n    onRest: PropTypes.func,\n  },\n\n  getInitialState(): MotionState {\n    const {defaultStyle, style} = this.props;\n    const currentStyle = defaultStyle || stripStyle(style);\n    const currentVelocity = mapToZero(currentStyle);\n    return {\n      currentStyle,\n      currentVelocity,\n      lastIdealStyle: currentStyle,\n      lastIdealVelocity: currentVelocity,\n    };\n  },\n\n  wasAnimating: false,\n  animationID: (null: ?number),\n  prevTime: 0,\n  accumulatedTime: 0,\n  // it's possible that currentStyle's value is stale: if props is immediately\n  // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n  // at 0 (didn't have time to tick and interpolate even once). If we naively\n  // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n  // In reality currentStyle should be 400\n  unreadPropStyle: (null: ?Style),\n  // after checking for unreadPropStyle != null, we manually go set the\n  // non-interpolating values (those that are a number, without a spring\n  // config)\n  clearUnreadPropStyle(destStyle: Style): void {\n    let dirty = false;\n    let {currentStyle, currentVelocity, lastIdealStyle, lastIdealVelocity} = this.state;\n\n    for (let key in destStyle) {\n      if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n        continue;\n      }\n\n      const styleValue = destStyle[key];\n      if (typeof styleValue === 'number') {\n        if (!dirty) {\n          dirty = true;\n          currentStyle = {...currentStyle};\n          currentVelocity = {...currentVelocity};\n          lastIdealStyle = {...lastIdealStyle};\n          lastIdealVelocity = {...lastIdealVelocity};\n        }\n\n        currentStyle[key] = styleValue;\n        currentVelocity[key] = 0;\n        lastIdealStyle[key] = styleValue;\n        lastIdealVelocity[key] = 0;\n      }\n    }\n\n    if (dirty) {\n      this.setState({currentStyle, currentVelocity, lastIdealStyle, lastIdealVelocity});\n    }\n  },\n\n  startAnimationIfNecessary(): void {\n    // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n    // call cb? No, otherwise accidental parent rerender causes cb trigger\n    this.animationID = defaultRaf((timestamp) => {\n      // check if we need to animate in the first place\n      const propsStyle: Style = this.props.style;\n      if (shouldStopAnimation(\n        this.state.currentStyle,\n        propsStyle,\n        this.state.currentVelocity,\n      )) {\n        if (this.wasAnimating && this.props.onRest) {\n          this.props.onRest();\n        }\n\n        // no need to cancel animationID here; shouldn't have any in flight\n        this.animationID = null;\n        this.wasAnimating = false;\n        this.accumulatedTime = 0;\n        return;\n      }\n\n      this.wasAnimating = true;\n\n      const currentTime = timestamp || defaultNow();\n      const timeDelta = currentTime - this.prevTime;\n      this.prevTime = currentTime;\n      this.accumulatedTime = this.accumulatedTime + timeDelta;\n      // more than 10 frames? prolly switched browser tab. Restart\n      if (this.accumulatedTime > msPerFrame * 10) {\n        this.accumulatedTime = 0;\n      }\n\n      if (this.accumulatedTime === 0) {\n        // no need to cancel animationID here; shouldn't have any in flight\n        this.animationID = null;\n        this.startAnimationIfNecessary();\n        return;\n      }\n\n      let currentFrameCompletion =\n        (this.accumulatedTime - Math.floor(this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n      const framesToCatchUp = Math.floor(this.accumulatedTime / msPerFrame);\n\n      let newLastIdealStyle: PlainStyle = {};\n      let newLastIdealVelocity: Velocity = {};\n      let newCurrentStyle: PlainStyle = {};\n      let newCurrentVelocity: Velocity = {};\n\n      for (let key in propsStyle) {\n        if (!Object.prototype.hasOwnProperty.call(propsStyle, key)) {\n          continue;\n        }\n\n        const styleValue = propsStyle[key];\n        if (typeof styleValue === 'number') {\n          newCurrentStyle[key] = styleValue;\n          newCurrentVelocity[key] = 0;\n          newLastIdealStyle[key] = styleValue;\n          newLastIdealVelocity[key] = 0;\n        } else {\n          let newLastIdealStyleValue = this.state.lastIdealStyle[key];\n          let newLastIdealVelocityValue = this.state.lastIdealVelocity[key];\n          for (let i = 0; i < framesToCatchUp; i++) {\n            [newLastIdealStyleValue, newLastIdealVelocityValue] = stepper(\n              msPerFrame / 1000,\n              newLastIdealStyleValue,\n              newLastIdealVelocityValue,\n              styleValue.val,\n              styleValue.stiffness,\n              styleValue.damping,\n              styleValue.precision,\n            );\n          }\n          const [nextIdealX, nextIdealV] = stepper(\n            msPerFrame / 1000,\n            newLastIdealStyleValue,\n            newLastIdealVelocityValue,\n            styleValue.val,\n            styleValue.stiffness,\n            styleValue.damping,\n            styleValue.precision,\n          );\n\n          newCurrentStyle[key] =\n            newLastIdealStyleValue +\n            (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n          newCurrentVelocity[key] =\n            newLastIdealVelocityValue +\n            (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n          newLastIdealStyle[key] = newLastIdealStyleValue;\n          newLastIdealVelocity[key] = newLastIdealVelocityValue;\n        }\n      }\n\n      this.animationID = null;\n      // the amount we're looped over above\n      this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n      this.setState({\n        currentStyle: newCurrentStyle,\n        currentVelocity: newCurrentVelocity,\n        lastIdealStyle: newLastIdealStyle,\n        lastIdealVelocity: newLastIdealVelocity,\n      });\n\n      this.unreadPropStyle = null;\n\n      this.startAnimationIfNecessary();\n    });\n  },\n\n  componentDidMount() {\n    this.prevTime = defaultNow();\n    this.startAnimationIfNecessary();\n  },\n\n  componentWillReceiveProps(props: MotionProps) {\n    if (this.unreadPropStyle != null) {\n      // previous props haven't had the chance to be set yet; set them here\n      this.clearUnreadPropStyle(this.unreadPropStyle);\n    }\n\n    this.unreadPropStyle = props.style;\n    if (this.animationID == null) {\n      this.prevTime = defaultNow();\n      this.startAnimationIfNecessary();\n    }\n  },\n\n  componentWillUnmount() {\n    if (this.animationID != null) {\n      defaultRaf.cancel(this.animationID);\n      this.animationID = null;\n    }\n  },\n\n  render(): ReactElement {\n    const renderedChildren = this.props.children(this.state.currentStyle);\n    return renderedChildren && React.Children.only(renderedChildren);\n  },\n});\n\nexport default Motion;\n\n\n\n// WEBPACK FOOTER //\n// ./src/Motion.js","/* @flow */\nimport type {PlainStyle, Style} from './Types';\n\n// currently used to initiate the velocity style object to 0\nexport default function mapToZero(obj: Style | PlainStyle): PlainStyle {\n  let ret = {};\n  for (const key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      ret[key] = 0;\n    }\n  }\n  return ret;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/mapToZero.js","/* @flow */\n// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n\nimport type {Style, PlainStyle} from './Types';\n\nexport default function stripStyle(style: Style): PlainStyle {\n  let ret = {};\n  for (const key in style) {\n    if (!Object.prototype.hasOwnProperty.call(style, key)) {\n      continue;\n    }\n    ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n  }\n  return ret;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/stripStyle.js","/* @flow */\n\n// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n// array reference around.\nlet reusedTuple: [number, number] = [0, 0];\nexport default function stepper(\n  secondPerFrame: number,\n  x: number,\n  v: number,\n  destX: number,\n  k: number,\n  b: number,\n  precision: number): [number, number] {\n  // Spring stiffness, in kg / s^2\n\n  // for animations, destX is really spring length (spring at rest). initial\n  // position is considered as the stretched/compressed position of a spring\n  const Fspring = -k * (x - destX);\n\n  // Damping, in kg / s\n  const Fdamper = -b * v;\n\n  // usually we put mass here, but for animation purposes, specifying mass is a\n  // bit redundant. you could simply adjust k and b accordingly\n  // let a = (Fspring + Fdamper) / mass;\n  const a = Fspring + Fdamper;\n\n  const newV = v + a * secondPerFrame;\n  const newX = x + newV * secondPerFrame;\n\n  if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n    reusedTuple[0] = destX;\n    reusedTuple[1] = 0;\n    return reusedTuple;\n  }\n\n  reusedTuple[0] = newX;\n  reusedTuple[1] = newV;\n  return reusedTuple;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/stepper.js","// Generated by CoffeeScript 1.7.1\n(function() {\n  var getNanoSeconds, hrtime, loadTime;\n\n  if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n    module.exports = function() {\n      return performance.now();\n    };\n  } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n    module.exports = function() {\n      return (getNanoSeconds() - loadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    loadTime = getNanoSeconds();\n  } else if (Date.now) {\n    module.exports = function() {\n      return Date.now() - loadTime;\n    };\n    loadTime = Date.now();\n  } else {\n    module.exports = function() {\n      return new Date().getTime() - loadTime;\n    };\n    loadTime = new Date().getTime();\n  }\n\n}).call(this);\n\n\n\n// WEBPACK FOOTER //\n// ./~/performance-now/lib/performance-now.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n// WEBPACK FOOTER //\n// ./~/process/browser.js","var now = require('performance-now')\n  , root = typeof window === 'undefined' ? global : window\n  , vendors = ['moz', 'webkit']\n  , suffix = 'AnimationFrame'\n  , raf = root['request' + suffix]\n  , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n  raf = root[vendors[i] + 'Request' + suffix]\n  caf = root[vendors[i] + 'Cancel' + suffix]\n      || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n  var last = 0\n    , id = 0\n    , queue = []\n    , frameDuration = 1000 / 60\n\n  raf = function(callback) {\n    if(queue.length === 0) {\n      var _now = now()\n        , next = Math.max(0, frameDuration - (_now - last))\n      last = next + _now\n      setTimeout(function() {\n        var cp = queue.slice(0)\n        // Clear queue here to prevent\n        // callbacks from appending listeners\n        // to the current frame's queue\n        queue.length = 0\n        for(var i = 0; i < cp.length; i++) {\n          if(!cp[i].cancelled) {\n            try{\n              cp[i].callback(last)\n            } catch(e) {\n              setTimeout(function() { throw e }, 0)\n            }\n          }\n        }\n      }, Math.round(next))\n    }\n    queue.push({\n      handle: ++id,\n      callback: callback,\n      cancelled: false\n    })\n    return id\n  }\n\n  caf = function(handle) {\n    for(var i = 0; i < queue.length; i++) {\n      if(queue[i].handle === handle) {\n        queue[i].cancelled = true\n      }\n    }\n  }\n}\n\nmodule.exports = function(fn) {\n  // Wrap in a new function to prevent\n  // `cancel` potentially being assigned\n  // to the native rAF function\n  return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n  caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function() {\n  root.requestAnimationFrame = raf\n  root.cancelAnimationFrame = caf\n}\n\n\n\n// WEBPACK FOOTER //\n// ./~/raf/index.js","/* @flow */\nimport type {PlainStyle, Style, Velocity} from './Types';\n\n// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\nexport default function shouldStopAnimation(\n  currentStyle: PlainStyle,\n  style: Style,\n  currentVelocity: Velocity,\n): boolean {\n  for (let key in style) {\n    if (!Object.prototype.hasOwnProperty.call(style, key)) {\n      continue;\n    }\n\n    if (currentVelocity[key] !== 0) {\n      return false;\n    }\n\n    const styleValue = typeof style[key] === 'number'\n      ? style[key]\n      : style[key].val;\n    // stepper will have already taken care of rounding precision errors, so\n    // won't have such thing as 0.9999 !=== 1\n    if (currentStyle[key] !== styleValue) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shouldStopAnimation.js","module.exports = __WEBPACK_EXTERNAL_MODULE_9__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 9\n// module chunks = 0","/* @flow */\nimport mapToZero from './mapToZero';\nimport stripStyle from './stripStyle';\nimport stepper from './stepper';\nimport defaultNow from 'performance-now';\nimport defaultRaf from 'raf';\nimport shouldStopAnimation from './shouldStopAnimation';\nimport React, {PropTypes} from 'react';\n\nimport type {ReactElement, PlainStyle, Style, Velocity, StaggeredProps} from './Types';\n\nconst msPerFrame = 1000 / 60;\n\ntype StaggeredMotionState = {\n  currentStyles: Array<PlainStyle>,\n  currentVelocities: Array<Velocity>,\n  lastIdealStyles: Array<PlainStyle>,\n  lastIdealVelocities: Array<Velocity>,\n};\n\nfunction shouldStopAnimationAll(\n  currentStyles: Array<PlainStyle>,\n  styles: Array<Style>,\n  currentVelocities: Array<Velocity>,\n): boolean {\n  for (let i = 0; i < currentStyles.length; i++) {\n    if (!shouldStopAnimation(currentStyles[i], styles[i], currentVelocities[i])) {\n      return false;\n    }\n  }\n  return true;\n}\n\nconst StaggeredMotion = React.createClass({\n  propTypes: {\n    // TOOD: warn against putting a config in here\n    defaultStyles: PropTypes.arrayOf(PropTypes.objectOf(PropTypes.number)),\n    styles: PropTypes.func.isRequired,\n    children: PropTypes.func.isRequired,\n  },\n\n  getInitialState(): StaggeredMotionState {\n    const {defaultStyles, styles} = this.props;\n    const currentStyles: Array<PlainStyle> = defaultStyles || styles().map(stripStyle);\n    const currentVelocities = currentStyles.map(currentStyle => mapToZero(currentStyle));\n    return {\n      currentStyles,\n      currentVelocities,\n      lastIdealStyles: currentStyles,\n      lastIdealVelocities: currentVelocities,\n    };\n  },\n\n  animationID: (null: ?number),\n  prevTime: 0,\n  accumulatedTime: 0,\n  // it's possible that currentStyle's value is stale: if props is immediately\n  // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n  // at 0 (didn't have time to tick and interpolate even once). If we naively\n  // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n  // In reality currentStyle should be 400\n  unreadPropStyles: (null: ?Array<Style>),\n  // after checking for unreadPropStyles != null, we manually go set the\n  // non-interpolating values (those that are a number, without a spring\n  // config)\n  clearUnreadPropStyle(unreadPropStyles: Array<Style>): void {\n    let {currentStyles, currentVelocities, lastIdealStyles, lastIdealVelocities} = this.state;\n\n    let someDirty = false;\n    for (let i = 0; i < unreadPropStyles.length; i++) {\n      const unreadPropStyle = unreadPropStyles[i];\n      let dirty = false;\n\n      for (let key in unreadPropStyle) {\n        if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n          continue;\n        }\n\n        const styleValue = unreadPropStyle[key];\n        if (typeof styleValue === 'number') {\n          if (!dirty) {\n            dirty = true;\n            someDirty = true;\n            currentStyles[i] = {...currentStyles[i]};\n            currentVelocities[i] = {...currentVelocities[i]};\n            lastIdealStyles[i] = {...lastIdealStyles[i]};\n            lastIdealVelocities[i] = {...lastIdealVelocities[i]};\n          }\n          currentStyles[i][key] = styleValue;\n          currentVelocities[i][key] = 0;\n          lastIdealStyles[i][key] = styleValue;\n          lastIdealVelocities[i][key] = 0;\n        }\n      }\n    }\n\n    if (someDirty) {\n      this.setState({currentStyles, currentVelocities, lastIdealStyles, lastIdealVelocities});\n    }\n  },\n\n  startAnimationIfNecessary(): void {\n    // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n    // call cb? No, otherwise accidental parent rerender causes cb trigger\n    this.animationID = defaultRaf((timestamp) => {\n      const destStyles: Array<Style> = this.props.styles(this.state.lastIdealStyles);\n\n      // check if we need to animate in the first place\n      if (shouldStopAnimationAll(\n        this.state.currentStyles,\n        destStyles,\n        this.state.currentVelocities,\n      )) {\n        // no need to cancel animationID here; shouldn't have any in flight\n        this.animationID = null;\n        this.accumulatedTime = 0;\n        return;\n      }\n\n      const currentTime = timestamp || defaultNow();\n      const timeDelta = currentTime - this.prevTime;\n      this.prevTime = currentTime;\n      this.accumulatedTime = this.accumulatedTime + timeDelta;\n      // more than 10 frames? prolly switched browser tab. Restart\n      if (this.accumulatedTime > msPerFrame * 10) {\n        this.accumulatedTime = 0;\n      }\n\n      if (this.accumulatedTime === 0) {\n        // no need to cancel animationID here; shouldn't have any in flight\n        this.animationID = null;\n        this.startAnimationIfNecessary();\n        return;\n      }\n\n      let currentFrameCompletion =\n        (this.accumulatedTime - Math.floor(this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n      const framesToCatchUp = Math.floor(this.accumulatedTime / msPerFrame);\n\n      let newLastIdealStyles = [];\n      let newLastIdealVelocities = [];\n      let newCurrentStyles = [];\n      let newCurrentVelocities = [];\n\n      for (let i = 0; i < destStyles.length; i++) {\n        const destStyle = destStyles[i];\n        let newCurrentStyle: PlainStyle = {};\n        let newCurrentVelocity: Velocity = {};\n        let newLastIdealStyle: PlainStyle = {};\n        let newLastIdealVelocity: Velocity = {};\n\n        for (let key in destStyle) {\n          if (!Object.prototype.hasOwnProperty.call(destStyle, key)) {\n            continue;\n          }\n\n          const styleValue = destStyle[key];\n          if (typeof styleValue === 'number') {\n            newCurrentStyle[key] = styleValue;\n            newCurrentVelocity[key] = 0;\n            newLastIdealStyle[key] = styleValue;\n            newLastIdealVelocity[key] = 0;\n          } else {\n            let newLastIdealStyleValue = this.state.lastIdealStyles[i][key];\n            let newLastIdealVelocityValue = this.state.lastIdealVelocities[i][key];\n            for (let j = 0; j < framesToCatchUp; j++) {\n              [newLastIdealStyleValue, newLastIdealVelocityValue] = stepper(\n                msPerFrame / 1000,\n                newLastIdealStyleValue,\n                newLastIdealVelocityValue,\n                styleValue.val,\n                styleValue.stiffness,\n                styleValue.damping,\n                styleValue.precision,\n              );\n            }\n            const [nextIdealX, nextIdealV] = stepper(\n              msPerFrame / 1000,\n              newLastIdealStyleValue,\n              newLastIdealVelocityValue,\n              styleValue.val,\n              styleValue.stiffness,\n              styleValue.damping,\n              styleValue.precision,\n            );\n\n            newCurrentStyle[key] =\n              newLastIdealStyleValue +\n              (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n            newCurrentVelocity[key] =\n              newLastIdealVelocityValue +\n              (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n            newLastIdealStyle[key] = newLastIdealStyleValue;\n            newLastIdealVelocity[key] = newLastIdealVelocityValue;\n          }\n        }\n\n        newCurrentStyles[i] = newCurrentStyle;\n        newCurrentVelocities[i] = newCurrentVelocity;\n        newLastIdealStyles[i] = newLastIdealStyle;\n        newLastIdealVelocities[i] = newLastIdealVelocity;\n      }\n\n      this.animationID = null;\n      // the amount we're looped over above\n      this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n      this.setState({\n        currentStyles: newCurrentStyles,\n        currentVelocities: newCurrentVelocities,\n        lastIdealStyles: newLastIdealStyles,\n        lastIdealVelocities: newLastIdealVelocities,\n      });\n\n      this.unreadPropStyles = null;\n\n      this.startAnimationIfNecessary();\n    });\n  },\n\n  componentDidMount() {\n    this.prevTime = defaultNow();\n    this.startAnimationIfNecessary();\n  },\n\n  componentWillReceiveProps(props: StaggeredProps) {\n    if (this.unreadPropStyles != null) {\n      // previous props haven't had the chance to be set yet; set them here\n      this.clearUnreadPropStyle(this.unreadPropStyles);\n    }\n\n    this.unreadPropStyles = props.styles(this.state.lastIdealStyles);\n    if (this.animationID == null) {\n      this.prevTime = defaultNow();\n      this.startAnimationIfNecessary();\n    }\n  },\n\n  componentWillUnmount() {\n    if (this.animationID != null) {\n      defaultRaf.cancel(this.animationID);\n      this.animationID = null;\n    }\n  },\n\n  render(): ReactElement {\n    const renderedChildren = this.props.children(this.state.currentStyles);\n    return renderedChildren && React.Children.only(renderedChildren);\n  },\n});\n\nexport default StaggeredMotion;\n\n\n\n// WEBPACK FOOTER //\n// ./src/StaggeredMotion.js","/* @flow */\nimport mapToZero from './mapToZero';\nimport stripStyle from './stripStyle';\nimport stepper from './stepper';\nimport mergeDiff from './mergeDiff';\nimport defaultNow from 'performance-now';\nimport defaultRaf from 'raf';\nimport shouldStopAnimation from './shouldStopAnimation';\nimport React, {PropTypes} from 'react';\n\nimport type {\n  ReactElement,\n  PlainStyle,\n  Velocity,\n  TransitionStyle,\n  TransitionPlainStyle,\n  WillEnter,\n  WillLeave,\n  DidLeave,\n  TransitionProps,\n} from './Types';\n\nconst msPerFrame = 1000 / 60;\n\n// the children function & (potential) styles function asks as param an\n// Array<TransitionPlainStyle>, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\nfunction rehydrateStyles(\n  mergedPropsStyles: Array<TransitionStyle>,\n  unreadPropStyles: ?Array<TransitionStyle>,\n  plainStyles: Array<PlainStyle>,\n): Array<TransitionPlainStyle> {\n  // Copy the value to a `const` so that Flow understands that the const won't\n  // change and will be non-nullable in the callback below.\n  const cUnreadPropStyles = unreadPropStyles;\n  if (cUnreadPropStyles == null) {\n    return mergedPropsStyles.map((mergedPropsStyle, i) => ({\n      key: mergedPropsStyle.key,\n      data: mergedPropsStyle.data,\n      style: plainStyles[i],\n    }));\n  }\n  return mergedPropsStyles.map((mergedPropsStyle, i) => {\n    for (let j = 0; j < cUnreadPropStyles.length; j++) {\n      if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n        return {\n          key: cUnreadPropStyles[j].key,\n          data: cUnreadPropStyles[j].data,\n          style: plainStyles[i],\n        };\n      }\n    }\n    return {key: mergedPropsStyle.key, data: mergedPropsStyle.data, style: plainStyles[i]};\n  });\n}\n\nfunction shouldStopAnimationAll(\n  currentStyles: Array<PlainStyle>,\n  destStyles: Array<TransitionStyle>,\n  currentVelocities: Array<Velocity>,\n  mergedPropsStyles: Array<TransitionStyle>,\n): boolean {\n  if (mergedPropsStyles.length !== destStyles.length) {\n    return false;\n  }\n\n  for (let i = 0; i < mergedPropsStyles.length; i++) {\n    if (mergedPropsStyles[i].key !== destStyles[i].key) {\n      return false;\n    }\n  }\n\n  // we have the invariant that mergedPropsStyles and\n  // currentStyles/currentVelocities/last* are synced in terms of cells, see\n  // mergeAndSync comment for more info\n  for (let i = 0; i < mergedPropsStyles.length; i++) {\n    if (!shouldStopAnimation(\n        currentStyles[i],\n        destStyles[i].style,\n        currentVelocities[i])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n// core key merging logic\n\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n\n// steps:\n// turn merged style into {a?, b, c}\n//    add c, value of c is destStyles.c\n//    maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n//    maybe remove a\n//    certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\nfunction mergeAndSync(\n  willEnter: WillEnter,\n  willLeave: WillLeave,\n  didLeave: DidLeave,\n  oldMergedPropsStyles: Array<TransitionStyle>,\n  destStyles: Array<TransitionStyle>,\n  oldCurrentStyles: Array<PlainStyle>,\n  oldCurrentVelocities: Array<Velocity>,\n  oldLastIdealStyles: Array<PlainStyle>,\n  oldLastIdealVelocities: Array<Velocity>,\n): [Array<TransitionStyle>, Array<PlainStyle>, Array<Velocity>, Array<PlainStyle>, Array<Velocity>] {\n  const newMergedPropsStyles = mergeDiff(\n    oldMergedPropsStyles,\n    destStyles,\n    (oldIndex, oldMergedPropsStyle) => {\n      const leavingStyle = willLeave(oldMergedPropsStyle);\n      if (leavingStyle == null) {\n        didLeave({ key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data });\n        return null;\n      }\n      if (shouldStopAnimation(\n          oldCurrentStyles[oldIndex],\n          leavingStyle,\n          oldCurrentVelocities[oldIndex])) {\n        didLeave({ key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data });\n        return null;\n      }\n      return {key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data, style: leavingStyle};\n    },\n  );\n\n  let newCurrentStyles = [];\n  let newCurrentVelocities = [];\n  let newLastIdealStyles = [];\n  let newLastIdealVelocities = [];\n  for (let i = 0; i < newMergedPropsStyles.length; i++) {\n    const newMergedPropsStyleCell = newMergedPropsStyles[i];\n    let foundOldIndex = null;\n    for (let j = 0; j < oldMergedPropsStyles.length; j++) {\n      if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n        foundOldIndex = j;\n        break;\n      }\n    }\n    // TODO: key search code\n    if (foundOldIndex == null) {\n      const plainStyle = willEnter(newMergedPropsStyleCell);\n      newCurrentStyles[i] = plainStyle;\n      newLastIdealStyles[i] = plainStyle;\n\n      const velocity = mapToZero(newMergedPropsStyleCell.style);\n      newCurrentVelocities[i] = velocity;\n      newLastIdealVelocities[i] = velocity;\n    } else {\n      newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n      newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n      newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n      newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n    }\n  }\n\n  return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\ntype TransitionMotionState = {\n  // list of styles, each containing interpolating values. Part of what's passed\n  // to children function. Notice that this is\n  // Array<ActualInterpolatingStyleObject>, without the wrapper that is {key: ...,\n  // data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n  // contains the key & data info (so that we only have a single source of truth\n  // for these, and to save space). Check the comment for `rehydrateStyles` to\n  // see how we regenerate the entirety of what's passed to children function\n  currentStyles: Array<PlainStyle>,\n  currentVelocities: Array<Velocity>,\n  lastIdealStyles: Array<PlainStyle>,\n  lastIdealVelocities: Array<Velocity>,\n  // the array that keeps track of currently rendered stuff! Including stuff\n  // that you've unmounted but that's still animating. This is where it lives\n  mergedPropsStyles: Array<TransitionStyle>,\n};\n\nconst TransitionMotion = React.createClass({\n  propTypes: {\n    defaultStyles: PropTypes.arrayOf(PropTypes.shape({\n      key: PropTypes.string.isRequired,\n      data: PropTypes.any,\n      style: PropTypes.objectOf(PropTypes.number).isRequired,\n    })),\n    styles: PropTypes.oneOfType([\n      PropTypes.func,\n      PropTypes.arrayOf(PropTypes.shape({\n        key: PropTypes.string.isRequired,\n        data: PropTypes.any,\n        style: PropTypes.objectOf(PropTypes.oneOfType([\n          PropTypes.number,\n          PropTypes.object,\n        ])).isRequired,\n      }),\n    )]).isRequired,\n    children: PropTypes.func.isRequired,\n    willEnter: PropTypes.func,\n    willLeave: PropTypes.func,\n    didLeave: PropTypes.func,\n  },\n\n  getDefaultProps(): {willEnter: WillEnter, willLeave: WillLeave, didLeave: DidLeave} {\n    return {\n      willEnter: styleThatEntered => stripStyle(styleThatEntered.style),\n      // recall: returning null makes the current unmounting TransitionStyle\n      // disappear immediately\n      willLeave: () => null,\n      didLeave: () => {},\n    };\n  },\n\n  getInitialState(): TransitionMotionState {\n    const {defaultStyles, styles, willEnter, willLeave, didLeave} = this.props;\n    const destStyles: Array<TransitionStyle> = typeof styles === 'function' ? styles(defaultStyles) : styles;\n\n    // this is special. for the first time around, we don't have a comparison\n    // between last (no last) and current merged props. we'll compute last so:\n    // say default is {a, b} and styles (dest style) is {b, c}, we'll\n    // fabricate last as {a, b}\n    let oldMergedPropsStyles: Array<TransitionStyle>;\n    if (defaultStyles == null) {\n      oldMergedPropsStyles = destStyles;\n    } else {\n      oldMergedPropsStyles = (defaultStyles: any).map(defaultStyleCell => {\n        // TODO: key search code\n        for (let i = 0; i < destStyles.length; i++) {\n          if (destStyles[i].key === defaultStyleCell.key) {\n            return destStyles[i];\n          }\n        }\n        return defaultStyleCell;\n      });\n    }\n    const oldCurrentStyles = defaultStyles == null\n      ? destStyles.map(s => stripStyle(s.style))\n      : (defaultStyles: any).map(s => stripStyle(s.style));\n    const oldCurrentVelocities = defaultStyles == null\n      ? destStyles.map(s => mapToZero(s.style))\n      : defaultStyles.map(s => mapToZero(s.style));\n    const [mergedPropsStyles, currentStyles, currentVelocities, lastIdealStyles, lastIdealVelocities] = mergeAndSync(\n      // Because this is an old-style React.createClass component, Flow doesn't\n      // understand that the willEnter and willLeave props have default values\n      // and will always be present.\n      (willEnter: any),\n      (willLeave: any),\n      (didLeave: any),\n      oldMergedPropsStyles,\n      destStyles,\n      oldCurrentStyles,\n      oldCurrentVelocities,\n      oldCurrentStyles, // oldLastIdealStyles really\n      oldCurrentVelocities, // oldLastIdealVelocities really\n    );\n\n    return {\n      currentStyles,\n      currentVelocities,\n      lastIdealStyles,\n      lastIdealVelocities,\n      mergedPropsStyles,\n    };\n  },\n\n  unmounting: (false: boolean),\n  animationID: (null: ?number),\n  prevTime: 0,\n  accumulatedTime: 0,\n  // it's possible that currentStyle's value is stale: if props is immediately\n  // changed from 0 to 400 to spring(0) again, the async currentStyle is still\n  // at 0 (didn't have time to tick and interpolate even once). If we naively\n  // compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n  // In reality currentStyle should be 400\n  unreadPropStyles: (null: ?Array<TransitionStyle>),\n  // after checking for unreadPropStyles != null, we manually go set the\n  // non-interpolating values (those that are a number, without a spring\n  // config)\n  clearUnreadPropStyle(unreadPropStyles: Array<TransitionStyle>): void {\n    let [mergedPropsStyles, currentStyles, currentVelocities, lastIdealStyles, lastIdealVelocities] = mergeAndSync(\n      (this.props.willEnter: any),\n      (this.props.willLeave: any),\n      (this.props.didLeave: any),\n      this.state.mergedPropsStyles,\n      unreadPropStyles,\n      this.state.currentStyles,\n      this.state.currentVelocities,\n      this.state.lastIdealStyles,\n      this.state.lastIdealVelocities,\n    );\n\n    for (let i = 0; i < unreadPropStyles.length; i++) {\n      const unreadPropStyle = unreadPropStyles[i].style;\n      let dirty = false;\n\n      for (let key in unreadPropStyle) {\n        if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n          continue;\n        }\n\n        const styleValue = unreadPropStyle[key];\n        if (typeof styleValue === 'number') {\n          if (!dirty) {\n            dirty = true;\n            currentStyles[i] = {...currentStyles[i]};\n            currentVelocities[i] = {...currentVelocities[i]};\n            lastIdealStyles[i] = {...lastIdealStyles[i]};\n            lastIdealVelocities[i] = {...lastIdealVelocities[i]};\n            mergedPropsStyles[i] = {\n              key: mergedPropsStyles[i].key,\n              data: mergedPropsStyles[i].data,\n              style: {...mergedPropsStyles[i].style},\n            };\n          }\n          currentStyles[i][key] = styleValue;\n          currentVelocities[i][key] = 0;\n          lastIdealStyles[i][key] = styleValue;\n          lastIdealVelocities[i][key] = 0;\n          mergedPropsStyles[i].style[key] = styleValue;\n        }\n      }\n    }\n\n    // unlike the other 2 components, we can't detect staleness and optionally\n    // opt out of setState here. each style object's data might contain new\n    // stuff we're not/cannot compare\n    this.setState({\n      currentStyles,\n      currentVelocities,\n      mergedPropsStyles,\n      lastIdealStyles,\n      lastIdealVelocities,\n    });\n  },\n\n  startAnimationIfNecessary(): void {\n    if (this.unmounting) {\n      return;\n    }\n    // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n    // call cb? No, otherwise accidental parent rerender causes cb trigger\n    this.animationID = defaultRaf((timestamp) => {\n      const propStyles = this.props.styles;\n      let destStyles: Array<TransitionStyle> = typeof propStyles === 'function'\n        ? propStyles(rehydrateStyles(\n          this.state.mergedPropsStyles,\n          this.unreadPropStyles,\n          this.state.lastIdealStyles,\n        ))\n        : propStyles;\n\n      // check if we need to animate in the first place\n      if (shouldStopAnimationAll(\n        this.state.currentStyles,\n        destStyles,\n        this.state.currentVelocities,\n        this.state.mergedPropsStyles,\n      )) {\n        // no need to cancel animationID here; shouldn't have any in flight\n        this.animationID = null;\n        this.accumulatedTime = 0;\n        return;\n      }\n\n      const currentTime = timestamp || defaultNow();\n      const timeDelta = currentTime - this.prevTime;\n      this.prevTime = currentTime;\n      this.accumulatedTime = this.accumulatedTime + timeDelta;\n      // more than 10 frames? prolly switched browser tab. Restart\n      if (this.accumulatedTime > msPerFrame * 10) {\n        this.accumulatedTime = 0;\n      }\n\n      if (this.accumulatedTime === 0) {\n        // no need to cancel animationID here; shouldn't have any in flight\n        this.animationID = null;\n        this.startAnimationIfNecessary();\n        return;\n      }\n\n      let currentFrameCompletion =\n        (this.accumulatedTime - Math.floor(this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n      const framesToCatchUp = Math.floor(this.accumulatedTime / msPerFrame);\n\n      let [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities] = mergeAndSync(\n        (this.props.willEnter: any),\n        (this.props.willLeave: any),\n        (this.props.didLeave: any),\n        this.state.mergedPropsStyles,\n        destStyles,\n        this.state.currentStyles,\n        this.state.currentVelocities,\n        this.state.lastIdealStyles,\n        this.state.lastIdealVelocities,\n      );\n      for (let i = 0; i < newMergedPropsStyles.length; i++) {\n        const newMergedPropsStyle = newMergedPropsStyles[i].style;\n        let newCurrentStyle: PlainStyle = {};\n        let newCurrentVelocity: Velocity = {};\n        let newLastIdealStyle: PlainStyle = {};\n        let newLastIdealVelocity: Velocity = {};\n\n        for (let key in newMergedPropsStyle) {\n          if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n            continue;\n          }\n\n          const styleValue = newMergedPropsStyle[key];\n          if (typeof styleValue === 'number') {\n            newCurrentStyle[key] = styleValue;\n            newCurrentVelocity[key] = 0;\n            newLastIdealStyle[key] = styleValue;\n            newLastIdealVelocity[key] = 0;\n          } else {\n            let newLastIdealStyleValue = newLastIdealStyles[i][key];\n            let newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n            for (let j = 0; j < framesToCatchUp; j++) {\n              [newLastIdealStyleValue, newLastIdealVelocityValue] = stepper(\n                msPerFrame / 1000,\n                newLastIdealStyleValue,\n                newLastIdealVelocityValue,\n                styleValue.val,\n                styleValue.stiffness,\n                styleValue.damping,\n                styleValue.precision,\n              );\n            }\n            const [nextIdealX, nextIdealV] = stepper(\n              msPerFrame / 1000,\n              newLastIdealStyleValue,\n              newLastIdealVelocityValue,\n              styleValue.val,\n              styleValue.stiffness,\n              styleValue.damping,\n              styleValue.precision,\n            );\n\n            newCurrentStyle[key] =\n              newLastIdealStyleValue +\n              (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n            newCurrentVelocity[key] =\n              newLastIdealVelocityValue +\n              (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n            newLastIdealStyle[key] = newLastIdealStyleValue;\n            newLastIdealVelocity[key] = newLastIdealVelocityValue;\n          }\n        }\n\n        newLastIdealStyles[i] = newLastIdealStyle;\n        newLastIdealVelocities[i] = newLastIdealVelocity;\n        newCurrentStyles[i] = newCurrentStyle;\n        newCurrentVelocities[i] = newCurrentVelocity;\n      }\n\n      this.animationID = null;\n      // the amount we're looped over above\n      this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n      this.setState({\n        currentStyles: newCurrentStyles,\n        currentVelocities: newCurrentVelocities,\n        lastIdealStyles: newLastIdealStyles,\n        lastIdealVelocities: newLastIdealVelocities,\n        mergedPropsStyles: newMergedPropsStyles,\n      });\n\n      this.unreadPropStyles = null;\n\n      this.startAnimationIfNecessary();\n    });\n  },\n\n  componentDidMount() {\n    this.prevTime = defaultNow();\n    this.startAnimationIfNecessary();\n  },\n\n  componentWillReceiveProps(props: TransitionProps) {\n    if (this.unreadPropStyles) {\n      // previous props haven't had the chance to be set yet; set them here\n      this.clearUnreadPropStyle(this.unreadPropStyles);\n    }\n\n    const styles = props.styles;\n    if (typeof styles === 'function') {\n      this.unreadPropStyles = styles(\n        rehydrateStyles(\n          this.state.mergedPropsStyles,\n          this.unreadPropStyles,\n          this.state.lastIdealStyles,\n        )\n      );\n    } else {\n      this.unreadPropStyles = styles;\n    }\n\n    if (this.animationID == null) {\n      this.prevTime = defaultNow();\n      this.startAnimationIfNecessary();\n    }\n  },\n\n  componentWillUnmount() {\n    this.unmounting = true;\n    if (this.animationID != null) {\n      defaultRaf.cancel(this.animationID);\n      this.animationID = null;\n    }\n  },\n\n  render(): ReactElement {\n    const hydratedStyles = rehydrateStyles(\n      this.state.mergedPropsStyles,\n      this.unreadPropStyles,\n      this.state.currentStyles,\n    );\n    const renderedChildren = this.props.children(hydratedStyles);\n    return renderedChildren && React.Children.only(renderedChildren);\n  },\n});\n\nexport default TransitionMotion;\n\n\n\n// WEBPACK FOOTER //\n// ./src/TransitionMotion.js","/* @flow */\nimport type {TransitionStyle} from './Types';\n\n// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\nexport default function mergeDiff(\n  prev: Array<TransitionStyle>,\n  next: Array<TransitionStyle>,\n  onRemove: (prevIndex: number, prevStyleCell: TransitionStyle) => ?TransitionStyle\n): Array<TransitionStyle> {\n  // bookkeeping for easier access of a key's index below. This is 2 allocations +\n  // potentially triggering chrome hash map mode for objs (so it might be faster\n  // to loop through and find a key's index each time), but I no longer care\n  let prevKeyIndex: {[key: string]: number} = {};\n  for (let i = 0; i < prev.length; i++) {\n    prevKeyIndex[prev[i].key] = i;\n  }\n  let nextKeyIndex: {[key: string]: number} = {};\n  for (let i = 0; i < next.length; i++) {\n    nextKeyIndex[next[i].key] = i;\n  }\n\n  // first, an overly elaborate way of merging prev and next, eliminating\n  // duplicates (in terms of keys). If there's dupe, keep the item in next).\n  // This way of writing it saves allocations\n  let ret = [];\n  for (let i = 0; i < next.length; i++) {\n    ret[i] = next[i];\n  }\n  for (let i = 0; i < prev.length; i++) {\n    if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n      // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n      // merge in keys that the user desires to kill\n      const fill = onRemove(i, prev[i]);\n      if (fill != null) {\n        ret.push(fill);\n      }\n    }\n  }\n\n  // now all the items all present. Core sorting logic to have the right order\n  return ret.sort((a, b) => {\n    const nextOrderA = nextKeyIndex[a.key];\n    const nextOrderB = nextKeyIndex[b.key];\n    const prevOrderA = prevKeyIndex[a.key];\n    const prevOrderB = prevKeyIndex[b.key];\n\n    if (nextOrderA != null && nextOrderB != null) {\n      // both keys in next\n      return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n    } else if (prevOrderA != null && prevOrderB != null) {\n      // both keys in prev\n      return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n    } else if (nextOrderA != null) {\n      // key a in next, key b in prev\n\n      // how to determine the order between a and b? We find a \"pivot\" (term\n      // abuse), a key present in both prev and next, that is sandwiched between\n      // a and b. In the context of our above example, if we're comparing a and\n      // d, b's (the only) pivot\n      for (let i = 0; i < next.length; i++) {\n        const pivot = next[i].key;\n        if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n          continue;\n        }\n\n        if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n          return -1;\n        } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n          return 1;\n        }\n      }\n      // pluggable. default to: next bigger than prev\n      return 1;\n    }\n    // prevOrderA, nextOrderB\n    for (let i = 0; i < next.length; i++) {\n      const pivot = next[i].key;\n      if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n        continue;\n      }\n      if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n        return 1;\n      } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n        return -1;\n      }\n    }\n    // pluggable. default to: next bigger than prev\n    return -1;\n  });\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/mergeDiff.js","/* @flow */\nimport presets from './presets';\nimport type {OpaqueConfig, SpringHelperConfig} from './Types';\n\nconst defaultConfig = {\n  ...presets.noWobble,\n  precision: 0.01,\n};\n\nexport default function spring(val: number, config?: SpringHelperConfig): OpaqueConfig {\n  return {...defaultConfig, ...config, val};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/spring.js","/* @flow */\nexport default {\n  noWobble: {stiffness: 170, damping: 26}, // the default, if nothing provided\n  gentle: {stiffness: 120, damping: 14},\n  wobbly: {stiffness: 180, damping: 12},\n  stiff: {stiffness: 210, damping: 20},\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/presets.js","/* @flow */\n\nlet hasWarned = false;\nexport default function reorderKeys() {\n  if (process.env.NODE_ENV === 'development') {\n    if (!hasWarned) {\n      hasWarned = true;\n      console.error(\n        '`reorderKeys` has been removed, since it is no longer needed for TransitionMotion\\'s new styles array API.'\n      );\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/reorderKeys.js"],"sourceRoot":""}