Hi everybody, Joe for jaspyscasebreaks.com coming at you with a half case break of 2021 Panini National Treasures Baseball. This is pick your team number 21, and we sold this out straight up. So big thanks everybody here for making it happen. Straight no filler. Thanks everyone for making it happen, and we've got Lonnie with that triple last spot mojo. All right, now let's, here's the case right here. On the dice roll, we'll go one, two, three for the top two boxes, and four, five, six for the bottom two boxes, four, one, two, three, four, five, six. So we'll save these two for next time, which is pick your team 22. There it is. And the next two boxes are already in the store, jaspyscasebreaks.com.  Right now, let's see what we got in here. Good luck everybody. We got a, we got a plate right there as well. And we'll use this blank card right here to slow play the hits a little bit. All right, first off the top is Byron Buxton. One out of 99. Cece Sabathia to 25. That's for Craig and the Yankee. Oh no, sorry, that's Cleveland edition. That'll be for Roger. Alexander Bogarts, 68 out of 99. For Boston. That'll be for Steve and the Red Sox. Snack two here. First auto, Anderson Teata, 54 out of 99. For the Rangers, Texas. That's going to go to Kevin. Two more top loaders here. Next up is Rookie Otto, Dalton Varshow, 63 out of 99 for the Diamondbacks. It'll be for Lonnie and the Snakes.  Getting some everyday playing time in Arizona. Next is nice patch, nice auto Alejandro Kirk. One out of 10. Good looking patch there for the Blue Jays. That's going to go to Michael. The plate is autographed. Wow. That's Dave Winfield. One of one. Piece of the lumber and on-plate autograph. Smooth out the penny sleeve a little bit. That's a cool hit. And that is four. Well, let's find out. Let's go to groupbreakchecklist.com. 2021 National Treasures. National Treasures Baseball Checklist. There it is. Checklist group team. Dave Winfield, Autograph, Hall of Fame, signature, and parallels. Will be Yankees. There you go. So New York Yankees, Craig with the Yankees. All right, Craig, where's the bell? Oh, there it is. Hiding behind some top-loaders. All aboard the Big Hit Express. Woo-hoo. Is Elson Howard, another Yankee. Legendary materials booklet. Six out of 10.  That's nice. That's another one for Craig. All right, that's the first box. Box two. There's Craig. Congrats, man. Fat box. It's a big, thick book on the bottom here. Hi, Zinger. Can I ban Craig? No, not until he does something ban-worthy. All he's doing is kicking back and racking up the hits. Nothing wrong with that. 85 out of 99. Ryan Jeffers, twins. Kevin with the twins. Andres Jimenez, 27 out of 99. Piece of his jersey, going to Cleveland. Roger with that one. Cleveland, this is for you. We got two cards in an accidentally snack. First one is Miguel Cabrera, 73 out of 99. That'll be for Kevin in Detroit. You guys are brothers. I see. There's 25 out of 99. Montreal, Gary Carter. Expo stuff goes to the Nationals. That'll be for Diego and the Nats. Then we've got a Marito DuBond jersey and autograph for the Giants, 33 out of 99. Justin with San Francisco. It's my rivals. These penny sleeves are actually kind of terrible. They're not the usual penny sleeves that we use here. Once again, Justin and the Giants, my rivals. Then we've got Clark Schmidt, 70 out of 99. Another Yankee for Craig. Two-color passion auto, Chris Bubich. 45 out of 99. Nice rookie patch and autograph. That's for Oliver and the Royals. And there will be Royals. Next up is Bobby Whit Jr., Colossal, Jersey, and autograph, 10 out of 25. Another one for Oliver and the Royals. There you go, Oliver. He's gonna be pretty good. Yeah, there he is. Let's go, Oliver says. Nice, and let's see what's going on here. We've got a 32-player treasure chest. Wow. 38 out of 49, featuring all of these guys. Trout Bryant, Chris Bryant, Buxton Bogarts, Acuña Jr., Jordon, Vlad Jr., Shohei, Jose Ramirez, Aaron Judge, Boba Shet, JD Martinez, Fernando Tatis Jr., Javier Baez, Rookie Betz, Christian Yelich, Garrett Cole, Kershaw, Maryfield, Harper, Darvish, Flaherty, Bueller, Glasnau, Berrios, Goldschmidt, Anderson, Blackman, Burns, Freeman, Luis Robert and Cody Bellinger. Can't even get on the camera there. Now I think there are some doubles because it's 32 players. That's pretty awesome. All right, well, hey, that's the end of the break. We only have to do this one randomizer right here. So I'm going to pause the video, get all these names typed in. When we come back, we'll do the randomizer. So stick around, we'll be right back, BRB. All right, welcome back everybody. Got all the names typed in, all 32. Thanks everybody for getting in. So, and we'll obviously go by the team on the checklist. Like for example, I think all these guys are on their current teams, except like Freeman is still Braves edition in this set. So we'll go by the checklist once we see who gets the book. We're going to roll it and randomize it. That lists three and a four, seven times. Player team on top gets it after seven. Lucky seven, fingers crossed. Good luck, everybody. One, two, three, four. And three more times. Five, six, and seventh and final time. After seven, player on top is going to be, oh, sorry, Rocky's very close, but not quite. But congrats to the Boston Red Sox. After seven times, thanks to Xander Bogarts. That'll be Steve Birch. There you go, Steve. Take another look. A lot of nice relics here. I don't know what this goes for on the secondary market, but pretty nice. 38 out of 49. There you go, Steve. There you go, everybody. I'm Joe for Jasper's Case Breaks. You're welcome, man. I'm Joe for Jasper's Case Breaks.com. I will see you next time. We got another two boxes of this. So the second half might be pretty awesome. I'll see you next time for the next one. Bye-bye.


Suppose, instead of this, I say while this while statement do you understand? What am I doing? I am reading a character converting it into a numerical value because this is integer and I am assigning it to S i which is i equal to 0. So, initially S 0 will get this value. Since this expression has a value which is assigned the value of this total thing itself will be the ASCII code of whatever character I have read. That will get compared with capital X. If that is not equal to capital X, this condition is true. If i is less than 100, this condition is true. I will come down. Inside what will I be doing? I will actually be saying just i equal to i plus 1. So, I go back again. So, notice that earlier I was reading the character inside the loop, assigning it to S i and increasing S i, increasing r. Here, I am reading it in the while condition itself. Assigning it to S i, both the jobs are done. I am actually cheating the while statement. While statement, condition is written. In the name of condition, I am writing assignment statement. That is permitted. It is perfectly valid because the condition is still there. Namely, is all of this not equal to capital X. What is all of this? All of this is what was the value which was assigned in the expression. So, if that value is not equal to X, the condition is true. Now, instead of doing i equal to i plus 1 here, suppose I put i plus plus. i plus plus is called post increment. Post increment means the current value I key is used. Use it and execute the whole statement. And when that statement is executed, when you do something ahead, the value of I key increases. So, first use the current value of I. Do the entire statement. And when you finish executing that statement, before going to the next statement, change i to i plus. So, notice that here the value that will be actually used will be 0 only. I plus plus is also written, so i equal to 0 at that time. Zero value will be used here. Is this statement not over? Now, this has to be assigned, this has to be assigned. Not equal to X, it has to be compared. And, and is written. Before that, I have to check less than 100. At this time, what is the value of I key that is original? Till now, the value of I key has not changed. Although, we have written i plus plus. In this whole execution, I will remain 0. Only when I completely evaluate this condition and find out it is true or false. If it is true, I have to go inside the loop. If it is false, I have to get out. But the moment this condition is evaluated, before doing anything, I will be now increased. That is why it is called post increment operator. So, it is incremented post everything else that you have done. Whatever you have to do, after finishing, increase the value of I key. That is why after writing like this, I do not have to write I equal to I plus 1. In one iteration, everyone will read it. Why did you write S i minus 1 here? Suppose, I equal to 0, I have read the value. This condition is correct. Now, I have to print it. But the value of I is 1. I plus plus was written. When I come here, the value of I will be 1. Now, I will not print S1. I will not read S1. I have read S0. That is why I have come here. If you do not want this, you can do this. You can write it separately. Just put semicolon here. While condition semicolon. There is no body. The iteration itself contains instructions to do something. What are you doing? In this condition, you are reading a character, assigning it to S i, incrementing it. Keep doing it till you get this. So, that means when this iteration completes, it is not a single statement. It will execute 20 times if you type 20 characters. When you come here, all characters have been read up to X. Now, whatever is the value of I is the value of N care. You can assign it. And now, if you want, you can run a for loop. Is that okay? So, you have come out of this iteration. This iteration has read the entire array. Now, you are printing it out. Earlier, I was trying to print inside the same iteration. Now, I am printing it outside. You can run this in a small program and see if it works. Now, one step ahead of this. Until now, we were reading the value of the as of the character. Now, we want to keep the character in the array with the characters. There is one string. There is one word. I, N, D, I. How many characters are there? Five. Now, either I put five variables like X1, X2, X3, X4, X5, type of character and put each character in each one. There is no meaning in that because any word can be long or small. So, for this, the array is used. So, if we write here, say some word. Now, how much will be its size? Again, the same question. If I write five, then how many characters can come in it? Five. If I write ten, then ten. If I write fifty, then fifty. So, generally, one word is not longer than one line. That is why we call it word 80. Now, we want to keep this character in word 80. So, we keep iteration in word like that. We used to capture the value of Ascii. Now, we will put characters in word i. But, later we will know how many characters are written in this word. Sometimes we will write in India, sometimes we will write in Hau, sometimes we will write in U, sometimes we will write in Ganapati. Now, there are different characters in each word. How will you know how many characters are written in word? When you are reading, then you can count. But, you have read it, your program has come forward. How will you remember how many characters are written in the word? Because, once you have read it, it has come forward. For this, C++ provides a special provision. Character arrays are very special. How will you keep track of how many characters are there in the string? Because, depending upon whether I enter this, it will have three characters. This will have three, this will have seven, this will have five. How will I know in general? If there is one string, car, array, something, and something is put there, how will you know how many characters are there? Because, you see, you may even want to keep a blank inside. So, there is no way you can determine how many characters are there in the string. So, for that, C++ has a special provision. What C++ says, you want to store in an array. This is the array word. And suppose, I am wanting to put this here. In 0th element, you keep i. In 1st element, you keep n. In 2nd element, you keep d. In 3rd element, you again keep i. In 4th element, you keep a. Now, the word is complete. Now, in 5th element, you keep 0. So, this is a special. This 0 is not symbol 0. This is not 0. This is absolute 0. This is written as backslash 0. Backslash 0 means absolute 0 value. As per the code table, there is 32 space. There is 48-0. There is 49-1. 0 is nothing. No symbol is 0. So, you keep absolute 0 value at the end. This is a convention in C++. That means, if you want to store characters in an array as a word, or in a string, whatever character. Later on, you want to find out how many characters you had put. The convention is, whenever you put characters, you should put a backslash 0 at the end after you finish. So, you will read, let us say, I and D, I, A, and you will have to put this backslash 0. Or some input statement will have to put this backslash 0. Something of that sort will happen. What this means is two things. Suppose, tomorrow, I store this word, say, you. So, how will the word array look like? What will be 0th element? Why? What will be 1st element? What will be 2nd element? You. And 3rd element? Backslash 0. We will have to write this. Now, there are two or four words, one word, two words, how many are there? Now, you have ever assembled any word in it. After that, at any point in the program, at any time, you can examine that array. Where is the backslash 0? Wherever backslash 0 is, up to that is a valid string. Because backslash 0 is not a valid character in any characters. So, this is a convention with C++. All strings in C++ are stored in character arrays and the last symbol stored inside is always backslash 0 to, say, end of array. It has one implication. If you have declared the array size to be 80, then that means ordinarily you can put 80 symbols inside, 0, 1, 2, 3, 4, up to 79. But then, you will not be able to put backslash 0 because there is no space. So, generally, if you declare an array of size 80, how many characters you can store inside? 79. Because 80th place, at least, must be reserved for backslash 0. If you put five characters, no problem. 0, 1, 2, 3, 4, at fifth position, you can put backslash 0. So, backslash 0 means you have to store one character less. But that is okay. You can always, if you want strictly 80 character strings, you declare size of array as 81. Normally, no one does that. 80, 100, 256, something you declare. But you know that a single character string should be less than this. Okay? Now, I will give you another problem. Read the question first. There are two words. Two words of the type in the input. Okay? Suppose there are two words. These are two words of the type. You do not know what type it is. I can write my name. What is guaranteed?  The two words are separated by a blank. That is, whatever type it is, after ending a word, it will type a blank. Exactly a blank type. Then the second word will type, after the second word, it is a blank type. That is, there is a blank here as well as a blank here. So, I have typed in two words. I do not know how many words there are in each word. Whatever the five, ten, fifteen, whatever it is, after that I will type a blank. Then I will type five, ten, other letters, another word. I will type a blank. Your job, read this much portion. Whatever is the first word, this or this or this, put it in an array first. And second word, this or this or this, put it in the array second. Simple job. How will you do it? Let me give you some declarations. So, I have one array first, another array second. Please understand the algorithm. First, understand what you have to do. You have to start studying from the gatecars. First, you have to read the character. First, you have to put it in the first element. Second, you have to put it in the first element. You have to put it in the second element. You have to put it in the third element. You have to put it in the fourth element. Where is the blank? It is over. You have to get out of the iteration. In that position, you have to put the backslash zero. Because then the entire character string will become an array. After doing that, the only blank is equal. The next character is assembled in the second word. Then after that, you will put the second zero in the element. You will put it in the second element, in the second element, in the second element, in the third element, in the fourth element. The blank is over. Then you put the backslash zero. It is over. Okay? So how will you write this program? We use the same one that was written earlier. Okay? Let us see what this statement will do. I have to write i equal to zero here. Okay? While first i plus plus equal to gate care. What it will do? Gate care will read a character. It will assign it to first i. i is equal to zero. It will check whether this character was blank. If that was blank, I have to get out. If it is not blank, I have to repeat itself because there is no other body. Next time, i will become one. Next character will be read in i equal to one. So I will read it in array first one. It is not blank. First two, first three. If this input is given, when will it be blank? At what value of i it will be blank? This is i equal to zero. This is one, two, three, four. i equal to five will be blank. So when I come out here, I have come out because I had received a blank here. And at that time, I would have read that and put it in first. So you look at how the first has been assigned values. Let us say I have typed hello. Let us execute this program. While i equal to zero. So this is zero element. First i plus plus gate care. It will get me h here. And i will become one. Next again, gate care. It will get me e. I will become two. Next it will get me l. I will become three. Next it will get me another l. I will become four. Next it will read o. I will become five. Next it will read this blank. Please note, right now blank is not being checked. It is being assigned to my array. So here a blank will go away. Fifth element. After this it will be checked. This is blank. Get out. But before leaving, increase the i. i becomes six. Right? So when we get out, i will be equal to six. Now I have assembled all the words. But I have to put a backslash zero at the end of the character's rail. Where should I put backslash zero? I should put it here where it was blank. Because that is not part of the word. Word is finishing H-E-L-L-O. Now I know that when I come out here, whatever is the value of i, it is one more than the position where I have to put that backslash zero. So I will say i is equal to i minus one. Or more importantly, I will say n char one is equal to i minus one. Where n char one is the length of first word. n char two is the length of second word. That is my assumption. So when I assign n char one equal to i minus one, in this case, what will be the value of n char five? And that is correct. One, two, three, four, five. There are five characters. n char one is five. But I have to put a backslash zero. So where should I put backslash zero now? Whatever is the length? Since the elements are zero, one, two, three, four. So zero, one, two, three, n char minus one, characters are there. n char is the position where the backslash zero is. Are you sure that I would have assembled this properly? I have assembled the first word. Now I want to assemble the second word. Where will I assign the second word? Again I will have to start with i equal to zero. And again do the same thing while this time, second, i plus plus. Sorry, I will just come back. Sorry, how? When you are saying get care here, you are reading a character. You do not know what that character is. At which point will you assign backslash zero? Please remember, till you complete this, this is not a single statement. There is actually something, something and body. This is iterating. Only when you finish the iteration, you know that there is a blank. Till then you do not know. How will you know if there is a blank until the entire iteration is over? So only after the iteration comes out, you will know that there was a blank, that is why you came out. Till then how will you know? So where will you assign backslash zero? At what value will you assign it? Will you assign backslash zero here? Will you assign it here? You have to keep reading the character. You have to assign backslash zero here. But how will you know? Till the time you read the blank, you do not check it. And as soon as you check, the iteration comes out. So both of us cannot be together. So check and come out. Or stay inside. So backslash zero has to be done after reading all the characters. It cannot be done in between. Only thing is because i is incremented here, you will come out earlier. You will come out, sorry, when i will be one more than necessary. That is why you have to subtract one. Now you can do exactly the same thing here. And this time again say now, n care two equal to i minus one. And second n care is equal to... So now let me ask you a question. Suppose i have not said read two words. But i have said read five words. Each separated exactly by one blank. Are you not going to write similar statements again and again and again? If you want to read five words, you will write it five times. If you want to write five words, you will have to write first, second, third, fourth, fifth. Then i said read ten words. Then you will write a program again. That is why you have to read so many words. You do not know exactly. So instead of storing everyone in different areas, if i make two dimensional matrix, once in one row, second in the second row, third in the third row, fourth in the fourth row. Will it not be better? So let us extend this program now. It is not necessary. I want to store forty words. Because, first, what was the problem in this? It is typed in one line and separated by blank spaces. How many words can be typed in one line? There is a line of eighty characters. If you typed in one character, then you will do forty because both sides want blanks. So you can give more than forty words. But believe me, you did not do forty, you typed in one long word. So how many characters can be eighty? So maximum number of words are forty. So an area of forty by eighty is good enough for me. I do not need anything more. Here we are saying now a problem is being redefined redefined. The problem is multiple words are typed in a single line separated by blank spaces. A blank. Read all of them. Now believe me, what I wrote here is like this. Hello world, how are you? How many words are there in this? Five. One, two, three, four, five. First there are five letters. Second there are five. Third there are three. There are three. It is arbitrary. Anything can happen. There could have been ten, five, seven, whatever. Now I want you to do the following. This is your array word forty by eighty. So what do I want? The word zero is zero. In that I want H, E, L, L, O, backslash zero. Isn't it? Yes, I want it. The first element of the word is first row. In that I want W, O, R, L, D, backslash zero. The second element of the word is H, O, W, backslash zero. The third element is A, R, U, backslash zero. And the fourth element is Y, O, U, backslash zero. There is nothing in the fifth element because the word is over. Now if I type ten words, then you have to fill ten words. Type two words and fill two. So the first problem was a special case. First name, second name were empty. Now the first, second, third, as much as you want, I want to store them. The general program of this is actually very easy as much as it takes. The first iteration that we wrote was to be written. But we have to repeat it again and again until the whole word is over. Until the whole word is over, repeat it. We think about the repetition outside. I have a maximum capacity of 40 words.  I will provide for reading 40 words. Read 40 words from my side. So I have written for I equal to zero, I less than 40. I plus plus. Whenever I come here, then my 40 words will be read. Now every word I have to read in Ith row. But now J, this column is J equal to zero, J equal to one, J equal to two. I have to put one character. So what will I do now? Now I will put an iteration in it. Here first I will write J equal to zero. Since I forgot to declare, so I will go here and write J. Then I will write Y here. Now look, I am doing something different here. What am I doing in it? I am reading a character in Ith row and Jth column. And I am checking if it is blank. I am not incrementing it. I have come to J sometimes. What have I just done? So tell me when I will come here. If the character that I have read, if it is not blank, then I will come here. I will read the first character in Ith. If it goes in Ith, the word is zero, zero. It is not blank, that is why I came here. Now I have read one character that is not blank. So I have to read it further. So I will just write J equal to J plus one here. That means the value of J was zero. You have read it. If it is not blank, then you have come here. After coming here, you have increased J. You have gone back. Now it is zero. Now it is zero in Ith row. You will read the next character in Ith. That Ith is not blank. It will be read Ith. You will come in and write J equal to J plus one. It will be J2. This iteration will continue. Until when? You will read a blank after reading Ith. Now the blank that you will read here, then this condition is not true. You will come here. How much is the value of J at this time? The value of J was zero here. If it was not blank, then you have made it one. If it is one, then you have made it two. If it is two, then you have made it three. If it is three, then you have made it four. If it is not blank, then you have made it five. But when you will read the fifth, then it will become blank at that time. You will come out. When you came out, then how much was the value of J? Five. Whatever the value of J is, you have to put backslash zero in it. So if you have written here, world I J equal to backslash zero. Now it does not need to be reduced. The first program that we had written, we had written J plus plus here. That is why it was increasing there. Now it will come out at the last value when it becomes blank. So you have zeroed there. So this means that it has been assembled. If it has been assembled, then it has been reduced. Now you have to take the next word. That is, you have to increment i. Then you have to zero J. So now you will come here. If you come here, then what will happen if you come here? This is the iteration of the outside. Here you had started with i zero. Now it will become i equal to one. What will happen if it becomes i equal to one? This iteration will start again. i equal to one and j equal to zero. But the word that you will read now, it will go to world one zero, one one, one two. Next time it will go to i equal to three. Three zero, three one, three two. So all this will continue. The problem is that you have done hello world how are you. But it did not end. Because you have done so much to stop it. I have to read 40 words. Now see when i equal to zero, one two three four. Till then it is fine. If i equal to five, then what will happen? Think. If you come here, if i equal to five, j equal to zero. You read the first character. Now it depends on what type he has done here. Suppose he has typed blank. Then you will read that character. You will write blank here. You will come out of that loop. If you write blank, then you will do backslash zero. That means this word has happened that there is no word in it. Backslash zero has already come. It is a null string. It has no letter. But suppose that fellow does not type that. That fellow types enter. See this program is forcing you to type 40 words. Now do whatever you want. Give me 40 words till i am going to sit quietly. This is also not right. What we had said? Multiple words are typed in a single line. This means how word, how are you? After giving blank here, he will enter. This is expected. So if we modify the problem, that problem is now interpreted is you are typing words separated by blank. After the last word and a blank, you must press enter. Suppose we say that. Now what it means? I have read a character here. Let me write this j equal to j plus 1 here. When I come here, after the last blank, I would have put this into this area here. My enter will come at this point. If I can check for that enter symbol and say enter, how can I do that? Backslash n. But where to check? I have assembled what I have read. Now I do not have any character to check. You think about this problem. I will write a program. I would like you to take that program down and analyze it at home. You understand the problem? We are assembling the words together. But this program will read 40 words. Our problem is that it is written separated by blank in one line. We believed that after the last word, it would give a blank. But whenever it will enter, the program should terminate. The program should come out. How can we do that? Now I have understood how the program is easy. You can assemble 5 or 10 words. But you have to assemble as many words in one line then you have to stop. So I am writing a program. Read that carefully. And try to write that program using some other logic. If you find any other logic and try to write that program. You have understood the problem? I am typing words. After that, whenever I enter the program, I want you to understand that I am bored of my words. I don't want to type any other words. So whenever I am done, you have to keep as many words as you want. And tell me the number. So you can increment a variable by doing a number. It is simple. The value that you have got is as many words as you want. It was 0, then 1, then 2, then 3. So it is 0, 1, 2, 3, 4. You have read 5 words. But you have to print them at the end. And you have to print as many words as you want. So how will you do it? Write it down. If you have saved it, then write it later. Let's see it first. This is the same words 40 by 80. Here N words is a new variable. And tell me how many words we have read. Keep that in mind. I and J variables. Now I have written it a little differently. In this, I equal to 0. I have read the first character. Now I know that the first character will be a non-blank character. The first H of the word will be there. That is what we have said. If this is not a new line character then we will do this. Whenever this is a new line character we will come out. This means wherever we type a new line character then our program will come out. We will read each character. If that character is a new line then we will come out. This is the guarantee. When can a new line character come? After any word a blank will come and a new line character will come. This is our specification. So the first character will not be a blank. But this is our wide loop in general. Now it is written here. If it is written here, then what is X? It is a new line character. But if it comes for the first time then it is a valid character. If it comes later then it can be a blank. So here J is equal to 0. The first character will be checked by while X is not equal to blank. We have read X. Now X was not a new line character. Is it blank? If it is not blank then we have to put it in the current word. And the current is J is equal to 0. So whatever we have read X if it is not blank then we have put it in the word IJ. After that we have put J. We are assembling this. J was 0. We have put H in it. We have put J to 1. After putting J to 1 we have put a new character. We have put it in X. So this is the next character we will examine it. What character? So the second character E will come here. We will go back. E is X is not equal to blank. Yes it is not equal to blank. We have assigned E to the next character. We will read E, L, L, O. Now it will be blank here after L O. So whenever it is J is equal to J plus 1 we will come here. At that time what is the value of J? 0, 1, 2, 3, 4 and 5. When the value of J is 5 we have read the fifth character that blank came out. Not fifth, sixth character actually in fifth element. So the value of J is 5. So instead of blank we have to put backslash 0. The word IJ is equal to backslash 0. This word is complete. Now we have to go up by assembling the next word. So I is equal to I plus 1. So we have come here. The first character here we have not read it yet. The way we read the first character of this file we will read one more character here. This will be the first character of the new word. When we go here we will go back here. The first character will come here it will be blank. But when the last word will be read R, U, blank then we have done it from the blank to here. The next character that we will read will enter. When I will go from here I will say X is equal to backslash 0. Don't do anything. Whatever value will be I we have read that much. Because the value of I will be 5 and in element 0, 1, 2, 3, 4 we have kept the words. We have kept the number of words. You get this logic. Isn't it very simple and elegant? You can read as many words as you want till somebody say enter. Now I will leave you with one more food for thought. In real life the words we will write we will not put one blank. Sometimes we put 2 blanks by mistake. So now I will give you a sentence. Make this program that sentence is like this.   What you are telling me that I can enter any number of words in a line separated by blank. Now why should I print only one blank? It is my way of typing. Now you see the problem is similar. There are words separated by blanks. The result is also to be similar. You have to assemble these words in words 40 by 80 separate rows. But the work is harder. There could be any number of blanks. Now you have to think your logic was correct till now. 1 blank is completed. 2nd word end of line is completed. Now there is no trust when there is end of line. How long is there a blank?  There is no word. You should be able to report zero words. Another possibility? Return to Ravadhyam.  Your program should work in every condition. Now try to write this program. And this time please try to do it. Try to collaborate. This is not an exam. Try together with four people. Write a program and execute it in two conditions. Write five or two words. Take any sample. Think about it and ask your friends.  Try it yourself hard. Take anybody's help. But you must understand what is happening. And now resolve this problem. We will see that.


So before the break, we looked at 2 Corinthians chapter 7 verses 9 to 10 which talk about Godly sorrow. Now we can understand repentance better, this whole concept of repentance. We are able to understand it better when we understand the difference between Godly sorrow and worldly sorrow. Because people who are displaying worldly sorrow are not actually repentant. So we are able to better understand repentance once we understand the actual difference between Godly sorrow and worldly sorrow. We will begin by looking at an example of worldly sorrow, someone who expressed worldly sorrow rather than Godly sorrow. So if we could have someone read out for us, 1 Samuel chapter 15 verses 27 to 31, 1 Samuel 15, 27 to 31 please. Well I hope people have come back from the break and rejoined at least a few. If we have at least one listener who is actually there in the class, could you please read out 1 Samuel chapter 15 verses 27 to 31. You know there is just one student who has joined the class, could you please now read out 1 Samuel chapter 15 verses 27 to 31. 1 Samuel chapter 15 verses 27 to 31, 1 Samuel chapter 15 verses 27 to 31, 1 Samuel chapter 15 verses 27 to 31. Yes. And as Samuel turned around to go away, so sees the age of his robe and it tore. So Samuel said to him, the Lord has turned the kingdom of Israel from you today and has given it to the neighbor of yours who is better than you. And also the strength of Israel will not lie nor relent for he is not a man that he should relent. Then he said, I have sinned yet honor me now please before the elders of my people and before Israel and return with me that I may worship the Lord your God. So Samuel turned back after so and so worship the Lord. Okay so here we have Saul who admits that he has sinned. Okay so he does not try to make up any more excuses. You know he realizes that what he has done is sinful. So we have Saul admitting that he has committed a sin. But when he desperately reaches out to Samuel and catches hold of his garment, it's not out of a desperation that he's losing Yahweh or that he's going to be deprived of Yahweh's presence. You know brother Collins, you know if you could just mute yourself because it's kind of creating static at my end. Yes, thank you so much. So when he reaches out desperately and catches hold of the robe, it's not because you know he's terrified that he's going to be losing Yahweh or losing his approval. He catches hold because he wants to say yes it's true that I have sinned but you know all the people are watching and I'm going to lose face in front of them if you just walk away. Then people will look down on me. So come back along with me and then you know we will go and worship the Lord. So this man is not worshiping the Lord to worship the Lord. He is going and worshiping the Lord so that you know to maintain the ceremonies, to maintain his status you know to kind of continue showing people that he is still the king and he's doing a cover-up job. So there is a lot of sorrow over here but the sorrow is over the loss of face you know which is going to happen now. It's sorrow over losing the kingdom. It is sorrow over you know being deprived of God's approval where because God you know he had God's approval up to now.  So in that sense you know there's sorrow about that. So if you look at worldly sorrow it's all about me, me, me. I'm losing out on this. Oh I'm going to be deprived of this. Oh I think I'm going to get punished by God now. Oh my goodness how terrible. It's all me, me, me. Worldly sorrow is me feeling really sorry for myself and I think worldly sorrow is all about feeling really bad that I got caught. Oh I wish I had not got caught. You know I wish my sin had not been exposed. So worldly sorrow it's all about you know feeling really bad that this person that I'm worshipping me whom I have been worshipping is now going to get a real blow. So worldly sorrow is all about me. On the other hand we look at an example of godly sorrow and how you know David responds when he is corrected by a different prophet. So Saul gets corrected by Samuel. David on the other hand gets corrected by Nathan and after Nathan has you know corrected David. This is David's response which we see recorded in Psalm 51 and if someone could read out Psalm 51 verses 10 to 12. Psalm 51, 10 to 12. Maybe the other students have not yet joined in. Brother Collins if you could repeat. Psalm 51, 10, 10 to 51. I need the faster. Oh yeah, 51, 10 to 12 please. Thank you. Create in me a clean heart or good and renew the steadfast spirit within me. Do not cast me away from your presence and do not take your whole spirit from me. Restore to me the joy of your salvation and uphold me by your generous spirit. Amen. I know that should be enough. Thank you. So here David is saying do not cast me from your presence or take your Holy Spirit from me. Is it for him? Yeah, if you, yes it's muted. Thank you. So here we see that you know David is saying for him the main concern is that you know he'll in some way lose out on God's presence. He has always loved the Lord from a young age. He's always you know put God first in his life and now after this terrible sin that he has done. He is so worried that he will lose God. And so he says do not cast me from your presence or take your Holy Spirit from me. You know he says you know instead why don't you work on me? Why don't you clean me up? You know so he says create in me a pure heart of God. You renew a steadfast spirit because my spirit you know my human spirit is always wandering away from you. But Lord if you could make it steadfast so that it really loves you so that it really honors you. And you know he says restore to me the joy of your salvation and grant me a willing spirit because on my own I'm not able to follow your laws. But if you will give me a willing spirit you know that will sustain me. That will help me to continue in your presence. So here Godly sorrow is feeling ashamed of what you have done to the Lord. You have betrayed his trust. You have dishonored him. You know that's why he says in the earlier verse you know he says against you and you alone have I sinned O Lord. So he is ashamed that he dishonored God. He is deeply regretful that you know he brought that he brought a bad name you know to Yahweh being the king. He behaved in this way and so he kind of brought a bad name to Yahweh in front of all the nations. He's so deeply ashamed of what he has done.  You put a steadfast spirit within me and you grant me a willing spirit he says you know so it's all God focused. So if my repentance is all about you know me having lost certain privileges because I got caught in sin and now I will have to you know and now I'll have to straighten out my act and I'm feeling really bad that you know now I have to give up so many things just to honor God and I'm feeling really miserable that is worldly sorrow it's all me focused. On the other hand godly sorrow is acknowledgement that Lord what I have done is sin in your eyes. You have trusted me all along you have been so loving and compassionate and how have I repaid you? I have done this horrible thing.  I'm so rotten I can never change on my own but I really long to honor you. I really long to be different so you Lord help me and you come to a point where you say Lord whatever I need to give up to straighten myself out Lord I'm willing to give up that whatever needs to be cut off Lord I'm willing to cut it off cut it out of my life. You know that would be true repentance. So if a person has got godly sorrow in their heart that genuinely leads to true repentance. On the other hand if all we are feeling is worldly sorrow then there's no actual repentance involved over there. So and the second thing that we need to you know understand an equally important teaching about godly sorrow and worldly sorrow is regarding our response you know when we realize that what we have done is sinful and we feel a deep conviction regarding the sinful thing that we have done. How do we respond to that deep conviction that is very very important as well. So we will look at you know Judas you know and the worldly sorrow which he expressed. Matthew chapter 27 verses 3 to 5. So if someone could read out for us Matthew 27 3 to 5. Matthew chapter 27 verse 3 to 5. And then Judas his betrayers seeing that he had been condemned was removed and brought back the 30 pieces of silver to the chief priests and elders saying I have sinned by betraying innocent blood and they said what is that to us you see to it. Then he drew down the pieces of silver in the temple and departed and went and hanged himself with the chief priest. That should be all right that should be enough. Here we see that Judas is genuinely really sorry for what he has done. When he saw that Jesus was condemned he was seized with remorse and returned the 30 pieces of silver. This whole thing that he you know indulged in was for the sake of that 30 pieces he was greedy for that for those 30 pieces. Now he is so deeply regretful he doesn't even care about those 30 pieces. So he goes back and he gives it back to those people and he says I don't want this anymore. What I have done is really horrible really sinful you know if he could have changed it he would have changed it. He is genuinely deeply remorseful deeply regretful for what he has done and so he tries to return the money you know he no longer has a desire for it. He is no longer greedy for it. He is cured of his lust for wealth you know and he says I have sinned for I have betrayed innocent blood. And then they say that's your responsibility so we don't want the money you know they say. But he doesn't want the money he doesn't want to take it back so he actually just throws it on the floor and he leaves. But one thing about him is that he has given up all hope this only dark despair and that causes him to go and hang himself. So that is worldly sorrow where you have completely lost hope in God where you think it's over it's finished. Now there is no redemption for me there is no hope for me and that is actually a very very sad thing. It's a huge lie of the evil one and you know Judas falls prey to that lie. He believes what Satan is saying to him in his heart that now he is beyond all hope because Jesus when he came he came for the forgiveness of all sins. Every kind of sin that a person could possibly commit. The only sin in fact that leads to judgment is sins in which there is no repentance and there is no turning around. And of course sins where people who have tasted of the Holy Spirit choose to go back and say I have tasted of the things of God and I don't want them anymore. So only in those two extreme cases you have sin leading to judgment and death. But here this man he believes the lie of the evil one that he is beyond hope and so he goes and hangs himself. So one thing very very vital to remember when you are feeling crushed by what you have done, when you probably being in a godly person with godly values have fallen so low, have fallen so horribly, have you know disgraced yourself, disgraced your family, disgraced your church. What you have done is abominable, it's miserable, it's terrible.  You need to believe the truth more than anything at that point, at that lowest point of your life where you have shamed yourself, shamed the Lord's name and you know you've made something really done something terrible. At that time it is important to remember that God's truth is God's truth. Bow to that, submit to that, grab on to it, hold on to it. Because the truth is that Jesus Christ came to forgive people and give them a second chance, okay, a hundredth chance, whatever. You know, he is willing to give that. So rather than believing in the lie of Satan and giving up hope, we choose to believe what the Bible says. We choose to believe that if we go to God humbly and confess our sins, he will forgive and he will purify us from all unrighteousness. It's something that God will do for us because he has no interest in destroying us. In fact, it would bring him great joy to restore even such a person and bring them to a place where they have close union with God once more. That would bring great joy to his heart. So that is the kind of God that we serve. So we should never allow sorrow and regret and remorse for our sins to make us take our eyes away from the truth of Scripture which says that anyone who goes back to God will be forgiven. Never ever forget the truth that is there in God's word. So let Godly sorrow lead us to repentance and restoration. It is worldly sorrow which leads us to complete despair where we think that the only solution is killing ourselves. Or just going back into the world and just living in the world because now there is no hope. God doesn't want you anymore. All those are our negative, evil, Satanic ways of responding to the sorrow that we feel over sin. So rather we should have a Godly sorrow where we commit ourselves into the Lord's hands and say, Yes, Lord, I am coming to you because I believe that you will still forgive me, that you will still restore me. We have another example of sorrow. I am not sure to what extent this would pertain to everyone. But I just wanted to touch upon this because there are people who kind of experience this. We do something really terrible, really sinful and the consequences of that are very great. Not only are we affected, family members are affected, the church members who looked up to us and trusted us, they too are shaken and hurt and all of that. And at that time, there are some consequences which cannot be reversed. And at that time, how do we just submit ourselves under God's hand? So I think there is some relevance and maybe we could touch upon that. So maybe we can look at 2 Samuel chapter 12 verses 15 to 23. 2 Samuel 12, 15 to 23, if someone could... Yeah, and it's a rather large chunk. Maybe we can have... Okay, maybe we can read out 2 Samuel 12, 15 to 17. Yeah, 15 to 17, if someone could read out. 2 Samuel chapter 12 was 15 to 17.  And it became David therefore treated with God for the child and David fasted and went in and lay all night on the ground. So the elders of his house arose and went to him to raise him up from the ground. But he would not, nor did he eat food with them. Okay, so David has done something very sinful. He has confessed his sin. He reaches out to God and says, Lord, I do not want to lose your presence. Change me, help me, is cried out for all of that. But there are consequences.  And David, because he has understood the heart of God all his life and knows how merciful God is, how gracious the Lord is. Even now David is hoping that maybe God will know, will relent and allow the child to live.  And he's just lying there, prostrate on the ground. They say, at least get up and sit up. He says, no, I'm just going to keep lying over here. I want to humble myself before God and really admit that what I have done is so terrible. And if the Lord can just have mercy upon the child and spare him. So that is his whole attitude in this situation. And then of course on the seventh day we get to know that the child dies. And it says over there in verse 18, it says, David's attendants were afraid to tell him that the child was dead. Because for seven days David had probably not eaten anything. Probably just had been living on water and maybe they might have given him some fruit juice or something. And he's just survived in that manner. And he's in a really terrible condition. So they are scared. What will he do when he gets to know that the child is actually dead and that God did not answer his prayer? What will his response be? And in fact it's clarified over there at the end of verse 18. The way it says, they say he may do something desperate. What if he tries to commit suicide? What if he tries to die? Because he's not able to bear the pain of God saying no to his prayer request. And then it says in verse 19, when David sees them whispering among themselves, he realizes what has happened. And he understands the child is dead. And then we look at the correct response to what God has done. Verse 20, what a beautiful verse. If someone could read out, 2 Samuel 12 verse 20. 2 Samuel 12 verse 20. So David arose from the ground, washed and anointed himself and changed his clothes. And he went into the house of the Lord and worshipped. Then he went to his own house and when he requested, they said food before him and he ate. Okay, so here David doesn't go into the temple of the Lord wearing sackcloth in his terrible condition. Because for seven days he's just been lying over there in God's presence, hoping that God will change something. So now when he actually goes into the temple, he does it in an honorable way. He cleans himself up, he washes himself, he puts on lotions, all the things which a king would put on. So he changes his clothes. And so in all dressed up and looking good, he goes into God's presence to honor the Lord. And it says over there, he went into the house of the Lord and he worshipped. Okay, so he worships God, he submits to what God has done.  And the people are very surprised to say, why are you acting this way? Because when the child was alive, you were fasting.  And so he just says, I did all that because I thought maybe the Lord would have mercy and saved the child.  His whole attitude is, Lord, you have your way. Okay, so while he still had hope, he did what he could from his side. He really fasted, he really prayed. He hoped that God would spare him the consequences of the terrible sin that he had done. But then once God gave his final decision, he so beautifully submitted to God's final decision. No more sulking, no more mourning.   He has chosen to honor God by accepting God's decision and saying, okay, Lord, let your will be done. You have your way. And so he doesn't allow his sorrow to turn into a worldly sorrow. There is grief that he feels for his child. There is pain that he is feeling. That is there. It's genuine.  It has not grown into all of those negative things because that's one thing which can happen when a person sins and they have done something very terrible and the consequences are very great and you cry out to God because you have heard sermon after sermon about how merciful the Lord is and you are hoping that God will just wave a magic wand and make all the bad side effects of your sin go away and in cases where it does not happen, you have to accept Godly attitude and submit to him and say, Lord, let your will be done and you need to lay aside your mourning. You need to lay aside the pain that you feel and say, yes, it is true in my heart and I will probably go on feeling pain for a while longer but I am willing to get healed. I am willing to let you work in me and start putting your joy inside me once again.  No, that would be a very very wrong attitude and so here we see this man who submits himself to God he in fact honors God by wearing perfumes and going into his presence and not going over there in sackcloth in one desperate state but rather as of declaring and saying, I know that I still have a future in you. I still know that I have a hope in you. I still know that you are for me. I still believe that you will build me up. So you see it's got none of the Judas story over here. Judas just gave up complete despair and that's worldly sorrow. David does not give up even though what he had longed for did not happen. He continues to believe in God. He continues to trust God and honors him with the right attitude and that is so important when we are talking about repentance we choose to submit to the Lord and say, Okay, Lord, this is your way of dealing with what I have done with the sin that I have done. So be it Lord.  Not crush me. That is one basic truth. God always wants to build us up. He of course wants to correct us. He wants to discipline us. He will in fact allow us to go through painful things that till we learn our lesson. He will do all of that, but it's always with the goal of building us up never ever to destroy us or crush us. And David understood this and he honored God by accepting this and going to God in an honorable manner and saying, Yes, Lord, I worship you because I know that you will do what is best for me. He did not lose hope. It's very, very important that we must not lose hope in the Lord after we have sinned and gone away. So true repentance will continue to retain hope in God. So that which is why when Jesus comes to Peter at the very end of the Gospel of John and Jesus says, feed my lambs, take care of my sheep. When Jesus says those things, Peter's not sitting over there and saying, I'm done. I'm finished. Where on earth will you be able to use me? What feeding of lambs will I do?  Doesn't go on like that. He says, Yes, Lord, I will do it. You see, he totally believes that God is a God of restoration and he believes that God is willing to use him once again, build him up once again.  That is Godly sorrow. On the other hand, if you had sat over there by the fire saying, Oh, where will I ever change? How on earth will I ever feed lambs? You know what I am. You know what I did. No, that is satanic worldly sorrow and Peter does not display that. So we must never ever lose hope in our God when these things happen. And in fact, that's what we see in 2 Timothy chapter 2 24 to 26. Okay, someone could read out 2 Timothy chapter 2 24 to 26, please. 2 Timothy chapter 2 verse 24 to 26. And a servant of the Lord must not quarrel but be gentle to all able to teach patient in humility, correcting those who are in opposition. If God perhaps will grant them repentance so that they may know the truth they may come to their senses and escape the snare of the devil having been taken captive by him to do his will. So you see, genuine repentance always involves knowing the truth. Genuine repentance helps you to come to your senses, realize the truth and escape from the trap of the devil. So for Judas, you know, he believed in the lie of Satan. He was trapped by Satan and, you know, he went and committed suicide. On the other hand, when you have, you know, godly sorrow, which leads to genuine repentance, genuine repentance always involves a knowledge of the truth. You understand the truth of God's word and you hold on to that and you don't allow Satan to trap you. Okay, so we choose to think, okay, so when we sinned we fell away. Okay, we fell away. We betrayed God's trust. We did all of that. But now we get back on our feet and we say, I will now come back to the scriptures and hold on to the scriptures. I will align my mind with what the scripture says. Rather than thinking what Satan is saying, I choose to align my mind with the word of God because the word of God is truth. And rather than believing falsehood, I choose to believe what the truth of God's word says. So an important aspect of repentance is we choose to start realigning ourselves even after having fallen away. Now we have, you know, repented. We have asked the Lord for forgiveness. He has forgiven. And now we get back to realigning ourselves once more with God's word, thinking the way God wants us to think. Thinking in line with scripture. Okay, and so this is a very important aspect of repentance where we choose to believe in the word of God, in the truth of God's word, rather than in the lies that have been, that are being told to us. So maybe another one aspect of repentance that we can talk about is, I think maybe one of the most important things that we can talk about repentance is about doing it quickly. The quicker you are, the more quickly you come back to the Lord and submit the safer you and I would be. You know, so the more we delay, the more we hesitate to come back to God, the more we think, ah, okay, maybe I'll sin for a few more days and then I will go back to God or if we say, my goodness, after the terrible thing that I've done, how do I show my face to the Lord? What words do I use? How can I even go approach him after what I did? So whether it is, you know, that love for sin which is causing us to delay or whether it is this deep sense of shame that is making us delay, it is dangerous to delay. The faster you can come back to the Lord, the more quickly you are now under the shelter of His wings and there He will protect you, there He will rebuild you. The longer you're out there, greater the chances that Satan will meddle with your mind and, you know, cause all kinds of wrong attitudes to come into your heart and then you will find it more difficult to come back to God. So quick responses I think are like really vital, really important. So there's this passage, you know, which kind of talks about that. Matthew chapter 13 verses 10 to 17, which is like a large chunk. Maybe we can just quickly go through it. Matthew 13 verses 10 to 17. Okay, so the disciples basically come to Jesus and they say, why do you, okay, the reason that we are kind of covering this particular passage is because it's there in your notes and also there's some very important learning regarding repentance that, you know, that can come out of this. So which is why we are kind of, you know, taking the time to dwell upon this. I think we will not really be able to finish our repentance teaching today itself. It's all right.  But I think these are basic important things that we need to reflect upon because these all are very practical in nature. So, you know, let's do this. I mean, let's do it how much of a time it may take. So Matthew 13, 10 to 17, the disciples come to Jesus and they ask, why do you speak to the people in parables? Because you know, it's little, the myth that we have today is that Jesus used parables to make it very, very simple for the people to understand. But that's not the fact, right? I mean, if you look in the Gospels, you realize that whenever Jesus spoke in parables, the people didn't quite catch what Jesus was saying. Only some people, the ones who genuinely were open in their hearts, the Holy Spirit would reveal the truth to them, okay? Or if they have not caught it directly from the Holy Spirit, Jesus Christ would arrange to either explain directly to them or one of his disciples would later go to the people and explain the essence of what he had actually been saying. So, in fact, Jesus used parables to hide valuable truths from all the people who are just there for the fun of it. They are there for the drama to watch the miracles and watch the fun that's going on. They're not really serious about the things of God. And Jesus regards the truths that he is speaking as valuable pearls.  Because what do the pigs do? The pigs will just trample it because they don't even realize the value of what they are trampling. So, Jesus is very, very careful that he reveals his pearls to only those who are willing to catch it, who are willing to appreciate its value. And so, Jesus says, the reason I speak in parables and the reason I don't speak openly is because the knowledge of the secrets of the Kingdom of Heaven has been given only to certain people. He later on goes on to clarify what he means by that. He says in verse 12, Matthew 13, verse 12, whoever has will be given more and they will have an abundance who does not have even what they have will be taken from them. And then he goes on to say, this is what was actually explained even in the Old Testament, he says. So, he talks about in verse 15, he says, this people's heart has become calloused.  Otherwise, they might see with their eyes, hear with their ears, understand with their hearts and turn and I would heal them. But blessed are your eyes because they see and your ears because they hear. So, the people have chosen to close their eyes. They have chosen to close their ears. They don't really want to know the truth. They just want to watch the fun of the miracles and the drama of it all and to go back home and say, this is what I saw. They're not really interested in repenting. They are not interested in changing their ways. They are not interested in submitting to what God is saying and genuinely turning away from their sinful ways. They are not interested in those things. Their hearts have become calloused. They have become hard hearted because if they genuinely wanted to understand, Jesus says, such people, they would turn around and I would heal them. But those people, they don't have that attitude. But on the other hand, he says to his disciples in Matthew 13, 16, he says, blessed are your eyes because they see and your ears because they hear. And then he goes on to say in verse 17, truly I tell you, many prophets and righteous people longed to see what you see but did not see it and to hear what you hear but did not hear it. So Jesus is saying, what I'm giving to you are valuable pearls, very, very precious. The prophets in the Old Testament and the righteous people who lived back then were longing for such things but they didn't receive it. You guys are being given that. So a very, very great privilege is being bestowed upon them and so he says, it's specifically to you people that I'm revealing these things because you are open to receive what I'm saying. You're eager to act upon what I'm teaching you.  So when Jesus sees that eagerness in a person, it makes him want to give more and more to that person. On the other hand, if we have this casual attitude and say, yeah, I know what's such a lovely message that I heard over there in the church and yeah, my heart felt touched. But yeah, when I'm on time permits, I'll get around to it. I know I'm supposed to make some changes. Yeah, when I have the time, I'll do that. You're not valuing what is being given to you. It says over here, whoever does not have, even what they have will be taken from them. Very, very serious words spoken by Jesus directly. And so in that same, you know, following that same vein, he touches upon this topic again in Mark chapter four, verse 24 to 25. And there actually is the crux of, you know, what I'm trying to lead up to. Mark chapter four versus 24 and 25, if someone could read out. Mark four, 24 and 25. Mark chapter four was 24 to 25. Then he said to them, take heed what you hear with the same measure you use, it will be measured to you. And to you who hear more will be given for whoever has to him more will be given, but whoever does not have even what he has will be taken away from him. Yeah, not sure of the translation that you read out from, but I'm okay, it brings out that sense in another way. But this is what, you know, Jesus says in, you know, in the NKJV, in the NIV and in many of the other versions, it says, consider carefully what you hear with the measure you use, it will be measured to you and even more beyond the measure that you used. You know, so with the measure you use, it will be measured to you and even more. So whoever has will be given more, whoever does not have even what they have will be taken from them. So what is the measure that you use in accepting and acting upon God's word when God reveals something to you? Now this actually applies both to the promises of God and to the correction of God. So what is our response to the promises of God and to the correction of God? So if the Lord is speaking some word of correction, what is the measure that I use in the way I respond to it? So if my measure, the measure which I am using is indifference, okay, so I, when God corrects me regarding something, you know, something pricks my heart during my quiet time when I'm spending time in His presence, God says something and I'm like kind of indifferent. Yeah, I know it's true what God is saying is correct.  Yeah, I'll get around to it when I get around to it. So the measure that you're using is indifference. This is what God says, with the measure you use, it will be measured to you and even more. So if you're indifferent about the things that I'm revealing to you, I too will be indifferent in revealing more things to you. In fact, I will add to your measure. I will be even extra, you know, indifferent. I'll be even more indifferent. I'll be more indifferent than you are and I will stop revealing things to you. So it's kind of very dangerous because what He's offering us is something that the prophets longed for, something that the righteous people longed for in the Old Testament and they did not get it. That is just being given to us so freely, so generously. So people who don't value it, they are in danger of losing even what they have. Okay, so this is something that we should take very seriously with regard to God's promises and to His words of correction. So when the Lord corrects, if we are like, you know, like the disciples who are eager to change themselves, who are eager to respond and act upon what God is saying, such people, He uses the, you know, the measure that they are using is one of eagerness. They really want to accept what is being told and they want to act upon what they are being told. So in the case of such people, Jesus uses their measure because they are eager. He is also eager to reveal more and more to them and it's not just that, you know, His is eager. He says, and even more, which means He will take an additional 10 steps to reveal to them more than they even expected. So whatever measure you're using, that is the measure that God will use with you and He'll in fact add to that measure. So it is dangerous to have an attitude of indifference when God gives us a word of correction. It is also very, very dangerous to ignore, you know, when God gives a word of promise and we're like, yeah, I know it's nice promise, but it sounds a little too elaborate to believe. Should I believe it? If you have that kind of an attitude, then it's kind of dangerous because the Lord says, consider carefully how, you know, what you hear, how you hear will determine the future revelations that God will continue to give. So God appreciates repentance that is done quickly, eagerly with a longing to respond to what God is saying. On the other hand, if we have a very casual attitude, God will also use the same measure. He will be casual in his future revelations to us. So because these are not potatoes and tomatoes that he's, you know, dealing out to us. These are the very words of a divine God containing divine power in them.  Gosh, this noise level is really bad over here. I'm just so glad that our class is almost done. Yeah, all right. Okay, we will be there are just a few more things that we need to deal with, you know, with regard to repentance. So we will cover those things in the next class. But maybe for the midterm exam, we will only have the portion which has been covered up to, you know, now. So if you were to, in fact, think about your notes, you know, the textbook given to you, that would be up to chapter eight of repentance. All right, so for your midterm exam, you will have up to chapter eight of repentance, right from the first beginning, right from the section on holiness from the first chapter there, up to the repentance section, chapter eight of the repentance section. So for your midterm, that would be the portion. And yeah, all the very best to know, even as you work on that. So let's just close with a word of prayer for now. Yeah, Lord, we just thank you so much for today's class. Thank you, Lord, for the practical learnings that we could reflect upon regarding this whole subject of repentance. Lord, give us hearts that are eager to know your word, that are very, very eager to respond to you. And Lord, I pray that because we have that kind of an eagerness in us, that would, you know, make you want to give us even more so that we can walk deeper and deeper into who you are and become more and more like you, so that we will literally reflect your holiness, Lord, in the way we speak in the choices that we make in our very mind, which is getting renewed day by day. I pray, Lord, that you would do all of this for us. So we just commit ourselves into your hands and also, Lord, bless the students and be with them, even as they work on the midterm assessment. Thank you, Lord. In Jesus' name, amen. Amen. Thank you so much. And yeah, we'll meet again next class. Thank you so much. Thank you, ma'am. Thank you.


We back what's going on guys my name is Jack the bus you can call me I should have been walking back to a brand new video today We have episode two of our to do to Kaisen watch through names for myself the guys last episode the series kicked off with a lot I actually went back and watched a little bit of the first episode after I reacted to it I think I kind of understand about already had some stuff grounded We met a protagonist or I assume is the protagonist it's a Dory he ran a sort of ghost hunting type club with his two friends I don't remember their names. I don't even know they survived We kind of got an idea that this world that they live in some things are inherently cursed or they're protected I don't know. I think we're gonna get more information this episode the first episode started off What I believe this episode is gonna have is this guy gojo with the Blindfold and it started with him with it's a Dory kind of captured He said you have been chosen to die I'm guessing it's because the episode ended with it's a Dory taking that curse and now he's kind of split There's part of him in it and part of whatever the they named the monster like this ancient soul in him Kind of like a curse mark. So I'm guessing that fushiguro and gojo were basically like yeah, this this isn't worth it If he stays alive, that's gonna that thing's gonna take over eventually and just kill everybody guys We're gonna hop right into if you need a channel chop a sub hit that big blue bell So you don't miss any future episodes. So if I like on this one, let's just hop right into it Jujutsu regulations Oh, it's going away, but how much control does he have over it?   It was unprecedented. He had to He's so casual Sukuna was the yeah, so the name of like the curse or whoever it was What is he gonna beat it out of him, I'm the strongest Megami that's easier to pronounce in fushigudo. Don't mess up his groceries I actually really like gojo's character.   I'm wondering if gojo does like the hand sign thing that fushigudo did too with the dogs So now it's the curse talking. Oh My gosh, he woke up in like that room where I believe it was sealed so the curse couldn't activate or whatever Almost in he said come back to me in 10 Gojo's got this curse his number He can only take over for 10 seconds soundtrack is really good He can It's a chief Now he's gonna wake up in that and I guess I do that rooms like a seal room because there was the same looking seals that were wrapped around the finger I Won't kill him Vessel oh like to carry the curse He's special he saw beforehand how insane it's a door he is It's worth the other two students in the ghost hunting club alive Dude, I love gojo this guy's so cool.  It's like on his face. Oh Oh, don't trust I think I think he's good She's like what Well, I'm guessing he said yeah, I'll find them all on the die I'm surprised they just let him be alone though. I guess they trust him He called in the big guns Yeah, well, like I said, I mean he thought to those words that his grandfather said to push himself to go in Is gojo the one he called in Oh Wouldn't it be like the more he consumes of Sukuna the more he becomes Sukuna and like would be harder to keep control over himself. I don't know Yeah That's so gross At least he does it without a without chewing or anything. Yeah, so well, they have to fight like every single time he consumes one This is like the most powerful one that they're they're trying to get under control Sukuna is where it's just one Why does he wear that is he does he not have like maybe he's blind? He took a second one seems okay Why can't I just consume them all and live all for his grandpa That's kind of depressing especially considering how wholesome of a character Isidori is a fun hell Oh shoot, he gonna learn some skills, baby Wait, but if he learns more The third if he learns more this Sukuna inside him like inherit those those skills. I'm interested to see how a lot of this plays out So there's only there's only two other students. He's the third. I just wanted to see what kind of crackheads they've got up at this school Only one of two Ah, they do secret training That's a pretty school, man Who the kaisen is did you do kaisen? Is this the name of the school?  Yeah The world would be in chaos I love gojo's confidence. He's like I could take him on it's not a big deal, but it would it would be a little bit tiring I don't have room for it in my schedule 8 minutes Is he knitting What a contrast I like his glasses.  Yeah, I guess because like he could be inherently just searching for the power for it No, I don't know I think they were I guess not that is so cursed But that's how he actually feels it seems like he's like oh family member that changes everything What is this school? This is the weirdest parent teacher meeting I've ever been to Not for yourself. He's saying live for yourself. I feel violated The contrast between that doll and him Maybe he inherently is This guy's like a therapist dude. He's trying to like crack him open God dang dude, they were talking This is Puffin Why do I feel like his grandfather was low key a jiu-jitsu sorcerer Yeah, way better Maybe this he feels only he can do Yeah I mean even gojo said the higher ups haven't seen someone that could be this vessel for them Oh It's a door he's so wholesome bro. So pure I did gojo's already my favorite character And just after that first like whole scene and when he took the pictures he's like oh my students would love this Hi pass that's what he wanted to hear He's doing it for his own reason now So come on He's hanging his little posters. Oh my god, it's a dory Shameless I love how that's the first thing he puts up to He's like I got one. How do they find them all? Yeah So who put that one in the wrapping in that box at the school I'm still a bit confused on that I guess that makes sense. Yeah, I was wondering how they expected him to do more but since he literally has one in him Oh You had to put him right next to me He's checking his room His face Oh shoot. Okay. So oh fushiguro is the third year. I see. All right. So who's the third? Yeah, what's up girl Dude, this outro is a banger too the animation that the song of my good. It reminds me. Uh, really heavy persona vibes Wow, wow, wow a lot more information a lot more cleared up this episode And thank goodness too because I was very confused at the end of the last one So now we have a clear cut mission for it to dory and I honestly i'm kind of down for it I know it's kind of depressing to see the end goal But I think they can figure something out to where he can get all the fingers and everything And if he can show that he can keep it under control, I feel like there's a there's a possibility of him living through it I really like all the interactions between all the characters so far as well and how we're starting to meet more And boy gojo has just shot up the list so quickly to my favorite I like his character design his attitude I'm really going to go rewatch that fight between him and it's a dory will not it's a dory But like sukuna right at this because it was very clean when it cut and you didn't see what happened And it cut back and he's just sitting on him Dude what a flex because there's been episode two of our gg sukaisu Watched the movie tie the episode down in the comments below There's always hope you guys have a wonderful rest of your day as per usual. I'm gonna catch you in the next one. Peace. Peace


My name is Lorenzo Martinico and I'm here to present Steel, a Composable, Hardwood-Based, Stateful and Randomized Functional Encryption for PQC 2021. This is a joint work with my collaborators, Prama Bototia, Mark of Colvice, and Yannis Siliconis. Over the past 20 years, the Cloud computing paradigm has taken a halt across the industry. There are many advantages to using the Cloud, such as increased inefficiency and usability, especially when it comes to deploying large-scale machine learning models. However, as a consequence of using the Cloud, when a client uploads their data, they lose control over it. As a motivating example, take the problem of detecting fake news in encrypted messages. When a user receives a suspicious message, they either have to evaluate by downloading a heavy machine learning model under client, which is inefficient and does not allow a way for the user to provide some feedback to the wider community, or they can decrypt their message and upload it to the Cloud for analysis. This is the consequence of revealing the user's entire correspondence to the Cloud. A potential solution is that of deploying public key functional encryption. This primitive provides a general notion of private data analysis, where while the user's input remains secret, the output of a function is revealed publicly. Thus, a decryptor can be authorised to compute some function in a way that the user's inputs remain private. Let's look at how the primitive works into bit more detail. We have three parties, Alice, who wants to encrypt some data, Bob, who is a potentially malicious decryptor, and Charlie, a trusted authority. Charlie initialises the primitive by generating some public parameters and sends them to Alice. Bob can request de-authorisation for decrypting a function f from Charlie, who provides a functional key. Now Alice can encrypt a message x using the public key and send a cybertext to Bob, who runs the decryption algorithm to produce f of x for the function that'd been authorised to decrypt, without ever learning the value of x. While the primitive fits well within our problem setting, there are some limitations currently, especially when it comes to practical implementation. There aren't many functions that we are able to efficiently compute today. These are limited to inner products, mostly, and if you'd like to embed this primitive within a larger protocol, we can't rely on composability in the standard model, but have to use other assumptions, such as the random oracle model. A potential solution to these issues is that of using trusted execution environments. These are modern extensions to CPU architectures that increase the security properties on the host. In particular, this is a good fit as in 2016, Fisch et al. realised a functional encryption protocol using trusted hardware. Our contributions in this paper are that of generalising functional encryption to provide additional functionalities, which includes stateful and randomised functions. We also extend the RM protocol to compute Fesser functions and formalise its security under the UC model of pass ed al 2017, which we call PST. We then relax the PST model to capture additional adversaries. Thus, we have our protocol steel, which is composable as it uses the UC model of PST, hardware-based as its security relies on trusted execution environments, and competes stateful and randomised functional encryption. Let's examine the Fesser functionality in a bit more detail. We still have Alice, Bob and Charlie in the same roles as before, and an ideal functionality Fesser, which holds some state. Here, at first, the state is initialised to null. Charlie can authorise a function F for decryption, and Alex sends her first message X0. The functionality then samples randomness, computes F over Alice's input and state, and produces both an output Y0 and the new state S1. Bob is only sent the output Y0. Next, Alice uploads a new ciphertext, a new message X1, and again, we compute the function F over X1 and S1, which produces a new public output Y1, and updates the state to S2. The properties for this primitive are confidentiality and correctness. The former entails that Bob, our malicious party, can only learn the output of authorised functions. In particular, it won't be learning the state either before or after the function application, nor the input or the randomness. For correctness, we mean that the state, at any point during the computation, is determined by the sequence of previous decryptions for that particular function, for that particular instance of Bob. So the only way for some Bob to influence the value of the state is that of providing different input sex to its decryption functions. Let's look at the architecture of trusted execution environments in a bit more detail. A TEE allows a host machine to instantiate one or more enclaves, each of which is running a program P, where the contents of the enclaves are kept secure from other processes running on a machine, including an adversarial operating system. In particular, an enclave provides confidentiality as the host is not able to observe the behaviour of the enclave in terms of its code, nor the data it's accessing. The enclave also provides integrity by generating an attestation, which corresponds to some kind of cryptographic signature over the program being executed within the enclave and the output it produces. The details of the many different architectures for trusted execution environments can be nicely abstracted through the UC Global Functionality GAT implemented in the PST model. It has a simple interface, where at first the manufacturer can initialise the functionality by producing some public parameters, and each party within the protocol, regardless of their access to trusted execution environment machines, can get the master public key. Then for a machine that does have access to a TEE, they're able to install a program on the machine, which generates a unique enclave, or they can resume an enclave, addressed by its enclave, by giving it some input. This executes the program for the specific impit, and returns both an IPID value and a signature sigma, which corresponds to attestation. Let's examine the iron and steel protocols. The two protocols are very similar, although they compute different kinds of functionality. In both, we both have Bob and Charlie, as machines equipped with SGX or a trusted execution environment. The encryption phase simply corresponds to public key encryption, for which the key material is kept secure storily within different enclaves, and only exchanged after the enclaves that have attested to each other that they're valid. Functional keys correspond to signatures over some kind of function representation, for which the enclaves check whether they're valid. Let's look at the steel protocol. Each party in this protocol is equipped with a CRS. We begin by having Charlie generating some public key encryption parameters within its key management enclave, and returning the public key to user space. This is now sent to Alice for future encryptions. Bob attests the fact that he is running a genuine decryption enclave to the key management enclave in Charlie, who in returns sends the master public key and master secret key for the PKE schemes. Now Bob can request authorization for computing some function f, for which he receives a functional key, which corresponds to an attestation signature over f. This is one of the instances where steel in Darren, the barge, a siren utilizes a distinct signature scheme. Now Alice generates a ciphertext for some message x, and a plain text proof of knowledge that she does have access to both x and r at the time of encryption. She sends these values ct and pi to Bob for decryption. Now Bob initializes, if he hasn't already, a functional enclave for the function f that he wants to compute. This enclave is created with initial state null. The functional enclave sends an attestation to the decryption enclave to convince it that it is actually a genuine functional enclave for the function f. And the decryption enclave returns the master secret key to the functional enclave, only if it received a previous attestation signature for f. Now the functional enclave verifies that the plain text proof of knowledge for the ciphertext is valid, and decrypts the ciphertext using the master secret key it received. It then can evaluate the function over the original message and the state, which returns a public output y and the new state that he can use to update his functional enclave. A proof is in the uc with global subroutine setting, an extension over modern uc, which includes global subroutines as part of a plain uc protocol. As with all uc proofs, we're trying to construct a simulator in the ideal world on the right hand side, which can convince the environment that is communicating with the protocol on the left hand side in the real world, whereas it's actually just communicating with the ideal functionality. Because of the addition of the global attestation global subroutine, we have to set an entity bound on which parties can communicate with the GAT functionality. In particular, in the challenge session, we only allow an adversarily corrupted party to communicate with GAT. In our case, this is limited to b. This allows us to control all communications between GAT and the environment through the simulator. Since both Bob and Charlie in the real world require access to the global attestation functionality, we're then forced to run both Bob's and Charlie's enclaves under Bob. Luckily, because we're using anonymous attestation, we do not produce a trace that Bob is actually running the key management enclave. And because Bob is completely controlled by the simulator, they're not able to report that they're running Charlie's enclaves as well. To successfully simulate a state-filled functionality in the ideal world, we are required to pass all possible inputs to the decryption function through FESR, so that its state continues to update. If the environment uses to encrypt a cipher text using the public key encryption scheme, this would be fine in the real world, as Bob's functional enclave is allowed to decrypt using its master secret key and can then evaluate the function. However, in the real world, the FESR functionality does not have any notion of the public key encryption scheme. Thus, we introduce a plain text proof of knowledge to be sent along with a cipher text in our protocol so that the simulator is able to use its raptor to extract the original message from the proof and can pass it to the ideal functionality for evaluation. Additionally, because in the real world, the evaluation of a function is conducted by an attested enclave, the environment might expect us to request the attestation signature for evaluation. This is easy to provide in the real world protocol, but in the real world, the function output is produced by the ideal functionality and this does not attest it. To resolve this issue, we leverage a solution presented in the original PSD paper, whereas we insert an intentional factor in the evaluation subroutine. This factor allows us to sign arbitrary messages, which you can then present back to the environment. The insertion of the factor in the real world does not impact security because Bob is in control of the function code and thus will be able to distinguish whether the value of the function evaluation is authentic or not. Our proof relies on several cryptographic assumptions, in particular the attestation signature is existentially enforceable, the secure channels between enclaves are CCA secure, our plain text proof of knowledge is simulation sound extractable and the encryption scheme used for message encryption is CPA secure. For all these assumptions, we have a corresponding hybrid and reduction in the proof. We also model the addition of rollback adversaries to the global attestation functionality. These adversaries are able to conduct both two kinds of attacks, rolling and working attacks. We modify the global attestation functionality so that rather than storing a single state, it stores a tree of derived states. In the honest case, this will look very similar to a length list as in the figure where between each evaluation, the memory simply advances. However, a corrupted party can specify whenever they resume the enclave, an arbitrary location in the tree to resume the call from. Take as an example an enclave that is storing some kind of ledger. For each transaction, the ledger state will advance. However, if an adversary is trying to produce a double spend, they will be able to roll back the state after they have conducted their first transaction into the original state, which takes their balance back to what it was before the transaction took place. This is a rollback attack. Alternatively, they're able to maintain two different histories of the ledger concurrently. This allows them to show a different balance to any party that might be trying to interact with the ledger. This is known as a forking attack. Several mitigations have been proposed in the literature to address this kind of state continuity issues. The Intel SGXTE provides a set of hardware monotonic counters that can be used to sync the state of each enclave. However, these counters are quite slow to use in practice and are vulnerable to wear levelling. An alternative, more efficient formulation is that of asynchronous counters which need to be synchronized less frequently than the monotonic counters. However, only protocols where the history between each countersink can be reconstructed are suitable for this defense. Other papers such as Rote and Lightweight Collective Memory have devised network protocols where the security relies on communicating with other remote parties and guarantees are dependent on threshold security. However, these incur quite heavy costs. Of course, another way to avoid rollback and forking attack is that of building stateless enclaves where between each execution of the program no state is held. This is what the iron protocol achieves as there is no significant state held in between each of the deterministic computations. Iron is secure against these kind of attackers. When it comes to steel, rollback protection can be achieved by simply adding it to the decryption enclave. This can then establish a protocol with each of the functional enclave to check that their counterbodies are fresh. This allows increasing efficiency as any of the above measures would be quite costly to implement for all enclaves in the protocol. In conclusion, our paper tries to answer three main research questions. How to strengthen functional encryption to compute a larger class of functions in an efficient manner? How to best model cryptographic protocols that use trusted execution environments composably? And what are the limitations of trusted execution environments if we introduce rollback and forking attacks? Thank you for listening. You can call me at this email and the full print paper is available at the link below.