text:
Let's open our Bibles tonight to Romans chapter 15, Romans chapter 15 and I want for the time that we have left, which is not a lot of time, but I want us to go back to the text that we looked at in our last study of Romans chapter 15. That is, the section from verse 22 through 33, really a unit of thought as we approach it in which Paul discusses the subject of ministry in the will of God. There's a key phrase in verse 32 and that is the phrase "by the will of God." That phrase really is a good sort of overall theme phrase for this whole section. In verses 22 through 33 Paul basically is presenting his own personal plans. He has given the Roman church his theology through verse 13 of chapter 15, that whole 15 chapters, really, was his doctrine, the presentation of justification by grace through faith in the Lord Jesus Christ. Having given them his theology, he then begins in verse 14 to give them his heart so that they'll know him as a person. He shares his own personal attitudes toward ministry. And we looked at verses 14 down through verse 21 and we saw that Paul sees himself as a priest and a preacher and a pioneer. We looked at that, how he views his ministry.
And now we're looking at this sort of overall idea of ministry in the will of God. He knew what it was to serve within the framework of the will of God. He lived under the sovereignty of Christ; whatever it was that the Lord wanted him to do was his highest joy. He did not need to be coerced into doing things for the Lord; that was his greatest thrill.
And as he talks about his ministry here, just really at first it appears to be a meandering train of thought, talking about some of the things that he desires in his heart to do and some of his plans. We see woven through all of these thoughts and attitudes elements that make up a ministry in the will of God. Those of you who were ordained tonight and commissioned and all the rest of us who serve Christ need to know what it is that makes up a ministry in the will of God. And I decided the...in presenting this that I'd just pick out some key words and use those key words to attach to the text so that we can see what elements of ministry in the will of God Paul is referring to.
Number one I gave you last time was the word "precision." Anyone who functions within the will of God functions with precision. Go back to verse 20. He says, "I have agonized with great effort to preach the gospel not where Christ was named," that is not where there was already a church, not where people were already saved, not in places where the gospel already had reached. I wanted to preach in places where Christ was not named. I did not want to build on another man's foundation. And then he quotes from Isaiah 52:15 in support of that, "As it is written, to whom he was not spoken of they shall see and they that have not heard shall understand." He wanted to take the message to those who hadn't seen or heard concerning the Lord Jesus Christ. And what I see in that as he shares a little of his vision of ministry with the Roman church is a sense of precision. He knew precisely what it was that God had called and equipped him to do. He has a very clear perspective on the purpose of God which is essential to effective ministry.
I've often thought that there are many people who are in ministry much like the man who jumped on his horse and rode off madly in all directions. They really have very little idea of what it is they're supposed to be doing, very little sense of precision in their work. And as we saw last time, when you have precision in your work and you know what God wants you to do and you tackle that thing, you have an economy of effort that takes your best talents and your energy and puts them in line with that which God wants you to accomplish and therefore you have the greatest potential for accomplishment.
The second word that opens up to us in looking at Paul's thoughts here is the word providence, providence. In verse 22 he said, "It was for this cause (the cause of always going to places where Christ wasn't named, the fact I didn't want to build on another's foundation, it was for that reason) that I have been much hindered from coming to you." Why? Because you're already there, you already have a church, you already have the gospel, you're already built up and strengthened in the Lord and my priority was not that so even though I wanted to come in my heart I was hindered. And I just wanted last time to sort of grab that word "hindered" and remind you that God controls His servants, not only on the basis of their own plan but on the basis of how He organizes circumstances. He was hindered.
In writing to the Thessalonians he said, "Satan hindered me." Now whether it was Satan hindering him as on the occasion in Thessalonians or whether God let Satan hinder him, of course, which He did, or whether God directly hindered him, he was hindered, he was hindered. He waited on God to order circumstances and he had a sense of God's providence. God controlled the circumstances of his life, as He controls all circumstances in the life of everyone.
In Jeremiah chapter 10, to read you a verse that will go along with that thought, I want to read you verse 23, "O Lord, I know that the way of man is not in himself." What a statement. The way of man is not in himself. It is not in man that walks to direct his steps. Man doesn't really direct his own life because, let's face it, folks, we cannot control our circumstances. We cannot control our environment. We have absolutely nothing to say about what goes on around us. We do not control our lives. God does.
In Proverbs 16 in verse 9 it says this, "A man devises his way in his heart but the Lord directs his steps." A man devises his way in his heart but the Lord directs his steps. In Proverbs chapter 19 and verse 21, "There are many plans, or devices, in a man's heart, nevertheless the counsel of the Lord, that shall stand." So we may make our plans but it is God who orders the sequence of events in history that brings us to the moment in time in which we presently minister. So he had a sense of providence.
Thirdly, another key word is the word planning. Even though he believed in God's providence and in God ordering circumstances, he nonetheless was engaged in planning, verse 23. Now, he says I don't have any more place in these parts. Why? Because I've taken Christ everywhere, back in verse 19, all the way from Jerusalem to Illyricum which was way over in the area of Greece. I've covered all the ground the Lord wants me to cover. There's no sense in staying here any longer. "And having had a great desire these many years to come to you, whenever I take my journey into Spain, for I trust to see you in my journey and be brought on my way there by you if first I be somewhat filled with your company or refreshed by your presence."
So he says I want to come to you on my way to Spain. What I see there is not only is this is a man who knows the providence of God, but a man who also makes some plans. He had planned to go to Spain. He had planned in going to Spain to stop in Rome. And "to be brought on my way by you," means to be sort of supported by you, with money and supplies and other people to accompany me into Spain for the sake of preaching the gospel in that place. So he was not a man who had no plans. And we want to keep in mind that there are some people who would tell us all ministry is to be spontaneous and all ministry is to be unplanned, but that is not the case. The most spontaneous and unplanned church in the New Testament was the church at Corinth. And they were so spontaneous and so unplanned that the Spirit of God through Paul said to them, "All things are to be done decently and (What?) in order." And you better tell the prophets to make their spirits subject to them. And you better be careful because what you think is the Holy Spirit, he says, is in fact demons, for no man calls Jesus accursed by the Spirit of God. And when you meet together, he says in chapter 14, somebody has a Psalm and somebody has this and somebody has a prophecy and somebo...it's chaotic, you better get that thing under control because ministry is to be planned carefully. So he had a plan to go to Spain, he had a plan to go to Rome on the way to be refreshed in their presence, and to gather some people and some resources and some money to go along and reach the people in Spain.
That last statement in verse 24, "to be somewhat filled with your company," is a beautiful statement. And I wish we had time to dig deeply into the real ethos of that statement. And that is to say this, the apostle Paul was human. I think sometimes we get the feeling that he may have been superhuman, that he may have been sort of beyond anybody else. That's not true of me, by any stretch of the imagination, but it's amazing how people think of me as sort of inhuman, not because they've had some personal encounter with me, but probably because they haven't. And people will say the strangest things to me. I remember the lady who walked up to me in the market. I was just going to the market doing whatever my wife told me and taking things off the shelf, you know. We only have one rule. She won't take me to the market when I'm hungry. Apart from that I can go because when I'm hungry I buy all the junk food, you know. But anyway, I was taking things off and she just walked up and said, "Oh, it's John. I go to Grace Church." And I just talked and she was kind of amazed, and made some statement about the fact that, "You mean you just talk to people like other people do?" And she was just really amazed that I was not just a preaching machine, you didn't wind me up and bbbbbrrr, you know. But that the... And some people are shocked when I don't have a tie on, if I happen to be in a pair of jeans or something, they just, "Uhhhh," you know, like some terrible thing has happened, you know. But there are those people who have the illusion that people in the ministry don't need normal human relationships of refreshment and fulfillment.
Paul wanted to go to the Roman church because there's nothing he enjoyed more than communion with the redeemed people of God to refresh his spirit. And that's what he is saying there and that was something that was very much a part of his own ministry. In writing to the Corinthians, 1 Corinthians chapter 16, he says, "I'm glad for the coming of Stephanus and Fortunatus and Achaicus, for that which was lacking on your part they have supplied, for they have refreshed my spirit." They have refreshed my spirit. And indeed many, many times when folks come with a gracious word and a kind thought, they are a refreshment to my own spirit. The fellowship of the saints is as precious to me as it is to anyone.
In 2 Corinthians 7:13, "Therefore we were comforted in your comfort, yea, and exceedingly the more joyed we for the joy of Titus because his spirit was refreshed by you all." Titus too was refreshed. This was just a part of the need of anyone who was in the service of the Lord Jesus Christ. And Paul mentions it in other places as well. So he has some plans. And what I want you to see is that ministry in the will of God is a ministry with a plan.
I was excited to hear John Glass give his testimony in a little more...at a little more length the other night in the elders' meeting and he shared that he for many years has had a great dream about going back to Geneva. In fact, he would like to go back and get into the cathedral there and really rejuvenate the whole country and start a new reformation. This has been burning in his heart for a long time and now he's beginning to see God work and he's going to be going to a ministry that's only an hour away from Geneva, which is for him sort of target. And who knows, but that God is going to give him the fulfillment of that dream. If God so orders the circumstances in his providence to bring about that which is his plan, then blessed be His name. But the servant of God who functions in the will of God has a plan. The old story is true, if you have no target you can't hit it. Somewhere along the line you've got to determine where your goal is.
Now let me take you to a fourth word that helps to open up this passage and with this we come to verse 25. That's the word "priority," priority. The person who is effective in the will of God in the service of the Lord, the person who is useful to the Savior has plans and dreams for the future — listen carefully now — but those never choke off the priority of the present. And that's not an easy thing to handle. Spain was Paul's target. And he had a priority to go there in his heart, in his mind. But he had another priority that was a first priority and that demanded him — get this — to go well over one thousand miles in the opposite direction. This priority was not an easy one for him to fulfill. He had this dream of reaching Spain. He had already evangelized, verse 19 says, from Jerusalem to Illyricum, he had covered all the territory God wanted him to cover. The next thing was Spain and it was burning in his heart. But there was something he had to do. Look at verse 25. "But now, as much as I want to come to you and on to Spain, I go to Jerusalem to minister to the saints." I go to Jerusalem to minister to the saints." This is the test of a man's heart in the ministry.
Can he set his dream aside for a menial priority? My father used to say if a person resigns, get rid of him fast because they're no good once they've resigned and moved their heart to another place. They just don't perform. So the apostle Paul has burning in his heart Spain, but he has a present priority, and that is to go a thousand miles in the opposite direction and that's a very difficult journey on foot and by ship, to minister to the saints in Jerusalem. This is remarkable. This is really remarkable, especially back in verse 20 and 21 when he says my whole calling is to preach the gospel where Christ is not named. I mean, this is my whole calling. Well, if it's your whole calling, why are you going to Jerusalem? Why are you going back there to minister to the saints who are already redeemed? Why are you going back to take care of the church if you're called to the lost?
Because the Spirit of God had laid it upon the apostle Paul that the needs of those believers and the unity of the church was a greater present priority than the evangelization of Spain. I want you to listen because I think this is an important principle. There was poverty in Jerusalem; that was the problem. There was poverty there. We see it there first in Acts 6 when the widows don't have enough food. There was poverty. The poverty came about from a lot of things. It came about because there was overcrowding in Jerusalem, it came about because there were many people who came to Jerusalem, heard the gospel, were saved and never went home and they had to sort of move in with people and people didn't have a lot and there was poverty.
Not only that, if you read in the book of Acts carefully you will find that there was a great famine. It's recorded in chapters 11 and into chapter 12. There was a great famine in Jerusalem. And because of the influx into the city of these Christians, because of the presence of those that were saved on the day of Pentecost and never went home, because of the hatred of many Jews toward Jesus and His followers which generated persecution and dispossession of homes and the loss of jobs and even imprisonment — they were throwing them in to prison in Acts chapter 8, they were breathing out threatening and slaughter against them — so the Christians had a very difficult time in earning a living. Many of them couldn't get a job. Many of the fathers of the homes were put in prison and so there was nothing to supply for the wife and children. There was a great need because of the poverty there.
And so, in light of that need the apostle Paul had arranged for a collection. He had arranged to take an offering and take it back to the poor saints. In Galatians chapter 2, verse 7, I want to read you a few verses, "On the contrary, when they saw that the gospel of the uncircumcision was committed to me," Paul says, "as the gospel of the circumcision was unto Peter." In other words, God called me to preach primarily to Gentiles, God called Peter to preach primarily to Jews. "And when James and Cephas and John, who seemed to be pillars, pillars in the church, perceived the grace that was given to me, perceived my calling for ministry, they gave me and Barnabas the right hand of fellowship that we should go to the Gentiles, and they to the circumcision. Only they would that we should remember the poor." In other words, they said at the very ordination of Paul, you go to the Gentiles but don't forget the poor in Jerusalem. "The same," he says, verse 10, "which I also was diligent to do."
In his commissioning he was told not to forget the poor. And so as he had been traveling around Asia Minor and in Achaia and Macedonia, he had been collecting money. Verse 26, "It has pleased them of Macedonia and Achaia — Achaia was the place where Corinth was located — to make a certain contribution for the poor saints who are at Jerusalem." The Macedonians made a very generous contribution. Read 2 Corinthians 8, how that the Macedonians out of their deep poverty gave liberally to Paul to take back to these poor saints. And now the Corinthians were to have a share in that as well. First Corinthians 16:1, "Now concerning the collection for the saints, as I gave orders to the church of Galatia, you do the same." So he was collecting it from Galatia, from Achaia, from Macedonia, everywhere he went he was collecting this money.
By the way, when he went back with the money he also took representatives of all those churches so when he came back to Jerusalem finally he not only had a large amount of money for the poor but he had representatives from all the Gentile churches there with the money. And you have to understand that with Paul it wasn't just a question of the money, it wasn't simply making a certain contribution for the poor among the saints, or literally the poor of the saints who were at Jerusalem. It was a way to conciliate two factions in the church. You had a Jewish church in Jerusalem, you had a Gentile church in the rest of the world and everybody at that time knew Jew and Gentile had very little relationship. And so in an act that was not only meant to relieve some distress by virtue of the money but also to demonstrate the unity of the church, Paul was committed to taking this money along with the Gentile representatives who gave it so that there might be conciliation. The word "contribution," by the way, a very important word, verse 26, the word is koinnia. It is the word for fellowship. It is the word for fellowship. And sharing money is so essential a part of fellowship that three times in referring to this collection Paul uses the word koinnia. Romans 15:26 right here, 2 Corinthians 8:4, 2 Corinthians 9:14, he calls the collection fellowship, common sharing. This is to be the priority.
Now listen, I believe that Paul in his mind knew that ultimately the evangelization of the world would be hard pressed to succeed unless there was unity in the church. And he was committed to the strengthening of the base church, that it might be strong and have its needs met before he went out to reach the world. Very important.
It's been in recent years at Grace Community Church that our outreach has expanded around the world and continues to expand at a very rapid rate. In fact, it makes our heads spin sometimes. So many people are preparing for ministry, I think 75 people now are in a group of people preparing to go to someplace in the world as missionaries. And we have many young men preparing to go out in ministry. And this church is challenged by the world and what we can do to reach the world. But in the first years of my ministry here, the great emphasis was on the foundation and the base and the strength of the church in order that, having laid that foundation and having a strong church supporting, what we did then the work could go beyond to the world. And I know what Paul's got in his heart. He knows that when the gospel extends itself it's going to extend itself with strength if it's extended off of a strong foundation. And he wanted to conciliate the Jews and the Gentiles as one in Christ. That was so much a part of the theology that he taught, read Ephesians 2, read Ephesians 3. His whole message was the middle wall is broken down, Jew and Gentile are one. He says I have been given the gospel and the gospel as a steward given to me is to preach Jesus Christ by whom Jew and Gentile become one. That was his heartbeat. And in order to see that come about in practicality, he sought this conciliating act of love from the Gentiles to the Jews.
Verse 27 then follows up, "For it has pleased them" that is it's pleased the saints in Macedonia and Achaia who gave the money "it has pleased them truly." There's the first reason they did it, they did it because they wanted to do it. They did it because it was in their heart to do it. They did it because of love. They did it because Paul told them it was right. They did it because they wanted to do it. They weren't coerced to do it. But then he turns it around and says, "And their debtors they are." Even though they did it willingly they certainly were in debt to the Jews. They certainly were.
Listen, all of us who are Gentiles have a great debt we owe the Jews. Is that not right? Of course, I mean, the gospel came through the Lord Jesus Christ who was a Jew. It was preached by Jewish apostles in fulfillment of the Old Testament written by Jewish authors. Jesus even said in John 4:22, "Salvation is of the Jews." We are all indebted to that. Furthermore, the first church in Jerusalem was Jewish and it was that first church that sent out the first missionaries to Antioch seven years after its founding to evangelize the first group of Gentiles. It was that great Jew Paul who reached the Gentiles, that great Jew Peter who reached the Jews. The Gentile church owes its life on a human level to Jewish preachers, teachers and evangelists, and missionaries. And even further back we would never have the Word of God if it weren't for Jewish authors, would we? And that's what he means to say. You're in their debt. You're in their debt.
Then he goes on, "For if the Gentiles have been made partakers of their (that is the Jews') spiritual things, their duty is also to minister to them in material things," would be a better translation. In other words, if we have received the spiritual things from them, we certainly ought to minister back at least the material things. So Paul is saying they gave this out of the love of their heart, but they also had a debt. And you can have a debt to do something and still do it out of love, can't you? Those are not mutually exclusive. I mean, Isaiah 2:3 says out of Zion shall go forth the law and the Word of the Lord from Jerusalem. And aren't we all indebted then to Zion and Jerusalem? And didn't the Messiah come as a shoot out of Jesse's stalk to bring forth justice to the Gentiles? As Isaiah 11:1 and 42:1 say? Yes, they receive the covenants and the promises and the Word of God, and we are their sort of product by God's grace.
Then in verse 28 notice what he says. "When therefore I have performed this and sealed to them this fruit, I'll come by you into Spain." "I'll come by you into Spain." Great sense of priority. I have to take care of this offering first; then I'll come. The offering has to happen because I want to see the saints relieved in their distress financially. Secondly and more important, I want to see the Jew and the Gentile conciliated and I want to see the Gentiles, who have received spiritual things, look again at verse 27, minister. And that is the word leitourgeo, from which we get liturgy. It means to act as an official priest giving an offering. I want to see the Gentiles offer back to those who gave them spiritual things some material things by way of thanks, by way of thanks.
Footnote: In 2 Corinthians 9:12 this very offering is called leitourgos, a priestly act. The Gentiles come, as it were, like priests offering their money to the Jews in gratitude.
And so, Paul has a strong sense of priority. And he says I can't come by you to Spain until I have performed this and have sealed to them this fruit. Can I comment on that? "Them" means the Jews. Until I have sealed to the Jews in Jerusalem this fruit. Now what would this fruit be? What's he holding in his hot little hand? Money and he's got these Gentiles with him. The money was the proof of the transforming power of the gospel to Gentiles. The Jews originally were a little bit skeptical about whether Gentiles could be converted. We all remember the struggle of the Judaizers, right? Who wanted to say that you could never become a Christian until you first became a Jew and the Gentile couldn't just become a believer. There were those who thought that salvation only belonged to the Jews.
And so, what Paul wants to do is take back the money as the expression of love and the proof that the gospel had indeed changed the lives of Gentiles. In 2 Corinthians 9:13, "While by the proving of this ministration they glorify God for your professed subjection unto the gospel of Christ and your liberal distribution unto them and unto all men." What it's saying is the same thing. The money you've given and your generosity to the Jew is proof of the redeeming power of God in your lives because in that world at that time Jew and Gentile knew great hostility. The generous gift of love was fruit demonstrating a transformed life among the Gentiles, visible evidence that the Holy Spirit had visited the pagans and taken out a people for God. And sending this gift sealed to the Jews or verified or guaranteed or certified this great truth that Gentiles had been saved. It was the fruit of Paul's labor, it was the fruit of the gospel, and it was also the fruit of the Christians at Jerusalem from whom the gospel first came, from whom it first came.
So he says, "When I take this fruit back and seal this fruit, then I'll go on my way. I've got to show the Jews that the Gentiles love them; that they are one and that God is saving the Gentiles as made manifest by the overwhelming generosity of their gifts. And then I'm going to go to Spain." And so I say that what I gather out of this in relation to Paul's ministry is he had a great sense of priority.
And that, dear friends, is so critical. I have seen young people who feel called to the ministry. I saw... I've seen it for years. I saw it when I was a seminary student. Come into seminary and they say, "Oh, God's called me to preach or teach or go to a mission field," and the whole time they're going through the process of education they have zero commitment to anything. And they expect at some time to step out on the stage and it will all happen. And it just doesn't happen. There is no realization of a future dream as God would have it for anybody who doesn't know how it is to give himself totally to the priority that's existing right at his own feet in the moment in which he lives. Priority.
Let me give you a fifth word. If you're going to function in the ministry in the will of God there's the word prosperity, verse 29. I just think this is very, very simple and yet very beautiful. Verse 29, "I'm sure, he says, when I come to you I shall come in the fullness of the blessing of the gospel of Christ." Now what an assurance that is. He says I'm going to come in spiritual prosperity. When I...I come to you I'm going to come with blessing, in spite of difficulties, in spite of trials, I'm going to come in blessing.
By the way, that last phrase "of the gospel" is not in the better manuscripts and so the verse would read, "I shall come in the fullness of the blessing of Christ." I know when I come to you I'm going to be blessed.
You say, "Well how did he know that?" Because that's the way it always was with him. Some people — mark this — by virtue of an obedient spiritual life always live in the place of blessing. No matter what negative circumstance they may have they enjoy the blessing of God. He has enjoyed the fullness of the things of Christ throughout his ministry so he says, and I love this. "I am" look at it, verse 29 "I am sure." "I am sure." Well how are you so sure? Past experience, I'm sure because it's always this way. I don't care whether I'm abased or whether I abound, I don't care whether I'm free or whether I'm in jail, I don't care whether I'm enjoying a feast or being beaten with rods, I'll tell you I know from past experience that the blessing of Christ is on my life.
You say, "How does he know that? How has he enjoyed the fullness of the things of Christ?" Because of obedience. Because of obedience. Now he says, notice again verse 29, "I'm sure that when I come to you." Now he didn't know whether he was going to come and the fact that he said that doesn't mean it necessarily had to come to pass. The fact that he was coming is not inspired, the fact that he thought he might come is inspired. He was planning to come, whether he came or not. But he said, "When I do come" obviously within the will of God "I know one thing, I'll be blessed."
I mean, that's the way to live, isn't it? I mean, to me that's the only way to live. To be able to say, "Well I don't know where I'll be tomorrow but I know one thing, I'll be blessed. I don't know where I'll be a couple of years from now but I know one thing, I'll be in the fullness of the blessing of Christ." How can you promise yourself that? Because the key to that is an obedient life.
Now that is true positive thinking, not the cheap substitute we hear about today. True positive thinking says, "I live in submission to Christ, I live in obedience to His Word so I know wherever I am I'll enjoy the fullness of the blessing of Christ." Marvelous way to live. By the way, as it turned out, he did get to Rome. That's right, only he got there as a prisoner. But this still came true. He got there as a prisoner and even as a prisoner he wrote the Philippians. And in writing to the Philippians, chapter 1, he talks about the difficulties, chains and some people are criticizing him and so forth and so on. And he says that doesn't matter to me, verse 18, "Christ is preached and in that I do rejoice, yea and I will continue to rejoice." I'm in prison, people are criticizing me, people are saying God had to put me on the shelf because of sin in my life, whatever, I'm getting it from every angle, not only from my enemies but my friends, but I'm just going to tell you this, it doesn't matter to me, I'm going to rejoice continually. Yes, always in the place of blessing because he was always in the place of obedience. It didn't matter what the circumstances were.
And at any point in time he could say the peace of God which passes all understanding shall keep your hearts and minds through Christ Jesus, Philippians 4:7. He knew the peace of God. It didn't matter what the situation was. Later on in that fourth chapter he says, "My God shall supply all your needs according to His riches in glory by Christ Jesus." You know those verses. So he knew prosperity. And listen, beloved, hear me, prosperity in the spiritual sense is the mark of ministry in the will of God. Not necessarily larger crowds, not necessarily greater popularity or reputation. It doesn't necessarily mean that the publisher is going to print your book. It doesn't necessarily mean that your church is going to double in the first six months, it doesn't necessarily mean the people are going to crowd in to hear you, they're going to raise your salary, it doesn't necessarily mean that you're going to become well known, it doesn't necessarily mean there are going to be a lot of folks saved, it doesn't necessarily mean you're going to build a great ministry long remembered. I'll tell you what it does mean. It does mean that in the spiritual dimension between you and God, you will be blessed. That's what it's all about, prosperity, true riches; spiritual riches.
You see, Paul's joy was never tied to his circumstance; it was never tied to the occasion. His joy was tied to his obedience. Francis Xavier's hymn, which our choir sings from time to time goes like this:
"My God, I love Thee, not because I hope for heaven thereby,
Nor yet because who loved Thee not are lost eternally. Thou, O my Jesus, Thou didst me upon the cross embrace.
For me didst bear the nails and spear in manifold disgrace,
And griefs and torments numberless and sweat of agony
And death itself, and all for me who was Thine enemy.
Then why, O blessed Jesus Christ, should I not love Thee well? Not for the sake of winning heaven or of escaping hell,
Not with the hope of gaining ought, not seeking a reward,
But as Thyself has loved me, O ever loving Lord."
And then this:
"Even so I love Thee and will love and in Thy praise will sing Because Thou art my loving God and my eternal king."
In other words, what Francis Xavier was saying is what Paul knew, I don't love You, God, for the nice circumstance you put me in, I love You because of what You've done for me and who You are. And as I live in obedience I then live in the fullness of blessing. This is the greatest satisfaction.
So a life of ministry in the will of God involves precision and providence and planning, priority and prosperity. Let me throw in one other one, a negative. Verse 31, jump down to verse 31, persecution, persecution. "That I may be delivered from them that do not believe in Judea and that my service which I have for Jerusalem may be accepted by the saints."
You know what's inevitable in Christian ministry, absolutely inevitable? Effective Christian ministry in the will of God will always receive what? Persecution. I want to talk a little more about that but I don't have any time for that tonight. And then I want to give you just a final element or two on this chapter and we'll close it out. That will be two weeks from tonight. Bow with me in a word of prayer.
Father, we would labor in Your will. And You have shown us tonight what that means, very practical, not so profound, but so practical. Teach us the precision of ministry, to zero in on some task and do it with all our might, some task reflective of Your holy will and purpose and calling. And give us a great, great trust in providence. May we never try to manipulate the circumstances. May we never try to manufacture the environment and thus have to lie and deceive and connive and plan, pervert and twist to make things the way we think they ought to be and compromise and avoid certain things. Lord, help us just to open our mouth and speak the Word and live as You would have us live and let You order the circumstances. Help us to have that great faith that stands back and no matter what happens says, "It is God's will. It is God's will. He's in control."
And then, Lord, too, but while we want to be trusting in providence may we never fail to plan. O Lord, may our minds near burst with plans, dreams for the extent of the gospel. And may we do all we can to prepare and work to make the best of plans to advance Your kingdom. But, Lord, even in the dreaming and the planning and the looking ahead, may we know what Paul knew, the devotion to the priority of the moment. And though it takes us a thousand miles in the opposite direction, though it involves something less than perhaps the highest calling, if it's Your will may we do it with all our might. Though it might mean the loss of life and the forfeiture of that great dream, help us to do it. Give us that great spiritual virtue that does the task at hand with total commitment, total dedication.
And then, Lord, may we know prosperity, not in money, not fame, not reputation; spiritual blessing. May we know the blessedness of obedience so that we can say, "I'm not sure where I'll be but I know wherever I'll be I'll be there in the fullness of the blessing of Christ." And, Lord, as we so live in the ministry to which You've called us, be it in the family or with our neighbors or wherever, as we so live may we know that we are pleasing the one we love and serve. That's our goal and our glory and to that end we pray for Christ's sake. Amen.
This article is also available and sold as a booklet.
This sermon series includes the following messages:
Please contact the publisher to obtain copies of this resource.Publisher Information


text:
CTV's Ottawa Bureau Chief Robert Fife said the Liberal party obtained the injunction Tuesday night, and will be in court with Montreal's La Presse newspaper at 2:30 p.m. ET Wednesday to find out whether it can keep the list out of the public eye.
Fife, calling it a "bizarre" story, said Quebec Liberal boss Senator Celine Hervieux-Payette boasted recently there were 50 Liberal candidates, including 12 "star candidates" slated to run in the province.
However, the list, which was leaked to a La Presse reporter, only had 32 names on it. When the reporter called the party looking for an explanation, officials moved forward with the court action, Fife said.
"The explanation we're being told by the Liberals here is there are these great 12 star candidates, but they don't want their names released because it could affect their jobs," Fife told CTV's Canada AM from Ottawa.
"I guess that may be the explanation but clearly what's going on is this is more of the war inside the Quebec Liberal party in the federal wing."
He said Jean Lapierre, a former Liberal cabinet minister who headed the party's Quebec efforts, said the situation is unusual because the party usually rushes to publish the names of candidates as soon as possible, before they change their minds.
I guess that might be the explanation? Sounds pretty reasonable, at least enough of an explanation that Fife shouldn't immediately use it as further evidence of the "war" in Quebec. What Fife does here- and he uses the always mischevious Lapierre as cover- is he basically suggests that the Liberals are lying to him, there are no star candidates.
Yes, if there is one thing Dion is, it's a LIAR. I mean, look at all the examples, the man is clearly morally challenged. This is not "evidence" of infighting, as Fife suggests, in fact that is a stretch of the highest order, to fit into his lazy thesis. What a hoot, Fife finds ghosts everywhere on the Liberals, but when Cadman broke, a story with incredible implications, his first kneejerk reaction, "I don't see anything here".
The king of inference, the duke of doublespeak, the prince of unfounded inneundo, I give you Robert Fife.
For contrast, here is a relatively fair report:
OTTAWA — The federal Liberals are in a Montreal court Wednesday trying to block a newspaper from publishing a list of party candidates lined up to run in Quebec.
The party says some of its star candidates won't run in the next election if their names are prematurely disclosed by Montreal's La Presse.
Leader Stéphane Dion says some people who've agreed to run for the party don't want their names revealed until an election is called.
His Quebec lieutenant, Senator Céline Hervieux-Payette, says some of the would-be candidates are professionals and public office holders who can't announce their candidacies without jeopardizing their current jobs.
She says some of them have told her they won't run if their names are prematurely leaked.
That makes perfect sense- but don't buy it for a second. Did Iggy leak the list?

subset: commoncrawl


text:
Inter president Massimo Moratti has urged Wesley Sneijder to make a decision on his future by the end of Monday as Galatasaray are desperate to add the Netherlands international to their squad.
The Istanbul giants announced at the weekend that they have agreed terms with the Nerazzurri over a winter move, but added that they are still in talks with the creative midfielder himself.
Sneijder stated on Saturday evening that he is in no rush to make a final decision on his future, but Moratti is now running out of patience and has told the Dutchman to make up his mind.
"We want an answer by the end of the day. It would be professional from him if he made a decision shortly," the Inter boss told reporters.
Nevertheless, despite Moratti's latest comments, Sneijder is unlikely to make a decision on his future any time soon.
The 28-year-old is reportedly having doubts about a move to the Turkish league, and would prefer a transfer to one of Europe's top league competitions.


text:
Tuesday, July 17, 2012 - Jindra vs. Dmitry - WRESTLING
Latest Sets at MaleFeet4U.com
Our previews from malefeet4u.com today are Radek Filipec and Milan Dudac. Both guys are very handsome an do great shoots. You can see their full shoots at www.malefeet4u.com.
If you haven't recently checked out the foot site, now is a good time to do so, Franky as completely redesigned it.
Also, thanks for the photo and video suggestions for foot fetish shoots. Please keep them coming by writing firstname.lastname@example.com
|Milan Dudac
Open Milan Dudac MaleFeet4U.com Set
More about Milan Dudac - MaleFeet4U.com ...
|Radek Filipec
Open Radek Filipec MaleFeet4U.com Set
More about Radek Filipec - MaleFeet4U.com ...
The End of William Higgins Newsletter


text:
TIFF 2008 - Day 1, Thursday, Sept. 4
Pity the poor Torontonian who just wants to get from work to home, or buy a pair of Classic Fits at the Gap -- the one at the corner of Bay and Bloor. Every street in this posh Yorkville district seems to be under construction, there are giant holes in the ground and steel skeletons going up every other block to make way for new lux condos, swankier hotels, sleeker boutiques (no recession in this part of town!). And down on King Street, the Bell Lightbox is erecting -- future headquarters and screen venue for the Toronto International Film Festival.
In the meantime, TIFF '08 goes on with Press & Industry events, news conferences and Reese Witherspoon lookalikes (pretty sure it wasn't really her) at the Sutton Place Hotel. Day One of the Toronto International Film Festival: Italian journos scurrying to get their accreditation, film buyers from Britain, festival programmers from San Francisco, Japanese entertainment reporters, studio execs, publicists, directors, everyone fried a bit from the travel getting here, and everyone running to the Varsity complex, where a dozen screens are turned over to the credentialed throng from 8:30 in the morning til the cows come home.
First screening was RocknRolla, Guy Ritchie's remake of the last Guy Ritchie movie --English thugs and mob types playing cross and doublecross, shooting guns and lookin' cool while the camera whirls and dives and flashes fast-forward around colorful corners of London Town. 300 hunk Gerard Butler (soon to be shooting a new movie in Philly) stars, and Thandie Newton looks lovely, and Tom Wilkinson goes slumming, playing an old-school, no-class gangster. Engaging for a while, but then, well, you can't help but start wondering if Mr. Madonna has no other tricks up his sleeve.
Then L'Heure d'été (Summer Hours), Olivier Assayas' very grown-up and ultimately very moving look at a family coming to terms with the death of their septugenarian matriarch (an elegant and beautiful Edith Scob). Assayas (Irma Vep, Clean), ends his movie (which stars Juliette Binoche and Charles Berliner)with thwacking hip-hop, bouncy French rock and a cover of an old Incredible String Band hippie-ditty -- not where you expect the film to go, and it works.
Luckily (or not), I've already seen Ghost Town, with Ricky Gervais as a New York dentist who can see dead people -- like Greg Kinnear, for instance. Reportedly there was a major snafu with the digital projection early on, and suddenly the English comedy star was walking in front of green screens, interacting with people that really weren't there. Ghostly!
And as triple-crossing con artist pictures go, The Brothers Bloom, with Adrian Brody and Mark Ruffalo as scamming siblings and Rachel Weisz as their mark (or is she?), goes from charming to UNBELIEVABLY ANNOYING in less time than it takes to buy a sandwich at the Varsity concession stand. (Not long -- they're efficient here in Canada.)With quirky '60s pop songs thrown on the soundtrack a la Wes Anderson, and moments of inspired eccentricity and whimsy (a cat with one leg walking on crutches, a montage of Weisz's character's mastery of "hobbies" -- including juggling power saws on a unicycle), The Brothers Bloom aims to please in oddball ways, and then you start hating these guys and their globe-hopping stunts.... Did I say UNBELIEVABLY ANNOYING?
Buzz for Claire Denis' 35 Shots of Rum and the Turkish pic Three Monkeys, and in the theater before Rian (Brick)Johnson's The Brothers Bloom got off to a late start, wags waggin' about who's going to be cast in the movie about a highschooler who gets pregnant by her boyfriend, decides to have the child, and Mom gets nominated to be Vice President. It's Juno Goes to Washington.


text:
Grand Theft Auto IV Side Quests
|Most Wanted
& Random Char.
|Brucie's Races
|Jacob's Drug Runs
|The Fixer's Assassinations
|Carjack 1
|Carjack 2
|Carjack 3
|Carjack 4
|Carjack 5
|Carjack 6
|Carjack 7
|Carjack 8
|Carjack 9
|Carjack 10
|Stolen Vehicle One
The first vehicle Brucie asked us to steal is a PCJ600. The PCJ600 is a motorcycle, and in our playthrough it was being held by a group of thugs hanging out outside of the Firefly Projects on Mohegan Avenue. Mohegan Avenue is located on the east end of the Dukes-Broker island (more specifically, in the Broker section of the island). After reading your e-mail, you should head over to this location posthaste.
The vehicle (whether it's a car or bike) you are to steal here will be well-protected by three armed enemies. One of them will be armed with a baseball bat, so he should be of no concern to you. His two friends will be packing firearms, however, so make them your priority as you carefully eliminate them. You don't want to ruin your vehicle in any way, as it will hurt its value when you drop it off in lockup (you can get this fixed by heading to a Pay N' Spray if you so desire). Your violent offing of the three enemies will likely draw police attention, so you'll need to lose them before returning the vehicle to Brucie's lockup off of Mohanet Avenue on the west side of Broker.
|Give us feedback!
|Continue Side Quests...
Saints Row: The Third Cheats
Call of Duty: Black Ops II Cheats
Call of Duty: Black Ops Cheats
Fast & Furious: Showdown Cheats
LEGO Batman 2: DC Super Heroes Cheats
Marvel: Ultimate Alliance 2 Cheats
Resident Evil Revelations Cheats
God of War: Ascension Cheats
Tomb Raider Cheats
Infamous 2 Cheats
Professor Layton and the Last Specter
X360 Forza Motorsport 4
Wii Rune Factory: Tides of Destiny
NDS Harvest Moon: The Tale of Two Towns
PS3 Dark Souls
PC Dark Souls (Prepare to Die Edition)
X360 Warhammer 40,000: Space Marine
Web War Commander
PS3 Ultimate Marvel Vs. Capcom 3
X360 Trials Evolution
Grand Theft Auto IV: T... at IGN
Grand Theft Auto IV: T... at GameSpy
Grand Theft Auto IV: T... at GameStats


text:
We are looking for caring doctors who are interested in having fun while making a positive impact on the communities we serve! Licensed veterinarians from all industries and levels of experience are welcome: practice owners, associates, new graduates or experienced. Small animal, large animal, equine, emergency/critical care, semi-retired, at-home parent, sales, pharmaceutical, medical director, military, government, etc. As a Vetco doctor you will provide preventative care services for healthy dogs and cats at clinics located inside Petco and Unleashed stores. In addition, you are welcome to refer clients to your practice when pets are in need of additional care or services that Vetco doesn't offer. Bring your business cards! Our friendly, well-trained teams are highly skilled in pet restraint, assisting, client communication, and customer service. They take care of all aspects of the general operation of the clinics, so the veterinarians can focus on the clients and the pets.
Work as many or as few relief shifts as you desire. Create your own work-life balance. There are no minimum or maximum number of shifts required to work. As an independent contractor, YOU determine your rate of pay based on the schedule you choose.
Our Arizona clinics and Wellness Centers are hiring in:
To see a full list of our locations and tentative scheduled times of operation, please visit our website at www.vetcoclinics.com. You may also directly contact Jeanine Johnson at email@example.com to apply or learn more about this opportunity!
Veterinary license in good standing


text: /* * ntfs_compress.c - NTFS kernel compressed attribute operations. * * Copyright (c) 2006-2008 Anton Altaparmakov. All Rights Reserved. * Portions Copyright (c) 2006-2008 Apple Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of Apple Inc. ("Apple") nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ALTERNATIVELY, provided that this notice and licensing terms are retained in * full, this file may be redistributed and/or modified under the terms of the * GNU General Public License (GPL) Version 2, in which case the provisions of * that version of the GPL will apply to you instead of the license terms * above. You can obtain a copy of the GPL Version 2 at * http://developer.apple.com/opensource/licenses/gpl-2.txt. */ #include <sys/errno.h> #include <sys/ucred.h> #include <sys/ubc.h> #include <sys/uio.h> #include <sys/types.h> #include <mach/memory_object_types.h> #include <string.h> #include <libkern/OSMalloc.h> #include <kern/debug.h> #include <kern/locks.h> #include "ntfs.h" #include "ntfs_attr.h" #include "ntfs_compress.h" #include "ntfs_debug.h" #include "ntfs_inode.h" #include "ntfs_runlist.h" #include "ntfs_types.h" #include "ntfs_volume.h" /** * Compression related constants. */ enum { /* Compression block (cb) types. */ NTFS_CB_SPARSE = -1, NTFS_CB_COMPRESSED = -2, NTFS_CB_UNCOMPRESSED = -3, /* Compression sub-block (sb) constants. */ NTFS_SB_SIZE_MASK = 0x0fff, NTFS_SB_SIZE = 0x1000, NTFS_SB_IS_COMPRESSED = 0x8000, /* Token types and access mask. */ NTFS_SYMBOL_TOKEN = 0, NTFS_PHRASE_TOKEN = 1, NTFS_TOKEN_MASK = 1, }; /** * ntfs_get_cb_type - determine the type of a compression block * @ni: raw ntfs inode to which the compression block belongs * @ofs: byte offset of start of compression block * * Determine whether the compression block is sparse, compressed, or * uncompressed by looking at the runlist. * * If the first cluster in the compression block is sparse the whole * compression is sparse. In that case we return NTFS_CB_SPARSE. * * If the last cluster in the compression block is sparse the compression block * is compressed. In that case we return NTFS_CB_COMPRESSED. * * If the whole compression block is backed by real clusters it is not * compressed. In that case we return NTFS_CB_UNCOMPRESSED. * * Return the compression block type (< 0) and errno (>= 0) on error. */ static inline int ntfs_get_cb_type(ntfs_inode *ni, s64 ofs) { VCN start_vcn, vcn, end_vcn; LCN lcn; s64 clusters; ntfs_rl_element *rl; int ret = EIO; #ifdef DEBUG const char *cb_type_str[3] = { "sparse", "compressed", "uncompressed" }; #endif /* DEBUG */ BOOL is_retry, write_locked; ntfs_debug("Entering for compressed file inode 0x%llx, offset 0x%llx.", (unsigned long long)ni->mft_no, (unsigned long long)ofs); vcn = start_vcn = ofs >> ni->vol->cluster_size_shift; end_vcn = start_vcn + ni->compression_block_clusters; write_locked = is_retry = FALSE; lck_rw_lock_shared(&ni->rl.lock); retry_remap: rl = ni->rl.rl; if (ni->rl.elements) { next_vcn: /* Seek to element containing target vcn. */ while (rl->length && rl[1].vcn <= vcn) rl++; lcn = ntfs_rl_vcn_to_lcn(rl, vcn, &clusters); /* * If we found a hole we are done. If we were looking up the * starting vcn the entire compression block must be sparse. * Otherwise only part of the compression block is sparse, thus * it is compressed. */ if (lcn == LCN_HOLE) { ret = NTFS_CB_COMPRESSED; if (vcn == start_vcn) ret = NTFS_CB_SPARSE; goto done; } /* * If we found a real cluster allocation and it covers the end * of the compression block the compression block is not * compressed. Otherwise we need to look at the last cluster * in the compression block. Note there is no need to look at * the intervening clusters because it is not possible to have * sparse clusters in the middle of a compression block but not * at its end and neither is it possible to have a partial * compression block at the end of the attribute. */ if (lcn >= 0) { if (vcn + clusters >= end_vcn) { ret = NTFS_CB_UNCOMPRESSED; goto done; } vcn = end_vcn - 1; is_retry = FALSE; goto next_vcn; } } else lcn = LCN_RL_NOT_MAPPED; /* The runlist is not mapped or an error occured. */ if (!write_locked) { write_locked = TRUE; if (!lck_rw_lock_shared_to_exclusive(&ni->rl.lock)) { lck_rw_lock_exclusive(&ni->rl.lock); goto retry_remap; } } if (!is_retry && lcn == LCN_RL_NOT_MAPPED) { ret = ntfs_map_runlist_nolock(ni, vcn, NULL); if (!ret) { is_retry = TRUE; goto retry_remap; } } else if (!ret) ret = EIO; done: if (write_locked) lck_rw_unlock_exclusive(&ni->rl.lock); else lck_rw_unlock_shared(&ni->rl.lock); if (ret < 0) ntfs_debug("Done (compression block is %s).", cb_type_str[-ret - 1]); else ntfs_error(ni->vol->mp, "Failed (error %d, lcn %lld).", ret, (long long)lcn); return ret; } /** * ntfs_decompress - decompress a compression block into a destination buffer * * Decompress the compression block @cb_start of size @cb_size into the * destination buffer @dst_start. * * If @pl is not NULL, i.e. a page list is present, skip over any valid pages * in the destination buffer. * * Return 0 on success and errno on error. * * The decompression algorithm: * * Compressed data is organized in logical "compression" blocks (cb). Each cb * has a size (cb_size) of 2^compression_unit clusters. In all versions of * Windows, NTFS (NT/2k/XP, NTFS 1.2-3.1), the only valid compression_unit is * 4, IOW, each cb is 2^4 = 16 clusters in size. * * Compression is only supported for cluster sizes between 512 and 4096. Thus a * cb can be between 8 and 64kiB in size. * * Each cb is independent of the other cbs and is thus the minimal unit we have * to parse even if we wanted to decompress only one byte. * * Also, a cb can be totally uncompressed and this would be indicated as a * sparse cb in the runlist. * * Thus, we need to look at the runlist of the compressed data stream, starting * at the beginning of the first cb overlapping @page. So we convert the page * offset into units of clusters (vcn), and round the vcn down to a mutliple of * cb_size clusters. * * We then scan the runlist for the appropriate position. Based on what we find * there, we decide how to proceed. * * If the cb is not compressed at all, we copy the uncompressed data over from * the compressed data. * * If the cb is completely sparse, we just zero out the destination. * * In all other cases we initiate the decompression engine, but first some more * on the compression algorithm. * * Before compression the data of each cb is further divided into 4kiB blocks, * we call them "sub compression" blocks (sb), each including a header * specifying its compressed length. So we could just scan the cb for the * first sb overlapping page and skip the sbs before that, or we could * decompress the whole cb injecting the superfluous decompressed pages into * the page cache as a form of read ahead (this is what we do when invoked via * VNOP_READ()). * * In either case, we then need to read and decompress all sbs overlapping the * destination, potentially having to decompress one or more other cbs, too. * * Because the sbs follow each other directly, we need to actually read in the * whole cb in order to be able to scan through the cb to find the first sb * overlapping the destination. * * So, we read the whole cb from disk and start at the first sb. * * As mentioned above, each sb is started with a header. The header is 16 bits * of which the lower twelve bits (i.e. bits 0 to 11) are the length (L) - 3 of * the sb (including the two bytes for the header itself, or L - 1 not counting * the two bytes for the header). The higher four bits are set to 1011 (0xb) * by the compressor for a compressed block, or to 0000 for an uncompressed * block, but the decompressor only checks the most significant bit taking a 1 * to signify a compressed block, and a 0 an uncompressed block. * * So from the header we know how many compressed bytes we need to decompress to * obtain the next 4kiB of uncompressed data and if we did not want to * decompress this sb we could just seek to the next next one using the length * read from the header. We could then continue seeking until we reach the * first sb overlapping the destination. * * In either case, we will reach a sb which we want to decompress. * * Having dealt with the 16-bit header of the sb, we now have length bytes of * compressed data to decompress. This compressed stream is further split into * tokens which are organized into groups of eight tokens. Each token group * (tg) starts with a tag byte, which is an eight bit bitmap, the bits * specifying the type of each of the following eight tokens. The least * significant bit (LSB) corresponds to the first token and the most * significant bit (MSB) corresponds to the last token. * * The two types of tokens are symbol tokens, specified by a zero bit, and * phrase tokens, specified by a set bit. * * A symbol token (st) is a single byte and is to be taken literally and copied * into the sliding window (the decompressed data). * * A phrase token (pt) is a pointer back into the sliding window (in bytes), * together with a length (again in bytes), starting at the byte the back * pointer is pointing to. Thus a phrase token defines a sequence of bytes in * the sliding window which need to be copied at the current position into the * sliding window (the decompressed data stream). * * Each pt consists of 2 bytes split into the back pointer (p) and the length * (l), each of variable bit width (but the sum of the widths of p and l is * fixed at 16 bits). p is at least 4 bits and l is at most 12 bits. * * The most significant bits contain the back pointer (p), while the least * significant bits contain the length (l). * * l is actually stored as the number of bytes minus 3 (unsigned) as anything * shorter than that would be at least as long as the 2 bytes needed for the * actual pt, so no compression would be achieved. * * p is stored as the positive number of bytes minus 1 (unsigned) as going zero * bytes back is meaningless. * * Note that decompression has to occur byte by byte, as it is possible that * some of the bytes pointed to by the pt will only be generated in the sliding * window as the byte sequence pointed to by the pt is being copied into it! * * To give a concrete example: a block full of the letter A would be compressed * by storing the byte A once as a symbol token, followed by a single phrase * token with back pointer -1 (p = 0, therefore go back by -(0 + 1) bytes) and * length 4095 (l=0xffc, therefore length 0xffc + 3 bytes). * * The widths of p and l are determined from the current position within the * decompressed data (dst). We do not actually care about the widths as such * however, but instead we want the mask (l_mask) with which to AND the pt to * obtain l, and the number of bits (p_shift) by which to right shift the pt to * obtain p. These are determined using the following algorithm: * * for (i = cur_pos, l_mask = 0xfff, p_shift = 12; i >= 0x10; i >>= 1) { * l_mask >>= 1; * p_shift--; * } * * The above is the conventional algorithm. As an optimization we actually use * a different algorithm as this offers O(1) performance instead of O(n) of the * above conventional algorithm. Our optimized algorithm first calculates * log2(current destination position in sb) and then uses that to derive p and * l without having to iterate. We just need an arch-optimized log2() function * now to make it really fast as we for now still have a small loop which we * need to determine the log2(). See the below code for details. * * Note, that as usual in NTFS, the sb header, as well as each pt, are stored * in little endian format. */ static inline errno_t ntfs_decompress(ntfs_volume *vol, u8 *dst_start, const int dst_ofs_in_cb, int dst_size, u8 *const cb_start, const int cb_size, upl_page_info_t *pl, int cur_pg, const int pages_per_cb) { /* * Pointers into the compressed data, i.e. the compression block (cb), * and the therein contained sub-blocks (sb). */ u8 *cb; /* Current position in compression block. */ u8 *cb_end; /* End of compression block. */ u8 *cb_sb_start; /* Beginning of the current sb in the cb. */ u8 *cb_sb_end; /* End of current sb / beginning of next sb. */ /* Variables for uncompressed data / destination buffer. */ u8 *dst; /* Current position in destination. */ u8 *dst_end; /* End of destination buffer. */ u8 *dst_sb_start; /* Start of current sub-block in destination. */ u8 *dst_sb_end; /* End of current sub-block in destination. */ /* Variables for tag and token parsing. */ u8 tag; /* Current tag. */ unsigned token; /* Loop counter for the eight tokens in tag. */ unsigned skip_sbs; BOOL skip_valid_pages; ntfs_debug("Entering, compression block size 0x%x bytes.", cb_size); /* Do we need to test for and skip valid pages in the destination? */ skip_valid_pages = FALSE; if (pl && pages_per_cb > 1) skip_valid_pages = TRUE; /* * Do we need to skip any sub-blocks because the destination buffer * does not begin at the beginning of the compression block? */ skip_sbs = 0; if (dst_ofs_in_cb) skip_sbs = dst_ofs_in_cb / NTFS_SB_SIZE; cb = cb_start; cb_end = cb_start + cb_size; dst = dst_start; dst_end = dst + dst_size; next_sb: ntfs_debug("Beginning sub-block at offset 0x%lx in the compression " "block.", (unsigned long)(cb - cb_start)); /* * Have we reached the end of the compression block or the end of the * decompressed data? The latter can happen for example if the current * position in the compression block is one byte before its end so the * first two checks do not detect it. */ if (cb == cb_end || !le16_to_cpup((le16*)cb) || dst == dst_end) { ntfs_debug("Done."); return 0; } /* Setup offsets for the current sub-block destination. */ dst_sb_start = dst; dst_sb_end = dst + NTFS_SB_SIZE; /* Check that we are still within allowed boundaries. */ if (dst_sb_end > dst_end) goto err; /* Does the minimum size of a compressed sb overflow valid range? */ if (cb + 6 > cb_end) goto err; /* Setup the current sub-block source pointers and validate range. */ cb_sb_start = cb; cb_sb_end = cb + (le16_to_cpup((le16*)cb) & NTFS_SB_SIZE_MASK) + 3; if (cb_sb_end > cb_end) goto err; /* * If the destination buffer does not start at the beginning of the * compression block, skip sub-blocks until we reach the beginning of * the destination buffer. */ if (skip_sbs) { skip_sbs--; /* Advance source position to next sub-block. */ cb = cb_sb_end; goto next_sb; } /* * If the destination page corresponding to this sub-block is valid, * skip the sub-block. */ if (skip_valid_pages) { BOOL skip_sb; skip_sb = upl_valid_page(pl, cur_pg); /* * Advance current page if the destination pointer is going to * cross a page boundary. Doing this here unconditionally * means we do not need to advance it later on when switching * to the next sub-block thus it saves us one test for * @skip_valid_pages. */ if (!((dst - dst_start + NTFS_SB_SIZE) & PAGE_MASK)) cur_pg++; if (skip_sb) { /* Advance position to next sub-block. */ cb = cb_sb_end; dst = dst_sb_end; goto next_sb; } } /* Now, we are ready to process the current sub-block. */ if (!(le16_to_cpup((le16*)cb) & NTFS_SB_IS_COMPRESSED)) { /* * This sb is not compressed, just copy its data into the * destination buffer. */ ntfs_debug("Found uncompressed sub-block."); /* Advance source position to first data byte. */ cb += 2; /* An uncompressed sb must be full size. */ if (cb_sb_end - cb != NTFS_SB_SIZE) goto err; /* Copy the sub-block data. */ memcpy(dst, cb, NTFS_SB_SIZE); /* Advance position to next sub-block. */ cb = cb_sb_end; dst = dst_sb_end; goto next_sb; } /* This sb is compressed, decompress it into the destination buffer. */ ntfs_debug("Found compressed sub-block."); /* Forward to the first tag in the sub-block. */ cb += 2; next_tag: if (cb == cb_sb_end) { /* Check if the decompressed sub-block was not full-length. */ if (dst < dst_sb_end) { ntfs_debug("Filling incomplete sub-block with " "zeroes."); /* Zero remainder and update destination position. */ bzero(dst, dst_sb_end - dst); dst = dst_sb_end; } /* We have finished the current sub-block. */ goto next_sb; } /* Check we are still in range. */ if (cb > cb_sb_end || dst > dst_sb_end) goto err; /* Get the next tag and advance to first token. */ tag = *cb++; /* Parse the eight tokens described by the tag. */ for (token = 0; token < 8; token++, tag >>= 1) { unsigned lg, u, pt, length, max_non_overlap; u8 *dst_back_addr; /* Check if we are done / still in range. */ if (cb >= cb_sb_end || dst > dst_sb_end) break; /* Determine token type and parse appropriately.*/ if ((tag & NTFS_TOKEN_MASK) == NTFS_SYMBOL_TOKEN) { /* * We have a symbol token, copy the symbol across, and * advance the source and destination positions. */ *dst++ = *cb++; /* Continue with the next token. */ continue; } /* * We have a phrase token. Make sure it is not the first tag * in the sub-block as this is illegal and would confuse the * code below. */ if (dst == dst_sb_start) goto err; /* * Determine the number of bytes to go back (p) and the number * of bytes to copy (l). We use an optimized algorithm in * which we first calculate log2(current destination position * in sb), which allows determination of l and p in O(1) rather * than O(n). We just need an arch-optimized log2() function * now. */ lg = 0; for (u = dst - dst_sb_start - 1; u >= 0x10; u >>= 1) lg++; /* Get the phrase token. */ pt = le16_to_cpup((u16*)cb); /* * Calculate starting position of the byte sequence in the * destination using the fact that p = (pt >> (12 - lg)) + 1 * and make sure we do not go too far back. */ dst_back_addr = dst - (pt >> (12 - lg)) - 1; if (dst_back_addr < dst_sb_start) goto err; /* Now calculate the length (l) of the byte sequence. */ length = (pt & (0xfff >> lg)) + 3; /* Verify destination is in range. */ if (dst + length > dst_sb_end) goto err; /* The number of non-overlapping bytes. */ max_non_overlap = dst - dst_back_addr; if (length <= max_non_overlap) { /* The byte sequence does not overlap, just copy it. */ memcpy(dst, dst_back_addr, length); /* Advance destination pointer. */ dst += length; } else { /* * The byte sequence does overlap, copy non-overlapping * part and then do a slow byte by byte copy for the * overlapping part. Also, advance the destination * pointer. */ memcpy(dst, dst_back_addr, max_non_overlap); dst += max_non_overlap; dst_back_addr += max_non_overlap; length -= max_non_overlap; while (length--) *dst++ = *dst_back_addr++; } /* Advance source position and continue with the next token. */ cb += 2; } /* No tokens left in the current tag. Continue with the next tag. */ goto next_tag; err: ntfs_error(vol->mp, "Compressed data is corrupt. Run chkdsk."); NVolSetErrors(vol); return EOVERFLOW; } /** * ntfs_read_compressed - read and decompress data from a compressed attribute * @ni: non-raw ntfs inode to which the raw inode belongs * @raw_ni: raw compressed ntfs inode to read from * @ofs: byte offset into uncompressed data stream to read from * @count: number of bytes to return in the destination buffer * @dst_start: destination buffer in which to return the data * @pl: page list in which @dst_start resides (or NULL) * @ioflags: flags further describing the read (see ntfs_vnop_read()) * * Read compressed data from the raw inode @raw_ni, decompress it, and return * the decompressed data in the destination buffer @dst_start of size @count * bytes. * * If @pl is not NULL, it is the page list in which @dst_start resides with * @dst_start beginning at offset zero in the first page of the page list. * * When @pl is not NULL, we have to check each page in the page list for being * valid and if it is we have to skip decompression of its data so that we do * not overwrite and dirty but not yet comitted data and even in the read-only * driver we want to skip decompression in this case as there is no point in * decompressing data we already have decompressed and have in cache. * * This function allocates a temporary buffer to hold a compression block and * reads each compression block in sequence into it using cluster_read() which * gives us read-ahead on the raw inode. Once it has the data it decompresses * it straight into the destination buffer @dst_start and stops when @count * bytes have been decompressed (usually this will be the end of the * compression block). * * Return 0 on success and errno on error. */ errno_t ntfs_read_compressed(ntfs_inode *ni, ntfs_inode *raw_ni, s64 ofs_start, int count, u8 *dst_start, upl_page_info_t *pl, int ioflags) { s64 ofs, init_size, raw_size, size; ntfs_volume *vol = ni->vol; u8 *dst, *cb; uio_t uio; int err, io_count, pages_per_cb, cb_size, cur_pg, cur_pg_ofs, last_pg; int cb_type, zero_end_ofs, dst_ofs_in_cb; ntfs_debug("Entering for compressed file inode 0x%llx, offset 0x%llx, " "count 0x%x, ioflags 0x%x.", (unsigned long long)ni->mft_no, (unsigned long long)ofs_start, count, ioflags); ofs = ofs_start; dst = dst_start; cb = NULL; uio = NULL; zero_end_ofs = last_pg = cur_pg_ofs = cur_pg = 0; /* * We can only read from regular files and named streams that are * compressed and non-resident. We should never be called for anything * else. */ if (!NInoAttr(raw_ni) || raw_ni->type != AT_DATA || !NInoCompressed(raw_ni) || !NInoNonResident(raw_ni) || !NInoRaw(raw_ni) || NInoEncrypted(raw_ni)) panic("%s(): Called for incorrect inode type.\n", __FUNCTION__); if (ofs & PAGE_MASK || count & PAGE_MASK) panic("%s(): Called with offset 0x%llx and count 0x%x at " "least one of which is not a multiple of the " "system page size 0x%x.\n", __FUNCTION__, (unsigned long long)ofs, count, PAGE_SIZE); cb_size = raw_ni->compression_block_size; /* * Doing this means that we can assume that @pages_per_cb <= 1 implies * that @pl is not NULL in the below code. */ pages_per_cb = 0xffff; if (pl) { last_pg = count >> PAGE_SHIFT; pages_per_cb = cb_size >> PAGE_SHIFT; } /* * Zero any completely uninitialized pages thus we are guaranteed only * to have a partial uninitialized page which makes the decompression * code simpler. */ lck_spin_lock(&ni->size_lock); init_size = ni->initialized_size; raw_size = ni->allocated_size; if (ofs > ni->data_size) panic("%s(): Called with offset 0x%llx which is beyond the " "data size 0x%llx.\n", __FUNCTION__, (unsigned long long)ofs, (unsigned long long)ni->data_size); lck_spin_unlock(&ni->size_lock); size = (init_size + PAGE_MASK) & ~PAGE_MASK_64; /* @ofs is page aligned and @count is at least one page in size. */ if (ofs + count > init_size) { int start_count; start_count = count; /* Do not zero a partial final page yet. */ count = size - ofs; /* * If the beginning of the i/o exceeds the initialized size we * just need to zero the destination and are done. */ if (ofs > init_size) count = 0; if (!pl) bzero(dst + count, start_count - count); else { /* Only zero complete, invalid pages. */ for (cur_pg = count >> PAGE_SHIFT; cur_pg < last_pg; cur_pg++) { if (!upl_valid_page(pl, cur_pg)) bzero(dst + (cur_pg << PAGE_SHIFT), PAGE_SIZE); } last_pg = count >> PAGE_SHIFT; cur_pg = 0; } if (!count) { ntfs_debug("Done (request in uninitialized region)."); return 0; } if (init_size < size) zero_end_ofs = init_size - ofs; } dst_ofs_in_cb = ofs & (cb_size - 1); do_next_cb: /* Truncate the final request if it is partial. */ io_count = cb_size - dst_ofs_in_cb; if (io_count > count) io_count = count; /* * If a page list is present and a page is larger than or equal to a * compression block and the current page is valid, skip this whole * page. */ if (pages_per_cb <= 1 && upl_valid_page(pl, cur_pg)) { io_count = PAGE_SIZE - cur_pg_ofs; cur_pg_ofs = 0; cur_pg++; goto next_cb; } /* Determine the type of the current compression block. */ cb_type = ntfs_get_cb_type(raw_ni, ofs - dst_ofs_in_cb); if (cb_type >= 0) { err = cb_type; goto err; } /* * If the compression block is sparse, bzero() the destination buffer * (skipping any valid pages) and go to the next compression block. */ if (cb_type == NTFS_CB_SPARSE) { int stop_pg; ntfs_debug("Found sparse compression block."); /* Only zero invalid pages. */ if (!pl || pages_per_cb <= 1) { bzero(dst, io_count); goto pl_next_cb; } stop_pg = cur_pg + pages_per_cb; if (stop_pg > last_pg) stop_pg = last_pg; for (; cur_pg < stop_pg; cur_pg++) { if (!upl_valid_page(pl, cur_pg)) bzero(dst_start + (cur_pg << PAGE_SHIFT), PAGE_SIZE); } goto next_cb; } /* * Create a uio or reset the already created one and point it at the * current attribute offset. */ if (!uio) { uio = uio_create(1, ofs, UIO_SYSSPACE32, UIO_READ); if (!uio) { ntfs_error(vol->mp, "Not enough memory to allocate " "uio."); err = ENOMEM; goto err; } } /* * If the compression block is not compressed use cluster_read() to * read the uncompressed data straight into our destination buffer. */ if (cb_type == NTFS_CB_UNCOMPRESSED) { int stop_pg; ntfs_debug("Found uncompressed compression block."); /* * If no page list is present or the only page is invalid use * cluster_read() to read the uncompressed data straight into * our buffer. */ if (!pl || pages_per_cb <= 1) { /* * Add our destination buffer to the uio so we can read * into it using cluster_read(). */ uio_reset(uio, ofs, UIO_SYSSPACE32, UIO_READ); err = uio_addiov(uio, CAST_USER_ADDR_T(dst), io_count); if (err) panic("%s(): uio_addiov() failed.\n", __FUNCTION__); err = cluster_read(raw_ni->vn, uio, raw_size, ioflags); if (err || uio_resid(uio)) goto cl_err; goto pl_next_cb; } /* * Page list present and multiple pages per compression block. * Iterate over all the pages reading in all invalid page * ranges straight into our buffer. */ stop_pg = cur_pg + pages_per_cb; if (stop_pg > last_pg) stop_pg = last_pg; for (; cur_pg < stop_pg; cur_pg++) { int start_pg, start_ofs; /* Skip over valid page ranges. */ if (upl_valid_page(pl, cur_pg)) continue; /* * We found an invalid page, determine how many * sequential pages are invalid. */ start_pg = cur_pg; while (cur_pg + 1 < stop_pg) { if (upl_valid_page(pl, cur_pg + 1)) break; cur_pg++; } /* * Add our destination buffer to the uio so we can read * into it using cluster_read(). */ start_ofs = start_pg << PAGE_SHIFT; uio_reset(uio, ofs_start + start_ofs, UIO_SYSSPACE32, UIO_READ); err = uio_addiov(uio, CAST_USER_ADDR_T( dst_start + start_ofs), (cur_pg + 1 - start_pg) << PAGE_SHIFT); if (err) panic("%s(): uio_addiov() failed.\n", __FUNCTION__); err = cluster_read(raw_ni->vn, uio, raw_size, ioflags); if (err || uio_resid(uio)) goto cl_err; } goto next_cb; } /* * The compression block is compressed. Read the compressed data into * our temporary buffer, allocating it if we have not done so yet. */ ntfs_debug("Found compressed compression block."); if (!cb) { cb = OSMalloc(cb_size, ntfs_malloc_tag); if (!cb) { ntfs_error(vol->mp, "Not enough memory to allocate " "temporary buffer."); err = ENOMEM; goto err; } } /* * FIXME: As an optimization we could only read the actual allocated * clusters so cluster_read() does not waste time zeroing the sparse * clusters when there are whole pages worth of them. Probably not * worth the effort as that may mess around with the read-ahead * streaming detection and having read-ahead messed up is likely to * cause a performance hit outweighing the benefit gained from not * doing the zeroing. Especially so since we would incur overhead in * determining the number of non-sparse clusters. */ uio_reset(uio, ofs - dst_ofs_in_cb, UIO_SYSSPACE32, UIO_READ); err = uio_addiov(uio, CAST_USER_ADDR_T(cb), cb_size); if (err) panic("%s(): uio_addiov() failed.\n", __FUNCTION__); err = cluster_read(raw_ni->vn, uio, raw_size, ioflags); if (err || uio_resid(uio)) goto cl_err; /* * We now have the compressed data. Decompress it into the destination * buffer skipping any valid pages if a page list is present. */ err = ntfs_decompress(vol, dst, dst_ofs_in_cb, io_count, cb, cb_size, pl, cur_pg, pages_per_cb); if (err) { ntfs_error(vol->mp, "Failed to decompress data (error %d).", err); goto err; } pl_next_cb: if (pl) { cur_pg += pages_per_cb; if (!pages_per_cb) { cur_pg_ofs += io_count; if (cur_pg_ofs >= PAGE_SIZE) { cur_pg_ofs = 0; cur_pg++; } } } next_cb: ofs += io_count; dst += io_count; count -= io_count; dst_ofs_in_cb = 0; /* Are we done yet? */ if (count > 0) goto do_next_cb; /* * Check if the last page is partially outside the initialized size and * if so zero its uninitialized tail. */ if (zero_end_ofs) { count = PAGE_SIZE - (zero_end_ofs & PAGE_MASK); if (!pl || !upl_valid_page(pl, zero_end_ofs >> PAGE_SHIFT)) bzero(dst_start + zero_end_ofs, count); } if (uio) uio_free(uio); if (cb) OSFree(cb, cb_size, ntfs_malloc_tag); ntfs_debug("Done."); return 0; cl_err: if (err) ntfs_error(vol->mp, "Failed to read %scompressed compression " "block using cluster_read() (error %d).", cb_type == NTFS_CB_COMPRESSED ? "" : "un", err); else { ntfs_error(vol->mp, "Partial read when reading %scompressed " "compression block using cluster_read().", cb_type == NTFS_CB_COMPRESSED ? "" : "un"); err = EIO; } err: if (uio) uio_free(uio); if (cb) OSFree(cb, cb_size, ntfs_malloc_tag); ntfs_error(vol->mp, "Failed (error %d).", err); return err; }


text:
On Saturday, colorful parachutes filled the sky as spectators cheered and whistled from the ground.
"You can't really describe it," said Dani Ould, a Grand Junction, Colo. resident and fourth-time tandem jumper. "Every time is just as good and the rush is amazing."
Skydive Moab hosted the ninth annual Mother Of All Boogies Sept. 26-30 at the Canyonlands Field airport. A variety of skydiving events also were held at Caveman Ranch, Castle Valley, and Mineral Bottom Canyon.
Beverly Gabbay of Salt Lake City said she had done eight jumps during the five-day event. Gabbay has been skydiving for three years and said she was attracted to the sport because of the friendly and welcoming people.
Jay Swanson, a first-time tandem skydiver, said the experience was "awesome and kind of addictive." Swanson came with his friend Mike Lanfor, who has been teaching skydiving for 23 years and has 8,500 jumps under his belt, not counting several thousand military jumps.
"Most people absolutely love the freefall," Lanfor said. "That's what it's all about because it's the purest form of flying. And we're not just falling towards the earth we're flying. I can go forward, I can go backward, I can do it on my back, sitting down, upside down... We can all fly in relation to each other in total control and it's amazing. It's an aerial ballet or a dance."
Skydivers at this year's event also attempted to set a new state record. POPS, Parachutists Over Phorty Society, attempted to break the Utah state record for free fall-formation.
According to www.thepops.org, the Utah record of 13 people in free-fall formation was set in Ogden on Nov.16, 2002. During this year's Moab boogie a free-fall formation was attempted with 18 people but it was unsuccessful.
The event also included a bonfire on Friday night and a dinner Saturday with live music by local band Stonefed.
Clint McBeth, the owner of Skydive Moab, said the event drew about 160 registered jumpers as of Saturday, not including all of the tandem jumpers.
McBeth said he has been skydiving since he was 16 and has jumped 6,000 to 7,000 times. McBeth said one of his favorite things about the skydiving business is meeting tandem jumpers.
"With tandems you get to see new people, meet new people from all around the world. They come in nervous and excited and when they leave they're just a totally different person," said McBeth. "It's a really fun easy job and you make people happy for a living."


text:
You are hereHome ›
Narrow Search
Now showing results 1-1 of 1
The Picture Post Network involves individuals, schools, organizations and communities in a systematic monitoring project of their local environment, especially vegetation health. Digital photographs - taken from the same location and positioned in... (View More) the same direction and orientation - allow individuals, schools, organizations, communities and scientists to monitor a variety of environmental parameters, including plant health, growth, and phenology; erosion and deposition; water levels; and cloud and canopy cover. Participants study change over time in their local area, view NASA satellite imagery on the same days as the pictures, and contribute towards improving their own communities. The website provides instructions for participating, including planning and installing a picture post, monitoring projects, and taking and uploading pictures, and a repository of images. Picture Posts may be added by anyone interested in monitoring a particular location. Currently, Picture Posts sites are active at science centers, schoolyards and gardens, local parks, and nature reserves. (View Less)
Materials Cost: $10 - $20 per group of students


text:
Ron Guth: On most of the earliest versions of 1873 coins, the 3 of the date looked more like an 8 because the loops of the 3 were so close together. This was changed later in the year, creating two major varieties: Closed 3 and Open 3.
The Open 3 variety appears to be twice as common as the Closed 3 variety, per the PCGS Population Report (as of July 2011). The 1873 Open 3 Cent is readily available in all grades up to, and including, MS-64. In Gem condition, any 1873 Indian Cent is scarce; the Open 3 variety becomes very rare in MS-66. None have been graded higher.
The population of Brown 1873 Open 3 Cents is less than that of Red-Brown examples, but that is due primarily to the lower value of the Brown versions (which does not always justify getting them certified).
© 1999-2018 Collectors Universe NASDAQ: CLCT


text:
'The Blacklist' Recap: Season 1, Episode 17, 'Ivan'
It was another week of fervent chatter in the comment section for our "The Blacklist" recaps. You guys do an amazing job of breaking this show down each week. There were plenty of theories about Red and Ressler's relationship – some posters think they are father and son (hearkening back to Ressler and Red sharing the same rare blood type in the Anslo Garrick episode) while others say Red merely sees a younger version of himself in Ressler and wants to keep Ressler from heading into a path of death and destruction in the wake of Audrey's death. There was also a lot of criticism of Liz for not realizing her husband was quite literally washing the blood off his hands while she made love to him in the shower.
Speaking of Tom and the blood on his hands, let's see where things go next for him. Time for this week's recap…
We begin in some kind of secretive computer center. A lone man is there and the computer printers suddenly jump into action printing out the word, "smile" over and over again. He furiously tries to stop whatever is going on and eventually shuts off the power to the computers.
He leaves the facility and gets on his phone. He calls someone named, "David" and says he has the prototype with him and is taking it elsewhere. We see a computer hacker using security cameras to watch the man. The hacker uses his computer wizardry to crash the man's car and someone grabs the computer prototype the man was carrying. The car crash victim is dead in the accident.
Red is in the woods with his bodyguard Dembe and "Mr. Kaplan." As a side note, I really hope we someday get a Mr. Kaplan backstory episode. She is a very interesting character. Kaplan has located the bodies of Juicy and Cowboy. Red compliments her on her ability to find crime scenes. Red instructs Kaplan to rebury the bodies, but he calls 9-1-1 and anonymously reports Juicy as missing.
At Tom and Liz's house, a police detective wants to talk to them about missing Jolene Parker. The detective asks some mildly suspicious questions about Tom's relationship with Jolene.
Red tells Liz about this week's Blacklist target, a hacker named Ivan. Red says Ivan is the one who killed the man we saw at the beginning of the episode, named Nathan Platt. Red says Ivan was responsible for crashing the Russian economy and other cyber crimes. Red does not like Ivan because Ivan stole from him.
As the FBI begins investigating Ivan, Liz asks Aram to also look into Jolene's cell phone records. She, Aram, and Ressler go to check on Platt's car. Hey find evidence proving Ivan was behind the killing. They also find the container the "prototype" was in. But, just as they start to look at the case, two cars of NSA agents drive up and tell them to freeze.
The NSA agent in charge and Dir Cooper start sharing information. The NSA says that Platt was working for them on something called Project Skelton Key. The Skeleton Key is designed to take out all computers and systems in a time of war, rendering a country's entire defense system useless. Ivan has stolen a prototype of it.
Red tells Liz that Ivan is in Minsk, Belarus. He says the best way to know what Ivan is up to is to set up a problem for Ivan and then solve it. Red does this by flying to Minsk and meeting with the man. He tells Ivan that Ivan stole $5 million from Red several years ago. Ivan says he knows nothing about it but Red then says that the police are coming to get Ivan for the assassination of the NSA agent. Just then, a police car pulls up outside the restaurant Ivan is in. Red offers to take Ivan to safety, in exchange for the missing $5 million (plus interest) and Ivan accepts. Red helps Ivan escape and, in the process, pretends to shoot and kill Ressler. It is very convincing.
Back in DC, Liz has found out that Jolene is an alias for Lucy Brooks. She tells Tom about it and he seems surprised. Liz feels terrible and thinks she brought this dangerous woman into their lives. Tom creepily says "You never really know people, do you?" We know he is talking about himself too! Liz vows to find Juicy and get to the bottom of this. Hey Liz, if you want to know what happened, the guy you are hugging has all the answers!
Aram tells Liz that the last call Juicy made was to Liz and that it came from a building on LaVista street. We know the building is Tom's secret hideout.
Red is flying Ivan out of Belarus and figures out that Ivan wasn't the one who stole the Skeleton Key. Ivan says it was a mystery hacker who is trying to look like Ivan. The hacker has been getting into all kinds of stuff, paid porn sites, cyber cash, and he even hacked into the social security department to boost payments to a woman named Lee.
Ressler goes to see Lee who inadvertently tells him that her grandson is good with computers. We see the boy in school, taking a math test. He finishes it in less than 15 minutes.
Liz arrives at the LaVista street address. Just before she goes in, she calls Tom for some reason. Noooo! Liz, if you had waited you could have caught him inside! With this tiny bit of warning, Tom starts pulling all his photos and info down from the walls and attempts to clean out all damaging evidence at the site. Liz comes inside and it looks like Tom did a good job. The place looks suspicious (including guns strewn about), but it is not clear what was going on here. As Liz investigates, Tom manages to barely avoid her a couple times. He eventually throws a door at her, knocks her down, and gets away without her seeing him. But, Tom will need to set up a new hideout. Liz calls the local police to investigate everything at the site.
We see Tom calling "Phantom Finance." He identifies himself and says, "Watchpost identified, bonafides in question, tell Berlin I was forced to liquidate." Well, that was cryptic. He hangs up immediately.
Ressler and Liz arrive at the high school of Ms. Lee's grandson, Harrison. We see Harrison mimicking the activities of a girl he clearly likes but is afraid to speak to. When Liz tries to talk to Harrison, he runs. He uses The Skeleton Key to activate the fire alarm at the school, sending everyone into the halls and providing cover for him to escape.
Liz asks Red about Juicy. Red says he can't tell her anything about the woman. Liz can tell he is hiding the truth and gets mad. "Thank god I have Tom," she says to Red.
Back to the case of Harrison Lee. He FBI figures out that Harrison is stalking the daughter of the man running the Skeleton Key program. Just then, Harrison uses the Key to shut down power all across Washington DC. Harrison uses the blackout to communicate with the daughter, named Abby. He sends her text messages pretending to be her friend, Jackie and lures her outside her outside and then to a nearby metro station. Once there, Harrison speaks to her in person. Harrison confesses his love for Abby. She is creeped out by him (who wouldn't be?!?!) and tries to run away. He accidentally knocks her down and knocks her out. Harrison runs. He gets onto a metro train and Liz shoots out the window so she can get on it too.
Harrison is despondent that Abby does not love him back. He sets the metro train to crash but Liz talks him out of it. The train stops just in time. Whew, for a second there I thought Liz was going to die. Ha! No way. This subplot was pretty lame if you ask me.
Liz tells Tom about her day and being attacked by the man in what she thinks was Jolene's apartment. He expresses concern but then returns to cooking dinner. Liz gets an email from the DC police with photos of all the evidence found in the LaVista location. Liz sees a child's toy in the trash that is identical to one she gave to Tom earlier in the episode. She had asked him to take it to school with him. Memories wash over Liz and it appears she finally believes that her husband is not what he seemed to be.
Liz goes to see Red. "You were right," she tells him. She goes inside and she shows her an antique music box he has been building. It plays a song that reminds Liz of her youth. She begins to recall a terrible fire she was in as a child. She says that when she used to have nightmares, her father would hold her and hum the same tune and make her feel better. Liz is so confused and upset. Red holds her in his arms as the song plays. "Everything is going to be ok," he says.
And the episode is over.
WHOA!! Why isn't Liz more freaked out that Red knows so much about her childhood? The folks who remain convinced that Red is Liz's father got some real ammo from this episode, that's for sure. I am still not convinced. Red keeps telling Liz he has never lied to her and he has told her he is not her dad. Of course, the biggest news in this episode is that Liz has figured out that Tom is a bad guy. Now, she must figure out what to do with that knowledge.
I am eager to hear what all of you think about this latest episode. Post away in the comment section! I'll see you there!
If you want to read more of Jason Evans' commentary on the Movie and TV industry, follow him on Twitter @TVFilmTalk and be sure to check our Speakeasy every Monday and Wednesday for his recaps of "The Blacklist" and "Arrow."


text:
Hello, what brings you to my page?
No comments yet. You could be the first to leave one.
Register and Login to leave comments!
|Chevy Truck World - Chevy Trucks and GMC Trucks, Chevy Truck Photos, Chevy Truck Forums, GMC Truck Photos, GMC Truck Forums
|Congratulations Texas Chapter!
Wanted 4/26- Slammedk5 (Missouri City, TX) is looking to buy Wanted old school pick up for project
For sale 5/27- Spartacus is selling Rims w tires for sale Northern VA
Members may post for free in our SELLING and BUYING forums.
Feature your commercial link here per month.
Contact us today!


text:
@benwerd I can seeee yooooo(r browser) ;) #indiewebcamp
@benwerd I can seeee yooooo(r browser) ;) #indiewebcamp
Just logged in to my site using my phone number, courtesy of Aaron Parecki. #indieauth just got about 50 times better! Incredible work at #indiewebcamp
Checked into Vísar for the second day of #indiewebcamp Reykjavik Remote party
"So easy is it, though many housekeepers doubt it, to establish new and better customs in the place of the old."
— Walden, Henry David Thoreau
Talking about peer-to-peer federated file sharing at #indiewebcamp Reykjavik remote party:
Oh my god @benwerd's werd.io/?_t=hanshotfirst is *awesome*
Aaron Parecki good afternoon! Or, something like that… eternal sunlight is messing my internal clock up ;) Hope you're all having a good time at #indiewebcamp
@sandeepshetty footnotes in a note?! Preposterous! :D
@packagist feature request: ID attrs on each version element on package pages so we can link to individual versions
php-mf2 alert: v0.1.15 just released with rel+alternate parsing and an HTML-safe option to deal with the p-* e-* ambiguity. Just in time for everyone implementing #indiecomments at IndieWebCamp :)
Good morning #indiewebcamp! We set up a pre-conference hangout for all those not in the US. Care to join us?
13g of #rubbish today
@benwerd is that an indieweb comments implementation I see there?
I wonder if there's a relationship between the frequency of cutlery use broken down by type and overall health
New York Style Bagels is my favourite bagel #recipe
The Contextual and Exponential Future of Facebook is a fascinating set of interviews with #facebook engineers. Of particular interest is the discussion of various implications of "liking" something on fb.
@begoesti looking good! Ours are shooting up too — at least something's enjoying the eternal sunlight :)
82g of #rubbish today
Okay, I think I have a working two-way #webmention #indieweb comments implementation happening. Anyone fancy replying via webmention so I can make sure?