All right. It's August. Oh man, that's crazy. There is CloudAsian Python, Maintainers Meeting, Linux Foundation Meeting, Hyperledger Meeting, Anti-Trust Policy and Code of Conduct. Let's be good. I might as well set to edit, but let's, I think we just want to jump into PRs first and then we got to get into planning work. Just opened. I saw this one. This is very similar to another one we had that added another, that added, you mentioned that this adds, oh, the side effect. Wait, you took this off? Yeah. So I realized that where the key list update was being sent from, it didn't need to happen right then. So I just moved it to after when the connection record was getting saved originally anyways. So yeah, I was able to keep the same number of webhooks and saves that were taking place. That's exactly what we did the last time this happened. It was the same point. Okay. Yeah. Anyway, exactly the same. So got it resolved. That's good. Yeah, we just, we were winding up with an extra webhook in the last time. It changed Kim made and yeah, we were able to alter it. Okay. We'll get this reviewed and merged. And we definitely want to get it updated. Sherman, do you mind if I assign this to you? Yeah, it's fine. Good. All right. Okay, this one. Where are we? Okay. So we've got some tests failing. And he's still got this marked as a, I assume we want this. We haven't talked explicitly about this, but I would assume we would want it. That's a pretty significant savings. Have we resolved the regex change? So I haven't looked at this in depth yet. So I've just been trying to follow along with the conversation. But I, that was the only thing that was like kind of a little strange to me was the post processing. I think if we, I think this has already been said in some of these comments, I haven't reviewed them recently. But I think if we wanted to go with a faster JSON utility like this, I think we should just accept that there's not going to be white space and then make sure that that's not a problem as opposed to inserting them back in after the fact. Or if it's going to be a significant issue, like in the case where we actually want the white space when we're displaying it to a user to be human readable, then just not using like altogether, I guess. Is anything serialized and then encoded or encrypted in a way where the white space would affect perhaps or checks or something? Well, that's exactly what's happening. That's the been raised here. I think AFJ has a mission with it. And, and because we were putting in white space, it was causing some issues. What I don't know is the defensive way to do this from a coding perspective is to just deserialize it and try to be the base 64 or whatever. Just try to try the encoding and only if it fails, do the decode add white space and so on. So in other words, assume that it's just going to be right and then only take action if it turns out not to be. And that would basically prevent, allow us to do the optimal thing. So maybe this is something to be brought up. It would be nice if someone could, well, maybe we'll bring it up tomorrow and see if we can get an AFJ developer to talk about it with us and see where this happens. I assume this, this is in the envelope handling, but it's, it's unfortunate that it just sort of says, oh, it happens. Yeah. I know I'm talking to me specific to like a public key or something where you can't like if you're just deserializing it and it looks weird, that's fine. Yeah. I'm wondering if there's anything that public eye would be problem because if we like, right, if we serialize it without white space and then make a checksum and then send both and then they deserialize it with white space and then the checksum doesn't match and now all of a sudden both sides are freaking out. That's like the procedures. But yeah, in all of those you could recover and just say, like the community could just agree, let's try both, but I'm not sure that's exactly also an elegant solution. Is that worth the speed savings? So maybe I think, I think what should be happening in the cases where we are actually doing, doing computations over these values where, whether there's white space or not does impact the result, like for example, a signature over a JWS in the did exchange request, for example, in the attachment of the did exchange request. The signature should always be verified over what was sent, like without any decoding or anything taking place beforehand, because then that should ensure that whether there's white space or not, we're verifying the value that was originally signed. The issue that was in AFJ previously and the version that we were testing against when we discovered this issue was I think unintentionally decoding it and then encoding it again and then checking over that value, which is where the white space issue became apparent. I think if we weren't in a position where we could update AFJ and check the differences, but from what I looked from what I saw when I looked recently, it seemed like at least that particular issue had been corrected, but it still looked like it might be dropping padding on the oh yeah, the base 64 value before trying to verify, which I still think is maybe not the right choice, but I think what's happening on the acupy side, why we're not seeing this issue anymore when we're interacting with AFJ is we've stopped including padding on the on the JWS, the encoded payload in the did exchange request. Okay, so I think really the only thing that needs to occur community-wide, if it's not already clear, I guess, is just to clarify that whenever we are verifying signatures over encoded values, make sure that we're using the payload as it was delivered to avoid any of the white space versus no white space issues. Okay, but I think if we, I mean, in theory, if we make this change and then try Aries Asian test harness before we merge it, we should be okay. So yeah, let's let him finish and then make sure we do that before merging. Okay, I can add some notes to this. I've written a bunch of things down.  Well, I mean, the speedup, he still hasn't verified how much is actually on the acupy side, right? Like 30% increase, it could be 25% that could just be on the test side, right? So you know what I mean? Like he's saying, oh, the tests are running 30% quicker, but 25% of that, you know, it just be on the test side. Is there, can we do something that allows a fallback to the existing code? I'm kind of paranoid that some teams aren't going to have the resources to change their side of things, right? So that they should still be able to deploy it with the original, like what they're expecting. I guess they just get a little paranoid that it's like, great, we got this thing. It works on all our projects. Even if it works in the test harness is okay that there's other teams that are going to be like, cool, we're going to deploy this thing.  Because they're expecting it to behave a certain way and they've coded it to expect, whether it's right or wrong, it doesn't matter, is that they're, I don't know, it'd just be nice to be able to flag it and say, oh, if you deploy it with another configuration flag, right? Just to say, just continue to use the built-in JSON stuff, which shouldn't really be too big of a deal if we have this kind of utility class or interface or whatever that is doing the actual lifting, right? I don't know if it's an issue or not, but maybe if it goes up with the community, maybe someone will be like, we've got stuff running that we don't want to or can't spend time changing. I see this commonly in Python libraries, they'll offer you the ability to swap out for a different JSON utility. And it's usually by installing like a PIP package extra alongside it. And then it's intelligent enough to know that if the package is available, then it'll use that. If it's not, it'll fall back to the default. Right, but we have a thousand config flags anyway, so we're just adding another one that would be easier. Well, I'm not saying it would be by config flag necessarily, but by deployment, by specifying like what extras are installed in your deployment, you could configure which JSON module was being installed. But okay, point taken though, that's still another configuration parameter, whether it's a command line argument or not, I guess. It was similar. Go ahead. The last sentence from Daniel was basically what I was going to say. I see what Jason is saying. I would be a bit wary of adding yet another configuration parameter just for backwards compatibility. The main issue being if we do it, then we have to maintain it. We have to maintain it until God knows when. It's tech debt that we are just basically building into our own solution for potentially an indefinite amount of time. If there is a drop-in replacement strategy, like Daniel was mentioning, like, oh, if you want to use a different serializer, just install a package, you know, you would have your Akapa image installed, it's additional pip package, and magically it works. I haven't done that. I'm just going by what Paraphrasing what Daniel said. That would be probably an okay scenario. Right, but in this case, wouldn't our, so isn't the two options, the built-in to Python not imported and ORJSON? Yeah, I think we'd have to have a way for them to deploy and remove. We'd want to say the base deployment is ORJSON, but we need to have, I guess, a path for someone to say, great, I don't want that because it's messing up my whatever. The ways implemented the JSON use cell class, basically, we're putting a flag in there that says use ORJSON, which is imported no matter what, or use the built-in. I think what this is going back to what Andrew was suggesting, one of the comments, which is what Daniel was saying, which is like, we have the utility class, which is just basically masking with which JSON serializer we use. And the utility class does, okay, I'm going to check if ORJSON is imported, I'm going to use it. If it is not important, I'm just going to use standard JSON. And then all we need to do is have unit tests for that utility class in case external library is imported or not imported, and potentially the post-processing. The post-processing being something that we definitely unit test, what Andrew was mentioning, I think is it's kind of like important. Reg X processing is front to error. So at the very least, we need very strong unit tests, validating that we are not doing crazy stuff, but there's still a margin to something that could happen in there, but we're limiting at least our problems. Are there bugs or are there not, I guess would be my point. Is the current stuff we have right or wrong? The question is interoperability. Some workarounds were done at some point in the past in some places for some scenarios that we don't know about that may have been done, not bugs, not but deliberate workarounds. We don't know where they are. We don't know why they're there. And they may not even be there. We're going to be better to just discover where the workarounds are. I mean, it's going to be painful, but get them fixed. Having to rely on space, nomenclature different in JSON seems like a very bad thing to do. I realize the hashes of the results change. That's normal. It's a new character. But as Daniel said again, whoever is sending back and forth information should just take it as is and deserialize it as is, like not using the spaces or not. It shouldn't make a difference.  You're hashing it and unhashing it. If it has spaces, good. If it doesn't have spaces, good. I'm oversimplifying. What I'm trying to say is like trying to code around these type of edge case seems like a recipe for disaster to me. For me, like this utility, I think the easiest way is to add, if we really want to do what Jason Sherman is saying is we just add a new config, slow JSON. And it uses the old instead of the new. And that should keep everything the same, I would think. Yeah, you could code a very simple case in the utility. I think it's worth considering to put that option in and then leave it in there for a couple of months and be like, has anybody noticed or cared or has this mattered? And if anybody goes, we didn't even know this change happened, then you can go great. And if you do, then you go, okay, well, it looks like we've introduced bugs and people had to manually revert. So let's discuss it then. Yeah, and we could say we strongly recommend not using this flag unless you really have to. And then, yeah, and let there is a bit reduced or unless, yeah. Yeah, I think that's interesting way too. Okay. What if somebody, I still don't like the flag problem being that we can automatically deal with it with the conditional import there. What if tomorrow I come up with a new library that has some benefit for me and I want to use that, all I would have to do is just like add the conditional import for that library in the utility class, have the library installed and that works transparently versus having another flag that controls what to do, right? Right, but I can document that I've got another flag that says just use this flag. Otherwise, I've got to say, oh, yeah, make sure you go update the requirements document before you, the thing before you use it. You can't use the container images because they've got it automatically imported. So you have to go create your own image. I mean, it's way more work for them to have to be around. Sorry, considering where they should be able to put in any JSON library they want. No, I don't think I just want to explore. I guess if there's a way we can do it transparently where nobody should notice, like, yeah, yeah, like to put the back in the white space. See, I see. I'm going to try running these tests again just to find out what's going on. Yeah, they might have been broken. We had those hiccups with the ledger and stuff is probably right. I don't know if they got ran again after that. Oh, the first set did get run again and it fixed. Oh, okay. No, it's this. So how would you do a negation of a library simply? Because I'm assuming most people just grab the Ares image and say, great, cool. You'd have to build your own image. So I mean, maybe that's one way we can check to see is if we have two images and how many times the because that's the thing is you put in a feature flag or whatever. We have no way of collecting any information if anyone's doing anything. It's a little tough. So, you know, it could be that we have this toggle that's never really used without trusting people to report back and say, no, I still need this or I don't know. I guess my thing is if nothing's actually broken, maybe we shouldn't touch it. And until we know the performance is actually like, like I say, like, if all of the tests are great because we do 99% of these comparisons are done in the unit tests, then it's, you know, we're potentially putting out something that's going to break things for. We can't do something in the test and not use it in that like the tests have to match what we're doing. We're putting out. I think we should put this out. I don't lose a question of that. I just think we I'm okay with leaving somebody with a path that's easy for them to use to to be backwards compatible. Yeah. Yeah. I have not looked at this one. This is ready to go. We can update the branch looks pretty simple. Are we okay? I think this is consistent with recent or or with other changes that have been made just to make the responses consistent across different admin API endpoints. I think this one is even probably more of a benign change because it's on the send reverge def, which is usually not going to be endpoint that's going to be called directly by the API directly. Yeah. So, yeah, I think this is fine. I'll now might as well do that. Okay. Well, good. Where does this one sit, Daniel? Oh, yeah, this is kind of hung up. You stepped into a hornet's nest. Yeah. Intentionally. I actually haven't reviewed the comments from 10 yet. Yeah. Yeah. Yeah, I don't think it's, I mean, this is one where you could put it in out of band or you can put it in the other. So I don't think it really matters a whole lot. Anyway, take a luck when you get a chance, but it's not a high priority. Yeah. Sorry about that. Yeah. So sorry about that. Basically, so some person for Ontario added this OB problem report, and then their change had rotted while it waited to be reviewed. And Ontario couldn't have anyone look at it. So Daniel just modernized it so that it fit in. But then there's the question of is the problem. So it's basically reporting a problem when you're in out of band. And when you're doing it out of band, now out of band is just the invitation, the protocols you're actually executing are either the, are either the, you know, the did exchange or connections where you're establishing a connection or something like presentation request when all you're doing is a single operation. And I think the problem there is, and so the question goes, is the problem to do when you're reporting a problem, is it an out of band problem? Or is it the protocol you're trying to execute via the invitation? So that's the question.  Well, hey, there's no way to respond. Or there's not many ways to respond. But it still gives out the question of, is that an out of band expiration? I guess so. But is it that you were invited to do it? If they respond late after it's expired, they would be sending a did exchange message. So their contacts would already be did exchange. So chances are what you really want to send back is a did exchange problem report saying expire. Yeah, I got you. Yeah. So that's the, that's the, yeah. Give me a while to get to the, yeah. This is, this is definitely our hottest priority is, is, is getting this done. Jason, I think you're pretty happy with it at this point. I mean, it follows the happy path. It interacts with that properly. The questions really come from all these unit tests that appear to be random objects that I don't know whether we need to support on our realistic or not. Andrew has chimed in a couple of times with me on the side about things that are basically, you're not going to, we're not going to see them either. They're, they're, they're completely obsolete, like a, like a base 58 key. And it's the exact same thing you saw and the exact thing that somebody's message me on the side they're trying to get it. Yeah. Who is that? Mergy. Mergy, that's right. Yeah. So they've been messaging me asking finding some issues which are totally valid and things I need to change. Daniel, I really appreciate your review on that. I also have time updating some of those sections of the code. Definitely some suspicious things that I will either need to better document or clarify or remove. So I appreciate you pointing those out. Yeah. And then, and then the question is now that I've, now that I've done this once, do we need to really look at restructuring things at a more did method level? Like for the, the, the one that Daniel pointed out is that the Ascar has a created method, which wants to include the, which wants to generate the var key, the method itself wants to generate the var key. But for did peer two, I need the var key first. Yeah. Yeah. So that I can then make the did doc so that it can then save the did. You can't make the did without the right. So that's where I've added another path through that code that looks quite odd. And that was something that, that was pointed out. So yeah, I'm hoping to, to maybe we can talk about that as a follow up. But for now, I'd rather, I get the thing in that works with some tests that can prove it works. And then explore potentially more general solutions in the future. All right. So keep pushing on that. Let's see if we can get this out and merged. This is probably, you know, up there, it's a high priority with the push to get unqualified dids out of the world in the next few months. This is crucial to the areas community to have this. Yeah, absolutely. No, between merges observations and Daniel's comments, and maybe a little bit of help from venture on what the test cases are valid or not. I'm hoping to be able to, to move fast. But yeah, it's just been trying to explore which of this is irrelevant. All the history and, and that stuff. So that's where the hangups have come from. Awesome. Okay. Thank you. Okay. And then this, these two are both valid. Oh, yeah, all three of these are, are new and valid. I have not looked at this one. I see Daniel, you've responded and, and Marcus, I think Marcus is his name, right? Or Matt is Matt has something. Yeah. Responded. So hopefully we can get that there. This is probably Yeah, I think that failure was from the ledger being uncooperative. Yeah. This change, I'm actually, I'm hesitant to go this direction that's being proposed in this PR. And I think some of the issues actually arise out of like a slightly deeper problem. And Matt has had a very reasonable response in saying that the intention was to just get it working and like reduce the amount of changes because it is a deeper problem that's causing the, the, uh, it's been a minute. Let me review this real fast. So he recently we added the verification key strategy, um, pluggable component. So if you have multiple verification keys, multiple public keys associated with your did, you can have a different strategy for picking out which one of those keys should be used for doing stuff like signing Jason all the credentials. So this PR is adding like the inverse operation. How do we get, um, how do we get, I'm trying to remember now, how do we get the verification key? So the actual key material based on a past and did and verification method ID. And he's put that into the same verification key strategy component that was added, making it a pluggable thing so we can, um, you know, help occupy, know where the keys are to validate to verify a json ld presentation that we've received. Um, but yeah, uh, there's some weird stuff that I think arises from just occupy weirdness. Uh, for instance, the only way to get a handle to like the verification keys by having a did info object. Um, and there's a one to one mapping between dids and bird keys right now. And it, so the interface is just a little bit confused, I would say. Um, and I have the itch that there's probably a better way for us to address this, but I haven't dedicated enough thought into coming up with a better solution than what's being proposed. Okay. And, and the one to one is the big problem. There should be a one many did to bear. Yeah. Yeah, exactly. So even if we just made a change in this, okay, I say just, but this would be a pretty significant change if we made it so that the keys that are getting inserted into the escar database, if we made those be identified by a verification method ID by a did URL basically, that would solve the problem. Uh, but that's not currently how keys are identified in the wallet right now. So it's, uh, yeah, it would be a casual change that we would make. So the keys are extracted from the dead. Yeah. Okay. So we need Andrew to weigh in on what escar should do about this. Yeah, I would, I would appreciate anybody else's brainpower. If you've got something to despair to think about this issue and give input. I just, I probably ought to spend more brainpower on it. I just haven't yet. Yeah, no problem. Okay. Um, just for fun, I'll run the fail job, but just because I suspect it's again, we got to find out if it's the same problem though, right? All right. This one, I think this one's ready. The failing tests, I think are again, the ledger issues. I think we just need to do a trigger rerun. And then this should be good for review. And then Jason, I'll put your name on it again. Although this is LD proof. Hmm. Wow. Yeah. Is there anyone else that can, because I don't think Jason's even ever looked at LD proofs. Oh, you have? No, I don't think I have. I would say let's tag Timo, but he's not been particularly responsive. Don't know if he's on holiday or something right now. Let's tag him and let's put Andrew on it. Oh, LD proof. Oh, let's, let's try Shantra. He's, he's worked in that code before. Okay. Let's go there. And then this last one, I think through a first round of reviews, the maid of God and approved, and then God pushed a new change now. Just a quick, quick fix. Okay. I'll update this, but have we got any approvals on it? No, they were dismissed by his last push. Okay. Okay. So we're going to have to reapprove. Yeah, we review and we approve. All right. Good. Okay. Sounds good. It would be nice if we can get it in soon because this is a big change and it's going to become still quick. These are going away, I assume we'll probably close these, but let's not spend time on that. I'm much more interested in this. So this is an awful lot of work it looks like. Some of it is probably a little less scary than the number implies, but there's, there's a number of things. Yeah. So first thing first is dealing with the stale branch and, and the test that Jason Sherman was trying to put in place. So the idea we had was, let's start by getting that test into the integration tests. But with so much going on and occupy itself, that branch is problematic. What are the suggestions on the strategy for that? So I put in some questions that Daniel responded to you last night. So I was trying to get the work he had done working standalone, which is fine. It does. And then all the existing tests, there's a bunch of issues with those. So I was trying to retrofit the changes to the base classes and kind of push those into the new stack. But unbeknownst to me or I missed the memo is the, that Daniel's thought is that they don't live together anyway. So that the non creds will supersede the existing schema and cred def work, which is what I was trying to like see if I can patch these things in here. So is that what we're doing is we're going to just drop the existing schema cred def stuff and replace it wholly with the non creds. That's what I understand the plan to be. Yep. So removing deprecating the old admin API in points for schema cred def creation and replacing it with the non cred specific or ledger agnostic and non creds in points, I guess. Yeah. So then at some point, like how does that affect all the existing things such as, you know, like Camila and I was on the call traction, right? Right. I mean, it's just pass throughs to things, right? But if they're, you know, their thought is that the third part, the people that are using traction are calling the acopi endpoints. And then all of a sudden those things are going to be gone. Right. This would be a significant breaking change. It's possible to adapt the endpoints to the new non creds interface. I think that is reasonable, at least for schema cred def and then for the automated revocation registry setup. I think we could adapt those endpoints without too much trouble. Okay. Yeah. Yeah, I think that's that's that's after reading your thing. I was like, oh, I didn't know I wasn't aware of this is that plan is we're just going to, you know, significantly shift acopi so things aren't running in, well, parallel or whatever you want to call it that it's yeah. It was a very use loose use of the word deprecate. Okay. So the the issue is how do we do this? What is the the best way to do this?  And then which ones do we think we can keep as what amounts to redirects to the other with a, you know, with an adapter adapter in between a shim in between to make them still work. So that's, but how much does that slow us down in actually making progress on this? So if we were able to so the revocation stuff is is and always has been like the more complicated aspect of of the non creds transition. So if we're and we have discussed this at length for comfortable with removing a lot of the like manual controller does all the work endpoints and end in favor of the automated setup after creating a cred depth with which supports revocation. There are things to be changed as Jason was finding while trying to adapt those things, there are definitely things to change. But I think the effort to create an adapter from the original inputs to the ledger agnostic occupy or non cred stuff. I don't think it would be too bad. Yeah, that's my feeling to after you pointed that out is like there's very similar pieces. So I don't think it's too far off and maybe that's the better approaches is yeah to take leave the non cred stuff as is and then adapt the existing things in place to use that new kind of model. So yeah, I don't yeah, like I said, I mean, there's a lot of similar pieces, they just didn't quite tie up and there was a reason why they didn't quite tie up. So yeah, so now we can we can kind of concentrate and instead of me trying to force this stuff like hey, this should work and this should work is knowing that it doesn't and figure out how to make it work. So yeah. Yeah, like, we fully want to drop any of the controller based revocation. If we can keep the schema and credit depth, the same, you know, all the other endpoints, the same than we should. And minor breaking changes are okay if we feel like it. But you know, if we can, you know, as much as we can keep them the same, but if it starts to become a real hassle then we we may rethink this but I fully I'm fully on board with removing all of the revered I don't think anyone's using it. So I don't think it's a problem. And we just say they're gone.  We're all good with that. How does so some of the existing proof requests and stuff either have like, they've got like an indie block. Is that that's all okay. So when the new, you know, and on credits was put together, the key thing we wanted to keep was the interact the objects that are passed between between agents should stay the same. So those should pretty much be the same. They should not have changed. So, you know, issuing a verifiable credential, sending a presentation request and sending a presentation, all of those things should be the same and the and the the interactions between you know, getting an offer and so on. I definitely think we should focus on the send and point for the same reason and and at least deprecate the use of other ones. I think that would be a good idea. Daniel, you're nodding. Do you think that's okay? So I think I don't have a problem with that. I don't think that would be problematic either. Especially as it pertains to changes required for the non credits interface, whether it's using, you know, the fully automated flow from the send and point or if it's doing it step by step, the changes to those protocols was actually or the changes to the protocol implementations, the protocols themselves, as you say, are exactly the same as they were before. But just calling the, you know, the non credits folder instead of the indie holder or the non credits verifier instead of the indie verifier, that's like that level of changes required in the protocols at this point at the non credits level. And then any other changes that we want to make in terms of deprecating endpoints, I think is fair game. And yeah, yeah, the only thing that I think that we well, okay, maybe not. I was going to say the only thing I think we lose is the ability to like interrupt the protocol and say, I'm not going to do this anymore. But I think that's, I don't know how common that is anyways. And we still have the ability to send a problem report, but it would have to be triggered by rules engine being evaluated on the controller side as it received web hooks or something. And it would have to be, it would have to interrupt before act by was able to go through the last steps of the issuance or something. But I'm not sure what conditions there would be in place in order to say, Hey, I sent you an offer, but I'm not okay with sending you a request or issuing or not a request with the actual issue credential message. So okay, so let me put it this way. We leave that as an option. And we consider putting into the notes saying we would like to move to send. But having said that, we try to avoid that in this step. So the revocation registry ones without a doubt go away. And we're all good with that. Um, if we get into problems with the, the back and forth with issuing, our next strategy would be to consider dropping the other than the send. But let's, let's see if we're forced into that. Just a better interest. Jason and Jason, in the work you've done, have you, have you done an issuer and do you use the send? Um, yeah. So most of the stuff and, and you know, Milano can chime in if it's changed. But when, when we, when we were writing our own controller for traction, the bulk of the work was listening to the web hook messages and trying to evaluate like, Oh, okay, this is, this isn't right. Let's stop the flow there. So it was kind of basically starting everything with the automated flows and then trying to interrupt if there was some kind of condition or if someone had put in some logic or whatever. Um, and I think it's similar stuff in traction is, is use the automated flows and then interrupts, you know, just like as Daniel's saying is basically someone's going to put something in that's going to be business flow rules, engines or something that says, Hey, this isn't quite right. Let's stop this. But I think everything kind of gets kicked off automated issue. Okay. All right. So, so we've got that from a philosophical. So we have two problems and we don't have much time left to discuss. So maybe we have to get back together. I don't know. But one is dealing with the, the, the stale branch. And the second is how do we order and distribute the work. Daniel, I don't know if the DCO has resources for this. I would characterize our availability to help address this as here and there. It's sometimes we've got a little bit more time than others. Um, uh, I would have some time, I think to like help update the branch, but I think the bigger problem on that front is that the changes that Andrew made on the indie side are not yet available on the non creds RS side. Um, that's okay. Yeah. That's a pending merge. I mean, if the work's been done, it just needs to be merged. In a non creds RS. Yeah. Okay. So there's a standing thing. Yeah, there's an outstanding PR in a non creds RS. Um, that I keep did and is ready to go. Okay. Okay. Um, the biggest thing here is I have no clue what the ordering is on these. Like, if we have one person, where do they start? If we have two people, which two places? If we have three people, which three places do we start? That's the question. Yeah. Um, so I would say, Daniel, that's the biggest thing you can help us with is sort of just look at these and say, okay, if I was me, here's the order I would do it in. Yeah. Yeah. Our keys changes. So that's at the Rust library level. I guess, Daniel, having looked at them, but it's probably doesn't substantively change the work that you did. I wouldn't imagine. No. So Andrew did a change to occupy when he put credits in. Yeah. So that when I tried to do like a, I was just trying to do a quick kind of merge between main and the non creds RS branch.  And yeah, there was so Andrew had put in the stuff there, which I was like, Oh, this might be a problem that I believe for you guys. So, but overall, yeah, those were the two areas. But I was just going to say that if the work that Daniel did in acopie won't really change too much, there's still that the bridging exercise of what's there and the current schema cred death stuff could get worked on. Like in preparation for like, Hey, this is how we're going to transition these APIs. So like that could get done and probably wouldn't be impacted by any of the other changes. And it's worked. It needs to be done. I guess if we're going, if we're going to go that way to keep these things kind of alive at the same time, I think just to understand where what you've done as we wrap up Daniel, your team, you implemented the non creds API endpoints. Yes. Yes. So we literally have the indie endpoints or the, you know, the schema and the cred def endpoints that exist. We have the non creds input. And so an exercise needs to be done is to cross check those and see which ones are going to be problems and how we might deal with them. And then, and then just for fun, we've got the changes that Andrew's done, which is going to remove parameters and add parameters. I mean, they're, they're relatively simple. I wrote them down yesterday. Yeah. So on issuing, on issuing the tails file is no longer needed on revocation. The tails file is not needed. And the cred def and rev private key, revered private key are needed. Those are the only differences. Right. Yeah. So those should be. And so they're only to do with issuing and issuing and and revoking credentials. So those should be embedded anyway. So those won't be a problem from the interface. Okay. So all we've got to do is let's compare those APIs and and see what we can do about keeping the old ones and which ones would be a problem. Okay. I think the the next like kind of big thing is the migration from existing objects to the agnostic objects. I'm actually really excited about the changes for the non-creds.rs library and the changes that Andrew made in the IndieCredex. I think they actually simplify things in a really good way. So it won't it won't appear at like the admin API level certainly. But underneath in the non-creds interface, there's a whole load of things that we can actually simplify significantly and all the no longer needing to manage tails files locally also solves a number of previously existing problems. So I think those are all going to be really positive changes, but those can be kind of done piecemeal as we add in the as we merge in the library and you know pull it in as a dependency the updated version. I get it. That is a significant change. You no longer have to keep the tails files around. That is significant. Yeah. Okay. Well, we filled up an hour. All right. So I had a couple of things that I wanted to bring up. We don't have a ton of time. So the only one that I think that's that I really want to bring to your attention live is so we've made some changes to the IndieTales server in order to support the non-creds changes. And we're actually unable to create a PR to the BCGov IndieTales server project. We have to be collaborators in order to open a PR to the project apparently. Surely we can fix that. I can take a look quickly. That must have been some oversight, whatever you want to call it. I meant to do that before the start of this. Okay. That one can be done. Anything else? I mean, I'm interested in talking more, but they can wait. Yeah. Yeah. Do you want to have another meeting this week? I'm open to that. And happy to talk a little bit more in depth about any of the issues on the non-creds stack. I can also spend some time prioritizing, I suppose, like giving a suggested like here's probably what should be done first here is what can wait kind of the ordering to those tasks. And yeah, can answer questions there. And then the other things I had are mostly like a kind of a high level, what are our views on like open ID for VCI from the ACFI context and stuff. Okay. I might set up another meeting for Thursday, if you don't mind. And let's see if we can do that. Yeah. Thursday will. Thursday will work for me. I've got time. So we're often in, we get together on Thursday, so it's, we can actually be in person for our team and then include you and anyone else's needs to. Okay. All right. Sorry to run. Good meeting. Thank you. Thanks. Thanks, everyone. Have a good day. Have a good day. Yeah. Bye.


The students in the advanced leadership class, Leadership Studies 450 engage with me three days a week in a seminar type format. And in that format, we have conversations about planning for their discussion sessions and what is on their agenda and how they're going to approach the event. We try to think of contingencies for how they'll respond to the various challenges they may be providing to their students. We also do debriefing sessions, subsequent to their discussion sessions, and talk about issues that range from their need to feel that every student should be learning at the A-plus level to understanding that students have different priorities. And while it's important to facilitate student learning, you can't own the responsibility for the student's learning and the students have to take that on themselves, and that's part of the growth and learning process in itself, as well as learning about their role as a peer leader and how they need to be more tuned into issues such as boundary management and being able to still be accessible to their students, but also realize they're in a special role. The other thing that happens in the seminar is we bring, we have six events where we bring in outside experts on leadership. The 450 students all get an opportunity to meet with those people in an intimate situation where it's them and the guests, and they engage in a conversation that they determine what the topics are, and it becomes a very fulsome conversation that's a very special opportunity for them. Those speakers, those guests, also come to the large 101 section, but there it's more of a, you know, they're on the stage and the 101 students are in the tiered classroom. They have an assignment that's every other week that they have to turn in a self-reflection paper that, in which they analyze their own learning about being a peer leader, and what does that mean to them in terms of their own personal development with issues ranging from their need for structure and how that impacts student learning, their expectations of themselves and others, their own skills and needs for communicating and listening versus speaking and so on and so on, and that becomes a key learning point. At the end of the term, the 450 students also write a self-reflective paper that projects to sometime in the near-term future, say three to five years in which they look at, given what they learned in the course, what are the sorts of things that they need to be thinking about in order to move forward on their journey as leaders. The 450 students also serve in a very powerful role in helping the 101 students connect to their professional. If you can imagine the 101 students are predominantly freshmen, some sophomores and very few upper division students, and these freshmen have never really had the opportunity in a formal sense to communicate with a senior professional. The kinds of people that they've interacted with range from people who are working in government service in the diplomatic corps, overseas, to people who have their own adventure travel business, to people who have their own medical practice, to people who are ministers and pastors in their communities and their churches, to people who are senior executives in manufacturing industries and supply chain management, and also a non-for-profit organization. So these students have a pretty daunting task in talking to an adult who they've never met before in a structured format via the internet. The 450 students are put in a position where they're really supporting the student's ability to communicate with their professional in a way that's meaningful. That goes from everything, from coaching them to be confident in a personal level to helping them with their writing skills so that their email communication looks like professional writing as opposed to something we might see on a Facebook post or a Twitter post, and that's a big learning piece, and the 450 students are very much engaged in that, and we talk about that in the seminar. Also, the 450 students work with selected professionals whose job is to support other professionals who are engaged in this, so that if we see either one of the volunteer professionals is busy and they haven't responded to their student, the 450 student communicates with the volunteer coordinator who will then communicate with that professional to help them remember that their world is not on a 10-week schedule, and we know that, but the world of the university is, and they have responsibility to match up to their student. Similarly, if a student is having some difficulty, either with the technology or because of their schedule or whatever, and we find the student isn't responding to their professional, the 450 students' job is to help that student get back on track. Yeah, yeah, I felt empowered in the sense that I was trusted to be a leader, even though, in a sense, I was not much older, you know, and I think kind of what that class taught me is that age doesn't necessarily matter. It's the trust that is instilled in us and kind of the empowerment that we felt to say, like, you know, I think that you know enough or that you're in the process of learning enough that you are in a position to share. And I kind of learned that it's being in that teaching role didn't mean I knew everything, but it meant that I had had the experiences to kind of facilitate further growth for others and for myself. I wasn't expecting to learn as much as I did in that class, but I was learning just as much, if not more, than the people that I was teaching and I was learning from them, which I wasn't expecting. So that was really cool.


Hi, this is Mitch Mitchell. So I want to tell you about my day. Just because it's a nice little story I think. So it actually began about 5.30 this morning when I woke up and my stomach was killing me and I didn't really know what to do. It was a travel day. I was coming back down south So even though my stomach was killing me I said, you know, let's see if I can get a little bit more sleep I didn't have to wake up till 9 o'clock To get myself ready to get to the airport. So I said, you know, let me see if I can get a little bit more sleep Well, I made it to 7.30 before I woke up again and I was in dire pain and it was some kind of gas and it was just in my stomach and You know You really only have a couple of options at that point The first one is actually the first one to see if you can get out of bed Which I did and the second was to go to the bathroom So I went to the bathroom and I basically stayed in there pretty much 35 40 minutes Trying to get things moving. I even got myself some alka cells for and and by the time stuff started moving Oh the pain it was just it was just dire pain and yeah This is a wonderful way to start a video, but you know, it's part of the story and So my wife was there and she's saying, you know, geez. What's wrong? What do you think happened? And I thought about it and I said, you know what I bet it was I bet it was the cabbage that we had Last night with dinner. I made salmon my wife made fried cabbage because I asked for it Love her fried cabbage. What I forgot is that it creates a lot of gas And I should have taken something for it last night But I didn't and I haven't had that kind of food in a real long time, you know, both my wife and I work out of town So it had been a long time since she had cooked that and my stomach wasn't ready for it so that beat me up and Then it continued to hurt until pretty much close to 9 o'clock when is which is when I was supposed to be waking up So now I'm worried a little bit because I'm thinking goodness. I certainly don't want stomach problems on the airplane and You know, we started doing everything I started making sure I had everything packed that I need to have packed and we left had to stop at the bank so I could deposit a check and Then I got to the airport kind of early and I started feeling pretty good and I'm thinking okay you know what this is gonna be a fine day and I get on my first plane leaving Syracuse heading to Philly and I get the Philly. I didn't eat anything in the morning, but now I'm in Philly and it's time for a Philly cheesesteak They've got a place that they call local restaurant. That's actually the name of it local restaurant It's in it's in the airport So I get off my plane and I look at the board and I see okay. I'm supposed to be at this certain gate Perfect. I go over get something to eat now. They had these touch pads, which are pretty cool In this restaurant. There's all these different iPads and you know, they're locked there so no one can steal them and I ordered my meal and then I checked my flight there It was on there and it said what gate it was Everything is wonderful. I finished my meal. I look at my times. Oh, I've got time for a foot massage So I go over to this place called to say I think it's called express bar a spa I go there. I get a foot massage.  Thank goodness. This is not a pedicure. There's no cutting going on They're not moving fast. It's just a nice slow. Oh my god. So everything's feeling fine. I'm looking at my time I'm thinking my time is good. I Get out. I pay my money. I go to my gate That's when now I start noticing up something was wrong one They're going to a different city than what I'm going to like what the devil so I go over Have to find a departure saying I find it find out they moved my gate all the way the other end Total all the way in there and so I start walking really fast and I get there and the plane is left So I missed my flight Now a lot of people would have freaked and all of a sudden kind of stuff, but I didn't freak I went to the lady sale. Oh geez. It looks like I missed a flight. She said you're Mr. Mitchell, aren't you? You fly enough places they start to know who you are so yeah, that's me So she looks and she starts booking things and says well you have a chance to make this next flight Unfortunately, the next flight is also going to be a connecting flight We're going to have to take you to Charlotte before you can get to your final destination and I've got to give you this and you've got to kind of rush over because they're going to start boarding in About five minutes or so and you have to get on the shuttle bus thinking well, it missed just wonderful timing So I walk over to where the shuttle bus is and I it's not all that far I get there pretty quickly and the buses out there So I got lucky the bus, you know, I was just waiting and people are getting on the bus So I got on the bus to go from the terminal to a terminal So I get in there and I notice okay. I'm not all that far away from the gate I need to get to so I walk to the gate as fast as I can and they have started boarding but they're taking you know the first-class people and Such and usually I get to fly first-class, but because this was you know me getting over there really quick I had to get there and I was actually on standby But one of the lucky things is being a a preferred member of this particular airline I moved to the front of the line. That was nice.  That's me. She hands me a ticket. I'm in row 31 I didn't even know planes had rows 31 because Yeah, I mean about a Syracuse. You don't really have a lot of really really large planes So this isn't anything I'm really used to and I was way back. I was like two rows from the very back and This was like a triple on each side. So there's a ton of people on this plane and I had this guy basically sleeping on me for pretty much almost the entire flight from Philly Charlotte obviously he was really exhausted. Luckily. I had my my nook and Out of the weird thing, you know, one of the weird things about it is I didn't want to wake him So when the lady came asked me what I was doing, you know, zero She reached over and I reached over my left hand because I was up against the window I didn't want to wake the guy. I don't know why I didn't want to wake the guy I just he just seemed so peaceful sleeping there. So anyway, eventually get to Charlotte now I've got more time to kind of wait and My next ticket was supposed to be row 16, but I like being you know a little further up So I go and I asked, you know, is it possible I can get a little closer Preferred member I get to row nine. I take row nine So I'm once again once again against the window So I get on early because I'm a preferred member.   She totally ignored me put the thing down locked her thing didn't say a word Could have let that get me mad Because I think I'm thinking well, how rude is that you always say hi to people. You know what fine Now during the flight I don't know if she had a problem with me or she had a problem being in the seat because you know The seats aren't necessarily meant for bigger people. They just aren't I don't know Luckily, I've lost some weight and some inches. So I fit pretty nicely now. Anyway She did this thing for she kind of turned her back kind of to me. She was leaning into the aisle doing something I don't know what it is. I've never seen anyone do that on the airplane. But you know what I figure I don't care I've got my nook. I'm listening to my movies actually watching something on the nook So I'm a happy guy let her do what she wants to do So I end up getting where I needed to get where I am right now. I'm 90 minutes late You know what that's not necessarily so bad 90 minutes. Not a bad thing at all However, I then go to get my rental car and they have run out of cars vehicles Now I'm driving something. You know what I can't even tell you what it's called. Oh, it's called a Sierra. I Didn't even know what a Sierra was. I'd never heard of it. I think it's a Kia I really don't know but it's one of those long long things with three rows in it You know, this is like for families that have like 10 or 12 people in. Okay, maybe I'm exaggerating. I might not be You have a lot of places for people to sit and this is me just one person who's gonna drive this monster thing I'm not used to anything like that. But still it was red Reds my favorite color. So what am I gonna be mad about? So I get that I Go to program the phone phone works fine. Then I go to program the the Bluetooth audio Is this not having it not having it, but I said, you know what that's okay I can just listen to my recorded book fine So I do that I go to office. I get what I need to get, you know, why when I leave I usually take some things to where I work and store them there instead of storage at the hotel So that you know the night before I don't have to go over anywhere else I just do that so I go get the stuff come back to the hotel and then initially they thought they'd given away my room I'm like, what the devil you mean you gave away my room. Well after about five minutes They find out. Oh, no, we had a glitch in the system. You got your room. So Got my room went out had dinner came back. Everything's fine You know, I tell this story one because I just have these weird things that happened during the day But I tell these stories because I'm trying to show how for the most part I'm a pretty even killed kind of guy even when things get thrown in your face that are, you know Somewhat disruptive. I mean missing a plane. I need air people who just freak and they start yelling at all these other people when it's their fault and Then having this lady being kind of rude to me on an airplane, you know, there's some people who might have said something to her I just decided you know what she's got her own issue I'm gonna go ahead and I'm gonna be calm and collected and you know I didn't need her if she had said something later on I might have done something but I didn't have to go there and you know, this is one of those kind of things that I say for the most part We do teach people how to treat us But we also can't always be reactionary to things that happen in our lives that don't quite go our way I tend to try to view everything as a story and Then I can tell the stories or I can relive it or I can write about it I certainly enjoyed telling my wife the story. I didn't tell her the part about you know Yeah, I skipped a couple of parts. I told my wife and she never watches any of my videos So I'm good, but you know, we have to get to this point There's a lot of tension in this world There's a lot of people who get inflamed about a lot of things that have nothing to do with them And if you're getting mad and stuff has nothing to do with you then when stuff does have something to do with you You're gonna get even madder and there's a lot of fights and a lot of people get hurt and a lot of people get killed And it's just got to stop somewhere people, you know, we need to be more responsible for our own selves We need to chill just chill a little bit You know, I understand this thing that's going on in Ferguson, Missouri I you know, I see it from both sides. I understand why some people are mad I don't understand why they're still rioting. I just don't get it I mean the police have been replaced by the state police. Now. There's a the National Guard is there and people are still rioting People were mad at a curfew. I'm sorry Five-hour curfew from midnight to 5 a.m. Go home and get an app go to sleep Nothing good ever really happens after midnight. I know some people will say well, you know, you go to the club you hook up No, no, no, no, trust me Nothing good really ever happens after midnight So, you know, like I said, I understand part of that where you're mad because of the initial thing that happened But that's over now go home Relax chill Now people are looking into it. Justice is going to be served. At least I hope so You know, I'd like to think that the best things are gonna happen in life And that's how I kind of live my life and if it doesn't happen that way Well, then we have another Trayvon and I don't know what to say about that. I don't even want to go there I don't want to get mad. I just want to stay in a peaceful state Let me know what you think though, you know Are there those times where you overreact to bad things that happen in your life?  I was the only one wasn't anyone's fault You just roll with it and you move with it. You know, things can always be resolved Let me know if you think I'm just being Pollyanna or if you think, you know, maybe I've got something there Maybe this is something you do or maybe this is something you should do. You all let me know This is Mitch Mitchell. I hope you have a wonderful night because I'm going to bed


Hey everyone, welcome back to Nintendo Prime, and today we have a really interesting story because according to Phil Spencer himself, some Xbox games will be coming to Nintendo Switch or Nintendo Switch platforms, the next Switch, whatever, in the future. And look, this isn't a rumor, this isn't speculation, this is not a data leak, although those are pretty legit. This is actually from Phil Spencer himself in an interview with Wall Street Journal. Gaming. Now, before we get into it, I want to thank the sponsor of today's video, Into the AM. Into the AM is a premium shirt design company. They have new designs coming out all the time. 100% cotton blend that's been pre-shrunk and last way longer than the typical shirts you will buy out at retail or many other different websites. I could personally vote for these shirts. I've been wearing them for a couple years at this point. They do make up probably about half of my wardrobe at this point. They got basic blank tees, long sleeves, hoodies, and yes, a bunch of printed tees, and none of my printed tees in two years through well over 40 washes have actually been damaged or had any color fade. You can see the one I'm wearing right now. I got this a nice, they call this a ritual tee. I kind of call it a Halloween t-shirt. I really like this one a lot, especially for this time of year. They do have a massive Halloween sale going on right now. And you should use our link down in the description into the AM.com slash Nintendo Prime 10 or use code Nintendo Prime 10 at checkout to receive 10% off of your order. This 10% does stack on top of whatever sales they currently have going on on their website. So go check out their special Halloween sale.  And let's get right back to the story. So today on Wall Street Journal, Phil Spencer did an interview going over the Activision Blizzard deal and had a lot of questions come up about it. And he does sound pretty confident the deal is going to go through despite some of the concerns out of the UK government. It does seem that he thinks they'll be able to push it past that. And it should be closed by summer of 2023. But he was asked about a particular game and what his plans are with this game. And well, he went into some details here that I think are worth talking about. So here are the quotes from Phil Spencer himself. Call of Duty specifically will be available on PlayStation. I'd love to see it on Nintendo Switch. I'd love to see the game playable on many different screens. Our intent is to treat Call of Duty like Minecraft. And this is the first time he's actually said this. He always said it wouldn't be exclusive, but he never really detailed what the plans were or what Microsoft is thinking for Call of Duty. And it's thought processes, hey, Call of Duty is not even properly supporting all the biggest and best platforms out there, Switch. So let's get it out there. Now, obviously by the time this deal goes through, we could be talking about a Switch Pro or a next generation Nintendo platform, but it does look like he's got interest in making sure Call of Duty is there on Nintendo's platforms moving forward, which means in theory, this Activision Blizzard deal is actually good for Nintendo fans because it means we might get more games. As an example, we got Overwatch and Overwatch 2. Overwatch 2 is not gonna go anywhere and I wouldn't be surprised if Phil Spencer would keep Overwatch 3 when that's eventually a thing and have that come to Nintendo's platforms. I think the current things coming to Switch, he'll probably keep going and now we might additionally get Call of Duty eventually in a year or two. To me, that's absolutely incredible and that's good news. I mean, we need good news. Good news makes the world go round. We focus so much on the bad, so much on the negativity like this tire bay not a three situation. It felt like a hilarious yet sad story, kind of a negative story that has been spun a little bit in a positive light with the sales of Bayonetta 3. But when it comes to actual video game news, we really would like good news and Phil Spencer delivered the goods for us Switch owners telling us that he wants Call of Duty on Switch. Remember, this isn't just some random person just wishing that this happens. If the deal goes through, Phil Spencer controls Activision Blizzard and controls Call of Duty and what he says goes. If he wants it on Switch, it will be on Switch. If he wants it on everything, it will be on everything. So yes, thank you Phil Spencer for giving us some hope on one of the largest IPs in the world coming to Switch. This isn't gonna replace our Splatoons. This isn't gonna replace all the other games we play, but it's just a nice addition too. We did get Black Ops 2 back in the day on Wii U. We had other previous Call of Duty games in a Wii created fashion on Wii, but actually the motion controls were pretty cool and that's another advantage Switch has. We still have those motion controls that maybe they'll take advantage of. Either way, I'm really excited at this prospect, especially on whatever Nintendo has coming next or even the current Switch, if this is just what Nintendo's gonna ride with for the next few years. So I'm really excited to see this IP come over. I really enjoy it. Obviously we have no idea when it's gonna come over and which version's gonna come over or any other specific details because they need to finish off the Activision Blizzard purchase as is, right? 70 billion dollars, like they got a lot of money invested in this to make this work, but I'm happy. I know there might be some, it's a little bit of drama on if they're gonna keep it on PlayStation. And they did say in this thing that they would put it on Game Pass. Of course, everything's on Game Pass that they own so that shouldn't be a shocker, but yeah, I honestly think that this is great news for us Switch owners. More big third-party games, the better. And if Phil Spencer wants to continue to show heavy support for Switch, I'll take it. Not just the Ori IP, not just the Minecraft and Minecraft Legends, just keep it coming, Phil. Thank you so much for being someone who seems to actually care about the industry while also doing what's in the best interest of your company, which is obviously for Call of Duty to keep making as much money as possible, but also to keep boosting your Game Pass service. Honestly, Phil, you're kind of getting the best of both worlds with what you're saying. I find it really hard to disagree. Anyways, folks, you guys let me know what you think about this because Phil Spencer has been really interesting in how he's approached the whole console competition realm and the infighting that seems to be happening with Sony trying to block all of this. And obviously, him constantly having Nintendo Switches in the backgrounds of his videos, even if there isn't anything coming, he clearly enjoys the platform. He called Nintendo a treasure in the past, and if they were ever in trouble, he would personally make sure Nintendo doesn't go under. Not that Nintendo's in any trouble, but it just kind of shows a deep respect and care he truly has for Nintendo as a company. And now to say, one of the biggest IPs in the world that's been purposely skipping Switch, he's like, by the way, yes, Switch, that's a thing. It'll happen. I just need to get control of the IP. That is, man, that's awesome. And I can't help but smile to that one. You guys wanna know what you think about down in the comments below? Do you even care? I don't know. Maybe you do, maybe you don't. I think it's good news. So let me know and we'll catch each other in that next video.


So here's a new tablet that you have on the market with a rotating camera. Rotate camera, it's a big camera, you have a good view. So you have up to 13 megapixel? Yes, from 2 mega to 13 mega, this depends on the bios requirements. All right, and what is the size of the screen? This is 80 inch, and the resolution is 1280 x 800, very high resolution IPS. So 1280 x 800, high quality IPS display, G plus G, and this is quad core 8382. So this is a new... So it also has a nice battery? Yes, nice battery, you can support much more, from 3000 to much more. All right. Yes. And also we have another one for 7 inch, it is smaller. Okay. This one, 7 inch, also with a... Front rotating camera right there? Yes, also with a rotate camera, just a family series. And also with the same resolution with the 80 inch, 1 to 80 by 720 IPS screen. So it takes nice quality video and pictures, and it's really great for... You can use it as a phone, this is a big... We can call it fabric. Like this is 6.98 inch IPS, 1280. Yes, 1 plus 8. Do you do only 1280 or you also do full HD option? Just 1280, yes. And then... Hemelow also option. And capacity 2500? Yes, also can be a little more. All right. Yes. So this one even for me, you see my hand is not so big, it's easily to be handled. I think it can... And also compare with some smartphone prices, it's very aggressive. So I think that this kind of fabric with all these kind of functions, especially for the 4G time, will be good. And people like to take high quality selfies. Yes, you can... So this is a selfie tablet? Yes, yes.