parser: Refactor cache computation to fix the issue when no start value provided
authorsub.mohanty@samsung.com <smohantty@gmail.com>
Sun, 9 Aug 2020 00:10:12 +0000 (09:10 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Sun, 9 Aug 2020 21:37:12 +0000 (06:37 +0900)
example/resource/27746-joypixels-partying-face-emoji-animation.json [new file with mode: 0644]
src/lottie/lottiemodel.h
src/lottie/lottieparser.cpp

diff --git a/example/resource/27746-joypixels-partying-face-emoji-animation.json b/example/resource/27746-joypixels-partying-face-emoji-animation.json
new file mode 100644 (file)
index 0000000..d204e53
--- /dev/null
@@ -0,0 +1 @@
+{"v":"5.5.7","fr":24,"ip":0,"op":48,"w":1024,"h":1024,"nm":"party_face","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Face_CTRL","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":0,"s":[0,-286,0],"to":[0.092,3.435,0],"ti":[0.627,6.25,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":4,"s":[0.552,-265.39,0],"to":[-0.627,-6.25,0],"ti":[0.092,3.435,0]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":18,"s":[-3.763,-323.5,0],"to":[-0.092,-3.435,0],"ti":[-0.627,-6.25,0]},{"t":26,"s":[0,-286,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Controller","np":13,"mn":"Pseudo/DUIK controller","ix":1,"en":1,"ef":[{"ty":6,"nm":"Icon","mn":"Pseudo/DUIK controller-0001","ix":1,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0002","ix":2,"v":{"a":0,"k":[0.92549020052,0.0941176489,0.0941176489,1],"ix":2}},{"ty":3,"nm":"Position","mn":"Pseudo/DUIK controller-0003","ix":3,"v":{"a":0,"k":[0,0],"ix":3}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Orientation","mn":"Pseudo/DUIK controller-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Opacity","mn":"Pseudo/DUIK controller-0006","ix":6,"v":{"a":0,"k":100,"ix":6}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0007","ix":7,"v":0},{"ty":6,"nm":"Anchor","mn":"Pseudo/DUIK controller-0008","ix":8,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0009","ix":9,"v":{"a":0,"k":[0,0,0,1],"ix":9}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0010","ix":10,"v":{"a":0,"k":100,"ix":10}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0011","ix":11,"v":0}]}],"ip":0,"op":48,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Head_CTRL","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":18,"s":[4]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[-1]},{"t":48,"s":[0]}],"ix":10},"p":{"a":0,"k":[517.24,850.396,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":4,"s":[103,97,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":18,"s":[97,103,100]},{"i":{"x":[0,0.051,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[103,97,100]},{"t":48,"s":[100,100,100]}],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Controller","np":13,"mn":"Pseudo/DUIK controller","ix":1,"en":1,"ef":[{"ty":6,"nm":"Icon","mn":"Pseudo/DUIK controller-0001","ix":1,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0002","ix":2,"v":{"a":0,"k":[0.92549020052,0.0941176489,0.0941176489,1],"ix":2}},{"ty":3,"nm":"Position","mn":"Pseudo/DUIK controller-0003","ix":3,"v":{"a":0,"k":[0,0],"ix":3}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0004","ix":4,"v":{"a":0,"k":100,"ix":4}},{"ty":0,"nm":"Orientation","mn":"Pseudo/DUIK controller-0005","ix":5,"v":{"a":0,"k":0,"ix":5}},{"ty":0,"nm":"Opacity","mn":"Pseudo/DUIK controller-0006","ix":6,"v":{"a":0,"k":100,"ix":6}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0007","ix":7,"v":0},{"ty":6,"nm":"Anchor","mn":"Pseudo/DUIK controller-0008","ix":8,"v":0},{"ty":2,"nm":"Color","mn":"Pseudo/DUIK controller-0009","ix":9,"v":{"a":0,"k":[0,0,0,1],"ix":9}},{"ty":0,"nm":"Size","mn":"Pseudo/DUIK controller-0010","ix":10,"v":{"a":0,"k":100,"ix":10}},{"ty":6,"nm":"","mn":"Pseudo/DUIK controller-0011","ix":11,"v":0}]}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"HatStripe","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[4.631,7.095]],"o":[[3.818,5.331],[0,0],[0,0],[0,0]],"v":[[9.463,-26.924],[16.938,-19.632],[17.467,-14.328],[6.154,-25.348]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":9,"k":{"a":0,"k":[0.176,0.91,0.302,0.533,0.267,0.9,0.292,0.524,0.359,0.89,0.282,0.514,0.474,0.863,0.251,0.484,0.588,0.835,0.22,0.455,0.715,0.792,0.171,0.406,0.842,0.749,0.122,0.357,0.921,0.714,0.082,0.32,1,0.678,0.043,0.282],"ix":9}},"s":{"a":0,"k":[10.307,-30.112],"ix":5},"e":{"a":0,"k":[20.858,-18.045],"ix":6},"t":1,"nm":"Stripegradienta","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HatStripe","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"HatStripe1","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[3.103,1.552],[5.313,8.386]],"o":[[6.646,8.84],[0,0],[-0.334,0.638],[0,0],[0,0]],"v":[[2.846,-23.771],[17.989,-9.078],[18.085,-8.12],[12.218,-9.919],[-0.462,-22.195]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":9,"k":{"a":0,"k":[0.176,0.91,0.302,0.533,0.267,0.9,0.292,0.524,0.359,0.89,0.282,0.514,0.474,0.863,0.251,0.484,0.588,0.835,0.22,0.455,0.715,0.792,0.171,0.406,0.842,0.749,0.122,0.357,0.921,0.714,0.082,0.32,1,0.678,0.043,0.282],"ix":9}},"s":{"a":0,"k":[10.307,-30.112],"ix":5},"e":{"a":0,"k":[23.622,-15.706],"ix":6},"t":1,"nm":"Stripegradientb","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HatStripe1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"HatStripe2","parent":6,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.385,2.573]],"o":[[0,0],[0,0],[0,0]],"v":[[15.906,-29.994],[16.41,-24.931],[12.732,-28.48]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":9,"k":{"a":0,"k":[0.176,0.91,0.302,0.533,0.267,0.9,0.292,0.524,0.359,0.89,0.282,0.514,0.474,0.863,0.251,0.484,0.588,0.835,0.22,0.455,0.715,0.792,0.171,0.406,0.842,0.749,0.122,0.357,0.921,0.714,0.082,0.32,1,0.678,0.043,0.282],"ix":9}},"s":{"a":0,"k":[10.307,-30.112],"ix":5},"e":{"a":0,"k":[18.414,-21.744],"ix":6},"t":1,"nm":"Stripegradientc","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HatStripe2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Hat","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":2,"ix":10},"p":{"a":0,"k":[-230.213,207.025,0],"ix":2},"a":{"a":0,"k":[9.386,-12.953,0],"ix":1},"s":{"a":0,"k":[115.214,105.229,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-1.048,1.975]],"o":[[0,0],[-1.045,1.979],[0,0]],"v":[[15.906,-29.995],[18.084,-8.12],[-3.275,-20.853]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":11,"k":{"a":0,"k":[0.115,0.459,0.839,1,0.198,0.451,0.831,0.992,0.282,0.443,0.824,0.984,0.372,0.418,0.798,0.959,0.461,0.392,0.773,0.933,0.555,0.349,0.731,0.894,0.648,0.306,0.69,0.855,0.743,0.247,0.633,0.798,0.838,0.188,0.576,0.741,0.919,0.125,0.516,0.68,1,0.063,0.455,0.62],"ix":9}},"s":{"a":0,"k":[-3.016,-26.005],"ix":5},"e":{"a":0,"k":[13.937,-7.054],"ix":6},"t":1,"nm":"Hatgradient","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Hat","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Confetti11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-74,"ix":10},"p":{"a":0,"k":[135.111,329.463,0],"ix":2},"a":{"a":0,"k":[16.786,25.814,0],"ix":1},"s":{"a":0,"k":[1381.996,1381.996,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.175,-0.325],[-0.525,0.4],[-0.469,-0.175],[-0.66,1.01],[-1.025,-0.249],[-0.1,-0.725]],"o":[[0,0],[1.298,0.359],[0.525,-0.4],[1.275,0.475],[0.85,-1.3],[1.75,0.425],[0.269,1.224]],"v":[[8.8,29.45],[12.675,25.025],[14.575,27.625],[16.675,23.625],[19.2,26.775],[22.125,23.425],[24.325,26.75]],"c":false},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[100]},{"t":40,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":36,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Raccorder les tracés 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.650980392157,0.901960844152,0.223529426724,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"green","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Forme 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":42,"st":15,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Confetti10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[873,522.696,0],"ix":2},"a":{"a":0,"k":[25.11,6.511,0],"ix":1},"s":{"a":0,"k":[1381.996,1381.996,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.116,1.363],[0.225,0.8],[-0.35,1.125],[-0.05,0.35],[0.3,0.675],[-0.425,0.475],[1.275,0]],"o":[[1.6,-0.7],[-0.225,-0.8],[0.35,-1.125],[0.05,-0.35],[-0.3,-0.675],[0.425,-0.475],[-1.275,0]],"v":[[24.6,13.6],[28.575,11.15],[24.25,8.375],[26.2,5.125],[21.65,4.95],[24.55,0.35],[22.6,-0.675]],"c":false},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[100]},{"t":25,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"t":21,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Raccorder les tracés 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.909803981407,0.109803929048,0.152941176471,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Contour 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Forme 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[0]},{"t":19,"s":[149]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":1,"s":[194.929,367.888,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":20,"s":[194.929,647.888,0]}],"ix":2},"a":{"a":0,"k":[-270.075,219.877,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.567],[0,3.569]],"o":[[0,3.569],[0,-3.567]],"v":[[-267.399,219.876],[-272.751,219.876]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":1,"op":20,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":23,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":38,"s":[100]},{"t":40,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[0]},{"t":39,"s":[-238]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[870.597,174.763,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":40,"s":[870.597,454.763,0]}],"ix":2},"a":{"a":0,"k":[-216.535,204.574,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.568],[0,3.569]],"o":[[0,3.569],[0,-3.568]],"v":[[-213.859,204.573],[-219.211,204.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.65098041296,0.901960790157,0.223529413342,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":21,"op":40,"st":20,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":12,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[100]},{"t":29,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[0]},{"t":28,"s":[-49]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[790.435,694.021,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":29,"s":[790.435,974.021,0]}],"ix":2},"a":{"a":0,"k":[-222.887,245.719,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-219.674,244.714],[-221.718,249.449],[-226.101,246.73],[-224.056,241.989]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.901960790157,0.207843139768,0.870588243008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":10,"op":29,"st":9,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[100]},{"t":19,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":18,"s":[35]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[423.853,174.764,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":19,"s":[423.853,454.764,0]}],"ix":2},"a":{"a":0,"k":[-251.935,204.574,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-249.335,205.209],[-252.875,208.444],[-254.535,203.943],[-250.991,200.703]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":19,"st":-1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":29,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[100]},{"t":48,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":29,"s":[0]},{"t":47,"s":[-115]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29,"s":[194.479,190.293,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":48,"s":[194.479,470.293,0]}],"ix":2},"a":{"a":0,"k":[-270.111,205.804,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-266.857,204.993],[-269.272,209.164],[-273.364,206.613],[-270.943,202.444]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803926945,0.109803922474,0.152941182256,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":29,"op":48,"st":28,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":33,"s":[100]},{"t":35,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0]},{"t":34,"s":[29]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[781.475,542.889,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":35,"s":[781.475,822.889,0]}],"ix":2},"a":{"a":0,"k":[-223.597,233.744,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-221.09,235.787],[-226.105,236.067],[-223.558,231.42]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.65098041296,0.901960790157,0.223529413342,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":16,"op":35,"st":15,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[4]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":7,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[100]},{"t":24,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[0]},{"t":23,"s":[-78]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[289.011,51.812,0],"to":[0,46.667,0],"ti":[0,-46.667,0]},{"t":24,"s":[289.011,331.812,0]}],"ix":2},"a":{"a":0,"k":[-262.62,194.831,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-259.364,196.93],[-265.876,198.066],[-263.263,191.596]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.901960790157,0.207843139768,0.870588243008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":24,"st":4,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Mouth","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1.1,101.975,0],"ix":2},"a":{"a":0,"k":[-244.448,237.823,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[1262,1262,100]},{"i":{"x":[0,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":4,"s":[1299.86,1262,100]},{"i":{"x":[0,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":18,"s":[1173.66,1262,100]},{"i":{"x":[0,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[1375.58,1262,100]},{"t":41,"s":[1262,1262,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.296,0.419],[1.111,0.249],[-1.006,1.535],[-1.835,3.294],[0.211,-1.095],[-0.41,-1.177],[-1.08,-0.51],[-1.838,-3.404],[1.972,0.537]],"o":[[0.925,-1.314],[-0.841,-0.189],[1.132,-1.727],[0.507,3.837],[-0.222,1.148],[0.296,0.85],[1.012,0.479],[-3.419,-1.598],[-2.499,-0.679]],"v":[[-250.347,241.811],[-251.329,238.417],[-251.856,235.16],[-245.719,230.892],[-249.789,236.446],[-248.06,239.115],[-247.821,242.498],[-241.295,244.546],[-248.775,244.67]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.086274512112,0.149019613862,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Wistle 2","parent":18,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":0.97},"o":{"x":0.167,"y":0.167},"t":19,"s":[-269.13,249.354,0],"to":[-2.391,0.777,0],"ti":[0,0,0]},{"i":{"x":0,"y":0.97},"o":{"x":0.333,"y":0},"t":30,"s":[-283.475,254.013,0],"to":[0,0,0],"ti":[-2.391,0.777,0]},{"t":41,"s":[-269.13,249.354,0]}],"ix":2},"a":{"a":0,"k":[-269.13,249.354,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.085,0.085,0.582],"y":[0.783,0.783,0.263]},"o":{"x":[0.24,0.24,0.18],"y":[0.147,0.147,0.294]},"t":19,"s":[100,100,100]},{"i":{"x":[0.727,0.727,0.667],"y":[1.024,1.024,1.031]},"o":{"x":[0.261,0.261,0.347],"y":[0.023,0.023,0.153]},"t":23,"s":[40.348,40.348,100]},{"i":{"x":[0.727,0.727,0.667],"y":[1,1,1]},"o":{"x":[0.223,0.223,0.333],"y":[5.639,5.639,-0.218]},"t":24,"s":[0,0,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.223,0.223,0.333],"y":[0,0,0]},"t":31,"s":[0,0,100]},{"i":{"x":[0.017,0.017,0.667],"y":[0.994,0.994,1]},"o":{"x":[0.401,0.401,0.333],"y":[0,0,0]},"t":32,"s":[36,36,100]},{"t":41,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.349,0.972],[-1.201,-1.202]],"o":[[-1.227,-0.883],[0.93,0.929]],"v":[[-270.784,247.568],[-268.41,245.193]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.160784319043,0.443137258291,0.141176477075,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.157,1.555],[-1.921,-1.922]],"o":[[-1.961,-1.409],[1.489,1.489]],"v":[[-271.896,248.061],[-268.099,244.26]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.321568638086,0.57647061348,0.1254902035,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.901,2.09],[-2.585,-2.583]],"o":[[-2.641,-1.899],[2.003,2.003]],"v":[[-273.022,248.652],[-267.914,243.537]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.478431373835,0.709803938866,0.113725490868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.166,2.21],[2.033,2.806],[-1.296,-3.921],[-4.548,2.075],[-0.061,0.344]],"o":[[0,0],[-1.537,-2.119],[0.744,2.244],[-0.055,-0.962],[0.194,-1.095]],"v":[[-267.526,244.127],[-271.283,238.679],[-276.315,243.625],[-268.976,249.505],[-269.135,245.865]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.65098041296,0.901960790157,0.223529413342,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Wistle","parent":16,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":5,"s":[2]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":18,"s":[4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[-16]},{"t":41,"s":[0]}],"ix":10},"p":{"a":0,"k":[-249.704,239.133,0],"ix":2},"a":{"a":0,"k":[-249.704,239.133,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-0.27,0.114],[0.522,-0.162],[0,0],[0,0]],"o":[[0.486,-0.201],[-0.349,0.109],[0,0],[-0.001,0.002]],"v":[[-265.416,247.908],[-266.411,243.219],[-269.252,244.125],[-269.065,249.449]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[{"i":[[-0.27,0.114],[0.522,-0.162],[0,0],[0,0]],"o":[[0.486,-0.201],[-0.349,0.109],[0,0],[-0.001,0.002]],"v":[[-265.416,247.908],[-266.411,243.219],[-284.873,249.317],[-284.686,254.641]],"c":true}]},{"t":41,"s":[{"i":[[-0.27,0.114],[0.522,-0.162],[0,0],[0,0]],"o":[[0.486,-0.201],[-0.349,0.109],[0,0],[-0.001,0.002]],"v":[[-265.416,247.908],[-266.411,243.219],[-269.252,244.125],[-269.065,249.449]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.478431373835,0.709803938866,0.113725490868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.441,0.168],[0,0],[0.451,-0.16]],"o":[[0.445,-0.171],[0,0],[-0.462,0.162],[0,0]],"v":[[-261.763,246.347],[-259.498,245.484],[-263.556,242.416],[-265.742,243.183]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":50,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.717,0.273],[0,0],[0.794,-0.273]],"o":[[0.799,-0.307],[0,0],[-0.764,0.265],[0,0]],"v":[[-256.817,244.455],[-254.535,243.584],[-258.435,240.64],[-260.781,241.459]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":50,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.271,-0.967],[-0.407,0.148],[1.258,0.945],[0.803,-0.283]],"o":[[0.988,-0.374],[-1.257,-0.951],[-0.66,0.232],[1.279,0.953]],"v":[[-251.812,242.543],[-249.663,241.733],[-253.431,238.887],[-255.637,239.659]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.058823529631,0.705882370472,0.831372559071,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":50,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.988,0.359],[0.92,-0.309],[6.715,-2.361]],"o":[[6.81,-2.612],[0.59,-0.214],[-1.177,0.393],[0,0]],"v":[[-266.05,248.005],[-249.399,241.634],[-250.421,237.841],[-267.078,243.648]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.458823531866,0.839215695858,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Blush","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[97]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":34,"s":[100]},{"t":46,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1.651,60.272,0],"ix":2},"a":{"a":0,"k":[-244.666,234.519,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.559,0],[0,-5.557],[5.557,0],[0,5.561]],"o":[[5.557,0],[0,5.561],[-5.559,0],[0,-5.557]],"v":[[-229.286,224.454],[-219.221,234.519],[-229.286,244.583],[-239.35,234.519]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.1,1,0.388,0.6,0.73,1,0.649,0.351,1,1,0.91,0.102,0.1,1,0.73,0.5,1,0],"ix":9}},"s":{"a":0,"k":[-230,234],"ix":5},"e":{"a":0,"k":[-219.936,234],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"B1G","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":60,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.559,0],[0,-5.557],[5.557,0],[0,5.561]],"o":[[5.557,0],[0,5.561],[-5.559,0],[0,-5.557]],"v":[[-260.046,224.454],[-249.983,234.519],[-260.046,244.583],[-270.111,234.519]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.1,1,0.388,0.6,0.73,1,0.649,0.351,1,1,0.91,0.102,0.1,1,0.73,0.5,1,0],"ix":9}},"s":{"a":0,"k":[-261,234],"ix":5},"e":{"a":0,"k":[-250.936,234],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"B2G","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":60,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Eyes","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-52.396,0],"ix":2},"a":{"a":0,"k":[-244.535,225.591,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[1262,1262,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":5,"s":[1262,1009.6,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":18,"s":[1262,1388.2,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[1262,1009.6,100]},{"t":44,"s":[1262,1262,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.605,0.779],[3.988,-5.154],[-0.258,0.756],[-3.385,-9.963]],"o":[[-3.989,-5.154],[-0.605,0.779],[3.385,-9.963],[0.258,0.756]],"v":[[-248.954,223.965],[-259.716,223.965],[-261.3,223.408],[-247.37,223.408]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.086274512112,0.149019613862,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.605,0.779],[3.989,-5.154],[-0.258,0.756],[-3.387,-9.963]],"o":[[-3.989,-5.154],[-0.605,0.779],[3.385,-9.963],[0.256,0.756]],"v":[[-229.355,223.965],[-240.117,223.965],[-241.7,223.408],[-227.769,223.408]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.101960785687,0.086274512112,0.149019613862,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Face","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-338.396,0],"ix":2},"a":{"a":0,"k":[-244.535,225.591,0],"ix":1},"s":{"a":0,"k":[1262,1262,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.464,0],[0,-15.467],[-15.464,0],[-0.001,15.459]],"o":[[-15.464,0],[0,15.459],[15.464,0],[0.001,-15.467]],"v":[[-244.535,197.592],[-272.535,225.592],[-244.535,253.59],[-216.535,225.592]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,1,0.584,0,0.4,1,0.747,0.051,1,1,0.91,0.102],"ix":9}},"s":{"a":0,"k":[-231.07,253],"ix":5},"e":{"a":0,"k":[-231.07,198.011],"ix":6},"t":1,"nm":"party_face_grad","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":49,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"party_face","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[512,512,0],"ix":2},"a":{"a":0,"k":[512,512,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1024,"h":1024,"ip":0,"op":48,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
index 6f96089..b1c6184 100644 (file)
@@ -169,11 +169,12 @@ struct Value<VPointF> {
     bool    mPathKeyFrame = false;
 
     void cache() {
-        mInTangent = mEndValue + mInTangent;
-        mOutTangent = mStartValue + mOutTangent;
-        mBezierLength = VBezier::fromPoints(mStartValue, mOutTangent,
-                                            mInTangent, mEndValue).length();
-
+        if (mPathKeyFrame) {
+            mInTangent = mEndValue + mInTangent;
+            mOutTangent = mStartValue + mOutTangent;
+            mBezierLength = VBezier::fromPoints(mStartValue, mOutTangent,
+                                                mInTangent, mEndValue).length();
+        }
     }
     VPointF at(float t) const
     {
index d670d8d..1d54e18 100644 (file)
@@ -2056,15 +2056,15 @@ void LottieParserImpl::parseKeyFrame(model::DynamicProperty<T> &obj)
         }
     }
 
-    // hooks to cache some computaion
-    keyframe.mValue.cache();
 
-    if (!obj.mKeyFrames.empty()) {
+    auto &list = obj.mKeyFrames;
+
+    if (!list.empty()) {
         // update the endFrame value of current keyframe
-        obj.mKeyFrames.back().mEndFrame = keyframe.mStartFrame;
+        list.back().mEndFrame = keyframe.mStartFrame;
         // if no end value provided, copy start value to previous frame
         if (parsed.value && parsed.noEndValue) {
-            obj.mKeyFrames.back().mValue.mEndValue =
+            list.back().mValue.mEndValue =
                 keyframe.mValue.mStartValue;
         }
     }
@@ -2072,13 +2072,14 @@ void LottieParserImpl::parseKeyFrame(model::DynamicProperty<T> &obj)
     if (parsed.hold) {
         keyframe.mValue.mEndValue = keyframe.mValue.mStartValue;
         keyframe.mEndFrame = keyframe.mStartFrame;
-        obj.mKeyFrames.push_back(std::move(keyframe));
+        list.push_back(std::move(keyframe));
     } else if (parsed.interpolator) {
         keyframe.mInterpolator = interpolator(
             inTangent, outTangent, std::move(parsed.interpolatorKey));
-        obj.mKeyFrames.push_back(std::move(keyframe));
+        list.push_back(std::move(keyframe));
     } else {
-        // its the last frame discard.
+        // Last frame. cache some computaion
+        for (auto &e : list) e.mValue.cache();
     }
 }