All right. Good morning, everyone. So today we'll be a bit different. We will do a lab for primer So we'll do or I won't do you will do a mini version of lab four so if you can do it the lab four is not much harder than this lecture, but As the caveat, I'm not going to be doing anything. You're gonna be doing it So we're gonna we're gonna come up with a solution together and this will also somewhat help for The quiz because we're going to deal with processes and make processes and do fun stuff So what are we doing? Today, this is our task. We want to send and receive data from a process and actually communicate with it And this will also help you if you ever need to glue things together with Python Essentially, we are making the Python sub process module So our task for today We want to create a new process that launches whatever programs in the command line argument And then we want to send the string testing with a new line to that process And then we want to receive any data it writes out So we want to send data to it and get data from it. So we're communicating with it both ways So that sounds pretty cool. How do we do that? So I'll introduce some API's that we're going to be using today. The first one is called pipe so Jesus that jackhammer is annoying So the first one is called pipe and It takes as an argument. Oh, sorry. I missed the it there. It takes an array of two ints That fills in a file descriptor and it's a C function. So it returns zero on success negative one on failure and sets error no So a pipe is basically a one-way communication channel using two file descriptors so if pipe succeeds it fills in the array of two integers and at index zero that is the Read end of the pipe so you're only allowed to do a system call read on that file descriptor and then File index one is the right end of that pipe So you're only allowed to call write on that file descriptor and the way it works is anything you write to it Will pop out of the read end so that's kind of useless for a single process because you're writing data You read but because it's a file descriptor and we know when we fork we can copy file descriptors And we know standard file descriptors. We can use a pipe to communicate between two processes As long as we Do some fancy stuff that we'll be doing today so you can think of it if it's easier as like a kernel manage buffer and again anything that's Written to the right end will pop out of the read end and the kernel will handle that for us So we saw exec Vee.  There's C wrappers To make our lives easier and one of the C wrappers that will make our life a little easier is called exec LP So instead of taking a full path It just takes a file and then an argument. That's not an array and it just ends with a null null Pointer so this is the exact same as exec Vee It does not return on success and it will return negative one on failure and set error. No, so it skips Having you use a raise and it also searches for executable using your path environment variable So you don't have to specify the whole stupid, you know path to some executable starting at root All right, so next API will use is this close. That's how you close a file descriptor So you're done with it and the kernel can reuse it So again return zero on success negative one on failure sets error. No, that will be a common theme And it closes it that file descriptors no longer usable You can't read or write on it and then it frees up that file descriptor again file descriptors are just a number So the curl can reuse it again So if you close file descriptor zero Typically open will use the lowest file descriptor so it would just replace zero So that's one way you can fiddle with file descriptors another way is This one dupe and dupe two So it essentially makes a copy of a file descriptor and again This one's a little bit different. It returns a new file descriptor on success negative one on error and sets error. No so it copies the file descriptor old file descriptor and Sets a new file descriptor so they're both pointing to the same thing So in the dupe version We just copy, you know, we take the old file descriptor and we just get a new file descriptor back And both old and new are pointing at the same thing But in the dupe case, we don't get to pick what number that is and the dupe two case we do so Dupe two is also going to be atomic So what dupe two will do is it will take this new file descriptor argument If it's already open and a valid file descriptor It will close it for you would would free up that number and then it would do the copy of course If we have multiple threads, for example, if we have to argue about stuff for like your quiz or any multi-threaded Program, there'd be some race condition there if it has to close in an open and another thread couldn't come in and swoop That file descriptor so dupe two is atomic and that's why it's you know a special system call So it'll make new the old fd and the new fd refer to the same thing. So any questions about this? So there's make two file descriptors point to the same thing and with dupe two we can change the number All right. Now we know enough to make a solution so If you want to follow along whatever it's in the lecture 16 directory That that's how you build it. It's already built and we're going to create an executable called sub process That just takes a program as an argument and again We want to send the string testing to it and read whatever data writes out to standard out All right, so There is a small skeleton So the first thing just make sure that we have two command line arguments otherwise it returns e in Val which this means invalid arguments and Here I just set up some arrays because we'll probably need them and create a fork and then in the parent I give these Pipe file descriptors and the process ID of the child and the child I give the argument for the name of the program So Where should I start? So let's go back to our goal Because you guys are doing this I am not so we want to create a new process that launches from the command line argument So if we fork we probably want to turn our child into that That's probably a good first goal and then we want to send the string testing to it and then read whatever result comes back out of it So what should I start with? Yeah Okay, so Comment was write some code to figure out if I am the child or parent. I did that so I have a parent function and a child function and You know when I make it I have a bunch of unused file descriptors because I don't set them to anything yet Or I don't use them All right, so first off So let's see if I want to run it with this I expected to you know Run that you name program and then I should be able to capture whatever output it gives So if I run that right now, oh, whoops, I already write some code. Oh, yeah, I already started you off There we go. So in the child I just execute that program So that makes sense Cool, what should I do next? You name yeah Yeah, so we could execute oops We could execute any program we want What's gonna happen if I execute cat right now?  I didn't do anything with them, right? So there's two things it's trying to read from standard in which is the same standard in as my sub process And it's like and now I don't see anything available to read. Yeah Okay, so let's set up the pipe between each other. Let's capture some output first. That's sound good to everyone So if I want to create a pipe between the two and essentially share file descriptors Where should I create my pipe? Should I do it before or after the fork? After the fork so you want me to do like here I'll do pipe with out pipe Like that sorry It is an error. It's already two. Yeah, so it's all right, too Okay, so I'm going to just put everything so I wrote a check error function that basically just checks if the return is negative one And then we'll just exit the program with error. No Just to make debugging a lot easier. Oops All right, so I do that Okay What's My next plan So I created a Pipe for an out pipe. So After here, right, I'll have out pipe fd 0 Which is my read end And then I have out Pipe fd one is my right end Sorry No, so they'll get set from the pipe call. Yeah Yeah, so in this case if I have my pipe after the fork, how many pipes do I have? Two right after fork. I have two processes. So I have two pipes and There's no way I can share because they have two independent pipes now, right? So I can take advantage of the fork So if I move this up So now how many pipes are there one pipe, how many processes are there? To so I have one pipe in two processes. So then I can connect them together. Hopefully, right? Okay, so that seems a bit better So I have my pipe and then here in the parent in the child I pass, you know out pipe file descriptor and a pipe file descriptor to both of them. So I both have In those functions, they can both access both of the file descriptors but there's only gonna be one pipe here and It's the same for processes because whenever I forked it copies their exact clones of each other They're independent, but all their file descriptors are the same and file descriptors are essentially pointers So they have all the same file descriptors Sorry. Yeah, so they're they're kind of it. So there's one put so first We're just gonna deal with getting output from that process So we have one pipe we have two processes and we just need to connect them together somehow Yeah, yep, but I forked after the pipe so it's caught When you create a new process everything's the same thing at the time of the fork Right and this is how it's gonna work. This is good how it's gonna work on quiz three, too So everything right before the fork at the time of the fork They're exact copies of each other with the only difference being the return value of that fork call So right after the fork, I will have two processes one will come into This and called parent and then one will come into child and called child But at the time of the fork they're going to be independent or they're going to be complete copies of each other So because I create a pipe before the fork, they both have those file descriptors. So This would be, you know If I want to give them a number there's going to be the standard file descriptor 012 So this one's going to be file descriptor 3. This one's gonna be file descriptor 4 like globally Because it just uses the lowest number So after we fork both processes are going to have the five file descriptors They're going to have the three standard ones and then two from the pipe Yeah, so we're going oh, why do I have in pipe fd? So we're going to be giving data to it and then reading data from it. They're each going to be pipes Yeah, they're all one way So I'm going to have a one way into the process and one way out of the process So we're just going to deal with the one way out of the process first Yeah Yeah, so I just initialize it at zero, but it gets updated due to the pipe call So the pipe it's going to use you know the pipe fd argument and then update them if it's successful No, so by default whenever you create a process, right? There's the standard file descriptors There's file descriptor zero one and two And then the way Linux says if you open new file descriptors use get the lowest number first So pipe's going to open two new file descriptors and it's just going to do lowest first So I'm just I know that this is going to be file descriptor three and this is going to be file descriptor four It is pointing to the read end of the pipe Sorry Yeah, so um So the comment was can we make the read end point to standard output?  What did we do? What system call did we use? Right, right. So if we want to capture the output Then what we would want is for the right end of the pipe The child process That end of the pipe should be its standard output, right? So it would write to that and then In the parent process we should be able to read from that to get data out of it Right, and that's our one-way communication channel. We want to Send that process's standard Output to us and we want to read from it So we can do that with a combination of dupes So in here if I want to do that, uh, let's So I could do a dup If I want to overwrite a file descriptor so Let's say I want to overwrite Which file descriptor am I trying to replace here if I'm trying to capture its output Standard out so I should probably replace standard out and this is just It's just a little bit more readable than seeing one. I wouldn't really care if you put one But here so what file descriptor do we all want to replace with standard? replace with standard out out pipe fd one right So So if we do that That gives us that's a little bit closer. So now this would replace Essentially, it replaces the original standard out, which would be the terminal or something and replaces it with the pipe fd And then overwrites whatever was file descriptor one originally So if we do that, let's see what happens if we run your name. So if this pipe is connected Should we see output now? Cool So we did something That's cool. We should probably check that if we have errors or not Oh, there's comments in chat too. Cool Yeah, so pipe's just a one way communication channel. All right So let's make sure dupe didn't have any errors. So it doesn't have any errors. We're capturing it And we should be nice and clean up all of our file descriptors. So we should also just check error We should probably just close out pipe fd Zero close So this way we can clean up all of our file descriptors. So Let's read through it again. So At the time of the fork we have five file descriptors. Yeah Yep So I don't need it because now there's two file descriptors pointing at the pipe I don't need file descriptor four for example So here here, let's go through it. So here at out pipe fd. I have five file descriptors open, right? So I have the default zero one two and I have file descriptor three and four Okay, so then the fork happens. So both processes have the exact same set of file descriptors Let's argue about the child. So if we go in the child Here it would be a dupe two of what I say that was four So this makes fd four four and fd two Point to the same thing Right after this line So at this point I'm just cleaning up my file descriptors. So close this would close fd Three and this would close fd four and that way it's nice and clean So my new process whenever exec happens, it's still it just has this three standard file descriptors It doesn't have any additional garbage open And we're going to see why this is important quite soon. But yeah No, so if I close zero then when that process spawns zero will be an invalid file descriptor No, I never close zero So I overwrote zero in this line But I and then I closed additional ones I'd never close zero Like I yeah, I closed three and four So four and zero are pointing to the same thing Yeah, yeah, I just killed a pointer. So now now I just have one file descriptor pointing to it and it's the standard Your standard out. Yeah We're being Nice Yeah, we're we're very nice programmers here Okay, so We don't see any output. That's a good sign So how do I read whatever the hell just happened? How do I get that output back out of it? Yeah, so I want to I'm communicating with the parent So I should be able to Get data somehow. So what should I do here? A for loop Sorry, we want to print out what the child sent to us. So it should it dumped information to the pipe see Okay, let's Yeah, that's that's the class dog Um, so what do you want to do? Sorry? So let's see. So here's our pipe Right and this is right And this is read so In here we have The child And then we have the parent Okay, so the way the child is is the child's file descriptors are one two three After we clean them all up and then It is we leave this alone original original And then file descriptor one points to out pipe Fd One which is essentially This So it's filling up that side of the pipe Okay, and then so in the parent, what do you want to do? Sorry So are you But we want to capture it. What about if we want to do something with it? Yeah So standard in So in the parent I have So here I have one two three. So these are all original Because I haven't screwed with them yet, right? These are all original and then I also have I also have out pipe fd Zero and out pipe fd One Yeah Get my standard into out pipe zero Yeah Yeah, that seems that seems logical, right? Why am I We don't want to touch the parents file descriptors. They're all good It's a file descriptor. We can read from it. So what happens if we just read from it? All right, who wants to tell me how to read from it? Read Okay Whoops Read Let's see Oh Oh semicolon. All right Whoops Hey that compiled statement with no effect Yeah, that compiles Yeah Yeah, I mean why wouldn't that work? Can I do this null semicolon? I can do that reads just a function pointer Yeah, I mean, but if we just do read it the compiler gives us a nice warning. It says statement with no effect So, I mean it's not going to do anything But I mean it's cool. It runs still it compiles so So read so it needs a file descriptor what file descriptor we want to read from Out pipe fd zero. So that's the read end of the pipe So if the child process is writing to the pipe anything Anything it writes to the pipe comes out of the read end if we read didn't okay It needs a buff and size t Help my brain. I hit my head this morning. So I don't know what to do Buffer 10. Okay, we'll use this magic number All right, so we'll use this magic number Yeah, so that's a question. Do I have to check if it's ready first like what about they I get there before it writes any data and well Is read a blocking system call? Yeah, so read will just sit there until it has data That's remember our example that just read read and wrote It was essentially cat It just waited for data right it just waits there So that's fine. So that should be fine if we wait there So read needs a buffer and then size of buffer so that's Missing a bracket All right, that's kind of cool So what should I do next so that seems to compile it did something Yeah, so there's something So we'll take a little bit of shortcut So if it you had to read more than 4000 bytes, you'd have to do multiple calls and fill and do the buffer We'll assume everything's pretty short and fill and fills that so we'll be we'll be a little bit lazy But in general you should do better than this Yeah, although first I should probably check my errors, right? So I don't even know if this is valid. It's I'm just throwing it out. So what does read return? Anyone off the top of their head Number of bytes read I heard okay bytes read Okay, well I should probably check my errors because it returns negative one if it's invalid. So I'll just Do my check error function just to make sure So check error again just checks us the return value is negative one if it's not negative one It just returns it doesn't do anything if it is is it captures the error No Prints the message with whatever you give it and then exits the process So here let's check that we actually read something So that's still good. Hey It didn't crash or do anything. It's pretty cool Let's check printf And I'm allowed to do printf because I didn't screw with my the parents file descriptors So I can still do printf because remember we know printf. It just calls right on file descriptor one So if I screwed up file descriptor one I can't you if I printf it's just going to go to the pipe and then go off to some nether regions So this is why in the parent. I did not touch them So here I read Let's see. Uh, was it you let I think that's the right format bytes read Maybe it's ld Tape has int. Oh, okay. It's just an int Well, I'm just seeing the number bytes read first. So I read six seems right Because if I run it It's linux one two three four five and a new line So read so we have some evidence that we actually We actually read something and we've read something from another process. It's kind of cool, right? Well, let's wrote out. Let's just write out whatever we wrote. So I'll give you the shortcut for this. So this is a weird format specifier So this is if it's not a c string. So it is percent sign dot star s So by default we you kind of know what this means, right percent sign s It's a c string, but is the output from this process a c string? No, we've No idea if it ends in an all or not. So this format specifier Just lets it be a string and you have to say the length of the string So the length of my string is the number of bytes I read And then buffer So then I can got So I'll just output the string from my buffer given the number of characters I read. So if I do that I My parent process should have actually captured the output from essentially the sub process or the child If I do that got linux Wow, so we actually are communicating between processes now It's pretty wild, right? Yeah, yeah Yeah, so so how this worked So how this worked is in we created a pipe So we create a pipe So it had a right end and a read end and then we forked So now we have two processes a parent and a child They both have the same pipe all the file descriptors are copied at that point in time Then after that they're all independent So in the child what we did is we replaced file descriptor zero with The right end of the pipe So now whenever that process So whenever that program prints the standard out, it's just going to do a right one and now Instead of right one being whatever is a default. We set it to the pipe So whenever it writes to standard output, it's actually writing to our pipe now And then we're just nice. We close the extra file descriptor so that That process just has the three standard file descriptors open and not some additional garbage And then after we exec Yeah, so after we exec it just starts running that program it You know it does a read on file descriptor zero in this case It doesn't use standard input. It just displays some message and that writes to file descriptor one like standard out So it writes to the right end of our pipe and then in our parent process We just simply read that data So we're communicating between two processes here. That's our one-way communication channel out Okay, who wants to guide me through the next one So next one we want to whoops We want to send the string testing with a new line To that process Yeah, so another pipe Luckily enough I already created a pipe an in pipe fd So that's pretty good. Should I create my pipe before or after the fork? Oh Oh, oh you said before okay, okay All the jackhammers are screwing with my hearing Okay So now we have two pipes So we already set up the out pipe properly because we're set it up so that we We set up so that we read from it and then we set up so the child writes to it So for the in pipe, we should be doing the other way around So the child should be reading from it and we should be writing to it to form that communication channel So let's deal with the I'll remove these and let's deal with the child first So what should I do for the input pipe in the child whoops pipe not pi pi would be good though Yeah, go ahead Yeah, so I want to connect the standard output. So I probably need a dupe to call because I know I want to replace standard input Which is just going to be zero. So what's replacing standard input? so I in in pipe fd which zero, right That is the read end of the pipe so whenever now whenever this Process executes whenever it reads from standard in it would be reading from the pipe Okay, I will and then we want to be good and close our additional pipes this Oops, why am I recording macro stop? all right Now we fixed our pipes Cool. Well now we still have a bunch to do. Okay, so now we want to Write information to that pipe So this was Okay, well if I want Give that process Some data. What do I want to do? Just write and I should write to it first Before I read from it. Otherwise that doesn't make too much sense Hey, right to the pipe Oops, right to the in pipe. So let's be specific and then read from the out pipe So cons car Message so our message was going to be testing with a new line Okay, well, I want to write to it. So I should probably check by it's written And then I'll do the right system call. So What file descriptor do I want to do here? in pipe fd one Right, so that's the right end of the pipe And then I need a buffer. So I want to print the message and The size is whatever the string length is So that should do that and I will check for error check error bytes written Right just to make sure so If I execute it now And I use sub process with if I use u name doesn't matter. It's not going to read anything anyways, right? so More interesting is probably cat. So if I do that got testing So I wrote testing to it And then I read testing from it Because cat just doubles whatever so Everyone get that okay, so We have forgot something Sorry set exit it stops earlier. So it does stop a bit earlier um Are we good parents? We want to kill it We want to wait for it We create a zombie. So we should actually be fairly nice So if I want to wait for it I can actually where do I want to wait for it? Yeah, after the right and before the read probably So I just let it finish and then I'll read whatever data it has So how do we be good parents? So yeah, we can do waitpid So if we want to waitpid we need Somewhere to put it so waitpid It wants a process id which is childpid so And then stat location. So that's w status and zero So we want to waitpid for it And then we should of course check error so it takes a int pointer and sets it to the status of the child whenever it exits So Yeah, so man So if we look at it We call wait status Wow this Suspends Okay, that that that doesn't help Essentially it just writes the exit status there and then you can check it So first we'll write some asserts W if exited so this is just stuff you'll know from the beginning So we want to make sure that the process has exited six That it's exited and then if we want to get its exit status we use w exit status So that gets its exit status so we can double check it actually exits properly so What's an exit status that means everything's all good? Zero so we should probably just make sure that our program's all good and nothing bad has happened So let's do that So now when we do this on cat Uh-oh spaghettios We broke something So I have to control c and it's sitting there And the cat's still not running But we broke something our weights in the wrong spot So no our weights not at the wrong spot wait after read Could but I don't want to So what is if it's cat what's it going to do it just reads Over and over how when does it stop? End of file or when read is zero or it's closed Did we close it? so the in the parent The parent still has The right end of the pipe open So how does cat know it's done if I still have the file descriptor open It doesn't know what your process is going to do you could write data to it at any given time So after I write to it here What should I probably do? Close So let's check error close And what should I close one So now if I close that that means hey I'm done I close that file descriptor and it should Then be able to send you know that end of file thing which is just read returns one which essentially just means it's done So that file descriptor cleanup is going to be a fairly important thing in lab four because you're going to be essentially this Right if I do this over and over again and type That has what three pipes in it. That's lab four So if something freezes Then it's probably you didn't handle your file descriptors properly So here I'm actually fairly messy with my file descriptors. I could be a little bit nicer where At the beginning, which ones do I know for sure? I'm not going to use at all Well, I don't use this one at all So I should probably close it and I also don't use outfd I don't use outfd one So I don't use the right end of the pipe. So those are two ones. I don't use I should just close them immediately Just to keep things clean. So I don't have this stupid issue where You know file descriptors stay open and it just kind of looks like it hangs there because it's waiting for data So I cleaned up So I cleaned up in pipe fd zero and cleaned up in pipe fd one Then I cleaned up out Pipe fd one. I should probably clean up out pipe fd zero just to be complete So I'm done with it here. So I should probably close it right after I'm done with it So now I'm clean so here In main I created two pipes and then Oh, sorry in main. I created two pipes. I can delete this now I created two pipes and then the child I closed all four of them So all four file descriptors. So I close them here close them here after I shuffled them around And then in the parent, I also closed all four of them. So I closed the ones. I know I'm not going to use immediately And then I closed the right one right after my right call and I closed the read one right after my read call So I cleaned up everything nice and this is Kind of why they tell you to you know make sure you malloc on free because there's some things it's much it's very important So now if I do this Subprocess cat Cool and also the uname one works As well still so you're just sending a data that it doesn't care But I can run a whole bunch of other stuff ls ls works too. I can capture everything from ls I don't know so true is also a program that doesn't do anything just sets a one as an exit code So that's fine Then false. Oh, well false. It always exits with error code one. So triggers that assert So that's pretty cool And then as the next things that I'll leave you off of to fix is hey, what about if I do, you know, something like this invalid huh It kind of failed silently Why would it fail silently? Yeah Yeah, but why can't I see that a problem happened So it tries to run the program called invalid Which doesn't exist So I could also instead of invalid I just do all right. Well, we're at time anyways, but that's that's our solution. So Close So you'll have to fix that in lab four But but lab four if you understood this today You just do it a bunch more times So if I do cat pipe cat pipe cat Well, I'm creating three processes two pipes. I'm just connecting This to that and then this to that That's our one-way pipe Cool. Well, let's remember I'm pulling for you. We're all in this together


In person or not, if you haven't yet joined OpenShift Commons and want to get in our Slack channels and get some connections to your peers and create some connections to some of the Red Hatters who are here today, please do scan this little QR code and make sure that you join and we'll get you on board as quickly as possible. A lot of you are already part of member organizations. It's an organizational based membership. So if you haven't already joined, if you go into the participants list and you see your name there, still fill out the join form because that gets you pushed right into the Slack channel a little bit later. So take a take a moment for that. I know some of you in Paris, we didn't manage to ship any books over there, but there'll be a book signing today at the lunch hour for the gathering. And then again at there and Jason Dovey's is here. Some of you may have seen there's a Kubernetes boot camp that's going to start at noon our time Pacific time. You have to have a special ticket for that. So go back in and re-register if you bought a general admission ticket. If you want to go to that, there are still a few seats left. And also over the time of coupon, we are going to have a number of wonderful office hours, including one of my favorite things, the OKD, the open source side of OpenShift working groups off the showers, which is always fun. And I hear Christian Glombeck is going to be talking a little bit about what's coming for ARM and OKD. So that's going to be a hot topic for us, along with code ready containers for OKD and Charo Groover. There's some more live office hours going to be happening. And if you're in person and in the room, Josh Burkis is the person to chat with because he's been the organizer behind that. Thanks so much, George, for taking that on. And if you're in person, there is a Red Hat job social at some place called the Million Dollar Theater, which sounds like fun. And you're welcome to join us and have a treat and a coffee. And I'm sure they'll give you a swag because they're wonderful about that. But really, I just want to shout out and thank you all for joining us here today. It's a totally amazing thing to be able to do something like this, totally live with the virtual audience joining in and for watch parties around the world. I'm so grateful for all of our end user talks who are coming up right after the noon hour for them for sharing their stories and for helping us make the community as strong as it is worldwide. So again, if you're into the OpenShift meetups, join Duane in the in those. There we go. Where where was I? And now I'm live again in the back room. There I am. Hey, Paris, now I can see you again. Shout out to Paris for being there and taking it on and joining us there. Love seeing you all, even if I can't see you through the masks. Totally grateful for all of you joining us. Join OpenShift Commons. Take a trip over into, I think it's this way if I'm pointing or maybe that way, if I'm pointing to the Expo Hall and join Duane and he can get you hooked up. If you're somewhere else in the world, I have seen some amazing places, Indonesia, Chile, folks all around the world that are joining us virtually. Pretty much if there is not an OpenShift meetup near you, watch out because Duane will get you to organize one. And so we'll do everything we can do to do that. And I will post the QR code or the link rather than the QR code in the chat for joining again.  Or if you're like me, a Red Bull or a monster drink and let's power through. I quickly wanted to give a shout out to Yasin, Sebi and all the organizers. You can't imagine how hard it is to pull all these together. So a huge shout out, a huge thanks to Yasin, Sebi and all the hosts who worked tirelessly to bring this into reality. Thanks, you guys.


Good afternoon, everybody. I'm Tommy O'Brien, coming to you live from TFNN headquarters in St. Petersburg, Florida, 2 p.m. Eastern time on Friday, two hours left to go in the trading week, and we have markets hanging around positive territory from most of the day. Dow Jones up 244 points, training at $26,387. We got S&Ps up 16 points above today for the first time since October of last year, S&P futures trading $2908. Nasdaq up 23 points, trading at $79.71. Notes and bonds, lower price, higher yield, 10-year note, negative 15 ticks, $123.03, 30-year bond, negative 28 ticks, $146.27, and we're going to start it off with those rates, jumping over to the 10-year right now, $2.558. We got a number just within the last three months. We were down there at $2.366. You're almost approaching two-tenths of a percent as we're above that level. Jumping over to futures markets, two hours left to go in the trading day, and we'll start it off with the Dow. So we had a little bit of an acceleration to the upside. 9.40 a.m. We reached highs 26.438. Dow trades down to a low of $26,313. We're sitting right at 26,400. Nasdaq 100, highs of the session, $8.15 a.m. This morning, $76.64. We trade down to about $76.20, just at $11.15 a.m., and we're now currently trading $76.39. S&P's trading at $2909, the high we made just after the opening bell, $29.14. Crude oil bouncing around a bit. We had quite a deal in the energy sector with Chevron buying, we'll pull it up, and a Darko, $33 billion. We'll see if that deal goes through, though, because as that came out, it resurfaced that Occidental had been more than $70 a share. The Chevron deal coming in at about $65. I'm sure there's more details as to why they chose the Chevron deal as opposed to Occidental. And gold, $12.94.75. Currently, it was up there approaching $12.99 on a couple occasions, and Euro trading $1.12.97. In terms of what else you have out there, quite a day of fundamental news jumping over. Check out JP Morgan with their earnings this morning off the highs, but still up about 4.6% for JP Morgan on the session. And we had Disney with details on Disney Plus, up 10.4%, and that hitting Netflix a bit as you got Netflix trading at $351 down 4.4%. Stay tuned. We've got our man Dave White coming up with a power trading hour right now, and then I'll be back at 3 o'clock. I'm going to be covering for Tom from 3-4. We'll have our man Dave coming on for the Tech Insider Hour at 3.30. Stay tuned, folks. Have a great Friday.


Thanks for everybody for being here today for what is a very special moment for our entire franchise 11 pages Besides 18 font, I'm getting older my eyesight side Awards and accolades are nice to have Records are great even though they are meant to be broken But more importantly my hope is that I made an impact on every person that I've met over the years in a positive way Congratulations Probably still thinks that every one of my punch should go out at the five-yard line and never hit a touch back. I Knew that it was impossible yet. I still feel like I Derek came to his announcement today a lot of your teammates former teammates People who just worked in the building and it it says more about you as a person than a player And that's more important anyway. I hope you're proud of it That's right Sup Titans fans Brett Kern just retired today. Thanks for all the memories. Thanks for all the good times proud to represent y'all Y'all have a good one. He's out


Hey guys, my name is Sub and I am the channel manager for sports. You probably know me from STG, Sub the Gamer, my main channel. If you guys don't know me, it's totally cool. But I talked to George a couple of weeks ago and I actually go way back with George. It's crazy and we'll get to that in another episode. But I talked to George and I told him I really, really, really want to express to the viewers. My journey on YouTube, basically, the things that I've learned. I want to talk to you guys about the struggles that I've gone through. A lot of the hardships that I've gone through as well. I want to talk to you guys about a lot of the stuff that I learned on YouTube as well. And of course, I want to talk to you guys about all the advice and the tips and everything I got to make you guys very successful on YouTube. But not only on YouTube, obviously, but also successful in your daily life, man. Because I'm telling you, that's what we're going to be talking about in our first episode right here, right? You know, the first episode, I could talk to you guys about a lot of stuff. I could talk to you guys about the biggest tip on YouTube to grow, to grow your audience and to get successful. I could talk to you guys about, you know, the worst thing that's ever happened to me on YouTube. And we'll talk about that. I'll never forget that day. It was a sad day, man. But what I want to talk to you guys is about the future. Yes, I want to talk to you guys about the future. Now you must, you're probably wondering, why does he want to talk about the future? Like, let's, let's worry about the present right now. Let's worry about getting our subscribers and our viewers up. That will happen. I will definitely talk about that.  Your goal is to get big. Your goal is to have hundreds of subscribers, thousands of subscribers, maybe even a million or more subscribers. Your goal is to have an audience who supports you at every single time. Your goal is to go to a restaurant, right, and have people notice you. Your goal is just to make it big on YouTube, right? It's everybody's goal. That's what we do, YouTube. Not only to entertain people, but to build your audience, to entertain more people, to have a bigger audience, a family, if you will, right? So we're going to be talking about the future. And this is a very, very important topic, a very important topic, because I strongly believe in what I want to tell you guys, and I hope you guys can really, really take this to heart and learn this throughout your entire YouTube journey. Learn this throughout your YouTube journey, and if you already are a YouTuber, maybe this will, maybe you already implement this. If not, maybe it will help you implement this, because honestly, I can tell you this is one of the most important things I've ever, ever heard, and I've ever, ever realized on YouTube, okay? And we're going to be talking about pride. We're going to be talking about pride and the future. The simple message is, no matter how big you get on YouTube, no matter how many thousand subscribers you have on YouTube, no matter how many million subscribers you have on YouTube, you should not ever have pride. Have pride. If you don't know what pride is, pride is basically putting yourself over somebody else, thinking you yourself are better than somebody else. That's what pride is, and it's not a good thing. It is not a good thing. Think about it, man. I started YouTube, I started YouTube about two to three years ago. I still remember when I first started. I still remember all the struggles I've gone through, and we'll talk about that, such as me, not being able to get a partner channel and starting all over again after 5,000 subscribers. I still remember all the struggles that, you know, how, that depression that caused me, man, like, I remember everything. I remember it all, and we'll talk about that in videos to come.  I remember all that.  I hope you guys go even farther. Get the million subscribers. But I really want to tell you guys that pride is overrated. You never, never want to put yourself above somebody. It's unethical. You got to remember where you came from.  And you guys are not nobodies, but there are people who have pride and consider people with zero subscribers and nobody that you got to realize that everybody has a heart. Everybody's a human being. Everybody has feelings. So with that, I just wanted to make this, you know, short and simple. I'm sorry that video's a little bit longer, but I'm really passionate about this, because think about it, with my subscribers, right? I have a lot of people who watch my videos, and I'm really grateful for it. And I have a lot of people who look up to me. I have a lot of people who look up to me. So how would it be if these people look up to me in my videos, and then I see them in real life, and I completely disregard them? Or people, you know, I just completely disregard people and pretend like they're just people who watch my videos and whatnot, and they're nothing else? You should not have pride, and you should never, ever put yourself above somebody else. We're all equal, man. We're all the same people, we're all families, bro. That's how it's supposed to be. You gotta be pride-free. And, you know, I'm just really giving you guys this advice because it could really, really ruin an image. It could really, really hurt people's feelings, and it just doesn't work out well. It doesn't work out well. So with that being said, my friends, this is our first episode of The Dream, or, you know, I'm excited for this, right? I'm really excited for STG Dream. I'm really, really hoping that this could really help you guys, and in the comments down below, you can go ahead and let me know anything that you've learned on your YouTube journey so far, and let me know what you guys think about what I talked about, but I really wanted to make this, and don't worry, in videos to come, I'll be telling you guys about my hardships, my struggles, some of the awesome things I've learned, some awesome advice to help you succeed on YouTube as well. And like I said, I'm not trying to brag at all with where I am on YouTube. I'm really grateful for it, but honestly, I want you guys to beat me. I want you guys to be at the top, but I also want you guys to be respectful once you're there, and I want you guys to be pride-free. I hope you guys enjoyed this video, and I'll see you guys soon. Much respect to George. Much, I mean, look at George! Come on, man! Look at George! Where's the pride in George? There's no pride in George. He's always smiling, he's always happy, he's always helping people. That's the goal, that's the dream. Hope you guys enjoyed, and I'll see you guys soon. Peace! More music to learn where to get. More music to spice up your videos. Click the first playlist to watch the George show on freedom. That's my show. Or watch the Anthony show, or the Alex show, also on freedom. And we will grow together as a family, because this is the freedom family. You are part of it, we are all part of it, and we're all growing together. So grow with us! Partner with freedom! That play now button right there on the video bar is all you need to click to get started.


Fy่nwch. The first item of business is portfolio questions and the first portfolio this afternoon is wellbeing, economy, fair work and energy. I would say to those members who would wish to seek to ask a supplementary question, to please press the request-to-speak button during the relevant question or enter the letters RTS in the chat function if online. Question number one, I call Keith Brown. To ask to Scottish government what assessment it has made of the potential impact any future dyfiadw yr eich ddweud o'r Llywodraeth ddiwedd yn cyfnod i gwychwyr haf wrth nhw'n dweud o'r fawr cynllunion i gweithio. Fyndwitsch chi yn gweithio'r Llywodraeth o'r fawr cynllunion i gwychwyr haf, yn cyrchu'r Llywodraeth o'r ddweud o'r fawr cynllunion i gwychwyr haf, mae hyn yn groesio yn i gwychcarel iawn i gychwaith o'r swingingai Gŷiaith. Fawrweithiau gweithio'r Llywodraeth o'r ddweud i gwychwyr haf, a help to shift the curve on poverty and deliver upon our shared ambition for a just transition to a net zero, nature positive wellbeing economy that's fair, that's greener and it's a growing economy as well. In building a new Scotland, a stronger economy with independence, we proposed a number of specific labour market measures, including a fair national minimum wage, set at a rate that better reflects the cost of living and applies to all ages and better access to flexible working as well. Can I thank the minister for that response and ask whether he has any idea at all why, given the fact that both the Scottish and UK trade union congresses have come out in support of the devolution of employment law. A number of Labour MSPs in this Parliament have spoken previously in the chamber on support of that. Has he any explanations to why not a single Labour MP signed the motion considered by the Parliament last night in support of the devolution of employment law? The motion that did not mention independence only mentioned devolution, which is meant to have been the settled policy of a Labour party. Is he aware whether the UK Labour party still supports this policy of devolving employment law to the Scottish Parliament? I would suggest to the minister that he answers the points with reference to matters that fall within his jurisdiction. The Scottish Government supports the devolution of employment law and would ask all parties in this chamber, particularly Labour party, to give their past comments on this to support the Scottish Government's position. It seems that, given the issue that was highlighted by Keith Brown, the enthusiasm for the devolution of employment law appears to be waning. That is particularly worrying for Scotland as it seems to be waning because a Westminster election is approaching and that should worry us all in Scotland. I urge the Labour party to clarify its position and to get full-heartedly behind the Scottish Government's position that the devolution of employment law should happen as soon as possible. In the event, there is a Labour Government in Westminster. 2. Maureen Macpherson To ask the Scottish Government whether it will provide an update on what it is doing to tackle gender pay gap and promote equal pay. 2. Maureen Macpherson Our 2023 programme for government outlines the direct action that the Scottish Government is taking to tackle gender pay gaps and promote equal pay in Scotland's labour market. That includes action sectors with historically low pay and job insecurity, where women are disproportionately overrepresented. From April 2024, adult social care workers delivering direct care in commission services will see their pay increase to a minimum of £12 per hour to give an example. Alongside that, we will provide funding to uplift pay in the private, voluntary and independent sector to £12 an hour for those delivering early learning and childcare. 3. Maureen Macpherson I welcome the Scottish Government's efforts to close the gender pay gap with a real determination to make progress. It is clearly that the UK Government is holding progress back and Labour's appalling record on equal pay is a concern. Does the minister agree with me that, if we are to aspire to end the gender pay gap using all tools available, essential employment law is devolved to this Parliament? I think that the member gives yet another reason as to why employment law should be devolved to this Parliament and not only that but as soon as possible. Given that the median gender pay gap for all employees is below the UK gap—12.2 per cent versus 14.9 per cent—and has been since many, many years, and that the median gender pay gap for full-time employees in Scotland is lower in the UK as a whole, it shows that, where we have influence as a Parliament, we are making a real difference to those affected by this issue in Scotland. Therefore, the more powers we have, the more positive difference we can make. 3. Kevin Stewart To ask the Scottish Government what action it is taking to help businesses to take full advantage of Scotland's hydrogen potential. A hydrogen action plan, published in 2022, is supported by a programme of capital funding designed to accelerate the production of renewable hydrogen in Scotland. Funding today includes over £7 million in grants offered to projects via the hydrogen innovation scheme. Those are projects that will drive innovation in renewable hydrogen production, storage and distribution. The next tranche of the hydrogen investment programme, the Green Hydrogen Fund, will launch later this year. The fund will be open to projects that support renewable hydrogen production from Scotland's abundant renewable energy resources. I thank the minister for her answer and I look forward to those announcements in the future. However, I would like to ask the minister how we can build on the successful work on transport, hydrogen-powered transport in Aberdeen. What can we do to increase the amount of hydrogen refueling sites throughout Scotland? Thank you, Kevin Stewart, for that question. I visited the hydrogen hub quite early on in my tenure as minister. It is very impressive. We have invested over £15 million from our energy transition fund towards the development of the Aberdeen hydrogen hub. The hub aims to accelerate that hydrogen economy in Aberdeen. In fact, it is leading the way in that. I know from my visit that it is having visits from other local authorities to look at that model and to establish it throughout local authorities in the whole of the UK. We will continue to work with partners in the public and private sector to understand and stimulate the demand for and the infrastructure needed for hydrogen vehicles. The zero-emission truck task force, which includes Transport Scotland, is exploring the energy infrastructure that is required for HGVs, including consideration of hydrogen refueling, and we will publish an HGV decarbonisation pathway next year. I have obtained requests for a number of supplementaries. I intend to take each of them, so hopefully everybody can be reasonably brief. I call supplementary Brian Whittle. Thank you, Deputy Presiding Officer. I think that we all agree that Scotland has uniquely placed to really capitalise on the green hydrogen market. When the minister was at an event last night for the supply chain, I was at a business meeting yesterday morning when they said that it is really important and that it should be demand-led. What is the Scottish Government doing to create a marketplace for those green hydrogen companies that are coming to fruition now? There are two markets available for hydrogen. There is a domestic market and an export market. In the domestic market, the UK Government—I was very pleased that I had a meeting this morning with the Graham Stewart—were an answer to my question around injecting 20 per cent of hydrogen into the gas grid. They said that they were actively looking at that. It is something that we have been calling on for quite a while. That is a use for hydrogen. Also, distilleries are using hydrogen to decarbonise as well, which is going to make a massive sector. I also got the opportunity to say that Mr Gray is in Germany at the moment to promote and further Scotland's hydrogen interests and support Scottish companies to participate and benefit from the development of the international hydrogen market, as Mr Rittle will know. In particular, Germany has already been working to decarbonise its industry using hydrogen, so that is a great market for us. I welcome the minister's reference to renewable hydrogen as it is critical that we produce green hydrogen in Scotland. Would she acknowledge the importance of linking to renewable electricity production and creating jobs and opportunities, not just in the north-east, as she has outlined, but also in Grangemouth? We have got a commitment to that. There is already quite a lot of hydrogen innovation happening throughout the country. If Ms Boyle will be aware of the EMEC project in Orkney, for example, it had a situation in which it could not get its tidal energy into the grid, so it made hydrogen with it. There is quite a lot of micro hydrogen production happening throughout Scotland. However, I have also been having conversations in Grangemouth about the hydrogen that is going to produce very positive recent noises about green hydrogen, in particular. Shetland is well placed as an energy hub at the centre of the energy rich North Sea. The local Orion project aims to produce wind-powered green hydrogen by 2025. What engagement has the Scottish Government had with the Orion project? I have not had the pleasure of going up to Shetland yet, mainly because my Cabinet Secretary went up to the Northern Isles last summer, so it did not make sense for us both to go, but I look forward to engaging perhaps Ms Wishart would like to invite me. In my region, the empty long gannot site in Concardin has huge potential for green jobs. What recent discussions she has had with Scottish Power, who are the owners of the site, about what their plans are for the site and to help advance the Government's hydrogen ambition? I will have to look back at all the engagements that I have had with the owners of that site, just to get back to clear Baker on that. It is entirely possible that Mr Gray has also had engagement with him, so I will get back to Ms Baker and let her know what that has been. 4. Murdo Fraser As the Scottish Government will provide an update on when the next set of export statistics will be published. Export Statistics Scotland provides the official estimates of the value of Scotland's exports. It covers Scotland's exports of goods and services internationally and to the rest of the UK, excluding oil and gas. The next set of statistics will be published on 29 November 2023 and include data up to 2021. That was pre-announced by the chief statistician in August of this year. HMRC, regional trade and goods statistics, which include figures for Scotland, are also released quarterly with the next update for the third quarter of 2023, due to be released on 14 December. The Scottish Government also published quarterly manufacturing exports for Scotland, statistics for Scotland and the most recent data covering the period up to the quarter 2023. 4. Murdo Fraser I thank the minister for that response. The last set of exports statistics were published in December 2021, so it has been a long gap since we have seen the last set. However, what the last set showed was that Scottish exports to the EU accounted for 19 per cent of the total, but we exported three times more, 60 per cent of the total, to the rest of the UK. Does that not just demonstrate the folly of seeking to align ourselves with the EU at the expense of the rest of the UK, which is by far the largest market for Scottish exporters? What the Scottish Government should be doing for the sake of jobs in Scotland and the Scottish economy is increasing our exports to the rest of the UK and the rest of the world and also to the European Union. Exports to the European Union have suffered as a result of Brexit imposed in Scotland by the rest of the UK, which we did not vote for. That has led to decline in many key exports to the European Union, and if Scotland were to be a member of the European Union in their own right, that would open up lots of export opportunities for Scotland. Our exports are performing extremely well just now, and we should congratulate our businesses for doing that and be proud of that. I have received a number of requests for supplementaries. I intend to take each of them. Can the minister provide an update on the continued impact that export barriers caused by Brexit are having on business costs? The latest business insights and conditions survey, which was published in September, shows that of the businesses in Scotland that face challenges with exporting over a third, 36.1 per cent to be precise, named Brexit as the main cause. It also finds that over a quarter of Scottish businesses are facing extra costs as a result of Brexit, with 16.2 per cent seeing higher transportation costs, and 12.5 per cent are facing increased red tape. Furthermore, the latest small business survey, conducted between November 2022 and April 2023, reported that half of Scotland's small and medium-sized employers who predicted a decrease in turnover next year highlighted Brexit as a contributing factor. Those additional barriers and costs continue to weigh on the economy as a whole. The Office for Budget Responsibility estimates that UK GDP will be 4 per cent lower in the long run due to Brexit. In Scotland, we have experienced a 38 per cent decline in exports of fruit and veg, for instance, and a 45 per cent fall on exports to Europe of animal feed. One side talks down the trade with the United Kingdom and the other side talks down trade with Europe. Instead of seeking and reveling in the prospect of new trade barriers, why do not both Governments just work together to break down those trade barriers? Scotland will continue to do our best to break down trade barriers, and that is why we oppose Brexit. I believe that the member's party also opposed Brexit, albeit it appears to have unfortunately changed its mind because of the views in the rest of the UK irrespective of the damage in Scotland. As I said before, our strategy, and we do a lot of work in London, for instance, promoting Scottish exports, is to increase exports to the rest of the UK, the rest of the world and the European Union as well. That is the best outcome for Scotland's economy. The minister will be aware that, in the period since Brexit, Scottish exports, including oil and gas, have been growing around twice the rate of those from the rest of the UK, but UK export growth as a whole has been lagging behind international competitors. Does the minister agree with me that this demonstrates both the folly of Brexit, but also confirms the approach of the Scottish Government with a coherent strategy to boost exports, agreed with industry, and which is delivering results? I absolutely agree with Ivan McKee, and I thank him for his efforts to help to build up the fantastic track record and exports that Scotland has in its previous role. On the value of Scotland's international goods, exports increased by 13.2 per cent in the year ending in June 2023, compared to the previous year, which is greater in percentage terms than the 12 per cent increase experienced by the UK. Parliament should celebrate and be proud of the fact that Scotland is outperforming the rest of the UK in terms of exports and, indeed, inward investment. That is really good news for the Scottish Government's approach, working in partnership with our business community, our agencies, and good news for jobs in Scotland. To ask the Scottish Government what impact the measures in the programme for government 2023-24 will have on the growth of the economy in North Ayrshire. Our programme for government will increase the quality, create a fairer society and drive opportunity for the people and businesses of North Ayrshire. It will promote inclusion and reduce inequality in the area, benefiting in part from our £70 million investment in community regeneration. It will support the delivery of the Ayrshire growth deal, of course, which we are investing £103 million into transforming North Ayrshire and the wider regional economy. Can the minister outline what a quality job that pays well is one of the primary routes out of poverty? Will the minister outline what action the Scottish Government and partners are taking to ensure that all sizes of companies in my constituency are able to contribute to tackling inequality while growing their businesses? As the member will be aware, the Government's policy is that business is absolutely vital to creating a wellbeing economy and is a key role to play in Cunningham South and beyond, and it is why we support businesses to be a force for good, to put purpose and fair work at their very hearts, and to note that that also benefits productivity and profits as well as people. As part of our £11.5 million investment in the Ayrshire growth deal, communities wealth building and the regional skills and inclusion programmes, we will be supporting local businesses to put fair work first, while also supporting local people to ensure that they get the skills that businesses require. We are also working with other organisations like developing the young workforce in Ayrshire, so the issue raised by the member is central to our economic strategy for the whole of Scotland, including in Ayrshire. To ask the Scottish Government whether it will provide an update on its work to ensure that seasonal agricultural workers have access to effective worker voice under its fair work commitments. The Scottish Government is committed to ensuring that agricultural workers have access to having effective voices under its fair work commitments. In March 2023, we provided funding of £123,000 to support the reopening of the worker support centre, and the WSC assists all seasonal agriculture and horticultural workers in Scotland irrespective of nationality to access free, impartial and confidential information on workplace rights. Migrant workers, particularly those on the seasonal worker visa in horticulture, including in the north-east region, are known to be at risk of exploitation and trafficking. They are not unionised. They face significant language barriers, are often housed in poor, unregulated housing and struggle to access healthcare. They are at the mercy of their employers who may, without notice, say that there is no work for them, leaving them stranded without money or options. What further actions will the Scottish Government take to reduce the risks of trafficking and exploitation and ensure that all workers have access to individual and collective workplace representation? As I said in response to the very important issue raised by the member, the Scottish Government has funded the Worker Support Centre to assist all migrant seasonal agricultural workers in Scotland. We have produced seasonal workers' rights information leaflets, which include guidance on human trafficking and exploitation. We have outreach arrangements in place to support workers to speak Ukrainian, Romanian, Russian, Polish and English, and they are available at a range of times to talk to workers and to provide information or support in terms of the outreach workers and the work that they are doing. Where appropriate, the centre can refer workers to legal charities, the Scottish Government's agricultural wages enforcement teams and other advisers for further support with a range of issues that they may face. It may also be a well as independent research published recently that gave recommendations to be pursued by the Scottish Government and the UK Government in this regard as well. There is a lot of work under way to ensure that we treat this issue seriously. To ask the Scottish Government whether it has undertaken any evaluation of the relative economic benefits of small modular nuclear reactors compared with other forms of energy provision. The Scottish Government does not support the building of new nuclear fishing power stations in Scotland under current technologies. Although SMRs are innovative in their size and construction technique, they use the same method of electricity generation as traditional nuclear fishing. That means the same environmental concerns as traditional nuclear power plants while their economic competitive is still to be proven in practice. New nuclear power could take decades to become operational and would be expensive, pushing up household bills. A set-out in our draft energy strategy and just transition plan significant growth in renewables, storage, hydrogen and carbon capture provide the best pathway to net zero and will deliver a climate friendly energy system that delivers affordable, resilient and clean energy for Scotland. France delivers 70 per cent of its electricity from nuclear energy, giving it a great baseload, and is now the world's largest net exporter of electricity. Does the Scottish Government have any estimate of the opportunity cost of Scotland not pursuing a similar strategy? The fact is that existing nuclear is expensive. Under the current contract awarded by the UK Government of Hinkley Point C, for example, the electricity that will be generated will be priced at £92.50 per megawatt hour. That is a comparison to electricity generated from offshore wind, which we have in abundance in Scotland. I think that we are planning to do a lot more. It is currently priced at £37.35 per megawatt hour. He mentions France. However, let's look at a list of all the European countries that have decided to ditch nuclear. I don't need a running commentary from a secondary position, whilst the minister is seeking to respond to the question. Minister, please resume. I can list in April, Germany, shot down the last of its three nuclear power plants, joining other member states that have no nuclear power stations, and remain opposed to nuclear power, including Austria, Denmark, Ireland, Italy, Estonia, Latvia, Luxembourg, Malta and Portugal. To ask the Scottish Government when it will publish its final energy and just transition strategy. The 23-24 programme for government confirmed our commitment to publish and start implementing a new energy strategy and just transition plan. We are fully considering the views that expressed in the consultation that took place earlier this year, and we will provide further details on that shortly. When the Scottish Government published its draft strategy, the Scottish Trade Union Congress said that workers had little faith in the Government's plan. In light of the SUC's submission to the Government's consultation, can the minister set out precisely what policy changes have been incorporated since then into the final strategy? Well, the final strategy, as I have said, has not been published. However, I would recommend that Mercedes Villalba come to the chamber tomorrow to listen to my statement on the vision for Scotland's future energy, and that will give more information about when the energy strategy will be published. Of course, she will understand that she is asking for detail of a final strategy that has not been published yet. As outlined in the draft energy strategy and just transition plan, all the evidence tells us that we can protect and create jobs in Scotland if we ensure that we get our energy transition right.  Does the minister agree that the Tory backtracking and the uncertainty caused could harm hold back the growth in renewable energy jobs and harm our economic future? I thank Kevin Stewart for that question. He will be aware of the recent report from Robert Gordon University, powering up the workforce report that shows that Scotland has got enormous energy potential and we have the natural resources and the skills that are required to lead the global energy transition. Kevin Stewart is right that the UK Government's backtracking is putting green jobs in our investment in economic growth at risk. I would also highlight the failure to secure any offshore wind projects in the recent allocation round five. We have made representation to the UK Government and I believe that the sector has made a great deal of representation to the UK Government about improvements that we want to see ahead of AR6. Thank you minister. That concludes portfolio questions on wellbeing economy, fair work and energy. I would now propose to move to the second portfolio questions this afternoon, which is finance and parliamentary business. Again, if a member wishes to request a supplementary, they should press the request to speak button during the relevant question or enter the letters RTS in the chat function, if online. To ask the Scottish Government whether it will provide an update on the fiscal framework. I am pleased to say that the first review of the Scottish fiscal framework concluded on 2 August, with a joint agreement reached between the Scottish and UK Governments on changes to the 2016 agreement. That review has yielded a fair and pragmatic set of changes providing a sensible and proportionate set of improvements to the fiscal framework. That furnishes the Scottish Government with more effective levers with which to manage the Scottish budget. I welcome the opportunity for a full debate in this chamber in the coming months in addition to a dedicated committee evidence session. I am grateful to the cabinet secretary for that answer. Just as she has done there, the cabinet secretary made clear in her letter to the finance committee on 2 August that she was signing up to this new deal because the arrangements work in Scotland's favour. The changes made, as the cabinet secretary just said, are fair and pragmatic and will strengthen the financial management leaves available to the Scottish Government. Does the cabinet secretary therefore agree that it is exactly this sort of joint working between the Westminster and Holyrood Administrations that the public both wants and deserves rather than endless constitutional bickering that so often characterises our politics? What I would say is that John Glenn, who is the chief secretary to the Treasury, is a bit of an anomaly in the Westminster or Tory UK Government. He does sit down in a sensible, pragmatic and co-operative way, but he is the exception to the rule. That is why we have managed to secure those very pragmatic changes to the fiscal framework because of that arrangement. Again, I had a very co-operative meeting with the chief secretary to the Treasury just last week. It is just a shame that the rest of the UK Government does not operate in that manner.  There was some concern under the previous fiscal framework that we are competing with London and the south-east of England, and that puts us in a difficult position. Does the cabinet secretary have any concerns that that will continue to be the case? Let me say that I am confident that we are well placed to build our fairer greener economy, and of course, per person, our economy has outperformed the UK's since 2018. The latest data shows that our income tax performance per capita is improving and outperforming the rest of the UK in 2022-23. Of course, it is clear that the UK economic model is disproportionately weighted towards London, and that has an impact on Scotland. Of course, I am sure that John Mason would agree with me with the full powers of independence that we would be able to tailor our economic approach to Scotland's needs and emulate the success of our near European neighbours, who all perform more strongly economically than the UK. To ask the Scottish Government what its response is to the recommendations regarding taxation policy in Oxfam GB's analysis, payment overdue and fair ways to make polluters across the UK pay for climate justice? As Oxfam's report recognises, the regulation of fossil fuel industries and the majority of tax powers remain reserved to Westminster. We will keep pressing the UK Government to take the urgent action needed, especially after their recent backsliding on net zero ambitions. Here in Scotland, we are committed to using the powers that we have to meet our world-leading climate targets. We will continue with our progressive approach to tax and working to ensure that we achieve a just transition, all of which will help to meet our climate goals, safeguard jobs and protect those on lowest incomes. Mark Ruskell Can I thank the cabinet secretary for that response? Transport remains Scotland's most polluting and highest-emitting sector. An investigation by the Scotsman revealed that over 1,500 empty or nearly empty commercial passenger flights, also known as ghost flights, passed through Scottish airports last year. That has to change, so can I ask the cabinet secretary whether she agrees with the report's recommendations on taxation for reducing air travel demand? What have you is on implementing a higher tax for more polluting aircraft, such as private jets? We very much recognise the impact of transport on overall carbon emissions. We are committed to reducing emissions across all modes of transport, including air travel. We remain committed to introducing the air departure tax once the solution is found to the Highland and Islands exemption has been identified, which of course is not an easy process. In doing so, we will carry out a review of the rates and bans of the tax to ensure that they are aligned with our world-leading climate ambitions. To ask the Scottish Government what its assessment is of the effectiveness of its current income tax policies in stimulating economic growth and job creation. We have the most progressive tax system in the UK that raises additional revenue to invest in public services and Scotland's economy. Since our five-band system was introduced in 2018, our economy has outperformed the UK with GDP per person taking into account population growth, growing 0.2 per cent compared to falling 0.8 per cent in the UK, while over 45,000 working age people have moved from the rest of the UK to Scotland in 2021 with a net in migration of 5,000 people. That is consistent with findings from our policy evaluation of the 2018-19 income tax reforms, which show no evidence that they were having a negative impact on the economy. Jamie Halcro Johnston Appearing in front of the Finance Committee on 19 September, David Bell, Professor of Economics at the University of Stirling, told my colleague Liz Smith that, where you have differential tax rates between jurisdictions, you will set up incentives that will cause either capital or labour to move. That move might not be instantaneous, but if two distinct tax systems sit close by each other, incentives are created over time. Given that, under the SNP Green coalition, Scotland is now the highest-tax part of the United Kingdom. Can the cabinet secretary tell me how the Scottish Government is monitoring for the long-term any movements of this nature? As I set out in my first answer, there is no evidence of such movement. Of course, people move to Scotland and stay in Scotland because of a range of factors, not least the social contract and the various policies and supports that are available here that are not available elsewhere. I remind the member that, based on the figures of the Scottish Fiscal Commission, the Scottish Government calculates that more than 52 per cent of taxpayers in Scotland pay less than they would if they lived elsewhere in the UK. Those matters will be kept under review. Obviously, that is why I have set up the expert group on taxation to inform me on current and future tax policies. However, what the Tories can't get away from, of course, is that they want tax cuts, but they still come here asking for more public expenditure. There is no system in the world that supports that type of economic model. I have received requests from a number of members seeking a supplementary. I intend to exceed to each request. I call firstly, a supplementary from Kenneth Gibson. Can the Deputy First Minister quantify the damage of UK Tory tax policies announced in the last September's mini-budget and since on Scotland's economic growth and job creation? The disastrous mini-budget is indicative of the on-going economic mismanagement of the Tory Government, which has given us the highest inflation in the G7. That is causing real hardship to families in Scotland, with the UK's high inflation part of the reason that the Office for Budget Responsibility is forecasting the largest fall in living standards on record with real incomes falling by £1,200 by the end of this year. Speaking to the Finance and Committee last week, Professor David Heald warned that we will get into a position whereby national health service consultants will start negotiating with their employers for net pay and stress the need to be very careful. When we need to attract key talent, for example breast cancer oncologists in Dundee, can I ask the Deputy First Minister what assessment has the Scottish Government made of the impact of income tax policies on the recruitment challenges in our NHS workforce? It is hard to work out who is Labour and who is the Tories these days in this chamber. Let me say two things to Michael Marra. NHS consultants in Scotland are not on strike as they are down south. Let me say another thing. NHS consultants get paid more, junior doctors get paid more here in Scotland than they do down south. When doctors come here to Scotland, they will take into a range of factors into account and not least the paying conditions that they get, as well as all the services that they get and the additional elements of the social contract that I explained earlier on. What a strange line of questioning for a Labour member in this chamber. When John Swinney was the long-standing wise and cautious finance secretary, he knew about the balance, the careful balance to avoid behavioural change. The finance secretary or Deputy First Minister seems very bullish about the tax rises. I thought the last set of tax rises were an emergency rise, but now the Government is talking about further rises. Is she sure that she is getting the balance right? Let me say clearly to Willie Rennie that no decisions have been made around taxation in any form until we get into the budget process. What I was describing was the set of tax decisions that have already been taken that leads Scotland to be the most progressive part of the United Kingdom by having those five tax bans that take account of what people earn in terms of the tax that they pay. In terms of going forward, we will, of course, take very careful consideration of all the issues that we should do in coming to the conclusions about what is the right balance between tax, the funding of public services and making sure that we are able to sustain those public services. While Labour comes to this chamber wanting us to not make any additional revenues on taxation or anything else, it seems that that does pose the question of where the money comes from to pay for the public services and the demands that members across the chamber make on a regular basis. The next question will be supplementary from John Swinney. From my careful and long-serving perspective, does the Deputy First Minister agree with me that it is somewhat rich for Jamie Halcro Johnston as a Scottish Conservative to come here and complain about differential taxation when his colleagues supported the concept of this Parliament having the ability to vary those tax powers and responsibilities in accordance with the needs of people in Scotland? Does she agree with me that the judgments individuals will form in the careful behaviour analysis that is undertaken in all those questions, bearing in account all the benefits of living in Scotland in terms of the availability of public services, lower council tax, access to a range of free services and to have the ability to send their children? We will now turn to the cabinet secretary's response. I agree with every word of that, and the important thing is looking at the evidence. The evidence in the round, as John Swinney absolutely correctly pointed out, is that people in Scotland get a range of services that are not available anywhere else in those islands. Those on lower incomes are supported in a way that they are not supported anywhere else in those islands. According to the Scottish Fiscal Commission, 52 per cent of taxpayers in Scotland still pay less than they would elsewhere in those islands. We have to look at those things in the round, and we have to take careful consideration. However, we will not follow the economic catastrophe and the policies that led to that, which seem to be being replicated and articulated in this chamber. We will certainly not do that because we know what the damage it does to households and to businesses. I think that you have a problem with your card. If you take your card out and put it in again, perhaps that might work. Could we have Mr Stewart's microphone, or perhaps Mr Stewart indeed could seek to try again? To ask the Scottish Government, in light of the on-going local governance review, what discussions the Minister for Community Wealth and Public Finance has had with ministerial colleagues regarding any potential benefits to public services and assets granting Glasgow metropolitan status. Minister Tom Arthur. The local governance review is a key element of the Verity House agreement and an important opportunity to strengthen local decision making. We are equally committed to delivering regional economic development and will continue to work with regional partnerships as we take forward the recommendations that stemming from the regional economic policy review. We will also continue to work with the Glasgow city region on its ambitions. I will engage with ministerial colleagues on how work in this space can be expanded to further empower all of Scotland's regions. Metropolitan status is given to city regions in other parts of the UK and in many European nations. Like Glasgow, many of those cities are home to nationally significant infrastructures, such as the Clyde Tunnel, where Glasgow City Council is investing £3 million over the next two years, and the upkeep of Glasgow Botanic Gardens, while the Botanic Gardens in Edinburgh is directly funded by the Scottish Government. Does the minister share my view that there is room for a healthy discussion on the long-term funding settlement regarding national assets in Scotland's largest city? There is no doubt that the Glasgow city region is a key engine of the Scottish economy, capitalising on progress made by the Glasgow city region. We will continue to work in partnership with Glasgow city council and the other local authorities in the region. We support the region in attracting inward investment to support the regional economic strategy, which will help to create a sustainable wellbeing economy and tackle inequality. The published regional economic policy review contains a recommendation to explore the aggregation of budgets to increase capacity within regions. Officials are scoping out options for delivery. In regards to the Clyde Tunnel, it is on the local road network, and all local authorities are responsible for their own road networks. The Royal Botanic Gardens in Edinburgh operates a total of four gardens and has a statutory responsibility to safeguard Scotland's national living plant collection and herbarium. It also has a global presence and status in the world of plant-based scientific research and education. It is a very different model from the Glasgow Botanics. Local authorities across the country are facing a combined two-year shortfall of £1 billion. Much of the remainder will be dedicated to immediate needs, essential statutory services and workforce shortages. Does the Scottish Government believe that granting metropolitan status to Glasgow City region offers a solution for service and infrastructure challenges? I thank Ms Gosw for a supplementary question. We have no plans to pursue a mayor or metropolitan model in the style of what has been taking place elsewhere in the UK, but in many respects Glasgow region is very functioning as a metropolitan area. We are committed to working in partnership with all the local partners, the local authorities and the communities to ensure that we can capitalise upon Glasgow's status and look for opportunities through partnership working to generate efficiencies and better more person-centred delivery of public services. To ask the Scottish Government how the measures set out in its programme for government 2023-24 will support community wealth building. Employment of the community wealth building model of economic development has the potential to improve the impact of a wide range of measures set out in the new programme for government. Specifically in the year ahead, we will work to ensure procurement activity continues to contribute to community wealth building in the form of stronger businesses and high quality jobs. The programme for government also confirms that we will collaborate with our partners in the public, private, third and community sectors on legislative proposals informed by the recent community wealth building public consultation. The community wealth building approach is clearly one of our most effective tools if we are to build a sustainable well-being economy where everybody in Scotland can thrive. Would the minister agree that measures this year to support our local economies and supply chains will help lay the groundwork for a comprehensive community wealth building bill later in the parliamentary term? I agree that the community wealth building approach is one of the most effective tools that we have to create a sustainable well-being economy supporting business growth and the creation of fair jobs. We will continue to build on the excellent progress that has been made to date by local authorities working in partnership with communities, businesses, the third sector and wider public sector organisations to support the implementation of the approach. We will publish the findings of the recent consultation on community wealth building legislation later in the autumn. The consultation provided a rich source of ideas and evidence that will help frame the development of legislative proposals to advance community wealth building in Scotland. Question 6, Douglas Lamson. To ask the Scottish Government whether the finance secretary plans to allocate to local authorities any funding from the block grant that has arisen as a result of Barnett consequential funding from the UK Government's swimming pool support fund. Thank you. Local sport and leisure facilities, including swimming pools, are vital in supporting the physical and mental health of the nation. Compared to the less than £6 million of consequentials that the Scottish Government received for swimming pools following the UK Government's budget, the Scottish Government allocated £100 million of additional funding to local government at stage 3 of the budget bill, funded in part by those consequentials. It is immoral of this Government to get funding for swimming pools from the UK treasury but not pass it on for its intended purpose. In Aberdeen, Buxburn swimming pool was closed and has been stripped back to the walls where the local SNP council has been taken to court by its own citizens over the closure. Is the minister happy that swimming pools in our communities are being forced to close? The member knows, because he was a local councillor, that councillors are democratically elected to make decisions on the priorities in their local communities. It is really important that, as elective members, we respect the democratic mandate of councillors across Scotland. The money has all been allocated. The difference here is clearly that Mr Lums is coming to this chamber asking the Scottish— Minister, please, you should receive a second. There are members shouting across all parts of the chamber that it is not acceptable. The minister has been asked a question, and we must listen to the minister's response. As I have said, the money has been allocated. The money was allocated to budgets as part of a £100 million additional funding at stage 3 that went to local government. What Mr Lumsden is coming here asking is that that money should have been ring-fenced. I encourage Mr Lumsden to speak to his local government colleagues, because I know that his local government colleagues are looking for greater flexibility. They are not asking us to come and ring-fence more and more pots of money. In fact, they are asking exactly the opposite for greater flexibility so that they can use their democratic mandates to determine what is best for their local communities. To ask the Scottish Government whether it plans to propose a parliamentary debate on the removal of nuclear weapons from Scotland as proposed in its paper on creating a modern constitution for an independent Scotland. As Mr Kidd knows, any proposal for government business and parliament are agreed by the Scottish Cabinet, subject to consideration by the Parliamentary Bureau, and in turn, approved by Parliament. The Scottish Government's fourth paper on building a new Scotland series, creating a modern constitution for an independent Scotland, was published in 19 June. The cabinet secretary then led a debate on the paper on 27 June. I know that time is precious and I may lodge a member's motion on the issue, which I hope those across the chamber will support. For when war is raging on Europe's borders and the spectre of nuclear escalation is ever present, does the minister agree with me that it is not only time to have this debate here, but across Europe, to start the journey to a nuclear weapons-free Europe, as has happened in areas across the globe, and would he be happy to support Scotland taking a lead in this journey? Mr Kidd has been at the front of this debate for many years, and I agree that a nuclear-free world would be most welcome. It is entirely up to the member if he wishes to lodge a member's motion. Our Parliament is made all the richer with the varied debate and discussion that we have in members' debates on what they bring to this place. That concludes portfolio questions on finance and parliamentary business. There will be a short pause before we move on to the next item of business, to allow front-bench teams to change positions should they wish.


Ladies and gentlemen, I'm extremely pleased and honored to celebrate the 50th anniversary of this great club with you all. And it is an auspicious day. I'm sure you know that Nigeria won today. The falcon is defeated at the African Counter-Fact 43 after penalties to clinch the African Women's Nations Cup. I think the women should give themselves a round of applause. 50 years of the existence of this club, the club has established itself as a highly stabilized and disciplined club. This probably explains why the activities of the club, including elections into offices, have all been very quiet and rank of free. I have never heard that there was any dispute about who would be the president or the captain at the say of the club. I think you have a lot to teach us politicians. In any event, this is the friendliest golf club in the whole world. And I can testify to that legendary friendliness. I had hardly a lighted from the car. When I was given a quick lesson in golf, I was told instructed very quickly on how to tee off. And I was presented with what I'm told as a high quality golf set. Of course, I've not sat here for longer than about an hour when the captain gave me the title of honorary member. With this very friendly and rapid promotion that I received since I got here, I will soon be Tiger Woods. I hope that that gasp was not a gasp of disbelief, but one of support for my great ambitions. I'm also aware of your support for education here in your neighborhood. And all this is commendable and in keeping with the high ideals which you have set for yourselves in the past 50 years. I also suspect that the reason why you support social forces is because you recognize that the elites in any society are a special burden to shape, to direct and to develop that society. There is no society in history that has grown beyond the selflessness, the patriotism and the values of its elite. It is in the country clubs, the golf clubs and other exclusive clubs, that the elite chants the political and socioeconomic futures of their societies. It is for this reason that I believe that the Nigerian elite, as represented here, the political elite, religious, professional and business, have a tremendous historical and moral obligation. That obligation comes from the privilege of being so much better off than the rest of society. It is a profoundly serious responsibility that privilege confers upon us, especially in a society where the vast majority are extremely poor, with all the attendant issues of illiteracy, disease and exclusion. So we, the elite, have a responsibility to first adequately inform ourselves and then selflessly and honestly interrogate the issues that concern the majority of our people and to solve them. To ignore them is to cause tragedy. In a few short years we will become the third most popular nation in the world following China and India. And we will, unlike them, have the youngest population in the world also. Over 60% will be under 25. We have to plan today. And we have to deal with the problems of educating over 100 million children and ensuring healthcare for able to double that number. We must also, honestly and deliberately, take over 80 million Nigerians out of extreme poverty. I've traveled the length and breadth of our country, whether it's in Libya, local government, in Taksena, or Bhuma in Venue, or Anka in Poki, or Abakaliki in Eboni, wherever. The concerns of the ordinary Nigerian are the same. Jobs, shelter, education for children. Their needs are simple. But so are the solutions. If we the elite are sensitive, selfless and committed to being honest. I believe that in the next 50 years the great challenges that will face this golf club, aside from improving our abilities in playing golf, will be also to chart a path for our nation as an elite, as being individuals who are so much better off than everybody else. I'm quite certain that that responsibility will not find us wanting in any way. That all of us will make our contribution to ensuring that our nation is a fit place for lives and livelihoods of so many millions. So let me congratulate this club again on its 50th anniversary and to say that I pray that the coming 50 years will be so much better than the previous 50. And that all of us who want to leave an extra 50 years should join me in saying three and thirty chairs to the Ikeja golf club only those who plan to leave another 50 years. Thank you and God bless you all.


Everybody forced here ripping a box of 2022 origins football. It's an international blaster for Justin s Thanks, Justin. Good luck. All right, David Bell rookie Carson strong a Catapult's Drake London rookie insert rookie Kenneth Walker the third shot white Johan Dotson and Joe Montana team origins Malik Willis rookie Some your white catapults Jonathan Taylor and a Kenny pick it to 299 nice pick it Chris Olava a rookie Tram McBride a rookie variation Desmond a writer Warren moon team origins Kenny pick it rookie base came on the bed over rookie Giants and Catapults Joe Burrow No, Ryan, I'm honestly not even quite sure what that means Johnny Woods pure strong junior Jalen Tolbert and James Williams to 149 and that'll do it. Thank you again, Justin. We'll get these right out to you