1 00:00:02,530 --> 00:00:05,780 alright so today's class we talked about vertex unfolding unfolding orthogonal polyhedra and something else which there weren't any questions about gone already coaches rigidity theorem so we will go through those in turn a bunch of small questions and to cool new things new updates so first question is about vertex unfolding why do we fold things in a chain and kind of a line linear style would you get any benefit out of a tree the answer is four lines I mean chains are easy to avoid intersection that's the reason we use them and these kinds of unfoldings we could dedicate a different slab for every piece and this is great and incidentally I didn't mention this in lecture but it's it's obvious once you think about it for five minutes if you want general cuts if you're allowed to cut anywhere on the surface and you want a vertex unfolding then anything is possible because you can take any surface and chain if I it in the same way we do with hinged dissections right you subdivide if you first you triangulate so BB subdivide ease triangle into three triangles then you can hinge it together in a chain and then you can just lay it out like this so general vertex unfolding is trivial for this reason for when you're only allowed to cut along edges things get much harder the only technique we have right now is facet path unfolding but of course vertex unfolding convex polyhedra is an easier version of edge unfolding convex polyhedra but we have no idea how to do that so maybe it's possible and probably we already know it's not possible with chains so if it's possible it's somehow possible the trees I guess we know tree m street style unfoldings can be helpful with general cuttings but this is not directly relevant to vertex unfolding but this is a source unfolding in the star unfolding again so yeah who knows but so far chains are just a useful proof technique alright next question is this is vertex unfolding summarized in the lecture notes on the right right side so we end up with a nice or Larian graph in this case every vertex happens to have even degree in general two of them might have odd degree and we just get a path but the observation in this question maybe I've got the other side so you can read both is that we visit the same vertex multiple times like we attach these two triangles at this vertex we also attach these two triangles at that vertex is that okay yes we define it to be okay I think I briefly mentioned it's defined to be okay why I don't know it's hard to imagine little dots of paper there but somehow you imagine that they can stay connected it is in particular it's the natural definition of a hinged dissection you could add hinges at those two places but also it's impossible otherwise this was a fun little puzzle to think about but if you take oh I actually have a slide for it forgotten don't have to draw it's hard to draw an icosahedron if you take an icosahedron it has 20 faces and the duel is the dodecahedron so it has 12 vertices so there aren't enough to go around if you wanted at least if you wanted a chain unfolding but actually any tree unfolding if you have 20 triangles you're going to need 19 vertices to connect them together and there's only 12 vertices so you can't do it I mean unless yeah that literally true i guess you could imagine in a general tree unfolding you could use one point to connect together many many triangles but I'm pretty sure it's not possible if you're allowed to reuse vertices so that's why we allow it I mean we get a more interesting result when we allow revisiting vertices could be there's still an interesting question like this which polyhedra have vertex unfoldings we only get to use a vertex once but I don't know any results on it all right next question is any progress on vertex unfolding and there's one new result before I showed you think one example of a vertex unfolding polyhedron this guy box on a box initially we said oh this is edge on unfold the ball but it's also vertex on unfold abul because this face here it's donut and the five sides of that cube have to fit in here and there's not enough area for them and that's true also if your vertex unfolding no matter how this stays attached to the donut face it's gotta lie in here and that's not possible but this is an unsatisfying example because you have a face that is not a disc and in general you're not topologically convex which you can't just move the vertices around and make this a convex polyhedron not strictly convex anyway so here is a new example with Zack able froze so yeah it was he took this class two years ago or no five years ago I guess this is a topologically convex polyhedron so you could move the vertices to make this convex that's not so obvious and it is vertex uh none foldable which we will prove so this is one of the two new results for today idiot the example is a dark prism here and a triangular prism and they light triangular prism just at right angles sort of to each other then you take the union of that solid and then you take the boundary so first you can check all the faces are discs and for topological convexity you want to check that if you look at any two faces like this light s 1 and this dark one they should only share one edge at most they should share nothing a vertex or an edge that's topological convexity because that's how things work in convex if the polygons were convex so like here they share just that edge so it is topologically convex let's prove that it is vertex uh none foldable so in some sense this is a strengthening of the witches hats and stuff because this is also edge unfold edge uh none foldable but even cool is vertex on unfold a bowl turns out let's just look at the connections between the arc and the light there are 1 2 3 4 vertices on this side and four vertices on the back side the Kinect dark to light and shurz make some star wars reference address all those vertices are symmetric so we can just look at any of them some somewhere light the lights that has to be attached to the dark side where could that be let's say vertex a because it's got to be somewhere and symmetric so vertex a has three angles incident to it there's alpha that's this angle which is big it's reflex there's this beta and there's this gamma beta is 90 degrees here because this is rectangles to be a rectangle or yeah rectangle gamma is well let me stick what I want from these angles there's some parameters in the construction I haven't yet told you so we want alpha to be bigger than 270 beta equals 90 and we want alpha plus gamma equal to 360 so this is possible if you angle the these guys correctly this is the short version I guess the most interesting is this alpha plus gamma equals 360 yeah that obvious not especially but I'll claim is true in this picture we'll see it in an unfolding actually on the very next slide yeah let's go there still have the same picture but when unfolded is supposed to look like like this so okay so what happens at a if you want to connect the light side which is alpha that's forced you can you can attach by a vertex unfolding to beta or gamma well beta is impossible because ninety plus greater than 270 is greater than 360 so you would get overlapped locally at this vertex if you attach these even if your vertex unfolding so you've got to attach to gamma alpha plus gamma is supposed to be exactly 360 and so it's actually vertex unfolding doesn't buy you anything in order to not locally overlap here they must fit right like that then the only other condition we need is that these prisms are long enough so that you get overlap over here so it's not a purely local overlap but it's very close by it's the same two faces overlap here they have an overlap here and here if this were shorter if this would like this short that this is the length of the prism here then you'd avoid overlap and that's this picture so this is an unfolding of one of the two prism halves this is unfolding the other if you attach them these vertices as is necessary you get overlap unless the prism or short than you would get this kind of unfolding so that's the proof you can actually make the proof even simpler kind of nifty although it's less obvious that this example exists I mean you give the coordinates and you can check it exactly and has all the properties you want so it's kind of each prism has been bent a little bit more or less the same example but now it has the feature that alpha plus beta prime is greater than 360 and alpha plus gamma prime is greater than 360 so you just can't attach anything even locally you get pure overlap so easy to check if your computer easier to check and prove and verify if your computer less hard visually or are less easy visually so that's what's known the open problem which I should probably write down is if your faces are convex polygons is there a vertex on unfold the bowl polyhedron that we still don't know so that the witch's hat all the faces are triangles there's no edge unfolding but it has a vertex unfolding I think these guys are nice they're topologically convex but the faces are still very non convex and we use that because we want a giant angle reflex angle together with something to add up to more than 360 if you're always adding up to convex angles you don't get that but maybe you could combine it with a polyhedron that's not Hamiltonian so you have to have three things joining together and then you could get more than 360 I don't know it could be an interesting problem to work on but so far it is open so that is vertex unfolding next question is about general unfolding of non convex polyhedra still it's open whether every polyhedron say without boundary has a general unfolding still we know that all orthogonal polyhedra of gene is zero have an unfolding that remains the state of the art but we have a better way to unfold orthogonal polyhedra of gina's 0 and this is a new paper it's not yet online but it will be shortly just final version just went to the journal unfolding orthogonal polyhedra with quadratic refinement so two of the same authors Marilla Damian and Robin flatland from the exponential unfolding and you may recall we had a we saw solution in lecture that has exponential refinement the number of cuts in particular can be exponential in n in the worst case this requires you take the grid you refine it at most quadratic number of times in each dimension so a number of cuts is polynomial I guess it most into the seventh if you cut n squared by N squared by N squared by n I think it's actually much less than that probably more like N squared but I need to be careful so I want to cover the solutions it's a simple variation actually on the previous one but also there are some questions about how the exponential one work so I want to go through that one more time we have new figures for it from this paper so looks a little different maybe a little bit clearer as our goal and I need my hands so remember the general idea was to slice your polyhedron in one direction so you end up with these bands strips and then you visit the strips in a tree like fashion and in particular at the leaves like the closest to you you've got a you've got a band and then you've got a front face and so that would look something like this little box so you've got a band that goes around oh sorry which way is it Bend is this way should be an X and Z yeah and then there's the front face which here is drawn on the back those are the five out of six phases of of the box that are actually present this this face that's closest to us is actually attached to another band okay I mean you could have leaves on this side or that side okay so what do we do we enter at s and we exit at T and we are told that the first turn you make from s should be a right turn and the last term before tea should be a left turn and the you start in the unfolding you will start going vertical in s that's why you should turn right because we never want to turn left we never want to go left in the unfolding this is here and we also want to end in a vertical state 40 so that we can chain these together okay so we started s we're told to turn right which we do here then we're basically going to zigzag and if you check along the surface we turn right we go here up there and then we turn left and then right and then this is a left because it's we're supposed to be doing it from below and then a right with that red thing then a left right down here and the left and we're done okay and the number of balances out so we start vertical we end vertical and then when we're done with all these things we thicken it's not drawn here but these strips get thickened and you end up attaching these fatter versions but basically you're following the same path we don't think in it at the beginning because we're actually going to do this many times on the same cell and then we abstract that picture to this iconography which says this I didn't talk about much in lecturer says you should start by turning right in s and then you should end by turning left and then visiting T so that's one picture but I mean it depends where you're going so you can they're actually eight different versions I showed you this one but all those combinations have to happen and the top ones are when you're all the way forward bottom ones are where you're all the way back in these slabs so that's that's slightly different and then there's weather s is on the left or s is on the right relative to T and then there's whether you start by turning to the right from s or end by turning to the left t is always the opposite but those are the eight possibilities from three different choices are you far forward are you far back do you turn right from s or do you turn left and is that's the left or zest to the right that's why you have eight combinations they all look basically the same but those are your base cases now so this is still all review of the old version and then the last part of the old method is non leaves so in general you have a band which is here drawn as two separate pieces but really this is 11 band a bands are easy to unfold they go straight but then you have all these children so you have your parent which is the S&T part you have to start here and end here recursively you want to visit this whole sub tree so you might have children that are on the front side children that are on the back side and what we do again we're told we should initially turn right say so if we turn right we visit the first thing we tell this leaf or this child actually this is not necessarily a leaf we tell this child that the next thing we want to do is turn to the left because we just turned right actually we just turned right twice so we've just gone right right we will actually be unfolding initially up so we turn right twice now we better turn left and then we will end up pointing I believe down because initially this is pointing down after you do this construction you'll be pointing down again and that's why you want to turn left here so you unroll this thing you can verify you are actually just zigzagging and so you go back and forth through these verify this always proceeds to the right but we know we're using different iconography here right this is an S on the left that initially turns left this is an S on the right that initially turns right that's why we need two different different forms of the recursive call this is a picture where initially we turn right on s and s is to the right but there are different versions of this picture just like in the base cases where asses to the left and where you initially have to turn left but they look the same I mean you just visit them back and forth like this at some point you've finished the front children then you go up and here it's a little bit shifted that these would normally be aligned then you have to visit the top children need to do that by visiting and going back and forth then of course when you're done here you have to unwind everything you did so then we go over here we visit that guy back and forth eventually we will end up on the inside here and having doubled everything we come back out to tea ok and all the time we're unfolding to the right now what can we say about this well what sucks is all of these children get visited twice and that's why you're doubling at every recursive level and so if your recursion tree looks like a long binary tree then you get exponential right not quite we'll come back to that here's an example of it being exponential with this kind of tree it's a little hard to draw too many levels deeps we have one level deep and then another level deep but you'll notice that it's not uniform right this leaf gets visited exponentially many times with this one still only got visited once of course it's shallower but even these two leaves are at the same level they did not get visited the same in overtime so there's some hope of improving things as you might imagine so this is where we go so the observation there's two observations here two ideas maybe I'll tell you where we started as I think can never remember years I was teaching this class either two or five years ago and I had idea a number one we worked on at an open problem session but it was not enough idea what number one is just part of the story and it's an idea that comes from the other padua class I teach which is heavy light decomposition in advanced data structures so this is a very common technique in advanced data structures goes back to Slater and karjan you've ever heard of splay trees or link cut trees it's that era which was the 80s I believe 83 it's a very useful tool whenever you have general tree structure and you want to make it balanced you should think heavy light decomposition they're actually a few ways to balance a tree but heavy light decomposition is usually the most powerful so essentially what it does is say if I could just treat this thing this path as a single node and then treat these guys as separate nodes then I'd kind of be balanced it would be like one super node and then a bunch of children hanging off of it one two three four so that's the picture I'd like to make I'm going to contract paths only paths of my tree and it turns out there's always a way to take paths can track them into single notes so the resulting thing has height at most log n no matter what true you start with and heavy light decomposition is a way to do this it's very simple to define for every node you define the idea of a heavy child this is a child with more than half the weight the weight of a subtree is the number of descendant notes so the number of nodes in that sub tree so if we look at this picture you've got this node it has one two three four five six seven eight nine nodes below it this subtree only has one so this subtree has 77 is bigger than half of nine right most of the weight is to the left so we call this edge heavy similarly this edge is heavy because this is 55 is more than half of 7 this one's only three nodes below it that is still more than half as half of this is 2.5 i believe so these this edge is heavy this one is not heavy so actually in the real picture it would look like this that's the this is a heavy pass and this guy's all by itself so is one more note but it has the same effect of balancing the tree so what's the point if I generally have some tree in general i might have you know many children no idea how many children are out there so I mean every node can have many children these correspond to the various bands that are attached to my my parent band and right so that's heavy child in general though every node has at most one heavy child because you can't have more than two halves if I have more than half of the weight in one child I can't have more than half the weight in another child so every now it has at most one heavy child these edges connecting nodes and they're heavy children we call heavy edges and whenever we have another there's at most one heavy edge going down from it so heavy edges form heavy paths that's the point so this red thing is called a heavy path cool so what do we know about heavy paths or actually so the the other edges i should say these guys we call light edges this is the heavy light decomposition so every edge is either heavy or light could be a node only has light children because it's well distributed in the worst case it has one heavy child one heavy edge coming out of it so we get heavy paths we don't say heavy edges warm pads and if we look at what i normally call the light depth of a node this is if i look at a node in this tree and i measure how many light edges do i have to traverse in order to get from the root of the tree to that node here it's only one light edge number of light edges follow on any path is it most log n log base two of n because every time i follow a light edge I know that I started with say n nodes I follow a light edge I know that I have at most half n nodes because my weight goes down by half if I start with M I can only reduce by a factor of two login times before I run out of nodes that I'm in a leaf when I get down to a way to one so light depth of any node is at most log in because weight halves every every step very light step so this is why if you contract the heavy pads to single nodes like death is or the remain the depth of the remaining tree is only log n so what does this tell us if I could somehow deal with paths efficiently and not feel the recursive pain that we're getting here from doubling everything along a path then I just need then I could chain them together in the usual bad recursive way I can afford to double on a balanced tree so if I could somehow treat these paths as single things we'd be all set that was idea number one and that's that for years I knew I knew this should be possible but what we were missing was idea number two it's it's funny it's you stare at this picture long enough it's actually kind of kind of obvious it requires more work after the idea okay so here same pictures before I spread it out a little bit but so we end up visiting this guy last and then we end up recursively visiting this one a second time then this one a second time then this one a second time we go down here we go round here visit this one a second time unwind is it this one a second time this one second time this one a second time and we're out did I visit them all a second time no there's one that I didn't visit a second time which is the last child I only visited that one once and that's all we need is one child because I only need to do a path efficiently so I'm recursively visiting most of the children here those are going to be my light children the one heavy child I want to aim to visit that won last because that one's only visited once so it doesn't get recursively doubled at this level of course the higher up at the level it will get double but there's only log n levels we're going to get doubled so will only add a factor of n okay idea number two is that the last child gets visited only once at this recursive level and if you've taken an algorithms class you know recursively visiting things once versus twice makes a big difference here it's a matter of doubling or just stay in the same so well if we can arrange to visit these children first then do this one last then visit this child first then do this one last then visit this child first and do this one last and then do all the children whatever order then we'll guarantee that this path doesn't get recursively refined at this level so it's really being treated as a single node basically and that lets you tie together these unfoldings in an efficient way the only issue is I need to be able this construction isn't enough because this construction basically forced this one to be the last child to get visited I need to be able to control which child is last visited because the heavy property is a property of the tree one of these guys maybe this one is heavy maybe that one's heavy we've got to be able to end on that so there are two cases first case is that we always start from the bottom here and first case is that the on the top side is where the last child where the heavy it is so this is the easy case because the bottom we don't care we just visit the children whatever orders natural then we come up and basically we have the freedom to spin around here we have to turn left but we could either choose to immediately go up here or keep going and go up here or keep going go up here that would visit that one too early or go here it turns out this is the right choice but we had freedom to just spin around and choose when to go up just try them all one of the wound up being last it's it's I mean basically you want this guy to be in the middle between where you start and the one just to the left here because you're kind of rain bowling back and forth zeroing in on the last guy and just by I mean by pigeonhole I suppose one of these choices will work because there's k different choices up there k choices you can make a when to turn up they each result in a different guy being last and so one of them corresponds to the correct one it's easy to figure out which one it is so if it's on the top side it's really easy you just pick it this would be great this would actually give us linear refinement if we only had this case the other case is when the last guy the guy we want to make last the the heavy child is on the bottom side in this case we need to do more work so this is basically the old construction here we don't really have freedom from s we can't just bypass this guy because it will actually get to be hard to get him later so you've got to visit him and back and forth but the one thing we could do is just omit a child just forget about it for a while don't visit it visit everything else in whatever order feels natural to you okay and then we're going to splice this guy in so we'll see where's where does the path go at some point it will go above this last proposed last guy and what we're going to do which is on the next slide is on the return trip so when we're so remember we have this picture we come out here then we recursively double everything so some point we are coming here doubling and at that point we turn in but if S&T are aligned like this we are pointing the wrong way we wanted to get here but where it doesn't even look like we're in the same side but we are we just have to recursively double everything again in the end when you recursively double everything again you will be here and we haven't finished doubling here but in the end you will come out here and exit at T so overall these guys which haven't been visited yet they'll end up being doubled from this procedure these guys wound up being quadrupled so we're doing for recursive calls for most of the children some of them might get lucky and only double but all we care about is that this guy only gets visited once that's the key is this this will be recursively here it's hard to unwind but then you'll end up on the inside of this channel then you'll end up visiting this guy then you'll end up visiting this guy and then you get out of T so you won't come back to here that's the key that's all we need you can write down a recurrence at this point if you look at the level of refinement for an N vertex polyhedron or an end slab polyhedron would be and n let's say is the number of nodes in the tree of slabs this picture in general that is proportional to the number of vertices in the polyhedron in the worst case it's going to be the max of two things are n minus 1 and 4 times are of n over 2 well I should say and sub I max over I so what I mean to say here and this is well ok this is also technically an n sub I but this is an upper bound certainly so if we look at the recursion how much refinement we need I mean this the worst refinement over the whole tree is is the max of all of its sub trees right so there's a max refinement needed here max refinement needed here and then also of course what we need to do within the node and on the one hand there's the heavy situation the heavy edge that only decreases the size of the tree by one but it only gets recursively visited one time one times are of n minus 1 there's the other like children these are all light children and sub I represents the number of nodes in that child we know that this is at most and over 2 because we know that at most half of the weight lives in the light child now these get recursively visited at most four times up to four times worst case it will be four times so this term and this recurrence this this first term doesn't matter our event is at most are of n minus 1 yeah big deal that's just saying our event increases with n so really this is going to be them and then the max disappear I mean all we need is this is at most four times R of n over 2 and this is a recurrence if you've read clrs is follows the master theorem and you know immediately this is order N squared B theta N squared but this is an upper bound in the worst case it will actually be theta N squared so the number amount of refinement is at most n squared if this is not obvious to you an easy way to imagine it is you start with something of size n you're visiting four times something of size n over 2 this is called a recurrence tree recursion tree each of these visits four times something of size n over 4 and so on obviously log n levels here and at the bottom you're going to have a bunch of ones that's when you stop recursing and if you add up everything level by level how much work am I doing here and how much work am I doing here 2n how much work am I doing here it's harder to add but there are 24 squared 16 things each and over four so it's for n in general it goes up by a factor of two every time which means you are dominated by the last layer and if you count it's going to be N squared because this is this is 2 to the 1 so our 220 to the one to the two after you get to log in it's two to the log n times n so that is N squared and this is a geometric series if you want to add all these numbers up and so it's it's 2 times n squared so that's proof of this bound and that's how you get quadratic refinement so either idea is kind of easy but two together pretty powerful questions about unfolding I think this algorithm should be pretty clear one of the questions was are they practical I think the answer is no has the same issue of strip folding from origami but I think they would make great animations this is still a cool to see virtually but to I mean do it physically is probably crazy no one has tried as far as I know another idea this is an open problem so orthogonal is great as all these nice properties can you generalize it not to arbitrary polyhedra but to some other kind of orthogonal such as this is a hex hexagonal lattice in 3d you I mean it's just extruded in one dimension but then you have hex grid and another dimension you could try to do that my guess is if you set up the band's to be in the hex dimensions it just works but I haven't tried so it's potentially some low-hanging fruit here there should be other 3d structures that might work a typical one in computational geometry is called see oriented polyhedra we're here we have three oriented polyhedra there's three different directions that the faces can be perpendicular to take ten of them can you apply the same technique that gets dicey ER but something like this I feel like maybe possible I should try it out but as far as I know this is all open last question is Cochise rigidity theorem seems intuitively obvious or as i read in the notes is Cochise rigidity theorem obvious and my answer is no not obvious to me I have two reasons why it's not obvious one is it's not true in two dimensions it's kind of weak statement but if I take a convex polyhedron in 2d so these are rigid faces this is the equivalent of a triangle this is not rigid of course but so that's one statement and then the other thing is convexity is necessary there's this thing Stefan's polyhedron actually originally it was at connolly polyhedron we've seen some results by Connolly he's rigidity expert and then this was simplified by this guy Klaus Stefan in the 70s this is a drawing of it flexing in 3d they I mean non-convex polyhedra can be flexible they happen to preserve their volume as they flex but yeah so that's two which that it's hard to say why a theorem is not obvious to me it's not obvious of course if you play with convex polyhedra they do are rigid so maybe it's obvious from that but we've got to prove experimental evidence mathematically other questions all right the then I have some fun videos to show you the first one is the making of this origami piece which I've probably shown a picture of before it's by Brian Chan it's one square paper no cuts men's at manas with a little crane instead of that's it normally who knows and then he also made this nice box and then the glass is etched by Peter Huck runs the glass slab mighty you 2 00:00:05,780 --> 00:00:09,330 alright so today's class we talked about vertex unfolding unfolding orthogonal polyhedra and something else which there weren't any questions about gone already coaches rigidity theorem so we will go through those in turn a bunch of small questions and to cool new things new updates so first question is about vertex unfolding why do we fold things in a chain and kind of a line linear style would you get any benefit out of a tree the answer is four lines I mean chains are easy to avoid intersection that's the reason we use them and these kinds of unfoldings we could dedicate a different slab for every piece and this is great and incidentally I didn't mention this in lecture but it's it's obvious once you think about it for five minutes if you want general cuts if you're allowed to cut anywhere on the surface and you want a vertex unfolding then anything is possible because you can take any surface and chain if I it in the same way we do with hinged dissections right you subdivide if you first you triangulate so BB subdivide ease triangle into three triangles then you can hinge it together in a chain and then you can just lay it out like this so general vertex unfolding is trivial for this reason for when you're only allowed to cut along edges things get much harder the only technique we have right now is facet path unfolding but of course vertex unfolding convex polyhedra is an easier version of edge unfolding convex polyhedra but we have no idea how to do that so maybe it's possible and probably we already know it's not possible with chains so if it's possible it's somehow possible the trees I guess we know tree m street style unfoldings can be helpful with general cuttings but this is not directly relevant to vertex unfolding but this is a source unfolding in the star unfolding again so yeah who knows but so far chains are just a useful proof technique alright next question is this is vertex unfolding summarized in the lecture notes on the right right side so we end up with a nice or Larian graph in this case every vertex happens to have even degree in general two of them might have odd degree and we just get a path but the observation in this question maybe I've got the other side so you can read both is that we visit the same vertex multiple times like we attach these two triangles at this vertex we also attach these two triangles at that vertex is that okay yes we define it to be okay I think I briefly mentioned it's defined to be okay why I don't know it's hard to imagine little dots of paper there but somehow you imagine that they can stay connected it is in particular it's the natural definition of a hinged dissection you could add hinges at those two places but also it's impossible otherwise this was a fun little puzzle to think about but if you take oh I actually have a slide for it forgotten don't have to draw it's hard to draw an icosahedron if you take an icosahedron it has 20 faces and the duel is the dodecahedron so it has 12 vertices so there aren't enough to go around if you wanted at least if you wanted a chain unfolding but actually any tree unfolding if you have 20 triangles you're going to need 19 vertices to connect them together and there's only 12 vertices so you can't do it I mean unless yeah that literally true i guess you could imagine in a general tree unfolding you could use one point to connect together many many triangles but I'm pretty sure it's not possible if you're allowed to reuse vertices so that's why we allow it I mean we get a more interesting result when we allow revisiting vertices could be there's still an interesting question like this which polyhedra have vertex unfoldings we only get to use a vertex once but I don't know any results on it all right next question is any progress on vertex unfolding and there's one new result before I showed you think one example of a vertex unfolding polyhedron this guy box on a box initially we said oh this is edge on unfold the ball but it's also vertex on unfold abul because this face here it's donut and the five sides of that cube have to fit in here and there's not enough area for them and that's true also if your vertex unfolding no matter how this stays attached to the donut face it's gotta lie in here and that's not possible but this is an unsatisfying example because you have a face that is not a disc and in general you're not topologically convex which you can't just move the vertices around and make this a convex polyhedron not strictly convex anyway so here is a new example with Zack able froze so yeah it was he took this class two years ago or no five years ago I guess this is a topologically convex polyhedron so you could move the vertices to make this convex that's not so obvious and it is vertex uh none foldable which we will prove so this is one of the two new results for today idiot the example is a dark prism here and a triangular prism and they light triangular prism just at right angles sort of to each other then you take the union of that solid and then you take the boundary so first you can check all the faces are discs and for topological convexity you want to check that if you look at any two faces like this light s 1 and this dark one they should only share one edge at most they should share nothing a vertex or an edge that's topological convexity because that's how things work in convex if the polygons were convex so like here they share just that edge so it is topologically convex let's prove that it is vertex uh none foldable so in some sense this is a strengthening of the witches hats and stuff because this is also edge unfold edge uh none foldable but even cool is vertex on unfold a bowl turns out let's just look at the connections between the arc and the light there are 1 2 3 4 vertices on this side and four vertices on the back side the Kinect dark to light and shurz make some star wars reference address all those vertices are symmetric so we can just look at any of them some somewhere light the lights that has to be attached to the dark side where could that be let's say vertex a because it's got to be somewhere and symmetric so vertex a has three angles incident to it there's alpha that's this angle which is big it's reflex there's this beta and there's this gamma beta is 90 degrees here because this is rectangles to be a rectangle or yeah rectangle gamma is well let me stick what I want from these angles there's some parameters in the construction I haven't yet told you so we want alpha to be bigger than 270 beta equals 90 and we want alpha plus gamma equal to 360 so this is possible if you angle the these guys correctly this is the short version I guess the most interesting is this alpha plus gamma equals 360 yeah that obvious not especially but I'll claim is true in this picture we'll see it in an unfolding actually on the very next slide yeah let's go there still have the same picture but when unfolded is supposed to look like like this so okay so what happens at a if you want to connect the light side which is alpha that's forced you can you can attach by a vertex unfolding to beta or gamma well beta is impossible because ninety plus greater than 270 is greater than 360 so you would get overlapped locally at this vertex if you attach these even if your vertex unfolding so you've got to attach to gamma alpha plus gamma is supposed to be exactly 360 and so it's actually vertex unfolding doesn't buy you anything in order to not locally overlap here they must fit right like that then the only other condition we need is that these prisms are long enough so that you get overlap over here so it's not a purely local overlap but it's very close by it's the same two faces overlap here they have an overlap here and here if this were shorter if this would like this short that this is the length of the prism here then you'd avoid overlap and that's this picture so this is an unfolding of one of the two prism halves this is unfolding the other if you attach them these vertices as is necessary you get overlap unless the prism or short than you would get this kind of unfolding so that's the proof you can actually make the proof even simpler kind of nifty although it's less obvious that this example exists I mean you give the coordinates and you can check it exactly and has all the properties you want so it's kind of each prism has been bent a little bit more or less the same example but now it has the feature that alpha plus beta prime is greater than 360 and alpha plus gamma prime is greater than 360 so you just can't attach anything even locally you get pure overlap so easy to check if your computer easier to check and prove and verify if your computer less hard visually or are less easy visually so that's what's known the open problem which I should probably write down is if your faces are convex polygons is there a vertex on unfold the bowl polyhedron that we still don't know so that the witch's hat all the faces are triangles there's no edge unfolding but it has a vertex unfolding I think these guys are nice they're topologically convex but the faces are still very non convex and we use that because we want a giant angle reflex angle together with something to add up to more than 360 if you're always adding up to convex angles you don't get that but maybe you could combine it with a polyhedron that's not Hamiltonian so you have to have three things joining together and then you could get more than 360 I don't know it could be an interesting problem to work on but so far it is open so that is vertex unfolding next question is about general unfolding of non convex polyhedra still it's open whether every polyhedron say without boundary has a general unfolding still we know that all orthogonal polyhedra of gene is zero have an unfolding that remains the state of the art but we have a better way to unfold orthogonal polyhedra of gina's 0 and this is a new paper it's not yet online but it will be shortly just final version just went to the journal unfolding orthogonal polyhedra with quadratic refinement so two of the same authors Marilla Damian and Robin flatland from the exponential unfolding and you may recall we had a we saw solution in lecture that has exponential refinement the number of cuts in particular can be exponential in n in the worst case this requires you take the grid you refine it at most quadratic number of times in each dimension so a number of cuts is polynomial I guess it most into the seventh if you cut n squared by N squared by N squared by n I think it's actually much less than that probably more like N squared but I need to be careful so I want to cover the solutions it's a simple variation actually on the previous one but also there are some questions about how the exponential one work so I want to go through that one more time we have new figures for it from this paper so looks a little different maybe a little bit clearer as our goal and I need my hands so remember the general idea was to slice your polyhedron in one direction so you end up with these bands strips and then you visit the strips in a tree like fashion and in particular at the leaves like the closest to you you've got a you've got a band and then you've got a front face and so that would look something like this little box so you've got a band that goes around oh sorry which way is it Bend is this way should be an X and Z yeah and then there's the front face which here is drawn on the back those are the five out of six phases of of the box that are actually present this this face that's closest to us is actually attached to another band okay I mean you could have leaves on this side or that side okay so what do we do we enter at s and we exit at T and we are told that the first turn you make from s should be a right turn and the last term before tea should be a left turn and the you start in the unfolding you will start going vertical in s that's why you should turn right because we never want to turn left we never want to go left in the unfolding this is here and we also want to end in a vertical state 40 so that we can chain these together okay so we started s we're told to turn right which we do here then we're basically going to zigzag and if you check along the surface we turn right we go here up there and then we turn left and then right and then this is a left because it's we're supposed to be doing it from below and then a right with that red thing then a left right down here and the left and we're done okay and the number of balances out so we start vertical we end vertical and then when we're done with all these things we thicken it's not drawn here but these strips get thickened and you end up attaching these fatter versions but basically you're following the same path we don't think in it at the beginning because we're actually going to do this many times on the same cell and then we abstract that picture to this iconography which says this I didn't talk about much in lecturer says you should start by turning right in s and then you should end by turning left and then visiting T so that's one picture but I mean it depends where you're going so you can they're actually eight different versions I showed you this one but all those combinations have to happen and the top ones are when you're all the way forward bottom ones are where you're all the way back in these slabs so that's that's slightly different and then there's weather s is on the left or s is on the right relative to T and then there's whether you start by turning to the right from s or end by turning to the left t is always the opposite but those are the eight possibilities from three different choices are you far forward are you far back do you turn right from s or do you turn left and is that's the left or zest to the right that's why you have eight combinations they all look basically the same but those are your base cases now so this is still all review of the old version and then the last part of the old method is non leaves so in general you have a band which is here drawn as two separate pieces but really this is 11 band a bands are easy to unfold they go straight but then you have all these children so you have your parent which is the S&T part you have to start here and end here recursively you want to visit this whole sub tree so you might have children that are on the front side children that are on the back side and what we do again we're told we should initially turn right say so if we turn right we visit the first thing we tell this leaf or this child actually this is not necessarily a leaf we tell this child that the next thing we want to do is turn to the left because we just turned right actually we just turned right twice so we've just gone right right we will actually be unfolding initially up so we turn right twice now we better turn left and then we will end up pointing I believe down because initially this is pointing down after you do this construction you'll be pointing down again and that's why you want to turn left here so you unroll this thing you can verify you are actually just zigzagging and so you go back and forth through these verify this always proceeds to the right but we know we're using different iconography here right this is an S on the left that initially turns left this is an S on the right that initially turns right that's why we need two different different forms of the recursive call this is a picture where initially we turn right on s and s is to the right but there are different versions of this picture just like in the base cases where asses to the left and where you initially have to turn left but they look the same I mean you just visit them back and forth like this at some point you've finished the front children then you go up and here it's a little bit shifted that these would normally be aligned then you have to visit the top children need to do that by visiting and going back and forth then of course when you're done here you have to unwind everything you did so then we go over here we visit that guy back and forth eventually we will end up on the inside here and having doubled everything we come back out to tea ok and all the time we're unfolding to the right now what can we say about this well what sucks is all of these children get visited twice and that's why you're doubling at every recursive level and so if your recursion tree looks like a long binary tree then you get exponential right not quite we'll come back to that here's an example of it being exponential with this kind of tree it's a little hard to draw too many levels deeps we have one level deep and then another level deep but you'll notice that it's not uniform right this leaf gets visited exponentially many times with this one still only got visited once of course it's shallower but even these two leaves are at the same level they did not get visited the same in overtime so there's some hope of improving things as you might imagine so this is where we go so the observation there's two observations here two ideas maybe I'll tell you where we started as I think can never remember years I was teaching this class either two or five years ago and I had idea a number one we worked on at an open problem session but it was not enough idea what number one is just part of the story and it's an idea that comes from the other padua class I teach which is heavy light decomposition in advanced data structures so this is a very common technique in advanced data structures goes back to Slater and karjan you've ever heard of splay trees or link cut trees it's that era which was the 80s I believe 83 it's a very useful tool whenever you have general tree structure and you want to make it balanced you should think heavy light decomposition they're actually a few ways to balance a tree but heavy light decomposition is usually the most powerful so essentially what it does is say if I could just treat this thing this path as a single node and then treat these guys as separate nodes then I'd kind of be balanced it would be like one super node and then a bunch of children hanging off of it one two three four so that's the picture I'd like to make I'm going to contract paths only paths of my tree and it turns out there's always a way to take paths can track them into single notes so the resulting thing has height at most log n no matter what true you start with and heavy light decomposition is a way to do this it's very simple to define for every node you define the idea of a heavy child this is a child with more than half the weight the weight of a subtree is the number of descendant notes so the number of nodes in that sub tree so if we look at this picture you've got this node it has one two three four five six seven eight nine nodes below it this subtree only has one so this subtree has 77 is bigger than half of nine right most of the weight is to the left so we call this edge heavy similarly this edge is heavy because this is 55 is more than half of 7 this one's only three nodes below it that is still more than half as half of this is 2.5 i believe so these this edge is heavy this one is not heavy so actually in the real picture it would look like this that's the this is a heavy pass and this guy's all by itself so is one more note but it has the same effect of balancing the tree so what's the point if I generally have some tree in general i might have you know many children no idea how many children are out there so I mean every node can have many children these correspond to the various bands that are attached to my my parent band and right so that's heavy child in general though every node has at most one heavy child because you can't have more than two halves if I have more than half of the weight in one child I can't have more than half the weight in another child so every now it has at most one heavy child these edges connecting nodes and they're heavy children we call heavy edges and whenever we have another there's at most one heavy edge going down from it so heavy edges form heavy paths that's the point so this red thing is called a heavy path cool so what do we know about heavy paths or actually so the the other edges i should say these guys we call light edges this is the heavy light decomposition so every edge is either heavy or light could be a node only has light children because it's well distributed in the worst case it has one heavy child one heavy edge coming out of it so we get heavy paths we don't say heavy edges warm pads and if we look at what i normally call the light depth of a node this is if i look at a node in this tree and i measure how many light edges do i have to traverse in order to get from the root of the tree to that node here it's only one light edge number of light edges follow on any path is it most log n log base two of n because every time i follow a light edge I know that I started with say n nodes I follow a light edge I know that I have at most half n nodes because my weight goes down by half if I start with M I can only reduce by a factor of two login times before I run out of nodes that I'm in a leaf when I get down to a way to one so light depth of any node is at most log in because weight halves every every step very light step so this is why if you contract the heavy pads to single nodes like death is or the remain the depth of the remaining tree is only log n so what does this tell us if I could somehow deal with paths efficiently and not feel the recursive pain that we're getting here from doubling everything along a path then I just need then I could chain them together in the usual bad recursive way I can afford to double on a balanced tree so if I could somehow treat these paths as single things we'd be all set that was idea number one and that's that for years I knew I knew this should be possible but what we were missing was idea number two it's it's funny it's you stare at this picture long enough it's actually kind of kind of obvious it requires more work after the idea okay so here same pictures before I spread it out a little bit but so we end up visiting this guy last and then we end up recursively visiting this one a second time then this one a second time then this one a second time we go down here we go round here visit this one a second time unwind is it this one a second time this one second time this one a second time and we're out did I visit them all a second time no there's one that I didn't visit a second time which is the last child I only visited that one once and that's all we need is one child because I only need to do a path efficiently so I'm recursively visiting most of the children here those are going to be my light children the one heavy child I want to aim to visit that won last because that one's only visited once so it doesn't get recursively doubled at this level of course the higher up at the level it will get double but there's only log n levels we're going to get doubled so will only add a factor of n okay idea number two is that the last child gets visited only once at this recursive level and if you've taken an algorithms class you know recursively visiting things once versus twice makes a big difference here it's a matter of doubling or just stay in the same so well if we can arrange to visit these children first then do this one last then visit this child first then do this one last then visit this child first and do this one last and then do all the children whatever order then we'll guarantee that this path doesn't get recursively refined at this level so it's really being treated as a single node basically and that lets you tie together these unfoldings in an efficient way the only issue is I need to be able this construction isn't enough because this construction basically forced this one to be the last child to get visited I need to be able to control which child is last visited because the heavy property is a property of the tree one of these guys maybe this one is heavy maybe that one's heavy we've got to be able to end on that so there are two cases first case is that we always start from the bottom here and first case is that the on the top side is where the last child where the heavy it is so this is the easy case because the bottom we don't care we just visit the children whatever orders natural then we come up and basically we have the freedom to spin around here we have to turn left but we could either choose to immediately go up here or keep going and go up here or keep going go up here that would visit that one too early or go here it turns out this is the right choice but we had freedom to just spin around and choose when to go up just try them all one of the wound up being last it's it's I mean basically you want this guy to be in the middle between where you start and the one just to the left here because you're kind of rain bowling back and forth zeroing in on the last guy and just by I mean by pigeonhole I suppose one of these choices will work because there's k different choices up there k choices you can make a when to turn up they each result in a different guy being last and so one of them corresponds to the correct one it's easy to figure out which one it is so if it's on the top side it's really easy you just pick it this would be great this would actually give us linear refinement if we only had this case the other case is when the last guy the guy we want to make last the the heavy child is on the bottom side in this case we need to do more work so this is basically the old construction here we don't really have freedom from s we can't just bypass this guy because it will actually get to be hard to get him later so you've got to visit him and back and forth but the one thing we could do is just omit a child just forget about it for a while don't visit it visit everything else in whatever order feels natural to you okay and then we're going to splice this guy in so we'll see where's where does the path go at some point it will go above this last proposed last guy and what we're going to do which is on the next slide is on the return trip so when we're so remember we have this picture we come out here then we recursively double everything so some point we are coming here doubling and at that point we turn in but if S&T are aligned like this we are pointing the wrong way we wanted to get here but where it doesn't even look like we're in the same side but we are we just have to recursively double everything again in the end when you recursively double everything again you will be here and we haven't finished doubling here but in the end you will come out here and exit at T so overall these guys which haven't been visited yet they'll end up being doubled from this procedure these guys wound up being quadrupled so we're doing for recursive calls for most of the children some of them might get lucky and only double but all we care about is that this guy only gets visited once that's the key is this this will be recursively here it's hard to unwind but then you'll end up on the inside of this channel then you'll end up visiting this guy then you'll end up visiting this guy and then you get out of T so you won't come back to here that's the key that's all we need you can write down a recurrence at this point if you look at the level of refinement for an N vertex polyhedron or an end slab polyhedron would be and n let's say is the number of nodes in the tree of slabs this picture in general that is proportional to the number of vertices in the polyhedron in the worst case it's going to be the max of two things are n minus 1 and 4 times are of n over 2 well I should say and sub I max over I so what I mean to say here and this is well ok this is also technically an n sub I but this is an upper bound certainly so if we look at the recursion how much refinement we need I mean this the worst refinement over the whole tree is is the max of all of its sub trees right so there's a max refinement needed here max refinement needed here and then also of course what we need to do within the node and on the one hand there's the heavy situation the heavy edge that only decreases the size of the tree by one but it only gets recursively visited one time one times are of n minus 1 there's the other like children these are all light children and sub I represents the number of nodes in that child we know that this is at most and over 2 because we know that at most half of the weight lives in the light child now these get recursively visited at most four times up to four times worst case it will be four times so this term and this recurrence this this first term doesn't matter our event is at most are of n minus 1 yeah big deal that's just saying our event increases with n so really this is going to be them and then the max disappear I mean all we need is this is at most four times R of n over 2 and this is a recurrence if you've read clrs is follows the master theorem and you know immediately this is order N squared B theta N squared but this is an upper bound in the worst case it will actually be theta N squared so the number amount of refinement is at most n squared if this is not obvious to you an easy way to imagine it is you start with something of size n you're visiting four times something of size n over 2 this is called a recurrence tree recursion tree each of these visits four times something of size n over 4 and so on obviously log n levels here and at the bottom you're going to have a bunch of ones that's when you stop recursing and if you add up everything level by level how much work am I doing here and how much work am I doing here 2n how much work am I doing here it's harder to add but there are 24 squared 16 things each and over four so it's for n in general it goes up by a factor of two every time which means you are dominated by the last layer and if you count it's going to be N squared because this is this is 2 to the 1 so our 220 to the one to the two after you get to log in it's two to the log n times n so that is N squared and this is a geometric series if you want to add all these numbers up and so it's it's 2 times n squared so that's proof of this bound and that's how you get quadratic refinement so either idea is kind of easy but two together pretty powerful questions about unfolding I think this algorithm should be pretty clear one of the questions was are they practical I think the answer is no has the same issue of strip folding from origami but I think they would make great animations this is still a cool to see virtually but to I mean do it physically is probably crazy no one has tried as far as I know another idea this is an open problem so orthogonal is great as all these nice properties can you generalize it not to arbitrary polyhedra but to some other kind of orthogonal such as this is a hex hexagonal lattice in 3d you I mean it's just extruded in one dimension but then you have hex grid and another dimension you could try to do that my guess is if you set up the band's to be in the hex dimensions it just works but I haven't tried so it's potentially some low-hanging fruit here there should be other 3d structures that might work a typical one in computational geometry is called see oriented polyhedra we're here we have three oriented polyhedra there's three different directions that the faces can be perpendicular to take ten of them can you apply the same technique that gets dicey ER but something like this I feel like maybe possible I should try it out but as far as I know this is all open last question is Cochise rigidity theorem seems intuitively obvious or as i read in the notes is Cochise rigidity theorem obvious and my answer is no not obvious to me I have two reasons why it's not obvious one is it's not true in two dimensions it's kind of weak statement but if I take a convex polyhedron in 2d so these are rigid faces this is the equivalent of a triangle this is not rigid of course but so that's one statement and then the other thing is convexity is necessary there's this thing Stefan's polyhedron actually originally it was at connolly polyhedron we've seen some results by Connolly he's rigidity expert and then this was simplified by this guy Klaus Stefan in the 70s this is a drawing of it flexing in 3d they I mean non-convex polyhedra can be flexible they happen to preserve their volume as they flex but yeah so that's two which that it's hard to say why a theorem is not obvious to me it's not obvious of course if you play with convex polyhedra they do are rigid so maybe it's obvious from that but we've got to prove experimental evidence mathematically other questions all right the then I have some fun videos to show you the first one is the making of this origami piece which I've probably shown a picture of before it's by Brian Chan it's one square paper no cuts men's at manas with a little crane instead of that's it normally who knows and then he also made this nice box and then the glass is etched by Peter Huck runs the glass slab mighty you 3 00:00:09,330 --> 00:00:13,110 4 00:00:13,110 --> 00:00:15,470 5 00:00:15,470 --> 00:00:20,730 6 00:00:20,730 --> 00:00:22,830 7 00:00:22,830 --> 00:00:25,710 8 00:00:25,710 --> 00:00:29,070 9 00:00:29,070 --> 00:00:31,860 10 00:00:31,860 --> 00:00:34,139 11 00:00:34,139 --> 00:00:37,319 12 00:00:37,319 --> 00:00:40,649 13 00:00:40,649 --> 00:00:43,020 14 00:00:43,020 --> 00:00:45,090 15 00:00:45,090 --> 00:00:46,889 16 00:00:46,889 --> 00:00:49,349 17 00:00:49,349 --> 00:00:51,239 18 00:00:51,239 --> 00:00:53,099 19 00:00:53,099 --> 00:00:54,509 20 00:00:54,509 --> 00:00:57,689 21 00:00:57,689 --> 00:00:58,709 22 00:00:58,709 --> 00:01:00,000 23 00:01:00,000 --> 00:01:03,119 24 00:01:03,119 --> 00:01:05,399 25 00:01:05,399 --> 00:01:06,959 26 00:01:06,959 --> 00:01:09,510 27 00:01:09,510 --> 00:01:11,730 28 00:01:11,730 --> 00:01:13,200 29 00:01:13,200 --> 00:01:15,149 30 00:01:15,149 --> 00:01:17,249 31 00:01:17,249 --> 00:01:19,760 32 00:01:19,760 --> 00:01:23,520 33 00:01:23,520 --> 00:01:25,529 34 00:01:25,529 --> 00:01:28,499 35 00:01:28,499 --> 00:01:30,450 36 00:01:30,450 --> 00:01:33,209 37 00:01:33,209 --> 00:01:36,029 38 00:01:36,029 --> 00:01:38,219 39 00:01:38,219 --> 00:01:41,899 40 00:01:41,899 --> 00:01:43,889 41 00:01:43,889 --> 00:01:45,870 42 00:01:45,870 --> 00:01:48,020 43 00:01:48,020 --> 00:01:51,060 44 00:01:51,060 --> 00:01:52,980 45 00:01:52,980 --> 00:01:54,599 46 00:01:54,599 --> 00:01:56,580 47 00:01:56,580 --> 00:01:59,609 48 00:01:59,609 --> 00:02:01,859 49 00:02:01,859 --> 00:02:04,980 50 00:02:04,980 --> 00:02:07,950 51 00:02:07,950 --> 00:02:10,589 52 00:02:10,589 --> 00:02:13,619 53 00:02:13,619 --> 00:02:15,660 54 00:02:15,660 --> 00:02:15,670 55 00:02:15,670 --> 00:02:16,170 56 00:02:16,170 --> 00:02:17,459 57 00:02:17,459 --> 00:02:19,589 58 00:02:19,589 --> 00:02:22,770 59 00:02:22,770 --> 00:02:24,179 60 00:02:24,179 --> 00:02:27,839 61 00:02:27,839 --> 00:02:29,759 62 00:02:29,759 --> 00:02:31,830 63 00:02:31,830 --> 00:02:33,629 64 00:02:33,629 --> 00:02:37,259 65 00:02:37,259 --> 00:02:39,599 66 00:02:39,599 --> 00:02:41,309 67 00:02:41,309 --> 00:02:45,750 68 00:02:45,750 --> 00:02:47,399 69 00:02:47,399 --> 00:02:49,229 70 00:02:49,229 --> 00:02:51,750 71 00:02:51,750 --> 00:02:52,979 72 00:02:52,979 --> 00:02:54,780 73 00:02:54,780 --> 00:02:59,670 74 00:02:59,670 --> 00:03:01,649 75 00:03:01,649 --> 00:03:04,319 76 00:03:04,319 --> 00:03:05,909 77 00:03:05,909 --> 00:03:08,009 78 00:03:08,009 --> 00:03:10,319 79 00:03:10,319 --> 00:03:15,300 80 00:03:15,300 --> 00:03:20,309 81 00:03:20,309 --> 00:03:22,680 82 00:03:22,680 --> 00:03:24,569 83 00:03:24,569 --> 00:03:26,069 84 00:03:26,069 --> 00:03:28,890 85 00:03:28,890 --> 00:03:30,990 86 00:03:30,990 --> 00:03:33,629 87 00:03:33,629 --> 00:03:37,229 88 00:03:37,229 --> 00:03:41,670 89 00:03:41,670 --> 00:03:43,890 90 00:03:43,890 --> 00:03:46,080 91 00:03:46,080 --> 00:03:50,039 92 00:03:50,039 --> 00:03:51,719 93 00:03:51,719 --> 00:03:54,420 94 00:03:54,420 --> 00:03:56,879 95 00:03:56,879 --> 00:03:59,569 96 00:03:59,569 --> 00:04:03,599 97 00:04:03,599 --> 00:04:05,429 98 00:04:05,429 --> 00:04:08,339 99 00:04:08,339 --> 00:04:11,129 100 00:04:11,129 --> 00:04:13,890 101 00:04:13,890 --> 00:04:15,929 102 00:04:15,929 --> 00:04:18,379 103 00:04:18,379 --> 00:04:22,020 104 00:04:22,020 --> 00:04:27,500 105 00:04:27,500 --> 00:04:30,890 106 00:04:30,890 --> 00:04:33,030 107 00:04:33,030 --> 00:04:34,920 108 00:04:34,920 --> 00:04:38,280 109 00:04:38,280 --> 00:04:42,360 110 00:04:42,360 --> 00:04:45,570 111 00:04:45,570 --> 00:04:47,250 112 00:04:47,250 --> 00:04:49,410 113 00:04:49,410 --> 00:04:51,660 114 00:04:51,660 --> 00:04:54,570 115 00:04:54,570 --> 00:04:57,510 116 00:04:57,510 --> 00:04:59,220 117 00:04:59,220 --> 00:05:01,140 118 00:05:01,140 --> 00:05:05,430 119 00:05:05,430 --> 00:05:06,960 120 00:05:06,960 --> 00:05:09,540 121 00:05:09,540 --> 00:05:14,270 122 00:05:14,270 --> 00:05:20,130 123 00:05:20,130 --> 00:05:22,830 124 00:05:22,830 --> 00:05:25,710 125 00:05:25,710 --> 00:05:27,660 126 00:05:27,660 --> 00:05:29,250 127 00:05:29,250 --> 00:05:33,480 128 00:05:33,480 --> 00:05:35,820 129 00:05:35,820 --> 00:05:38,430 130 00:05:38,430 --> 00:05:42,870 131 00:05:42,870 --> 00:05:46,320 132 00:05:46,320 --> 00:05:50,070 133 00:05:50,070 --> 00:05:52,770 134 00:05:52,770 --> 00:05:55,080 135 00:05:55,080 --> 00:05:58,740 136 00:05:58,740 --> 00:06:01,130 137 00:06:01,130 --> 00:06:04,530 138 00:06:04,530 --> 00:06:06,300 139 00:06:06,300 --> 00:06:09,480 140 00:06:09,480 --> 00:06:11,970 141 00:06:11,970 --> 00:06:14,640 142 00:06:14,640 --> 00:06:16,350 143 00:06:16,350 --> 00:06:18,930 144 00:06:18,930 --> 00:06:23,220 145 00:06:23,220 --> 00:06:26,190 146 00:06:26,190 --> 00:06:28,470 147 00:06:28,470 --> 00:06:31,080 148 00:06:31,080 --> 00:06:32,310 149 00:06:32,310 --> 00:06:34,170 150 00:06:34,170 --> 00:06:36,620 151 00:06:36,620 --> 00:06:39,420 152 00:06:39,420 --> 00:06:42,330 153 00:06:42,330 --> 00:06:43,290 154 00:06:43,290 --> 00:06:49,830 155 00:06:49,830 --> 00:06:52,680 156 00:06:52,680 --> 00:06:54,839 157 00:06:54,839 --> 00:06:58,409 158 00:06:58,409 --> 00:07:02,490 159 00:07:02,490 --> 00:07:04,290 160 00:07:04,290 --> 00:07:06,510 161 00:07:06,510 --> 00:07:08,010 162 00:07:08,010 --> 00:07:10,379 163 00:07:10,379 --> 00:07:12,809 164 00:07:12,809 --> 00:07:15,749 165 00:07:15,749 --> 00:07:18,209 166 00:07:18,209 --> 00:07:22,050 167 00:07:22,050 --> 00:07:25,559 168 00:07:25,559 --> 00:07:30,320 169 00:07:30,320 --> 00:07:33,149 170 00:07:33,149 --> 00:07:39,510 171 00:07:39,510 --> 00:07:41,909 172 00:07:41,909 --> 00:07:43,320 173 00:07:43,320 --> 00:07:47,219 174 00:07:47,219 --> 00:07:54,959 175 00:07:54,959 --> 00:08:03,809 176 00:08:03,809 --> 00:08:07,620 177 00:08:07,620 --> 00:08:10,290 178 00:08:10,290 --> 00:08:12,779 179 00:08:12,779 --> 00:08:21,029 180 00:08:21,029 --> 00:08:25,950 181 00:08:25,950 --> 00:08:28,800 182 00:08:28,800 --> 00:08:30,749 183 00:08:30,749 --> 00:08:34,800 184 00:08:34,800 --> 00:08:38,399 185 00:08:38,399 --> 00:08:42,149 186 00:08:42,149 --> 00:08:43,439 187 00:08:43,439 --> 00:08:45,000 188 00:08:45,000 --> 00:08:47,880 189 00:08:47,880 --> 00:08:50,610 190 00:08:50,610 --> 00:08:53,819 191 00:08:53,819 --> 00:08:57,150 192 00:08:57,150 --> 00:08:59,579 193 00:08:59,579 --> 00:09:01,410 194 00:09:01,410 --> 00:09:03,090 195 00:09:03,090 --> 00:09:05,759 196 00:09:05,759 --> 00:09:08,819 197 00:09:08,819 --> 00:09:10,559 198 00:09:10,559 --> 00:09:12,600 199 00:09:12,600 --> 00:09:14,970 200 00:09:14,970 --> 00:09:18,240 201 00:09:18,240 --> 00:09:19,920 202 00:09:19,920 --> 00:09:22,800 203 00:09:22,800 --> 00:09:24,720 204 00:09:24,720 --> 00:09:26,400 205 00:09:26,400 --> 00:09:28,530 206 00:09:28,530 --> 00:09:31,679 207 00:09:31,679 --> 00:09:34,079 208 00:09:34,079 --> 00:09:36,059 209 00:09:36,059 --> 00:09:38,879 210 00:09:38,879 --> 00:09:40,710 211 00:09:40,710 --> 00:09:43,740 212 00:09:43,740 --> 00:09:47,040 213 00:09:47,040 --> 00:09:49,650 214 00:09:49,650 --> 00:09:51,150 215 00:09:51,150 --> 00:09:54,809 216 00:09:54,809 --> 00:09:57,119 217 00:09:57,119 --> 00:10:00,660 218 00:10:00,660 --> 00:10:02,490 219 00:10:02,490 --> 00:10:04,259 220 00:10:04,259 --> 00:10:05,519 221 00:10:05,519 --> 00:10:07,829 222 00:10:07,829 --> 00:10:10,679 223 00:10:10,679 --> 00:10:13,259 224 00:10:13,259 --> 00:10:14,910 225 00:10:14,910 --> 00:10:17,309 226 00:10:17,309 --> 00:10:21,660 227 00:10:21,660 --> 00:10:23,400 228 00:10:23,400 --> 00:10:26,850 229 00:10:26,850 --> 00:10:29,160 230 00:10:29,160 --> 00:10:31,679 231 00:10:31,679 --> 00:10:35,999 232 00:10:35,999 --> 00:10:37,769 233 00:10:37,769 --> 00:10:40,319 234 00:10:40,319 --> 00:10:44,160 235 00:10:44,160 --> 00:10:45,960 236 00:10:45,960 --> 00:10:47,790 237 00:10:47,790 --> 00:10:49,549 238 00:10:49,549 --> 00:10:51,809 239 00:10:51,809 --> 00:10:54,720 240 00:10:54,720 --> 00:10:56,579 241 00:10:56,579 --> 00:10:59,040 242 00:10:59,040 --> 00:11:01,019 243 00:11:01,019 --> 00:11:03,269 244 00:11:03,269 --> 00:11:05,100 245 00:11:05,100 --> 00:11:06,780 246 00:11:06,780 --> 00:11:08,110 247 00:11:08,110 --> 00:11:10,390 248 00:11:10,390 --> 00:11:14,050 249 00:11:14,050 --> 00:11:15,220 250 00:11:15,220 --> 00:11:16,690 251 00:11:16,690 --> 00:11:19,269 252 00:11:19,269 --> 00:11:23,230 253 00:11:23,230 --> 00:11:26,500 254 00:11:26,500 --> 00:11:34,990 255 00:11:34,990 --> 00:11:37,150 256 00:11:37,150 --> 00:11:39,640 257 00:11:39,640 --> 00:11:41,490 258 00:11:41,490 --> 00:11:43,540 259 00:11:43,540 --> 00:11:45,970 260 00:11:45,970 --> 00:11:47,920 261 00:11:47,920 --> 00:11:51,130 262 00:11:51,130 --> 00:11:53,579 263 00:11:53,579 --> 00:11:57,310 264 00:11:57,310 --> 00:11:58,990 265 00:11:58,990 --> 00:12:00,600 266 00:12:00,600 --> 00:12:02,710 267 00:12:02,710 --> 00:12:07,120 268 00:12:07,120 --> 00:12:08,680 269 00:12:08,680 --> 00:12:12,030 270 00:12:12,030 --> 00:12:16,510 271 00:12:16,510 --> 00:12:18,670 272 00:12:18,670 --> 00:12:20,079 273 00:12:20,079 --> 00:12:22,150 274 00:12:22,150 --> 00:12:24,519 275 00:12:24,519 --> 00:12:26,740 276 00:12:26,740 --> 00:12:30,970 277 00:12:30,970 --> 00:12:33,940 278 00:12:33,940 --> 00:12:37,510 279 00:12:37,510 --> 00:12:40,390 280 00:12:40,390 --> 00:12:41,740 281 00:12:41,740 --> 00:12:44,860 282 00:12:44,860 --> 00:12:48,370 283 00:12:48,370 --> 00:12:50,350 284 00:12:50,350 --> 00:12:52,930 285 00:12:52,930 --> 00:12:53,980 286 00:12:53,980 --> 00:12:55,600 287 00:12:55,600 --> 00:12:57,519 288 00:12:57,519 --> 00:13:00,730 289 00:13:00,730 --> 00:13:01,900 290 00:13:01,900 --> 00:13:06,570 291 00:13:06,570 --> 00:13:12,420 292 00:13:12,420 --> 00:13:14,800 293 00:13:14,800 --> 00:13:17,110 294 00:13:17,110 --> 00:13:19,030 295 00:13:19,030 --> 00:13:20,800 296 00:13:20,800 --> 00:13:23,650 297 00:13:23,650 --> 00:13:26,620 298 00:13:26,620 --> 00:13:28,210 299 00:13:28,210 --> 00:13:30,310 300 00:13:30,310 --> 00:13:33,640 301 00:13:33,640 --> 00:13:37,480 302 00:13:37,480 --> 00:13:43,560 303 00:13:43,560 --> 00:13:46,450 304 00:13:46,450 --> 00:13:49,210 305 00:13:49,210 --> 00:13:53,050 306 00:13:53,050 --> 00:13:55,329 307 00:13:55,329 --> 00:13:57,460 308 00:13:57,460 --> 00:13:59,860 309 00:13:59,860 --> 00:14:01,090 310 00:14:01,090 --> 00:14:06,160 311 00:14:06,160 --> 00:14:10,140 312 00:14:10,140 --> 00:14:12,970 313 00:14:12,970 --> 00:14:15,640 314 00:14:15,640 --> 00:14:18,940 315 00:14:18,940 --> 00:14:21,220 316 00:14:21,220 --> 00:14:22,660 317 00:14:22,660 --> 00:14:24,370 318 00:14:24,370 --> 00:14:26,740 319 00:14:26,740 --> 00:14:29,950 320 00:14:29,950 --> 00:14:32,260 321 00:14:32,260 --> 00:14:35,020 322 00:14:35,020 --> 00:14:37,410 323 00:14:37,410 --> 00:14:40,930 324 00:14:40,930 --> 00:14:42,790 325 00:14:42,790 --> 00:14:46,510 326 00:14:46,510 --> 00:14:49,690 327 00:14:49,690 --> 00:14:53,800 328 00:14:53,800 --> 00:14:55,450 329 00:14:55,450 --> 00:14:58,180 330 00:14:58,180 --> 00:15:03,360 331 00:15:03,360 --> 00:15:06,790 332 00:15:06,790 --> 00:15:08,949 333 00:15:08,949 --> 00:15:11,740 334 00:15:11,740 --> 00:15:14,079 335 00:15:14,079 --> 00:15:17,230 336 00:15:17,230 --> 00:15:18,730 337 00:15:18,730 --> 00:15:20,769 338 00:15:20,769 --> 00:15:22,090 339 00:15:22,090 --> 00:15:23,560 340 00:15:23,560 --> 00:15:24,970 341 00:15:24,970 --> 00:15:28,150 342 00:15:28,150 --> 00:15:31,110 343 00:15:31,110 --> 00:15:33,610 344 00:15:33,610 --> 00:15:34,360 345 00:15:34,360 --> 00:15:36,040 346 00:15:36,040 --> 00:15:38,950 347 00:15:38,950 --> 00:15:41,280 348 00:15:41,280 --> 00:15:45,490 349 00:15:45,490 --> 00:15:48,220 350 00:15:48,220 --> 00:15:50,200 351 00:15:50,200 --> 00:15:54,100 352 00:15:54,100 --> 00:15:56,050 353 00:15:56,050 --> 00:15:59,560 354 00:15:59,560 --> 00:16:01,930 355 00:16:01,930 --> 00:16:05,470 356 00:16:05,470 --> 00:16:07,720 357 00:16:07,720 --> 00:16:10,630 358 00:16:10,630 --> 00:16:13,180 359 00:16:13,180 --> 00:16:15,490 360 00:16:15,490 --> 00:16:18,400 361 00:16:18,400 --> 00:16:21,250 362 00:16:21,250 --> 00:16:24,130 363 00:16:24,130 --> 00:16:26,019 364 00:16:26,019 --> 00:16:28,780 365 00:16:28,780 --> 00:16:31,870 366 00:16:31,870 --> 00:16:33,280 367 00:16:33,280 --> 00:16:35,110 368 00:16:35,110 --> 00:16:38,470 369 00:16:38,470 --> 00:16:42,460 370 00:16:42,460 --> 00:16:46,630 371 00:16:46,630 --> 00:16:49,740 372 00:16:49,740 --> 00:16:53,380 373 00:16:53,380 --> 00:16:55,570 374 00:16:55,570 --> 00:16:58,150 375 00:16:58,150 --> 00:16:59,530 376 00:16:59,530 --> 00:17:02,470 377 00:17:02,470 --> 00:17:04,240 378 00:17:04,240 --> 00:17:06,250 379 00:17:06,250 --> 00:17:08,890 380 00:17:08,890 --> 00:17:10,870 381 00:17:10,870 --> 00:17:13,390 382 00:17:13,390 --> 00:17:17,429 383 00:17:17,429 --> 00:17:20,110 384 00:17:20,110 --> 00:17:22,449 385 00:17:22,449 --> 00:17:25,990 386 00:17:25,990 --> 00:17:28,419 387 00:17:28,419 --> 00:17:30,370 388 00:17:30,370 --> 00:17:32,020 389 00:17:32,020 --> 00:17:33,640 390 00:17:33,640 --> 00:17:35,470 391 00:17:35,470 --> 00:17:39,910 392 00:17:39,910 --> 00:17:41,560 393 00:17:41,560 --> 00:17:43,570 394 00:17:43,570 --> 00:17:46,030 395 00:17:46,030 --> 00:17:46,040 396 00:17:46,040 --> 00:17:48,030 397 00:17:48,030 --> 00:17:51,970 398 00:17:51,970 --> 00:17:53,980 399 00:17:53,980 --> 00:17:54,970 400 00:17:54,970 --> 00:17:56,650 401 00:17:56,650 --> 00:17:58,750 402 00:17:58,750 --> 00:18:00,700 403 00:18:00,700 --> 00:18:04,150 404 00:18:04,150 --> 00:18:06,310 405 00:18:06,310 --> 00:18:08,500 406 00:18:08,500 --> 00:18:10,840 407 00:18:10,840 --> 00:18:12,610 408 00:18:12,610 --> 00:18:15,130 409 00:18:15,130 --> 00:18:17,530 410 00:18:17,530 --> 00:18:20,230 411 00:18:20,230 --> 00:18:22,600 412 00:18:22,600 --> 00:18:24,070 413 00:18:24,070 --> 00:18:25,870 414 00:18:25,870 --> 00:18:28,030 415 00:18:28,030 --> 00:18:30,100 416 00:18:30,100 --> 00:18:31,450 417 00:18:31,450 --> 00:18:33,850 418 00:18:33,850 --> 00:18:35,530 419 00:18:35,530 --> 00:18:37,660 420 00:18:37,660 --> 00:18:40,990 421 00:18:40,990 --> 00:18:42,280 422 00:18:42,280 --> 00:18:45,580 423 00:18:45,580 --> 00:18:47,110 424 00:18:47,110 --> 00:18:49,810 425 00:18:49,810 --> 00:18:53,020 426 00:18:53,020 --> 00:18:55,540 427 00:18:55,540 --> 00:18:59,230 428 00:18:59,230 --> 00:19:01,450 429 00:19:01,450 --> 00:19:03,190 430 00:19:03,190 --> 00:19:05,530 431 00:19:05,530 --> 00:19:08,440 432 00:19:08,440 --> 00:19:12,370 433 00:19:12,370 --> 00:19:16,870 434 00:19:16,870 --> 00:19:19,510 435 00:19:19,510 --> 00:19:20,860 436 00:19:20,860 --> 00:19:23,320 437 00:19:23,320 --> 00:19:33,490 438 00:19:33,490 --> 00:19:40,750 439 00:19:40,750 --> 00:19:43,750 440 00:19:43,750 --> 00:19:45,430 441 00:19:45,430 --> 00:19:46,660 442 00:19:46,660 --> 00:19:49,390 443 00:19:49,390 --> 00:19:52,590 444 00:19:52,590 --> 00:19:55,810 445 00:19:55,810 --> 00:19:58,780 446 00:19:58,780 --> 00:19:59,680 447 00:19:59,680 --> 00:20:00,970 448 00:20:00,970 --> 00:20:03,749 449 00:20:03,749 --> 00:20:05,919 450 00:20:05,919 --> 00:20:07,570 451 00:20:07,570 --> 00:20:09,340 452 00:20:09,340 --> 00:20:14,460 453 00:20:14,460 --> 00:20:17,320 454 00:20:17,320 --> 00:20:21,159 455 00:20:21,159 --> 00:20:25,840 456 00:20:25,840 --> 00:20:30,940 457 00:20:30,940 --> 00:20:33,070 458 00:20:33,070 --> 00:20:38,950 459 00:20:38,950 --> 00:20:40,419 460 00:20:40,419 --> 00:20:42,039 461 00:20:42,039 --> 00:20:44,649 462 00:20:44,649 --> 00:20:46,810 463 00:20:46,810 --> 00:20:48,340 464 00:20:48,340 --> 00:20:50,470 465 00:20:50,470 --> 00:20:52,450 466 00:20:52,450 --> 00:20:54,090 467 00:20:54,090 --> 00:20:57,850 468 00:20:57,850 --> 00:21:00,430 469 00:21:00,430 --> 00:21:03,610 470 00:21:03,610 --> 00:21:07,720 471 00:21:07,720 --> 00:21:10,509 472 00:21:10,509 --> 00:21:12,549 473 00:21:12,549 --> 00:21:14,110 474 00:21:14,110 --> 00:21:16,119 475 00:21:16,119 --> 00:21:18,070 476 00:21:18,070 --> 00:21:20,980 477 00:21:20,980 --> 00:21:27,850 478 00:21:27,850 --> 00:21:31,299 479 00:21:31,299 --> 00:21:33,129 480 00:21:33,129 --> 00:21:36,070 481 00:21:36,070 --> 00:21:38,110 482 00:21:38,110 --> 00:21:40,299 483 00:21:40,299 --> 00:21:44,919 484 00:21:44,919 --> 00:21:47,350 485 00:21:47,350 --> 00:21:51,100 486 00:21:51,100 --> 00:21:52,299 487 00:21:52,299 --> 00:21:54,129 488 00:21:54,129 --> 00:21:56,710 489 00:21:56,710 --> 00:22:02,169 490 00:22:02,169 --> 00:22:04,269 491 00:22:04,269 --> 00:22:06,220 492 00:22:06,220 --> 00:22:12,040 493 00:22:12,040 --> 00:22:19,150 494 00:22:19,150 --> 00:22:28,520 495 00:22:28,520 --> 00:22:34,130 496 00:22:34,130 --> 00:22:40,190 497 00:22:40,190 --> 00:22:45,080 498 00:22:45,080 --> 00:22:47,750 499 00:22:47,750 --> 00:22:49,940 500 00:22:49,940 --> 00:22:53,990 501 00:22:53,990 --> 00:22:58,220 502 00:22:58,220 --> 00:23:00,740 503 00:23:00,740 --> 00:23:03,230 504 00:23:03,230 --> 00:23:06,950 505 00:23:06,950 --> 00:23:11,420 506 00:23:11,420 --> 00:23:14,180 507 00:23:14,180 --> 00:23:17,990 508 00:23:17,990 --> 00:23:21,350 509 00:23:21,350 --> 00:23:25,190 510 00:23:25,190 --> 00:23:30,320 511 00:23:30,320 --> 00:23:32,060 512 00:23:32,060 --> 00:23:34,940 513 00:23:34,940 --> 00:23:37,160 514 00:23:37,160 --> 00:23:41,120 515 00:23:41,120 --> 00:23:44,570 516 00:23:44,570 --> 00:23:46,160 517 00:23:46,160 --> 00:23:49,220 518 00:23:49,220 --> 00:23:51,920 519 00:23:51,920 --> 00:23:53,660 520 00:23:53,660 --> 00:23:57,710 521 00:23:57,710 --> 00:24:03,200 522 00:24:03,200 --> 00:24:07,880 523 00:24:07,880 --> 00:24:13,010 524 00:24:13,010 --> 00:24:16,310 525 00:24:16,310 --> 00:24:17,750 526 00:24:17,750 --> 00:24:19,520 527 00:24:19,520 --> 00:24:22,550 528 00:24:22,550 --> 00:24:24,620 529 00:24:24,620 --> 00:24:27,140 530 00:24:27,140 --> 00:24:33,790 531 00:24:33,790 --> 00:24:36,170 532 00:24:36,170 --> 00:24:38,780 533 00:24:38,780 --> 00:24:41,690 534 00:24:41,690 --> 00:24:45,140 535 00:24:45,140 --> 00:24:52,310 536 00:24:52,310 --> 00:24:56,180 537 00:24:56,180 --> 00:24:59,510 538 00:24:59,510 --> 00:25:02,060 539 00:25:02,060 --> 00:25:03,740 540 00:25:03,740 --> 00:25:06,770 541 00:25:06,770 --> 00:25:08,000 542 00:25:08,000 --> 00:25:09,980 543 00:25:09,980 --> 00:25:12,110 544 00:25:12,110 --> 00:25:17,270 545 00:25:17,270 --> 00:25:26,330 546 00:25:26,330 --> 00:25:28,610 547 00:25:28,610 --> 00:25:37,040 548 00:25:37,040 --> 00:25:40,280 549 00:25:40,280 --> 00:25:42,500 550 00:25:42,500 --> 00:25:44,120 551 00:25:44,120 --> 00:25:46,060 552 00:25:46,060 --> 00:25:49,490 553 00:25:49,490 --> 00:25:53,830 554 00:25:53,830 --> 00:25:57,050 555 00:25:57,050 --> 00:26:00,200 556 00:26:00,200 --> 00:26:02,450 557 00:26:02,450 --> 00:26:05,780 558 00:26:05,780 --> 00:26:08,120 559 00:26:08,120 --> 00:26:11,090 560 00:26:11,090 --> 00:26:12,950 561 00:26:12,950 --> 00:26:14,810 562 00:26:14,810 --> 00:26:18,260 563 00:26:18,260 --> 00:26:21,500 564 00:26:21,500 --> 00:26:28,259 565 00:26:28,259 --> 00:26:35,710 566 00:26:35,710 --> 00:26:37,779 567 00:26:37,779 --> 00:26:41,350 568 00:26:41,350 --> 00:26:43,810 569 00:26:43,810 --> 00:26:45,549 570 00:26:45,549 --> 00:26:50,649 571 00:26:50,649 --> 00:26:53,259 572 00:26:53,259 --> 00:26:55,090 573 00:26:55,090 --> 00:26:58,629 574 00:26:58,629 --> 00:27:00,669 575 00:27:00,669 --> 00:27:02,680 576 00:27:02,680 --> 00:27:05,139 577 00:27:05,139 --> 00:27:07,269 578 00:27:07,269 --> 00:27:09,489 579 00:27:09,489 --> 00:27:11,680 580 00:27:11,680 --> 00:27:14,529 581 00:27:14,529 --> 00:27:19,869 582 00:27:19,869 --> 00:27:21,159 583 00:27:21,159 --> 00:27:23,649 584 00:27:23,649 --> 00:27:26,769 585 00:27:26,769 --> 00:27:30,249 586 00:27:30,249 --> 00:27:33,759 587 00:27:33,759 --> 00:27:36,430 588 00:27:36,430 --> 00:27:38,200 589 00:27:38,200 --> 00:27:40,450 590 00:27:40,450 --> 00:27:42,940 591 00:27:42,940 --> 00:27:46,989 592 00:27:46,989 --> 00:27:50,440 593 00:27:50,440 --> 00:27:53,169 594 00:27:53,169 --> 00:27:55,479 595 00:27:55,479 --> 00:28:03,010 596 00:28:03,010 --> 00:28:07,630 597 00:28:07,630 --> 00:28:11,160 598 00:28:11,160 --> 00:28:14,800 599 00:28:14,800 --> 00:28:19,240 600 00:28:19,240 --> 00:28:22,030 601 00:28:22,030 --> 00:28:24,250 602 00:28:24,250 --> 00:28:25,510 603 00:28:25,510 --> 00:28:28,030 604 00:28:28,030 --> 00:28:29,350 605 00:28:29,350 --> 00:28:32,590 606 00:28:32,590 --> 00:28:34,090 607 00:28:34,090 --> 00:28:36,520 608 00:28:36,520 --> 00:28:38,200 609 00:28:38,200 --> 00:28:39,880 610 00:28:39,880 --> 00:28:42,510 611 00:28:42,510 --> 00:28:45,220 612 00:28:45,220 --> 00:28:55,390 613 00:28:55,390 --> 00:29:04,450 614 00:29:04,450 --> 00:29:05,800 615 00:29:05,800 --> 00:29:07,570 616 00:29:07,570 --> 00:29:10,210 617 00:29:10,210 --> 00:29:12,940 618 00:29:12,940 --> 00:29:15,580 619 00:29:15,580 --> 00:29:17,830 620 00:29:17,830 --> 00:29:20,020 621 00:29:20,020 --> 00:29:22,090 622 00:29:22,090 --> 00:29:24,460 623 00:29:24,460 --> 00:29:26,620 624 00:29:26,620 --> 00:29:29,050 625 00:29:29,050 --> 00:29:31,270 626 00:29:31,270 --> 00:29:32,770 627 00:29:32,770 --> 00:29:35,230 628 00:29:35,230 --> 00:29:36,700 629 00:29:36,700 --> 00:29:39,310 630 00:29:39,310 --> 00:29:41,170 631 00:29:41,170 --> 00:29:43,510 632 00:29:43,510 --> 00:29:47,230 633 00:29:47,230 --> 00:29:49,600 634 00:29:49,600 --> 00:29:52,510 635 00:29:52,510 --> 00:29:54,460 636 00:29:54,460 --> 00:29:56,770 637 00:29:56,770 --> 00:29:58,690 638 00:29:58,690 --> 00:30:02,410 639 00:30:02,410 --> 00:30:04,930 640 00:30:04,930 --> 00:30:08,610 641 00:30:08,610 --> 00:30:12,610 642 00:30:12,610 --> 00:30:16,930 643 00:30:16,930 --> 00:30:19,900 644 00:30:19,900 --> 00:30:21,520 645 00:30:21,520 --> 00:30:23,170 646 00:30:23,170 --> 00:30:25,990 647 00:30:25,990 --> 00:30:28,660 648 00:30:28,660 --> 00:30:30,100 649 00:30:30,100 --> 00:30:33,130 650 00:30:33,130 --> 00:30:35,800 651 00:30:35,800 --> 00:30:37,420 652 00:30:37,420 --> 00:30:40,540 653 00:30:40,540 --> 00:30:42,490 654 00:30:42,490 --> 00:30:44,920 655 00:30:44,920 --> 00:30:46,690 656 00:30:46,690 --> 00:30:49,540 657 00:30:49,540 --> 00:30:51,940 658 00:30:51,940 --> 00:30:54,160 659 00:30:54,160 --> 00:30:56,350 660 00:30:56,350 --> 00:30:59,410 661 00:30:59,410 --> 00:31:04,300 662 00:31:04,300 --> 00:31:06,330 663 00:31:06,330 --> 00:31:09,130 664 00:31:09,130 --> 00:31:10,810 665 00:31:10,810 --> 00:31:12,670 666 00:31:12,670 --> 00:31:14,440 667 00:31:14,440 --> 00:31:16,300 668 00:31:16,300 --> 00:31:18,880 669 00:31:18,880 --> 00:31:20,200 670 00:31:20,200 --> 00:31:23,710 671 00:31:23,710 --> 00:31:25,240 672 00:31:25,240 --> 00:31:28,030 673 00:31:28,030 --> 00:31:32,260 674 00:31:32,260 --> 00:31:37,510 675 00:31:37,510 --> 00:31:39,970 676 00:31:39,970 --> 00:31:41,770 677 00:31:41,770 --> 00:31:43,300 678 00:31:43,300 --> 00:31:46,180 679 00:31:46,180 --> 00:31:47,980 680 00:31:47,980 --> 00:31:50,140 681 00:31:50,140 --> 00:31:53,500 682 00:31:53,500 --> 00:31:55,210 683 00:31:55,210 --> 00:31:58,420 684 00:31:58,420 --> 00:32:00,400 685 00:32:00,400 --> 00:32:03,420 686 00:32:03,420 --> 00:32:07,270 687 00:32:07,270 --> 00:32:09,940 688 00:32:09,940 --> 00:32:11,710 689 00:32:11,710 --> 00:32:16,960 690 00:32:16,960 --> 00:32:18,580 691 00:32:18,580 --> 00:32:23,020 692 00:32:23,020 --> 00:32:25,600 693 00:32:25,600 --> 00:32:29,140 694 00:32:29,140 --> 00:32:30,730 695 00:32:30,730 --> 00:32:33,640 696 00:32:33,640 --> 00:32:41,320 697 00:32:41,320 --> 00:32:45,070 698 00:32:45,070 --> 00:32:47,620 699 00:32:47,620 --> 00:32:48,910 700 00:32:48,910 --> 00:32:51,640 701 00:32:51,640 --> 00:32:55,419 702 00:32:55,419 --> 00:32:58,090 703 00:32:58,090 --> 00:33:01,990 704 00:33:01,990 --> 00:33:04,000 705 00:33:04,000 --> 00:33:06,100 706 00:33:06,100 --> 00:33:09,669 707 00:33:09,669 --> 00:33:10,930 708 00:33:10,930 --> 00:33:13,299 709 00:33:13,299 --> 00:33:15,970 710 00:33:15,970 --> 00:33:18,549 711 00:33:18,549 --> 00:33:21,040 712 00:33:21,040 --> 00:33:22,900 713 00:33:22,900 --> 00:33:26,400 714 00:33:26,400 --> 00:33:30,549 715 00:33:30,549 --> 00:33:33,520 716 00:33:33,520 --> 00:33:34,900 717 00:33:34,900 --> 00:33:36,850 718 00:33:36,850 --> 00:33:38,830 719 00:33:38,830 --> 00:33:41,350 720 00:33:41,350 --> 00:33:44,740 721 00:33:44,740 --> 00:33:46,840 722 00:33:46,840 --> 00:33:54,320 723 00:33:54,320 --> 00:33:56,990 724 00:33:56,990 --> 00:34:00,180 725 00:34:00,180 --> 00:34:04,050 726 00:34:04,050 --> 00:34:05,760 727 00:34:05,760 --> 00:34:08,659 728 00:34:08,659 --> 00:34:10,380 729 00:34:10,380 --> 00:34:14,760 730 00:34:14,760 --> 00:34:19,919 731 00:34:19,919 --> 00:34:28,590 732 00:34:28,590 --> 00:34:34,020 733 00:34:34,020 --> 00:34:36,930 734 00:34:36,930 --> 00:34:41,490 735 00:34:41,490 --> 00:34:46,560 736 00:34:46,560 --> 00:34:48,630 737 00:34:48,630 --> 00:34:52,260 738 00:34:52,260 --> 00:34:54,330 739 00:34:54,330 --> 00:34:56,130 740 00:34:56,130 --> 00:34:57,630 741 00:34:57,630 --> 00:34:59,460 742 00:34:59,460 --> 00:35:01,050 743 00:35:01,050 --> 00:35:04,110 744 00:35:04,110 --> 00:35:07,590 745 00:35:07,590 --> 00:35:09,390 746 00:35:09,390 --> 00:35:12,570 747 00:35:12,570 --> 00:35:15,960 748 00:35:15,960 --> 00:35:17,790 749 00:35:17,790 --> 00:35:21,780 750 00:35:21,780 --> 00:35:23,670 751 00:35:23,670 --> 00:35:27,810 752 00:35:27,810 --> 00:35:29,550 753 00:35:29,550 --> 00:35:32,220 754 00:35:32,220 --> 00:35:34,230 755 00:35:34,230 --> 00:35:36,690 756 00:35:36,690 --> 00:35:40,500 757 00:35:40,500 --> 00:35:42,810 758 00:35:42,810 --> 00:35:44,910 759 00:35:44,910 --> 00:35:47,760 760 00:35:47,760 --> 00:35:50,250 761 00:35:50,250 --> 00:35:53,010 762 00:35:53,010 --> 00:35:55,020 763 00:35:55,020 --> 00:35:59,000 764 00:35:59,000 --> 00:36:03,060 765 00:36:03,060 --> 00:36:03,070 766 00:36:03,070 --> 00:36:04,180 767 00:36:04,180 --> 00:36:07,150 768 00:36:07,150 --> 00:36:11,890 769 00:36:11,890 --> 00:36:13,270 770 00:36:13,270 --> 00:36:14,710 771 00:36:14,710 --> 00:36:16,390 772 00:36:16,390 --> 00:36:20,109 773 00:36:20,109 --> 00:36:21,790 774 00:36:21,790 --> 00:36:26,010 775 00:36:26,010 --> 00:36:29,950 776 00:36:29,950 --> 00:36:34,780 777 00:36:34,780 --> 00:36:36,790 778 00:36:36,790 --> 00:36:38,740 779 00:36:38,740 --> 00:36:44,819 780 00:36:44,819 --> 00:36:49,780 781 00:36:49,780 --> 00:36:50,920 782 00:36:50,920 --> 00:36:54,940 783 00:36:54,940 --> 00:37:00,180 784 00:37:00,180 --> 00:37:03,700 785 00:37:03,700 --> 00:37:08,050 786 00:37:08,050 --> 00:37:10,240 787 00:37:10,240 --> 00:37:14,500 788 00:37:14,500 --> 00:37:17,500 789 00:37:17,500 --> 00:37:19,170 790 00:37:19,170 --> 00:37:22,240 791 00:37:22,240 --> 00:37:27,280 792 00:37:27,280 --> 00:37:31,599 793 00:37:31,599 --> 00:37:34,809 794 00:37:34,809 --> 00:37:38,109 795 00:37:38,109 --> 00:37:42,790 796 00:37:42,790 --> 00:37:45,190 797 00:37:45,190 --> 00:37:47,079 798 00:37:47,079 --> 00:37:50,859 799 00:37:50,859 --> 00:37:54,160 800 00:37:54,160 --> 00:37:58,180 801 00:37:58,180 --> 00:38:01,420 802 00:38:01,420 --> 00:38:05,140 803 00:38:05,140 --> 00:38:06,430 804 00:38:06,430 --> 00:38:08,980 805 00:38:08,980 --> 00:38:11,950 806 00:38:11,950 --> 00:38:13,720 807 00:38:13,720 --> 00:38:15,520 808 00:38:15,520 --> 00:38:17,560 809 00:38:17,560 --> 00:38:20,710 810 00:38:20,710 --> 00:38:23,350 811 00:38:23,350 --> 00:38:27,070 812 00:38:27,070 --> 00:38:30,580 813 00:38:30,580 --> 00:38:32,500 814 00:38:32,500 --> 00:38:34,150 815 00:38:34,150 --> 00:38:35,680 816 00:38:35,680 --> 00:38:38,200 817 00:38:38,200 --> 00:38:41,620 818 00:38:41,620 --> 00:38:43,690 819 00:38:43,690 --> 00:38:45,520 820 00:38:45,520 --> 00:38:47,950 821 00:38:47,950 --> 00:38:49,990 822 00:38:49,990 --> 00:38:53,470 823 00:38:53,470 --> 00:38:55,360 824 00:38:55,360 --> 00:38:57,970 825 00:38:57,970 --> 00:38:59,710 826 00:38:59,710 --> 00:39:01,720 827 00:39:01,720 --> 00:39:04,750 828 00:39:04,750 --> 00:39:06,430 829 00:39:06,430 --> 00:39:07,780 830 00:39:07,780 --> 00:39:11,830 831 00:39:11,830 --> 00:39:13,750 832 00:39:13,750 --> 00:39:16,300 833 00:39:16,300 --> 00:39:19,030 834 00:39:19,030 --> 00:39:22,000 835 00:39:22,000 --> 00:39:26,680 836 00:39:26,680 --> 00:39:28,450 837 00:39:28,450 --> 00:39:31,810 838 00:39:31,810 --> 00:39:34,330 839 00:39:34,330 --> 00:39:38,050 840 00:39:38,050 --> 00:39:41,010 841 00:39:41,010 --> 00:39:44,980 842 00:39:44,980 --> 00:39:48,030 843 00:39:48,030 --> 00:39:52,540 844 00:39:52,540 --> 00:39:54,490 845 00:39:54,490 --> 00:40:00,990 846 00:40:00,990 --> 00:40:03,310 847 00:40:03,310 --> 00:40:05,020 848 00:40:05,020 --> 00:40:07,930 849 00:40:07,930 --> 00:40:09,430 850 00:40:09,430 --> 00:40:11,830 851 00:40:11,830 --> 00:40:15,310 852 00:40:15,310 --> 00:40:17,320 853 00:40:17,320 --> 00:40:22,570 854 00:40:22,570 --> 00:40:25,450 855 00:40:25,450 --> 00:40:27,940 856 00:40:27,940 --> 00:40:30,980 857 00:40:30,980 --> 00:40:35,359 858 00:40:35,359 --> 00:40:37,010 859 00:40:37,010 --> 00:40:38,690 860 00:40:38,690 --> 00:40:40,430 861 00:40:40,430 --> 00:40:42,590 862 00:40:42,590 --> 00:40:45,620 863 00:40:45,620 --> 00:40:52,480 864 00:40:52,480 --> 00:40:56,090 865 00:40:56,090 --> 00:40:58,640 866 00:40:58,640 --> 00:41:01,670 867 00:41:01,670 --> 00:41:03,170 868 00:41:03,170 --> 00:41:05,690 869 00:41:05,690 --> 00:41:08,770 870 00:41:08,770 --> 00:41:13,760 871 00:41:13,760 --> 00:41:16,040 872 00:41:16,040 --> 00:41:18,050 873 00:41:18,050 --> 00:41:27,710 874 00:41:27,710 --> 00:41:27,720 875 00:41:27,720 --> 00:41:29,780