Let's open our Bibles to Job chapter 29, Job chapter 29. We're going to look at the chapter today as we continue our series through the book of Job. We'll begin reading at verse 1. I'll read to verse 6 and we'll get into our study. Job chapter 29, beginning at verse 1, reading to verse 6, Job further continued his discourse and said, O that I were as in months past, as in the days when God watched over me, when his lamp shone upon my head, and by his light I walked through darkness, just as I was in the days of my prime when the friendly counsel of God was over my tent, when the Almighty was yet with me, when my children were around me, when my steps were bathed with cream, and the rock poured out rivers of oil for me. So as we get into chapter 29, we need to remember that Job has just given a long speech about the origin of true wisdom. And as he was speaking, he spoke and asked the question, where can wisdom be found and where is the place of understanding? And so what I want to do is I want to go back a little bit into the last chapter and use that as my platform and then move into chapter 29. I want to speak a little bit about that and develop it a little bit further because as he was asking this question, where can wisdom be found and where is the place of understanding, he went on to say a few things. He said it can't be found in the land of the living. It can't be found in the deep and it can't be bought. He said wisdom's value is greater than silver, it's greater than gold, it's greater than precious stones. He said it was hidden from the eyes of all the living. And then as he was speaking concerning that, he said that God understands its way and God knows its place. And in verse 28 of chapter 28, he went on to say, and to man, he said, behold and I want to develop this, the fear of the Lord, that is wisdom and to depart from evil is understanding. And so in the Scriptures, the term the fear of the Lord is a way of describing something that people don't believe in today. Many don't. It's a way of describing what has been called true religion. Now the phrase true religion, the phrase true wisdom, it speaks concerning that which is religiously true. And that's something that many have trouble with today, understanding, because a lot of people believe that all religious faiths are the same and that there's no such thing as a true religion. But that's not what the Bible teaches. The Bible teaches that there is that which is true and then there is that which is not true. That is false. And that's why the Bible speaks of true teachers and why the Bible speaks of false prophets. False prophets preach false messages and because they're preaching a false message, they lead people in the wrong direction. And you see a lot of that kind of speech, that kind of teaching in both the Old and the New Testament. One of the good examples that you'll find of where a prophet is speaking concerning true and false when a true prophet is speaking of the false is found in the book of Jeremiah. Jeremiah being one of the Old Testament prophets. And he was speaking concerning false prophets and he spoke concerning the fruit of their teaching. So if you take notes in Jeremiah chapter 23 verses 1 and 2, now Jeremiah said this, listen, he said, Woe to the shepherds who destroy and scatter my sheep, the sheep of my pasture, saith the Lord. And therefore thus says the Lord, God of Israel, against the shepherds who feed my people, you have scattered my flock, driven them away, not attended to them. Behold, I will attend to you for the evil of your doing says the Lord. In the same chapter in verse 16 he went on to say, thus says the Lord of hosts, do not listen to the words of the prophets who prophesied you. They make you worthless. They speak a vision of their own heart, not from the mouth of the Lord. They make you worthless. What do you mean by that? They fill you with error. And when you're filled with error, I can't use you for anything. Jeremiah 23 went on in verses 21 and 22 to say, I haven't sent these prophets yet they ran. I haven't spoken to them yet they prophesied. But if they stood in my counsel and had caused my people to hear my words, then they would have turned them from their evil way and from the evil of their doings. The false prophet preaches with a false wisdom and leads people in the wrong direction. And so as Christians, we know that there is such a thing as true religion. And the Bible defines true religion as a personal knowledge of a personal God. The Bible speaks concerning a genuine and experiential knowledge of God. There are people who have a theoretical knowledge of God. They're able to speak about God, things about a God. They have a theoretical knowledge of God. But what the Bible desires us to have, what God has called us to have is an existential and actual and experiential real relationship with Him, a genuine knowledge of God. And this genuine knowledge of God is embedded in an actual personal knowledge of God, a personal knowledge of God that helps us to love our God. Again in Jeremiah in chapter 9, verses 23 and 24, the prophet said this. This is what the Lord says, let not the wise man boast of his wisdom, or the strong man boast of his strength, or the rich man boast of his riches. But let him who boasts boast about this, that he understands and knows me, that I am the Lord who exercises kindness, justice, and righteousness on earth, for in these I delight, declares the Lord. God exercises kindness, justice, and righteousness on earth. And true justice is always going to be righteous. So knowing that God loves us and knowing God in an experiential way is going to actually bear some fruit. Now I want to lay this out as my foundation too, I want to continue on with this. So knowing God results in a life of obedience, a life of holiness, a life of fellowship, and a life of security in the Lord. Because these things are really what would be called the fruit of the fear of God, even as he had said, the fear of the Lord, that is wisdom. And so knowing God results in obedience, like it says in Psalm 111 verse 10, the fear of the Lord is the beginning of wisdom. A good understanding have all they that do his commandments, his praise endures forever. Well like it says in Ecclesiastes chapter 7 verse 12, wisdom is a shelter, as money is a shelter. But the advantage of knowledge is this, that wisdom preserves the life of its possessor. And so knowing God results in a life of obedience, we fear the Lord and we depart from evil. It also results in holiness. Now when you look at the word holiness, there are a lot of people who have a problem with that. The root word for holiness is a word that speaks of being separated. Something is holy when it's separated and dedicated to God.  You had people who were separated to God. So holiness at its root speaks of being separated to God for his service. And because God is holy, separate from sinners, man is to be holy. And we do so by getting saved and living by his word. Like it says in Proverbs 3 verse 7, do not be wise in your own eyes, fear the Lord and depart from evil.  It's like what Paul said in 2 Corinthians 7 verse 1 when he said, having therefore these promises dearly beloved, let us cleanse ourselves from all filthiness of the flesh and spirit, perfecting holiness in the fear of God. So knowing God results in a life of obedience, a life of holiness, and it's with that understanding that we pray and we ask the Lord to do that work in our heart. Like the Psalmist said in Psalm 51 verse 10, creating me a clean heart, oh God, renew a right spirit within me. And then it also has the fruit of fellowship. Now as I was thinking about this today, the fear of God actually results in our fellowship with him and our fellowship with God also helps us to develop real relationships with other people, something that is called in Scripture, Koinonia, it's called fellowship. Fellowship isn't just enjoying somebody's company. There are people who say, yeah, you know, it's Super Bowl Sunday, we're going to have time of fellowship. And well, not really, no, no, no, it's a religious service, we're really going to. And we're going to have communion. We're going to have chips and salsa, it's going to be great, you know. But fellowship is deeper than sitting down and enjoying a game. I like doing that if the game is a game that I want to see, I like doing that. But it's more than simply hanging around or being around people, listen, fellowship is actually participating in somebody else's life. If there's anything that we're seeing right now that is causing a lot of pain. And a moment ago, Dave was sharing about in the announcements a few things, and he was so right when he said that there's a lot of lonely people right now. I'm encountering people that haven't been in fellowship, that haven't been to their church, haven't been to our fellowship, their church.  Sometimes they actually tear up because they haven't seen their friends. And I was a guy who was from the old days, old days of Calvary Chapel, old days of Maronautha music, who was sharing recently about how that he and his wife have moved from California, which is the place that they've been living and serving in for many years, and they moved to another state. And he was saying, I was talking to my wife about this just this night. And he was saying how that he thought that by being in contact with people through social media, that he'd be fine, you know, Facebook or whatever other, there's so many different platforms you can use now, Instagram and so many others. He said, I thought that I would be still connecting with people, he said. And so now we're away from our family, we're away from our friends, we're living in another state. He said, and they basically are keeping us isolated. And he said, I never really understood the true value of relationship. And this is a guy who's been walking with the Lord 40 to 50 years. And he said, I never really understood the value of true fellowship until now because I'm not getting any. I'm not able to visit with people. I'm not even able to hug even as once again, Dave was sharing, you know, our mirror was saying, give me a hug. It's because we need that personal touch. We need that. Fellowship is more than simply sharing information or sharing a meal. Fellowship is sharing lives. And when you have the fear of the Lord, the fear of the Lord also informs you concerning how valuable it is for us to depart from evil and to have relationship with those who have also chosen to follow God. And so it's not just attending events. It's participating in other people's lives. It's like what it says in John 13, 34 and 35, where Jesus said, I send a new command, but I give to you that you love one another just as I have loved you. You also are to love one another. You went on to say by this, all people will know that you are my disciples. If you have love, one for another. It's not simply the agreement that we have, which we ought to have, the mental agreement of certain doctrines, certain teachings that are essential, and we agree we ought to do that. But it goes in a deeper level in that we participate in one another's lives and care for one another. I think that church for many people has the idea of church as kind of like taking a back seat in the sense of people will say, well, I go to church and they forget that they themselves are the church. And that this is only a building that we're in right now. But you guys are the church. And we need one another desperately. One of the things you may want to do in your own devotional life is just take some time. If you can get a concordance, you can get concordances. They're online. And just look up the words one another. Just look up the words, especially in the New Testament. Pray with one another. Exhort one another. Love one another. There's so many words, so many verses that you can find that contain the words one another because Scripture teaches us that we're family. And so the fear of the Lord teaches us to stay away from evil. But it also causes us to participate in the lives of other people. And as you do so Ephesians 521 says to us that we submit ourselves one to another in the fear of God. And then finally, the fear of the Lord produces security. Proverbs 1427 says the fear of the Lord is a fountain of life, turning a man from the snares of death. The fear of the Lord is a fountain of life. Solomon was the wisest man on the planet. And he was rich beyond imagination. In spite of all his wisdom, as you read the book of Ecclesiastes, you see that Solomon sought for experiences, experiences that would satisfy him. And as he writes in the book of Ecclesiastes, Solomon says that I've experienced every pleasure you can imagine. I've experienced the pleasure of wine, building projects, riches, power, sexual relationships. In Ecclesiastes chapter 6 verse 7 he said all the labor of man is for his mouth and yet the soul is not satisfied. In the 222 verses of Ecclesiastes, Solomon finally concluded in this way. He said in Ecclesiastes 12, 13, and 14, let us hear the conclusion of the whole matter. Fear God, keep his commandments, for this is the whole duty of man. For God will bring every work into judgment, including every secret thing, whether good or evil. After all of these verses, over 200 verses, what is the conclusion? What is it that I'm summarizing? What sums up everything? What is the purpose of life? What should I do? Fear God, keep his commandments, that's your whole duty. So wisdom, Job had said in chapter 28 verse 28 to man, he said, behold, the fear of the Lord, that is wisdom, to depart from evil is understanding. And so with that said, Job said that wisdom begins in the fear of the Lord. And it's by the fear of the Lord that one departs from evil. So he continues now by saying that he had once been very blessed and very happy. He's basically beginning by saying, I was once a great man, now look at me. So Job verse 1, chapter 29, Job further continued his discourse and said, Oh, that I were as in months past, as in the days when God watched over me.  Later in chapter 7 verse 20, Job had said, have I sinned? What have I done to you, O watcher of men? Why have you set me as your target so that I'm a burden to myself? He's under God's pain, and it seems it'll never let up. In Job 7 verse 3 it says that he'd been allotted months of futility and weirsome nights. He's under stress, he's under sorrow, and it's unbearable. And so that's why he says, that's why he speaks of what he at one time had been experiencing in verse 2, all that I were as in months past in the days when God watched over me. I think of how it once was, and I wish that I could return to those times. Those were days that I lived in comfort. I had my children around me, I had my wife. He says in verse 3, his lamp shone upon my head, and went by his light. I walked through darkness. Those were days when God preserved me. Those were days when God ministered to me. Those were days when God preserved me from the pain that I'm now suffering. In those days, you were my friends, you respected me. You wouldn't even have thought, you wouldn't have dreamed to come here and lecture me. His light had shone upon my head. My prosperity had come from God. He speaks of how God's light had guided him, how God had enlightened him, how God had protected his walk so that he didn't stumble in the dark. Because the Bible contrasts walking in darkness and walking in the light in a very, very clear way. To walk in darkness speaks of walking in a sinful way. It's like what John 1235 says when Jesus was speaking, and he said, the light is among you for a little while longer. Walk while you have the light, let darkness overtake you. The one who walks in the darkness does not know where he's going. So walking in darkness speaks of walking in the wrong path in a sinful way. But in contrast, the believer is one who walks in light. Psalm 5613 says, you have delivered me from death and my feet from stumbling that I may walk before God in the light of life. And again, in John 812, Jesus said, I am the light of the world. Whoever follows me will not walk in darkness, but will have the light of life. So he said, I walked. I walked in his light. And by doing so, I was protected from hidden dangers. Proverbs 418, the path of the righteous is like the light of dawn, which shines brighter and brighter until full day. I walked in his light. You protected me. Verse four, just as I was in the days of my prime, when the friendly counsel of God was over my tent, everything I did was blessed by God, my family, and I, my tent. We were so abundantly blessed. It was a time when God and I had friendly counsel. Notice that in verse four, sweet counsel. It was a time when God and I had deep personal fellowship. Psalm 2514 says, the Lord confides in those who fear him. He makes his covenant known to them. In Christian terms, he's speaking like when Jesus would spend time with his men. Read your Bibles and you'll see that there are so many references to Jesus walking with them or camping out with them, ministering to them, ministering with them. There are so many occasions that you see that Jesus had some deep personal relationships. They would take their long walks. I mean, sometimes you'll be reading your Bible and you have to supply the geography and all of that. It'll speak concerning the fact that Jesus was in Jerusalem. And then the next verse says, and while in Galilee, when you read your Bible, you may not realize, unless you've been to Israel, you don't realize that to go from Jerusalem to Galilee was actually a long walk. It would take days sometimes for them to get from one point to the other. And as they would walk, very often they would camp out and on these long walks and these camping trips, if you will, over campfires, Jesus would speak with his men. They would have meals together. They had shared ministry experiences. And it was in these days and in these times, when Jesus would be there seated with his men and he would have conversations with them and he would disclose the deepest teachings to them. On one occasion, Jesus was giving a series of parables. Parables that the people who were listening didn't understand. And so as disciples began to speak to him and questioned him about it, it's found in Matthew 13, 10, and 11. It says, the disciples came and said to him, Why do you speak to them in parables? Well, he answered and said to them, Because it has been given to you to know the mysteries of the kingdom of heaven. But to them, it has not been given. I don't know if anybody's ever really thought, any of us in this room have really ever thought what it would have been like to walk with Jesus, to sit down with him and let him just speak to your heart. To notice that he'd get up early and pray. It's interesting how you never see the disciples ever speak to Jesus and ask him, teach us to preach. You never see that. Nowhere in the scripture does it ever say that a disciple walked up to Jesus and said, Lord, teach us to preach. And you don't even find anything where it says, one of them walking up, Lord, teach us to work miracles. Teach us to do those things, those works that are so mighty. You never find them doing anything like that. The only time that you see a disciple approach Jesus and say, teach us. It's when they walked up to Jesus and they said, Lord, teach us to pray. They had seen that Jesus had a connection with the father and they wanted to know how to have a connection like that. And that's how Jesus would instruct them. And that's how Jesus would administer to them. They would watch them. You know, there are those who say how they can't imagine how John, the beloved disciple of Jesus, the one who refers to himself, is the one Jesus loved. And I always thought that was a bit arrogant when I read it. It's a new believer.  He loves everybody. What do you mean, the one Jesus loved? But Jesus loved him and he knew it. And he would place his head on the chest of Christ. Now, as Americans, especially American males, especially Hispanic males, especially a Mexican Hispanic male, that just doesn't do much for me. The idea of putting your head on some other man's chest.  Can you imagine that? And John loved Christ and he would place his head on Jesus' chest and he just would be there. He was so secure in his manhood. He was so secure in his relationship. And there were things that the men would experience together. You know, when Jesus spoke and said, when he was establishing what we call communion, when he was establishing that Lord's Supper, he said, do this in remembrance of me. And I've shared this before, but he said, do this in remembrance of me. It's not a call for them to remember events and things like that. It's a deeper call than that. It's do this in remembrance of me as a way of saying, re-experience the things. Some of us, I have been blessed and cursed with the ability to, when I share something that has been deep in my heart, I re-experience even as I'm sharing what I felt at that time. And those of you who've been in this church know that there have been many times, perhaps if you've been here long enough, that you'll see me have to get control of myself for a minute. And I don't like those moments. Frankly, that's not something I like about myself. But that's what Jesus taught us about remembrance. It's re-experiencing. It's going to that place again. Do this in remembrance of me. Remember this Supper. Remember what I said. This is my body. This is my blood. I'm giving it for you. Remember me. Remember us. Remember our walks that we took. Remember our talks that we had. Remember the times we laughed to with each one another. Remember the times that you've seen me perform these incredible miracles. Remember the time when the apostle Peter walked on water. And remember how he started to sink. Remember those things. Never forget them. What is this talking about? It's talking about deep in a personal relationship with God. It's talking about a real relationship in fellowship with the Lord. And there was times he says it in verse four. He said that there was the friendly counsel of God. That we had fellowship like Abraham had fellowship with God. Moses had deep fellowship with God. Abraham was called a friend of God. He says, just I had a deep relationship with him. A relationship that seems to be gone now forever. He says in verse five, when the Almighty was yet with me. When my children were around me. When my steps were bathed with cream and the rock poured out rivers of oil for me. The Almighty was yet with me. I had fellowship with God. I knew him. I had relationship with him. He spoke to my heart. And I had joy. I had the joy of being with my children. My 10 babies that were killed all at one time. That I remember the joy that I had being with my babies. When I looked at them, I had joy and I had love. And I had dreams and I had hopes for them. And they're gone. When my steps, verse six were bathed in cream, the rock poured out rivers of oil for me. When I had so many blessings, so many physical blessings that God had bestowed on me. So many. He goes on in verse seven and he says, when I went out to the gate by the city, when I took my seat in the open square, the young men saw me and hid. The aged arose and stood. The princes refrained from talking, put their hand on their mouth. The voice of nobles was hushed. Their tongue stuck to the roof of their mouth. When the ear heard, then it blessed me. And when the eye saw, then it approved me. So he says, when I went out to the gate, the gate is the city gate. It's a place where the elders, where the judges would sit to listen to cases. They actually were used in the city. Those with the greatest respect, the elders, would be there at the city and they would sit in certain like benches. When you go to Israel, you'll go to the city of Caesarea. It's now basically a ruin. But we'll go into the city gate there in Caesarea and you'll see the actual places where people, the judges, the elders would be seated. And that's what he's referring to. It's where the elders, the judges would listen to cases and they would make their rulings. It was where the most honorable men would be seated. And so he's speaking about this. I went to the gate by the city. I took my seat in the open square. Verse 8, then the young men saw me and hid. What that means is the young men, when he would walk in, would see him walking and they would actually withdraw themselves with humility, knowing that a great man was in their presence. There was a time in his day when the young actually respected the elders and when this man who's known for justice and righteousness, this man who was respected by all, when he walked in, these young men had a sense of their own inferiority to this great man and their natural response was to kind of just withdraw from him, to give him room. He was so respected. They were intimidated by him and they reverenced this man, this man who was so great and they would withdraw themselves. And by the way, that kind of respect shown to elders was later commanded in the law of Moses. In Leviticus 1932, it says, Stand up in the presence of the aged. Show respect for the elderly and revere your God. I am the Lord. In Proverbs 1631, gray hair is a crown of glory if it is gained in a righteous life. So the younger men would respect him. They'd show reverence and it says they hid themselves. They withdrew themselves is what he's saying literally. He says the aged arose and stood. Now that's an interesting thing. And when the elders of the gate saw him approaching out of respect, they stood to their feet. Job's dignity, his wisdom, his righteousness caused them to honor him, to show him great honor. Remember Job chapter 12 verse 12. Wisdom is with aged men with length of days understanding. They didn't run after the youngest. They respected the oldest. The youngest had lots to learn and a lot to prove. The aged had already done that. And so the elders of the gate would see him approaching as they saw him out of respect, they would stand. In verse nine, it says, The princes refrain from talking, put their hands on their mouths. The voice of nobles was hushed. Their tongue stuck to the roof of their mouth. So out of respect, even the princes became quiet. And the nobles stopped speaking. They stopped speaking that they might hear what he had to say on whatever subject they were speaking about. And they didn't want to appear foolish if they said something that Job would contradict. And verse 11, it says, When the ear heard, then it blessed me. When the eye saw, then it approved me. Those who heard my wisdom saw my dignity. Well, they prayed that God would bless me. But now, now he's sick. Now he's disrespected. Now he's even ridiculed. Now he's even ridiculed. In chapter 17, he had said at verse six, God has made me a byword to everyone, a man in whose face people spit. In Job 19, verse 18, he said, Even young children despise me. I arise and they speak against me. All of this that he was so used to, all of the respect and all the honor has suddenly been taken away.  Now he speaks concerning the things that his life was known for. Verse 12, I delivered the poor who cried out. The fatherless and the one who had no helper. The blessing of the perishing man came upon me. I caused the widow's heart to sing for joy. I put on righteousness and it clothed me. My justice was like a robe and a turban. I was eyes to the blind. I was feet to the lame. I was a father to the poor. I searched out the case that I did not know. I broke the fangs of the wicked and plucked the victim from his teeth. And so he begins to speak concerning the things that he's done, the righteous things that he has done. He's delivered the poor, as he says in verse 12. I was respected because not only was I wise, I was also generous and gracious. Now they had already said, you have taken from the poor unjustly, but that isn't true. And he's reminding them. He said in verse 12 again, I delivered the poor who cried out. The father's and the helpless. When I judged cases when I was there, judging, I acted with justice on behalf of those who were treated unfairly. I judged impartially because justice is always delivered with righteousness. In Psalm 33 verse 5, the Lord loves righteousness and justice and the earth is full of his unfailing love. Remember that when we hear so much talk of justice, remember that justice, true justice, is always righteous justice. And so he said, I judged in a righteous way. I judged impartially when he speaks in verses 13 and 14 and says, the blessing of the perishing man came upon me and I caused the widow's heart to be filled with joy. When the one in danger of losing his life or goods by wicked men came before me, I judged fairly. When widows were in need, I made sure that they were cared for and that resulted in them having joy. It's like what it says in James 1, 27, where in the New Testament, it says religion that God our Father accepts is pure and faultless is this, to look after orphans and widows in their distress and to keep oneself from being polluted by the world. Verse 14, I put on righteousness. It clothed me. My justice was like a robe in a turban. My judgments were righteous. Justice was my clothing. He says in verse 15, I was eyes to the blind, feet to the lame, father to the poor. I searched out the case that I didn't know. I broke the fangs of the wicked, plucked the victim from his teeth. Then I said, I shall die in my nest, multiply my days as the sand. My root is spread out to the waters and the dew lies all night on my branch. My glory is fresh within me. My bow is renewed in my hand. And so he continues to speak and the things that he's done. In verse 15, I was eyes to the blind. The blind cannot see. So I saw on their behalf. I helped them in life. The lame cannot walk. I was feet to the lame. I provided instruction. I helped them so they could live. In verse 16, I was father to the poor. I searched out the case that I didn't know. I helped those in need. I treated them as if they were my own children. When I was their advocate or when I was their judge, I searched out the law to make sure that I was fair. In verse 17, interestingly, he said, I broke the fangs of the wicked and plucked the victim from his teeth. I broke the power of those who were injuring them. I delivered them from injustice. And after doing so, I forced them to restore what they had taken.  I perform many good works.  I'm one who lives out my faith, like it says in James 2.17. Faith by itself, if it doesn't have works, is dead.  I lived out my faith. In verse 18, I said, I shall die in my nest and multiply my days.  I think that many of us, if you were to have a wish at all, it would be to die peacefully.  And I'm going to die at a rich, old age.  That's what I said. Then he thought, verse 19, my root is spread out to the waters and the dude lies all night on my branch. I was like a tree growing close to a water source. I was growing. I was nourished. And God's favor provided nourishment to me constantly. It reminds me of what Jeremiah once again, Jeremiah said in Jeremiah 17, 7 and 8, blessed is the one who trusts in the Lord, whose confidence is in him. They will be like a tree planted by the water that sends out its roots by the stream. It does not fear when heat comes. Its leaves are always green. It has no worries in a year of drought and never fails to bear fruit. I was like that fruitful tree. In verse 20, my glory is fresh within me and my bow renewed in my hand. My glory is fresh within me. My reputation over time was not being reduced. You know, sometimes you may see somebody who was a very, very well-known, very well respected as a young person.  And you can see that in the Bible. Think about it with King David when you start looking at the life of King David in the Old Testament. And you see that he's first described as being good-looking, young man, red hair, and all of that. And a man who is the sweet solace of Israel, loved to sing to the Lord, writes a lot of songs and stories and all. And you think of King David. And you think of things like when he was that young boy, young man, really not a boy, but a young man. And he goes, bringing some supplies to his brothers who were on the battle line because the Philistines were beginning to drop in battle ranks against the army of Israel. And here comes little David. Then King Saul was there. And Saul was the first king of Israel. And there he is commanding the soldiers, the military of Israel. And David comes and he sees this giant nine foot, nine inch man named Goliath as he steps out and begins to taunt the armies of God. And he says, come and fight me. I'll fight you by myself. If I win, then you become our slaves. If you win, we'll be your slaves. And he taunts him and continues to do that. We know the story, how David comes out. And he says, who is this uncircumcised Philistine? Who is he to speak this way against God himself? Oh, he got mad. He had that righteous indignation.  What are you doing here?   No, he hadn't come with that. And he said, look, I've taken care of the sheep and I've taken care of the predators that have come against us and come against them. And David says, and this man will be no different than any of the ones I've taken down. And the Bible says that he picked up five smooth stones and he went out to battle. Why did he have five smooth stones? Because Goliath had sons and brothers. There were other relatives there. So he's going to take up the family. I'm not just going to take out one guy. I'll take them all out. I mean, that was David. So you think of this boy who became king. You think of his love for God. He couldn't even go outside and sit under the stars without composing songs to the Lord. He loved him. That's why he was called a man after God's own heart. But when I say David, not everybody says Goliath. When I say David, many people say Bathsheba. Because we remember that about him, too, don't we? That he took one of his choice men. He took his wife Bathsheba, lay with her, impregnated her, and then hand Heriah, her husband, killed in battle. We think of that, too, don't we? We think of Solomon. Spent some time reading about Solomon, David's son. Solomon is the wisest man on the face of the earth. People would travel to see Solomon.  And Scripture tells us in his old age, his wives turned his heart away from the Lord. So you think of those things, too. You think of the good and you think of the bad. You think of how some people start out so well. Look at Demas in the New Testament. That's a name that most people don't memorize. Demas, traveling companion with the Apostle Paul. Demas, called by Paul, one of his fellow workers. Paul loved this guy, Demas, went on missions trips with him, highly regarded. The last thing Paul ever says about Demas is, he has forsaken me having loved this present world and has departed. Started well, didn't end well. There are many people, many people who started out well, but they didn't end well. But not Job. Job said, even as I'm growing older, my reputation really has become, is not been solid. It is still good. My reputation hasn't been reduced. The quality of my life in terms of my love for God and all, those things haven't been reduced. And I'm still able to take care of myself, my bow. I'm still able to use my bow and all of that. My bow is renewed in my hand. He says in verse 21, he says, men, listen to me and waited and kept silence for my counsel. After my words, they didn't speak again. My speech settled on Demas, too. They waited for me as for the rain. They opened their mouth wide as for the spring rain. They came and they asked advice and they listened carefully, didn't argue with me and didn't contradict me. It was like they were thirsty men and I poured water upon them and they took it all in. My counsel was valuable to them. Their plans and their desires became fruitful. That's the kind of life I lived in. And then finally, if I, verse 24, mocked at them, they didn't believe it. And the light of my countenance, they didn't cast down. I chose the way for them, sad as chief. So I dwelt as a king in the army as one who comforts mourners. When he says, if I mocked at them, that word mock means to, it's a word. I don't think the word mock is translated. The way that we would interpret it today is not exactly what the meaning was. When he says, if I mocked at them, it's like if I teased with them. Anybody who, I don't know if this is worth saying, but I'll say it, anybody who knows me, knows that if I love you, I'm going to eventually tease you. You know, if I'm around you long enough, I'm going to tease you. My kids know that. I mean, it teased them all day long.  I, those whom I love, I tease. You know, that's just, that's a scripture. I'll put it in first David, chapter one, verse three. It's true. Well, that's what he's saying.  It's teasing with them, being friendly with them. And that's what he's saying. If I, when I treat them as friends, when I'm open with them and tease them, when I'm familiar and friendly, they, they respect me so much that they, they never, they think I could never be their friend. So they don't understand. There, there, they were so respectful of me that, that they, they didn't realize that I was open and accessible to them. The light of my countenance, they didn't cast down. In other words, they were, they were careful not to become too comfortable with me, even though I was comfortable with them. And so verse 25, I chose away for them. I sat as a chief. They, they sought my advice in their difficult cases and, and they followed my advice. I sat as a prince, I sat as a judge. And they listened like a king. My presence encouraged them. And being there strengthened them to go on. There are guys, and we'll close with this. There are people in your life that you respect so much, that you actually learn from them just by watching them. We were flying home from a trip and the plane, we hit, the plane we're on, hit some very rough weather right off the coast of New York. Very rough, very rough weather. The air, you know, the little masks were popping out of the roof, the ceiling, not the roof, the ceiling, all over. People were crying. And because the plane would, would fall, it would just drop. All of a sudden it would drop and you had to be seat-belted because you would have come out of your seat.  It's the, the roughest flight I've ever gone on. And it was, we're coming home from Israel, but I still would like you to come. But anyway, it was rough. And people were crying and the Orthodox Jews came to us and said, please come into the back of the plane and pray with us. That's heavy. The Orthodox Jew will not, they don't want, they, no, but you know, we're going to die. Might as well try their prayers. You know, so, so they're asking people. I had people from our, our church who had gone to Israel. We're in the back of the plane with these Orthodox ascetic Jews praying. They were scared. And I was sitting there reading the newspaper through the whole thing. And so when we landed, my daughter, Corin says to me, daddy, why weren't you scared? And I said, because I know that God is not through with our church.  To finish what he wants to do with our church. I said, well, I'm glad you're mentioning that now, but no, but later on, just recently within the last year, my other daughter, Anna, who was on the same flight, told me something I didn't know. And she said this to me, daddy, you remember, and she reminded me of that event. I said, yeah, baby, I do.  I said, really, I didn't know because I didn't know where she was seated. They had separated us throughout the plane. I said, no, baby, I didn't know that. She said, no, daddy, I wasn't scared. She says, you know why? And I said, no, why, honey?  She said, I watched you daddy and you were not afraid. And I knew that if you were afraid, I should be afraid. And because you were not afraid, your calmness kept me in peace. That's what Job is saying. His presence was. To people. I, in my presence, would cause people to listen, to be calm, to know that the advice they were getting was solid because they saw my life and the fruit of it. And so as he's defending himself and he'll continue, and we'll go through the rest of this in the future in the next week and all, Job is just saying, I was like a king. My presence encouraged them. My strength strengthened them. That's the kind of man I am. And you are saying, my dear friends, that I have sinned, that I have stolen from the poor, that I haven't defended the widows. You know me. How can you say that about me? We'll pick up next week. Father, we ask that as we go through these verses that we would find things in them, things in them that help us to be strong in these days. And I ask, Lord, in Jesus' name, that we might see the things that Job claims for himself and say, Lord, would you make us like that? May we be people who care about the poor? May we be people who care about justice and righteousness? May we, may we be people who strengthen others by our presence, by our faith and any advice that we give? May it be so obviously from heaven that people won't even want to argue over it. They'll just see that it's God. Help us to be that kind of person. And help us, Lord, because sometimes we're not. So we ask that you would just work in us that we would be like that. And even as our eyes are closed, our heads are bowed. Perhaps there are some right now we need to get right with the Lord, either watching online or in this room. And you need to get right with the Lord, and you know it.  If you need to be right with them, would you raise your hand? Let me pray for you right where you're at. Father, you see these hands. You know the reason why they're being raised to you right now. And in Jesus' name, I ask that you would reach down and touch every person whose hand is raised. And that Lord, you would cleanse and that you would just inhabit with your spirit in such a beautiful and powerful way. And that you'll forgive sins when necessary and encourage. So I ask, Lord, that you would move right now, that you would have your way. We receive by faith from you, and we thank you. You can put your hands down. And Father, I ask that you keep moving in all of us. And I thank you for this night that we're able to look at this passage together. In Jesus' name, amen.


The next talk will be given by Dan Walsh from Red Hat about generating second profiles for containers using Podman and EBPF, enjoy. All right, thanks for having me. I would say last year I gave a talk on replacing Docker with Podman. I mean, this is not that much about Podman, but Podman's the tool that we're using to do this. But I don't know if I did this last year, but I usually do this before, since it drives me nuts. Everybody please stand up. Please read out loud all text that is in. Okay, this is my Dan Coyote movement, I'm just trying to get people to expand behind, not have to prefix every word with the OCKEA, unless you want to call all Linuxes Red Hat Linux. So the goal of this talk or with this tool that we're developing is to basically run a container with tighter syscall filtering with Setcomp. Does everybody know what Setcomp is? So all right, good, most of you. So basically what Setcomp does is allows us to shrink the attack surface on the kernel. So it's one of the, when I give talks on container security, I used to talk about things like SC Linux and capabilities. And you get to Setcomp. And Setcomp's really cool in that we can basically take a Linux system, the x8664 machine, there's about 650 syscalls. And if we can cut out a whole bunch of those syscalls, then a vulnerability annual of syscalls that the light leads to a kernel exploit, if you don't have that syscall, you can't get the kernel exploit. And so what we really want to do is cut down on syscalls. But when we're looking at this, so this really, this is what Wikipedia defines as Setcomp, but this really talking about the initial Setcomp, which I cut down to, I think, four syscalls. I think it was read, write, execute, it's in there somewhere. But we're really talking about Setcomp BPF, which is the thing that Google further enhanced the original Setcomp to basically allow you to have all syscalls and then allow you to choose which ones you want to control. So the goal, again, is to run containers with tight syscall filtering. So the state of the outing containers was actually developed by Jessie Frizzelle. So Jessie Frizzelle, at the time, was working for Docker. And she wrote a really, what you call the rant on usability, usable security. So really what we needed to do is we wanted to take advantage of Setcomp, but the type of jobs that run inside the containers are so varied. And she said that having written a default Setcomp profile for Docker, I'm pretty familiar with how hard it is for people to use. And it requires a deep knowledge of application being contained in syscalls. What syscalls does a container require? And then she says down here, turning on something that will cause ePerm by default if we left it important, syscall is terrifying. So really what she's saying here is if we had a tight syscall filters running inside of all these containers, then it would just cause people to turn off Setcomp to turn it off. So we had to have a fairly loose capability for Setcomp. The idea is to build what she wanted was a build time generated and applied on the run Setcomp filters. And then she basically said down here, if it causes any problems, people will just turn off the security. And I got to talk a little bit about that at the end. And this happens all the time with, and of course, I see Lennox you mentioned, because I'm sure everybody in this room has a set in force one. But anyways, so my picture didn't show up. That's too bad. I always had the problem with the term one size fits all. So there's supposed to be a picture there with a little tiny hat on its head. So imagine, I have a size eight head. So it's a very large head. And anytime I shop for a hat, it's always a tassel. And you pick up these hats and say, one size fits all. And I put on my head, and it looks like a little beanie on me. So security is the same thing. We have one size, with our container world, we have one size fits all for the security. And really, unless you're going to go deep into analyzing how containers run, how do you figure out what size this calls your applications going to do? So what we decided to do this summer is, so I'll talk quickly about what SC Lennox did. SC Lennox really had the same problem. SC Lennox's policy is basically picking out a certain application, say a patchy application database. And what SC Lennox did is we would have sort of general rules. We'd have a general idea of how an application would run. And we'd write a generalized framework for what the application did. Then we would basically put that policy in place and run in what we call permissive mode. And just basically run it through entire test suite. And then we'd go to auditing system. We'd go to the audit logs and basically continuously pull out the rules as they came along. And there was a tool called Audit to Allow that translated the ABC rules that were showing up in audit logs and to allow rules.  And I don't know, people, my first computer course I ever took was explaining how you would write a program for taking a shower in the morning with shampoo. And it used to say, allow the rinse repeat. And of course, you'd be in the shower until the thing ran out of shampoo and while the kernel crashed, right? So basically, you'd keep on doing this. Then we would take that policy and we would actually put it out into Fedora and to Rahide and we'd get bug reports and continuously get bug reports. And over time, we figured out what the application did. So it's not easy to figure out applications, how they work. So this summer, we decided to do a Google try to build tools that we could at least do what we did with SE Linux to figure out sec-comp rules. So this guy here, Divyash, did most of the work on this. And Valentin Rothberg is on my team and he really sort of mentored him and I was involved in the process as well. I wanted to have one of those two guys give us talk, but neither one could make it here. So that's where you get me. So the first step we wanted to do is we wanted to investigate how we would figure out what sys calls were happening inside of a container. And the first idea everybody has is, oh, just use this S-trace or a P-trace. And if you saw our Inspector Gadget yesterday, you'd realize that that's slow and very difficult to filter. It's also hard to figure out what the process inside of the container are and how to follow along with that. So the next step is we could do what SE Linux did, which is basically turn on sec-comp filtering, auditing, and then just keep on going to the auto logs and get the information out of the auto log about which sys calls are being called. So the kernel can report those to the thing. But the problem is the kernel is just gonna start spewing all audits logs, all sys calls to it, or you could get it down to a process, but there's no idea in the audit log what a container is. The Linux kernel has no idea what a container is. And there's been a pull request in the kernel for five, six, seven years now to add what's called a container ID to the audit log. So you could actually go into an audit log and figure out at least all these processes coming from the same container and maybe eventually trace a bunch of processes back to an individual container. So because of that, it became very quickly difficult to figure out with the audit log, which container generated them. So we basically went and looked at the EBPF at this point. And EBPF was just, to me, is a really cool thing. And as I said, I'm giving a lot of credit to Inspector Gadget. That was really an awesome presentation to show all the different things you can start to do with EBPF, basically revealing information out of the kernel. So what we're doing is very similar, basically watching for sysentera of the process, but basically the process every time you go into sysentera and that on a PID ID, and you're able to watch all the sys calls that basically that process generates. And we can generate, watch all of its children and grandchildren. The other thing that we did, so the talk on Inspector Gadget yesterday talked about they were taking advantage of C-groups V2 to basically figure out which processes are inside of the container. The problem is we didn't have C-group V2 everywhere. So we relied on, we're basically looking at the syscalls as they come in and looking at the PID namespace and basically deciding whether or not the process is inside the container based on the PID namespace. So it's a little bit different, but eventually once C-groups V2 becomes prevalent, I think we probably want to take advantage of that filtering. But basically, so this is basically what's going on inside of this thing. So one of the things we needed to do is figure out, an interesting problem in this is Run C creates the process of the PID one of the container early in the process, but then it continues to do stuff in that process of skating and those things that it's doing, we don't want to record as being part of the second filter. So what we really needed to do is figure out like this three or four syscalls that come in in the beginning that we basically need to dump out because we don't want those being allowed because they're very, very privileged. Because imagine Run C is sitting and using namespaces and names, all that type of stuff we didn't want it being allowed to the container process. So he's opened up a pull request and originally this talk even says that this is associated with Podman. It's being done underneath Podman but he's basically creating an OCI runtime. So an OCI runtime that can be run inside of any container engine. So you could run it inside your Kubernetes underneath Cryo, ContainerD. Theoretically you can run it with Docker, Podman. Anything can do it because it's really separate from the tool but we'll be using Podman to generate it. Right now it's a pull request on Podman but I think we're gonna put it in as a separate package so that people can just download and play with. So how to start tracing? Well we need to know when the container starts.  OCI runtime's gonna be run, read by Run C. Run C eventually is gonna do the fork and exec to create the pin one in the container and then it's gonna launch, actually exec the container so the container doesn't start till that last point. So the best way to do that is with OCI hooks because an OCI hook is in the OCI spec, the OCI runtime will call out to individual hooks at certain prospects of the development phase. So basically after it creates the pin, pin one of the container, it actually stops and calls out to the OCI hook and basically hands us at that point the actual pin that's gonna be the pin of the container but the container's not doing anything yet. So history of OCI hooks, they've been around for a little while. They allow you to do things like pre-stop and post-stop. So the OCI tools will call in as the container starts in, as the container stops, different phases of it. So what happens is we run the trace of when the OCI on the pre-stop attaches the EBBF program to it, watch for the antitrace and then start mapping. And then when we're done, we basically send, right now he sends a signal to the process to say the container is done, so save out to your file. So we use podman for testing and one of the cool things we did with OCI hooks, and I'm gonna show you what an OCI hooks looks like in a second, is you can actually set up OCI hooks so that they only run on certain conditions. So there's like an OCI, the first one we built was OCI system D hook, so we could set up system D environment before it runs a container. But you'd wanna know if the container's gonna be running PID 1 of system D, so another thing you can do is you can do this annotations. So this is the way you trigger a container to basically start doing the SETCOM filtering. And it basically says using IO container syscall and then we're outputting to a certain file. And that's the file we're gonna look at, generating the syscall filters. Okay, so let's actually do a demo. Okay, so when I talked about one size syscall just before I sat down to do this, start talking to you guys, I went in and grabbed, I remember I said there's 650 syscalls in x8664, while just turning on SETCOM, you eliminate half of them because you don't tend to run 32 bit code inside of a container, so we can turn off all the 32 bit syscalls. So that drops us down to around 325 syscalls. If you go through Jesse Frazel's syscall thing, it drops it down to about 313 syscalls. So as much as SETCOM seemed like it's gonna be powerful, that we require all these hundreds of syscalls just to have general purpose and not everybody turning it off. So it's good, we went from 650 down to 313, but it could be better. Okay, so this is what, when you're running hooks inside of OCI hooks, this is sort of what they look like. You have the definition of the hook, the executable, and then you can basically tell the specification that I only want to run it if I have an annotation that looks like that, otherwise the executable won't start, so you don't have an overhead if you're not filtering. So that's basically what a specification looks like. So right now I'm running, so up here you see I'm running the container, I'm running podman, annotation of that, writing out the syscall, and I just did an ls of slash to generate the syscall, and that generated something that'll look like this. So basically it says I'm generating, it's a JSON file that the container, the OCI, understands, and it basically says default action is to return an error, but if I allow it then just allow it, and these are the rules, the syscalls that it actually found when it was running. So now I'm gonna run the container, so this time I changed the option on podman to actually use my newly generated Seccom filter. So this time, the original one I used the default, which was the one Jesse Frazell wrote, now I'm running the same exact command, and sure enough, it fully allows it.  Okay, so just slightly more, but I'm still running with that nice tight policy, and guess what, I got permission denied. So because I'm running Seccom filters on it, now just adding the dash l causes a problem. If I go into the audit logs, you'll see all the audit logs generating all the syscalls that happen. So basically if you look at this, the first one didn't do it, this one's just looking for x add, it's basically trying to read the attributes of the individual files inside of it. Down here is actually the ones that we're missing. So there's actually a connect, a few text, getpids, getpids. So basically what's happening here is this is actually going out and creating a socket. So just doing an ls dash l of a file actually goes out when it's doing the getpwusers, basically looking at the user ID, that's actually gonna talk to SSSD on the system and actually get connect to socket, Unix domain socket to that. So you can imagine that there's just suddenly there's an expansion of the amount of syscalls just by adding that. So now I'm gonna take these syscalls that got, basically I have bash groups that grabbed them.  So I just added those rules to my Seccom filter, to the Seccom filter and voila. So it just took those rules, added them in to the system and basically allowed me to run and now I'm just gonna give you, so here's the original rules versus the new rules added to it and that's it. So basically the idea here is that we could take this tool and start to run, say in your CICD system, you might want to run all your tests, the full test suite on top of individual container and then generate your Seccom rules based on that and then when you're shipping it, you would ship that Seccom filter and you can use with any container runtime, you can specify I have one minute left, holy smokes. Okay. So anyways, you could ship that Seccom filter. Obviously there's gonna be problems and that's why we turn on the audit. So any of the, any syscalls, you can start to monitor those audits to see if you're getting any denials but this gives you the opportunity, potential opportunity to generate syscall filters at a very small space. Couple of problems with Seccom, this one, a lot of people aren't using Seccom right now because they think it is slow but we actually found that for some reason, live Seccom by default turns on the Specter Melton protections which is a huge performance hit, like a 25% performance hit. So a lot of people are saying that Seccom is slow because this is a side effect. So the latest code, we just got it into the OCI extreme. It allows us to specify whether we want the Specter Melton to go on and it allows us to turn on that, the auditing system to be able to do it. So this quick section I'm gonna ask for questions and anybody who wants to talk about friendly E-Perm, I'd love to talk about that but I'm out of time. Any questions? Yes. I guess when you run an application is you are not going to take all the possible code paths or there are always going to be possibly a syscall that you miss. Correct. So the question is basically, there's always gonna be additional syscalls and the funny thing is I can actually, I mean with containers it's less likely but like traditionally in SE Linux it was more about people modifying, say in a switch files and so all of a sudden they add this full LDAP stack that's happening because I did an LS-L. So I'm calling out the DNS resolvers and all this stuff so there's all these side effects potentially. Yeah but it's a fundamental problem as we try to tighten the security on things that depending on the different code paths there's gonna be issues, there's potential issues. But one of the things we did with SE Linux is we actually, and maybe we'll do this eventually is there's certain actions that we know, we'll see one syscall like LS gets that and all of a sudden we know that a read involves like five syscalls. It's like lock, get at, or read. So as soon as you see a read we should just instantaneously give all five of those syscalls to it. So we could start to build up sort of understanding of the system to add a whole group of syscalls. But my goal is to get, if I could get from 333 down to 200 that would be a huge improvement. But I do take the risk of suddenly changing configurations gonna cause, get at it. One of the reasons I wanted to talk about friendly E-Perm is exactly that. So I'll just quickly go into friendly E-Perm before he throws me out of here. So friendly E-Perm was this was actually a proposal we had back in 2010. We saw this coming. Right now when you run a process on a Linux system there's about 10 different ways you can get permission denied, right? So you can get permission denied by SetCop. You can get it from user namespace. You can get it from Rayleigh. You, Unix ownership permissions that's called discretionary access control. You can get it from SCLinux. You can get it from App-on. You can get it from like five other LSMs. You can get it from user namespace. The tools basically get permission denied. You as a user what do you do when your application gets permission denied? Right, okay, pseudo. Okay, that's one thing you do. What's the other thing if you do and you're running containers with podman, what are you gonna do? Dash dash permissive, right? Right, so that's instantaneously we turn off all of the protections. And the reason for that is because you can't figure out, even if you contact me and I pretty much know why you're gonna get permission denied, I can't figure it out without making you go and do like 10 different rock fetches. Okay, turn off SCLinux. Okay, nope, that didn't do it. Turn SCLinux back on, turn off SecComp. No, that didn't do it, turn off capabilities. Start adding these certain capabilities. Who knows why you got permission denied? The frigging kernel knows. Okay, and the kernel ain't telling you.  Right, SCLinux, Lissues, and now SecComp, issues go to the auto log. So Apache gets an error, permission denied. It can't write into the it's log file saying, I'm not allowed to do this because SCLinux blocked me. Or I'm not allowed to do this because I don't have the capabilities. Right, and so we have this fundamental problem with security and the only option people have is to turn it off. So we opened a friendly ePerm years ago because we wanted the frigging kernel to tell us why you're giving us permission tonight. We wanted it to allow Apache to go to the kernel and say, why did you just deny me that? Right, and it's inherently racy. Right, the whole syscall, the only thing the syscall can return you is ePerm. So originally we were saying, well maybe we could return to like a secondary thing that said, here's a little tag that says why. After the secondary phase, we wanted to go to look into the system and say the PROC system and say, give me a PROC status, why'd you give me a frigging ePerm? And they come up with an SCLinux line that's saying SCLinux blocked it and now you could write it to your log file. And that's racy because me asking the PROC, I could get permission tonight.  And now we come eight years later, nine years later, and it's 10 times worse. Now everybody that's running containers is facing this problem. So with the stuff that he showed Inspector Gadget yesterday or with this feature, my goal now is to get to the point where we potentially could use EBPF to go to the kernel and say, so you could basically run a container, get permission tonight and say, okay, let me set an annotation, run the container again and have the kernel tell me why I'm getting permission tonight and you could actually figure out what's going on, figure out. Right now, as I said, there you go, there. So anyways, yes. When's the next talk? As a developer on some of these things, gonna get a friendly Ian Val as well. Yeah, well, Ian Val and ePerm are two ways of saying the same thing, but yeah, the goal would be to basically, when we have this, I don't know if it goes through Inspector Gadget, but basically this tool, and again, this is in my brain, not in any single reality, if it could figure out, yeah, allow you to specify which, which ever know from assist call you would want to basically ask the kernel, why did you give me that, yeah, that ever know and have the kernel reveal some information. Last question? Yeah. Which makes sense to rely on static code analysis to figure out which second profile you need, kind of as an answer to trigger and all the code paths. I mean, we haven't talked about that from assist call, point of view, but that used to be asked all the time with SC Linux. The problem is that it's not, you can look at your code to your blue in the face, but you have to basically go and analyze all of G-Lib C. I mean, maybe, maybe if you have a static program that that might be possible, but the issues with SC Linux, we kind of knew what the application was doing. It was when people would change the underlying tooling on the system that you would end up with problems just by, as I said, setting up, set up NFS. Put an NFS home directory on there, and all of a sudden, the whole world changes or, yeah. And that's, you don't have yellow pages anymore, but yellow pages used to be like, everything's open? Yeah. All ports, all things, so it's tough. Okay, thanks for having me. Thank you a lot.